DE2322674B2 - Mikroprogramm-Steuereinrichtung - Google Patents

Mikroprogramm-Steuereinrichtung

Info

Publication number
DE2322674B2
DE2322674B2 DE2322674A DE2322674A DE2322674B2 DE 2322674 B2 DE2322674 B2 DE 2322674B2 DE 2322674 A DE2322674 A DE 2322674A DE 2322674 A DE2322674 A DE 2322674A DE 2322674 B2 DE2322674 B2 DE 2322674B2
Authority
DE
Germany
Prior art keywords
microprogram
control
memory
instruction
sequence
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.)
Granted
Application number
DE2322674A
Other languages
English (en)
Other versions
DE2322674A1 (de
DE2322674C3 (de
Inventor
John Curtis Owego N.Y. Kemp
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2322674A1 publication Critical patent/DE2322674A1/de
Publication of DE2322674B2 publication Critical patent/DE2322674B2/de
Application granted granted Critical
Publication of DE2322674C3 publication Critical patent/DE2322674C3/de
Expired 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • 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/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel

Description

Die Erfindung betrifft eine Mikroprogramm-Steuereinrichtung für eine elektronische Datenverarbeitungsanlage, nach dem Oberbegriff des Anspruchs 1.
2. Es ist in sich bekannt, mit Hilfe der Mikroprogrammtechnik die Einheitlichkeit des Entwurfs, die Effektivität und Flexibilität von Datenverarbeitungsanlagen zu verbessern. Bei der Mikroprogrammtechnik wird bekanntlich eine Liste komplexerer Instruktionen wie
jii Makroinstruktionen, die komplexe Funktionen darstellen, die von einem Informationsverarbeitungssystem verarbeitet werden sollen, in eine Reihe von Mikrooperationen oder elementare Systemzustände übersetzt. Jede Mikrooperation wird von einem entsprechenden
r> Mikroinstruktionswort gesteuert, das in einem Steuer-
' speicher gespeichert ist, wobei dieser Steuerspeicher ein permanenter oder semi-permanenter Speicher sein kann. Die grundlegenden Zugriffssteuerungen für die Realisierung der Mikroprogrammfolgen werden sequentiell von Signalen angesteuert, die von den Ausgangssignalen des Steuerspeichers und von Verzweigungssteuerungssignalen von Quellen außerhalb dieser Steuerungen abgeleitet werden.
In dem Maße, wie der Zugriff zu dem Steuerspeicher von dem Ausgangssignal der laufenden Mikroinstruktion dieses Speichers gesteuert wird, kann gesagt werden, daß die Auswahl der nächsten Mikroinstruktionen vorherbestimmt ist. Daher wird die Größe oder der Umfang der Gruppe von Steuerspeicheradressen, aus
so der die nächste Adresse ausgewählt werden wird, nur von dem Umfang der unabhängig variablen Verzweigungssteuersignale bestimmt. Normalerweise ist die maximale Anzahl von Verzweigungsauswahlmöglichkeiten von der Auswahl einer vorgegebenen Zahl von Verzweigungssteuerungssignalen aus einem größeren Feld von variablen Signalen festgelegt, und zwar in Übereinstimmungen mit Bedingungen, die von dem Mikroprogramm zu erfüllen sind.
Die Mikroprogrammsteuerungen enthalten daher gewöhnlich zwei verschiedene funktionell Bereiche. Der erste ist derjenige Teil des Steuerspeichers, der Steuersignale oder MikroOperationen erzeugt, die den Umlauf von Information durch das gesteuerte System auf zyklischer Basis steuern. Der zweite Bereich ist der Bereich der Zugriffssteuerungen, der die Adressensignale erzeugt, die für die Steuerung der Folge von Mikroinstruktionen erforderlich sind, die von der ersten Gruppe von Steuerungen erzeugt wird. Derjenige Teil
des Steuerspeichers, der die nächste Adresse liefert, ist ein Teil der Zugriffssteuerungsfunktion.
In der Vergangenheit war der Stand der Komponenten- und Schaltkreisentwicklung so, daß es vorteilhaft war, die Hilfselektronik für die Steuerspeicher gering zu ·-, halten, indem ein einziger Steuerspeicher vorgesehen wurde, dessen Kapazität so klein gehalten wurde, wie es gerade noch mit den Erfordernissen der Datenverarbeitungsanlage verträglich war. Dieser einzige minimale Steuerspeicher bedingte wegen der großen Anzahl vun ι» Verzweigungssteuerungssignalen, die zur Definition aller Phasen der Operationen erforderlich sind, eine komplizierte Zugriffssteuerung.
In der DE-OS 2150 292 ist daher schon eine mikroprogra mmgesteuerte Datenverarbeitungsanlage ι > mit überlagerter Ausführung und Entnahme von Befehlen beschrieben worden, bei welcher der Steuerspeicher in drei Teile aufgeteilt ist, wovon der erste den Befehlsabruf, der zweite die Bildung der effektiven Adressen und der dritte die Befehlsausführung steuert. ;n Da hier als Steuerspeicher assoziativ betriebene Speicher verwendet werden, ergibt sich ein Betriebsablauf, der sich von nichtassoziativ betriebenen Speichern erheblich unterscheidet. Die Prinzipien für die Steuerung des Betriebsablaufs dieser Assoziativspei- 2Ί eher als Steuerspeicher sind nicht für herkömmliche nichtassoziativ betriebene Speicher anwendbar.
Es ist deshalb die Aufgabe der vorlieg .nden Erfindung, für einen in funktionell separate Blöcke unterteilten Steuerspeicher einer Datenverarbeitungs- jn anlage eine Steuereinrichtung anzugeben, die sowohl einfach in ihrer Struktur, als auch flexibel in ihrem Betrieb ist.
Gelöst wird diese Aufgabe der Erfindung durch die im Hauptanspruch angegebenen Merkmale. r.
Vorteilhafte Ausgestaltungen und Weiterbildungen des Gegenstandes der Erfindung sind den Unteransprüchen zu entnehmen.
Durch die Erfindung wird somit der Vorteil erreicht, daß für einen in mehrere separate funktionell Blöcke aufgeteilten Steuerspeicher eine Betriebsablaufsteuerung angegeben werden kann, die in ihrem Aufbau einfach und in ihrem Betrieb flexibel genug ist, um durch interne oder externe Bedingungen erforderlich werdende Änderungen eines sequentiellen Mikroprogrammablaufs zu beherrschen.
Im folgenden wird ein Ausführungsbeispiel der Erfindung anhand der Zeichnungen beschrieben. Es zeigt
F i g. 1 ein Blockschaltbild eines Informationsverarbeitungssystems, das die Beziehungen der Mikroprogrammsteuerungen zu den anderen Komponenten des Systems veranschaulicht,
F i g. 2 ein Ablaufdiagramm der für das Informationsverarbeitungssystem erforderlichen Steueroperationen.
F i g. 3 ein Blockschaltbild eines Mikroprogramm-Steuersubsystems gemäß der Erfindung,
F i g. 4 eine Darstellung des Bitmusters, das von dem in F i g. 3 dargestellten Prioritätskodierer erzeugt wird,
F i g. 5 eini; Ausführungsform eines Folgesteuergenerators für das Mikroprogramm-Steuersubsystem gemäß der Erfindung,
F i g. 6 ein« Ausführungsform der in F i g. 3 dargestellten Sprunglogik für das Mikroprogrammspeicherelement für den Zustande
Fig. 7A eine Prinzipdarstellung eines Mikroprogrammspeicherelementes, wie es im Ausführungsbeispiel der F i g. 3 verwendet wird und
Fig.7B das Blockschaltbild einer alternativen Ausführungsform der Mikroprogrammspeicherelemente für die Steuerung der Zustände I1 2 und 3 einer Operationsfolge des Mikroprogramm-Steuersystems nach F i g. 3 für ein Informationsverc.rbeitungssystem.
F i g. 1 zeigt ein allgemeines Blockschaltbild eines Informationsverarbeitungssystems, in dem ein Steuer- und Datenspeicher 10 mit einer Verarbeitungseinheit 20, einschließlich ihrer Rechenkreise und Register und mit einer Steuersammelleitung 51 Information austauschen kann. Der Speicher 10 empfängt Steuersignale von der Steuerlogik 50 über die Steuersammelleitung 51 und überträgt Zustandsinformation zurück an die Steuerlogik 50. Zwischen der Verarbeitungseinheit 20 und dem Speicher 10 werden Instruktionen, Adressen und Daten ausgetauscht Die Steuerlogik 50 überträgt Steuersignale für den Datenfluß zu der Verarbeitungseinheit 20 und sie empfängt Zustands- und Instruktionsinformationen.
Die Verarbeitungseinheit 20 überträgt Daten zu der Ein-/Ausgabegerätelogik (E/A-Logik) 30 und sie empfängt Steuersignale von der Steuerlogik 50 und überträgt Anforderungs- und Zustandssignale zu der Steuerlogik 50 über die Steuersammelleitung 51. Die E/A-Logik 30 überträgt Daten und Steuersignale zu den Ein-/Ausgabegeräten (E/A-Geräten) 40 und empfängt Daten und Zustandssignale als Antwort von den E/A-Geräten.
Das Blockschaltbild in F i g. 1 stellt eine an sich bekannte Realisierung eines Informationsverarbeitungssystems dar, bei dem eine Steuerlogik 50 dazu dient, die Informationsverarbeitung über den gesamten Datenfluß wirkungsvoll zu steuern.
In F i g. 2 ist ein typischer Steuerzyklus dargestellt, dessen Operation dadurch eingeleitet wird, indem festgestellt wird, ob noch eine Mikroprogrammunterbrechungsanforderung oder eine Unterbrechungsanforderung aussteht oder ob eine Instruktionsabruffolge ausgeführt werden soll. Mikroprogrammunterbrechungsanforderungs-, Unterbrechungsanforderungsund Instruktionsabruffolgen werden von einem Mikroprogramm-Speicherelement gesteuert, das im folgenden als Zustand O-Steuerung definiert ist.
Der Instruktionsabruffolge schließen sich stets die Adressenerzeugung, der Datenoperandenabruf (Zustände 1, 2 und 3) und die Instruktionsausführungsfolgen (Zustand 4) an. Erläuterungen zu diesen Steuerzuständen 0 bis 4 werden noch ausführlicher gegeben.
Alle in F i g. 2 dargestellten Operationen werden von der Steuerlogik 50 ausgeführt, die in F i g. 1 und ausführlicher in Fig. 3 dargestellt ist. Am Ende jedes Instruktionsausführungszyklus des Informationsverarbeitungssystems wird der Zustandsgenerator 150 der die Operationenfolge der Steuerlogik steuert, auf den Zustand 0 eingestellt, wodurch das Mikroprogramm-Steuerelement für den Zustand 0 freigegeben wird. Während der Operation des Zustandes 0 steuert das Mikroprogrammsteuerelement 100 das Informationsverarbeitungssystem. Ein Prioritätskodierer 102 erzeugt ein Auswahlsignal für eine Multiplex Steuerung (MPX) 104, die dafür sorgt, daß eine vorherbestimmte Anfangsadresse in einen Adressenzähler 106 durchgeschaltet (übertragen) wird.
Der Prioritätskodierer 102 erzeugt Auswahl- und Freigabesignale gemäß der in F i g. 4 dargeteilten Tabehe. Wenn beispielsweise ein Operationsendesignal oder ein Instruktionsabruf-Anforderungssignal von dem Zustandsgenerator 150 erzeugt wird, dann geben die Auswahlleitungseingänge zu der Multiplex-Steuerung
104 ein 01-Bitmuster ab, so daß die Freigabeleitung aktiv ist. Dieses Auswahlleitungsbitmuster ergibt die Anfangsadresse der Instruktionsabruf folge, die durch die Multiplex-Steuerung 104 zu dem Adressenzähler 106 durchgeschaltet werden soll.
Wenn ein Unterbrechungsanforderungssignal vorlage, dann wäre das Auswahlleitungs-Bitmuster 10, wobei die Freigabeleitung aktiv wäre und so die Multitplex-Steuerung 104 veranließe, die Anfangsadresse der Unterbrechungsfolge zu dem Adressenzähler 106 durchzuschalten. Wenn das Mikroprogrammunterbrechungs-Anforderungssignal aktiv ist, erzeugt der Prioritätscodierer 102 ein 11-Auswahlleitungs-Bitmuster mit einer aktiven Freigabeleitung, wodurch die Multiplexsteuerung 104 dazu veranlaßt wird, die Anfangsadresse der Mikroprogrammunterbrech.ungsfolge zu dem Adressenzähler 106 durchzuschalten.
Die Priorität der Behandlung der Anforderungssignale wird von dem Prioritätscodierer 102 auf folgende Weise zugeteilt:
Wenn ein Mikroprogrammunterbrechungs-Anforderungssignal vorliegt, dann erhält dieses die erste Priorität über alle anderen Anforderungssignale, so daß ein 11 -Auswahlleitungs-Bitmuster erzeugt wird.
Wenn ein Unterbrechungs-Anforderungssignal vorliegt, dann erhält dieses Priorität über das Endoperations oder Instruktionsabruf-Anforderungssignal und es wird dann ein 10-Auswahlleitungs-Bitmuster erzeugt. Das Operationsende- oder Instruktionsabruf-Anforderungssignal hat die niedrigste Priorität und wird nur dann berücksichtigt, wenn kein Signal höherer Priorität vorliegt
Die Multiplex-Steuerung (MPX) 104 kann einen bekannten Aufbau besitzen, bei dem vier Leitungen auf eine Leitung komprimiert werden, wobei aber im vorliegenden Ausführungsbeispiel nur drei Gruppen von Eingangsleitungen benötigt werden.
Das Operationsendesignal auf der Leitung 161 wird während des letzten Zyklus der Instruktionsausführung erzeugt die von dem Zustand 4-Steuerspeicherelement 140 gesteuert wird. Das Operationsendesignal wirkt als ein. Anfordepjngssigna! für einen !nstruktionsabruf.
Wie F i g. 5 zeigt wird das Operationsendesignal auf der Leitung 161 von einem NAND-Tor 168 erzeugt, wenn ein Weiterschaltesignal des Zustandsgenerators auf der Leitung 105 während des Zustandes 4 empfangen wird. Das Ausgangssignal des genannten NAN D-Tores 168 aktiviert das Operationsendesignal auf der Leitung 161 über den Inverter 124 und stellt die Verriegelungsschaltung 162 für den Zustand 0 ein, der die Freigabeleitung 160 für den Zustand 0 wirksam werden läßt
Das Mikroprogrammsteuerelement 100 für den Zustand 0 hält die Steuerung des Informationsverarbeitungssystems aufrecht bis die erforderliche Mikroprogrammunterbrechungs-, Unterbrechungsverarbeitungs- oder Instruktionsabruffolgen vollständig durchgeführt sind. Die Folgen des Zustandes 0 enthalten keine internen Verzweigungen, sondern sie werden vielmehr von dem Adressenzähler 106 gesteuert der als ein konventioneller Binärzähler aufgebaut sein kann.
Die Instruktionsabruffolge ruft die Instruktion, die von dem Programmzähler (nicht dargestellt) angegeben wird, vom Hauptspeicher 10 in F i g. 1 ab und stellt sie in das Instruktionsregister 200, dargestellt in F i g. 3.
Wenn die Instruktionsabruffolge vollständig ausgeführt ist erzeugt das Mikroprogrammsteuerelement 100 für den Zustand 0 den Mikroauftrag »stelle den Zustandsgenerator über die Leitung 103 ein«. Dieser Mikroaiuftrag bewirkt, daß der Zustandsgenerator 150 in Fig. 3 einen Zustand annimmt, der gesteuert wird von dem Inhalt des Feldes M des Instruktionsregisters 200, der über die Leitungen 205 dem Zustandsgenerator 150 zugeführt wird.
Di€! Ivlikroprogrammsteuerelemente 110,120 und 130 für jeweils die Zustände 1, 2 und 3 werden nur dann aktiviert, wenn die bestimmte auszuführende Instruktion Mikroaufträge erfordert, die in einem dieser Steuerelemente gespeichert sind, zu dem dann ein Zugriff erfolgen muß. So kann beispielsweise eine indirekte Adressierungsinstruktion erfordern, daß der Zustandsgenerator das Mikroprogrammsteuerelement 110 freigibt, damit die Adressenerzeugung und der Operandenabruf im Zustand ! beginnen kann.
Andere Instruktionen können den Zustandsgenerator 150 benötigen, um mit der Adressenerzeugung und dem Operandenabruf entweder im Zustand 2 oder 3 zu beginnen, indem er die Mikroprogrammsteuerelemente 120 oder 130, je nachdem, freigibt.
In F i g. 5 ist der Zustandsgenerator 150 ausführlicher dargestellt. Von dem M-FeId des Instruktionsregisters
200 wird ein zwei Bit umfassendes Eingangssignal zu einem Decodierer 156 übertragen, der ein Ausgangssignal auf vier Leitungen erzeugt und an ein Schieberegister 158 weiterleitet. Wenn das Muster des M-Feldes eine »ti« ist, dann wird zuerst der Zustand 1 freigegeben und das Schieberegister 158 progressiv über die nachfolgenden Zustände 1, 2, 3 und 4 verschoben, wobei das Weiterschaltesignal auf der Leitung 105 die Schiebeoperation nach rechts bewirkt.
Wenn das Bitmuster des Af-Feldes »01« ist, dann wird zuerst der Zustand 2 freigegeben und die Zustandsfolge, wie zuvor, durch das Weiterschaltesignal auf der Leitung 105, weitergeschaltet.
Wenn das Bitmuster des Af-Feldes eine »00« ist, dann wird zuerst der Zustand 3 freigegeben, wenn aber das Muster eine »10« ist, dann wird zuerst der Zustand 4 freigegeben.
Das Schieberegister 158 führt nur Rechtsverschiebungen durch, so daß der Zustand 4 stets der letzte Zustand ist, der für die Instruktionsausführung eingegeben wird. Das Mikroprogrammsteuerelement 140 für den Zustand 4 gibt stets die Steuerung an das Mikroprogrammsteuerelement 100 für den Zustand 0 zurück, und zwar über das NAND-Tor und die Verriegelungsschaltung 162 in ihrer 0-Stellung.
Das Weiterschaltesignal für den Zustandsgenerator ist ein Mikroauftrag, der von jedem Mikroprogrammsteuerelement 110,120,130 und 140 erzeugt wird, wenn das entsprechende Mikroprogrammsteuerelement den Teil der Operation des Informationsverarbeitungssystems vollständig beendet hat, dessen Steuerung dieses Element übernommen hat
Die Mikroprogrammsteuerelemente 110,120 und 130 für die Zustände 1, 2 und 3 steuern die Operation des Informationsverarbeitungssystems jeweils für einen Zyklus und sie benötigen auch keine örtlichen Adresseneinrichtungen. Das Mikroprogrammsteuerelement 140 für den Zustand 4 hat eine mehrfache Zyklussteuerfähigkeit und zwar für Instruktionen für das Verschieben. Multiplizieren und Dividieren.
Der Operationscode (OP-Code) auf den Leitungen
201 wird über die Tore 144 als Startadresse benutzt wenn die erste Adressenleitung aktiv ist Die Tore 144a übertragen den Operationscode in das Adressenregister 146, das seinerseits den Zugriff zu dem Mikropro-
griimmstciierelcment 140 durchführt.
Das Mikroprogrammsteuerelemcnt 140 erzeugt Steuersignale auf den Leitungen 141, die die sogenannte Sprunglogik 142 (ausführlich dargestellt in Fig. 6) und die Tore 1446 betätigt, um alternierende Adressen in dem Mikroprogrammsteuerelement 140 freizugeben, das angesteuert werden muß. nachdem verschiedene Bedingungen im Datenfluß während der Instruktionsausführungauftreten.
Die .Sprunglogik 142, die in F i g. 6 dargestellt ist. gestattet verschiedenen Datenbedingungen auf den Leitungen 143 die Modifizierung der niedrigstelligen Bits der Adresse für das Mikroprogrammsteuerelement 140, wobei dieses von den Signalen auf den Leitungen 141 gesteuert wird. Die Multiplexsteuerung 148 kann den gleichen Aufbau besitzen wie die bereits kommerziell verfügbare Multiplexsteuerung 104.
Die Multiplexsteuerung 148 gestattet den Datenbedingungen das niedrigstellige Bit der nächsten Adresse, gesteuert von dem Mikroprogrammsteuerelement 140, umzuschalten, so daß eine alternative Mikroinstruktion in Abhängigkeit von den Datenflußbedingungen ausgeführt wird.
Auf diese Weise steuert das Mikroprogrammsteuerclement 140 für den Zustand die Operation des Informationsverhandlungssystems während der Instruktionsausführungszyklen in einer von den Bedingungen, die in dem Datenfluß auftreten können, abhängigen Weise, wobei es erforderlich ist, daß alternative Mikroinstruktionen erzeugt werden.
Nachdem die Instruklionsausführung vollständig beendet ist, erzeugt das Mikroprogrammsteuerelement 140 den Mikroauftrag für das Weiterschalten des Zuslandsgenerators mittels eines Signals auf der Leitung 105, das bewirkt, daß der Zustandsgenerator 150 zu dem Zustand 0 weiterschaltet und ein Operationsendesignal erzeugt, das einen Operationszyklus abschließt.
Das vorstehende Ausführungsbeispiel wurde zwar anhand eines Informationsverarbeitungssystems beschrieben, es ist jedoch nicht auf eine derartige Anwendung beschränkt, sondern es kann auch für die Steuerung von Ein-ZAusgabegeräten, Zeichengeneratoren und anderen logischen Systemen verwendet werden, die eine gesteuerte Operationsfolge erfordern.
Jedes dieser Mikroprogrnmmsteuerelemente 100, 110. 120, 130 und 140 kann als monolithisch integrierter Festwertspeicher realisiert sein, der bereits auf dem Markt erhältlich ist.
Die F i g. 7A und 7B /eigen zwei Alternativen für die Realisierung der Mikroprogrammsteucrelemente für die Zustände 1, 2 und 3. F i g. 7A zeigt, ebenso wie das in Fig. i dargestellte Ausführungsbeispiel, ein separates Feslwertspeicherclemcnt, das einen Adresseneingang, einen Freigabeeingang und einen Mikroauflrags-Ausgang besitzt. Die Größe des Mikroprogramnisteuerelements ist durch KxN bestimmt, wobei K die Anzahl der Adressen im Mikroprogrammsteuerelement und N die Anzahl der Bits in jedem Mikroauftrag darstellen, der in dem Mikroprogrammsteuerelement gespeichert ist.
Fig. 7B zeigt ein anderes Ausführungsbeispiel, bei dem eine größere Matrix vorteilhafter ist. Die Zustände 1, 2 und 3 sind in einer einzigen monolithischen Struktur kombiniert, bei der der Adresseneingang nun fünf parallele Bits benötigt, im Gegensatz zu den drei parallelen Bits, wenn die Mikroprogrammsteuerelenicnte für die einzelnen Zustände separat angeordnet sind. Diese fünf Bits bestehen aus drei Adreßbus, von den »b<t- und »/77«-Feldcrn des Instruktionsadressenregi sters 200 und aus zwei zusätzlichen Bits, die von den Leitungen für die Zustände 1.2 und 3 von den Toren 354, 356 und der' Invertern 358, 360 und 362 erzeugt werden. Das_Ausgangssignal des Tores 354 ist logisch gleich 5 1 & 52 & 53._Das Ausgangssignal des Tores 356 ist logisch gleich 51 & 5 2 & 53.
Die Freigabesignale werden in dem ODER-Tor 352 kombiniert, um das Mikroprogrammsteuerelement 350 freizugeben, so daß eine beliebige von 32 Adressen der Länge N angesteuert wird. Die in F i g. 7 dargestellte Schaltkreisstruktur kann auch im Zusammenhang mit dem in F i g. 3 dargestellten Ausführungsbeispiel verwendet werden, ohne daß eine Änderung des Zustandsgenerators 150 erforderlich ist.
Die vorstehend erläuterte Erfindung gestattet den Aufbau eines effizienten und ökonomischen Mikroprogrammsteuer-Subsystems, das mit weniger gespeicherten Bits für eine gegebene Steuerfunktion auskommt, als bekannte Systeme.
Hierzu 3 Blatt Zeichnungen

Claims (5)

Patentansprüche:
1. Mikroprogramm-Steuereinrichtung für eine elektronische Datenverarbeitungsanlage mit mehreren verteilt angeordneten Mikroprogrammspeichern, von denen jeder nur bestimmte aus einer durch eine Makroinstruktion vorgegebenen Folge von Makroinstruktionen zu einer bestimmten Zeit ausführt, gekennzeichnet durch eine Ablaufsteuerung (150; F i g. 3), die in Abhängigkeit von der Information in einem bestimmten Feld der Makroinstruktion die Mikroprogrammspeicher (100, 110,..., 140) gemäß einer vorgegebenen Reihenfolge zur Steuerung der Maschine freigibt, durch eine Prioritätssteuerung (102, 104), die in Abhängigkeit von externen oder internen Anforderungssignalen einem ersten Mikroprogrammspeicher (100) gemäß einer vorgegebenen Priorität die Steuerung der Maschine zwischen dem Ende der Ausführung der laufenden Makroinstruktion und dem Beginn des Abrufes der nächsten überträgt, durch eine Schalteinrichtung (142, 144a, 144i>, 149), die auf externe oder interne Bedingungen während der Ausführung einer Makroinstruktion auf eine andere Mikroinstruktionsfolge eines anderen Mikroprogrammspeichers umschaltet und durch eine Einrichtung (101) zur Übertragung der von den Mikroprogrammspeichern erzeugten Mikroinstruktionen zu Mikroinstruktionsdecodierern, welche die Operation des Hauptspeichers, der zentralen Verarbeitungseinheit und der Ein-/Ausgabegeräte steuern.
2. Mikroprogramm-Steuereinrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Auswahl derjenigen Mikroinstruktionsfolge aus einem Mikroprogrammspeicher (100; Fig. 3) für die Steuerung von Mikroprogrammunterbrechungen, Programmunterbrechungen und des Makroinstruktionsabrufs, die zuerst ausgeführt werden sull, durch ein Signal der Prioritätssteuerung (102, 104) gesteuert wird, welche die Anforderungssignale in entsprechende Anfangsadressen für die zugeordneten Routinen umcodiert.
3. Mikroprogramm-Steuereinrichtung nach Anspruch 1 und/oder 2, dadurch gekennzeichnet, daß die Auswahl alternativer im Mikroprogrammspeicher (140; Fig.3) für die Instruktionsausführung stehender Mikroprogrammfolgen in Abhängigkeit von Bedingungen erfolgt, die während der Ausführung von Operationen auftreten, die von der genannten Instruktion spezifiziert werden und von einer Steuerung (142) mittels von ihr erzeugter Anfangsadressen erfolgt, die sie aus den Anforderungssignalen und den zuletzt aus dem betreffenden Mikroprogrammspeicher (140) ausgelesenen Adreßbits bildet.
4. Mikroprogramm-Steuereinrichtung nach einem oder mehreren der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß die Ablaufsteuerung (150; Fig.3) am Ende jedes Makroinstruktionsausführungszyklus den Mikroprogrammspeicher (100), der die Behandlung von Unterbrechungsroutinen und Befehlsabruf-Steuerfolgen steuert, selektiert und dann in Abhängigkeit von der Information in einem bestimmten Feld der Makroinstruktion zu einem anderen Mikroprogrammspeicher umschaltet.
5. Mikroprogramm-Steuereinrichtung nach Anspruch 4, dadurch gekennzeichnet, daß die Ablaufsteuerung (150; Fig.5) einen Decodierer (156) aufweist, der die Information in einem bestimmten Feld (M) einer Makroinstruktion (200) in eine Adresse (S 1 bis 54) umcodiert, die als binäre Eins in diejenige Stufe eines Schieberegister (158), deren Ausgang das Selektionssignal für einen Mikroprogrammspeicher darstellt und daß nach Beendigung der Operation in diesem Mikroprogrammspeicher das Schieberegister die binäre Eins in die nächste Stufe verschiebt und somit den nächsten Mikroprogrammspeicher selektiert, bis schließlich nach Selektion und Beendigung der Operation im letzten Mikroprogrammspeicher ein Schalter (162) gesetzt wird, der wieder denjenigen Mikroprogrammspeicher auswählt, dessen in ihm gespeicherte Routinen die Unterbrechungsfolgen und Instruktionsabruffolgen steuern.
DE2322674A 1972-06-02 1973-05-05 Mikroprogramm-Steuereinrichtung Expired DE2322674C3 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US25926472A 1972-06-02 1972-06-02

Publications (3)

Publication Number Publication Date
DE2322674A1 DE2322674A1 (de) 1973-12-13
DE2322674B2 true DE2322674B2 (de) 1981-06-19
DE2322674C3 DE2322674C3 (de) 1982-03-04

Family

ID=22984246

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2322674A Expired DE2322674C3 (de) 1972-06-02 1973-05-05 Mikroprogramm-Steuereinrichtung

Country Status (7)

Country Link
US (1) US3760369A (de)
JP (1) JPS5342380B2 (de)
CA (1) CA990411A (de)
DE (1) DE2322674C3 (de)
FR (1) FR2195372A5 (de)
GB (1) GB1358534A (de)
IT (1) IT981606B (de)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3868649A (en) * 1972-06-28 1975-02-25 Fujitsu Ltd Microprogram control system
US3878514A (en) * 1972-11-20 1975-04-15 Burroughs Corp LSI programmable processor
JPS5247976B2 (de) * 1973-03-16 1977-12-06
USRE30331E (en) * 1973-08-10 1980-07-08 Data General Corporation Data processing system having a unique CPU and memory timing relationship and data path configuration
US3918030A (en) * 1973-08-31 1975-11-04 Richard L Walker General purpose digital computer
JPS5068751A (de) * 1973-10-23 1975-06-09
IT1000638B (it) * 1973-12-28 1976-04-10 Olivetti & Co Spa Calcolatore elettronico con dispo sitivo di deviazione dei micropro grammi
JPS50105345A (de) * 1974-01-28 1975-08-20
US4156903A (en) * 1974-02-28 1979-05-29 Burroughs Corporation Data driven digital data processor
US4037204A (en) * 1974-10-30 1977-07-19 Motorola, Inc. Microprocessor interrupt logic
US4010448A (en) * 1974-10-30 1977-03-01 Motorola, Inc. Interrupt circuitry for microprocessor chip
US3987418A (en) * 1974-10-30 1976-10-19 Motorola, Inc. Chip topography for MOS integrated circuitry microprocessor chip
US4001788A (en) * 1975-03-26 1977-01-04 Honeywell Information Systems, Inc. Pathfinder microprogram control system
US4075692A (en) * 1976-01-02 1978-02-21 Data General Corporation Data path configuration for a data processing system
US4087857A (en) * 1976-10-04 1978-05-02 Honeywell Information Systems Inc. ROM-initializing apparatus
US4107774A (en) * 1976-10-04 1978-08-15 Honeywell Information Systems Inc. Microprogram splatter return apparatus
US4142246A (en) * 1976-12-23 1979-02-27 Fuji Electric Company, Ltd. Sequence controller with dynamically changeable program
US4118773A (en) * 1977-04-01 1978-10-03 Honeywell Information Systems Inc. Microprogram memory bank addressing system
DE2747304C3 (de) * 1977-10-21 1981-03-26 IBM Deutschland GmbH, 70569 Stuttgart Einrichtung zur Mikrobefehlssteuerung
US4228497A (en) * 1977-11-17 1980-10-14 Burroughs Corporation Template micromemory structure for a pipelined microprogrammable data processing system
US4223381A (en) * 1978-06-30 1980-09-16 Harris Corporation Lookahead memory address control system
US4330823A (en) * 1978-12-06 1982-05-18 Data General Corporation High speed compact digital computer system with segmentally stored microinstructions
US4346438A (en) * 1979-10-24 1982-08-24 Burroughs Corporation Digital computer having programmable structure
JPS57753A (en) * 1980-06-02 1982-01-05 Hitachi Ltd Microprogram controller
JPS5748139A (en) * 1980-09-04 1982-03-19 Nec Corp Microprogram control device
US4484260A (en) * 1981-12-17 1984-11-20 At&T Bell Laboratories Stored-program control machine
US4685080A (en) * 1982-02-22 1987-08-04 International Business Machines Corp. Microword generation mechanism utilizing separate programmable logic arrays for first and second microwords
US4484268A (en) * 1982-02-22 1984-11-20 Thoma Nandor G Apparatus and method for decoding an operation code using a plurality of multiplexed programmable logic arrays
US4931989A (en) * 1982-02-22 1990-06-05 International Business Machines Corporation Microword generation mechanism utilizing a separate programmable logic array for first microwords
US4661901A (en) * 1982-12-23 1987-04-28 International Business Machines Corporation Microprocessor control system utilizing overlapped programmable logic arrays
US4720779A (en) * 1984-06-28 1988-01-19 Burroughs Corporation Stored logic program scanner for a data processor having internal plural data and instruction streams
EP1061437A1 (de) * 1999-06-16 2000-12-20 STMicroelectronics S.r.l. Erhöhte Steuereinheit bei elekronischen Mikrokontrollern oder Mikroprozessoren

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3319394A (en) * 1963-07-25 1967-05-16 Goodrich Co B F Apparatus for packaging resilient cellular material
US3380025A (en) * 1964-12-04 1968-04-23 Ibm Microprogrammed addressing control system for a digital computer
US3325785A (en) * 1964-12-18 1967-06-13 Ibm Efficient utilization of control storage and access controls therefor
US3440612A (en) * 1966-02-28 1969-04-22 Ibm Program mode switching circuit
US3537074A (en) * 1967-12-20 1970-10-27 Burroughs Corp Parallel operating array computer
US3570006A (en) * 1968-01-02 1971-03-09 Honeywell Inc Multiple branch technique
US3646522A (en) * 1969-08-15 1972-02-29 Interdata Inc General purpose optimized microprogrammed miniprocessor
US3634883A (en) * 1969-11-12 1972-01-11 Honeywell Inc Microinstruction address modification and branch system
GB1257760A (de) * 1970-10-10 1971-12-22
US3699526A (en) * 1971-03-26 1972-10-17 Ibm Program selection based upon intrinsic characteristics of an instruction stream

Also Published As

Publication number Publication date
JPS5342380B2 (de) 1978-11-10
DE2322674A1 (de) 1973-12-13
DE2322674C3 (de) 1982-03-04
US3760369A (en) 1973-09-18
IT981606B (it) 1974-10-10
GB1358534A (en) 1974-07-03
CA990411A (en) 1976-06-01
FR2195372A5 (de) 1974-03-01
JPS4951839A (de) 1974-05-20

Similar Documents

Publication Publication Date Title
DE2322674B2 (de) Mikroprogramm-Steuereinrichtung
DE1774296C2 (de) Restruktuierbare Steuereinheit für elektronische Digitalrechner
DE2744531C2 (de) Anordnung zur Auswahl von Unterbrechnungsprogrammen in einer Datenverarbeitungsanlage
DE1915818C3 (de) Steuerschaltung für ein elektronisches Datenverarbeitungssystem
DE2318069C2 (de) Mikroprogrammierte Rechenanlage mit Erweiterung von Steuerfunktionen mittels festverdrahteter logischer Matrix
DE2350884A1 (de) Datenverarbeitungssystem
DE2417795C2 (de) Datenverarbeitungsanlage
DE1549523B2 (de) Datenverarbeitungsanlage
DE2717658A1 (de) Anordnung zur ansteuerung eines mikroprogrammspeichers
DE2339636A1 (de) Programmsteuereinrichtung
DE1275800B (de) Steuerwerk fuer datenverarbeitende Maschinen
DE2019444A1 (de) Datenverarbeitungsanlage
EP0010185A1 (de) Virtuell-Adressiervorrichtung für einen Computer
DE2536622A1 (de) Mikroprogrammsteuerung mit flexibler auswahl von steuerworten
DE2440628A1 (de) Datenverarbeitungsanlage mit mikroprogrammierung
DE1524898C3 (de) Datenspeicher mit direktem mehrdimensionalen Zugriff zur gleichzeitigen Entnahme mehrerer Wörter
DE2336676C3 (de) Einrichtung zur Modifizierung von Mikroprogrammbefehlen
DE2854400A1 (de) Anordnung zum wechsel zwischen verzahnt zu verarbeitenden programmen
DE2948442A1 (de) Digitalrechnersystem
DE1799012B1 (de) Registereinrichtung zur Erleichterung des Wechsels von Teilprogrammen und Teilprogrammschnitten in einem elektronischen Rechner
DE2744252C2 (de)
DE3341339C2 (de) Befehlsfolgegenerator
DE1298318B (de) Steuerwerk fuer eine digitale Rechenanlage
DE1549446A1 (de) Digitalrechner
DE2150292C2 (de) Mikroprogrammgesteuerte Datenverarbeitungsanlage mit überlagerter Ausführung und Entnahme von Befehlen

Legal Events

Date Code Title Description
OD Request for examination
C3 Grant after two publication steps (3rd publication)
8339 Ceased/non-payment of the annual fee