DE69128169T2 - Informationsverarbeitungsgerät - Google Patents

Informationsverarbeitungsgerät

Info

Publication number
DE69128169T2
DE69128169T2 DE69128169T DE69128169T DE69128169T2 DE 69128169 T2 DE69128169 T2 DE 69128169T2 DE 69128169 T DE69128169 T DE 69128169T DE 69128169 T DE69128169 T DE 69128169T DE 69128169 T2 DE69128169 T2 DE 69128169T2
Authority
DE
Germany
Prior art keywords
instruction
register
data
branch
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69128169T
Other languages
English (en)
Other versions
DE69128169D1 (de
Inventor
Takahiko Uesugi
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.)
NEC Corp
Original Assignee
NEC Corp
Nippon Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp, Nippon Electric Co Ltd filed Critical NEC Corp
Application granted granted Critical
Publication of DE69128169D1 publication Critical patent/DE69128169D1/de
Publication of DE69128169T2 publication Critical patent/DE69128169T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution

Landscapes

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

Description

  • Die vorliegende Erfindung betrifft ein Pipeline-Informationsverarbeitungsgerät, und insbesondere ein Pipeline-Informationsverarbeitungsgerät zum gleichzeitigen Ausführen mehrerer Befehle.
  • In IEEE Transactions on Computer, vol.39, no.3, March 1990, New York, pages 349-359; G.S. SOHI: "Instruction Issue Logic for High-Performance, Interruptible, Multiple Functional Unit, Pipelined Computers" ist ein System beschrieben, in welchem eine Aufbewahrungsstation für jede Funktionseinheit vorgesehen ist und die Ausführung eines Befehls in der Aufbewahrungsstation auf Bereitschaft gelegt wird, bis die Beziehung einer Abhängigkeit von Daten geklärt ist.
  • In einer herkömmlichen Pipeline-Befehlssteuerungsschaltung sind den einzelnen Stufen unterschiedliche Funktionen zugeordnet, so daß sukzessiv auszuführende Befehle in der Befehlssteuerungsschaltung ohne eine Datenbestimmtheit ablaufen. Dann werden verschiedene Ressourcen für einen Computer geprüft (indem beispielsweise Registerüberschneidungszustände und ein Konflikt von Schreibpfaden zu allgemeinen Registern geprüft wird). Wenn alle Ausführungsbedingungen erfüllt sind, wird ein Ausführungsbefehl ausgegeben.
  • Um sukzessiv Befehle auszuführen, weist die vorstehend beschriebene Befehlssteuerungsschaltung eine Steuerinformation auf, die Befehlen entspricht, welche gleichzeitig ausgeführt werden können. Eine Bedingung, ob ein Befehl beim Durchlaufen einer bestimmten Stufe ausgeführt werden kann, ist als ein Flag (Merkerbit) der Steuerinformation gesetzt. Der Befehl durchläuft abhängig von dem Status des Flags die Stufe in der Befehlssteuerungsschaltung.
  • Ferner werde angenommen, daß in der Befehlssteuerungsschaltung das Resultat eines vorausgehenden Befehls nicht in einem allgemeinen Register gespeichert wird und ein nachfolgender Befehl für die Aktualisierung des allgemeinen Registers zu einer Stufe in der Befehlssteuerungsschaltung läuft. In diesem Falle kann auch dann, wenn das Resultat des vorhergehenden Befehls nicht in dem allgemeinen Register gespeichert ist, der nachfolgende Befehl ausgeführt werden, ohne daß er in der Stufe der Befehlssteuerungsschaltung angehalten wird, indem verhindert wird, daß der vorausgehende Befehl in das allgemeine Register geschrieben wird.
  • In der vorstehenden Befehlssteuerungsschaltung verwendet jedoch dann, wenn ein Befehlsstring so aufgebaut ist, daß ein Befehl (die Verzweigungsfehlschlagseite) nach einem Verzweigungsbefehl den Inhalt desselben allgemeinen Registers wie das zum Speichern des Resultates eines dem Verzweigungsbefehl vorausgehenden Befehls benutzt, und ein Verzweigungserfolg von dem Verzweigungsbefehl erreicht wird, der Befehl nach dem Verzweigungserfolg das Resultat des dem Verzweigungsbefehl vorhergehenden Befehls, welche in dem allgemeinen Register gespeichert ist.
  • Aus diesen Grund muß deshalb, wenn das Resultat des vorhergehenden Befehls noch nicht vorliegt, die Ausführung eines Befehls, welcher das Resultat des nachfolgenden Befehls verwendet, ausgesetzt werden, bis das Resultat des vorhergehenden Befehls bestimmt ist. Das heißt, die Ausführung des Verzweigungsbefehlswird ausgesetzt, bis die gesamte dem Verzweigungsbefehl vorausgehende Datenbestimmung bei dem Verzweigungsbefehl abgeschlossen ist.
  • Ein herkömmliches Gerät wird nun nachstehend unter Bezugnahme auf die beigefügten Zeichnungen beschrieben.
  • Fig. 2 stellt einen Befehlsstring dar, der so aufgebaut ist, daß im Falle eines Verzweigungserfolgs ein Befehl an einem Verzweigungsziel auf die Bestimmung von vor dem Verzweigungsbefehl bereitgestellten Daten wartet. Fig. 4 stellt eine herkömmliche Befehlssteuerungsschaltung dar. Fig. 5 stellt einen Fall dar, bei dem der in Fig. 2 dargestellte Befehls string von der in Fig. 4 dargestellten herkömmlichen Befehlssteuerungsschaltung ausgeführt wird.
  • Gemäß Fig. 4 empfängt ein Befehlsregister 1 Befehle und Operanden von einer Befehlzuführungsschaltung, und führt diese einem Befehlsregister 2 zu. Die Befehlsregister 1 und 2 werden von Steuersignalen von einer Befehlsstufen-Steuerungsschaltung 4 und einer herkömmliche Datenbestimmungs-Steuerschaltung 5a (die einem mit gestrichelter Linie eingeschlossenen Abschnitt von Fig. 4 entspricht) gesteuert.
  • Ein Schreibnummern allgemeiner Register haltendes Register 6 wird verwendet, wenn ein Schreibbefehl bezogen auf ein allgemeines Register ausgeführt werden soll. Das Register 6 weist n Einträge (drei Einträge in diesem Fall) auf und dient dazu die Nummer eines allgemeinen Registers zu speichern, für welches eine Schreibvorgang ausgeführt wird. Das Register 6 speichert eine solche Nummer als Antwort auf ein Speichereintragsnummernsignal 101, welches ausgegeben wird, wenn der Wert des Operanden x in dem Befehlsregister 1 zu dem Befehls register 2 übertragen wird.
  • Eine Vergleichschaltung 7-1 detektiert eine Übereinstimmung zwischen den Operanden x, welche jeweils in dem Schreibnummern allgemeiner Register haltendem Register 6 und dem Befehlsregister 1 gespeichert sind, und speichert den Wert des Operanden x in einem eine identische Registeraktualisierungsstapelnummer haltendem Register 8 (welches in diesem herkömmlichen Gerät eine 3-Bit-Anordnung aufweist). Vergleichschaltungen 7-2 und 7-3 detektieren Übereinstimmungen zwischen Operanden y bzw. Operanden z, welche in dem Schreibnummern allgemeiner Register haltendem Register 6 und in dem Befehlsregister 1 gespeichert sind. UND-Schaltungen 9-1 und 9-2 führen dann eine logische UND-Verknüpfung der Werte der Operanden y und z mit einem Wert aus, welcher der durch Invertierung des Wertes in dem die identische Registeraktualisierungsstapelnummer haltendem Register 8 unter Verwendung eines Inverters 20 erhalten wird. Die resultierenden Werte werden in Datenverwendungsinformationen vorhergehender Befehle haltenden Registern 10-1 und 10-2 gespeichert (wovon jedes in diesem herkömmlichen Gerät eine 3-Bit-Anordnung aufweist, wobei die 3 Bits des Registers 10-1 Einträge 1, 2 und 3 auf der y-Operandenseite angeben und die 3 Bits des Registers 10-2 Einträge 1, 2 und 3 auf der x-Operandenseite angeben).
  • Ein eine Datenunbestimmtheitsinformation haltendes Register 21 speichert die Information des Speichereintragsnummernsignals 101, und wird so betrieben, daß es ein Eintragsbit, in welchem "1" gesetzt ist, zurücksetzt, wenn eine ODER- Schaltung 16 den von der Vergleichsschaltung 7-1 erhaltenen Wert mit einem Rücksetznummernsignal 104 logisch ODER-verknüpft, welches das ODER-Verknüpfungsprodukt eines Eintragrücksetznummernsignals 102 zum Löschen eines Befehls in einer Befehlsstufe nach einem Verzweigungserfolg und einem Rücksetzsignal (Datenbestimmtheits-Eintragsnummernsignal 103) ist, welches einem Datenbestimmtheitseintrag entspricht.
  • Anschließend führt eine ODER-Schaltung 19 eine logische ODER-Verknüpfung der Werte der Datenverwendungsinformationen für vorhergehende Befehle haltenden Register 10-1 und 10-2 mit einem Wert durch, der durch Maskierung des Wertes in dem die Datenunbestimmtheitsinformation haltenden Register 21 mit dem Rücksetznummernsignal 104 erhalten wird (was durch einen Inverter 17 und UND-Schaltungen 18-1 und 18-2) ausgeführt wird). Wenn der resultierende Wert "1" ist, wird ein erstes Haltesignal 108 für das Befehlsregister 2 logisch mit einem zweiten Haltesignal 109 für das Befehlsregister 2 über eine ODER-Schaltung ODER-verknüpft. Als Resultat wird ein Haltesignal 105 für das Befehlsregister 2 freigegeben und in dem Befehlsregister 2 gehalten.
  • Wenn ein Verzweigungsbefehl an das Befehlsregister 1 geliefert wird, wird ein Verzweigungsbefehlsignal 107 für das Register 1 an die Befehlsstufen-Steuerungsschaltung 4 übertragen. Die Schaltung 4 gibt dann das zweite Signal 109 an das Befehlsregister 2 zum Halten des Befehls in dem Befehlsregister 2 zum nächsten Zeitpunkt aus. Als Resultat wird der Befehl in dem Befehlsregister 2 gehalten.
  • Wenn der Befehl das Befehlsregister 2 durchläuft, wird ein Befehlausführungskommando ausgegeben.
  • Fig. 2 stellt einen Befehlsstring dar, der so aufgebaut ist, daß ein Verzweigungsbefehl erfolgreich ausgeführt wird und aktuelle Bestimmheitinformationsdaten verlorengehen.
  • Es werde angenommen, daß ein 3-Operanden-Befehl verwendet wird und daß die drei Operanden als x, y und z bezeichnet werden und daß Daten grundsätzlich aus allgemeinen Registern ausgelesen werden, die von den zu berechnenden Operanden y und z angegeben werden, und das Berechnungsresultat in einem allgemeinen Register gespeichert wird, das von dem Operanden x angegeben wird.
  • Gemäß Fig. 2 gibt ein Befehl an, daß Daten von einem Speicher mit der Nummer 100 in ein allgemeines Register mit der Nummer 10 geladen werden. In ähnlicher Weise gibt ein Befehl an, daß dann, wenn der Inhalt eines allgemeinen Registers mit der Nummer 5 gleich 0 oder kleiner ist, die Steue rung zu einem Befehl bei IC = 500 verzweigt (in diesem Fall wird angenommen, daß der Befehl bei IC = 500 einem Befehl entspricht. Ein Befehl gibt an, daß die Inhalte der allgemeinen Register mit den Nummern 8 und 9 miteinander multipliziert werden und das Produkt in dem allgemeinen Register mit der Nummer 10 gespeichert wird. Ein Befehl gibt an, daß der Inhalt des allgemeinen Registers mit der Nummer 10 auf den eines allgemeinen Registers mit der Nummer 15 addiert wird, und die Summe in einem allgemeinen Register mit der Nummer 20 gespeichert wird.
  • Fig. 5 ist ein Zeitdiagramm, welches erhalten wird, wenn der Befehlsstring von Fig. 2 von dem herkömmlichen Gerät in Fig. 4 ausgeführt wird.
  • Zum Zeitpunkt 1 wird der Befehl in den Befehlsregister 1 gesetzt. Zum Zeitpunkt 2 wird deshalb, weil der Befehl ein Befehl zum Speichern der resultierenden Daten in dem allgemeinen Register mit der Nummer 10 ist, "10" in der Ein tragsstelle 1 des Schreibnummern allgemeiner Register haltenden Registers 6 gesetzt und der Befehl zu dem Befehlsregister 2 übertragen. Nach dem Setzen des Befehls in der Eintragsstelle 11 wird "100" in dem Datenunbestimmtheitsinformationen haltendem Register 21 gesetzt und der Befehl nochmals in dem Befehlsregister 1 gesetzt.
  • Zusätzlich wird zum Zeitpunkt 2 deshalb, weil der Befehl in dem Befehlsregister 1 ein Verzweigungsbefehl ist ein Verzweigungsbefehlsignal für das Register 1 an die Befehlsstufen-Steuerungsschaltung 4. Der Befehl wird als Reaktion auf das von der Befehlsstufen-Steuerungsschaltung 4 zum Zeitpunkt 3 ausgegebene Haltesignal 105 für das Befehlsregister 2 in dem Befehlsregister 2 gehalten.
  • Der anschließende Befehl wird als Antwort auf ein von der Befehlsstufen-Steuerungsschaltung 4 ausgegebenes Registerhaltesignal in dem Befehlsregister 1 gehalten. Vom Zeitpunkt 5 bis zum Zeitpunkt 17 treten keine Veränderungen in den entsprechenden Registern auf.
  • Zum Zeitpunkt 18, nachdem die Befehle 03 und Q2 in den Befehlsregistern 1 und 2 gehalten werden, sind, wenn ein Signal (Datenbestimmheitssignal) geliefert wird, um zu bestimmen, daß das Resultat des Befehls in dem allgemeinen Register mit der Nummer 10 gespeichert wird, alle Datenbestimmheitssignale bereits ausgegeben. Demzufolge wird das Haltesignal 105 für das Befehlsregister 2 gelöscht. Gleichzeitig werden die von der Befehlsstufen-Steuerungsschaltung 4 an die Befehlsregister 1 und 2 ausgegebenen Registerhaltesignale gelöscht. Somit wird zum Zeitpunkt 20 der Befehl in dem Be fehlsregister 1 an das Befehlsregister 2 übertragen. Ein Ausführungskommando wird bezogen auf den Befehl in dem Befehlsregister 2 ausgegeben.
  • Da der Befehl ein Befehl zum Speichern der resultierenden Daten in dem allgemeinen Register mit der Nummer 10 ist, wird "10" in der Eintragsstelle 1 gesetzt. Gleichzeitig wird "100" in dem Datenunbestimmtheitsinformationen haltendem Register 21 gesetzt.
  • Zum Zeitpunkt 21 wird, weil der Befehl ein Befehl ist, zum Speichern der resultierenden Daten in dem allgemeinen Register mit der Nummer 20 ist, "20" in der Eintragsstelle 2 des Schreibnummern allgemeiner Register haltenden Registers 6 gesetzt.
  • Zusätzlich werden deshalb, weil der Operand y des Befehis angibt, daß Daten von dem allgemeinen Register mit der Nummer 10 ausgelesen werden, der Wert in dem Schreibnummern allgemeiner Register haltendem Register 6 und die Werte der Operanden y und z in dem Befehlsregister 1 miteinander durch die Vergleichsschaltungen 7-2 und 7-3 verglichen, um eine Übereinstimmung zu detektieren. Dawerte "100" und "000" für die Operanden y und z gesetzt sind und an die UND-Schaltungen 9-1 und 9-2 geliefert werden, werden "100" und "000" in den Datenverwendungsinformationen für vorhergehende Befehle haltenden Registern 10-1 und 10-2 gespeichert. Gleichzeitig wird "1" in der Eintragsstelle 2 des Datenunbestimmtheitsinformationen haltenden Register 21 gesetzt und "110" in dem Register 21 gespeichert.
  • Zu diesem Zeitpunkt wird deshalb, weil das UND-Produkt des Wertes ("110") des Datenunbestimmtheitsinformationen haltenden Registers 21 und die Werte ("100" und "000") der Datenverwendungsinformationen für vorhergehende Befehle haltenden Register 10-1 und 10-2 nicht "0" sind, deren durch die ODER-Schaltung 19 erhaltenes ODER-Produkt zu "1". Demzufolge werden zum Zeitpunkt 22 die Daten in dem Befehisregister 2, d.h., der Befehl als Reaktion auf das Haltesignal 105 für das Befehisregister 2 gehalten.
  • Zum Zeitpunkt 22 wird, da bestimmt ist, daß der Verzweigungsbefehl erfolgreich war, das Rücksetznummernsignal 104 ausgegeben, um die Befehle und auf der Verzweigungsfehlschlagseite zu löschen (d.h., es wird das Rücksetznummernsignal 104 an die Eintragsstellen 1 und 2 ausgegeben, an welchen die Befehle und registriert sind. Demzufolge wird der Befehl aus dem Befehlsregister 2 entfernt.
  • Wenn der Verzweigungserfolg vorliegt, wird der Befehl von der Befehlzuführungsschaltung zum Zeitpunkt 31 zugeführt. Zum Zeitpunkt 32 wird der Befehl ausgeführt.
  • In dem vorstehend beschriebenen herkömmlichen Pipeline- Befehlsteuerungsablauf wird solange, bis ein Erfolg oder Fehlschlag eines Verzweigungs.befehls bestimmt ist, die Steuerungsinformation für einen nachfolgenden Befehl in einer Befehlsteuerungseinheit gespeichert. Aus diesem Grund wird das Resultat eines Befehls (auf der Verzweigungsfehlschlagseite) nach dem Verzweigungsbefehl in demselben allgemeinen Register wie dem gespeichert, das zu Speichern eines dem Verzweigungsbefehl vorausgehenden Befehls verwendet wird. In diesen Falle verwendet dann, wenn ein Befehlsstring so aufgebaut ist, daß ein einem Verzweigungsbefehl folgender Befehl das in dem allgemeinen Register gespeicherte Resultat verwendet, und eine Verzweigungserfolg durch den Verzweigungsbefehl erfolgt, der Befehl nach der erfolgten Verzweigung unvermeidlich das in dem allgemeinen Register gespeicherte Resultat, welches vor dem Verzweigungsbefehl gespeichert wurde. Wenn daher das Resultat des Befehls noch nicht erhalten wurde, muß die Ausführung des nachfolgenden Befehls, welcher das Resultat des vorhergehenden Befehls verwendet, solange ausgesetzt werden, bis das Resultat des Befehls bestimmt ist. Da die Datenbestimmung für alle dem Verzweigungsbefehl vorhergehenden Befehle bei dem Verzweigungsbefehl abgeschlossen ist, wird die Ausführung des Verzweigungsbefehls unvermeidbar verzögert.
  • Es ist eine Aufgabe der vorliegenden Erfindung, ein Informationsverarbeitungsgerät bereitzustellen, in welchem die Ausführung eines Verzweigungsbefehls nicht ausgesetzt werden muß, bis die Datenbestimmung aller dem Verzweigungsbefehl vorausgehenden Daten abgeschlossen ist.
  • Es ist eine weitere Aufgabe der vorliegenden Erfindung, ein Informationsverarbeitungsgerät bereitzustellen, welches einen Befehlsstring mit hoher Geschwindigkeit ausführen kann, der einen Verzweigungsbefehl enthält.
  • Diese Aufgaben werden durch die Merkmale der Ansprüche erfüllt.
  • Fig. 1 ist ein Blockschaltbild, welches eine Befehlssteuerungsschaltung gemäß der vorliegenden Erfindung darstellt;
  • Fig. 2 ist eine Ansicht, welche einen Befehlsstring darstellt, der so aufgebaut ist, daß dann, wenn eine Verzweigung erfolgt, ein Befehl an einem Verzweigungsziel auf eine Datenbestimmung eines einem Verzweigungsbefehl vorhergehenden Befehls wartet;
  • Fig. 3 ist ein Zeitdiagramm, welches einen Fall darstellt, bei welchem der Befehlsstring von Fig. 2 von der in
  • Fig. 1 dargestellten Befehlssteuerungsschaltung ausgeführt wird;
  • Fig. 4 ist ein Blockschaltbild, welches eine herkömmliche Befehlssteuerungsschaltung darstellt; und
  • Fig. 5 ist ein Zeitdiagramm, welches einen Fall darstellt, bei welchem der Befehlsstring von Fig. 2 von der in Fig. 4 dargestellten herkömmlichen Befehlssteuerungsschaltung ausgeführt wird.
  • Fig. 1 stellt eine Befehlssteuerungsschaltung gemäß einer Ausführungsform der vorliegenden Erfindung dar. Fig. 3 ist ein Zeitdiagramm, welches einen Fall darstellt, bei welchem ein in Fig. 2 dargestellter Befehlsstring von der Befehlssteuerungsschaltung dieser in Fig. 1 dargestellten Ausführungsform ausgeführt wird.
  • Gemäß Fig. 1 empfängt ein Befehlsregister 1 Befehle und Operanden von einer Befehlzuführungsschaltung, und führt diese einem Befehlsregister 2 zu. Die Befehlsregister 1 und 2 werden von Steuersignalen von einer Befehlsstufen-Steuerschaltung 4 und einer Datenbestimmungs-Steuerschaltung 5 (die einem mit gestrichelter Linie eingeschlossenen Abschnitt von Fig. 1 entspricht) gesteuert.
  • Ein Schreibnummern allgemeiner Register haltendes Register 6 wird verwendet, wenn ein Schreibbefehl bezogen auf ein allgemeines Register ausgeführt werden soll. Das Register 6 weist n Einträge (drei Einträge in diesem Fall) auf und dient dazu die Nummer eines allgemeinen Registers zu speichern, für welches ein Schreibvorgang ausgeführt wird. Das Register 6 speichert eine solche Nummer als Antwort auf ein Speicherein tragsnummernsignal 101, welches ausgegeben wird, wenn der Wert des Operanden x in dem Befehlsregister 1 zu dem Befehlsregister 2 übertragen wird.
  • Eine Vergleichschaltung 7-1 detektiert eine Übereinstimmung zwischen den Operanden x, welche in dem Schreibnummern allgemeiner Register haltendem Register 6 und dem Befehlsregister 1 gespeichert sind und speichert den Wert des Operanden x in einem eine identische Registeraktualisierungsstapelnummer haltendem Register 8 (welches in dieser Ausführungsform eine 3-Bit-Anordnung aufweist). Vergleichschaltungen 7-2 und 7-3 detektieren Übereinstimmungen zwischen Operanden Y bzw. Operanden z, welche jeweils in dem Schreibnummern allgemeiner Register haltendem Register 6 und dem Befehlsregister 1 gespeichert sind. UND-Schaltungen 9-1 und 9-2 führen dann eine logische UND-Verknüpfung der Werte der Operanden y und z mit einem Wert aus, welcher der durch Invertierung des Wertes in dem die identische Registeraktualisierungsstapelnummer haltendem Register 8 unter Verwendung eines Inverters 20 erhalten wird. Die sich ergebenden Werte werden in den Datenverwendungsinformationen für vorhergehende Befehle haltenden Registern 10-1 und 10-2 gespeichert (wovon jedes in dieser Ausführungsform eine 3-Bit-Anordnung aufweist, wobei die 3 Bits des Registers 10-1 Einträge 1, 2 und 3 auf der y-Operandenseite angeben und die 3 Bits des Registers 10-2 Einträge 1, 2 und 3 auf der x Operandenseite angeben).
  • Ein Selektor 13 wird so betrieben, daß er ein Speichereintragsnummernsignal 101 und einen Wert, der in einem zweiten Datenunbestimmtheitsinformationen haltenden Register 12 wählt und das zweite Datenunbestimmtheitsinformationen haltende Register 12 als Antwort auf ein Verzweigungserfolgssignal 106 wählt. Das Verzweigungserfolgssignal 106 wird ausgegeben, wenn ein Verzweigungsbefehl, welcher die Befehlsregister 1 und 2 durchläuft zu einem Verzweigungserfolg führt.
  • Ein Datenunbestimmtheitsinformationen haltendes Register 11 speichert die Information eines von dem Selektor 13 gewählten Bits und wird so betrieben, daß es ein Eintragsbit, in welchem "1" gesetzt ist, zurücksetzt, wenn eine ODER- Schaltung 16 den von der Vergleichsschaltung 7-1 erhaltenen Wert mit einem Rücksetznummernsignal 104 ODER-verknüpft, welches das ODER-Verknüpfungsprodukt eines Eintragrücksetznummernsignals 102 zum Löschen eines Befehls in einer Befehls stufe nach einem Verzweigungserfolg und einem Rücksetzsignal (Datenbestimmtheits-Eintragsnummernsignal 103) ist, welches einem Datenbestimmheitseintrag entspricht.
  • Das zweite Datenunbestimmtheitsinformationen haltende Register 12 speichert die Information des Speichereintragsnummernsignals 101 und setzt ein Eintragsbit zurück, in welchem das Rücksetznummernsignal 104 gesetzt ist.
  • Anschließend führt eine ODER-Schaltung 19 eine logische ODER-Verknüpfung der Werte der Datenverwendungsinformationen für vorhergehende Befehle haltenden Register 10-1 und 10-2 mit einem Wert durch, der durch Maskierung des Wertes in dem Datenunbestimmtheitsinformationen haltenden Register 12 mit dem Rücksetznummernsignal 104 erhalten wird (was durch einen Inverter 17 und UND-Schaltungen 18-1 und 18-2 ausgeführt wird) . Wenn der resultierende Wert "1" ist, wird ein erstes Haltesignal 108 für das Befehlsregister 2 logisch mit einem zweiten Haltesignal 109 für das Befehlsregister 2 über eine ODER-Schaltung 14 ODER-verknüpft. Als Resultat wird ein Haltesignal 105 für das Befehisregister 2 freigegeben und in dem Befehlsregister 2 gehalten.
  • Wenn ein Befehl das Befehlsregister 2 durchläuft, wird ein Befehlausführungs kommando ausgeführt.
  • In dieser Ausführungsform wird angenommen, daß dann, wenn ein Verzweigungsfehlschlag auftritt, Befehle nach einem Verzweigungsbefehl auf der Verzweigungsfehlschlagseite liegen, und wenn eine Verzweigungserfolg auftritt, von der Befehlzuführungsschaltung zugeführte Befehle wieder auf der Verzweigungserfolgseite liegen.
  • Die vorliegende Erfindung kann effektiv auf ein Gerät mit einer Verzweigungsprädiktionseinrichtung angewendet werden. Eine solche Vorrichtung unterscheidet sich von dem Gerät dieser Ausführungsform nur dadurch, daß Befehle nach einem Verzweigungsbefehl als auf der Verzweigungsprädiktions-Erfolgsseite liegend angenommen werden.
  • Fig. 2 stellt einen Befehlsstring dar, der so aufgebaut ist, daß ein Verzweigungserfolg eines Verzweigungsbefehls erfolgt und eine aktuelle Datenbestimmtheitsinformation durch eine Datenbestimmtheitsinformation ersetzt wird, die dem Verzweigungsbefehl unmittelbar vorhergeht. Der Inhalt jedes Befehls ist derselbe wie der vorstehend beschriebene.
  • Es werde angenommen, daß ein 3-Operanden-Befehl in dieser Ausführungsform verwendet wird und die drei Operanden als x, y und z bezeichnet werden und daß Daten grundsätzlich aus allgemeinen Registern ausgelesen werden, die von den zu berechnenden Operanden y und z angegeben werden, und daß das Berechnungsresultat in einem allgemeinen Register gespeichert wird, das von dem Operanden x angegeben wird.
  • Fig. 3 ist ein Zeitdiagramm, welches erhalten wird, wenn der Befehlsstring von Fig. 2 von dem Gerät dieser in Fig. 1 dargestellten Ausführungsform ausgeführt wird.
  • Zum Zeitpunkt 1 wird der Befehl in dem Befehlsregister 1 gesetzt. Zum Zeitpunkt 2 wird deshalb, weil der Befehl ein Befehl zum Speichern der resultierenden Daten in dem allgemeinen Register mit der Nummer 10 ist, "10" in der Eintragsstelle 1 des Schreibnummern allgemeiner Register haltenden Registers 6 gesetzt, und der Befehl zu dem Befehlsregister 2 übertragen. Nach dem Setzen des Befehls in der Eintragsstelle 1, wird "100" in dem ersten Datenunbestimmt heitsinformationen haltenden Register 11 und in dem zweiten Datenunbestimmtheitsinformationen haltenden Register 12 gesetzt und der Befehl nochmals in dem Befehlsregister 1 gesetzt.
  • Zum Zeitpunkt 3 wird ähnlich wie bei dem Zeitpunkt 2 der Befehl von dem Befehlsregister 1 zu dem Befehlsregister 2 und der Verzweigungsbefehl ausgeführt. Zum Zeitpunkt 4 wird deshalb, weil der Befehl ein Befehl zum Speichern der resultierenden Wertes in dem allgemeinen Register mit der Nummer 10 ist, "10" in der Eintragsstelle 2 des Schreibnummern allgemeiner Register haltenden Registers 6 gesetzt. Gleichzeitig wird "100" in dem Registeraktualisierungsstapelnummern haltenden Register 8 gesetzt, weil die Vergleichsschaltung 7-1 eine Übereinstimmung zwischen dem Wert "10" in der Eintragsstelle 1 des Schreibnummern allgemeiner Register haltenden Register 6 und des Wertes "10" in dem Operanden "x" des Befehlsregisters 1 detektiert. Zusätzlich wird, obwohl "110" in dem ersten Datenunbestimmtheitsinformationen haltenden Register 11 und in dem zweiten Datenunbestimmtheitsinformationen haltenden Register 12 nach dem Setzen des Befehls in der Eintragsstelle gesetzt ist, da die Eintragsstelle 1 durch "100" in der Vergleichsschaltung 7-1 zurückgesetzt wird, "010" in dem in dem ersten Datenunbestimmtheitsinforma tionen haltenden Register 11 gesetzt.
  • Zum Zeitpunkt 5 wird deshalb, weil der Befehl ein Befehl zum Speichern des resultierenden Wertes in einem allgemeinen Register mit der Nummer 20 ist, "20" in der Eintragsstelle 3 des Schreibnummern allgemeiner Register haltenden Registers 6 gesetzt. Zusätzlich werden nach dem Setzen des Befehls in der Eintragsstelle 3 die Werte "011" und "111" in dem ersten Datenunbestimmtheitsinformationen haltenden Register 11 und in dem zweiten Datenunbestimmtheitsinformationen haltenden Register 12 gesetzt.
  • Ferner wird, da der Befehl so aufgebaut ist, daß Daten von dem allgemeinen Register mit der Nummer 10 über den Operanden y ausgelesen werden, dann wenn die Vergleichsschaltung 7-2 eine Übereinstimmung zwischen dem Wert in dem Schreibnummern allgemeiner Register haltenden Register 6 und dem Wert in dem Befehlsregister 1 detektiert, "110" gleichzeitig mit "000" für die Operanden-z-Seite an die UND-Schaltungen 9-1 und 9-2 geliefert.
  • Zu diesem Zeitpunkt wird "100" in dem eine identische Registeraktualisierungsstapelnummer haltendem Register 8 von dem Inverter 20 invertiert, um "011" zu erhalten, und der erhaltene Wert wird mit "110" in der Vergleichsschaltung 7-2 durch die UND-Schaltung 9-1 logisch UND-verknüpft, um "010" zu erhalten. Der resultierende Wert wird dann in dem Datenverwendungsinformationen für vorhergehende Befehle haltenden Register 10-1 gespeichert, während der Wert "000" in der UND- Schaltung 9-2 in dem Datenverwendungsinformationen für vorhergehende Befehle haltenden Register 10-2 gespeichert wird.
  • Da die UND-Produkte des Wertes ("011") in dem ersten Datenunbestimmtheitsinformationen haltenden Register 11 und die Werte ("010" und "000") der Datenverwendungsinformationen für vorhergehende Befehle haltenden Registern 10-1 und 10-2 nicht "0" sind, wird "1" in der ODER-Schaltung 19 gesetzt. Demzufolge wird das Haltesignal 105 für das Befehlsregister 2 über das erste Haltesignal 108 für das Befehlsregister 2 ausgegeben. Zum Zeitpunkt 6 werden die Daten in dem Befehlsregister 2, d.h., der Befehl gehalten.
  • Zum Zeitpunkt 6 wird, da bestimmt ist, daß der Verzweigungsbefehl erfolgreich war, das Rücksetznummernsignal 104 ausgegeben, um die Befehle und auf der Verzweigungsfehlschlagseite zu löschen (d.h., es wird das Rücksetznummernsignal 104 an die Eintragsstellen 1 und 2 ausgegeben, an welchen die Befehle und registriert sind) Demzufolge wird der Befehl aus dem Befehlsregister 2 entfernt.
  • Mit dieser Operation wird "110" in dem ersten Datenunbestimmtheitsinformationen haltenden Register 11 gesetzt. Nach einem Verzweigungserfolg wird jedoch der Wert "100" in dem zweiten Datenunbestimmtheitsinformationen haltenden Register 12 (da dadurch, daß das Rücksetznummernsignal 104 an die Eintragsstellen 2 und 3 ausgegeben wird, "111" durch "100" ersetzt wird) in dem ersten Datenunbestimmtheitsinformationen haltenden Register 11 gespeichert.
  • Zum Zeitpunkt 15 wird der Befehl von der Befehlzuführungsschaltung zugeführt. Zum Zeitpunkt 16 wird deshalb, weil der Befehl ein Befehl zum Speichern des resultierenden Wertes in dem Register mit der Nummer 20 ist, "20" in der Eintragsstelle 2 gesetzt. Gleichzeitig wird deshalb, weil der Operand y das Resultat des vorhergehenden Befehls verwendet, "100" in dem Datenverwendungsinformationen für vorhergehende Befehle haltenden Registern 10&supmin;¹gesetzt, wenn eine Übereinstimmung zwischen dem Wert des Operanden y und dem Wert in der Eintragsstelle 1 des Schreibnummern allgemeiner Register haltenden Registers 6 vorliegt. In diesem Falle wird, da das UND-Produkt zwischen dem Wert ("100") des ersten Datenunbestimmtheitsinformationen haltenden Registers 11 und die Werte ("100" und "000") der Datenverwendungsinformationen für vorhergehende Befehle haltenden Register 10-1 und 10-2, welches durch die UND-Schaltung 18-1 erhalten wird, kein Wert "110" ist, das Haltesignal 105 für das Befehlsregister 2 über die ODER-Schaltungen 19 und 14 auflogisch "1" gesetzt. Demzufolge wird der Befehl in dem Befehlsregister 2 gehalten.
  • Zum Zeitpunkt 18 wird ein Datenbestimmheitssignal für den Befehl ausgegeben und "110" in dem die ersten Datenunbestimmtheitsinformationen haltenden Register 11 gesetzt. Demzufolge wird das Haltesignal für das Befehlsregister 3 gelöscht. Mit dieser Operation ist der Haltevorgang des Befehls beendet.
  • Wenn ein Verzweigungsfehlschlag auftritt, da der dem Verzweigungsbefehl unmittelbar folgende Befehl ausgeführt wird, stellt der aktuelle Wert in dem ersten Datenunbestimmtheitsinformationen haltenden Register 11 den Datenunbestimmtheitsstatus des Befehls dar. Es ist daher offensichtlich, daß der Verzweigungsbefehl unmittelbar ausgeführt wird.
  • Wie vorstehend beschrieben, benutzt gemäß der vorliegenden Erfindung das Informationsverarbeitungsgerät eine Steuerungsinformation, die Befehlen entspricht, welche gleichzeitig ausgeführt werden können, um eine parallele Ausführung von Befehlen zu realisieren. In diesen Gerät kann deshalb, weil das Resultat eines vorhergehenden Befehls nicht in einem allgemeinen Register gespeichert wird, ein anschließender Befehl für die Aktualisierung desselben allgemeinen Registers ausgeführt werden. Das Gerät enthält ein Register zum Halten einer Datenbestimmtheitsinformation unmittelbar vor einem Verzweigungsbefehl, um zu ermöglichen, daß ein Befehl nach dem Verzweigungsbefehl das Resultat eines dem Verzweigungsbefehl vorhergehenden Befehlsverwendet, welches noch nicht bestimmt ist, wenn ein Verzweigungserfolg durch den Verzwei gungsbefehl erreicht wird, und eine Einrichtung für den Ersatz der aktuellen Datenbestimmtheitsinformation durch die vorstehend erwähnte Datenbestimmtheitsinformation, wenn der Verzweigungserfolg vorliegt. Mit dieser Anordnung wird dann, wenn ein Verzweigungserfolg durch einen Verzweigungsbefehl vorliegt, die aktuelle Datenbestimmtheitsinformation durch die vorstehend erwähnte Datenbestimmtheitsinformation ersetzt, so daß die Ausführung eines dem Verzweigungsbefehl folgenden Befehls ausgesetzt werden kann, bis das Resultat eines dem Verzweigungsbefehl vorausgehenden Befehls bestimmt ist. Daher muß nicht der Verzweigungsbefehl ausgesetzt werden, bis die Datenbestimmung aller dem Verzweigungsbefehl vorausgehenden Befehle abgeschlossen ist, und sogar ein Befehlsstring, der einen Verzweigungsbefehl enthält, kann mit hoher Geschwindigkeit ausgeführt werden.

Claims (8)

1. Informationsverarbeitungsgerät, dadurch gekennzeichnet, daß es aufweist:
eine Datensteuerungseinrichtung (5), welche eine Befehlen, die gleichzeitig ausgeführt werden können, entsprechende Steuerungsinformation aufweist, um eine Steuerung auch dann auszuführen, wenn ein Resultat eines vorhergehenden Befehls nicht in einem allgemeinen Register gespeichert ist, so daß ein nachfolgender Befehl ausge führt wird, um dasselbe allgemeine Register zu aktualisieren, wobei die Datensteuerungseinrichtung eine Datenunbestimmtheitsinformation bereitstellt, welche angibt, ob die von dem aktuellen Befehl zu verwendenden Daten verwendbar sind oder nicht;
ein Informationshalteregister (12) zum Halten einer Datenunbestimmtheitsinformation auf der Basis eines Befehls, der einem Verzweigungsbefehl vorausgeht, unmittelbar bevor der Verzweigungsbefehl ausgeführt wird; und
eine Ersetzungseinrichtung (13) zum Ersetzen der von der Datensteuerungseinrichtung bereitgestellten Datenunbestimmtheitsinformation für einen aktuellen Befehl, welcher nicht bei einem Verzweigungserfolg ausgeführt wird, durch die von dem Informationshalteregister (12) gehaltene Datenunbestimmtheitsinformation.
2. Gerät nach Anspruch 1, wobei das Informationshalteregister (12) und die Ersetzungseinrichtung (13) in der Datensteuerungseinrichtung (5) enthalten sind.
3. Gerät nach Anspruch 1 oder 2, welches ferner ein Befehis register (1, 2) aufweist, um sequentiell zugeführte Befehle zu speichern, und eine Befehlsstufen-Steuerungseinrichtung (4) zum Liefern eines Haltesignals an die Befehlsregister (1, 2) bei einer vorbestimmten Stufe, wobei ein Haltestatus des Befehlsregisters (1, 2) auch von der Datensteuerungseinrichtung (5) gesteuert wird.
4. Gerät nach einem der Ansprüche 1 bis 3, welches ferner eine Einrichtung (15) aufweist, um einen Befehl auf einer Verzweigungsfehlschlagseite zu löschen, wenn ein Verzweigungs erfolg vorliegt.
5. Gerät nach Anspruch 4, wobei die Löscheinrichtung (15) eine Einrichtung zum Rücksetzen eines Befehlsregisters (1, 2) in einen Haltezustand aufweist.
6. Gerät nach Anspruch 4, wobei die Löscheinrichtung (15) eine Einrichtung zum Rücksetzen einer Datenbestimmtheitsinformation für einen Befehl auf der Verzweigungsfehlschlagseite, welche in dem Informationshalteregister (12) gehalten wird, aufweist.
7. Gerät nach einem der Ansprüche 1 bis 6, welches ferner ein weiteres Informationshalteregister (11) aufweist, um normalerweise Informationen zu halten, welche Befehlen entsprechen, die gleichzeitig ausgeführt werden können, und zum Aktualisieren/Halten von Datenunbestimmtheitsinformationen, die durch die Ersetzungseinrichtung in einer Verzweigungserfolgsperiode ersetzt werden.
8. Gerät nach einem der Ansprüche 1 bis 7, welches ferner ein Schreibnummern allgemeiner Register haltendes Register (6) zum Schreiben einer allgemeinen Registernummer in jede Eintragsstelle für jeden Befehl für die Verwendung eines allgemeinen Registers aufweist, wobei eine von dem Register (6) gehaltene Registernummer auf der Basis einer Datenunbestimmtheitsinformation gelöscht wird, die der von der Ersetzungseinrichtung (13) ersetzt wird.
DE69128169T 1990-06-19 1991-06-18 Informationsverarbeitungsgerät Expired - Fee Related DE69128169T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2160208A JP2845578B2 (ja) 1990-06-19 1990-06-19 命令制御方式

Publications (2)

Publication Number Publication Date
DE69128169D1 DE69128169D1 (de) 1997-12-18
DE69128169T2 true DE69128169T2 (de) 1998-06-25

Family

ID=15710097

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69128169T Expired - Fee Related DE69128169T2 (de) 1990-06-19 1991-06-18 Informationsverarbeitungsgerät

Country Status (5)

Country Link
US (1) US5644745A (de)
EP (1) EP0463539B1 (de)
JP (1) JP2845578B2 (de)
CA (1) CA2044896C (de)
DE (1) DE69128169T2 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6158870A (en) * 1998-05-18 2000-12-12 Ramirez; John A. Combination musical and lightable baby bottle

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4514804A (en) * 1981-11-25 1985-04-30 Nippon Electric Co., Ltd. Information handling apparatus having a high speed instruction-executing function
AU553416B2 (en) * 1984-02-24 1986-07-17 Fujitsu Limited Pipeline processing
JPH0769818B2 (ja) * 1984-10-31 1995-07-31 株式会社日立製作所 デ−タ処理装置
JPH081601B2 (ja) * 1984-12-07 1996-01-10 株式会社日立製作所 情報処理装置
JPH0754461B2 (ja) * 1985-02-08 1995-06-07 株式会社日立製作所 情報処理装置
JPH0789319B2 (ja) * 1985-04-22 1995-09-27 株式会社日立製作所 デ−タ処理装置における先行制御装置
DE3650578T2 (de) * 1985-06-17 1997-03-06 Nippon Electric Co Informationsverarbeitungssystem mit einer Steuerschaltung zum Abwarten einer Registererneuerung und einem Aufnahmemittel des zu erneuernden Registers
US4755966A (en) * 1985-06-28 1988-07-05 Hewlett-Packard Company Bidirectional branch prediction and optimization
US4974155A (en) * 1988-08-15 1990-11-27 Evans & Sutherland Computer Corp. Variable delay branch system

Also Published As

Publication number Publication date
EP0463539A3 (en) 1994-11-02
JPH0449424A (ja) 1992-02-18
DE69128169D1 (de) 1997-12-18
EP0463539B1 (de) 1997-11-12
CA2044896C (en) 1999-02-23
US5644745A (en) 1997-07-01
EP0463539A2 (de) 1992-01-02
CA2044896A1 (en) 1991-12-20
JP2845578B2 (ja) 1999-01-13

Similar Documents

Publication Publication Date Title
DE68927911T2 (de) Datenverarbeitungssystem
DE2714805C2 (de)
DE69327637T2 (de) Superskalar-Computersystem
DE68927371T2 (de) Verfahren und Vorrichtung zur Verarbeitung von mehreren Zustandscodes wie für einen Parallel-Pipeline-Rechner
DE3650413T2 (de) Verfahren und Vorrichtung zur Annulierung eines Befehls.
DE69320991T2 (de) System und verfahren zur änderung der namen von registern
DE69227664T2 (de) Hardwarekonfiguriertes Betriebssystemkern für einen Multitaskprozessor
DE69636861T2 (de) Mikroprozessor mit Lade-/Speicheroperation zu/von mehreren Registern
DE3751503T2 (de) Datenprozessor in Pipelinestruktur mit der Fähigkeit mehrere Befehle parallel zu dekodieren und auszuführen.
DE3210816C2 (de)
DE69133302T2 (de) Registerabbildung in einem einzigen Taktzyklus
DE3685913T2 (de) Vektorenverarbeitung.
DE3851488T2 (de) Registerverwaltungssystem mit Ausführung von Befehlen in Unordnung in einem Computerprozessor.
DE2753062C2 (de) Einrichtung zur wiederholten Durchführung von Programmschleifen
DE69305366T2 (de) System und verfahren zum kennzeichnen von befehlen zur steuerung der befehlsausführung
DE69623146T2 (de) Verfahren und Vorrichtung zum Koordinieren der Benutzung von physikalischen Registern in einem Mikroprozessor
DE69418146T2 (de) Temporärer Registersatz für einen superpipeline-superskalaren Prozessor
DE69321929T2 (de) Verfahren und System um einen unabhängige Zugriff auf Zwischenspeicherpuffern in einem superskalaren Prozessorsystem zu gewährleisten.
DE69230626T2 (de) Informationsverarbeitungssystem mit der Fähigkeit zum Betreiben von mehreren Vektorpipelines in zwei unterscheidlichen Wirkungsweisen
DE3781794T2 (de) Vorrichtung und verfahren zum versehen eines cachespeichers mit einer schreiboperation mit zwei systemtaktzyklen.
DE2230102A1 (de) Rechenwerk fuer variable wortlaengen
DE19983098B4 (de) Mehrfach-Bitanzeige zur Behandlung von Schreib-nach-Schreib-Fehlern und zur Eliminierung von Bypass-Komparatoren
DE3854142T2 (de) Vektorrechner.
DE69318914T2 (de) Vorrichtung zur Abarbeitung von Befehlen mit verbesserter Abwicklung von Unterbrechungen
DE3485771T2 (de) Leistungsfaehiger paralleler vektorprozessor.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee