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-RechnerInfo
- 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
Links
- 238000012545 processing Methods 0.000 title claims description 28
- 238000000034 method Methods 0.000 title claims description 13
- 238000012360 testing method Methods 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 9
- 230000003750 conditioning effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 241000613118 Gryllus integer Species 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000001343 mnemonic effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30094—Condition code generation, e.g. Carry, Zero flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent 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.
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)
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)
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 | 富士通株式会社 | 初期条件設定方法 |
-
1989
- 1989-01-09 US US07/294,850 patent/US5125092A/en not_active Expired - Fee Related
- 1989-12-19 EP EP89123426A patent/EP0378830B1/de not_active Expired - Lifetime
- 1989-12-19 DE DE68927371T patent/DE68927371T2/de not_active Expired - Fee Related
-
1990
- 1990-01-09 JP JP2001127A patent/JPH0776921B2/ja not_active Expired - Lifetime
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 |