DE2735814C2 - Nach dem Pipelineprinzip arbeitende Datenverarbeitungseinrichtung - Google Patents
Nach dem Pipelineprinzip arbeitende DatenverarbeitungseinrichtungInfo
- Publication number
- DE2735814C2 DE2735814C2 DE2735814A DE2735814A DE2735814C2 DE 2735814 C2 DE2735814 C2 DE 2735814C2 DE 2735814 A DE2735814 A DE 2735814A DE 2735814 A DE2735814 A DE 2735814A DE 2735814 C2 DE2735814 C2 DE 2735814C2
- Authority
- DE
- Germany
- Prior art keywords
- data processing
- processing device
- microprogram
- instructions
- instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
- 238000012545 processing Methods 0.000 title claims description 63
- 230000015654 memory Effects 0.000 claims description 45
- 239000000872 buffer Substances 0.000 claims description 26
- 238000012986 modification Methods 0.000 claims description 8
- 230000004048 modification Effects 0.000 claims description 8
- 238000010276 construction Methods 0.000 claims 2
- 238000010586 diagram Methods 0.000 claims 1
- 238000004519 manufacturing process Methods 0.000 claims 1
- 238000000034 method Methods 0.000 claims 1
- 239000007787 solid Substances 0.000 claims 1
- 230000006870 function Effects 0.000 description 4
- 241001233037 catfish Species 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/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)
- Executing Machine-Instructions (AREA)
Description
45
50
b5 aussichtlich benötigt werden; wenn ein Datenausdruck aus dem Hauptspeicher angefordert wird, wird zuerst
eine Prüfung vorgenommen, um festzustellen, ob die Anforderung durch einen Zugriff zum Hauptspeicher
erfüllt werden kann. Im Idealfall können die meisten Speicherzugriffe von dem Hilfsspelcher erfüllt werden,
mit dem Ergebnis, daß die mittlere Wiederauffinddauer sich der des Hilfsspeichers nähert.
Derartige Hllfsspeichervorrichtungen sind an sich
bekannt und werden hier nicht näher erörtert.
Die Datenverarbeitungseinrichtung besitzt drei Datenverarbeitungsstufen
DFl-DFi. Diese sind der Durchführung der Operandenphase (O), der Modifikationsphase
(M), falls eine solche vorliegt, und der Ausführungsphase (X) einer Instruktion gewidmet. Diese drei Stufen sind
gleichzeitig parallel miteinander betätigbar und stellen eine Instruktionsausführungs-Pipeline dar, in der die
Ausführung von bis zu drei Programminstruktionen überlappt sein kann, wie oben in Verbindung mit Fig. 3
erläutert.
Die drei Datenverarbeitungsstufen werden von einer zentralen Mikroprogrammsteuereinheit 12 gesteuert, die
Steuersignale an alle drei Datenverarbeitungsstufen gleichzeitig gibt, so daß sie parallel die laufenden Phasen
der Instruktionen jeweils in der Pipeline ausführen. Beispielswelse
sind in der vierten Stufe der Folge nach Fi g. 3 die Steuersignale so beschaffen, daß DFl die Operandenphase
der Instruktion D, DFl die Modifizierphase der Instruktion C und DFS die Ausführungsphase der
Instruktion B durchführt. Wenn weniger als drei Instruktionen gleichzeitig In der Pipeline vorliegen, können
einige dieser Steuersignale »Null«-Signale sein, die bewirken, daß eine oder mehrere Datenverarbeitungsstufen
leer bleiben.
Die Datenverarbeitungsstufen DFl-DFi sind mit dem
Hauptspeicher 10 (über die Hilfsspelchervorrlchtung 11) verbunden, so daß sie in der Lage sind, je nach Bedarf
Daten aus dem Speicher und in den Speicher zu adressieren, zu lesen und zu schreiben. Die Datenverarbeitungsstufen haben auch Zugriff zu einem verhältnismäßig
kleinen, schnellen Speicher 13 mit direktem Zugriff, der zur Übertragung von Teilresultaten und anderen Informationen
zwischen ihnen verwendet wird.
Das Adressieren von Progra.mminstruktionen im
Hauptspeicher wird durch einen Programmzähler 14 erreicht. Dieser Zähler wird von Signalen aus der Mikroprogrammsteuereinheit
gesteuert, die entweder den Zähler um eine Einheit weiterschalten kann und damit ein
schrittweises Durchlaufen des Programmes bewirkt, oder die ein Füllen mit einer Sprungadresse, die durch die
dritte Datenverarbeitungsstufe DFi erzeugt wird, ergeben kann.
Es sind somit vier unterschiedliche Quellen vorhanden, von welchen der Speicher 10 adressiert werden
kann, nämlich die drei Datenverarbeitungsstufen DFl-DFi und der Programmzähler 14. Alle diese Quellen
werden von der Mikroprogrammsteuereinheit gesteuert, so daß sichergestellt ist, daß nur eine von Ihnen den
Speicher jeweils zur gleichen Zeit adressiert.
Jede Instruktion kann als aus zwei Teilen F und K bestehend angesehen werden. Der Teil F ist ein Code,
der die durch die Instruktion auszuführende Funktion
darstellt, während der Teil K den Operanden angibt, auf welchen die Funktion wirkt. K kann eine Operanden-(oder
Hinweis-)Adresse oder einen Verschiebungswert darstellen, der dem Inhalt eines Basisregisters hinzugefügt
wird, um die Operandenadresse zu erzeugen, oder kann einen wörtlichen Operanden darstellen.
10
15
20
Wenn eine Instruktion aus dem Hauptspeicher abgerufen wird, wird sie in einen Zwischenspeicher 15 eingeführt.
Der Tell K der Instruktion wird dann der ersten Datenverarbeitungsstufe DFX zur Verwendung während
der Ausführung der ersten Phase der Instruktion zugeführt. Der Teil F wird einem Dekodierer aufgegeben, in
welchem er decodiert wird, damit drei Signale wie folgt erzeugt werden:
(SX) Dieses Signal gibt die Aktionen an, die von der ersten Datenverarbeitungsstufe DFX während der
ersten Phase der Ausführung der Instruktion entsprechend der Operandenart der Instruktion durchgeführt
werden müssen.
(Sl) Dieses Signal bezeichnet die Aktionen, die von der zweiten Datenverarbeitungsstufe DFl während der
zweiten Phase einer indirekten Instruktion durchgeführt werden müssen. Im Falle einer direkten
Instruktion erfolgt eine Nullaktion.
(SV Dieses Signal bezeichnet die Aktionen, die von der dritten Datenverarbeitungsstufe DF3 während der
Endphase ,der Ausführung durchgeführt werden müssen.
Das Abrufen und Decodieren der nächsten Instruktion wird mit der Ausführung der Instruktionen laufend in
der Pipeline überlappt.
Diese drei Signale 51-53 werden als erster Steuercode in ein erstes Pipeline-Pufferregister 17 eingeführt, wo sie
gehalten werden, während die erste Phase der Instruktion ausgeführt wird. Die letzteren beiden Signale 52 und 53
werden dann als zweiter Steuercode in ein zweites Pipeline-Pufferregister 18 übertragen, wo sie während der
Ausführung der zweiten Phase der Instruktion gehalten werden (wenn es sich um eine indirekte Instruktion handelt).
Schließlich wird das Signal 53 als dritter Steuercode in ein drittes Pipellne-Pufferregister 19 übertragen,
in welchem das Signal gehalten wird, während die Endphase der Instruktion ausgeführt wird.
Daraus ergibt sich, daß das erste Signal 51 eine einstufige Pipeline, das zweite Signal 52 eine zweistufige Pipeline
und das dritte Signal 53 eine dreistufige Pipeline durchläuft. Die Ausgänge aus diesen Pipelines (d. h. das
51-Signal aus dem ersten Pipeline-Pufferregister 17, das 52-Signal aus dem zweiten Pipeline-Pufferregister 18,
und das 53-Signal aus dem dritten Pufferregister 19) werden einer Kombinierschaltung 20 aufgegeben, die diese
Signale miteinander mischt und Ausgangssignale erzeugt, welche die Information aller drei Signale (Steuercodes)
kombinieren. Diese Ausgangssignale werden der Mikroprogrammsteuereinheit 12 aufgegeben, in der sie
zur Erzeugung einer Mikroprogrammstartadresse und somit zur Einleitung einer entsprechenden Mikroprogrammfolge
verwendet werden.
Daraus ergibt sich, daß die Auswahl der Mikroprogrammfolge von der Kombination des Sl-Slgnales im
ersten Pufferregister, des 52-Signales im zweiten Pufferregister
und des 53-SignaIes im dritten Pufferregister abhängt. Mit anderen Worten heißt dies, daß die Auswahl
der Mikroprogrammfolge von der Kombination des Operandentyps der Instruktion, die gerade in der ersten
Stufe der Pipeline vorhanden ist, des Modifiziertyps der Instruktion in der zweiten Stufe und des Ausführungstyps
der Instruktion in der dritten Stufe abhängt.
Wenn jede mögliche Kombination von Operandentyp, Modifiziertyp und Ausführungstyp durch eine getrennte
Mikroprogrammfolge auf diese Weise durchgeführt wird, ist das Resultat eine sehr große Anzahl von Mikroprogrammfolgen.
Liegen beispielsweise 64 unterschiedliche
50
55
60
65 Ausführungstypen, 8 unterschiedliche Modifiziertypen und 64 unterschiedliche Operandentypen vor, wären
64 χ 8 χ 64 = 32 768 unterschiedliche Mikroprogrammfolgen erforderlich. Wenn die mittlere Folgenlänge drei
Mikroinstruktionen beträgt, würde die Gesamtmikroprogrammgröße etwa 100 000 Mikroinstruktionen betragen,
was außerordentlich viel ist.
Das Problem kann dadurch reduziert werden, daß nur die normalerweise am häufigsten auftretenden Instruktionstypen
in der vorbeschriebenen Welse durchgeführt werden, und daß der übrige Teil in herkömmlicher Weise
durchgeführt wird, und zwar mit einer Mikroinstruktionsfolge für jede Programminstruktion und ohne Überlappung
der Ausführung. Wenn nur die 32 am häufigsten auftretenden Ausführungstypen, die 4 am häufigsten auftretenden
Modifiziertypen und die 16 am häufigsten auftretenden Operandentypen gewählt werden, sind nur
2048 Mikroinstruktionen erforderlich, was eine wesentliche Reduzierung darstellt. Dies wird dadurch erreicht,
daß der Decodierer 16 so ausgelegt wird, daß er bei Anzeige einer der weniger häufig vorkommenden
Instruktionstypen ein Signal erzeugt, das bewirkt, daß die Verarbeitungseinrichtung den nlchtüberlappenden
Betrieb aufnimmt. Dies verhindert, daß die in Frage stehende Instruktion in die Pipeline gelangt, bis alle vorausgehenden
Instruktionen abgeschlossen sind, und verhindert, daß nachfolgende Instruktionen in die Pipeline
gelangen, bis die in Frage kommende Instruktion abgeschlossen Ist.
Wie in der Zeichnung dargestellt, wird der Inhalt des Pufferregisters 15 einer Reihe von Registern 22, 23, 24
synchron mit dem Fluß von Signalen durch die Pufferregister 17, 18, 19 aufgegeben. Der Inhalt dieser Register
wird nicht von der Einrichtung in normaler Betriebsweise verwendet, sondern dient als Aufzeichnung darüber, welche
Instruktionen laufend in der Pipeline zu Überwa-. chungs- und Untersuchungszwecken vorhanden sind.
Datenverarbeitungsstufe
Die drei Datenverarbeitungsstufen DFX-DFi werden
vorzugsweise als genormte Einheiten ausgebildet und sind im wesentlichen identisch im Aufbau, obgleich sie
natürlich unterschiedliche Funktionen ausführen. F i g. 5 zeigt eine der Einheiten im Detail.
Das Herzstück der Datenverarbeitungsstufe ist eine Rechenschaltung 25, die Additionen, Subtraktionen und
Vergleiche an einem Paar von Eingangsoperanden durchführen kann. Eine dieser Operanden wird aus einem
Speicher 26 mit direktem Zugriff entnommen, während der andere über einen Multiplexer 27 aus einem zweiten
Speicher 28 mit direktem Zugriff stammt. Im Betrieb sind die beiden Speicher 26 und 28 so ausgelegt, daß sie
identische Kopien der gleichen Information halten und als abwechselnde Quellen dieser Information wirken,
wobei ein beliebiges Paar von Operanden, das in ihnen gehalten wird, gleichzeitig zugegriffen werden kann.
Diese Speicher 26, 28 stellen örtliche Arbeitsflächen für die Datenverarbeitungsstufe dar und ergeben auch
bestimmte, speziell definierte Register (z. B. Basisregister, Programmzustandsregister usw.).
Der Multiplexer 27 kann alternativ den zweiten Operanden aus dem Ausgang des Hauptspeichers oder des
Speichers 13 oder (im Falle von DFl) aus dem AVTeil des
Pufferregisters 15 auswählen.
Der Resultatsausgang der Rechenschaltung wird wieder den Dateneingängen der Speicher 26, 28 aufgegeben
und kann in sie gleichzeitig eingeschrieben werden. Der
Ausgang der Rechenschaltung kann auch dem Adressenregister (nicht dargestellt) des Hauptspeichers aufgegeben
werden oder kann als Eingangsdaten für den Hauptspeicher oder den Speicher 13 verwendet werden, oder aber
kann (im Falle von DF3) dem Programmzähler 14 als Sprungadresse aufgegeben werden.
Mikroprogrammsteuereinheit
Nach Flg. 6 weist die Mikroprogrammsteuereinheit einen Mikroprogrammspeicher 30 auf, der die Folgen von
Mlkroinstruktionen hält, auf die oben Bezug genommen worden ist. Dieser Speicher wird mit Hilfe eines Mikroprogramm-Adressenregisters
31 adressiert, und im Betrieb werden Mikroinstruktionen aus dem Speicher einzeln zur Ausführung ausgelesen.
Jede Mikroinstruktion muß die durchzuführenden
Aktionen gleichzeitig durch die drei getrennten Datenverarbeitungsstufen DFX-DFi bezeichnen. Dies erfordert
eine sehr breite Mikroinstruktion, die eine große Informatlonsmenge
enthält. Breite Mikroinstruktionen sind jedoch aufwendig, da sie einen großen Speicherplatz
benötigen. Um dieses Problem zu vermeiden, wird der Teil der Mikroinstruktion, der sich mit der Erzeugung
von Steuersignalen für die Datenverarbeitungsstufen befaßt, mit dem Inhalt eines Fehlerkennzeichenregisters
32 vor dem Decodieren mit Hilfe eines Mlkroinstruktions-Decodierers (Speicher) 33 mit direktem Zugriff
kombiniert, damit die Steuersignale für die Datenverarbeitungsstufen erzeugt werden. Das Fehlerkennzeichenregister
32 ist so ausgelegt, daß es relativ statische Steuerinformation hält, die sich nicht sehr häufig von
einer Mikroinstruktion zur nächsten ändern, während die Mikroinstruktionen den variableren Teil der Steuerinformation
bilden. Dadurch ergibt sich, daß die Mlkro-Instruktion wesentlich kürzer ist als sie sein würde, wenn
sie die gesamte Steuerinformation für die Datenverarbeitungsstufen
halten müßte.
Das Fehlerkennzeichenregister 32 kann erforderlichenfalls mit Hilfe spezieller Mikroinstruktionen oder aus
dem Decodierer 16 fortgeschaltet werden.
Die Steuersignale aus dem Mikroinstruktions-Decodierer (Speicher) 33 steuern die Speicher 26, 28, den Multiplexer
27 und die Funktion der Rechenschaltung 25 in den drei Datenverarbeitungsstufen.
Andere Teile der Mikroinstruktion ergeben eine Adresse für den Speicher 13 und eine Sprungadresse zum
Einschreiben in das Mikroprogramm-Adressenregister 31 im Falle eines Sprunges im Mikroprogramm.
Der übrige Teil der Mikroinstruktion wird (mit Hilfe eines Speichers 34 mit direktem Zugriff) decodiert, um
Steuersignale zu erzeugen, die Sprungadressen in das Mikroprogramm-Adressenregister und den Programmzähler
In der gewünschten Welse weiterschalten oder füllen. Der Speicher 34 erzeugt ferner am Ende einer jeden
Mikroprogrammfolge ein »Verschiebe«-Signal, das bewirkt, daß der Inhalt der Pufferregister nach vorwärts
um eine Stufe verschoben wird; d. h., daß der Inhalt des
Pufferregisters 18 in das Register 19, der des Registers 17 in das Register 18 und der Ausgang des Decodierers 16 in
das Register 17 eingeführt wird. Das »Verschiebe«-Signal leitet auch das Abrufen einer anderen Programminstruktion
aus dem Hauptspeicher in das Pufferregister 15 ein. Dieses Signal füllt auch das Mikroprogramm-Adressenregister
31 mit der Startadresse der nächsten Mikroprogrammfolge, die ausgeführt werden soll.
Die Mikroprogramm-Startadresse wird aus einer einschreibbaren Indextabelle 35 abgeleitet, die ihrerseits
durch den Ausgang der Kombinierschaltung 20 adressiert wird. Somit hängt die Wahl der neuen Mikroprogrammfolge
von den neuen Inhalten der Pufferregister 17,18,19 nach dem Verschieben ab.
Hierzu 3 Blatt Zeichnungen
Claims (3)
1. Nach dem Pipeline-Prinzip arbeitende Datenverarbeitungseinrichtung
mit einer Vielzahl von Datenverarbeltungsstufen und einer Vielzahl von Pufferregistern,
die in Serie geschaltet sind, damit ein Strom von Steuercodes der Reihe nach durch die Pufferregister
geführt werden kann, gekennzeichnet durch eine Kombinierschaltung (20), die die Inhalte
der Pufferregister (17, 18, 19) kombiniert und Ausgangssignale erzeugt, die charakteristisch für die jeweilige
Kombination von Steuercodes sind, welche gerade in den Pufferregistern vorhanden sind, und
eine an sich bekannte Mikroprogrammsteuereinheit (12), die die von der Kombinierschaltung (20) erhaltenen
Ausgangssignale als Startadresse zum Auswählen einer Folge von Mikroinstruktlonen verwendet, die
für die bestimmte Kombination von Steuercodes geeignet ist, wobei die Mikroprogrammsteuereinheit
(12) Steuersignale parallel für alle Datenverarbeitungsstufen (DFi-DRS) sendet.
2. Datenverarbeitungseinrichtung nach Anspruch 1, gekennzeichnet durch einen Decodierer
(16), der eine Maschineninstruktion (F) decodiert, um die Steuercodes (51, 52, 53) zur Einführung in das
erste Pufferregister (17) zu erzeugen.
3. Datenverarbeitungseinrichtung nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die Mikroprogrammsteuereinheit
(12) einen die Mikroinstruktior.en haltenden Mikroprogrammspeicher (30) und einen
Mikrolnstruktions-Decodierer (33) für die Erzeugung der Steuersignale für alle Datenverarbeitungsstufen
aufweist, und daß jede aus dem Mikroprogrammspeicher (30) ausgelesene Mikroinstruktlon mit dem Ausgang
eines Fehlerkennzeichenregisters (32) kombiniert wird, bevor sie durch den Mikrolnstruktions-Decodierer
(33) decodiert wird.
Die Erfindung bezieht sich auf eine nach dem Pipeline-Prinzip
arbeitende Datenverarbeitungseinrichtung entsprechend dem Oberbegriff des Hauptanspruchs.
Der grundsätzliche Vorteil einer nach dem Pipeline-Prinzip arbeitenden Datenverarbeitungseinrichtung liegt
darin, daß hohe Verarbeitungsgeschwindigkeiten aufgrund der parallelen Arbeitsweise der Mehrfach-Verarbeitungsstufen
erzielt werden können. Die effektive Verarbeitungsgeschwindigkeit wird durch die Geschwindigkeit
bestimmt, mit der die Durchführung der Befehle eingeleitet werden kann, nicht durch die Zeit, die erforderlich
ist, um jeden einzelnen Befehl auszuführen.
Aus der US-PS 39 49 379 ist eine nach dem Pipeline-Prinzip arbeitende Datenverarbeitungseinrichtung
bekannt, die eine Vielzahl von in Serie geschalteten Pufferregistern besitzt. Der Operandencodeteil einer jeden
Instruktion, die von der Verarbeitungseinrichtung abgerufen wird, wird in den ersten Puffer In der Serie eingeführt.
Der Operandencode wird dann durch jedes Register nacheinander verschoben und wird schließlich In das
Rechenwerk der Verarbeitungseinrichtung eingeführt. Damit wird gewährleistet, daß der Operandencode am
Rechenwerk gleichzeitig mit den entsprechenden Operanden ankommt.
Des weiteren 1st in der US-PS 38 75 391 eine nach dem Pipeline-Prinzip arbeitende Datenverarbeitungseinrichtung
bekannt, In der aus den Maschineninstruktionen abgeleitete Steuercodes nacheinander durch eine Serie
von Pufferregistern verschoben werden. Die Steuercodes in den Puffern werden mit Hilfe entsprechender Deco-
10
dierschaltungen getrennt decodiert, damit getrennte Steuersignale für die Verarbeitungsstufen erzielt werden.
Die Operationen der Verarbeitungsstufen werden somit unabhängig gesteuert.
Aus »IEEE Transactions on Computers«, Band C-22, Seiten 143 bis 153 ist eine nach dem Pipeline-Prinzip
arbeitende Datenverarbeitungseinrichtung mit Mikroprogrammsteuerung bekannt. Die Verarbeitungseinrichtung
besitzt zwei Datenverarbeitungsstufen, deren jede ihr eigenes, getrenntes Mikroprogrammadressenregister zum
Adressieren eines gemeinsamen Mikroprogrammspeichers besitzt. Die beiden Stufen können somit gleichzeitig
unterschiedliche Mikroprogramme ausführen, und damit sind die Operationen der beiden Stufen effektiv
unabhängig voneinander.
Weil bei derartigen bekannten, nach dem Pipeline-Prinzip arbeitenden Datenverarbeitungseinrichtungen die
Verarbeitungsstufen unabhängig voneinander arbeiten, ist es erforderlich, spezielle Vorkehrungen zu treffen, um
ihre Operationen zu koordinieren. Beispielsweise ist es notwendig, zu verhindern, daß mehr als eine Stufe
gleichzeitig Zugriff zu dem gleichen Speicherplatz hat. Dies kann dadurch erreicht werden, daß spezielle fest
verdrahtete Schaltungen vorgesehen werden, die in dem vorerwähnten IEEE-Aufsatz als Verriegelungen und
Sperren bezeichnet sind, um die Stufen zu koordinieren. Derartige fest verdrahtete Schaltungen sind jedoch kompliziert
und aufwendig auszulegen und herzustellen.
Aufgabe vorliegender Erfindung Ist es, eine nach dem
Pipeline-Prinzip arbeitende Datenverarbeitungsvorrichtung nach dem Oberbegriff des Anspruches 1 anzugeben,
in der das Koordinieren der Datenverarbeitungsstufen ohne spezielle fest verdrahtete Schaltungen erreicht werden
kann.
Gemäß der Erfindung wird dies bei einer nach dem Pipeline-Prinzip arbeitenden Datenverarbeiiungsvorrlchtung
nach dem Oberbegriff des Anspruches 1 mit den Merkmalen des Kennzeichens des Anspruches 1 erreicht.
Weitere Ausgestaltungen der Erfindung sind Gegenstand von Unteransprüchen.
Im Falle vorliegender Erfindung werden alle verschiedenen
Datenverarbeitungsstufen durch eine einzige Mikroprogrammsteuereinheit gesteuert. Da die Steuerung
zentral erfolgt, ist es verhältnismäßig einfach, zu verhln- « dem, daß Speicherzugriffe zusammenfallen, und ferner
sicherzustellen, daß alle Arbeitsvorgänge In der richtigen Reihenfolge durchgeführt werden, da alle diese Faktoren
von einem einzigen Mikroprogramm gesteuert werden. Des weiteren kann die Konstruktion auf einfache Welse
durch erneutes Schreiben des Mikroprogramms geändert werden; des weiteren kann die Hardware in den Verarbeitungsstufen
in einer früheren Stufe Im Laufe der Konstruktion standardisiert werden. Weiterhin ist für vorliegende
Erfindung wesentlich, daß Mikroprogrammfolgen Kombinationen von Befehlen in unterschiedlichen Stufen
der Ausführung ergeben, während Im Gegensatz hierzu bei herkömmlichen mikroprogrammierten
Maschinen jede Mikroprogrammfolge nur einen einzigen Befehl ergibt.
Die Datenverarbeitungseinrichtung nach vorliegender Erfindung zeichnet sich somit gegenüber bekannten
Datenverarbeitungseinrichtungen dadurch aus, daß sie einerseits eine zentrale Steuerung besitzt, die alle Vorgänge
koordiniert, und daß sie andererseits die Steuercodes aus den gerade aktiven Befehlen kombiniert, so
daß eine Startadresse erhalten wird, deren Wert charakteristisch
für die jeweilige Kombination von Instruktionen ist. Diese Startadresse wird dann zur Auswahl einer
bestimmten Mikroprogrammfolge verwendet, die für die Kombination von Befehlen geeignet ist.
Nachstehend wird eine Datenverarbeitungseinrichtung nach der Erfindung in Verbindung mit der Zeichnung
anhand eines Ausführungsbeispieles erläutert. Es zeigen
Fi g. 1 und 2 die Ausführungsphasen der direkten und
indirekten Instruktionen,
Fig. 3 die Art und Weise, wie sich Instruktionen fn der Datenverarbeitungseinrichtung überlappen,
Fig. 4 ein Blockschaltbild der erfindungsgemäßen m
Dajenverarbeitungseinrichtung^
Fig. 5 eine Datenverarbeitungsstufe im einzelnen, und
Fig. 6 die Mikroprogiammsteuerelnheit in detaillierterer
Datenstellung.
15
Instruktionsüberlappung
Bevor der Aufbau der Datenverarbeitungseinrichtung betrachtet wird, wird zunächst beschrieben, w.e die Ausführung
von Instruktionen überlappt wird. -0
Die Instruktionen sind entweder direkt oder indirekt, je nach dem, ob der Speicherplatz des Operanden direkt
durch die Instruktion oder indirekt über einen Hinweis angegeben wird.
In Fi g. 1 ist die Ausführung einer direkten Instruktion in zwei Phasen unterteilt:
(O) die Operandenphase: Sie weist die Erzeugung der Adresse des Operanden und die Ablesung des Operanden
aus dem Speicher auf.
(X.) Die Ausführungsphase: Sie umfaßt die Darbietung
einer spezifizierten Operation am Operanden, ,das Einschreiben des Resultates in den Speicher, falls dies erforderlich
ist, und dann das Weiterschalten des Programmzählers oder das Einführen einer Sprungadresse in den
Zähler.
Nach Fig. 2 wird die Ausführung einer indirekten Instruktion in drei Phasen unterteilt:
(O) Die Operandenphase: Sie ist ähnlich wie Im direkten Fall, anstelle des Operanden selbst wird jedoch ein Hinweis auf den Operanden wieder aufgefunden.
(M) Modifizierphase: Sie umfaßt die Modifizierung des Hinweises in spezifizierter Form, die die Adresse des Operanden ergibt, die dann wieder aufgefunden ist.
(X) Ausführungsphase: Sie Ist die gleiche wie im direkten Fall. Vl i: #1"
(O) Die Operandenphase: Sie ist ähnlich wie Im direkten Fall, anstelle des Operanden selbst wird jedoch ein Hinweis auf den Operanden wieder aufgefunden.
(M) Modifizierphase: Sie umfaßt die Modifizierung des Hinweises in spezifizierter Form, die die Adresse des Operanden ergibt, die dann wieder aufgefunden ist.
(X) Ausführungsphase: Sie Ist die gleiche wie im direkten Fall. Vl i: #1"
Wie nachstehend beschrieben wird, umfaßt die Datenverarbeitungseinrichtung
drei getrennte Datenverarbeitungsstufen, die die Ausführung von bis zu drei aufeinanderfolgenden,
sich überlappenden Instruktionen ermöglichen. Beispielsweise sei eine Folge von sechs
Instruktionen A-F betrachtet, von denen B und C Indirekte
Instruktionen und die übrigen direkte Instruktionen sind. Dann werden diese Instruktionen In der Datenverarbeitungseinrichtung
nach Flg. 3 überlappt, aus der sich ergibt, daß die Ausführungsphase A (X) der Instruktion
A mit der Operandenphase B(O) der Instruktion B
überlappt 1st, usw. Die komplizierteste Überla^pungssltuation
tritt auf, wenn Phasen dreier unterschiedlicher Instruktionen gleichzeitig ausgeführt werden, wie bei
dem Schritt, bei dem D (O), C (M) und B (X) ausgeführt
werden.
Nach Fig. 4 weist die Datenverarbeitungseinrichtung
einen Hauptspeicher 10 auf, der Operanden und Programminstruktionen für die Datenverarbeitungseinrichtung
aufnimmt. Der Speicher besitzt eine zugeordnete Hllfsspeichervorrlchtung 11, die einen verhältnismäßig
kleinen, schnellen Speicher darstellt. Der Hilfsspelcher nimmt KoDlen von Daten auf. die in naher Zukunft vor-
40
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB34259/76A GB1527289A (en) | 1976-08-17 | 1976-08-17 | Data processing systems |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2735814A1 DE2735814A1 (de) | 1978-02-23 |
DE2735814C2 true DE2735814C2 (de) | 1984-06-20 |
Family
ID=10363418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2735814A Expired DE2735814C2 (de) | 1976-08-17 | 1977-08-09 | Nach dem Pipelineprinzip arbeitende Datenverarbeitungseinrichtung |
Country Status (7)
Country | Link |
---|---|
US (1) | US4187539A (de) |
JP (1) | JPS5324243A (de) |
AU (1) | AU509804B2 (de) |
DE (1) | DE2735814C2 (de) |
FR (1) | FR2362444A1 (de) |
GB (1) | GB1527289A (de) |
ZA (1) | ZA774493B (de) |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6019018B2 (ja) * | 1976-12-27 | 1985-05-14 | 富士通株式会社 | デ−タ処理システム |
US4159519A (en) * | 1977-11-21 | 1979-06-26 | Burroughs Corporation | Template family interfacing structure for providing a sequence of microinstructions to a pipelined microprogrammable data processing system |
JPS5621242A (en) * | 1979-07-28 | 1981-02-27 | Fujitsu Ltd | Pipeline control method for computer operation |
US4310880A (en) * | 1979-09-10 | 1982-01-12 | Nixdorf Computer Corporation | High-speed synchronous computer using pipelined registers and a two-level fixed priority circuit |
US4298936A (en) * | 1979-11-15 | 1981-11-03 | Analogic Corporation | Array Processor |
US4598358A (en) * | 1980-02-11 | 1986-07-01 | At&T Bell Laboratories | Pipelined digital signal processor using a common data and control bus |
JPS5794853A (en) * | 1980-12-03 | 1982-06-12 | Hitachi Ltd | Data processor |
DE3166256D1 (en) * | 1981-03-23 | 1984-10-31 | Ibm Deutschland | Device for shortening the cycle time in a data processing device |
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 |
JPS58106636A (ja) * | 1981-12-18 | 1983-06-25 | Hitachi Ltd | パイプライン演算装置 |
US4417039A (en) * | 1982-07-19 | 1983-11-22 | The United States Of America As Represented By The Secretary Of The Air Force | Cis-enyne aromatic and aromatic heterocyclic polymers |
US4630230A (en) * | 1983-04-25 | 1986-12-16 | Cray Research, Inc. | Solid state storage device |
WO1985000453A1 (en) * | 1983-07-11 | 1985-01-31 | Prime Computer, Inc. | Data processing system |
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 |
AU564552B2 (en) * | 1983-11-10 | 1987-08-13 | Fujitsu Limited | Microprogram control method |
JPS60107141A (ja) * | 1983-11-16 | 1985-06-12 | Fujitsu Ltd | プランチ制御方式 |
GB8404480D0 (en) * | 1984-02-21 | 1984-03-28 | Int Computers Ltd | Microprogram control |
JPH0743648B2 (ja) * | 1985-11-15 | 1995-05-15 | 株式会社日立製作所 | 情報処理装置 |
US4783738A (en) * | 1986-03-13 | 1988-11-08 | International Business Machines Corporation | Adaptive instruction processing by array processor having processor identification and data dependent status registers in each processing element |
US4814978A (en) * | 1986-07-15 | 1989-03-21 | Dataflow Computer Corporation | Dataflow processing element, multiprocessor, and processes |
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 | 三菱電機株式会社 | パイプライン制御回路 |
KR970005453B1 (ko) * | 1987-12-25 | 1997-04-16 | 가부시기가이샤 히다찌세이사꾸쇼 | 고속처리에 적합한 데이타 처리장치 |
GB8817911D0 (en) * | 1988-07-27 | 1988-09-01 | Int Computers Ltd | Data processing apparatus |
US5333287A (en) * | 1988-12-21 | 1994-07-26 | International Business Machines Corporation | System for executing microinstruction routines by using hardware to calculate initialization parameters required therefore based upon processor status and control parameters |
US5099421A (en) * | 1988-12-30 | 1992-03-24 | International Business Machine Corporation | Variable length pipe operations sequencing |
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 |
US5251306A (en) * | 1990-01-16 | 1993-10-05 | Advanced Micro Devices, Inc. | Apparatus for controlling execution of a program in a computing device |
JP2580396B2 (ja) * | 1991-01-31 | 1997-02-12 | 富士通株式会社 | パイプラインにおける分岐命令制御方式 |
US5203003A (en) * | 1991-03-28 | 1993-04-13 | Echelon Corporation | Computer architecture for conserving power by using shared resources and method for suspending processor execution in pipeline |
US6128721A (en) * | 1993-11-17 | 2000-10-03 | Sun Microsystems, Inc. | Temporary pipeline register file for a superpipelined superscalar processor |
KR100186916B1 (ko) * | 1994-02-14 | 1999-05-01 | 모리시다 요이치 | 신호처리장치 |
FR2731095B1 (fr) * | 1995-02-23 | 1997-04-30 | Dufal Frederic | Procede et dispositif de commande simultanee des etats de controle des unites d'execution d'un processeur programmable a architecture du type pipeline, notamment un processeur de traitement d'images |
GB2365546B (en) | 1999-12-23 | 2004-02-18 | St Microelectronics Sa | A computer system with two debug watch modes |
GB2366006B (en) * | 1999-12-23 | 2004-06-30 | St Microelectronics Sa | A computer system with debug facility |
WO2016003740A1 (en) | 2014-07-02 | 2016-01-07 | Via Alliance Semiconductor Co., Ltd. | Split-path fused multiply-accumulate operation using first and second sub-operations |
US11061672B2 (en) | 2015-10-02 | 2021-07-13 | Via Alliance Semiconductor Co., Ltd. | Chained split execution of fused compound arithmetic operations |
US10078512B2 (en) | 2016-10-03 | 2018-09-18 | Via Alliance Semiconductor Co., Ltd. | Processing denormal numbers in FMA hardware |
US11334358B2 (en) * | 2019-12-09 | 2022-05-17 | Amazon Technologies, Inc. | Hardware accelerator having reconfigurable instruction set and reconfigurable decoder |
US11841792B1 (en) | 2019-12-09 | 2023-12-12 | Amazon Technologies, Inc. | Instructions with multiple memory access modes |
US11500673B2 (en) | 2020-09-02 | 2022-11-15 | International Business Machines Corporation | Dynamically generating an optimized processing pipeline for tasks |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3626374A (en) * | 1970-02-10 | 1971-12-07 | Bell Telephone Labor Inc | High-speed data-directed information processing system characterized by a plural-module byte-organized memory unit |
US3728692A (en) * | 1971-08-31 | 1973-04-17 | Ibm | Instruction selection in a two-program counter instruction unit |
US3787673A (en) * | 1972-04-28 | 1974-01-22 | Texas Instruments Inc | Pipelined high speed arithmetic unit |
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 |
IT993428B (it) * | 1973-09-26 | 1975-09-30 | Honeywell Inf Systems | Unita di controllo di calcolatore microprogrammato con microprogram mi residenti in memoria e sovrap posizioni delle fasi interpretati ve di una microistruzione con la fase esecutiva della precedente microistruzione |
US3875391A (en) * | 1973-11-02 | 1975-04-01 | Raytheon Co | Pipeline signal processor |
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 |
US4025771A (en) * | 1974-03-25 | 1977-05-24 | Hughes Aircraft Company | Pipe line high speed signal processor |
US4057846A (en) * | 1976-06-07 | 1977-11-08 | International Business Machines Corporation | Bus steering structure for low cost pipelined processor system |
-
1976
- 1976-08-17 GB GB34259/76A patent/GB1527289A/en not_active Expired
-
1977
- 1977-07-25 ZA ZA00774493A patent/ZA774493B/xx unknown
- 1977-08-09 DE DE2735814A patent/DE2735814C2/de not_active Expired
- 1977-08-15 AU AU27895/77A patent/AU509804B2/en not_active Expired
- 1977-08-17 FR FR7725166A patent/FR2362444A1/fr active Granted
- 1977-08-17 JP JP9862577A patent/JPS5324243A/ja active Granted
-
1978
- 1978-07-28 US US05/819,868 patent/US4187539A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
FR2362444B1 (de) | 1984-05-25 |
JPS6110858B2 (de) | 1986-03-31 |
ZA774493B (en) | 1978-06-28 |
FR2362444A1 (fr) | 1978-03-17 |
AU509804B2 (en) | 1980-05-22 |
US4187539A (en) | 1980-02-05 |
GB1527289A (en) | 1978-10-04 |
DE2735814A1 (de) | 1978-02-23 |
JPS5324243A (en) | 1978-03-06 |
AU2789577A (en) | 1979-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2735814C2 (de) | Nach dem Pipelineprinzip arbeitende Datenverarbeitungseinrichtung | |
DE3687724T2 (de) | Digitalprozessorsteuerung. | |
DE2704842C2 (de) | Im Pipeline-Betrieb arbeitende Datenverarbeitungseinrichtung | |
DE2846495C2 (de) | Zentraleinheit | |
DE2753062C2 (de) | Einrichtung zur wiederholten Durchführung von Programmschleifen | |
DE2023354C2 (de) | Datenverarbeitungsanlage mit einem Mikrobefehlsspeicher | |
DE3424962C2 (de) | ||
DE2417795C2 (de) | Datenverarbeitungsanlage | |
DE2542751C2 (de) | Datenverarbeitungsanlage | |
DE1181461B (de) | Adressenaddierwerk einer programm-gesteuerten Rechenmaschine | |
DE2714805A1 (de) | Datenverarbeitungssystem | |
DE2819571A1 (de) | Datenverarbeitungsanlage mit mehreren prozessoren | |
DE3688232T2 (de) | Datenverarbeitungssystem. | |
DE2715073A1 (de) | Mikroprogrammierte rechner-steuervorrichtung | |
DE3043653C2 (de) | Datenverarbeitungsanlage | |
DE2746505A1 (de) | Dv-system mit einer einrichtung zum adressieren in einem festwertspeicher abgelegter mikroprogramme | |
DE2458096C2 (de) | Einrichtung zum Laden von Mikroprogrammen in einer mikroprogrammierbaren Datenverarbeitungsanlage | |
DE2332971C2 (de) | Mikroprogrammsteuereinrichtung | |
DE2539211A1 (de) | Zugriffssteuereinheit | |
DE2801543A1 (de) | Datenverarbeitungsanlage | |
EP0134831A1 (de) | Einrichtung im Befehlswerk eines Fliessbandprozessors zur Befehlsunterbrechung und -wiederholung | |
DE2744359C2 (de) | ||
DE69029608T2 (de) | Digitale Signalprozessorvorrichtung | |
DE2336676B2 (de) | Einrichtung zur Modifizierung von Mikroprogrammbefehlen | |
DE2245284A1 (de) | Datenverarbeitungsanlage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OD | Request for examination | ||
8125 | Change of the main classification |
Ipc: G06F 9/38 |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |