DE1549474C3 - Anordnung In einer elektronischen digitalen Datenverarbeitungsanlage zur Ausführung eines ersten Befehls und gleichzeitigen Decodierung eines folgenden Befehls - Google Patents

Anordnung In einer elektronischen digitalen Datenverarbeitungsanlage zur Ausführung eines ersten Befehls und gleichzeitigen Decodierung eines folgenden Befehls

Info

Publication number
DE1549474C3
DE1549474C3 DE1549474A DE1549474A DE1549474C3 DE 1549474 C3 DE1549474 C3 DE 1549474C3 DE 1549474 A DE1549474 A DE 1549474A DE 1549474 A DE1549474 A DE 1549474A DE 1549474 C3 DE1549474 C3 DE 1549474C3
Authority
DE
Germany
Prior art keywords
execution
units
instruction
command
identifier
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
DE1549474A
Other languages
English (en)
Other versions
DE1549474B2 (de
DE1549474A1 (de
Inventor
David Wendell Anderson
Don Michael Powers
Robert Marco Staatsburg Tomasulo
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 DE1549474A1 publication Critical patent/DE1549474A1/de
Publication of DE1549474B2 publication Critical patent/DE1549474B2/de
Application granted granted Critical
Publication of DE1549474C3 publication Critical patent/DE1549474C3/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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency
    • 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/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering of instructions, e.g. using queues or age tags

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

jede Klasse von Instruktionen ihren eigenen Satz struktionsfolgen zu steuern. Hierdurch wird folgen-
von Akkumulatoren. Diese Tatsache ermöglicht die des erreicht:
Unabhängigkeit zwischen getrennten Klassen von
Instruktionsfolgen, wie beispielsweise Festkomma 1. Parallele Ausführung innerhalb sequentieller
und Gleitkomma. Innerhalb einer einzelnen Klasse 5 Instruktionen.
ist nur ein Satz von Akkumulatoren vorhanden, 2. Nicht sequentielle Ausführung innerhalb von
welcher programmspezifizierte Folgen als unabhän- Instruktionen, die keine Dringlichkeitsbeziehun-
gige Operationen mit einschließt. gen aufweisen.
Für eine Anordnung in einer elektronischen digi- 3. Eine Unempfindlichkeit des Datenverarbeitungstalen Datenverarbeitungsanlage zur Ausführung eines io systems gegenüber Programmvariationen in den ersten Befehls und gleichzeitigen Decodierung eines Instruktionsfolgen,
folgenden Befehls besteht die Erfindung darin, daß :
zur Qperandenverarbeitung im Zuge der Ausführung Zusammen mit dem Kennzeichnungssystem verdes ersten Befehls über ein gemeinsames Sammel- wendet die Einrichtung ein System von Reservieleitungssystem eine Befehlsquelle, Ausführungs- 15 rungseinheiten RU, welche die Durchführung von einheiten für die Operandenverarbeitung und Arbeits- Wartezeiten für Operanden ermöglichen, die vom register für die Speicherung von Operanden mitein- Hauptspeicher oder von einer Ausführungseinheit, ander verbunden sind, daß ferner ein Kennungs- entsprechend der Vervollständigung einer Ausfühgenerator vorgesehen ist, der die für die Ausführung rung von früheren Instruktionen, erwartet werden, eines Befehls gemäß den Angaben in diesem Befehl ao Während dieser Wartezeiten wird die Decodierung zusammengehörige Ausführungseinheit und das Ar- und teilweise Ausführung nachfolgender Instrukbeitsregister bzw. bei deren NichtVerfügbarkeit funk- tionen ohne ihre zugehörigen Operanden ermöglicht, tionsgleiche Einheiten auswählt, indem er für jeden Das Ausführungsbeispiel der Erfindung enthält Befehl die jeweilige Kennung der ausgewählten Ein- auch eine neue Technik für die Unterbrechung von heiten auf die Sammelleitung eingibt, über welche 25 Dringlichkeitsbeziehungen in einer Folge von Indiese Kennungen zu den einzelnen Einheiten über- struktionen, die zusätzlich zu der bekannten Techtragen und dort gespeichert werden, so daß durch nik der Unterbrechung einer Dringlichkeitsbeziehung dauernden Vergleich der Kennungen der genannten durch Programmierung des Instruktionsstromes verEinheiten mit den Kennungen auf der Sammel- wendet wird, um ein anderes Arbeitsregister als leitung bei Übereinstimmung der Kennungen die 30 Verbraucher von Instruktionen anzusteuern. Die Übertragung der Operanden von oder zu den ge- neue Technik bewirkt, daß eine beliebige Ladenannten Einheiten ausgelöst wird. Instruktion eine Dringlichkeitsbeziehung unterbricht,
Vorteilhafte Ausgestaltungen und Weiterbildungen selbst dann, wenn die Ladeinstruktion das gleiche
der Erfindung sind den Unteransprüchen zu ent- Verbraucherregister betrifft,
nehmen. 35 Dieses ist deshalb möglich, weil Kennzeichen-
Die Vorteile der Erfindung liegen darin, die Aus- Übertragungen die Ausführung aufeinanderfolgender
führung einer Instruktionsfolge in einem beliebigen Instruktionen ermöglichen, die sich auf das gleiche
Computer zu beschleunigen, welcher Mehrfachaus- Arbeitsregister beziehen. Ferner ermöglichen sie die
führungseinheiten und einen oder mehrere Akku- Umgehung nicht verfügbarer Arbeitsregister und ver-
mulatoren (per Programm adressierbare Arbeits- 40 wenden an deren Stelle ein mit Kennzeichen ver-
register) besitzt. Dadurch können Gleitkomma- sehenes Ersatzregister. Ferner wird außer der De-
instruktionen kontinuierlich mit der Geschwindigkeit Codierungszeit keine Ausführungszeit benötigt, wenn
von einer Instruktion je Maschinenzyklus decodiert Ladeinstruktionen in der Einrichtung ausgeführt
werden. werden.
Im folgenden wird ein Ausführungsbeispiel der 45 Die Einrichtung zur Befehlsverarbeitung ist in Erfindung an Hand der Zeichnungen näher beschrie- Fig. 1 dargestellt. Diese Figur zeigt ein Ausführungsben. Es zeigt system, welches mit einer gemeinsamen Daten-
F i g. 1 ein vereinfachtes Blockschaltbild einer Sammelleitung ausgerüstet ist. Die F i g. 2 und 3 zei-
Datenverarbeitungsanlage, in der die Erfindung gen Schaltungsvarianten dieses Systems. Die in Ma-
verwendet wird, 50 schinensprache codierten Instruktionen für fast alle
Fig. 2 und 3 Systemvarianten der Einrichtung mittleren und großen Datenverarbeitungssysteme ge-
nachFig. 1, ben ein Arbeitsregister an, in welches Operanden-
F ig. 4 eine schematische Darstellung der Eingänge und Instruktionsergebnisse übertragen werden,
des Systems der gemeinsamen Datensammelleitung Diese Arbeitsregister sind in F i g. 1 mit Rs und in
und 55 den F i g. 2 und 3 mit FLR bezeichnet. Die Kenn-
Fig. 5 eine schematische Darstellung der zeit- Zeichnungsschaltungen, welche in dem System mit
liehen Bedingungen für die Übertragung des Sammel- der gemeinsamen Datensammelleitung (CDB) ver-
leitungskennzeichens. wendet werden, bewirken, daß ein spezifiziertes Arbeitsregister für das Programm »verfügbar« erscheint,
Allgemeine Beschreibung 6° selbst dann, wenn es in Wirklichkeit nicht verfügbar ist. Die Bezeichnungen »nicht verfügbar« und
Ein Ausführungsbeispiel der Erfindung enthält »verfügbar« definieren das Vorhandensein oder
für die Übertragung von Daten aus dem Haupt- NichtVorhandensein eines Operanden in dem Re-
speicher zu den Operations-Ausführungseinheiten gister zu derjenigen Zeit, zu der die laufende In-
und für die entgegengesetzte Übertragungsrichtung 6g struktion in der Verarbeitungseinheit decodiert wird,
eine gemeinsame Datensammelleitung CDB, wobei Ein »nicht verfügbares« Register erwartet einen zu-
ein spezielles Kennzeichnungsschema verwendet künftigen Operanden, welcher zu ihm zu einer spä-
wird, um Dringlichkeitsprobleme innerhalb der In- teren Zeit übertragen wird, obwohl in der Einrich-
5 6
tung dieses Registers den zukünftigen Operanden nie- übertragen, aber nicht geändert. Mit anderen Worten,
mais empfangen kann. das Kennzeichen in einem besetzten Arbeitsregister
Der in F i g. 1 mit / bezeichnete Block soll eine ist die Adresse der letzten Verarbeitungseinheit,
Quelle darstellen, die Instruktionsfolgen an verschie- welche ihr Ergebnis in dieses Register übertragen
dene Ausführungseinheiten U1 bis Un liefert, deren 5 will.
Ergebnisse in besonders angegebene Speicher- Jede Ausführungseinheit fordert nach Vervollstänelemente, wie beispielsweise die Arbeitsregister Rs, digung einer Operation einen Abschnitt auf der ge- oder in den Hauptspeicher der Anlage eingespeichert meinsamen Datensammelleitung an. Wenn einer Auswerden sollen. Die Ausführungseinheiten können führungseinheit ein solcher Abschnitt zugeteilt worden jede Untergruppe von Befehlen bearbeiten, d. h., daß ίο ist, dann überträgt sie ihr Ergebnis auf diese Sammelbeispielsweise U1 nur Additionen und beispielsweise leitung. Ferner überträgt sie über Steuerleitungen ihre Un nur Multiplizier- oder Dividieroperationen aus- eigene Adresse zu allen anderen Ausführungseinheiten führen kann. Darüber hinaus müssen die Ausfüh- und zu dem Arbeitsregister Rs, zu welchem ihr Errungseinheiten auch in der Lage sein, alle erforder- gebnis übertragen wird. Alle Ausführungseinheiten, liehen Operanden für eine gewisse Zeit festzuhalten. 15 die auf Operanden warten, vergleichen dieses Für die Übertragung ihrer Ergebnisse verwenden die Sammelleitungskennzeichen mit den Kennzeichen Ausführungseinheiten eine gemeinsame Daten- ihrer erwarteten Operanden. Bei der Übereinstimsammelleitung, welche zu allen Arbeitsregistern Rs mung des Kennzeichens einer Ausführungseinheit mit und zu allen Ausführungseinheiten U1 bis Un führt. dem Sammelleitungskennzeichen, wird die Informa-Das System enthält ferner Pufferspeicher, welche ao tion auf der gemeinsamen Datensammelleitung auf Daten aus dem Hauptspeicher (Puffer L) zwischen- diese Verarbeitungseinheit durchgeschaltet. Eine Verspeichert oder Daten zwischenspeichert (Puffer 5), arbeitungseinheit beginnt daher nur mit der Ausfühwelche in dem Hauptspeicher gespeichert werden rung, wenn sie alle benötigten Operanden empsollen. Jede Verarbeitungseinheit erfordert, je nach fangen hat.
Verwendungszweck, einen oder mehrere Operanden 25 Lade- und Speichereinheiten zeigen ein unterum ihre Funktion auszuführen. Die Operanden schiedliches Verhalten. Eine Ladeeinheit entnimmt werden entweder von einem Arbeitsregister Rs, dem niemals Daten von der Sammelleitung, und eine Hauptspeicher, den Puffern oder von allen diesen Speichereinheit überträgt niemals Daten auf diese übertragen. Für eine erleichterte Erklärung soll im Sammelleitung. Andererseits empfangen die Speicherfolgenden angenommen werden, daß für alle Opera- 30 einheiten Kennzeichen, wohingegen die Ladeeinheiten tionen, mit Ausnahme der Lade- und Speicher- dieses nicht tun. Die gemeinsame Datensammeloperationen alle Operanden (Datenursprung) von leitung CDB führt sowohl zu den Arbeitsregistern einem angegebenen Arbeitsregister Rs kommen und Rs als auch zu den Ausführungseinheiten U1 bis Un. daß alle Ergebnisse (Verbraucher) zu einem an- Wenn das Sammelleitungskennzeichen mit dem gegebenen Arbeitsregister Rs übertragen werden. Für 35 Kennzeichen des Arbeitsregisters Rs, welches sich Ladeoperationen wird ein einzelner Operand in nun auf der Datensammelleitung befindet, übereiner Ladeeinheit (beispielsweise in einem Speicher) einstimmt (d. h., der Abnehmer der Ausführungsin ein Arbeitsregister Rs übertragen. Für Speicher- einheit ist nun an die Datensammelleitung angeoperationen wird der Inhalt eines einzelnen Arbeits- schlossen), dann wird das Arbeitsregister Rs in den registers in einen Zwischenspeicher übertragen, von 40 Nichtbelegt-Zustand geschaltet, und sein Inhalt wird wo es dann weiter zum Hauptspeicher übertragen ebenfalls auf die Datensammelleitung gegeben. Es wird. ist hierbei zu beachten, daß es nur notwendig ist,
Wennn die Instruktionsquelle / auf eine Instruktion den Inhalt des Arbeitsregisters Rs zu verändern, trifft, dann prüft sie, ob eine Ausführungseinheit zur wenn die Ausführung in der letzten Ausführungs-Durchführung dieser bestimmten Instruktion verfüg- '45 einheit beendet ist. Alle Ausführungseinheiten, die bar ist. Sie bestimmt ferner, ob die erforderlichen sich zwischen der ersten und letzten befinden, emp-Arbeitsregister Rs belegt sind oder nicht. Unter der fangen die korrekten Daten von dem Arbeitsregister Annahme, daß alle Einheiten verfügbar sind, wird Rs über die gemeinsame Datensammelleitung CDB. der Inhalt der Arbeitsregister zu der ausgewählten Nimmt man nun an, daß die Einheit / eine Lade-Ausführungseinheit übertragen, welche daraufhin 50 Instruktion für ein als belegt gekennzeichnetes Armit der Ausführung der Instruktion beginnt. Das- beitsregister feststellt, dann geht aus der vorhergehenjenige Arbeitsregister Rs, welches das Ergebnis dieser den Erläuterung hervor, daß zu der Ladeeinheit das Operation empfängt, wird als belegt gekennzeichnet Kennzeichen des Arbeitsregisters Rs übertragen wird und sein Kennzeichen so eingestellt, daß es der und daß das Kennzeichen entsprechend der Adresse Adresse der Ausführungseinheit entspricht, die dieses 55 der Ladeeinheit verändert wird. Daher wird das Ergebnis ermittelt. Laden zu einer Folge. Diese Folge ist aber unnötig. Es sei nun angenommen, daß die nächste Instruk- Zur Vermeidung einer Folge muß nur das Kennzeichen tion, die von der Einheit / festgestellt wird, als ihren verändert werden. Ladeeinheiten haben deshalb Abnehmer das Arbeitsregister Rs einer früheren In- auch keine Wartezeiten. Ausgenommen sind Wartestruktion verwendet, die noch nicht vollständig aus- 60 zeiten auf die Speicherzuteilung für die Ausführung geführt ist. An Stelle einer Übertragung der Daten der Operation.
des Rs wird das Kennzeichen des Arbeitsregisters Rs Zusammenfassend kann festgestellt werden, daß übertragen und anschließend dieses Kennzeichen ge- die Instruktionsquelle / oder der Ursprung der Inändert. Das Kennzeichen entspricht dann der Adresse struktionen eine Ausführungseinheit für die Durchderjenigen Ausführungseinheit, welche diese Instruk- 65 führung der Operation auswählt. Sie überträgt zu tion ausführt. Wenn die laufende Instruktion ein be- der ausgewählten Ausführungseinheit entweder den setztes Arbeitsregister Rs als Ursprung verwendet, Inhalt des gewünschten Arbeitsregisters Rs, wenn dann wird das Kennzeichen, wie in dem Falle zuvor, dieses nicht besetzt ist, oder dessen Kennzeichen,
7 8
wenn das gewünschte Arbeitsregister besetzt ist. Es vierungseinheit, welcher von jeder Instruktion geschaltet ferner das abnehmende Arbeitsregister Rs in fordert wird, zur Verfügung steht. Durch einen geden Belegtzustand und stellt das Kennzeichen auf eigneten Ausgleich zwischen den Zahlen von Reserdie Adresse der ausgewählten Ausführungseinheit U1 vierungseinheiten, Ausführungseinheiten und Ausfühein. Die Ausführungseinheiten Uit welche Kenn- 5 rungszeit können Unterbrechungen wegen der Nichtzeichen erwarten, tasten die Sammelleitungskenn- Verfügbarkeit einer Reservierungseinheit vermieden zeichen ab und prüfen sie auf Übereinstimmung mit werden. Eine Instruktion kann je Maschinenzyklus dem in ihnen gespeicherten Kennzeichen. Wenn es kontinuierlich decodiert werden. Die Instruktionen sich um eine Ladeoperation handelt, erübrigt sich das können ferner parallel mit der Decodierung der fol-Warten. Das Arbeitsregister Rs wird nur von der io genden Instruktionen ausgeführt werden. Dadurch letzten Ausführungszeit (angepaßtes Kennzeichen) in ergibt sich dann die Geschwindigkeitsverbesserung, einer Folge auf den neuesten Stand gebracht und in Die gemeinsame Datensammelleitung CDB empden Nichtbelegt-Zustand eingestellt. fängt Eingangssignale von allen Registern und Ein-
. ,.., ,. , τ, , ., heiten, die den Inhalt eines Arbeitsregisters Rs oder
AusfuhrhcheBeschreibung 1$ FLR ;erändern können. Die in den %ig2 und 3
Die Belegtanzeige eines jeden Arbeitsregisters be- dargestellten Eingänge der gemeinsamen Datenstimmt, ob der Dateninhalt des Registers verfügbar Sammelleitung sind in Fig. 4 als Einheiten darist oder ob das Kennzeichenfeld des Registers den gestellt, die auf die gemeinsame Datensammelleitung Ursprung eines zukünftigen Operanden angibt. Im arbeiten.
letzteren Falle ist das Arbeitsregister der Verbraucher 20 Die Ausgänge der Datensammelleitung (Einheiten
einer Instruktion, welche dieses Register bezeichnet die Signale von der Datensammelleitung abnehmen)
und welche dieses Arbeitsregister mit einem Er- betreffen jedes Register, welches Daten von einem
gebnis beliefert. Arbeitsregister empfangen kann.
In der Einrichtung nach Fig. 1 wird die gemein- Die Ausgänge der DatensammelleitungCDB entsame Datensammelleitung (CDB) 196 für die Über- 25 halten die Verbraucher- und Ursprungsregister in tragung aller Operanden verwendet. Zu diesen Ope- allen Reservierungseinheiten, die Speicherdatenpuffer randen zählen die verfügbaren und die bezüglich des SDB und die Arbeitsregister. Mit Hilfe dieser Struktur Decodierungszeitpunktes jeder Instruktion zukünf- liefert die gemeinsame Datensammelleitung direkt tigen Operanden. In den Systemvarianten nach das Resultat der Ausführung jeder Instruktion an F i g. 2 und 3 wird die gemeinsame Datensammel- 30 alle angeschlossenen Empfangsregister. Die Kennleitung 196 dagegen nur für die Übertragung zukünf- zeicheneinstellungen in den entsprechenden Registern tiger Operanden verwendet. Eine spezielle FLR- bestimmen, welches Register Datensendungen auf der Sammelleitung 551 dient aber zur Übertragung der gemeinsamen Datensammelleitung empfängt. Die verfügbaren Operanden. Eine weitere spezielle Datensammelleitung stellt auch einen direkten VerSammelleitung FLB199 dient zur Übertragung von 35 bindungsweg von den Speicherpuffern L oder FLB Speicheroperanden (das sind Operanden, die von den zu den Arbeitsregistern Rs oder FLR und zu allen FLB-Pufferspeichern 185 vom Hauptspeicher emp- Einheiten dar, die einen Operanden von einem Arfangen werden), beitsregister ableiten können, so daß ein Register
Wenn die Ausführungszeit in einer Ausführungs- nach Speicher (i?X-)Ladeinstruktion ausgeführt wer-
einheit U1 (F i g. 1) mindestens zweimal so groß ist 40 den kann, ohne daß eine Ausführungseinheit dazu
wie die Decodierungszeit für jede Instruktion, dann notwendig wäre. In gleicher Weise stellt auch die
ermöglicht die Erfindung eine Verbesserung des Wir- Datensammelleitung einen direkten Verbindungsweg
kungsgrades der Schaltungen durch einen Anschluß von den Datenregistern und von allen Einheiten, die
von mehr als einer Reservierungseinheit RU1 für jede einen Operanden für ein Arbeitsregister bereitstellen
Ausführungseinheit AD oder MID (F i g. 3). Die 45 können, zu den Speicherdatenpuffern 5 oder SBB dar,
Kontinuität der Instruktionsdecodierung hängt nur so daß eine Speicherinstruktion durchgeführt werden
von der Verfügbarkeit einer bestimmten Reser- kann, ohne daß eine Ausführungseinheit dazu not-
vierungseinheit und nicht von der Verfügbarkeit einer wendig wäre.
bestimmten Verarbeitungseinheit ab. Die Reser- Einige der Steuerkreise, die für den Betrieb der vierungseinheiten müssen nicht mit einer speziellen 50 Datensammelleitung notwendig sind, umfassen ein Verarbeitungseinheit verbunden sein. In diesem Falle Kennzeichenzuteilungssystem, welches die die Versind allerdings zusätzliche Auswahlschaltungen, die bindungswegsteuerung der Operanden und Ergebnicht dargestellt sind, notwendig, um die ausgewählte nisse unterhalb der Arbeitsregister, der Reservierungs-Reservierungseinheit mit einer ausgewählten Aus- einheiten, der Ausführungseinheiten, der Speicherführungseinheit zu verbinden. In logischer Hinsicht 55 datenpuffer- und Datenpuffer vornehmen. Die Verkönnten in Fig. 3 alle fünf Reservierungseinheiten bindungswegsteuerung für einen bestimmten Ope- RU1 bis RU5 mit der Addierschaltung AD und der randen oder ein bestimmtes Ausführungsergebnis Multiplizier-Dividierschaltung MID verbunden sein. kann mehrmals in der Zeitspanne, die sich von der Die Anordnung in F i g. 3 ist jedoch so dargestellt, Zeit erstreckt, zu der der Operand oder das Ergebnis daß alle drei Reservierungseinheiten RU1 bis RU3 60 durch Decodierung seiner Instruktion angefordert ist, starr mit der Addierschaltung AD und die beiden bis zu der Zeit, zu der das Resultat oder der Operand Reservierungseinheiten RU4 und RU5 mit der Multi- verfügbar ist geändert werden.
pIizier-/Dividierschaltung MID verbunden sind. Bei In jeder der dargestellten Ausführungsformen werder Einrichtung nach der Erfindung kann jede Reser- den Kennzeichen für jede Instruktion am Anfang des vierungseinheit so behandelt werden, als wenn sie 65 Decodierungszyklus zugeteilt In Fig. 2 überträgt selbst die Ausführungseinheit wäre, für welche sie eine Decoder-Kennzeichenzuteilungs-Sammelleitung ausgewählt ist. Der Decoder decodiert sequentielle DTAB die Kennzeichenzuteilungen zu den Kenninstruktionen so lange, bis der Typ von Reser- Zeichenregistern in FLR, R U und SDB.
Jede Eingangseinheit der gemeinsamen Datensammelleitung hat eine nur für sie repräsentative Kennung. Jede Ausgangseinheit dieser gemeinsamen Datensammelleitung ist mit einem Kennzeichenregister versehen, welches derartige codierte Kennungen speichern kann.
Die grundlegende Arbeitsweise der Einrichtung nach F i g. 1 wird im folgenden kurz erläutert: Bei der Decodierung jeder Instruktion prüft ein nicht dargestellter Decoder den Besetzungszustand jedes angegebenen Arbeitsregisters Rs. Wenn das Arbeitsregister nicht besetzt ist, dann wird sein Inhalt als gültig angesehen und kann dann über die gemeinsame Datensammelleitung CDS zu der entsprechenden Reservierungseinheit, zu dem Speicherdatenpuffer oder einem anderen Arbeitsregister Rs übertragen werden. Zu welchem dieser genannten Abnehmer der Inhalt dieses Arbeitsregisters nun übertragen wird, hängt von den Ausführungserfordernissen einer bestimmten Instruktion ab.
Die Einrichtung nach F i g. 1 erlaubt einem spezifizierten Arbeitsregister Rs die Benutzung, je nachdem, ob es verfügbar ist oder nicht. Der Decoder verändert das Kennzeichen des durch die Instruktion spezifizierten Arbeitsregisters entsprechend der codierten Kennung der ausgewählten Ausführungseinheit, wenn die Instruktion eine Ausführungseinheit benötigt. Auf diese Weise bestimmt das letzte Kennzeichen in einem Arbeitsregister die letzte Ausführungseinheit, die später dann das Resultat (RES1... RESn) ihrer Ausführung über die gemeinsame Datensammelleitung CDB zu diesem Arbeitsregister überträgt.
Das Kennzeichen eines beliebigen Arbeitsregisters (Rs oder FLR), welches durch irgendeine Instruktion angegeben wird, bleibt hierbei unverändert. Das System der gemeinsamen Datensammelleitung gestattet jeder seiner Eingangseinheiten, die einen Operanden zur Verfügung (oder nahezu zur Verfügung hat) die Übertragung ihrer Kennung auf die gemeinsame Datensammelleitung. Eine über die gemeinsame Datensammelleitung übertragene Kennung wird als Sammelleitungskennung bezeichnet. Alle Ausgangseinheiten der gemeinsamen Datensammelleitung werden in den Besetztzustand eingestellt, um auf diese Weise anzuzeigen, daß sie auf einen Operanden warten. Sie vergleichen dabei jedes ausgesendete Sammelleitungskennzeichen mit dem in ihnen selbst gespeicherten Kennzeichen, wobei sie eine Vergleichsschaltung verwenden. Das Ausgangssignal im Falle der Gleichheit beider Kennzeichen in jeder Ausgangseinheit der gemeinsamen Datensammelleitung öffnet die Eingangstore zum Empfang der Daten, die unmittelbar nach der Aussendung der Sammelleitungskennung über die gemeinsame Datensammelleitung übertragen werden. Auf diese Weise wird erreicht, daß nur diejenigen Ausgangseinheiten, die übertragenen Daten empfangen, die diese anfordern. F i g. 5 zeigt die Zeitgabe für die Übertragung des Sammelleitungskennzeichens und der Daten auf der gemeinsamen Datensammelleitung CDB.
Da die Eingangseinheiten der gemeinsamen Datensammelleitung asynchron arbeiten, d. h. asynchron bezüglich der Zeit, zu der sie ein Sammelleitungskennzeichen erzeugen, als Folge eines bereits fertig in ihnen vorhandenen Operanden, ist für die gemeinsame Datensammelleitung CDB eine Prioritätsschaltung (nicht dargestellt) vorgesehen, welche von gleichseitig signalisierenden Eingangseinheiten diejenige bestimmt, welche als nächste ihr Sammelleitungskennzeichen und ihre Daten auf die Datensammelleitung übertragen darf. Der Prioritätsrang für die Eingangseinheiten der Datensammelleitung nach Fig. 3 ist in Fig. 4 dargestellt. Die Anforderung für eine Priorität kann abgegeben werden, bevor die Daten für die Übertragung zur Verfügung stehen, sie muß aber spätestens während des Zyklus für die ίο Datenübertragung verfugbar sein.
Wenn die Decodierung einer beliebigen Instruktion (einschließlich arithmetischer Instruktionen) erfordert:
1. eine Ausführungseinheit und
2. ein nicht verfügbares Arbeitsregister als Abnehmer,
dann wird das alte Kennzeichen dieses bestimmten Arbeitsregisters als Abnehmer zu den Aufnehmerkennzeichenregistern der Reservierungseinheit in allen nicht besetzten Reservierungseinheiten RU übertragen an Stelle des Dateninhalts dieses Arbeitsregisters. Eine von diesen Reservierungseinheiten wird durch die Einschaltung ihres Besetztschalters ausgewählt.
as Daraufhin vergleichen alle belegten Reservierungseinheiten kontinuierlich ihre jeweiligen Kennzeichen mit jedem ausgesendeten Sammelleitungskennzeichen auf der gemeinsamen Datensammelleitung. Wenn von einem Vergleicher einer beliebigen Reservierungseinheit eine Übereinstimmung festgestellt wird, dann wird das betreffende Register der Reservierungseinheit auf die gemeinsame Datensammelleitung CDS geschaltet. Eine Ausführungseinheit kann dann mit der Ausführung beginnen, nachdem eine Reservierungseinheit diese anzeigt, daß alle Operanden, die durch den Operationscode gefordert werden, von dieser Reservierungseinheit empfangen wurden. Durch diese Übertragungsweise der Abnehmerkennzeichen werden alle Instruktionen, die versuchen, das gleiche Arbeitsregister zu verwenden, in eine korrekte Folge eingereiht, wohingegen andere Instruktionen in der Instruktionsfolge, die dieses Register Rs nicht benötigen, unabhängig und außerhalb einer sequentiellen Reihenfolge ausgeführt.
Für die korrekte Folgebehändlung von Register nach Speicher-(i?AT-)Speicher und -Ladeinstruktionen wird eine andere Technik verwendet. Während der Decodierung einer i?X-Speicherinstruktion wird das Kennzeichen des spezifizierten Arbeitsregisters nicht auf den neuesten Stand gebracht, während ein nichtbelegter Speicher-Datenpuffer SDP ausgewählt wird, damit sein Kennzeichen auf das existierende Kennzeichen des spezifizierten Arbeitsregisters eingestellt wird. Der SDP schaltet daraufhin seine Daten von der gemeinsamen Datensammelleitung zu der entsprechenden Zeit ab.
Die Decodierung einer Speicher nach Register-(i?Z-) Ladeinstruktion stellt das Kennzeichen des spezifizierten Arbeitsregisters so ein, daß es der codierten Kennung des Speicherpuffers (L oder FLB) entspricht. Diese Kennung wird zugeteilt, um die Operanden von dem Hauptspeicher zu empfangen.
Die Decodierung einer Register nach Register-(i?i?-) Ladeinstruktion setzt das Kennzeichen des spezifizierten Arbeitsregisters so, daß dieses repräsentativ für das angegebene Ursprungs-Arbeitsregister ist, wenn der Operand in diesem Ursprungs-Arbeitsregister nicht verfügbar ist.
Hierzu 4 Blatt Zeichnungen

Claims (3)

1 2 Bei großen Datenverarbeitungsanlagen besteht Patentansprüche: ganz allgemein die Notwendigkeit, die Durchführung arithmetischer Operationen zu beschleunigen,
1. Anordnung in einer elektronischen digitalen speziell jedoch Gleitkommaoperationen. Dieses ist Datenverarbeitungsanlage zur Ausführung eines 5 besonders angebracht, nachdem die Instruktionsersten Befehls und gleichzeitigen Decodierung einheit nach dem Auffüllen mit Instruktionen in der eines folgenden Befehls, dadurch gekenn- Lage ist, mit etwa einer Instruktion pro Zyklus zu zeichnet, daß zur Operandenverarbeitung im arbeiten und nachdem die Speicherzugriffszeit in beZuge der Ausführung des ersten Befehls über friedigender Weise durch den bekannten Stand der ein gemeinsames Sammelleitungssystem (CDB; io Technik mittels Pufferung und Überlappungsbetrieb Fig. 1) eine Befehlsquelle (I), Ausführungs- herabgedrückt wurde. Zwei weitere Probleme sind einheiten (CZ1... Un) für die Operandenverarbei- bei dem Versuch, eine Balance zu erzielen, zwischen tung und Arbeitsregister (Rs) für die Speiche- der Ausführung und der Ausgabe von Instruktionen rung von Operanden miteinander verbunden für die Ausführung zu beachten.
sind, daß ferner ein Kennungsgenerator vor- 15 Das erste Problem betrifft die Tatsache, daß indi-
gesehen ist, der die für die Ausführung eines viduelle Operationen nicht schnell genug sind, um
Befehls gemäß den Angaben in diesem Befehl einfache seriale Ausführung in den gegenwärtigen
zusammengehörige Ausführungseinheit und das Hochgeschwindigkeits-Allzweck-Digitalrechnern zu
Arbeitsregister bzw. bei deren NichtVerfügbarkeit gestatten.
funktionsgleiche Einheiten auswählt, indem er ao Das zweite Problem besteht darin, daß es un-
für jeden Befehl die jeweilige Kennung der aus- möglich ist, die schnellsten Ausführungszeiten zu
gewählten Einheiten auf die Sammelleitung ein- erzielen, wenn eine universelle Ausführungseinheit
gibt, über welche diese Kennungen zu den ein- verwendet wird.
zelnen Einheiten übertragen und dort gespeichert Dieses bedeutet mit anderen Worten, daß eine
werden, so daß durch dauernden Vergleich der 35 Schaltkreistechnik, die so ausgelegt ist, daß sie so-
Kennungen der genannten Einheiten mit den wohl Multiplikation als auch Addition ausführen
Kennungen auf der Sammelleitung bei Überein- kann, nicht so schnell zu arbeiten vermag als zwei
Stimmung der Kennungen die Übertragung der Einheiten, von denen jede nur die eine Art der
Operanden von oder zu den genannten Einheiten Instruktion ausführen kann,
ausgelöst wird. , 30 Ein erster Schritt zur Umgehung dieser Schwierig-
2. Anordnung nach Anspruch 1, dadurch ge- keiten kann darin bestehen, die Ausführungsfunkkennzeichnet, daß die Befehlsquelle (/; F i g. 1) tion in zwei unabhängige Teile zu trennen, wie beizur Ausführungseinheit (U1... Un), wenn das spielsweise in einen Festkommaausführungsteil und ausgewählte Arbeitsregister (Rs) als besetzt ge- in einen Gleitkommaausführungsteil. Während diese kennzeichnet ist, wodurch angegeben wird, daß 35 Trennung eine gleichzeitige Ausführung zwischen der für die Befehlsausführung erforderliche Ope- diesen beiden Typen von Instruktionen ermöglicht, rand noch nicht in diesem Arbeitsregister ver- muß ein anderer Umstand in Betracht gezogen fügbar ist, nicht dessen Inhalt, sondern dessen werden.
Kennung überträgt und daß sie ferner das das Um einen Zuwachs an Verarbeitungsgeschwindig-Resultat (RES1 ... RESn) aufnehmende Arbeits- 40 keiten zu erreichen, muß das Programm eine innige register mit einem Belegtkennzeichen versieht Mischung von Festkomma- und Gleitkommainstruk- und seine Kennung auf die Kennung der züge- tionen enthalten. Es ist offensichtlich für den Proordneten Ausführungseinheit einstellt. ' grammierer nicht immer leicht, das Programm in
3. Anordnung nach Anspruch 1 und/oder 2, dieser Weise einzurichten, und viele der Programme, dadurch gekennzeichnet, daß zur unterbrechungs- 45 die für den Benutzer von größtem Interesse sind, freien Befehlsverarbeitung den Ausführungs- bestehen vielfach vollständig aus Gleitkommainstrukeinheiten (CZ1 ...Un; Fig. 1) Reservierungs- tionen. Es ergibt sich hieraus die Aufgabe der Ereinheiten (RU1 ...RUn) zugeordnet sind, in findung, eine Methode und die zugehörigen schaldenen die Operanden, die vom Hauptspeicher tungstechnischen Anordnungen anzugeben, bei denen oder einer Ausführungseinheit für die Vervoll- 50 aufeinanderfolgende Befehle simultan verarbeitet ständigung der Ausführung eines früheren Be- werden. Die Aufgabe der Erfindung ist also die vorfehls übertragen werden und in denen die Ken- teilhafte gleichzeitige Ausführung eines ersten Benungen bis zum Freiwerden einer Ausführungs- fehls und die Decodierung eines folgenden Befehls, einheit zwischengespeichert werden, so daß diese in dem in besonders vorteilhafter Weise zwecks Be-Zwischenspeicherung und das Kennzeichnungs- 55 fehlsausführung zusammengehörende Einheiten aussystem eine Prioritätssteuerung zur Verteilung gewählt und die Operanden dazwischen übertragen von Operanden und Ergebnissen über die ge- werden. Es sind hierbei die wesentlichen Beziehunmeinsame Datensammelleitung (CDB) zwischen gen zwischen abhängigen Instruktionen innerhalb den Ausführungseinheiten und Arbeitsregistern einer Folge herzustellen, wobei die größtmögliche bilden. 60 Überlappung in der Ausführung von unabhängigen
Instruktionen in einer Folge ebenfalls ermöglicht
wird.
Mehrfachausführungseinheiten enthalten beispielsweise einen Addierer/Subtrahierer und einen Multi-Die Erfindung betrifft eine Anordnung in einer 65 plizierer/Dividierer. Es könnte erscheinen, daß die elektronischen digitalen Datenverarbeitungsanlage gleichzeitige Operation dieser beiden Einheiten sich zur Ausführung eines ersten Befehls und gleichzeiti- nicht wesentlich unterscheidet von der Festkommagen Decodierung eines folgenden Befehls. Gleitkomma-Überlappung. Im letzteren Falle hat
DE1549474A 1966-09-28 1967-08-04 Anordnung In einer elektronischen digitalen Datenverarbeitungsanlage zur Ausführung eines ersten Befehls und gleichzeitigen Decodierung eines folgenden Befehls Expired DE1549474C3 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US58267566A 1966-09-28 1966-09-28

Publications (3)

Publication Number Publication Date
DE1549474A1 DE1549474A1 (de) 1971-01-21
DE1549474B2 DE1549474B2 (de) 1974-10-24
DE1549474C3 true DE1549474C3 (de) 1975-06-05

Family

ID=24330052

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1549474A Expired DE1549474C3 (de) 1966-09-28 1967-08-04 Anordnung In einer elektronischen digitalen Datenverarbeitungsanlage zur Ausführung eines ersten Befehls und gleichzeitigen Decodierung eines folgenden Befehls

Country Status (4)

Country Link
US (1) US3462744A (de)
DE (1) DE1549474C3 (de)
FR (1) FR1538063A (de)
GB (1) GB1156249A (de)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3699533A (en) * 1970-10-29 1972-10-17 Rca Corp Memory system including buffer memories
US3718912A (en) * 1970-12-22 1973-02-27 Ibm Instruction execution unit
US3938098A (en) * 1973-12-26 1976-02-10 Xerox Corporation Input/output connection arrangement for microprogrammable computer
US4004281A (en) * 1974-10-30 1977-01-18 Motorola, Inc. Microprocessor chip register bus structure
US4218740A (en) * 1974-10-30 1980-08-19 Motorola, Inc. Interface adaptor architecture
US4128880A (en) * 1976-06-30 1978-12-05 Cray Research, Inc. Computer vector register processing
US4339793A (en) * 1976-12-27 1982-07-13 International Business Machines Corporation Function integrated, shared ALU processor apparatus and method
US4305124A (en) * 1978-06-09 1981-12-08 Ncr Corporation Pipelined computer
US4419724A (en) * 1980-04-14 1983-12-06 Sperry Corporation Main bus interface package
EP0085048B1 (de) * 1981-08-12 1988-12-07 International Business Machines Corporation Vorrichtung und verfahren zur ausgedehnten adressierung für direktspeicherungsanordnungen
US4541045A (en) * 1981-09-21 1985-09-10 Racal-Milgo, Inc. Microprocessor architecture employing efficient operand and instruction addressing
US4661900A (en) * 1983-04-25 1987-04-28 Cray Research, Inc. Flexible chaining in vector processor with selective use of vector registers as operand and result registers
US4807115A (en) * 1983-10-07 1989-02-21 Cornell Research Foundation, Inc. Instruction issuing mechanism for processors with multiple functional units
US5142638A (en) * 1989-02-07 1992-08-25 Cray Research, Inc. Apparatus for sharing memory in a multiprocessor system
US5471593A (en) * 1989-12-11 1995-11-28 Branigin; Michael H. Computer processor with an efficient means of executing many instructions simultaneously
US5655096A (en) * 1990-10-12 1997-08-05 Branigin; Michael H. Method and apparatus for dynamic scheduling of instructions to ensure sequentially coherent data in a processor employing out-of-order execution
US5481743A (en) * 1993-09-30 1996-01-02 Apple Computer, Inc. Minimal instruction set computer architecture and multiple instruction issue method
US6643765B1 (en) 1995-08-16 2003-11-04 Microunity Systems Engineering, Inc. Programmable processor with group floating point operations
US20030163643A1 (en) * 2002-02-22 2003-08-28 Riedlinger Reid James Bank conflict determination

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB792707A (en) * 1954-10-22 1958-04-02 Nat Res Dev Electronic digital computers
GB976499A (en) * 1960-03-16 1964-11-25 Nat Res Dev Improvements in or relating to electronic digital computing machines
US3249921A (en) * 1961-12-29 1966-05-03 Ibm Associative memory ordered retrieval
US3292151A (en) * 1962-06-04 1966-12-13 Ibm Memory expansion
US3270324A (en) * 1963-01-07 1966-08-30 Ibm Means of address distribution
US3311887A (en) * 1963-04-12 1967-03-28 Ibm File memory system with key to address transformation apparatus
DE1181461B (de) * 1963-10-08 1964-11-12 Telefunken Patent Adressenaddierwerk einer programm-gesteuerten Rechenmaschine
GB1051786A (de) * 1963-10-23 1900-01-01
US3309677A (en) * 1964-01-02 1967-03-14 Bunker Ramo Automatic information indexing
US3327294A (en) * 1964-03-09 1967-06-20 Gen Precision Inc Flag storage system
US3331056A (en) * 1964-07-15 1967-07-11 Honeywell Inc Variable width addressing arrangement

Also Published As

Publication number Publication date
FR1538063A (fr) 1968-08-30
US3462744A (en) 1969-08-19
DE1549474B2 (de) 1974-10-24
DE1549474A1 (de) 1971-01-21
GB1156249A (en) 1969-06-25

Similar Documents

Publication Publication Date Title
DE1549474C3 (de) Anordnung In einer elektronischen digitalen Datenverarbeitungsanlage zur Ausführung eines ersten Befehls und gleichzeitigen Decodierung eines folgenden Befehls
DE3248215C2 (de)
DE1285220C2 (de) Datenverarbeitungssystem mit mehreren selbstaendigen Recheneinheiten
DE2555963C2 (de) Einrichtung zur Funktionsmodifizierung
DE2714805C2 (de)
DE2030812A1 (de) Modulare Datenrechnersysteme
DE1299145B (de) Schaltungsanordnung zum Steuern von peripheren Ein- und Ausgabegeraeten von Datenverarbeitungssystemen
DE2411963B2 (de) Datenverarbeitungsanlage
DE1549522B1 (de) Datenverarbeitungsanlage mit simultanverarbeitung mehrerer programme mittels mehrerer rechner
DE19983098B4 (de) Mehrfach-Bitanzeige zur Behandlung von Schreib-nach-Schreib-Fehlern und zur Eliminierung von Bypass-Komparatoren
DE2856680C2 (de)
DE1499206C3 (de) Rechenanlage
DE3852432T2 (de) Befehlssteuerungsvorrichtung für ein Computersystem.
DE2745204A1 (de) Mikroprogramm-leitwerk fuer eine datenverarbeitungsanlage
DE2906685A1 (de) Instruktionsdecodierer
DE2704560C2 (de) Datenverarbeitende Anlage mit paralleler Bereitstellung und Ausführung von Maschinenbefehlen
DE1069910B (de) Kommandowerk mit Indexregister
DE2235883B2 (de) Datenverarbeitungseinrichtung
DE2557787A1 (de) Einrichtung und verfahren zum verarbeiten von maschinenbefehlen unterschiedlicher formate in einem mikroprogrammierten datenverarbeitungssystem
DE1762205B2 (de) Schaltungsanordnung fuer ein elektronisch gesteuertes selbstwaehlamt
DE2622140C3 (de) Einrichtung zur Steuerung manueller Operationen
DE1524211A1 (de) Datenverarbeitungsanlage
DE2150292C2 (de) Mikroprogrammgesteuerte Datenverarbeitungsanlage mit überlagerter Ausführung und Entnahme von Befehlen
DE3542436A1 (de) Datenflussprozessorsystem
DE2234192C2 (de) Datenverarbeitungsanlage

Legal Events

Date Code Title Description
C3 Grant after two publication steps (3rd publication)
E77 Valid patent as to the heymanns-index 1977
8339 Ceased/non-payment of the annual fee