DE4211245B4 - Prozessorsystem in Parallelverarbeitungsbauart und Verfahren zu dessen Steuerung - Google Patents

Prozessorsystem in Parallelverarbeitungsbauart und Verfahren zu dessen Steuerung Download PDF

Info

Publication number
DE4211245B4
DE4211245B4 DE4211245A DE4211245A DE4211245B4 DE 4211245 B4 DE4211245 B4 DE 4211245B4 DE 4211245 A DE4211245 A DE 4211245A DE 4211245 A DE4211245 A DE 4211245A DE 4211245 B4 DE4211245 B4 DE 4211245B4
Authority
DE
Germany
Prior art keywords
instructions
trap
commands
processing
exception
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE4211245A
Other languages
English (en)
Other versions
DE4211245A1 (de
Inventor
Takeshi Chofu Aikawa
Mitsuo Yokosuka Saito
Kenji Minagawa
Kenji Yokohama 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 or 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 or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Advance Control (AREA)

Abstract

Prozessor in Parallelverarbeitungs-Bauart mit:
N Ausführungseinheiten (103–110) zur gleichzeitigen Verarbeitung von Befehlen, wobei N eine ganze Zahl ist;
einer Befehlszufuhreinrichtung (102) zur Zuführung von Befehlen, die durch die N Ausführungseinheiten (103–110) gleichzeitig verarbeitet werden sollen; und
einer Trap-Steuervorrichtung (133) zur Steuerung der N Ausführungseinheiten (103–110) in solcher Weise, daß dann, wenn M Befehle aus der Befehlszufuhreinrichtung (102) den N Ausführungseinheiten (103–110) gleichzeitig zugeführt werden, wobei M eine ganze Zahl ist und N ≥ M, und eine Ausnahmebedingung bei der Verarbeitung mindestens eines der M Befehle in einem Zyklus verursacht wird, die Verarbeitungen aller M Befehle, die den N Ausführungseinheiten (103–110) gleichzeitig zugeführt werden, in diesem Zyklus abgebrochen werden, ohne in diesem Zyklus eine Trap-Adresse eines Befehls unter den M Befehlen festzulegen, durch welchen die Ausnahmebedingung hervorgerufen wird.

Description

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

Claims (14)

  1. Prozessor in Parallelverarbeitungs-Bauart mit: N Ausführungseinheiten (103110) zur gleichzeitigen Verarbeitung von Befehlen, wobei N eine ganze Zahl ist; einer Befehlszufuhreinrichtung (102) zur Zuführung von Befehlen, die durch die N Ausführungseinheiten (103110) gleichzeitig verarbeitet werden sollen; und einer Trap-Steuervorrichtung (133) zur Steuerung der N Ausführungseinheiten (103110) in solcher Weise, daß dann, wenn M Befehle aus der Befehlszufuhreinrichtung (102) den N Ausführungseinheiten (103110) gleichzeitig zugeführt werden, wobei M eine ganze Zahl ist und N ≥ M, und eine Ausnahmebedingung bei der Verarbeitung mindestens eines der M Befehle in einem Zyklus verursacht wird, die Verarbeitungen aller M Befehle, die den N Ausführungseinheiten (103110) gleichzeitig zugeführt werden, in diesem Zyklus abgebrochen werden, ohne in diesem Zyklus eine Trap-Adresse eines Befehls unter den M Befehlen festzulegen, durch welchen die Ausnahmebedingung hervorgerufen wird.
  2. Prozessor nach Anspruch 1, gekennzeichnet durch: eine Abbruchadress-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-Adress-Speichervorrichtung (132) zur Speicherung einer Adresse eines Befehls der M Befehle, von dem die Ausnahmebedingung verursacht wurde.
  3. Prozessor nach Anspruch 1, dadurch gekennzeichnet, daß die N Ausführungseinheiten K sequentiell geordnete Ausführungseinheiten (103, 104) enthalten, die eine äquivalente Funktion haben, wobei K eine ganze Zahl ist und M ≥ K, und die Befehlszufuhreinrichtung (102A) J sequentiell geordnete Befehle den K Ausführungseinheiten zuführt, wobei J eine ganze Zahl ist und K ≥ J ≥ 1, und die Befehlszufuhreinrichtung die J Befehle den K Ausführungseinheiten derart zuführt, daß ein Befehl dieser J Befehle, der in der Folge an früherer Stelle steht, einer Ausführungseinheit (103) der K Ausführungseinheiten zugeführt wird, die in der Folge an früherer Stelle steht.
  4. Prozessor nach Anspruch 3, gekennzeichnet durch eine Vorrichtung (163) zum Blockieren der Verarbeitungen eines Teils der K Befehle in solcher Weise, daß dann, wenn die Möglichkeit des Auftretens einer Ausnahmebedingung bei der Durchführung eines I-ten Befehls unter den K Befehlen nicht zu vermeiden ist, die Verarbeitungen der Befehle unter den K Befehlen blockiert werden, die an späterer Stelle als die I-ten Befehle stehen.
  5. Prozessor nach Anspruch 1, 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 Ausnahme bedingung in der Durchführung der M Befehle zu verneinen.
  6. Prozessor nach Anspruch 5, dadurch gekennzeichnet, daß die Stall-Steuervorrichtung (163) die Verarbeitungen der M Befehle abbricht, wenn die Ausnahmebedingung tatsächlich bei der Durchführung der M Befehle aufgetreten ist.
  7. Prozessor 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 Prozessors in Parallelverarbeitungs-Bauart mit folgenden Schritten: Zuführung von M Befehlen, die durch N Ausführungseinheiten (103110) des Systems gleichzeitig durchgeführt werden sollen, wobei N ≥ M; und Steuerung der N Ausführungseinheiten (103110) derart, daß dann, wenn M Befehle gleichzeitig den N Ausführungseinheiten (103110) zugeführt werden, und eine Ausnahmebedingung bei der Durchführung mindestens eines der M Befehle in einem Zyklus verursacht wird, die Verarbeitungen aller M Befehle, die den N Ausführungseinheiten (103110) gleichzeitig zugeführt werden, in diesem Zyklus abgebrochen werden, ohne in diesem Zyklus eine Trap-Adresse eines Befehls unter den M Befehlen festzulegen, durch welchen die Ausnahmebedingung hervorgerufen wird.
  9. Verfahren nach Anspruch 8, gekennzeichnet durch die Schritte: Speichern einer Adresse eines Befehls (In), der die kleinste Adresse unter den M Befehlen (In, In + 1, In + 2, In + 3) hat, für die die Verarbeitungen in dem Steuerschritt abgebrochen werden; und Speicherung einer Adresse eines Befehls (In + 2) der M Befehle, von welchem die Ausnahmebedingung verursacht wird.
  10. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß die N Ausführungseinheiten (103110) sequentiell geordnete K Ausführungseinheiten (103, 104) enthalten, die eine äquivalente Funktion haben, wobei K eine ganze Zahl ist und M ≥ K, denen sequentiell geordnete J Befehle (In + 1, In + 2) zugeführt werden, wobei J eine ganze Zahl ist und K ≥ J ≥ 1, und wobei beim Zuführschritt ein Befehl (In + 1) der J Befehle, der in der Folge an früherer Stelle steht, einer Ausführungseinheit (103) der K Ausführungseinheiten zugeführt wird, die in der Folge an früherer Stelle steht.
  11. Verfahren nach Anspruch 10, gekennzeichnet durch einen Blockierungsschritt der Verarbeitungen eines Teils der K Befehle (In + 1, In + 2) derart, daß dann, wenn es nicht möglich ist, die Möglichkeit eines Auftretens einer Ausnahmebedingung bei der Durchführung eines I-ten Befehls (In + 2) unter den K Befehlen verneinen, die Verarbeitungen der Befehle unter den K Befehlen, die in der Folge an späterer Stelle stehen als der I-te Befehl, blockiert werden.
  12. Verfahren nach Anspruch 8, gekennzeichnet durch den Blockierungsschritt der Verarbeitungen der M Befehle (In, In + 1, In + 2, In + 3), 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, gekennzeichnet durch den Abbruchschritt der Verarbeitung der M Befehle (In, In + 1, In + 2, In + 3) wenn die Ausnahmebedingung in der Tat bei der Verarbeitung der M Befehle aufgetreten ist.
  14. Verfahren nach Anspruch 12, gekennzeichnet durch einen Wiederaufnahmeschritt der Verarbeitungen der M Befehle (In, In + 1, In + 2, In + 3), wenn die Ausnahmebedingung in der Tat bei der Verarbeitung 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
JP7336491 1991-04-05
JPP3-073364 1991-04-05

Publications (2)

Publication Number Publication Date
DE4211245A1 DE4211245A1 (de) 1992-10-22
DE4211245B4 true 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
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
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
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
US7877579B2 (en) * 2008-02-19 2011-01-25 International Business Machines Corporation System and method for prioritizing compare instructions
US20090210672A1 (en) * 2008-02-19 2009-08-20 Luick David A System and Method for Resolving Issue Conflicts of Load Instructions
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
US20090210666A1 (en) * 2008-02-19 2009-08-20 Luick David A System and Method for Resolving Issue Conflicts of Load Instructions
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
US7870368B2 (en) * 2008-02-19 2011-01-11 International Business Machines Corporation System and method for prioritizing branch instructions
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
CN113568599B (zh) * 2020-04-29 2024-05-31 伊姆西Ip控股有限责任公司 用于处理计算作业的方法、电子设备和计算机程序产品
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
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
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
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
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
US4200912A (en) * 1978-07-31 1980-04-29 Motorola, Inc. Processor interrupt system
US4250546A (en) * 1978-07-31 1981-02-10 Motorola, Inc. Fast interrupt method
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 (4)

* 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, D igital Press, 1984, S. 61-81; US IEEE Transactions on Computers, Vol. 39, No. 3, März 1990, S. 349-3 59; SMITH, J.E. und PLEZKUN, A.R.: Implementing Pr ecise Interrupts in Pipelined Processors. In: IEEE Transactions on Computers, Vol. 37, No. 5, 1988, S. 562-573
US-Buch: "VAX/VMS Internals and Data Structures, Digital Press, 1984, S. 61-81 *

Also Published As

Publication number Publication date
KR920020339A (ko) 1992-11-21
KR960001274B1 (ko) 1996-01-25
DE4211245A1 (de) 1992-10-22
US5561774A (en) 1996-10-01

Similar Documents

Publication Publication Date Title
DE4211245B4 (de) Prozessorsystem in Parallelverarbeitungsbauart und Verfahren zu dessen Steuerung
DE3116100C2 (de) Datenverarbeitungseinheit
DE69325086T2 (de) Verfahren und System für spekulative Befehlsausführung
DE69228360T2 (de) Registerlesekontrolle
DE69033398T2 (de) Rechnerarchitektur mit Mehrfachbefehlsausgabe
DE69635881T2 (de) VLIW-Befehlsprozessor mit variabler Wortlänge
DE69132675T2 (de) Parallelfliessband-Befehlsverarbeitungssystem für sehr lange Befehlswörter
DE4206062C2 (de) Pipelineverarbeitung von Instruktionen
DE69033443T2 (de) Mechanismus zur Verzweigungsrücksetzung in einem Prozessor mit gepaarten Befehlen
DE69028138T2 (de) Mechanismus zur präzisen Behandlung von Ausnahmebedingungen in einem Prozessor mit gepaarten Befehlen
DE69031991T2 (de) Verfahren und Gerät zur Beschleunigung von Verzweigungsbefehlen
DE69329778T2 (de) System und verfahren zur handhabung von laden und/oder speichern in einem superskalar mikroprozessor
DE3210816C2 (de)
DE69534148T2 (de) Rechnersystem zur Ausführung von Verzweigungsbefehlen
DE68926063T2 (de) Verfahren und Gerät zur Steuerung von prozessoren mittels Vorhersagen von Ausnahmen bei der gleitkomma-Arithmetik
DE68927911T2 (de) Datenverarbeitungssystem
DE3689923T2 (de) Dreiphasen-Pipeline-Signalprozessor.
DE68927415T2 (de) Kontextumschaltungsverfahren und -anordnung zur Verwendung in einem Vektorverarbeitungssystem
DE68927029T2 (de) Pipelineprozessor
DE69129569T2 (de) Maschine mit sehr langem Befehlswort für leistungsfähige Durchführung von Programmen mit bedingten Verzweigungen
DE19527031C2 (de) Verzweigungsprozessor für ein Datenverarbeitungssystem und Verfahren zum Betreiben eines Datenverarbeitungssystems
DE69130757T2 (de) Ausführungsvorrichtung für bedingte Verzweigungsbefehle
DE4434895C2 (de) Verfahren und Vorrichtung zur Behandlung von Ausnahmebedingungen
DE69418146T2 (de) Temporärer Registersatz für einen superpipeline-superskalaren Prozessor
DE19855806A1 (de) Vorrichtung und Verfahren zum Durchführen von Unterprogrammaufruf- und Rücksprungoperationen

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