DE3344340C2 - Datenverarbeitungsanordnung zum Durchführen von Mikrobefehlen - Google Patents
Datenverarbeitungsanordnung zum Durchführen von MikrobefehlenInfo
- Publication number
- DE3344340C2 DE3344340C2 DE3344340A DE3344340A DE3344340C2 DE 3344340 C2 DE3344340 C2 DE 3344340C2 DE 3344340 A DE3344340 A DE 3344340A DE 3344340 A DE3344340 A DE 3344340A DE 3344340 C2 DE3344340 C2 DE 3344340C2
- Authority
- DE
- Germany
- Prior art keywords
- address
- input
- multiplexer
- memory
- processor
- 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 - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
- G06F9/261—Microinstruction address formation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
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)
- Advance Control (AREA)
Description
Die Erfindung betrifft eine Datenverarbeitungsanordnung
nach dem Oberbegriff des Patentanspruchs 1.
Eine derartige Datenverarbeitungsanordnung ist bekannt aus
der US-PS 4,446,517. Darin enthält jeder Mikrobefehl einen
Adreßteil, der auf einen unmittelbar folgenden Mikrobefehl
hinweist. Dadurch muß jeder Mikrobefehl relativ lang sein,
so daß der Mikrocodespeicher einen großen Umfang hat.
Aus der DE 30 09 121 B1 ist eine Mikroprogramm-Steuer
einrichtung bekannt, bei der jeweils zwei Mikrobefehls
wörter gleichzeitig ausgegeben werden, die abhängig von
der auszuführenden Operation nacheinander oder gleich
zeitig wirksam werden können.
Aus der US-PS 4,070,703 ist eine Organisation eines
Steuerspeichers für eine mikroprogrammierbare Daten
verarbeitungsanordnung bekannt, bei der der Steuerspeicher
in zwei Teile unterteilt ist, von denen der eine Teil den
Steuercode und der andere, gleichzeitig adressierte Teil
eine Folgeadresse enthält. Auch hierbei ist ein großer
Mikrocodespeicher zum Speichern von Mikrobefehlen not
wendig.
Aus der FR-OS 2 440 030 ist eine Datenverarbeitungsanord
nung mit einem Mikrocodespeicher bekannt, der in mehrere
Zonen mit nahezu gleicher Speicherkapazität unterteilt
ist. Ferner ist ein Adreßgenerator mit einem ersten und
einem zweiten Teiladreßgenerator vorgesehen. Der erste
Teiladreßgenerator erzeugt eine Adresse eines
Mikrobefehlsworts in einer Zone, während der zweite
Teiladreßgenerator die Zone selbst adressiert. Wenn z. B.
der Mikrocodespeicher in vier Zonen eingeteilt ist, aber
der zu verarbeitende Makrobefehl in nur drei Schritten
verarbeitbar ist, bedeutet dies, daß in der vierten Zone
eine unbenutzte Speicherstelle vorhanden ist. Dadurch wird
die verfügbare Speicherkapazität unwirtschaftlich
ausgenutzt. Weiter wird bei diesem Aufbau häufig auf eine
andere Zone umgeschaltet, wodurch die Ausführungszeit
verlängert wird.
Aufgabe der Erfindung ist es daher, eine Datenverarbei
tungsanordnung der eingangs genannten Art anzugeben, bei
der die Speicherkapazität des Mikrocodespeichers wirt
schaftlich ausgenutzt wird und die Ausführungszeit
möglichst gering gehalten wird.
Diese Aufgabe wird erfindungsgemäß durch die im Patent
anspruch 1 angegebenen Merkmale gelöst.
Auf diese Weise können die Mikrobefehle kürzer und der
Mikrocodespeicher kleiner sein, da nun nicht mehr jeder
Mikrobefehl einen Adreßteil enthalten muß. Der erste und
der zweite Teiladreßgenerator erzeugen je eine Teil
adresse, und beide Teiladressen bilden die Adresse für ein
Mikrobefehlswort. Die erste Teiladresse stellt einen
Bearbeiter dar und wird direkt aus dem Makrobefehl im
Befehlsregister bestimmt. Ein Makrobefehl entspricht somit
einem Bearbeiter, der eine Mehrzahl von Mikrobefehls
wörtern umfaßt, die nun nacheinander über die zweite
Teiladresse adressiert und ausgelesen werden. Die Adresse
des ersten Mikrobefehlsworts im Bearbeiter wird durch den
Makrobefehl gebildet, und die Adressen der dann folgenden
Mikrobefehlswörter werden automatisch von der Folge
steuerung gebildet, wobei auch Adressensprünge ausgeführt
werden können, abhängig von dem Inhalt des jeweils vorher
gehenden Mikrobefehlsworts und bestimmter Bedingungs
signale. Sofern keine Sprünge in der Adressierung des
Mikrocodespeichers ausgeführt werden, bleibt die Adresse
bzw. der Adreßteil des Bearbeiters konstant, während der
Adreßteil, der die Mikrobefehlswörter innerhalb des
Bearbeiters angibt, automatisch weitergezählt wird. Dies
ist dadurch leicht möglich, daß erfindungsgemäß für die
Adresse des Bearbeiters und für die Adresse des Mikro
befehlsworts innerhalb des Bearbeiters jeweils ein eigener
Multiplexer zur Verfügung gestellt wird. Dadurch ist ein
einfacher Aufbau der Folgesteuerung möglich, mit dem die
Adressen der aufeinanderfolgenden Mikrobefehlswörter auch
bei Adreßsprüngen sehr schnell gebildet werden können.
Durch das automatische Fortschalten der zweiten Teil
adresse innerhalb des Bearbeiters durch die Folgesteuerung
muß diese zweite Teiladresse zwar eine Anzahl Bits haben,
die für die maximale Anzahl von Mikrobefehlswörtern je
Bearbeiter ausreicht, so daß bei anderen Bearbeitern nur
ein Teil der möglichen Adressen ausgenutzt wird, jedoch
führt dies nicht zu einer Vergrößerung des Mikrocode
speichers, wenn dieser als sogenannter "dünner" Speicher
ausgeführt wird, bei dem also nur diejenigen Adressen
dekodiert werden, die auch tatsächlich vorkommen können.
Ausgestaltungen der Erfindung sind in den Unteransprüchen
gekennzeichnet.
Einige Ausführungsbeispiele der Erfindung werden
nachstehend an Hand der Zeichnung näher erläutert.
Es zeigt
Fig. 1 eine Darstellung der wichtigsten Bestandteile
eines Datenverarbeitungssystems;
Fig. 2 ein Beispiel einer Ausführung eines Steuer
teils einer Datenprozessoreinheit,
Fig. 3a die verschiedenen Teile eines Speichers aus
dem Steuerteil einer Datenprozessoreinheit,
Fig. 3b ein einfaches Beispiel der Struktur eines
Mikrocodespeichers,
Fig. 3c und d Beispiele der Art, auf die die Adressen
gebildet sind, und den Zusammenhang zwischen den Adressen
und den Mikrobefehlswörtern,
Fig. 4 ein Ausführungsbeispiel einer Folgesteuerung
als Teil des Steuerteils einer erfindungsgemäßen Daten
prozessoreinheit.
Ein Datenverarbeitungssystem nach Fig. 1 enthält u. a.
eine Datenprozessoreinheit 1 und einen Hauptspeicher 2.
Die Datenprozessoreinheit und der Hauptspeicher sind an
einen Bus 3 angeschlossen, über den Daten laufen. An den
Bus können weitere Einheiten angeschlossen werden, wie bei
Datenverarbeitungssystemen bekannt ist, aber diese sind
nicht dargestellt, da sie für die Beschreibung der Erfindung
unwichtig sind. In der Datenprozessoreinheit 1 lassen sich
mehrere Teile unterscheiden. So enthält beispielsweise die
Zentralprozessoreinheit einen inneren Speicherteil A, einen
Steuerteil B, einen Verarbeitungsteil C und einen Eingabe/Aus
gabe-Schnittstellenteil D. Diese Teile A, B, C und D
sind alle an einen inneren Bus 4 angeschlossen, wodurch sie
untereinander Informationen austauschen können. Der Steuer
teil B sendet weiter Steuersignale über die Leitung 5 an
jeden der übrigen Teile.
Die Erfindung bezieht sich auf den Steuerteil B der
Datenprozessoreinheit, und insbesondere auf eine Ausführung
dieses Steuerteils B. Der Steuerteil sorgt durch die Er
zeugung von Steuersignalen dafür, daß zu verarbeitende
Daten an den zugeordneten Stellen auf eine angegebene Weise
behandelt werden.
Das System 15 nach Fig. 2 zeigt ein Beispiel der
Ausführung eines Steuerteils aus einer erfindungsgemäßen
Datenprozessoreinheit. Der Steuerteil 15 enthält eine
Folgesteuerung 11 (sequencer), von dem ein erster Eingang
mit einem Bedingungsregister 13 und ein zweiter Eingang
mit einem Befehlsregister 10 verbunden ist. Ein Ausgangs
leitungsbündel 16 der Folgesteuerung ist mit einem Adreß
eingang eines Mikrocodespeichers 12 verbunden. Ein Daten
ausgang dieses Mikrocodespeichers 12 ist an einen Eingang
eines Mikrobefehlswortregisters 14 angeschlossen, von dem
ein erster Ausgang mit der Leitung 5 der Datenprozessor
einheit verbunden ist. Ein zweiter bzw. dritter Ausgang
des Mikrobefehlsregisters 14 ist an einen dritten bzw.
vierten Eingang der Folgesteuerung 11 angeschlossen. Das
Mikrobefehlswortregister und seine damit verbundenen Aus
gangsleitungen bilden eine "Rohrleitung-Sammelleitung"
("pipeline assembly-line"). Dieser Begriff wird beispiels
weise auf Seiten 84 und 85 des Buchs "Computer Structures
Reading and Examples" von C.G. Bell und A. Newell in der
Ausgabe bei McGraw Hill Book Company (1971) beschrieben.
Das Befehlsregister 10 ist ein Teil des Eingabe/Aus
gabe-Schnittstellenteils D der Datenprozessoreinheit.
In das Befehlsregister 10 wird jeweils ein Binärcode für
einen folgenden Befehl des von der Datenprozessoreinheit
bearbeiteten Programms eingeschrieben. Die Befehle des
durchgeführten Programms entstammen dem Hauptspeicher (2
nach Fig. 1) oder einer anderen an den Bus 3 angeschlossenen
Einheit. Diese Befehle sind Makrobefehle, d. h. sie sind
in einer kompakten Form formuliert. Ein Beispiel eines Makro
befehls ist "ADD R1, R3". Mit dieser Formulierung stellt
dieser Makrobefehl eine Bearbeitung dar, bei der der Inhalt
des Registers R1 zum Inhalt des Registers R3 addiert werden
muß. Der in das Befehlsregister eingeschriebene Makro
befehl wird vom Steuerteil der Datenprozessoreinheit in
Mikrobefehle übersetzt, die darauf der Verarbeitungsteil C
durchführt. So wird der im Beispiel herangezogene Makro
befehl "ADD R1, R3" beispielsweise in folgende Mikrobefehle
übersetzt:
R1 → ALU 1; übertrage den Inhalt des Registers R1 auf den ersten Eingang der ALU (aritmetic logic unit, die ein Teil des Verarbeitungsteils C der Daten prozessoreinheit ist).
R3 → ALU 2; übertrage den Inhalt des Registers R3 auf den zweiten Eingang der ALU.
ALU → R3; schreibe das Ergebnis des Ausgangs der ALU in das Register R3.
PC + 1 → MEMADR; erhöhe den Inhalt des Programmzählers PC (program counter) auf eine folgende Speicher adresse des Speichers, in dem das Programm der Bearbeitung gespeichert ist.
MEM → IR; lies den Inhalt dieser folgenden Speicheradresse und schreibe diesen Inhalt in das Befehlsregister.
R1 → ALU 1; übertrage den Inhalt des Registers R1 auf den ersten Eingang der ALU (aritmetic logic unit, die ein Teil des Verarbeitungsteils C der Daten prozessoreinheit ist).
R3 → ALU 2; übertrage den Inhalt des Registers R3 auf den zweiten Eingang der ALU.
ALU → R3; schreibe das Ergebnis des Ausgangs der ALU in das Register R3.
PC + 1 → MEMADR; erhöhe den Inhalt des Programmzählers PC (program counter) auf eine folgende Speicher adresse des Speichers, in dem das Programm der Bearbeitung gespeichert ist.
MEM → IR; lies den Inhalt dieser folgenden Speicheradresse und schreibe diesen Inhalt in das Befehlsregister.
Diese letzten drei Mikrobefehle ergeben sich (fast)
immer bei der Durchführung von Makrobefehlen. Die Mikro
befehle sind in Form von Mikrobefehlswörtern in den Mikro
codespeicher 12 eingeschrieben. Jedes Mikrobefehlswort wird
mit Hilfe einer eindeutigen Adresse am Adreßeingang dieses
Mikrocodespeichers adressiert. Diese Adresse entstammt der
Folgesteuerung 11, in der sie dem Ausgangsleitungsbündel 16 zu
geführt wird. In diesem Ausführungsbeispiel besteht diese
Adresse aus drei charakteristischen Teilen. Diese drei
charakteristischen Teile identifizieren das zugeordnete
Befehlswort. Der Deutlichkeit halber ist es notwendig, zu
nächst den Inhalt des Mikrocodespeichers 12 näher zu be
trachten. Anschließend wird beschrieben, wie die Adresse
in der Folgesteuerung 11 gebildet wird, sowie die Art der Funktion
des Steuerteils 15.
In Fig. 3a ist ein Beispiel einer inneren Struktur
eines Mikrocodespeichers 12 für einen Steuerteil einer
Datenprozessoreinheit dargestellt. Ein derartiger Mikro
codespeicher enthält einen Speicherteil 20 und einen damit
verbundenen Adreßteil 21. Jeder Adresse aus dem Adreßteil
21 ist ein Mikrobefehlswort aus dem Speicherteil zugeordnet.
Die Adresse gelangt an einen Adreßeingang 22, und das
der zugeführten Adresse zugeordnete Mikrobefehlswort gelangt
an einen Datenausgang 23. Der Mikrocodespeicher enthält
z. B. eine UND-Matrixstruktur zum Decodieren des Adreßsignals
und eine ODER-Matrixstruktur zum Speichern der Mikrobefehls
wörter, die in den Speicherteil eingeschrieben sind.
In Fig. 3b ist eine derartige Mikrocodespeicher
struktur an Hand eines einfachen Beispiels dargestellt.
Die dem Adreßeingang 22 zugeführte Adresse hat z. B. eine
Breite von 2 Bits (A1A0). Für jedes Adreßbit gibt es eine
Adreßleitung, d. h. die Adreßleitung 24 bzw. 25 für das
Adreßbit A0 bzw. A1. Jede Adreßleitung ist am Eingang
des Adreßteils mit dem jeweiligen Eingang eines dieser
Adreßleitung zugeordneten Inverters (G0, G1) verbunden.
Ein Ausgang eines jeden Inverters (G0 bzw. G1) ist an eine
Nebenadreßleitung (24′ bzw. 25′) angeschlossen. Die
Adreßleitungen und die Nebenadreßleitungen bilden dabei
die Spalten der Matrix. Zum Decodieren der Adreßinformation
sind Transistoren vorgesehen, die mit einem Kreuz bezeichnet
sind. Die Transistoren bilden die Matrixelemente, die an
den Knotenpunkten der Zeilen und Spalten angeordnet sind.
Die Adreßleitungen bzw. die Nebenadreßleitungen sind an
eine erste Elektrode (beispielsweise die Basis) eines der
artigen Transistors angeschlossen. Eine zweite Elektrode
(beispielsweise der Kollektor) eines derartigen Transistors
ist mit einem Punkt 26 verbunden, an den eine Spannungsquelle
angeschlossen wird. Diese Spannungsquelle (in der Figur nicht
dargestellt) erzeugt eine Spannung, die beispielsweise den
Wert logisch "1" darstellt. Eine dritte Elektrode (beispiels
weise der Emitter) eines derartigen Transistors ist an einen
Eingang eines logischen UND-Gatters (27, 28, 29) angeschlos
sen. In diesem Beispiel gibt es vier Eingänge zu jedem
logischen UND-Gatter. Der Übersichtlichkeit in der Abbildung
halber ist nur ein Eingang dargestellt. Das Besondere dieser
Struktur besteht darin, daß nicht jeder Knotenpunkt mit
einem derartigen Transistor versehen ist (es gibt Knoten
punkte ohne Kreuz). An bestimmten Knotenpunkten ist der
Transistor weggelassen (in der Praxis durch den Kurzschluß
des Transistors verwirklicht). Ein derartiger Knotenpunkt
an dem der Transistor entfallen ist, führt dabei immer den
Wert logisch "1" ungeachtet des Werts des Adreßbits.
Bei dem in Fig. 3b gegebenen Beispiel verfügt jede Zeile
über nur zwei Transistoren. Der Vorteil einer derartigen
Struktur besteht darin, daß auf diese Weise die Adreßwahl
für die zu adressierenden Mikrobefehlswörter durchaus frei
ist. Bei dem in Fig. 3b gegebenen Beispiel adressiert die
Adresse A1A0 = 00 das Mikrobefehlswort auf der ersten Zeile
des Speicherteils (Wert logisch "1111" an den vier Ein
gängen des logischen UND-Gatters 27). Die Adresse A1A0 = 10
bzw. A1A0 = 11 adressiert das Mikrobefehlswort auf der
zweiten bzw. der dritten Zeile des Speicherteils. Die
Adresse A1A0 = 01 wird von dieser Struktur nicht decodiert
und nicht als Adresse benutzt. Durch diese Wahlfreiheit der
Adressen ist es nunmehr möglich, eine Verbindung zwischen
dem Adreßwert und dem von dieser Adresse angegebenen
Mikrobefehlswort herzustellen.
Der Speicherteil enthält eine analoge Struktur am
Adreßteil. Hier ist jedoch jede Spalte mit einem logischen
ODER-Gatter (30, 31, 32) verbunden. Die Struktur für den
Datenspeicherteil wird daher auch mit ODER-Matrixstruktur
bezeichnet.
Ein derartiger Speicher, bei dem viele Adressen
nicht in Hardware verwirklicht sind, wird in der weiteren
Beschreibung mit "dünnem Speicher" (sparse memory) bezeichnet.
Ein derartiger dünner Speicher ist dabei nur teilweise mit
Mikrocodewörtern im Vergleich zu einem normalen Speicher
mit gleicher Speicherkapazität gefüllt.
Wie bereits bei der Beschreibung nach Fig. 2 erwähnt
wurde, enthält das Adreßsignal in diesem Ausführungsbeispiel
drei charakteristische Teile. In Fig. 3c ist der Adreßteil
des Speichers 12 nach Fig. 3a und Fig. 2 dargestellt und
werden diese drei charakteristischen Teile an Hand eines
Beispiels veranschaulicht. Der Gedanke zum Aufbauen einer
Adresse für einen Speicher eines Steuerteils einer Daten
prozessoreinheit auf drei charakteristischen Teilen basiert
darauf, daß sich nur eine beschränkte Anzahl von Mikro
befehlssorten unterscheiden läßt. Ein Unterschied wird
zwischen vier Mikrobefehlssorten gemacht:
- 1. Das Aufrufen eines Mikrounterprogramms.
- 2. Der Sprung nach einem Bearbeiter für einen neuen Makro befehl.
- 3. Der Sprung nach besonderen Bearbeiterprogrammen, wie beispielsweise Fehlerbeseitigungsprogramme, oder nach einem Aufrufprogramm (fetch routine).
- 4. Der Sprung in einem Bearbeiter.
Da nunmehr für den Mikrocodespeicher ein dünner
Speicher verwendet wird, wird die Freiheit zum Wählen der
Adressen, die ein derartiger Speicher bietet, zum Verbinden
der Adressen mit den Mikrobefehlswörtern ausgenutzt. Eine
Adresse für diesen dünnen Speicher wird jetzt aus drei
charakteristischen Teilen zusammengesetzt und bildet so
ein Tripel. Dieses Tripel enthält gemäß der Veranschau
lichung in Fig. 3c;
I einen Hinweis auf den Bearbeitertyp,
II einen Hinweis, der die Nummer des Bearbeiters in einem Typ angibt,
III einen Hinweis auf das Mikrobefehlswort in einem Bearbeiter.
I einen Hinweis auf den Bearbeitertyp,
II einen Hinweis, der die Nummer des Bearbeiters in einem Typ angibt,
III einen Hinweis auf das Mikrobefehlswort in einem Bearbeiter.
Die Bestandteile dieses Tripels werden jetzt näher
erläutert.
Dieser Teil hat, wie beispielsweise in Fig. 3c angegeben,
eine Breite von zwei Bits und gibt den Bearbeitertyp an.
So geben beispielsweise:
00: die Mikrounterprogramme (Bearbeiter vom ersten Typ)
01: die besonderen Bearbeiter (Bearbeiter vom zweiten Typ)
10: die Befehlsbearbeiter (Bearbeiter vom dritten Typ) an, die Bearbeiter zum Durchführen von Mikrobefehlen sind.
00: die Mikrounterprogramme (Bearbeiter vom ersten Typ)
01: die besonderen Bearbeiter (Bearbeiter vom zweiten Typ)
10: die Befehlsbearbeiter (Bearbeiter vom dritten Typ) an, die Bearbeiter zum Durchführen von Mikrobefehlen sind.
In dieser Ausführung zeigt eine Adresse für den
dünnen Speicher, der mit 00 anfängt, immer auf ein Mikro
unterprogramm und umgekehrt besitzt die Adresse eines Mikro
unterprogramms aus dem dünnen Speicher immer 00 als Bitwert
für die zwei ersten Bits. Die Adresse eines besonderen
Bearbeiters bzw. eines Befehlsbearbeiters aus dem dünnen
Speicher besitzt immer 01 bzw. 10 als Bitwert für die ersten
zwei Bits. Hiermit ist dann eine erste Grobeinteilung zwi
schen den verschiedenen Mikrobefehlsarten und der Art der
Speicherung im dünnen Speicher verwirklicht. Diese Grob
einteilung wird durch die zwei übrigen Teile als Tripels
verfeinert.
Dieser Teil hat eine Breite von k Bits (beispiels
weise k = 8), wodurch jeder Typ höchstens 2k verschiedene
Bearbeiter enthalten kann. Die Verwendung eines dünnen
Speichers macht es überflüssig, alle diese Möglichkeiten
zu verwenden, aber es wird die Möglichkeit geboten, für
jeden Typ von Bearbeiter so viele verschiedene Adreßnummern
zu belegen, wie dabei Anzahlen von Bearbeitern diesem be
treffenden Typ zugeordnet sind. Die verschiedenen Bearbeiter
eines bestimmten Typs können in der Aufeinanderfolge von
0, . . . I (0 I 2k-1) numeriert sein. Im Beispiel nach
Fig. 3c sind als Bearbeiter vom ersten Typ drei verschiedene
Bearbeiter von 0 . . . 00, 0 . . . 10 und 0 . . . 11 numeriert.
Als Bearbeiter vom zweiten Typ sind zwei verschiedene Be
arbeiter von 0 . . . 00 und 0 . . . 01 numeriert, und als Be
arbeiter vom dritten Typ sind vier verschiedene Bearbeiter
von 0 . . . 00, 0 . . . 01, 0 . . . 10 und 0 . . . 11 numeriert.
Wie aus dem Beispiel nach Fig. 3c bei den Bearbeitern
vom ersten Typ ersichtlich ist, ist es nicht notwendig, daß
die verschiedenen, einem bestimmten Typ zugeordneten Be
arbeiter aufeinanderfolgend numeriert sind. Diese Freiheit
in der Zuordnung von Nummern, die dabei als Adresse wirken,
wie bereits erwähnt wurde, ist durch die Verwendung eines
dünnen Speichers möglich.
Dieser Teil hat eine Breite von p Bits (beispielsweise
p = 8), wodurch dabei maximal 2p Mikrobefehlsadressen für
jeden einzelnen Bearbeiter zur Verfügung stehen. Dies be
deutet, daß jeder Bearbeiter höchstens 2p Mikrobefehls
wörter enthalten darf. Mit Hilfe des dritten Teils (III)
des Tripels sind die Mikrobefehlswörter von 0 . . . N nume
riert (0 N 2p-1). Wiederum ist es durch die Verwendung
eines dünnen Speichers nicht notwendig, für jeden Be
arbeiter alle 2p-1 Adressen zu verwenden, sondern es können
so viele Adressen verwendet werden, als es Mikrobefehlswörter
im betreffenden Bearbeiter gibt.
Der Zusammenhang zwischen einer Tripel-Adresse und
einem Mikrobefehlswort wird an Hand eines Beispiels in
Fig. 3d erläutert. In diesem Beispiel enthält der Teil I
(Hinweis auf den Bearbeitertyp) nur ein Bit, der Teil II
(Hinweis, der die Nummer des Bearbeiters in einem Typ angibt)
zwei Bits und der Teil III (Hinweis für das Mikrobefehls
wort) drei Bits. Angenommen sei, daß es sich um einen
Bearbeiter vom ersten Typ handelt, also um ein Mikro
unterprogramm (sbr), und daß es drei verschiedene Mikro
unterprogramme gibt. Der Bitwert "0" in der ersten Spalte
(I) der Adreßmatrix im Adreßteil 21 gibt an, daß es
sich um ein Mikrounterprogramm handelt. Die zweite und die
dritte Spalte, die zusammen für jede Zeile jeweils den Teil
II des Tripels bilden, zeigen, daß das Mikrounterprogramm
mit der Nummer 00 (Nr. 0), die Nummer 10 (Nr. 2) und die
Nummer 11 (Nr. 3) in diesem Teil des Mikrocodespeichers
gespeichert sind. Das Mikrounterprogramm mit der Nummer 01
ist nicht vorhanden, was hinsichtlich der Freiheit erlaubt
ist, die bei der Verwendung eines dünnen Speichers gegeben
ist. Die vierte, fünfte und sechste Spalte, die zusammen
für jede Zeile den Teil III des Tripels bilden, geben für
jede Reihe die Adressen der aufeinanderfolgenden Mikro
befehlswörter eines jeden Mikrounterprogramms. Im Beispiel
nach Fig. 3d enthält das Mikrounterprogramm mit der Nummer
00 fünf Mikrobefehlswörter (µ w r d 0 bis 4), das Mikro
unterprogramm mit der Nummer 10 drei Mikrobefehlswörter
(µ w r d 0 bis 2) und das Mikrounterprogramm mit d er
Nummer 11 fünf Mikrobefehlswörter (µ w r d 0 bis 4). Die
fünf Mikrobefehlswörter des Mikrounterprogramms mit der
Nummer 00 enthalten für den Teil III der Tripeladresse eine
aufeinanderfolgende Binärnumerierung von 000 bis 100.
Für die drei Mikrobefehlswörter des Mikrounterprogramms
mit der Nummer 10 enthält der Teil III der Tripeladresse
eine aufeinanderfolgende Binärnumerierung von 000 bis 010.
Für das Mikrounterprogramm mit der Nummer 11 gilt ein
analoger Aufbau. Das Beispiel nach Fig. 3d zeigt also, wie
die Information im dünnen Speicher gespeichert ist und wie
der Wert jeder einem Mikrobefehlswort zugeordneten Adresse
gewählt wird.
Diese besondere Wahl von Adressen hat selbstver
ständlich ihre Folgen für die Implementierung der Folge
steuerung 11 nach Fig. 2.
Fig. 4 zeigt ein Beispiel einer Implementierung
einer Folgesteuerung. Diese Folgesteuerung 11 enthält für
jeden Teil des genannten Tripels einen Multiplexer, d. h.
den Multiplexer 50 für den Teil I, den Multiplexer 51 bzw.
52 für den Teil II bzw. den Teil III. Jeder Multiplexer
(50, 51, 52) hat sein eigenes Ausgangsregister (53, 54, 55).
Jedes Ausgangsregister ist dabei mit einer zugehörigen
Ausgangsleitung 61, 62, 63 verbunden, die zusammen das Aus
gangsleitungsbündel 16 der Folgesteuerung bilden und denen die
Tripeladresse zum Adressieren des dünnen Speichers zuge
führt wird. Die Folgesteuerung enthält weiter einen Stapel
(stack) 58, d. h. ein LIFO-Register, sowie ein "plus 1"-Ele
ment 56, einen Decoder 57 und einen Konstantengenerator 59.
Die Funktion dieser Elemente und die Art ihrer Schaltung in
der Folgesteuerung wird weiter unten näher erläutert. Der Deutlich
keit halber sind in der Figur die Verbindungsleitungen
als einfache Linien dargestellt, es ist jedoch klar, daß
sich diese Leitungen zum Übertragen eines Signals mit einer
Breite von mehreren Bits eignen. Der Stapel 58 hat drei
Dateneingänge und drei Datenausgänge, von denen jeweils
ein Dateneingang mit einem Datenausgang verknüpft ist.
Jedes Paar ist jeweils mit einem bestimmten Multiplexer
verbunden, und umgekehrt ist jedem Multiplexer ein Eingangs/Aus
gangspaar des Stapels zugeordnet. Der Dateneingang des
Paars P50 bzw. P51 ist mit der Ausgangsleitung 61 bzw. 62
des Multiplexers 50 bzw. 51 verbunden. Der Datenausgang
des Paars P50 bzw. P51 ist mit dem Eingang M1 des Multi
plexers 50 bzw. 51 verbunden. Der Datenausgang des Paars P52
ist mit dem Eingang M1 des Multiplexers 52 verbunden.
Der Dateneingang des Paars P52 ist mit einem Ausgang des
"plus 1"-Elements 56 verbunden.
Gemäß der Beschreibung nach Fig. 2 enthält die
Folgesteuerung vier Eingänge, d. h. einen ersten mit einem
Bedingungsregister verbundenen Eingang 80, einen zweiten
mit einem Befehlsregister verbundenen Eingang 81, und einen
dritten 78 und einen vierten 79 je mit einem Ausgang des
Mikrocoderegisters verbundenen Eingang (14 in Fig. 2).
Jedes Mikrobefehlswort enthält einen Mikrooperationscode,
der in der weiteren Beschreibung mit Mikroopcode bezeichnet
wird, und ein Mikroadreßfeld. Der Mikroopcode wird dem
genannten dritten Eingang 78 und das Mikroadreßfeld dem
vierten Eingang 79 der Folgesteuerung zugeführt.
Der Mikroopcode spezifiziert die Berechnung für die
Adresse des folgenden Mikrobefehlsschritts für die Durch
führung des Bearbeiters. Der dritte Eingang 78 der Folge
steuerung ist mit einem ersten Eingang des Decoders 57
verbunden. Ein zweiter Eingang dieses Decoders ist mit dem
ersten Eingang 80 der Folgesteuerung verbunden. Dieser
Decoder decodiert die Bedingungen aus dem Bedingungsregister
(13 in Fig. 2) und dem Mikroopcode. Das decodierte Signal
steuert die drei Multiplexer (50, 51, 52) und den Stapel 58.
Dazu ist ein erster Ausgang des Decoders 52 über eine Ver
bindungsleitung 64 mit einem Steuereingang des Multiplexers 50
verbunden. Ein zweiter bzw. ein dritter Ausgang des Decoders
57 ist über die Verbindungsleitung 65 bzw. 66 mit einem
Steuereingang des Multiplexers 51 bzw. 52 verbunden. Ein
vierter Ausgang des Decoders ist über die Verbindungsleitung
67 mit einem Steuereingang des Stapels 58 verbunden. Ab
hängig vom decodierten Signal an seinem Steuereingang wird
ein Multiplexer in eine bestimmte Stellung gebracht, wodurch
einer der Eingänge des Multiplexers ausgewählt und das
Signal an diesem Eingang dem zugeordneten Ausgangsregister
zugeführt wird. Diese Ausführung mit einem getrennten
Decoder 57 ist nur eine der möglichen Lösungen. Eine andere
Lösung ist beispielsweise die Ausrüstung eines jeden Multi
plexers sowie des Stapels mit einem getrennten Decoder und
die Zuführung des Mikroopcodes und der Bedingungssignale
aus dem Bedingungsregister direkt zum Multiplexer und zum
Stapel. Die Wahl einer dieser beiden Lösungen hat
keine direkten Folgen für die Wirkung der Folgesteuerung, da
beide Lösungen genau die selbe Aufgabe erfüllen. Diese Wahl
spielt faktisch nur eine Rolle bei einer Verwirklichung
nach einer gewählten Technologie einer erfindungsgemäßen
Folgesteuerung.
Die Wirkung der Folgesteuerung wird jetzt an Hand
der möglichen Mikroopcodes näher erläutert. Diese Mikro
opcodes sind beispielsweise
- a) NEXT: Adressiere das Mikrobefehlswort, das sich im Be arbeiter während der Durchführung an der Adresse befindet, die einen Adreßwert hat, der um genau eine Einheit höher als die Adresse ist, an der sich dieser Mikroopcode befindet (Adresse + 1 = neue Adresse).
- b) BRANCH: Adressiere das Mikrobefehlswort, das sich im Bearbeiter während der Durchführung an der Adresse befindet, wie sie im zugeordneten Mikroadreßfeld angegeben ist, das hier den Teil III des Tripels darstellt. In diesem Mikroopcode kann noch zwischen einer unbedingten und einer bedingten Verzweigung unterschieden werden. Bei einer unbedingten Ver zweigung wird immer die Adresse, die im Mikro adreßfeld angegeben ist, adressiert. Dagegen wird bei einer bedingten Verzweigung die Adresse adres siert, die in Abhängigkeit von der gewählten Be dingung im Bedingungsregister bestimmt ist.
- c) JUMP: Adressiere einen Bearbeiter vom gleichen Typ, aber mit einer anderen Nummer als die des durchgeführten Bearbeiters. Die Nummer des zu adressierenden Be arbeiters wird im zugeordneten Adreßfeld angegeben.
- d) NEXT INSTRUKTION: Wähle an Hand des folgenden Mikrobe fehls im Befehlsregister den folgenden Befehls bearbeiter.
- e) JSR: Adressiere einen Bearbeiter vom ersten Typ, und zwar ein Mikrounterprogramm, und bringe die Adresse des dem JSR-Befehl folgenden Mikrobefehls auf den Stapel.
- f) RETURN: Nimm die Mikroadresse vom Stapel.
- g) JUMP SP: Adressiere einen Bearbeiter vom zweiten Typ, und zwar einen besonderen Bearbeiter.
Für einen jeden dieser Mikroopcodes wird jetzt be
schrieben, wie die Folgesteuerung sie verarbeitet. Die
gleiche Reihenfolge der Aufzählung der Mikroopcodes wird
eingehalten.
- a) NEXT: Das Ausgangsregister 55 des Multiplexers 52 gibt über die Ausgangsleitung 63 den Teil III der Tripeladresse eines aufzurufenden Mikrobefehlsworts ab. Dieses aufzu rufende Mikrobefehlswort hat den Mikroopcode "NEXT". Das "plus-1"-Element 56, dessen Eingang mit der Ausgangsleitung 63 verbunden ist, zählt eine Einheit zu diesem genannten Teil III der Tripeladresse auf der Ausgangsleitung 63 (Adresse i → Adresse i + 1). Die um eine Einheit erhöhte Adresse gelangt über die Leitung 68 zum Eingang M6 des Multiplexers 52. Der Decoder 57 decodiert den Mikroopcode "next". Unter der Steuerung des decodierten "next"-Signals auf der Leitung 66 wird der Eingang M6 des Multiplexers 52 gewählt. Hierdurch wird der erhöhte Teil III der Tripel adresse über das Ausgangsregister 55 und die Leitung 63 auf das Ausgangsleitungsbündel 16 übertragen. Die decodier ten "next"-Signale auf den Leitungen 65 bzw. 64 sorgen dafür, daß die Eingänge M7 des Multiplexers 51 bzw. 50 ausgewählt und das Signal von diesem Eingang in das jeweilige Ausgangsregister eingeschrieben wird. Für die Multiplexer 50 und 51 ist der Eingang M7 jeweils direkt mit dem Ausgang seines jeweiligen Ausgangsregisters verbunden. Über die Leitung 61 bzw. 62 wird der Teil I bzw. der Teil II des Tripels auf das Ausgangsleitungsbündel 16 übertragen. Bei einem Mikroopcode "next" ist also nur der Teil III der Tripeladresse modifiziert, die Teile I und II bleiben unge ändert. Hierdurch wird also ein folgendes Befehlswort eines gleichen Bearbeiters vom gleichen Typ adressiert. Das dem Ausgangsleitungsbündel 16 zugeführte Adreßsignal hat dabei die Form (M7, M7, M6) (Adreßsignal, wie es bei diesem Mikro opcode dem Eingangsgatter Mi eines jeden Multiplexers zugeführt wird). Unter der Steuerung des decodierten "next"- Signals auf der Leitung 67 bleibt der Stapel 58 unwirksam.
- b) BRANCH: 1. unbedingt: Die Adresse des zu adressierenden Mikrobefehlsworts wird im Mikroadreßfeld des Mikrobefehls worts angegeben, das als Mikroopcode "branch" enthielt. Diese Adresse (Teil III des Tripels) gelangt an die Folgesteuerung über den Eingang 79 und geht über die Leitung 60 zum Ein gang M5 des Multiplexers 52. Der Decoder 57 decodiert den Mikroopcode "branch". Unter der Steuerung des decodierten "branch"-Signals auf der Leitung 66 wird der Eingang M5 des Multiplexers 52 ausgewählt. Hierdurch wird der Teil III des Tripels der zu adressierenden Adresse über das Ausgangs register 55 und die Leitung 63 auf das Ausgangsleitungs bündel 16 übertragen. Da sich das zu adressierende Mikro befehlswort im gleichen Bearbeiter vom gleichen Typ be findet, bleiben die Teile I und II des Tripels ungeändert. Dies wird, wie auch beim Mikroopcode "next" beschrieben, durch die Wahl des Signals am Eingang M7 der Multiplexer 50 und 51 verwirklicht. Das dem Ausgangsleitungsbündel 16 zu geführte Adreßsignal hat jetzt die Form (M7, M7, M5). Unter der Steuerung des decodierten "branch"-Signals auf der Leitung 67 bleibt der Stapel 58 unwirksam, auch für eine bedingte Verzweigung.
- 2.: bedingt: Wenn der Mikroopcode bedingt ausgeführt wird, wird diese Bedingung über den Eingang 80 dem Decoder 57 zugeführt. Abhängig von dieser Bedingung wählt der Decoder über ein Steuersignal auf der Leitung 66 den Eingang M5 des Multiplexers 52, wenn diese Bedingung erfüllt ist (Abzweigung ja) oder den Eingang M6 des Multiplexers 52, wenn diese Bedingung nicht erfüllt ist (keine Verzweigung, dann "next").
- c) JUMP: Die Adresse des zu adressierenden Bearbeiters, d. h. in diesem Fall die Nummer dieses Bearbeiters, wird im Mikro adreßfeld des Mikrobefehlsworts angegeben, das "jump" als Mikroopcode enthält. Diese Adresse (Teil II des Tripels) gelangt an die Folgesteuerung über den Eingang 79 und geht über die Leitung 82 zum Eingang M5 des Multiplexers 51. Der Decoder 57 decodiert den Mikroopcode "jump". Unter der Steuerung des decodierten "jump"-Signals auf der Leitung 65 wird der Eingang M5 des Multiplexers 51 ausgewählt. Unter der Steuerung des decodierten "jump"-Signals auf der Leitung 67 bleibt der Stapel 58 unwirksam. Das decodierte "jump"- Signal auf der Leitung 66 wählt den Eingang M4 des Multi plexers 52.
Der Eingang M4 des Multiplexers 52 ist mit einem
Ausgang 70 des Konstantengenerators 59 verbunden. Der
Generator 59 erzeugt an diesem Ausgang 70 immer ein Adreß
signal, das den Teil III der Tripeladresse eines ersten
Mikrobefehlsworts eines Bearbeiters kennzeichnet. Im in
Fig. 3d dargestellten Beispiel würde am Ausgang 70 des
Generators das Adreßsignal "000" erzeugt werden. Das deco
dierte "jump"-Signal auf der Leitung 64 wählt den Eingang
M7 des Multiplexers 50. Das dem Ausgangsleitungsbündel 16
zugeführte Adreßsignal hat jetzt die Form (M7, M5, M4).
- d) NEXT INSTRUKTION: Der Decoder 57 decodiert den Mikro opcode "next instruktion". Unter der Steuerung des decodier ten "next instruktion"-Signals auf der Leitung 66 wird der Eingang M4 des Multiplexers 52 ausgewählt, der mit dem Ausgang 70 des Konstantengenerators 59 verbunden ist, der ein Adreßsignal erzeugt, wie dies oben beim Mikroopcode "jump" beschrieben ist. Unter der Steuerung des decodierten "next instruktion"-Signals auf der Leitung 65 wird der Eingang M4 des Multiplexers 51 ausgewählt, der über die Leitung 74 mit dem Eingang 81 der Folgesteuerung 11 ver bunden ist. Diesem Eingang 81, der mit dem Befehlsregister (10 nach Fig. 2) verbunden ist, wird der folgende Makro befehl in Form einer (Adresse-) Nummer eines Bearbeiters zugeführt (Teil II des Tripels). Unter der Steuerung des decodierten "next instruktion"-Signals auf der Leitung 64 wird der Eingang M4 des Multiplexers 50 gewählt, der mit dem Ausgang 73 des Konstantengenerators 59 verbunden ist. Der Konstantengenerator 59 erzeugt an diesem Ausgang 73 immer ein Adreßsignal, das den Teil I der Tripeladresse für einen Befehlsbearbeiter kennzeichnet (Bearbeiter vom dritten Typ). Unter der Steuerung des decodierten "next- instruktion"-Signals auf der Leitung 67 bleibt der Stapel 58 unwirksam. In dem in Fig. 3d veranschaulichten Beispiel würde der Ausgang 73 des Konstantengenerators das Adreß signal "10" abgeben. Das dem Ausgangsleitungsbündel 16 zugeführte Adreßsignal hat jetzt die Form (M4, M4, M4).
- e) JSR: Der Decoder 57 decodiert den Mikroopcode "JSR". Unter der Steuerung des decodierten "JSR"-Signals auf der Leitung 66 wird der Eingang M4 des Multiplexers 52 gewählt (wie beim Mikroopcode "jump"). Unter der Steuerung des decodierten "JSR"-Signals auf der Leitung 65 wird der Ein gang M5 des Multiplexers 51 gewählt, dem die Nummer des Bearbeiters im Mikrounterprogramm zugeführt wird. Diese Nummer rührt von dem Eingang 79 zugeführten Mikroadreß feld her (wie beim Mikroopcode "jump"). Unter der Steuerung des decodierten "JSR"-Signals auf der Leitung 64 wird der Eingang M2 des Multiplexers 50 gewählt, der mit dem Ausgang 71 des Konstantengenerators 59 verbunden ist. Der Konstanten generator 59 erzeugt an diesem Ausgang 71 immer ein Adreß signal, das den Teil I der Tripeladresse für ein Mikro unterprogramm kennzeichnet (Bearbeiter vom ersten Typ). Im Beispiel nach Fig. 3d würde dabei am Ausgang 71 des Konstantengenerators das Adreßsignal "00" erzeugt werden. Das dem Ausgangsleitungsbündel 16 zugeführte Adreßsignal hat jetzt die Form (M2, M5, M4). Unter der Steuerung des decodierten "JSR"-Signals auf ,der Leitung 67 wird der Stapel 58 aktiviert. Der Stapel führt eine "push"-Operation durch. Das bedeutet, daß oben auf dem Stapel das Tripel (j, k, l + 1) geschrieben wird, wenn (j, k. l) die Adresse dieses Mikrobefehlsworts mit dem Mikroopcode "JSR" war.
- f) RETURN: Wenn der Decoder 57 den Mikroopcode "return" decodiert, wird unter der Steuerung dieses decodierten Signals auf den Leitungen 64, 65 und 66 bei jedem Multi plexer 50, 51, 52 der Eingang M1 gewählt, der mit einem zugeordneten Ausgang des Stapels 58 verbunden ist. Unter der Steuerung des decodierten "return"-Signals auf der Leitung 67 führt der Stapel eine "pop "-Operation durch, d. h. eine Operation, bei der das obere Element des Stapels aufge rufen und vom Stapel entfernt wird. Das dem Ausgangsleitungs bündel 16 zugeführte Adreßsignal hat jetzt die Form (M1, M1, M1).
- g) JUMP SP: Die Wirkung bei diesem Mikroopcode für die Multiplexer 50 und 52 ist völlig gleich der Wirkung nach der Beschreibung beim Mikroopcode "JSR". Für den Multi plexer 50 wird jedoch unter der Steuerung des decodierten "JUMP SP"-Signals auf der Leitung 64 der Eingang M3 gewählt, der mit dem Ausgang 72 des Konstantengenerators 59 verbunden ist. Der Konstantengenerator 59 erzeugt an diesem Ausgang 72 immer ein Adreßsignal, das den Teil I der Tripeladresse für einen besonderen Bearbeiter (Bearbeiter vom zweiten Typ) charakterisiert. Im Beispiel nach Fig. 3d würde dabei am Ausgang 72 des Konstantengenerators das Adreßsignal "01" erzeugt werden. Das dem Ausgangsgattersystem 16 zugeführte Adreßsignal hat jetzt die Form (M3, M5, M4). Unter der Steuerung des decodierten "JUMP SP"-Signals auf der Leitung 67 bleibt der Stapel 58 unwirksam.
Claims (3)
1. Datenverarbeitungsanordnung mit einem Verarbeitungs
teil (A) zum Durchführen von Mikrobefehlen und mit einem
Steuerteil (B), der einen Mikrocodespeicher (12) zum
Speichern von Mikrobefehlswörtern an je einer Adresse und
eine Folgesteuerung (11) zum Erzeugen von Adressen für den
Mikrocodespeicher mit Hilfe von Multiplexern (50, 51, 52),
die von einem Befehlsregister (10) und vom Ausgang des
Mikrocodespeichers (12) angesteuert werden, aufweist,
dadurch gekennzeichnet,
daß die Mikrobefehlswörter im Mikrocodespeicher (12) in einer Vielzahl von Gruppen gespeichert sind, die jeweils einen sogenannten Bearbeiter bilden und eine unterschiedliche Anzahl von aufeinander folgenden Adressen in dem Mikrocodespeicher (12) belegen, wobei jedes Mikrobefehlswort einen Teil zum Speichern eines Operanden umfaßt,
daß die Multiplexer (50, 51, 52) wenigstens einen ersten Multiplexer (51) zum Erzeugen der Adresse eines Bearbeiters und einen zweiten Multi plexer (52) zum Erzeugen einer Adresse innerhalb eines Bearbeiters umfassen,
daß der zweite Multiplexer (52) einen Rückkopplungsweg (55, 56, 68) zum Erzeugen einer Folge von Adressen innerhalb eines Bearbeiters aufweist,
und daß ein Decoder (57) vorgesehen ist zum Decodieren eines aus dem Mikrocodespeicher (12) ausgelesenen Operanden und zum Steuern wenigstens eines der Multi plexer (50, 51, 52).
daß die Mikrobefehlswörter im Mikrocodespeicher (12) in einer Vielzahl von Gruppen gespeichert sind, die jeweils einen sogenannten Bearbeiter bilden und eine unterschiedliche Anzahl von aufeinander folgenden Adressen in dem Mikrocodespeicher (12) belegen, wobei jedes Mikrobefehlswort einen Teil zum Speichern eines Operanden umfaßt,
daß die Multiplexer (50, 51, 52) wenigstens einen ersten Multiplexer (51) zum Erzeugen der Adresse eines Bearbeiters und einen zweiten Multi plexer (52) zum Erzeugen einer Adresse innerhalb eines Bearbeiters umfassen,
daß der zweite Multiplexer (52) einen Rückkopplungsweg (55, 56, 68) zum Erzeugen einer Folge von Adressen innerhalb eines Bearbeiters aufweist,
und daß ein Decoder (57) vorgesehen ist zum Decodieren eines aus dem Mikrocodespeicher (12) ausgelesenen Operanden und zum Steuern wenigstens eines der Multi plexer (50, 51, 52).
2. Datenverarbeitungsanordnung nach Anspruch 1,
dadurch gekennzeichnet, daß die Folgesteuerung (11) einen
dritten Multiplexer (50) aufweist, der eine Adresse
jeweils einer Gruppe von Bearbeitern erzeugt, wobei die
Gruppen eine unterschiedliche Anzahl Bearbeiter aufweisen.
3. Datenverarbeitungsanordnung nach Anspruch 1 oder 2,
dadurch gekennzeichnet, daß der Mikrocodespeicher (12)
eine erste Matrix (21) aus UND-Gliedern (27, 28, 29) mit
Eingängen (24, 24′, 25, 25′), denen die Adressen (A0, A1)
zugeführt werden, und eine an die Ausgänge der UND-Glieder
(27, 28, 29) angeschlossene zweite Matrix (20) aus ODER-
Gliedern (30, 31, 32) umfaßt, deren Ausgänge (23) die
Mikrobefehlswörter abgeben.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| NL8205076A NL8205076A (nl) | 1982-12-31 | 1982-12-31 | Data processor eenheid voorzien van een stuurgedeelte welk een adresgenerator bevat voor het genereren van adressen welke uit karakteristieke adresdelen zijn samengesteld. |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE3344340A1 DE3344340A1 (de) | 1984-07-05 |
| DE3344340C2 true DE3344340C2 (de) | 1994-09-22 |
Family
ID=19840833
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE3344340A Expired - Fee Related DE3344340C2 (de) | 1982-12-31 | 1983-12-08 | Datenverarbeitungsanordnung zum Durchführen von Mikrobefehlen |
Country Status (7)
| Country | Link |
|---|---|
| US (1) | US4750108A (de) |
| JP (1) | JPH0640303B2 (de) |
| DE (1) | DE3344340C2 (de) |
| FR (1) | FR2538928B1 (de) |
| GB (1) | GB2133189B (de) |
| IT (1) | IT1170295B (de) |
| NL (1) | NL8205076A (de) |
Families Citing this family (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5454088A (en) * | 1985-11-15 | 1995-09-26 | Mitsubishi Denki Kabushiki Kaisha | Microprogram control device for controlling data path section including designation of instruction cycle values |
| JPS62117038A (ja) * | 1985-11-15 | 1987-05-28 | Mitsubishi Electric Corp | マイクロプログラム制御装置 |
| GB2203572B (en) * | 1987-03-24 | 1991-11-27 | Insignia Solutions Limited | Improvements in data processing means |
| US4980821A (en) * | 1987-03-24 | 1990-12-25 | Harris Corporation | Stock-memory-based writable instruction set computer having a single data bus |
| US5113507A (en) * | 1988-10-20 | 1992-05-12 | Universities Space Research Association | Method and apparatus for a sparse distributed memory system |
| EP0374830A3 (de) * | 1988-12-19 | 1992-03-18 | Bull HN Information Systems Inc. | Adressengenerator eines Mikrobefehlsspeichers zur Herstellung einer einzigen Befehlsstartadresse |
| JP2001195250A (ja) * | 2000-01-13 | 2001-07-19 | Mitsubishi Electric Corp | 命令トランスレータ、トランスレータ付命令メモリおよびそれらを用いたデータ処理装置 |
| JP2001306316A (ja) * | 2000-04-21 | 2001-11-02 | Sharp Corp | 制御回路およびそれを用いた半導体装置 |
| US6957322B1 (en) * | 2002-07-25 | 2005-10-18 | Advanced Micro Devices, Inc. | Efficient microcode entry access from sequentially addressed portion via non-sequentially addressed portion |
Family Cites Families (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB1054725A (de) * | 1964-04-06 | |||
| IT995721B (it) * | 1973-10-10 | 1975-11-20 | Honeywell Inf Systems Italia | Apparato per l interpretazione di codici di funzione in calcolatori microprogrammati e per l indirizza mento indipendente di fasi inter pretative ed esecutive di micro programma |
| US3958227A (en) * | 1974-09-24 | 1976-05-18 | International Business Machines Corporation | Control store system with flexible control word selection |
| US3990054A (en) * | 1974-11-05 | 1976-11-02 | Honeywell Inc. | Microprogram organization techniques |
| US4038643A (en) * | 1975-11-04 | 1977-07-26 | Burroughs Corporation | Microprogramming control system |
| JPS52119832A (en) * | 1976-04-01 | 1977-10-07 | Toshiba Corp | Electroinc calculator of microprogram control system |
| US4173041A (en) * | 1976-05-24 | 1979-10-30 | International Business Machines Corporation | Auxiliary microcontrol mechanism for increasing the number of different control actions in a microprogrammed digital data processor having microwords of fixed length |
| US4070703A (en) * | 1976-09-27 | 1978-01-24 | Honeywell Information Systems Inc. | Control store organization in a microprogrammed data processing system |
| HU172445B (hu) * | 1976-10-13 | 1978-09-28 | Bhg Hiradastech Vallalat | Programmiruemoe ustrojstvo dlja upravlenija sredne- i malojomkostnymi perekljuchateljami telefonnykh centrov |
| US4179737A (en) * | 1977-12-23 | 1979-12-18 | Burroughs Corporation | Means and methods for providing greater speed and flexibility of microinstruction sequencing |
| JPS5539914A (en) * | 1978-09-12 | 1980-03-21 | Nec Corp | Address control system of microprogram control device |
| DE2846537C2 (de) * | 1978-10-26 | 1986-09-18 | Standard Elektrik Lorenz Ag, 7000 Stuttgart | Mikroprogrammierte Datenverarbeitungseinrichtung |
| DE3009121C2 (de) * | 1980-03-10 | 1982-02-18 | Siemens AG, 1000 Berlin und 8000 München | Mikroprogramm-Steuereinrichtung |
| JPS57753A (en) * | 1980-06-02 | 1982-01-05 | Hitachi Ltd | Microprogram controller |
| GB2077010B (en) * | 1980-06-02 | 1984-10-31 | Hitachi Ltd | Microprogramme control method and apparatus therefor |
| JPS5797151A (en) * | 1980-12-10 | 1982-06-16 | Hitachi Ltd | Instruction storage device |
| JPS57203141A (en) * | 1981-06-10 | 1982-12-13 | Hitachi Ltd | Method and device for controlling microprogram |
| US4509114A (en) * | 1982-02-22 | 1985-04-02 | International Business Machines Corporation | Microword control mechanism utilizing a programmable logic array and a sequence counter |
-
1982
- 1982-12-31 NL NL8205076A patent/NL8205076A/nl not_active Application Discontinuation
-
1983
- 1983-12-08 DE DE3344340A patent/DE3344340C2/de not_active Expired - Fee Related
- 1983-12-23 GB GB08334334A patent/GB2133189B/en not_active Expired
- 1983-12-28 IT IT24416/83A patent/IT1170295B/it active
- 1983-12-29 JP JP58252355A patent/JPH0640303B2/ja not_active Expired - Lifetime
- 1983-12-30 FR FR8321105A patent/FR2538928B1/fr not_active Expired
-
1986
- 1986-10-15 US US06/918,681 patent/US4750108A/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| NL8205076A (nl) | 1984-07-16 |
| GB2133189A (en) | 1984-07-18 |
| JPH0640303B2 (ja) | 1994-05-25 |
| GB2133189B (en) | 1987-05-07 |
| IT8324416A0 (it) | 1983-12-28 |
| IT8324416A1 (it) | 1985-06-28 |
| DE3344340A1 (de) | 1984-07-05 |
| IT1170295B (it) | 1987-06-03 |
| US4750108A (en) | 1988-06-07 |
| FR2538928B1 (fr) | 1989-07-28 |
| GB8334334D0 (en) | 1984-02-01 |
| JPS59136851A (ja) | 1984-08-06 |
| FR2538928A1 (fr) | 1984-07-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE1774296C2 (de) | Restruktuierbare Steuereinheit für elektronische Digitalrechner | |
| DE2555963C2 (de) | Einrichtung zur Funktionsmodifizierung | |
| DE2364408C3 (de) | Schaltungsanordnung zur Adressierung der Speicherplätze eines aus mehreren Chips bestehenden Speichers | |
| DE3687724T2 (de) | Digitalprozessorsteuerung. | |
| DE2540975C2 (de) | Datenverarbeitungseinrichtung zur Ausführung mehrerer gleichzeitig ablaufender Prozesse | |
| DE3126878C2 (de) | Mikroprogramm-Steuerschaltung zum Ausführen eines aus einem Steuerspeicher in einem Quellenregister aufgenommenen Mikrobefehls | |
| DE69130723T2 (de) | Verarbeitungsgerät mit Speicherschaltung und eine Gruppe von Funktionseinheiten | |
| DE2813128C2 (de) | Steuereinrichtung für Mikroprogrammspeicher | |
| DE3689595T2 (de) | Datenverarbeitungssystem. | |
| EP0097725B1 (de) | Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen | |
| CH620779A5 (de) | ||
| DE2746505C2 (de) | ||
| DE2719635A1 (de) | Anordnung fuer eine erweiterung einer mikroprogrammsteuerung einer datenverarbeitungsanlage | |
| DE3688232T2 (de) | Datenverarbeitungssystem. | |
| DE2717658A1 (de) | Anordnung zur ansteuerung eines mikroprogrammspeichers | |
| EP0010185A1 (de) | Virtuell-Adressiervorrichtung für einen Computer | |
| DE3344340C2 (de) | Datenverarbeitungsanordnung zum Durchführen von Mikrobefehlen | |
| DE2951040C2 (de) | ||
| DE2744359C2 (de) | ||
| DE2551741A1 (de) | Datenverarbeitungseinrichtung | |
| DE2364323C2 (de) | Verfahren zur Behandlung von Unterbrechungsbedingungen in einer Datenverarbeitungsanlage | |
| DE2227761B2 (de) | Speichersystem | |
| DE2854400A1 (de) | Anordnung zum wechsel zwischen verzahnt zu verarbeitenden programmen | |
| DE2418921A1 (de) | Vorrichtung und verfahren zum speichern und ausfuehren von mikroprogrammen in einem datenverarbeitungssystem | |
| CH632349A5 (de) | Einrichtung zur mikrobefehlssteuerung. |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 8110 | Request for examination paragraph 44 | ||
| D2 | Grant after examination | ||
| 8364 | No opposition during term of opposition | ||
| 8327 | Change in the person/name/address of the patent owner |
Owner name: PHILIPS ELECTRONICS N.V., EINDHOVEN, NL |
|
| 8339 | Ceased/non-payment of the annual fee |