DE3854142T2 - Vektorrechner. - Google Patents
Vektorrechner.Info
- Publication number
- DE3854142T2 DE3854142T2 DE3854142T DE3854142T DE3854142T2 DE 3854142 T2 DE3854142 T2 DE 3854142T2 DE 3854142 T DE3854142 T DE 3854142T DE 3854142 T DE3854142 T DE 3854142T DE 3854142 T2 DE3854142 T2 DE 3854142T2
- Authority
- DE
- Germany
- Prior art keywords
- register
- data
- read
- write
- memory
- 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 - Lifetime
Links
- 239000013598 vector Substances 0.000 title claims description 72
- 238000010586 diagram Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8061—Details on data memory access
-
- 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/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
Description
- Die vorliegende Erfindung bezieht sich auf einen Vektorrechner, der auf Vektorverarbeitung basiert, die von einem Rohrleitungs- bzw. Pipelinesystem durchgeführt wird.
- Eine Operation der wiederholten Durchführung der gleichen Operation für Vektordaten, die regulär in einem Speicher gespeichert sind, heißt eine Vektoroperation. In Fortran beispielsweise wird eine Vektoroperation der Vektoren A, B und C, wie in Fig. 1A gezeigt, so durchgeführt, daß die Verarbeitung, in der eine Operation unter Verwendung von B(I) und C(I) als Operanden durchgeführt und ein Operationsergebnis in den (die) Bestimmungsort (bzw. Ergebnisvariable) A(I) eingesetzt wird, wiederholt durchgeführt wird, während der Suffix I fortlaufend durch eine DO-Schleife geändert wird.
- Ein Pipelinesystem ist als ein Verfahren zur Erhöhung einer Operationsgeschwindigkeit der Vektoroperation bekannt. Gemäß dem Pipelinesystem, in dem die Anzahl der Abschnitte bzw. Stufen einer Pipeline auf drei gesetzt ist, wird eine Operation, gezeigt in Fig. 1A, wie in Fig. 1B durchgeführt.
- Zunächst werden im Zyklus 1 die Adressen von B(1) und C(1) als Leseadressen gesetzt, und eine Adresse von A(1) wird als Schreibadresse gesetzt. Dann werden B(1) und C(1) ausgelesen, und eine Operation B(1) + C(1) wird an einer gegebenen Stufe in der Pipeline gestartet. In diesem Fall wird vorausgesetzt, dar die Operation zwei Zyklen benötigt.
- Im nächsten Zyklus 2 werden, obwohl die in Zyklus 1 gestartete Operation kontinuierlich ausgeführt wird, die Adressen von B(2) und C(2) als Leseadressen gesetzt. Dann werden E(2) und C(2) ausgelesen, und eine Operation B(2) + C(2) wird in einer anderen Stufe der Pipeline gestartet. In diesem Fall ist, da ein Operationsergebnis B(1) + C(1) im Zyklus 2 noch nicht erhalten ist, die Adresse von A(1) noch als die Schreibadresse gesetzt.
- In Zyklus 3 wird, da das Ergebnis A(1) der in Zyklus 1 gestarteten Operation erhalten ist, dieses Ergebnis in der gegebenen Stufe geschrieben. Gleichzeitig werden B(3) und C(3) ausgelesen, und eine Operation B(3) + C(3) wird in einer noch anderen Stufe der Pipeline gestartet.
- Ahnlich wird in Zyklus i + 2 ein Ergebnis A(i) einer im Zyklus i gestarteten Operation erhalten. Deshalb wird A(i) geschrieben und gleichzeitig werden B(i+2) und C(i+2) ausgelesen, um eine Operation B(i+2) + C(i+2) durchzuführen. Wenn eine Operation, wie oben beschrieben, wiederholt und kontinuierlich ohne Warten auf ein vorhergehendes Operationsergebnis durchgeführt wird, wird diese Operation als Vektorverarbeitung bezeichnet.
- Gemäß einer solchen Vektorverarbeitung wird, wenn, wie oben beschrieben, zwei Zyklen für eine Operation benötigt werden, das erste Operationsergebnis A(1) mit einer Verzögerung von zwei Zyklen erhalten. Nach dem ersten Operationsergebnis kann aber günstigerweise ein Operationsergebnis nach jedem Zyklus erhalten werden.
- Eine rekursive Operation, in der ein Vektor eines Operanden (A(I)) der gleiche ist wie der der Ergebnisvariablen (A(I+3)), wie in Fig. 2A gezeigt, wird beschrieben. Es wird vörausgesetzt, daß eine Differenz (in diesem Fall drei) zwischen den Suffixen des Vektors A der Ergebnisvariable und des Vektors A des Operanden gleich der Anzahl n (= 3) oder mehr Stufen der Pipeline ist. In diesem Fall kann, wie in Fig. 28 gezeigt, da das Ergebnis A(4) einer in Zyklus 1 gestarteten Operation A(1) + C(1) in Zyklus 2 erhalten und in Zyklus 3 geschrieben wird, A(4) in Zyklus 4 ausgelesen (darauf Bezug genommen) werden. Deshalb kann eine solche rekursive Operation vektoriell verarbeitet werden.
- Bei einer rekursiven Operation wird vorausgesetzt, daß eine Differenz (in diesem Fall eins) zwischen den Suffixen des Vektors A der Ergebnisvariable und des A des Operanden weniger ist als die Anzahl n (= 3) der Stufen der Pipeline, wie in Fig. 3A gezeigt. In diesem Fall kann, da das Operationsergebnis A(2) des in Zyklus 1 gestarteten A(1) + C(1) in Zyklus 2 noch nicht erhalten ist, auf A(2) und C(2) nicht Bezug genommen werden, solange das Schreiben dieses Operationsergebnisses nicht beendet ist, das heißt, es kann nicht vor Zyklus 4 Bezug genommen werden. Deshalb kann, wie in Fig. 3B gezeigt, diese Operation nicht kontinuierlich in jedem Zyklus durchgeführt werden, das heißt, sie kann nicht vektoriell ausgeführt werden.
- Wie oben beschrieben kann, auch wenn das Pipelinesystem gewählt ist, bei einer rekursiven Operation, in der eine Differenz zwischen den Suffixen der Vektoren einer Ergebnisvariablen und eines Operanden kleiner ist als die Anzahl n der Stufen einer Pipeline, Vektorverarbeitung nicht durchgeführt werden.
- Deshalb kann, um eine rekursive Operation durchzuführen, die Anzahl n der Stufen der Pipeline in einem Compiler bzw. Übersetzer im voraus gespeichert werden, um zu bestimmen, ob die Differenz zwischen den Suffixen größer als die Anzahl n der Stufen der Pipeline nach dem Compilieren bzw. Übersetzen ist, wobei gemäß dem Bestimmungsergebnis festgestellt wird, ob bei dieser Operation Vektorverarbeitung durchgeführt wird. In diesem Fall muß jedoch der Compiler, wenn die Anzahl der Stufen der Pipeline erhöht ist, gemäß einer neuen Pipelinestufenanzahl modifiziert werden. Darüber hinaus, wenn die Computer die gleiche Architektur und nur unterschiedliche Anzahlen von Pipelinestufen haben, muß ein Compiler entsprechend der Anzahl der Stufen einer Pipeline jedes Computers zur Verfügung gestellt werden, was in einer mühsamen Herstellung von Compilern resultiert.
- Wenn, wie in Fig. 4 gezeigt, ein Suffix einer Ergebnisvariablen eine Variable k enthält, wird die Variable k nicht beim Compilieren sondern bei der Ausführung bestimmt. Deshalb steht fest, auch wenn k ≥ n bei der Ausführung erhalten wird, daß Vektorverarbeitung nach dem Compilieren nicht möglich ist.
- In einem(r) Unterprogramm bzw. Subroutine, wie in Fig. 5A gezeigt, tritt ein Problem der rekursiven Datenreferenz, wie oben beschrieben, auf, obwohl eine Ergebnisvariable und ein Operand der Anweisungsnummer 10 nicht offensichtlich die gleichen sind, wenn auf die ersten und zweiten Argumente bei einem Aufruf einer Subroutine, wie in Fig. 5B gezeigt, als das gleiche Argument zugegriffen wird. Dieses Problem kann gelöst werden, wenn die gleiche Variable nicht den ersten und zweiten Argumenten zugewiesen wird. Jedoch wird in diesem Fall die Allgemeingültigkeit der Subroutine verloren, und die Kompatibilität des Programms ist reduziert.
- Aus diesem Grund wird in konventionellen Vektorrechnern Vektorverarbeitung bei rekursiven Operationen überhaupt nicht durchgeführt, obwohl es bei einigen Operationen durchgeführt werden kann. Folglich wird eine Operationsgeschwindigkeit auf einen Bruchteil von mehreren Zehnteln von der, die erhalten wird, wenn Vektorverarbeitung durchgeführt wird, reduziert.
- Wie oben beschrieben, wird in einem konventionellen Vektorrechner Vektorverarbeitung überhaupt nicht durchgeführt, wenn eine rekursive Operation durchgeführt werden muß. Folglich ist eine Operationsgeschwindigkeit reduziert.
- Das bekannte Dokument P.M. KOGGE: "The architecture of pipelined computers", 1981, Kapitel 1, Seiten 1-20, Kapitel 4, Seiten 134-141, Kapitel 6, Seiten 212-226 und 269-278, beschreibt das Problem der Abhängigkeit der Lese-nach-Schreib-Anweisung in einem Pipeline-Computer und seine Lösung durch Anhalten der Leitung bzw. Pipe wenn eine Gefahr ermittelt ist, sowie (Abschnitt 6.6.2, Seiten 269-278) einen Computer, der einen Speicher zur Datenspeicherung und eine arithmetische Einheit enthält. Die arithmetische Einheit liest Daten vom Speicher aus, führt eine Operation der ausgelesenen Daten auf der Basis eines Pipelinesystems durch und speichert ein Operationsergebnis in dem Speicher. Darüber hinaus speichert eine Lese-Schreib-Steuereinrichtung eine Schreibadresse der Daten, die der Operation unterworfen sind, und vergleicht, wenn das Auslesen der Daten durch die arithmetische Einheit gefordert ist, eine Leseadresse der Daten mit der gespeicherten Schreibadresse, und verhindert das Lesen der Daten, wenn die Leseadresse mit der Schreibadresse übereinstimmt.
- Darüber hinaus beschreibt das bekannte Dokument Proceedings of the Association for Computing Machinery, März 1977, Band 9, Nr. 1, Seiten 61-102, das Lese-nach- Schreib-(RAW-)Problem in einem Pipelineprozessor, und insbesondere den Operandenkonflikt, der auftritt, wenn eine Speicherstelle gelesen wird, bevor ein vorausgehendes Schreiben auf die Stelle beendet ist, sowie eine Einrichtung zur Erkennung und Behebung von FAW-Gefahren, insbesondere die Behebung von Speicheroperandenkonflikten. Die Lösung besteht in der Differenzierung der Leseoperation, bis das vorausgehende Schreiben beendet ist.
- Es ist eine Aufgabe der vorliegenden Erfindung, einen Vektorrechner zur Verfügung zu stellen, mit dem Vektorverarbeitung in allen Schritten einer rekursiven Operation, die vektoriell verarbeitet werden kann, durchgeführt werden kann, wobei eine Operationsgeschwindigkeit deutlich angehoben wird.
- Um diese Aufgabe zu lösen, stellt die vorliegende Erfindung einen Vektorrechner, wie in Anspruch 1 beschrieben, zur Verfügung.
- Ein Vektorrechner enthält einen Speicher zur Speicherung der Vektordaten, eine Arithmetikeinheit zum sequentiellen Auslesen der Vektordaten vom Speicher, zur Durchführung einer Vektoroperation der ausgelesenen Daten durch ein Pipelinesystem und zur Speicherung eines Operationsergebnisses im Speicher, ein Adreßregister zur Speicherung einer Schreibadresse von Daten, die in jeder Stufe einer Pipeline entsprechend der Stufe der Pipeline verarbeitet werden, und ein Lesesteuergerät zur Feststellung, ob eine Datenleseadresse mit irgendeiner im Adreßregister gespeicherten Schreibadresse übereinstimmt, wenn ein Auslesen der Vektordaten vom Speicher durch die Arithmetikeinheit angefordert wird, und wenn eine Übereinstimmung der Schreibadresse mit der Leseadresse vorhanden ist, die die Arithmetikeinheit in Bereitschaft zum Datenauslesen aus dem durch die Leseadresse bestimmten Speicher versetzt.
- Eine Schreibadresse von Daten, die in jeder Stufe der Pipeline verarbeitet werden, ist in einer Registerdatei entsprechend der Daten gespeichert. Deshalb steht durch Bezugnahme auf die in der Registerdatei gespeicherten Adresse fest, ob die in die Adresse zu schreibenden Daten verarbeitet werden. Aus diesem Grund wird, wenn ein Auslesen der Daten vom Speicher durch die Arithmetikeinheit angefordert wird, eine Datenleseadresse mit den Inhalten der Registerdatei verglichen. Wenn die Leseadresse in der Registerdatei gespeichert ist, erkennt das Lesesteuergerät, daß die Daten, die in die Adresse geschrieben werden müssen, verarbeitet werden und noch nicht bestimmt sind und veranlaßt die Arithmetikeinheit, zum Lesen bereitzustehen. Im Gegensatz dazu, wenn kein solcher Bereitschaftsbefehl erzeugt wird, liest die Arithmetikeinheit sequentiell Vektordaten vom Speicher aus und leitet sie zur Pipeline. Deshalb kann Vektorverarbeitung in allen Schritten, die vektoriell verarbeitet werden können, durchgeführt werden.
- Wie oben beschrieben wird gemäß der vorliegenden Erfindung auch bei einer rekursiven Operation eine Operation durchgeführt, vorausgesetzt, sie kann vektoriell verarbeitet werden, solange kein Leseverbotsbefehl erzeugt wird. Deshalb kann Vektorverarbeitung in allen Schritten durchgeführt werden, die vektoriell verarbeitet werden können, und eine Vektoroperationsgeschwindigkeit kann deutlich erhöht werden.
- Diese Erfindung kann durch die folgende detaillierte Beschreibung besser verstanden werden, wenn sie in Verbindung fit den begleitenden Zeichnungen gebracht wird, in denen:
- Fig. 1A und 1B Ansichten zur Erläuterung der Pipelineverarbeitung sind, die in einem konventionellen Vektorrechner durchgeführt wird;
- Fig. 2A und 2B Ansichten zur Erläuterung der Pipelineverarbeitung einer rekursiven Operation sind, die vektoriell in einem konventionellen Vektorrechner verarbeitet werden kann;
- Fig. 3A und 3B Ansichten zur Erläuterung der Pipelineverarbeitung eines Beispiels einer rekursiven Operation, die nicht in einem konventionellen Vektorrechner vektoriell verarbeitet werden kann, sind;
- Fig. 4 eine Ansicht eines anderen Beispiels einer rekursiven Operation, die nicht in einem konventionellen Vektorrechner vektoriell verarbeitet werden kann, ist;
- Fig. 5A und 5B Ansichten eines noch anderen Beispiels einer rekursiven Operation, die nicht in einem konventionellen Vektorrechner vektoriell verarbeitet werden kann, sind;
- Fig. 6 ein Blockdiagramm eines Vektorrechners ist;
- Fig. 7 ein Blockdiagramm eines Lese-/Schreib- Steuergeräts in einer Ausführungsform gemäß der Erfindung ist;
- Fig. 8 eine Ansicht eines Beispiels einer rekursiven Operation, die nicht in einem konventionellen Vektorrechner vektoriell verarbeitet werden kann, ist; und
- Fig. 9 eine Ansicht zur Erläuterung einer Operation, bei der die in Fig. 8 gezeigte rekursive Operation in der Ausführungsform vektoriell verarbeitet wird, um Pipeline-Verarbeitung durchzuführen, ist.
- Eine Ausführungsform eines Vektorrechners gemäß der vorliegenden Erfindung wird unten mit Bezug auf die begleitenden Zeichnungen beschrieben.
- Fig. 6 ist ein Blockdiagramm, das schematisch eine Anordnung eines Vektorrechners zeigt.
- Dieser Vektorrechner enthält: Speicher (random access memory = Speicher mit wahlfreiem bzw. beliebigem Zugriff) 11 zur Speicherung von Vektordaten; Arithmetikeinheit 12 zum sequentiellen Auslesen der Vektordaten vom Speicher 11 über den Datenbus DATEN, zur Durchführung der auf dem Pipelinesystem basierenden Vektorverarbeitung und zur Speicherung eines Operationsergebnisses im Speicher 11 über den Datenbus DATEN; und Lese-/Schreib-Steuergerät 13 zur Speicherung einer Schreibadresse der Daten, die in jeder Stufe einer Pipeline verarbeitet werden, und zur Verhinderung der Einheit 12, Daten vom Speicher 11 für eine vorbestimmte Zeitdauer auszulesen, um eine rekursive Operation zu bewältigen, die nicht vektoriell verarbeitet werden kann.
- Die Einheit 12 stellt eine Leseadresse RA und eine Schreibadresse WA (über einen Adreßbus AD), ein Operationsergebnis-Bereitstellsignal RR und ein Schreibadreß-Bereitstellsignal WAR dem Lese-/Schreib-Steuergerät 13 zur Verfügung.
- Das Lese-/Schreib-Steuergerät 13 stellt ein Leseverbotssignal RI der Einheit 12 zur Verfügung. Das Lese- /Schreib-Steuergerät 13 stellt auch eine Leseadresse RA und eine Schreibadresse WA' dem Speicher 11 über den Adreßbus AD' zur Verfügung.
- Die Einheit 12 speist ein Lesesignal RD und ein Schreibsignal WD in den Speicher 11 ein.
- Genauer, das Lese-/Schreib-Steuergerät 13 ist, wie in Fig. 7 gezeigt, angeordnet. In Fig. 7 bestehen die Schreibadreß-Speicherregister (nachfolgend als WA- Register bezeichnet) 21 bis 25 aus einem FIFO-(First-in First-out)Register, das sequentiell Schreibadressen WA speichert, die von der Einheit 12 über den Adreßbus AD eingespeist werden, und sie in der Reihenfolge, wie sie gespeichert wurden, ausgibt. Die Anzahl der Stufen dieses Registers entspricht der Anzahl n der Stufen der Pipeline in Einheit 12. In diesem Fall wird angenommen, daß n = 5.
- Jedes der WA-Register 21 bis 25 speichert Schreibadressen WA der Daten, die in jeder Stufe der Pipeline verarbeitet werden. Zustandsregister 31 bis 35 werden entsprechend der WA-Register 21 bis 25 zur Verfügung gestellt. Jedes der Zustandsregister 31 bis 35 ist ein 1- Bit-Register. "1" wird durch das STeuergerät 75 in jedem Zustandsregister 31 bis 35 gesetzt, wenn gültige Daten in einem entsprechenden WA-Register 21 bis 25 vorhanden (geschrieben) sind, und "0" wird durch das Steuergerät 75 in jedem Zustandsregister 31 bis 35 gesetzt, wenn Daten in (von) einem entsprechenden WA- Register 21 bis 25 abwesend sind (ausgelesen werden). Zwischen die WA-Register 21 bis 25 werden entsprechend Auswahleinheiten 41 bis 44 angeordnet. Jede der Auswahleinheiten 41 bis 44 wählt eine Schreibadresse WA und einen gespeicherten Wert eines entsprechenden WARegisters 21 bis 24 aus. Beispielsweise wählt die Auswahleinheit 41 den gespeicherten Wert des WA-Registers 21, wenn der Wert des Zustandsregisters 31 "1" ist, und sie wählt die Schreibadresse WA, wenn der Wert des Zustandsregisters 31 "0" ist. Ähnlich wählen die anderen Auswahleinheiten 42 bis 44 die gespeicherten Werte der WA-Register 22 bis 24, wenn die Zustandsregister 32 bis "1" speichern und sie wählen die Schreibadresse WA, wenn die Zustandsregister 32 bis 34 "0" speichern.
- Die von der Einheit 12 über den Adreßbus AD bereitgestellte Leseadresse RA wird in einem Leseadreßregister (nachfolgend als ein RA-Register bezeichnet) 45 gespeichert. Ein gespeicherter Wert der RA-Register 45 wird mit den gespeicherten Werten der WA-Register 21 bis 25 durch entsprechende Komparatoren 51 bis 55 verglichen. Jeder der Komparatoren 51 bis 55 gibt eine "1" aus, wenn die beiden Eingangswerte jeweils übereinstimmen.
- Die Ausgangssignale der Komparatoren 51 bis 55 und der Zustandsregister 31 bis 35 werden entsprechend in die AND-Gatter 61 bis 65. eingegeben. Deshalb gibt jedes AND-Gatter 61 bis 65 eine "1" aus, wenn eine "1" in ein entsprechendes Zustandsregister 31 bis 35 gesetzt ist, das heißt, wenn gültige Daten in einem entsprechenden WA-Register 21 bis 25 gespeichert sind und die gültigen Daten mit den Daten des RA-Registers 45 übereinstimmen. Die Ausgangssignale der AND-Gatter 61 bis 65 werden in das OR-Gatter 71 eingegeben. Das OR-Gatter 71 gibt ein Leseverbotssignal RI für den Speicher aus, wenn irgendeines der Ausgangssignale der AND-Gatter 61 bis 65 "1" ist.
- Ein Steuergerät 75 steuert eine Gesamtoperation des Lese-/Schreib-Steuergeräts 13. Das Steuergerät 75 gibt Taktsignale CK1 bis CK5 zum Betrieb der WA-Register 21 bis 25 gemäß dem Operationsergebnis-Bereitstellungssignal RR und dem Schreibadreß-Bereitstellungssignal WAR von der Einheit 12 und die Daten in den Zustandsregistern 31 bis 35 aus.
- Eine Operation des Vektorrechners gemäß der Ausführungsform mit der obigen Anordnung wird nachfolgend beschrieben.
- Zunächst wird eine Operation des FIFO-Speichers beschrieben. In einem Anfangszustand sind die Werte der Zustandsregister 31 bis 35 alle "0", und es wird dargestellt bzw. behauptet, daß die Daten in allen WA-Registern 21 bis 25 ungültig sind. Folglich wählen alle Auswahleinheiten 41 bis 44 die Schreibadresse WA.
- Wenn das Schreibadreß-Bereitstellungssignal WAR und die erste Schreibadresse WA eingegeben werden, setzt das Steuergerät 75 den Takt CK5 auf"1", weil alle Werte der Zustandsregister 31 bis 35 "0" sind. Deshalb wird die erste Schreibadresse WA über die Auswahleinheit 44 im WA-Register 25 gespeichert, und gleichzeitig wird im Zustandsregister 35 "1" gesetzt.
- Wenn das Schreibadreß-Bereitstellungssignal WAR auf "1" geht und die nächste Schreibadresse WA eingegeben wird, setzt das Steuergerät 75 den Takt CK4 auf "1", weil im Zustandsregister 35 "1" gesetzt ist. Deshalb wird die nächste Schreibadresse WA über die Auswahleinheit 43 im WA-Register 24 gespeichert. Gleichzeitig wird im Zustandsregister 34 "1" gesetzt.
- Wie oben beschrieben wird, wenn das Schreibbereitstellungssignal WAR auf "1" geht, die Schreibadresse WA sequentiell im untersten leeren WA-Register gespeichert.
- Nachfolgend wird eine Operation beschrieben, die durchgeführt wird, wenn ein Operationsergebnis von der Einheit 12 ausgegeben wird, das heißt, wenn ein Operationsergebnis auf eine Schreibadresse im Speicher 11, die durch die Daten in den WA-Registern 21 bis 25 bestimmt sind, geschrieben wird.
- Wenn das Operationsergebnis-Bereitstellungssignal RR auf "1" geht, wird die vom WA-Register 25 der untersten Stufe ausgelesene Schreibadresse WA' benutzt, um den Speicher 11 über den Adreßbus AD' zu adressieren. Deshalb wird das Register 25 geleert, und die Inhalte der WA-Register 21 bis 24 werden unter Steuerung des Steuergeräts 75 in die unteren Stufen eingeleitet und gespeichert.
- Zu diesem Zeitpunkt, wenn "1"en in den Zustandsregistern 34 und 35 gesetzt sind, und gültige Daten in den WA-Registern 24 und 25 vorhanden sind, wird ein Ausgangssignal vom WA-Register 24 über die Auswahleinheit 44 zum WA-Register 25 übergeben, weil "1" im Zustandsregister 34 gesetzt ist, und "0" wird im Zustandsregister 34 gesetzt. Im Zustandsregister 35 ist noch "1" gesetzt.
- Wenn das Schreibadreß-Bereitstellungssignal WAR und das Operationsergebnis-Bereitstellungssignal RR gleichzeitig auf "1" gehen, wird die im WA-Register 25 gespeicherte Schreibadresse geholt, die Daten in den WA- Registern 21 bis 24 sequentiell an die unteren Stufen 22 bis 25 übergeben und in ihnen gespeichert, und die Schreibadresse WA wird in einem untersten leeren WA- Register gespeichert. Beispielsweise wenn "1"en in den Zustandsregistern 34 und 35 gesetzt sind-und gültige Daten in den WA-Registern 24 und 25 gespeichert sind, werden die Inhalte des WA-Registers 25 als eine Schreibadresse WA' des Speichers 11 ausgelesen, die Inhalte des WA-Registers 24 werden im WA-Register 25 gespeichert und die Schreibabdresse WA wird im WA-Register 24 gespeichert.
- Genauer, da "0" im Zustandsregister 33 gesetzt ist, wählt die Auswahleinheit 43 die Schreibadresse WA aus und gibt sie an das WA-Register 24 aus. Da "1" im Zustandsregister 34 gesetzt ist, wählt die Auswahleinheit die gespeicherten Inhalte des WA-Registers 24 und gibt sie an das WA-Register 25 aus. Zu diesem Zeitpunkt gehen die Takte CK4 und CK5 auf "1", und die WA-Register 24 und 25 speichern die Adressen, die von den Auswahleinheiten 43 und 44 bereitgestellt werden. In den Zustandsregistern 34 und 35 sind noch "1"en gesetzt.
- Eine Operation des Steuergeräts 75 wird beschrieben. Das Steuergerät 75 steuert Transfersteuersignale CKi (i = 1 bis 5) der WA-Register 21 bis 25 und Werte Vi (i = 1 bis 5) der Zustandsregister 31 bis 35 entsprechend der folgenden logischen Gleichungen.
- Cki = (Vi = 0) (Vi+1 = 1) (RR = 0) (WAR = 1) + (Vi = 1) (Vi-1 = 0) (RR = 1) (WAR = 1) + (Vi = 1) (Vi-1 = 1) (RR = 1) ...(1)
- Vi = (Vi = 1) ((RR = 1) (WAR = 0) (Vi-1 = 1) + (RR = 1) (WAR = 1) + (RR = 0) (WAR = 1) + (RR = 0) (WAR = 0)) + (Vi = 0) (Vi+1 = 1) (RR = 0) (WAR = 1) ...(2)
- wobei V0 = 0 und V6 = 1 ist.
- In diesem Fall zeigt eine logische Gleichung (Vi = 0), daß wahr, das heißt "1", erhalten wird, wenn Vi = 0. Eine Schaltung zur Durchführung einer solchen Logikoperation kann einfach durch ein allgemeines Logik-IC realisiert werden, und deshalb ist die detaillierte Beschreibung seiner Anordnung hier unterlassen. Wie oben beschrieben arbeiten die 5 WA-Register 21 bis 25 als ein FIFO. In der obigen Beschreibung ist die Anzahl der Stufen der Pipeline fünf und die Anzahl der Stufen des korrespondierenden FIFO im Lese-/Schreib-Steuergerät 13 auch fünf. Jedoch ist es offensichtlich, daß diese Erfindung auf die Pipeline mit einer beliebigen Anzahl von Stufen angewandt werden kann.
- Bei einer Daten-/Leseoperation wird die Leseadresse RA im RA-Register 45 gespeichert. Diese im RA-Register 45 gespeicherte Adresse wird mit den Inhalten in den WA- Registern 21 bis 25 durch die entsprechenden Komparatoren 51 bis 55 verglichen. Wenn mindestens einer der Inhalte mit der Leseadresse übereinstimmt, es sei denn der Inhalt ist ungültig, das heißt der Wert des entsprechendes Zustandsregisters ist 11011, wird das Leseverbotssignal RI über ein entsprechendes AND-Gatter 61 bis 65 und OR-Gatter 71 ausgegeben. Wenn das Lesesignal RI in die Einheit 12 eingegeben wird, steht die Einheit 12 zum Auslesen der Vektordaten aus dem Speicher 11, der durch eine Leseadresse bestimmt ist, bereit. Das heißt, wenn die Vektordaten des durch die Leseadresse bestimmten Speichers 11 verarbeitet werden; und daher ihre Werte noch nicht im Speicher 11 gespeichert werden, das heißt wenn ihre Schreibadresse in irgendeinem der WA-Register 21 bis 25 gespeichert ist, steht die Einheit 12 zum Auslesen der Daten bereit.
- Nachfolgend wird eine Operation beschrieben, die durchgeführt wird, wenn eine DO-Schleife für eine wie in Fig. 8 gezeigte rekursive Operation, die mit konventioneller Technik nicht vektoriell verarbeitet werden kann, im obigen Vektorrechner ausgeführt wird. Da die Differenz "3" zwischen den Suffixen einer Ergebnisvariable und eines Operanden der Anweisungsnummer 10 kleiner ist als die Zahl "5" der Stufen des Vektorrechners, wird dieses Fortran-Programm in einem konventionellen Vektorrechner nicht vektoriell verarbeitet. In diesem Vektorrechner jedoch kann dieses Programm vektoriell ausgeführt werden, wie in Fig. 9 gezeigt ist.
- Das heißt, um in Zyklus 1 A(4) = A(1) + B(1) auszuführen, gibt die Einheit 12 eine Leseanfrage von A(1) und B(1) aus und überprüft, ob der Speicher 11 ausgelesen werden kann. Diese Operation wird durch Setzen der Adresse der Daten A(1) im RA-Register 45, gezeigt in Fig. 7, und durch deren Vergleich mit den Daten der WA- Register 21 bis 25 durch die entsprechenden Komparatoren 51 bis 55 durchgeführt.
- Man beachte, daß mit der Anordnung von Fig. 7 nur die Leseadressen eines A(I)-Systems überprüft werden können. Um in ähnlicher Weise ein B(I)-System zu überprüfen, müssen ein FIFO (gleichwertig mit WA-Registern 21 bis 25, Zustandsregistern 31 bis 35 und Auswahleinheiten 41 bis 44), Schaltungen, die-mit den Komparatoren 51 bis 55 gleichwertig sind, und Schaltungen, die mit AND-Gattern 61 bis 65 gleichwertig sind, bereitgestellt werden, und-die Ausgangssignale aller AND-Gatter können über das OR-Gatter 71 als ein RI-Signal ausgegeben werden. Da jedoch die in Fig. 8 gezeigte Operation hier als Beispiel einer rekursiven Operation betrachtet wird, wird eine rekursive Datenreferenz nur bezüglich des Vektors A(I) erzeugt. Deshalb sind Schaltungen zum Überprüfen des B(I)-Systems nicht gezeigt.
- Da im Zyklus 1 keine Daten, die als eine Schreibadresse gültig sind, vorhanden sind, geht das Leseverbotssignal RI auf "0". Wenn RI "0" ist, steht fest, daß Daten ausgelesen werden müssen. Deshalb geht das Lesesignal RD auf "1", und A(1) und B(1) werden vom Speicher 11 ausgelesen, wodurch die Operation gestartet wird. Um das in der vierten Stufe erhaltene Operationsergebnis in A(4) zu speichern, wird eine Adresse von A(4) in einem FIFO-Teil gespeichert.
- In den Zyklen 2 und 3 geht RI auf "0", um die Operation zu starten, da die Lesedaten A(2), B(2), A(3) und B(3) wie in Zyklus 1 bestimmt werden, und die Schreibabdressen A(5) bzw. A(6) werden im FIFO-Teil gespeichert. Deshalb werden am Ende des Zykluses 3 die Schreibadressen von A(4), A(5) und A(6) sequentiell in den Schreibregistern 23, 22 und 21 des FIFO-Teils gespeichert.
- Dann gibt die Einheit 12 in Zyklus 4 die Speicherleseanfragen von A(4) und B(4) aus. Da A(4) im WA- Register 23 des FIFO-Teils gespeichert ist, wird im Komparator 53 "1" gesetzt, und das Leseverbotssignal RI geht auf "1". Deshalb stellt die Einheit 12 fest, daß die Daten A(4) noch nicht bestimmt sind, und steht bereit, A(4) vom Speicher 11 auszulesen, bis das Lesesignal RD auf "0" geht.
- In Zyklus 5 wird die in Zyklus 1 gestartete Operation A(1) + B(1) vervollständigt, und das Schreibsignal WD geht auf "1", um ein Operationsergebnis in A(4) zu schreiben. In diesem Zyklus ist das Leseverbotssignal RI noch "1", da A(4) im FIFO-Teil bleibt, und ein Lesebereitschaftszustand wird beibehalten.
- In Zyklus 6 wird ein Operationsergebnis des in Zyklus 2 gestarteten A(2) + B(2) geschrieben. Da A(4) bei einem Übergang vom Zyklus 5 nach 6 vom FIFO-Teil ausgegeben wird, geht das Leseverbotssignal RI auf "0", und A(4) kann ausgelesen werden. Deshalb wird eine Anweisung A(7) = A(4) + B(4) aktiviert, und die Schreibadresse WA von A(7) wird im FIFO-Teil gespeichert.
- In Zyklus 7 wird eine ähnliche Operation wie in Zyklus durchgeführt.
- Wie oben beschrieben können im Vektorrechner gemäß der Ausführungsform der vorliegenden Erfindung alle Operationsschritte vektoriell verarbeitet werden, wobei mit der Ausnahme, daß das Lesen von A(4) um zwei Zyklen verzögert wird, die Operation effizient durchgeführt wird. Darüber hinaus kann entsprechend diesem Vektorrechner sogar in einer Operation, in der eine rekursive Referenzbeziehung erzeugt wird, eine Vektoroperation durchgeführt werden, ohne Rücksicht darauf, ob die Operation vektoriell ausgeführt werden kann.
- Man beachte, daß die vorliegende Erfindung nicht auf die obige Ausführungsform beschränkt ist. Beispielsweise kann die Anzahl der Stufen der WA-Register oder die Anzahl der RA-Register und der Komparatoren beliebig geändert werden.
- Wie oben beschrieben worden ist, kann gemäß der vorliegenden Erfindung in einem Vektorrechner zur Durchführung von Vektorverarbeitung, die auf einem Pipelinesystem basiert, Vektorverarbeitung in allen Schritten, die vektoriell verarbeitet werden können, sogar bei einer Vektoroperation mit einer rekursiven Referenzbeziehung durchgeführt werden. Deshalb kann die Vektoroperation mit extrem hoher Geschwindigkeit ausgeführt werden.
Claims (3)
1. Vektorrechner enthaltend:
einen Speicher (11) zur Speicherung von
Vektordaten;
eine Arithmetikeinheit (12) mit Pipelinestufen
zum Auslesen der Vektordaten vom Speicher (11) mit
Hilfe einer Leseadresse, zur Durchführung einer
Vektoroperation an den aus dem Speicher (11)
ausgelesenen Vektordaten und zur Speicherung eines
Ergebnisses der Vektoroperation im Speicher (11) mit
Hilfe einer Schreibadresse;
einen Leseadreßspeicher (45);
einen Schreibadreßspeicher (21 - 25); und
eine Lese-/Schreib-Steuereinrichtung (13),
wobei die Lese-/Schreib-Steuereinrichtung (13)
die im Leseadreßspeicher (45) gespeicherte
Leseadresse nur mit den Schreibadressen, die in dem
Schreibadreßspeicher (21 - 25) gespeichert sind,
zur Speicherung einer gegebenen Anzahl von
Schreibadressen, die von der Arithmetikeinheit 12
geliefert werden, und zur Erzeugung eines
Leseverbotssignals, wenn mindestens eine der Schreibadressen
mit der Leseadresse übereinstimmt, vergleicht,
dadurch gekennzeichnet, daß
der Schreibadreßspeicher (21 - 25) ein
Schreibadreßspeicher (21 - 25) vom First-in-First-out-Typ
(Zuerst-ein/Zuerst-aus) ist;
die gegebene Anzahl von Schreibadressen, die in
dem Schreibadreßspeicher (21 - 25) gespeichert
sind, gleich der Anzahl der Pipelinestufen der
Arithmetikeinheit ist, und
der Schreibadreßspeicher (21 - 25) enthält:
ein Schieberegister (21 - 25), gebildet aus in
Serie verbundenen Registern, wobei die
Schreibadresse in eines der Register eingegeben wird, und
die Daten vom Register an einer Ausgangsstufe
ausgegeben werden;
Zustandsregister (31 - 35) zur Speicherung von
Daten, die anzeigen, ob Daten in jedem der Register
der Schieberegister (21 - 25) gespeichert sind;
Auswahleinheiten (41 - 44), die jeweils zwischen
ein gegebenes Register und ein vorangehendes
Register der Schieberegister (21 - 25) geschaltet sind,
mit zwei Eingangsklemmen und einer Ausgangsklemme,
wobei jede der Auswahleinheiten entweder die von
der Arithmetikeinheit (12) bereitgestellte
Schreibadresse oder die im vorangehenden Register
gespeicherte Schreibadresse auswählt und an das gegebene
Register ausgibt; und
ein Steuergerät (75) zum Setzen von Daten
entsprechend einem
Operationsergebnis-Bereitstellungssignals und eines
Schreibadreß-Bereitstellungssignal, die von der Arithmetikeinheit erzeugt werden,
in den Zustandsregistern sowie zur Bereitstellung
eines Transfersteuersignals entsprechend dem
Operationsergebnis-Bereitstellungssignal und dem
Schreibadreß-Bereitstellungssignal für das
Schieberegister.
2. Vektorrechner gemäß Anspruch 1, dadurch
gekennzeichnet, daß
das Steuergerät (75) folgende Daten Vi (i = 1
bis n) im i-ten Zustandsregister setzt und das
folgende Transfersteuersignal Cki dem i-ten Register
des Schieberegisters zuleitet:
Vi = (Vi = 1) ((RR = 1) (WAR = 0) (Vi-1 =
+ (RR = 1) (WAR = 1) + (RR = 0) (WAR = 1)
+ (RR = 0) (WAK = 0))
+ (Vi = 0) (Vi+1 = 1) (RR = 0) (WAR = 1)
Cki = (Vi = 0) (Vi+1 = 1) (RR = 0) (WAR = 1)
+ (Vi = 1) (Vi-1 = 0) (RR = 1) (WAR = 1)
+ (Vi = 1) (Vi-1 = 1) (RR = 1)
wobei n die Anzahl der Pipelinestufen der
Arithmetikeinheit ist, i an der Eingangsseite des
Schieberegisters 1 ist, V&sub0; und Vn+1 auf 0 gesetzt sind, RR
das Operationsergebnis-Bereitstellungssignal ist,
WAR das Schreibadreß-Bereitstellungssignal ist, und
eine logische Gleichung (xx = 0) darstellt, daß
Wahrheit erhalten wird, wenn xx = 0.
3. Vektorrechner gemäß Anspruch 1, gekennzeichnet
durch eine Verbotssignalerzeugungseinrichtung zum
Vergleich einer Vielzahl von Daten in den
entsprechenden Stufen des Schreibadreßregisters mit Daten
des Leseadreßregisters, und zur Erzeugung eines
Leseverbotssignals, wenn mindestens eines der Daten
des Schreibadreßregisters mit den Daten des
Leseadreßregisters übereinstimmt,
wobei die Einrichtung
enthält:
Komparatoren (51 - 55) zum Vergleich einer
Vielzahl von Daten in den entsprechenden Registern der
Schieberegister (21 - 25) mit Daten des
Leseadreßspeichers; und
AND-Gatter (61 - 65), jedes zum Empfang eines
Vergleichsergebnisses von einem der Komparatoren
(51 - 55) und eines Ausgangssignals eines
entsprechenden Zustandsregisters (31 - 35), und zur AND-
Verknüpfung beider Signale, um ein
Datenleseverbotssignal zu erzeugen.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP62219152A JPS6462764A (en) | 1987-09-03 | 1987-09-03 | Vector computer |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3854142D1 DE3854142D1 (de) | 1995-08-17 |
DE3854142T2 true DE3854142T2 (de) | 1995-11-09 |
Family
ID=16731019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3854142T Expired - Lifetime DE3854142T2 (de) | 1987-09-03 | 1988-04-20 | Vektorrechner. |
Country Status (4)
Country | Link |
---|---|
US (1) | US4967350A (de) |
EP (1) | EP0305639B1 (de) |
JP (1) | JPS6462764A (de) |
DE (1) | DE3854142T2 (de) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5257394A (en) * | 1988-10-18 | 1993-10-26 | Japan Atomic Energy Research Institute | Logical expression processing pipeline using pushdown stacks for a vector computer |
JPH02109160A (ja) * | 1988-10-18 | 1990-04-20 | Japan Atom Energy Res Inst | ベクトル計算機用演算装置 |
JPH0810451B2 (ja) * | 1989-03-28 | 1996-01-31 | 日本電気株式会社 | 情報処理装置 |
EP0475209A3 (en) * | 1990-09-14 | 1993-09-29 | Siemens Aktiengesellschaft | Arrangement for the determination of instructions modified by the cpu of a processor |
US5247696A (en) * | 1991-01-17 | 1993-09-21 | Cray Research, Inc. | Method for compiling loops having recursive equations by detecting and correcting recurring data points before storing the result to memory |
US5623685A (en) * | 1994-12-01 | 1997-04-22 | Cray Research, Inc. | Vector register validity indication to handle out-of-order element arrival for a vector computer with variable memory latency |
US6038657A (en) * | 1995-10-06 | 2000-03-14 | Advanced Micro Devices, Inc. | Scan chains for out-of-order load/store execution control |
US5754812A (en) * | 1995-10-06 | 1998-05-19 | Advanced Micro Devices, Inc. | Out-of-order load/store execution control |
US5835747A (en) * | 1996-01-26 | 1998-11-10 | Advanced Micro Devices, Inc. | Hierarchical scan logic for out-of-order load/store execution control |
US6115756A (en) * | 1997-06-27 | 2000-09-05 | Sun Microsystems, Inc. | Electro-optically connected multiprocessor and multiring configuration for dynamically allocating time |
JP3733842B2 (ja) * | 2000-07-12 | 2006-01-11 | 日本電気株式会社 | ベクトルスキャタ命令制御回路及びベクトル型情報処理装置 |
US8954484B2 (en) | 2009-06-12 | 2015-02-10 | Cray Inc. | Inclusive or bit matrix to compare multiple corresponding subfields |
US20100115232A1 (en) * | 2008-10-31 | 2010-05-06 | Johnson Timothy J | Large integer support in vector operations |
US8433883B2 (en) | 2009-06-11 | 2013-04-30 | Cray Inc. | Inclusive “OR” bit matrix compare resolution of vector update conflict masks |
US8458685B2 (en) * | 2009-06-12 | 2013-06-04 | Cray Inc. | Vector atomic memory operation vector update system and method |
US8826252B2 (en) * | 2009-06-12 | 2014-09-02 | Cray Inc. | Using vector atomic memory operation to handle data of different lengths |
US8583898B2 (en) * | 2009-06-12 | 2013-11-12 | Cray Inc. | System and method for managing processor-in-memory (PIM) operations |
JP5658556B2 (ja) * | 2010-12-24 | 2015-01-28 | 富士通株式会社 | メモリ制御装置、及びメモリ制御方法 |
US9021233B2 (en) * | 2011-09-28 | 2015-04-28 | Arm Limited | Interleaving data accesses issued in response to vector access instructions |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR860001434B1 (ko) * | 1980-11-21 | 1986-09-24 | 후지쑤 가부시끼가이샤 | 데이타 처리시 스템 |
JPS57134774A (en) * | 1981-02-13 | 1982-08-20 | Hitachi Ltd | Vector operating device |
JPS57193842A (en) * | 1981-05-22 | 1982-11-29 | Hitachi Ltd | Request conflict detecting system |
JPS58114274A (ja) * | 1981-12-28 | 1983-07-07 | Hitachi Ltd | デ−タ処理装置 |
JPS58181165A (ja) * | 1982-04-16 | 1983-10-22 | Hitachi Ltd | ベクトル演算プロセツサ |
JPS59160267A (ja) * | 1983-03-02 | 1984-09-10 | Hitachi Ltd | ベクトル処理装置 |
JPS59176874A (ja) * | 1983-03-28 | 1984-10-06 | Hitachi Ltd | ベクトル処理装置 |
JPS60136875A (ja) * | 1983-12-26 | 1985-07-20 | Hitachi Ltd | ベクトル演算器 |
US4789925A (en) * | 1985-07-31 | 1988-12-06 | Unisys Corporation | Vector data logical usage conflict detection |
US4734852A (en) * | 1985-08-30 | 1988-03-29 | Advanced Micro Devices, Inc. | Mechanism for performing data references to storage in parallel with instruction execution on a reduced instruction-set processor |
-
1987
- 1987-09-03 JP JP62219152A patent/JPS6462764A/ja active Granted
-
1988
- 1988-03-30 US US07/175,292 patent/US4967350A/en not_active Expired - Lifetime
- 1988-04-20 DE DE3854142T patent/DE3854142T2/de not_active Expired - Lifetime
- 1988-04-20 EP EP88106314A patent/EP0305639B1/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0305639A3 (en) | 1990-02-28 |
DE3854142D1 (de) | 1995-08-17 |
EP0305639B1 (de) | 1995-07-12 |
JPS6462764A (en) | 1989-03-09 |
US4967350A (en) | 1990-10-30 |
EP0305639A2 (de) | 1989-03-08 |
JPH0477347B2 (de) | 1992-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3854142T2 (de) | Vektorrechner. | |
DE68928113T2 (de) | Reihenfolgesteuersystem zur Behandlung von Befehlen | |
DE3587277T2 (de) | System fuer die umgehungssteuerung beim pipelinebetrieb eines computers. | |
DE68921906T2 (de) | Verfahren für ein Multiprozessorsystem mit sich selbst zuordnenden Prozessoren. | |
DE69227664T2 (de) | Hardwarekonfiguriertes Betriebssystemkern für einen Multitaskprozessor | |
DE68927911T2 (de) | Datenverarbeitungssystem | |
DE4222776C2 (de) | Parallelverarbeitungseinheit und Verfahren zum Ausführen von Befehlen | |
DE3116100C2 (de) | Datenverarbeitungseinheit | |
DE69627807T2 (de) | Datenprozessor zum gleichzeitigen Dataladen und Durchführung einer multiplizier-addier Operation | |
DE69434728T2 (de) | Synchronisationssystem und verfahren in einem datencachesystem mit aufgeteiltem pegel | |
DE69636861T2 (de) | Mikroprozessor mit Lade-/Speicheroperation zu/von mehreren Registern | |
DE69114333T2 (de) | Rechner mit der Fähigkeit mehrere Befehle gleichzeitig auszuführen. | |
DE2753062C2 (de) | Einrichtung zur wiederholten Durchführung von Programmschleifen | |
DE4206062C2 (de) | Pipelineverarbeitung von Instruktionen | |
DE69228360T2 (de) | Registerlesekontrolle | |
DE69017178T2 (de) | Datenverarbeitungssystem mit Vorrichtung zur Befehlskennzeichnung. | |
DE3424962C2 (de) | ||
DE3638572C2 (de) | ||
DE69032174T2 (de) | Datenprozessor mit der Fähigkeit, zwei Befehle gleichzeitig auszuführen | |
DE69418146T2 (de) | Temporärer Registersatz für einen superpipeline-superskalaren Prozessor | |
DE2953861C2 (de) | ||
DE69030931T2 (de) | Mehrfachsequenzprozessorsystem | |
DE4335475A1 (de) | Datenverarbeitungseinrichtung mit Cache-Speicher | |
DE60006021T2 (de) | VLIW-Prozessor und Programmkomprimierungsgerät and -verfahren | |
DE19527031A1 (de) | Verbesserte Vorrichtung zum Reduzieren von Verzögerungen aufgrund von Verzweigungen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |