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 Befehle

Info

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
Application number
DE2161886A
Other languages
English (en)
Other versions
DE2161886A1 (de
Inventor
Leo John Hasbrouck
Bill Clea Saratoga Calif. Madden
Robert Philip San Jose Calif. Rew
Edward Henry Carry N.C. Sussenguth
John Randolph Saratoga Calif. Wierzbicki
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2161886A1 publication Critical patent/DE2161886A1/de
Application granted granted Critical
Publication of DE2161886C2 publication Critical patent/DE2161886C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30072Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30192Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent 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.
Befehlsausführungseinheiten dienen innerhalb der di-
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
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.
U In der US-PS 33 46 851 ist dagegen eine Einrichtung Einzelheiten der Ausführungseinheit 16 sind in F i g. 2 I* zur Mehrfaeh-Befehlsverarbeitung beschrieben, bei der gezeigt Von der Befehlseinheit 14 kommende Instruk-
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
Ii desselben Programms ausgelegt ist, kann sie nicht für dann in den Befehlsregisterstapel (I/R-Stapel) 34 über-
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ß
W: den Wirkungsgrad von elektronischen Datenverarbei- außerhalb der Reihenfolge ausgeführte Instruktionen
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-
I Anspruchs 1 angegeben wird, die eine gleichzeitige und legt die Sperrlogikschaltung die Recheneinheit 42, so-
;, unabhängige Ausführung unabhängiger Befehlsströme weit die Befehlscodes das gestatten, dadurch, daß bis zu
W; gestattet, während sie die wesentliche Struktur, die ei- 5 Befehle pro Zyklus berücksichtigt werden. I* nem Befehlsstrom innewohnt, bewahrt 20 Die Sperrlogikschaltung 36 gestattet die Obertra-
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.
Fig.3b das Format der veränderten Instruktionen, Die Zusammensetzung des von der Befehlseinheit 14
wie sie in dt;n Befehlsregisterstapel gesetzt werden, an das Vorverriegelungs-Register 30 übertragenen Be-
Fi g.4 ein Blockdiagramm einer Transformationslo- fehlswortes ist in Fig. 3a gezeigt. Dieses Befehlswort
gikschaltung, enthält einen 8 Bit großen Operationscode (OP) 70, der
F i g. 5 ein Blockdiagramm eines Befehlsregistersta- 55 den Gleitkomma-Bifehlscode angibt; ein 4 Bit großes
pels, Rl-FeId 72, weiches das durch den Programmierer vor-
F i g. 6a bis 6f logische Diagramme der Quellen-Sen- geschriebene Gleitkomrnaregister bezeichnet; ein 8 Bit
kenkomponente einer Sperrlogikschaltung, großes R2-Feld 74, welches in hohe und niedere Halbfel-
F i g. 7 ein logisches Diagramm einer Reihenfolgeun- der 76,78 geteilt w,rd; ein Gültigkeitsbit (V) 80, welches
terdrückungsschaltung der Sperrlogikschaltung und to angibt, daß die Instruktion gültig ist und nach Modifika-
F ig. 8 ein Diagramm einer Freie-Liste-Logikschal- tion durch die Transformationslogikschaltung 32 an den
tung. i/R-Stapel 34 beim nächsten Zyklus ausgeweitet werden
Die in Fig. 1 gezeigte Organisation einer Datenver- kann;zwei Bedingungsbits,dasCI-Bit82unddasC2-Bit
arbeitungsanlage umfaßt einen Hauptspeicher 10, ein 84, von denen das CI-Bit 82 besagt, daß der Befehl ein
Ein-/Ausgabemodiil (I/O-Modul) 20, eine Zentrale Ver- b5 bedingter Befehl ist u;id nicht ausgeführt werden darf,
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.
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-
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.
Hierzu 6 Blatt Zeichnungen
50
55
60
b5

Claims (10)

Patentansprüche:
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.
DE2161886A 1970-12-22 1971-12-14 Befehlsausführungseinheit in einer elektronischen Datenverarbeitungszentrale für die gleichzeitige Verarbeitung mehrerer Befehle Expired DE2161886C2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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