DE2735814A1 - Datenverarbeitungseinrichtung - Google Patents

Datenverarbeitungseinrichtung

Info

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
Application number
DE19772735814
Other languages
English (en)
Other versions
DE2735814C2 (de
Inventor
John Richard 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 or look ahead
    • G06F9/3867Concurrent 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
Datenverarbeitungseinrichtung Die Erfindung bezieht sich auf Dätenverarbeitungseinrichtungen.
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.
Instruktionsüberlappung
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.
Mlkroproqramm-SteuerqerMt
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)

  1. 5.8.1977 W/He - ><- Ι/ρ 9131
    27358ΊΑ
    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. 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 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. 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/0726
    ORIGINAL INSPECTED
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 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)

* 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
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)

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

* 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
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

Patent Citations (1)

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

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