DE69028572T2 - Serieller Betrieb zwischen Vektorbefehl und Skalarbefehl in einem Datenverarbeitungssystem - Google Patents

Serieller Betrieb zwischen Vektorbefehl und Skalarbefehl in einem Datenverarbeitungssystem

Info

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
Application number
DE69028572T
Other languages
English (en)
Other versions
DE69028572D1 (de
Inventor
Kenichi Sakai
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of DE69028572D1 publication Critical patent/DE69028572D1/de
Application granted granted Critical
Publication of DE69028572T2 publication Critical patent/DE69028572T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/458Synchronisation, e.g. post-wait, barriers, locks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, 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.
DE69028572T 1989-05-15 1990-05-15 Serieller Betrieb zwischen Vektorbefehl und Skalarbefehl in einem Datenverarbeitungssystem Expired - Fee Related DE69028572T2 (de)

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)

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

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

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