DE2704842A1 - Datenverarbeitungssystem - Google Patents
DatenverarbeitungssystemInfo
- Publication number
- DE2704842A1 DE2704842A1 DE19772704842 DE2704842A DE2704842A1 DE 2704842 A1 DE2704842 A1 DE 2704842A1 DE 19772704842 DE19772704842 DE 19772704842 DE 2704842 A DE2704842 A DE 2704842A DE 2704842 A1 DE2704842 A1 DE 2704842A1
- Authority
- DE
- Germany
- Prior art keywords
- register
- sequence
- pipeline
- warning
- registers
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 239000003550 marker Substances 0.000 claims description 2
- 238000011010 flushing procedure Methods 0.000 claims 1
- 239000000872 buffer Substances 0.000 description 14
- 230000000875 corresponding effect Effects 0.000 description 11
- 230000015654 memory Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 101150103187 Reg4 gene Proteins 0.000 description 5
- 101100412401 Rattus norvegicus Reg3a gene Proteins 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 101100120298 Rattus norvegicus Flot1 gene Proteins 0.000 description 2
- 101100412403 Rattus norvegicus Reg3b gene Proteins 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 235000021170 buffet Nutrition 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000010977 jade Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30105—Register structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3863—Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
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)
- Image Processing (AREA)
- Executing Machine-Instructions (AREA)
Description
An das | 2 | D-8400 REGENSBURQ 1 |
Deutsche Patentamt |
GREFLINGER STRASSE 7
Telefon (0941) 54753 |
|
8000 M ü η c h e η |
Telegramm Begpatent Rgb.
Telex β 5709 repat d |
|
Ihr Zeichen
Your Ref.
Your Ref.
Ihre Nachricht Your Letter
Unser Zeichen
Our ReI.
Our ReI.
I/p 8842
Tjp 4. Februar 1977 0^ W/Sch.
INTERNATIONAL COMPUTERS LIMITED, ICLHouse, Putney, London S.W.15,
England
Datenverarbeitungssystem.
Die Erfindung bezieht sich auf Datenverarbeitungssysteme und insbesondere auf eine Registeranordnung zur Verwendung in
ei nem Pipeline-Datenverarbeitungssystem.
Ein Pipeline-Datenverarbeitungssystem ist ein System, das zwei
oder mehr Verarbeitungsstufen in Serie aufweist, die eine "Fipeline" bilden, durch die ein Strom von Instruktionen fließen
kann. Jede Verarbeitungsstufe ist so ausgelegt, daß sie eine
bestimmte Phase einer jeden Instruktion ausführt, und die Ausführung von aufeinanderfolgenden Instruktionen ist überlappt.
Ein solches System kann deshalb eine hohe Verarbeitungsgeschwindigkeit im Vergleich mit herkömmlichen einstufigen Verarbeitungseinrichtungenhaben.
Im allgemeinen besitzt eine Datenverarbeitungseinrichtung eine Anzahl von speziellen Maschinenregistern, z.B. einen Akkumulator,
einen trogrammzähler usw. Es ist erwünscht, daß die Möglichkeit
besteht, Zugang zu diesen Registernbei verschiedenen Phasen einer Instruktion zu haben. In einer im Pipeline-Betrieb
709832/0750
Konten: Bayerische Vereinsbank (BLZ 750 20073) 5 839 300 Postscheck München 89369-801
4.2.1977 W/Sch. -J^- Ι/ρ 8842
H
270A8A2
arbeitenden Verarbeitungsainrichtung gibt dies jedoch Anlaß zu
Schwierigkeiten insoferne, als eine Instruktion den Inhalt eines
bestimmten Registers auf den neuesten Stand bringen soll, während eine vorausgehende Instruktion noch durchgeführt wird und der
ursprüngliche Inhalt des Registers noch auszulesen werden soll. Dieses Problem kann dadurch behoben werden, daß gewährleistet wird,
daß Instruktionen ein Register solange nicht auf den neuesten Stand bringen, bis alle vorausgehenden Instruktionen ihre Zugriffe zu
diesem Register abgeschlossen haben. Dies ist jedoch deshalb nicht zufriedenstellend, weil dadurch Verweilzeiten in der Pipeline
auftreten und damit die Gesamtverarbeitungsgeschwiridigkeit des Systems verringert wird.
Aufgabe vorliegender Erfindung ist es deshalb, eine Registeranordnung
zur Verwendung in einem im Pipeline-Betrieb arbeitenden Verarbeitungssystem vorzusehen, das das vorbeschriebene Verriegelungsproblem
in neuartiger Weise löst.
Gemäß der Erfindung weist eine Registeranordnung zur Verwendung in einem im Pipeline-Betrieb arbeitenden Datenverarbeitungssystem
eine Folge von Registern auf, deren jedes eine Markiervorrichtung besitzt, die anzeigt, ob das Register gültige Informationen
enthält; jedes Register besitzt ferner eine Abgabevorrichtung, die so ausgelegt ist, daß sie den Inhalt des Registers auswählt,
wenn die zugeordnete Markiervorrichtung anzeigt, daß das Register gültige Informationen enthält, im übrigen aber den Inhalt des
ersten nachfolgenden Registers (falls vorhanden) in der Folge auswählt, dessen Markiervorrichtung anzeigt, daß es gültige Informationen
enthält; ferner ist eine Vorrichtung zum Verschieben des Inhalts eines jeden Registers und der Markiervorrichtung in das
nächste Register und die Markiervorrichtung in der Folge (falls vorhanden) vorgesehen.
In weiterer Ausgestaltung der Erfindung weist ein im Pipeline-Betrieb
arbeitendes Datenverarbeitungssystem eine Folge von
709832/0750
4.2.1977 W/Sch. - /" - i/p 8842
Datenverarbeitungseinheiten auf, die so ausgelegt sind, daß sie aufeinanderfolgende Phasen einer Instruktion durchführen, wenn
die Instruktion längs der Folge fließt, und eine Registeranordnung der vorbeschriebenen Art auf, wobei die Verarbeitungseinheiten in der Lage sind, in entsprechende Register einzuschreiben,
und Zugang zu den Ausgangssignalen aus der Abgabevorrichtung der entsprechenden Register besitzen, und wobei die
Verschiebevorrichtung der Registeranordnung so betrieben ist, daß der Inhalt der Register und der Markiervorrichtungen im Takt
mit dem Fluß von Instruktionen verschoben wird. Die Erfindung beseitigt eine Quelle von Verweilzeiten in der Pipeline dadurch,
daß eine getrennte Kopie eines gegebenen Maschinenregisters für jede Stufe der Pipeline vorgesehen wird, so daß jede Instruktion
ihe eigene Kopie auf den neuesten Stand bringen kann, ohne daß auf vorausgehende Instruktionen gewartet werden muß, um alle
Lesezugriffe zum Maschinenrecister zu vervollständigen. Die
Kopien des Registers sind miteinander so verbunden, daß die Registerinhalte durch die Pipeline im Takt mit dem Fluß von Instruktionen
fließen können. Eine Verriegelung wird durch Verwendung der Markiervorrichtungen erzielt, die gewährleisten, daß
immer dann, wenn eine Instruktion ein Maschinenregister auf den neuesten Stand bringt, der auf den neuesten Stand gebrachte Wert
automatisch allen nachfolgenden Instruktionen in der Pipeline zur Verfugung gestellt wird, die nicht selbst das Register auf
den neuesten Stand gebracht haben. Somit hat jede Instruktion den letzten, auf den neuesten Stand gebrachten Wert des Registerinhalts
zur Verfugung, wobei alle Fortschaltungen durch vorausgehende Instruktionen berücksichtigt werden.
Obgleich es einer Instruktion freisteht, ihre Kopie des Registers auf den neuesten Stand zu bringen, ohne daß auf vorausgehende
Instruktionen gewartet wird, um die Lesezugriffe zu vervollständigen, ist es erwünscht, daß eine Instruktion nicht ihre
709832/0750
4.2.1977 W/He - S- I/p 8842
Kopie eine-s Registers verwenden soll, wenn eine vorausgehende Instruktion die Fortschaltung des Registers übernimmt. Dieses
Problem wird dadurch beseitigt, daß eine Folge von Warnvorrichtungen verwendet wird, die entsprechenden Registern zugeordnet
sind, deren Inhalt im Takt mit dem Inhalt der Register und der Markiervorrichtungen verschoben wird, wobei jede Warnvorrichtung
eine Vorrichtung zur Erzeugung eines Warnsignalausganges gleich der ODER-Funktion der Zustände aller nachfolgenden Warnvorrichtungen
der Folge besitzt. Diese Eigenschaft kann verwendet werden, um Warnungen an Instruktionen zu geben, daß eine vorausgehende
Instruktion in der Fipeline das Register fortzuschalten beabsichtigt.
Aufgrund der regelmäßigen Konstruktion der Registeranordnung kann dies auf einfache Weise der Verwendung in einem im Fipeline-Betrieb
arbeitenden System mit einer gewünschten Anzahl von Stufen angepaßt werden, indem Einfachregister der Folge hinzugefügt oder
aus der Folge weggenommen werden. Darüber hinaus macht der regelmäßige, wiederholende Aufbau der Ragisteranordnung die Erfindung
besonders geeignet für die Anwendung in der LSI-Technik (Technik
der integrierten Schaltungen in Massenherstellung).
Nachstehend wird die Erfindung in Verbindung mit der Zeichnung anhand eines Ausführungsbeispieles erläutert. Es zeigen:
Fig. 1 ein Blockschaltbild eines vierstufigen, im Hpeline-Betrieb
arbeitenden Datenverarbeitungssystems nach der Erfindung,
Fig. 2 ein logisches Schaltdiagramm einer Koordinatorschaltung für das System,
Fig. 3 ein Zeitsteuerdiagramm, das die Überlappung der Instruktionsdurchführung
darstellt,
Fig. 4-9 den detaillierten Aufbau der Registeranordnung des
Systems, und
Fig. 10 u. 11 eine mögliche Modifizierung des Systems zur Verringerung
von Welligkeitszeiten in der Registeranordnung.
709832/0750
1. 2.1977 7.'/He - V- I/p 884 2
Nach Fig. 1 weist da." System eine vierstufige Pipeline auf. Jede
Stufe der Pipeline besitzt eine Verarbeitungseinheit PU, jede Verarbeitup.gccinheit
hat ihren eigenen Steuerspeicher CS zum Halten \'ov. Fj kroprogrammen, die die Arbeitsweise steuern.
Die Verarbeitungseinheiten weisen entsprechende Puffereinheiten
DU auf. Jade dieser l'uffereinheiten enthält einen Pufferzum Halten
eiI1 or Maschinenspracheninstruktion, die fortlaufend durch die zugeordnete
Verarbeitungseinheit ausgeführt wird, und andere Puffer
zum Halter, vor Operanden und anderen Steuerinformationen, die sich
auf diese Instruktion beziehen. Jede Iuffereinheit besitzt ferner
einen D^kodierer zum Dekodieren der Instruktion, um Steuersignale zum Einleiten entsprechender Mikroprogrammroutinen in der zugeordneten
Verarbeitungseinheit zu erzeugen.
Die Funktion der ersten Verarbeitungseinheit PUl besteht darin,
die nächste I-iaschinenspracheninstruktion des laufenden Programms
in einen Hauptsreicher 10 abzurufen, die Instruktion in die Puffereinheit
BUl einzuführen und dann eine vorläufige Analyse- der Instruktion vorzunehmen, z.B. die Instruktionsart zu bestimmen.
Ein verhältnismäßig kleiner, jedoch schneller Hilfsspeicher I wirkt als luffer zwischen der Einheit PUl und dem Hauptspeicher .
10. Dieser Hilfsspeicher ist so ausgelegt, daß er Instruktionen
hält, die wahrscheinlich in naher Zukunft erforderlich sind (mit Hilfe einer Art von Vorausschau-Vorgang), so daß die effektive
Zugr if Lrszeit für das Abrufen von Instruktionen verringert
wi r d.
Im allgemeinen schließt jede Maschinenspracheninstruktion eine
spezifizierte Operation zwischen zwei Operationen ein, von denen einer aus einem Rückstellstapel erhalten werden kann, der im
Hauptspeicher 10 definiert ist.
709832/0750
■4.2.1977 V//He - /*- Ι/ρ 8842
Lic zweite Vcrarteitungseinheit tU2 tilget die Adresse des
Stapeloperar.den, wo dies anwendbar ist, und ruft dann diesen
Operanden aus dem Hauptspeicher IC über einer. Hi ] f sspeicher 12
ab und setzt ihn in die ; uffereinheit BU2.
Die Funktion art dritten Verarbeitungseinheit FU3 besteht darin,
die Adresse des anderen (Nicht-Stapel / Operandt·. zu bilden und
diesen Operanden aus dem Heuj. tspeicher mit Hilfe eines HiIfE-speichers
3 3 abzurufen sowie ihn in die Fuffereinheit BU3 einzuführen.
Schließlich führt die vierte Verarbeitungseinheit PlM die spezifizierte
Operation (z.B* Addieren, Subtrahieren usw.) zwischen zwei vorher abgerufenen Operanden in der Puffereinheit BU4 durch.
Das Resultat wird in einen Schreibpuffer 14 eingeführt, von welchem
es in den Hauptspeicher 10 zurückgeschrieben werden kann.
Jede der bisher beschriebenen Vorrichtungen (d.h. die Verarbeitungseinheiten,
die Hilfsspeicher, die Fuffereinheiten und der
Schreibpuffer) ist an sich bekannt, und der Aufbau dieser Teile
stellt nicht Gegenstand vorliegender Erfindung dar, wird somit auch nicht im einzelnen erläutert.
Der Fluß von Instruktionen und Operanden längs der Pipeline
(von links nach rechts in der Zeichnung) wird durch eine Koordinatorschaltung 15 (Fig. 2) gesteuert. Wenn eine der Verarbeitungseinheiten ihre laufende Funktiondurchgeführt hat, erzeugt
sie ein VERSCHIEBE-ANFRAGE-Signal. Die VERSCHIEBE-ANFRAGE-Signale aus den vier Einheiten werden in einem UND-Gatter 16 kombiniert,
dessen Ausgang einer Differenzierschaltung 17 aufgegeben wird,
die ein VERSCHIEBE-Signal erzeugt, wenn der Ausgang des UND-Gatters sich von Null auf Eins ändert. Das VERSCHIEBE-Signal gibt deshalb
an, daß alle vier Einheiten ihre laufenden Funktionen abgeschlossen haben.
709832/0750
4.2.1977 W/He - <- I/p 334?
Das VERSCHIEBE-Signal wird den vier Lufforeinheiten BU1-BU4 aufgegeben,
damit jede Instruktion und die zugeordneten Operanden
(falls vorhanden) um eine Stufe nach rechts in die nächste Stufe der tipeline verschöbet; werden. Die Instruktionen und Operanden, die aus der letzten ίuffeteinheit BU4 verschoben worden sind,
sind verloren (sie sind nun verbraucht), während die erste Puffer einheit BUl leer wird und bereit ist, die nächste Maschinenspracheninstruktion aufzunehmen, die durch die Einheit FUl abgerufen werden soll.
(falls vorhanden) um eine Stufe nach rechts in die nächste Stufe der tipeline verschöbet; werden. Die Instruktionen und Operanden, die aus der letzten ίuffeteinheit BU4 verschoben worden sind,
sind verloren (sie sind nun verbraucht), während die erste Puffer einheit BUl leer wird und bereit ist, die nächste Maschinenspracheninstruktion aufzunehmen, die durch die Einheit FUl abgerufen werden soll.
Der Ausgang der Differenzierschaltung 17 (Fig. 2) wird auch allen
vier Verarbeitungseinheiten als ein VERSCHIEBUNG-VOLLSTÄNDIG-Signal
aufgegeben, damit angezeigt wird, daß die VERSCHIEBE-ANFRAGE-Signale
nun bedient worden sind. Jede Verarbeitungseinheit nimmt deshalb ihre VERSCHIEBE-ANFRAGE wieder zurück und beginnt mit der erneuten
Durchführung ihrer Funktion.
Zusammenfassend ist festzuhalten, daß die Ausführung einer jeden
Maschinenspracheninstruktion in vier Phasen unterteilt ist, die
nacheinander durch die vier Verarbeitungseinheiten ausgeführt
werden, wenn die Instruktion längs der Pipeline fließt. Die Ausführung aufeinanderfolgender Instruktionen ist überlappt,und zu
einem beliebigen Zeitpunkt können bis zu vier Instruktionen in
der Pipeline vorhanden sein. Diese Überlappung der Instruktionsdurchführung ist schematisch in Fig. 3 dargestellt.
Nach Fig. 1 umfaßt jede Instruktion einen Zugang zu einem oder
mehreren von vier einem SpezialZweck dienenden Maschinenregistern: einen Akkumulator (ACC), einen Programmzähler (PC)7 ein Stapelfrontregister (SF) und ein Programmzustandsregister (PSR).
Die Maschinenregister werden durch eine Anordnung von sechzehn
Grundregisterzellen 20 dargestellt und zwar vier für jede Stufe
der Fipeline. Die vier Zellen in jeder Stufe (d.h. eine vertikale Spalte von Zellen nach Fig. 1) enthalten Kopien der vier Maschinenregister und ermöglichen einen Zugriff durch die Verarbeitungseinheit dieser Stufe. Die vier Kopien eines gegebenen Maschinen-
709832/0750
4.2.1977 v;/He - jf - Ι/ρ 8842
registers (einer horizontalen Reihe ve:. Zellen) sind miteinander
in einer Folge verkettet, damit Informationen vcn einer Zelle
zur nächsten, und zwar von links nach rechts in der Zeichnung, verschoben wer Jen können. Diese Verschiebung wird durch die gleichen
VERSCHIEBE-Signale gesteuert, die zum Verschieben tirr Instruktionen
durch die Pipeline verwendet werden. Wenn jede Instruktion
längs der Pipeline fließt, nimmt .sie ihre Kopien der vier Maschinenregister mit sich.
Eine der Grundregisterzellen 20 wird nachstehend im einzelnen
in Verbindung mit Fig. 4 beschrieben. Die Zelle weist ein Regi ster 21 auf, das zweiunddreißig Bits hält. Daten können in das
Register durch einen Zweiweg-Multiplexer 22 von einer von zwei
Quellen eingeschrieben werden: ein Schreibdatenpfad 23 aus der
zugeordneten Verarbeitungseinheit oder einem Datenverschiebe- pfad; diese beiden Pfade sind 32 Bit breit. Das Register 21 hat
ferner einen Ausgangsdatenpfad 25 mit einer Breite von 32 Bits,
und der Pfad 25 ist mit dem Datenverschiebepfad 24 der entspre
chenden Zelle in der nächsten Stufe der Pipeline verbunden.
Die Zelle enthält ferner ein Ein-Bit-Einsteller-Kennzeichen 26.
Das Einsteller-Kennzeichen kann über einen Multiplexer 27 entweder in eine Einsteller-Kennzeichen-Verschiebeleitung 28 oder
aus einer Leitung, die fest verdrahtet ist, eingeschrieben werden, damit eine binäre "Eins" aufgenommen wird. Das Einsteller-Kennzeichen weist auch eine Ausgangsleitung 30 auf, die mit der
Einsteller-Verschiebelieitung 28 der entsprechenden Zelle in der nächsten Stuf e dsr Pipeline verbunden ist.
Die beiden Multiplexer 22, 27 werden durch das VERSCHIEBE-Signal
gesteuert. Bei Fehlen des VERSCHIEBE-Signales wählen beide Multiplexer ihre niedrigeren Eingänge (wie in der Zeichnung gezeigt).
Dann können Daten in das Register 21 von der zugeordneten Ver-
709832/0750
4.2.1977 W/He - #- I/p 8842
arbeLtungseinheit über den Schreibdatenpfad 23 eingeschrieben
werden. Wegen Jos fest verdrahteten "Eiris"-Einganges wird das
Einsteller-Kennzeichen auomatisch gesetzt, wenn in das Register
21 eingeschrieben wird.
Tritt einVERSCHIEBE-Signal auf, wählen die beiden Multiplexer
ihre oberen Eingänge. Dies ermöglicht, daß der Inhalt eines jed-?n
Registers ?1 und seines Einsteller-Kennzeichens nach rechts
in die nächste Stufe der Pipeline verschoben wird.
Die Zelle besitzt ferner einen Lesedatenpfad 31 mit einer Breite
von 32 Bits; der Ffad 31 stellt den Datenausgang derille für
die zugeordnete Vorarbeitungseinheit dar. Die Lesedaten werden
über einen Multiplexer 32 wieder aus dem Ausgangspfad 25 des Registers 21 oder aus einem Rücklesepfad 33 mit einer Breite von
32 Bits abgeleitet. Der Rücklesepfad seinerseits ist mit dem Ausgang des Multiplexers 32 in der entsprechenden Zelle der
nächsten Stufe verbunden. Der Multiplexer 32 wird durch den Ausgang des Einsteller-Kennzeichens gesteuert, so daß die oberen
und unteren Eingänge danach ausgewählt werden, ob das Einsteller-Kennzeichen gesetzt ist oder nicht.
Somit ist der Datenausgang auf dem Pfad 31 wie folgt:
(a) Wenn das Einsteller-Kennzeichen gesetzt ist, ist der Datenausgang
der Inhalt des Registers 21.
(b) Wenn das Einsteller-Kennzeichen rückgesetzt ist, ist der Datenausgang
der Inhalt des ersten folgenden Registers in der gleichen horizontalen Reihe von Zellen, deren Einsteller-Kennzeichen
gesetzt ist.
Dies stellt sicher, daß jede Maschinenspracheninstruktion automatisch
den letzten, auf den neuesten Stand gebrachten Wert des Inhalts eines jeden Maschinenregisters zur Verfügung hat, wobei
709832/0750
4.2.1977 W/He - yf - I/p 8842
alle Fortschaltungen durch vorausgehende Instruktionen berücksichtigt
werden.
Fig. 5 zeigt rine logische Schaltung zum Auswählen von Auslesedaten
aus einer der vier Zellen 20 in einer Stufe ier Pipeline.
Die logische Schaltung weist einen Dekodierer 40 auf, der einen Zwei-Bits-Funktionscode aus der Verarbeitungseinheit aufnimmt,
und erzeugt eines von drei Funktionssignalen: LESEN, SCHREIBEN und LÖSCHEN (FLUSH).
Das LESE-Signal steuert einen Vierweg-Multiplexer 41, um einen
der Lesedatenpfade 31 der vier Zellen auszuwählen. Die Daten aus dem ausgewählten Ffad werden in die Verarbeitungseinheit
über einen Stuferauslesepfad 42 (mit einer Breite von 32 Bits)
geführt. Die Auswahl wird durch zwei REGISTER-AIB/ÄHL-Bits aus
der Verarbeitungseinheit gesteuert.
Fig. 6 zeigt eine logische Schaltung zur Auswahl einer der vier Zellen in einer Stufe der Pipeline zum Einschreiben.
Das SCHREIB-Signal aus dem Dekodierer 40 steuert einen Dekodierer
4 3, um die REGISTER-AUSWÄHL-Bitε zu dekodieren, wobei ein Signal
auf einer von vier Ausgangsleitungen erzeugt wird. Diese Leitungen sind über ODER -Gatter 44 an SCHREIB-STEUER-Eingänge der vier
Zellen gelegt. Wie Fig. 4 zeigt, macht der SCHREIB-STEUER-Eingang einer jeden Zelle sowohl das Register 21 als auch das Einsteller-Kennzeichen
zum Einschreiben bei dem nächsten Taktimpuls wirksam.
Das VERSCHIEBE-Signal wird ferner den ODER-Gattern 44 (Fig. 6) aufgegeben, so daß SCHREIB-STEUER-Signale für alle vier Zellen
erzeugt werden.
709832/0750
4.2.1977 W/He - >T - I/p 884?
Die letzte Stufe der Pipeline muß als nichtprogrammierter Sprung
für auf den letzten Stand gebrachte Registerinhalte wirken, um
zu verhindern, daß Information dadurch verloren geht, daß sie durch ungültige Daten überschrieben wird. Fig. 7 zeigt, wie die
Anordnung nach Fig. 6 in der letzten Stufe der Pipeline modifiziert
ist, um den Registerinhalt einzufangen.
Zusätzliche UND-Gatter 45, die durch die Ausgänge von ODER-Gattern
46 gesteuert werden, werden in die SCHREIB-Steuer-Eingänge eingeführt. Die ODER-Gatter 4 6 nehmen den inversen Wert des VERSCHIEBE-Signales
und der Eins teiler-Kennzeichen der vorausgehenden Stufe
auf. Dies hat die Wirkung, daß dann, wenn ein VERSCHIEBE-Signal vorhanden ist, das SCHREIBJ-STEUER-Signal gesperrt wird, wenn nicht
das Einsteiler-Kennzeichen der vorausgehenden Stufe gesetzt ist.
Dies gewährleistet, daß dann, wenn ein VERSCHIEBE-Signal auftritt,
dLe Register in der letzten Stufe nur durch Informationen über
schrieben werden, die von einem gesetzten Einsteller-Kennzeichen
begleitet sind.
Es kann manchmal erforderlich sein, die Ausführung einer oder mehrerer Instruktionen, die in der Pipeline teilweise ausgeführt
worden sind, zu streichen. Ein solcher Fall kann beispielsweise als Ergebnis einer synchronen Unterbrechung oder im Falle einer
Sprunginstruktion, deren Bestimmung falsch vorausgesagt worden ist, auftreten. Es wird deshalb erforderlich, die Pipeline da—
durch zu loschen bzw. spulen, daß effektiv alle unzutreffenden Fortschaltungen des Registers entfernt werden. Dies kann dadurch
erreicht werden, daß alle Einsteller-Kennzeichen bis zu einer bestimmten Stufe der Pipeline rückgesetzt werden.
Fig. 8 zeigt eine Lösch-Steuer-Logik, die ermöglicht, daß eine
Verarbeitungsexnhext in einer Stufe der Pipeline die Elnsteller-Kennzeichen in allen vorausgehenden Stufen der Pipeline rücksetzt. Eine ähnliche Logik ist für jede Stufe vorgesehen.
709832/0750
4.2.1977 W/He - yf - I/p 8832
Das LÖSCH-Signal aus dem Dekodierer 40 wird durch das TAKT-Signal
über ein UND-Gatter 4 7 in einen Eingang eines CDER-Gatters 48 gegattert. Der Ausgang aus jedem ODER-Gatter 48 ist mit dem anderen
Eingang des entsprechenden ODER-Gatters in der vorausgehenden Stufe der Pipeline verbunden. Somit wandert ein LÖSCH-Signal, das
von einer Verarbeitungseinheit erzeugt worden ist, nach rückwärts
(d.h. nach links) längs der Pipeline in alle vorausgehenden Stufen.
In jeder Stufe wird das LÖSCH-Signal aus der folgenden Stufe einem
FREIGABE-Einstellereingang aller vier Grundregisterzellen aufgegeben.
Wie Fig.4 zeigt, ist der FREIGABE-Einstellertingang dem
Einsteller-Kennzeichen zum Rücksetzen des Kennzeichens aufgegeen.
Wenn eine Instruktion eines der Maschinenregister auf den neuesten
Stand bringen will, muß es seine Absicht zum frühest möglichen Zeitpunkt bekanntgeben, d.h. in der ersten Stufe der Pipeline.
Eine Warnung wird dann nach folgenden Instruktionen gegeben, damit sie daran gehindert werden, das Maschinenregister zu verwenden,
bis das Fortschalten tatsachlich erfolgt ist.
Dies wird durch ein System von Warnkennzeichen erreicht, und zwar
jeweils eines für jede Registerzelle 20. Ein solches Warnkennzeichen 50 ist in Fig. 9 gezeigt.
Jedes Warnkennzeichen weist eine Eingangsleitung 51 und eine
Ausgangsleitung 52 auf, die mit der Eingangsleitung des ent sprechenden Warnkennzeichens in der nächsten Stufe der Pipeline
verbunden ist. Das VERSCHIEBE-Signal wird einem Schreibsteuer- Eingang eines jeden Warnkennzeichens aufgegeben. Wenn somit eine
Verschiebung auftritt, wird der Inhalt eines jeden Warnkennzeichens um einen Schritt nach abwärts in der Pipeline (d.h. nach rechts)
verschoben. Wenn somit eine Instruktion durch die Pipeline wandert, wird sie von den zugeordneten Warnkennzeichen begleitet.
709832/0750
4.2.1977 W/He - \jf- I/p 8832
Die Eingangsleitungen 51 der vier Warnkennzeichen in der ersten Stufe der Pipeline sind direkt mit der zugeordneten Verarbeitungseinheit
rui verbunden, so daß diese Kennzeichen direkt durch die Verarbeitungseinheit gesetzt werden können. Wie weiter
oben erwähnt, führt die Verarbeitungseinheit FUl, wenn sie eine neue Instruktion holt, eine vorläufige Analyse durch. Ein Zweck
dieser Analyse besteht darin, festzulegen, ob die Instruktion eines der Maschinenregister fortzuschalten beabsichtigt. Die
Einheit PUl setzt dann dieentsprechenden Warnkennzeichen der
erster. Stufe, indem den Eingangsleitungen 51 Signale aufgegeben
werden, die al ε Warnung für nachfolgende Instruktionen wirken·
j eden
Der Ausgang eines Warnkennzeichens wird ferner einem ODER-Gatter 5 3 aufgegeben, dessen Ausgang über eine Leitung 54 mit dem anderen Eingang des entsprechenden ODER-Gatters 5 3 in der vorausgehenden Stufe der Pipeline verbunden ist. Die in einer beliebigen Stufe aus den ODER-Gattern 5 3 in der folgenden Stufe aufgenommenen Signale werden als Warn-AUSLESE-J-Signale verwendet. In jeder Stufe sind vier solcher Warn-AUSLESE-Signale vorhanden, und zwar jeweils eines für jedes Register, und jedes Signal gibt an, daß eine vorausgehende Instruktion weiter abwärts in der Pipeline (nach rechts) beabsichtigt, das in Frage kommende Maschinenregister fortzuschalten bzw. auf den neuesten Stand zu bringen.
Der Ausgang eines Warnkennzeichens wird ferner einem ODER-Gatter 5 3 aufgegeben, dessen Ausgang über eine Leitung 54 mit dem anderen Eingang des entsprechenden ODER-Gatters 5 3 in der vorausgehenden Stufe der Pipeline verbunden ist. Die in einer beliebigen Stufe aus den ODER-Gattern 5 3 in der folgenden Stufe aufgenommenen Signale werden als Warn-AUSLESE-J-Signale verwendet. In jeder Stufe sind vier solcher Warn-AUSLESE-Signale vorhanden, und zwar jeweils eines für jedes Register, und jedes Signal gibt an, daß eine vorausgehende Instruktion weiter abwärts in der Pipeline (nach rechts) beabsichtigt, das in Frage kommende Maschinenregister fortzuschalten bzw. auf den neuesten Stand zu bringen.
Bevor eine Verarbeitungseinheit den Inhalt eines Registers aus-
si e
liest, prüft zuerst das entsprechende Warn-AUSLESE-Signal, um festzustellen, ob es den Inhalt dieses Registers frei verwenden kann. Dies geschieht durch Steuerung eines Multiplexers 55, der von den REGISTER-AUSWÄHL-Bits gesteuert wird, so daß das entsprechende Warn-AUSLESE-Signal ausgewählt wird. Das ausgewählte Signal wird in die Verarbeitungseinheit über die Leitung 56 rückgeführt. Wenn die Verarbeitungseinrichtung feststellt, daß sie den Registerinhalt nicht auslesen darf, wartet sie, bis sie dazu die Möglichkeit erhält, d.h. bis die vorausgehende Instruktion das in Frage kommende Register fortgeschaltet und das Warnkennzeichen rückgesetzt hat. Dies macht Vorkehrungen (nicht gezeigt)
liest, prüft zuerst das entsprechende Warn-AUSLESE-Signal, um festzustellen, ob es den Inhalt dieses Registers frei verwenden kann. Dies geschieht durch Steuerung eines Multiplexers 55, der von den REGISTER-AUSWÄHL-Bits gesteuert wird, so daß das entsprechende Warn-AUSLESE-Signal ausgewählt wird. Das ausgewählte Signal wird in die Verarbeitungseinheit über die Leitung 56 rückgeführt. Wenn die Verarbeitungseinrichtung feststellt, daß sie den Registerinhalt nicht auslesen darf, wartet sie, bis sie dazu die Möglichkeit erhält, d.h. bis die vorausgehende Instruktion das in Frage kommende Register fortgeschaltet und das Warnkennzeichen rückgesetzt hat. Dies macht Vorkehrungen (nicht gezeigt)
709832/0750
4.2.1977 W/He -JfT- l/r 8842
in der Koordinatorschaltung erforderlich, um den Inhalt aller Stufen der fipeline bis zu und einschließlich der Stufe, die
auf die Möglichkeit wartet, ein Register auszulesen (d.h., die
VERSCHIEBE-Signale für diese .Stufen zu sperren) "einzugef rieren",
während der Inhalt der nachfolgenden Stufen in der normalen Weise verschoben werden kann.
Das Freigeben der Warnkennzeichen geschieht wie folgt. Wenn eine Verarbeitungseinheit ein Register fortschaltet, macht es auch
einen Dekodierer 57 wirksam, der die REGISTER-AUSWAHL-Bitε dekodiert,
wobei ein Signal auf einem von vier Ausgängen erzeugt
wird. Diese vier Ausgänge sind mit FREIGABE-Eingängen der vier War-nkennzeichen in dieser Stufe verbunden, so daß das Warnkenn—
zeichen des Registers, das gerade fortgeschaltet wird, rückgesetzt wird.
Warnkennzeichen werden auch durch den Fipeline-Löschmechanisinus
nach Fig. 8 in der gleichen Weise wie die Einsteller-Kennzeichen
feigegeben.
Schneller Rücklesekanal
Wie vorstehend erläutert^ wird, wenn eine Verarbeitungseinheit
eines der Maschinenregister fortschaltet, der fortgeschaltete
Wert nach rückwärts' längs der Pipeline über die Rücklesepfade 3
geführt, so daß er für alle vorausgehenden Stufen der Pipeline zur Verfügung steht. Der fortgeschaltete Wert nimmt eine kleine,
begrenzte Zeitdauer ein, die er benötigt, um die Pipeline zurückzuwandern. In vielen Systemen ist diese Zeitdauer(ripple time)
vernachlässigbar. Wenn jedoch die Pipeline sehr lang ist (d.h. viele Stufen besitzt) oder wenn die Zyklusdauer der Verarbeitungseinheiten sehr kurz ist, kann diese Zeitdauer bedeutend sein.
Nachstehend wird eine Modifizierung des Systems zur Verringerung dieser Welligkeits-Zeitdauer beschrieben. Bei dieser Modifikation
709832/0750
4.2.1977 W/He - ^f- I/p 8842
wird angenommen, daß die Pipeline sechzehn Stufen besitzt und daß diese Stufen in Gruppen zu je vier angeordnet sind. Fig. 10
zeigt eine Grundregisterzelle einer jeden Stufe einer Gruppe
von vier Stufen. Diese vier Zellen werden als "Zelle 1 - Zelle 4" bezeichnet, die Ausgänge aus den Registern in diesen Zellen werden
mit "Regl - Reg4" bezeichnet, und die Ausgänge ihrer Einsteller-Kennzeichen
mit Ml - M4.
Jede dieser Zellen ist ähnlich der in Fig. 4 gezeigten Zelle mit
der Ausnahme,daß der Multiplexer 32 durch eine komplexere Auswähllogikschaltung
ersetzt ist. Jede Auswähllogikschaltung erzeugt ein Lesedatensignal, und diese Lesedatensignale werden entsprechenden
Multiplexern ähnlich dem Multiplexer 41 (Fig. 5) aufgegeben, so daß Stufenauslesesignale für die zugeordneten Verarbeitungseinheiten
erhalten werden. Die vier Lesedatensignale aus den vier Zellen 1-4 sind mit Rl - R4 bezeichnet.
Fig. 11 zeigt die Auswähllogikschaltung 60 der Zelle 1. Diese Schaltung kombiniert die Signale Regl - Reg4, Ml - M4 und ein
Signal R (das das Lesedatensignal aus der ersten Zelle der nächsten Gruppe von Zellen ist), damit das Lesedatensignal Rl
gebildet wird. Die Aktion der Schaltung kann zweckmäßigerweise nach folgender logischer Gleichung summiert werden:
Rl « Regl. Ml + Reg2. M2. MT +
Reg3. M3. M2. ΜΪ +
Reg 4. M4. M3. M2~. ΡΪΓ +
R. M4". M3. M2. ΪΪΓ.
Die Auswähllogikschaltungen in den anderen Zallen 2-4 sind ähnlich
der nach Fig. 11, und ihre Aktionen werden zweckmäßigerweise nach den folgenden Gleichungen summiert:
R2 = Reg2. M2 + Reg3. M3. M2 +
Reg4. M4. M3. M2~ + R. M4. M3. M2"
R3 = Reg3. M3 + Reg4. M4. ?Ϊ3 + R. M4".
R4 - Reg4. M4 + R. M4.
709832/0750
4.2.1977 W/He - yT- I/p 884?
At
270A8A2
Hieraus ergibt sich, daß die Wirkung dieser Auswähllogikschaltungen
grundsätzlich die gleiche ist wie bei der vorbeschriebenen Anordnung, insoferne, als der Lesedatenausgang aus jeder Zelle
gleich isb:
(a) dem Inhalt des Registers Ln der Zelle, wenn das Einsteller-Kennzeichen
gesetzt ist, und
(b) bei rückgesetzten Einstnller-Kennzeichen dem Ir.halt des
ersten nachfolgenden Registers, dessen Einsteller-Kennzeichen
gesetzt ist.
Die mittlere Pfadlänge für den Inhalt eines fortgeschalteten Registers,
die zurückgelegt werden muß, ist jedoch wesentlich geringer. Beispielsweise wird der Inhalt eines fortgeschalteten
Registers in der nächsten Gruppe von Zellen direkt aus der ersten Zelle in dieser nächsten Gruppe der ersten Zelle in der jeweiligen Gruppe (als Signal R) aufgegeben, anstatt daß er durch jede der Zellen 4-2 laufen muß.
Registers in der nächsten Gruppe von Zellen direkt aus der ersten Zelle in dieser nächsten Gruppe der ersten Zelle in der jeweiligen Gruppe (als Signal R) aufgegeben, anstatt daß er durch jede der Zellen 4-2 laufen muß.
Ein anderer Weg, nach welchem der Fluß von Instruktionen längs der Fipeline gesteuert werden kann, ist der des "Händeschüttelns"
zwischen den Verarbeitungseinheiten, wodurch die Koordinierschaltung nach Fig. 2 ersetzt wird. In diesem Fall enthält jede Verarbeitungseinheit
eine "Hände schüttelnde" Mikroprogrammroutine und steht mit benachbarten Verarbeitungseinheiten über BEREIT-
und ANGENOMMEN-Signale. in Verbindung.
Die Mikroprogrammroutine wird für die Verarbeitungseinheit N
beschrieben (wobei in dem obigen Beispiel N » 1, 2, 3 oder 4
ist).
beschrieben (wobei in dem obigen Beispiel N » 1, 2, 3 oder 4
ist).
Wenn die Einheit N ihre laufende Funktion in bezug auf eine In struktion vervollständigt, gibt sie ein BEREIT-Signal an die
709832/0750
4.2.1977 W/He - ~rf - I/p 8842
Einheit N + 1. Sie wartet dann, bis die Einheit N + 1 die Instruktion
in ihre eigene Fuffereinheit aufnimmt. Dies wird durch
Empfang eines ANGENOMMEN-Signales aus der Einheit N + 1 angezeigt.
Die Einheit N wartet nun auf ein BEREIT-Signal aus der Einheit N-I. Wenn sie dieses Signal aufnimmt, gibt sie ein
VERSCHIEiBE-Signal in ihren zugeordneten Puffer, so daß die In
struktion aus dem vorausgehenden Puffer eingeführt wird. Wenn dies erfolgt ist, überträgt die Einheit N ein ANGENOMMEN-Signal
auf die Einheit N-I. Die Einheit N ist nun bereit, mit der Durchführung der Funktion in bezug auf die neue Instruktion zu
beginnen.
Bei dieser Modifizierung werden nicht alle VERSCHIEBE-Signale
in die unterschiedlichen Stufen der Pipeline gleichzeitig erzeugt.
In Wirklichkeit wird jedes VERSCHIEBE-Signal zum frühestmöglichen
Zeitpunkt erzeugt. Somit wird der Fluß von Instruktionen durch die Pipeline rascher erfolgen als im Falle der vorbeschriebenen
Anordnung.
Im Rahmen vorliegender Erfindung sind zahlreiche Abänderungen
möglich. Beispielsweise kann eine unterschiedliche Anzahl von Stufen in der Pipeline verwendet werden, und es kann eine unterschiedliche
Anzahl von Maschinenregistern vorgesehen werden.
Hoher Integrationsgrad
Wie bereits weiter oben erwähnt, ist die Erfindung insbesondere
geeignet zur Durchführung der LSI-Technik (large scale integration),
Beispielsweise kann ein LSI-Chip eine GrundregisterzelIe aus jeder
von vier aufeinanderfolgenden Stufen der Pipeline enthalten (d.h.
eine horizontale Reihe von Zellen nach Fig. 1). Der gleiche Chip kann auch die Warnkennzeichen enthalten. Ein solcher Chip enthält
etwa 150 logische Gatter und kann in einer herkömmlichen 24-Stifte-Packung (24-pin package) aufgenommen werden.
709832/0750
ι *°
Leerseite
Claims (1)
- 4.2.19 77 W/He - yf- I/p 884 2Patentansprüche;/1,' Regi ster anordnung zur Verwendung voii in einem im Pipeline-Betrieb arbeitenden Datenverarbeitungssystem, dadurch gekennzeichnet , daß eine Folge von Registern (21) vorgesehen ist, deren jede eine Markiervorrichtung (26) aufweist, die anzeigt, ob da3 Register gültige Informationen enthält, daß jedes Register (?1) auch eine Abgabevorrichtung (22) besitzt, die so ausgelegt ist, daß sie den Inhalt des Registers auswählt, wenn die zugeordnete Markiervorrichtung (26) anzeigt, daß das Register gültige Informationen enthält, sonst aber den Inhalt des ersten nachfolgenden Registers (21) (falls vorhanden) in der Folge auswählt, deren Markiervorrichtung (26) anzeigt, daß es gültige Informationen enthält, und daß eine Vorrichtung (15) den Inhalt eines jeden Registers (21) und der Markiervorrichtung (26) in das nächste Register und die nächste Markiervorrichtung in der Folge (falls vorhanden) verschiebt.2. Registeranordnung nach Anspruch 1, dadurch gekennzeichnet, daß die Abgabevorrichtung einen Multiplexer (32) aufweist, der einen ersten Eingang, welcher mit dem zugeordneten Register (21) verbunden ist, sowie einen zweiten Eingang, welcher mit dem Ausgang des entsprechenden Multiplexers (32) verbunden ist, der dem nächsten Register (21) in der Folge (falls vorhanden) zugeordnet ist, besitzt und daß jeder Multiplexer (32) durch die zugeordnete Markiervorrichtung (26) so gesteuert ist, daß der erste Eingang ausgewähltwird, wenn die Markiervorrichtung anzeigt, daß das zugeordnete Register eine gültige Information enthält, und sonst der zweite Eingang ausgewählt wird.3. Registeranordnung nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß eine Gattervorrichtung (45, 46) vorgesehen ist, die verhindert, daß der Inhalt des vorletzten Registers (21) in der Folge in das letzte Register (21) in der Folge verschoben werden, wenn nicht die Markiervorrichtung (26), die dem vorletzten Register (21) zugeordnet ist, anzeigt, daß sie die gültige Information enthält.709832/07504.2.1977 W/Ho — \^_*S — I/ρ 88424. Registeranordnung nach einem der Ansprüche 1-3, dadurch gekennzeichnet, daß jedem Register eine Löschvorrichtung (47, 48) (flushing means) zugeordnet ist, um die Markiervorrichtung (26) rückzusetzen, die allen vorausgehenden Registern in der Felge zugeordnet ist, um anzuzeigen, daß sie ungültige Information onthalten.5. Registeranordnung nach einem der Ansprüche 1-4, dadurch gekennzeichnet, daß jedem Register (21) eine Warnvorrichtung(50) zugeordnet ist, die anzeigt, daß die Inhaltt- des zugeordneten Registers auf den neuesten Stand zu bringen sind, daß eine Vorrichtung (52) den Inhalt einer jeden Warnvorrichtung in die nächste Warnvorrichtung in d*r Folge (falls vorhanden) im Takt des Verschieben^ der Registerinhalte verschiebt, und daß eine Vorrichtung (53, 55) ein Warnsignal in bezug auf jeden Register ergibt, das anzeigt, ob die Warnvorrichtung, die einem der nachfolgenden Register in der Folge zugeordnet ist, gesetzt ist.709832/0750
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB4684/76A GB1506972A (en) | 1976-02-06 | 1976-02-06 | Data processing systems |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2704842A1 true DE2704842A1 (de) | 1977-08-11 |
DE2704842C2 DE2704842C2 (de) | 1984-10-31 |
Family
ID=9781852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2704842A Expired DE2704842C2 (de) | 1976-02-06 | 1977-02-05 | Im Pipeline-Betrieb arbeitende Datenverarbeitungseinrichtung |
Country Status (7)
Country | Link |
---|---|
US (1) | US4112489A (de) |
JP (1) | JPS52115640A (de) |
AU (1) | AU509432B2 (de) |
DE (1) | DE2704842C2 (de) |
GB (1) | GB1506972A (de) |
PL (1) | PL113546B1 (de) |
ZA (1) | ZA77658B (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1980000043A1 (en) * | 1978-06-09 | 1980-01-10 | Ncr Co | A digital pipelined computer |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4305124A (en) * | 1978-06-09 | 1981-12-08 | Ncr Corporation | Pipelined computer |
US4307447A (en) * | 1979-06-19 | 1981-12-22 | Gould Inc. | Programmable controller |
US4295193A (en) * | 1979-06-29 | 1981-10-13 | International Business Machines Corporation | Machine for multiple instruction execution |
JPS5621242A (en) * | 1979-07-28 | 1981-02-27 | Fujitsu Ltd | Pipeline control method for computer operation |
US4598358A (en) * | 1980-02-11 | 1986-07-01 | At&T Bell Laboratories | Pipelined digital signal processor using a common data and control bus |
JPS5832427B2 (ja) * | 1980-02-14 | 1983-07-13 | 株式会社日立製作所 | 多重情報処理システム |
US4646236A (en) * | 1981-04-17 | 1987-02-24 | International Business Machines Corp. | Pipelined control apparatus with multi-process address storage |
US4399507A (en) * | 1981-06-30 | 1983-08-16 | Ibm Corporation | Instruction address stack in the data memory of an instruction-pipelined processor |
JPS5848146A (ja) * | 1981-09-18 | 1983-03-22 | Toshiba Corp | 命令先取り方式 |
US4541045A (en) * | 1981-09-21 | 1985-09-10 | Racal-Milgo, Inc. | Microprocessor architecture employing efficient operand and instruction addressing |
JPS58189739A (ja) * | 1982-04-30 | 1983-11-05 | Hitachi Ltd | デ−タ処理システム |
JPS592143A (ja) * | 1982-06-29 | 1984-01-07 | Hitachi Ltd | 情報処理装置 |
US4521851A (en) * | 1982-10-13 | 1985-06-04 | Honeywell Information Systems Inc. | Central processor |
JPS5995660A (ja) * | 1982-11-22 | 1984-06-01 | Nec Corp | デ−タ処理装置 |
US4630230A (en) * | 1983-04-25 | 1986-12-16 | Cray Research, Inc. | Solid state storage device |
JPS6033635A (ja) * | 1983-08-05 | 1985-02-21 | Nec Corp | パイプライン制御方式 |
US4800486A (en) * | 1983-09-29 | 1989-01-24 | Tandem Computers Incorporated | Multiple data patch CPU architecture |
US5093775A (en) * | 1983-11-07 | 1992-03-03 | Digital Equipment Corporation | Microcode control system for digital data processing system |
JPS60112144A (ja) * | 1983-11-24 | 1985-06-18 | Nec Corp | 制御信号転送方式 |
JPS60120439A (ja) * | 1983-12-05 | 1985-06-27 | Nec Corp | 演算処理装置 |
US4814978A (en) * | 1986-07-15 | 1989-03-21 | Dataflow Computer Corporation | Dataflow processing element, multiprocessor, and processes |
US4745605A (en) * | 1986-08-19 | 1988-05-17 | Amadahl Corporation | Control word error detection and classification |
JPS63123130A (ja) * | 1986-11-12 | 1988-05-26 | Fanuc Ltd | パイプライン制御方式 |
US5127104A (en) * | 1986-12-29 | 1992-06-30 | Dataflow Computer Corporation | Method and product involving translation and execution of programs by automatic partitioning and data structure allocation |
JPH0760388B2 (ja) * | 1987-06-09 | 1995-06-28 | 三菱電機株式会社 | パイプライン制御回路 |
JPS63317828A (ja) * | 1987-06-19 | 1988-12-26 | Fujitsu Ltd | マイクロコ−ド読み出し制御方式 |
US5031096A (en) * | 1988-06-30 | 1991-07-09 | International Business Machines Corporation | Method and apparatus for compressing the execution time of an instruction stream executing in a pipelined processor |
GB8817911D0 (en) * | 1988-07-27 | 1988-09-01 | Int Computers Ltd | Data processing apparatus |
US5150469A (en) * | 1988-12-12 | 1992-09-22 | Digital Equipment Corporation | System and method for processor pipeline control by selective signal deassertion |
US5142638A (en) * | 1989-02-07 | 1992-08-25 | Cray Research, Inc. | Apparatus for sharing memory in a multiprocessor system |
US4951246A (en) * | 1989-08-08 | 1990-08-21 | Cray Research, Inc. | Nibble-mode dram solid state storage device |
US5524255A (en) * | 1989-12-29 | 1996-06-04 | Cray Research, Inc. | Method and apparatus for accessing global registers in a multiprocessor system |
US5251306A (en) * | 1990-01-16 | 1993-10-05 | Advanced Micro Devices, Inc. | Apparatus for controlling execution of a program in a computing device |
JPH0410041A (ja) * | 1990-04-27 | 1992-01-14 | Toshiba Corp | データ退避方式 |
US5335330A (en) * | 1990-05-14 | 1994-08-02 | Matsushita Electric Industrial Co., Ltd. | Information processing apparatus with optimization programming |
JP2580396B2 (ja) * | 1991-01-31 | 1997-02-12 | 富士通株式会社 | パイプラインにおける分岐命令制御方式 |
GB9114513D0 (en) * | 1991-07-04 | 1991-08-21 | Univ Manchester | Condition detection in asynchronous pipelines |
CA2124333A1 (en) * | 1992-02-27 | 1993-09-02 | John A. Saba | Cpu having pipelined instruction unit and effective address calculation unit with retained virtual address capability |
US5619668A (en) * | 1992-08-10 | 1997-04-08 | Intel Corporation | Apparatus for register bypassing in a microprocessor |
EP0650117B1 (de) * | 1993-10-21 | 2002-04-10 | Sun Microsystems, Inc. | Gegenflusspipeline |
EP0650116B1 (de) * | 1993-10-21 | 1998-12-09 | Sun Microsystems, Inc. | Gegenflusspipelineprozessor |
US5706459A (en) * | 1994-01-06 | 1998-01-06 | Fujitsu Limited | Processor having a variable number of stages in a pipeline |
US6092184A (en) * | 1995-12-28 | 2000-07-18 | Intel Corporation | Parallel processing of pipelined instructions having register dependencies |
US5764943A (en) * | 1995-12-28 | 1998-06-09 | Intel Corporation | Data path circuitry for processor having multiple instruction pipelines |
US6044460A (en) * | 1998-01-16 | 2000-03-28 | Lsi Logic Corporation | System and method for PC-relative address generation in a microprocessor with a pipeline architecture |
US6633971B2 (en) * | 1999-10-01 | 2003-10-14 | Hitachi, Ltd. | Mechanism for forward data in a processor pipeline using a single pipefile connected to the pipeline |
US7496734B1 (en) * | 2000-04-28 | 2009-02-24 | Stmicroelectronics, Inc. | System and method for handling register dependency in a stack-based pipelined processor |
US6633969B1 (en) | 2000-08-11 | 2003-10-14 | Lsi Logic Corporation | Instruction translation system and method achieving single-cycle translation of variable-length MIPS16 instructions |
US6665755B2 (en) * | 2000-12-22 | 2003-12-16 | Nortel Networks Limited | External memory engine selectable pipeline architecture |
US20020099932A1 (en) * | 2001-01-25 | 2002-07-25 | Muro Manuel R. | Mirroring processor stack |
FR2820220B1 (fr) * | 2001-01-31 | 2003-03-28 | Jean Roland Riviere | Dispositif a processeur rapide pour le traitement de donnees et procede s'y rattachant |
TWI269228B (en) * | 2003-01-07 | 2006-12-21 | Ibm | Floating point unit, processor chip, and computer system to resolve data dependencies |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3771137A (en) * | 1971-09-10 | 1973-11-06 | Ibm | Memory control in a multipurpose system utilizing a broadcast |
US3875391A (en) * | 1973-11-02 | 1975-04-01 | Raytheon Co | Pipeline signal processor |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1448866A (en) * | 1973-04-13 | 1976-09-08 | Int Computers Ltd | Microprogrammed data processing systems |
GB1443777A (en) * | 1973-07-19 | 1976-07-28 | Int Computers Ltd | Data processing apparatus |
US3900836A (en) * | 1973-11-30 | 1975-08-19 | Ibm | Interleaved memory control signal handling apparatus using pipelining techniques |
US3978452A (en) * | 1974-02-28 | 1976-08-31 | Burroughs Corporation | System and method for concurrent and pipeline processing employing a data driven network |
-
1976
- 1976-02-06 GB GB4684/76A patent/GB1506972A/en not_active Expired
-
1977
- 1977-02-04 AU AU21961/77A patent/AU509432B2/en not_active Expired
- 1977-02-04 US US05/765,872 patent/US4112489A/en not_active Expired - Lifetime
- 1977-02-04 ZA ZA770658A patent/ZA77658B/xx unknown
- 1977-02-04 PL PL1977195820A patent/PL113546B1/pl unknown
- 1977-02-05 DE DE2704842A patent/DE2704842C2/de not_active Expired
- 1977-02-07 JP JP1236277A patent/JPS52115640A/ja active Granted
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3771137A (en) * | 1971-09-10 | 1973-11-06 | Ibm | Memory control in a multipurpose system utilizing a broadcast |
US3875391A (en) * | 1973-11-02 | 1975-04-01 | Raytheon Co | Pipeline signal processor |
Non-Patent Citations (2)
Title |
---|
DE-Z.: Elektronische Rechenanlagen 1975, H.2, S.80-83 * |
IBM Journal, Jan.1967, S.8-24 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1980000043A1 (en) * | 1978-06-09 | 1980-01-10 | Ncr Co | A digital pipelined computer |
EP0015276A1 (de) * | 1978-06-09 | 1980-09-17 | Ncr Co | Ein digitaler computer mit überlappter steuerung. |
EP0015276A4 (de) * | 1978-06-09 | 1980-10-09 | Ncr Corp | Ein digitaler computer mit überlappter steuerung. |
Also Published As
Publication number | Publication date |
---|---|
ZA77658B (en) | 1977-12-28 |
JPS52115640A (en) | 1977-09-28 |
JPS568380B2 (de) | 1981-02-23 |
AU509432B2 (en) | 1980-05-15 |
US4112489A (en) | 1978-09-05 |
PL113546B1 (en) | 1980-12-31 |
AU2196177A (en) | 1978-08-10 |
DE2704842C2 (de) | 1984-10-31 |
GB1506972A (en) | 1978-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2704842A1 (de) | Datenverarbeitungssystem | |
DE2934971C2 (de) | Nach dem Fließbandprinzip arbeitender Zentralprozessor | |
DE2756352C3 (de) | Schaltungsanordnung zum Aussuchen und Sortieren von Daten in gleichartig aufgebauten Sätzen | |
DE2540975C2 (de) | Datenverarbeitungseinrichtung zur Ausführung mehrerer gleichzeitig ablaufender Prozesse | |
DE2714805C2 (de) | ||
DE2555963C2 (de) | Einrichtung zur Funktionsmodifizierung | |
DE3854701T2 (de) | Methode und Vorrichtung zum Verändern von Mikrobefehlen mit einer Makrobefehlspipeline. | |
DE2318069A1 (de) | Rechnersteuersystem unter verwendung von mikroprogrammierung und statisch/dynamischer erweiterung von steuerfunktionen mittels festverdrahteter logischer matrix | |
EP0097725A1 (de) | Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen | |
DE1424732A1 (de) | Elektronische Ziffernrechenmaschine | |
DE2758830A1 (de) | Rechenvorrichtung | |
DE2718110A1 (de) | Datenverarbeitungseinheit | |
DE2801543A1 (de) | Datenverarbeitungsanlage | |
DE2062228A1 (de) | Datenverarbeitungssystem mit gleich zeitigem Zugriff auf mehrere Speicher stellen | |
DE1549474B2 (de) | Anordnung in einer elektronischen digitalen Datenverarbeitungsanlage zur Ausführung eines ersten Befehls und gleichzeitigen Decodierung eines folgenden Befehls | |
DE1499206B2 (de) | Rechenanlage | |
DE1524324A1 (de) | Vorrichtung zur maschinellen stetigen Mittelwertbildung bezueglich einer endlichen Menge von Zeitfunktionswerten | |
DE2617485A1 (de) | Verfahren und schaltungsanordnung zur abarbeitung von mikrobefehlsfolgen in datenverarbeitungsanlagen | |
DE2245284A1 (de) | Datenverarbeitungsanlage | |
DE2221926B2 (de) | Datenverarbeitungsanlage mit wenigstens einem in Verbindung mit mehreren Peripheriegeräten stehenden Prozessor | |
DE1499286A1 (de) | Datenbearbeitungsanlage | |
DE1221037B (de) | Verfahren zur Speicherung hierarchisch geordneter Datenketten und Anordnung zur Durchfuehrung dieses Verfahrens | |
DE2644180C3 (de) | Datenverarbeitungssystem | |
DE2235883B2 (de) | Datenverarbeitungseinrichtung | |
DE2419836C3 (de) | Schaltungsanordnung zur Durchführung von Unterprogramm-Sprungbefehlen in Datenverarbeitungsanlagen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OD | Request for examination | ||
8181 | Inventor (new situation) |
Free format text: WOOD, KEITH WILLIAM, MANCHESTER, US |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |