DE69028572T2 - Serieller Betrieb zwischen Vektorbefehl und Skalarbefehl in einem Datenverarbeitungssystem - Google Patents
Serieller Betrieb zwischen Vektorbefehl und Skalarbefehl in einem DatenverarbeitungssystemInfo
- Publication number
- DE69028572T2 DE69028572T2 DE69028572T DE69028572T DE69028572T2 DE 69028572 T2 DE69028572 T2 DE 69028572T2 DE 69028572 T DE69028572 T DE 69028572T DE 69028572 T DE69028572 T DE 69028572T DE 69028572 T2 DE69028572 T2 DE 69028572T2
- Authority
- DE
- Germany
- Prior art keywords
- post
- instruction
- vector
- signal
- unit
- 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 - Fee Related
Links
- 230000015654 memory Effects 0.000 claims description 173
- 238000001514 detection method Methods 0.000 claims description 26
- 230000004044 response Effects 0.000 claims description 20
- 230000005540 biological transmission Effects 0.000 claims description 4
- 238000010276 construction Methods 0.000 description 15
- 101100313728 Vitis vinifera VINST1 gene Proteins 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/458—Synchronisation, e.g. post-wait, barriers, locks
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
-
- 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/3861—Recovery, e.g. branch miss-prediction, exception handling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Complex Calculations (AREA)
- Advance Control (AREA)
Description
- Die vorliegende Erfindung bezieht sich auf ein Datenverarbeitungssystem, das eine Skalareinheit und eine Vektoreinheit enthält, in dem eine Serialisierungsoperation zwischen einer oder mehreren Vektorinstruktionen und einer Skalarinstruktion unter Verwendung einer Nachinstruktion und einer Warteinstruktion ausgeführt wird.
- In einem Datenverarbeitungssystem, das eine Skalareinheit und eine Vektoreinheit enthält, in dem die Skalareinheit Skalarinstruktionen ausführt und die Vektoreinheit Vektorinstruktionen ausführt, erfolgt die Ausführung von einer Vielzahl von Vektorinstruktionen und Skalarinstruktionen parallel, und ein vorheriges Abrufen von Instruktionen und Daten findet statt. In dem obigen Datenverarbeitungssystem muß die Operationsreihenfolge, um auf den Speicher zuzugreifen, zwischen Vektorinstruktionen und zwischen einer Vektorinstruktion und einer Skalarinstruktion gesichert sein, obwohl die operationsreihenfolge, um auf den Speicher zuzugreifen, zwischen Skalarinstruktionen in der Skalareinheit von Natur aus gesichert ist. Die Serialisierungsoperation wird ausgeführt, um die Operationsreihenfolge, um auf den Speicher zuzugreifen, zwischen Vektorinstruktionen und zwischen einer Vektorinstruktion und einer Skalarinstruktion zu sichern.
- Figur 1 zeigt ein Datenverarbeitungssystem, das eine Skalareinheit und eine Vektoreinheit enthält. In Fig. 1 bezeichnet Bezugszahl 1' eine Skalareinheit, bezeichnet 2' eine Vektoreinheit, bezeichnet 3 eine Vektorausführungseinheit, bezeichnen 4 und 5 jeweils eine Multiplikationsund Additionspipeline, bezeichnet 6 eine Divisionspipeline, bezeichnet 7 ein Vektorregister, bezeichnen 8 und 9 jeweils eine Lade-/Speicherpipeline, bezeichnet 10 einen Hauptspeicher, bezeichnet 11 eine Vektorsteuereinheit, bezeichnet 12' eine Vektorinstruktionssteuerschaltung, bezeichnet 13 eine Vektorlade-/-speichersteuerschaltung und 14' eine Speichersteuereinheit.
- Die Skalareinheit 1' ruft Instruktionen in einem Programm in einer Reihenfolge ab, führt die abgerufenen Instruktionen aus, wenn die Instruktion eine Skalarinstruktion ist, oder sendet die abgerufene Instruktion zu der Vektoreinheit 2', wenn die Instruktion eine Vektorinstruktion ist, um zu bewirken, daß die Vektoreinheit die Instruktion ausführt. In der Vektoreinheit 2' empfängt die Vektorinstruktionssteuerschaltung 12' in der Vektorsteuereinheit 11 die Vektorinstruktion, die von der Skalareinheit 1' übertragen wurde, und steuert die Ausführung der Vektorinstruktion. Wenn die Vektorinstruktion eine Ladeinstruktion oder eine Speicherinstruktion ist, wird die Ausführung der Instruktion in der Vektorlade-/-speichersteuerschaltung 13 gesteuert, und eine Operation, um auf den Hauptspeicher 10 zuzugreifen, wird durch die Speichersteuereinheit 14' ausgeführt. Eine Ladeoperation von Vektordaten, die aus dem Hauptspeicher 10 in das Vektorregister 7 gelesen werden, oder eine Speicheroperation von Vektordaten, die aus dem Vektorregister 7 in den Hauptspeicher 10 gelesen werden, wird in der Lade-/Speicherpipeline 8 oder 9 unter der Steuerung der Vektorlade-/-speichersteuerschaltung 13 ausgeführt. Eine Operation, um von der Skalareinheit 1' auf den Hauptspeicher 10 zuzugreifen, wird auch durch die Speichersteuereinheit 14' ausgeführt.
- Es ist wünschenswert, daß die Skalareinheit und die Vektoreinheit so lange wie möglich parallel arbeiten. Wenn jedoch Daten, die zu einer Ausführung einer Vektorinstruktion oder einer Skalarinstruktion abgerufen werden, durch eine Ausführung einer vorhergehenden Vektorinstruktion oder Skalarinstruktion erhalten werden, muß die Reihenfolge von Operationen, um auf den Hauptspeicher 10 zuzugreifen, zwischen der vorhergehenden Instruktion und der folgenden Instruktion gesichert sein. Da Anforderungen bezüglich des Zugreifens auf den Hauptspeicher in der Skalareinheit und der Vielzahl von Lade-/Speicherpipelines parallel auftreten können, muß das obige Sichern der Reihenfolge zwischen einer vorhergehenden Vektorladeinstruktion und einer folgenden Vektorinstruktion, zwischen einer vorhergehenden Vektorspeicherinstruktion und einer folgenden Vektorinstruktion, zwischen einer vorhergehenden Skalarspeicherinstruktion und einer folgenden Vektorinstruktion, zwischen einer vorhergehenden Vektorladeinstruktion und einer folgenden Skalarinstruktion und zwischen einer vorhergehenden Vektorspeicherinstruktion und einer folgenden Skalarinstruktion erfolgen. Die Operationsreihenfolge, um auf den Hauptspeicher zuzugreifen, zwischen einer vorhergehenden Skalarladeinstruktion und einer folgenden Vektorinstruktion ist von Natur aus gesichert. Die Operationsreihenfolge, um auf den Speicher zuzugreifen, zwischen Skalarinstruktionen in der Skalareinheit ist von Natur aus gesichert, da die Skalareinheit eine Pipeline enthält.
- Im allgeineinen ist die Operationsreihenfolge, um auf den Hauptspeicher zuzugreifen, zwischen einer vorhergehenden Vektorladeinstruktion und einer folgenden Vektorinstruktion, zwischen einer vorhergehenden Vektorspeicherinstruktion und einer folgenden Vektorinstruktion, zwischen einer vorhergehenden Skalarspeicherinstruktion und einer folgenden Vektorinstruktion und zwischen einer vorhergehenden Vektorladeinstruktion und einer folgenden Skalarinstruktion jeweilig einfach hinsichtlich der Reihenfolge des Erhaltens eines Rechtes zum Zugriff auf den Hauptspeicher gesichert.
- Andererseits wird die Operationsreihenfolge, um auf den Hauptspeicher zuzugreifen, zwischen einer vorhergehenden Vektorspeicherinstruktion und einer folgenden Skalarinstruktion in Anbetracht der folgenden Situation gesichert. Die Skalareinheit enthält gewöhnlich einen Pufferspeicher (Cache) zum temporären Speichern von Abschnitten (Blöcken) von Daten des Hauptspeichers, auf welche Abschnitte (Blöcke) die Skalareinheit vor kurzem zugegriffen hat. Wenn die Adresse des Hauptspeichers, für welche Adresse ein Resultat einer Ausführung einer Vektorspeicherinstruktion gespeichert wird, einem der Datenblöcke entspricht, die in dem Pufferspeicher temporär gespeichert sind, muß der entsprechende Datenblock in dem Pufferspeicher ungültig gemacht werden, bevor Datenabrufoperationen für folgende Skalarinstruktionen für den Pufferspeicher ausgeführt werden. Deshalb muß eine Ausführung einer Skalarinstruktion, die eine Datenabrufoperation enthält, gestoppt werden, bis das obige Ungültigmachen des Pufferspeichers vollendet ist.
- Um die obige Reihenfolge zu sichern, wird eine Serialisierungsoperation unter Verwendung einer Nachinstruktion und einer Warteinstruktion ausgeführt. Bei der Serialisierungsoperation wird eine Steuerung ausgeführt, so daß eine Operation zum Zugreifen auf den Hauptspeicher für eine Instruktion, die der Nachinstruktion vorausgeht, vor einer Operation zum Zugreifen auf den Hauptspeicher für eine Instruktion, die der Warteinstruktion folgt, ausgeführt wird. Bei dieser Operation wird für die Instruktionen zwischen der Nachinstruktion und der Warteinstruktion hinsichtlich der Operationsreihenfolge, um auf den Hauptspeicher zuzugreifen, keine Steuerung ausgeführt.
- Figur 2 zeigt ein Beispiel einer Instruktionsfolge, die eine Nachinstruktion und eine Warteinstruktion enthält, zum Ausführen einer Serialisierungsoperation. In Fig. 2 bezeichnet VSTi (i=1 bis 8) jeweils eine Vektorspeicherinstruktion, bezeichnet POST eine Nachinstruktion, bezeichnet WAIT eine Warteinstruktion und bezeichnet LD eine Skalarladeinstruktion. Die Ausführung der Skalarladeinstruktion LD, die der Warteinstruktion folgt, wird suspendiert, bis ein Recht zum Zugriff auf den Hauptspeicher für die Ausführung der Vektorspeicherinstruktion VST1, die der Nachinstruktion POST vorausgeht, erhalten wird.
- Figur 3 zeigt einen typischen Ablauf von Ausführungen der Vektorspeicherinstruktionen VST1 bis VST8 von Fig. 2. Zwei Vektorspeicherinstruktionen werden in den zwei Lade/Speicherpipelines 8 und 9 von FIG. 1 gleichzeitig parallel ausgeführt. In Fig. 3 kennzeichnet das Parallelogramin für jede Vektorspeicherinstruktion eine Vielzahl von Verarbeitungsabläufen, die in einer Lade-/Speicherpipeline verarbeitet werden. Bei der oben beschriebenen Serialisierungsoperation wird ein aktives Nachlaufsignal POST-PENDING, das angibt, ob die Ausführungen der Vektorinstruktionen, die einer Nachinstruktion vorausgehen, schon vollendet sind oder nicht, von der Vektoreinheit an die Skalareinheit ausgegeben, wird das Nachlaufsignal POST-PENDING aktiv gemacht, wenn die Ausführung des Nachlaufsignals POST-PENDING in der Vektoreinheit gestartet wird, und inaktiv gemacht, wenn die Ausführungen für alle Vektorinstruktionen, die der Nachinstruktion vorausgehen, vollendet sind. Zusätzlich wird, wenn die Ausführung einer Warteinstruktion in der Vektoreinheit gestartet wird, ein Wartequittungssignal WAIT-ACK von der Vektoreinheit an die Skalareinheit ausgegeben. In der Skalareinheit wird, wenn eine Warteinstruktion detektiert wird, die Ausführung von Skalarinstruktionen, die der Warteinstruktion folgen, zuerst gestoppt, und die Skalareinheit wartet auf das obige Wartequittungssignal WAIT-ACK. Wenn die Skalareinheit das Wartequittungssignal WAIT-ACK empfängt, bestimmt dann die Skalareinheit auf der Basis des empfangenen Nachlaufsignals POST-PENDING, ob die Ausführungen für alle Vektorinstruktionen, die der Nachinstruktion vorausgehen, vollendet sind. Wenn das Nachlaufsignal POST-PENDING inaktiv ist, gibt die Skalareinheit die Ausführung der Skalarinstruktionen, die der Warteinstruktion folgen, frei, z. B. kann eine Skalarladeinstruktion LD, die in FIG. 2 gezeigt ist, ausgeführt werden. Die Beurteilung für die Freigabe von Skalarinstruktionen, die einer Warteinstruktion folgen, kann nämlich erfolgen, nachdem die Warteinstruktion in der Vektoreinheit gestartet ist.
- Bei der oben beschriebenen Serialisierungsoperation gibt es jedoch eine Verzögerung zwischen der Zeit der Veränderung des Nachlaufsignals POST-PENDING auf inaktiv und der Ausgabezeit der Wartequittung, wie in Fig. 3 gezeigt, d. h., die Skalareinheit kann die Veränderung des Nachlaufsignals POST-PENDING von aktiv auf inaktiv nicht unmittelbar detektieren. Deshalb wird der Start der Ausführung der Skalarinstruktionen, die der Warteinstruktion folgen, und daher die Ausführung aller Instruktionen, die der Warteinstruktion folgen, entsprechend der obigen Verzögerung zwischen der Zeit der Veränderung des Nachlaufsignals POST-PENDING auf inaktiv und der Ausgabezeit der Wartequittung verzögert. Der Grund dafür, daß die obige Beurteilung für die Freigabe von Skalarinstruktionen, die einer Warteinstruktion folgen, zu der Zeitlage des Empfangs des Wartequittungssignals erfolgt, ist der, daß die Skalareinheit nicht erkennen kann, wenn eine Nachinstruktion, die der Warteinstruktion vorausgeht, in der Vektoreinheit gestartet wird, d. h., wenn das Nachlaufsignal POST-PENDING aktiv wird.
- Es ist wünschenswert, ein Datenverarbeitungssystem vorzusehen, bei dem eine Startzeit einer Ausführung einer Skalarinstruktion, die einer Warteinstruktion folgt, bei einer Serialisierungsoperation zwischen einer vorhergehenden Vektorinstruktion und einer folgenden Skalarinstruktion unter Verwendung einer Nachinstruktion und einer Warteinstruktion vorverlegt wird und die Gesarntausführungszeit von sukzessiven Instruktionen, die eine Nachinstruktion und eine Warteinstruktion enthalten, für die Serialisierungsoperation reduziert wird.
- Gemäß der vorliegenden Erfindung ist ein Datenverarbeitungssystem vorgesehen, mit:
- einer Skalareinheit;
- einer Vektoreinheit, die mit einer Vektorsteuereinheit versehen ist, die ein Vektorinstruktionssteuermittel und ein Vektorlade-/-speichersteuermittel enthält; und
- einem Hauptspeicher, der mit einer Speichersteuereinheit versehen ist, die mit der Skalareinheit und der Vektoreinheit operativ verbunden ist;
- welche Skalareinheit angeordnet ist, um Skalarinstruktionen und Vektorinstruktionen zu empfangen, um die Skalarinstruktionen auszuführen und um die Vektorinstruktionen zu der Vektoreinheit zu übertragen;
- welche Vektoreinheit angeordnet ist, um die Vektorinstruktionen, die von der Skalareinheit empfangen werden, durch Verarbeiten von einer Vielzahl von Elementen auszuführen;
- welches Vektorinstruktionssteuermittel ein Nachlaufsignal-Erzeugungsmittel umfaßt, zum Erzeugen eines Nachlaufsignals, das aktiv gemacht wird, wenn eine Nachinstruktion in der Vektoreinheit empfangen wird, welches Vektorinstruktionssteuermittel angeordnet ist, um das Nachlaufsignal inaktiv zu machen, sobald ein Recht zum Zugreifen auf den Hauptspeicher zum Lesen oder Speichern eines letzten Elementes erhalten wird, das durch die Vektorinstruktionen, die der Nachinstruktion vorausgehen, zu lesen oder zu speichern ist;
- welche Skalareinheit ein Warteinstruktionsdetektionsinittel umfaßt, zum Detektieren einer Übertragung einer Warteinstruktion zu der Vektoreinheit, und ein Verriegelungssteuermittel zum Suspendieren, als Reaktion auf die Detektion der Warteinstruktion durch das Warteinstruktionsdetektionsmittel, der Ausführung von Skalarinstruktionen, die der Warteinstruktion folgen und Zugriff auf den Hauptspeicher fordern, welche Skalareinheit angeordnet ist, um den inaktiven Zustand des Nachlaufsignals zu erkennen und die Ausführung der folgenden Skalarinstruktionen als Reaktion darauf freizugeben;
- dadurch gekennzeichnet, daß das Verriegelungssteuermittel ein Mittel (112, 113) umfaßt, zum Freigeben der Ausführung der folgenden Skalarinstruktionen als Reaktion auf den inaktiven Zustand des Nachlaufsignals, ohne auf den Start der Warteinstruktion in der Vektoreinheit zu warten.
- Als Beispiel wird nun Bezug auf die beiliegenden Zeichnungen genommen, in denen:
- Figur 1 ein Datenverarbeitungssystem zeigt, das eine Skalareinheit und eine Vektoreinheit enthält;
- Figur 2 ein Beispiel einer Instruktionsfolge zeigt, die eine Nachinstruktion und eine Warteinstruktion zum Ausführen einer Serialisierungsoperation enthält;
- Figur 3 einen typischen Ablauf von Ausführungen der Vektorspeicherinstruktionen VST1 bis VST8 von Fig. 2 zeigt;
- Figur 4 ein Blockdiagramm ist, das die Konstruktion einer Ausführungsform der vorliegenden Erfindung zeigt;
- Figur 5 die Konstruktion einer Vektoreinheit 2 in der Ausführungsform von Figur 4 zeigt;
- Figur 6 eine Schaltungsanordnung zum Erzeugen eines Signals SERIALIZING START bei einer Ausführungsstufensteuerschaltung 200 von Figur 5 zeigt;
- Figur 7 eine Konstruktion einer Speichersteuereinheit 14 in der Ausführungsform von Figur 4 zeigt;
- Figur 8 eine Konstruktion zum Erzeugen des Signals POST-PENDING1 in der Ausführungsstufensteuerschaltung 200 von Figur 5 zeigt;
- Figur 9 ein Beispiel von einer Vielzahl von Verarbeitungsabläufen in einer Skalareinheit 1 der Ausführungsform von Figur 4 während der Verarbeitung einer Skalarinstruktion zeigt;
- Figur 10 eine Schaltungsanordnung zum Erzeugen eines Signals POST-PENDING2 in der Skalareinheit 1 zeigt;
- Figur 11 eine Schaltungsanordnung zum Erzeugen eines Signals INTERLOCK in der Skalareinheit 1 zeigt; und
- Figuren 12A bis 12C Beispiele der Operation der Ausführungsform von Figur 4 zeigen.
- Die vorliegende Erfindung kann in verschiedenen Formen implementiert werden, und die Grundoperationen, die den verschiedenen Formen der vorliegenden Erfindung zugeordnet sind, werden unten erläutert.
- Gemäß einer ersten Form der vorliegenden Erfindung wird, wenn eine Nachinstruktion von der Skalareinheit zu der Vektoreinheit übertragen wird, das Nachlaufsignal, das in der Nachlaufsignal-Erzeugungsschaltung in der Vektoreinheit erzeugt wird, als Reaktion auf einen Empfang einer Nachinstruktion aktiv gemacht. Wenn die Skalareinheit danach eine Warteinstruktion durch die Warteinstruktionsdetektionsschaltung detektiert, suspendiert die Verriegelungssteurschaltung in der Skalareinheit Ausführungen von Instruktionen, die der Warteinstruktion folgen und jeweils eine Operation zum Zugriff auf den Speicher enthalten, bis sich das Nachlaufsignal von aktiv auf inaktiv ändert. Das Nachlaufsignal wird inaktiv gemacht, wenn ein Recht zum Zugriff auf den Speicher zum Lesen oder Speichern eines letzten Elementes erhalten wird, das durch die Vektorinstruktionen, die der Nachinstruktion vorausgehen, gelesen oder gespeichert wird, und bei Empfang des inaktiven Nachlaufsignals gibt die Verriegelungssteuerschaltung in der Skalareinheit die Ausführungen der obigen Instruktionen in der Skalareinheit frei, die der Warteinstruktion folgen. Somit können die Ausführungen der obigen Instruktionen, die der Warteinstruktion folgen und jeweils eine Operation zum Zugriff auf den Speicher enthalten, gestartet werden, sobald das Recht zum Zugriff auf den Speicher zum Lesen oder Speichern eines letzten Elementes erhalten wird, das durch die Vektorinstruktionen, die der Nachinstruktion vorausgehen, gelesen oder gespeichert wird. Der frühe Start der Ausführung der Instruktionen in der Skalareinheit, die der Warteinstruktion folgen, parallel mit der Ausführung der Vektorinstruktionen, die der Nachinstruktion in der Vektoreinheit folgen, reduziert die Gesamtverarbeitungszeit für die sukzessiven Instruktionen, die eine Nachinstruktion und eine Warteinstruktion enthalten.
- In einer zweiten Form der vorliegenden Erfindung wird, wenn der Skalareinheit eine Nachinstruktion erteilt wird, die Übertragung der Nachinstruktion zu der Vektoreinheit durch die Nachinstruktionsdetektionsschaltung in der Skalareinheit detektiert. Als Reaktion auf diese Detektion wird das zweite Nachlaufsignal, das in der Erzeugungsschaltung des zweiten Nachlaufsignals in der Skalareinheit erzeugt wird, aktiv gemacht. Bei Empfang der Nachinstruktion wird das erste Nachlaufsignal, das in der Erzeugungsschaltung des ersten Nachlaufsignals in der Vektoreinheit erzeugt wird, aktiv gemacht. Wenn die Skalareinheit danach eine Warteinstruktion durch die Warteinstruktionsdetektionsschaltung detektiert, suspendiert die Verriegelungssteuerschaltung in der Skalareinheit Ausführungen von Instruktionen, die der Warteinstruktion folgen und jeweils eine Operation zum Zugriff auf den Speicher enthalten, bis sich das zweite Nachlaufsignal von aktiv auf inaktiv verändert. Das erste Nachlaufsignal wird inaktiv gemacht, wenn ein Recht zum Zugreifen auf den Speicher zum Lesen oder Speichern eines letzten Elementes erhalten wird, das durch die Vektorinstruktionen, die der Nachinstruktion vorausgehen, gelesen oder gespeichert wird, und bei Empfang des inaktiven ersten Nachlaufsignals von der Vektoreinheit wird das zweite Nachlaufsignal inaktiv. Als Reaktion auf das inaktive zweite Nachlaufsignal gibt die Verriegelungssteuerschaltung in der Skalareinheit die Ausführungen der obigen Instruktionen frei, die der Warteinstruktion folgen und jeweils eine Operation zum Zugriff auf den Speicher enthalten. Ähnlich wie bei der ersten Form der vorliegenden Erfindung kann die Ausführung der obigen Instruktionen, die der Warteinstruktion folgen und jeweils eine Operation zum Zugriff auf den Speicher enthalten, gestartet werden, sobald das Recht zum Zugreifen auf den Speicher zum Lesen oder Speichern eines letzten Elementes durch Operationen für alle Vektorinstruktionen, die der Nachinstruktion vorausgehen, erhalten wird.
- Bei einer dritten Form der vorliegenden Erfindung wird, wenn der Skalareinheit eine Nachinstruktion erteilt wird, die Übertragung der Nachinstruktion zu der Vektoreinheit durch die Nachinstruktionsdetektionsschaltung in der Skalareinheit detektiert. Als Reaktion auf diese Detektion wird das zweite Nachlaufsignal, das in der Erzeugungsschaltung des zweiten Nachlaufsignals in der Skalareinheit erzeugt wird, aktiv gemacht. Bei Empfang der Nachinstruktion wird das erste Nachlaufsignal, das in der Erzeugungsschaltung des ersten Nachlaufsignals in der Vektoreinheit erzeugt wird, aktiv gemacht. Wenn danach die Skalareinheit eine Warteinstruktion durch die Warteinstruktionsdetektionsschaltung detektiert, suspendiert die Verriegelungssteuerschaltung in der Skalareinheit die Ausführung von Instruktionen, die der Warteinstruktion folgen und jeweils eine Operation zum Zugriff auf den Speicher enthalten, bis das zweite Nachlaufsignal von aktiv auf inaktiv verändert wird. Wenn ein Recht zum Zugreifen auf den Speicher zum Lesen oder Speichern eines letzten Elementes erhalten wird, das durch die Vektorinstruktionen, die der Nachinstruktion vorausgehen, gelesen oder gespeichert wird, was durch die Vektoreinheit unter Verwendung des Speicherzugriffsquittungssignals von der Speichersteuereinheit erkannt wird, wird in der Vektoreinheit das erste Nachlaufsignal als Reaktion auf das aktive Speicherzugriffsquittungssignal inaktiv gemacht. Bei Empfang des inaktiven ersten Nachlaufsignals von der Vektoreinheit wird das zweite Nachlaufsignal inaktiv. Als Reaktion auf das inaktive zweite Nachlaufsignal gibt die Verriegelungssteuerschaltung in der Skalareinheit die Ausführung der obigen Instruktionen frei, die der Warteinstruktion folgen und jeweils eine Operation zum Zugriff auf den Speicher enthalten. Somit kann ähnlich wie bei den obigen ersten und zweiten Formen der vorliegenden Erfindung die Ausführung der obigen Instruktionen, die der Warteinstruktion folgen und jeweils eine Operation zum Zugriff auf den Speicher enthalten, gestartet werden, sobald das Recht zum Zugriff auf den Speicher zum Lesen oder Speichern eines letzten Elementes erhalten wird, das durch die Vektorinstruktionen gelesen oder gespeichert wird, die der Nachinstruktion vorausgehen.
- Eine vierte Form der vorliegenden Erfindung betrifft das Datenverarbeitungssystem, in dem die Skalareinheit einen Pufferspeicher enthält. Wenn der Skalareinheit eine Nachinstruktion erteilt wird, wird die Übertragung der Nachinstruktion zu der Vektoreinheit durch die Nachinstruktionsdetektionsschaltung in der Skalareinheit detektiert. Als Reaktion auf diese Detektion wird das zweite Nachlaufsignal, das in der Erzeugungsschaltung des zweiten Nachlaufsignals in der Skalareinheit erzeugt wird, aktiv gemacht. Bei Empfang der Nachinstruktion wird das erste Nachlaufsignal, das in der Erzeugungsschaltung des ersten Nachlaufsignals in der Vektoreinheit erzeugt wird, aktiv gemacht. Wenn die Skalareinheit danach eine Warteinstruktion durch die Warteinstruktionsdetektionsschaltung detektiert, suspendiert die Verriegelungssteuerschaltung in der Skalareinheit die Ausführung von Instruktionen, die der Warteinstruktion folgen und jeweils eine Operation zum Zugriff auf den Speicher enthalten, bis das zweite Nachlaufsignal von aktiv auf inaktiv verändert wird. Wenn ein Recht zum Zugreifen auf den Speicher zum Lesen oder Speichern eines letzten Elementes erhalten wird, das durch die Vektorinstruktionen gelesen oder gespeichert wird, die der Nachinstruktion vorausgehen, wird das Erhalten des Rechtes durch die Detektionsschaltung des letzten Speicherzugriffs in der Vektoreinheit unter Verwendung des Speicherzugriffsquittungssignals von der Speichersteuereinheit detektiert, und ein aktives Signal des letzten Speicherzugriffs wird von der Detektionsschaltung des letzten Speicherzugriffs ausgegeben.
- Wenn durch die Vektoreinheit gemäß Instruktionen, die der Nachinstruktion vorausgehen, eine Speicheroperation ausgeführt wird, wird die Adresse in dein Speicher, für den die Speicheroperation von der Vektoreinheit ausgeführt worden ist, in der Pufferspeicherannullierungsadressenspeicherschaltung gespeichert, und die Adresse wird durch eine Pufferspeicherannullierungsadressenübertragungsschaltung zu der Skalareinheit übertragen. Die Pufferspeicherannullierungsschaltung in der Skalareinheit macht die Daten in dem Pufferspeicher unter Verwendung der Adressen, die durch die Pufferspeicherannullierungsadressenübertragungsschaltung übertragen werden, ungültig, wenn die Adresse der Daten in dem Pufferspeicher der Adresse in dem Speicher entspricht, für die die Schreiboperation von der Vektoreinheit ausgeführt worden ist. Wenn alle Adressen, die in der Pufferspeicherannullierungsadressenspeicherschaltung gespeichert sind, zu der Skalareinheit übertragen worden sind, erzeugt die Übertragungsvollendungssignal-Erzeugungsschaltung ein aktives Übertragungsvollendungssignal. Wenn sowohl das Signal des letzten Speicherzugriffs als auch das Übertragungsvollendungssignal aktiv wird, wird das erste Nachlaufsignal von der Erzeugungsschaltung des ersten Nachlaufsignals inaktiv.
- Bei Empfang des inaktiven ersten Nachlaufsignals von der Vektoreinheit wird das zweite Nachlaufsignal inaktiv. Als Reaktion auf das inaktive zweite Nachlaufsignal gibt die Verriegelungssteuerschaltung in der Skalareinheit die Ausführung der obigen Instruktionen frei, die der Warteinstruktion folgen und jeweils eine Operation zum Zugreifen auf den Speicher enthalten. Somit kann ähnlich wie bei den obigen ersten, zweiten und dritten Formen der vorliegenden Erfindung die Ausführung der obigen Instruktionen, die der Warteinstruktion folgen und jeweils eine Operation zum Zugreifen auf den Speicher enthalten, gestartet werden, sobald das Recht zum Zugreifen auf den Speicher zum Lesen oder Speichern eines letzten Elementes erhalten wird, das durch die Vektorinstruktionen gelesen oder gespeichert wird, die der Nachinstruktion vorausgehen.
- Figur 4 zeigt einen Überblick über die Konstruktion einer Ausführungsform der vorliegenden Erfindung.
- In Fig. 4 bezeichnet Bezugszahl 1 eine Skalareinheit, bezeichnet 2 eine Vektoreinheit, bezeichnet 14 eine Speichersteuereinheit, bezeichnet 12 eine Vektorinstruktionssteuereinheit, bezeichnet 15 einen Pufferspeicher, bezeichnet 16 eine Nachlaufsignal-Verriegelungsschaltung, bezeichnet 17 eine Verriegelungsschaltung des anstehenden Wartesignals und 18 einen Pufferannullierungsadressenspeicher.
- Die Skalareinheit 1, die Vektoreinheit 2, die Speichersteuereinheit 14 und die Vektorinstruktionssteuerschaltung 12 in der Vektoreinheit 2 funktionieren im wesentlichen jeweilig genauso wie die entsprechenden Komponenten von FIG. 1, außer wie unten erläutert.
- Der Pufferspeicher 15 in der Skalareinheit 1 speichert temporär Abschnitte (Blöcke) von Daten des Hauptspeichers, auf welche Abschnitte (Blöcke) die Skalareinheit vor kurzem zugegriffen hat.
- Der Pufferannullierungsadressenspeicher 18 in der Speichersteuereinheit 14 speichert temporär Adressen in dem Hauptspeicher, in denen die Vektoreinheit 2 Daten gemäß Vektorspeicherinstruktionen gespeichert hat, wenn die Adressen den Abschnitten von Daten entsprechen, die in dem Pufferspeicher 15 in der Skalareinheit 1 gespeichert wurden, bis die gespeicherten Adressen zu der Skalareinheit 1 übertragen werden, um die entsprechenden Abschnitte von Daten in dem Pufferspeicher 15 ungültig zu machen.
- Das Signal SERIALIZING START wird von der Vektorinstruktionssteuerschaltung 12 an den Pufferannullierungsadressenspeicher 18 zu der Zeitlage ausgegeben, wenn die Adressen, die in dem Pufferannullierungsadressenspeicher 18 für alle Vektorspeicherinstruktionen, die einer Nachinstruktion vorausgehen, gespeichert sein sollten, tatsächlich in dem Pufferannullierungsadressenspeicher 18 gespeichert worden sind.
- Ein BI-PENDING-Signal wird von der Speichersteuereinheit 14 an die Vektorinstruktionssteuerschaltung 12 ausgegeben und ist ab der Zeit aktiv, wenn die Speichersteuereinheit 14 das Signal SERIALIZING START empfängt, bis alle Inhalte des Pufferannullierungsadressenspeichers 18 zu der Skalareinheit 1 übertragen worden sind. Die Inversion des BI-PENDING-Signals entspricht dem zuvor erwähnten Übertragungsvollendungssignal in der vierten Form der vorliegenden Erfindung, wie später erläuüert wird.
- Das POST-PENDING1-Signal, das von der Vektorinstruktionssteuerschaltung 12 an die Skalareinheit 1 ausgegeben wird, wird aktiv gemacht, wenn die Vektoreinheit 2 eine Nachinstruktion von der Skalareinheit 1 empfängt, und wird inaktiv gemacht, wenn die Adressen, die für alle Vektorspeicherinstruktionen, die einer Nachinstruktion vorausgehen, in dem Pufferannullierungsadressenspeicher 18 gespeichert sein sollten, tatsächlich in dem Pufferannullierungsadressenspeicher 18 gespeichert worden sind, und das Recht zum Zugreifen auf den Speicher zum Lesen oder Speichern eines letzten Elementes erhalten wird, das durch die Vektorinstruktionen, die der Nachinstruktion vorausgehen, gelesen oder gespeichert wird. Das POST-PENDING1-Signal entspricht dem zuvor erwähnten Nachlaufsignal POST-PENDING in der ersten Form der vorliegenden Erfindung und dem zuvor erwähnten ersten Nachlaufsignal in den zweiten bis vierten Formen der vorliegenden Erfindung.
- Das Signal SERIALIZING COMPLETE wird von der Speichersteuereinheit 14 an die Skalareinheit 1 ausgegeben, wenn die Adressen, die in dem Pufferannullierungsadressenspeicher 18 für alle Vektorspeicherinstruktionen, die einer Nachinstruktion vorausgehen, gespeichert worden sind, tatsächlich von dem Pufferannullierungsadressenspeicher 18 zu der Skalareinheit 1 übertragen worden sind, nachdem das Signal
- SERIALIZING START von der Vektorinstruktionssteuerschaltung 12 an den Pufferannullierungsadressenspeicher 18 ausgegeben worden ist. Bei Empfang des Signals SERIALIZING COMPLETE suspendiert die Skalareinheit 1 die Ausführung der Skalarinstruktionen, die der Warteinstruktion folgen und jeweils eine Zugriffsoperation auf den Hauptspeicher enthalten, und macht die entsprechenden Adressen (Blöcke) von Daten in dem Pufferspeicher 15 ungültig.
- Figur 5 zeigt die Konstruktion der Vektoreinheit 2 bezüglich der vorliegenden Erfindung. In Fig. 5 bezeichnet 31 ein Vektorinstruktionsabrufstufenregister, bezeichnet 32 einen Nachinstruktionsdekodierer, bezeichnet 33 ein Vektorinstruktionsabrufstufenpufferregister, bezeichnet 34 ein Vektorinstruktionsdekodierstufenregister, bezeichnet 35 ein Vektorinstruktionsstartstufenpufferregister, bezeichnet 36 ein Vektorinstruktionsstartstufenregister, bezeichnet 37 ein R-Stufen-Register, bezeichnen 38, 40 und 42 jeweils eine UND-Schaltung, bezeichnet 39 ein S-Stufen-Register, bezeichnet 41 ein T-Stufen-Register, bezeichnet 43 ein U-Stufen- Register, bezeichnet 100 eine Instruktionsstartsteuerschaltung und 200 eine Ausführungsstufensteuerschaltung.
- Die Vektorinstruktionen, die von der Skalareinheit 1 übertragen werden, werden jeweilig in dem Vektorinstruktionsabrufstufenregister 31, dem Vektorinstruktionsdekodierstufenregister 34 und dem Vektorinstruktionsstartstufenregister 36 in den entsprechenden Stufen gehalten. Das Vektorinstruktionsabrufstufenpufferregister 33 ist zwischen dem Vektorinstruktionsabrufstufenregister 31 und dem Vektorinstruktionsdekodierstufenregister 34 vorgesehen, und das Vektorinstruktionsstartstufenpufferregister 35 ist zwischen dem Vektorinstruktionsdekodierstufenregister 34 und dem Vektorinstruktionsstartstufenregister 36 vorgesehen. Zusätzlich wird die Ausgabe des Vektorinstruktionsdekodierregisters 34 in der Vektorinstruktionsdekodierstufe dekodiert, und eine Nachinstruktion wird durch den Nachinstruktionsdekodierer 32 detektiert. Die Ausgabe des Nachinstruktionsdekodierers 32 ist mit entsprechenden Instruktionsdaten verbunden, die ein erstes Nachinstruktionsbit "P" enthalten, und wird zusammen mit den entsprechenden Instruktionsdaten von dem Vektorinstruktionsstartstufenpufferregister 33 durch das Vektorinstruktionsstartstufenregister 36 übertragen. Das andere Bit, das mit "V" bezeichnet ist, ist ein gültiges Bit, das angibt, ob die entsprechende Stufe gültig ist oder nicht. Die Instruktionsstartsteuerschaltung 100 steuert die obigen Operationen durch die Vektorinstruktionsabrufstufe, die Vektorinstruktionsdekodierstufe und die Vektorinstruktionsstartstufe.
- Die R-Stufe, S-Stufe, T-Stufe und U-Stufe sind Ausführungssteuerstufen von Vektorinstruktionen, und die Ausführung von jeder Vektorinstruktion in der Lade-/Speicherpipeline wird in den obigen Stufen gesteuert. In der R-Stufe (Lesestufe) wird eine Datenleseoperation aus dem Vektorregister oder dem Hauptspeicher ausgeführt. In der S-Stufe (Anlaufstufe) wird die Operation ab dem Start der Ausführung bis zur Speicher- oder Ladeoperation des ersten Elementes gesteuert. In der T-Stufe (Endstufe) wird die Operation nach der S-Stufe bis zur Speicher- oder Ladeoperation des letzten Elementes (Erhalten eines Rechtes zum Zugreifen auf den Hauptspeicher zum Lesen oder Speichern eines letzten Elementes durch Operationen für jede Vektorinstruktion) gesteuert. In der U-Stufe wird die Ausnahmeverarbeitung gesteuert.
- Jedes der R-Stufen-, S-Stufen- und T-Stufen-Register 37, 39 und 41 enthält ein gültiges Bit "V" und ein zweites Nachinstruktionsbit "PF", welches gültige Bit "V" angibt, ob die entsprechende Stufe gültig ist oder nicht. Die zweiten Nachinstruktionsbits "PF" in den R-Stufen-, S-Stufen- und T Stufen-Registern 37, 39 und 41 werden durch die Ausführungsstufensteuerschaltung 200 aktiv gemacht, wenn eine Nachinstruktion gestartet wird. Die Ausführungsstufensteuerschaltung 200 führt das Setzen der zweiten Nachinstruktionsbits "PF" als Reaktion auf ein POST-START-Signal aus, das von der Instruktionsstartsteuerschaltung zugeführt wird, wenn eine Nachinstruktion gestartet wird. Jedes zweite Nachinstruktionsbit "PF" wird mit den entsprechenden Instruktionsdaten durch die R-Stufen-, S-Stufen- und T- Stufen-Register 37, 39 und 41 übertragen. Wenn nämlich die Operation der Vektorinstruktion in der R-Stufe, die ein aktives zweites Nachinstruktionsbit "PF" hat, vollendet ist, wird die Operation der Vektorinstruktion zu der S-Stufe verschoben, und die Instruktionsdaten in dem R-Stufen-Register 37 werden zusammen mit dem aktiven zweiten Nachinstruktionsbit "PF" zu dem S-Stufen-Register 39 übertragen. Wenn die Operation der Vektorinstruktion in der S-Stufe, die ein aktives zweites Nachinstruktionsbit "PF" hat, vollendet ist, wird die Operation der Vektorinstruktion ähnlich zu der T- Stufe verschoben, und die Instruktionsdaten in dem S-Stufen- Register 39 werden zusammen mit dem aktiven zweiten Nachinstruktionsbit "PF" zu dem T-Stufen-Register 41 übertragen. Wenn ferner die Operation der Vektorinstruktion in der T- Stufe, die ein aktives zweites Nachinstruktionsbit "PF" hat, vollendet ist, wird die Operation der Vektorinstruktion zu der U-Stufe verschoben, werden die Instruktionsdaten in dem T-Stufen-Register 41 zu dem U-Stufen-Register 43 übertragen, und das zweite aktive Nachinstruktionsbit "PF" verschwindet.
- Das gültige Bit "V" und das zweite Nachinstruktionsbit "PF" in dem R-Stufen-Register 37 werden der UND-Schaltung 38 eingegeben, das gültige Bit "V" und das zweite Nachinstruktionsbit "PF" in dem S-Stufen-Register 39 werden der UND- Schaltung 40 eingegeben, und das gültige Bit "V" und das zweite Nachinstruktionsbit "PF" in dem T-Stufen-Register 41 werden der UND-Schaltung 42 eingegeben. Wenn das Recht zum Zugreifen auf den Hauptspeicher zum Lesen oder Speichern eines letzten Elementes durch Operationen für alle Vektorinstruktionen, die der Nachinstruktion vorausgehen, erhalten wird, werden alle Ausgaben der UND-Schaltungen 38, 40 und 42 inaktiv. Die Ausgaben der UND-Schaltungen 38, 40 und 42 werden der Ausführungsstufensteuerschaltung 200 zugeführt. Die Ausführungsstufensteuerschaltung 200 gibt das Signal SERIALIZING START an die Speichersteuereinheit 14 aus, wenn alle Ausgaben der UND-Schaltungen 38, 40 und 42 inaktiv werden und das Signal POST-PENDING1 aktiv ist. Figur 6 zeigt eine Konstruktion, um das Signal SERIALIZING START in der Ausführungsstufensteuerschaltung 200 zu erzeugen.
- Figur 7 zeigt eine Konstruktion der Speichersteuereinheit 14 bezüglich der Pufferannullierung. In Fig. 7 bezeichnen die Bezugszahlen 71, 72, 73 und 74 jeweils eine Portschaltung, die einem von einer Vielzahl von Ports entspricht, die jeweilig und unabhängig eine der Anforderungen von der Skalareinheit 1, der Vektoreinheit 2, den Kanalprozessoren und anderen empfangen, und ein Quittungssignal an die Einheit oder den Prozessor, die oder der die empfangene Anforderung gesendet hat, unter Verwendung einer Prioritätssteuerschaltung (nicht gezeigt), die in ihr enthalten ist, ausgibt. Die obigen Portschaltungen 71, 72, 73 und 74 umfassen jeweils eine Konstruktion zum Übertragen von Adressen, die für die Pufferannullierung zu verwenden sind, wie in Fig. 6 gezeigt.
- In jeder Portschaltung von Fig. 7 bezeichnet Bezugszahl 51 ein Speicheradressenregister, bezeichnet 52 einen Selektor, bezeichnet 53 ein erstes Pufferannullierungsregister, bezeichnet 54 ein Markierungsregister, bezeichnet 55 einen Markierungsspeicher, bezeichnet 56 eine Übereinstimmungsdetektionsschaltung, bezeichnet 57 ein zweites Pufferannullierungsregister, bezeichnet 58 ein Übereinstimmungsflagregister, bezeichnet 59 einen Pufferannullierungsadressenspeicher, bezeichnet 60 einen Eingabenzeiger, bezeichnet 61 einen Ausgabenzeiger, bezeichnet 62 eine Subtraktionsschaltung und 63 ein Zahlenregister.
- Wenn ein Block von Daten, die in dem Pufferspeicher 15 in der Skalareinheit 1 gespeichert sind, erneuert wird, wird die Markierungsadresse des neuen Blocks einem der Eingangsanschlüsse des Selektors 52 zugeführt und durch das Markierungsregister 54 in den Markierungsspeicher 55 geschrieben. Die Adresse des Hauptspeichers, für den eine Speicheroperation ausgeführt wird, wird in dem Speicheradressenregister 51 temporär gehalten und dann in dem ersten Pufferannullierungsregister 53 durch den Selektor 52 verriegelt. Die Ausgabe des ersten Pufferannullierungsregisters 53 wird mit dem gesamten Inhalt des Markierungsspeichers 55 verglichen. Wenn zwischen der Ausgabe des ersten Pufferannullierungsregisters 53 und einer Markierungsadresse in dem Markierungsspeicher 55 eine Übereinstimmung detektiert wird, wird von der Übereinstimmungsschaltung 56 "1" ausgegeben und in dem Übereinstimmungsregister 58 verriegelt. Die Ausgabe des ersten Pufferannullierungsregisters 53 wird dann in dem zweiten Pufferannullierungsregister 57 verriegelt, und die Ausgabe des Übereinstimmungsregisters 58 wird dem Pufferannullierungsadressenspeicher 59 als Eingangssteuersignal zugeführt, um die Ausgabe des zweiten Pufferannullierungsregisters 57 in dem Pufferannullierungsadressenspeicher 59 zu speichern. Der Eingabenzeiger 60 zählt die Anzahl von Eingaben in dem Pufferannullierungsadressenspeicher 59, und der Ausgabenzähler 61 zählt die Anzahl von Ausgaben in dem Pufferannullierungsadressenspeicher 59. Die Subtraktionsschaltung 62 subtrahiert den Zählwert des Ausgabenzählers 61 von dem Zählwert des Eingabenzählers 60. Die Ausgabe der Subtraktionsschaltung 62 wird in dem Zahlenregister 63 verriegelt, wenn das Signal SERIALIZING START von der Ausführungsstufensteuerschaltung 200 zugeführt wird, und der Inhalt des Zahlenregisters 63 wird dekrementiert, wenn jede der verbleibenden Adressen von dem Pufferannullierungsadressenspeicher 59 ausgegeben wird.
- In Fig. 7 bezeichnet Bezugszahl 64 einen Selektor, bezeichnet 65 ein Pufferannullierungsadressenregister und 66 eine "0"-Detektionsschaltung. Die Ausgabe des Pufferannullierungsadressenspeichers 59 in der Portschaltung 71 für den Port A ist mit A' bezeichnet, und ähnliche Ausgaben von Pufferannullierungsadressenspeichern in den Portschaltungen 72, 73 und 74 für die Ports B, C und D sind jeweilig mit B', C' und D' bezeichnet. Diese Ausgaben A', B', C' und D' der Pufferannullierungsadressenspeicher in den Portschaltungen 71, 72, 73 und 74 werden dem Selektor 64 eingegeben und durch den Selektor 64 und das Pufferannullierungsadressenregister 65 zu der Skalareinheit 1 übertragen. Die Ausgabe des Zahlenregisters 63 in der Portschaltung 71 für den Port A ist mit A" bezeichnet, und ähnliche Ausgaben von Zahlenregistern in den Portschaltungen 72, 73 und 74 für die Ports B, C und D sind jeweilig mit B", C" und D" bezeichnet. Alle Ausgaben A", B", C" und D" der Zahlenregister werden auf die "0"-Detektionsschaltung 66 angewendet. Die "0"-Detektionsschaltung 66 bestimmt, ob alle Ausgaben A", B", C" und D" null sind oder nicht, und gibt das BI-PENDING-Signal aus, das "0" ist, wenn alle Ausgaben A", B", C" und D" null sind, d. h., alle Adressen, die in den Pufferannullierungsadressenspeichern in den Portschaltungen 71, 72, 73 und 74 gespeichert wurden, sind zu der Ausführungsstufensteuerschaltung 200 übertragen worden. Die "0"-Detektionsschaltung 66 gibt auch das Signal SERIALIZING COMPLETE durch das Pufferannullierungsadressenregister 65 an die Skalareinheit 1 aus.
- Figur 8 zeigt eine Konstruktion zum Erzeugen des Signals POST-PENDING1 in der Ausführungsstufensteuerschaltung 200. In Fig. 8 bezeichnen die Bezugszahlen 81, 82, 83, 84 und 85 jeweils eine UND-Schaltung, bezeichnet 86 eine ODER-Schaltung und bezeichnet 201 den anderen Abschnitt der Ausführungsstufensteuerschaltung 200. VFS-VALID bezeichnet die Ausgabe des gültigen Bits des Vektorinstruktionsabrufstufenregisters 31, VFB-VALID bezeichnet die Ausgabe des gültigen Bits des Vektorinstruktionsabrufstufenregisters 33, VPS-VALID bezeichnet die Ausgabe des gültigen Bits des Vektorinstruktionsdekodierstufenregisters 34, VQB-VALID bezeichnet die Ausgabe des gültigen Bits des Vektorinstruktionsstartstufenpufferregisters 35, und VQS-VALID bezeichnet die Ausgabe des gültigen Bits des Vektorinstruktionsstartstufenregisters 36. VFS-POST-INST bezeichnet die Ausgabe des Nachinstruktionsbits des Vektorinstruktionsabrufstufenregisters 31, VFB-POST-INST bezeichnet die Ausgabe des Nachinstruktionsbits des Vektorinstruktionsabrufstufenpufferregisters 33, VPS-POST-INST bezeichnet die Ausgabe des Nachinstruktionsbits des Vektorinstruktionsdekodierstufenregisters 34, VQB-POST-INST bezeichnet die Ausgabe des Nachinstruktionsbits des Vektorinstruktionsstartstufenpufferregisters 35, und VQS-POST-INST bezeichnet die Ausgabe des Nachinstruktionsbits des Vektorinstruktionsstartstufenregisters 36.
- Wie in Fig. 8 gezeigt, werden das obige VFS-VALID- Signal und das obige VFS-POST-INST-Signal der UND-Schaltung 81 eingegeben, werden das obige VFB-VALID-Signal und das obige VFB-POST-INST-Signal der UND-Schaltung 82 eingegeben, werden das obige VPS-VALID-Signal und das obige VPS-POST- INST-Signal der UND-Schaltung 83 eingegeben, werden das obige VQB-VALID-Signal und das obige VQB-POST-INST-Signal der UND-Schaltung 84 eingegeben und werden das obige VQS- VALID-Signal und das obige VQS-POST-INST-Signal der UND- Schaltung 85 eingegeben. Alle Ausgaben der UND-Schaltungen 81 bis 85 und ein POST-PENDING0-Signal von der Schaltung 201 werden der ODER-Schaltung 86 eingegeben. Das POST-PENDING0- Signal wird in der Schaltung 201 als logische Summe des BI- PENDING-Signals und aller Ausgaben der UND-Schaltungen 38, 40 und 42 erzeugt. Die ODER-Schaltung 86 gibt das POST- PENDING1-Signal aus, das der Skalareinheit 1 zugeführt wird. Das POST-PENDING1-Signal ist nämlich aktiv, wenn eine Nachinstruktion in irgendeinem des Vektorinstruktionsabrufstufenregisters 31, des Vektorinstruktionsabrufstufenpufferregisters 33, des Vektorinstruktionsdekodierstufenregisters 34, des Vektorinstruktionsstartstufenpufferregisters 35 und des Vektorinstruktionsstartstufenregisters 36 gehalten wird, oder wenn ein Recht zum Zugreifen auf den Speicher zum Lesen oder Speichern eines letzten Elementes durch Operationen für alle Vektorinstruktionen, die der Nachinstruktion vorausgehen, nicht erhalten worden ist, oder wenn eine Adresse, die in der Pufferspeicherannullierungsadressenspeicherschaltung gespeichert ist, noch nicht zu der Skalareinheit übertragen worden ist.
- Im folgenden werden Konstruktionen bezüglich der vorliegenden Erfindung in der Skalareinheit 1 erläutert.
- Zuerst wird unter Bezugnahme auf Fig. 9 ein Beispiel von Verarbeitungsabläufen für eine Skalarinstruktion in der Skalareinheit 1 in der Ausführungsform der vorliegenden Erfindung erläutert. Wie in Fig. 9 gezeigt, wird eine Skalarinstruktion in einer Vielzahl von Verarbeitungsabläufen durch Pipelineverarbeitung verarbeitet, und im allgemeinen umfaßt jeder Ablauf eine Dekodierstufe D, eine Adressenberechnungsstufe A, eine Adressentransformierungsstufe T, eine Pufferzugriffsstufe B, eine Ausführungsstufe E und eine Schreibstufe W zum Schreiben eines Resultats der Ausführung.
- Figur 10 zeigt eine Konstruktion zum Erzeugen eines POST-PENDING2-Signals in der Skalareinheit 1. In Fig. 10 bezeichnen die Bezugszahlen 91, 101, 102, 103 und 104 jeweils eine UND-Schaltung, bezeichnet 92 eine Flip-Flop- Schaltung des RS-Typs, bezeichnen 93 bis 99 jeweils ein Register, und bezeichnet 105 eine NCR-Schaltung. Das POST- INST-Signal, das in Fig. 10 gezeigt ist, wird durch Dekodieren einer Instruktion erzeugt, die in der Skalareinheit 1 neu abgerufen wird, obwohl der Dekodierer nicht gezeigt ist. Das WAIT-INST-Signal wird aktiv, wenn eine Nachinstruktion in dem Dekodierer detektiert wird. Das Signal Arel ist ein A-Stufen-Freigabesignal, das von einer Steuerschaltung (nicht gezeigt) der Skalareinheit 1 ausgegeben wird, die die Pipelineverarbeitung in der Skalareinheit 1 steuert, wenn eine Ausführung einer Skalarinstruktion von der A-Stufe (der Adressenberechnungsstufe, wie zuvor unter Bezugnahme auf Fig. 9 erwähnt) freigegeben wird. Ahnlich sind die Signale Trel, Brei und Erel jeweilig Freigabesignale von der T-Stufe, B-Stufe und E-Stufe (Fig. 9) und sind die Signale Tval, Bval, Eval und Wval jeweilig gültige Signale von der T-Stufe, B- Stufe, E-Stufe und W-Stufe (Fig. 9).
- Bei der Konstruktion von Fig. 10 werden das POST-INST- Signal und das Arel-Signal der UND-Schaltung 91 eingegeben, und die Ausgabe der UND-Schaltung 91 wird auf den Eingangssetzanschluß S der Flip-Flop-Schaltung 92 angewendet. Wenn in der Skalareinheit 1 eine Nachinstruktion abgerufen wird, wird die Nachinstruktion durch den obengenannten Dekodierer detektiert, und das POST-INST-Signal wird aktiv. Wenn die Nachinstruktion von der Adressenberechnungsstufe A freigegeben wird, wird das Arel-Signal aktiv, und somit wird die Flip-Flop-Schaltung 92 gesetzt, um ihre Q-Ausgabe aktiv zu machen. Die Q-Ausgabe der Flip-Flop-Schaltung 92 ist das obige POST-PENDING2-Signal. Die Ausgabe der UND-Schaltung 91 wird auch auf das Register 93 angewendet und dem Register 93 synchron mit einem Takt eingegeben, wenn das obige Arel- Signal aktiv ist. Die Ausgabe des Registers 93 wird auf das Register 94 angewendet und dem Register 94 synchron mit dem Takt eingegeben, wenn das obige Trel-Signal aktiv ist. Die Ausgabe des Registers 94 wird auf das Register 95 angewendet und dem Register 95 synchron mit dem Takt eingegeben, wenn das obige Brei-Signal aktiv ist. Die Ausgabe des Registers 95 wird auf das Register 96 angewendet und dem Register 96 synchron mit dem Takt eingegeben, wenn das obige Erel-Signal aktiv ist. Drei weitere Register 97, 98 und 99 folgen den obigen Registern 93 bis 96. Die Ausgaben der Register 93, 94, 95 und 96 werden jeweilig auf Eingangsanschlüsse von jeder der UND-Schaltungen 101, 102, 103 und 104 angewendet, und die obigen Signale Tval, Bval, Eval und wval werden jeweilig auf andere Eingangsanschlüsse der UND-Schaltungen 101, 102, 103 und 104 angewendet. Die Ausgaben der UND-Schaltungen 101, 102, 103 und 104, die Ausgabe der Register 97 bis 99 und das POST-PENDING1-Signal von der Vektoreinheit 2 werden der NOR-Schaltung 105 eingegeben, und die Ausgabe der NCR-Schaltung 105 wird auf die Flip-Flop-Schaltung 92 als Rücksetzsignal RESET-POST-PENDING angewendet. Die Ausgaben der UND-Schaltungen 101 bis 104 geben jeweilig an, ob eine Nachinstruktion in den jeweiligen Stufen der Pipeline in der Skalareinheit 1 verarbeitet wird oder nicht. Da die Nachinstruktion in der W-Stufe zu der Vektoreinheit 2 übertragen wird, wird gemäß der obigen Konstruktion das POST-PENDING2- Signal aktiv, wenn eine Nachinstruktion von der A-Stufe der Pipeline in der Skalareinheit 1 freigegeben wird, und wird gehalten, bis das POST-PENDING1-Signal von der Vektoreinheit 2 inaktiv wird. Die obigen drei Register 97 bis 99 sind zum Halten der Aktivität des POST-PENDING2-Signals vorgesehen, nachdem die Nachinstruktion von der W-Stufe der Skalareinheit 1 freigegeben ist, bis das POST-PENDING1-Signal von der Vektoreinheit 2 als Reaktion auf einen Empfang der Nachinstruktion durch die Vektoreinheit 2 aktiv wird.
- Figur 11 zeigt eine Konstruktion zum Erzeugen eines INTERLOCK-Signals in der Skalareinheit 1. In Fig. 11 bezeichnen die Bezugszahlen 111, 112 und 114 jeweils eine UND-Schaltung, und 113 bezeichnet eine Flip-Flop-Schaltung des RS-Typs. Das WAIT-INST-Signal und das ACCESS-INST- Signal, die in Fig. 11 gezeigt sind, werden durch Dekodieren einer Instruktion erzeugt, die in der Skalareinheit 1 neu abgerufen wurde, obwohl der Dekodierer nicht gezeigt ist. Das WAIT-INST-Signal wird aktiv, wenn in dem Dekodierer eine Warteinstruktion detektiert wird, und das ACCESS-INST-Signal wird aktiv, wenn eine Skalarinstruktion, deren Operation eine Zugriffsoperation auf den Hauptspeicher enthält, in dem Dekodierer detektiert wird. Das Arei-Signal ist das zuvor erwähnte A-Stufen-Freigabesignal, das ausgegeben wird, wenn eine Ausführung einer Skalarinstruktion von der A-Stufe freigegeben wird.
- Das POST-PENDING2-Signal, das WAIT-INST-Signal und das Arel-Signal werden der UND-Schaltung 111 eingegeben, und die Ausgabe der UND-Schaltung 111 wird auf den Eingangssetzanschluß S der Flip-Flop-Schaltung 113 angewendet. Die Ausgabe der UND-Schaltung 111 ist aktiv, wenn eine Warteinstruktion von der A-Stufe freigegeben wird und das POST- PENDING2-Signal aktiv ist. Die Q-Ausgabe der Flip-Flop- Schaltung 113 ist mit WAIT-PENDING bezeichnet und wird auf einen Eingangsanschluß von jeder der UND-Schaltungen 112 und 114 angewendet. Die Inversion des POST-PENDING2-Signals wird auf den anderen Eingangsanschluß der UND-Schaltung 112 angewendet. Die Ausgabe der UND-Schaltung 112 wird auf den Eingangsrücksetzanschluß der Flip-Flop-Schaltung 113 angewendet. Das ACCESS-INST-Signal wird auf den anderen Eingangsanschluß der UND-Schaltung 114 angewendet. Die Ausgabe der UND-Schaltung 114 wird als INTERLOCK-Signal erhalten, welches ein Steuersignal ist, um die Ausführung von Skalarinstruktionen, die der Warteinstruktion folgen und deren Operation eine Zugriffsoperation auf den Hauptspeicher enthält, zu suspendieren.
- Somit wird, wenn eine Warteinstruktion von der A-Stufe freigegeben wird und das POST-PENDING2-Signal aktiv ist, die Flip-Flop-Schaltung 113 gesetzt, d. h., das WAIT-PENDING- Signal wird aktiv. Wenn das WAIT-PENDING-Signal aktiv wird, wird das INTERLOCK-Signal aktiv, wenn eine Skalarinstruktion, die der Warteinstruktion folgt und deren Operation eine Zugriffsoperation auf den Hauptspeicher enthält, detektiert wird. Deshalb wird die Ausführung der Skalarinstruktion wie oben suspendiert. Wenn das POST-PENDING2-Signal inaktiv wird, während das WAIT-PENDING-Signal aktiv ist, wird die Ausgabe der UND-Schaltung 112 aktiv, wird die Flip- Flop-Schaltung 113 zurückgesetzt und wird das WAIT-PENDING- Signal inaktiv, und somit wird die obige suspendierte Ausführung der Skalarinstruktion freigegeben.
- Figuren 12A bis 12C zeigen ein Beispiel der Operationen der Ausführungsform der vorliegenden Erfindung.
- Bei dem Beispiel von Fig. 12A bis 12C sind die Operationen in der Skalareinheit 1 in dem Bereich der oberen Hälfte SU der Fig. 12A bis 12C gezeigt, sind die Operationen in der Vektoreinheit 2 in dem Bereich der unteren Hälfte VU der Fig. 12A bis 12C gezeigt, werden die Operationen einer Nachinstruktion und einer Warteinstruktion jeweilig in vier Operationsabläufen durch eine Pipeline in der Skalareinheit 1 ausgeführt, wie zuvor unter Bezugnahme auf Fig. 9 erläutert, und sind aktive Signale und gültige Stufen der Operationen jeweilig durch durchgehende Linien gekennzeichnet.
- Wenn ein Arel-Signal für eine Nachinstruktion von der zuvor erwähnten Steuerschaltung ausgegeben wird, wird das POST-PENDING2-Signal aktiv, und die Aktivität des POST- PENDING2-Signals wird von selbst gehalten, bis drei Zyklen (3τ) ablaufen, nachdem die W-Stufen-Operation für die Nachinstruktion in der Skalareinheit 1 vollendet ist. Die Instruktionsdaten der Nachinstruktion werden zu der Vektoreinheit 2 in vier Zyklen übertragen, die durch IV und DV bezeichnet sind. Als Reaktion auf den ersten Zyklus der Übertragung IV detektiert die Vektoreinheit 2 den Empfang der Nachinstruktion, wird das POST-PENDING1-Signal aktiv und hält das aktive POST-PENDING1-Signal die obige Aktivität des POST-PENDING2-Signals in der Skalareinheit 1.
- In Fig. 12B wird, da das PCST-PENDING2-Signal im Anschluß an die Operationen von Fig. 12A aktiv ist, wenn eine Warteinstruktion detektiert ist und die Warteinstruktion von der A-Stufe freigegeben wird, das WAIT-PENDING-Signal aktiv, und deshalb wird die Ausführung der Skalarinstruktion, die der Warteinstruktion folgt, auf ihrer A-Stufe suspendiert. Wenn dann das POST-PENDING1-Signal inaktiv wird, wird das WAIT-PENDING-Signal inaktiv, d. h., das INTERLOCK-Signal wird inaktiv, und die Ausführung der obigen Skalarinstruktion wird freigegeben.
- Figur 12C zeigt eine Operation, wenn das POST-PENDING2- Signal inaktiv ist, wenn eine Warteinstruktion von der A- Stufe freigegeben wird. In diesem Fall wird das WAIT-PEN- DING-Signal inaktiv, d. h., das INTERLOCK-Signal ist inaktiv, und deshalb wird die Ausführung der Skalarinstruktion, die der Warteinstruktion folgt, unmittelbar gestartet.
Claims (8)
1. Ein Datenverarbeitungssystem mit:
einer Skalareinheit (1);
einer Vektoreinheit (2), die mit einer
Vektorsteuereinheit (11) versehen ist, die ein
Vektorinstruktionssteuermittel (12) und ein Vektorlade-/-speichersteuermittel (13)E>
enthält; und
einem Hauptspeicher (10), der mit einer
Speichersteuereinheit (14) versehen ist, die mit der Skalareinheit
und der Vektoreinheit operativ verbunden ist;
welche Skalareinheit (1) angeordnet ist, um
Skalarinstruktionen und Vektorinstruktionen zu empfangen, um
die Skalarinstruktionen auszuführen und um die
Vektorinstruktionen zu der Vektoreinheit (2) zu übertragen;
welche Vektoreinheit (2) angeordnet ist, um die
Vektorinstruktionen, die von der Skalareinheit empfangen
wurden, durch Verarbeiten von einer Vielzahl von Elementen
auszuführen;
welches Vektorinstruktionssteuermittel (12) ein
Nachlaufsignal-Erzeugungsmittel (81-86, 201) umfaßt, zum
Erzeugen eines Nachlaufsignals (POST-PENDING; POST-
PENDING1), das aktiv gemacht wird, wenn eine Nachinstruktion
(POST) in der Vektoreinheit (2) empfangen wird, welches
Vektorinstruktionssteuermittel (12) angeordnet ist, um das
Nachlaufsignal (POST-PENDING; POST-PENDING1) inaktiv zu
machen, sobald ein Recht zum Zugreifen auf den Hauptspeicher
(10) zum Lesen oder Speichern eines letzten Elementes
erhalten wird, das durch die Vektorinstruktionen, die der
Nachmstruktion (POST) vorausgehen, zu lesen oder zu speichern
ist;
welche Skalareinheit (1) ein
Warteinstruktionsdetektionsmittel umfaßt, zum Detektieren einer Übertragung
einer Warteinstruktion (WAIT) zu der Vektoreinheit (2), und
ein Verriegelungssteuermittel (111-114) zum Suspendieren,
als Reaktion auf die Detektion der Warteinstruktion (WAIT)
durch das Warteinstruktionsdetektionsmittel, der Ausführung
von Skalarinstruktionen, die der Warteinstruktion folgen und
Zugriff auf den Hauptspeicher (10) erfordern, welche
Skalareinheit (1) angeordnet ist, um den inaktiven Zustand des
Nachlaufsignals zu erkennen und die Ausführung der folgenden
Skalarinstruktionen als Reaktion darauffreizugeben;
dadurch gekennzeichnet, daß das
Verriegelungssteuermittel ein Mittel (112, 113) umfaßt, zum Freigeben der
Ausführung der folgenden Skalarinstruktionen als Reaktion
auf den inaktiven Zustand des Nachlaufsignals (POST-PENDING;
POST-PENDING1), ohne auf den Start der Warteinstruktion
(WAIT) in der Vektoreinheit (2) zu warten.
2. Ein Datenverarbeitungssystem nach Anspruch 1, bei
dem:
die Skalareinheit (1) ferner umfaßt:-
ein Nachinstruktionsdetektionsmittel zum
Detektieren einer Nachinstruktion (POST); und
ein Erzeugungsmittel eines zweiten
Nachlaufsignals (91-99, 101-105), das die Ausgabe des
Nachinstruktionsdetektionsmittels und das Nachlaufsignal (POST-PENDING1)
empfängt und ein zweites Nachlaufsignal (POST-PENDING2)
erzeugt, das aktiv gemacht wird, wenn die Nachinstruktion
(POST) detektiert wird, und inaktiv gemacht wird, wenn das
Nachlaufsignal (POST-PENDING1) inaktiv wird;
bei dem das Verriegelungssteuermittel (111-
114) angeordnet ist, um die Ausführung der folgenden
Skalarinstruktionen zu suspendieren, während das zweite
Nachlaufsignal (POST-PENDING2) aktiv ist.
3. Ein Datenverarbeitungssystem nach Anspruch 2, bei
dem das Nachlaufsignal-Erzeugungsmittel (81-86, 201) in der
Vektoreinheit (2) umfaßt:-
eine Vielzahl von Flagmitteln (81-85), die
entsprechend einer Vielzahl von Stufen vorgesehen sind, die
eine Vektorinstruktionsabrufstufe und eine
Vektorinstruktionsstartstufe für Vektorinstruktionen enthalten, zum
Angeben, daß die Nachinstruktion (POST) in den jeweiligen
Stufen zur Zeit verarbeitet wird;
ein Steuermittel (201) der Stufen nach dem Start,
zum Steuern der Ausführung einer Vektorinstruktion nach
ihrem Start und mit einem Detektionsmittel des letzten
Speicherzugriffs (44) zum Detektieren, daß das Recht zum
Zugreifen auf den Hauptspeicher (10) zum Lesen oder
Speichern des letzten Elementes erhalten wurde, und zum Ausgeben
eines Signals des letzten Speicherzugriffs (POST-PENDING0),
das die Detektion angibt; und
ein erstes Gattermittel (86), das alle Ausgaben
der Flagmittel (81-85) und das Signal des letzten
Speicherzugriffs (POST-PENDING0) empfängt und das Nachlaufsignal
(POST-PENDING1) ausgibt, das aktiv gemacht wird, wenn
irgendeine der Ausgaben der Flagmittel aktiv ist und das
Signal des letzten Speicherzugriffs inaktiv ist, und inaktiv
gemacht wird, wenn keine der Ausgaben der Flagmittel aktiv
ist und das Signal des letzten Speicherzugriffs aktiv ist.
4. Ein Datenverarbeitungssystem nach Anspruch 3, bei
dem das Erzeugungsmittel des zweiten Nachlaufsignals (91-99,
101-105) ferner umfaßt:
ein Statusregister (92), das gesetzt wird, wenn
eine Operation für eine Nachinstruktion von einer
Adressenberechnungsstufe in der Skalareinheit (1) freigegeben wird,
das zweite Nachlaufsignal (POST-PENDING2) ausgibt, und durch
ein Rücksetzsignal zurückgesetzt wird;
ein Schieberegister (93-99) mit einer Vielzahl von
Registern, die entsprechend einer Vielzahl von
Operationsstufen für Instruktionen vorgesehen sind, die in der
Skalareinheit (1) verarbeitet werden, und einer vorbestimmten
Verzögerung, wo der Eingang des Schieberegisters (93-99)
derselbe wie der Eingang des Statusregisters (92) ist und
die Verzögerung so vorbestimmt ist, daß ein aktiver Zustand
des zweiten Nachlaufsignals (POST-PENDING2) wenigstens von
der Zeit an, wenn eine Nachinstruktion (POST) in dem
Nachinstruktionsdetektionsmittel detektiert wird, anhält, bis ein
aktives Nachlaufsignal (POST-PENDING1) als Reaktion auf
dieselbe Nachinstruktion in der Skalareinheit (1) empfangen
wird; und
ein zweites Gattermittel (105), das alle Ausgaben
von der Vielzahl von Registern in dem Schieberegister (93-
99) und das Nachlaufsignal (POST-PENDING1) von der
Vektoreinheit (2) empfängt und das Rücksetzsignal an das
Statusregister (92) ausgibt, bei dem das Rücksetzsignal aktiv
gemacht wird, wenn keine der Eingaben des zweiten
Gattermittels (105) aktiv ist.
5. Ein Datenverarbeitungssystem nach irgendeinem
vorhergehenden Anspruch,
bei dem die Speichersteuereinheit (14) angeordnet
ist, um die Forderungen nach Zugriff auf den Speicher von
der Skalareinheit (1) und der Vektoreinheit (2) zu empfangen
und um Operationen auszuführen, um auf den Hauptspeicher
(10) für die empfangenen Forderungen zuzugreifen, und ein
Prioritätssteuermittel umfaßt, zum Ausgeben eines aktiven
Speicherzugriffsquittungssignals als Reaktion auf eine der
empfangenen Forderungen, zum Berechtigen der entsprechenden
Skalareinheit (1) oder Vektoreinheit (2) zum Zugreifen auf
den Hauptspeicher.
6. Ein Datenverarbeitungssystem nach irgendeinem
vorhergehenden Anspruch, bei dem die Speichersteuereinheit (14)
umfaßt:-
ein
Pufferspeicherannullierungsadressenspeichermittel (71) zum temporären Speichern einer oder mehrerer
Adressen, für die die Speicherzugriffsoperationen ausgeführt
werden;
ein
Pufferspeicherannullierungsadressenübertragungsmittel (65) zum Übertragen der Adressen, die in dem
Pufferspeicherannullierungsadressenspeichermittel (71)
gespeichert sind, zu der Skalareinheit (1), und zum
Entfernen der übertragenen Adressen aus dem
Pufferspeicherannullierungsadressenspeichermittel (71);
ein Übertragungsvollendungssignal-Erzeugungsmittel
(66) zum Erzeugen eines Übertragungsvollendungssignals (BI-
PENDING), das angibt, daß alle Adressen, die in dem
Pufferspeicherannullierungsadressenspeichermittel (71) gespeichert
sind, zu der Skalareinheit (1) übertragen worden sind, wenn
es aktiv ist; und
ein Prioritätssteuermittel zum Ausgeben eines
aktiven Speicherzugriffsquittungssignals als Reaktion auf
eine der empfangenen Forderungen zum Berechtigen der
entsprechenden Skalareinheit (1) oder Vektoreinheit (2) zum
Zugreifen auf den Hauptspeicher;
bei dem die Skalareinheit (1) ferner umfaßt:-
einen Pufferspeicher (15) zum temporären Speichern
eines Datenabschnittes des Hauptspeichers (10); und
ein Pufferspeicherannullierungsmittel zum
Ungültigmachen von Daten in dem Pufferspeicher unter Verwendung
der Adressen, die durch das
Pufferspeicherannullierungsadressenübertragungsmittel
übertragen werden, wenn die
Adresse der Daten in dem Pufferspeicher der Adresse in dem
Speicher entspricht, für die eine Schreiboperation von der
Vektoreinheit (2) ausgeführt worden ist;
und bei dem das Nachlaufsignal-Erzeugungsmittel
auf das Übertragungsvollendungssignal (BI-PENDING) reagiert,
um das Nachlaufsignal (POST-PENDING1) inaktiv zu machen,
falls es nicht schon in dem inaktiven Zustand ist.
7. Ein Datenverarbeitungssystem nach Anspruch 6
zusammen mit Anspruch 3 oder 4,
bei dem das erste Gattermittel (86) auch das
Übertragungsvollendungssignal von der Speichersteuereinheit (14)
empfängt und bei dem das Nachlaufsignal aktiv gemacht wird,
wenn irgendeine der Ausgaben von der Vielzahl von
Flagmitteln aktiv ist und entweder das
Übertragungsvollendungssignal (BI-PENDING) oder das Signal des letzten
Speicherzugriffs inaktiv ist, und inaktiv gemacht wird, wenn keine der
Ausgaben von der Vielzahl von Flaginitteln aktiv ist und
sowohl das Übertragungsvollendungssignal als auch das Signal
des letzten Speicherzugriffs aktiv ist.
8. Ein Datenverarbeitungssystem nach Anspruch 6 oder
7, bei dem die Speichersteuereinheit (14) ferner umfaßt:-
eine Adressentabelle (55) zum Speichern von
Adressen von Daten, die zur Zeit in dem Pufferspeicher
gespeichert sind; und
ein Vergleichsmittel (56) zum Vergleichen der
Adressen, die in dem Pufferspeicherannullierungsadressen
speichermittel (71) gespeichert sind, mit den Adressen, die
in der Adressentabelle (55) gespeichert sind, bei dem das
Pufferspeicherannullierungsadressenübertragungsmittel eine
Adresse, die in dem
Pufferspeicherannullierungsadressenspeichermittel
(71) gespeichert ist, zu der Skalareinheit (1)
überträgt, wenn die Adresse, die in dem
Pufferspeicherannullierungsadressenspeichermittel (71) gespeichert ist, mit
einer Adresse, die in der Adressentabelle (55) gespeichert
ist, koinzidiert.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1121277A JP2677414B2 (ja) | 1989-05-15 | 1989-05-15 | 命令実行のシリアライズ制御方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69028572D1 DE69028572D1 (de) | 1996-10-24 |
DE69028572T2 true DE69028572T2 (de) | 1997-01-30 |
Family
ID=14807272
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69028572T Expired - Fee Related DE69028572T2 (de) | 1989-05-15 | 1990-05-15 | Serieller Betrieb zwischen Vektorbefehl und Skalarbefehl in einem Datenverarbeitungssystem |
Country Status (5)
Country | Link |
---|---|
US (1) | US5247691A (de) |
EP (1) | EP0398639B1 (de) |
JP (1) | JP2677414B2 (de) |
CA (1) | CA2016532C (de) |
DE (1) | DE69028572T2 (de) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5530881A (en) * | 1991-06-06 | 1996-06-25 | Hitachi, Ltd. | Vector processing apparatus for processing different instruction set architectures corresponding to mingled-type programs and separate-type programs |
EP0529303A3 (en) * | 1991-08-29 | 1993-09-22 | International Business Machines Corporation | Checkpoint synchronization with instruction overlap enabled |
US5809552A (en) * | 1992-01-29 | 1998-09-15 | Fujitsu Limited | Data processing system, memory access device and method including selecting the number of pipeline stages based on pipeline conditions |
US5872988A (en) * | 1992-06-17 | 1999-02-16 | U.S. Philips Corporation | Parallel data processing device having a concatenated data path between elementary processors |
JPH06168263A (ja) * | 1992-11-30 | 1994-06-14 | Fujitsu Ltd | ベクトル処理装置 |
US6625720B1 (en) * | 1999-08-17 | 2003-09-23 | Nec Electronics, Inc. | System for posting vector synchronization instructions to vector instruction queue to separate vector instructions from different application programs |
US6513107B1 (en) | 1999-08-17 | 2003-01-28 | Nec Electronics, Inc. | Vector transfer system generating address error exception when vector to be transferred does not start and end on same memory page |
US6857061B1 (en) | 2000-04-07 | 2005-02-15 | Nintendo Co., Ltd. | Method and apparatus for obtaining a scalar value directly from a vector register |
US20030196072A1 (en) * | 2002-04-11 | 2003-10-16 | Chinnakonda Murali S. | Digital signal processor architecture for high computation speed |
US7577816B2 (en) * | 2003-08-18 | 2009-08-18 | Cray Inc. | Remote translation mechanism for a multinode system |
US7421565B1 (en) * | 2003-08-18 | 2008-09-02 | Cray Inc. | Method and apparatus for indirectly addressed vector load-add -store across multi-processors |
US7743223B2 (en) * | 2003-08-18 | 2010-06-22 | Cray Inc. | Decoupling of write address from its associated write data in a store to a shared memory in a multiprocessor system |
US7543133B1 (en) | 2003-08-18 | 2009-06-02 | Cray Inc. | Latency tolerant distributed shared memory multiprocessor computer |
US8307194B1 (en) | 2003-08-18 | 2012-11-06 | Cray Inc. | Relaxed memory consistency model |
US7437521B1 (en) * | 2003-08-18 | 2008-10-14 | Cray Inc. | Multistream processing memory-and barrier-synchronization method and apparatus |
US7519771B1 (en) | 2003-08-18 | 2009-04-14 | Cray Inc. | System and method for processing memory instructions using a forced order queue |
US7478769B1 (en) | 2005-03-09 | 2009-01-20 | Cray Inc. | Method and apparatus for cooling electronic components |
US20070074008A1 (en) * | 2005-09-28 | 2007-03-29 | Donofrio David D | Mixed mode floating-point pipeline with extended functions |
US7694025B1 (en) | 2006-03-31 | 2010-04-06 | Integrated Device Technology, Inc. | Method and device for base address sorting and entry into base address registers |
US7647438B1 (en) | 2006-05-09 | 2010-01-12 | Integrated Device Technology, Inc. | Binary base address sorting method and device with shift vector |
US7779197B1 (en) | 2006-05-09 | 2010-08-17 | Integrated Device Technology, Inc. | Device and method for address matching with post matching limit check and nullification |
US7634586B1 (en) | 2006-06-05 | 2009-12-15 | Integrated Device Technology, Inc. | Device for concurrent limit validity check |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6043535B2 (ja) * | 1979-12-29 | 1985-09-28 | 富士通株式会社 | 情報処理装置 |
JPS6186844A (ja) * | 1984-10-04 | 1986-05-02 | Fujitsu Ltd | 逐次化命令の移動方式 |
JPS6224366A (ja) * | 1985-07-03 | 1987-02-02 | Hitachi Ltd | ベクトル処理装置 |
US4760518A (en) * | 1986-02-28 | 1988-07-26 | Scientific Computer Systems Corporation | Bi-directional databus system for supporting superposition of vector and scalar operations in a computer |
JPH06103494B2 (ja) * | 1986-11-18 | 1994-12-14 | 株式会社日立製作所 | ベクトル処理装置の制御方式 |
JPS63253468A (ja) * | 1987-04-10 | 1988-10-20 | Hitachi Ltd | ベクトル処理装置 |
JPS6432379A (en) * | 1987-07-29 | 1989-02-02 | Hitachi Ltd | Computer |
JPS6467680A (en) * | 1987-09-09 | 1989-03-14 | Hitachi Ltd | Vector processor |
-
1989
- 1989-05-15 JP JP1121277A patent/JP2677414B2/ja not_active Expired - Lifetime
-
1990
- 1990-05-10 CA CA002016532A patent/CA2016532C/en not_active Expired - Fee Related
- 1990-05-15 EP EP90305212A patent/EP0398639B1/de not_active Expired - Lifetime
- 1990-05-15 DE DE69028572T patent/DE69028572T2/de not_active Expired - Fee Related
- 1990-05-15 US US07/523,567 patent/US5247691A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
DE69028572D1 (de) | 1996-10-24 |
EP0398639A2 (de) | 1990-11-22 |
CA2016532C (en) | 1994-04-26 |
US5247691A (en) | 1993-09-21 |
EP0398639B1 (de) | 1996-09-18 |
EP0398639A3 (de) | 1991-05-29 |
CA2016532A1 (en) | 1990-11-15 |
JP2677414B2 (ja) | 1997-11-17 |
JPH02300852A (ja) | 1990-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69028572T2 (de) | Serieller Betrieb zwischen Vektorbefehl und Skalarbefehl in einem Datenverarbeitungssystem | |
DE69130554T2 (de) | Registerschaltung zum Kopieren des Inhalts eines Registers in ein anderes Register | |
DE3751426T2 (de) | Busschnittstellenschaltung für digitalen Datenprozessor. | |
DE69319763T2 (de) | Verfahren und Gerät zur Durchführung eines Busarbitrierungsprotokolls in einem Datenverarbeitungssystem | |
DE69127101T2 (de) | System für verteilte mehrfachrechnerkommunikation | |
DE69128107T2 (de) | Busanordnung für Speicherzugriff | |
DE69733374T2 (de) | Speichersteuerungsvorrichtung und -system | |
DE4104781C2 (de) | Speicherzugriffssteuerung | |
DE3789604T2 (de) | Datenprozessor zur parallelen Ausführung von miteinander im Konflikt stehenden Befehlen. | |
DE3685876T2 (de) | Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher. | |
DE3210816C2 (de) | ||
DE69029995T2 (de) | Multiprozessor mit relativ atomaren Befehlen | |
DE69812685T2 (de) | System und verfahren zur spekulativen arbitrierung bei datenübertragung | |
DE3933849A1 (de) | Prozessorgesteuerte schnittstelle | |
CN1019236B (zh) | 数字数据处理系统高速缓冲存储器内容的失效标记 | |
DE4207148A1 (de) | Superscalar-prozessor | |
DE3750028T2 (de) | Pipelineprozessor mit schwacher Kopplung. | |
DE3485980T2 (de) | Datenverarbeitungsapparat zur verbindung mit einem gemeinsamen uebertragungsbus in einem datenverarbeitungssystem. | |
DE68928343T2 (de) | Schreib-Lese/Schreib-Weitergabe-Speichersubsystemzyklus | |
DE68926761T2 (de) | Mehrprozessorsystem mit einem mehranschlüssigen Cachespeicher | |
DE68926374T2 (de) | Seriellumsetzungssteuerungssystem für Hauptspeicherreferenz | |
DE69229303T2 (de) | Gemeinsame Benutzung eines Speichers zur Kommunikation zwischen Prozessoren | |
DE69323477T2 (de) | Vektorprozessor | |
DE3586551T2 (de) | Integrierte halbleiterschaltung zum austausch von buszugriffberechtigungen zwischen mikroprozessoren. | |
DE19950255B4 (de) | Mikroprozessor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |