DE2161886C2 - Befehlsausführungseinheit in einer elektronischen Datenverarbeitungszentrale für die gleichzeitige Verarbeitung mehrerer Befehle - Google Patents
Befehlsausführungseinheit in einer elektronischen Datenverarbeitungszentrale für die gleichzeitige Verarbeitung mehrerer BefehleInfo
- Publication number
- DE2161886C2 DE2161886C2 DE2161886A DE2161886A DE2161886C2 DE 2161886 C2 DE2161886 C2 DE 2161886C2 DE 2161886 A DE2161886 A DE 2161886A DE 2161886 A DE2161886 A DE 2161886A DE 2161886 C2 DE2161886 C2 DE 2161886C2
- Authority
- DE
- Germany
- Prior art keywords
- register
- command
- instruction
- stack
- unit
- 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
Links
- 238000012545 processing Methods 0.000 title claims description 15
- 230000009466 transformation Effects 0.000 claims description 15
- 230000005540 biological transmission Effects 0.000 claims description 11
- 238000012546 transfer Methods 0.000 claims description 11
- 230000006870 function Effects 0.000 claims description 10
- 238000013502 data validation Methods 0.000 claims description 4
- 238000012986 modification Methods 0.000 claims description 2
- 230000004048 modification Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 9
- 230000000903 blocking effect Effects 0.000 description 5
- 230000001629 suppression Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 2
- 235000016496 Panda oleosa Nutrition 0.000 description 1
- 240000000220 Panda oleosa Species 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000010387 memory retrieval Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/30003—Arrangements for executing specific machine instructions
- G06F9/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/30181—Instruction operation extension or modification
- G06F9/30192—Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Description
Die Erfindung betrifft eine Befehlsausführungseinheit
in einer elektronischen Datenverarbeitungsanlage nach dem Oberbegriff des Anspruchs I.
gitalen elektronischen Datenverarbeitungsanlage zur Ausführung der Befehle eines Programms und beinhaltet]
in aller Regel arithmetische und logische Einheiten.
Typische Befehlsausführungseinheiten sind beispielsweise in den US-Patentschriften 33 46 851 und 34 62 744
ausführlich beschrieben. In der zuerst genannten Patentschrift besitzt die Ausführungseinheit mehrere
Funktionseinheiten und eine Auswertetafel für die Befehlssteuerung, die die gleichzeitige Ausführung mehrerer
Befehle von einem Programm her ermöglichen.
Diese bekannte Befehlsausführungseinheil besitzt jedoch
den Nachteil, daß sie keine flexible Anpassung der Zahl der verwendeten Funktionseinheiten an die augenblickliche
Belastung des Systems vornehmen kann.
Die in der US-Patentschrift 34 62 744 beschriebene Befehlsausführungseinhcit erfordert, daß jeder Funktionseinheit eine feste Zahl von Registern zugeordnet ist. Diese feste Zahl muß aber nach der maximalen Kapazität des Systems bestimmt sein. Hieraus ergibt sich
Die in der US-Patentschrift 34 62 744 beschriebene Befehlsausführungseinhcit erfordert, daß jeder Funktionseinheit eine feste Zahl von Registern zugeordnet ist. Diese feste Zahl muß aber nach der maximalen Kapazität des Systems bestimmt sein. Hieraus ergibt sich
I 3 4
y? der Nachteil, daß die Zahl der Register nicht nach wirt- sehen den genannten Einheiten über eine Sammellei-
% schaftlichen Gesichtspunkten bestimmt werden kann. tung 22 steuert.
fü mehrere arithmetische und logische Funktionseinheiten 5 tionen werden in die Vorverriegelungs-Register 30 gela-
ξ§ gemeinsame Arbeitsregister benutzen und bei der auch den. Die Instruktionen stehen im Vorverriegelungs-Re-
?f mehrere Befehlsregister vorhanden sind. Da sie aber gister 30 während eines die Tansformationsiogikschal-
;| nur für eine gleichzeitige Ausführung mehrerer Befehle tung 32 benutzenden Umbenennungszyklus und werden
ui einen Mehrprogrammbetrieb verwendet werden, bei 10 tragen, der aus 5 Registern besteht, welche Gleitkom-
;Ci dem die interne Struktur der einzelnen Befehlsströme ma-Instruktionen enthalten, die auf die Ausführung
tt erhalten bleiben muß. warten. Mit dem Instruktionsregisterstapel 34 ist eine
Νΐ Es ist daher die Aufgabe der vorliegenden Erfindung, Sperrlogikschaltung 36 gekoppelt, die sicherstellt, daß
fs tungsanlagen zu verbessern, indem eine wirkungsvolle- 15 dieselben Ergebnisse erzielen, als ob sie in der richtigen
*'~: re Befehlsausführungseinheit nach dem Oberbegriff des Reihenfolge ausgeführt worden wären. Außerdem be-
;, unabhängige Ausführung unabhängiger Befehlsströme weit die Befehlscodes das gestatten, dadurch, daß bis zu
fft Gelöst wird diese Aufgabe der Erfindung durch die im gung eines Befehles vom Befehlsregi-s^rstapel (I/R-Sta-
h Hauptanspruch angegebenen Merkmale. pel) 34 über die Ausgangstore 38 zum Auaführungsregi-
|i Weitere vorteilhafte Ausgestaltungen und Weiterbil- ster 40. Das Ausführungsregister 40 hält den Befehl zur
π dung des Gegenstandes der Erfindung sind den Unter- Auswahl des Addierteiles (A) Λ2Α oder des Multiplika-
lu ansprächen zu entnehmen. 25 tions-/Divisionsteiles (M/D-Teiles) 425 der Rechenein-
i'.i Die Befehlsausführungseinheit gemäß der Erfindung heit 42, steuert die ausgewählte Einheit und wählt den
besitzt also gegenüber den bekannten Systemen im we- Inhalt von 2 Registern des Arbeitsregisterstapels (W/R-
i sentlichen den Vorteil eines flexibleren Betriebs, da ein Stapel) 44 zur Benutzung durch die Recheneinheit 42
;■ gemeinsamer Pool von Registern (Arbeitsregistersta- Der Inhalt dieser ausgewählten Register wird über die
pel) vorgesehen ist, aus dem einzelne Register den 30 Ausgangstore 46 an die Recheneinheit 42 übertragen.
\: Funktionseinheiten (Recheneinheit) zugeteilt werden Daten werden in den Arbeitsregister-(W/R-)Stapel 44 : ■ können, wodurch dynamisch die Befehlsausführungska- über die Eingangstore 48 von der Recheneinheit 42 über pazität bestimmter Funktionseinheiten in Abhängigkeit die Leitungen 50 oder von der Sammelleitung 22 über von der tatsächlich vorliegenden Belastung des Systems die Leitungen 66 geladen. Die Datengültigkeitsschalvergrößert oder verkleinert werden kann, wodurch 35 tung (V-Logik) 52) enthält eine Einrichtung für Kennzei-)'; auch eine unabhängige Ausführung unabhängiger FoI- chenbits, die jedem Arbeitsregister im W/R-Stapel 44 : gen von Gleitkommabefehlen ermöglicht wird. Diese entsprechen. Die Dateneingabe in ein bestimmtes Arunabhängigen Folgen werden durch Ladeinstruktionen beitsregister setzt ein entsprechendes JCernzeichenbit definiert, wobei die Folgen beginnen, wenn ein Gleit- in die V-Logikschaltung 52, welches durch die Sperrlokomma-Ladebefehl festgestellt wird. 40 gikschaltung 36 abgefühlt wird. Die Freie-Liste-Logik- ;'-■ Ein Ausfü'nrungsbeispiei der Erfindung ist in den sch.Jtung (54) reagiert auf Anforderungssignale über Zeichnungen dargestellt und wird anschließend näher die Leitungen 56 von der Befehlseinheit 14 und auf Freibeschrieben. Es zeigt: gabesignale vom Ausführungsregister 40 über die Lei-F i g. 1 ein Blockdiagramm einer die Befehlsausfüh- tungen 58 und liefert Anzeigen für den Zustand der rungseinheit der Erfindung enthaltenden Datenverar- 45 Arbeitsregister im W/R-Stapel 44 an die Befehlsiinheit beitungsaniage, 14 über die Leitungen 60. Außerdem werden durch die F i g. 2 ein Blockdiagramm der Befchlsausführungs- Befehlseinheit 14 zusätzliche Steuerinformationen über einheit. die Leitungen 62 geliefert, und die Befehlseinheit 14 F i g. 3a das Format einer von einer Instruktionsein- empfängt weitere Informationen von der Ausführungsheit übertragenen Instruktion, so einheit 16 über die Leitungen 64.
\: Funktionseinheiten (Recheneinheit) zugeteilt werden Daten werden in den Arbeitsregister-(W/R-)Stapel 44 : ■ können, wodurch dynamisch die Befehlsausführungska- über die Eingangstore 48 von der Recheneinheit 42 über pazität bestimmter Funktionseinheiten in Abhängigkeit die Leitungen 50 oder von der Sammelleitung 22 über von der tatsächlich vorliegenden Belastung des Systems die Leitungen 66 geladen. Die Datengültigkeitsschalvergrößert oder verkleinert werden kann, wodurch 35 tung (V-Logik) 52) enthält eine Einrichtung für Kennzei-)'; auch eine unabhängige Ausführung unabhängiger FoI- chenbits, die jedem Arbeitsregister im W/R-Stapel 44 : gen von Gleitkommabefehlen ermöglicht wird. Diese entsprechen. Die Dateneingabe in ein bestimmtes Arunabhängigen Folgen werden durch Ladeinstruktionen beitsregister setzt ein entsprechendes JCernzeichenbit definiert, wobei die Folgen beginnen, wenn ein Gleit- in die V-Logikschaltung 52, welches durch die Sperrlokomma-Ladebefehl festgestellt wird. 40 gikschaltung 36 abgefühlt wird. Die Freie-Liste-Logik- ;'-■ Ein Ausfü'nrungsbeispiei der Erfindung ist in den sch.Jtung (54) reagiert auf Anforderungssignale über Zeichnungen dargestellt und wird anschließend näher die Leitungen 56 von der Befehlseinheit 14 und auf Freibeschrieben. Es zeigt: gabesignale vom Ausführungsregister 40 über die Lei-F i g. 1 ein Blockdiagramm einer die Befehlsausfüh- tungen 58 und liefert Anzeigen für den Zustand der rungseinheit der Erfindung enthaltenden Datenverar- 45 Arbeitsregister im W/R-Stapel 44 an die Befehlsiinheit beitungsaniage, 14 über die Leitungen 60. Außerdem werden durch die F i g. 2 ein Blockdiagramm der Befchlsausführungs- Befehlseinheit 14 zusätzliche Steuerinformationen über einheit. die Leitungen 62 geliefert, und die Befehlseinheit 14 F i g. 3a das Format einer von einer Instruktionsein- empfängt weitere Informationen von der Ausführungsheit übertragenen Instruktion, so einheit 16 über die Leitungen 64.
wie sie in dt;n Befehlsregisterstapel gesetzt werden, an das Vorverriegelungs-Register 30 übertragenen Be-
gikschaltung, enthält einen 8 Bit großen Operationscode (OP) 70, der
pels, Rl-FeId 72, weiches das durch den Programmierer vor-
kenkomponente einer Sperrlogikschaltung, großes R2-Feld 74, welches in hohe und niedere Halbfel-
terdrückungsschaltung der Sperrlogikschaltung und to angibt, daß die Instruktion gültig ist und nach Modifika-
tung. i/R-Stapel 34 beim nächsten Zyklus ausgeweitet werden
arbeitungsanlage umfaßt einen Hauptspeicher 10, ein 84, von denen das CI-Bit 82 besagt, daß der Befehl ein
arbeitungseinheit (CPU) 12 einschließlich einer Befehls- bevor eine bedingte Verzweigung gelöst und das Bit
einheit 14, einer Ausführüngseinheit 16 und eines Lei- zurückgestellt ist und das C2-BU 84 besagt, daß der
tungssteuermoduls 18, welcher die Verbindungen zwi- Befehl ein auf zweiter Ebene bedingt abgerufener Be-
fehl ist und als solcher im Vorverriegelungs-Register 30 gehalten wird, bis die erste Bedingungsebene gelöst ist;
ein LVCC-Bit 86, welches angibt, daß dieser Befehl der letzte einen Bedingungscode einstellende Befehl ist, den
die Befehlseinheit 14 angetroffen hat und zurückgestellt s wird, wenn die Einheit 14 einen anderen einen Bedingungscode
setzenden Befehl antrifft, bevor die bedingte Verzweigung auftritt; ein Ladebit (LD) 88, mit dem die
Transformationslogikschaltung 32 gesteuert wird (wenn die Ladung bedingt, das LD-Bit 82 also gesetzt ist,
nimmt die Einheit 14 keine weiteren Befehle an, bis die Bedingung aufgelöst ist); ein Speicherbit (SP) 90, welches
die 5 Bits des R2-Feldes zur Umgehung der Transformationslogikschaltung
32 und direkten Übertragung in den I/R-Stapel 34 veranaßt, sowie ein Erweiterung*- is
präzisionsbit 92 (EXP-Bit), welches die Befehlsart bezeichnet
und den Befehl im Vorverriegelungs-Register 30 festhält, bis alle Befehle im I/R-Stapel 34 ausgeführt
sind (dann wird der Befehl direkt vom Vorverriegelungsregister 30 in das Ausführungsregister 40 gesendet).
Die von der Befehlseinheit 14 über die Leitungen 62 geleiteten Steuersignale enthalten ein LVCC- Rückstellsignal,
welches anzeigt, daß durch die Befehlseinheit 14 ein weiterer, einen Bedingungscode setzender Befehl
abgefühlt wurde, so daß alle vorhergehenden LVCC-Bits zurückgestellt sein sollten. Zu den Signalen gehören
weiter zwei Rückstellbedingungssignale, eines für die erste Ebene (Bit 82) und eines für die zweite Ebene (Bit
84) sowie zwei Ungültigkeits-Bedingungssignale (eines für jede Bedingungsebene), von denen jedes die Bedingungsbefehle
durch Löschen des Gültigkeitsbits ungültig macht, als Funktion der Auflösung einer bedingten
Verzweigung, da der (die) gewählte(n) Befehl(c) falsch warfen).
Die Signale über die Leitungen 64 von der Ausführungseinheit
i€ an die Befehiseinheit !4 umfassen ein
Signal »Operation abgeschlossen«, welches anzeigt, daß die vorher an die Ausführungseinheit gesendeten Befehle
beendet sind, ein Signal, welches anzeigt, daß ein Register im I/R-Stapel 34 leer ist. so daß ein Befehl vom
Vorverriegelungs-Register 30 aufgenommen werden kann, und ein Signal, welches anzeigt, daß dieses Register
30 leer ist
Im Kabel 60 liegen 32 Leitungen, je eine für ein Arbeitsregister im W/R-Stapel 44. Diese Leitungen geben
der Befehlseinheit das Arbeitsregister an, welches aufgrund einer Anforderung von der Befehlseinheit über
die Leitung 56 gewählt wurde. Diese gelieferte Ausgabe (typischerweise hohe und niedrige Adressen, die zwei so
Register — effektiv also ein Doppelregister — bezeichnen),
wird in das R2-Feld 74 durch die Befehlseinheit 14 eingesetzt, bevor der Befehl an das Vorverriegelungsregister
30 übertragen wird
Die Transformationslogikschaltung 32 fühlt den Inhalt
der Rl- und R2-Felder 72 bzw. 74 ab und setzt den modifizierten Inhalt in das RTl-FeId 96 und das
RT2-Feld 98 des in Fig.3b gezeigten Befehlsformates.
Dieses Befehlsformat enhält denselben Operationscode 70 sowie die Bits 80,82,86,88 und 90. Außerdem erfolgt &o
zwischen dem Vorverriegelungs-Register 30 und dem I/R-Stapel 34 eine ausreichende Decodierung zur Bezeichnung
des durch den Befehl benötigten Teiles der Recheneinheit 4Z wobei das Bit 100 gesetzt wird, wenn
der Befehl mit dem Addierteii 42a arbeitet, das Bit 102, wenn ein Multiplikationsbefehl und das Bit 104, wenn
ein Divisionsbefehl vorliegt
Einzelheiten der Transformationslogikschaltung 32 sind in F i g. 4 gezeigt. Diese Schaltung gestattet die Benutzung
eines der 32 Arbeitsregister im W/R-Stapel 44 im Austausch als RX-Bcfehlspuffer oder als eines von 4
Gleitkommarcgistern. Unter einem RX-Befehl soll ein
Befehl verstanden sein, dessen einer Operand sich in einem Allgemeinen Register und der andere sich im
Speicher befindet und dessen Adresse indiziert ist. Wenn der Programmierer eines der 4 Gleitkommaregister
0, 2. 4 oder 6 wählt, wählt die Befehlseinheit 14 daraufhin eines der 16 Doppelwortregister im W/R-Stapel
44 als Gleitkommarcgistcr für die Benutzung durch
nachfolgende Befehle aus. In ähnlicher Weise wählt die Einheit 14 ein verfügbares Arbeitsregister zur Benutzung
als Quellenregister in RX-Befehlen. jeder in das Vorverriegelungsregister 30 geladene Befehl wird
durch die Transformationslogikschaltung 32 so bearbeitet, daß ein veränderter Befehl erzeugt wird (die Felder
RTI und RT2 werden als Funktion des Operationscodes 70 und der Feiüer Ri und R2 erzeugt), und ein jeder
derartige Befehl wird in das niedrigste Befehlsregister 185 im I/R-Stapcl 34 geladen.
Der Inhalt der Felder RTI und RT2 wird durch die Befehlsart bestimmt. Bei einem Ladebefehl (LD) wird
die Bezeichnung eines gewählten Arbeitsregisters im W/R-Siapel 44 in den Transformationslistcnspeicher
106 geladen und beide Felder mit der Bezeichnung des Arbeitsregisters im W/R-Stapel 44, die durch das neue
von de- Befehlseinhcit für die Verwendung als Gleitkommaregister
gewählte Register ersetzt wurde. Bei einem Register-Register-Befehl (RR-Befehl) wird auf den
Transformationslistenspeicher 105 in der Transformationslogikschaltung 32 Bezug genommen, und die
Adresse von zwei vorher gewählten Registern im W/R-Stapel 44 in die Felder RTl bzw. RT2 geleitet Bei einem
RX-Befehl (ausgenommen der Ladebefehl) hat die Einheit 14 ein Pufferregister im W/R-Stapel 44 gewählt,
nach der Bssiirrirr.üng durch die Verfügbarkeits-änzeige
von der Freie-Liste-Logikschaltung 54 über die Leitungen 60. Das Rl-FeId des RX-Befehles bezeichnet das
programmgewählte Gleitkomma-Register (Senke) und das R2-Feld das als Bestimmungsregister gewählte Arbeitsregister
für den Datenabruf (Quelle). Bei einem Speicherbefehl geben die 5 werthohen Bits des R2-Feldes
ein Reihenfolgekennzeichen an, welches auf den Leitungssteuermodul 18 mit den Speicherdaten gegeben
wird und teilweise die richtige Speicheradresse bezeichnet.
Gemäß Darstellung in F i g. 4 enthält die Transformationslogikschaltung
einen Transformationslistenspeicher 106, der die 4 Register 110, 112,114 und 116 umfaßt,
welche den vorher genannten funktioneilen Gleitkomma-Registern 0,2,4 und 6 entsprechen. Wie bereits
gesagt bezeichnet bei einem Ladebefehl das Rl-FeId 72 das jeweilige programmgewählte Gleitkomma-Register
und das R2-Feld das Arbeitsregister des W/R-Stapels 44, welches durch die Befehlseinheit 14 gewählt wurde.
Das UND-Glied 120 wird durch eine decodierte Ladebefehlsanzeige LD (in der Figur bei 122 wiedergegeben)
vorbereitet, und der Inhalt des RI-Feldes wird durch ein UND-Glied 120 geleitet um das Tor 124 vorzubereiten.
Wenn das Tor 124 durch einen Impuls auf der Leitung 126 geprüft wird, bereitet der zugehörige decodierte
RR-Befehl 156 das UND-Glied 158 vor, welches seinerseits wieder ein vorgeschriebenes Tor einer zweiten
Gruppe von AüSgar.gstoren 160 zur Übertragung der
vorgeschriebenen Umbenennung nach außen über die ODER-Glieder 138 an die Bedingungsglieder 140 vorbereitet
Aufgrund des Leitimpulses auf der Leitung 142
werden diese Arbeitsregisterbezeichnungen in die FcI-der
RTt bzw. RT2 zusammen mit dem Operationscode direkt vom Vorverriegelungs-Register 30 durch die Tore
142 und den Steuerbits durch die Tore 144 geladen (cinschlicUlk-h zugefügter Sicucrbits iiiii der Hnsis der
Decodierung).
Bei uincrn RX-Bcfehl (Laden ausgenommen) erhält
die kinheit 14 eine Registerbezeichnung von der Freie-Liste-Logikschaltung
54 als Bestimmungsregister für einen abgerufenen Qucllenoperanden. Das RI-FeId des
Befehles im Vorverriegelungs-Register 30 enthält den echten FPR-Namen (FPR ist eine Bezeichnung für
Gleitkommaregister) und das R2-Fe!d die Bezeichnung des gewählten Quellenregisters. Die decodierte RX-Befehlsanzeige
170 bereitet das UND-Glied 172 vor, und das Feld R2 wird durch das ODER-Glied 138 zu den
Bedingungstoren 140 geleitet. Die Umbenennung des durch das RI-FeId benannten Gleitkomma-Registers
wird an die Tore 134 geleitet. Der Leitimpuls auf der Leitung 142 prüft dann die Tore 134, 140, 144 und 146
zur Übertragung des revidierten RX-Befehlsformates in das unterste Register des I/R-Stapels 34 in ähnlicher
Weise, wie es oben beschrieben wurde.
Handelt es sich um einen Speicherbefehl, so bleiben die drei wertniederen Bits des R2-Feldes ungenutzt, und
die 5 werthohen Bits stellen ein zur Erzeugungszeit der effektiven Adresse von der Einheit 14 zugordnetes Reihenfolgekennzeichen
dar, welches zusammen mit den Speicherdaten auf das Leitungssteuermodul 18 gesetzt
wird um diesem die richtige Speicheradresse anzugeben. Das RI-FeId des Speicherbefehles bezeichnet das
Gleitkomma-Register, dessen Inhalt die Quelle des in den Hauptspeicher 10 zu setzenden Operanden sein soll
und durch die Ausgangstore 132 auf die Bedingungstore 134 zum Laden der angegebenen Registerbezeichnung
in das RTl-FeId geleitet wird. Das R2-Feld wird durch das ODER-Glied 138 und die Tore i4ö auf das RT2-Feid
98 geleitet.
Wie in F i g. 5 gezeigt ist, enthält der I/R-Stapel 34
5 Register 181 bis 185, welche auf ihre Ausführung wartende Gleitkomma-Befehle enhalten. Ein Befehl tritt unten
in den Stapel (Register 185) ein und steigt in jedem Zyklus um eine Stelle nach oben, wenn dort oben ein
Register zur Verfugung steht. Ein Register wird z. B. dadurch verfügbar gemacht, daß ein Befehl auf das Ausführungsregister
40 gesendet, das Gültigkeitsbit 80 dabei gelöscht und diese Bits dazu benutzt werden, verfügbare
Register festzustellen. Aus F i g. 5 ist zu ersehen. daß der I/R-Stapel 34 5 Register 181 bis 185 und eine
Aufstiegsschaltung 186 enthält, die auf die Gültigkeitsbits 80-1 bis 80-5 der in den Registern 180 bis 185 gespeicherten
Befehle anspricht. Ein Befehl wird in das Register 185 vom Vorverriegelungs-Register 30 über die
Transformationslogikschaltung 32 und die Leitungen 188 geladen. Befehle werden von den Registern 181 bis
185 über die Ausgangstore 191 bis 195 und das ODER-Glied 196 übertragen auf das Ausführungsregister 40 als
Funktion der über die Ausgangsleitungen 198 von der Sperrlogikschaltung 36 kommenden Signale. Ein Signal
auf einer der Leitungen 198 bereitet einen entsprechenden Satz von Toren für die Übertragung vor, und ein
anschließendes Signal auf der Leitung 482 setzt das Gültigkeitsbit
80 des übertragenen Befehles zurück. Nach Beendigung der Übertragung prüft die Aufstiegsschaltung
186 aufgrund eines auf die Leitung 20Ö gegebenen Leitimpulses die UND-Glieder 201 bis 204 und überträgt
als Funktion der Lage des verfügbaren leeren Registers die Befehle nach oben jeweils in das nächsthöhere
Register. Wenn die Sperrlogikschaltung 36 z. B. vorschreibt, daß der im Register 182 gespeicherte Befehl
übertragen werden soll, wird das Tor 192 vorbereitet. Nachdem die Übertragung stattgefunden hat. wird das
■> Gülligkcitsbit 82-2 gelöscht, und die Auf.stiegsschnltiing
186 stellt die Verfügbarkeit des Registers 182 fest und
bereitet daraufhin die Tore 205-2, 205-3 und 205-4 der Reihe nach über die Verzögerungsschaltungen 206 bis
208 und die ODER-Glieder 210 bis 212 zur Übertragung
to der Befehle aus den Registern 183 bis 185 in die Register 182 bis 184 vor und stellt auf diese Weise das Register
185 zum Empfang weiterer Befehle vom Vorverriegelungs-Register 30 zur Verfügung, wie durch ein Ausgangssignal
vom ODER-Glied 214 auf der Leitung 206
is angezeigt wird.
Die Sperrlogikschaltung 36 soll sicherstellen, daß die Ausführung von Befehlen außerhalb einer vorgegebenen
Reihenfolge zu denselben Ergebnissen führt wie die Ausführung der Befehle in der Reihenfolge, und durch
Berücksichtigung von bis zu 5 Befehlen in jedem Zyklus wird die Recheneinheit 42 soweit belegt gehalten, wie es
die abgerufenen Befehle gestatten. Im vorliegenden Ausführungsbeispiel werden dafür 5 verschiedene Sperren
benutzt:
Quelle—Senke-Sperre,
Datengültigkeitssperre,
Einheiten-Belegungssperre,
Kabelbelegungssperre und
Reihenfolgeunterdrückungssperre.
Datengültigkeitssperre,
Einheiten-Belegungssperre,
Kabelbelegungssperre und
Reihenfolgeunterdrückungssperre.
Die Quelle—Senke-Sperre fragt die RTl- und RT2-Felder eines jeden auf Ausführung wartenden Befehles
ab, und wenn zwei oder mehr Befehle auf dasselbe Arbeitsregister Bezug nehmen, muß der neuere Befehl
evtl. gesperrt werden, um die Integrität der Ergebnisse sicherzustellen. Die Datengüitigkciisspcf re sperrt
einen Befehl von der Ausführung aus, wenn die Daten in dem durch die Felder RTl und RT2 angegebenen Regi·
ster ungültig sind, z. B. dadurch, daß die Daten das Ergebnis der Ausführung eines früheren Befehles sind, der
noch weiter verarbeitet wird, oder daß angeforderte Daten noch nicht zurückgebracht wurden (Speicherabruf
läuft noch). Die Einheitenbelegungssperre gilt nur für Multiplikations- und Divisionsbefehle, da der M/D-Teil
420 in F i g. 2 nicht bei jedem Zyklus neue Befehle aufnehmen kann.
Wenn ein Multiplikations- oder Divisionsbefehl zur Ausführung bereitgestellt wird, setzt er ein entsprechendes
Belegungsbii. Jedoch wird zwei Zyklen bevor die Einheit einen anderen Befehl empfangen könnte das
Belegungsbit wieder abgeschaltet und dadurch die Einheitenbelegungssperre wieder aufgehoben. Auf diese
Weise kann ein Zyklus für eine erfolgreiche Sperre und
ein weiterer zum Übertragen neuer Operanden so genutzt werden, daß die Einheit ohne Verlust eines Zyklus
benutzt werden kana Wo nur eine Ergebnisrückleitung von der Recheneinheit 42 zum W/R-Stapel 44 zur Verfügung
steht, kann kein Befehl zur Ausführung gegeben
ω werden, der gleichzeitig mit einem anderen früher zur
Ausführung gegebenen Befehl beendet ist, und diese Bedingung wird durch die Leitungsbelegungssperre
überwacht Die Reihenfolgeunterdrückungssperre wählt schließlich den ältesten Befehl im I/R-Stapel 34,
der nicht anderweitig gesperrt ist, und gestattet seine Übertragung in das Ausführungsregister 40.
Die zur Quellen—Senke-Sperre gehörenden Diagramme
sind in den F i g. 6a bis 6f gezeigt Typischer-
weise benötigt jeder auf Ausführung wartende Befehl ein oder zwei Register für die Quellenoperanden und
ein Register für eine Ergebnis-Senke. Für die Quellen— Senken-Sperre gibt das RTl-FeId sowohl eine Quelle
als auch eine Senke an, während das RT2-Feld nur eine Quelle bezeichnen kann. Bei diesen Annahmen erfolgt
die Quellen—Senken-Sperrung mit drei Vergleichen zwischen jed m Befehlspaar gemäß der Darstellung in
F i g. 6a.
Ein erster Vergleich 220 zwischen den RTl-Feldern der älteren und neueren Befehle stellt sicher, daß der
neuere Befehl ein Register erst als Quelle benutzt, wenn der ältere Befehl ein Ergebnis zu dieser Senke zurückgeführt
hat. Der zweite Vergleich 222 stellt sicher, daß der neuere Befehl ein Register erst als Senke benutzt,
wenn der ältere Befehl es als Quelle benutzt hat. Der dritte Vergleich 224 stellt sicher, daß der neuere Befehl
ein Register erst als Quelle benutzt, wenn das richtige Ergebnis durch den älteren Befehl in dieses Register
gesetzt worden ist.
Fig.6b zeigt die 12 für die durch das Register 185
angegebenen Namen erfoderlichen Vergleiche. Die gesamte Quellen—Senken-Sperrung in einem solchen
Ausführungsbeispiel benötigt 30 Vergleiche. Gemäß Darstellung in den F i g. 6a und 6b brauchen solche Vergleiche
nur aufwärts durchgeführt zu werden, da die ältesten Befehle im I/R-Stapel 34 oben und die jüngsten
unten liegen.
Ein Schaltdiagramm der Quellen—Senken-Sperre ist
in F i g. 6c gezeigt. Nach Darstellung in den F i g. 6d, 6e und 6f arbeitet diese Sperre mit drei verschiedenen Arten
von Vergleicherschaltungen. In einem ersten Vergleich 220, dargestellt in Fig.6d, werden die RTl-Bits
250 und das zu einem Befehl gehörige Gültigkeitsbit 252 verglichen mit den RTl-Bits 254 und dem Gültigkeitsbit
256 des Befehles im nächsthöheren Register. Das Ausgangssignal einer Antivalenz-Vergleicherschaltung 258
zeigt das Fehlen einer Übereinstimmung an und erzeugt ein Ausgangssignal vom ODER-Glied 260 zur Aufhebung
des Sperrsignales vom Ausgang des inverters 262.
Der zweite Vergleichstyp ist in F i g. 6e gezeigt, wo das RTl-Bit und das G'Utigkeitsbit 270 in einem niedrigen
Register mit dem RT2-Bit und dem Gültigkeitsbit 272 in einem höheren Register durch die Vergleicherschaltungen
274, das ODER-Glied 276 und den Inverter 278 ähnlich wie bei der Schaltung in F i g. 6d verglichen
werden. Wenn eine Übereinstimmung auftritt, wird auf der Leitung 280 ein Ausgangssignal erzeugt. Dieses
Verriegelungssignal wird jedoch durch den Inverter 282 und das UND-Glied 284 gesperrt, wenn es sich um einen
Speicherbefehl handelt.
Bei der dritten Vergleichsart 224 wird zwischen dem RT2-Bit und dem Gültigkeitsbit 290 in einem niedrigen
Register und dem RTl -Bit und dem Gültigkeitsbit 292 in einem höheren Register verglichen durch Vergleicherschalf
ungen 294, ein ODER-Glied 296 und einen Inverter 298 und ein Sperrsignal auf der Leitung 300 erzeugt
Wiederum wird über den Inverter 302 und das UND-Glied 304 die Sperre in ähnlicher Weise verhindert,
wenn im niederen Register ein Speicherbefehl steht
In Fig.6c ist die Quellen—Senken-Sperrschaltung
gezeigt Signale vom RTl-FeId des Befehles im ersten Befehlsregister 181 werden auf die Vergleicherschaltungen
310,314,318 und 322 der in F i g. 6f gezeigten Art und auf die Vergleicherschaltungen 312, 316, 320 und
324 der in Fig.6d gezeigten Art geleitet. Signale aus
dem RT2-Feld in diesem Register werden auf die Vergleicherschaltungen
230,232,234 und 236 der in F i g. 6e
gezeigten Art geleitet. In ähnlicher Weise werden Signale vom RT: Feld des Befehles im zweiten Register
182 an die zweiten Eingänge der Vergleicherschaltungen 312 und 330 und die ersten Eingänge der Vergleicherschaltungen
340, 342, 344, 346, 348 und 350 angelegt. Das RTI-FeId des dritten Registers 183 wird an die
zweiten Eingänge der Vergleicherschaltungen 316 und 342, 332 und 352 und die ersten Eingänge der Vergleicherschaltungen
360, 362, 364 und 366 angelegt. Die Signale vom RT2-Feld werden an die zweiten Eingänge
der Vergleicherschaltungen 314 und 340 und an die ersten Eingänge der Vergleicherschaltungen 370 und 372
angelegt. Das RTl-FeId des Befehles im 4. Register 184 wird auf die zweiten Eingänge der Vergleicherschaltungen
320, 346, 362, 334, 354 und 370 und auf die ersten Eingänge der Vergleicherschaltungen 374 und 376 geliefert,
während das RT2-Feld des Befehles auf die zweiten Eingänge der Vergleicherschaltungen 318, 340 und 360
und die ersten Eingänge der Vergleicherschaltungen
M 378 geleitet wird. Das RTl-FeId des Befehles im Register
185 wird auf den zweiten Eingang der Vergleicherschaltungen 324, 350, 366, 376, 336, 356, 372 und 378
geleitet und das RT2-Feld dieser Instruktion auf die zweiten Eingänge der Vergleicherschaltungen 322,348,
364 und 374.
Wenn eine Vergleicherschaltung ein (Übereinstimmungs-)Ausgangssignal
liefert, erzeugt sie ein Sperrsignal. Das Sperrsignal für das zweite Register 182 wird
über das ODER-Glied 380 auf die Leitung 382, für das dritte Register 183 über das ODER-Glied 384 auf die
Leitung 386, für das vierte Register 184 über das ODER-Glied 388 auf die Leitung 390 und für das 5. Register 185
über das ODER-Glied 392 auf die Leitung 394 geleitet. Die Datengültigkeitssperre fühlt die zu den Areitsre-
j5 gistern im W/R-Stape! 44 gehörenden Zustandsbits ab,
die durch die Felder RTl und RT2 eines jeden Befehles im I/R-Stapel 34 angegeben sind. Wenn Daten in einem
Register im W/R-Stapel 44 gespeichert werden, wird entsprechend obiger Beschreibung das entsprechende
Gültigkeitsbit in der Schaltung 52 gesetzt. Die Felder RTl und RT2 eines jeden Befehles im I/K-Stapel 34
werden decodiert und das resultierende Ausgangssignal in jedem Sperrzyklus über die Leitungen 400 an die
Schallung 52 zum Prüfen des Datengültigkeitsbits des entsprechenden Arbeitsregisters im W/R-Stapel 44 geleitet.
Wenn dieses Gültigkeitsbit nicht gesetzt ist, wird ein Signal über die Leitungen 402 als Datengültigkeits-Sperrsignal
für dieses Register zurückgegeben, um die Benutzung des Befehles in diesem Register im nächsten
Ausführungszyklus zu verhindern. Die Daten können aus zwei Gründen gültig sein: — Das angegebene Register
kann ein Senkenregister für das Ergebnis eines vorhergehenden Befehles sein, der noch in der Ausführung
läuft, odiEr — die die Operanden liefernde Einheit kann
eine angeforderte Übertragung eines Operanden aus dem Speicher 10 noch nicht abgeschlossen haben. Damit
ein Befehl nicht »Daten gültig« gesperrt wird, müssen alle RT-Adressen Gültigkeitsbits haben (ausgenommen
der Ladebefehl und das RT2-Feld eines Speicherbefehles). Die durch die Felder RTl und RT2 eines Befehles
bezeichneten Datengültigkeitsbits werden durch Signale auf der Leitung 404 und 406 bei Ausführung des Befehles
zurückgestellt
Eine ähnliche Sperre ist die Einheitenbelegungssper-
Eine ähnliche Sperre ist die Einheitenbelegungssper-
t: re, die in diesem Ausführungsbeispiel nur für Multiplikations-
und Divisionsbefehle gilt und die nachfolgende Verwendung des M/D-Teiles 42ß durch einen anderen
Befehl verhindert bis ein vorhergehender Beiehl soweit
abgeschlossen :st, daß dieser Teil weiterverwendet werden
kann. Im vorliegenden Ausführungsbeispiel wird das Einheiten-Belegungsbit abgeschaltet und das Sperrsignal
von der Leitung 408 genommen, zwei Zyklen, bevor die Einheit tatsächlich einen weiteren Befehl annehmen
kann. Dadurch steht ein Zyklus für eine erfolgreiche Sperrung und ein weiterer zur Übertragung neuer
Operanden zur Verfugung, so daß der M/D-Teil ohne Verlust eines Zyklus wieder benutzt werden kann. In
ähnlicher Weise kann die Sperrung einer Leitung erwünscht sein, wenn z. B. nur eine Ergebnisrückleitung
von der Recheneinheit zum W/R-Stapel 44 vorhanden ist. Bei dieser Sperre wird ein Befehl mit einem anderen
vorhergehenden unvollständigen Befehl gesperrt, wenn der zweite Befehl zur selben Zeit abgeschlossen wäre
wie der vorhergehende Befehl. Diese Sperre wird durch
ein Signal auf der Leitung 410 angezeigt.
Schließlich ist in Fig.7 noch die Reihenfolgeunterdrückungsspere
gezeigt. Diese Sperrschaltung wählt den ältesten Befehl im I/R-Stapel 34. der nicht anderweitig
gespe-rt ist. Gemäß Darstellung in F i g. 7 werden die Sperrsicnale eines jeden Registers auf entprechende
ODER-Glieder 420, 422, 424, 426 und 428 geleitet. Das Ausgangssignal des ODER-Gliedes wird über einen entsprechenden
Inverter 430 bis 438 an einen Eingang der UND-Glieder 440 bis 448 angelegt. Ein durch das Befehlsgültigkeitsbit
80 gesteuertes Signal wird an einen zweiten Eingang 450 bis 458 eines jeden UND-Gliedes
angelegt. Wenn der Befehl im ersten Befehlsregister 181 ein gültiger ist und seine Sperr-ODER-Schaltung 420
kein Ausgangssignal liefert, ist üas UND-Glied 440 vorbereitet und liefert ein Ausgangssignal über die Leitung
460 als Tor-Vorbereitungssignal für die Übertragung des Befehles aus diesem Register in das Ausführungsregister
40 und sperrt über den Inverter 470 Übertragungen von allen anderen Registern im I/R-Stapel 34. Nach
Übertragung des Befehles prüft ein auf die Leitung 478 geleiteter Impuls das vorbereitete UND-Glied 480, und
sein Ausgangssignal wird auf die Leitung 482 zum Rückstellen des Gültigkeitsbits 80 im entsprechenden Register
im I/R-Stapel 34 geleitet. Dadurch wird eine freie Stelle im I/R-Stapel 34 angezeigt, so daß die Befehle im
Stapel aufgrund eines Leitimpulses auf der Leitung 200 in die 4 obersten Register aufsteigen können, und so das
5. Register 185 zum Empfang eines weiteren Befehles von dem Vorverriegelungsregister 30 freigegeben wird.
Sollte der Befehl im Register 181 nicht gültig sein (z. B. durch eine gerade gelöste Bedingung, die diesen
Befehl ungültig gemacht hat) oder der Befehl gesperrt sein, z. B. durch das Einheiten-Belegt-Sperrsignal auf
der Leitung 408-1, dann liefert das UND-Glied 440 kein Ausgangssignal, aber der Inverter 470 erzeugt ein Ausgangssignal,
um den 3. Eingang 471 der UND-Glieder 424 bis 448 vorzubereiten. Wenn die beiden anderen
Eingänge auch vorbereitet sind, gestattet das resultierende Signal auf der Ausgangsleitung 462 die Übertragung
eines Befehles vom Befehlsregister 182 auf das Ausführungsregister 40 und nach Abschluß dieser Übertragung
die Rückstellung des Güitigkeitsbits dieses Befehls durch ein Ausgangssignal vom UND-Glied 480-2.
Wenn beide Register verriegelt sind, werden die Register 183 bis 185 in ähnlicher Weise der Reihe nach auf
einen Befehl überprüft, der zur Übertragung in das Ausführungsregister
40 verfügbar ist
Einzelheiten der Freie-Iiste-Logikschaltung 54 sind
in F i g. 8 gezeigt Diese Schaltung bezeichnet die Register im W/R-Stapel 44, die für die Wahl durch die Befehlseinheit
14 zur Verfugung stehen. Wenn das Register als Gleitkomma-Register gewählt wird, bleibt is
gewählt, bis diese Wahl durch einen anderen Ladebefehl geändert wird. Wenn das Register als Pufferregister zu
verwenden ist, kann es zur Verfügung gestellt werden, sobald das RT2-Feld im Ausführungsregister 40 steht.
Somit wird durch das RT2-Feld eines Ausführungsbefehles (ausgenommen Speicherbefehl) angegebene Register
feigegeben, wenn dieser Befehl im Ausführungsregister 40 steht. Im Ausführungsregister 40 wird der
ίο Operationscode decodiert, und, wenn der Befehl ein
RX-Befehl ist, auf der Leitung 500 ein Ausgangssignal erzeugt, um einen Eingang des UN D-Gliedes 502 vorzubereiten.
Ist der vorliegende Befehl kein Speicherbefehl, dann bereitet das Ausgangssignal auf der Leitung 504
vom Inverter 506 den zweiten Eingang des UND-Gliedes 502 vor. Wenn ein Leitimpuls auf die Leitung 508
gegeben wird, wird dieser vom UND-Glied 502 an die Prüftore 510 und 512 weitergeleitet. Diese Tore leiten
die Bits des RT2-Feldes an die Decodierer 514 und 516.
Μ Das resultierende Ausgangssignal auf einer der 16 Leitungen
vom Decodierer setzt die entsprechenden Flip-Flops 520-1 bis 520-16, 522-1 bis 522-16 und liefert so
eine Anzeige für die Verfügbarkeit der diesen Flip-Flips zugeordneten Register. Das »!«-Ausgangssignal eines
jeden Flip-Flops bereitet ein UND-Glied 530 vor und trennt! außerdem die vorbereiteten Eingänge von allen
nachfolgenden UND-Gliedern 530 über den Inverter 532 und die ODER-Glieder 534 ab. Somit wird ein
UND-Glied 530 vorbereitet, welches dem höchsten Register entspricht, das gemäß dem Setzen der Flip-Flops
520, 522 in jedem der hohen und niedrigen Abschnitte des W/R-Stapels 44 zur Verfügung steht Wenn das
ODER-Glied 534-16 oder 534-32 kein Ausgangssignal liefert, werden Signale über die Inverter 536-1 oder
536-2 über die Leitungen 58 an die Befehlseinheit 14 gegeben und zeigen an, daß kein Register zur Verfügung
steht. Wenn die Befehlseinheit 14 ein Arbeitsregister wählen will, wird ein Signal über die Leitung 538-1
und/oder 538-2 gesendet (Ein Doppelregister kann durch gleichzeitige Impulssteuerung der entsprechenden
Flip-Flops 520 und 522 gewählt werden.) Das Ausgangssignal des vorbereiteten UND-Gliedes 530 wird
an den Codierer 540 geleitet, der ein Codier-Ausgangssignal auf den Leitungen 58 für die Befehlseinheit 14
erzeugt. In jedem Zyklus wird ein Leitimpuls auf die Leitung 542 gegeben und durch die vorbereitete Torschaltung
544 weitergeleitet, um ein Ausgangssignal auf der zugehörigen Leitung im Kabel 546 zu erzeugen, mit
welchem das entsprechende Flip-Flop 520 und/oder 522
so zurückgestellt wird als Anzeige dafür, daß die Befehiseinheit
14 das durch dieses Flip-Flop bezeichnete Arbeitsregister reserviert hat
Wenn der Befehl in dem in F i g. 2 gezeigten Ausführungsregister
40 steht, wird mit seinem Operationscode die Recheneinheit 42 gesteuert, und mit dem RTl-FeId
96 und dem RT2-Feld 98 werden entsprechende Ausgangstore 46 des W/R-Stapels 44 vorbereitet zur Übertragung
ihres Inhaltes an die Recheneinheit 42 zwecks Verwendung bei der Verarbeitung des Befehles. Jedes
Laden von Daten in den W/R-Stapel, entweder von der Sammelleitung über die Leitungen 66 oder von der Recheneinheit
42 über die Leitungen 50, setzt ein entsprechendes Gültigkeitsbit in der Datengültigkeitsschaltung
52, und jede Datenübertragung von einem Register
löscht die entsprechenden Gültigkeitsbits, so daß die Benutzung der Arbeitsregister auf diese Weise über die
Datengültigkeits-Sperrschaltung gesteuert wird. Wenn der Befehl im Ausführungsregister 40 ein Speicher- oder
13 H
Vergleichsbefehl ist (sie verändern den hihalt des angezeigten
Senkenregisters nicht), wird diese Röckstellung verhindert. Abhängig von der Art des Befehles werden
keiner, einer oder zwei Operanden aus dem W/R-Stapel 44 ausgeleitet Be', Befehlen, die den Addierer benutzen,
wird der Name des Senkenregisters vom Ausführungsregister 40 in eine Reihenfolgeeinrichtung übertragen,
um eine Zyklusverzögerung vor der Ausführung zu erreichen und dann die entsprechenden Eingangstore 48
zum Speichern des Ergebnisses zu öffnen. Bei Multiplikations-
und Divisionsbefehlen wird die Senkenregisteradresse angegeben durch die Reihenfolgeeinrichtung,
wenn der M/D-Teil 42ß 3 Zyklen vor dem Ende steht. Biese Adresse wird im nächsten Zyklus decodiert, das
Datengültigkeitsbit für dieses Register im nächsten Zyklus gesetzt, und im dritten Zyklus werden die zugehörigen
Eingangstore 48 zum Empfang des Ergebnisses vorbereitet. Sollte diese Adresse auch in den Feldern RTl
oder RT2 des dann im Ausführungsregister 40 stehenden Befehles erscheinen, wird ein Umgehungstor geöffnet,
der Operand in die entsprechende Recheneinheit 42 geleitet und dann das zugehörige Datengüligkeitrbit gelöscht.
In einer Gleitkomma-Recheneinheit ist nur ein Befehl mit erweiterter Genauigkeit gleichzeitig zulässig, da 3 2s
bis 4 volle Register und eine längere Ausführungszeit benötigt werden. Wenn ein solcher Befehl die Vorverr.egelungsregister
30 erreicht, wird daher von der Befehlseinheit 14 kein weiterer Befehl entgegengenommen,
und alle vorher in die Ausführungseinheit 16 von der Befehlseinheit 14 eingegebenen Befehle werden
ausgeführt, mit Ausnahme des Befehles im Vorverriegelungsregister 30. Dieser Befehl wird direkt in das Ausfiihrungsregister
40 und ein zweites Ausführungsregister übertragen, welches die hinzugefügten Registernamen
enthält. Die Felder RI und R2 des Befehles mit erweiterter Genauigkeit durchlaufen die Transformationslogikschaltung
32 zur Berücksichtigung evtl. vorgenommener Umbenennungen, es gilt jedoch nur die Datengültigkeitssperre
der Sperrlogikschaltung 36. Wenn «n der Befehl mit erweiterter Genauigkeit einmal im Ausführungsregister
40 steht, kann der I/R-Stapel 34 mit der
Nachfüllung beginnen; weitere Befehle gelangen jedoch erst zur Ausführung, wenn der Befehl mit erweiterter
Genauigkeit fertig ausgeführt ist.
50
55
60
b5
Claims (10)
1. Befehlsausführungseinheit in einer elektronischen Datenverarbeitungsanlage für die gleichzeitige
Verarbeitung mehrerer von einer Befehlseinheit empfangener Befehle, mit einer Recheneinheit (42)
zur Ausführung arithmetischer und logischer Operationen sowie einem Arbeitsregisterstapel (W/R-Stapel
44), der befehlsspezifische Daten für die Recheneinheit enthält und von einem Ausführungsregister
(40) adressierbar ist, das von einem Befehlsregisterstapel (I/R-Stapel 34) mit Befehlen ladbar ist, die
dann zur Steuerung arithmetischer und logischer Operationen zur Recheneinheit übertragen werden,
sowie mit einer Datengültigkeitsschaltung (V-Logik 52), die jeweils ein Kennzeichen der entsprechenden
adressierten und mit Daten geladenen Arbeitsregister im Arbeitsregisterstapel erzeugt und diese
Kennzeichen speichert, dadurch gekennzeichnet,
daß zwischen der Bcichiscinhcii (14),
welche die Befehle voneinander unabhängiger Programme liefert, und dem Befehlsregisterstapel (34)
eine Transformationslogikschaltung (32) vorgesehen ist, welche die aus der Befehlseinheit (14) übertragenen
Befehle derart modifiziert. daß sie in bestimmten
Feldern (RTl. RT2) der jeweiligen Befehle, die Adresse der jeweils ausgewählten Arbeitsregister
des Arbeitsregisterstapels (44) mit Hilfe eines Transformationslistenspeichers (106) einträgt, so daß auch
bei der Verarbeitung der Befehle mehrerer Programme deren innerer Zus^Timenhang erhalten
bleibt
2. Befehlsausführungseinheit r*ch Anspruch 1, dadurch
gekennzeichnet, daß eine Freie-Liste-Logikschaltung (54) und die Datengültigkeitsschaltung
(52) mit der Befehlseinheit (14) und dem Arbeitsregisterstapel (44) verbunden sind, wobei die Freie-Liste-Logikschaltung
(54) Verfügbarkeitsangaben hinsichtlich der Arbeitsregister im Arbeitsregisterstapel
(44) erzeugt, speichert und an die Befehlseinheit (14) überträgt
3. Befehlsausführungseinheit nach Anspruch t und/oder 2, dadurch gekennzeichnet, daß die Transformationslogikschaltung
(32), die zwischen einem Vorverriegelungsregister (30) und dem Befehlsregisterstapel
(34) vorgesehen ist, bei einem ersten Befehl (Ladebefehl LD) die Adresse des jeweiligen Arbeitsregisters
im Arbeitsregisterstapel (44) in den Transformationslistenspeicher (106) einträgt und bei
einem zweiten Befehl (Register-Register-Befehl RR; Register-Speicher-Befehl RX) den Transformationslistenspeicher
(106) ausliest und die ausgelesenen Adressen in die bestimmten Felder (RTl, RT2) eines
zu modifizierenden Befehls einträgt, wobei bei einem Register-Speicher-Befehl jedoch in eines (RT2)
der bestimmten Felder die vor der Modifizierung vorhandene Adresse (R2) direkt übertragen wird.
4. Befehlsausführungseinheit nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß eine
Sperrlogikschaltung (36) vorgesehen ist, die auf die
Datengültigkeitsschaltung (52) anspricht und die Übertragung von Befehlen aus dem Befehlsregisterstapel
(34) zu dem Ausführungsregister (40) steuert.
5. Befehlsausführungseinheit nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß die
Frcic-Liste-Logikschaltung (54) Programmnamen speichert, die bestimmten Arbeitsregistern zugeordnet
sind, und dadurch jeweils den inneren Zusammenhang der Programme aufrechterhält
6. Befehlsausführungseinheit nach einem der Ansprüche
4 und 5, dadurch gekennzeichnet, daß die Sperrlogikschaltung (36) eine Vorranglogik für die
Freigabe des ältesten nicht gesperrten Befehls im Befehlsregisterstapel (34) enthält
7. Befehlsausführungseinheit nach einem rier Ansprüche
1 bis 6, dadurch gekennzeichnet, daß die
ίο Recheneinheit (42) mehrere Untereinheiten (42*4,
42B) besitzt, wobei die Sperrlogikschaltung (36) die Freigabe von Befehlen für die Übertragung zu der
Recheneinheit (42) als Funktion der Verfügbarkeit der Untereinheiten vornimmt
8. Befehlsausführungseinheit nach einem der Ansprüche 4 bis 7, dadurch gekennzeichnet, daß die
Sperrlogikschaltung (36) die Steuerung der Übertragung von Befehlen zu dem Ausführungsregister (40)
als Funktion des Inhalts der genannten Felder aufeinanderfolgender
Befehle vornimmt
9. Beiehisäusführungseinheit nach Anspruch 4 und
7, dadurch gekennzeichnet daß die Recheneinheit (42) Additions- und Multiplikations/Divisions-Untereiraheiten
(42A und 42ß) besitzt und ferner die Sperrlogikschaltung (36) folgende Logikschaltungen
aufweist:
eine Quelle-Senke-Logikschaltung für die Steuerung
der Übertragung von Befehlen zu der Recheneinheit (42) als Funktion der bestimmten Felder (RTl. RT2)
in den modifizierten Befehlen und
eine Operandengültigkeitslogikschaltung (Fig.6c bis 6f) für die Steuerung der Übertragung der Befehle
zu der Recheneinheit (42) als Funktion von Gültigkeitsbits (V).
10. Befehlsausführungseinheit nach Anspruch 2.
dadurch gekennzeichnet, daß die Freie-Liste-Logikschaltung
(54) ihre Verfügbarkeitsangabe hinsichtlich eiines Arbeitsregisters im Arbeitsregisterstapel
(44) in Abhängigkeit von tier Abui bcitung eines jeweiligen
Operanden in der Recheneinheit (42) ändert.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10070470A | 1970-12-22 | 1970-12-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2161886A1 DE2161886A1 (de) | 1972-07-06 |
DE2161886C2 true DE2161886C2 (de) | 1985-01-17 |
Family
ID=22281112
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2161886A Expired DE2161886C2 (de) | 1970-12-22 | 1971-12-14 | Befehlsausführungseinheit in einer elektronischen Datenverarbeitungszentrale für die gleichzeitige Verarbeitung mehrerer Befehle |
Country Status (5)
Country | Link |
---|---|
US (1) | US3718912A (de) |
JP (1) | JPS534779B1 (de) |
DE (1) | DE2161886C2 (de) |
FR (1) | FR2119338A5 (de) |
GB (1) | GB1306669A (de) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3909789A (en) * | 1972-11-24 | 1975-09-30 | Honeywell Inf Systems | Data processing apparatus incorporating a microprogrammed multifunctioned serial arithmetic unit |
DE2309029C2 (de) * | 1973-02-23 | 1985-10-03 | Nixdorf Computer Ag, 4790 Paderborn | Elektronische Digital-Datenverarbeitungs-Anlage mit Mikroprogrammsteuerung |
US4153932A (en) * | 1974-03-29 | 1979-05-08 | Massachusetts Institute Of Technology | Data processing apparatus for highly parallel execution of stored programs |
US4149240A (en) * | 1974-03-29 | 1979-04-10 | Massachusetts Institute Of Technology | Data processing apparatus for highly parallel execution of data structure operations |
US3962706A (en) * | 1974-03-29 | 1976-06-08 | Massachusetts Institute Of Technology | Data processing apparatus for highly parallel execution of stored programs |
DE2555963C2 (de) * | 1975-12-12 | 1982-10-28 | Ibm Deutschland Gmbh, 7000 Stuttgart | Einrichtung zur Funktionsmodifizierung |
DE2937777C2 (de) * | 1979-09-19 | 1982-04-08 | Ibm Deutschland Gmbh, 7000 Stuttgart | Steuereinrichtung in einer elektronischen Datenverarbeitungsanlage zur Programmunterbrechung und für die Durchführung erzwungener Operationen |
JPS5932045A (ja) * | 1982-08-16 | 1984-02-21 | Hitachi Ltd | 情報処理装置 |
US4807115A (en) * | 1983-10-07 | 1989-02-21 | Cornell Research Foundation, Inc. | Instruction issuing mechanism for processors with multiple functional units |
US5729757A (en) * | 1985-05-20 | 1998-03-17 | Shekels; Howard D. | Super-computer system architectures using status memory to alter program |
US4903196A (en) * | 1986-05-02 | 1990-02-20 | International Business Machines Corporation | Method and apparatus for guaranteeing the logical integrity of data in the general purpose registers of a complex multi-execution unit uniprocessor |
NL8800071A (nl) * | 1988-01-13 | 1989-08-01 | Philips Nv | Dataprocessorsysteem en videoprocessorsysteem, voorzien van een dergelijk dataprocessorsysteem. |
US5280620A (en) * | 1988-12-16 | 1994-01-18 | U.S. Philips Corporation | Coupling network for a data processor, including a series connection of a cross-bar switch and an array of silos |
US5214765A (en) * | 1989-08-31 | 1993-05-25 | Sun Microsystems, Inc. | Method and apparatus for executing floating point instructions utilizing complimentary floating point pipeline and multi-level caches |
US5150470A (en) * | 1989-12-20 | 1992-09-22 | International Business Machines Corporation | Data processing system with instruction queue having tags indicating outstanding data status |
JP2622008B2 (ja) * | 1990-03-08 | 1997-06-18 | 甲府日本電気株式会社 | 情報処理装置 |
JP2834292B2 (ja) * | 1990-08-15 | 1998-12-09 | 株式会社日立製作所 | データ・プロセッサ |
EP0495162A3 (en) * | 1991-01-16 | 1994-05-18 | Ibm | Storage management |
US5539911A (en) | 1991-07-08 | 1996-07-23 | Seiko Epson Corporation | High-performance, superscalar-based computer system with out-of-order instruction execution |
US5493687A (en) | 1991-07-08 | 1996-02-20 | Seiko Epson Corporation | RISC microprocessor architecture implementing multiple typed register sets |
JP3730252B2 (ja) * | 1992-03-31 | 2005-12-21 | トランスメタ コーポレイション | レジスタ名称変更方法及び名称変更システム |
KR950701437A (ko) | 1992-05-01 | 1995-03-23 | 요시오 야마자끼 | 슈퍼스칼라 마이크로프로세서에서의 명령어 회수를 위한 시스템 및 방법 |
US5628021A (en) * | 1992-12-31 | 1997-05-06 | Seiko Epson Corporation | System and method for assigning tags to control instruction processing in a superscalar processor |
EP0682789B1 (de) | 1992-12-31 | 1998-09-09 | Seiko Epson Corporation | System und verfahren zur änderung der namen von registern |
US5761473A (en) * | 1993-01-08 | 1998-06-02 | International Business Machines Corporation | Method and system for increased instruction synchronization efficiency in a superscalar processsor system utilizing partial data dependency interlocking |
US5537559A (en) * | 1994-02-08 | 1996-07-16 | Meridian Semiconductor, Inc. | Exception handling circuit and method |
US7140019B2 (en) | 2002-06-28 | 2006-11-21 | Motorola, Inc. | Scheduler of program instructions for streaming vector processor having interconnected functional units |
US6934938B2 (en) * | 2002-06-28 | 2005-08-23 | Motorola, Inc. | Method of programming linear graphs for streaming vector computation |
US7415601B2 (en) * | 2002-06-28 | 2008-08-19 | Motorola, Inc. | Method and apparatus for elimination of prolog and epilog instructions in a vector processor using data validity tags and sink counters |
US7159099B2 (en) * | 2002-06-28 | 2007-01-02 | Motorola, Inc. | Streaming vector processor with reconfigurable interconnection switch |
US7290122B2 (en) * | 2003-08-29 | 2007-10-30 | Motorola, Inc. | Dataflow graph compression for power reduction in a vector processor |
JP3926809B2 (ja) * | 2004-07-27 | 2007-06-06 | 富士通株式会社 | 分岐命令制御装置、および制御方法。 |
US7945768B2 (en) * | 2008-06-05 | 2011-05-17 | Motorola Mobility, Inc. | Method and apparatus for nested instruction looping using implicit predicates |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BE621075A (de) * | 1961-08-17 | |||
US3346851A (en) * | 1964-07-08 | 1967-10-10 | Control Data Corp | Simultaneous multiprocessing computer system |
US3425039A (en) * | 1966-06-27 | 1969-01-28 | Gen Electric | Data processing system employing indirect character addressing capability |
US3462744A (en) * | 1966-09-28 | 1969-08-19 | Ibm | Execution unit with a common operand and resulting bussing system |
US3461434A (en) * | 1967-10-02 | 1969-08-12 | Burroughs Corp | Stack mechanism having multiple display registers |
US3544974A (en) * | 1968-04-01 | 1970-12-01 | Ibm | Data processing system including buffered operands and means for controlling the sequence of processing of same |
US3614741A (en) * | 1970-03-23 | 1971-10-19 | Digital Equipment Corp | Data processing system with instruction addresses identifying one of a plurality of registers including the program counter |
-
1970
- 1970-12-22 US US00100704A patent/US3718912A/en not_active Expired - Lifetime
-
1971
- 1971-09-20 GB GB4366271A patent/GB1306669A/en not_active Expired
- 1971-11-02 JP JP8681671A patent/JPS534779B1/ja active Pending
- 1971-11-16 FR FR7141954A patent/FR2119338A5/fr not_active Expired
- 1971-12-14 DE DE2161886A patent/DE2161886C2/de not_active Expired
Also Published As
Publication number | Publication date |
---|---|
US3718912A (en) | 1973-02-27 |
DE2161886A1 (de) | 1972-07-06 |
JPS534779B1 (de) | 1978-02-21 |
GB1306669A (en) | 1973-02-14 |
FR2119338A5 (de) | 1972-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2161886C2 (de) | Befehlsausführungseinheit in einer elektronischen Datenverarbeitungszentrale für die gleichzeitige Verarbeitung mehrerer Befehle | |
DE2411963C3 (de) | Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken | |
DE2306115C2 (de) | Datenprozessor mit Mikroprogrammspeicherüberlagerung | |
DE2224537C2 (de) | Einrichtung und Verfahren zur Instruktionsauswahl in einem Fließbandprozessor | |
EP0010194B1 (de) | Wartungsschnittstelleneinrichtung für eine datenverarbeitende Anlage mit einer zentralen Verarbeitungseinheit und mit einem Dienstprozessor und Verfahren zu ihrem Betrieb | |
DE2430127C2 (de) | Einrichtung zur Steuerung des Speicherzugriffs konkurrierender Benutzer | |
DE2317870C2 (de) | Schaltungsanordnung zur Steuerung der Datenübertragung zwischen dem Hauptspeicher und mindestens einem E/A-Gerät in einer digitalen Datenverarbeitungsanlage | |
DE2234867C2 (de) | Anordnung in einer Datenverarbeitungsanlage zum Steuern der Verarbeitung zweier voneinander unabhängiger Befehlsfolgen | |
DE3783370T2 (de) | Schaltung zur blockierungsverhinderung von hochprioritaetsanforderungen an eine systemsteuerung. | |
DE3638572C2 (de) | ||
DE2714805A1 (de) | Datenverarbeitungssystem | |
DE2036729A1 (de) | Digital Datenverarbeiter | |
CH650600A5 (de) | Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister. | |
DE1285220B (de) | Datenverarbeitungssystem mit mehreren selbstaendigen Recheneinheiten | |
DE1424762B2 (de) | Datenverarbeitungsanlage | |
DE2023354A1 (de) | Programmierbare Einheit und Verfahren zum Betreiben einer programmierbaren Einheit | |
EP0134831B1 (de) | Einrichtung im Befehlswerk eines Fliessbandprozessors zur Befehlsunterbrechung und -wiederholung | |
DE4207158A1 (de) | Speicher-zugriffssteuerung | |
DE2054830A1 (de) | Informationsverarbeitungssystem mit wortstrukturiertem Speicher und Verfahren fur einen Zugriff zu einem derar tigen Speicher | |
DE2101949A1 (de) | Verfahren zum Schutz von Datengruppen in einer Multiprocessing-Datenverarbeitungsanlage | |
DE2429067B2 (de) | Speicherschaltung | |
DE1499206B2 (de) | Rechenanlage | |
DE3307194C2 (de) | ||
DE2617485A1 (de) | Verfahren und schaltungsanordnung zur abarbeitung von mikrobefehlsfolgen in datenverarbeitungsanlagen | |
DE2221926C3 (de) | Datenverarbeitungsanlage mit wenigstens einem in Verbindung mit mehreren Peripheriegeräten stehenden Prozessor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OD | Request for examination | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |