DE4211245A1 - Prozessorsystem in parallelverarbeitungsbauart mit trap- und stall-steuerfunktionen - Google Patents
Prozessorsystem in parallelverarbeitungsbauart mit trap- und stall-steuerfunktionenInfo
- Publication number
- DE4211245A1 DE4211245A1 DE4211245A DE4211245A DE4211245A1 DE 4211245 A1 DE4211245 A1 DE 4211245A1 DE 4211245 A DE4211245 A DE 4211245A DE 4211245 A DE4211245 A DE 4211245A DE 4211245 A1 DE4211245 A1 DE 4211245A1
- Authority
- DE
- Germany
- Prior art keywords
- commands
- trap
- processing
- instructions
- instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3863—Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
Description
Die Erfindung betrifft ein Prozessorsystem in
Parallelverarbeitungsbauart, um auf der Befehlsebene eine
parallele Durchführung vorzunehmen, und insbesondere Trap- und
Stall-Steuerfunktionen in dem parallel verarbeitenden
Prozessorsystem.
Zum Stand der Technik: In den letzten Jahren wurde als
mögliche Antwort auf eine wachsende Erwartung für
Hochgeschwindigkeits-Personalcomputer eine Zentraleinheit
(CPU) entwickelt, die als "Super Scaler 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 Scaler 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äß Fig. 1.
Dieser Aufbau nach Fig. 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äß Fig. 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
Speicheradreßberechnung 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 ALU0 3, ALU1 4, FADD 5 und FMUL 6 über
die Operandendaten-Zufuhrleitungen 12 bis 19 in der
E Stufe.
Bei diesem Aufbau nach Fig. 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-Adreßregister 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-Adreßregister 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-Adreßregister 32
gespeichert sind, verwendet werden.
Im einzelnen hat die Trap-Steuereinheit 33 einen Aufbau
gemäß Fig. 2. Dabei umfaßt die Trap-Steuereinheit 33
ferner: einen M-Stufe-Programmzahler 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 Ma0 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-Adreßregister 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-Signalleituangen 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.
Fig. 3A zeigt ein Programmbeispiel, das durch das
Prozessorsystem der Fig. 1 ausgeführt werden soll, und
Fig. 3B zeigt einen Verlauf der Pipeline-Verarbeitung im
Prozessorsystem nach Fig. 1 unter Verwendung des
bekannten, vorausgehend beschriebenen
Trap-Steuerverfahrens, bei welchem die Fehlseitenbedingung
beim "Lade"-Befehl auftrat, wenn das Programm der Fig. 3A
ausgeführt wird, wobei der schraffierte Bereich die
abgebrochenen Befehle angibt. Gemäß Fig. 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, können 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 Scaler
Processors", der mehrere Datenwege des RISC hat, ist nicht
so kompliziert, jedoch kann die Steuerschaltung des "Super
Scaler 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, wie
beispielsweise einen "Super Scaler Processor" zu schaffen,
der Trap- und Stall-Steuerfunktionen aufweist, die in der
Lage sind, ohne Erhöhung der Zykluszeit zu arbeiten, so
daß eine Verringerung der Taktfrequenz im System
verhindert werden kann.
Gemäß einem Aspekt der Erfindung wird ein Prozessorsystem
in Parallelverarbeitungsbauart geschaffen, das
gekennzeichnet ist durch N-Prozessorvorrichtungen zur
gleichzeitigen Verarbeitung von Befehlen, wobei N eine
ganze Zahl ist; Befehlszufuhreinrichtungen zur Zuführung
von Befehlen, die durch die N Prozessorvorrichtungen
gleichzeitig ausgeführt werden sollen; und eine
Trap-Steuervorrichtung zur Steuerung der N
Prozessorvorrichtungen in solcher Weise, daß, wenn M
Befehle aus der Befehlszufuhreinrichtung den N
Prozessorvorrichtungen gleichzeitig zugeführt werden,
wobei M eine ganze Zahl ist und NM, und wenn eine
Ausnahmebedingung bei der Ausführung mindestens eines der
M Befehle verursacht wird, die Verarbeitungen aller M
Befehle, die den N Prozessorvorrichtungen gleichzeitig
zugeführt werden, abgebrochen werden.
Gemäß einem weiteren Aspekt der Erfindung wird ein
Verfahren zur Steuerung eines parallel arbeitenden
Prozessorsystems geschaffen, das gekennzeichnet ist durch
die Schritte : Zuführung von M Befehlen, die durch N
Prozessorvorrichtungen des Systems gleichzeitig
durchgeführt werden sollen, wobei NM; und Steuerung der
N Prozessorvorrichtungen derart, daß wenn M Befehle
gleichzeitig den N Prozessorvorrichtungen zugeführt
werden, und eine Ausnahmebedingung bei der Durchführung
mindestens eines der M Befehle verursacht wird, die
Verarbeitungen aller M Befehle, die den N
Prozessorvorrichtungen gleichzeitig zugeführt werden,
abgebrochen werden.
Weitere Merkmale und Vorteile der Erfindung ergeben sich
aus der nachfolgenden Beschreibung in Verbindung mit den
anliegenden Zeichnungen; es zeigen:
Fig. 1 ein Blockschaltbild eines bekannten
Prozessorsystems der
Parallelverarbeitungsbauart, das ein
bekanntes Trap-Steuerverfahren einsetzt,
Fig. 2 ein detailliertes Blockschaltbild einer
Trap-Steuereinheit bei dem bekannten,
parallel verarbeitenden Prozessorsystem nach
Fig. 1,
Fig. 3A ein Programmbeispiel, das in dem parallel
arbeitenden Prozessorsystem ausgeführt werden
soll,
Fig. 3B eine Darstellung eines Verlaufs einer
Pipeline-Verarbeitung beim bekannten,
parallel arbeitenden Prozessorsystem der Fig.
1, wenn eine Trap-Anforderung bei der
Durchführung des Programms der Fig. 3A
vorliegt,
Fig. 4 ein Blockschaltbild einer ersten
Ausführungsform eines erfindungsgemäßen,
parallel arbeitenden Prozessorsystems,
Fig. 5 ein detailliertes Blockschaltbild einer
Trap-Steuereinheit in dem parallel
arbeitenden Prozessorsystem nach Fig. 4,
Fig. 6 eine Darstellung eines Verlaufs einer
Pipeline-Verarbeitung in dem parallel
arbeitenden Prozessorsystem nach Fig. 4, wenn
die Trap-Anforderung bei der Durchführung des
Programms nach Fig. 3A vorliegt,
Fig. 7 ein Blockschaltbild einer zweiten
Ausführungsform eines erfindungsgemäßen
parallel arbeitenden Prozessorsystems,
Fig. 8A ein Programmbeispiel, das in dem parallel
arbeitenden Prozessorsystem der Fig. 7
ausgeführt werden soll,
Fig. 8B eine Darstellung des Verlaufs einer
Pipeline-Verarbeitung in dem parallel
arbeitenden Prozessorsystem nach Fig. 7, wenn
eine Stall-Anforderung in der Ausführung des
Programms nach Fig. 8A vorliegt,
Fig. 9 ein Blockschaltbild einer dritten
Ausführungsform eines erfindungsgemäßen,
parallel arbeitenden Prozessorsystems,
Fig. 10 bis 14 Zeitablaufdarstellungen, in die
Ausführungsbeispiele eines Stalls in Folge
des Imis (Befehls-Cache-Verfehlen)-Signals in
dem parallel verarbeitenden Prozessorsystem
nach Fig. 9 darstellen,
Fig. 15 eine Zeitablaufdarstellung, die Fallbeispiele
eines Stalls als Folge eines FAexch (FADD
Ausnahmeprüfung)-Signals im parallel
verarbeitenden Prozessorsystem nach Fig. 9
angeben,
Fig. 16 eine Zeitablaufdarstellung, die
Ausführungsbeispiele eines Stalls als Folge
eines FDexch (FDIV Ausnahmeprüfung)-Signals
im parallel verarbeitenden Prozessorsystem
nach Fig. 9 zeigen,
Fig. 17 bis 19 Zeitablaufdarstellungen, die
Ausführungsbeispiele eines
Stall-Steuervorgangs im parallel
verarbeitenden Prozessorsystem nach Fig. 9
zeigen, und
Fig. 20 eine Tabelle, die die Betriebsabläufe der
Pipelines im parallel arbeitenden
Prozessorsystem nach Fig. 9 abhängig von dem
Stall-Steuervorgang zusammenfaßt.
Es wird auf die Einzelbeschreibung bevorzugter
Ausführungsformen Bezug genommen. Unter Hinweis auf die
Fig. 4 bis 6 wird die erste Ausführungsform eines
erfindungsgemäßen parallel arbeitenden Prozessorsystems im
einzelnen beschrieben.
Diese Anordnung nach Fig. 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äß Fig. 4 umfaßt das
Prozessorsystem: einen Befehlsspeicher 101 zur Speicherung
von Befehlen; eine 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 (ALU0 und
ALU1) 103 und 104 zur Durchführung des
arithmetisch-logischen Berechnungsvorgangs und der
Speicheradreßberechnung 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 (MA1 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 Fig. 4 wird der
Ganzzahlrechnungsausnahme-Trap, wie beispielsweise eine
Fehlseitenbedingung oder ein Überlauf, durch MA0 107 und MA1 108
erzeugt, während der
Gleitkommarechnungsausnahme-Trap durch EC1 109 und EC2 110
erzeugt werden.
Um einen derartigen Ausnahme-Trap zu handhaben, ist das
Prozessorsystem ferner mit einem Trap-Ursacheregister 130
zur Speicherung einer Ursache der Trap-Erzeugung
ausgestattet; einem Abbruchadreßregister 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; ein
Trap-Adreßregister 132 zur Speicherung einer Adresse des
Befehls, der die Trap-Erzeugung veranlaßte; und einer
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
Abbruchadreßregister 131 und das Trap-Adreßregister 132
über Signalleitungen 140, 141 und 142 erzeugt werden.
Das Trap-Signal in der Trap-Signalleitung 134 wird der
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 jeweils Trap-Ursache, die Abbruchadresse, und die im
Trap-Ursacheregister 130 gespeicherte Trap-Adresse, das
Abbruchadreßregister 131, und das Trap-Adreßregister 132
verwendet werden.
Im einzelnen hat die Trap-Steuereinheit 133 einen Aufbau
gemäß Fig. 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 Abbruchadreßregister 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-Adreßregister
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.
Fig. 6 zeigt einen Verlauf der Pipeline-Verarbeitung im
Prozessorsystem nach Fig. 4, bei dem die
Fehlseitenbedingung am "Lade" Befehl auftrat, wenn das
Programm der Fig. 3A durchgeführt wird, wobei der
schraffierte Bereich die abgebrochenen Befehle angibt. Wie
in Fig. 6 dargestellt ist, werden bei dieser ersten
Ausführungsform gemäß Fig. 4, wenn der Trap durch die
Ausführung des n+2-ten "Lade" Befehls während des Ablaufs
der Durchführung des Programms 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äß Fig.
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äß
Fig. 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, submpc2 154, submpc3 155 und
submpc4 156 die Wortadressen speichern, die die beiden
niedrigstwertigen Bits jeweils der n+I-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-Adreßregister 132 über die Trap-Adreß-Signalleitung
142 gespeichert wird.
Andererseits wird die Abbruch-Adreßsignalleitung 141
erhalten, indem der Eintrag des HPC 151 mit dem Eintrag
des mpc 152 kombiniert wird, so daß die Adresse des n-ten
Befehls im Abbruch-Adreßregister 131 über die
Abbruch-Adreßsignalleitung 141 gespeichert wird.
Ferner wird das Signal in einer der
Trap-Anforderungßsignalleitungen 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, daß, obgleich alle der n-ten bis
n+3-ten Befehle vorstehend als gleichzeitig geholt
beschrieben werden, es 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
Abbruchadreßregister 131 als auch das Trap-Adreßregister
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-Adreßregister 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 ersten Ausführungsform möglich,
eine Prozessorsystem-Bauart mit Parallelverarbeitung zu
schaffen, wie beispielsweise einen "Super Scaler
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 Fig. 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äß Fig. 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 E/A-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 E/A-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 E/A-Vorrichtung 162 beendet sein, bevor die
Verarbeitung des zweiten der beiden E/A-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 widersprechenden 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 Fig. 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 Fig. 7 eine
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 191, 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 Stallv1-Signal 182 die beiden
niedrigstwertigen Bits des Befels angibt, für den die
Verarbeitung der M-Stufe laufend an der MA1 108
durchgeführt wird.
Entsprechend den Werten dieser Stall1-, Stall2- und
Stallv1
Signale 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 Stall1 180 negiert ist.
- 2) Die Pipeline ⟨104, 108⟩ der ALU1 104 und MA1 108: Die Pipeline wird verarbeitet, falls Stall1 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 Stall1 180 negiert ist. Die Pipeline wird ebenfalls verarbeitet, wenn Stall1 180 auftritt und Stall2 181 negiert ist, und Stallv1 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üfeinheiten 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-, Stall2- und Stallv1-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 Stallv1 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 182 nicht auftritt. In einem
derartigen Fall wird die Pipeline ⟨103, 107⟩ bis zur
Beendigung verarbeitet, während mpc 152 mit dem Wert von
Stallv1 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 Stall1 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
Stall1 180 als auch Stall2 181 auftreten, bis Stall2 181
negiert wird, wenn der erste E/A-Zugriffsbefehl beendet
ist.
Fig. 8B zeigt einen Fortschritt der Pipelineverarbeitung
im Prozessorsystem der Fig. 4, bei dem der Busfehler beim
n+2-ten Ladebefehl auftrat, wenn das Programm gemäß
Fig. 8A durchgeführt wird. Gemäß Fig. 8B werden bei dieser
zweiten Ausführungsform nach Fig. 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+I-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
Scaler 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 Fig. 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.
Bei dieser dritten Ausführungsform gemaß Fig. 9 umfaßt das
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
Speicheradreßberechnung 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
Durchfü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
Befehlssatz-Adreßgenerierungseinheit 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 Fig. 7 enthält das Prozessorsystem
gemäß Fig. 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 Fig. 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
aufrechtzuerhalten, ist es erforderlich, die Reihenfolge
der Durchführung wie folgt aufrechtzuerhalten: 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 gibt eine Beziehung an,
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 Beziehung gibt
eine Beziehung an, 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
Fig. 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 aufrechtzuerhalten.
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,
aufrechtzuerhalten. 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, das 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
beendet, 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 Fig. 10 bis 20 wird
die Stall-Steuerung in der dritten Ausführungsform nach
Fig. 9 im einzelnen beschrieben.
Die Fälle, die bei dieser dritten Ausführungsform den Stall
verursachen, können wie folgt zusammengefaßt werden:
Mobusy,
Mlbusy,
Imis (I-Cache-Verfehlen),
FRbusy (FPU Register-Schreibkonflikt)
FAexch (FADD Ausnahmeprüfung),
FMexch (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:
MObusy, Mlbusy.
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 Fig. 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.
Mobusy,
Mlbusy,
Imis (I-Cache-Verfehlen),
FRbusy (FPU Register-Schreibkonflikt)
FAexch (FADD Ausnahmeprüfung),
FMexch (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:
MObusy, Mlbusy.
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 Fig. 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.
Fig. 10 zeigt einen Fall eines Stalls infolge eines
I-Cache-Verfehlens zum Zeitpunkt eines Befehlsholvorgangs.
Fig. 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.
Fig. 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.
Fig. 13 zeigt einen Fall, bei dem der Stall als Folge des
I-Cache-Verfehlens zum Zeitpunkt des Hohlens eines Befehls
an einem Sprungziel des Sprungbefehls aufgetreten ist.
Fig. 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.
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.
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-Stallanforderinngssignal verursacht wird, ist in
Fig. 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.
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 F1-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.
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
Fig. 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.
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.
Fig. 17 bis Fig. 19 zeigen beispielsweise
Zeitablaufdarstellungen für die Stall-Steuerung in dieser
dritten Ausführungsform.
In der Zeitablaufdarstellung gemäß Fig. 17 wird ein
Cache-Verfehlen an der M-Stufe der ALU0 203 im N-ten
Zyklus erfaßt, so daß das Mobusy 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 FMexch Signal auftritt, und das Stall1- und
Stall2-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 MObusy
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äß Fig. 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 Mlbusy 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
Mlbusy 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 Fig. 18 wird ein
Cache-Verfehlen in der M Stufe der ALU1 204 im N-ten
Zyklus erfaßt, so daß das Mlbusy 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
Mlbusy 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
Fig. 20 dargestellten Tabelle zusammengefaßt. In dieser
Fig. 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 Scaler 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 werden vom Schutzumfang
der anliegenden Ansprüche mit umfaßt.
Claims (14)
1. Prozessorsystem einer Bauart zur Parallelverarbeitung,
gekennzeichnet durch,
N Prozessorvorrichtungen zur gleichzeitigen Verarbeitung von Befehlen, wobei M eine ganze Zahl ist;
Befehlszufuhreinrichtungen (101, 102; 101A, 102A; 201, 202) zur Zuführung von Befehlen, die durch die N Prozessorvorrichtungen gleichzeitig ausgeführt werden sollen;
und eine Trap-Steuervorrichtung (133) zur Steuerung der N Prozessorvorrichtungen in solcher Weise, daß wenn M Befehle aus der Befehlszufuhreinrichtung den N Prozessorvorrichtungen gleichzeitig zugeführt werden, wobei M eine ganze Zahl ist und N≧M, und eine Ausnahmebedingung bei der Ausführung mindestens eines der M Befehle verursacht wird, die Verarbeitungen aller M Befehle, die den N Prozessorvorrichtungen gleichzeitig zugeführt werden, abgebrochen werden.
N Prozessorvorrichtungen zur gleichzeitigen Verarbeitung von Befehlen, wobei M eine ganze Zahl ist;
Befehlszufuhreinrichtungen (101, 102; 101A, 102A; 201, 202) zur Zuführung von Befehlen, die durch die N Prozessorvorrichtungen gleichzeitig ausgeführt werden sollen;
und eine Trap-Steuervorrichtung (133) zur Steuerung der N Prozessorvorrichtungen in solcher Weise, daß wenn M Befehle aus der Befehlszufuhreinrichtung den N Prozessorvorrichtungen gleichzeitig zugeführt werden, wobei M eine ganze Zahl ist und N≧M, und eine Ausnahmebedingung bei der Ausführung mindestens eines der M Befehle verursacht wird, die Verarbeitungen aller M Befehle, die den N Prozessorvorrichtungen gleichzeitig zugeführt werden, abgebrochen werden.
2. System nach Anspruch 1,
ferner gekennzeichnet durch,
eine Abbruchadreß-Speichervorrichtung (131) zur Speicherung einer Adresse eines Befehls, der die kleinste Adresse unter den M Befehlen hat, für die die Verarbeitungen durch die Trap-Steuervorrichtung (133) abgebrochen werden;
und eine Trap-Adreß-Speichervorrichtung (132) zur Speicherung einer Adresse eines Befehls der M Befehle, von dem die Ausnahmebedingung verursacht wurde.
eine Abbruchadreß-Speichervorrichtung (131) zur Speicherung einer Adresse eines Befehls, der die kleinste Adresse unter den M Befehlen hat, für die die Verarbeitungen durch die Trap-Steuervorrichtung (133) abgebrochen werden;
und eine Trap-Adreß-Speichervorrichtung (132) zur Speicherung einer Adresse eines Befehls der M Befehle, von dem die Ausnahmebedingung verursacht wurde.
3. System nach Anspruch 1,
dadurch gekennzeichnet, daß
die N Prozessorvorrichtungen k seqzebtuekk geordnete
Prozessorvorrichtungen enthält, die eine äquivalente
Funktion haben, wobei K eine ganze Zahl ist und M≧K
und die Befehlszufuhreinrichtung I sequentiell
geordnete Befehle den K Prozessorvorrichtungen
zuführte, wobei J eine ganze Zahl ist und K≧J<1,
die Befehlszufuhreinrichtung die J Befehle den K
Prozessorvorrichtungen derart zuführt, daß ein Befehl
dieser J Befehle, der in der Folge an früherer Stelle
ist, einer Prozessorvorrichtung der K
Prozessorvorrichtungen zugeführt wird, die in der
Folge an früherer Stelle ist.
4. System nach Anspruch 3,
ferner gekennzeichnet durch
eine Vorrichtung zum Blockieren der Verarbeitungen
eines Teils der K-Befehle in solcher Weise daß, wenn
die Möglichkeit des Auftretens einer Ausnahmebedingung
bei der Durchführung eines I-ten Befehls unter den
K-Befehlen zu verneinen, die Verarbeitungen der
Befehle unter den K-Befehlen blockiert werden, die an
späterer Stelle als die I-ten Befehle stehen.
5. System nach Anspruch 1,
ferner gekennzeichnet durch
eine Stall-Steuervorrichtung (163) zur Blockierung der
Verarbeitungen der M Befehle, wenn es nicht möglich
ist, eine Möglichkeit für das Auftreten einer
Ausnahmebedingung in der Durchführung der M Befehle zu
verneinen.
6. System nach Anspruch 5,
dadurch gekennzeichnet, daß
die Stall-Steuervorrichtung die Verarbeitungen der M
Befehle abbricht, wenn die Ausnahmebedingung
tatsächlich bei der Durchführung der M Befehle
aufgetreten ist.
7. System nach Anspruch 5,
dadurch gekennzeichnet, daß
die Stall-Steuervorrichtung (163) die Verarbeitungen
der M Befehle wieder aufnimmt, wenn die
Ausnahmebedingung in der Tat bei der Durchführung der
M Befehle nicht aufgetreten ist.
8. Verfahren zur Steuerung eines Prozessorsystems einer
Bauart mit Parallelverarbeitung,
gekennzeichnet durch die Schritte:
Zuführung von M Befehlen, die durch N Prozessorvorrichtungen des Systems gleichzeitig durchgeführt werden sollen, wobei N≧M; und
Steuerung der N Prozessorvorrichtungen derart, daß wenn M Befehle gleichzeitig den N Prozessorvorrichtungen zugeführt werden, und eine Ausnahmebedingung bei der Durchführung mindestens einer der M Befehle verursacht wird, die Verarbeitungen aller M Befehle, die den N Prozessorvorrichtungen gleichzeitig zugeführt werden, abgebrochen werden.
Zuführung von M Befehlen, die durch N Prozessorvorrichtungen des Systems gleichzeitig durchgeführt werden sollen, wobei N≧M; und
Steuerung der N Prozessorvorrichtungen derart, daß wenn M Befehle gleichzeitig den N Prozessorvorrichtungen zugeführt werden, und eine Ausnahmebedingung bei der Durchführung mindestens einer der M Befehle verursacht wird, die Verarbeitungen aller M Befehle, die den N Prozessorvorrichtungen gleichzeitig zugeführt werden, abgebrochen werden.
9. Verfahren nach Anspruch 8,
ferner gekennzeichnet durch die
Schritte:
Speichern einer Adresse eines Befehls, der die kleinste Adresse unter den M Befehlen hat, für die die Verarbeitungen in der Steuerstufe abgebrochen werden;
und Speicherung einer Adresse eines Befehls der M Befehle von welchem die Ausnahmebedingung verursacht wird.
Speichern einer Adresse eines Befehls, der die kleinste Adresse unter den M Befehlen hat, für die die Verarbeitungen in der Steuerstufe abgebrochen werden;
und Speicherung einer Adresse eines Befehls der M Befehle von welchem die Ausnahmebedingung verursacht wird.
10. Verfahren nach Anspruch 8,
dadurch gekennzeichnet, daß
die N Prozessorvorrichtungen sequentiell geordnete K
Prozessorvorrichtungen enthalten, die eine äquivalente
Funktion haben, wobei K eine ganze Zahl ist und M≧K,
denen sequentiell geordnete J Befehle zugeführt
werden, wobei J eine ganze Zahl ist und K≧J≧1,
und wobei beim Zuführschritt eines Befehls der J
Befehle, der in der Folge an früherer Stelle ist, eine
Prozessorvorrichtung der K Prozessorvorrichtungen
zugeführt wird, die in der Folge an früherer Stelle
ist.
11. Verfahren nach Anspruch 10,
ferner gekennzeichnet durch
einen Blockierungsschritt der Verarbeitungen eines
Teils der K Befehle derart, daß wenn es nicht möglich
ist, die Möglichkeit eines Auftretens einer
Ausnahmebedingung bei der Durchführung eines I-ten
Befehls unter den K Befehlen zu verneinen, die
Verarbeitungen der Befehle unter den K Befehlen, die
in der Folge an späterer Stelle sind als der I-te
Befehl, blockiert werden.
12. Verfahren nach Anspruch 8,
ferner gekennzeichnet durch
den Blockierungsschritt der Verarbeitungen der M
Befehle, wenn es nicht möglich ist, die Möglichkeit
für das Auftreten einer Ausnahmebedingung in der
Durchführung der M Befehle zu verneinen.
13. Verfahren nach Anspruch 12,
ferner gekennzeichnet durch
den Abbruchschritt der Verarbeitung der M Befehle,
wenn die Ausnahmebedingung in der Tat bei der
Ausführung der M Befehle aufgetreten ist.
14. Verfahren nach Anspruch 12,
ferner gekennzeichnet durch
einen Wiederaufnahmeschritt der Verarbeitungen der M
Befehle, wenn die Ausnahmebedingung in der Tat bei der
Ausführung der M Befehle nicht aufgetreten ist.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JPP3-073364 | 1991-04-05 | ||
JP7336491 | 1991-04-05 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE4211245A1 true DE4211245A1 (de) | 1992-10-22 |
DE4211245B4 DE4211245B4 (de) | 2009-05-14 |
Family
ID=13516050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE4211245A Expired - Lifetime DE4211245B4 (de) | 1991-04-05 | 1992-04-03 | Prozessorsystem in Parallelverarbeitungsbauart und Verfahren zu dessen Steuerung |
Country Status (3)
Country | Link |
---|---|
US (1) | US5561774A (de) |
KR (1) | KR960001274B1 (de) |
DE (1) | DE4211245B4 (de) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002189603A (ja) * | 2000-12-19 | 2002-07-05 | Fujitsu Ltd | 計算機とその制御方法 |
JP4542722B2 (ja) * | 2001-04-25 | 2010-09-15 | 富士通株式会社 | 命令処理方法 |
US20020184566A1 (en) * | 2001-06-01 | 2002-12-05 | Michael Catherwood | Register pointer trap |
CA2383832A1 (en) * | 2002-04-24 | 2003-10-24 | Ibm Canada Limited-Ibm Canada Limitee | System and method for intelligent trap analysis |
US8423832B2 (en) * | 2006-11-07 | 2013-04-16 | Hewlett-Packard Development Company, L.P. | System and method for preventing processor errors |
US20090210677A1 (en) * | 2008-02-19 | 2009-08-20 | Luick David A | System and Method for Optimization Within a Group Priority Issue Schema for a Cascaded Pipeline |
US8108654B2 (en) * | 2008-02-19 | 2012-01-31 | International Business Machines Corporation | System and method for a group priority issue schema for a cascaded pipeline |
US7865700B2 (en) * | 2008-02-19 | 2011-01-04 | International Business Machines Corporation | System and method for prioritizing store instructions |
US20090210669A1 (en) * | 2008-02-19 | 2009-08-20 | Luick David A | System and Method for Prioritizing Floating-Point Instructions |
US7996654B2 (en) * | 2008-02-19 | 2011-08-09 | International Business Machines Corporation | System and method for optimization within a group priority issue schema for a cascaded pipeline |
US7882335B2 (en) * | 2008-02-19 | 2011-02-01 | International Business Machines Corporation | System and method for the scheduling of load instructions within a group priority issue schema for a cascaded pipeline |
US7877579B2 (en) * | 2008-02-19 | 2011-01-25 | International Business Machines Corporation | System and method for prioritizing compare instructions |
US7870368B2 (en) * | 2008-02-19 | 2011-01-11 | International Business Machines Corporation | System and method for prioritizing branch instructions |
US20090210672A1 (en) * | 2008-02-19 | 2009-08-20 | Luick David A | System and Method for Resolving Issue Conflicts of Load Instructions |
US20090210666A1 (en) * | 2008-02-19 | 2009-08-20 | Luick David A | System and Method for Resolving Issue Conflicts of Load Instructions |
US8095779B2 (en) * | 2008-02-19 | 2012-01-10 | International Business Machines Corporation | System and method for optimization within a group priority issue schema for a cascaded pipeline |
US7984270B2 (en) * | 2008-02-19 | 2011-07-19 | International Business Machines Corporation | System and method for prioritizing arithmetic instructions |
CN113568599A (zh) * | 2020-04-29 | 2021-10-29 | 伊姆西Ip控股有限责任公司 | 用于处理计算作业的方法、电子设备和计算机程序产品 |
US11733972B2 (en) | 2020-10-06 | 2023-08-22 | Ventana Micro Systems Inc. | Processor that mitigates side channel attacks by providing random load data as a result of execution of a load operation that does not have permission to access a load address |
US11797673B2 (en) * | 2020-08-27 | 2023-10-24 | Ventana Micro Systems Inc. | Processor that mitigates side channel attacks by expeditiously initiating flushing of instructions dependent upon a load instruction that causes a need for an architectural exception |
US11907369B2 (en) | 2020-08-27 | 2024-02-20 | Ventana Micro Systems Inc. | Processor that mitigates side channel attacks by preventing cache memory state from being affected by a missing load operation by inhibiting or canceling a fill request of the load operation if an older load generates a need for an architectural exception |
US11868469B2 (en) * | 2020-08-27 | 2024-01-09 | Ventana Micro Systems Inc. | Processor that mitigates side channel attacks by preventing all dependent instructions from consuming architectural register result produced by instruction that causes a need for an architectural exception |
US11734426B2 (en) | 2020-10-06 | 2023-08-22 | Ventana Micro Systems Inc. | Processor that mitigates side channel attacks by prevents cache line data implicated by a missing load address from being filled into a data cache memory when the load address specifies a location with no valid address translation or no permission to read from the location |
US11853424B2 (en) | 2020-10-06 | 2023-12-26 | Ventana Micro Systems Inc. | Processor that mitigates side channel attacks by refraining from allocating an entry in a data TLB for a missing load address when the load address misses both in a data cache memory and in the data TLB and the load address specifies a location without a valid address translation or without permission to read from the location |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4250546A (en) * | 1978-07-31 | 1981-02-10 | Motorola, Inc. | Fast interrupt method |
US4200912A (en) * | 1978-07-31 | 1980-04-29 | Motorola, Inc. | Processor interrupt system |
US4742449A (en) * | 1981-04-23 | 1988-05-03 | Data General Corporation | Microsequencer for a data processing system using a unique trap handling technique |
JPS58144964A (ja) * | 1982-02-24 | 1983-08-29 | Fujitsu Ltd | マルチプロセツサシステム |
US4589065A (en) * | 1983-06-30 | 1986-05-13 | International Business Machines Corporation | Mechanism for implementing one machine cycle executable trap instructions in a primitive instruction set computing system |
US4719565A (en) * | 1984-11-01 | 1988-01-12 | Advanced Micro Devices, Inc. | Interrupt and trap handling in microprogram sequencer |
US4796176A (en) * | 1985-11-15 | 1989-01-03 | Data General Corporation | Interrupt handling in a multiprocessor computing system |
US4839800A (en) * | 1986-08-29 | 1989-06-13 | Bull Hn Information Systems Inc. | Data processing system with a fast interrupt |
US5247628A (en) * | 1987-11-30 | 1993-09-21 | International Business Machines Corporation | Parallel processor instruction dispatch apparatus with interrupt handler |
US4903264A (en) * | 1988-04-18 | 1990-02-20 | Motorola, Inc. | Method and apparatus for handling out of order exceptions in a pipelined data unit |
GB8815042D0 (en) * | 1988-06-24 | 1988-08-03 | Int Computers Ltd | Data processing apparatus |
EP0365322A3 (de) * | 1988-10-19 | 1991-11-27 | Hewlett-Packard Company | Verfahren und Vorrichtung zur Ausnahmenbehandlung in Fliessbandprozessoren mit unterschiedlicher Befehlspipelinetiefe |
US5193187A (en) * | 1989-12-29 | 1993-03-09 | Supercomputer Systems Limited Partnership | Fast interrupt mechanism for interrupting processors in parallel in a multiprocessor system wherein processors are assigned process ID numbers |
-
1992
- 1992-04-03 DE DE4211245A patent/DE4211245B4/de not_active Expired - Lifetime
- 1992-04-06 KR KR1019920005763A patent/KR960001274B1/ko not_active IP Right Cessation
-
1994
- 1994-08-16 US US08/291,582 patent/US5561774A/en not_active Expired - Lifetime
Non-Patent Citations (3)
Title |
---|
SMITH, J.E. und PLEZKUN, A.R.: Implementing Precise Interrupts in Pipelined Processors. In: IEEE Transactions on Computers, Vol. 37, No. 5, 1988, S. 562-573 * |
US IEEE Transactions on Computers, Vol. 39, No. 3,März 1990, S. 349-359 * |
US-Buch: "VAX/VMS Internals and Data Structures, Digital Press, 1984, S. 61-81 * |
Also Published As
Publication number | Publication date |
---|---|
DE4211245B4 (de) | 2009-05-14 |
KR920020339A (ko) | 1992-11-21 |
KR960001274B1 (ko) | 1996-01-25 |
US5561774A (en) | 1996-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE4211245B4 (de) | Prozessorsystem in Parallelverarbeitungsbauart und Verfahren zu dessen Steuerung | |
DE3116100C2 (de) | Datenverarbeitungseinheit | |
DE4206062C2 (de) | Pipelineverarbeitung von Instruktionen | |
DE3210816C2 (de) | ||
DE69635881T2 (de) | VLIW-Befehlsprozessor mit variabler Wortlänge | |
DE68929483T2 (de) | Datenprozessor mit einer Befehlseinheit, die einen Cachespeicher und einen ROM aufweist. | |
DE19527031C2 (de) | Verzweigungsprozessor für ein Datenverarbeitungssystem und Verfahren zum Betreiben eines Datenverarbeitungssystems | |
EP0689694B1 (de) | Verfahren zur maschinellen erzeugung von nebenläufig bearbeitbaren befehlsgruppen aus einem programm für superskalare mikroprozessoren | |
DE69534148T2 (de) | Rechnersystem zur Ausführung von Verzweigungsbefehlen | |
DE4434895C2 (de) | Verfahren und Vorrichtung zur Behandlung von Ausnahmebedingungen | |
DE69534113T2 (de) | Kompression der Befehlswörter eines Rechners | |
DE19855806A1 (de) | Vorrichtung und Verfahren zum Durchführen von Unterprogrammaufruf- und Rücksprungoperationen | |
DE3638572C2 (de) | ||
DE4207148A1 (de) | Superscalar-prozessor | |
DE69133571T2 (de) | Datenprozessor mit der Fähigkeit, zwei Befehle gleichzeitig auszuführen | |
DE2758830A1 (de) | Rechenvorrichtung | |
DE102013219856A1 (de) | Handhaben von potentiell ungültigen Ergebnissen während Vorauslaufen | |
DE4345028A1 (de) | Vorrichtung zur Reduzierung von Verzögerungen aufgrund von Verzweigungen | |
DE19824289C2 (de) | Pipelineverarbeitungsmaschine | |
DE4134392C2 (de) | Verfahren und Vorrichtung zum Ungültigmachen von Befehlen in Geräten mit Parallelverarbeitung | |
EP0825540A1 (de) | Prozessor mit Pipelining-Aufbau | |
EP1117037B1 (de) | Datenverarbeitungsvorrichtung zum parallelen Verarbeiten von unabhängigen Prozessen (Threads) | |
DE2906685C2 (de) | ||
DE69626263T2 (de) | System zur Zuteilung mehrerer Befehle ohne Verzweigungsunterbrechung in einem Pipelineprozessor | |
DE10303053B4 (de) | Prozessorarchitektur mit einem Array von Pipelines und einer Registerdatei zum Vermeiden von Datenrisiken und Verfahren zur Datenweiterleitung in einer derartigen Prozessorarchitektur |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8364 | No opposition during term of opposition | ||
R071 | Expiry of right | ||
R071 | Expiry of right |