DE68927911T2 - Datenverarbeitungssystem - Google Patents
DatenverarbeitungssystemInfo
- Publication number
- DE68927911T2 DE68927911T2 DE68927911T DE68927911T DE68927911T2 DE 68927911 T2 DE68927911 T2 DE 68927911T2 DE 68927911 T DE68927911 T DE 68927911T DE 68927911 T DE68927911 T DE 68927911T DE 68927911 T2 DE68927911 T2 DE 68927911T2
- Authority
- DE
- Germany
- Prior art keywords
- instruction
- instructions
- processor
- processors
- floating
- 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
- 239000000872 buffer Substances 0.000 description 25
- 238000004364 calculation method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 101100322582 Streptomyces coelicolor (strain ATCC BAA-471 / A3(2) / M145) add1 gene Proteins 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000000034 method Methods 0.000 description 5
- 102100034033 Alpha-adducin Human genes 0.000 description 3
- 102100024348 Beta-adducin Human genes 0.000 description 3
- 101000799076 Homo sapiens Alpha-adducin Proteins 0.000 description 3
- 101000689619 Homo sapiens Beta-adducin Proteins 0.000 description 3
- 101000629598 Rattus norvegicus Sterol regulatory element-binding protein 1 Proteins 0.000 description 3
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- 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/3818—Decoding for concurrent execution
- G06F9/3822—Parallel decoding, e.g. parallel decode units
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- 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/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- 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/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- 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)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
- Diese Erfindung betrifft Datenverarbeitungssysteme, die eine Vielzahl einzelner Verarbeitungseinheiten enthalten.
- Herkömmliche Datenverarbeitungssysteme führen eine Folge von Befehlen nacheinander aus. In einem Datenverarbeitungssystem, das mehrere Verarbeitungseinheiten enthält, wird die Decodierung der Befehle normalerweise zentralisiert, um sicherzustellen, daß jeder Befehl gemäß seiner Position in der Folge decodiert wird.
- Das IBM Technical Disclosure Bulletin, Band 25, Nummer 3B, August 1982, Seiten 1637 bis 1638, mit dem Titel "Multiprocessor Synchronization Design Method" beschreibt einen Prozeß, bei dem eine Gruppe von Prozessoren gleichzeitig feststellen können, ob sich einer von ihnen in einem angegebenen Status befindet. Am Ende des Prozesses haben alle Prozessoren ihren aktuellen Status gegenseitig vereinbart.
- Das IBM Technical Disclosure Bulletin, Band 30, Nummer 7, Dezember 1987, Seiten 98 bis 99, mit dem Titel "Synchronization Processing Elements for Highly Parallel Multiprocessors Systems", beschreibt ein Verfahren, bei dem eine Computerarchitektur im Mehrprozessorbetrieb durch die Verwendung eines Synchronisierungs-Verarbeitungselementes verbessert wird, um den Synchronisationsaufwand in einem Mehrprozessor-Computersystem mit hoher Parallelität auf ein Minimum herabzusetzen.
- Das IBM Technical Disclosure Bulletin, Band 29, Nummer 10, März 1987, mit dem Titel "Run-Time Algorithm for Distributed Processing Synchronization and Address Calculations", Seiten 4658 bis 4687, beschreibt Einmalalgorithmen, die sich in jedem verteilten Verarbeitungselement einer Architektur mit verteilter Verarbeitung befinden. Diese Einmalalgorithmen führen die zeitliche Planung einer Adressenberechnung für jedes der verteilten Verarbeitungselemente auf eine koordinierte Weise mit den anderen verteilten Verarbeitungselementen in einem Netzwerk aus.
- Es ist die Aufgabe der vorliegenden Erfindung, ein Mehrprozessorsystem bereitzustellen, um eine Folge von Befehlen auf eine Weise auszuführen, daß die Befehle sequentiell ausgeführt werden, auch wenn sich die tatsächliche Ausführung einzelner Befehle durch einzelne Prozessoren außerhalb der Folge befinden kann. Entsprechende Systeme mit den Merkmalen, wie sie in der Einleitung von Anspruch 1 dargelegt werden, sind aus den Patentschriften WO-A-8807239 bzw. EP-A-0 226 226 bekannt.
- Die vorliegende Erfindung stellt ein Datenverarbeitungssystem bereit, wie es in Anspruch 1 dargelegt ist.
- In einem Beispiel der vorliegenden Erfindung, die im folgenden ausführlicher beschrieben wird, wird ein Datenverarbeitungssystem bereitgestellt, das eine Befehlsspeicherschaltung zur Speicherung einer Folge von Befehlen enthält, die den Betrieb von zwei Prozessoren benötigt. Es sind mindestens zwei Prozessoren enthalten, wobei jeder Befehle aus dem Befehlsspeicher ausführt. Es wird eine Befehlszuteilungsschaltung zur Zuteilung jedes Befehls zu mindestens einem der Prozessoren bereitgestellt. Mindestens einer der Prozessoren enthält eine Schaltung zum Ausführen zugeteilter Befehle vor der Ausführung eines vorhergehenden Befehls in der Befehlsfolge durch einen anderen Prozessor.
- Ein einzelner Befehlspuffer, der eine Folge von Befehlen speichert. Von mindestens einem der Befehle in dieser Folge wird angenommen, daß er den Betrieb beider Prozessoren benötigt. Die Befehlsspeicherschaltung ist mit den beiden Prozessoren verbunden. Jeder Prozessor führt Befehle aus der Befehlsspeicherschaltung aus. Eine Befehlszuteilungsschaltung teilt jeden Befehl mindestens einem der Prozessoren zu. Mindestens ein Prozessor hat die Fähigkeit, zugeteilte Befehle vor der Ausführung eines vorhergehenden Befehls in der Befehlsfolge durch einen anderen Prozessor auszuführen.
- Wie beschrieben wird, ist ein Prozessor ein Festkommaarithmetik- Prozessor, und der zweite Prozessor ist ein Gleitkommaarithmetik-Prozessor. Die Befehlsfolge enthält sowohl Befehle für den Festkommaprozessor selbst als auch für den Gleitkommaprozessor selbst. Die Befehlsfolge enthält jedoch auch Gleitkomma-Lade- und Speicherbefehle, die, wie um der Veranschaulichung willen vorausgesetzt wird, den Betrieb sowohl des Festkommaprozessors als auch des Gleitkommaprozessors benötigen. Insbesondere führt der Festkommaprozessor Adressenberechnungen zur Ausführung der Lade- und Speicherbefehle für die Gleitkommabefehle aus.
- Im allgemeinen hat jeder Prozessor, der zugeteilte Befehle vor der Ausführung vorhergehender Befehle durch einen anderen Prozessor ausführen kann, außerdem die Fähigkeit, die Ausführung seines Befehls, der sich vor der Folge befindet, zu verzögern, wenn der Befehl es erforderlich macht, daß ein Arbeitsgang von einem anderen Pozessor ausgeführt wird. In der beschriebenen Anordnung führt der Gleitkommaprozessor den Gleitkommabefehl nicht aus, wenn der Gleitkommabefehl den Betrieb des Festkommaprozessors benötigt.
- Außerdem hat jeder Prozessor, der einen zugeteilten Befehl vor der Ausführung eines vorhergehenden Befehls durch einen anderen Prozessor ausführen kann, außerdem die Fähigkeit, die Ausführung eines unterbrechbaren Befehls eines Typs, der eine Unterbrechungsbedingung für den Prozessor erzeugen kann, zu verzögern, bis der unterbrechbare Befehl in seiner angemessenen sequentiellen Reihenfolge mit der Ausführung der anderen Befehle ausgeführt wird.
- Die vorliegende Erfindung wird beispielhaft mit Bezugnahme auf eine Ausführungsform davon näher beschrieben, wie in den begleitenden Zeichnungen dargestellt wird, in denen:
- Figur 1 ein Blockdiagramm zweier Verarbeitungseinheiten ist, die mit einem allgemeinen Befehls-Cache und einem allgemeinen Speicher verbunden sind;
- Figur 2 ein Flußdiagramm ist, das eine Steuerfunktion für den Gleitkommaprozessor darstellt;
- Figur 3 ein Flußdiagramm ist, das die Steuerfunktion für den Festkommaprozessor darstellt;
- Figur 4 eine Liste von Gleitkomma- und Festkommabefehlen ist, die keine Unterbrechungen erzeugen;
- Figur 5 ein Zeitdiagramm für die Ausführung der Befehlsfolge aus Figur 4 ist;
- Figur 6 eine Befehlsfolgenliste ist, die einen einzigen unterbrechbaren Befehl enthält;
- Figur 7 ein Zeitdiagramm ist, das die Ausführung der Befehlsfolge in Figur 6 darstellt;
- Figur 8 eine Befehlsfolge ist, die einen unterbrechbaren Befehl enthält, wobei tatsächlich eine Unterbrechung stattfindet; und
- Figur 9 ein Zeitdiagramm ist, das die Ausführung der Befehlsfolge in Figur 8 darstellt.
- Die beschriebene Anordnung spricht das Problem der Mehrprozessorsynchronisierung an. In der dargestellten Umgebung wird insbesondere eine Synchronisierung zwischen einem Festkommaprozessor und einem Gleitkommaprozessor benötigt. Dieser Bedarf ergibt sich daraus, daß der Festkommaprozessor Adressenberechnungen für die Ausführung der Gleitkomma-Lade- und Speichervorgänge im Gleitkommaprozessor ausführen muß. Ein anderer Bereich, der eine Synchronisierung benötigt, ergibt sich daraus, daß der Gleitkommaprozessor unterbrechbare Befehle vor dem Festkommaprozessor ausführen kann. In diesem Fall verhindert eine Synchronisierung, daß der Gleitkommaprozessor unterbrechbare Befehle vor dem Festkommaprozessor ausführt.
- Der Festkommaprozessor 6 ist über eine Steuerleitung 29, die ein Mittel zur Übertragung mehrerer Steuersignale darstellt, mit dem Gleitkommaprozessor 8 verbunden. Der Festkommaprozessor 6 und der Gleitkommaprozessor 8 sind außerdem mit einem allgemeinen Befehls-Cache 10 und einem einzelnen Speicher 80 verbunden. Der Festkommaprozessor 6 enthält einen Befehlsvorabrufpuffer 20, der mit dem Befehls-Cache 10 verbunden ist. Der Befehlsvorabrufpuffer 20 empfängt eine Befehlsfolge aus dem Befehls-Cache 10. Das heißt, die Befehle aus dem Befehlsvorabrufpuffer 20 werden in der Decodierschaltung 22 decodiert, um der Registerdatei 24 und der Steuerschaltung 30 Informationen zu liefern. In der bevorzugten Ausführungsform enthält das Register 24 des Festkommaprozessors 6 32 einzeln adressierbare Register. Die Ausgänge der Registerdatei 24 sind mit einem Rechenwerk (ALU) 26 verbunden. Der Ausgang des ALU 26 ist mit der Registerdatei 24 rückverbunden. Der Festkommaprozessor 6 enthält außerdem die Ein-/Ausgabe- (E/A-) Schaltung 28, die mit der Registerdatei 24 und der Steuerschaltung 30 verbunden ist. Die E/A-Schaltung 28 ist mit dem externen Speicher 80 verbunden. Die Steuerschaltung 30 des Festkommaprozessors 6 steuert die internen Arbeitsgänge des Festkommaprozessors 6, den Zugriff auf den externen Speicher 80 durch die E/A-Schaltung 28 und die Synchronisierung mit dem Gleitkommaprozessor 8.
- Der Gleitkommaprozessor 8 enthält einen Befehlsvorabrufpuffer 40, der mit dem Befehls-Cache 10 verbunden ist. Eine Decodierschaltung 42 wird zum Decodieren von aus dem Befehlsvorabrufpuffer 40 empfangenen Befehlen bereitgestellt. Eingänge der Decodierschaltung 42 sind mit der Steuerschaltung 52 des Gleitkommaprozessors und mit der Registerdatei 44 verbunden. Ausgänge der Registerdatei 44 sind mit einer Exponentialaddiererschaltung 50 und einer Multiplizierschaltung 48 verbunden. Der Ausgang des Multiplizierers 48 ist mit einem Addierer 54 verbunden, dessen Ausgang seinerseits mit einer Rundungsschaltung 56 verbunden ist. Außerdem sind Steuereingänge der Steuerlogik 52 mit dem Exponentialaddierer 50, dem Multiplizierer 48, dem Addierer 54 und der Rundungsschaltung 56 verbunden. In der bevorzugten Ausführungsform führt der Exponentialaddierer exponentielle Operationen für Gleitkommarechnungen durch und stellt außerdem die Schiebesteuerung für den Multiplizierer 48 bereit. Der Multiplizierer 48 ist ein wallace-tree-Multiplizierer, der die Architektur eines schnellen Dreioperandenaddierers verwendet. Die Exponentialaddiererschaltung 50 ist eine Addiererschaltung zur Addition oder Subtraktion des Exponenten für die Multiplikationsoperationen. Diese Exponenteninformationen werden verwendet, um Additionsoperanden zur Addition im Ergebnis des Multiplikationsoperators auszurichten.
- Die Rundungsschaltung 56 erhöht das Ergebnis aus dem Addierer 54, um der Registerdatei 44 ein abgerundetes Ergebnis zu liefern. Der Gleitkommaprozessor 8 enthält außerdem eine Ein-/Ausgabe- (E/A-) Schaltung 46, die mit dem externen Speicher 80 verbunden ist. Die E/A-Schaltung 46 ist außerdem mit der Steuerschaltung 52 verbunden. Wie beim Festkommaprozessor 6 stellt die Steuerschaltung 52 die interne Steuerung der im Gleitkommaprozessor 8 ausgeführten Gleitkommaoperationen bereit. Außerdem ist die Gleitkommasteuerung 52 über die Leitung 29 mit der Festkommaprozessorsteuerung 50 verbunden, um Synchronisierungssignale vom Festkommaprozessor 6 zu empfangen.
- In der beschriebenen Anordnung dient der Speicher 80 als ein Mittel zur Datenübertragung zwischen dem Festkommaprozessor 6 und dem Gleitkommaprozessor 8, falls dies benötigt wird. Außerdem speichert der Befehls-Cache 10 die Befehlsfolge sowohl für den Festkommaprozessor 6 als auch für den Gleitkommaprozessor 8. Die Befehlsfolge wird sowohl dem Befehlsvorabrufpuffer 20 des Festkommaprozessors 6 als auch dem Befehlsvorabrufpuffer 40 des Gleitkommaprozessors 8 zur Verfügung gestellt. Mit anderen Worten, dieselben Befehle werden beiden Vorabrufpuffern 20 und 40 zur Verfügung gestellt.
- Der Festkommaprozessor 6 ist eine 32-bit breite Verarbeitungseinheit. Der Gleitkommaprozessor 8 ist eine 64-bit breite Gleitkommaeinheit.
- Figur 2 stellt den Steuerfluß in der Steuereinheit 52 für den Gleitkommaprozessor dar. Insbesondere stellt dieser Steuerfluß die Steuerung der Synchronisierungsfunktion zwischen dem Festkommaprozessor 6 und dem Gleitkommaprozessor 8 dar. Anfangs wird ein Befehl im Schritt 100 von Figur 2 aus dem Befehlsvorabrufpuffer 40 in die Decodierschaltung 42 geschoben. Im Schritt 102 wird dieser Befehl decodiert. Im Schritt 104 wird eine Entscheidung getroffen, ob der Befehl, der decodiert wurde, ein unterbrechbarer Befehl ist oder nicht. Zum Zwecke der Erläuterung sind hier nur Lade- und Speicherbefehle für den Gleitkommaprozessor 8 unterbrechbar. Falls der Befehl, der decodiert wurde, nicht unterbrechbar ist, wird im Schritt 106 die Entscheidung getroffen, ob der Befehl ein Gleitkommabefehl ist oder nicht. Ist dies nicht der Fall, kehrt die Steuerfunktion zurück zum Schritt 100. Dies erfolgt, falls der Befehl, der decodiert wird, tatsächlich ein Festkommaarithmetikbefehl ist. Zurück bei Schritt 106 wird, falls der decodierte Befehl ein Gleitkommabefehl ist, der Gleitkommabefehl im Schritt 108 ausgeführt. Die Steuerfunktion kehrt bei Beendigung der Befehlsausführung wieder zum Schritt 100 zurück.
- Zurück beim Schritt 104 geht die Steuerung, falls der decodierte Befehl ein unterbrechbarer Befehl ist, weiter zum Schritt 110, um die Lösch- und Synchronisierungssignale zu überwachen. Die Lösch- und Synchronisierungssignale werden in Figur 1 als die Leitung 29 dargestellt, die die Steuerschaltung 30 des Festkommaprozessors 6 mit der Steuerschaltung 52 des Gleitkommaprozessors 8 verbindet. Im Schritt 112 wird eine Entscheidung getroffen, ob das Löschsignal empfangen wurde oder nicht, und falls es empfangen wurde, werden alle Befehle im Befehlsvorabrufpuffer 40 im Schritt 116 gelöscht, und der Steuerfluß kehrt zum Schritt 100 zurück. Zurück beim Schritt 112 wird, falls kein Löschsignal empfangen wurde, im Schritt 114 eine Entscheidung getroffen, ob ein Synchronisierungssignal empfangen wurde. Ist dies nicht der Fall, kehrt der Steuerfluß zurück zum Schritt 100, um wiederum auf diese beiden Signale hin zu überwachen. Falls ein Synchronisierungssignal empfangen wurde, lenkt der Schritt 114 den Steuerfluß zum Schritt 106, um festzustellen, ob der auszuführende Befehl ein Gleitkommabefehl ist. Auf diese Weise empfängt der Gleitkommaprozessor 8 Synchronisierungssignale vom Festkommaprozessor 6. Es sollte jedoch klar sein, daß der Gleitkommaprozessor 8 keine Synchronisierungssignale vom Festkommaprozessor 6 benötigt, falls ein Befehl nicht unterbrechbar ist. Daher ist es in dieser Anordnung durchaus zulässig, daß der Gleitkommaprozessor 8 Befehle vor der Folge von dem durch den Festkommaprozessor 6 ausgeführten Befehl ausführt.
- In Figur 3 wird der Steuerfluß für den Festkommaprozessor 6 dargestellt. Im Schritt 200 wird der nächste Befehl aus dem Befehlsvorabrufpuffer 20 in die Decodierschaltung 22 geschoben. Dieser Befehl wird im Schritt 202 decodiert. Im Schritt 204 wird festgestellt, ob der Befehl ein Festkommaeinheit-Befehl oder ein Gleitkommaeinheit-Befehl ist oder nicht. Falls der Befehl kein Gleitkommaeinheit-Befehl ist, wird der Steuerfluß zum Schritt 200 gelenkt. Falls der Befehl jedoch ein Festkommaeinheit-Befehl ist, geht der Steuerfluß weiter zum Schritt 206. Es muß klar sein, daß ein Gleitkommalade- und ein Gleitkommaspeichervorgang vom Festkommaprozessor 6 als Festkommabefehle betrachtet werden, da sie Berechnungen von Festkommaadressen durch den Festkommaprozessor 6 benötigen. Daher bewirken alle Gleitkommabefehle, die keinen Arbeitsgang benötigen, der innerhalb des Festkommaprozessors 6 ausgeführt werden muß, daß der Steuerfluß zum Schritt 200 zurückkehrt. Andererseits bewirkt jeder Festkommaeinheit-Befehl, der den Betrieb des Festkommaprozessors 6 benötigt, oder ein Gleitkommalade- oder -speicherbefehl, daß der Steuerfluß zum Schritt 206 weitergeht, um den Befehl auszuführen. Im Schritt 208 wird eine Entscheidung getroffen, ob die Befehlsausführung beendet wurde oder nicht; falls nicht, geht die Befehlsausführung im Schritt 206 weiter. Nach der Befehlsausführung geht der Steuerfluß weiter zum Schritt 210, um festzustellen, ob der Befehl tatsächlich unterbrechbar ist. Falls der Befehl nicht unterbrechbar ist, kehrt der Steuerfluß zurück zum Schritt 200. Falls der Befehl jedoch unterbrechbar ist, wird im Schritt 212 eine Entscheidung getroffen, ob tatsächlich eine Befehlsunterbrechung stattgefunden hat oder nicht. Falls die Befehlsunterbrechung nicht stattgefunden hat, geht der Steuerfluß weiter zum Schritt 214, um das Synchronisierungssignal auf der Leitung 29 (Figur 1) zur Steuerschaltung 52 des Gleitkommaprozessors 8 zu senden. Danach kehrt der Steuerfluß zum Schritt 200 zurück.
- Falls eine Befehlsunterbrechung stattgefunden hat, geht der Steuerfluß weiter zum Schritt 216, um
- (1) ein Löschsignal auf der Leitung 29 (Figur 1) zur Steuerschaltung 52 des Gleitkommaprozessors 8 zu senden und
- (2) eine Löschung des Befehlsvorabrufpuffers 20 bereitzustellen.
- Nach der Beendigung von Schritt 216 kehrt der Steuerfluß zum Schritt 200 zurück.
- Es sollte klar sein, daß der Grund, warum eine Unterbrechung zum Löschen der Befehlsvorabrufpuffer 20 und 40 führt, darin besteht, daß die Software zur Unterbrechungsbearbeitung ausgeführt wird, daher werden die in den Befehlsvorabrufpuffern verbleibenden Befehle, die vor dem Auftreten der Unterbrechung vorhanden waren, nicht ausgeführt. Durch das Löschen der Befehlsvorabrufpuffer 20 und 40 ist der Befehls-Cache 10 nun frei, um die geeigneten Befehle zur Ausführung nach dem Auftreten der Unterbrechung zu laden.
- Ein anderer zu beachtender Punkt in Figur 3 ist, daß entweder ein Löschsignal im Schritt 216 erzeugt wird oder ein Synchronisierungssignal im Schritt 214 erzeugt wird, falls der Befehl unterbrechbar ist. Mit erneutem Bezug auf Figur 2 wartet die Gleitkommaeinheit nicht auf den Empfang irgendeines Synchronisierungssignals vom Festkommaprozessor 6, falls ein Befehl nicht unterbrechbar ist. Die Figuren 4 und 5 stellen den Betrieb der beiden Prozessoren 6 und 8 dar. In Figur 4 ist eine Liste von Befehlen zusammen mit der Anzahl der zur Ausführung jedes aufgelisteten Befehls benötigten Zyklen dargestellt, und es ist dargestellt, ob die Befehle unterbrechbar sind oder nicht. In dem in Figur 4 aufgelisteten Beispiel ist keiner der Befehle unterbrechbar. Einer der Befehle (FXU-MUL3) benötigt jedoch vier Zyklen zur Ausführung. FPU stellt einen Gleitkommaeinheit-Befehl dar. FXU stellt einen Festkommaeinheit-Befehl dar. Daher werden die Gleitkommaeinheit-Befehle im Gleitkommaprozessor 8 und die Festkommaeinheit-Befehle im Festkommaprozessor 6 ausgeführt.
- Figur 5 ist ein Zeitdiagramm, das den in Pipelineverarbeitung erfolgenden Betrieb von sowohl dem Festkommaeinheit-Prozessor 6 (FXU) als auch dem Gleitkommaprozessor 8 (FPU) für mehrere Zyklen (1 bis 10) darstellt. Die Arbeitsgänge in Pipelineverarbeitung enthalten Verschieben, Decodieren und Ausführen. Die Synchronisierungs- und Löschleitungen stellen das Auftreten von Synchonisierungs- oder Löschsignalen dar.
- Bezugnehmend auf Figur 5 wird im Zyklus 1 der Befehl ADD1 von den Befehlsvorabrufpuffern 20 bzw. 40 der Festkommaeinheit und der Gleitkommaeinheit empfangen. Im Zyklus 2 wird ADD1, wie gezeigt wird, von beiden decodiert. Außerdem wird der Befehl ADD2 in die Vorabrufpuffer 20 und 40 für beide Prozessoren 6 und 8 geschoben. Im Zyklus 3 wird der Mehrfachbefehl (MUL3) in die Puffer 40 und 40 geschoben. Der Befehl ADD2 wird von beiden Prozessoren 6 und 8 decodiert. Der Befehl ADD1 wird jedoch nur vom Gleitkommaprozessor 8 ausgeführt, da er ein Gleitkommabefehl ist. Im Zyklus 4 wird der Befehl ADD4 verschoben, der Befehl MUL3 wird decodiert, und der Befehl ADD2 wird vom Festkommaprozessor 6 ausgeführt, da er ein Festkommabefehl ist. Im Zyklus 5 wird der Befehl ADD5 in die Puffer 20 und 40 geschoben. Der Befehl ADD4 wird von beiden Prozessoren 6 und 8 decodiert, und der Befehl MUL3 wird im Festkommaprozessor 6 ausgeführt. Im Zyklus 6 verbleibt der Befehl ADD5 im Puffer 20, während der Befehl ADD6 in den Puffer 40 des Gleitkommaprozessors 8 geladen wird. Der Befehl ADD5 im Festkommaprozessor 6 wird ebenfalls decodiert, wenn er sich im Gleitkommaprozessor 8 befindet. Die Ausführung des Mehrfachbefehls (MUL3) wird im Festkommaprozessor 6 fortgesetzt. Es ist zu beachten, daß der Befehl ADD4 vom Gleitkommaprozessor 8 ausgeführt wird, selbst wenn sich der Befehl Gleitkommabefehl ADD4 vor der Folge befindet. Im Zyklus 7 wird die Ausführung des Befehls MUL3 fortgesetzt, während der Befehl ADD6 im Gleitkommaprozessor 8 decodiert wird. Im Zyklus 8 wird die Ausführung des Befehls MUL3 im Festkommaprozessor 6 fortgeführt, und der Befehl ADD6 wird im Gleitkommaprozessor 8 ausgeführt. Im Zyklus 9 wird der Befehl ADD6 in der Festkommaeinheit des Festkommaprozessors 6 decodiert, obwohl er bereits vom Gleitkommaprozessor ausgeführt wurde. Außerdem wird der Befehl ADD5 im Festkommaprozessor 6 ausgeführt. Da der Befehl ADD6 ein Gleitkommabefehl ist, der tatsächlich vor dem Befehl ADD5 ausgeführt wurde (d.h. vor der Folge), muß keiner der Prozessoren im Zyklus 10 irgendeinen Vorgang in Pipelineverarbeitung ausführen.
- Die Figuren 6 und 7 stellen wiederum ein Beispiel eines Befehlsflusses für den Festkommaprozessor 6 und den Gleitkommaprozessor 8 dar. In diesem Beispiel muß jedoch ein Gleitkomma-Ladebefehl ausgeführt werden. Figur 7 stellt die Ausführung der Arbeitsgänge in Pipelineverarbeitung auf eine ähnliche Weise wie in Figur 5 dar. Daher ist die Erläuterung für die Ausführung der Arbeitsgänge in Pipelineverarbeitung vor den für den Gleitkommaladevorgang benötigten Arbeitsgängen nicht ausführlich, da es die gleichen wie zuvor sind. Im Zyklus 5 wird der Gleitkommaladebefehl in beide Puffer 20 und 40 geladen. Im Zyklus 6 wird dieser Befehl decodiert. Es ist jedoch zu beachten, daß der Festkommaprozessor 6 einen Mehrfachbefehl MUL3, der drei Zyklen benötigt, ausführt. Daher wartet der Ladebefehl im Zyklus 7 immer noch auf die Ausführung im Festkommaprozessor 6, obwohl der Ladebefehl im Gleitkommaprozessor 8 decodiert wurde; der Ladebefehl wird nicht ausgeführt, da er auf die Ausführung des Adressenberechnungsvorgangs im Festkommaprozessor 6 warten muß. Der Befehl ADD6, der nach dem Ladebefehl kommt, wird jedoch decodiert. Im Zyklus 8 wird vom Festkommaprozessor 6 ein Synchronisierungssignal bereitgestellt, sobald der Ladevorgang im Festkommaprozessor 6 ausgeführt worden ist. Nach dem Auftreten des Synchronisierungssignals führt der Gleitkommaprozessor 8 seine Arbeitsgänge für den Ladebefehl aus. Zuletzt erfolgt die Ausführung des Befehls ADD6.
- Die Figuren 8 und 9 liefern außerdem eine andere Darstellung einer Befehlsfolge. Diese Befehlsfolge ist ähnlich wie diejenige aus Figur 6, jedoch ist der Gleitkommaladebefehl, der lediglich in Figur 6 unterbrechbar ist, nun ein Festkommaladevorgang, der in Figur 8 eine Unterbrechung erzeugt. Das Zeitdiagramm für die Befehlsliste in Figur 8 wird wieder in Figur 9 dargestellt. Der Unterschied zwischen Figur 9 und Figur 7 befindet sich im Zyklus 8. Es ist zu beachten, daß vom Festkommaprozessor 6 ein Löschsignal bereitgestellt wird, da der Befehl (der Festkommaladevorgang) das Auftreten einer Unterbrechung bewirkt hat. Nach dem Empfang des Löschsignals löscht der Gleitkommaprozessor 6 den Inhalt des Befehlsvorabrufpuffers 40. Außerdem löscht der Gleitkommaprozessor 6 nach der Erzeugung des Löschsignals den Inhalt seines Befehlsvorabrufpuffers 20.
- In der beschriebenen Anordnung entstehen die Unterbrechungen für die Lade- und Speicherbefehle, wenn ein Seitenfehler (d.h. nicht im Speicher) auftritt. Mit anderen Worten, es wird ein Daten- Cache bereitgestellt, und falls ein zu ladender Befehl nicht im Daten-Cache oder im Speicher enthalten ist, muß ein Arbeitsgangausgeführt werden, um diese Daten aus einem externen Speicher abzurufen. Das Abrufen des Arbeitsgangs aus einem externen Speicher benötigt viele Zyklen, und die Befehlsfolge zum Bereitstellen dieses Abrufs ist in der Unterbrechungsroutine enthalten. Daher enthält der Befehls-Cache 10 nach dem Auftreten der Unterbrechung die Arbeitsgänge der Unterbrechungsroutine zur Ausführung dieses Abrufs.
Claims (6)
1. Datenverarbeitungssystem, das folgendes umfaßt:
Mittel (10) zum Speichern einer Folge von Befehlen, die den
Betrieb von mindestens zwei Prozessoren (6, 8) benötigen;
eine Vielzahl von Prozessoren (6, 8) zum Ausführen der
Befehle vom Speichermittel;
Befehlszuteilungsmittel (10, 20, 40), die mit dem
Speichermittel und den Prozessoren verbunden sind, um jeden Befehl
mindestens einem der Prozessoren zuzuteilen;
mindestens einer der Prozessoren (8) enthält
Ausführungsmittel, die mit den Zuteilungsmitteln verbunden sind, um
zugeteilte Befehle vor der Ausführung eines vorhergehenden
Befehls in der Folge durch einen anderen der Prozessoren
auszuführen;
wobei das System durch folgendes gekennzeichnet ist:
das Befehlszuteilungsmittel teilt unterbrechbare Befehle
zu, die eine Unterbrechungsbedingung bei mindestens zwei
der Prozessoren bewirken könnten;
Mittel (104, 210) in den mindestens zwei Prozessoren, um
festzustellen, ob ein Befehl unterbrechbar ist oder nicht;
daß Ausführungsmittel in dem mindestens einem Prozessor
enthält Mittel (52, 110, ..., 116) zur Verzögerung der
Ausführung eines unterbrechbaren Befehls, bis der
unterbrechbare Befehl in seiner sequentiellen Reihenfolge von einem
anderen der Prozessoren ausgeführt wird.
2. System, wie es in Anspruch 1 beansprucht wird, wobei die
Mittel zur Ausführung zugeteilter Befehle vor der
Ausführung des vorhergehenden Befehls außerdem Mittel (56, 110,
..., 116) zur Verzögerung der Ausführung eines Befehls vor
der Folge enthalten, wenn der Befehl Arbeitsgänge von einem
anderen Prozessormittel benötigt.
3. System, wie es in irgendeinem vorhergehenden Anspruch
beansprucht wird, wobei das Befehlszuteilungsmittel ein
Mittel (212) zum Erkennen des Auftretens einer Unterbrechung
und daraufhin zum Zuteilen von Befehlen der Folge in der
vor dem Auftreten der Unterbrechung zugeteilten Reihenfolge
enthält.
4. System, wie es in irgendeinem vorhergehenden Anspruch
beansprucht wird, wobei die Mittel zur Ausführung zugeteilter
Befehle vor der Ausführung des vorhergehenden Befehls
außerdem Mittel (52, 110, ..., 116) zur Verzögerung der
Ausführung eines Befehls vor der Folge enthalten, wenn der
Befehl den Betrieb eines anderen Prozessormittels benötigt.
5. System, wie es in irgendeinem vorhergehenden Anspruch
beansprucht wird, wobei das Befehlsspeichermittel (10) die
Folge von Befehlen für die mindestens zwei Prozessormittel
enthält und das Befehlszuteilungsmittel jeden Befehl den
mindestens zwei Prozessormitteln (6, 8) zuteilt.
6. System, wie es in Anspruch 5 beansprucht wird, wobei die
Befehlsfolge mindestens einen Befehl enthält, der die
Arbeitsgänge von zwei Prozessoren (6, 8) benötigt.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/297,783 US5075840A (en) | 1989-01-13 | 1989-01-13 | Tightly coupled multiprocessor instruction synchronization |
Publications (2)
Publication Number | Publication Date |
---|---|
DE68927911D1 DE68927911D1 (de) | 1997-04-30 |
DE68927911T2 true DE68927911T2 (de) | 1997-09-18 |
Family
ID=23147726
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE68927911T Expired - Fee Related DE68927911T2 (de) | 1989-01-13 | 1989-12-20 | Datenverarbeitungssystem |
Country Status (13)
Country | Link |
---|---|
US (1) | US5075840A (de) |
EP (1) | EP0377991B1 (de) |
JP (1) | JP2645669B2 (de) |
KR (1) | KR930004214B1 (de) |
CN (1) | CN1013067B (de) |
AU (1) | AU618142B2 (de) |
BR (1) | BR9000112A (de) |
CA (1) | CA1321655C (de) |
DE (1) | DE68927911T2 (de) |
GB (1) | GB2227108A (de) |
HK (1) | HK1000050A1 (de) |
MY (1) | MY105754A (de) |
PH (1) | PH30201A (de) |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5293500A (en) * | 1989-02-10 | 1994-03-08 | Mitsubishi Denki K.K. | Parallel processing method and apparatus |
US5226126A (en) * | 1989-02-24 | 1993-07-06 | Nexgen Microsystems | Processor having plurality of functional units for orderly retiring outstanding operations based upon its associated tags |
US5781753A (en) * | 1989-02-24 | 1998-07-14 | Advanced Micro Devices, Inc. | Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions |
US5768575A (en) * | 1989-02-24 | 1998-06-16 | Advanced Micro Devices, Inc. | Semi-Autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for sepculative and out-of-order execution of complex instructions |
US5185871A (en) * | 1989-12-26 | 1993-02-09 | International Business Machines Corporation | Coordination of out-of-sequence fetching between multiple processors using re-execution of instructions |
US5961629A (en) * | 1991-07-08 | 1999-10-05 | Seiko Epson Corporation | High performance, superscalar-based computer system with out-of-order instruction execution |
US5539911A (en) | 1991-07-08 | 1996-07-23 | Seiko Epson Corporation | High-performance, superscalar-based computer system with out-of-order instruction execution |
JP3333196B2 (ja) * | 1991-07-08 | 2002-10-07 | セイコーエプソン株式会社 | トラップ処理方法 |
JP3441071B2 (ja) * | 1991-07-08 | 2003-08-25 | セイコーエプソン株式会社 | マイクロプロセッサ及びデータ処理装置 |
US5363495A (en) * | 1991-08-26 | 1994-11-08 | International Business Machines Corporation | Data processing system with multiple execution units capable of executing instructions out of sequence |
GB2263565B (en) * | 1992-01-23 | 1995-08-30 | Intel Corp | Microprocessor with apparatus for parallel execution of instructions |
US5438668A (en) | 1992-03-31 | 1995-08-01 | Seiko Epson Corporation | System and method for extraction, alignment and decoding of CISC instructions into a nano-instruction bucket for execution by a RISC computer |
US6735685B1 (en) | 1992-09-29 | 2004-05-11 | Seiko Epson Corporation | System and method for handling load and/or store operations in a superscalar microprocessor |
DE69329778T2 (de) | 1992-09-29 | 2001-04-26 | Seiko Epson Corp., Tokio/Tokyo | System und verfahren zur handhabung von laden und/oder speichern in einem superskalar mikroprozessor |
US5410657A (en) * | 1992-10-09 | 1995-04-25 | International Business Machines Corporation | Method and system for high speed floating point exception enabled operation in a multiscalar processor system |
DE69325769T2 (de) * | 1992-11-04 | 2000-03-23 | Digital Equipment Corp., Maynard | Erkennung von Befehlssynchronisationsfehlern |
JP2549256B2 (ja) * | 1992-12-01 | 1996-10-30 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 浮動小数点プロセッサへデータを転送する方法及び装置 |
JP3182591B2 (ja) * | 1993-01-20 | 2001-07-03 | 株式会社日立製作所 | マイクロプロセッサ |
GB9305263D0 (en) * | 1993-03-15 | 1993-05-05 | Univ Westminster | Parrallel computation |
JP2596712B2 (ja) * | 1993-07-01 | 1997-04-02 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 近接した分岐命令を含む命令の実行を管理するシステム及び方法 |
CA2123442A1 (en) * | 1993-09-20 | 1995-03-21 | David S. Ray | Multiple execution unit dispatch with instruction dependency |
US6219773B1 (en) | 1993-10-18 | 2001-04-17 | Via-Cyrix, Inc. | System and method of retiring misaligned write operands from a 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 |
US5471598A (en) * | 1993-10-18 | 1995-11-28 | Cyrix Corporation | Data dependency detection and handling in a microprocessor with write buffer |
US5584009A (en) * | 1993-10-18 | 1996-12-10 | Cyrix Corporation | System and method of retiring store data from a write buffer |
US5740398A (en) * | 1993-10-18 | 1998-04-14 | Cyrix Corporation | Program order sequencing of data in a microprocessor with write buffer |
TW353732B (en) * | 1994-03-31 | 1999-03-01 | Ibm | Processing system and method of operation |
CN1048344C (zh) * | 1994-05-24 | 2000-01-12 | 禹成海 | 一种适度耦合多处理机系统的体系结构 |
US5465336A (en) * | 1994-06-30 | 1995-11-07 | International Business Machines Corporation | Fetch and store buffer that enables out-of-order execution of memory instructions in a data processing system |
US5666506A (en) * | 1994-10-24 | 1997-09-09 | International Business Machines Corporation | Apparatus to dynamically control the out-of-order execution of load/store instructions in a processor capable of dispatchng, issuing and executing multiple instructions in a single processor cycle |
US5805906A (en) * | 1996-10-15 | 1998-09-08 | International Business Machines Corporation | Method and apparatus for writing information to registers in a data processing system using a number of registers for processing instructions |
US5860014A (en) * | 1996-10-15 | 1999-01-12 | International Business Machines Corporation | Method and apparatus for improved recovery of processor state using history buffer |
US5870612A (en) * | 1996-10-15 | 1999-02-09 | International Business Machines Corporation | Method and apparatus for condensed history buffer |
US6070235A (en) * | 1997-07-14 | 2000-05-30 | International Business Machines Corporation | Data processing system and method for capturing history buffer data |
US6065086A (en) * | 1998-02-17 | 2000-05-16 | International Business Machines Corporation | Demand based sync bus operation |
US6564298B2 (en) | 2000-12-22 | 2003-05-13 | Intel Corporation | Front end system having multiple decoding modes |
US20070083192A1 (en) * | 2005-10-07 | 2007-04-12 | Eric Welch | Apparatus and method for ablation of targeted tissue |
TWI348652B (en) * | 2005-10-17 | 2011-09-11 | Via Tech Inc | Driver assisted asynchronous command processing |
US20070157030A1 (en) * | 2005-12-30 | 2007-07-05 | Feghali Wajdi K | Cryptographic system component |
US20070192571A1 (en) * | 2006-02-14 | 2007-08-16 | Feghali Wajdi K | Programmable processing unit providing concurrent datapath operation of multiple instructions |
CN102617431B (zh) * | 2011-01-28 | 2013-09-25 | 天津滨海索尔特生物技术中心有限公司 | 用无机碱提取盐藻中的β-胡萝卜素的方法 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3229260A (en) * | 1962-03-02 | 1966-01-11 | Ibm | Multiprocessing computer system |
US3896418A (en) * | 1971-08-31 | 1975-07-22 | Texas Instruments Inc | Synchronous multi-processor system utilizing a single external memory unit |
GB1441458A (en) * | 1972-06-28 | 1976-06-30 | Texas Instruments Inc | Stored programme data processing for parallel processing of programme segment |
US3793631A (en) | 1972-09-22 | 1974-02-19 | Westinghouse Electric Corp | Digital computer apparatus operative with jump instructions |
CH556576A (de) * | 1973-03-28 | 1974-11-29 | Hasler Ag | Einrichtung zur synchronisierung dreier rechner. |
FR2471631B1 (fr) * | 1979-12-11 | 1986-02-21 | Cii Honeywell Bull | Dispositif de synchronisation et d'affectation de processus entre plusieurs processeurs dans un systeme de traitement de l'information |
JPS6043535B2 (ja) * | 1979-12-29 | 1985-09-28 | 富士通株式会社 | 情報処理装置 |
JPS58114274A (ja) * | 1981-12-28 | 1983-07-07 | Hitachi Ltd | デ−タ処理装置 |
US4498136A (en) * | 1982-12-15 | 1985-02-05 | Ibm Corporation | Interrupt processor |
US4564901A (en) * | 1983-07-21 | 1986-01-14 | Burroughs Corporation | Method of performing a sequence of related activities via multiple asynchronously intercoupled digital processors |
JPH0744849B2 (ja) * | 1985-07-31 | 1995-05-15 | 株式会社ニコン | 超音波モータ |
JPS6246341A (ja) * | 1985-08-23 | 1987-02-28 | Hitachi Ltd | 付加プロセツサの入出力制御方法 |
US4763294A (en) * | 1985-12-19 | 1988-08-09 | Wang Laboratories, Inc. | Method and apparatus for floating point operations |
JP2610821B2 (ja) * | 1986-01-08 | 1997-05-14 | 株式会社日立製作所 | マルチプロセツサシステム |
JPS6365528A (ja) * | 1986-09-06 | 1988-03-24 | Nec Corp | コ・プロセツサ |
JPS63282528A (ja) * | 1987-02-04 | 1988-11-18 | Sharp Corp | 中央処理装置実行命令の検出方式 |
JP2778717B2 (ja) * | 1987-03-20 | 1998-07-23 | ディジタル イクイプメント コーポレーション | データ処理ユニット |
EP0312764A3 (de) * | 1987-10-19 | 1991-04-10 | International Business Machines Corporation | Datenprozessor mit mehrfachen Ausführungseinheiten zur parallelen Ausführung von mehreren Befehlsklassen |
US4937741A (en) * | 1988-04-28 | 1990-06-26 | The Charles Stark Draper Laboratory, Inc. | Synchronization of fault-tolerant parallel processing systems |
-
1989
- 1989-01-13 US US07/297,783 patent/US5075840A/en not_active Expired - Fee Related
- 1989-08-18 CA CA000608713A patent/CA1321655C/en not_active Expired - Fee Related
- 1989-11-02 AU AU44337/89A patent/AU618142B2/en not_active Ceased
- 1989-12-09 CN CN89109161A patent/CN1013067B/zh not_active Expired
- 1989-12-13 MY MYPI89001751A patent/MY105754A/en unknown
- 1989-12-13 KR KR1019890018447A patent/KR930004214B1/ko not_active IP Right Cessation
- 1989-12-13 PH PH39687A patent/PH30201A/en unknown
- 1989-12-20 GB GB8928776A patent/GB2227108A/en not_active Withdrawn
- 1989-12-20 EP EP89313401A patent/EP0377991B1/de not_active Expired - Lifetime
- 1989-12-20 DE DE68927911T patent/DE68927911T2/de not_active Expired - Fee Related
-
1990
- 1990-01-12 BR BR909000112A patent/BR9000112A/pt not_active Application Discontinuation
- 1990-01-12 JP JP2003662A patent/JP2645669B2/ja not_active Expired - Lifetime
-
1997
- 1997-07-23 HK HK97101597A patent/HK1000050A1/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
MY105754A (en) | 1995-01-30 |
US5075840A (en) | 1991-12-24 |
JP2645669B2 (ja) | 1997-08-25 |
BR9000112A (pt) | 1990-10-23 |
EP0377991A2 (de) | 1990-07-18 |
HK1000050A1 (en) | 1997-10-24 |
CA1321655C (en) | 1993-08-24 |
KR900012155A (ko) | 1990-08-03 |
KR930004214B1 (ko) | 1993-05-21 |
EP0377991B1 (de) | 1997-03-26 |
AU618142B2 (en) | 1991-12-12 |
GB2227108A (en) | 1990-07-18 |
PH30201A (en) | 1997-02-05 |
AU4433789A (en) | 1990-07-19 |
EP0377991A3 (de) | 1991-07-31 |
GB8928776D0 (en) | 1990-02-28 |
CN1044177A (zh) | 1990-07-25 |
CN1013067B (zh) | 1991-07-03 |
JPH02227769A (ja) | 1990-09-10 |
DE68927911D1 (de) | 1997-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE68927911T2 (de) | Datenverarbeitungssystem | |
DE69636861T2 (de) | Mikroprozessor mit Lade-/Speicheroperation zu/von mehreren Registern | |
DE68928677T2 (de) | Verfahren und digitaler Computer zur Vorverarbeitung mehrerer Befehle | |
DE3650413T2 (de) | Verfahren und Vorrichtung zur Annulierung eines Befehls. | |
DE69325086T2 (de) | Verfahren und System für spekulative Befehlsausführung | |
DE69126166T2 (de) | Programmierbare Steuerungsvorrichtung | |
DE69810064T2 (de) | Verfahren und Anordnung zur Veränderung der Durchführung eines Nachfolgebefehls in einem Dataprozessor | |
DE3686789T2 (de) | Vektorverarbeitungsgeraet. | |
DE68928812T2 (de) | Vorrichtung zur Auflösung von einer variablen Anzahl von möglichen Speicherzugriffskonflikten in einem Pipeline-Rechnersystem und Verfahren dazu | |
DE69719235T2 (de) | Prozessor und Verfahren zur spekulativen Ausführung von bedingten Verzweigungsbefehlen unter Verwendung einer von mehreren Verzweigungsvorhersageverfahren | |
DE69017178T2 (de) | Datenverarbeitungssystem mit Vorrichtung zur Befehlskennzeichnung. | |
DE68927371T2 (de) | Verfahren und Vorrichtung zur Verarbeitung von mehreren Zustandscodes wie für einen Parallel-Pipeline-Rechner | |
DE68927492T2 (de) | Verfahren und Vorrichtung zur gleichzeitigen Verteilung von Befehlen an mehrere funktionelle Einheiten | |
DE69028138T2 (de) | Mechanismus zur präzisen Behandlung von Ausnahmebedingungen in einem Prozessor mit gepaarten Befehlen | |
DE68926063T2 (de) | Verfahren und Gerät zur Steuerung von prozessoren mittels Vorhersagen von Ausnahmen bei der gleitkomma-Arithmetik | |
DE69033398T2 (de) | Rechnerarchitektur mit Mehrfachbefehlsausgabe | |
DE69033443T2 (de) | Mechanismus zur Verzweigungsrücksetzung in einem Prozessor mit gepaarten Befehlen | |
DE68927415T2 (de) | Kontextumschaltungsverfahren und -anordnung zur Verwendung in einem Vektorverarbeitungssystem | |
DE3751503T2 (de) | Datenprozessor in Pipelinestruktur mit der Fähigkeit mehrere Befehle parallel zu dekodieren und auszuführen. | |
DE69327637T2 (de) | Superskalar-Computersystem | |
DE69809450T2 (de) | Datenverarbeitungsvorrichtung | |
DE3789345T2 (de) | Erweiterte Gleitkommaoperationen zur Unterstützung der Emulation von Quellbefehlsausführungen. | |
DE69032635T2 (de) | Verfahren und Vorrichtung zur Erkennung von Betriebsmittelkonflikten in einer Pipeline-Verarbeitungseinheit | |
DE69418146T2 (de) | Temporärer Registersatz für einen superpipeline-superskalaren Prozessor | |
DE69429226T2 (de) | Absendung von Befehlen an mehrere Verarbeitungseinheiten |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |