DE3000107C2 - - Google Patents

Info

Publication number
DE3000107C2
DE3000107C2 DE3000107A DE3000107A DE3000107C2 DE 3000107 C2 DE3000107 C2 DE 3000107C2 DE 3000107 A DE3000107 A DE 3000107A DE 3000107 A DE3000107 A DE 3000107A DE 3000107 C2 DE3000107 C2 DE 3000107C2
Authority
DE
Germany
Prior art keywords
register
address
bits
bit
branch
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
DE3000107A
Other languages
English (en)
Other versions
DE3000107A1 (de
Inventor
Virendra S. Pepperell Mass. Us Negi
Arthur Sudbury Mass. Us Peters
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull HN Information Systems Inc
Original Assignee
Honeywell Bull Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US06/000,734 external-priority patent/US4309753A/en
Priority claimed from US06/000,864 external-priority patent/US4224668A/en
Application filed by Honeywell Bull Inc filed Critical Honeywell Bull Inc
Publication of DE3000107A1 publication Critical patent/DE3000107A1/de
Application granted granted Critical
Publication of DE3000107C2 publication Critical patent/DE3000107C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/264Microinstruction selection based on results of processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • G06F9/4486Formation of subprogram jump address

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Description

Die vorliegende Erfindung betrifft eine Mikroprogrammadressierungseinrichtung nach dem Oberbegriff des Patentanspruchs 1, in einem Datenverarbeitungssystem mit einer Verknüpfungseinrichtung, die Verknüpfungsoperationen anhand von Daten ausführt, wobei diese Verknüpfungsoperationen eine erste und eine zweite Mikroprogramm-Routine umfassen und wobei Adressen sichergestellt werden, die jeweils der letzten Mikroinstruktion der genannten ersten Mikroprogramm-Routine zugehörig sind.
Zur Mikroprogrammsteuerung von Datenverarbeitungssystemen kommen vielfach Steuerspeicher zur Anwendung, wobei die Operationsabfolge durch darin in der Form von sogenannter Firmware gespeicherte Mikrobefehlsworte gesteuert wird. In einer solchen Firmware sind verschiedene Hauptroutinen und darüber hinaus auch Subroutinen, die von den Hauptroutinen gemeinsam genutzt werden können, enthalten. Wird von einer Haupt- auf eine Subroutine umgeschaltet oder muß aus irgendeinem Grunde eine Routine unterbrochen werden, so ist die Adresse des nächsten Speicherplatzes oder des nächsten Befehls in einer derartigen Routine sicherzustellen, um später zu dem Befehl der Routine, der nicht mehr ausgeführt worden ist, zurückkehren zu können.
Nach dem Stand der Technik, wie er beispielsweise in der US-Firmenschrift der Firma Advanced Micro Devices "Microprogramming Handbook" 1976, Seiten 1-1 bis 1-15 und Seiten 2-11 bis 2-15 dokumentiert ist, benutzt man für diesen Zweck eine Adresseninkrementierungseinrichtung und ein Rückkehr-Adreßregister. Mit Hilfe dieser Ausführungsform wird bei Ausführung eines Subroutineneintrags die inkrementierte Adresse in dem Rückkehr-Adreßregister als Adresse für den Steuerspeicher zur Rückkehr von der Subroutine aufbewahrt. Es ist einzusehen, daß diese bekannte Einrichtung eine aufwendige Inkrementierungs- und zugehörige Steuerlogik erfordert, die - obwohl zweckentsprechend - jedoch einen erheblichen Platzbedarf beansprucht und insgesamt zu erhöhten Herstellkosten führt.
Der Erfindung liegt demzufolge die Aufgabe zugrunde, die Erzeugung der Rückkehradressen aus Subroutinen zu vereinfachen.
Gelöst wird die vorstehende Aufgabe bei einer Mikroprogrammadressierungseinrichtung gemäß dem Oberbegriff des Patentanspruchs 1 in der Weise, daß eine Zustandsänderungseinrichtung vorgesehen ist, die bei Rückkehr von der zweiten Mikroprogrammroutine zur Wiederaufnahme der Ausführung der unterbrochenen ersten Mikroprogrammroutine den Zustand eines Bits der betreffenden Bits der der betreffenden letzten Mikroinstruktion zugehörigen Adresse zu invertieren gestattet, bevor zu der Ausführung der ersten Mikroprogrammroutine zurückgekehrt wird.
Mit Hilfe dieser Erfindung wird in einem Datenverarbeitungssystem, dessen Operationsabfolge durch in einem Steuerspeicher gespeicherte Mikrobefehle, beispielsweise in der Art von Firmware, gesteuert wird, für die Rückkehr zu einer kurzzeitig unterbrochenen Routine eine vereinfachte und verbesserte Verfahrensweise angewandt. Die Adresse des letzten Mikrobefehls, der bei einer derartigen Routine vor einer solchen Programmunterbrechung ausgeführt worden ist, wird gespeichert, wobei später zu der betreffenden Routine dadurch zurückgekehrt wird, daß man die betreffende gespeicherte Adresse verwendet, wobei aber ein Bit dieser Adresse hinsichtlich seines Zustands durch Invertierung geändert ist.
Der Steuerspeicher wird auf der Grundlage des Inhalts der Steuerspeicherwörter sowie auch auf der Grundlage von anderen Eingangssignalen und zwar in Abhängigkeit von in dem Zentralprozessor ausgeführten Operationen adressiert. Die nächste Adresse wird dabei durch eine Adressenerzeugungslogik generiert. Dabei ist es wichtig, daß zur Adressierung des Steuerspeichers gleichzeitig der Status von mehr als einer Testbedingung (z. B. bei bedingtem Sprung) herangezogen und berücksichtigt wird. Würde man das nicht in geeigneter Weise berücksichtigen können, wäre es erforderlich, jeden der Status- oder Testzustände beispielsweise entsprechend taktgesteuert in ein Register zu laden. Dies wäre immer dann erforderlich, wenn sich diese Testbedingungen ändern. Es ist also wünschenswert, mehrere solche Funktionen gleichzeitig zu testen, ohne sie in ein taktgesteuertes Register laden zu müssen. Zur Realisierung dieser wünschenswerten Funktion enthält die Adressenerzeugungslogik einen Multiplexer mit mehreren Signaleingängen. Eines der Eingangssignale nimmt der Multiplexer von einem Verriegelungsmechanismus her auf, was die gleichzeitige Ausnutzung von mehr als einer Testbedingung zur Adressierung des Steuerspeichers ermöglicht. Durch die Verwendung von weiteren Eingangssignalen am Multiplexer kann der Steuerspeicher durch die Verwendung einer Verzweigungsadresseninformation sowie einer weiteren Testzustandsinformation adressiert werden. Ein Seiten-Register liefert die Seiten-Adresse für eine Vielzahl von Seiten, die in dem Steuerspeicher enthalten sind, wobei die Speicherplätze in jeder derartigen Seite dadurch adressiert werden, daß die oben erwähnte Multiplexer-Signalkombination verwendet wird. Durch die Bereitstellung der Möglichkeit, mehr als eine Testbedingung berücksichtigen zu können, kann die Adressierung des Steuerspeichers schneller erfolgen, und demgemäß wird auch die Gesamtleistung des Datenverarbeitungssystems erhöht.
Bei dem nachfolgend beschriebenen Ausführungsbeispiel einer Mikroprogrammadressierungseinrichtung umfaßt das Datenverarbeitungssystem einen Steuerspeicher mit einer Vielzahl von Speicherplätzen, deren jeder zur Speicherung eines Steuerwortes dient, welches für die Steuerung der Operation des Prozessors verwendet wird. Ferner ist eine Anordnung für die Aufnahme einer Vielzahl von Signalen vorgesehen bzw. eingeschlossen, die kennzeichnend sind für die Statusinformation des Datenprozessors. Außerdem dient die betreffende Anordnung zur Aufnahme einer Instruktion bzw. eines Befehles, die bzw. der kennzeichnend ist für die Adresseninformation, die zur Adressierung des Steuerspeichers herangezogen wird. Außerdem ist eine Anordnung zur Aufnahme eines ersten ausgewählten Teiles eines adressierten Steuerwortes der Steuerwörter vorgesehen. Eine erste Multiplexeranordnung ist ebenfalls vorgesehen, die einen Ausgang aufweist. Diese erste Multiplexeranordnung gibt die Abgabe von Signalen an ihrem Ausgang frei, die kennzeichnend sind für die Statusinformation des ersten ausgewählten Teiles des adressierten Steuerwortes der Steuerwörter. Ferner ist eine Anordnung für die Decodierung der Information vorgesehen, die von der Befehlsaufnahmeanordnung aufgenommen wird, deren aufgenommener Befehl kennzeichnend ist für eine derartige Adresseninformation. Ferner ist eine dritte Anordnung vorgesehen, die entweder die Signale des ersten ausgewählten Teiles am Ausgang der ersten Multiplexeranordnung oder die von der Anordnung zur Decodierung aufgenommene Information auswählt. Außerdem ist eine zweite Multiplexeranordnung mit einem Ausgang und einer Vielzahl von Eingängen vorgesehen, von denen ein erster Eingang mit der Auswahlanordnung verbunden ist und von denen ein zweiter Eingang einen ausgewählten Teil eines adressierten Steuerwortes der Steuerwörter von dem Steuerspeicher her zugeführt erhält. Ferner ist eine Anordnung zur Adressierung des Steuerspeichers mittels eines der Eingangssignale vorgesehen, die von der zweiten Multiplexeranordnung aufgenommen werden.
Das Datenverarbeitungssystem enthält eine Verknüpfungsanordnung zur Ausführung von Verknüpfungsoperationen auf Daten hin. Diese Operationen schließen die Ausführung einer ersten Routine und einer zweiten Routine ein. Ferner ist eine Speichereinrichtung mit einer Vielzahl von eingespeicherten Instruktionen bzw. Befehlen vorgesehen, die dazu herangezogen werden, die Verknüpfungsanordnung zur Ausführung derartiger Operationen in einer durch die betreffenden Instruktionen bzw. Befehle bestimmten Weise freizugeben. Außerdem ist eine Adressierungseinrichtung zur Adressierung einer derartigen Speichereinrichtung vorgesehen. In der Verknüpfungsanordnung ist eine Anordnung enthalten, die zur Ausführung derartiger Routinen dient. Ferner ist eine Anordnung vorgesehen, die die Ausführung der ersten Routine unterbricht, um die zweite Routine auszuführen. Schließlich ist eine Anordnung vorgesehen, die eine Adresse aufzubewahren gestattet, welche dem letzten Befehl der ersten Routine zugehörig ist, welcher Befehl zum Zeitpunkt der Unterbrechung der Ausführung der betreffenden ersten Routine ausgeführt wurde. Eine derartige Adresse umfaßt eine Vielzahl von Bits, die jeweils einen ersten Zustand oder einen zweiten Zustand aufweisen. Ferner ist eine Anordnung vorgesehen, die den Zustand eines derartigen Bits der Adresse zu ändern gestattet, die dem letzten Befehl zugehörig ist, wobei die betreffende Änderung vor der Rückkehr zu der Ausführung der ersten Routine erfolgt, derart, daß der nächste Befehl einer derartigen ersten Routine adressiert wird, der dem betreffenden letzten Befehl der ersten Routine folgt.
Anhand von Zeichnungen wird eine Ausführungsform der Erfindung nachstehend beispielsweise näher erläutert.
Fig. 1 zeigt die Gesamtsystemkonfiguration, die die vorliegende Erfindung einschließt.
Fig. 2 zeigt ein Operationsfolgenzustandsdiagramm des Prozessors gemäß dem Ausführungsbeispiel der vorliegenden Erfindung.
Fig. 3 zeigt in einem Blockdiagramm den Prozessor nach dem Ausführungsbeispiel der vorliegenden Erfindung.
Fig. 4 veranschaulicht den Inhalt eines der Register des Prozessors gemäß dem Ausführungsbeispiel der vorliegenden Erfindung.
Fig. 5 zeigt in einem detaillierten Blockdiagramm ein Rechenwerk des Ausführungsbeispiels der vorliegenden Erfindung.
Fig. 6 veranschaulicht einen Teil des Inhalts des Steuerspeicherwortes, welches in Verbindung mit der vorliegenden Erfindung benutzt wird.
Fig. 7A bis 7F veranschaulichen Einzelheiten der die jeweils nächste Adresse erzeugenden Adressenerzeugungslogik gemäß dem Ausführungsbeispiel der vorliegenden Erfindung.
Fig. 8A und 8B veranschaulichen Einzelheiten einer Subroutinen- Logik gemäß dem Ausführungsbeispiel der vorliegenden Erfindung.
Fig. 9 veranschaulicht in einer Wertetabelle die Operation der in Fig. 7A dargestellten Logik.
Die in Fig. 1 dargestellte Gesamtkonfiguration des Datenverarbeitungssystems, das die erfindungsgemäße Mikroprogrammadressierungseinrichtung umfaßt, zeigt eine Zentraleinheit CPU 11, einen kommerziellen Befehlsprozessor 13, der die Kurzbezeichnung CIP (Commercial Instruction Processor) trägt, eine Steuereinrichtung 15 und einen Speicher 17, die alle über eine Systembusleitung 19 miteinander verbunden sind. Der kommerzielle Befehlsprozessor 13 ist vorgesehen zur Erweiterung des CPU-Befehlssatzes um weitere Befehle kommerziellen Typs, beispielsweise um alphanumerische Befehlstypen, Sortier-, Datenumsetzungs-, -bearbeitungsbefehle usw.
Der kommerzielle Befehlsprozessor erhält die Informationen von der Zentraleinheit und aus dem Hauptspeicher und verarbeitet sie in einer logischen Folge. Dabei treten vier CIP-Operationszustände wie folgt auf: Ruhezustand, Ladezustand, Belegtzustand und nicht programmierter Sprungzustand.
Die Aufnahme jedes kommerziellen Befehls durch die CIP-Einrichtung erfolgt üblicherweise gleichzeitig mit der Zentraleinheit, da diese jeden Befehl aus dem Hauptspeicher abholt und decodiert. Die Ausführung des Befehls in der CIP-Einrichtung erfolgt jedoch asynchron mit den Zentraleinheits- Operationen. Jeder Versuch zur Ausführung eines kommerziellen Befehls in dem Fall, daß eine CIP-Einrichtung in dem System nicht installiert ist, veranlaßt die Zentraleinheit, in einen bestimmten nicht programmierten Sprungzustand einzutreten.
Wie in Fig. 2 gezeigt, tritt die CIP-Einrichtung in den Block 200 ein und verbleibt im Ruhezustand (Block 202), wenn keine Informationsverarbeitung erfolgt; sie muß im Ruhezustand sein, um einen Befehl bzw. ein Kommando (d. h. eine CIP-Instruktion oder ein Eingabe/Ausgabe-Kommando) von der Zentraleinheit her aufzunehmen. Auf die Aufnahme eines Kommandos (Block 204) wird bei Gültigkeit (Block 205) die CIP-Einrichtung in den Ladezustand (Block 206) eintreten und in dem betreffenden Ladezustand solange verbleiben, bis die gesamte zugehörige Kommandoinformation aufgenommen ist. Wenn diese Information erfolgreich aufgenommen ist (Block 208), tritt die CIP-Einrichtung in den Belegtzustand (Block 210) ein, um die Information zu verarbeiten. Jegliche weiteren Versuche seitens der Zentraleinheit, mit der CIP-Einrichtung in Datenaustausch zu treten, während diese im Belegtzustand ist, werden von der CIP-Einrichtung nicht quittiert, und zwar solange nicht, bis diese wieder in den Ruhezustand zurückkehrt. Die CIP-Einrichtungs-Verarbeitung umfaßt die Datenaustauschaktivität mit dem Hauptspeicher; diese Aktivität tritt dann auf, wenn der/die erforderliche(n) Operand(en) abgeholt werden. Die CIP-Einrichtung tritt in den nicht programmierten Sprungzustand (Block 212) lediglich dann ein, wenn spezielle unzulässige Ereignisse auftreten (Block 214), wie die Ermittlung einer unzulässigen Operandenlänge oder ein außerhalb der Folge liegendes Kommando. Die Rückkehr zu dem Ruhezustand wird dann vorgenommen, wenn die Operation abgeschlossen worden ist (Block 216).
Sämtliche zugehörigen bzw. bedeutenden Instruktionstransfers zu der CIP-Einrichtung werden zusammen von der Zentraleinheit und der CIP-Einrichtung ausgeführt. Die betreffenden Instruktionen werden decodiert und von der CPU-Einheit zu der CIP-Einrichtung zusammen mit der gesamten zugehörigen Information ausgesendet, die für die Ausführung der betreffenden Instruktion erforderlich ist. Wenn der Informationstransfer abgeschlossen ist, setzen die Zentraleinheit und die CIP-Einrichtung die Verarbeitung ihrer entsprechenden Instruktionen fort. Jede CIP- Instruktion enthält ein 16 Bit breites Instruktionswort, welchem unmittelbar bis zu sechs zusätzliche Wörter vom Beschreibungstyp (ebenfalls mit einer Breite von 16 Bits) folgen, sogenannte Daten-Deskriptoren oder Etiketten. Das Instruktionswort enthält den CIP-Operationscode, der an die CIP-Einrichtung zur Verarbeitung ausgesendet wird. Die Datendeskriptoren beschreiben den Operandentyp, die Größe und den Speicherplatz im Speicher; das Etikett liefert die Adresse eines Fern-Datendeskriptors. Sowohl der Datendeskriptor als auch das Etikett werden von der Zentraleinheit verarbeitet; eine damit in Beziehung stehende Information, die durch diesen Vorgang gewonnen bzw. abgeleitet wird, wie ein Operandentyp und eine Speicheradresse, werden an die CIP-Einrichtung zur Verarbeitung ausgesendet. Die Zentraleinheit vollendet die Verfahrensweise dadurch, daß sie den Operationscode untersucht bzw. analysiert, der in jeder Instruktion enthalten ist. Wenn die Zentraleinheit eine CIP-Instruktion feststellt (was bedeutet, daß die CIP-Einrichtung im Ruhezustand ist), dann sendet die Zentraleinheit den Instruktions-Operationscode und die zugehörige bzw. damit in Beziehung stehende Information in der folgenden Weise aus: (i) Die Zentraleinheit sendet an die CIP-Einrichtung den Operationscode aus (d. h. das erste Wort der kommerziellen Instruktion). Die CIP-Einrichtung tritt in den Ladezustand ein, wenn sie den Operationscode annimmt; (ii) die Zentraleinheit ruft den ersten Datendeskriptor auf und fragt die Adressensilbe ab, um die effektive Adresse zu erzeugen; (iii) die Zentraleinheit sendet die folgende Information aus: Die 24 Bit umfassende effektive Byte-Adresse des ersten Operanden, den Inhalt des zugehörigen CPU-Datenregisters, sofern dies anwendbar ist, und den Datendeskriptor des ersten Operanden, der derart aktualisiert ist, daß er eine Byte-(8 Bits) oder Halbbyte (4 Bits)-Ziffernposition innerhalb eines Wortes wiedergibt; wenn der zweite und dritte Operand aufgetreten sind, führt die Zentraleinheit die zutreffenden Prozeduren in den Schritten ii und iii aus.
An dieser Stelle wird die CIP-Einrichtung mit der gesamten erforderlichen Information geladen, die zur Ausführung der kommerziellen Instruktion erforderlich ist, und außerdem tritt sie in den Belegtzustand ein, um die Instruktion auszuführen. Erforderlichenfalls tritt die CIP-Einrichtung in direkten Datenaustausch mit dem Hauptspeicher ein, um den anwendbaren Operand bzw. die anwendbaren Operanden zu erhalten. Es sei jedoch darauf hingewiesen, daß die CIP-Einrichtung niemals einen direkten Zugriff zu irgendeinem der CPU-Register vornimmt. Sie benutzt lediglich die Information, die ihr von der Zentraleinheit her zugesandt wird. Damit werden keine CPU-Register von der CIP-Einrichtung her modifiziert, und die Zentraleinheit setzt die Verarbeitung des nächsten und jedes nachfolgenden CPU-Befehls solange fort, bis einer der folgenden Zustände auftritt: (i) Die CIP-Einrichtung teilt über einen nicht programmierten Sprungvenktor (TV) der Zentraleinheit mit, daß ein unzulässiges Ereignis während der Ausführung der gerade laufenden kommerziellen Instruktion aufgetreten ist, oder (ii) von der Zentraleinheit wird ein internes oder externes Unterbrechungssignal ermittelt.
Wenn durch die Zentraleinheit ein Unterbrechungssignal ermittelt wird, führt die Zentraleinheit folgende Vorgänge aus. Die betreffende Zentraleinheit bestimmt, ob die letzte kommerzielle Instruktion von der CIP-Einrichtung abgeschlossen worden ist oder nicht. Die Zentraleinheit wartet auf die Beendigung der letzten kommerziellen Instruktion. Wenn die letzte kommerzielle Instruktion abgeschlossen ist, bestimmt die Zentraleinheit, ob dies zu einer nicht programmierten Sprunganforderung geführt hat. Wenn dies der Fall war, dann berücksichtigt die Zentraleinheit die nicht programmierte Sprunganforderung vor der Ausführung der Unterbrechung. Dies führt zu einer typischen Kontext-Aufbewahrungs/Wiederspeicherungs- Operation, um sämtliche relevanten CPU- und CIP-Status- Informationen abzuspeichern, die benötigt werden. Mit der Beendigung der geforderten CPU-Operationen zur Verarbeitung einer CIP-Sprunganforderung oder dann, wenn keine Sprunganforderung vorliegt und eine CIP-Instruktion für die Verarbeitung verfügbar ist, führt die Zentraleinheit folgende Vorgänge aus. Die Zentraleinheit aktualisiert ihren Programmzähler, um auf die kommerzielle Instruktion hinzuzeigen, die sie versucht hat auszulösen. Die Zentraleinheit schiebt den Versuch der Verarbeitung der kommerziellen Instruktion solange hinaus, bis die vorliegende Unterbrechung bedient ist. Die betreffende Zentraleinheit berücksichtigt und bedient die durch eine externe Einrichtung hervorgerufene Unterbrechung.
Wenn die CIP-Einrichtung eine Instruktion ausführt, können sämtliche CPU-Register, einschließlich jener Register, auf die durch den laufenden kommerziellen Befehl bzw. die betreffende Instruktion Bezug genommen wird, durch ein Programm über die CPU-Instruktionen geändert werden. Die Software braucht jedoch den Operanden für eine kommerzielle Instruktion solange nicht zu modifizieren, bis die CIP-Einrichtung die Verarbeitung der betreffenden Instruktion ausgeführt hat. Ansonsten werden unspezifizierte Ergebnisse auftreten. Die in dem CIP-Instruktionsrepertoire enthaltenen Verzweigungsinstruktionen werden von der Zentraleinheit und von der CIP-Einrichtung synchron ausgeführt.
Die drei Datentypen, welche die Datenwörter bilden, die von der CIP-Einrichtung verarbeitet werden, sind alphanumerische Daten, Binärdaten und Dezimaldaten. Jeder Datentyp ist in Binärinformations-Einheiten klassifiziert. Durch Definition dieser Einheit, wenn diese durch Bezugnahme benutzt wird, sind die alphanumerischen und Binärdatenzeichen durch acht Bits (ein Byte) gegeben; bei Benutzung, um auf Dezimaldatenzeichen Bezug zu nehmen, sind sie gleich vier Bits (Halbbyte) für gepackte Dezimaldaten und acht Bits (ein Byte) für Zeichenfolgen-Dezimaldaten. Binärzahlen mit einfacher Genauigkeit umfassen ebenfalls zwei Einheiten (zwei Bytes), und Binärzahlen doppelter Genauigkeit umfassen vier Einheiten (vier Bytes).
In Fig. 3 ist ein Hauptblockdiagramm des kommerzielle Instruktionen verarbeitenden Prozessors 13 gemäß der vorliegenden Erfindung veranschaulicht, wobei sämtliche Hauptdaten-Übertragungswege zwischen den Registern des Prozessors veranschaulicht sind.
Der Steuerspeicher 10 umfaßt eine Vielzahl von Speicherplätzen, und zwar einen für jeden Steuerspeicher oder jedes Firmwarewort. Diese Firmwarewörter steuern direkt oder indirekt die Prozessorfolgen, die Datentransferwege und die Busoperationen.
Die Operandenregisterdateien und das Rechen- und Verknüpfungswerk (RALU) 12 umfassen hauptsächlich zwei Registerdateien, eine Rechen-Verknüpfungseinheit (ALU) und die zugehörigen Multiplexer und Steuerregister. In die Einheit 12 sind ferner die Operandenregisterdateien (RP 1 und RP 2) eingeschlossen, deren jede 16 Bitstellen enthält, die dazu herangezogen werden, Operanden für die Ausführung in dem Rechenwerk ALU zu puffern. Die Rechenwerk-Eingangsmultiplexer und Verriegelungsschaltungen sind durch folgende Einrichtungen gebildet; Drei 2-zu-1-Multiplexer (Zonenauswahl), zwei 4-zu-1-Multiplexer (Ziffernauswahl) und zwei 8-Bit-Verriegelungsschaltungen (Byte-Verriegelungsschaltungen). Diese Multiplexer und Verriegelungsschaltungen werden dazu herangezogen, Daten von den Operanden- Registerdateien zu dem Rechen- und Steuerwerk ALU abzugeben. Daten können ferner von dem für das vorliegende Produkt vorgesehenen Zähler an die linke Seite des Rechen- und Steuerwerkes ALU oder von der Operandenregisterdatei 2 an das Multiplikationsregister abgegeben werden. Das 8-Bit- Rechen- und Steuerwerk ALU (welches aus zwei 4-Bit-ALU- Chips, einem Übertrag-Vorschau-Chip und einem Eintrag/Austrag- Flipflop besteht) vermag die folgenden Operationen zwischen den linken (1) und rechten (2) Eingängen auszuführen: Binäre Addition, binäre Subtraktion Eingang 1 von Eingang 2, binäre Subtraktion Eingang 2 von Eingang 1, logisches ODER, logisches UND, Exklusiv-ODER, Setzen des ALU-Ausgangs auf FF und Löschen des ALU-Ausgangs zu 00. Die RALU-Einrichtung wird im Zusammenhang mit Fig. 5 im einzelnen erläutert werden.
Die Überschuß-Setz-(XS 6)-Korrekturlogik der RALU-Einrichtung wird dann freigegeben, wenn das Rechen- und Steuerwerk ALU im Dezimalbetrieb arbeitet; es wird dazu herangezogen, das binäre Ausgangssignal von dem Addierer auf die richtige Dezimalziffer zu ändern, während das Übertragungsausgangssignal für nachfolgende Operationen modifiziert wird. Die XS 6-Korrektur wird unter Heranziehung eines 32-Bit-zu-8-Bit-PROM-Chips vorgenommen, welches die korrigierten drei Bits hoher Wertigkeit der Ziffer codiert und den korrigierten Übertrag erzeugt. Für weitere Steuerungen steht am Ausgang des PROM-Chips ferner eine weniger als zwei Funktionen umfassende Ziffer zur Verfügung. Der Ausgangs-Multiplexer des Rechen- und Steuerwerkes ALU wird dazu herangezogen, entweder die oberen vier Bits des Addiererausgangssignals oder die korrigierten Dezimalzonenbits an die interne Busleitung 14 abzugeben, und zwar in Abhängigkeit davon, ob das Rechen- und Steuerwerk ALU im Binärbetrieb oder im Dezimalbetrieb arbeitet. Die RALU-Steuerlogik umfaßt drei Register: RF 1 A - Registerdatei-1-Adreßregister, RF 2 A - Registerdatei- 2-Adreßregister und ALMR - ALU-Betriebssteuerregister. Diese Register steuern in Verbindung mit mehreren Mikrobefehlen sämtliche Operationen innerhalb der RALU-Einrichtung. Neben den zuvor beschriebenen Registern und der zuvor beschriebenen Steuereinrichtung sind zwei weitere Register vorgesehen, die als RALU-Register klassifiziert werden. Diese Register sind ein für das gegenwärtige Produkt vorgesehener Zähler (CPRC) und das Multiplikationsregister (MIER). Auf diese Register bzw. Einrichtungen wird weiter unten noch eingegangen werden.
Die Steuerdatei 16, die auch als Registerdatei C (RFC) bezeichnet wird, ist ein RAM-Speicher mit 16 Speicherstellen zu 24 Bits. Dieser Speicher wird hauptsächlich dazu herangezogen, die gesamte auf die Instruktion bezogene Information zu speichern, die von der Zentraleinheit 11 ausgeht (z. B. Aufgabe- bzw. Prozeßwörter, Datendeskriptoren, effektive Adressen, etc.). Die Steuerdatei enthält ferner mehrere Arbeitsspeicherplätze, die von der Prozessor-(CIP)-Firmware ausgenutzt werden. Die Steuerdatei 16 nimmt die Bits 0-7 entweder von der internen Busleitung 14 oder von dem Busadreßregister (MAR) 18 über den ODER-Verknüpfungs-Multiplexer 21 auf. Das Busadreßregister (MAR) 18 und die Adressenaddiererlogik 20 werden nunmehr näher erläutert. Das Register 18 ist ein 24-Bit-Adreßregister, welches hauptsächlich dazu herangezogen wird, die Systembusleitung 19 zu adressieren. Es umfaßt ein zwei Eingänge aufweisendes 8-Bit-Multiplexerregister am unteren Ende und eine 16-Bit-Inkrementierungs/ Dekrementierungs-Einrichtung am oberen Ende. Das in die unteren acht Bits durch Multiplexsteuerung eingegebene Eingangssignal stammt entweder von der Steuerdatei 16 oder vom Ausgang des Adressenaddierers 20. Der Adressenaddierer 20 ist eine 8-Bit-Zweierkomplement-Addierereinheit, die hauptsächlich dazu herangezogen wird, den Inhalt des Busadreßregisters 18 zu erhöhen oder zu vermindern. Die Eingangssignale für den Adressenaddierer 20 sind die acht Bits niedriger Wertigkeit des Busadreßregisters und des 8-Bit-Schieberegisters (MSR) 22. Das Schieberegister (MSR) 22 ist ein 8-Bit-Universalschieberegister, welches von der internen Busleitung 14 geladen werden kann und welches eine Linksverschiebung oder eine Rechtsverschiebung um ein Bit auszuführen vermag (was bedeutet, daß eine Verschiebung bei offenem Ende mit einer Null-Füllung erfolgt). Das Schieberegister wirkt als Eingangseinrichtung für den Adressenaddierer 20, um den Inhalt des Busadreßregisters 18 zu erhöhen oder herabzusetzen. Darüber hinaus kann das Bit Null des Schieberegisters 22 in das ALU-Eintrag-Flipflop geladen werden, was während der Ausführung der Umsetzinstruktionen von Nutzen ist.
Das Busleitungs-Ausgabedatenregister (OUR) 24 ist ein 16-Bit-Datenregister, welches dazu herangezogen wird, Daten auf die Datenleitung der Busleitung 19 zu übertragen. Das betreffende Register wird von der internen Busleitung 14 entweder mit dem unteren Byte oder dem oberen Byte oder dem gesamten 16-Bit-Wort geladen. Das Busleitungs-Eingabedatenregister (INR) 26 ist ein 16-Bit-Datenregister, welches dazu herangezogen wird, Daten von den Datenleitungen der Busleitung 19 aufzunehmen. Der Inhalt des Eingabedatenregisters kann entladen und an die interne Busleitung 14 abgegeben werden.
Das Eingabe-Funktionscoderegister (BFCR) 28 ist ein 6-Bit- Register, welches dazu herangezogen wird, den Funktionscode dann zu speichern, wenn die CIP-Einrichtung irgendein auf der Busleitung 19 auftretendes Eingabe- oder Ausgabekommando annimmt. Anschließend überprüft die Firmware den Inhalt des Funktionscoderegisters 28 und führt das spezifizierte Kommando aus. Das Eingabe-Adressenbankregister (INAD) 30 ist ein 8-Bit-Register, welches dazu herangezogen wird, die höherwertigen acht Speicheradressenbits zu speichern, die über die Adressenleitungen der Busleitung 19 aufgenommen werden. Die höherwertigen acht Adressenbits umfassen die Speichermoduladresse; sie werden von der Zentraleinheit 11 infolge eines sogenannten IOLD-Kommandos oder eines effektiven Adressenfunktionsausgabecodes übertragen. Die niederwertigen 16 Bits der Speicheradresse werden über die Datenleitungen der Busleitung 19 aufgenommen und in das INR-Register 26 eingetastet, wodurch die erforderliche 24-Bit-Hauptspeicheradresse gebildet wird.
Das CIP-Anzeigeregister 32 ist ein 8-Bit-Speicherregister, in welchem jedes Bit individuell gesetzt oder zurückgesetzt werden kann. Die Anzeigeregisterbitkonfiguration ist in Fig. 4 veranschaulicht. Die TRP- und TRP-Leitungsanzeigen werden von der CIP-Einrichtung 13 lediglich für eine interne Verarbeitung benutzt; sie sind für die Software nicht sichtbar. Die TRP-Leitungs-(CIP- Sprungleitungs)-Anzeige wird dazu herangezogen, die Zentraleinheit 11 über einen existierenden nichtprogrammierten CIP-Sprungzustand zu informieren; die betreffende Anzeige wird über die Busleitung 19 durch das externe Sprungsignal übertragen. Wenn die TRP-Anzeige (nicht programmierter CIP-Sprung) gesetzt ist, dann ermöglicht diese Anzeige der CIP-Einrichtung, lediglich Eingabekommandos von der Zentraleinheit anzunehmen.
Das Untersuchungs- bzw. Analyseregister (AR) 34 ist ein 16-Bit-Register, welches hauptsächlich dazu herangezogen wird, Mikroprogrammverzweigungen (maskierte Verzweigungen) und die Überlochung-Byte-Codierungs/Decodierungs-Logik zu steuern. Dieses Register wird mit dem gesamten 16-Bit-Wort von der internen Busleitung 14 her geladen. Das mikroprogrammierbare Schalterregister (MPSR) 36 ist ein 8-Bit-Register, in welchem jedes Bit individuell gesetzt oder zurückgesetzt werden kann, und zwar unter Mikroprogrammsteuerung. Jedes Bit innerhalb des MPSR-Registers 36 wird als Kennzeichen ausgenutzt, um die Mikroprogrammierung zu erleichtern (was bedeutet, daß die Firmware jedes der Registerbits prüfen und Verzweigungsoperationen in Abhängigkeit von den Testergebnissen ausführen kann). Einige dieser Bits werden außerdem zur Steuerung gewisser Hardwarefunktionen der CIP-Einrichtung 13 ausgenutzt.
Das ROS-Datenregister (RD) 38 ist ein 52-Bit-Speicherregister, welches dazu herangezogen wird, das Steuerspeicher- Ausgangssignal (Firmware-Wort) für den vorliegenden Firmware-Zyklus zu speichern. Das Mikroprogramm- Rückkehr-Adreßregister (RSRA) 40 ist ein 11-Bit-Register, welches vom Ausgang der die jeweils nächste Adresse erzeugenden Adressenerzeugungs-(NAG)-Logik 42 geladen wird. Das betreffende Register wird dazu herangezogen, die Mikroprogramm-Rückkehradresse zu speichern, wenn eine Firmware-Subroutine ausgeführt wird. Der Registerdatei-C-Adressen- Multiplexer/Wähler (RFCA) 31 ist ein 4 Bit umfassender 2-zu-1-Wähler, der imstande ist, einen der 16 Speicherplätze zu adressieren, die in der Registerdatei C enthalten sind (das ist die Steuerdatei 16). Dieser Wähler 31 wählt eine Kombination des Funktionscoderegister 28 und entweder des Zählers (1) 46 oder ausgewählter Bits des ROS-Datenregisters 38 aus. Die CIP-Zähler 44 umfassen drei 8-Bit-Vorwärts/Abwärts-Zähler 46, 48 und 50, die als Zähler 1 (CTR 1), als Zähler 2 (CTR 2) bzw. als Zähler 3 (CTR 3) festgelegt bzw. bezeichnet sind. Diese Zähler werden über die interne Busleitung 14 geladen/entladen. Der Inhalt jedes Zählers ist für Test- und Verzweigungsoperationen verfügbar.
Die Überlochungs-Byte-Decoder/Codierer-Logik 52 umfaßt zwei PROM-Speicherchips mit 512 Speicherplätzen zu vier Bits. Diese Speicherchips werden dazu herangezogen, den Inhalt des Prüfregisters (AR) 34 zu decodieren/zu codieren. Das Byte, welches decodiert wird, wird aus den AR-Bits 1 bis 7 erhalten, und der codierte Ziffernanfang wird aus den AR-Bits 4 bis 7 erhalten. Die Decodier/Codier-Operation wird dadurch ausgeführt, daß die AR-Bits 1 bis 7 dazu herangezogen werden, einen bestimmten PROM-Speicherplatz zu adressieren. Der Inhalt des bezeichneten PROM-Speicherplatzes wird so codiert, daß er übereinstimmt, und zwar entweder: (1) mit der decodierten Ziffer, ihrem Vorzeichen und ihrer Gültigkeit oder (2) mit dem codierten überlochten Byte. Das Bit 4 des MPSR-Registers 36 legt fest, ob eine Decodieroperation oder eine Codieroperation ausgeführt wird, während das MPSR-Bit 1 das Vorzeichen der codierten Ziffer anzeigt. Außerdem ist das Ausgangssignal der Überlochungs- Byte-Decodier/Codier-Logik auf beiden Hälften der internen Busleitung 14 verfügbar.
Die CIP-Testlogik 54 wählt eines von 32 möglichen Firmware- Testbedingungen bzw. Testzuständen für die Eingabe an die die nächste Adresse erzeugende Adressenerzeugungslogik 42 aus. Der tatsächliche oder falsche Zustand (1- oder 0-Zustand) der überprüften Funktion steuert das Bit 50 des für die nächste Adresse vorgesehenen Steuerspeicher-Adressenfeldes (was bedeutet, daß das Bit 50 gesetzt oder zurückgesetzt wird, und zwar in Abhängigkeit vom Zustand der getesteten Funktion). Die die nächste Adresse erzeugende Adressenerzeugungs-(NAG)- Logik 42, die in der CIP-Einrichtung 13 enthalten ist, wendet eine der folgenden fünf Methoden an, um die nächste Firmware-Adresse zu erzeugen: direkte Adresse, Test und Verzweigung, maskierte Verzweigung, Hauptverzweigung oder Subroutinen-Rückkehr. Das Verfahren der direkten Adresse bzw. direkten Adressierung wird dann benutzt, wenn eine unbedingte Verzweigung zu dem nächsten sequentiellen Steuerspeicherplatz ausgeführt wird. Dies wird dadurch bewirkt, daß die Bits 41 bis 51 des Steuerspeicherwortes dazu herangezogen werden, die nächste Adresse zu bilden. Diese Bits umfassen das nächste Adresse- (NA)-Feld, welches direkt irgendeinen der verfügbaren Steuerspeicherplätze adressieren kann. Das Verfahren des Testens und Verzweigens wird dann benutzt, wenn eine 2-Wege-Bedingungsverzweigung (Testzustand erfüllt) innerhalb einer Firmware-Seite ausgeführt wird (eine Firmware- Seite ist ein 128 Speicherplätze umfassendes Segment innerhalb des Steuerspeichers). Dieser Vorgang wird dadurch ausgeführt, daß die Steuerspeicherbits 41, 42, 43, 44 und 50 dazu herangezogen werden, eine Testbedingung bzw. einen Testzustand auszuwählen. Sodann wird in Abhängigkeit vom Zustand der überprüften Funktion eine Verzweigung zu einem der beiden Speicherplätze ausgeführt. Die nach dieser Methode ausgeführte Verzweigungsoperation ist eine Modul-2-Operation (was bedeutet, daß die beiden möglichen Verzweigungsadressen um zwei Speicherplätze auseinanderliegen). Die Modul-2-Adresse wird wie folgt gebildet: (1) Wenn der Testzustand erfüllt ist, wird das Bit 9 der Adresse auf 1 gesetzt, oder (2) das Bit 9 der Adresse wird auf 0 gesetzt, wenn der Testzustand nicht erfüllt ist. Die Methode der maskierten Verzweigung wird normalerweise benutzt, wenn eine Verzweigung anhand des Inhalts des Prüfregisters-(AR)-34 oder anhand bestimmter anderer Bedingungen erfolgt; dies führt zu einer Verzweigung zu den Speicherplätzen 2, 4, 8 oder 16 innerhalb derselben Firmware-Seite (eine Firmware-Seite ist ein 128 Speicherplätze umfassendes Segment innerhalb des Steuerspeichers). Die Methode der Hauptverzweigung wird dann benutzt, wenn die Verzweigung innerhalb einer Firmware-Seite (128 Wörter) erfolgt. Eine CPU/CIP-Schnittstellen- Routine nutzt diese Methode aus, um die geforderte 16fache Verzweigung bezüglich des Inhalts des Funktionscoderegisters 28 auszuführen. (INB-Hauptverzweigung) und andere Steuerfunktionen (EOP-Hauptverzweigung). Die Methode der Subroutinen-Rückkehr wird dazu herangezogen, die Firmware zu dem nächsten ungeraden oder geraden Steuerspeicherplatz nach Ausführung einer Firmware-Subroutine zurückzuführen. Die Rückkehradresse wird aus dem Rückkehradressen- (RSRA)-Register 40 erhalten; sie muß in diesem Register 40 vor der Ausführung der bezeichneten Subroutine gespeichert sein.
Die interne Busleitung 14 weist eine Breite von 16 Bits auf; sie wird hauptsächlich dazu herangezogen, Daten zwischen den CIP-Registern, einschließlich der Speicherplätze innerhalb der Registerdateien, zu übertragen. Die interne Busleitung nimmt Daten von verschiedenen Quellen auf, wie dies in Fig. 2 veranschaulicht ist. Die auf der internen Busleitung 14 auftretenden Ausgangssignale werden zu verschiedenen Registern innerhalb der CIP-Einrichtung hin abgegeben.
Die Paritätsprüflogik 56 ist zwischen der Busleitung 19 und der internen Busleitung 14 angeschlossen; sie wird dazu herangezogen, die Parität der eintreffenden Daten zu überprüfen. Die Paritätsgeneratorlogik 58 auf der anderen Seite wird dazu herangezogen, das richtige Paritätsbit für die Übertragung für die Busleitung 19 zu erzeugen. Die Busleitungs-Anforderungsslogik 60 und die Busleitungs-Antwortlogik 62 werden zum Zwecke der Freigabe der CIP-Einrichtung ausgenutzt, um einen Zugriff zu der Busleitung 19 zu erhalten und um auf jegliche Anforderungen, einen Zugriff zu der CIP-Einrichtung zu erhalten, zu antworten. Die Verknüpfungseinrichtungen 60 und 62 sind in der US-PS 39 93 981 beschrieben.
In Fig. 5 ist ein Hauptblockdiagramm der RALU-Einrichtung 12 gezeigt, wobei sämtliche Hauptdaten-Übertragungswege und Steuerleitungen veranschaulicht sind. Die Steuerleitungen sind dabei durch gestrichelte Linien angedeutet, um das Verständnis des Betriebs der betreffenden Leitungen zu erleichtern. Der Einfachheit halber ist die Beschreibung der RALU-Einrichtung in sieben Bereiche unterteilt: Operandenregisterdateien, ALU-Eingangsmultiplexer und Verriegelungsschaltungen, Rechenlogikeinheit, XS6-Korrekturlogik, ALU-Ausgangsmultiplexer, RALU-Steuerlogik und verschiedene RALU-Register. Die Operandenregisterdateien RF1 70 und RF2 72 enthalten jeweils vier RAM-Speicherchips, die zur Kurzzeitspeicherung für CIP-Operanden benutzt werden. Die Adressen für jede der Registerdateien werden von zwei 6-Bit-Adreßregistern RF 1A 74 bzw. RF 2A 76 abgegeben. Die Bits 0 bis 3 des jeweiligen Adreßregisters liefern die Adresse des Speicherplatzes innerhalb der zugehörigen Registerdatei, während die niederwertigen Bits für die Byte- und Ziffernauswahl am Ausgang der Registerdatei vorgesehen sind. Diese beiden Adreßregister können um 1, 2 oder 4 inkrementiert oder dekrementiert werden (d. h. um Ziffern, Bytes oder Wörter). Wie in Fig. 5 veranschaulicht, wird das Ausgangssignal von jeder Registerdatei den Eingängen zweier Multiplexer zugeführt (das heißt einem Paar von Multiplexern für jede Registerdatei), die eine Auswahl zwischen der Zonen- und Zifferninformation treffen. Die Auswahl wird durch die Bits 4 und 5 des zugehörigen Adreßregisters bewirkt. Das Bit 4 trifft eine Auswahl dahingehend, ob die Bits 0 bis 3 oder acht bis 11 (von der Registerdatei) dem Ausgang der 2-zu-1-Multiplexer 78 oder 80 zugeführt werden, während das Bit 5 zur Auswahl der Registerdatei-Bits herangezogen wird, die die Ziffer bilden, welche dem Ausgang des 4-zu-1-Multiplexers 82 oder 84 zugeführt wird. Die verschiedenen Register und Multiplexer sind derart angeschlossen, daß sie über die verschiedenen Steuerleitungen gesteuert werden, die durch gestrichtelte Linien veranschaulicht sind; zu diesen Steuerleitungen gehören beispielsweise die Steuerleitungen 71, 73, 75 und 77. Ein dritter 2-zu-1-Multiplexer 86 wird dazu herangezogen, auszuwählen, ob der Inhalt des für das gerade vorliegende Produkt vorgesehenen Produktzählers (CPRC) 88 oder die Ziffer von der RF1-Einrichtung an die A-Verriegelungsschaltungen 90 abgegeben wird. Dieser Multiplexer wird durch das ALMR-Register 92 gesteuert. Die ALU-Eingangsverriegelungsschaltungen, die A-Verriegelungsschaltungen 90 und die B-Verriegelungsschaltungen 106 nehmen sowohl die Zoneninformation als auch die Zifferninformation von den ALU-Eingangsmultiplexern auf und verriegeln die Daten in Registerdateien während der Schreiboperationen. Die Ausgänge der Verriegelungsschaltungen liefern die Zonen- und Ziffern-Information an die linke Seite bzw. an die rechte Seite der ALU-Einrichtung. Der für das gerade vorliegende Produkt vorgesehene Produktzähler (CPRC) ist ein 4-Bit-Vorwärts/Rückwärts- Dezimalzähler, der hauptsächlich während der Ausführung der Dezimal-Multiplikations- und Divisionsoperationen benutzt wird. Das Multiplikationsregister (MIER) 94 ist ein 4-Bit-Vorwärts/Rückwärts-Binärzähler, der hauptsächlich während der Dezimal-Multiplikations- und Divisionsoperationen benutzt wird. Das ALU-Betriebssteuerregister (ALMR) 92 ist ein 6-Bit-Steuerregister, welches zur Steuerung sämtlicher ALU-Operationen herangezogen wird. Das Registerdatei-1-Adreßregister (RF1A) 74 ist ein 6-Bit-Adreßregister, welches zwei Funktionen ausführt: (1) Abgabe von Adressen für die Registerdatei 1 (70) und (2) Steuerung von zwei der drei ALU-Eingangsmultiplexer, die der Registerdatei 1 zugehörig sind. Das Registerdatei-2-Adreßregister (RF2A) 76 ist ein 6-Bit-Adreßregister, welches zwei Funktionen ausführt: (1) Abgabe von Adressen für die Registerdatei 2 (72) und (2) Steuerung der der Registerdatei 2 zugehörigen ALU- Eingangsmultiplexer. Sämtliche Operationen der Rechenlogikeinheit (ALU) 100 werden entweder im Dezimalbetrieb oder im Binärbetrieb ausgeführt. Der Dezimalbetrieb wird dann benutzt, wenn mit einer Dezimalzifferninformation gearbeitet wird, während der Binärbetrieb für Byte-(Alpha)-Operationen benutzt wird. Die beiden Betriebsarten steuern ferner die Überschuß-6-XS6-Korrekturlogik 102 und die Eingangssignale für das Übertrage-Flipflop. Im Dezimalbetrieb wird das Übertrag-Flipflop für den Übertrag von den niederwertigen 4 Bits der ALU-Einrichtung geladen, während es im Binärbetrieb mit dem Übertrag von den acht Bits der ALU-Einrichtung für nachfolgende Rechenoperationen geladen wird. Das Übertrag-Flipflop wird unter Mikroprogrammsteuerung geladen, wenn ein Übertrag für nachfolgende Operationen weitergeleitet werden muß. Darüber hinaus kann das Übertrag-Flipflop von dem MSR-Register geladen und unter Mikroprogrammsteuerung gesetzt oder zurückgesetzt werden. Die XS6-Korrekturlogik 102 weist ein 32-Bit-zu-8-Bit-PROM- Speicherchip und die zugehörige Steuerlogik auf, um die höherwertigen drei Bits des Ziffernausgangssignals der ALU-Einrichtung zu korrigieren. Die XS6- Korrektur wird ausgeführt, sofern (1) die ALU-Einrichtung im Dezimal-Additionsbetrieb arbeitet und ein Dezimalübertrag eingeschlossen ist, oder wenn das Ziffernausgangssignal der ALU-Einrichtung 100 größer ist als 9, und (2) im Dezimal-Subtraktionsbetrieb, wenn ein Borgen eingeschlossen ist (d. h. bei Fehlen eines Übertrags von dem Ziffernteil des Addierers). Der PROM-Chip weist fünf Adressenleitungen auf. Drei dieser Leitungen umfassen die drei höherwertigen Bits von dem Ziffernausgang der ALU-Einrichtung, während die anderen beiden Adressenleitungen den Typ der ausgeführten Operation anzeigen (d. h. Additions-Korrektur, Subtraktions-Korrektur oder keine Korrektur). Der codierte Inhalt des PROM-Chips ist durch die drei höherwertigen korrigierten Bits der Ziffer, den korrigierten Dezimal-Übertrag und den Ziffernzustand, der kleiner ist 2, gegeben. Der ALU-Ausgangsmultiplexer 104 wählt zwischen den oberen vier Bits des Addierer-Ausgangssignals und den korrigierten Dezimalzonenbits für die Abgabe an die interne Busleitung aus. Die Konfiguration der Zonenbits (für den Dezimalbetrieb) hängt davon ab, ob ASCII- oder EBCDIC- Daten benutzt werden (was bedeutet, daß bei Verwendung von ASCII-Daten der Zonen-Bits ein Wert von 3 gegeben wird, während bei Verwendung von EBCDIC-Daten der Zonen-Bits ein Wert von F gegeben wird).
Die RALU-Steuereinrichtungen umfassen Register RF 1 A 74, RF 2 A 76 und ALMR 92 zuzüglich verschiedener, der RALU- Einrichtung zugehöriger Mikrobefehle. Darüber hinaus steht das ALU-Übertrag-Flipflop unter Mikroprogrammsteuerung.
Das Übertrag-Flipflop kann (sofern erforderlich) vorgelöscht oder voreingestellt werden, und zwar durch die entsprechenden Mikrobefehle, und ferner kann es geladen werden: (1) durch den 4-Bit-Ziffernübertrag für Dezimaloperationen, (2) durch den 8-Bit-Binärübertrag für Binäroperationen oder (3) durch das Bit 0 des MSR-Registers 22 während der Ausführung von Umsetzbefehlen bzw. -instruktionen. Das ALMR-Register 92, welches sämtliche ALU- Operationen steuert, wird von den Steuerspeicher-Bits 2 bis 7 geladen. Das Bit 0 legt dabei fest, ob die ALU- Einrichtung im Dezimalbetrieb oder im Binärbetrieb arbeitet, was bedeutet, daß das Übertrag-Ausgangssignal der ALU-Einrichtung vom Bit 4 (Ziffernübertrag) oder vom Bit 0 (Binärübertrag) stammt. Das Bit 0 steuert ferner sowohl die ALU-Korrektur (XS 6) für Dezimaloperationen als auch den ALU-Ausgangsmultiplexer 104; der Multiplexer legt fest, ob die vier Bits hoher Wertigkeit der ALU-Einrichtung oder die zugeführten Zonenbits an die interne Busleitung 14 weitergeleitet werden. Die Bits 1, 2 und 3 werden zur Steuerung von Operationen innerhalb der ALU-Einrichtung benutzt. Das Bit 4 legt fest, ob die Zonenbits einen Wert von 3 oder F erhalten (bei ASCII-Daten erhalten die Zonenbits einen Wert von 3; bei ADCDIC-Daten erhalten die Zonenbits einen Wert von F). Das Bit 5 legt fest, ob die ausgewählte Ziffer von der Registerdatei 1 oder der Inhalt des gerade benutzten Produktzählers 88 zu den Verriegelungsschaltungen 90 weitergeleitet wird, die der linken Seite der ALU-Einrichtung zugehörig sind. Das Register RF 1 A liefert die Adresse und die Steuersignale für die Registerdatei 1 und die zugehörigen ALU-Eingangsmultiplexer. Das Register RF 2 A liefert die Adressen und Steuersignale für die Registerdatei 2 und die zugehörigen ALU-Eingangsmultiplexer.
Die Steuerdatei 16 ist in zwei Bereiche unterteilt: den oberen Bereich (Bits 0 bis 7) und den unteren Bereich (Bits 8 bis 23). Jeder Bereich der Steuerdatei kann wie folgt geladen werden: Unterer Bereich RFC von der internen Busleitung (Bits 0 bis 15), oberer RFC- Bereich von der internen Busleitung (Bits 0 bis 7), unterer RFC-Bereich von der internen Busleitung (Bits 0 bis 15) und oberer RFC-Bereich von dem Busleitungs- Adreßregister 18 (Bits 0 bis 7). Den zur Ausführung der obigen Operationen benutzten Funktionen ist eine Adresse zugehörig, die dem Speicherplatz RFC 16 entspricht, der geladen wird bzw. ist. Diese Adresse hat ihren Ursprung entweder in dem Funktionscoderegister 28 oder in dem Steuerspeicher 10. Damit steht die RFC-Adresse in direkter Beziehung zu dem Typ der Daten, die von der Zentraleinheit 11 abgegeben werden, oder sie wird durch den Funktioncode angezeigt.
Das CIP-Firmwarewort ist in 14 verschiedene Felder unterteilt. Obwohl verschiedene Felder in identischen Bit- Positionen innerhalb des Firmwarewortformates auftreten, unterscheiden sich ihre Funktionen gemäß der besonderen Operation, die während des laufenden Firmwarezyklus ausgeführt wird. Die für das CIP-Firmwarewort benutzten 14 Felder sind: (1) RALU, (2) BI, (3) BE, (4) MSC 1, (5) CTRS, (6) C 2 R, (7) CONST, (8) MAR/MASR, (9) RFCAD, (10) RFCWRT, (11) MISC 2, (12) MPSR, (13) BR und (14) NA. Dabei sind lediglich die in Fig. 6 gezeigten Felder BR und NA für die der nächsten Adressenerzeugung dienende Adressenerzeugungslogik der vorliegenden Erfindung wichtig.
Das Verzweigungs-Typ-(BR)-Feld enthält die Bits 37 bis 40 des Firmware-Wortes. Dieses Feld bestimmt den Typ der auszuführenden Verzweigung als Ergebnis einer bestimmten Testbedingung. Das die nächste Adresse betreffende Adressenfeld (NA) enthält die Bits 41 bis 51 des Firmware-Wortes.
Dieses Feld wird entweder dazu herangezogen, (1) eine direkte Adresse für den nächsten Firmware-Speicherplatz zu liefern, oder (2) die Testbedingung zu spezifizieren, die während der Erzeugung der nächsten Firmwareadresse benutzt wird, und zwar zusammen mit ihrer relativen Adresse.
Die nächste ROS-Adresse wird als Funktion der BR- und NA- Felder des Steuerspeicherwortes erzeugt. Eine Decodierung dieser Felder führt zu den folgenden sechs Mikrobefehlen (zuzüglich zugehöriger Argumente), welche die tatsächliche Erzeugung der nächsten Adresse ausführen: BUN - unbedingte Verzweigung, BTS - Verzweigung auf Testbedingung hin, BMA - Hauptverzweigung, RAS - Rückkehr nach Subroutine, BRM - maskierte Verzweigung und BRMEX - maskierte Verzweigung erweitert.
Die für die Erzeugung der nächsten Adresse vorgesehene Adressenerzeugungslogik (NAG) 42 ist in Fig. 7A bis 7F im einzelnen veranschaulicht; sie enthält Multiplexer, PROM-Speicherchips, Register und zugehörige Verknüpfungseinrichtungen, die in Verbindung mit den folgenden ROS- Daten-(RD)-Registerfeldern eine Steuerspeicher-(ROS)- Adresse erzeugen. Derartige Datenregisterfelder umfassen (1) das Verzweigungsfeld (RD 37 BR bis RD 40 BR) und (2) das nächste Adressenfeld (RD 41 NA bis RD 51 NA). Diese Datenregisterfelder leiten ihre speziellen Funktionen aus dem Firmwarewort ab. Die Multiplexer führen zusammen mit den bestimmten Registern folgende Funktionen aus: (1) es werden die Adressendaten von einer der nachstehend aufgeführten Listen ausgewählt, (2) aus diesen Daten wird das nächste 11-Bit-Adressenfeld gebildet (NEXA 00 bis NEXA 10) und (3) dieses Feld wird dem Steuerspeicher (ROS) 10 zugeführt, um ein spezielles Steuerspeicherwort auszuwählen. Die Quellen, von denen die Adressendaten ausgewählt werden, sind folgende:
(1) Prüf- bzw. Analyseregister (AR) 34, (2) erweitertes Maskierungsverzweigungsregister 700 mit seinen folgenden Eingängen: (a) Mikroprogrammschalterregister (MPSR) 36, (b) Operationscoderegister (CIOPR) 704, (c) Zähler-1- und Zähler-2-Decoder (CTR1 46 und CTR2 48), (d) Zähler 3 (CTR3) 50 und (e) zwei Vorzeichen-Statusanzeigen (NEGSNF und ILLSNF) oder Anzeigenregister 32, (3) Operationsende- Verzweigungs-PROM (EOPMB) 706, (4) Anfangs-Hauptverzweigungs- PROM (BINMB) 708, (5) ROS-Rückkehradreßregister (RSRA) 40, (6) ROS-Adressenfeld (NEXA) 710, (7) ROS-Seitenregister (RSRGR) 730 und (8) ROS-Datenregister (RD) 38. Die genaue Art und Weise, in der die NAG-Logik eine Adresse erzeugt, wird nachstehend beschrieben. Im folgenden wird eine Funktionsbeschreibung der Register und PROM-Speicher gegeben, die in direkter Verbindung zu der NAG-Logik stehen. Das Prüfregister (AR) 34 ist ein 16-Bit-Register, welches hauptsächlich mit einer maskierten Verzweigungs-(BRM)-Instruktion dazu herangezogen wird, die erforderlichen Mikroprogrammverzweigungen innerhalb des Steuerspeichers (ROS) 10 zu bewirken. Das AR-Register wird ferner dazu herangezogen, die Überlochungs-Byte-Decodierungs/Codierungsoperation auszuführen. Daten von der internen Busleitung (BI) sind für das AR-Register verfügbar, und zwar mit der Ausführung einer BARFBI-Mikroinstruktion, was bedeutet, daß AR von BI her geladen wird. Daten von dem AR-Register 34 (oder von dem erweiterten Maskierungsverzweigungsregister 700) werden ausgewählt und an das AR-Testzustandsfeld (AR 00 TC bis AR 15 TC) durch das RD-Register-38-Bit (RD 37 BR) abgegeben.
Das erweiterte Maskierungsverzweigungsregister 700 ist ein 16-Bit-Register. Es wird ausschließlich mit dem erweiterten Maskierungsverzweigungs-(BRMEX)-Befehl bzw. der betreffenden Instruktion benutzt, um die Funktionsdaten des zugehörigen kommerziellen Instruktionsprozesses (CIP) von ausgewählten Registern und Zählern her in das Ausgangstestzustandsfeld (AR 00 TC bis AR 15 TC) des AR-Registers 34 zu transportieren, und zwar für die Steuerspeicher-Adressenmodifikation oder -Erzeugung. Die ausgewählten Register und Zähler sind folgende:
(1) Mikroprogrammschalterregister 36; dieses Register liefert die anwendbaren Mikroprogrammsteuerkennzeichen (MPSR 00 bis MPSR 03) für die Firmware-Abfrage, (2) Operationscoderegister 704, welches das abgebbare bzw. anwendbare CIP-Instruktionswort-Operationscodefeld (CIOPR 0 bis CIPR 5) festhält, (3) Zähler 1 46 und Zähler 2 48 - Decodierung; diese Zähler liefern die Testbedingungen für spezielle Mikroprogramm-Test- und Verzweigungsbedingungen, (4) Zähler 3 50 (Bits 6 und 7) - der Zähler 3 (Bits 6 und 7) dient für ein Versatz-Ausprüfen, und (5) Vorzeichen-Bedingungen, die das negative Vorzeichen (NEGSNF) und die zulässigen Vorzeichen-(ILLSNF)-Codes liefern.
Wenn eine Hauptverzweigungs-(BMA)- oder eine maskierte Verzweigungs-(BRM)-Instruktion ausgeführt wird, ist das Steuersignal RD 37 BR falsch bzw. Null. Dies sperrt die Übertragung der vorangehenden Funktionen (Poster 1 bis 5) in das erweiterte Maskierungsverzweigungsregister und gibt die Abgabe von dem AR-Register frei. Anschließend bewirkt die Decodierung einer erweiterten Maskierungsverzweigungs- (BRMEX)-Instruktion die Abgabe des Signals RD 37 BR als 1-Signal, wodurch das Ausgangssignal von dem AR-Register gesperrt und das Ausgangssignal von dem erweiterten Maskierungsverzweigungsregister freigegeben wird.
Das Mikroprogramm-Schalterregister 36 (MPSR) ist ein 8-Bit- Register, welches jedes Bit einzeln oder Bitgruppen kollektiv als Kennzeichen für die Mikroprogrammierung oder für Firmware-Test- und Verzweigungsoperationen benutzt. Das Ausgangssignal von dem MPSR-Register wird auf das erweiterte Maskierungsverzweigungsregister und die binären Sammelmultiplexer 712 verteilt, um eine Steuerspeicheradresse zu modifizieren oder zu erzeugen. Darüber hinaus werden ausgewählte Ausgangssignale von dem MPSR-Register 36 auf die folgenden CIP-Logikelemente verteilt, um die bezeichneten Funktionen auszuführen: (1) Überlochungs- Decodierungs/Codierungs-Logik 52, wobei (a) MPSR 01 das Operandenvorzeichen festlegt (0 = positiv (+)-Vorzeichen; 1 = negativ (-)-Vorzeichen), und (b) MPSR 04 legt den Typ der Decodierungs/Codierungsoperation fest (0 = Decodierungsoperation; 1 = Codierungsoperation); (2) Datenstatusakkumulator: MPSR 05 bildet die Adresse für den Statusakkumulator PROM; (3) RALU: MPSR 07 wird für den Multiplexer- Zehnerkomplement-PROM während des Ladens von MIER benutzt.
Die in das MPSR-Register 36 abgegebenen Daten werden aus den für verschiedene Steuerungen vorgesehenen (RD 32 MS bis RD 36 MS)-Feld des ROS-Daten-(RD)-Registers 38 erhalten und durch dieses Feld gesteuert. Das Signal RD 32 MS stellt die Firmwaredaten für die MPSR-Eingangsleitungen zur Verfügung. Das betreffende Signal wird für die betreffende MPSR-Ausgangsleitung durch einen 3-Bit-Binärcode auf den Auswahl-(SEL)-Eingangsleitungen für das Register verfügbar gemacht. Dieser 3-Bit-Binärcode wird durch die Firmware über die verschiedenen RD-Steuersignale (RD 33 MS bis RD 35 MS) bereitgestellt. Die an die ausgewählte Ausgangsleitung übertragenen eigentlichen Daten treten dann auf, wenn das Signal RD 36 MS ein Einssignal ist und wenn ein negativer Übergang von MPSREN- auf der Takteingangsleitung C für das Register vorhanden ist.
Das Operationscoderegister 704 ist ein 6-Bit-Register (CIOPR 0 bis CIOPR 5), welches einen Operationscode aus einem CIP-Instruktionswort für die letztlich erfolgende Adressenmodifikation einer Steuerspeicheradresse festhält. Dieser Operationscode ist in dem Hexadezimal-Codefeld (Bits 10 bis 15) des Instruktionswortes enthalten. Das Operationscoderegister überwacht die Bits BI 10 bis BI 15 auf der internen Busleitung bezüglich dieses Feldes. Wenn das Operationscoderegister dieses Feld aufnimmt, wird dieses an das erweiterte Maskierungsverzweigungsregister 700 und an den Operationsende-PROM-Speicher 706 abgegeben, in welchem das betreffende Feld im Zuge der Erzeugung des nächsten Adressenfeldes (NEXA) benutzt wird. Die Daten auf der internen Busleitung werden in das Operationscoderegister 704 auf den positiven Signalsprung auf der Takteingangsleitung (C) durch das Signal LCIOPR eingetastet. Dieses Signal wird dadurch erzeugt, daß das Ausgangssignal des RD-Registers 38 decodiert wird, und zwar dann, wenn: (1) das Decoder-Eingangsadressenfeld (RD 17 KT bis RD 19 KT) gleich einen Binärwert 8 aufweist, (2) wenn eine BI-Ladeoperation betreffend das RD-Register nicht abgewickelt wird (was bedeutet, daß das Entladesignal ULKNST mit niedrigem Pegel auftritt), und wenn (3) der positive Signalsprung des nächsten Taktimpulses 1 auftritt.
Die drei 8-Bit-Zählerkonfigurationen, die als Zähler 1 (CTR1) 46, als Zähler 2 (CTR2) 48 und als Zähler 3 (CTR3) 50 bezeichnet sind, liefern der NAG-Logik die folgenden vier Testzustände, die für die Ausführung bestimmter nachfolgend beschriebener Test- und Verzweigungsoperationen benutzt werden: Weniger als acht (CTR 3 L 8), weniger als vier (CTR 1 L 4 ), CTR 2 L 4 und CTR 3 L 4, weniger als zwei (CTR 1 L 2, CTR 2 L 2 und CTR 3 L 2) und gleich Null (CTR 1 E O, CTR 2 E O und CTR 3 E O). Diese Grundkonfiguration ist für jeden der drei Zähler gleich. Damit wird die folgende Zählerbeschreibung auf den Zähler CTR1 46 beschränkt.
Die internen Busleitungsbits 00 bis 07 stellen die Quellendaten für die jeweilige Zählerkonfiguration dar. Die fünf Datenbits niedrigster Wertigkeit des Bytes 0 von BI (BIDT 03 bis BIDT 07) oder sämtliche acht BI-Datenbits des Bytes 0 (BIDT 00 bis BIDT 07) können zu irgendeinem Zeitpunkt in den Zähler geladen werden, wobei der betreffende Zeitpunkt durch die Firmware bestimmt wird. Die Firmware wählt das 5-Bit-Laden oder das 8-Bit-Laden über die RD-Register-Konstanten-(KT)-Feldbits RD 16 KT bis RD 23 KT aus. Der Zähler wird durch einen negativen Impuls auf seiner entsprechenden Vorwärtszähl- oder Rückwärtszähl-Eingangsleitung inkrementiert oder dekrementiert, während die andere bzw. gegenüberliegende Leitung auf hohem Wert gehalten wird. Die Daten von dem Zähler 1 werden dazu herangezogen, eine der vorhergehenden Testbedingungen von dem zugehörigen PROM-Speicher zu decodieren. Die ausgewählte Information wird dann auf das erweiterte Maskierungsverzweigungsregister 700 und auf die Binärtest-Sammel-Multiplexer 712 verteilt, wo sie zur Bildung des nächsten Adressenfeldes (NEXA) benutzt wird.
Das ROS-Rückkehr-Adreßregister (RSRA) 40 ist ein 11-Bit- Register, welches zur Speicherung einer Mikroprogramm- Rückkehradresse benutzt wird. Diese Rückkehradresse ist in dem nächsten Adressenfeld (NEXA 00 bis NEXA 10) für den Steuerspeicher enthalten. Wenn diese Adresse in dem RSRA-Register gespeichert ist, kann ein Zugriff lediglich durch eine Rückkehr nach einer Subroutinen-Instruktion (RAS) erfolgen. Die Daten aus dem nächsten Adressenfeld werden in das RSRA-Register auf den positiven Signalübergang auf der Takteingangsleitung (C) durch das Signal MISRAD eingetastet.
Die Binär-Testlogik 54 umfaßt vier Multiplexer und die zugehörige Verknüpfungslogik; sie wird ausschließlich mit einer BTS-Instruktion zur Verzweigung auf einen Test hin benutzt. Die betreffende Verknüpfungsanordnung wählt einen von 32 möglichen Firmware-Testzuständen aus und leitet das ausgewählte Teststatussignal (RSTSTT) an die zur nächsten Adressenerzeugung dienende Adressenerzeugungslogik 42 weiter, und zwar zur Ausnutzung bei der Erzeugung einer Steuerspeicheradresse. Die eigentliche Testauswahl wird durch die vier Bits höchster Wertigkeit des die nächste Adresse enthaltenden RD-Registeradressenfeldes ausgeführt, d. h. (RD 41 NA bis RD 44 NA) und RD 50 NA. Um Beispielsweise weniger als vier Zustände von dem CIP-Zähler 2 (CTR 2 L 4) auszuwählen, codiert die Firmware dieses NA-Feld mit einer binären 3 (was die Rückkehr auf RD 43 NA und RD 44 NA hin und die Abschaltung von RD 41 NA und RD 42 NA und außerdem die Einschaltung RD 50 NA bedeutet). Dadurch werden die Testergebnisse von dem Mikroprogramm-Schalterregisterbit 7 (MPSR 07) und von CTR 2 L 4 zu den Multiplexerausgangssignalleitungen RSTST 0 bzw. RSTST 1 hin übertragen. Durch die Signale bzw. Leitungen RSTST 0 und RSTST 1 werden die entsprechenden verdrahteten ODER-Ausgangssignale RSTSTE und RSTSTD aktiviert. Die Signale RSTST 2 und RSTST 3 sind gesperrt, da das Signal RD 41 abgeschaltet ist. Das Signal RD 41 wird über einen Inverter 713 dem Freigabeeingang der Multiplexer zugeführt, und zwar entsprechend RSTST 2/3. Bei als 1-Signal auftretendem Signal RD 50 NA ist jedoch eine weitere Übertragung des Ausgangssignals RSTSTE durch das UND-Glied 717 gesperrt bzw. verhindert, da das Signal RD 50 NA mittels des Inverters 719 invertiert wird und da das negierte Signal als ein Eingangssignal dem Verknüpfungsglied 717 zugeführt wird, während die Übertragung des Ausgangssignals RSTSTD durch das UND-Glied 715 freigegeben ist. Dadurch wird das Signal RSTSTT für die die nächste Adresse erzeugende Adressenerzeugungslogik aktiviert. Dadurch wird das Signal RSTSTT freigegeben, welches den tatsächlichen Zustand oder den falschen Zustand von CTR 2 L 4 wiedergibt.
Eine Steuerspeicheradresse wird dabei dadurch erzeugt, daß die NAG-Adressenerzeugungslogik 42 in Verbindung mit den Adressenleitungen zu dem Steuerspeicher ROS hin benutzt wird. Die NAG-Logik ist so ausgelegt, daß die wichtige bzw. zugehörige Informatik von den ausgewählten CIP-Quellen gesammelt wird, daß diese Information zu einem nächsten 11-Bit-Adressenfeld (NEXA 00 bis NEXA 10) gebildet wird und daß das betreffende Adressenfeld an die entsprechenden Steuerspeicher-ROS-Adressenleitungen abgegeben wird. Die Auswahl und Weiterleitung dieser Information wird durch die folgenden sechs CIP-Verzweigungsinstruktionen ausgelöst und gesteuert: Unbedingte Verzweigung (BUN), Verzweigung auf Testzustand hin (BTS), Rückkehr nach Subroutine (RAS), Hauptverzweigung (BMA), maskierte Verzweigung (BRM) und erweiterte Maskierungsverzweigung (BRMEX). Sämtliche Verzweigungsinstruktionen sind in dem RD-Register-Verzweigungsfeld (RD 37 BR bis RD 40 BR) codiert. Es sei darauf hingewiesen, daß mit Rücksicht darauf, daß das RD-Register eine Firmware-Information von dem Steuerspeicher her aufnimmt, diese Information auch als Steuerspeicherwort bezeichnet wird. Die Art und Weise, in der jede Instruktion und die NAG-Logik ihre zugewiesene Aufgabe ausführen, um eine Steuerspeicheradresse zu bilden, wird im folgenden beschrieben. Es sei hier darauf hingewiesen, daß der Begriff Firmware-Seite als ein 128 Wörter umfassendes Segment innerhalb des Steuerspeichers definiert ist.
Eine unbedingte Verzweigungsinstruktion (BUN) wird dazu herangezogen, den nächsten sequentiellen Speicherplatz in dem Steuerspeicher 10 zu adressieren. Die Firmware bildet diese Adresse in dem für die nächste Adresse vorgesehenen RD-Registeradressenfeld (NEXA). Das RD-Register- Verzweigungsfeld (RD 37 BR bis RD 40 BR) wird für die BUN-Instruktion auf Null gesetzt. Wenn die NAG-Logik diese Instruktion decodiert, bleiben die nächsten Adressensteuersignale (NEXAS 0 und NEXAS 1 ) und das RAS-Instruktionssteuersignal (NEXRAS) als Null-Signale erhalten. Dadurch wird eine Null an die Auswahleingangsleitungen (SEL) der BUN-Multiplexer abgegeben, die in Verbindung mit der zugehörigen Verknüpfungslogik das obige nächste Adressenfeld für den Steuerspeicher formulieren und aussenden. Außerdem werden bei als Null-Signal auftretendem Steuersignal NEXAS 1 die höchstwertigen vier Bits des nächsten Adressenfeldes (NEXA 00 bis NEXA 03) in das Seiten- Auswahlregister 730 auf den positiven Signalsprung auf der Takteingangsleitung (C) durch das Signal RSPGCK eingetastet. Das Seitenauswahlregister gibt die Firmware- Seitennummer in den Steuerspeicher für die anschließende Verwendung in Verbindung mit der BTS-, BRM- oder BRMEX- Instruktion ab.
Eine Instruktion (BTS) zur Ausführung einer Verzweigung auf einen Testzustand hin wird dazu herangezogen, eine 2-Wege-Verzweigung innerhalb einer Firmware-Seite auszuführen. Dies erfolgt mit dem Bit 9 des nächsten Adressenfeldes (das ist NEXA 09). Das betreffende Bit 9 beschreibt den 1/0-Status eines von 32 möglichen Testbedingungen, die durch die binäre Testlogik 54 ausgewählt werden. Das betreffende Bit wird dazu herangezogen, die durch Firmware erzeugte Seitenadresse zu modifizieren, wenn sie im nächsten Adressenfeld (NEXA) gebildet und an den Steuerspeicher ausgesendet wird. Das RD-Register-BR-Feld wird auf eine binäre 1 gesetzt (was bedeutet, daß RD 40 BR eingestellt ist), und zwar auf die BTS-Instruktion hin. Die vier Bits höchster Wertigkeit des NEXA-Feldes (RD 41 NA bis RD 44 NA) müssen einen vier Bit umfassenden Binärwert enthalten, um die gewünschten Testergebnisse auszuwählen. Ist die NAG-Logik dieser Instruktion decodiert, tritt das NEXA-Steuersignal NEXAS 1 tatsächlich auf bzw. als 1-Signal, und die NEXA-Steuersignale NEXAS 0 und NEXAS 1 bleiben als Null-Signale erhalten. Dadurch wird ein Binärsignal 1 auf der Auswahl-(SEL)-Eingangsleitung für den BTS-Multiplexer eingestellt, und ferner werden das Seitenauswahlregister und die zugehörige Verknüpfungslogik freigegeben, um das obige nächste Adressenfeld zu bilden und an den Steuerspeicher auszusenden.
Die die Rückkehr nach einer Subroutine betreffende Instruktion (RAS) wird dazu herangezogen, entweder zu einem ungeraden oder zu einem geraden Steuerspeicherplatz zurückzukehren, der der Adresse entspricht, die in dem RSRA-Register aufbewahrt ist, wobei die betreffende Rückkehr nach der Ausführung einer Firmware-Subroutine erfolgt. Die Rückkehradresse wird aus dem Rückkehradreßregister 40 erhalten; sie muß in dieses Speicher vor der Ausführung der Firmware-Subroutine eingespeichert sein. Die Ausführung der RAS-Instruktion führt zu der Übertragung dieser Adresse von dem Rückkehradreßregister (RSRA) zu der NAG-Logik, um das nächste Adressenfeld (NEXA) für die Steuerspeicheradresse zu bilden. Das RD-Register-BR-Feld wird für die RAS-Instruktion auf den Binärwert 10 gesetzt. Wenn die NAG-Logik diese Instruktion decodiert, dann treten die NEXA-Steuersignale NEXAS 0 und NEXAS tatsächlich auf bzw. als 1-Signale. Das Steuersignal NEXAS 0 bewirkt das Auftreten einer binären 2 auf der Auswahl-(SEL)-Eingangsleitung des RAS-Multiplexers für die sechs Bits niedrigster Wertigkeit von dem RSRA-Register her (d. h. für RSRA 04) von dem RSRA-Register über die NAG-Verknüpfungslogik frei. Die vier RSRA-Register-Bits (RSRA 00 bis RSRA 03) höchster Wertigkeit sind freigegeben, wenn das Signal RD 39 BR auf der Auswahl-(SEL)-Eingangsleitung für einen zweiten RAS- Multiplexer auftritt bzw. als 1-Signal vorhanden ist. Durch diese Maßnahme wird das NEXA-Format für eine Steuerspeicheradresse gebildet.
Im Zuge der folgenden Beschreibung der Hauptverzweigungs- (BMA)-, Maskierungs-Verzweigungs-(BRM)- und erweiterten Maskierungsverzweigungs-(BRMEX)-Instruktionen sei angenommen, daß die Prüf- und Seitenauswahl-Register die abgebbaren Adressendaten enthalten, die zur Bildung eines nächsten Adressenfeldes (NA) erforderlich sind. Die Instruktionen BMA, BRM und BRMEX nutzen dieselbe NAG-Logik aus wie die vorhergehenden drei Instruktionen (das sind die Instruktionen BUN, BTS und RAS), um ihre nächsten Adressenfelder zu erzeugen und zu formatieren. Die Firmware wählt und führt einen der drei Verzweigungsinstruktionen dadurch aus, daß beide Felder mit dem abgebbaren Code codiert werden (Instruktion/Datenquelle). Wenn die NAG-Logik eine Instruktion decodiert, überprüft sie beide Felder (BR/NA), um den Typ der Verzweigungsinstruktion und deren Datenquelle zu bestimmen; sie stellt dann die Logik bzw. Verknüpfungsanordnung ein. Wenn die Firmware beispielsweise eine BMA-Instruktion auslöst, und zwar unter Heranziehung des Anfangs-Hauptverzweigungs-PROM-Speichers 708 als Hauptdatenquelle, dann wird das RD-Registerverzweigungsfeld mit einer binären 5 codiert, und ferner werden die abgebbaren Bits in dem AN-Feld, wie oben ausgeführt, auf Null gesetzt. Wenn die NAG-Logik diese Instruktion decodiert, dann codiert sie (1) eine binäre 3 (NEXAS 1/NEXAS 1 vorhanden bzw. 1) auf der BMA-Multiplexer- Auswahl-(SEL)-Eingangsleitung für Daten von dem Anfangs- Hauptverzweigungs-PROM-Speicher, gibt (2) das Ausgangssignal von dem Seitenauswahlregister (NEXAS 1 vorhanden bzw. 1) und das Bit 45 (RD 45 NA) von dem RD-Register (NEXRAS falsch bzw. 0) frei und (3) wählt ENBMA), den Anfangs-Hauptverzweigungs-PROM-Speicher über das Signal RD 40 BR+ aus. Dadurch wird das nächste Adressenfeld für eine Steuerspeicheradresse gebildet, wie dies bei der vorhergehenden Veranschaulichung des Instruktionsformates BM-NA gezeigt worden ist. Es sei darauf hingewiesen, daß der Anfangs-Verzweigungs-PROM-Speicher über einen Hauptverzweigungs-Decoder 732 ausgewählt wird, der freigegeben ist, wenn die RD-Register-Bits 41 bis 44 auf Null gesetzt sind, wie dies oben beschrieben worden ist.
Die maskierten Verzweigungen BRM und BRMEX sind in der Eigenschaft sehr ähnlich. Der einzigen Unterschied zwischen den beiden Verzweigungen besteht darin, daß die BRM-Verzweigung auf den Inhalt des Prüf-Registers 34 gemäß Fig. 7B basiert, während die BRMEX-Verzweigung, bei der es sich um die erweiterte Maskierungsverzweigung handelt, auf den Inhalt des erweiterten Maskierungsverzweigungsregisters 700 basiert, dem als Eingangssignale einige festgelegte CIP-Steuer- Hardware-Signale zugeführt werden. Für beide Verzweigungen BRM und BRMEX muß das Signal RD 38 des Registers 38 (RD 38 BR) vorhanden bzw. ein 1-Signal sein, und zur Unterscheidung zwischen den Verzweigungen BRM und BRMEX ist das Bit RD 37 für die BRM-Verzweigung abgeschaltet und für die BRMEX-Verzweigung eingeschaltet. Zum Zwecke einer einfachen Erläuterung wird lediglich die BRM-Verzweigung hier erläutert, wobei analoge Ausführungen zu der BRMEX-Verzweigung und für deren zugehörigen Hardware gelten.
Bei vorhandenem bzw. als 1-Signal auftretendem RD38-Signal decodiert die Hardware diese Verzweigungsinstruktion als BRM-Verzweigung. Die BRM-Verzweigung basiert auf den Inhalt des Prüf-Registers 34, bei dem es sich um ein 16-Bit-Register handelt, wie dies bereits beschrieben worden ist. Dieses Register 34 kann als vier Ziffern enthaltend interpretiert werden, das sind die Ziffern 0, 1, 2 oder 3, wobei die Ziffer 0 die Bits 0 bis 3 aufweist, während die Ziffer 3 die Bits 12 bis 15 aufweist. Während der Ausführung der BRM-Instruktion steuern die Bits 39 und 40 der RDBR-Einrichtung die Ziffernauswahl des Prüfregisters. Wenn beispielsweise die Signale RD 39 und RD 40 durch Null bzw. 1 gegeben sind, dann würde die Ziffer 1, das sind die Bits 4 bis 7 des Prüf-Registers, für einen Testvorgang ausgewählt werden. Auf die Auswahl der betreffenden Bits 4 bis 7 für einen Testvorgang wird, wie der Name sagt, eine Maske für diese Bits bereitgestellt, um die zu testenden Bits auszublenden bzw. zu maskieren. Indem diese Bits maskiert werden können, weist die BRM-Instruktion die Fähigkeit der Verzweigung auf einer 2-Wege-Verzweigung, auf einer 4-Wege-Verzweigung, auf einer 8-Wege-Verzweigung oder auf einer vollständigen 16-Wege-Verzweigung auf, sofern sämtliche vier Bits der betreffenden ausgewählten Ziffer getestet werden.
Die Maske, welche die zu testenden Bits in dem Prüfregister steuert, wird durch RD 41 NA bis RD 44 NA bereitgestellt. Wenn nunmehr beispielsweise die Bits 4 und 5 des Prüfregisters 34 zu testen wären, dann wären die Bits RD 39 BR und 40 ein 0-Bit bzw. ein 1-Bit, und die Bits RD 41 NA und 42 wären beide vorhanden bzw. nur 1-Bits, während die Bits 43 und 44 nicht vorhanden bzw. 0-Bits wären. Dies würde zu einer Maske von 1100, einer Hexadezimal-Adresse (Hex) C führen, durch die angezeigt wird, daß die Bits 4 und 5 des Prüfregisters zu testen sind. Dies wird über die Multiplexer 734 und 736 gemäß Fig. 7B bewirkt. Der Multiplexer 734 erhält als Eingangssignal die 16 Bits AR 00 TC bis AR 15 TC, bei denen es sich um eine grundsätzlich fest verdrahtete ODER-Funktion entweder der Ausgänge des Prüfregisters 34 oder der Ausgänge des erweiterten Maskierungsverzweigungsregisters 700 handelt. Am Auswahleingang eines derartigen Multiplexers 734 sind die Bits RD 39 BR und RD 40 BR vorhanden. Am Ausgang des Multiplexers 734 werden die ausgewählten vier Bits oder die ausgewählte Ziffer des Prüfregisters auftreten, und zwar gesteuert durch RD 39 und RD 40.
Die Maske, die in RD 41 NA bis 44 enthalten ist, bewirkt eine Steuerung dahingehend, ob das aus der Ziffer des Prüfregisters ausgewählte Bit oder das entsprechende Bit von RDNA 46 bis 49 dazu heranzuziehen ist, das NEXA-Feld für die nächste Adresse zu erzeugen. Diese Auswahl durch die Maskierung der entsprechenden Bits in dem hier als Prüfregister bezeichneten Untersuchungsregister wird durch den Multiplexer 736 gemäß Fig. 7B ausgeführt. Wie in Fig. 7B veranschaulicht, wird die Auswahl durch die Bits RD 41 bis RD 44 gesteuert, und die Auswahl erfolgt zwischen dem Ausgangssignal des Multiplexers 734, NEXAR 0 bis NEXAR 3, und den entsprechenden Bits von RD 46 NA bis RD 49 NA. Die entsprechenden Bits des NEXA-Feldes werden so ausgewählt, daß bei Vorhandensein bzw. eingestelltem Maskierungsbits das entsprechende Bit der ausgewählten Ziffer des Prüfregisters dazu herangezogen wird, das NEXA-Feld zu erzeugen. Wenn die entsprechenden Bits der Maske in RD 41 NA bis 44 abgeschaltet sind, dann wird das entsprechende NEXA-Bit aus dem Feld RD 46 NA bis 49 herangezogen.
Diese vier Bits, die das Ergebnis der BRM- oder BMA-Mikroinstruktionen sind, werden dazu herangezogen, die Bits NEXA 05 bis NEXA 08 zu erzeugen. Nimmt man beispielsweise die Erzeugung von NEXA 05 an, so wäre NEXA 05 vorhanden, sofern RD 41 NA vorhanden ist, und das ausgewählte Bit der Ziffer, grundsätzlich NEXARO, wäre vorhanden bzw. ein 1-Bit. Wenn RD 41 NA nicht vorhanden wäre bzw. ein 0-Signal wäre, würde das Bit RD 46 NA ausgewählt werden, um NEXA 05 zu erzeugen. Dadurch weisen dieser Mikrobefehl BRM ebenso wie der Mikrobefehl BRMEX die Eigenschaft auf, entweder auf eine 2-Wege-Verzweigung durch Testen lediglich eines Bits oder im anderen Extrem auf eine 16-Wege-Verzweigung hin zu verzweigen, indem sämtliche vier Bits der ausgewählten Ziffer geprüft werden.
Die erweiterte Maskierungsverzweigung ist der BRM-Verzweigung sehr ähnlich, allerdings mit der Ausnahme, daß anstatt der Aufnahme des Ausgangssignals des Prüfregisters als ausgewählte Ziffer dabei eine Gruppe der Gruppen von Testbedingungen aus dem erweiterten Maskierungsverzweigungsregister 700 ausgewählt wird. Das Endergebnis des Multiplexers 736, welches das Ergebnis der maskierten Verzweigung ist, NEXMK 5 bis NEXMK 8, wird durch eine Verdrahtungsanordnung einer ODER-Verknüpfung mit entsprechenden Bits für die Anfangsverzweigung von dem PROM-Speicher 708 und für die Operationsende-Verzweigung von dem PROM-Speicher 706 unterzogen. Die Hauptverzweigung BMA ist ebenfalls den Verzweigungen BRM und BRMEX ähnlich, allerdings mit der Ausnahme, daß sie eine Maskierung erfordert, bei der sämtliche Bits RD 41 bis 44 Nullen sind. Die Bits RD 39 und 40 wählen über den Decoder 732 einen von vier möglichen Verzweigungs-PROM-Speicher für die BMA-Zustände aus, um die nächste Adresse zu erzeugen. Im Falle des BMA-Zustands handelt es sich dabei stets um eine unbedingte 16-Wege-Verzweigung. Die Bits RD 46 NA bis RD 49 NA werden während der BMA-Operation nicht benutzt. Wenn jedoch weitere Hauptverzweigungsbeindungen erforderlich wären, könnten diese Bits dazu herangezogen werden, mehr BMA-Zustände zu codieren.
Nunmehr wird der die Ausführung von Subroutinen betreffenden Mechanismus der CIP-Einrichtung beschrieben. Gemäß Fig. 8 nutzt der Hauptleitungsprozeß beginnend im Block 801 die Busroutine in den Blöcken 841, 842, etc. mehrfach aus, wobei der Hauptleitungsproß in dem Block 871 beginnt. Um eine Subroutine zwischen zwei oder mehr Hauptleitungs- Firmwareprozessen mehrfach auszunutzen, ist eine Rückkehradresse abzuspeichern, bevor zu der Subroutine übergegangen wird. Diese Firmware-Rückkehradresse wird in dem Register RSRA 40 unter der Steuerung der Mikroinstruktions- Aufbewahrungs-Rückkehradresse (SRA) gespeichert, die zur Taktsteuerung des Registers RSRA 40 benutzt wird. Bei der Ausführung der SRA-Mikroinstruktionen werden die elf Bits der nächsten Adresse taktgesteuert in das Register RSRA eingeführt. Geht man beispielsweise von dem Ablauf aus, der im Block 801 beginnt, so wird im Block 801 die SRA- Mikroinstruktion ausgeführt. Diese Mikroinstruktion bewahrt die Adresse der nächsten sequentiellen Speicherstelle in der Firmware, beispielsweise die Adresse 400, für den Block 800 auf, wie dies veranschaulicht ist. Beim Bock 802 erfolgt je nach Fall eine unbedingte Verzweigung oder eine Testverzweigung zu der Subroutine des Blockes 841 hin. Die Subroutine wird nunmehr ausgeführt, indem im Block 841 begonnen und das zu dem Block 842 weitergegangen wird, etc., bis das Ende der Subroutine im Block 843 erreicht ist. Sodann wird eine Rückkehr nach der Subroutinen-(RAS)-Mikroinstruktion ausgeführt, wie dies im Block 843 veranschaulicht ist. Diese Mikroinstruktion führt dazu, daß das NEXA-Feld dem Inhalt des RSRA-Registers entspricht. Während die Rückkehr ausgeführt wird, da die Adresse 400 im RSRA-Register aufbewahrt ist, wird das niederwertige Bit der betreffenden Adresse in dem RSRA-Register mittels des Inverters 880 invertiert, um der Adresse 401 zu entsprechen. Die NEXA- Adresse entspricht dann dem Speicherplatz 401, und die Firmware kehrt zu dem Speicherplatz des Blockes 803 zurück, welcher Speicherplatz die Adresse 401 aufweist. Damit wird lediglich das niederwertige Bit des RSRA-Registers invertiert, um zu der entsprechenden Rückkehradressenstelle nach der Subroutine hin zu gelangen.
In gleicher Analogie führt die im Block 871 beginnende Firmware-Routine die SRA-Instruktion aus, und der Block 872, der eine Adresse 503 aufweist, hat eine derartige Adresse 503 in dem RSRA-Register zwischengespeichert bzw. aufbewahrt. Im Block 872 wird eine unbedingte Verzweigung oder eine Testverzweigung zu der Subroutine des Blockes 841 hin vorgenommen. Die Subroutine wird bis zu ihrem Abschluß ausgeführt, d. h. bis zum Block 843, woraufhin ein nach der betreffenden Subroutine ablaufender (RAS)-Mikrobefehl ausgeführt wird. Zu diesem Zeitpunkt enthält das RSRA-Register die Adresse 503, und das Bit niedriger Wertigkeit, das Bit 10, des betreffenden Registers ist eine binäre 1, die in eine binäre 0 invertiert wird, was einer Adresse 502 entspricht. Bei der Ausführung der RAS-Instruktion ist die Rückkehradresse nunmehr gleich 502, und die Rückkehr erfolgt zu dem Block 873, der die Adresse 502 aufweist.
Somit wird unabhängig vom Inhalt des RSRA-Registers zum Zeitpunkt der Ausführung der Rückkehr das Bit niedriger Wertigkeit des RSRA-Registers invertiert, um den entsprechenden Rückkehradressenpunkt für die RAS-Mikroinstruktion zu bilden. Bei einer solchen Ausführung bzw. Realisierung wird daher das Bit niedriger Wertigkeit für einen Subroutinen abwickelnden Mechanismus benutzt. Das betreffende Bit führt zu zwei Adressenpaaren, die die Austrittsstelle und die Eintrittstelle nach der Ausführung der Subroutine darstellen. Wenn es erforderlich ist, ein anderes Bit zu invertieren, so wird das Bit 8 oder das Bit 9 oder irgendein anderes Gewichtsbit invertiert, solange ein Bit in invertierter Form vorzusehen ist, um die beiden entsprechenden Speicherplätze für den die Subroutinen abwickelnden Mechanismus innerhalb der CIP-Einrichtung bereitzustellen. Dieser Mechanismus vermeidet die Verwendung einer Inkrementierungseinrichtung in der die nächste Adresse erzeugenden Adressenerzeugungslogik. Die Verwendung einer solchen Inkrementierungseinrichtung stellt ein herkömmliches Verfahren dar, um Subroutinen in durch Firmware gesteuerten Maschinen ablaufen zu lassen. In einer normalen Firmware-Maschine wird beispielsweise nominell die nächste Adresse inkrementiert, und dieser inkrementierte Wert wird in einem Rückkehr- Adreßregister aufbewahrt, wobei dieses Register dazu herangezogen wird, die Ausführung der betreffenden Rückkehr nach Ausführung der Subroutinen-Mikroinstruktion abzuwickeln. Bei der vorliegenden Erfindung ist die Forderung nach einer derartigen Inkrementierungseinrichtung vollständig vermieden, weshalb eine Inkrementierungseinrichtung nicht mehr erforderlich ist für die Adressierung durch Firmware. Vielmehr ist es lediglich erforderlich, ein Bit zu invertieren, um den Subroutinen-Mechanismus wirksam zu machen.
Dieser zur Abwicklung von Subroutinen vorgesehene Mechanismus kann ferner erweitert werden, um, sofern erforderlich, eine Verschachtelung von Subroutinen vorzunehmen. Um den Verschachtelungsmechanismus zu bilden, wäre eine Datei von RSRA-Registern vorgesehen. Wenn beispielsweise vier Ebenen von Verschachtelungs-Subroutinen vorzusehen sind, dann werden vier derartige RSRA-Register vorgesehen, die innerhalb einer Registerdatei oder in einer Mikroschaltung enthalten sein könnten, bei der das letzte eingegebene Signal das erste ausgegebene Signal ist. Dieser verschachtelten Subroutinen-Registerdatei wäre ein Zeiger zugehörig, der jedesmal dann inkrementiert würde, wenn einer Aufbewahrungs-Rückkehradresse bereitgestellt wird, die auf die letzte gesicherte Rückkehradresse zeigt, so daß dann, wenn eine Subroutinenrückkehr ausgeführt wird, zu derselben Ablauffolge bzw. Sequenz zurückgegangen wird, die festgehalten worden ist.
Der Vorteil der Verwendung des ROS-Seite-Registers 730 liegt darin, daß dadurch vier höherwertige Adressenbits für die nächste Adresse der Firmware bereitgestellt werden. Würde das ROS-Seiten-Register weggelassen werden, so wäre es erforderlich, das Firmware-Wort um vier Bits zu erhöhen, um die höherwertigen vier Bits der nächsten Adresse bereitzustellen. Da die vier Bits der nächsten Adresse gemäß dem Ausführungsbeispiel der vorliegenden Erfindung durch das ROS- Seitenregister bereitgestellt werden, könne die entsprechenden vier Bits des RDNA-Feldes, das sind die Bits RDNA 41 bis RDNA 44, die weitere Steuerung für die Verzweigungs-Mikroinstruktionen bewirken. So werden beispielsweise in der BTS-Mikroinstruktion diese Bits dazu herangezogen, den Zustand zu codieren, der die Überprüfung in dieser Mikroinstruktion erfordert. Im Falle der Mikroinstruktionen BRM und BREX stellen diese Bits, das sind die Bits RDNA 41 bis RDNA 44, die 4-Bit-Maske bereit, durch die die zu überprüfenden Bits des Untersuchungs- bzw. Prüfregisters gesteuert werden.
Die Firmware-Seite umfaßt bei der Anordnung gemäß der vorliegenden Erfindung 128 Wörter, die grundsätzlich aus den sieben Bits niedriger Wertigkeit der nächsten Adresse abgeleitet werden, was den Bits RDNA 45 bis RDNA 51 entspricht. Diese Bits entsprechen ihrerseits den Bits NEXA 04 bis NEXA 10. Die Firmware wird in Seiten von 128 Wörtern aufgeteilt, wobei die Philosophie dieser 128 Wörter pro Seite darin besteht, daß bei Verzweigungen wie den Verzweigungen BTS, BRM, BRMEX und BMA, die vier Bits hoher Wertigkeit des nächsten Adressenfeldes direkt von den vier Bits des ROS-Seiten-Registers gekoppelt werden. Da das nächste Adressenfeld elf Bits umfaßt, bleiben die sieben Bits niedriger Wertigkeit der nächsten Adresse übrig, die als Ergebnis der Adressenerzeugungslogik entsprechend diesen Verzweigungsmikroinstruktionen erzeugt werden. Da die vier Bits hoher Wertigkeit der nächsten Adresse während der Ausführung dieser Mikroinstruktionen konstant sind und aus dem ROS-Seiten-Register stammen, bleiben lediglich sieben Bits übrig, die für die nächste Adressenerzeugung heranzuziehen bzw. zu manipulieren sind. Demgemäß entsprechen die sieben Bits den 128 Wörtern der Adressenbasis, die für diese Mikroinstruktionen manipuliert bzw. beeinflußt werden kann. Bei der vorliegenden Anordnung sind beispielsweise 16 derartige Seiten mit 128 Wörtern vorgesehen (2⁷), was zu einer Gesamt-Adressenbasis von 2048 Wörtern der Firmware führt. Die grundsätzlichen Einsparungen, die aus der Verwendung des ROS-Seiten- Registers sich ergeben, liegen darin, daß der Steuerspeicher nicht erweitert zu werden braucht, um die der ROS-Speicheradresse entsprechenden Bits und deren nächstes Adressenfeld einzuschließen. Wenn die Tiefe des Steuerspeichers beispielsweise entsprechend der in der CIP-Einrichtung ist, wären zwei gesonderte PROM-Speicherchips erforderlich, was wesentlich teurer ist als ein Chip für das ROS-Seiten-Register.
Die Eigenschaft der BRMEX-Instruktion liegt in einer Erweiterung der maskierten Verzweigungs-(BRM)-Mikroinstruktion. Normalerweise sorgt die BRM-Mikroinstruktion für eine Verzweigungseigenschaft unter Bezugnahme auf mehr als ein Bit zum jeweiligen Zeitpunkt, wobei die betreffenden Bits aus dem Inhalt des Prüfregisters ausgewählt werden. Wenn die BRMEX-Eigenschaft nicht vorhanden wäre und wenn es erforderlich wäre, mehr als eine Verknüpfungsfunktion gleichzeitig in der Firmware zu testen, dann wäre es erforderlich, diese Verknüpfungszustände in das Untersuchungs- bzw. Prüfregister zu laden, von welchem aus die betreffenden Zustände mittels der BRM-Mikroinstruktion getestet werden könnten. Dies würde jeweils dann erfolgen, wenn diese Verknüpfungszustände sich ändern und getestet werden. Durch die Bereitstellung der BRMEX-Eigenschaft existiert die Fähigkeit, mehr als eine Funktion gleichzeitig, beispielsweise bis zu vier Funktionen, testen zu können, ohne diese in das Untersuchungs- bzw. Prüfregister laden zu müssen. Diese Verknüpfungsfunktionen sind systematisch in einer solchen Weise angeordnet, daß Gruppen von vier Funktionen den verschiedenen Ziffern des Prüfregisters entsprechen. Diese Gruppen der vier Zustände werden auf der Grundlage der Auslegung der Anordnung und auf der Grundlage ihres Bedarfes in derselben Gruppe ausgewählt. Diese Hardware 16544 00070 552 001000280000000200012000285911643300040 0002003000107 00004 16425-Zustände, die gleichzeitig zu testen sind, und zwar ähnlich dem Testen von BRM, sind in der erweiterten Maskierungsverzweigungsverriegelungsschaltung 700 gemäß Fig. 7B verfügbar. Tatsächlich handelt es sich bei der Verriegelungsschaltung 700 (oder dem betreffenden Register) um einen Puffer, und zwar insbesondere um eine sogenannten Tri-State-Puffer, der in drei Zustände einstellbar ist (was bedeutet, daß der betreffende Puffer frei hängt und grundsätzlich für Trennzustände vom Rest der Hardware ausgenutzt wird). Im übrigen wird der betreffende Puffer für die Auswahl einer Mikroinstruktion BRMEX oder BRM freigegeben oder gesperrt.
Die Auswahl zwischen dem BRMEX-Puffer 700 und dem BRM- Prüfregister 34 wird durch das Bit RD 37 BR gesteuert. Das bestimmte Bit bzw. 1-Bit geht dabei direkt zu der Prüfregister- Freigabeleitung, und dasselbe Bit RD 37 wird mittels des Inverters 739 invertiert, wobei das Ausgangssignal des betreffenden Inverters an den Freigabestift des BRMEX-Puffers 700 abgegeben wird.
Wie bereits erläutert, erfolgt die Auswahl der Hauptverzweigung oder der Prüfregister-Verzweigung BRM oder BRMEX unter der Steuerung der Bits RDNA 41 bis 44. Wenn diese vier Bits 0 sind, dann ist die BMA-Mikroinstruktion freigegeben. Diese Null-Detektorlogik ist im Block 731 gemäß Fig. 7B vorgesehen. Der Decoder 732 wird dazu herangezogen, die Bits RD 39 und RD 40 auszunützen, die so codiert sind, daß eine der vier möglichen Hauptverzweigungen ausgewählt wird. Bei der vorliegenden Anordnung werden lediglich zwei der vier möglichen Verzweigungen ausgenutzt, nämlich ENBMA 0 und ENBMA 1. Diese Verzweigungen entsprechen dem EOP-Hauptverzweigungs-PROM-Speicher 706 bzw. dem Anfangs- Hauptverzweigungs-PROM-Speicher 708.
Gemäß Fig. 7c sei im Hinblick auf die Beschreibung des Zählers 1, der im einzelnen veranschaulicht ist, erwähnt, daß die Ausgangssignale CTR 100 bis CTR 107 des betreffenden Zählers 1 dem PROM-Chip 47 zugeführt werden. Dieses PROM- Chip führt ausgangsseitig die Zustände des Zählers 1, die gleich Null sind (CRT 1 E 0), die kleiner sind als 2 (CRT 1 L 2) bzw. die kleiner sind als 4 (CTR 1 L 4). Dieses PROM-Chip ist für jeden der anderen beiden Zähler doppelt vorgesehen, nämlich für den Zähler 2 (48) und den Zähler 3 (50). Grundsätzlich übernimmt das PROM-Chip sämtliche acht Bits der Zähler und decodiert sie, um zu bestimmen, ob ihre Werte gleich 0, kleiner als 2, kleiner als 4 oder im Falle des Zählers 3 kleiner als 8 sind. Ein Grund für die Ausnutzung eines PROM-Chips für diese Verknüpfung anstelle einer typischen Gatteranordnung besteht darin, daß dadurch physikalischer Raum gespart wird. Wenn diese Decodierlogik durch Verwendung von typischer Hardware bereitgestellt wäre (d. h. durch integrierte Schaltungen mit kleinem Integrationsfaktor, wie UND- und ODER-Glieder), dann wären etwa drei Verknüpfungschips pro Zähler erforderlich, um die betreffenden Werte zu decodieren. Durch die Verwendung des PROM-Chips für diese Decodierung ist ein erheblicher Teil an Vermögen (physikalischer Raum) ein­ gespart worden.
Fig. 7A veranschaulicht die End-Auswahl der Bits NEXA 00 bis NEXA 10, die über die ROS-Adresseneinrichtung 710 zu dem Steuerspeicher 10 hin geleitet werden. Die Steuerfunktionen NEXAS 0 und NEXAS 1, die in weitem Umfang in der Verknüpfungsanordnung gemäß Fig. 7A benutzt werden, werden unter Bezugnahme auf die in Fig. 9 dargestellte Wertetabelle erläutert. Die in Fig. 9 dargestellte Wertetabelle veranschaulicht die Erzeugung der beiden Steuerfunktionen NEXAS 0 und NEXAS 1. In dieser Wertetabelle enthält die zweite Spalte die verschiedenen Werte der Bits RD 38 BR bis RD 40 BR. Die Spalte 3 enthält die möglichen Codes für die Steuersignale NEXAS 0 und NEXAS 1 und die entsprechenden Mikroinstruktionen, die erzeugt werden. So ist beispielsweise das Signal NEXASA vorhanden bzw. ein 1-Signal, wenn das Bit RD 38 BR vorhanden bzw. ein 1-Bit ist oder wenn das Bit RD 39 BR vorhanden bzw. ein 1-Bit ist. Dies entspricht den in der Spalte 3 dargestellten Codes für 100, 101, 110 und 111 und außerdem für 010 und 011. Die ersten vier Codes, die mit 100 beginnen, bis 111, werden für die drei Mikroinstruktionen BRM, BRMEX und BMA erzeugt, und der Code 010 wird für die Mikroinstruktion RAS erzeugt. Für diese vier Instruktionen BRM, BRMEX, BMA und RAS ist das Signal NEXAS 0 vorhanden bzw. ein 1-Signal. Das negierte NEXAS 0-Signal ist vorhanden bzw. ein 1-Signal für die beiden Codes 000 oder 001. Dies entspricht den Mikroinstruktionen BUN bzw. BTS.
Nunmehr wird eine entsprechende Erläuterung bezüglich der Erzeugung des Signals NEXAS 1 gegeben. Das Signal NEXAS 1 ist vorhanden bzw. ein 1-Signal, wenn das Bit RD 38 BR vorhanden ist bzw. ein 1-Bit ist oder wenn das RD 40 BR-Bit vorhanden bzw. ein 1-Bit ist. Dies entspricht den Codes 100 bis 111 und 001 sowie 011. Die ersten vier Codes entsprechen der Mikroinstruktion BRM, BRMEX und BMA. Der Code 001 entspricht der Mikroinstruktion BTS. Es sei darauf hingewiesen, daß der Code 01 überhaupt nicht benutzt wird. In entsprechender Weise tritt das negierte Signal NEXAS 1 für den Code 000 oder 010 auf bzw. als Verknüpfungssignal 1, was den Mikroinstruktionen BUN bzw. RAS entspricht.
Diese Funktionen NEXAS 0 und NEXAS 1 werden zusammen mit ihren Negationen, den negierten Funktionssignalen NEXAS 0 und NEXAS 1 in weitem Umfange dazu herangezogen, die Multiplexerauswahl gemäß Fig. 7A zu steuern. Eine detaillierte Erläuterung der Fig. 7A wird nunmehr vorgenommen, in der die Erzeugung der Signale NEXA 00 bis NEXA 10 veranschaulicht wird, die für die Steuerspeicheradressierung herangezogen werden.
Die vier Bits NEXA 00 bis NEXA 03 hoher Wertigkeit weisen eine Möglichkeit von drei Eingangssignalen auf, wobei diese Eingangssignale entweder direkt von RD 41 NA bis RD 44 NA oder von dem ROS-Rückkehradreßregister RSRA 00 bis RSRA 03 her und letztlich von dem ROS-Seiten-Register RSPG 00 bis RSPG 03 stammen können. Die Auswahl von RD 41 NA bis RD 44 NA trifft für die Mikroinstruktion BUN zu, bei der es sich um die unbedingte Verzweigung handelt, wodurch die Daten direkt aus dem ROS-Datenregister entnommen werden. Die Auswahl der Signale RSRA 00 bis RSRA 03, d. h. von dem ROS-Rückkehr-Adreßregister, trifft für die Mikroinstruktion ROS zu. Die Auswahl der Signale bzw. Bits RSPG 00 bis RSPG 03, d. h. des ROS-Basisregisters, trifft für alle übrigen Mikroinstruktionen zu, die die Instruktionen BRM, BRMEX und BMA sind. Die Auswahl zwischen RD 41 NA bis RD 44 NA und RSA 00 bis RSRA 03 erfolgt über den Multiplexer 712. Die Auswahl von RD 41 bis RD 44 wird für die Mikroinstruktion BUN vorgenommen, was durch das negative Signal RD 39 BR gesteuert wird. Wenn das Signal RD 39 BR positiv ist, d. h., daß es auftritt, dann wird das Ausgangssignal des Multiplexers von dem ROS-Rückkehr-Adreßregister ausgewählt. Das Ausgangssignal dieses Multiplexers wird mit NART 00 bis NART 03 bezeichnet. Die Endauswahl von NART 00 bis NART 03 und RSPG 00 bis RSPG 03 erfolgt über die Freigabeleitungen in dem Multiplexer 712 und über das Register 730, bei dem es sich um das früher bereits erläuterte ROS-Seiten-Register handelt.
Zurückkommend auf Fig. 9, in der die Wertetabelle gezeigt ist, sei angemerkt, daß diese Wertetabelle veranschaulicht, daß NEXAS 1 vorhanden bzw. ein 1-Signal ist, was den Mikroinstruktionen BTS, BRM, BRMEX oder BMA entspricht, während das Vorhandensein des negierten Signals NEXAS 1 den Mikroinstruktionen BUN oder RAS entspricht. Damit steuert das Signal NEXAS 1 die Freigabe und Sperrung des Multiplexers 712 und des Registers 730. Wenn das Signal NEXAS 1 vorhanden ist, d. h. eine 1 ist, was bedeutet, daß entweder eine Instruktion BTS, BRM oder BRMEX verarbeitet wird, dann ist das ROS-Seiten-Register 730 durch die einen negativen Wert annehmende Funktion NEXAS 1 (negativ) freigegeben. Wenn das Signal bzw. die Funktion NEXAS 1 (negativ) vorhanden ist, was den Mikroinstruktionen BUN oder RAS entspricht, dann gibt das negative Signal NEXAS 1 den Multiplexer 712 frei. Die Ausgänge der Elemente 712 und 730 sind durch Verdrahtung entsprechend einem ODER-Glied miteinander verbunden, und das End- Ausgangssignal bilden die vier Bits niedriger Wertigkeit der nächsten Adresse, das sind die Bits NEXA 00 bis NEXA 03.
Das Signal NEXA 04 wird durch die beiden UND-Glieder 714 und 716 gesteuert. Die Ausgangssignale dieser UND-Glieder, nämlich NEXA 04 B bzw. NEXA 04 A, bilden durch oder- mäßige Verdrahtung der betreffenden Verknüpfungsausgänge die Adresse NEXA 04. Die beiden möglichen Quellen der Adresse NEXA 04 sind entweder das ROS-Rückkehr-Adreßregister oder unmittelbar das ROS-Datenregister RD 45 NA. Das Bit 4 des ROS-Rückkehr-Adreßregisters RSRA wird durch die Funktion NEXAS freigegeben, die für die RAS-Mikroinstruktion erzeugt wird. Wenn die Funktion bzw. das Signal NEXRAS vorhanden ist bzw. als 1-Signal vorliegt, dann folgt das Ausgangssignal des UND-Gliedes NEXA 04 B dem Inhalt des RSRA-Bits 4; es wird dazu herangezogen, das Ausgangssignal NEXA 04 zu erzeugen. Demgegenüber wird in dem Fall, daß das negierte Signal NEXRAS vorhanden ist, das Ausgangssignal NEDA 04 A freigegeben; es folgt im Inhalt von RD 45 A. Diese beiden fest verdrahteten ODER-Funktionen NEXA 04 A und NEXA 04 B bilden zusammen das Bit NEXA 04 der nächsten Adresse.
Die Steuerung der letzten sechs Bits niedriger Wertigkeit der nächsten Verknüpfungsadresse, das sind die Bits NEXA 05 bis NEXA 10, wird über den Multiplexer 718 vorgenommen. Dieser Multiplexer ist ein 1-aus-4-Multiplexer; er wird über die beiden Steuerleitungen NEXAS 0 und NEXAS 1 gesteuert, die die Werte 00, 01, 10 bzw. 10 aufweisen können. Diese Werte sind in dem Diagramm des Multiplexers 718 als Auswahlcode 0, Auswahlcode 1, Auswahlcode 2 bzw. Auswahlcode 3 angedeutet. Der Auswahlcode 0 liegt in dem Fall vor, daß das negierte Signal NEXAS 0 vorhanden ist und daß das negierte Signal NEXAS 1 vorhanden ist. Dies entspricht dem Fall der BUN-Mikroinstruktion, bei der es sich um eine unbedingte Verzweigung handelt. In diesem Falle wird der Inhalt von RD 46 NA bis RD 51 NA, bei dem es sich um einen Inhalt direkt aus dem Steuerspeicherwort handelt, am Ausgang freigegeben, um die Signale NEXA 05 bis NEXA 10 zu bilden. Der nächste Fall liegt dann vor, wenn das Signal "Auswahl 1" vorhanden ist, was bedeutet, daß das negierte Signal NEXAS 0 vorhanden ist und daß das Signal NEXAS 1 vorhanden ist. In diesem Falle ist die BTS-Mikroinstruktion freigegeben. Im Falle der BTS-Mikroinstruktion sind die sechs Leitungen, bei denen es sich um die Leitungen RD 46 NA bis RD 49 NA handelt, und das End- Ausgangssignal des Test-Multiplexers 712, wie in Fig. 7E veranschaulicht, als Ausgangssignal der odermäßig verdrahteten Ausgänge der Elemente 715 und 717 zusammen mit dem Signal RD 51 NA in der betreffenden Reihenfolge freigegeben an den Ausgängen NEXA 05 bis NEXA 10.
Die Auswahl 2, die dann vorliegt, wenn irdendeines der NEXAS 0-Signale vorhanden ist und wenn das negierte Signal NEXAS 1 vorhanden ist, entspricht der Mikroinstruktion RAS, bei der es sich um die Rückkehr-Mikroinstruktion nach Ausführung einer Subroutine handelt. In diesem besonderen Falle werden die Bits 05 bis 09 des ROS-Rückkehr-Adreßregisters und das negierte Ausgangssignal des ROS-Rückkehr- Adreßregisters RSRA 10 an den Ausgängen NEXA 05 bis NEXA 10 freigegeben. Das Endauswahl-Ausgangssteuersignal 3 liegt in dem Fall vor, daß die beiden Signale NEXAS 0 und NEXAS 1 vorhanden sind bzw. als 1-Signale vorliegen. Dies ist der Fall für die Mikroinstruktionen BRM, BRMEX und BMA. In diesem Falle sind die Signale NEXM 05 bis NEXM 08, bei denen es sich um die Ausgangssignale des Multiplexers 736 gemäß Fig. 7B handelt, zusammen mit den Signalen RD 50 NA und RD 51 NA an den Ausgängen NEXA 05 bis NEXA 10 freigegeben. Somit steuert der Multiplexer 718 das Ausgangssignal für NEXA 05 bis NEXA 10 für die nächste Adressenerzeugung.
Schließlich werden diese elf Bits NEXA 00 bis NEXA 10 von der ROS-Adresse, wie dies im Block 710 angegeben ist, an den Steuerspeicher zur Vervollständigung der nächsten Adresse abgegeben.

Claims (9)

1. Mikroprogrammadressierungseinrichtung in einem Datenverarbeitungssystem mit einer Verknüpfungseinrichtung (12), die Verknüpfungsoperationen anhand von Daten ausführt, wobei diese Verknüpfungsoperationen eine erste und eine zweite Mikroprogramm-Routine umfassen, mit einer Steuerspeichereinrichtung (10) mit einer Vielzahl von eingespeicherten Mikroinstruktionen, die die betreffende Verknüpfungseinrichtung (12) zur Ausführung der betreffenden Operationen in eine durch die betreffenden Mikroinstruktionen festgelegten Weise freizugeben gestatten, mit einer Adreßerzeugungseinrichtung (42), welche die Steuerspeichereinrichtung (10) zu adressieren gestattet, mit einem Steuerspeicherdatenregister (38), mit einer Unterbrechungseinrichtung (54), welche die Ausführung der ersten Mikroprogramm-Routine zum Zwecke der Ausführung der zweiten Mikroprogramm-Routine zu unterbrechen gestattet, und mit einer Sicherstellungseinrichtung (40), die eine Adresse (RSRA) sicherzustellen gestattet, welche der letzten Mikroinstruktion der ersten Mikroprogramm-Routine zugehörig ist, wobei die betreffende Adresse eine Vielzahl von Bits umfaßt, deren jedes entweder einen ersten Zustand oder einen zweiten Zustand aufweist, gekennzeichnet durch das Vorsehen einer Zustandsänderungseinrichtung (880), die bei Rückkehr von der zweiten Mikroprogramm-Routine zur Wiederaufnahme der Ausführung der unterbrochenen ersten Mikroprogramm- Routine den Zustand eines Bits der betreffenden Bits der der betreffenden letzten Mikroinstruktion zugehörigen Adresse zu invertieren gestattet, bevor zu der Ausführung der ersten Mikroprogramm-Routine zurückgekehrt wird.
2. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß das betreffende eine Bit das Bit niedrigster Wertigkeit der die Adresse bildenden Bits ist.
3. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die zweite Mikroprogramm-Routine eine Subroutine ist, die von der ersten Routine und anderen Routinen mehrfach ausnutzbar ist.
4. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Sicherstellungseinrichtung (40) ein Register ist.
5. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Zustandsänderungseinrichtung (880) zur Änderung des Zustands des betreffenden einen Bits ein Inverter ist.
6. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Sicherstellungseinrichtung (40) und die Zustandsänderungseinrichtung (880) derart miteinander verbunden sind, daß die durch die betreffende Sicherstellungseinrichtung tatsächlich aufbewahrte Adresse die Adresse der der betreffenden letzten Instruktion folgenden nächsten Instruktion ist.
7. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Sicherstellungseinrichtung (40) ein Register mit einer Vielzahl von Bitpositionen ist, daß die Zustandsänderungseinrichtung (880) ein Inverter ist und daß eine Verbindungseinrichtung vorgesehen ist, welche den Inverter mit einer Stelle des betreffenden Registers verbindet, derart, daß der Zustand des betreffenden einen Bits änderbar ist.
8. Einrichtung nach Anspruch 7, dadurch gekennzeichnet, daß jede Registerstelle des betreffenden Registers einen Eingang und einen Ausgang aufweist und daß der Inverter mit der Eingangsseite des betreffenden Registers verbunden ist.
9. Einrichtung nach Anspruch 7, dadurch gekennzeichnet, daß jede Registerstelle des betreffenden Registers einen Eingang und einen Ausgang aufweist und daß der betreffende Inverter mit der Ausgangsseite verbunden ist.
DE19803000107 1979-01-03 1980-01-03 Datenverarbeitungsanordnung und bei dieser verwendbarer datenprozessor Granted DE3000107A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/000,734 US4309753A (en) 1979-01-03 1979-01-03 Apparatus and method for next address generation in a data processing system
US06/000,864 US4224668A (en) 1979-01-03 1979-01-03 Control store address generation logic for a data processing system

Publications (2)

Publication Number Publication Date
DE3000107A1 DE3000107A1 (de) 1980-07-17
DE3000107C2 true DE3000107C2 (de) 1988-06-01

Family

ID=26668073

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19803000107 Granted DE3000107A1 (de) 1979-01-03 1980-01-03 Datenverarbeitungsanordnung und bei dieser verwendbarer datenprozessor

Country Status (4)

Country Link
CA (1) CA1138118A (de)
DE (1) DE3000107A1 (de)
FR (1) FR2445987B1 (de)
GB (2) GB2040519B (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4491908A (en) * 1981-12-01 1985-01-01 Honeywell Information Systems Inc. Microprogrammed control of extended integer and commercial instruction processor instructions through use of a data type field in a central processor unit
US4450525A (en) * 1981-12-07 1984-05-22 Ibm Corporation Control unit for a functional processor

Also Published As

Publication number Publication date
CA1138118A (en) 1982-12-21
GB2040519A (en) 1980-08-28
GB2040519B (en) 1983-08-17
GB8302033D0 (en) 1983-02-23
DE3000107A1 (de) 1980-07-17
GB2117943A (en) 1983-10-19
FR2445987B1 (fr) 1985-11-22
FR2445987A1 (fr) 1980-08-01
GB2117943B (en) 1984-03-21

Similar Documents

Publication Publication Date Title
DE2846495C2 (de) Zentraleinheit
DE2316296C2 (de) Mikroprogrammierbarer Prozessor
DE1931966C3 (de) Datenverarbeitungsanlage mit Assoziativspeichern
DE69833008T2 (de) Prozessor mit instruktionskodierung mittels eines schablonenfeldes
DE3851746T2 (de) Sprungvorhersage.
DE2714805A1 (de) Datenverarbeitungssystem
DE2357003A1 (de) Programmierbarer prozessor
DE2517276A1 (de) Datenverarbeitungssystem
DE1499200B2 (de) Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung
DE2524046C2 (de) Elektronische Datenverarbeitungsanlage
DE3131341A1 (de) "pufferspeicherorganisation"
DE2806024A1 (de) Speichersystem mit fehlerfeststell- und korrekturmoeglichkeit
DE3121742C2 (de) Mikroprogramm-Steuereinrichtung
DE2612139A1 (de) Ein/ausgang-steuerungssystem
DE1929010B2 (de) Modular aufgebaute datenverarbeitungsanlage
DE69315192T2 (de) Datenverarbeitungssystem und -Verfahren mit einem erweitbaren Register
DE2906685C2 (de)
DE2830334C2 (de)
DE2948442C2 (de) Digitalrechenanlage
DE2952163C2 (de) Datenverarbeitungsanlage mit einem ersten und einem zweiten Prozessor
DE3000107C2 (de)
DE2854400A1 (de) Anordnung zum wechsel zwischen verzahnt zu verarbeitenden programmen
DE2952072C2 (de) Rechenschaltung zum Addieren oder Subtrahieren binär codierter Dezimalzahlen
DE2702722A1 (de) Instruktionsinterpretation in elektronischen datenverarbeitungsanlagen
DE2622140C3 (de) Einrichtung zur Steuerung manueller Operationen

Legal Events

Date Code Title Description
8125 Change of the main classification

Ipc: G06F 9/30

8110 Request for examination paragraph 44
8127 New person/name/address of the applicant

Owner name: HONEYWELL BULL INC., MINNEAPOLIS, MINN., US

D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee