DE2704842A1 - Datenverarbeitungssystem - Google Patents

Datenverarbeitungssystem

Info

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
Application number
DE19772704842
Other languages
English (en)
Other versions
DE2704842C2 (de
Inventor
Keith William Wood
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.)
Fujitsu Services Ltd
Original Assignee
Fujitsu Services Ltd
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 Fujitsu Services Ltd filed Critical Fujitsu Services Ltd
Publication of DE2704842A1 publication Critical patent/DE2704842A1/de
Application granted granted Critical
Publication of DE2704842C2 publication Critical patent/DE2704842C2/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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30134Register stacks; shift registers
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • 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, 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/38Concurrent instruction execution, e.g. pipeline, 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, look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • 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, look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3863Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
    • 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, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines

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.
Ihre Nachricht Your Letter
Unser Zeichen
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
Gerichtsstand Regensburg
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
Gt, samtauf bau des Systems
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.
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.
Grundreqisterzelle
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.
Ausleseauswahl
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.
Schreibauswahl·
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.
Pipeline-Lösch-Steuerunc.
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.
Warnkennzeichen
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.
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)
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ß.
Alternative Verschiebeanordnunq
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).
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.
Einige weitere mögliche Modifikationen
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)

  1. 4.2.19 77 W/He - yf- I/p 884 2
    Patentansprü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/0750
    4.2.1977 W/Ho — \^_*S — I/ρ 8842
    4. 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
DE2704842A 1976-02-06 1977-02-05 Im Pipeline-Betrieb arbeitende Datenverarbeitungseinrichtung Expired DE2704842C2 (de)

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)

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

* Cited by examiner, † Cited by third party
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
WO1993017384A1 (en) * 1992-02-27 1993-09-02 Wang Laboratories, Inc. 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
EP0650116B1 (de) * 1993-10-21 1998-12-09 Sun Microsystems, Inc. Gegenflusspipelineprozessor
EP0650117B1 (de) * 1993-10-21 2002-04-10 Sun Microsystems, Inc. Gegenflusspipeline
US5706459A (en) * 1994-01-06 1998-01-06 Fujitsu Limited Processor having a variable number of stages in a pipeline
US5764943A (en) * 1995-12-28 1998-06-09 Intel Corporation Data path circuitry for processor having multiple instruction pipelines
US6092184A (en) * 1995-12-28 2000-07-18 Intel Corporation Parallel processing of pipelined instructions having register dependencies
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)

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

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

Patent Citations (2)

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

* Cited by examiner, † Cited by third party
Title
DE-Z.: Elektronische Rechenanlagen 1975, H.2, S.80-83 *
IBM Journal, Jan.1967, S.8-24 *

Cited By (3)

* Cited by examiner, † Cited by third party
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
DE2704842C2 (de) 1984-10-31
JPS568380B2 (de) 1981-02-23
AU2196177A (en) 1978-08-10
GB1506972A (en) 1978-04-12
US4112489A (en) 1978-09-05
PL113546B1 (en) 1980-12-31
JPS52115640A (en) 1977-09-28
AU509432B2 (en) 1980-05-15

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
EP0097725B1 (de) Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen
DE1815078B2 (de) Elektronisches Datenverarbeitungssystem
CH650600A5 (de) Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister.
DE1449765A1 (de) Einrichtung zur Abfrage eines assoziativen Speichers
DE2318069A1 (de) Rechnersteuersystem unter verwendung von mikroprogrammierung und statisch/dynamischer erweiterung von steuerfunktionen mittels festverdrahteter logischer matrix
DE1424732A1 (de) Elektronische Ziffernrechenmaschine
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
DE3545937A1 (de) Mikroprozessor
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

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