DE4211245A1 - Prozessorsystem in parallelverarbeitungsbauart mit trap- und stall-steuerfunktionen - Google Patents

Prozessorsystem in parallelverarbeitungsbauart mit trap- und stall-steuerfunktionen

Info

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
Application number
DE4211245A
Other languages
English (en)
Other versions
DE4211245B4 (de
Inventor
Takeshi Aikawa
Mitsuo Saito
Kenji Minagawa
Kenji Takeda
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Publication of DE4211245A1 publication Critical patent/DE4211245A1/de
Application granted granted Critical
Publication of DE4211245B4 publication Critical patent/DE4211245B4/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3863Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent 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.
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.
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-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.
Fexch
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.
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 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.
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.
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.
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.
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.
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.
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.
DE4211245A 1991-04-05 1992-04-03 Prozessorsystem in Parallelverarbeitungsbauart und Verfahren zu dessen Steuerung Expired - Lifetime DE4211245B4 (de)

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)

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

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

Non-Patent Citations (3)

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