DE2735814C2 - Nach dem Pipelineprinzip arbeitende Datenverarbeitungseinrichtung - Google Patents

Nach dem Pipelineprinzip arbeitende Datenverarbeitungseinrichtung

Info

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
Application number
DE2735814A
Other languages
English (en)
Other versions
DE2735814A1 (de
Inventor
John Richard Salford Lancashire Eaton
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 DE2735814A1 publication Critical patent/DE2735814A1/de
Application granted granted Critical
Publication of DE2735814C2 publication Critical patent/DE2735814C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines

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)

Patentansprüche:
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"
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
DE2735814A 1976-08-17 1977-08-09 Nach dem Pipelineprinzip arbeitende Datenverarbeitungseinrichtung Expired DE2735814C2 (de)

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)

* Cited by examiner, † Cited by third party
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
WO1985002278A1 (en) * 1983-11-10 1985-05-23 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
US9778908B2 (en) 2014-07-02 2017-10-03 Via Alliance Semiconductor Co., Ltd. Temporally split fused multiply-accumulate operation
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

Family Cites Families (11)

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

Also Published As

Publication number Publication date
JPS6110858B2 (de) 1986-03-31
DE2735814A1 (de) 1978-02-23
AU2789577A (en) 1979-02-22
GB1527289A (en) 1978-10-04
JPS5324243A (en) 1978-03-06
FR2362444A1 (fr) 1978-03-17
FR2362444B1 (de) 1984-05-25
AU509804B2 (en) 1980-05-22
US4187539A (en) 1980-02-05
ZA774493B (en) 1978-06-28

Similar Documents

Publication Publication Date Title
DE2735814C2 (de) Nach dem Pipelineprinzip arbeitende Datenverarbeitungseinrichtung
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
DE2417795C2 (de) Datenverarbeitungsanlage
DE2542751C2 (de) Datenverarbeitungsanlage
DE1181461B (de) Adressenaddierwerk einer programm-gesteuerten Rechenmaschine
DE2714805A1 (de) Datenverarbeitungssystem
DE2819571A1 (de) Datenverarbeitungsanlage mit mehreren prozessoren
DE2715073A1 (de) Mikroprogrammierte rechner-steuervorrichtung
DE2746505C2 (de)
DE3424962A1 (de) Datenverarbeitungsverfahren und vorrichtung zur durchfuehrung desselben
DE3043653C2 (de) Datenverarbeitungsanlage
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)
DE2336676B2 (de) Einrichtung zur Modifizierung von Mikroprogrammbefehlen
DE2245284A1 (de) Datenverarbeitungsanlage
DE2759120C2 (de)
DE2359037C2 (de) Rechenanlage
DE2531298A1 (de) Numerisches steuersystem

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