DE2735814A1 - Datenverarbeitungseinrichtung - Google Patents
DatenverarbeitungseinrichtungInfo
- Publication number
- DE2735814A1 DE2735814A1 DE19772735814 DE2735814A DE2735814A1 DE 2735814 A1 DE2735814 A1 DE 2735814A1 DE 19772735814 DE19772735814 DE 19772735814 DE 2735814 A DE2735814 A DE 2735814A DE 2735814 A1 DE2735814 A1 DE 2735814A1
- Authority
- DE
- Germany
- Prior art keywords
- microprogram
- memory
- instruction
- data processing
- decoder
- 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
- 238000012545 processing Methods 0.000 title claims description 27
- 230000015654 memory Effects 0.000 claims description 54
- 239000000872 buffer Substances 0.000 description 17
- 238000012986 modification Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 8
- 230000009471 action Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000010276 construction Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method 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
INTERNATIONAL COMPUTERS LIMITED, ICL House, Putney, London SW15 ISW,
England
Bei einer bekannten Datenverarbeitungseinrichtung wird die Durchführung eines jeden Programmbefehles in eine Anzahl von Phasen
unterteilt, und jede dieser Phasen wird von einer unterschiedlichen Verarbeitungsstufe der Einrichtung durchgeführt, so daß
die Durchführung aufeinanderfolgender Befehle überlappt werden kann. Eine derartige Einrichtung wird als nach dem Pipeline-Prinzip
arbeitende Einrichtung bezeichnet, da der Fluß von Befehlen durch die Verarbeitungsstufen analog dem Fluß von strömendem Medium
durch eine Pipeline ist.
Der Vorteil einer nach dem Pipeline-Prinzip arbeitenden Verarbeitungseinrichtung liegt darin, daß hohe Verarbeitungsgeschwindigkeiten aufgrund der parallelen Arbeitsweise der Mehrfach-Verarbeitungsstufen erzielt werden können. Die effektive Verarbeitungsgeschwindigkeit wird durch die Geschwindigkeit bestimmt, bei welcher die Durchführung der Befehl· eingeleitet werden kann, nicht
durch die Zeit, die erforderlich ist, ua Jeden einzelnen Befehl auszuführen. 809808/072S
Konten: Bayeriech« Vtrainebank (BLZ 78020073) 8SM300
k IMndMn MS M * MI
8.8.1977 W/He - /ί - I/p 9131
-b
27358U
Nach den Pipeline-Prinzip arbeitende Verarbeitungseinrichtungen
stellen Jedoch erhebliche Schwierigkeiten in bezug auf die Synchronisierung und Koordination der Arbeitsweise der verschiedenen
Verarbeitungsstufen dar, um sicherzustellen, daß alle erforderlichen Arbeitsvorgänge in der richtigen Reihenfolge durchgeführt
werden, und um Situationen zu verhindern, bei denen keine Stufe weiter fortschreiten kann, da jede auf eine andere Stufe wartet,
um eine bestimmte Aufgabe abzuschließen, oder bei denen zwei Stufen versuchen, gleichzeitig Zugriff zu einem Speicher oder
einem Register zu erhalten. Dies erfordert einen erheblichen Aufwand an speziell ausgelegten logischen Schaltungen, mit dem
Resultat, daß diese Einrichtungen sehr teuer werden.
Ziel der Erfindung ist es, eine Datenverarbeitungseinrichtung zu
schaffen, bei der die Durchführung von Befehlen überlappt werden kann, bei der Jedoch die vorstehend angesprochenen Probleme vermieden werden.
Genie der Erfindung wird eine Datenverarbeitungseinrichtung vorgeschlagen, die gekennzeichnet ist durch eine Anzahl η von Datenverarbeitung sstufen zur Durchführung entsprechender Phasen der
Ausführung eines Programmbefehles, eine Mikroprogrammsteuereinheit mit einem Mikroprogrammepcieher, der eine Vielzahl von Folgen von
Mikroinstruktionen hält, wobei Jede Mikroinstruktion bewirkt, daß η Steuersignale parallel zu den η Datenverarbeitungsstufen erzeugt
werden, und ein« Vorrichtung zur Aufnahme einer Folge von Programmbefehlen und zur Erzeugung einer Mikroprogrammadresse in Abhängigkeit von den zuletzt aufgenommenen η Befehlen, damit die Mikroprogrammsteuereinheit eine entsprechende Folge der Mikroprogrammfolgen
einleitet.
Mit vorliegender Erfindung werden somit alle verschiedenen Verarbeitungsstufen durch eine einsige Mikroprogrammsteuereinheit gesteuert. Da die Steuerung zentralisiert ist, ist es verhältnismäßig einfach, zu verhindern, daß Speicherzugriffe zusammenfallen,
und sicherzustellen, daß alle Arbeitsvorgänge in der richtigen
809808/0725
8.8.1977 W/He - jr- I/p 9131
* 27358H
Reihenfolge durchgeführt werden, da alle diese Faktoren von einem einzigen Mikroprogramm gesteuert werden. Darüber hinaus kann die
Konstruktion auf einfache Weise durch erneutes Schreiben des Mikroprogrammes geändert werden, und die Hardware in den Verarbeitungsstufen
kann somit in einer früheren Stufe im Laufe der Konstruktion standardisiert werden.
Ein wesentliches Merkmal vorliegender Erfindung besteht darin, daß Mikroprogrammfolgen Kombinationen von Befehlen in unterschiedlichen
Stufen der Ausführung ergeben, im Gegensatz zu herkömmlichen, mikroprogrammierten Maschinen, bei denen jede Mikroprogrammfolge
nur einen einzigen Befehl ergibt.
Eine Datenverarbeitungseinrichtung gemäß der Erfindung wird nachstehend
in Verbindung mit der Zeichnung anhand eines Ausführungsbeispieles erläutert. Es zeigen:
Fig. 1 und 2 die Ausführungsphasen der direkten und indirekten Befehle,
Fig. 3 die Art und Weise, wie Befehle in der Einrichtung sich überlappen,
Fig. 4 ein Blockschaltbild der erfindungsgemäßen Einrichtung,
Fig. 5 einen Datenfluß im einzelnen, und
Fig. 6 das Mikroprogrammsteuergerät in detailierterer Darstellung.
Bevor der Aufbau der erfindungsgemäßen Einrichtung betrachtet
wird, wird zunächst beschrieben, in welcher Weise die Durchführung von Befehlen überlappt wird.
809808/0726
8.8.1977 W/He - /f'-
I/p 9131
s 27358H
Bei der erfindungsgemäßen Einrichtung sind die Instruktionen entweder direkt oder indirekt, je nach dem, ob der Speicherplatz
des Operanden direkt durch den Befehl oder indirekt über einen Hinweis angegeben wird.
In Fig. 1 ist die Ausführung eines direkten Befehles in zwei Phasen unterteilt:
(0) Die Operandenphase: Diese weist die Erzeugung der Adresse des Operanden und die Ablesung des Operanden aus dem Speicher
auf.
(X) Die Ausführungsphase: Diese 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 eines indirekten Befehles in drei Phasen unterteilt:
(0) Die Operande phase: Diese ist ähnlich wie im direkten Fall,
anstelle des Operanden selbst wird jedoch ein Hinweis auf den Operanden wieder aufgefunden.
(M) Modifizierphase: Diese umfaßt die Modifizierung des Hinweises in spezifizierter Form, die die Adresse des Operanden ergibt, die
dann wiedergefunden ist.
(X) Ausführungsphase: Diese ist die gleiche wie im direkten Fall.
Wie nach beschrieben wird, besitzt die erfindungsgemäße Einrichtur
drei getrennte Verarbeitungsstufen, die die Ausführung von bis zu
drei aufeinanderfolgenden, sich überlappenden Befehlen ermöglicher Beispielsweise sei eine Folge von sechs Befehlen A bis F betrachtet,
von denen B und C indirekte Befehle und die übrigen direkte
809808/0725
8.8.1977 W/He - y~ I/p 9131
Befehle sind. Dann werden diese Befehle in der Einrichtung nach Fig. 3 überlappt, aus der sich ergibt, daß die Ausführungsphase
A(X) des Befehles A mit der Operandenphase B(O) des Befehles B überlappt ist, usw. Die komplizierteste Überlappungssituation
tritt auf, wenn Fhasen dreier unterschiedlicher Befehle 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 erfindungsgemä'ße Einrichtung einen Hauptspeicher
10 auf, der Operanden und Frogrammbefehle für die Einrichtung aufnimmt. Der Speicher besitzt eine zugeordnete Hilfsspeichervorrichtung
11, die einen verhältnismäßig kleinen schnellen Hilfsspeicher enthält. Der Hilfsspeicher nimmt Kopien von
Daten auf, die in naher Zukunft voraussichtlich benötigt werden, und wenn ein Datenausdruck aus dem Hauptspeicher angefordert wird,
wird zuerst eine Prüfung vorgenommen, um festzustellen, ob die
Anforderung durch einen Zugriff zum Hilfsspeicher erfüllt werden
kann. Im Idealfall können die meisten Speicherzugriffe von dem Hilfsspeicher erfüllt werden, mit dem Ergebnis, daß die mittlere
Wiederauffinddauer sich der des Hilfsspeichers nähert.
Derartige Hilfsspeichervorrichtungen sind an sich bekannt und
werden deshalb hier nicht im einzelnen erörtert.
Die erfindungsgemäße Einrichtung besitzt drei Verarbeitungsstufen,
die als Datenflüsse DFl - DF3 bezeichnet werden. Diese sind der Durchführung der Operandenphase (0), der Modifikationsphase (M),
falls eine solche vorliegt, und der Auaführungephase (X) eines Befehles gewidmet. Diese drei Stufen sind gleichzeitig parallel
miteinander betätigbar und stellen eine Befehlsausführungs-Pipeline dar, in der die Ausführung von bis zu drei Programrobefehlen
überlappt sein kann, wie oben in Verbindung mit Fig. 3 beschrieben,
Die drei Datenflüsse Werden von einem zentralen Mikroprogramm-Steuergerät
12 gesteuert, da· Steuersignale an alle drei Datenflüsse gleichzeitig gibt, so daß sie parallel die laufenden
809808/0725
8.8.1977 W/He - $r-
I/p 9131
Phasen der Befehle jeweils in der Pipeline ausführen. Beispielsweise sind in der vierten Stufe der Folge nach Fig. 3 die Steuersignale, daß DFl die Operandenphase des Befehles 0, 0F2 die Modifizierphase des Befehles C und DF3 die Ausführungsphase des
Befehles B durchführt. Wenn weniger als drei Befehle gleichzeitig in der Pipeline vorliegen, können einige dieser Steuersignale
"Null«-Signale sein, die bewirken, daß einer oder mehrere der
Datenflüsse leer bleiben.
Die Datenflüsse DFl - DF3 sind mit dem Hauptspeicher 10 (über
die Hilfespeichervorrichtung 11) verbunden, so daß sie in der Lage sind, je nach Bedarf, Daten aus dem Speicher und in den
Speicher su adressieren und zu lesen sowie zu schieben. Die Datenflüsse haben auch Zugriff zu einem verhältnismäßig kleinen,
schnellen Speicher mit direktem Zugriff (RAM) 13, der zur Übertragung von Teilresultaten und anderen Informationen zwischen
ihnen verwendet wird.
Das Adressieren von Programmbefehlen im Hauptspeicher wird durch
einen Programmzähler 14 erreicht. Dieser Zähler wird von Signalen aus dem Mikroprogrammspeichergerät gesteuert, das entweder den
Zähler um eine Einheit weiterschalten kann, so daß ein schrittweises Durchlaufen des Programmes erfolgt, oder ein Füllen mit
einer Sprungadresse, die durch den dritten Datenfluß DF3 erzeugt wird.
Es sind somit vier unterschiedliche Quellen vorhanden, von welchen der Speicher 10 adressiert werden kann, nämlich die drei
Datenflüsse DFl - DF3 und der Programmzähler 14. Alle diese ;
Quellen werden von dem Mikroprogrammsteuergerät gesteuert, so '■■
daß sichergestellt ist, daß nur eine von ihnen den Speicher jeweils zur gleichen Zeit adressiert.
Jeder Befehl kann als aus zwei Teilen F und K bestehend angesehen werden. Der Teil F ist ein Kode, der die durch den Befehl
ausfKuführende Funktion darstellt, während der Teil K den Operanden angibt, auf welchen die Funktion wirkt. K kann eine Operanden-
809808/0725 j
8.8.1977 W/He - yf - I/p 9131
* 27358H
(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.
abWenn ein Befehl aus dem Hauptspeicher gerufen wird, wird er in einen Befehlszwischenspeicher 15 eingeführt. Der Teil K wird
dann dem ersten DatenflußEFl zur Verwendung während der Ausführung
der ersten Fhase des Befehles zugeführt. Der Teil F wird einem Dekodierer 16 aufgegeben, in welchem er dekodiert wird,
damit drei Signale wie folgt erzeugt werden:
(51) Dieses Signal gibt die Aktionen an, die von dem
ersten Datenfluß DFl während der ersten Phase der Ausführung des Befehles entsprechend der Operandenart
des Befehles durchgeführt werden müssen,
(52) Dieses Signal spezifeiert die Aktionen, die von dem
zweiten Datenfluß DF2 während der zweiten Phase eines indirekten Befehles durchgeführt werden müssen.
Im Falle eines direkten Befehles wird eine Nullaktion spezifiziert.
(53) Dieses Signal spezifiziert die Aktionen, die von dem
dritten Datenfluß DF3 während der Endphase der Ausführung durchgeführt werden müssen.
Das Abrufen und Dekodieren des nächsten Befehles wird mit der Ausführung der Befehle laufend in der Pipeline überlappt.
Diese drei Signale Sl - S3 werden in einen ersten Pipeline-Pufferspeicher
17 eingeführt, wo sie gehalten werden, während die erste Phase des Befehles ausgeführt wird. Die letzteren beiden Signale
S2 und S3 werden dann auf einen zweiten Pipeline-Pufferspeicher
übertragen, wo sie während der Ausführung der zweiten Phase des
Befehles gehalten werden (wenn es sich um einen !indirekten Befehl
809808/0725
5.8.1977 W/He ~ ^ ~ 1Zp 9131
27358H
handelt). Schließlich wird das Signal S3 auf einen dritten Pipeline-Pufferspeicher
19 übertragen, in welchem das Signal gehalten wird, während die Endphase des Befehles ausgeführt wird.
Daraus ergibt sich, daß das erste Signal Sl eine einstufige Pipeline,
das zweite Signal S2 eine zweistufige Pipeline und das dritte Signal S3 eine dreistufige Pipeline durchläuft. Die Ausgänge aus
diesen Pipelines (d.h. das Sl-Signal aus dem ersten Pipeline-Pufferspeicher
17, das S2-Signal aus dem zweiten Pipeline-Pufferspeicher
18, und das S3-Signal aus dem dritten Pufferspeicher 19)
werden einer Kontrollsummierschaltung 20 aufgegeben, die diese Signale miteinander mischt und ein Ausgangssignal erzeugt, das
die Information aller drei Signale kombiniert. Dieses Kontrollsummiersignal
wird dem Mikroprogramm-Steuergerät 12 aufgegeben, wo es zur Erzeugung einer Mikroprogramm-Startadresse und somit
zur Einleitung einer entsprechenden Mikroprogranunfolge verwendet
wird.
Daraus ergibt sich, daß die Auswahl der Mikroprogrammfolge von der Kombination des Sl-Signales im ersten Pipeline-Pufferspeicher,
des S2-Signales im zweiten Pipeline-Pufferspeicher und des S3-Signales
im dritten Pipeline-Pufferspeicher abhängt. Mit anderen
Worten heißt dies, daß die Auswahl der Mikroprogrammfolge von der Kombination des Operandentyps des Befehles, der gerade in
der ersten Stufe der Pipeline vorhanden ist, des Modifiziertyps des Befehles in der zweiten stufe und des Ausführungstyps des
Befehles 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. Wenn beispielsweise 64 unterschiedliche Ausführungstypen, 8 unterschiedliche Modifiziertypen,
und 64 unterschiedliche Operandentypen vorliegen, wären 64 χ 8 χ 64 - 40.000 unterschiedliche Mikroprogrammfolgen erforderlich. Wenn die mittlere Folgenlänge drei Mikrobefehle betrHgt, würde die Qesamtmikroprograinmaröße etwa 120.000 Mikrobefehle
5.8.1977 W/He - ?'- I/p 9131
ίο 27358Ί4
betragen, was außerordentlich groß ist. Das
Das Problem kann dadurch reduziert werden, daß nur die normalerweise
am häufigsten auftretenden Befehlstypen in der vorbeschriebenen Weise durchgeführt werden und daß der übrige Teil in herkömmlicher
Weise durchgeführt wird, und zwar mit einer Mikroinstruktionsfolge für jeden Programmbefehl und ohne Überlappung der
Ausführung. Wenn nur die 32 am häufigsten auftretenden Ausführungstypen, die 4 am häufigsten auftretenden Modifiziertypen und 16
am häufigsten auftretenden Operandentypen gewählt werden, sind nur viertausend Makroinstruktionen erforderlich, was eine wesentliche
Reduzierung darstellt. Dies wird dadurch erreicht, daß der Dekodierer 16 so ausgelegt wird, daß er bei Anzeige einer der
weniger häufig vorkommenden Befehlstypen ein Signal erzeugt, das bewirkt, daß die Verarbeitungseinrichtung den nichtüberlappenden
Betrieb aufnimmt. Dies verhindert, daß der in Frage stehende Befehl in die Pipeline gelangt, bis alle vorausgehenden Befehle
abgeschlossen sind, und verhindert, daß nachfolgende Befehle in die Pipeline gelangen, bis der in Frage kommende Befehl abgeschlossen
ist.
Wie in der Zeichnung dargestellt, wird der Inhalt des Befehlspufferspeichers 15 einer Reihe von Registern 22, 23, 24 synchron
mit dem Fluß von Signalen durch die Pipeline-Pufferspeicher 17, ·
18, 19 aufgegeben. Der Inhalt dieser Register wird nicht von der Einrichtung in normaler Betriebsweise verwendet, sondern
dient als Aufzeichnung darüber, welche Befehle laufend in der Pipeline zu Überwachungs- und Untersuchungszwecken vorhanden
sind.
Datenfluß
Die drei Datenflüsse DFl - DF3 werden vorzugsweise als genormte
Einheiten ausgeSildet und sind im wesentlichen identisch im Aufbau, obgleich sie natürlich unterschiedliche Funktionen ausführen.
Fig. 5 zeigt eine der Einheiten im Detail.
809808/0725
5.8.1977 W/He - >0 - I/p 9131
27358U
Das Herzstück des Oatenflusses 1st eine arithmetische Schaltung
25, die Additionen, Subtraktionen und Vergleiche an einem Paar von Eingangsoperanden durchführen kann. Einer dieser Operanden
wird aus einem Speicher 26 mit direktem Zugriff RAM abgeleitet, während der andere über einen Multiplexer 27 aus einem zweiten
Speicher 2t mit direktem Zugriff abgeleitet werden kann. 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 SUf«griffen werden kann. Diese Speicher 26, 28 stellen
örtliche Arbeitsflächen für den Datenfluß dar und ergeben auch
bestimmte, speziell definierte Register (z.B. Basisregister, Prograiunzustandsregister usw.)
Der Multiplexer 27 kann alternativ den zweiten Operanden aus dem Ausgang des Hauptspeichers oder des RAM 13 oder (im Falle
von DFl) aus dem K-TeIl des Befehls-Pufferspeichers 15 auswählen.
Der Resultatausgang der arithmetischen Schaltung wird wieder den Dateneingängen der RAM 26, 28 aufgegeben und kann in sie
gleichzeitig eingeschrieben werden. Der Ausgang der arithmetischen Schaltung kann auch dem Adressenregister (nicht dargestellt)
des Hauptspeichers aufgegeben ,werden oder kann als Eingangsdaten für den Hauptspeicher oder den RAM 13 verwendet werden, oder kann
(im Falle von DF3) demProgrammzähler 14 als Sprungadresse aufgeg eben wer den.
Nach Fig· 6 weist das Mikroprogramm-Steuergerät einen Mikroprogramm-Speicher 30 auf, der die Folgen von Mikrobefehlen hält,
auf dl· oben bezug genommen ist. Dieser Speicher wird mit Hilfe eines Mikroprogramm-Adressenregisters 21 adressiert, und im Betrieb werden Mikroinstruktionen aus dem Speicher einzeln zur
Ausführung ausgelesen.
809808/0725
5.8.1977 W/He - VC - I/p 9131
27358U
Jede Mikroinstruktion muß die durchzuführenden Aktionen gleichzeitig
durch die drei getrennten Datenflüsse DF1-DF3 spezifizieren. Dies erfordert eine sehr weite Mikroinstruktion, die
eine große Informationsmenge 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 Datenflüsse befaßt, mit dem Inhalt eines Fehleranzeigeregisters 32 vor dem Dekodieren mit Hilfe eines Speichers 33 mit
direktem Zugriff kombiniert, damit die Steuersignale für die Datenflüsse erzeugt werden. Das Fehleranzeigeregister 32 ist
so ausgelegt, daß es relativ statische Steuerinformation hält, die sich nicht sehr häufig von einer Mikroinstruktion zur nächsten
ändert, während die Mikroinstruktionen den variableren Teil der Steuerinformation bilden. Dadurch ergibt sich, daß die Mikroinstruktion
wesentlich kürzer ist als sie sein würde, wenn sie die gesamte Steuerinformation für die Datenflüsse halten müßte.
Das Fehleranzeigeregister 32 kann erforderlichenfalls mit Hilfe
von speziellen Mikroinstruktionen oder aus dem Dekodierer 16 fortgeschaltet werden.
Die Steuersignale aus dem Dekodierspeicher 33 steuern die Speicher
26, 28 mit direktem Zugriff, den Multiplexer, 27 und die Funktion des Rechengerätes 25 in den drei Datenflüssen.
Andere Teile der Mikroinstruktion ergeben eine Adresse für den Speicher 13 mit direktem Zugriff, und eine Sprungadresse zum
Einschreiben in das Mikroprogramm-Adressenregister 31 im Falle eines Sprunges im Mikroprogramm.
Der übrige Teil der .Mikroinstruktion wird dekodiert (mit Hilfe
eines Speichers 34 mit direktem Zugriff), um Steuersignale zu erzeugen, die Sprungadressen in das Mikroprogramm-Adressenregister
und den Programmzähler in der gewünschten Weise weiterschalten oder füllen. Der Dekodierspeieher 34 erzeugt ferner am Ende
809808/0725
5.8.1977 W/He - L^ - I/p 9131
27358H
einer jeden Mikroprogrammfolge ein "Verschiebe"-Signal, das bewirkt,
daß der Inhalt der Pipeline-Pufferspeicher nach vorwärts um eine Stufe verschoben wird, d.h., daß der Inhalt des Pufferspeichers
18 in den Speicher 19, der des Speichers 17 in den Speicher 18 und der Ausgang des Dekodierers 16 in den Speicher
eingeführt wird. Das "Verschiebe"-Signal leitet auch das Abrufen
eines anderen Programmbefehles aus dem Hauptspeicher in den Befehls-Pufferspeicher
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 Kontrollsummierschaltung 20 adressiert wird. Somit hängt die Wahl der neuen Mikroprogrammfolge von den neuen Inhalten
der Pufferspeicher 17, 18, 19 nach dem Verschieben ab.
Mit der erfindungsgemäßen Einrichtung werden hohe Verarbeitungsgeschwindigkeiten erzielt, weil überlappend gearbeitet wird, ohne
daß die Probleme der Verriegelung auftreten, die üblicherweise bei Pipeline-Verarbeitungseinrichtungen vorliegen. Darüber hinaus
ist die Einrichtung ausserordentlich flexibel, weil sie mikroorograminiert
ist.
809808/0725
Lee ftf
r s e
te
Claims (3)
- 5.8.1977 W/He - ><- Ι/ρ 913127358ΊΑPatentansprüche;Datenverarbeitungseinrichtung mit einer Vielzahl von Datenverarbeitungsstufen, die so ausgelegt sind, daß sie eine Folge von Frogrammbefehlen in sich überlappender Weise ausführen, und mit einem Mikroprogrammsteuergerät, das einen Mikroprogrammspeicher besitzt, der eine Vielzahl von Folgen von Mikroinstruktionen enthält, gekennzeichnet durch eine Befehlsdekodieranordnung (16-20), die eine Mikroprogrammstartadresse erzeugt, deren Wert von der Kombination der Werte der r^ zuletzt aufgetretenen Programmbefehle abhängt, und daß die Mikroprogrammsteuereinheit (12) einen Dekodierer (33) aufweist, der jeden Mikrobefehl dekodiert, welcher aus dem Mikroprogrammspeicher (30) ausgelesen wird, wobei n, Steuersignale erzeugt werden, die parallel entsprechenden der ri Verarbeitungsstufen (DFl, DF3) aufgegeben werden.
- 2. Datenverarbeitungsänrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Befehlsdekodieranordnung einen Dekodierer (16) für das Dekodieren eines jeden Programmbefehles zum Erzeugen einer Anzahl von r± Kodesignalen (Sl, S2, S3), Register (17, 18, 19), die eine Anzahl von r\ Pipelines bilden, welche entsprechende der Kodesignale (Sl, S2, S3) aufnehmen, und eine Kontrollsummierschaltung (20), die die Ausgangssignale aus den n. Pipelines kombiniert, aufweist.
- 3.Datenverarbeitungseinrichtung nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die Mikroprogrammsteuereinheit (12; Fehlerkennzeichenregister (32) aufweist, und daß der Inhalt einer jeden Mikroinstruktion, die aus dem Mikroprogrammspeicher (30) ausgelesen wird, mit dem Inhalt des Fehlerkennzeichenregisters(32) kombiniert wird, bevor der Dekodierer (33) dekodiert.809808/0726ORIGINAL INSPECTED
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 true DE2735814A1 (de) | 1978-02-23 |
DE2735814C2 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 |
US4812970A (en) * | 1983-11-10 | 1989-03-14 | Fujitsu Limited | Microprogram control system |
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 |
CN106126189B (zh) | 2014-07-02 | 2019-02-15 | 上海兆芯集成电路有限公司 | 微处理器中的方法 |
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 |
US11841792B1 (en) | 2019-12-09 | 2023-12-12 | Amazon Technologies, Inc. | Instructions with multiple memory access modes |
US11334358B2 (en) * | 2019-12-09 | 2022-05-17 | Amazon Technologies, Inc. | Hardware accelerator having reconfigurable instruction set and reconfigurable decoder |
US11500673B2 (en) | 2020-09-02 | 2022-11-15 | International Business Machines Corporation | Dynamically generating an optimized processing pipeline for tasks |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3949379A (en) * | 1973-07-19 | 1976-04-06 | International Computers Limited | Pipeline data processing apparatus with high speed slave store |
Family Cites Families (10)
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 |
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 JP JP9862577A patent/JPS5324243A/ja active Granted
- 1977-08-17 FR FR7725166A patent/FR2362444A1/fr active Granted
-
1978
- 1978-07-28 US US05/819,868 patent/US4187539A/en not_active Expired - Lifetime
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3949379A (en) * | 1973-07-19 | 1976-04-06 | International Computers Limited | Pipeline data processing apparatus with high speed slave store |
Non-Patent Citations (2)
Title |
---|
IBM Technical Disclosure Bulletin, Vol. 11, Nr. 5, Okt. 1968, S. 515 * |
IEEE Transactions on Computers, Vol. C-22, No. 2, Feb. 1973, S. 143-153 * |
Also Published As
Publication number | Publication date |
---|---|
FR2362444B1 (de) | 1984-05-25 |
JPS6110858B2 (de) | 1986-03-31 |
AU509804B2 (en) | 1980-05-22 |
US4187539A (en) | 1980-02-05 |
AU2789577A (en) | 1979-02-22 |
ZA774493B (en) | 1978-06-28 |
JPS5324243A (en) | 1978-03-06 |
DE2735814C2 (de) | 1984-06-20 |
GB1527289A (en) | 1978-10-04 |
FR2362444A1 (fr) | 1978-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2735814A1 (de) | Datenverarbeitungseinrichtung | |
DE3587277T2 (de) | System fuer die umgehungssteuerung beim pipelinebetrieb eines computers. | |
DE3686991T2 (de) | Mechanismus fuer parallele speicherdatenabholung und befehlsausfuehrung in einem prozessor mit reduziertem befehlssatz. | |
DE2542751C2 (de) | Datenverarbeitungsanlage | |
DE2934971C2 (de) | Nach dem Fließbandprinzip arbeitender Zentralprozessor | |
DE2555963C2 (de) | Einrichtung zur Funktionsmodifizierung | |
EP0097725B1 (de) | Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen | |
DE2023354C2 (de) | Datenverarbeitungsanlage mit einem Mikrobefehlsspeicher | |
DE3424962C2 (de) | ||
DE2813128C2 (de) | Steuereinrichtung für Mikroprogrammspeicher | |
DE2318069C2 (de) | Mikroprogrammierte Rechenanlage mit Erweiterung von Steuerfunktionen mittels festverdrahteter logischer Matrix | |
DE2714805A1 (de) | Datenverarbeitungssystem | |
DE1181461B (de) | Adressenaddierwerk einer programm-gesteuerten Rechenmaschine | |
DE3043653C2 (de) | Datenverarbeitungsanlage | |
DE2715073A1 (de) | Mikroprogrammierte rechner-steuervorrichtung | |
DE2746505A1 (de) | Dv-system mit einer einrichtung zum adressieren in einem festwertspeicher abgelegter mikroprogramme | |
DE69632655T2 (de) | Pipeline-Datenverarbeitungsanordnung zur Durchführung einer Mehrzahl von untereinander datenabhängigen Datenprozessen | |
DE1549474B2 (de) | Anordnung in einer elektronischen digitalen Datenverarbeitungsanlage zur Ausführung eines ersten Befehls und gleichzeitigen Decodierung eines folgenden Befehls | |
DE2401364A1 (de) | Datenverarbeitungssystem | |
DE3689217T2 (de) | Datenverarbeitungseinrichtung mit einer Schaltung zur Prüfung der Adressgrenzen in einem virtuellen Speicher. | |
DE2617485A1 (de) | Verfahren und schaltungsanordnung zur abarbeitung von mikrobefehlsfolgen in datenverarbeitungsanlagen | |
DE2245284A1 (de) | Datenverarbeitungsanlage | |
DE2336676A1 (de) | Einrichtung zur modifizierung von mikroprogrammbefehlen | |
DE68928041T2 (de) | Mikroprogrammgesteuerter Mikroprozessor mit Zeiger-Register und Zugriffsverfahren dafür | |
DE2723706A1 (de) | Einrichtung zum adressenvergleich |
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 |