-
Die
Erfindung betrifft ein Prozessorsystem in Parallelverarbeitungsbauart
und ein Verfahren zu dessen Steuerung, um auf der Befehlsebene eine
parallele Durchführung
vorzunehmen, und insbesondere Trapund Stall-Steuerfunktionen in
dem parallel verarbeitenden Prozessorsystem.
-
In
Kenah, Lawrence J., "VAX/VMS
Internals and Data Structures",
Digital Press, Redford, Mass., U. S. A., S. 61–81 (1984) ist die Architektur
von VAX-11-Rechnern beschrieben. Zu Zuständen, die in einem laufenden
VAX-System auftreten,
gehören
in der Software oder Hardware aufgetretene Ausnahmen, etwa Abbruch,
Fehler oder Trap. Ein Abbruch veranlaßt, daß ein Programmzähler in
der Mitte eines Befehls auf einen Stapel gebracht wird; ein Befehl, der
einen Abbruch hervorruft, kann nicht erneut gestartet werden. Bei
einem Fehler wird der Programmzähler
des fehlerhaften Befehls auf den Stapel gebracht; dagegen bei einem
Trap der Programmzähler des
nächstfolgenden
Befehls.
-
IEEE
Transactions an Computers, Vol. 39, No. 3, S. 349–359 (1990)
gibt an, daß bei
sog. "Supercomputern" die CPUs meist aus
mehreren Funktionseinheiten in Pipeline-Anordnung bestehen. Hierbei können ungenaue
Interrupts von durch Befehle erzeugten Traps hervorgerufen werden,
etwa arithmetischen Ausnahmen und Seitenfehlern. Zur Erzeugung genauer
Interrupts wird eine Registeraktualisierungseinheit (RUU) vorgeschlagen,
in welcher Befehle in derselben Reihenfolge verarbeitet werden,
in welcher sie empfangen wurden.
-
Aus
Smith, J. E. und Plezkum, A. R. "Implementing
Precise Interrupts in Pipelined Processors", in IEEE Transactions an Computers,
Vol. 37, No. 5, 1988, S. 562–573
sind verschiedene Vorrichtungen und Verfahren zur Schaffung von
Trap- und Stallsteuerfunktionen in Prozessoren mit Parallelverarbeitungsbauart
bekannt.
-
In
den letzten Jahren wurde als mögliche Antwort
auf eine wachsende Erwartung für
Hochgeschwindigkeits-Personalcomputer eine Zentraleinheit (CPU)
entwickelt, die als "Super
Scalar Processor" oder
VLIW (sehr langes Befehlswort) bezeichnet wurde und die eine Parallelverarbeitung
auf der Ebene eines Maschinensprachbefehls durchführen kann und
bereits auf einem VLSI-Chip realisiert wurde. In einer derartigen
parallel verarbeitenden Zentraleinheit werden RISC Befehle als Grundbefehlssätze verwendet,
und die Verarbeitungsleistung wird verbessert, indem eine Anzahl
Befehle gleichzeitig geholt und durchgeführt werden. Insbesondere hat
der "Super Scalar
Processor" eine
Architektur, bei der der übliche
RISC für
eine sequentielle Verarbeitung auf Befehlsebene realisiert und die
Kompatibilität
auf Benutzerprogrammebene aufrecht erhalten werden kann, so daß er große Erwartungen
bei den Computeranwendern hervorruft.
-
Ein
derartiges Prozessorsystem, das eine Parallelverarbeitung auf Befehlsebene
ausführen kann,
und das ein bekanntes Trap-Steuerverfahren verwendet, hat einen
schematischen Aufbau gemäß 1.
Die 1 bis 3 stellen firmeninterne
Kenntnisse der Anmelderin dar.
-
Dieser
Aufbau nach 1 realisiert ein Prozessorsystem,
das in der Lage ist, eine Parallelverarbeitung auf Befehlsebene
durchzuführen
und hat fünf Pipeline-Stufen,
die eine F-Stufe (holen), eine D-Stufe (decodieren), eine E-Stufe
(ausführen),
eine M-Stufe (Speicherzutritt),
und eine W-Stufe (Register-Rückschreiben)
umfassen, wobei jeder Befehl eine Länge von einem Wort (32 Bits)
erhält.
-
Gemäß 1 umfaßt das Prozessorsystem: einen
Befehlsspeicher 1 zur Speicherung von Befehlen; eine Befehlsausgabeeinheit 2 zum
Holen von vier Befehlen mit vier Worte Begrenzung gleichzeitig aus
dem Befehlspeicher 1 in der F Stufe, Beachtung der Datenabhängigkeitsbeziehung
und der Steuerungsabhängigkeitsbeziehung
unter den vier geholten Befehlen in der D Stufe, und Zuführung ausführbarer
Befehle über
die Befehlszufuhrleitungen 20, 21, 22 und 23 in
der E Stufe; eine arithmetisch-logische Einheit (ALU0 und ALU1) 3 und 4 zur
Durchführung
des arithmetisch-logischen Rechenvorgangs und einer Speicheradressberechnung
in der Stufe E entsprechend den jeweils von den Befehlszufuhrleitungen 20 und 21 gelieferten
Befehlen; einen Gleitpunktaddierer (FADD) 5 zur Durchführung der
Gleitpunktaddition und -subtraktion in der E Stufe entsprechend
dem von der Befehlszufuhrleitung 22 gelieferten Befehl;
einen Gleitpunktmultiplizierer (FMUL) 6 zur Durchführung einer
Gleitpunktmultiplikation und -division in der E Stufe entsprechend
dem von der Befehlszufuhrleitung 23 gelieferten Befehl;
Speicherzugriffseinheiten (MA0 und MA1) 7 und 8 zur
Durchführung
der Speicherzugriffsvorgänge
relativ zu einem Zweikanal-Datenspeicher 25 in der M Stufe
entsprechend jeweils den Ausgangssignalen von ALU0 3 und
ALU1 4; Gleitkomma-Ausnahmeprüfeinheiten (EC1 und EC2) 9 und 10,
um jeweils eine Ausnahmeprüfung
in den Gleitkomma-Rechenvorgängen
in der M Stufe entsprechend den Ausgangssignalen FADD 5 und
FMUL 6 durchzuführen;
und eine Mehrkanal-Registerdatei 11 mit zwölf Kanälen einschließlich vier
Schreibkanälen
zum Empfang der Ausgangssignale von MA0 7, MA1 8,
EC1 9 und EC2 10 in der W Stufe, und acht Lesekanäle zur Lieferung
von Operandendaten an ALU03, ALU1 4, FADD 5 und
FMUL 6 über
die Operandendaten-Zufuhrleitungen 12 bis 19 in
der E Stufe.
-
Bei
diesem Aufbau nach 1 wird der Trap für eine Ganzzahlberechnungsausnahme,
wie beispielsweise eine Fehlseitenbedingung oder einen Überlauf
durch MA0 7 und MA1 8 erzeugt, während der
Trap für
die Gleitkomma-Berechnungsausnahme durch
EC1 9 und EC2 10 erzeugt wird.
-
Um
einen derartigen Trap für
Ausnahmebedingungen zu handhaben, ist das Prozessorsystem ferner
mit einem Trap-Ursachenregister 30 zur Speicherung einer
Ursache der Trap-Erzeugung ausgestattet; einem Trap-Adressregister 32 zur
Speicherung einer Adresse des Befehls, der die Trap-Erzeugung veranlaßte und
einer Trap-Steuereinheit 33, zum Empfang der Trap-Ursache
aus MA0 7, MA1 8, EC1 9 und EC2 10,
die über
die Trap-Anforderungssignalleitungen 43 bis 46 übertragen
wurden, abhängig
von welchen ein Trap-Signal über
die Trap-Signalleitungen 34 bis 38 auftritt, während entsprechende
Eingangssignale für
das Trap-Ursachenregister 30 und
das Trap-Adressregister 32 jeweils über Signalleitungen 40 und 42 erzeugt
werden.
-
Das
Trap-Signal in der Trap-Signalleitung 34 wird an die Befehlsausgabeeinheit 2,
an ALU0 3 und ALU1 4 übertragen, während die
Trap-Signale in den Trap-Signalleitungen 35 bis 38 jeweils
an MA0 7, MA1 8, EC1 9 und EC2 10 übertragen
werden. Abhängig
vom Trap Signal aus der Trap-Steuereinheit 33 wird ein
Ausführungs-Annullierungs-Merker
in jedem Element aktiviert, um die Verarbeitungen der Befehle an
den späteren
Pipeline-Stufen
abzubrechen, während
die Befehlsausgabeeinheit 2 die Befehlseinholung für das vorgeschriebene
Trap-Behandlungsprogramm
beginnt, bei dem die Trap Ursache und die Trap-Adresse, die im Trap-Ursachenregister 30 und
im Trap-Adressregister 32 gespeichert sind, verwendet werden.
-
Im
einzelnen hat die Trap-Steuereinheit 33 einen Aufbau gemäß 2.
Dabei umfaßt
die Trap-Steuereinheit 33 ferner: einen M-Stufe-Programmzähler 1 (MPC) 51 zur
Speicherung eines gemeinsamen Abschnitts der Wortadressen der Befehle,
die laufend in der M Stufe durchgeführt werden, bei dem die beiden
niedrigstwertigen Bits der Adressen der Befehle weggelassen werden;
M-Stufe-Unterprogrammzähler
(submpc1, submpc2, submpc3, submpc4) 53, 54, 55 und 56 zur
Speicherung einzelner Abschnitte der Wortadressen der Befehle, die laufend
in der M-Stufe durchgeführt
werden, die zwei niedrigstwertige Bits der Adressen der Befehle
angeben, die jeweils laufend von Mao 7, MA1 8,
EC1 9, und EC2 10 ausgeführt werden; und eine Trap-Datenerzeugereinheit 57,
die den kleinsten Eintrag unter den M-Stufe-Unterprogrammzählern 53 bis 56 als ein
Ausgangssignal 47 ausgibt, das mit dem Eintrag von MPC 51 zu
kombinieren ist, um die Trap-Adresse 42 zu erzeugen, die
dem Trap-Adressregister 32 zuzuführen ist, und die Trap-Ursache,
die über
eine der Trap-Anforderungssignalleitungen 43 bis 46 übertragen
wurde, entsprechend dem M-Stufe-Unterprogrammzähler 53 bis 56 mit
dem kleinsten Eintrag als Trap-Ursache 40, die dem Trap-Ursachenregister 30 zuzuführen ist,
während
die Trap-Signale über
die Trap-Signalleitungen 34 bis 38 erzeugt werden.
-
Dabei
tritt das Trap-Signal in der Trap-Signalleitung 34 auf,
sooft eine Trap-Ursache aus irgendeiner der Trap-Anforderungssignalleitungen 43 bis 46 empfangen
wird, während
jedes der Trap-Signale 35 bis 38 auftritt, wenn
die Trap-Anforderung aus einer der Trap-Anforderungssignalleitungen 43 bis 46 empfangen
wird und der zugeordnete der M-Stufe-Unterprogrammzähler 53 bis 56 den
Eintrag hat, der gleich groß wie
oder größer als
der Eintrag in einem der M-Stufe-Unterprogrammzähler 53 bis 56 ist,
aus dem die Trap-Anforderung erhalten wird.
-
3A zeigt
ein Programmbeispiel, das durch das Prozessorsystem der 1 ausgeführt werden
soll, und 3B zeigt einen Verlauf der Pipeline-Verarbeitung
im Prozessorsystem nach 1 unter Verwendung des bekannten,
vorausgehend beschriebenen Trap-Steuerverfahrens,
bei welchem die Fehlseitenbedingung beim "Lade"-Befehl
auftrat, wenn das Programm der 3A ausgeführt wird, wobei
der schraffierte Bereich die abgebrochenen Befehle angibt. Gemäß 3B werden
bei der bekannten Trap-Steuerung, wenn der Trap durch die Ausführung des
n + 2-ten "Lade" Befehls während des
Verlaufs der Programmausführung
nur jene Befehle abgebrochen, deren Befehlsnummern gleich groß wie oder
größer als
n + 2 sind.
-
Jedoch
können
bei einem derartigen bekannten Trap-Steuerverfahren, wenn die Trap-Anforderung über die
Trap-Anforderungsleitung 44 angezeigt wird, wenn die Fehlseitenbedingung
durch MA1 8 im Zyklus C + 3 erfaßt wird, die Trap-Signale in
den Trap-Signalleitungen 35 bis 38 nicht bestimmt
werden, bis die Einträge
in den M-Stufe-Unterprogrammzählern 53 bis 56 miteinander
verglichen werden, um zu bestimmen, welcher der größere ist,
so daß das Problem
auftrat, daß die
Zykluszeit eine beträchtliche Länge haben
muß, um
derartige Vergleichsvorgänge zu
gestatten, was wiederum zu einer Verringerung der Taktfrequenz führte.
-
Es
ist ferner anzumerken, daß der
RISC einen Aufbau benötigt,
der einen einfachen Datenweg und eine einfache Steuerschaltung hat,
und der Datenweg des "Super
Scalar Processors",
der mehrere Datenwege des RISC hat, ist nicht so kompliziert, jedoch
kann die Steuerschaltung des "Super
Scalar Processors" ziemlich
kompliziert sein, bedingt durch die Befehlszufuhrsteuerung und die
anderen erforderlichen Steuervorgänge. Insbesondere kann die Hardware
zur Verarbeitung eines Falls einer sogenannten Ausnahmebedingung,
bei welcher die Fortsetzung der Verarbeitung ohne Hilfe durch die
Software, wie beispielsweise ein Betriebssystem, unmöglich wird,
sehr kompliziert sein, und der Entwurf einer derartigen Hardware
kann sehr zeitaufwendig sein, so daß eine derartige Hardware häufig ein
kritischer Weg der Realisierung des "Super Scaler Processors" war.
-
Der
Erfindung liegt daher die Aufgabe zugrunde, ein Prozessorsystem
in Parallelverarbeitungsbauart und zugehöriges Verfahren, wie beispielsweise
einen "Super Scalar
Processor" zu schaffen,
die Trap- und Stall-Steuerfunktionen
aufweisen, die in der Lage sind, ohne Erhöhung der Zykluszeit zu arbeiten,
so daß eine
Verringerung der Taktfrequenz im System verhindert werden kann.
-
Die
Aufgabe wird durch ein Prozessorsystem gemäß Patentanspruch 1 bzw. ein
Verfahren gemäß Patentanspruch
8 gelöst.
Vorteilhafte Ausgestaltungen der Erfindung sind in den Unteransprüchen angegeben.
-
Weitere
Merkmale und Vorteile der Erfindung ergeben sich aus der nachfolgenden
Beschreibung in Verbindung mit den anliegenden Zeichnungen; es zeigt:
-
1 ein
Blockschaltbild eines bekannten Prozessorsystems der Parallelverarbeitungsbauart, das
ein bekanntes Trap-Steuerverfahren einsetzt,
-
2 ein
detailliertes Blockschaltbild einer Trap-Steuereinheit bei dem bekannten,
parallel verarbeitenden Prozessorsystem nach 1,
-
3A ein
Programmbeispiel, das in dem parallel arbeitenden Prozessorsystem
ausgeführt werden
soll,
-
3B eine
Darstellung eines Verlaufs einer Pipeline-Verarbeitung beim bekannten,
parallel arbeitenden Prozessorsystem der 1, wenn
eine Trap-Anforderung bei der Durchführung des Programms der 3A vorliegt,
-
4 ein
Blockschaltbild einer ersten Ausführungsform eines erfindungsgemäßen, parallel
arbeitenden Prozessorsystems,
-
5 ein
detailliertes Blockschaltbild einer Trap-Steuereinheit in dem parallel
arbeitenden Prozessorsystem nach 4,
-
6 eine
Darstellung eines Verlaufs einer Pipeline-Verarbeitung in dem parallel
arbeitenden Prozessorsystem nach 4, wenn
die Trap-Anforderung bei der Durchführung des Programms nach 3A vorliegt,
-
7 ein
Blockschaltbild einer zweiten Ausführungsform eines erfindungsgemäßen parallel
arbeitenden Prozessorsystems,
-
8 ein Programmbeispiel, das in dem parallel
arbeitenden Prozessorsystem der 7 ausgeführt werden
soll,
-
8B eine
Darstellung des Verlaufs einer Pipeline-Verarbeitung in dem parallel
arbeitenden Prozessorsystem nach 7, wenn
eine Stall-Anforderung in der Ausführung des Programms nach 8A vorliegt,
-
9 ein
Blockschaltbild einer dritten Ausführungsform eines erfindungsgemäßen, parallel
arbeitenden Prozessorsystems,
-
10 bis 14 Zeitablaufdarstellungen, in
die Ausführungsbeispiele
eines Stalls in Folge des Imis (Befehls-Cache-Verfehlen)-Signals
in dem parallel verarbeitenden Prozessorsystem nach 9 darstellen,
-
15 eine
Zeitablaufdarstellung, die Fallbeispiele eines Stalls als Folge
eines FAexch (FADDAusnahmeprüfung)-Signals
im parallel verarbeitenden Prozessorsytem nach 9 angeben,
-
16 eine
Zeitablaufdarstellung, die Ausführungsbeispiele
eines Stalls als Folge eines FDexch (FDIV Ausnahmeprüfung)-Signals
im parallel verarbeitenden Prozessorsystem nach 9 zeigen,
-
17 bis 19 Zeitablaufdarstellungen, die
Ausführungsbeispiele
eines Stall- Steuervorgangs im
parallel verarbeitenden Prozessorsystem nach 9 zeigen,
und
-
20 eine
Tabelle, die die Betriebsabläufe der
Pipelines im parallel arbeitenden Prozessorsystem nach 9 abhängig von
dem Stall-Steuervorgang zusammenfaßt.
-
Unter
Hinweis auf die 4 bis 6 wird die
erste Ausführungsform
eines erfindungsgemäßen parallel
arbeitenden Prozessorsystems im einzelnen beschrieben.
-
Die
Anordnung nach 4 realisiert ein Prozessorsystem,
das eine Parallelverarbeitung auf Befehlsebene durchführen kann,
die fünfstufige
Pipelinestufen hat, die eine F-Stufe (holen), D-Stufe (decodieren),
eine E-Stufe (ausführen),
eine M-Stufe (Speicherzugriff), und eine W-Stufe (Register-Rückschreiben) enthalten, in
denen jeder Befehl in einer Länge
eines Worts (32 Bits) gegeben wird.
-
In
dieser ersten Ausführungsform
gemäß 4 umfaßt das Prozessorsystem:
einen Befehlsspeicher 101 zur Speicherung von Befehlen;
eine Befehlszufuhreinrichtung (Befehlsausgabeeinheit) 102 zum
Holen von vier Befehlen mit einer Begrenzung von vier Worten, gleichzeitig
aus dem Befehlsspeicher 101 in der F-Stufe, Beachten der
Datenabhängigkeitsbeziehung
und Steuerabhängigkeitsbeziehung
unter den vier geholten Befehlen in der D-Stufe, und Zuführen ausführbarer
Befehle über
die Befehlszufuhrleitungen 120, 121, 122 und 123 in
der E-Stufe; eine arithmetisch-logische Einheit (ALU1 und ALU1) 103 und 104 zur
Durchführung
des arithmetisch-logischen Berechnungsvorgangs und der Speicheradressberechnung
in der E-Stufe entsprechend den Befehlen, die jeweils von den Befehlszufuhrleitungen 120 und 121 geliefert
werden; einen Gleitkomma-Addierer (FADD 105) zur Durchführung der
Gleitkomma-Addition und -Subtraktion in der E-Stufe entsprechend
den Befehlen, die von der Befehlszufuhrleitung 122 geliefert
werden; einen Gleitkomma-Multiplizierer (FMUL) 106 zur
Durchführung
der Gleitkomma-Multiplikation und -Division in der E-Stufe entsprechend
den Befehlen, die von der Befehlszufuhrleitung 123 geliefert
werden; Speicherzugriffseinheiten (MA0 und MA1) 107 und 108 zur
Durchführung der
Speicherzugriffsvorgänge
bezüglich
eines Zweikanal-Datenspeichers 125 in der M-Stufe entsprechend
den Ausgangssignalen von ALU0 103 und ALU1 104;
Gleitkomma-Ausnahmeprüfungseinheiten
(EC1 und EC2) 109 und 110 zur Durchführung einer
Ausnahmezustandsprüfung
in den Gleitpunktberechnungen, in der M-Stufe entsprechend den Ausgangssignalen
jeweils von FADD 105 und FMUL 106; und eine Mehrkanal-Registerdatei 111 mit
zwölf Kanälen, einschließlich vier
Schreibkanälen,
zum Empfang der Ausgangssignale von MA0 107, MA1 108, EC1 109 und
EC2 110 in der W-Stufe, und acht Lesekanälen zur
Zuführung
von Operandendaten zu ALU0 103, ALU1 104, FADD 105 und
FMUL 106 über Operandendaten-Zufuhrleitungen 112 bis 119 in
der E-Stufe.
-
In
diesem Aufbau nach 4 wird der Ganzzahlrechnungausnahme-Trag,
wie beispielsweise eine Fehlseitenbedingung oder ein Überlauf,
durch MA0 107 und MA1 108 erzeugt, während der
Gleitkommarechnungausnahme-Trap
durch EC1 109 und EC2 110 erzeugt werden.
-
Um
einen derartigen Ausnahme-Trag zu handhaben, ist das Prozessorsystem
ferner mit einem Trap-Ursacheregister 130 zur Speicherung
einer Ursache der Trap-Erzeugung ausgestattet; einer Abbruchadress-Speichervorrichtung
(Abbruchadressregister) 131 zur Speicherung einer Adresse
des Befehls, der die kleinste Adresse unter jenen Befehlen hat,
für die
die Durchführung
durch den Trap unterbrochen worden ist; einer Trap-Adress-Speichervorrichtung
(Trap-Adressregister) 132 zur Speicherung einer Adresse
des Befehls, der die Trap-Erzeugung
veranlaßte;
und einer Trap-Steuervorrichtung (Trap-Steuereinheit) 133 zur
Aufnahme der Trap-Ursachen aus den MA0 107, MA1 108,
EC1 109 und EC2 110, die über die Trap-Anforderungssignalleitungen 143 bis 146 übertragen
werden, abhängig
von welchen ein Trap-Signal über
die Trap-Signalleitung 134 auftritt, während entsprechende Eingangssignale
für das
Trap-Ursacheregister 130,
das Abbruchadressregister 131 und das Trap-Adressregister 132 über Signalleitungen 140, 141 und 142 erzeugt
werden.
-
Das
Trap-Signal in der Trap-Signalleitung 134 wird der Ausführungseinheit
(Befehlsausgabeeinheit) 102 ALU0 103, ALU1 104,
FADD 105, AMUL 106, MA0 107, MA1 108,
EC1 109 und EC2 110 jeweilig zugeführt. Abhängig vom
Trap-Signal aus der Trap-Steuereinheit 133 wird ein Ausführungsannullierungsmerker
in jedem Element aktiviert, um die Verarbeitungen der Befehle an
den späteren
Pipelinestufen abzubrechen, während
die Befehlsausgabeeinheit 102 die Befehlseinholung für das vorgeschriebene
Trap-Verarbeitungsprogramm
startet, indem die jeweilige Trap-Ursache, die Abbruchadresse, und die
im Trap-Ursacheregister 130 gespeicherte Trap-Adresse,
das Abbruchadressregister 131, und das Trap-Adressregister 132 verwendet
werden.
-
Im
einzelnen hat die Trap-Steuereinheit 133 einen Aufbau gemäß 5.
Dabei umfaßt
die Trap-Steuereinheit 133 ferner: einen M-Stufe-Programmzähler 1 (MPC) 151 zur
Speicherung eines gemeinsamen Abschnitts einer Wortadresse der Befehle,
die laufend in der M-Stufe ausgeführt werden, in der die zwei
niedrigstwertigen Bits der Adressen der Befehle weggelassen sind;
einen M-Stufe-Programmzähler 2 (mpc) 152 zur
Speicherung eines einzelnen Abschnitts einer Wortadresse des Befehls, der
die kleinste Adresse unter den laufend in der M-Stufe ausgeführten Befehlen
hat, der die beiden niedrigstwertigen Bits der Adresse eines derartigen Befehls
angibt, die mit dem Eintrag von MPC 151 zu kombinieren
ist, um die Abbruchadresse 141 zu erzeugen, die dem Abbruchadressregister 131 zuzuführen ist;
M-Stufe-Unterprogrammzähler
(submpc1, submpc2, submpc3, submpc4) 153, 154, 155 und 156 zur
Speicherung einzelner Abschnitte von Wortadressen der laufend in
der M-Stufe ausgeführten Befehle,
die die beiden niedrigstwertigen Bits der Adressen der Befehle angeben,
die laufend jeweils von MA0 107, MA1 108, EC1 109 und
EC2 110 ausgeführt
werden; und eine Trap-Datenerzeugereinheit 157, die den
kleinsten Eintrag unter den M-Stufe-Unterprogrammzählern 153 bis 156 als
ein Ausgangssignal 147 abgibt, das mit dem Eintrag des
MPC 151 zu kombinieren ist, um die Trap-Adresse 142 zu
erzeugen, die dem Trap-Adressregister 132 zuzuführen ist,
und die Trap-Ursache, die über
eine der Trap-Anforderungssignalleitungen 143 bis 146 entsprechend
den M-Stufe-Unterprogrammzählern 153 bis 156 mit
dem kleinsten Eintrag als Trap-Ursache 140 übertragen
wird, um dem Trap-Ursacheregister 130 zugeführt zu werden;
und eine Trap-Signalerzeugereinheit 158 zur Erzeugung des
Trap-Signals für die Trap-Signalleitung 134,
das auftritt, sooft eine Trap-Ursache aus irgendeiner der Trap-Anforderungssignalleitungen 143 bis 146 empfangen
wird.
-
6 zeigt
einen Verlauf der Pipeline-Verarbeitung im Prozessorsystem nach 4,
bei dem die Fehlseitenbedingung am "Lade" Befehl
auftrat, wenn das Programm der 3A durchgeführt wird,
wobei der schraffierte Bereich die abgebrochenen Befehle angibt.
Wie in 6 dargestellt ist, werden bei dieser ersten Ausführungsform
gemäss 4,
wenn der Trap durch die Ausführung
des n + 2-ten "Lade" Befehls während des
Ablaufs der Durchführung
des Programms erzeugt wird, alle Befehle mit dem Befehlsnummern
n bis n + 3, die laufend mit dem n + 2-ten Befehl geholt werden,
der den Trap verursachte, abgebrochen. Im Vergleich zum bekannten
Falle gemäß 3B,
könnte
man versucht sein, anzunehmen, daß der bekannte Fall effizienter
ist, da die Zahl der abzubrechenden Befehle geringer im bekannten Fall
ist, aber der bekannte Fall benötigt
eine längere Zykluszeit
als diese Ausführungsform,
bedingt durch die für
die Bestimmung der entsprechenden Trap-Signale erforderliche Zeit,
wie bereits vorstehend erwähnt
wurde, so daß die
Effizienz bei dieser ersten Ausführungsform
tatsächlich
größer wird.
-
Insbesondere
treten in der Pipeline-Verarbeitung gemäß 6 alle der
n-ten, n + 1-ten, n + 2-ten und n + 3-ten Befehle in die M-Stufe
im Zyklus C + 3 ein, wo die M-Stufe-Verarbeitung für den n-ten
Gleitkommaadditionsvorgang an CE1 109 durchgeführt wird,
die M-Stufe-Verarbeitung für
den n + 1-ten Additionsvorgang an MA0 107 durchgeführt wird,
die M Stufe Verarbeitung für
den n + 2-ten Ladevorgang an MA1 108 durchgeführt wird,
und die M-Stufe-Verarbeitung für
den n + 3-ten Gleitmultiplikationsvorgang an EC2 110 durchgeführt wird.
Wird in diesem Zyklus C + 3 die Fehlseitenbedingung an der MA1 108 erfaßt, so teilt
die MA1 108 das Auftreten des Fehlseiten-Traps der Trap-Steuereinheit 133 über die Trap-Anforderungssignalleitung 144 mit.
Dabei speichert in diesem Zyklus C + 3 der MPC 151 die
Wortadressen ohne die beiden niedrigstwertigen Bits der n-ten bis
n + 3-ten Befehle, die laufend in der M-Stufe ausgeführt werden,
und der mpc 152 speichert die Wortadressen, die die beiden niedrigstwertigen
Bits des n-ten Befehls angeben, der die kleinste Adresse unter den
Befehlen hat, die laufend in der M-Stufe ausgeführt werden, die in diesem Fall
gleich 0 ist, während
der submpc1 153, submpc1 154, submpc3 155 und
submpc4 156 die Wortadressen speichern, die die beiden
niedrigstwertigen Bits jeweils der n + 1-ten, n + 2-ten, n-ten, und n + 3-ten
Befehle angeben, die jeweils laufend an der MA0 107, MA1 108, EC1 109 und
EC2 110 ausgeführt
werden.
-
Die
Trap-Signalerzeugereinheit 158 gewährleistet das Trap-Signal in
der Trap-Signalleitung 134, wenn eine Trap-Anforderung
in irgendeiner der Trap-Anforderungssignalleitungen 143 bis 146 vorliegt.
Das in der Trap-Signalleitung 134 vorliegende Trap-Signal
wird geliefert an die Befehlsausgabeeinheit 102, an ALU0 103,
ALU1 104, MA0 107, MA1 108, FADD 105,
FMUL 106, EC1 109 und EC2 110, so daß die Verarbeitungen
an diesen Einheiten abgebrochen werden, während die Befehlsausgabeeinheit 102 das
Holen des Befehls für
das vorgeschriebene Trap-Verarbeitungsprogramm startet.
-
Wenn
dabei die Trap-Datenerzeugereinheit 157 die Trap-Anforderung in der
Trap-Anforderungssignalleitung 144 erfaßt, wird der Eintrag des submpc2 154 entsprechend
dieser Trap-Anforderungssignalleitung 144 an die Signalleitung 147 ausgegeben,
der dann mit dem Eintrag des MPC 151 kombiniert wird, um
die Trap-Adresse 142 zu erzeugen, was in diesem Falle die
Adresse des n + 2-ten Befehls ist, so daß die Adresse des n + 2-ten
Befehls im Trap-Adressregister 132 über die Trap-Adress-Signalleitung 142 gespeichert
wird.
-
Andererseits
wird die Abbruch-Adressignalleitung 141 erhalten, indem
der Eintrag des MPC 151 mit dem Eintrag des mpc 152 kombiniert
wird, so daß die
Adresse des n-ten
Befehls im Abbruch-Adressregister 131 über die Abbruch-Adressignalleitung 141 gespeichert
wird.
-
Ferner
wird das Signal in einer der Trap-Anforderungssignalleitungen 143 bis 146,
die einem aus den submpc1 153, submpc2 154, submpc3 155 und
submpc4 156 entspricht, der der kleinste Adresse unter
den Unterprogrammzählern
der Endstufe speichert, die den Trap-Anforderungssignalleitungen zugeordnet
sind, die laufend die Trap-Anforderung führen, an die Trap-Ursachensignalleitung 140 ausgegeben,
und im Trap-Ursachenregister 130 gespeichert.
In diesem Falle wird die Trap-Anforderung nur von der Trap-Anforderungssignalleitung 144 geführt, so
daß das
Signal in der Trap-Anforderungssignalleitung 144 an die
Trap-Ursachensignalleitung 140 ausgegeben und im Trap-Ursachenregister 130 gespeichert
wird.
-
Es
ist dabei anzumerken, dass es, obgleich alle der n-ten bis n + 3-ten
Befehle vorstehend als gleichzeitig geholt beschrieben werden, einen
Fall gibt, bei dem der Eintrag des mpc nicht gleich 0 ist, da eine
Datenabhängigkeit
zwischen den vier Befehlen vorliegt. Werden ferner zwei oder mehr
Trap-Anforderungen in den Trap-Anforderungssignalleitungen 143 bis 146 erfaßt, so wird
der Eintrag in einem der submpc1 153, submpc2 154,
submpc3 155 und submpc4 156, der die kleinste
Adresse unter den laufend in der M-Stufe ausgeführten Befehlen speichert, an
die Signalleitung 147 ausgegeben.
-
Bei
dieser Ausführungsform
sind sowohl das Abbruchadressregister 131 als auch das Trap-Adressregister 132 notwendig,
da der Befehl, der den Trap veranlaßte, und die Befehle, die abgebrochen
werden, verschieden sind.
-
Es
ist ferner anzumerken, daß bei
dieser Ausführungsform
der Eintrag in die Trap-Signalleitung sehr rasch ermittelt werden
kann, da das Trap-Signal vorliegt, sobald mindestens eine Trap-Anforderung
in irgendeiner der Trap-Anforderungssignalleitungen 143 bis 146 vorhanden
ist. Andererseits werden die Trap-Ursache 140 und die Trap-Adresse 142,
die im Trap-Ursachenregister 130 und
im Trap-Adressregister 132 gespeichert werden sollen, als
Ergebnis des Vergleichs der Einträge in den M-Stufe Unterprogrammzählern 153 bis 156 bestimmt,
so daß sie
erst viel später
ermittelt werden. Obgleich es jedoch im allgemeinen erforderlich
ist, daß der
Eintrag in die Trap-Signalleitung sehr rasch ermittelt wird, um
den Speicherzugriff abzubrechen, können die Trap-Daten, die in
dem Register gespeichert werden sollen, viel langsamer ermittelt
werden, so daß es
bei dieser Ausführungsform
nicht erforderlich ist, die Zykluszeit des Prozessorsystems länger zu
machen.
-
Somit
wird es gemäß dieser
Ausführungsform
möglich,
eine Prozessorsystem-Bauart mit Parallelverarbeitung zu schaffen,
wie beispielsweise einen "Super
Scalar Processor",
der eine Trap-Steuerfunktion enthält, die in der Lage ist, ohne
Erhöhung der
Zykluszeit zu arbeiten, so daß eine
Verringerung der Taktfrequenz im System verhindert werden kann.
-
Unter
nunmehriger Bezugnahme auf die 7 und 8 wird die zweite Ausführungsform eines parallel arbeitenden
Prozessorsystems gemäß der vorliegenden
Erfindung im einzelnen beschrieben.
-
Diese
zweite Ausführungsform
ist eine Abänderung
der vorstehend angegebenen ersten Ausführungsform und enthält ferner
eine Stall-Steuerfunktion zusätzlich
zu der Trap-Steuerfunktion der ersten Ausführungsform, und zwar aus folgendem
Grund.
-
Wird
nämlich
das System der ersten Ausführungsform
modifiziert, um ferner einen Hauptspeicher 161 und eine
E/A-Vorrichtung 162 zu
enthalten, die mit dem Befehls-Cache 101A und einem Zweikanal-Daten-Cache 125A über eine
Busleitung 160 gemäß 7 verbunden
sind, so tritt ein Fall auf, bei dem die Trap-Steuerfunktion allein
zu einem Problem werden könnte.
Die Ursache des Problems ist dabei die EM-Vorrichtung 162,
die gewöhnlich
eine Anzahl E/A-Register enthält,
die in der Speicheradresse verzeichnet sind. Der Zugang zu derartigen
E/A-Register erfolgt über
einen Befehl, der identisch zu dem Speicherzugriffsbefehl ist, der
die Adresse des E/A-Registers angibt, und der Cache wird gewöhnlich für diesen
Zweck nicht verwendet. Das E/A-Register dient dazu, die Befehle
und Parameter an die E/A-Vorrichtung 162 zu setzen, und
zur Anzeige des Status der E/A-Vorrichtung 162 für die Prozessorseite,
und es ist ein Typ eines E/A-Registers vorhanden, der den Innenzustand
des E/A-Registers abhängig beispielsweise
vom Zugriff zum Lesen des Status der EM-Vorrichtung 162 derart
verändert,
daß das
Statusregister gelöscht
wird, wenn der Status der E/A-Vorrichtung 162 von der Prozessorseite
gelesen wird.
-
Bei
Verwendung einer derartigen E/A-Vorrichtung 162 steht das
System, das nur die Trap-Steuerfunktion der vorstehend beschriebenen ersten
Ausführungsform
aufweist, vor der nachfolgenden schwierigen Situation. Dabei sind
in diesem System zwei Speicherzugriffseinheiten 107 und 108 bezüglich des
Zweikanal-Daten-Cache 125A vorgesehen, so daß zwei Speicherzugriffsbefehle
gleichzeitig durchgeführt
werden können.
Somit ist ein Fall gegeben, bei dem die beiden E/A-Zugriffsbefehle
an den Speicherzugriffseinheiten 107 und 108 die M-Stufe
gleichzeitig erreichen. Jedoch gibt es nur eine Busleitung 160 für den E/A-Zugriff,
so daß es unmöglich ist,
die Verarbeitungen für
die beiden E/A-Zugriffsbefehle gleichzeitig durchzuführen. Infolgedessen
muß die
Verarbeitung für
den ersten der beiden E/A-Zugriffsbefehle im Bereich der EM-Vorrichtung 162 beendet
sein, bevor die Verarbeitung des zweiten der beiden EM-Zugriffsbefehle
folgt.
-
Es
ist nun eine Möglichkeit
für einen
Fall gegeben, bei dem die Verarbeitung des Befehls für den zweiten
E/A- Zugriff einen
Ausnahmezustand, wie beispielsweise einen Busfehler, verursacht.
Falls in einem derartigen Fall das System nur die Trap-Steuerfunktion
der vorstehend beschriebenen ersten Ausführungsform verwendet, so würden wohl
der erste als auch der zweite E/A-Zugriffsbefehl abgebrochen.
-
Infolgedessen
würde,
wenn das ursprüngliche
Programm erneut durchgeführt
wird, nachdem ein entsprechendes Trap-Verarbeitungsprogramm ausgeführt wurde,
der erste E/A-Zugriffsbefehl erneut durchgeführt, ungeachtet des Umstands,
daß er
im Bereich der E/A-Vorrichtung 162 als beendet betrachtet
wird. Ist in diesem Fall der erste E/A-Zugriffsbefehl der Befehl
zum Lesen des Statusregisters, so wurde das Statusregister bereits
einmal vor dem Auftreten des Traps gelesen, so daß der Inhalt
dieses Statusregisters bereits gelöscht worden ist, und er nicht
länger
zutreffend ist, wenn der erste E/A-Zugriffsbefehl erneut ausgeführt wird.
-
Das
gerade beschriebene Problem beruht im Grunde auf dem Umstand, daß die sich
wiedersprechenden Anforderungen für den Gebrauch der gleichen
Rechenanlage, die nicht in der D-Stufe erfaßt werden können, an der nachfolgenden
Pipelinestufe auftreten können.
Ist es daher möglich,
in der D-Stufe zu erfassen, daß diese
beiden Speicherzugriffsbefehle in der Tat zwei E/A-Zugriffsbefehle
sind, so kann das Problem vermieden werden, indem diese beiden Speicherzugriffsbefehle
nicht gleichzeitig dem Prozessor zugeführt werden, jedoch erfordert dies
wiederum die Verwendung eines Spezialbefehls, der allein für den E/A-Zugriff
vorgesehen ist.
-
Im
Aufbau der zweiten Ausführungsform nach 7 wird
dieser problematischen Situation begegnet, ohne daß ein spezieller
E/A-Zugriffsbefehl verwendet wird, wie nachfolgend ausgeführt wird.
-
Zunächst steuert
bei dieser zweiten Ausführungsform
die Befehlsausgabeeinheit 102A die Zufuhr der Befehle zur
ALU0 103 und ALU1 104 in solcher Weise, daß, wenn
die Befehle gleichzeitig der ALU0 103 und der ALU1 104 zugeführt werden
sollen, der Befehl mit der kleineren Adresse, der zuerst ausgeführt werden
soll, der ALU0 103 zugeführt wird. Wenn somit die Speicherzugriffsbefehle
die MA0 107 und MA1 108 gleichzeitig erreichen,
so hat die MA0 107 immer den Speicherzugriffsbefehl, der
zuerst verarbeitet werden soll.
-
Zweitens
enthält
ferner die Anordnung nach 7 eine Stall-Steuervorrichtung
(Stall-Steuereinheit) 163, der Stall-Anforderungssignale
aus MA0 107, MA1 108, EC1 109 und EC2 110 über jeweils Stall-Anforderungssignalleitungen 170, 171, 172 und 173 zugeführt werden,
und abhängig
von den Stall-Anforderungssignalen,
die aus MA0 107, MA1 108, EC1 109 und
EC2 110 eintreten, gibt die Stall-Steuereinheit 163 ein
Stall1-Signal 180, ein Stall2-Signal 181, und
ein Stallv1-Signal 182 an die Befehlsausgabeeinheit 102A,
sowie an ALU0 103, ALU1 104, FADD 105,
FMUL 106, MA0 107, MA1 108, EC1 109,
EC2 110 und die Trap-Steuereinheit 133 ab,
um die entsprechende, nachstehend beschriebene Stall-Steuerung durchzuführen.
-
Das
Stall1-Signal 180 liegt vor, wenn eine Stall-Anforderung aus irgendeinem
der Bauteile MA0 107, MA1 108, EC1 109 und
EC2 110 vorliegt, und das Stall2-Signal 181 tritt auf, wenn
eine Stall-Anforderung aus irgendeinem der Bauteile MA0 107,
EC1 109, und EC2 110 vorliegt, während das
Stallvl-Signal 182 die beiden niedrigstwertigen Bits des
Befehls angibt, für
den die Verarbeitung der M-Stufe laufend an der MA1 108 durchgeführt wird.
-
Entsprechend
den Werten dieser Stall1-, Stall2- und StallvlSignale 180 bis 182 werden
die Pipeline-Verarbeitungen im System in folgender Weise gesteuert.
- (1) Die Pipeline <103, 107> der ALU0 103 und MA0 107:
(a)
M-Stufe und W-Stufe: Die Pipeline wird verarbeitet, falls Stall2 181 negiert
ist, ungeachtet von Stall1 180.
(b) E-Stufe: Die Pipeline
wird verarbeitet, falls Stallt 180 negiert ist.
- (2) Die Pipeline <104,
108> der ALU1 104 und MA1 108:
Die Pipeline wird verarbeitet, falls Stallt 180 negiert
ist.
- (3) Die Pipeline <105,
109> von FADD 105 und EC1 109,
und die Pipeline <106,
110> von FMUL 106 und
EC2 110:
(a) M-Stufe und W-Stufe:
Die Pipeline
wird verarbeitet, falls Stallt 180 negiert ist.
Die
Pipeline wird ebenfalls verarbeitet, wenn Stallt 180 auftritt
und Stallt 181 negiert ist, und Stallvl 182 einen
Wert angibt, der größer als
der jeweilige Wert des submpc3 155 und des submpc4 156 ist, der
die beiden niedrigstwertigen Bits des Befehls speichert, für den die
Verarbeitung in der M-Stufe laufend an der jeweiligen Gleitkomma-Ausnahmeprüfeinheit
EC1 109 und EC2 110 durchgeführt wird. (b) E-Stufe:
Die
Pipeline wird verarbeitet, falls Stall1 180 negiert ist.
-
Auch
bei dieser zweiten Ausführungsform wird
der im mpc 152 gespeicherte Wert entsprechend den Werten
dieser Stall1-, Stallt- und Stallvl-Signale 180 bis 182 wie
folgt bestimmt. Tritt dabei Stall1 180 nicht auf, so wird
der mpc 152 mit der kleinsten Adresse der in der E-Stufe
ausgeführten
Befehle geladen, und wenn sowohl Stall1 180 und Stall2 181 auftreten,
hält der
mpc 152 den vorherigen Wert aufrecht, wohingegen, wenn
Stall1 180 auftritt, aber Stall2 182 nicht auftritt,
der mpc 152 mit dem Wert geladen wird, der durch Stallvl 182 angegeben
wird.
-
Entsprechend
ist bei dieser zweiten Ausführungsform,
wenn eine Stall-Anforderung allein aus der MA1 108 vorliegt,
die Verarbeitung der Pipeline <103,
107> beendet, während die
Verarbeitung einer jeden der Pipelines <105, 109> und <106,
110> nur beendet ist,
wenn die Adresse des laufend verarbeiteten Befehls kleiner ist als
die Adresse des Befehls an der MA1 108.
-
Erreichen
der erste und zweite E/A-Zugriffsbefehl gleichzeitig jeweils die
MA0 107 und MA1 108, so gibt infolgedessen die
MA1 108 die Stall-Anforderung an die Stall-Steuereinheit 163 aus,
während
die MA0 107 die Stall-Anforderung
nicht ausgibt, wenn es nicht unmöglich
ist, den E/A-Zugriffsvorgang in einem Taktzyklus durchzuführen. Wenn
dann die EC1 109 und EC2 110 ebenfalls die Stall-Anforderungen nicht
ausgeben, tritt nur Stall1 180 auf, während Stall2 181 nicht
auftritt. In einem derartigen Fall wird die PipelineZ <103, 107> bis zur Beendigung
verarbeitet, während
mpc 152 mit dem Wert von Stallvl 182 geladen wird,
so daß der
Zustand des Systems jener wird, bei dem die Befehle vor dem zweiten E/A-Zugriffsbefehl
beendet waren.
-
Daher
wird, selbst wenn die Ausnahmebedingung für den zweiten E/A-Zugriffsbefehl
auftritt, der erste E/A-Zugriffsbefehl nicht erneut ausgeführt. Andererseits
werden die Verarbeitung der Pipeline <104, 108> sowie die Verarbeitungen der Pipelines für die Befehle,
deren Adressen größer sind
als jene des zweiten E/A-Zugriffsbefehls blockiert, bis der Stallt 180 negiert
wird.
-
Wenn
die MA0 107 die Stall-Anforderung ausgibt, da es unmöglich ist,
den E/A-Zugriffsvorgang in einem Taktzyklus zu beenden, werden alle Pipelines
blockiert, da sowohl Stall? 180 als auch Stall2 181 auftreten,
bis Stall2 181 negiert wird, wenn der erste E/A-Zugriffsbefehl
beendet ist.
-
8B zeigt
einen Fortschritt der Pipelineverarbeitung im Prozessorsystem der 4,
bei dem der Busfehler beim n + 2-ten
Ladebefehl auftrat, wenn das Programm gemäß 8A durchgeführt wird.
Gemäß 8B werden
bei dieser zweiten Ausführungsform
nach 7, wenn die Stall-Anforderung durch die Durchführung des
n + 2-ten Ladebefehls im Zyklus C + 3 erzeugt wird, die M-Stufeverarbeitung
für den
n-ten Gleitkomma-Additionsvorgang (fadd),
der an der EC1 109 erfolgt und die M-Stufeverarbeitung
für den
n + 1-ten Additionsvorgang, der an der MA0 107 erfolgt,
beim nächten
Zyklus C + 4 beendet, während
die M-Stufeverarbeitung für
den n + 2-ten Ladevorgang an der MA1 108 und die M-Stufeverarbeitung
für den
n + 3-ten Gleitkomma-Multiplikationsvorgang
(fmul) an EC2 110 beim nächsten Zyklus C + 4 blockiert
und bis zum späteren
Zyklus C + 5 nicht beendet werden. Inzwischen werden die Verarbeitungen
aller nachfolgenden Befehle mit Adressen, die größer als der n + 2-te Befehl
sind, ebenfalls beim Zyklus C + 4 blockiert.
-
Dabei
werden, nachdem die Verarbeitungen der Befehle blockiert sind, da
es nicht möglich
ist, die Möglichkeit
eines Auftretens einer Ausnahmebedingung bei der Durchführung der
Befehle zu leugnen, die Verarbeitungen der Befehle abgebrochen,
wenn die Ausnahmebedingung tatsächlich
bei der Ausführung
der Befehle aufgetreten ist, oder die Verarbeitungen der Befehle
werden wieder aufgenommen, wenn die Ausnahmebedingung bei der Durchführung der
Befehle tatsächlich
nicht aufgetreten ist.
-
Daher
wird es gemäß dieser
zweiten Ausführungsform
möglich,
ein Prozessorsystem eines Bautyps mit Parallelverarbeitung, wie
beispielsweise einen "Super
Scalar Processor" zu
erhalten, der Trap- und Stall-Steuerfunktionen
enthält,
die ohne Erhöhung
der Zykluszeit arbeiten können,
so daß eine Verringerung
der Taktfrequenz im System verhindert werden kann.
-
Unter
nunmehriger Bezugnahme auf 9 wird die
dritte Ausführungsform
eines erfindungsgemäßen Prozessorsystems
einer Bauart mit Parallelverarbeitung im einzelnen beschrieben.
-
Diese
dritte Ausführungsform
weist eine Generalisierung der Stall-Steuerfunktion der zweiten, vorstehend
beschriebenen Ausführungsform
für eine breitere
Ausgestaltung auf.
-
Prozessorsystem:
einen Befehls-Cache (I-Cache) 201 zur Speicherung von Befehlen;
eine Befehlsausgabeeinheit 202 zum Holen von Fehlern mit
Vier-Wort-Begrenzung gleichzeitig aus dem I-Cache 201 in
der F-Stufe, die verantwortlich ist für die Datenabhängigkeitsbeziehung
und Steuerabhängigkeitsbeziehung
unter den vier geholten Befehlen in der D-Stufe, und die ausführbare Befehle über die Befehlszufuhrleitungen 220, 221, 222,
und 223 in der E-Stufe liefert; Rechenwerke (ALU0 und ALU1) 203 und 204 zur
Durchführung
der arithmetisch-logischen Rechnung und Speicheradressberechnung
in der E-Stufe entsprechend den Befehlen, die jeweils von den Befehlszufuhrleitungen 220 und 221 geliefert werden;
eine Multiplizier- und Dividierschaltung 205 für ganze
Zahlen zur Durchführung
der Multiplikation und Division ganzer Zahlen in der E-Stufe entsprechend
den Befehlen aus den ALU0 203 und ALU1 204, einen
Daten-Cace (D-Cache) 206 zur Speicherung von Daten, auf
die von der ALU0 203 und ALU1 204 Zugriff genommen
wird; einen Gleitkomma-Addierer (FADD) 207 zur Druchführung der
Gleitkommaaddition und -subtraktion in der E-Stufe entsprechend
dem von der Befehlszufuhrleitung 222 gelieferten Befehl;
einen Gleitkomma-Multiplizierer (FMUL) 208 zur Durchführung der
Gleitkomma-Multiplikation in der E-Stufe entsprechend dem von der Befehlszufuhrleitung 223 gelieferten
Befehl; eine Gleitkomma-Dividierschaltung (FDIV) 209 zur
Durchführung
einer Gleitkomma-Division an der E-Stufe entsprechend dem an FMUL 208 gelieferten
Befehl; eine Befehlssetz-Adressgenerierungseinheit 210 zur Festlegung
der Befehle, die aus der Befehlsausgabeeinheit 202 ausgegeben
werden sollen; eine Steuereinheit 211 zur Durchführung der
Trap-Steuerung und der Stall-Steuerung, die nachstehend im einzelnen
beschrieben werden: eine arithmetische Registerdatei 212 zur
Speicherung der Ausgangssignale aus ALU0 203 und ALU1 204;
und eine Gleitkommaregisterdatei 213 zur Speicherung der
Ausgangssignale des Gleitkomma-Addierers
FADD 207 und des Gleitkomma-Multiplizierers FMUL 208.
-
Gerade
wie in der vorstehend beschriebenen zweiten Ausführungsform nach 7 enthält das Prozessorsystem
gemäß 9:
einen Hauptspeicher 214 zur Speicherung der Daten, die
in dem I-Cache 201 und den D-Cache 206 gespeichert
werden sollen; eine E/A-Vorrichtung 215 einschließlich E/A-Register;
und eine Busleitung 216, durch welche der Hauptspeicher 214 und
die E/A-Vorrichtung 215 mit
dem I-Cache 201 und dem D-Cache 206 verbunden
werden.
-
Darüber hinaus
enthält
das Prozessorsystem nach 9 ferner: einen Vor-Decodierer 217, der
zwischen dem I-Cache 201 und
der Busleitung 216 vorgesehen ist; und eine Registerauswertschaltung 218,
die der Befehlsausgabeeinheit 202 zugeordnet ist, wobei
beide im einzelnen nachstehend beschrieben werden.
-
Es
werden nunmehr die Trap- und Stall-Steuervorgänge dieser dritten Ausführungsform im
einzelnen beschrieben.
-
Im
allgemeinen ist es für
ein Prozessorsystem einer Bauart zur Parallelverarbeitung notwendig, eine
Vorrichtung zur Verhinderung des Auftretens von in Konflikt zueinander
stehenden Anforderungen zum Gebrauch der gleichen Einrichtung und
eines Zeitpunkts der Durchführung
der Maschinensprachebefehle zu haben, und eine Vorrichtung zur Aufrechterhaltung
einer Zweckmäßigkeit
in der Reihenfolge der Ausführung
der Maschinensprachebefehle. Dabei legt die Zweckmäßigkeit
in der Reihenfolge der Ausführung
eine Beständigkeit
in der Datenabhängigkeitsbeziehung
und der Steuerabhängigkeitsbeziehung
nahe.
-
Um
die Beständigkeit
in der Datenabhängigkeitsbeziehung
aufrecht zu erhalten, ist es erforderlich, die Reihenfolge der Durchführung wie
folgt aufrecht zu erhalten: D → S
Beziehung, S → D
Beziehung, und D → D
Beziehung, wobei die D → S
Beziehung eine Beziehung angibt, bei der die Einrichtung zur Speicherung
des Ergebnisses des Befehls der früher ausgeführt werden soll, identisch
mit der Einrichtung ist, aus der die Daten der Einrichtung, die
in dem später
auszuführenden
Befehl verwendet werden sollen, ausgelesen werden, S → D Beziehung eine
Beziehung angibt, in der die Einrichtung zur Speicherung des Ergebnisses
des früher
auszuführenden
Befehls identisch mit der Einrichtung zur Speicherung des Ergebnisses
des später
durchzuführenden
Befehls ist, und D → D
eine Beziehung angibt, bei der die Einrichtung, aus der die Einrichtungsdaten,
die in dem früher
auszuführenden
Befehl verwendet werden sollen, ausgelesen werden, identisch mit
der Einrichtung ist, aus der die Einrichtungsdaten, die in dem später ausgeführten Befehl
verwendet werden sollen, ausgelesen werden. Bei dieser dritten Ausführungsform
nach 9 sind zwei Einrichtungen zur Speicherung der
Daten als Register und Speicher vorhanden, so daß es notwendig ist, die Beständigkeit
in der Datenabhängigkeitsbeziehung
zwischen ihnen aufrecht zu erhalten.
-
Die
Steuerabhängigkeitsbeziehung
ist eine Beziehung zwischen dem früheren Verzweigungsbefehl und
dem anschließenden
Verzweigungsbefehl. Für
den Verzweigungsbefehl in einem bekannten Prozessor des VLIW-Bautyps
wird die Beständigkeit dieser
Steuerabhängigkeitsbeziehung
mittels eines Compilers aufrecht erhalten. Jedoch muß das Prozessorsystem
einer Bauart mit Parallelverarbeitung gemäß dieser dritten Ausführungsform
eine Objektkompatibilität
bezüglich
der Anwenderprogramme haben, so daß die Aufrechterhaltung der
Beständigkeit
in der Steuerabhängigkeitsbeziehung
als Hardware realisiert werden muß.
-
Bei
dieser dritten Ausführungsform
holt das Prozessorsystem gleichzeitig vier Befehle mit einer Vier-Wort-Begrenzung,
und die Befehle, die gleichzeitig in ordnungsgemäßer Folge unter den vier Befehlen
ausgegeben werden können,
werden an die Verarbeitungseinheiten ausgegeben, und die Durchführungen
der Befehle werden in geordneter Folge beendet.
-
Bei
dieser dritten Ausführungsform
umfaßt die
Hardware zur Verhinderung des Auftretens von in Konflikt zueinander
stehenden Anforderungen für
die Verwendung der gleichen Einrichtung, und zur Aufrechterhaltung
der Beständigkeit
in der Datenabhängigkeitsbeziehung
und der Steuerabhängigkeitsbeziehung
zwei Einrichtungen. Der erste Teil ist die Befehlsausgabeeinrichtung,
die durch die Befehlsausgabeeinheit 202 realisiert wird,
und der zweite Teil ist die Stall-Einrichtung, die durch die Steuereinheit 211 realisiert
wird.
-
Zur
Realisierung der Befehlsausgabeeinrichtung ist die Befehlsausgabeeinheit 202 dem
Vor-Decodierer 217 zugeordnet, um das Auftreten von in Konflikt
stehenden Anforderungen für
die Verwendung der gleichen Einrichtung zu erfassen, der die im Gebrauch
für die
vier geholten Befehle befindliche Einrichtung zum Zeitpunkt des
erneuten Auffüllens des
Cache (oder zu einem Zeitpunkt des befohlenen Holens im Falle eines
Cache über
das befohlene Holen) markiert, wie auch, ob ein Konflikt für die Befehle mit
der kleinsten Adresse unter den gleichzeitig geholten Befehlen vorhanden
ist. Die Befehlsausgabeeinheit 202 ist ferner der Registerauswertschaltung 218 zugeordnet,
um die D → S
und D → D
Beziehungen zu erfassen, so daß die
Befehlsausgabeeinheit 202 den Befehlsausgabevorgang in
geordneter Folge in der D-Stufe durchführen kann, indem der durch den
Vor-Decodierer 217 markierte Konflikt verhindert wird,
während
die D → S
und D → D
Beziehungen in der Datenabhängigkeitsbeziehung
und der Steuerabhängigkeitsbeziehung,
die von der Registerauswertschaltung 218 erfaßt wurden,
aufrecht erhalten werden. Was die S → D Beziehung betrifft, wird
sie aufrecht erhalten, indem die Befehlsausgabe in geordneter Reihenfolge
und die Beendigung der Durchführung
in geordneter Reihenfolge durchgeführt werden, nachdem das Einrichtungsregister
ausgelesen wurde.
-
Da
es darüber
hinaus bei dieser dritten Ausführungsform
möglich
ist, zwei Speicherzugriffsbefehle gleichzeitig auszuführen, ist
es ferner notwendig, die Beständigkeit
in der in Konflikt zueinander stehenden Beziehung der Speichereinrichtungen, wie
auch in der Datenabhängigkeitsbeziehung
der Speichereinrichtungen, aufrecht zu erhalten. Die Befehlsausgabeeinheit 202 führte die
Betriebsvorgänge aus,
indem die Abwesenheit dieser Beziehungen unterstellt wurde, da die
Befehlsausgabeeinheit 202 vor der D-Stufe arbeitet, so
daß es
der Befehlsausgabeeinheit 202 nicht möglich ist, genau festzustellen,
ob diese Beziehungen vorhanden oder nicht vorhanden sind. Das Vorliegen
dieser Beziehungen kann bis zur M-Stufe nicht genau bestimmt werden,
und obwohl es durchführbar
ist, die Möglichkeit
für das
Vorliegen dieser Beziehungen zu bestimmen, würde das Leistungsvermögen ernsthaft
begrenzt sein, wenn der Befehlszufuhrbetrieb entsprechend einer
derartigen Möglichkeit
zu exzessiv gesteuert würde.
-
In
der Stall-Vorrichtung erfolgt die Beendigung der Durchführung in
geordneter Folge, und die Steuerung wird für einen anderen Fall durchgeführt, als
für jene,
für die
die Befehlsausgabeeinrichtungen verantwortlich sind, und für einen
Fall, bei dem der Befehlsausgabevorgang zu schnell erfolgt, als
daß der
Befehlswiederholvorgang damit Schritt halten könnte.
-
Bei
der Beendigung der Ausführung
in geordneter Folge erfolgt die Beendigung der Ausführung des
Befehls während
das Grundprinzip beachtet wird, daß die Ausführungen der gleichzeitig von
der D-Stufe ausgegebenen Befehle gleichzeitig beendet werden. Kann
jedoch der Speicherzugriffsvorgang mittels des Speicherzugriffsbefehls
X, der in der M-Stufe durch die ALU1 204 ausgeführt wird,
nicht innerhalb einer Zykluszeit beendet werden, so werden die Befehle,
deren Adressen kleiner als jene dieses Speicherzugriffsbefehls X
sind, ungeachtet der Stall-Anforderung
als Folge des Befehls X beendet, und der mpc wird für eine Anzahl
Befehle auf den neuen Stand gebracht, für die die Ausführungen
beendet sind, gerade wie in der vorstehenden zweiten Ausführungsform.
Diese Funktion wird als Gruppierungsfunktion in der Ausführungsabschlußstufe bezeichnet.
Bei dieser dritten Ausführungsform,
wenn ALU0 203 und ALU1 204 gleichzeitig die Befehle ausführen, führt die
Befehlsausgabeeinheit 202 die Steuerung derart durch, daß ALU0 203 immer
den Befehl mit der kleinsten Adresse ausführt, so daß der Ausführungsabschluß in geordneter
Reihenfolge garantiert ist. Durch diese Steuerung der Befehlsausgabeeinheit 202 kann
die gegenseitige Sperre als Folge des Auftretens von in Konflikt
stehenden Anforderungen zur Verwendung der Speichereinrichtung,
die in der D-Stufe nicht erfaßt
werden kann, in der M-Stufe verhindert werden.
-
Eine
derartige Steuerung zur Beendigung der Pipeline-Verarbeitungen für allein jene Befehle, deren
Adressen kleiner sind als jene des Befehls, der die Stall-Anforderung macht,
kann gleichermaßen bei
anderen Situationen verwendet werden, beispielsweise in dem Fall,
bei dem die M-Stufe Verarbeitung in ALU0 203 nicht in einem
Zyklus beendet werden kann, und/oder in dem Fall, bei dem die Stall-Anforderung
auftritt, da die Möglichkeit
für den Trap
für den
Befehl der in der E2-Stufe
von FADD 207 oder FMUL 208 ausgeführt wird,
nicht geleugnet werden kann.
-
Die
Befehlsausgabeeinheit 202 ist nicht für das Auftreten der in Konflikt
stehenden Anforderungen zur Verwendung der Gleitkommaeinrichtung oder
der Datenabhängigkeitsbeziehung
verantwortlich, soweit der Speicher (einschließlich des Cache) betroffen
ist. Um die Verhinderung des Auftretens von in Konflikt stehenden
Anforderungen zur Verwendung der gleichen Einrichtung zu gewährleisten und die
Aufrechterhaltung der Datenabhängigkeitsbeziehung,
müssen
nur die "Lade"- und "Speicher"-Befehle berücksichtigt
werden, da das Prozessorsystem dieser dritten Ausführungsform
die sogenannte "Lade"-, "Speicher"-Architektur verwendet, gerade
wie im RISC. Der Konflikt bezüglich
der Einrichtung tritt nicht auf, solange eines der Rechenwerke aus
ALU0 203 und ALU1 204 den Zugriff zum D-Cache 206 herstellt,
da der D-Cache 206 zugeordnete Kanäle für ALU0 203 und ALU1 204 hat.
Wenn somit die "Lade" und "Speicher"-Befehle gleichzeitig Zugriff
auf den externen Speicher machen, so liegt die Datenabhängigkeitsbeziehung
nur vor, wenn diese Befehle Zugriff auf die gleiche Adresse machen.
-
Der
Konflikt bezüglich
der Speichereinrichtung wird durch die Befehlsgruppierungsfunktion
in der Überführungsabschlußstufe gelöst. Die
Beständigkeit
in der Datenabhängigkeitsbeziehung
für den Speicher
enthält "Lesen nach Schreiben", "Schreiben nach Lesen" und "Schreiben nach Schreiben", was an der Cache-Seite
beibehalten wird.
-
Unter
nunmehriger Bezugnahme auf die 10 bis 20 wird
die Stall-Steuerung in der dritten Ausführungsform nach 9 im
einzelnen beschrieben.
-
Die
Fälle,
die bei dieser dritten Ausführungsform
den Stall verursachen, können
wie folgt zusammengefaßt
werden:
- M0busy
- M1busy
- Imis (I-Cache-Verfehlen)
- FRbusy (FPU Register-Schreibkonflikt)
- FDexch (FADD Ausnahmeprüfung)
- FDexch (FMUL Ausnahmeprüfung)
- FDexch (FDIV Ausnahmeprüfung)
- Fstall (Gewaltsamer Stall)
-
Die
Bedingung, unter welcher ein Stall-Anforderungssignal, das jeweils diesen
Fällen
entspricht, auftritt, ist wie folgt:
-
M0busy, M1busy:
-
Diese
Arten eines Stall-Anforderungssignals treten auf, wenn der Speicherzugriffsvorgang
(einschließlich
Zutrittsvorgänge
bezüglich
des Cache und E/A) an der M-Stufe bei dem t-ten Zyklus durchgeführt wird,
und dieser Speicherzugriffsvorgang nicht innerhalb dieses t-ten
Zyklus beendet werden kann.
-
Imis:
-
Diese
Art eines Stall-Anforderungssignals tritt auf, wenn eine neue Befehlsholanforderung
vorliegt, aber das Holen des Befehls nicht gelingt. Beispielhafte
Fälle,
bei denen der Stall durch dieses Imis-Stall-Anforderungssignal verursacht wird,
sind in den 10 bis 14 dargestellt,
bei denen das Imis-Stall-Anforderungssignal
in der Tat auftritt, wenn der Befehl nach einem Taktzyklus nach
dem Laden eines neuen Werts "fpc" und dem Auftreten
von "fpcen" nicht zum Befehlsregister
geholt ist.
-
10 zeigt
einen Fall eines Stalls infolge eines I-Cache-Verfehlens zum Zeitpunkt eines
Befehlsholvorgangs.
-
11 zeigt
einen Fall, bei dem der Stall als Folge eines I-Cache-Verfehlens
zu einem Zeitpunkt eines Befehlsholvorgangs aufgetreten ist, die
andere Stall-Anforderung
in einem anderen Teil des Systems aufgetreten ist, und der Stall
als Folge des I-Cache-Verfehlens
bereinigt wurde, bevor der andere Stall bereinigt ist.
-
12 zeigt
einen Fall, bei dem der Stall als Folge des I-Cache-Verfehlens in
dem gleichen Zeitpunkt aufgetreten ist, wo der andere Stall im anderen Teil
des Systems auftrat, und der andere Stall im anderen Teil des Systems
bereinigt worden ist, bevor der Stall als Folge des I-Cache-Verfehlens
bereinigt ist.
-
I-Cache-Verfehlens
zum Zeitpunkt des Hohlen eines Befehls an einem Sprungziel des Sprungbefehls
aufgetreten ist.
-
14 zeigt
einen Fall, in dem der Sprung während
des Auffüllvorgangs
des Cache aufgetreten ist, der dem Stall als Folge des I-Cache-Verfehlens zugeordnet
ist.
-
FRbusy:
-
Diese
Art eines Stall-Anforderungssignals tritt durch den FDIV 209 in
der E2 Stufe der Pipeline auf, wenn FMUL 208 ebenfalls
in der E2 Stufe ist, um die Pipelines mit Ausnahme jener des FDIV
für einen Zyklus
zu blockieren, um den Konflikt beim Einschreiben in die Gleitkomma-Registerdatei 213 zwischen dem
FMUL 208 und dem FDIV 209 zu vermeiden.
-
FAexch:
-
In
der E1-Stufe des FADD 207 wird, wenn die Möglichkeit
des Auftretens eines Traps nicht verneint werden kann, die Pipeline-Verarbeitung
am FADD 207 von einer gewöhnlichen F1 Betriebsweise zu
einer F2 Betriebsweise geändert.
In diesem Fall wird die Durchführungsabschlußstufe am
FADD 207 zur M-Stufe, so daß die Verarbeitungen der anderen
Einheiten durch das Auftreten dieses FAexch-Stall-Anforderungssignal blockiert
werden, um die Aufführungsabschlußstufe der
anderen Einheiten während der
E2- und E3-Stufen des FADD 207 zu verzögern, damit alle Einheiten
die Durchführungsabschlußstufe zur
gleichen Zeit wie die M Stufe des FADD 207 erreichen. Eine
derartige Situation, bei der der Stall durch dieses FAexch-Stallanforderungssignal
verursacht wird, ist in 15 angegeben,
wo die Verarbeitungen der Befehle "Iadd" und "fmul", die gleichzeitig mit
dem "fadd" Befehl geholt werden,
sowie die Verarbeitungen der Befehle "fadd", "Iadd" und "fmul" die im nächsten Zyklus
geholt werden, während
der E2- und E3-Stufen der Verarbeitung des "fadd" Befehls blockiert
werden.
-
FMexch:
-
In
der E1-Stufe des FMUL 208, wenn eine Möglichkeit des Auftretens eines
Traps nicht verneint werden kann, wird die Pipeline-Verarbeitung
am FMUL 208 von einer gewöhnlichen E1-Betriebsart zu einer
F2-Betriebsart geändert.
In diesem Falle wird die Durchführungsabschlußstufe am
FMUL 208 zur M-Stufe, so daß die Verarbeitungen der anderen
Einheiten blockiert werden, indem dieses FMexch-Stall-Anforderungssignal
auftritt, um die Durchführungsabschlußstufe der
anderen Einheiten um zwei Zyklen zu verzögern, damit alle Einheiten die
Durchführungsabschlußstufe zur
gleichen Zeit wie die M-Stufe des FMUL 208 erreichen.
-
FDexch:
-
Kann
in der E1-Stufe des FDIV 209 die Möglichkeit des Auftretens eines
Traps nicht verneint werden, so wird die Pipelineverarbeitung am
FDIV 209 von der gewöhnlichen
D1 Beriebsart in eine D2 Betriebsart geändert. In diesem Falle wird
die Durchführungsabschlußstufe am
FDIV 209 zur M-Stufe, so daß die Verarbeitungen der anderen
Einheiten blockiert werden, indem dieses FDexch-Stall-Anforderungssignal
auftritt, um die Durchführungsabschlußstufe der
anderen Einheiten zu verzögern,
bis der FDIV 209 die E3 Stufe durchläuft, damit alle Einheiten die
Durchführungsabschlußstufe zur
gleichen Zeit wie die M-Stufe
des FDIV 209 erreichen. Eine derartige Situation, in der
der Stall durch dieses FDexch-Stall-Anforderungssignal verursacht wird,
ist in 16 dargestellt, wo die Verarbeitungen
der Befehle "iadd" und "fadd", die gleichzeitig
mit dem "fdiv" Befehl geholt werden,
blockiert werden, bis die Verarbeitung des "fdiv" Befehls
die E3-Stufe durchläuft.
-
Fstall:
-
Diese
Art des Stall-Anforderungssignals tritt extern auf, um jede Pipeline-Verarbeitung
bei der Durchführungsabschlußstufe zu
verriegeln, mit Ausnahme von Vorgängen, wie beispielsweise einem Rückstellvorgang
bei einem Cache-Verfehlen.
-
17 bis 19 zeigen
beispielsweise Zeitablaufdarstellungen für die Stall-Steuerung in dieser
dritten Ausführungsform.
-
In
der Zeitablaufdarstellung gemäss 17 wird
ein Cache-Verfehlen an der M-Stufe der ALU0 203 im N-ten
Zyklus erfaßt,
so daß das
M0busy Signal auftritt und der Wiederherstellungsvorgang für das Cache-Verfehlen
gestartet wird. Inzwischen kann eine Möglichkeit für das Auftreten eines Traps
für den FMUL 208 nicht
geleugnet werden, so daß das FDexch
Signal auftritt, und das Stall1 und Stallt-Signal auftreten.
-
Im
N + 2-ten Zyklus wird der Wiederherstellungsvorgang für das Cache-Verfehlen
für ALU0 203 fortgesetzt,
während
FMUL 208 die Ausnahmebedingung nicht verursacht hat, so
daß das
FMexch Signal negiert wird. Da jedoch das Stall1- und Stall2-Signal noch
auftreten, kann die Ausführung
des FMUL 208 nicht beendet werden.
-
Im
N + 4-ten Zyklus wird der Wiederherstellungsvorgang für das Cache-Verfehlen
ALU0 203 beendet, so daß das M0busy Signal negiert
wird, da es innerhalb dieses Zyklus beendet werden kann.
-
Entsprechend
werden das Stall1- und Stall2-Signal negiert, so daß die Ausführung aller
anderen Einheiten beendet werden kann.
-
Schließlich ist
im Zyklus N + 5 die Ausführung
aller anderen Befehle beendet.
-
In
der Zeitablaufdarstellung gemäss 18 wird
angenommen, daß die
Adressen der Befehle an den Verarbeitungseinheiten derart sind,
daß ALU0 203 < ALU1 204 und
FMUL 208 < ALU1 204 < FADD 207.
In diesem Falle wird ein Cache-Verfehlen in der M-Stufe der ALU1 204 im
N-ten Zyklus erfaßt,
so daß das
M0busy Signal auftritt und der Wiederherstellvorgang beim Cache-Verfehlen
gestartet wird. Inzwischen kann eine Möglichkeit für das Auftreten eines Traps
am FMUL 208 nicht verneint werden, so daß das FMexch
Signal auftritt, und das Stall1 und Stall2-Signal auftreten.
-
Im
N + 2-ten Zyklus wird der Wiederherstellvorgang beim Cache-Verfehlen
für die
ALU1 204 fortgesetzt, während
der FMUL 208 die Ausnahmebedingung nicht verursacht hat,
so daß das
FMexch Signal negiert wird. Zu diesem Zeitpunkt wird das Stall2-Signal
negiert, so daß die
Ausführung
am ALU0 203 und am FMUL 208 beendet werden kann, da
aber das Stall1 Signal noch auftritt, kann die Ausführung am
FADD 207 nicht beendet werden.
-
Im
N + 4-ten Zyklus ist der Wiederherstellvorgang beim Cache-Verfehlen
für die
ALU1 204 beendet, so daß das M1busy Signal negiert
wird, da es innerhalb dieses Zyklus beendet werden kann. Entsprechend
wird das Stall1-Signal negiert, so daß die Ausführung des FADD 207 beendet
werden kann.
-
Schließlich ist
im Zyklus N + 5 die Ausführung
aller Befehle beendet.
-
In
der Zeitablaufdarstellung der 18 wird ein
Cache-Verfehlen in der M Stufe der ALU1 204 im N-ten Zyklus
erfaßt,
so daß das
M1busy Signal auftritt und der Wiederherstellvorgang beim Cache-Verfehlen
gestartet wird. Inzwischen kann eine Möglichkeit für das Auftreten eines Traps
am FMUL 208 nicht verneint werden, so daß das FMexch-Signal
auftritt und das Stall1- und Stall2-Signal auftreten.
-
Im
N + 2-ten Zyklus wird der Rückstellvorgang
beim Cache-Verfehlen
für die
ALU1 204 beendet, so daß das M1busy Signal negiert
wird, und im gleichen N + 2-ten Zyklus oder im vorausgehenden N +
1-ten Zyklus verursachte der FMUL 208 nicht die Ausnahmebedingung,
so daß das
FMexch Signal negiert wird. Zu diesem Zeitpunkt werden das Stall1- und
Stall2-Signal ebenfalls negiert, so daß die Durchführung aller
Befehle beendet ist.
-
Die
Betriebsvorgänge
jeder Pipeline in dieser dritten Ausführungsform in jeder Verarbeitungsstufe
in Abhängigkeit
von dem Stall-Steuervorgang unter Verwendung der Stall1-, Stall2-
und FRbusy-Signale sind in der in 20 dargestellten
Tabelle zusammengefaßt.
In dieser 20 bezeichnet BU eine Verzweigungseinheit,
die in jeder Prozessoreinheit im Prozessorsystem vorhanden ist.
-
Bei
dieser dritten Ausführungsform
werden, nachdem die Verarbeitungen der Befehle blockiert wurden,
da es nicht möglich
ist, eine Möglichkeit
für das
Auftreten einer Ausnahmebedingung bei der Durchführung der Befehle zu verneinen,
die Verarbeitungen der Befehle blockiert, wenn die Ausnahmebedingung
in der Tat bei der Durchführung
der Befehle aufgetreten ist, oder die Verarbeitungen der Befehle
werden wieder aufgenommen, wenn die Ausnahmebedingung bei der Durchführung der
Befehle in der Tat nicht aufgetreten ist.
-
Somit
wird es gemäß dieser
dritten Ausführungsform
ebenfalls möglich,
ein Prozessorsystem einer Bauart mit Parallelverarbeitung zu schaffen,
wie beispielsweise einen "Super
Scalar Processor",
der Trap- und Stall-Steuerfunktionen
enthält,
die ohne Erhöhung
der Zykluszeit arbeiten können,
so daß die Verringerung
der Taktfrequenz im System verhindert werden kann.
-
Es
ist anzumerken, daß viele
Modifizierungen und Änderungen
der vorstehend aufgeführten Ausführungsformen
möglich
sind, ohne von den neuen und vorteilhaften Merkmalen der Erfindung
abzuweichen und alle derartigen Modifizierungen und Abänderungen
sollen vom Schutzumfang der Ansprüche umfaßt sein.