DE3789345T2 - Erweiterte Gleitkommaoperationen zur Unterstützung der Emulation von Quellbefehlsausführungen. - Google Patents
Erweiterte Gleitkommaoperationen zur Unterstützung der Emulation von Quellbefehlsausführungen.Info
- Publication number
- DE3789345T2 DE3789345T2 DE3789345T DE3789345T DE3789345T2 DE 3789345 T2 DE3789345 T2 DE 3789345T2 DE 3789345 T DE3789345 T DE 3789345T DE 3789345 T DE3789345 T DE 3789345T DE 3789345 T2 DE3789345 T2 DE 3789345T2
- Authority
- DE
- Germany
- Prior art keywords
- instruction
- floating point
- target
- source
- register
- 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
- 238000013519 translation Methods 0.000 claims description 28
- 230000004044 response Effects 0.000 claims description 22
- 238000012545 processing Methods 0.000 claims description 11
- 238000000034 method Methods 0.000 claims description 10
- 238000012546 transfer Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 claims description 5
- 230000006872 improvement Effects 0.000 claims description 3
- 230000003139 buffering effect Effects 0.000 claims 2
- 238000013507 mapping Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 4
- 239000002243 precursor Substances 0.000 description 3
- 230000002547 anomalous effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- GGWBHVILAJZWKJ-KJEVSKRMSA-N ranitidine hydrochloride Chemical compound [H+].[Cl-].[O-][N+](=O)\C=C(/NC)NCCSCC1=CC=C(CN(C)C)O1 GGWBHVILAJZWKJ-KJEVSKRMSA-N 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000011664 signaling Effects 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
-
- 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/3017—Runtime instruction translation, e.g. macros
- G06F9/30174—Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
-
- 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
- G06F9/3879—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Debugging And Monitoring (AREA)
Description
- Diese Anmeldung enthält Hauptthemen, die mit der in der europäischen Patentanmeldung 87110756.1 mit dem Titel "ACCELERATED VALIDITY RESPONSE PERMITTING EARLY ISSUE OF INSTRUCTIONS DEPENDING UPON OUTCOME OF FLOATING POINT OPERATIONS" beschriebenen und beanspruchten Erfindung im Zusammenhang stehen.
- Diese Erfindung liegt in dem Bereich der Maschinenemulation und betrifft besonders eine Quelle, die den Betrieb einer Quell-CPU emuliert, indem sie CPU-Quellbefehle in CPU-Zielbefehle zur Aufgabe an und Ausführung durch eine Ziel-CPU übersetzt. Im speziellen betrifft die Erfindung Erweiterungen der Emulationsfähigkeit eines solchen Systems durch die Bereitstellung von Mitteln zur Beschleunigung der Übersetzungs- und Abgabefunktionen bei der Emulation von arithmetischen Gleitkomma-(GK)-Befehlen, welche die Ausführung von Register/Index-Gleitkommabefehlen (Befehle vom Typ RX) der Quelle durch die Ausführung von Register-zu-Register-Gleitkommabefehlen (Befehle vom Typ RR) des Ziels emulieren.
- Eine Emulation ist die Imitation des Betriebs einer ersten CPU ("Quelle") durch eine zweite CPU ("Ziel"). Die Ziel-CPU ist speziell programmiert und aufgebaut, um die Ausführung von Programmen, die für die Quell-CPU geschrieben wurden, zu gestatten. Ein für die Quell-CPU geschriebenes Programm umfaßt eine Folge von Quellbefehlen, die einer nach dem andern an die Ziel-CPU gegeben werden. Die Ziel-CPU reagiert auf jeden Quellbefehl mit der Ausführung eines oder mehrerer Zielbefehle.
- In der US-Patentschrift Nr. 4 587 612, Erfinder Fink et al., erteilt an den Inhaber der vorliegenden Erfindung, empfängt ein Emulator-Hilfsprozessor (EAP, emulation ass ist processor) einen Quellbefehlsstrom und bildet jeden Quellbefehl auf einen oder mehrere Zielbefehle ab, wobei die Zielbefehle an eine Befehlsverarbeitungseinheit (IPU, instruction processing unit) der Ziel-CPU weitergeleitet werden. In der obengenannten Patentschrift wandelt der EAP Mehrfeld-Quellbefehle in Mehrfeld-Zielbefehle um und leitet die Zielbefehle zur Verarbeitung und Absetzung an die IPU.
- Falls die Quell-CPU aus einer Maschine wie z. B. einem IBM 370 Host-Computer besteht (beschrieben in der US-Patentschrift Nr. 3 400 371, erteilt an den Inhaber der vorliegenden Erfindung), enthält der Quellbefehlssatz bekanntlich arithmetische Mehrfeld- Gleitkommabefehle, hauptsächlich vom RX-Typ. Quellbefehlsprogramme, die den Befehlssatz des IBM 370 verwenden, werden in bezeichnender Weise durch den Status eines Bedingungscodes (CC, condition code) bedingt, eines Anzeigers, der gemäß der Ausgabe bestimmter Befehle, unter denen sich arithmetische Gleitkommabefehle befinden, gesetzt wird. Falls ein Gleitkommabefehl des IBM 370 eine anomale Ausgabe erzeugt (z. B. ein Gesamtergebnis Null) oder eine anomale Operation auszuführen versucht (Division durch Null), wird ein Unterbrechungsanzeiger gesetzt, der für bestimmte Unterbrechungsprozeduren die Steuerung vom aus führenden Programm an ein Supervisorprogramm überträgt. Die Emulation der Verzweigungs- und Unterbrechungseigenschaften eines IBM 370 Quellprogramms erfordert, daß das Zielprogramm Bedingungscode und Unterbrechungsanzeiger beibehält, um Programmverzweigungen und -unterbrechungen wirkungsvoll abzubilden.
- Es wird zwar eingeräumt, daß die Entsprechung zwischen Quell- und Zielprogrammen hinsichtlich Verzweigungen und Unterbrechungen beibehalten werden muß, jedoch ist anerkannt, daß durch die Fähigkeit, den Status des Bedingungscodes und der Unterbrechungsanzeiger vor der Beendigung der gerade ausgeführten arithmetischen Gleitkommaoperationen zuverlässig vorherzusagen, die Emulationsgeschwindigkeit gesteigert werden kann. Allerdings muß jede derartige Steigerung nicht nur die Übersetzung von Quellin Zielbefehle, sondern auch den Prozeß der Abgabe der umgesetzten Zielbefehle berücksichtigen.
- Eine der möglichen Betriebsumgebungen des EAP aus der US-Patentschrift Nr. 4 587 612 belastet die Ausführung von Gleitkomma- Zielbefehlen durch bestimmte architektonische Engpässe. Zu diesem Aspekt gehört, daß die Befehlseinheit und die Gleitkommaeinheit der Ziel-CPU über einen 32-Bit breiten Datenbus miteinander verbunden sind. Wenn RX-Gleitkomma-Quellbefehle emuliert werden, muß ein im X-Feld des Quellbefehls bezeichneter Operand aus dem Speicher der FPU zur Verfügung gestellt werden. Die Übergabe der Zuständigkeit für die Beschaffung des X-Feld-Operanden aus dem Speicher verlängert die Befehlsausführungszeit. Die Ausführung eines Gleitkomma-Zielbefehls wird weiter verlängert, wenn der Quellbefehl vom erweiterten RX-Typ ist, der zwei sequentielle Speicherzugriffe erfordert, um über den 32-Bit-Datenbus einen 64-Bit-Operanden zu erhalten.
- Die Erfindung findet Anwendung in einem System zur Emulation der Ausführung von CPU-Quellbefehlen, wobei das System eine Ziel-CPU mit eingeschlossenem Speicher, eine Anzahl von funktionellen Einheiten und eine Zielbefehlseinheit, die übersetzte Zielbefehle zur Ausführung durch funktionelle Zieleinheiten verarbeitet und abgibt, einschließt. Das Emulationssystem enthält auch eine Befehlsübersetzungseinheit (Übersetzer) zum Empfang und zur Umsetzung von Quellbefehlen in Zielbefehle. Die Erfindung besteht in einer Verbesserung des Systems und hat die Form einer Vorrichtung zur Beschleunigung der Übersetzung und Ausführung von Gleitkommabefehlen. Dazu gehört, daß die Erfindung im Übersetzer einen Token-Generator enthält, der als Antwort auf die Übersetzung eines Gleitkomma-Quellbefehls ein Gleitkomma-Wartetokensignal erzeugt. Ein Ergebnisgenerator in einer funktionellen Gleitkommaeinheit der Ziel-CPU erzeugt Beendigungssignale, die noch vor der Beendigung der Aufführung der abgegebenen Befehle die Ausgabe der abgegebenen Gleitkomma-Zielbefehle anzeigen. Das System enthält Systemmittel, um als Antwort auf das Tokensignal die Übersetzung und Abgabe von Befehlen zu unterdrücken. Schließlich empfängt eine im Übersetzer angeordnete und mit den Systemmitteln verbundene mehrstufige Warteschlange das Wartetokensignal, wenn es erzeugt wird, zur Zwischenspeicherung und löscht das Tokensignal als Antwort auf die Beendigungssignale, die den Ausgang des vom Gleitkomma-Quellbefehl übersetzten Gleitkomma-Zielbefehls anzeigen.
- Die Erfindung geht auf eine Anzahl von noch nicht vorweggenommenen Beobachtungen zurück. Die Erfinder haben folgendes beobachtet: Wenn die Befehlsübersetzung und Zielbefehlsabgabe auf eine beschleunigte Anzeige der Ergebnisse der Ausführung von Gleitkomma-Zielbefehlen reagieren, kann die Übersetzung und Abgabe, und deshalb die Emulation, beschleunigt werden; wenn ein X-Feld-Operand eines RX-Quellbefehls vor der Abgabe des übersetzten Zielbefehls erhalten werden kann, kann ein RX-Gleitkomma-Quellbefehl durch die Ausführung eines RR-Zielbefehls emuliert werden, wodurch ein Speicherzugriffszyklus nach der Befehlsabgabe vermieden wird; und wenn die zwei Hälften des X-Feld-Operanden eines erweiterten Gleitkomma-Quellbefehls in aufeinanderfolgenden Speicherzugriffszyklen erhalten werden, kann die Emulation des Quellbefehls als ein Satz von Gleitkomma- Zielbefehlen emuliert werden, die den Operanden übertragen und die Ausführung einer Folge von RR-Zielbefehlen initiieren, was die Anzahl der zur Emulation des Quellbefehls erforderlichen Zyklen reduziert.
- Primäres Ziel der vorgestellten Erfindung ist die Verbesserung des Betriebs eines Systems zur Emulation der Ausführung eines CPU-Quellprogramms, welches arithmetische Gleitkommabefehle vom RX-Typ enthält, indem-die Übersetzung von Quell- zu Zielbefehlen und die Abgabe von umgesetzten Zielbefehlen beschleunigt wird.
- Ein weiteres Ziel der vorgestellten Erfindung ist die Verbesserung des Betriebs eines solchen Emulationssystems durch die Reduzierung der erforderlichen Zeit für CPU-Zieloperationen, die die Ausführung von arithmetischen RX-Gleitkomma-Quellbefehlen emulieren.
- Diese und andere Ziele und weitere dazugehörende Vorteile dieser Erfindung werden deutlicher, wenn die ausführliche Beschreibung in Verbindung mit den unten beschriebenen Zeichnungen gelesen wird.
- Fig. 1 veranschaulicht die architektonische Anordnung eines Systems zur Emulation eines von einer Quell-CPU des Typs IBM 370 gelieferten Programms.
- Fig. 2 veranschaulicht in näheren Einzelheiten funktionelle Elemente des Emulator-Hilfsprozessors (EAP) und der Befehlsverarbeitungseinheit (IPU) zur Beschleunigung der Funktionen für die Übersetzung und Zielabgabe als Antwort auf beschleunigte Beendigungsanzeigen, die von einer Gleitkommaeinheit (FPU, floating point unit) vor der Beendigung von arithmetischen Gleitkomma-Zieloperationen geliefert werden.
- Fig. 3 veranschaulicht die in der IPU und der FPU enthaltenen Funktionselemente zur Unterstützung der Emulation von RX-Gleitkomma-Quellbefehlen durch RR-Gleitkomma-Zielbefehle.
- Fig. 4 ist ein Flußdiagramm, das den von der Anordnung in Fig. 3 bei der Emulation von kurzen RX-Quellbefehlen ausgeführten Verfahrensablauf erläutert.
- Fig. 5 ist ein Flußdiagramm, das den von der Anordnung in Fig. 3 bei der Emulation von erweiterten RX-Gleitkomma- Quellbefehlen ausgeführten Verfahrensablauf erläutert.
- Fig. 1 veranschaulicht die Anwendungsumgebung der Erfindung. Diese Umgebung schließt einen Computer mit reduziertem Befehlssatz (RISC, reduced instruction set computer) ein, der die Ziel- CPU bildet. Wie Radin in "The 801 Minicomputer", veröffentlicht im IBM Journal of Research and Development, Band 27, Nr. 3, Mai 1983, auf den Seiten 237-246 beschreibt, enthält ein solcher Computer getrennte Befehls- und Datenströme, die jeweils von einem Cache gespeist werden. In diesem Computer kommen die Befehle aus einem Befehlscache und die Daten aus einem davon getrennten Datencache, die beide in einer Befehlsverarbeitungseinheit (IPU) 10 angeordnet sind und von dieser verwaltet werden. Die Inhalte der Caches werden mittels IPU-Zugriff auf einen Speicher 12 ergänzt. Die IPU 10 verarbeitet Cache-Befehle und gibt sie zur Ausführung durch eine oder mehrere Verarbeitungseinheiten (PU, processing unit) 14 und eine Gleitkommaeinheit (FPU) 16 ab. Da die Einheiten 10, 12, 14 und 16 die Ziel-CPU bilden, werden die von der IPU 10 abgegebenen Befehle als Zielbefehle bezeichnet und an die Verarbeitungseinheiten an einem Zielbefehlsbus 19 abgegeben. Operanden- und Resultats-(O/R)daten werden zwischen der IPU 10 und den Verarbeitungseinheiten 14 und 16 über den O/R-Datenbus 18 ausgetauscht.
- In der hier vorausgesetzten Umgebung hat der exemplarische 801- Computer eine 32-Bit-Architektur, die sich in einer entsprechenden Breite für die Daten- und Befehlsbusse 18 und 19 widerspiegelt. Außerdem enthält die IPU 10 zusätzlich zum Datencache eine Gruppe von Allgemeinregistern.
- Bei der Verwendung als Emulator arbeitet die Ziel-CPU in Verbindung mit einem Emulator-Hilfsprozessor (EAP) 20. Im Emulationsmodus wird ein aus Befehlen von einer Quell-CPU bestehendes Programm durch einen Teil des Datencaches in der IPU 10 über den Datenweg 21, 10, 22 zum EAP 20 geleitet. Im EAP 20 erfolgt die Umsetzung der Quellbefehle in Zielbefehle und die Einsetzung in einen Ziel-CPU-Befehlsstrom, der die von der IPU 10 ausgeführte normale Ausführungsfolge der Ziel-CPU-Befehle nicht stört. Der umgesetzte Befehlsstrom wird auf dem Datenweg 23 an die IPU 10 bereitgestellt. Die Zusammenarbeit von IPU 10 und EAP 20 bei der Durchführung der Befehlsumsetzung und bei der Erzeugung des Zielbefehlsstroms wird im erwähnten Patent von Fisk deutlich erklärt und soll hier nicht wiederholt werden. Allerdings müssen bestimmte, mit der Befehlsumsetzung zusammenhängende Strukturen und Funktionen für eine angemessenen Erklärung der Erfindung erläutert werden.
- Es sei nun auf Fig. 2 verwiesen, wo der EAP 20, die IPU 10 und die FPU 16 gezeigt werden. Die IPU wird nur zur Erleichterung der folgenden Diskussion in zwei funktionellen Abschnitten 10a und 10b gezeigt; tatsächlich besteht die IPU 10 aus einer einzigen Einheit. In Fig. 2 umfaßt Teil 10a der TPU 10, der über 21 den Quellbefehlsstrom aufnimmt, einen Datencache 24, in den der Quellstrom mündet, und einen Befehlscache 25, der Mikrobefehle enthält. Der Quellbefehlsstrom wird über die Signalleitung 22 aus dem Datencache an den EAP 20 geliefert und Befehl um Befehl durch ein Quellbefehlsregister (SIR, source instruction register) 26 geschleust, wobei der Inhalt des SIR die Grundlage für den Betrieb eines Befehlsabbildungsschaltkreises 27 bildet. Wie im Patent von Fisk erklärt wird, erzeugt der Befehlsabbildungsschaltkreis 27 die Adresse eines nachfolgenden Befehls, die an den Befehlscache 25 in der IPU 10 gegeben wird und die zu der Bereitstellung eines Mikrobefehls aus dem Befehlscache führt, wobei der Mikrobefehl auf der Signalleitung 30 an den EAP geliefert wird. Der Mikrobefehl wird auf Signalleitung 30 in das Mikrobefehlsregister (MIR, microinstruction register) 31 des EAP geschleust. Wie das Patent von Fisk erklärt, enthält der im Register 31 zwischengespeicherte Mikrobefehl auch ein Feld mit dem nachfolgenden Befehl, das auf Leitung 29 die Adresse des Folgebefehls erzeugen kann. Auf diese Weise kann ein Quellbefehl in Register 26 zur Erzeugung eines einzelnen oder einer Folge von Mikrobefehlen führen, die auf Signalleitung 30 in den EAP eingespeist werden. Damit zusammenhängend kann die Emulation eines Quellbefehls den Abruf einer Mikrobefehlsfolge aus dem Befehlscache und die Ausführung einer resultierenden Zielbefehlsfolge durch den Zielprozessor mit sich ziehen. Der dem Register 31 zugeleitete Mikrobefehl besteht aus einem Steuerteil und einem Zielbefehlgerüst. Das Zielbefehlgerüst wird auf Signalleitung 23a an ein Befehlsmischregister 32 in der IPU 10 geleitet. Wie das Patent von Fisk beschreibt, besteht das Befehlsgerüst aus einem OP-Codefeld sowie Register- und Verschiebungsfeldern. Der Steuerteil des Mikrobefehls in Register 31 und die Operandenfelder des Quellbefehls in Register 26 werden von dem Abbildungsschaltkreis 27 genutzt, um auf Null gesetzte Operanden- und/oder Steuerfelder des Befehlsgerüsts in einem Befehlsmischregister 32 in der TPU 10 aufzufüllen. Die Füllinformationen werden vom Abbildungsschaltkreis auf der Signalleitung 23b bereitgestellt. Auf diese Weise bilden die Signalleitungen 23a und 23b die Signalleitung 23 in Fig. 1, auf der der Zielbefehlsstrom an die IPU 10 geleitet wird. Wenn von der IPU 10 ein Befehl abgegeben wird, wird er vom Befehlsmischregister 32 an ein Befehlsregister (I REG, instruction register) 33 übertragen. Wenn sich der Zielbefehl im I-Register 33 befindet, führt die IPU 10 eine Reihe von untenstehend zusammengefaßten Befehlsabgabeoperationen aus.
- Der Betriebsumgebung der Erfindung nimmt einen Quellbefehlsstrom mit Mehrfeldbefehlen an, wie sie im CPU-Befehlssatz des IBM 370 enthalten sind. Mindestens ein charakteristisches Format in diesem Satz wird als RX-(Register/Index)-Format bezeichnet. Das RX- Format hat die folgende Form:
- OP R&sub1; X&sub2; B&sub2; D&sub2;
- In einem RX-Befehl wird die Operation mit dem OP-Codefeld angezeigt. Ein erster Operand befindet sich in Register R&sub1;, während der zweite Operand an einem Platz mit der Adresse X&sub2; + B&sub2; + D&sub2; im Hauptspeicher steht. X&sub2; und B&sub2; beziehen sich auf Funktionen von Allgemeinregistern, bei der Verwendung durch den Befehl als Index- und Basisregister, während D&sub2; eine Verschiebung ist. Wenn der Befehl ausgeführt wird, wird das Ergebnis in Register R&sub1; plaziert.
- Wie bekannt, enthalten Befehle vom RX-Typ eine Teilmenge von Befehlen mit arithmetischen Operationen, die auf Gleitkommaoperanden angewandt werden. Gleitkommaarithmetik ist allgemein bekannt. Gleitkommadatenformat, GK-Terminologie und GK-Betrieb werden in dem Übersichtsartikel von Anderson et al. mit dem Titel "The IBM System/360 Model 91: Floating-Point Execution Unit", erschienen im IBM Journal vom Januar 1967, auf den Seiten 34-53 und in der erwähnten verbundenen Patentanmeldung ausführlich besprochen.
- Arithmetische Gleitkomma-Quellbefehle vom RX-Typ werden vom EAP 20 zur Abgabe durch die IPU 10 und zur Ausführung durch die FPU 16 in arithmetische Gleitkomma-Zielbefehle umgesetzt.
- Ein arithmetischer Gleitkomma-Quellbefehl vom RX-Typ kann ein Ergebnis erzeugen, das den Bedingungscode (CC) verändert oder die Anforderung einer Programmunterbrechung (IR, interrupt request) bewirkt. Der Status des Bedingungscodes bedingt bekanntlich bestimmte Verzweigungen bei der Ausführung des Quellprogramms. Eine Unterbrechungsanforderung wird zu einer Übertragung der Programmsteuerung weg vom ausführenden Programm führen. Deshalb müssen diese Anzeiger bei der Emulation eines Quellbefehlsstroms berücksichtigt werden. Im EAP 20 wird der momentane Status von CC und IR in einem Statusregister 34 auf rechterhalten. Der Befehlsabbildungsschaltkreis 27 untersucht den Inhalt des Statusregisters 34, um bei Bedarf Verzweigungs- und Unterbrechungstätigkeiten zu übernehmen.
- Die Quelle für CC und IR ist unter anderem die FPU 16, in der Gleitkommabefehle, welche die Anzeiger beeinflussen, ausgeführt werden. CC und IR werden auf den Signalleitungen 35 bzw. 36 geliefert. Ebenfalls von der FPU 16 wird ein Signal zur beschleunigten Gültigkeitsantwort (AVR, accelerated validity response) auf Signalleitung 38 geliefert. Die Abgabe der AVR von der FPU 16 erfolgt zum Zeitpunkt, zu dem CC und IR den Ausgang eines gerade von der FPU 16 ausgeführten arithmetischen Gleitkommabefehls korrekt wiedergeben. Wie in der US-Patentanmeldung dargelegt, kann die FPU 16 den Status von CC und IR vor der Beendigung eines arithmetischen Gleitkommabefehls, dessen Ergebnis diesen Status bestimmt, setzen. Sobald CC und IR erzeugt wurden, gibt die FPU 16 die AVR ab und signalisiert so dem EAP 20, daß der Inhalt von Register 34 untersucht werden kann. Der Zeitpunkt des Auftretens der AVR kann im Bereich von kurz nach Beginn eines arithmetischen Gleitkommabefehls bis zum Zeitpunkt der Beendigung eines Befehls liegen, wobei letzterer Zeitpunkt der ist, zu dem CC und IR üblicherweise erfaßt werden.
- Um die von der FPU 16 bewirkte beschleunigte Erzeugung von CC und IR vorteilhaft zu nutzen, versieht die Erfindung den EAP 20 mit einem Wartetoken-Schaltkreis, der den EAP 20 und die IPU 10 benachrichtigt, sobald ein arithmetischer Gleitkomma-Zielbefehl übersetzt und abgegeben wurde, die weitere Übersetzung und Abgabe von Zielbefehlen bis zur Erzeugung von CC und IR als Antwort auf die Ausführung des abgegebenen arithmetischen Gleitkomma- Zielbefehls unterdrückt, und den EAP 20 und die IPU benachrichtigt, sobald CC und IR erzeugt wurden, wodurch eine frühzeitige Wiederaufnahme der Befehlsübersetzung und -abgabe zugelassen wird.
- Wenn das Register 26 einen arithmetischen Gleitkomma-Quellbefehl enthält, erzeugt der Befehlsabbildungsschaltkreis 27 die erste Adresse einer für die Übersetzung des Quellbefehls passenden Mikrobefehlsfolge. Alle als Ergebnis eines arithmetischen Gleitkommabefehls erzeugten Mikrobefehlsfolgen enden mit einem Mikrobefehl WAIT. Der Mikrobefehl WAIT ist das Signal an die Erfindung, mit der Erzeugung eines Wartetokens zu beginnen. Wenn in dieser Situation ein arithmetischer Gleitkomma-Quellbefehl in Register 26 steht, wird sein OP-Codefeld an einen herkömmlichen Decoder (D) 40 gegeben, der ein erstes Token-Vorläufersignal aktiviert. Wenn der Mikrobefehl WAIT am Ende der erzeugten Folge bei 31 registriert wird, wird der OP-Code des Mikrobefehls ebenfalls an den Decoder 40 geliefert, der ein zweites Token-Vorläufersignal erzeugt. Ein Koinzidenzdetektor (CD) 42 reagiert auf die zwei Token-Vorläufersignale mit der Aktivierung eines Signals WAIT TOKEN auf Signalleitung 43. Das Signal WAIT TOKEN wird an eine Warteschlange 45 für Tokens geleitet, die aus einer mehrstufigen Zwischenregisterfolge mit Zwischenregistern 46 und 47 besteht. Wenn der Mikrobefehl WAIT im Mikrobefehlsregister 31 steht, wird dem Befehlsmischregister 32 über Signalleitung 23a das Gerüst eines G1eitkomma-Zielbefehls eingegeben, während die Daten des Operandenfeldes des Befehls vom Befehlsabbildungsschaltkreis 27 auf Signalleitung 23b geliefert werden. Das Signal WAIT TOKEN wird mit Hilfe einer Phase (CLK A) eines mehrphasigen Durchleitungstaktgebers vom Zwischenregister 46 zum Zwischenregister 47 getaktet. Wenn das Signal WAIT TOKEN in das Zwischenregister 47 gelangt, aktiviert das Zwischenregister ein Signal HOLD, das an den Befehlsabbildungsschaltkreis 27, die Befehlsmisch- und Befehlsregister 32 und 33 sowie an das Statusregister 34 angelegt wird. Das Signal HOLD verhindert eine Veränderung von Daten in den Registern 32, 33 und 34, solange das Signal HOLD aktiv ist. Zusätzlich setzt das Signal HOLD den Betrieb des Befehlsabbildungsschaltkreises 27 aus.
- Gleichzeitig mit der Übertragung des Signals WAIT TOKEN in das Zwischenregister 47 als Reaktion auf einen zweiten Mehrphasentakt (CLK B) wird der Gleitkomma-Zielbefehl vom Befehlsmischzum Befehlsregister 33 in der IPU 10 verschoben. Im Befehlsregister 33 wird der Befehl abgegeben und an die FPU 16 gegeben. Die FPU 16 übernimmt die Operationen zur Ausführung des abgegebenen Befehls und bewirkt auch das Setzen von CC und IR hin zu dem Status, der den Ausgang des ausgeführten Befehls widerspiegelt. Sobald CC und IR von der FPU 16 erzeugt worden sind, wird die AVR abgegeben, was das Zwischenregister 47 löscht und dadurch das Signal HOLD deaktiviert.
- Sobald das Signal HOLD deaktiviert ist, werden die momentanen CC und IR von der FPU 16 in das Statusregister 34 eingegeben. Wenn der Eintrag erfolgt ist, untersucht der Befehlsabbildungsschaltkreis 27 den Inhalt von Statusregister 34, um eventuell erforderliche Verzweigungs- oder Unterbrechungsoperationen durchzuführen. Im Anschluß an die Deaktivierung des Signals HOLD und die Erzeugung des nachfolgenden Befehlsgerüsts wird ein Mischbefehl in Register 32 stehen und zur Abgabe an das Befehlsregister 33 übertragen.
- Dem Fachmann wird klar sein, daß der Schaltkreis 45, WAIT TOKEN, auf die Beschleunigung der AVR reagiert und es gestattet, daß die Umsetzung und die Abgabe von Zielbefehlen bereits vor der Beendigung eines gerade ausgeführten arithmetischen Gleitkomma- Zielbefehls stattfinden. Der Fachmann wird verstehen, daß dieser beschleunigte Betrieb den gleichzeitigen Ablauf von Operationen im Emulator von Fig. 1 nur verbessern kann und dadurch die Gesamtbetriebsgeschwindigkeit erhöht.
- Der Bezug auf Fig. 3 wird das Verständnis dafür wecken, wie die Erfindung das zweite der genannten Ziele erreicht: Die Verminderung der Zeit, die zur Ausführung von Ziel-Maschinenbefehlen, welche die Ausführung von arithmetischen Gleitkomma-Quellbefehlen vom RX-Typ emulieren, erforderlich ist. In Fig. 3 enthält die FPU 10 zusätzlich zum Befehlsregister 33 eine Gruppe von Allgemeinregistern (GPR, general purpose register) 50, einen Decodier-/Steuerungsschaltkreis 52 und ein Multiplexerpaar (MUX) 54, 56. Die Allgemeinregister werden für Befehlsverarbeitungsoperationen in der IPU 10 verwendet. Der Decodier-/Steuerungsschaltkreis empfängt auf herkömmliche Weise OP-Codeinformationen vom OP-Feld des Zielbefehls in Register 33 und Informationen im D-Feld des Befehls. Das D-Feld gibt eine auszuführende Steuerungsoperation an und identifiziert die für die Ausführung zuständigen Steuereinheit. Wenn er angesprochen wird, erzeugt der Decodier-/Steuerungsschaltkreis 52 Steuersignale für die MUXer 54, 56 und die GPRs 50, um den vom OP-Code angezeigten Befehl auszuführen. Wenn eine Befehlsverarbeitungsoperation erforderlich ist, identifiziert das D-Feld den Decodier-/Steuerungsschaltkreis 52 und ermöglicht dem Schaltkreis, eine bestimmte Operation auszuführen. Eine solche Operation schließt aus dem Speicher entnommene Daten ein, die den Betrieb von MUX 54 zur Weiterleitung der entnommenen Daten zu einem festgelegten GPR mit sich ziehen. Wenn Daten über den O/R-Datenbus 18 ausgetauscht werden sollen, betreibt der Schaltkreis 52 den MUX 56, um die Daten weiterzuleiten, und bedient ebenfalls ein GPR, um die Daten zu entnehmen oder aufzunehmen. Die Erweiterung von Operationen, welche vom Decodier-/Steuerungsschaltkreis 52 ausgeführt werden, schließt auch einen-Direktladebefehl LOAD IMMEDIATE ein, der den Eintrag eines Wertes aus einem der Registerfelder (RT, RA oder RB) des in Register 33 stehenden Zielbefehls in ein vorher festgelegtes GPR-Register bewirkt.
- Fig. 3 veranschaulicht auch die FPU 16 in weiteren Einzelheiten. Die FPU 16 enthält eine Steuereinheit 60, die vom D-Feld eines abgegebenen Zielbefehls benannt werden kann und die den Betrieb von FPU-Betriebsmitteln steuern und synchronisieren kann, um die Ausführung eines im OP- und D-Feld des abgegebenen Zielbefehls spezifizierten Befehls zu steuern. Die FPU hat interne Betriebsmittel einschließlich einer Gruppe von Gleitkommaregistern (FPR, floating point register) 62. Die FPRs 62 umfassen eine Vielzahl von 64-Bit-Allgemeinregistern zur temporären Speicherung der Operanden und Ergebnisse der von der FPU 16 durchgeführten Gleitkommaoperationen. Arithmetische und logische FPU-Operationen werden von Ausführungseinheiten (X) 64 und 65 ausgeführt. Wie bekannt, können solche Einheiten z. B. eine Multiplikations/Divisionseinheit, eine Additions-/Subtraktions-/Verschiebeeinheit und eine Einheit zur Durchführung von Wurzeloperationen einschließen. Da die IPU und andere, ihr zugeordnete Funktionseinheiten in eine 32-Bit Daten- und Befehlsarchitektur eingebettet sind, ist die Datenschnittstelle 16 der FPU ein 32-Bit Schnittstellenregister (IR) 66, das Daten mit dem 32-Bit Datenbus 18 austauscht.
- Mit Bezug auf sowohl Fig. 3 als auch Fig. 4 kann nun der Betrieb der Erfindung bei der Emulation "kurzer" arithmetischer Gleitkomma-Quellbefehle vom RX-Typ verstanden werden. Der Begriff "kurz" bedeutet, daß die Operanden eines RX-Befehls eine Länge von 32 Bit haben. Daher kann die Datenschnittstelle 66 zwischen IPU 10 und FPU 16 ein vollständiges Operandenresultat in einem einzigen Zyklus übertragen. Wenn in Schritt S1 von Fig. 4 ein kurzer RX-Quellbefehl in den EAP gelangt, wird der EAP eine Mikrobefehlsfolge auslösen, die die Bereitstellung eines Befehls LOAD IMMEDIATE an die IPU 10 einschließt, was die IPU als ausführende Einheit festlegt. Der Befehl wird in einem seiner Registerfelder (RT, RA oder RB) die der Summe der X&sub2;-, B&sub2;- und D&sub2;- Felder des RX-Befehls entsprechenden Speicheradresse mit sich führen. Diese Adresse wird in GPRi geladen. Im Verlauf der Mikrobefehlsfolge wird als nächstes ein LOAD-Befehl an die IPU bewirken, daß der an der in GPRi registrierten Adresse gespeicherte Operand nach GPRj geladen wird. Dies ist Schritt S2 in Fig. 4. Nun führt der abschließende Befehl der Mikrobefehlsfolge dazu, daß ein arithmetischer Gleitkomma-Zielbefehl in das Register 33 zur Abgabe geladen wird. Der abgegebene Befehl wird als ein erweiterter RX-Zielbefehl (ERX-Befehl) des Typs "kurz" bezeichnet. Ein solcher Befehl bewirkt, daß der IPU-Steuerschaltkreis 52 den Inhalt von GPRj, d. h. den X-Feld-Operanden des RX- Quellbefehls, auf den Datenbus 18 gibt. Die FPU empfängt und decodiert den abgegebenen Befehls als arithmetischen Registerzu-Register (RR) Gleitkommabefehl, bei dem der erste Operand in dem vom RA-Feld des Befehls bezeichneten FPR und der zweite Operand in dem vom RB-Feld des abgegebenen Befehls bezeichneten Schnittstellenregister 66 steht. Das Ergebnis der Ausführung des Zielbefehls wird in dem im RT-Feld des Befehls festgelegten FPR plaziert.
- Das Verfahren gemäß Fig. 4 ist bei der Emulation von arithmetischen Gleitkomma-Quellbefehlen vom RX-Typ mittels der Ausführung von Register-zu-Register Gleitkomma-Zielbefehlen effizient. Ohne die RX-Verbesserung gemäß Fig. 4 wäre die Einfügung des zusätzlichen Schritts der Übertragung des im GPRj gehaltenen Operanden an ein Gleitkommaregister und der anschließenden Ausführung eines Register-zu-Register Gleitkommabefehls erforderlich. Der Zusatzschritt würde zwischen die Schritte S2 und S3 von Fig. 4 eingefügt werden.
- Nun wird der Bezug auf Fig. 3 und 5 verständlich machen, wie die Erfindung bei der Emulation eines arithmetischen Gleitkomma- Quellbefehls mit einem dazugehörigen langen (64-Bit) Operanden arbeitet. In der vom EAP als Antwort auf einen erweiterten RX- Befehl durchgeführten Mikrobefehlsfolge wird die Abfolge in Fig. 4 zunächst, in Schritt S10, von der Bereitstellung eines LOAD IMMEDIATE Zielbefehls zur Ausführung durch die IPU gefolgt, wodurch die Adresse des X-Feldes des RX-Befehls in GPRi eingetragen wird. Es sollte verstanden werden, daß die Adresse in GPRi einen Doppelwortoperanden mit 64 Bit definiert. Auf den LOAD IMMEDIATE Befehl folgend werden daher in Schritt S11 und S12 nacheinander zwei LOAD Befehle ausgesandt, wodurch die IPU veranlaßt wird, zuerst die vier höherwertigen (HO, high order) Bytes des X-Feld-Operanden in GPRj und dann die vier niederwertigen (LO, low order) Bytes des Operanden in GPRk zu laden. In Schritt S13 besteht der vorletzte Befehl, der als Ergebnis der vom EAP ausgeführten Mikrobefehlsfolge an die IPU geliefert wird, aus einem erweiterten RX-Gleitkommabefehl (ERX-Befehl) des Typs "lang", der an die FPU geleitet werden muß. Der Befehl wird von der FPU im wesentlichen als ein erweiterter Register- zu- Register Befehl mit einem Paar von 64-Bit Operanden erkannt, von denen einer in der vom RA-Feld des Befehls bezeichneten FPR gespeichert ist. Die FPU erhält den zweiten Operanden aus dem Schnittstellenregister 66. Der zweite Operand wird durch das Schnittstellenregister 66 an die FPU geschleust, indem in Schritt S13 zuerst zusammen mit der Abgabe des Befehls die Übertragung der vier höherwertigen Bytes in GPRj und dann als Antwort auf den aus der Mikrobefehlsfolge herrührenden abschließenden Zielbefehl in Schritt S14 die Übertragung der vier niederwertigen Bytes erfolgt. Der abschließende Befehl wird als FINRX bezeichnet und nur von der IPU ausgeführt. Die Befehlsausführung besteht aus der Übertragung der vier niederwertigen Bytes von GPRk zum Schnittstellenregister 66. Auf diese Weise gestattet die Ausführungsabfolge gemäß Fig. 5 eine wirkungsvolle Emulation eines erweiterten RX-Gleitkomma-Quellbefehls mittels einer erweiterten Register-zu-Register Gleitkommaoperation. Der Pseudobefehl FINRX paßt die Emulations folge an die 32-Bit Architektur der Zielmaschine an.
Claims (5)
1. Verbesserung zur Beschleunigung der Übersetzung und
Ausführung von Quellbefehlen in einem System zur Emulation der
Ausführung von CPU-Quellbefehlen, das einen Speicher (12),
eine Zielbefehlseinheit (10) zur Verarbeitung und Abgabe von
übersetzten Zielbefehlen, Zielfunktionseinheiten (14, 16)
zur Ausführung von Zielbefehlen und eine
Befehlsübersetzungseinheit (Übersetzer) (20) zum Empfang und zur Umsetzung
von Quellbefehlen in Zielbefehle enthält, wobei diese
Verbesserung gekennzeichnet ist durch:
Mittel (40, 42) im Übersetzer (20) zur Erzeugung eines
Gleitkomma-Tokensignals als Antwort auf die Übersetzung
eines arithmetischen Gleitkomma-Quellbefehls;
Ergebnismittel in der Gleitkommaeinheit zur Erzeugung von
Beendigungssignalen (AVR), die das Ergebnis des als Antwort
auf die Übersetzung abgegebenen Gleitkomma-Zielbefehls
anzeigen und vor der Beendigung der Ausführung des abgegebenen
Gleitkomma-Zielbefehls erzeugt werden;
ein mit den Systemelementen verbundenes Mittel für eine
mehrstufige Warteschlange (45) in diesem Übersetzer zum
Empfang und zur Weiterleitung des Tokensignals hin zu einem
Wartesignalpuffer als Antwort auf die Übersetzung und zum
Löschen des Wartetokensignals aus diesem Wartesignalpuffer
als Antwort auf das Beendigungssignal; und
mit dem Wartesignalpuffer verbundene Systemmittel (10b, 27)
zur Unterdrückung der Übersetzung und Abgabe von Befehlen,
solange das Wartetokensignal in dem Wartesignalpuffer
gehalten wird.
2. Das System gemäß Anspruch 1, wobei der arithmetische
Gleitkomma-Quellbefehl ein Befehl vom RX-Typ und der Zielbefehl
ein auf die Operanden des RX-Befehls anwendbarer RR-Befehl
ist, das ferner umfaßt:
ein Register (50) in der Befehlseinheit (10) zum Empfang
eines vom X-Feld des RX-Befehls bezeichneten
Gleitkommaoperanden;
ein Datenschnittstellenmittel (66) in der Gleitkommaeinheit,
das selektiv mit diesem Register verbunden werden kann, um
den Operanden in die Gleitkommaeinheit zu puffern; und
Mittel (52, 54, 56) in der Befehlseinheit zum Erhalt des
Operanden von einem vom X-Feld bezeichneten Ort im Speicher
vor der Abgabe des RR-Zielbefehls und zur Verbindung des
Datenschnittstellenmittels mit dem erwähnten Register, um
den Operanden gleichzeitig mit dem abgegebenen RR-Befehl zu
übertragen.
3. Das System gemäß Anspruch 1, wobei der Quellbefehl ein
erweiterter Befehl vom RX-Typ und der Zielbefehl ein auf die
Operanden des RX-Befehls anwendbarer Befehl vom RR-Typ ist,
das weiter umfaßt:
erste und zweite Register (50) in der Befehlseinheit (10)
zum Empfang der ersten bzw. zweiten Hälfte eines vom X-Feld
des RX-Befehls bezeichneten erweiterten Gleitkommaoperanden;
ein Datenschnittstellenmittel (66) in der Gleitkommaeinheit,
die selektiv mit dem ersten oder zweiten Register verbunden
werden kann, um den ersten und zweiten Operanden
nacheinander in die Gleitkommaeinheit zu puffern; und
Mittel (52, 54, 56) in dieser Befehlseinheit zum Erhalt der
ersten und zweiten Hälfte des Operanden von einem vom X-Feld
bezeichneten Ort im Speicher vor der Abgabe des
RR-Zielbefehls und zur aufeinanderfolgenden Verbindung des
Datenschnittstellenmittels mit den ersten und zweiten Registern,
um den Operanden gleichzeitig mit der Abgabe des RR-Befehls
zu übertragen.
4. Verfahren zur Emulation der Ausführung eines Gleitkomma-
Quellbefehls (Quellbefehl) vom RX-Typ in einem
Emulationssystem mit einem darin enthaltenen Übersetzer zur
Übersetzung des Quellbefehls in einen Gleitkomma-Zielbefehl
(Zielbefehl) vom RR-Typ, der von einer Befehlseinheit eines
Zielsystems abgegeben und von einer Gleitkommaeinheit eines
Zielsystems ausgeführt wird, wobei das Verfahren folgende
Schritte umfaßt:
Laden des vom X-Feld des Quellbefehls angezeigten Operanden
in ein in der Befehlseinheit befindliches Register;
Abgabe des Zielbefehls an die Gleitkommaeinheit zur
Ausführung mit den Operanden des Quellbefehls;
gleichzeitig mit der Abgabe des Zielbefehls
- Übertragung des Operanden von dem Register der
Befehlseinheit an die Gleitkommaeinheit;
- Erzeugung eines Gleitkomma-Tokensignals als Antwort auf
die Übersetzung des Gleitkomma-Arithmetik-Quellbefehls;
Erzeugung von Beendigungssignalen, die das Ergebnis des als
Antwort auf die Übersetzung abgegebenen
Gleitkomma-Zielbefehls anzeigen, wobei das Beendigungssignal vor der
Beendigung
der Ausführung des abgegebenen Gleitkomma-Zielbefehls
erzeugt wird;
Empfang und Weiterleitung des Tokensignals hin zu einem
Wartesignalpuffer als Antwort auf die Übersetzung und
Löschen des Wartetokensignals aus diesem Wartesignalpuffer
als Antwort auf das Beendigungssignal; und
Unterdrückung der Übersetzung und Abgabe von Befehlen,
solange das Wartetokensignal in dem Wartesignalpuffer
gehalten wird.
5. Verfahren zur Emulation der Ausführung eines erweiterten
Gleitkomma-Quellbefehls (Quellbefehl) vom RX-Typ in einem
Emulationssystem mit einem darin enthaltenen Übersetzer zur
Übersetzung des Quellbefehls in einen Gleitkomma-Zielbefehl
(Zielbefehl) vom RR-Typ, der von einer Befehlseinheit des
Zielsystems abgegeben und von einer Gleitkommaeinheit des
Zielsystems ausgeführt wird, wobei das Verfahren folgende
Schritte umfaßt:
Laden einer Hälfte des vom X-Feld des Quellbefehls
angezeigten Operanden in ein erstes Register, das sich in der
Befehlseinheit befindet;
Laden der verbleibenden Hälfte dieses Operanden in ein
zweites Register, das sich in der Befehlseinheit befindet;
Abgabe des Zielbefehls an die Gleitkommaeinheit zur
Ausführung mit den Operanden des Quellbefehls;
gleichzeitig mit der Abgabe des Zielbefehls
- Übertragung der Operandenhälfte im ersten Register von
diesem ersten Register an die Gleitkommaeinheit;
- Erzeugung eines Gleitkomma-Tokensignals als Antwort auf
die Übersetzung des Gleitkomma-Arithmetik-Quellbefehls;
Übertragung der Operandenhälfte im zweiten Register von
diesem zweiten Register an die Gleitkommaeinheit;
Erzeugung von Beendigungssignalen, die das Ergebnis des als
Antwort auf die Übersetzung abgegebenen
Gleitkomma-Zielbefehls anzeigen, wobei die Beendigungssignale vor der
Beendigung der Ausführung des abgegebenen Gleitkomma-Zielbefehls
erzeugt werden;
Empfang und Weiterleitung des Tokensignals hin zu einem
Wartesignalpuffer als Antwort auf die Übersetzung und zum
Löschen des Wartetokensignals aus dem Wartesignalpuffer als
Antwort auf das Beendigungssignal; und
Unterdrückung der Übersetzung und Abgabe von Befehlen,
solange das Wartetokensignal in dem Wartesignalpuffer
gehalten wird.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/915,423 US4841476A (en) | 1986-10-06 | 1986-10-06 | Extended floating point operations supporting emulation of source instruction execution |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3789345D1 DE3789345D1 (de) | 1994-04-21 |
DE3789345T2 true DE3789345T2 (de) | 1994-09-29 |
Family
ID=25435704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3789345T Expired - Fee Related DE3789345T2 (de) | 1986-10-06 | 1987-08-25 | Erweiterte Gleitkommaoperationen zur Unterstützung der Emulation von Quellbefehlsausführungen. |
Country Status (11)
Country | Link |
---|---|
US (1) | US4841476A (de) |
EP (1) | EP0263288B1 (de) |
JP (1) | JPH0758466B2 (de) |
KR (1) | KR910000364B1 (de) |
AR (1) | AR240723A1 (de) |
AT (1) | ATE103085T1 (de) |
BR (1) | BR8704431A (de) |
CA (1) | CA1269756A (de) |
DE (1) | DE3789345T2 (de) |
HK (1) | HK79994A (de) |
MY (1) | MY102468A (de) |
Families Citing this family (58)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5093784A (en) * | 1987-02-27 | 1992-03-03 | Nec Corporation | Data processor with efficient transfer between subroutines and main program |
CA1327080C (en) * | 1987-05-26 | 1994-02-15 | Yoshiko Yamaguchi | Reduced instruction set computer (risc) type microprocessor |
US4951195A (en) * | 1988-02-01 | 1990-08-21 | International Business Machines Corporation | Condition code graph analysis for simulating a CPU processor |
JPH0628036B2 (ja) * | 1988-02-01 | 1994-04-13 | インターナショナル・ビジネス・マシーンズ・コーポレーシヨン | シミュレーシヨン方法 |
US5167023A (en) * | 1988-02-01 | 1992-11-24 | International Business Machines | Translating a dynamic transfer control instruction address in a simulated CPU processor |
CA2002201C (en) * | 1988-12-06 | 1999-04-27 | John Charles Goettelmann | Translation technique |
US5430862A (en) * | 1990-06-29 | 1995-07-04 | Bull Hn Information Systems Inc. | Emulation of CISC instructions by RISC instructions using two pipelined stages for overlapped CISC decoding and RISC execution |
US5765012A (en) * | 1990-11-13 | 1998-06-09 | International Business Machines Corporation | Controller for a SIMD/MIMD array having an instruction sequencer utilizing a canned routine library |
US5966528A (en) * | 1990-11-13 | 1999-10-12 | International Business Machines Corporation | SIMD/MIMD array processor with vector processing |
US5630162A (en) * | 1990-11-13 | 1997-05-13 | International Business Machines Corporation | Array processor dotted communication network based on H-DOTs |
US5963746A (en) * | 1990-11-13 | 1999-10-05 | International Business Machines Corporation | Fully distributed processing memory element |
DE69131272T2 (de) * | 1990-11-13 | 1999-12-09 | International Business Machines Corp., Armonk | Paralleles Assoziativprozessor-System |
US5809292A (en) * | 1990-11-13 | 1998-09-15 | International Business Machines Corporation | Floating point for simid array machine |
US5828894A (en) * | 1990-11-13 | 1998-10-27 | International Business Machines Corporation | Array processor having grouping of SIMD pickets |
US5765011A (en) * | 1990-11-13 | 1998-06-09 | International Business Machines Corporation | Parallel processing system having a synchronous SIMD processing with processing elements emulating SIMD operation using individual instruction streams |
US5588152A (en) * | 1990-11-13 | 1996-12-24 | International Business Machines Corporation | Advanced parallel processor including advanced support hardware |
US5815723A (en) * | 1990-11-13 | 1998-09-29 | International Business Machines Corporation | Picket autonomy on a SIMD machine |
US5590345A (en) * | 1990-11-13 | 1996-12-31 | International Business Machines Corporation | Advanced parallel array processor(APAP) |
US5625836A (en) * | 1990-11-13 | 1997-04-29 | International Business Machines Corporation | SIMD/MIMD processing memory element (PME) |
US5794059A (en) * | 1990-11-13 | 1998-08-11 | International Business Machines Corporation | N-dimensional modified hypercube |
US5734921A (en) * | 1990-11-13 | 1998-03-31 | International Business Machines Corporation | Advanced parallel array processor computer package |
US5765015A (en) * | 1990-11-13 | 1998-06-09 | International Business Machines Corporation | Slide network for an array processor |
US5752067A (en) * | 1990-11-13 | 1998-05-12 | International Business Machines Corporation | Fully scalable parallel processing system having asynchronous SIMD processing |
US5617577A (en) * | 1990-11-13 | 1997-04-01 | International Business Machines Corporation | Advanced parallel array processor I/O connection |
US5963745A (en) * | 1990-11-13 | 1999-10-05 | International Business Machines Corporation | APAP I/O programmable router |
AU651453B2 (en) * | 1991-03-07 | 1994-07-21 | Digital Equipment Corporation | Improved software debugging system and method especially adapted for code debugging within a multi-architecture environment |
US5652869A (en) * | 1991-03-07 | 1997-07-29 | Digital Equipment Corporation | System for executing and debugging multiple codes in a multi-architecture environment using jacketing means for jacketing the cross-domain calls |
US5594918A (en) * | 1991-05-13 | 1997-01-14 | International Business Machines Corporation | Parallel computer system providing multi-ported intelligent memory |
JPH079632B2 (ja) * | 1991-06-18 | 1995-02-01 | インターナショナル・ビジネス・マシーンズ・コーポレイション | アドレス変換装置および方法 |
FR2678401A1 (fr) * | 1991-06-28 | 1992-12-31 | Philips Electronique Lab | Dispositif de traitement de l'information plus particulierement adapte a un langage chaine, du type forth notamment. |
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 |
JP2642039B2 (ja) * | 1992-05-22 | 1997-08-20 | インターナショナル・ビジネス・マシーンズ・コーポレイション | アレイ・プロセッサ |
JPH0773046A (ja) * | 1992-12-07 | 1995-03-17 | Intel Corp | コンピュータシステムで回路をエミュレートする 方法及び装置 |
WO1994027214A1 (en) * | 1993-05-07 | 1994-11-24 | Apple Computer, Inc. | Method for decoding sequences of guest instructions for a host computer |
US5392408A (en) * | 1993-09-20 | 1995-02-21 | Apple Computer, Inc. | Address selective emulation routine pointer address mapping system |
US5408622A (en) * | 1993-09-23 | 1995-04-18 | Apple Computer, Inc. | Apparatus and method for emulation routine control transfer via host jump instruction creation and insertion |
US5481684A (en) * | 1994-01-11 | 1996-01-02 | Exponential Technology, Inc. | Emulating operating system calls in an alternate instruction set using a modified code segment descriptor |
US5781750A (en) * | 1994-01-11 | 1998-07-14 | Exponential Technology, Inc. | Dual-instruction-set architecture CPU with hidden software emulation mode |
US5542059A (en) * | 1994-01-11 | 1996-07-30 | Exponential Technology, Inc. | Dual instruction set processor having a pipeline with a pipestage functional unit that is relocatable in time and sequence order |
US5481693A (en) * | 1994-07-20 | 1996-01-02 | Exponential Technology, Inc. | Shared register architecture for a dual-instruction-set CPU |
US5685009A (en) * | 1994-07-20 | 1997-11-04 | Exponential Technology, Inc. | Shared floating-point registers and register port-pairing in a dual-architecture CPU |
JPH08339298A (ja) * | 1995-02-02 | 1996-12-24 | Ricoh Co Ltd | マイクロプロセッサにおける命令追加方法及びそれを用いたマイクロプロセッサ |
US5619665A (en) * | 1995-04-13 | 1997-04-08 | Intrnational Business Machines Corporation | Method and apparatus for the transparent emulation of an existing instruction-set architecture by an arbitrary underlying instruction-set architecture |
US5819063A (en) * | 1995-09-11 | 1998-10-06 | International Business Machines Corporation | Method and data processing system for emulating a program |
US5812823A (en) * | 1996-01-02 | 1998-09-22 | International Business Machines Corporation | Method and system for performing an emulation context save and restore that is transparent to the operating system |
US5758140A (en) * | 1996-01-25 | 1998-05-26 | International Business Machines Corporation | Method and system for emulating instructions by performing an operation directly using special-purpose register contents |
US6711667B1 (en) * | 1996-06-28 | 2004-03-23 | Legerity, Inc. | Microprocessor configured to translate instructions from one instruction set to another, and to store the translated instructions |
JPH113225A (ja) * | 1997-06-13 | 1999-01-06 | Nec Corp | 情報処理装置 |
US5864690A (en) * | 1997-07-30 | 1999-01-26 | Integrated Device Technology, Inc. | Apparatus and method for register specific fill-in of register generic micro instructions within an instruction queue |
EP1359501A3 (de) * | 1997-10-02 | 2007-11-21 | Koninklijke Philips Electronics N.V. | Vorrichtung zur Ausführung virtueller Maschinenbefehle |
EP0997815A3 (de) * | 1998-10-29 | 2004-05-26 | Texas Instruments Incorporated | Interaktives Übersetzungssystem und -verfahren |
US7149883B1 (en) * | 2000-03-30 | 2006-12-12 | Intel Corporation | Method and apparatus selectively to advance a write pointer for a queue based on the indicated validity or invalidity of an instruction stored within the queue |
US6862565B1 (en) * | 2000-04-13 | 2005-03-01 | Hewlett-Packard Development Company, L.P. | Method and apparatus for validating cross-architecture ISA emulation |
US7243217B1 (en) * | 2002-09-24 | 2007-07-10 | Advanced Micro Devices, Inc. | Floating point unit with variable speed execution pipeline and method of operation |
US7293159B2 (en) * | 2004-01-15 | 2007-11-06 | International Business Machines Corporation | Coupling GP processor with reserved instruction interface via coprocessor port with operation data flow to application specific ISA processor with translation pre-decoder |
GB2447968B (en) * | 2007-03-30 | 2010-07-07 | Transitive Ltd | Improvements in and relating to floating point operations |
JP4849273B2 (ja) * | 2008-03-26 | 2012-01-11 | 株式会社日立プラントテクノロジー | 乾式電気集塵装置の放電極用h型プロテクタ |
US20240036817A1 (en) * | 2022-08-01 | 2024-02-01 | Electronics And Telecommunications Research Institute | System-on-a-chip including soft float function circuit |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3881173A (en) * | 1973-05-14 | 1975-04-29 | Amdahl Corp | Condition code determination and data processing |
JPS57150039A (en) * | 1981-03-11 | 1982-09-16 | Hitachi Ltd | Data processor |
JPS59501684A (ja) * | 1982-10-22 | 1984-10-04 | インタ−ナシヨナル・ビジネス・マシ−ンズ・コ−ポレ−シヨン | 目的命令ストリ−ムへ殆んど実時間で插入するためのソ−スおよび目的命令ストリ−ムの外部における加速式命令写像 |
-
1986
- 1986-10-06 US US06/915,423 patent/US4841476A/en not_active Expired - Fee Related
-
1987
- 1987-07-16 JP JP62176102A patent/JPH0758466B2/ja not_active Expired - Lifetime
- 1987-08-25 AT AT87112333T patent/ATE103085T1/de active
- 1987-08-25 DE DE3789345T patent/DE3789345T2/de not_active Expired - Fee Related
- 1987-08-25 EP EP87112333A patent/EP0263288B1/de not_active Expired - Lifetime
- 1987-08-27 BR BR8704431A patent/BR8704431A/pt active Search and Examination
- 1987-09-19 KR KR1019870010400A patent/KR910000364B1/ko not_active IP Right Cessation
- 1987-09-24 CA CA000547682A patent/CA1269756A/en not_active Expired - Lifetime
- 1987-09-28 MY MYPI87001995A patent/MY102468A/en unknown
- 1987-10-02 AR AR30892387A patent/AR240723A1/es active
-
1994
- 1994-08-11 HK HK79994A patent/HK79994A/xx unknown
Also Published As
Publication number | Publication date |
---|---|
BR8704431A (pt) | 1988-05-24 |
EP0263288A3 (de) | 1991-06-12 |
EP0263288B1 (de) | 1994-03-16 |
DE3789345D1 (de) | 1994-04-21 |
US4841476A (en) | 1989-06-20 |
KR880005516A (ko) | 1988-06-29 |
KR910000364B1 (ko) | 1991-01-24 |
ATE103085T1 (de) | 1994-04-15 |
JPS6398739A (ja) | 1988-04-30 |
HK79994A (en) | 1994-08-19 |
CA1269756A (en) | 1990-05-29 |
EP0263288A2 (de) | 1988-04-13 |
JPH0758466B2 (ja) | 1995-06-21 |
AR240723A1 (es) | 1990-09-28 |
MY102468A (en) | 1992-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3789345T2 (de) | Erweiterte Gleitkommaoperationen zur Unterstützung der Emulation von Quellbefehlsausführungen. | |
DE69129565T2 (de) | Hochleistungsfähiger Emulator mit Pipelining | |
DE69032635T2 (de) | Verfahren und Vorrichtung zur Erkennung von Betriebsmittelkonflikten in einer Pipeline-Verarbeitungseinheit | |
DE69131637T2 (de) | Registerhaltige Datenbearbeitung in einem Prozessor mit reduziertem Befehlssatz | |
DE3586899T2 (de) | Instruktionsvorgriffsystem fuer bedingte sprungbefehle in einer zentralen verarbeitungseinrichtung. | |
DE69502098T2 (de) | Datenverarbeitung mit mehrfachbefehlssätzen | |
DE68924380T2 (de) | Vernichtung von Pipelineblasen in einem Rechnersystem. | |
DE3485929T2 (de) | Bedingungsregisterarchitektur fuer eine maschine mit primitivem befehlssatz. | |
DE69030128T2 (de) | Signalprozessor | |
DE68927911T2 (de) | Datenverarbeitungssystem | |
DE3751503T2 (de) | Datenprozessor in Pipelinestruktur mit der Fähigkeit mehrere Befehle parallel zu dekodieren und auszuführen. | |
DE69506623T2 (de) | Datenprozessor mit einer Ausführungseinheit zur Durchführung von Ladebefehlen und Verfahren zu seinem Betrieb | |
DE69904189T2 (de) | Konfigurierter prozessor zur abbildung von logischen registernummern auf physikalische registernummern unter verwendung von virtuellen registernummern | |
DE69636861T2 (de) | Mikroprozessor mit Lade-/Speicheroperation zu/von mehreren Registern | |
DE69115344T2 (de) | Vorverarbeitungsprozessor zur Verbindung von Befehlen für einen Cache-Speicher | |
DE68928812T2 (de) | Vorrichtung zur Auflösung von einer variablen Anzahl von möglichen Speicherzugriffskonflikten in einem Pipeline-Rechnersystem und Verfahren dazu | |
DE69810064T2 (de) | Verfahren und Anordnung zur Veränderung der Durchführung eines Nachfolgebefehls in einem Dataprozessor | |
DE69033398T2 (de) | Rechnerarchitektur mit Mehrfachbefehlsausgabe | |
DE69028138T2 (de) | Mechanismus zur präzisen Behandlung von Ausnahmebedingungen in einem Prozessor mit gepaarten Befehlen | |
DE3486399T2 (de) | Zentrale Verarbeitungseinheit mit der Fähigkeit, Befehle mit variablen Längen zu unterstützen. | |
DE69418146T2 (de) | Temporärer Registersatz für einen superpipeline-superskalaren Prozessor | |
DE69033131T2 (de) | Logikvorrichtung und Verfahren zur Verwaltung einer Befehlseinheit in einer Pipeline-Verarbeitungseinheit | |
DE19735350A1 (de) | Einzelbefehl-Mehrdaten-Verarbeitung bei einem Multimedia-Signalprozessor | |
DE19735348A1 (de) | Einzelbefehl-Mehrdaten-Verarbeitung unter Verwendung von mehreren Bänken von Vektorregistern | |
DE19545179A1 (de) | Vektorspeicheroperationen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |