DE19983632B4 - Emulation eines Befehlssatzes bei einem Befehlssatzarchitekturübergang - Google Patents
Emulation eines Befehlssatzes bei einem Befehlssatzarchitekturübergang Download PDFInfo
- Publication number
- DE19983632B4 DE19983632B4 DE19983632T DE19983632T DE19983632B4 DE 19983632 B4 DE19983632 B4 DE 19983632B4 DE 19983632 T DE19983632 T DE 19983632T DE 19983632 T DE19983632 T DE 19983632T DE 19983632 B4 DE19983632 B4 DE 19983632B4
- Authority
- DE
- Germany
- Prior art keywords
- format
- processor
- instruction
- instruction set
- bit
- 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
- 230000007704 transition Effects 0.000 title description 13
- 238000000034 method Methods 0.000 claims abstract description 43
- 230000015654 memory Effects 0.000 claims description 30
- 238000006243 chemical reaction Methods 0.000 claims description 26
- 230000008569 process Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 12
- 238000013519 translation Methods 0.000 description 7
- 230000014616 translation Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 239000012634 fragment Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000006866 deterioration Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- 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/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30025—Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- 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/30098—Register arrangements
- G06F9/30105—Register structure
-
- 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/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30109—Register structure having multiple operands in a single register
-
- 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/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30112—Register structure comprising data of variable length
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Verfahren
zum Emulieren der Ausführung
eines Befehls einer erster Befehlssatzarchitektur auf einem Prozessor,
der eine von der ersten Befehlssatzarchitektur abweichende, zweite
Befehlssatzarchitektur aufweist, wobei sich die Befehlssatzarchitekturen
darin unterscheiden, daß für die Operanden
des Befehls verschiedene Datenformate in Prozessorregistern verwendet
werden, wobei:
der Befehlscode des Befehls und wenigstens ein Operand in einem ersten Datenformat, das der ersten Befehlssatzarchitektur entspricht, von dem Prozessor empfangen werden,
der wenigstens eine Operand aus dem ersten Datenformat in ein abweichendes, zweites Datenformat, das der zweiten Befehlssatzarchitektur entspricht, konvertiert und in wenigstens einem Register des Prozessors gespeichert wird,
der Befehl von dem Prozessor ausgeführt wird, indem die von dem Befehlscode codierte Operation an dem wenigstens einen Operanden in dem zweiten Datenformat ausgeführt wird, wobei ein Ergebnis in dem zweiten Datenformat erzeugt und in einem Prozessorregister gespeichert wird, und
das Ergebnis aus dem zweiten Datenformat in das erste Datenformat konvertiert wird.
der Befehlscode des Befehls und wenigstens ein Operand in einem ersten Datenformat, das der ersten Befehlssatzarchitektur entspricht, von dem Prozessor empfangen werden,
der wenigstens eine Operand aus dem ersten Datenformat in ein abweichendes, zweites Datenformat, das der zweiten Befehlssatzarchitektur entspricht, konvertiert und in wenigstens einem Register des Prozessors gespeichert wird,
der Befehl von dem Prozessor ausgeführt wird, indem die von dem Befehlscode codierte Operation an dem wenigstens einen Operanden in dem zweiten Datenformat ausgeführt wird, wobei ein Ergebnis in dem zweiten Datenformat erzeugt und in einem Prozessorregister gespeichert wird, und
das Ergebnis aus dem zweiten Datenformat in das erste Datenformat konvertiert wird.
Description
- Die Erfindung betrifft ein Verfahren zum Emulieren der Ausführung eines Befehls einer ersten Befehlssatzarchitektur auf einem Prozessor, der eine von der ersten Befehlssatzarchitektur abweichende, zweite Befehlssatzarchitektur aufweist, wobei sich die Befehlssatzarchitekturen darin unterscheiden, daß für die Operanden des Befehls verschiedene Datenformate in Prozessorregistern verwendet werden.
- Wenn ein Prozessor derart verbessert wird, daß er erweiterte Fähigkeiten aufweist, ist es wichtig, die Softwarekompatibilität mit den bei dem vorhergehenden Modell entwickelten Anwendungen aufrechtzuerhalten. Ein spezielles Problem ist die Darstellung von Daten für logische und/oder arithmetische Operationen.
- Beispielsweise weist das Gleitkomma(FP)-Zahlenformat Datenformate einfacher Genauigkeit (SP; Single Precision) und doppelter Genauigkeit (DP; Double Precision) auf. Während das SP-Format typischerweise durch eine 32-Bit-Darstellung dargestellt wird, kann das DP-Format zwei verschiedene Arten der Darstellung aufweisen: ein reguläres 64-Bit-Format und ein erweitertes 82-Bit-Format. Ein regulärer Prozessor verwendet typischerweise das reguläre 64-Bit-FPDP-Format für sowohl in seinen Registern als auch im Speicher gespeicherte Operanden. Ein erweiterter Prozessor benutzt typischerweise das erweiterte 82-Bit-FPDP-Format für die in seinen Registern gespeicherten Operanden und das reguläre 64-Bit-FPDP-Format für im Speicher gespeicherte Operanden. Beispielsweise umfassen die Intel-Architektur(IA)-Prozessoren ein 32-Bit-Modell und ein erweitertes 64-Bit-Modell: den IA-32-Prozessor und den IA-64-Prozessor. Der IA-32-Prozessor verwendet das 64-Bit-FPDP-Format sowohl für in den Registern als auch im Speicher gespeicherte Operanden. Der IA-64-Prozessor verwendet das 64-Bit- FPDP-Format für Speicheroperanden und das erweiterte 82-Bit-FPDP-Format für Registeroperanden.
- Der Übergang von einem Befehlssatz, der mit einem regulären Datenformat arbeitet, zu einem anderen Befehlssatz, der mit einem erweiterten Datenformat arbeitet, wird als Befehlssatzarchitektur(ISA)-Übergang bezeichnet. Bei einem solchen ISA-Übergang, bei dem ein unter Verwendung eines regulären Betriebsmodus (z. B. 64-Bit-FPDP) geschriebenes Anwendungsprogramm zu einem Prozessor transportiert wird, der einen erweiterten Betriebsmodus (z. B. 82-Bit-FPDP) verwendet, oder umgekehrt, können Operanden-Nicht-Übereinstimmungen auftreten. Derartige Nicht-Übereinstimmungen verursachen eine Leistungsverschlechterung und können in vielen Fällen eine Softwareinkompatibilität verursachen.
- Folglich gibt es ein technologisches Erfordernis, ein Verfahren zum Emulieren eines Befehlssatzes für ein Datenformat auf einem Prozessor, der in einem erweiterten Datenformat betrieben wird, zur Verfügung zu stellen.
- Aus der "Technical Note HW23 – FPU Operations on Macintosh Quadra Computers", Apple Computer, Inc.; 1. Juni 1989, S. 1–12, ist die Emulation eines Befehls eines MC68881/2 durch die Befehlssatzarchitektur eines 68040 bekannt, wobei für die Operanden eines Befehls verschiedene Datenformate verwendet werden. Ferner beschreiben Robert F. Cmelik und David Keppel in "Shade: A Fast Instruction-Set Simulator for Execution Profiling", Technical Report UWCSE 39-06-06, University of Washington, S. 1–41, 1993, ein Programm mit dem Namen "Shade", bei welchem es sich um einen Befehlssatzsimulator und Trace-Generator handelt. Bei dem Programm werden Teile eines zu testenden Anwendungsprogramms, welches (später) auf einer Zielmaschine laufen soll, d.h. Anwendungsprogrammcodefragmente, in spezielle Codefragmente einer Host-Maschine kompiliert, welche Übersetzungen (Translations) genannt werden. Die Übersetzungen bestehen aus einem Prolog, einem Körper und einem Epilog. Der aus den Anwendungsprogrammcodeabschnitten erzeugte Körper der Übersetzungen enthält Befehlscode zum Simulieren der Anwendungsprogrammbefehle sowie ggf. Befehlscode zum Verfolgen (trace) der Anwendungsprogrammbefehle. Das Programm Shade dient dazu, Befehle der für eine Ziel-Maschine geschriebenen Anwendung derart zu simulieren, daß verschiedene Zustände innerhalb des simulierten Prozessors erfaßt und verfolgt werden können.
- Aufgabe der Erfindung ist es, ein Verfahren zu schaffen, daß einen Befehlssatz mit einem ersten Datenformat auf einem Prozessor emulieren kann, der mit einem zweiten, erweiterten Datenformat arbeitet.
- Diese Aufgabe wird erfindungsgemäß durch ein Verfahren mit den Merkmalen des Anspruchs 1 gelöst. Vorteilhafte und/oder bevorzugte Weiterbildungen des erfindungsgemäßen Verfahrens sind in den Ansprüchen 2 bis 6 gekennzeichnet.
- Die Merkmale und Vorteile der vorliegenden Erfindung werden aus der folgenden detaillierten Beschreibung der vorliegenden Erfindung klar, in welcher:
-
1 eine Darstellung ist, die ein Computersystem veranschaulicht, in welchem ein Ausführungsbeispiel der Erfindung ausgeführt werden kann. -
3 ist eine Darstellung, die eine Formatkonvertierung gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht. -
4 ist eine Darstellung, die einen Modusübergang gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht. -
5 ist eine Darstellung, die eine Kontextumschaltung gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht. -
6 ist eine Darstellung, die eine Zahlenformatkonvertierung gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht. -
7 ist eine Darstellung, die einen Prozeß zum Emulieren logischer Befehle gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht. -
8 ist eine Darstellung, die eine Aufrufoperation gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht. -
9 ist ein Ablaufdiagramm, das einen Prozeß für eine Objektcodeübersetzung (OCT) gemäß einem Ausführungsbeispiel der Erfindung veranschaulicht. - BESCHREIBUNG
- Die Erfindung ist ein Verfahren und eine Einrichtung zum Emulieren von Befehlen, die in einer Datenformatdarstellung auf einem Prozessor, der eine andere Datenformatdarstellung aufweist, arbeiten. Diese Technik umfaßt eine Reihe von Ausführungsbeispielen. Verschiedene Schemata zum Konvertieren der Datendarstellungen werden angegeben. Es wird ein Code-Patching mit einem Sprungbefehl zum Springen zum richtigen Code bei Modusübergängen oder Kontextumschaltungen verwendet. Konvertierungsbefehle konvertieren die Datendarstellungen für arithmetische und logische Befehle zwischen ganzen Zahlen und Gleitkommazahlen. Die Erfindung schafft eine Softwarekompatibilität zwischen einer Prozessorarchitektur und einer erweiterten Prozessorarchitektur.
- In der folgenden Beschreibung werden aus Gründen der Erläuterung zahlreiche Details angegeben, um ein besseres Verständnis der vorliegenden Erfindung zu erreichen. Für einen Fachmann ist es jedoch klar, daß diese speziellen Details nicht erforderlich sind, um die vorliegende Erfindung auszuführen. An anderen Stellen werden gut bekannte elektrische Strukturen und Schaltungen in Blockdarstellungsform gezeigt, um die Erfindung nicht zu verdecken.
-
1 ist eine Darstellung, die ein Computersystem veranschaulicht, in welchem ein Ausführungsbeispiel der Erfindung ausgeführt werden kann. Das Computersystem100 enthält einen Prozessor110 , einen Host-Bus120 , eine Speichersteuereinrichtung130 und eine Speichereinrichtung150 . - Der Prozessor
110 repräsentiert eine zentrale Verarbeitungseinheit einer beliebigen Architektur, wie beispielsweise eine Architektur eines Computers mit komplexen Befehlssatz (CISC), eines Computers mit reduzierten Befehlssatz (RISC), eines sehr langen Befehlsworts (VLIW) oder eine Hybridarchitektur. Während dieses Ausführungsbeispiel unter Bezugnahme auf ein Einzelprozessorcomputersystem beschrieben wird, könnte die Erfindung auch in einem Mehrprozessorcomputersystem implementiert werden. - Die Speichersteuereinrichtung
140 stellt verschiedene Zugriffsfunktionen auf die Speichereinrichtung150 zur Verfügung. Die Speichersteuereinrichtung140 ist mit dem Host-Bus130 gekoppelt, um es dem Prozessor zu ermöglichen, auf die Speichereinrichtung150 zuzugreifen. Die Speichereinrichtung150 repräsentiert einen oder mehrere Mechanismen zum Speichern von Informationen. Beispielsweise kann die Speichereinrichtung150 nicht-flüchtige oder flüchtige Speicher umfassen. Beispiele dieser Speicher schließen Flash-Speicher, Nur-Lese-Speicher (ROM) oder Speicher mit wahlfreiem Zugriff (RAM) ein. -
1 veranschaulicht darüber hinaus, daß in der Speichereinrichtung150 Programmcode152 und Daten154 gespeichert sind. Der Programmcode152 repräsentiert den erforderlichen Code zum Durchführen einiger und/oder sämtlicher der Techniken bei der vorliegenden Erfindung. Insbesondere umfaßt der Programmcode152 einen Emulationscode153 . Der Emulationscode153 emuliert Befehle in einem Datenformat (oder Modus) auf dem Prozessor110 . Die Daten154 speichern von dem Programmcode152 verwendete Daten, Graphikdaten und temporäre Daten. Insbesondere enthält der Datenspeicher154 ein Datensegment155 , welches in einem Format 1, das als Speicherformat oder reguläres Format bezeichnet wird, dargestellte Daten enthält. Selbstverständlich enthält die Speichereinrichtung150 vorzugsweise zusätzliche (nicht gezeigte) Software, welche für das Verständnis der Erfindung nicht erforderlich ist. -
1 veranschaulicht zusätzlich, daß der Prozessor110 eine Decodiereinheit112 , eine Ausführungseinheit114 , einen Registersatz116 und einen internen Bus111 enthält. Selbstverständlich enthält der Prozessor110 zusätzliche Schaltungen, welche für das Verständnis der Erfindung nicht erforderlich sind. Die Decodiereinheit112 wird zum Decodieren von durch den Prozessor110 empfangenen Befehlen in Steuersignale und/oder Mikrocodeeintrittspunkte verwendet. In Erwiderung dieser Steuersignale und/oder Mikrocodeeintrittspunkte führt die Ausführungseinheit114 die richtigen Operationen durch. Der Registersatz116 enthält eine Reihe von Registern, die in einem Format 2, das als das Registerformat bezeichnet wird, dargestellte Daten speichern. - Bei einem Ausführungsbeispiel ist der Prozessor
110 ein Intel-Architektur-64(IA-64-)Prozessor. Der IA-64 ist ein 64-Bit-Prozessor, der 64-Bit-Daten verarbeitet. Bei dem IA-64 werden 64-Bit-Gleitkommazahlen doppelter Genauigkeit (FPDP) als 82-Bit-FPDP in dem Registersatz116 (erweitertes oder Registerformat) dargestellt, aber als 64-Bit-FPDP in dem Speicher155 (reguläres oder Speicherformat). Ein 32-Bit-Prozessor (z. B. IA-32) stellt 64-Bit-FPDP-Zahlen sowohl in seinen Registern als auch im Speicher als 64-Bit-FPDP dar, was als reguläres Format bezeichnet wird. Um die Softwarekompatibilität aufrechtzuerhalten, wenn für einen 32-Bit-Prozessor (z. B. IA-32) entwickelte Programme auf einen 64-Bit-Prozessor (z. B. IA-64) portiert werden, ist irgendeine Übersetzung oder Konvertierung erforderlich. Die Technik bei der vorliegenden Erfindung kann verwendet werden, um die 32-Bit-Befehle auf dem 64-Bit-Prozessor zu emulieren. In der folgenden Diskussion wird der Prozessor110 als Plattformprozessor bezeichnet und die Programme oder die Software, die unter Verwendung des 32-Bit-Befehlssatzes geschrieben worden ist, wird als portierende Software oder portierende Programme bezeichnet. - Die Emulation kann auf verschiedene Weise implementiert werden. Ein Weg umfaßt eine geringfügige Hardwaremodifikation auf dem Plattformprozessor. Andere Wege umfassen Konvertierungen der Datenformate durch Einfügen (Patching) von Befehlscode in die Portierungsprogramme.
- Das Computerprogramm oder die Computersoftware, die die bei der vorliegenden Erfindung beschriebenen Techniken implementieren, können in einem maschinenlesbaren Medium gespeichert und/oder übermittelt werden. Beispiele derartiger maschinenlesbarer Medien umfassen Halbleiterspeicher, wie beispielsweise Speicher mit wahlfreiem Zugriff (RAM), Nur-Lese-Speicher (ROM), löschbare ROM (EROM), Flash-Speicher, magnetische Medien, Compakt-Disc-Nur-Lese-Speicher (CDROM), Disketten, Festplatten, optische Platten, Signale, Trägerwellen, etc. Das Computerprogramm oder die Codesequenz emuliert den Befehl, welcher an wenigstens einem Operanden in einem ersten Datenformat arbeitet, während der Prozessor in einem zweiten Datenformat betrieben wird. Das Computerprogramm oder die Codesequenz enthält eine Anzahl von Codesegmenten, Unterprogrammen, Subroutinen oder Funktionen zum Durchführen einer Anzahl von Operationen. Beispiele dieser Operationen umfassen die Konvertierung des Operanden aus dem ersten Datenformat in das zweite Datenformat, das Ausführen des Befehls durch den Prozessor in dem zweiten Datenformat, um ein Ergebnis in dem zweiten Datenformat zu erzeugen, das Konvertieren des Ergebnisses aus dem zweiten Datenformat in das erste Datenformat. Zusätzliche Codesegmente werden verwendet, um weitere Funktionen auszuführen, wie es im folgenden detaillierter erörtert wird.
-
3 ist eine Darstellung, die eine Formatkonvertierung in Übereinstimmung mit einem Ausführungsbeispiel der Erfindung veranschaulicht. Das Formatkonvertierungsverfahren konvertiert das 64-Bit-Format in das 82-Bit-Format vor sämtlichen Operationen und das 82-Bit-Format in das 64-Bit-Format nach sämtlichen Operationen. Die Formatkonvertierung umfaßt einen Format-1-Konvertierer320 , einen Format-2-Konvertierer360 und eine Operation340 . -
3 zeigt Operanden310 ,330 ,350 und370 . Die Operanden310 und370 sind im Format 1 (z. B. 64-Bit) und die Operanden330 und350 sind im Format 2 (z. B. 82-Bit). Der Format-1-Konvertierer konvertiert die Operanden310 aus dem Format 1 in die Operanden330 in Format 2 vor der Operation. Die Operation340 wird unter Verwendung des Formats 2 durchgeführt. Nach der Operation werden die Operanden350 von dem Format-2-Konvertierer360 zurück in die Operanden370 in dem Format 1 konvertiert. -
4 ist eine Darstellung, die einen Modusübergang in Übereinstimmung mit einem Ausführungsbeispiel der Erfindung veranschaulicht. Ein Modusübergang (z. B. ISA(instruction set architecture)-Übergang) tritt auf, wenn eine in einem ersten Modus (z. B. IA32) ablaufende Anwendung eine Anwendung in einem zweiten Modus (z. B. IA64) aufruft. - Ein Modusübergang umfaßt eine Modus1-Anwendung
410 , eine Modus1-Domäne420 , eine Modus2-Domäne430 und eine Modus2-Anwendung440 . Die Modus1-Anwendung410 ruft zu der Modus2-Anwendung440 auf. Die Modus2-Anwendung440 hat keine Kenntnis über das Modus1-Format (z. B. das Registerformat). Die Modus1-Domäne420 stellt einen Sprung zu dem Modus2 durch einen Sprungbefehl (z. B. JUMPE) zur Verfügung. Die Modus2-Domäne430 stellt die Modus2-Konvertierung von Parametern zur Verfügung. Dann findet die Operation in der Modus2-Anwendung440 statt. - Bei einem Modusübergang aus der Modus2-Anwendung
440 in die Modus1-Anwendung410 stellt ein Verzweigungsbefehl (z. B. BR_IA) einen Ausgang aus der Modus2-Anwendung440 in die Modus1-Anwendung410 zur Verfügung. - In der Modus1-Anwendung
410 können die Daten doppelter Genauigkeit in den Registern im Speicher- oder regulären Format dargestellt werden. In der Modus1-Domäne420 werden sämtliche Register in der Modus1-Anwendung410 im Speicher gesichert. Die Modus2-Domäne430 lädt die Parameter aus dem Speicher mit dem der Verwendung entsprechenden Format. In der Modus2-Anwendung440 werden die Daten doppelter Genauigkeit in das erweiterte Format in den Registern konvertiert. Nach der Operation in der Modus2-Anwendung leitet der Verzweigungsbefehl die Ergebnisparameter im Speicher zu der Modus1-Anwendung410 weiter. -
5 ist eine Darstellung, die eine Kontextumschaltung500 in Übereinstimmung mit einem Ausführungsbeispiel der Erfindung veranschaulicht. Die Kontextumschaltung500 tritt infolge eines Interrupts auf und umfaßt eine Modus1-Anwendung410 und ein Modus2-Betriebssystem520 . Wie es einem Fachmann bekannt ist, sind weitere Ursachen für die Kontextumschaltung möglich, wie beispielsweise eine Prozeßauslagerung (process swapping), ein Multitasking, etc. - Die Modus1-Anwendung ist eine Anwendung, die im Modus1-Befehlssatz (z. B. IA32) abläuft. Die Modus1-Anwendung
410 umfaßt einen Aufrufcode512 und einen Rückkehrcode514 . Das Modus2-Betriebssystem (OS)520 ist ein Betriebssystem, das im Modus2-Befehlssatz (z. B. IA64) abläuft. Das Modus2-OS520 enthält einen Patch-Code522 , einen Sicherungscode524 , einen Modus2-Code525 , einen Wiederherstellungscode526 und einen Rückkehrcode528 . - Bei der in
5 veranschaulichten Kontextumschaltung500 empfängt die Modus1-Anwendung410 ein Interrupt. Die Register in der Modus1-Anwendung410 sind in dem Speicherformat und dem erweiterten Format. Der Aufrufcode512 ruft zu dem Modus2-OS520 auf. Wenn die Steuerung zu dem Modus2-OS520 weitergeleitet wird, führt der Patch-Code522 einen Übergang durch, um aus dem Emulationsmodus in den ursprünglichen Modus zu gehen, indem ein Patching-Befehl, wie beispielsweise ein JUMPE-Befehl ausgeführt wird. Sämtliche Register werden bei dem Patching-Befehl in das Speicherformat konvertiert. Der Sicherungscode524 sichert sämtliche Modus1-Register als Bits mit einem Bit-Speichere-Befehl. Ein Bit-Speichere-Befehl (z. B. STF.SPILL) speichert den Inhalt der Register ohne Konvertierung. Beispielsweise werden die IA32-FP-Register in dem Speicher als 16-Bytes ohne Konvertierung gespeichert. - Dann fährt der Modus2-Code
525 mit der Ausführung des Modus2-Befehlssatzes (z. B. IA64) fort, um das Interrupt oder weitere Aufgaben in der geeigneten Weise zu bedienen. Nachdem der Modus2-Code525 seine Ausführung abgeschlossen hat, stellt der Wiederherstellungscode526 die gesicherten Modus1-Register als Bits mit einem Bit-Rückspeicherungsbefehl wieder her. Ein Bit-Rückspeicherungsbefehl (z. B. LDF.FILL) stellt die durch den Bit-Speichere-Befehl in den Speicher gespeicherten Registerbits in den Registern wieder her. Beispielsweise werden die IA32-FP-Register mit den 16 Bytes aus dem Speicher ohne Konvertierung wiederhergestellt. Dann bewirkt der Rückkehrcode528 einen ISA-Übergang, um zu der Modus1-Anwendung zurückzukehren, indem ein Verzweigungsbefehl (z. B. BR_IA) ausgeführt wird. Bei Rückkehr zu dem Rückkehrcode514 in der Modus1-Anwendung410 werden sämtliche Register in dem Speicherformat wiederhergestellt. Sofern eine Tag-Architektur verwendet wird, werden sämtliche internen Tags in das Speicherformat zurückge setzt. Der Rückkehrcode514 in der Modus1-Anwendung410 fährt mit seiner Operation in der Modus1-Umgebung fort. -
6 ist eine Darstellung, die eine Zahlenformatkonvertierung in Übereinstimmung mit einem Ausführungsbeispiel der Erfindung veranschaulicht. Die Zahlenformatkonvertierung konvertiert ein gepacktes 32-Bit-Ganzzahl(INT)-Element610 in ein gepacktes 32-Bit-Einfachgenauigkeit(SP)-Element660 und umgekehrt. Das gepackte 32-Bit-INT-Element610 wird in das gepackte 32-Bit-SP-Element660 durch die Konvertierungssequenz605 konvertiert. Das gepackte 32-Bit-SP-Element660 wird in das gepackte 32-Bit-INT-Element610 durch Verwendung ursprünglicher Konvertierungsbefehle, wie beispielsweise dem fpcvt-Befehl, konvertiert. - Die Konvertierungssequenz
605 konvertiert das gepackte 32-Bit-INT-Element610 in ein ungepacktes 32-Bit-INT-Element620 , indem das Element610 in zwei separate Teile entpackt wird, wobei jedes Teil ein 32-Bit-INT-Element ist. Dann wird das entpackte 32-Bit-INT-Element620 in ein ungepacktes 64-Bit-INT-Element630 konvertiert, indem jedes 32-Bit-INT-Element in ein zugehöriges 64-Bit-INT-Element konvertiert wird. Dann wird das ungepackte 64-Bit-INT-Element630 in ein ungepacktes 82-Bit-DP-Element640 konvertiert, indem jedes 64-Bit-INT-Element in ein zugehöriges 82-Bit-DP-Element konvertiert wird. Das ungepackte 82-Bit-DP-Element640 wird dann in ein gepacktes 82-Bit-DP-Element650 konvertiert, indem die 82-Bit-DP-Elemente in ein gepacktes Format gepackt oder kombiniert werden. Schließlich wird das gepackte 82-Bit-DP-Element650 in das 32-Bit-SP-Element660 konvertiert. -
7 ist eine Darstellung, die einen Prozeß700 zum Emulieren logischer Befehle in Übereinstimmung mit einem Ausführungsbeispiel der Erfindung veranschaulicht. - Bei START bestimmt der Prozeß
700 , ob der Befehl ein logischer Befehl doppelter Genauigkeit (DP; Double Precision) ist, wie beispielsweise ANDNDP, ANDDPD, ORDP, XORDP (Block710 ). Wenn dies nicht der Fall ist, wird der Prozeß700 beendet. Sofern der Befehl einer der logischen DP-Befehle ist, bestimmt der Prozeß700 als nächstes, ob die Operanden in dem Speicher format sind (Block720 ). Wenn dies nicht der Fall ist, wird der Prozeß700 beendet. Sofern die Operanden in dem Speicherformat sind, bestimmt der Prozeß700 , ob der Signifikand gleich Null ist (Block730 ). Wenn dies nicht der Fall ist, setzt der Prozeß700 das Exponentenfeld auf 0 × 1003E (Block750 ) und fährt damit fort, die logische Operation auszuführen (Block760 ). Sofern der Signifikand gleich Null ist, setzt der Prozeß700 das Exponentenfeld auf 0 × 0 (Block740 ) und fährt damit fort, die zugehörige logische Operation, wie beispielsweise FAND, FANDCM, FOR oder FXOR, auszuführen (Block760 ). -
8 ist eine Darstellung, die eine aufrufende Operation800 in Übereinstimmung mit einem Ausführungsbeispiel der Erfindung veranschaulicht. Die aufrufende Operation800 umfaßt einen Aufrufer810 und einen Aufgerufenen820 . - Der Aufrufer
810 arbeitet die Anwendung in einem Datenformat ab und ruft den Aufgerufenen820 auf. Der Aufgerufene820 arbeitet die Anwendung in einem anderen Datenformat ab. Der Aufrufer kennt die Verwendung seiner Register und sichert folglich nur die Register, welche bewahrt werden müssen, bevor er den Aufgerufenen820 aufruft. Der Aufgerufene820 entleert (spill) die Register in Übereinstimmung mit den Tag-Bits, indem er die Register in Form von Bits in dem Speicher speichert. Nach der Operation stellt der Aufgerufene820 die in dem Speicher gesicherten Registerbits in Speicherformat wieder her. Sofern es eine Nicht-Übereinstimmung des Formats gibt, konvertiert der Aufgerufene820 zurück, wenn er die Aufruferbefehle ausführt. Bei Rückkehr zu dem Aufrufer810 vermeidet der Aufrufer unechte (spurious) Datentypkonvertierungen. -
9 ist ein Ablaufdiagramm, das einen Prozeß900 für eine Objektcodeübersetzung (OCT; Object Code Translation) in Übereinstimmung mit einem Ausführungsbeispiel der Erfindung veranschaulicht. - Bei START bestimmt der Prozeß
900 , ob der Befehl ein ursprünglicher Befehl des erweiterten oder angereicherten Modus (EM; Enhanced Mode) ist (Block910 ). Sofern dies nicht der Fall ist, wird der Prozeß900 beendet. Sofern der Befehl ein ursprünglicher EM-Befehl ist, bestimmt der Prozeß900 , ob er einer der gepackten DP-Befehle ist (Block920 ). Sofern dies nicht der Fall ist, wird der Prozeß900 beendet. Sofern der Befehl ein gepackter DP-Befehl ist, emuliert der Prozeß900 den Befehl mit dem entsprechenden ursprünglichen DP-Befehl (Block930 ). Der Prozeß900 fügt einen geeigneten Konvertierungsbefehl ein, um das Speicherformat (z. B. 64-Bit-DP) in das erweiterte DP-Format (z. B. 82-Bit-DP) zu konvertieren. Der Konvertierungsbefehl umfaßt typischerweise eine Speichere- und Lade-Sequenz. - Als nächstes führt der Prozeß
900 die DP-Befehle mit dem erweiterten DP-Format (z. B. 82-Bit-DP) aus (Block950 ). Nach der Ausführung fügt der Prozeß900 einen Konvertierungsbefehl ein, um das erweiterte DP-Format (z. B. 82-Bit) in das Speicherformat (z. B. 64-Bit) zu konvertieren. Wiederum umfaßt der Konvertierungsbefehl typischerweise eine Speichere- und Lade-Sequenz. Der Prozeß900 wird dann beendet. - Die vorliegende Erfindung schafft eine Technik zum Emulieren eines Befehlssatzes doppelter Genauigkeit auf einem Prozessor, welcher eine Formatdarstellung erweiterter Genauigkeit aufweist. Die Technik umfaßte eine Formatkonvertierung, Kontextumschaltung, Tag-Architektur, Aufrufkonventionen und Konvertierungsbefehle.
- Während diese Erfindung unter Bezugnahme auf veranschaulichende Ausführungsbeispiele beschrieben wurde, soll diese Beschreibung nicht in einem einschränkenden Sinne ausgelegt werden. Verschiedene Modifikationen der veranschaulichten Ausführungsbeispiele sowie weitere Ausführungsbeispiele der Erfindung, welche Fachleuten, an welche sich die Erfindung richtet, klar sind, sind als innerhalb des Geistes und Umfangs der Erfindung liegend anzusehen.
Claims (6)
- Verfahren zum Emulieren der Ausführung eines Befehls einer erster Befehlssatzarchitektur auf einem Prozessor, der eine von der ersten Befehlssatzarchitektur abweichende, zweite Befehlssatzarchitektur aufweist, wobei sich die Befehlssatzarchitekturen darin unterscheiden, daß für die Operanden des Befehls verschiedene Datenformate in Prozessorregistern verwendet werden, wobei: der Befehlscode des Befehls und wenigstens ein Operand in einem ersten Datenformat, das der ersten Befehlssatzarchitektur entspricht, von dem Prozessor empfangen werden, der wenigstens eine Operand aus dem ersten Datenformat in ein abweichendes, zweites Datenformat, das der zweiten Befehlssatzarchitektur entspricht, konvertiert und in wenigstens einem Register des Prozessors gespeichert wird, der Befehl von dem Prozessor ausgeführt wird, indem die von dem Befehlscode codierte Operation an dem wenigstens einen Operanden in dem zweiten Datenformat ausgeführt wird, wobei ein Ergebnis in dem zweiten Datenformat erzeugt und in einem Prozessorregister gespeichert wird, und das Ergebnis aus dem zweiten Datenformat in das erste Datenformat konvertiert wird.
- Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß das Konvertieren des Operanden aus dem ersten Datenformat in das zweite Datenformat ein Konvertieren des Operanden aus einem Gleitkommaformat doppelter Genauigkeit (DPFP-Format) umfaßt.
- Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß das DPFP-Format eine 64-Bit-Darstellung hat.
- Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß das Konvertieren des Operanden aus dem ersten Datenformat in das zweite Datenformat ein Konvertieren des Operanden in ein erweitertes Gleitkommaformat doppelter Genauigkeit (EDPFP-Format) umfaßt.
- Verfahren nach Anspruch 4, dadurch gekennzeichnet, daß das EDPFP-Format eine 82-Bit-Darstellung hat.
- Verfahren nach Anspruch 5, dadurch gekennzeichnet, daß das 64-ßit-DPFP-Format im Speicher und das 82-Bit-EDPFP-Format in den Registern eines die zweite Befehlssatzarchitektur aufweisenden Prozessor verwendet wird.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/170,131 | 1998-10-12 | ||
US09/170,131 US6163764A (en) | 1998-10-12 | 1998-10-12 | Emulation of an instruction set on an instruction set architecture transition |
PCT/US1999/023376 WO2000022524A1 (en) | 1998-10-12 | 1999-10-06 | Emulation of an instruction set on an instruction set architecture transition |
Publications (2)
Publication Number | Publication Date |
---|---|
DE19983632T1 DE19983632T1 (de) | 2001-09-27 |
DE19983632B4 true DE19983632B4 (de) | 2007-02-22 |
Family
ID=22618665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19983632T Expired - Fee Related DE19983632B4 (de) | 1998-10-12 | 1999-10-06 | Emulation eines Befehlssatzes bei einem Befehlssatzarchitekturübergang |
Country Status (7)
Country | Link |
---|---|
US (1) | US6163764A (de) |
KR (1) | KR100401799B1 (de) |
CN (1) | CN1126034C (de) |
AU (1) | AU1104000A (de) |
DE (1) | DE19983632B4 (de) |
GB (1) | GB2357876B (de) |
WO (1) | WO2000022524A1 (de) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7941647B2 (en) | 1999-01-28 | 2011-05-10 | Ati Technologies Ulc | Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination |
US6763452B1 (en) | 1999-01-28 | 2004-07-13 | Ati International Srl | Modifying program execution based on profiling |
US8074055B1 (en) * | 1999-01-28 | 2011-12-06 | Ati Technologies Ulc | Altering data storage conventions of a processor when execution flows from first architecture code to second architecture code |
US8127121B2 (en) | 1999-01-28 | 2012-02-28 | Ati Technologies Ulc | Apparatus for executing programs for a first computer architechture on a computer of a second architechture |
US6954923B1 (en) | 1999-01-28 | 2005-10-11 | Ati International Srl | Recording classification of instructions executed by a computer |
US8065504B2 (en) | 1999-01-28 | 2011-11-22 | Ati International Srl | Using on-chip and off-chip look-up tables indexed by instruction address to control instruction execution in a processor |
US7111290B1 (en) * | 1999-01-28 | 2006-09-19 | Ati International Srl | Profiling program execution to identify frequently-executed portions and to assist binary translation |
US6779107B1 (en) | 1999-05-28 | 2004-08-17 | Ati International Srl | Computer execution by opportunistic adaptation |
US6529862B1 (en) * | 1999-06-30 | 2003-03-04 | Bull Hn Information Systems Inc. | Method and apparatus for dynamic management of translated code blocks in dynamic object code translation |
US6516295B1 (en) * | 1999-06-30 | 2003-02-04 | Bull Hn Information Systems Inc. | Method and apparatus for emulating self-modifying code |
US6564179B1 (en) * | 1999-07-26 | 2003-05-13 | Agere Systems Inc. | DSP emulating a microcontroller |
US6845353B1 (en) * | 1999-12-23 | 2005-01-18 | Transmeta Corporation | Interpage prologue to protect virtual address mappings |
US6609247B1 (en) * | 2000-02-18 | 2003-08-19 | Hewlett-Packard Development Company | Method and apparatus for re-creating the trace of an emulated instruction set when executed on hardware native to a different instruction set field |
US6601163B1 (en) * | 2000-05-08 | 2003-07-29 | International Business Machines Corporation | Method and system for executing adapter configuration routines utilizing different operating modes |
GB2376098B (en) * | 2001-05-31 | 2004-11-24 | Advanced Risc Mach Ltd | Unhandled operation handling in multiple instruction set systems |
US7092869B2 (en) * | 2001-11-14 | 2006-08-15 | Ronald Hilton | Memory address prediction under emulation |
US20030093774A1 (en) * | 2001-11-14 | 2003-05-15 | Ronald Hilton | State-specific variants of translated code under emulation |
US6907519B2 (en) * | 2001-11-29 | 2005-06-14 | Hewlett-Packard Development Company, L.P. | Systems and methods for integrating emulated and native code |
US7171546B2 (en) * | 2002-05-23 | 2007-01-30 | Adams Phillip M | CPU life-extension apparatus and method |
US7779407B2 (en) * | 2002-05-29 | 2010-08-17 | Adams Phillip M | Computer-hardware, life-extension apparatus and method |
US7299170B2 (en) * | 2003-06-28 | 2007-11-20 | Transitive Limited | Method and apparatus for the emulation of high precision floating point instructions |
US7287173B2 (en) * | 2003-12-19 | 2007-10-23 | Intel Corporation | Method for computing power consumption levels of instruction and recompiling the program to reduce the excess power consumption |
US8255882B2 (en) * | 2004-12-30 | 2012-08-28 | Intel Corporation | Selecting formats for multi-format instructions in binary translation of code from a hybrid source instruction set architecture to a unitary target instruction set architecture |
US7447882B2 (en) * | 2005-04-20 | 2008-11-04 | Arm Limited | Context switching within a data processing system having a branch prediction mechanism |
US7360031B2 (en) * | 2005-06-29 | 2008-04-15 | Intel Corporation | Method and apparatus to enable I/O agents to perform atomic operations in shared, coherent memory spaces |
US7408484B1 (en) * | 2007-02-20 | 2008-08-05 | International Business Machines Corporation | Method of doing PACK unicode zSeries instructions |
US7394409B1 (en) * | 2007-02-20 | 2008-07-01 | International Business Machines Corporation | Method of doing pack ASCII zSeries instructions |
US8832679B2 (en) * | 2007-08-28 | 2014-09-09 | Red Hat, Inc. | Registration process for determining compatibility with 32-bit or 64-bit software |
US9652210B2 (en) | 2007-08-28 | 2017-05-16 | Red Hat, Inc. | Provisioning a device with multiple bit-size versions of a software component |
CN101676863B (zh) * | 2008-08-15 | 2012-12-26 | 北京北大众志微系统科技有限责任公司 | 一种双宽度指令系统的性能无损切换方法及其应用系统 |
US9727336B2 (en) | 2011-09-16 | 2017-08-08 | International Business Machines Corporation | Fine-grained instruction enablement at sub-function granularity based on an indicated subrange of registers |
US9411585B2 (en) * | 2011-09-16 | 2016-08-09 | International Business Machines Corporation | Multi-addressable register files and format conversions associated therewith |
US8694973B2 (en) * | 2011-09-27 | 2014-04-08 | Unisys Corporation | Abstracting computational instructions to improve performance |
US9563432B2 (en) | 2013-04-19 | 2017-02-07 | Nvidia Corporation | Dynamic configuration of processing pipeline based on determined type of fetched instruction |
US11263010B2 (en) * | 2019-07-09 | 2022-03-01 | Micron Technology, Inc. | Bit string lookup data structure |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5701508A (en) * | 1995-12-19 | 1997-12-23 | Intel Corporation | Executing different instructions that cause different data type operations to be performed on single logical register file |
US5742794A (en) * | 1995-10-13 | 1998-04-21 | Dell Usa, L.P. | Emulation techniques for computer systems having mixed processor/software configurations |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4951195A (en) * | 1988-02-01 | 1990-08-21 | International Business Machines Corporation | Condition code graph analysis for simulating a CPU processor |
US5313614A (en) * | 1988-12-06 | 1994-05-17 | At&T Bell Laboratories | Method and apparatus for direct conversion of programs in object code form between different hardware architecture computer systems |
US5507030A (en) * | 1991-03-07 | 1996-04-09 | Digitial Equipment Corporation | Successive translation, execution and interpretation of computer program having code at unknown locations due to execution transfer instructions having computed destination addresses |
US5574927A (en) * | 1994-03-25 | 1996-11-12 | International Meta Systems, Inc. | RISC architecture computer configured for emulation of the instruction set of a target computer |
US5685009A (en) * | 1994-07-20 | 1997-11-04 | Exponential Technology, Inc. | Shared floating-point registers and register port-pairing in a dual-architecture CPU |
US5764959A (en) * | 1995-12-20 | 1998-06-09 | Intel Corporation | Adaptive 128-bit floating point load and store instructions for quad-precision compatibility |
US5729724A (en) * | 1995-12-20 | 1998-03-17 | Intel Corporation | Adaptive 128-bit floating point load and store operations for quadruple precision compatibility |
US5740093A (en) * | 1995-12-20 | 1998-04-14 | Intel Corporation | 128-bit register file and 128-bit floating point load and store for quadruple precision compatibility |
US5920721A (en) * | 1997-06-11 | 1999-07-06 | Digital Equipment Corporation | Compiler generating functionally-alike code sequences in an executable program intended for execution in different run-time environments |
US5870575A (en) * | 1997-09-22 | 1999-02-09 | International Business Machines Corporation | Indirect unconditional branches in data processing system emulation mode |
-
1998
- 1998-10-12 US US09/170,131 patent/US6163764A/en not_active Expired - Lifetime
-
1999
- 1999-10-06 CN CN99812059A patent/CN1126034C/zh not_active Expired - Fee Related
- 1999-10-06 DE DE19983632T patent/DE19983632B4/de not_active Expired - Fee Related
- 1999-10-06 GB GB0107747A patent/GB2357876B/en not_active Expired - Fee Related
- 1999-10-06 KR KR10-2001-7004574A patent/KR100401799B1/ko not_active IP Right Cessation
- 1999-10-06 WO PCT/US1999/023376 patent/WO2000022524A1/en active IP Right Grant
- 1999-10-06 AU AU11040/00A patent/AU1104000A/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5742794A (en) * | 1995-10-13 | 1998-04-21 | Dell Usa, L.P. | Emulation techniques for computer systems having mixed processor/software configurations |
US5701508A (en) * | 1995-12-19 | 1997-12-23 | Intel Corporation | Executing different instructions that cause different data type operations to be performed on single logical register file |
Non-Patent Citations (6)
Title |
---|
Cmelik, R.F. et al: Shade: A Fast Instruction-Set Simulator for Executing Profiling, Technical Re- port UWCSE 93-06-06, University of Washington, S.- 1-41, 1993 [ftp://ftp.cs.washington.edu/tr/1993/06 /UW-CSE-93-06-06.PS.Z](recherchiert am 18.07.03) |
Cmelik, R.F. et al: Shade: A Fast Instruction-Set Simulator for Executing Profiling, Technical Re- port UWCSE 93-06-06, University of Washington, S.-1-41, 1993 [ftp://ftp.cs.washington.edu/tr/1993/06/UW-CSE-93-06-06.PS.Z](recherchiert am 18.07.03) * |
Dunfield Development Systems, Product catalog, Revised: 22-Mar-93, 7 Blatt http://www.ifi.unizh.ch/groups/ailab/embedded/ 8051/dunfield-cat * |
EMILY Y52 http://www.biopom.com/emily52.htm * |
Technical Note HW23 - FPU Operations on Macintosh Quadra Computers, Apple Computer, Inc.,01.06.1989, S. 1-12 (http://developer.apple.com/technotes/hw/p df/hw_23.pdf) (recherchiert am 30.04.04) |
Technical Note HW23 - FPU Operations on Macintosh Quadra Computers, Apple Computer, Inc.,01.06.1989,S. 1-12 (http://developer.apple.com/technotes/hw/pdf/hw_23.pdf) (recherchiert am 30.04.04) * |
Also Published As
Publication number | Publication date |
---|---|
WO2000022524A1 (en) | 2000-04-20 |
GB2357876A (en) | 2001-07-04 |
KR100401799B1 (ko) | 2003-10-17 |
GB2357876B (en) | 2003-08-27 |
AU1104000A (en) | 2000-05-01 |
DE19983632T1 (de) | 2001-09-27 |
WO2000022524A9 (en) | 2001-01-04 |
CN1328666A (zh) | 2001-12-26 |
KR20010080104A (ko) | 2001-08-22 |
US6163764A (en) | 2000-12-19 |
GB0107747D0 (en) | 2001-05-16 |
CN1126034C (zh) | 2003-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE19983632B4 (de) | Emulation eines Befehlssatzes bei einem Befehlssatzarchitekturübergang | |
DE69221041T2 (de) | Verbesserte fehleranzeige bei der ausführung von übersetztem befehlscode | |
Cook et al. | Time-bounded random access machines | |
US8024555B2 (en) | Condition code flag emulation for program code conversion | |
DE68921775T2 (de) | Prozessorssimulation. | |
US7331040B2 (en) | Condition code flag emulation for program code conversion | |
DE69224338T2 (de) | Verzweigungsauflösung durch rückgerichtete symbolische Ausführung | |
DE69904189T2 (de) | Konfigurierter prozessor zur abbildung von logischen registernummern auf physikalische registernummern unter verwendung von virtuellen registernummern | |
DE69124437T2 (de) | Verfahren und Vorrichtung zum Umkehren von Byteordnung in einem Rechner | |
DE69129881T2 (de) | Verzweigung in einem Pipeline-Prozessor | |
DE60203612T2 (de) | Datenverarbeitung mit mehrfachbefehlssätzen | |
DE69407772T2 (de) | Gerät und verfahren für ein verschiebbares dateiformat | |
EP0709767A1 (de) | Verfahren und Vorrichtung für eine Mehrplattform-Befehlssatz-Architektur | |
DE69727177T2 (de) | Emulation von asynchronen Signalen mit Verzweigungsmechanismus | |
DE69130513T2 (de) | Verfahren zur Durchführung boolescher Operationen zwischen zwei beliebigen Bits von zwei beliebigen Registern | |
DE102012217315A1 (de) | Verwenden von nativen Routinen an Stelle von emulierten Routinen in einer emulierten Anwendung | |
DE69807021T2 (de) | Verfahren und Geraet zur Implementierung von mehrfachen Ruecksprungstellen | |
Demers et al. | Data types, parameters and type checking | |
DE69721023T2 (de) | Bearbeitung bedingter auswahl-übertragungsbefehle | |
DE3686984T2 (de) | Verfahren und mittel zum laden und speichern von daten in einem rechner mit beschraenktem befehlssatz. | |
DE2702722A1 (de) | Instruktionsinterpretation in elektronischen datenverarbeitungsanlagen | |
Greniewski et al. | The external language KLIPA for the URAL-2 digital computer | |
DE3280449T2 (de) | Digitales Datenverarbeitungssystem. | |
DE19737658C2 (de) | Befehlsdecoder für einen Mikroprozessor | |
Symest | 5.16 Evaluation of NAPSS Expressions Involving Polyalgorithms, Functions, Recursion, and Untyped Variables |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8181 | Inventor (new situation) |
Free format text: DULONG, CAROLE, SARATOGA, CALIF., US CRAWFORD, JOHN H., SARATOGA, CALIF., US DULONG, CAROLE, SARATOGA, CALIF., US CRAWFORD, JOHN H., SARATOGA, CALIF., US |
|
8181 | Inventor (new situation) |
Free format text: DULONG, CAROLE, SARATOGA, CALIF., US CRAWFORD, JOHN H., SARATOGA, CALIF., US |
|
8607 | Notification of search results after publication | ||
8364 | No opposition during term of opposition | ||
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |
Effective date: 20130501 |