DE68927371T2 - Verfahren und Vorrichtung zur Verarbeitung von mehreren Zustandscodes wie für einen Parallel-Pipeline-Rechner - Google Patents

Verfahren und Vorrichtung zur Verarbeitung von mehreren Zustandscodes wie für einen Parallel-Pipeline-Rechner

Info

Publication number
DE68927371T2
DE68927371T2 DE68927371T DE68927371T DE68927371T2 DE 68927371 T2 DE68927371 T2 DE 68927371T2 DE 68927371 T DE68927371 T DE 68927371T DE 68927371 T DE68927371 T DE 68927371T DE 68927371 T2 DE68927371 T2 DE 68927371T2
Authority
DE
Germany
Prior art keywords
state
instruction
state value
type
instructions
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
DE68927371T
Other languages
English (en)
Other versions
DE68927371D1 (de
Inventor
Daniel Arthur Prener
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of DE68927371D1 publication Critical patent/DE68927371D1/de
Publication of DE68927371T2 publication Critical patent/DE68927371T2/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/30094Condition code generation, e.g. Carry, Zero flag
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

  • Verfahren und Vorrichtung zur Verarbeitung von mehreren Zustandscodes wie für einen Parallel-Pipeline-Rechner
  • Die vorliegende Erfindung bezieht sich allgemein auf das Design von Parallel-Pipeline-Datenverarbeitungseinheiten und insbesondere auf eine Vorrichtung und ein Verfahren zur Verarbeitung von bedingten Beziehungen zwischen dadurch verarbeiteten Datenelementen
  • Im Datenprozessor wird ein Zustandsregister verwendet, um aufzuzeichnen, wann bestimmte bedingte Beziehungen in den verarbeiteten Daten vorhanden sind, z.B. daß der Wert eines in einem ersten Register gespeicherten Datenelements größer als der Wert eines in einem zweiten Register gespeicherten Datenelements ist. Die vom Prozessor ausgeführten Programme verwenden gewöhnlich bedingte Verzweigungsbefehle, die den Steuerfluß des Programms auf der Grundlage der im Zustandsregister gespeicherten bedingten Beziehungen ändern.
  • Bei einem bedingten Verzweigungsbefehl hat der Prozessor den Auftrag, eine erste Befehlsfolge auszuführen, wenn ein bestimmter Zustand von den Daten erfüllt wird, und eine zweite Befehlsfolge auszuführen, wenn der Zustand nicht erfüllt wird. Wenn in zwei Registern A und B ein bedingter Verzweigungsbefehl beispielsweise den Prozessor veranlaßt, eine Befehlsfolge auszuführen, wenn der in A gespeicherte Wert größer als der in B ist, und ansonsten eine andere Befehlsfolge ausgeführt wird.
  • Bei den meisten Hochleistungsprozessoren prüft eine Rechenund Steuereinheit (ALU) das Vorhandensein eines Zustands, wobei das Testergebnis in einem Zustandsregister gespeichert wird. Eine Programmsequentierungseinheit verwendet das Ergebnis im Zustandsregister, um den Befehlssteuerfluß durch den Prozessor laut Festlegung des ausgeführten Programms zu ändern. Jeder Prozessor in einem Datenverarbeitungssystem verfügt gewöhnlich nur über ein Zustandsregister, das nicht mit einem anderen Prozessor geteilt wird.
  • Dieses Zustandsregister kann eine schwere Behinderung in einem Computersystem sein, das normalerweise die Ausführung zahlreicher Befehle überlappen kann. Die Behinderung tritt in einem Pipeline-Prozessor auf, wenn aufeinanderfolgende Befehle konkurrierend auf das Zustandsregister zugreifen müssen. Betrachten wir folgenden Befehlssatz:
  • COMPARE (A, B)
  • BRANCH IF EQUAL
  • COMPARE (C, D)
  • BRANCH IF GREATER
  • Der erste Befehl vergleicht die Inhalte der Register A und B und setzt einzelne Bits im Zustandsregister, wenn A größer, gleich bzw. kleiner als B ist. Der zweite Befehl ändert den Steuerfluß des Programms (Z.B. verzweigt zu einem neuen Befehl), wenn das Ergebnis des Vergleichs ergibt, daß die Werte in den Registern A und B gleich sind. Der dritte Befehl vergleicht die Inhalte der Register C und D und speichert die Ergebnisse des Vergleichs im selben Zustandsregister. Der vierte Befehl schließlich verzweigt zu einem neuen Befehl, wenn das Größer-als-Bit im Zustandsregister gesetzt wird.
  • Bei einem herkömmlichen Pipeline-Prozessor, der nur ein Zustandsregister verwendet, ist es nicht wünschenswert, die Ausführung des zweiten und dritten Befehls zu überlappen. Wenn dies trotzdem geschehen würde, könnte der dritte Befehl den Wert im Zustandsregister ändern, bevor der zweite Befehl seine Verzweigungsoperation auf der Grundlage des vom ersten Befehl festgelegten Zustandswerts ausgeführt hat.
  • Bei zahlreichen herkömmlichen Prozessordesigns werden getrennte Verarbeitungselemente für Festpunktoperationen (z.B. ganze Zahlen) und Gleitkommaoperationen (z.B. reelle Zahlen) verwendet. Wenn diese Prozessoren ein gemeinsames Zustandsregister benutzen, sollte der Prozessor günstigenfalls über einen Mechanismus zur vorübergehenden Sperrung eines der Prozessoren verfügen, wenn dieser versucht, gleichzeitig mit anderen Prozessoren auf das Zustandsregister zuzugreifen. Wenn jeder dieser Prozessoren dagegen ein dediziertes Zustandsregister hat, kann es erforderlich sein, beide Prozessoren sorgfältig zu synchronisieren, wenn eine bedingte Verzweigungsoperation auf Zuständen in beiden Prozessoren beruht.
  • Die US-Patentschrift Nr. 4,136,383 bezieht sich auf ein Datenverarbeitungssystem, bei dem eine Reihe von ALUs in einer parallelen Konfiguration zur gleichzeitigen Datenverarbeitung verwendet werden. Jede ALU verfügt über Schaltkreise, die Zustände prüfen, und ein Register, in dem die Testergebnisse gespeichert sind. Die Testergebnisse jeder ALU werden zu einem gemeinsamen Steuerschaltkreis geleitet, der den Befehlsfluß für alle ALUS bestimmt.
  • Die US-Patentschrift Nr. 4,748,585 bezieht sich auf einen Prozessor mit zahlreichen Bit-Slice-Subprozessoren. Sämtliche Subprozessoren arbeiten in Sperrschritt und jedem Subprozessor ist ein separater Operandensatz, ein separater Operationscode und eine separate Zustandscodemaske zugeordnet. Die Bit-Slice- Subprozessoren können daher in Gruppen konfiguriert werden, wo jede Gruppe eine andere Befehlsfolge ausführt. Die bedingte Verzweigung für alle Prozessoren wird von einer Kombination von Zustandswerten gesteuert, die von allen Prozessoren erzeugt werden.
  • Zwei Artikel von T.K.M. Agerwala im IBM Technical Disclosure Bulletin Vol 25, Nr. 1, Juni 1982, SS. 134-137, bezieht sich auf einen Computer mit vermindertem Befehlssatz (RISC), der über getrennte Festpunkt- und Gleitkommaverarbeitungselemente verfügt. Beide Verarbeitungselemente werden von einem gemeinsamen Controller sequentiert. Jedes Verarbeitungselement hat sein eigenes internes Zustandsregister. Jeder Prozessor trifft auf der Grundlage der Werte in diesen Registern Vorabverzweigungsentscheidungen. Diese Vorabentscheidungen können von einer zentralen Verzweigungsverarbeitungseinheit zusammengefaßt werden, um die endgültige Verzweigungsentscheidung zu erzeugen.
  • Der Artikel "Multiple gueued condition codes" im IBM Technical Disclosure Bulletin, Vol 31, Nr. 2, Juli 1988, New York, US, Seiten 294-296 beschreibt eine Technik, bei der die Ergebnisse zahlreicher Rechen-, Logik- oder Vergleichsoperationen durch zahlreiche, gemeinsam benutzte Zustandscodes gespeichert werden, um mehr Möglichkeiten für Parallelismus zu schaffen.
  • Der Artikel "Performance Enhancement of SISD Processor" von W.G. Rosocha und E.S. Lee in den Konferenzpapieren des 6th Annual Symposium on Computer Architecture, April 1979, IEEE Public, Long Beach, CA, US, Seiten 216-231 schlägt organisationsstrukturen vor, die die Befehlsausführung beschleunigen können, indem die Auswirkungen von bedingten Verzweigungen verringert werden. Dazu gehören ein Befehlsvorabruf, Verzweigungsauflösung und Befehlsentnahme. Die oben erwähnte herkömmliche Technik geht nicht auf eine Einrichtung zur Verbindung zahlreicher Zustandswerte ein, um einen weiteren Zustandswert zu erzeugen.
  • Gegenstand der vorliegenden Erfindung ist, eine Vorrichtung zum Überlappen von Befehlen vorzustellen, die auf Zustandswerte in einem Pipeline-Computersystem oder in einem parallelen Computersystem zugreifen.
  • Ein weiterer Gegenstand der vorliegenden Erfindung ist, ein Verfahren zur schnellen Verbindung der von zahlreichen Befehlen in einem Computersystem erzeugten Zustandswerte vorzustellen, um einen weiteren Zustandswert zu erzeugen, der zur Steuerung der vom Computersystem ausgeführten Befehlsfolge verwendet wird.
  • Diese Gegenstände werden durch ein Verfahren nach Anspruch 1 und eine Vorrichtung nach Anspruch 4 umgesetzt. Weitere günstige Ausführungsbeispiele sind in den Unteransprüchen aufgeführt.
  • Die vorliegende Erfindung ist in einem Computersystem ausgeführt, das über ein Mittel zum Speichern zahlreicher Zustandswerte verfügt. Jeder Befehl, der einen Zustandswert lesen oder setzen kann, ist einem der Zustandswerte einzeln zugeordnet, so daß er diesen Wert von anderen Werten ausgeschlossen setzt oder liest.
  • Gemäß einem weiteren Ausführungsbeispiel der Erfindung verfügt das Computersystem über eine Einrichtung zum Verbinden zahlreicher Zustandswerte, um einen weiteren Zustandswert zu erzeugen.
  • In einem weiteren Ausführungsbeispiel der Erfindung verfügt das Computersystem über zahlreiche Verarbeitungsschritte, die jeweils zum Setzen und Lesen der Zustandswerte gekoppelt sind. Das Computersystem umfaßt eine gemeinsame Befehlssequentiereinheit für alle Verarbeitungsstufen und eine Einrichtung zur Steuerung der von jedem Prozessor als Reaktion auf einen der Zustandswerte ausgeführten Befehlsfolge.
  • In einem weiteren Ausführungsbeispiel der Erfindung verfügt das Computersystem über einen Pipeline-Prozessor und Steuerschaltkreise, die die Ausführung von Zustandsbewertungsbefehlen und Verzweigungszustandsbefehlen überlappen.
  • Fig. 1 ist ein Blockdiagramm eines Parallel-Pipeline-Computersystems mit einem Ausführungsbeispiel der Erfindung.
  • Fig. 2 ist ein Blockdiagramm einer Verzweigungseinheitschaltung, die sich für das in Fig. 1 gezeigte Computersystem eignet.
  • Fig. 3 ist ein Blockdiagramm einer Zustandseinheitschaltung, die sich für die in Fig. 2 gezeigte Verzweigungseinheitschaltung eignet.
  • Fig. 4 ist ein Blockdiagramm eines Festpunktprozessors, der sich für das in Fig. 1 gezeigte Computersystem eignet.
  • Fig. 1 ist ein Blockdiagramm eines Datenverarbeitungssystems, das ein Ausführungsbeispiel der vorliegenden Erfindung beinhaltet. Das System ist ein RISC-Computer, der die separaten Gleitkomma- und Festpunktprozessoren 16 und 18 enthält. Beide Prozessoren werden von einer Verzweigungseinheit 14 gesteuert. Der Gleitkommaprozessor arbeitet mit Daten in einer Gleitkommaregisterdatei 22 und einer allgemeinen Registerdatei 24. Der Festpunktprozessor 18 arbeitet mit Daten in einer allgemeinen Registerdatei 24. Das in Fig. 1 abgebildete RISC-System verfügt des weiteren über einen Hauptspeicherbereich 10, einen Daten-Cachespeicher 20 und einen Befehls-Cachespeicher 12.
  • Das System arbeitet allgemein wie folgt beschrieben. Die Verzweigungseinheit 14 ruft über den Befehls-Cache 12 Befehle aus dem Hauptspeicher 10 ab. Die Verzweigungseinheit teilt diese Befehle anschließend zwischen dem Gleitkommaprozessor 16 und dem Festpunktprozessor 18 auf. Mit Ausnahme von Abruf- und Speicherbefehlen arbeiten die Prozessoren 16 und 18 nur mit Daten in der Gleitkommaregisterdatei 22 und der allgemeinen Registerdatei 24. Bei Abruf- und Speicherbefehlen übertragen die Prozessoren 16 und 18 über den Daten-Cache 20 Daten zwischen dem Speicher 10 und den entsprechenden Registerdateien 22 und 24.
  • Wie noch an späterer Stelle eingehend beschrieben wird, verfügt die in diesem Ausführungsbeispiel der Erfindung verwendete Verzweigungseinheit 14 über ein Zustandsregister mit acht Feldern. Ein Software-Compiler, der einen ausführbaren Code für den in Fig. 1 abgebildeten Prozessor erzeugt, kann zum Beispiel einem bestimmten Feld im Zustandsregister einen bestimmten Vergleichsbefehl und seinen entsprechenden Testbefehl zuordnen. Ein nachfolgendes Vergleichs- und Testbefehlspaar kann einem anderen Feld zugeordnet werden, so daß der Vergleichsbefehl des zweiten Paares zur selben Zeit wie der Testbefehl des ersten Paares ausgeführt werden kann. Die Felder im Zustandsregister können einem Befehl auch je nach ausführendem Prozessor zugeordnet werden, d.h. je nachdem, ob der Befehl vom Gleitkommaprozessor 16 oder vom Festpunktprozessor 18 ausgeführt wird.
  • Die Steuerfunktion für das in Fig. 1 gezeigte Verarbeitungssystem wird von der Verzweigungseinheit 14 bereitgestellt. Fig. 2 ist ein Blockdiagramm einer als Verzweigungseinheit 14 geeigneten Schaltung. In Fig. 2 werden Befehle aus dem Cache 12 zu einem Befehlsregister 212 gesendet. Diese Befehle werden von einem Befehlsdecoder 214 decodiert, der seinerseits Befehle für den Gleitkommaprozessor (FLP) 16, den Festpunktprozessor (FXP) 18, eine Zustandseinheit 218 und einen Adreßgenerator 216 erzeugt. Die Verzweigungseinheit 14 hat ferner direkten Zugriff auf die allgemeinen Register 24, um Kopien eines Zustandsregisters, wie einem unten im Zusammenhang mit Fig. 3 beschriebenen Register 312, zu speichern und wiederherzustellen. Diese Verbindung ermöglicht es dem Prozessor, den Status des Zustandsregisters über beispielsweise einen Aufruf auf einer von einem Interrupt-Ereignis erzeugten Subroutine zu speichern.
  • Der Cache 12 enthält mehrere Befehle, die dem zum Befehlsregister 212 gesendeten Befehl sequentiell folgen. Wenn ein Befehl vom Befehlsdecoder 214 verarbeitet wird, wird der nächste folgende Befehl zum Befehlsregister 212 gesendet. Wenn keine Konkurrenz bei der Nutzung der Hardware-Betriebsmittel zwischen beiden auftritt, kann der Decoder 214 zwei aufeinanderfolgende Befehle in einem Befehlszyklus decodieren.
  • Der Befehlsdecoder 214, der von herkömmlichem Design ist, kann von einem vorprogrammierten Nur-Lese-Speicher (nicht abgebildet) implementiert werden. Der Befehlsdecoder 214 stellt dem Gleitkommaprozessor 16 Gleitkommabefehle bereit, dem Festpunktprozessor 18 Festpunktbefehle, der Zustandseinheit 218 und dem Adreßgenerator 216 Verzweigungsbefehle und den Gleitkommaregistern 22 und den allgemeinen Registern 24 Lade- und Speicherbefehle. Die Befehlsdecodierung ist mehr als das einfache Weiterleiten von Festpunktbefehlen zum Festpunktprozessor und von Gleitkommabefehlen zum Gleitkommaprozessor. Der Befehlsdecoder kann zum Beispiel den Adreßberechnungsteil eines Gleitkomma-Datenladebefehls zur Ausführung in einem Festpunktprozessor herausfiltern und das Ergebnis dann zum Gleitkommaprozessor 16 weiterleiten, der die Daten vom Daten- Cache 20 in die Gleitkommaregisterdatei 22 lädt.
  • Der Adreßgenerator 216 herkömmlichen Designs stellt dem Befehls-Cache 12 Adreßwerte bereit, um den Cache zu veranlassen, dem Befehlsregister 212 Befehle zu liefern. Der Generator 216 verfügt über Schaltungen (nicht abgebildet), um die Adresse des aktuellen Befehls während der sequentiellen Befehlsausführung zu inkrementieren. Der Adreßgenerator verfügt des weiteren über Schaltungen wie ein Multiplexer (nicht abgebildet), der entweder die inkrementierte aktuelle Befehlsadresse oder einen Verzweigungsbefehladreßwert auswählt, der z.B. von der allgemeinen Registerdatei 24 auf der Grundlage eines von der Zustandseinheit 218 gelieferten Zustandswert bereitgestellt wird. Die Verzweigungsadreßwerte können auch vom Befehlsdecoder 214 anhand des aktuellen Befehls bereitgestellt werden.
  • Der von der Zustandseinheit 218 bereitgestellte Zustandswert kann zum Beispiel drei Bits enthalten, d.h. jeweils ein Bit für ein Vergleichsergebnis Größer als, Kleiner als und Gleich. Der Verzweigungsbefehl enthält normalerweise eine Maske, die im Adreßgenerator 216 mit dem verwendeten Zustandswert einer logischen UND-Operation unterzogen wird. Die sich daraus ergebenden, einzelnen Bits werden anschließend von internen Schaltungen des Adreßgenerators 216 einer logischen ODER- Operation unterzogen. Das Ausgabesignal dieser Schaltungen bedingt den Multiplexer, um dem Befehls-Cache 12 entweder den nächsten sequentiellen Befehlsadreßwert oder den Verzweigungsadreßwert bereitzustellen. Diese Schaltungen ermöglichen, daß Verzweigungsbedingungen wie A ≥ B oder A ≠ B implementiert werden.
  • Wie oben dargestellt, stellt die Zustandseinheit 218 dem Adreßgenerator 216 einen Zustandswert zur Verfügung. Fig. 3 ist ein Blockdiagramm mit Schaltungen, die sich als Zustandseinheit 218 eignen. Die in Fig. 3 abgebildete Zustandseinheitschaltung umfaßt ein Zustandsregister 312, einen Controller 310, der Befehle implementiert, die sich am Inhalt des Zustandsregisters 312 orientieren, zwei Feldauswahldemultiplexer 314 und 316, einen Feldauswahlmultiplexer 318 und einen Verriegelungsdetektor 320.
  • Das Register 312 verfügt über acht Zustandsfelder CF0 bis CF7. Diese Felder stellen acht getrennte Zustandsregister dar, die jeweils das Ergebnis eines Vergleichsbefehls empfangen und von einem bedingten Verzweigungsbefehl geprüft werden können. Die Feldauswahldemultiplexer 314 und 316 wählen jeweils ein Feld des Registers, um einen Zustandswert vom Gleitkommaprozessor 16 bzw. Festpunktprozessor 18 zu empfangen. Der Feldauswahlmultiplexer 318 wählt eines der acht Felder des Registers 312, um dem Adreßgenerator 216 einen Zustandswert bereitzustellen. Die von den Demultiplexern 314 und 316 ausgewählten Felder werden von den Befehlen bestimmt, die vom Gleitkomma- bzw. Festpunktprozessor ausgeführt werden. Das vom Multiplexer 318 ausgewählte Feld wird vom Befehlsdecoder 214 bestimmt.
  • Der Controller 310 ermöglicht es dein Verarbeitungssystem, verschiedene Felder des Zustandsregisters 312 mittels des Befehlsdecoders zu verarbeiten und den gesamten Inhalt der Register 312 zu speichern und abzurufen. Der Controller 310 kann zum Beispiel herkömmliche Logikschaltungen (nicht abgebildet) enthalten, um das logische UND oder logische ODER mehrerer Zustandsfelder und Schaltungen (nicht abgebildet) zu bilden, so daß die logische Kombination in einem der Zustandsfelder gespeichert wird. Diese Schaltungen erleichtern die Bewertung eines komplexen Zustands wie A < B UND C > D.
  • Wenn mehr als eine der Einrichtungen Controller 310, Gleitkommaprozessor 16, Festpunktprozessor 18 und Befehlsdecoder 214 dasselbe Feld des Registers 312 während eines Befehlszyklusses auswählen, können die als Reaktion auf den Zustandswert ausgeführten Berechnungen falsch sein. Fehler können zum Beispiel auftreten, wenn ein Zustandswert gleichzeitig von einem Vergleichsbefehl eines der Prozessoren 16 und 18 gesetzt und von einem Verzweigungsbefehl des Adreßgenerators 216 gelesen wird. In diesem Fall kann der Zustandswert vor, während oder nachdem der Verzweigungsbefehl seinen Wert geprüft hat, gesetzt werden.
  • Um diesen Fehler zu vermeiden, verfügt die in Fig. 3 abgebildete Zustandseinheit über eine Verriegelungsschaltung 320. Diese Schaltung erlaubt es nur einer Einrichtung, d.h. dem Controller 310, dem Feldauswahlinultiplexer 318 und den Feldauswahldemultiplexern 314 und 316, auf ein Feld des Registers während eines Befehiszyklusses zuzugreifen. Wenn eine zweite Einrichtung auf ein Feld zuzugreifen versucht, auf das schon eine erste Einrichtung zugreift, signalisiert die Verriegelungsschaltung 320 dem Befehlsdecoder 214, den Befehl zu sperren, der den Konflikt verursacht. Anders ausgedrückt, heißt dies: Wenn die Verriegelungsschaltung 320 einen möglichen konkurrierenden Zugriff auf ein Feld des Registers 312 feststellt, zwingt sie den Befehlsdecoder, das System als seriellen Prozessor und nicht als Pipeline-Prozessor arbeiten zu lassen.
  • Der Gleitkommaprozessor 16 und der Festpunktprozessor 18 bewerten Vergleichsbefehle im Prinzip auf dieselbe Art und Weise. Aus diesem Grund wird nachfolgend nur der Festpunktprozessor 18 beschrieben. Fig. 4 ist ein Blockdiagramm einer Schaltung, die als Festpunktprozessor 18 verwendet werden kann. Aus Gründen der Einfachheit ist die Schaltung für den Zugriff auf Speicherdaten über den Daten-Cache 20 nicht in Fig. 4 dargestellt. In Fig. 4 empfängt eine herkömmliche Rechen- und Logikeinheit (ALU) 414 die Eingabeoperanden A und B von den entsprechenden Registern 410 und 412 und liefert dem Register 416 ein Ausgabeergebnis C. Die von der ALU 414 durchgeführte Funktion und die Adressen in der Registerdatei 24 für das Ergebnis C und die Operanden A und B kommen alle von einem Befehlswort in einem Befehlsregister 418. Dieses Befehlswort wird wie oben beschrieben vom Befehlsdecoder 214 bereitgestellt.
  • Ein Befehlswort enthält vier Felder. Das erste Feld ICD enthält einen Befehlscode. Ein Teil dieses Feld wird der ALU 414 als Steuerwert übermittelt. Dieser Steuerwert legt die von der ALU durchgeführte Operation fest, z.B. A + B, A - B oder A UND B. Das zweite und dritte Feld, AR und BR, legen einzelne Register in der allgemeinen Registerdatei 24 fest, in der die entsprechenden Operanden A und B gespeichert sind. Das vierte Feld, CR/FID, identifiziert das allgemeine Register, das zum Empfang des von der ALU 414 erzeugten Ergebnisses vorgesehen ist, oder es stellt im Fall von Vergleichsbefehlen fest, welches Feld des Zustandsregisters 312 das Ergebnis des Vergleichs empfangen soll.
  • Der Festpunktprozessor bewertet einen Vergleichsbefehl, beispielsweise COMPARE A, B, wie folgt. Die Operanden A und B werden in die entsprechenden Register 410 und 412 geladen und ein Steuerwert, der eine Subtraktion anzeigt, wird der ALU 414 übermittelt. Als Reaktion auf diesen Steuerwert sendet die ALU 414 dem Register 416 einen Wert, der A - B darstellt. Dieser Wert wiederum kommt zur Zustandsbewertungsschaltung 424. Die Schaltung 424 kann das Kleiner-als-Bit des Zustandswerts zum Beispiel setzen, wenn das Ergebnis C negativ ist, oder das Gleich-Bit setzen, wenn C null ist, oder das Größer-als-Bit setzen, wenn C nicht null und positiv ist. Der von der Schaltung 424 bereitgestellte Zustandswert wird mit einem Zustandsfeldbezeichner verknüpft, der vom vierten Feld des Befehlsregisters 418 über einen Multiplexer 420 geliefert wird, und der verbundene Wert wird zum Feldauswahlmultiplexer 316 der Verzweigungseinheit 14 gesendet.
  • Der Multiplexer 420 ist ebenfalls gekoppelt, um einen Standardfeldwert DF von einer digitalen Wertquelle 422 wie dem Zustandsfeldbezeichner bereitzustellen. Dieser Wert wird bereitgestellt, wenn ein Befehl wie ADD AND COMPARE bewertet wird. Befehle dieser Art erzeugen sowohl ein Ergebnis, das im allgemeinen Register gespeichert wird, als auch einen Zustandswert, der anzeigt, ob das Ergebnis kleiner als, größer als oder gleich null ist. Für diese Befehle gibt das Feld CR/FID das allgemeine Register an, das zum Speichern des Ergebnisses der ADD-Operation vorgesehen ist. Der Zustandsfeldbezeichner DF ist ein Standardfeldbezeichner für den Prozessor 18. Er ist für alle Befehle, die kein Zustandsfeld anzeigen, derselbe. Um die Möglichkeiten von Konflikten bei der Verwendung eines Zustandsfelds zu verringern, sollte sich der Standardfeldwert vorzugsweise von einem Feldwert unterscheiden, der durch den Software-Compiler einem Befehl zugeordnet ist. Der Gleitkommaprozessor 16 verfügt über Schaltungen, die im wesentlichen identisch mit der digitalen Wertquelle 422 und dem Multiplexer 420 sind. Der vom Gleitkommaprozessor 16 bereitgestellte Standardfeldbezeichner ist vorzugsweise anders als der von der Quelle 422 gelieferte Bezeichner.
  • Das folgende Segment eines Computerprogramms soll den Betrieb des in den Figuren 1-4 gezeigten Verarbeitungssystems veranschaulichen. In diesem Beispiel wird das Befehlscodefeld durch ein mnemonisches Zeichen dargestellt, auf das bei Bedarf das zweite, dritte und vierte Feld des Befehls durch Kommas getrennt folgen. Das Beispiel geht davon aus, daß ein allgemeines Register A in der Registerdatei 24 einen Wert -1 enthält, daß die beiden Gleitkommaregister C und D in der Registerdatei 22 die Werte 1,5 und 2,0 enthalten und daß die beiden allgemeinen Register E und F Verzweigungsadreßwerte enthalten.
  • COMPARE C,D,CF0
  • BRANCH EQUAL E,CF0
  • ADD AND COMPARE A,1,B
  • BRANCH EQUAL F,CF1
  • Bei der Ausführung dieses Programmsegments sendet der Befehlsdecoder 214 den ersten Befehl während eines ersten Befehlszyklusses zur Gleitkommaeinheit 16. Als Reaktion auf diesen Befehl vergleicht die Einheit 16 die beiden Gleitkommawerte in den Registern C und D und speichert den Vergleichswert im Feld CF0 des Zustandsregisters 312. In einem zweiten Befehlszyklus sendet der Befehlsdecoder den zweiten Befehl zum Adreßgenerator 216 und zur Zustandseinheit 218. Als Reaktion auf diesen Befehl stellt die Zustandseinheit 218 dem Adreßgenerator 216 den im Feld CF0 gespeicherten Zustandswert bereit, und der Adreßgenerator 216 greift auf den Verzweigungsadreßwert im allgemeinen Register E zu. Da C und D nicht gleich sind, wird die Verzweigung nicht genommen und der Adreßgenerator 216 sendet die nächste sequentielle Adresse zum Befehls-Cache 12.
  • In Erwartung, daß die Verzweigung im zweiten Befehl nicht genommen wird, sendet der Befehlsdecoder 214 den dritten Befehl zum Festpunktprozessor 18 und zwar im selben Zyklus, in dem er den zweiten Befehl zum Adreßgenerator 216 und zur Zustandseinheit 218 sendet. Als Reaktion auf diesen dritten Befehl addiert der Festpunktprozessor 18 ein Literal 1 (vom zweiten Feld des Befehls) zum Wert -1 im Register A und speichert das Ergebnis im Register B. Der Compiler weiß, daß das Standardzustandsfeld für den Festpunktprözessor 18 in diesem Beispiel CF1 ist. Der vom dritten Befehl, der das Ergebnis der Addieroperation mit 0 vergleicht, erzeugte Zustandswert wird im Feld CF1 des Zustandsregisters gespeichert.
  • Im dritten Befehlszyklus wird der vierte Befehl zum Adreßgenerator 216 und zur Zustandseinheit 218 gesendet. Als Reaktion auf diesen Befehl stellt die Zustandseinheit 218 der Adreßeinheit den Zustandswert im Feld CF1 bereit, und die Adreßeinheit greift auf den Verzweigungsadreßwert im Register F zu. Da das Gleich-Bit des Zustandswerts in diesem Fall gesetzt ist, wird die Verzweigung genommen, und der Adreßgenerator stellt dein Befehls-Cache 12 den Verzweigungsadreßwert vom allgemeinen Register F bereit.

Claims (6)

1. Ein Verfahren zur Benutzung von Zustandswerten, die das Vorhandensein einer festgelegten Beziehung unter Datenelementen anzeigen, auf die ein Computersystem zugreift, das die Datenelemente über eine Folge von Befehlen bearbeitet, die aus Befehlen eines ersten Typs besteht, die die Zustandswerte erzeugen, sowie entsprechenden Befehlen eines zweiten Typs, die die erzeugten Zustandswerte testen, wobei das Verfahren folgende Schritte beinhaltet:
A. die Zuordnung zahlreicher Zustandswertfelder im Computersystem;
B. die Zuweisung jedes Befehls des ersten Typs, um seinen erzeugten Zustandswert in einem der zahlreichen Zustandswertfelder zu speichern;
C. die Zuweisung jedes entsprechenden Befehls des zweiten Typs, um seinen zugeordneten Zustandswert in einem der zahlreichen Zustandswertfelder zu testen;
D. das Lesen eines ersten und eines zweiten Zustandswerts aus entsprechenden ersten und zweiten Zustandswertfeldern;
E. das Verbinden der ersten und zweiten Zustandswerte, um einen dritten Zustandswert zu erzeugen; und
F. das Speichern des dritten Zustandswerts in einem anderen der zahlreichen Zustandswertfelder.
2. Das Verfahren nach Anspruch 1, bei dem das Computersystem erste und zweite Verarbeitungsstufen umfaßt, die jeweils Befehle des ersten und zweiten Typs ausführen können, und bei dein:
Schritt B den Schritt der Zuweisung eines ausgewählten Befehis des ersten Typs umfaßt, der in der ersten Verarbeitungsstufe ausgeführt wird, um einen Zustandswert in einem ersten Zustandswertfeld zu setzen, wobei andere Zustandswertfelder im wesentlichen ausgeschlossen sind; und
Schritt C den Schritt der Bedingung eines Befehls des zweiten Typs umfaßt, der dem ausgewählten Befehl des ersten Typs entspricht, um den Zustandswert im ersten Zustandswertfeld zu testen, wobei andere Zustandswertfelder im wesentlichen ausgeschlossen sind.
3. Das Verfahren nach Anspruch 1, bei dem das Computersystem einen Pipeline-Prozessor umfaßt, der eine Folge von Befehlen ausführt, die einen Befehl des zweiten Typs beinhaltet, dem unmittelbar ein Befehl des ersten Typs folgt, und bei dem:
Schritt B aus folgenden Schritten besteht:
der Bedingung des Befehls des zweiten Typs, um einen Zustandswert in einem ersten Zustandswertfeld zu testen; und
der Bedingung des Befehls des ersten Typs, um einen Zustandswert in einem zweiten Zustandswertfeld zu setzen; und
das Verfahren weiterhin den Schritt der Überlappung der Ausführung der Befehle des ersten und zweiten Typs um-
4. Ein Computersystem zur Verarbeitung von Datenelementen, das ein Mittel zur Verarbeitung einer Folge von Befehlen umfaßt, die aus Befehlen eines ersten Typs besteht, welche Zustandswerte auf der Grundlage von Werten ausgewählter Datenelemente erzeugen, sowie ein Mittel zur Verarbeitung von Befehlen eines zweiten Typs, die die Zustandswerte testen, und eine Zustandsverarbeitungsvorrichtung, die folgendes umfaßt:
ein Zustandsspeichermittel zum getrennten Speichern der von zahlreichen Befehlen des ersten Typs erzeugten Zustandswerte in zahlreichen einzelnen Zustandswertfeldern;
ein Zustandstestmittel zum getrennten Testen der Zustandswerte in den zahlreichen einzelnen Zustandswertfeldern als Reaktion auf einen entsprechenden Befehl des zweiten Typs; und
ein Mittel zum Verbinden der zahlreichen getrennt gespeicherten Zustandswerte, um einen weiteren Zustandswert zu erzeugen, der vom Zustandsspeichermittel in einem anderen der zahlreichen Zustandswertfelder gespeichert wird.
5. Eine Zustandsverarbeitungsvorrichtung nach Anspruch 4, bei der:
das Computersystem erste und zweite Verarbeitungsstufen umfaßt, die jeweils Befehle des ersten und zweiten Typs ausführen und jeweils an das Zustandsspeichermittel und das Zustandstestmittel gekoppelt sind;
das Zustandssetzungsmittel ein Mittel zum Speichern von Zustandswerten umfaßt, die von ausgewählten Befehlen des ersten Typs erzeugt werden, welche von den ersten und zweiten Verarbeitungsstufen verarbeitet werden, und zwar in den entsprechenden ersten und zweiten Zustandswertfeldern; und
das Zustandstestmittel ein Mittel zum Testen von Zustandswerten umfaßt, die in den ersten und zweiten Zustandswertfeldern gespeichert sind, und zwar als Reaktion auf Befehle des zweiten Typs, die von den ersten bzw. zweiten Verarbeitungsstufen ausgeführt werden.
6. Die Zustandsverarbeitungsvorrichtung nach Anspruch 4, bei der das Computersystem über einen an das Zustandssetzungsinittel und das Zustandstestmittel gekoppelten Pipeline-Prozessor verfügt, der die Ausführung eines Befehls des zweiten Typs, der einen Zustandswert in einem ersten der zahlreichen Zustandswertfelder testet, mit der Ausführung eines Befehls des ersten Typs überlappt, der einen Zustandswert in einem zweiten der zahlreichen Zustandswertfelder setzt.
DE68927371T 1989-01-09 1989-12-19 Verfahren und Vorrichtung zur Verarbeitung von mehreren Zustandscodes wie für einen Parallel-Pipeline-Rechner Expired - Fee Related DE68927371T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/294,850 US5125092A (en) 1989-01-09 1989-01-09 Method and apparatus for providing multiple condition code fields to to allow pipelined instructions contention free access to separate condition codes

Publications (2)

Publication Number Publication Date
DE68927371D1 DE68927371D1 (de) 1996-11-28
DE68927371T2 true DE68927371T2 (de) 1997-04-10

Family

ID=23135219

Family Applications (1)

Application Number Title Priority Date Filing Date
DE68927371T Expired - Fee Related DE68927371T2 (de) 1989-01-09 1989-12-19 Verfahren und Vorrichtung zur Verarbeitung von mehreren Zustandscodes wie für einen Parallel-Pipeline-Rechner

Country Status (4)

Country Link
US (1) US5125092A (de)
EP (1) EP0378830B1 (de)
JP (1) JPH0776921B2 (de)
DE (1) DE68927371T2 (de)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5617574A (en) * 1989-05-04 1997-04-01 Texas Instruments Incorporated Devices, systems and methods for conditional instructions
FR2656442B1 (fr) * 1989-12-21 1994-07-29 Bull Sa Processeur a plusieurs unites microprogrammees avec mecanisme d'execution anticipee des instructions.
US5287522A (en) * 1990-06-29 1994-02-15 Bull Hn Information Systems, Inc. External procedure invocation apparatus utilizing internal branch vector interrupts and vector address generation, in a RISC chip
US5630157A (en) * 1991-06-13 1997-05-13 International Business Machines Corporation Computer organization for multiple and out-of-order execution of condition code testing and setting instructions
EP0518420A3 (en) * 1991-06-13 1994-08-10 Ibm Computer system for concurrent processing of multiple out-of-order instructions
US5493687A (en) * 1991-07-08 1996-02-20 Seiko Epson Corporation RISC microprocessor architecture implementing multiple typed register sets
US5539911A (en) 1991-07-08 1996-07-23 Seiko Epson Corporation High-performance, superscalar-based computer system with out-of-order instruction execution
US5345568A (en) * 1991-09-19 1994-09-06 Chips And Technologies, Inc. Instruction fetch circuit which allows for independent decoding and execution of instructions
EP0636256B1 (de) 1992-03-31 1997-06-04 Seiko Epson Corporation Befehlsablauffolgeplanung von einem risc-superskalarprozessor
EP0638183B1 (de) 1992-05-01 1997-03-05 Seiko Epson Corporation Vorrichtung und verfahren zum befehlsabschluss in einem superskalaren prozessor.
FR2693573B1 (fr) * 1992-07-13 1994-09-30 Texas Instruments France Système de traitement de données à registre d'état dont la mise à jour dépend du programme.
DE69330889T2 (de) 1992-12-31 2002-03-28 Seiko Epson Corp., Tokio/Tokyo System und Verfahren zur Änderung der Namen von Registern
US5628021A (en) 1992-12-31 1997-05-06 Seiko Epson Corporation System and method for assigning tags to control instruction processing in a superscalar processor
US5740398A (en) * 1993-10-18 1998-04-14 Cyrix Corporation Program order sequencing of data in a microprocessor with write buffer
US6219773B1 (en) 1993-10-18 2001-04-17 Via-Cyrix, Inc. System and method of retiring misaligned write operands from a write buffer
US5471598A (en) * 1993-10-18 1995-11-28 Cyrix Corporation Data dependency detection and handling in a microprocessor with write buffer
US5615402A (en) * 1993-10-18 1997-03-25 Cyrix Corporation Unified write buffer having information identifying whether the address belongs to a first write operand or a second write operand having an extra wide latch
US5584009A (en) * 1993-10-18 1996-12-10 Cyrix Corporation System and method of retiring store data from a write buffer
US5815695A (en) * 1993-10-28 1998-09-29 Apple Computer, Inc. Method and apparatus for using condition codes to nullify instructions based on results of previously-executed instructions on a computer processor
US6026484A (en) * 1993-11-30 2000-02-15 Texas Instruments Incorporated Data processing apparatus, system and method for if, then, else operation using write priority
US6058473A (en) * 1993-11-30 2000-05-02 Texas Instruments Incorporated Memory store from a register pair conditional upon a selected status bit
US5689695A (en) * 1993-11-30 1997-11-18 Texas Instruments Incorporated Conditional processor operation based upon result of two consecutive prior processor operations
US5539888A (en) * 1993-12-23 1996-07-23 Unisys Corporation System and method for processing external conditional branch instructions
US5691920A (en) * 1995-10-02 1997-11-25 International Business Machines Corporation Method and system for performance monitoring of dispatch unit efficiency in a processing system
US5729726A (en) * 1995-10-02 1998-03-17 International Business Machines Corporation Method and system for performance monitoring efficiency of branch unit operation in a processing system
US5748855A (en) * 1995-10-02 1998-05-05 Iinternational Business Machines Corporation Method and system for performance monitoring of misaligned memory accesses in a processing system
US5797019A (en) * 1995-10-02 1998-08-18 International Business Machines Corporation Method and system for performance monitoring time lengths of disabled interrupts in a processing system
US5752062A (en) * 1995-10-02 1998-05-12 International Business Machines Corporation Method and system for performance monitoring through monitoring an order of processor events during execution in a processing system
US5751945A (en) * 1995-10-02 1998-05-12 International Business Machines Corporation Method and system for performance monitoring stalls to identify pipeline bottlenecks and stalls in a processing system
US5949971A (en) * 1995-10-02 1999-09-07 International Business Machines Corporation Method and system for performance monitoring through identification of frequency and length of time of execution of serialization instructions in a processing system
US5845118A (en) * 1995-12-14 1998-12-01 International Business Machines Corporation Method for generating shared library executable code with lazy global offset table address calculation
US5991874A (en) * 1996-06-06 1999-11-23 Intel Corporation Conditional move using a compare instruction generating a condition field
US5828873A (en) * 1997-03-19 1998-10-27 Advanced Micro Devices, Inc. Assembly queue for a floating point unit
US5859998A (en) * 1997-03-19 1999-01-12 Advanced Micro Devices, Inc. Hierarchical microcode implementation of floating point instructions for a microprocessor
JPH1173301A (ja) * 1997-08-29 1999-03-16 Matsushita Electric Ind Co Ltd 情報処理装置
US6370639B1 (en) * 1998-10-10 2002-04-09 Institute For The Development Of Emerging Architectures L.L.C. Processor architecture having two or more floating-point status fields
US6842853B1 (en) * 1999-01-13 2005-01-11 Sun Microsystems, Inc. Thread suspension system and method
GB2352308B (en) * 1999-07-21 2004-06-30 Element 14 Ltd Accessing a test condition
GB2352536A (en) * 1999-07-21 2001-01-31 Element 14 Ltd Conditional instruction execution
US6574728B1 (en) * 1999-08-10 2003-06-03 Cirrus Logic, Inc. Condition code stack architecture systems and methods
US6971000B1 (en) * 2000-04-13 2005-11-29 International Business Machines Corporation Use of software hint for branch prediction in the absence of hint bit in the branch instruction
US7043518B2 (en) * 2003-07-31 2006-05-09 Cradle Technologies, Inc. Method and system for performing parallel integer multiply accumulate operations on packed data
US9069547B2 (en) 2006-09-22 2015-06-30 Intel Corporation Instruction and logic for processing text strings
EP2661658B1 (de) * 2011-01-03 2019-09-25 NXP USA, Inc. Integrierte schaltvorrichtung und verfahren zur durchführung von bedingter datennegation
US9996353B2 (en) 2015-02-26 2018-06-12 International Business Machines Corporation Universal history buffer to support multiple register types
US9971604B2 (en) 2015-02-26 2018-05-15 International Business Machines Corporation History buffer for multiple-field registers
US10067766B2 (en) * 2015-02-26 2018-09-04 International Business Machines Corporation History buffer with hybrid entry support for multiple-field registers
EP3462308B1 (de) * 2017-09-29 2022-03-02 ARM Limited Transaktionsverschachtelungstiefentestanweisung

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4136383A (en) * 1974-10-01 1979-01-23 Nippon Telegraph And Telephone Public Corporation Microprogrammed, multipurpose processor having controllable execution speed
US4348721A (en) * 1978-06-30 1982-09-07 International Business Machines Corporation System for selectively addressing nested link return addresses in a microcontroller
US4370710A (en) * 1980-08-26 1983-01-25 Control Data Corporation Cache memory organization utilizing miss information holding registers to prevent lockup from cache misses
US4532589A (en) * 1981-12-02 1985-07-30 Hitachi, Ltd. Digital data processor with two operation units
JPS60110043A (ja) * 1983-11-18 1985-06-15 Nec Corp 情報処理装置
US4847755A (en) * 1985-10-31 1989-07-11 Mcc Development, Ltd. Parallel processing method and apparatus for increasing processing throughout by parallel processing low level instructions having natural concurrencies
US4748585A (en) * 1985-12-26 1988-05-31 Chiarulli Donald M Processor utilizing reconfigurable process segments to accomodate data word length
US4809169A (en) * 1986-04-23 1989-02-28 Advanced Micro Devices, Inc. Parallel, multiple coprocessor computer architecture having plural execution modes
US4766566A (en) * 1986-08-18 1988-08-23 International Business Machines Corp. Performance enhancement scheme for a RISC type VLSI processor using dual execution units for parallel instruction processing
US4994964A (en) * 1987-04-16 1991-02-19 L & C Family Partnership Transaction tracking data processing system
US4980850A (en) * 1987-05-14 1990-12-25 Digital Equipment Corporation Automatic sizing memory system with multiplexed configuration signals at memory modules
JPH0616617B2 (ja) * 1987-12-07 1994-03-02 富士通株式会社 初期条件設定方法

Also Published As

Publication number Publication date
JPH0776921B2 (ja) 1995-08-16
US5125092A (en) 1992-06-23
EP0378830A3 (de) 1992-09-02
DE68927371D1 (de) 1996-11-28
EP0378830A2 (de) 1990-07-25
EP0378830B1 (de) 1996-10-23
JPH02226342A (ja) 1990-09-07

Similar Documents

Publication Publication Date Title
DE68927371T2 (de) Verfahren und Vorrichtung zur Verarbeitung von mehreren Zustandscodes wie für einen Parallel-Pipeline-Rechner
DE3856220T2 (de) Digitaler Signalprozessor der bedingte Mehrpunkt-Sprungbefehle im Pipelinemodus bearbeitet
DE68927911T2 (de) Datenverarbeitungssystem
DE19914210B4 (de) Verfahren und Prozessor für eine gestaffelte Ausführung einer Anweisung
DE2714805C2 (de)
DE3587277T2 (de) System fuer die umgehungssteuerung beim pipelinebetrieb eines computers.
DE69230057T2 (de) Risc mikroprozessorarchitektur mit mehrere registersätze von unterschiedlichen typen
DE69430838T2 (de) Schaltung und Verfahren zur parallelen Verschiebung und Addition
DE69115344T2 (de) Vorverarbeitungsprozessor zur Verbindung von Befehlen für einen Cache-Speicher
DE68927415T2 (de) Kontextumschaltungsverfahren und -anordnung zur Verwendung in einem Vektorverarbeitungssystem
DE69033444T2 (de) Signalprozessor mit einer arithmetischen und logischen Einheit und einer Multiplizier-Akkumulatoreinheit, die gleichzeitig betrieben werden können
DE68927218T2 (de) Verfahren und Vorrichtung für Zustandskode in einem Zentralprozessor
DE68919069T2 (de) Verfahren und Gerät zur Fehlererkennung und -korrektur in einem nach dem überlappten Steuerungsverfahren arbeitenden Rechnersystem.
DE3751503T2 (de) Datenprozessor in Pipelinestruktur mit der Fähigkeit mehrere Befehle parallel zu dekodieren und auszuführen.
DE68924546T2 (de) Verfahren und Vorrichtung zur Ausführung von Befehlen für ein Vektorverarbeitungssystem.
DE69228360T2 (de) Registerlesekontrolle
DE69028138T2 (de) Mechanismus zur präzisen Behandlung von Ausnahmebedingungen in einem Prozessor mit gepaarten Befehlen
DE3486211T2 (de) Kodebestimmung mit einem auf Halbaddierer basierten Operandenvergleicher.
DE69636861T2 (de) Mikroprozessor mit Lade-/Speicheroperation zu/von mehreren Registern
DE3586603T2 (de) Datenprozessor fuer interpretierende und kompilierte sprache.
DE69030931T2 (de) Mehrfachsequenzprozessorsystem
DE3689389T2 (de) Datenverarbeitungsprozessor.
DE2224537A1 (de) Einrichtung und verfahren zur instruktionsselektion
DE2230102A1 (de) Rechenwerk fuer variable wortlaengen
DE69826404T2 (de) Datenverarbeitungssystem mit mehreren Prozessoren, die eine Registerbank gemeinsam benutzen

Legal Events

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