DE19983632B4 - Emulation eines Befehlssatzes bei einem Befehlssatzarchitekturübergang - Google Patents

Emulation eines Befehlssatzes bei einem Befehlssatzarchitekturübergang Download PDF

Info

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
Application number
DE19983632T
Other languages
English (en)
Other versions
DE19983632T1 (de
Inventor
Carole Saratoga Dulong
John H. Saratoga Crawford
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE19983632T1 publication Critical patent/DE19983632T1/de
Application granted granted Critical
Publication of DE19983632B4 publication Critical patent/DE19983632B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30025Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30109Register structure having multiple operands in a single register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30112Register structure comprising data of variable length
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract 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.

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 Computersystem 100 enthält einen Prozessor 110, einen Host-Bus 120, eine Speichersteuereinrichtung 130 und eine Speichereinrichtung 150.
  • 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 Speichereinrichtung 150 zur Verfügung. Die Speichersteuereinrichtung 140 ist mit dem Host-Bus 130 gekoppelt, um es dem Prozessor zu ermöglichen, auf die Speichereinrichtung 150 zuzugreifen. Die Speichereinrichtung 150 repräsentiert einen oder mehrere Mechanismen zum Speichern von Informationen. Beispielsweise kann die Speichereinrichtung 150 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 Speichereinrichtung 150 Programmcode 152 und Daten 154 gespeichert sind. Der Programmcode 152 repräsentiert den erforderlichen Code zum Durchführen einiger und/oder sämtlicher der Techniken bei der vorliegenden Erfindung. Insbesondere umfaßt der Programmcode 152 einen Emulationscode 153. Der Emulationscode 153 emuliert Befehle in einem Datenformat (oder Modus) auf dem Prozessor 110. Die Daten 154 speichern von dem Programmcode 152 verwendete Daten, Graphikdaten und temporäre Daten. Insbesondere enthält der Datenspeicher 154 ein Datensegment 155, welches in einem Format 1, das als Speicherformat oder reguläres Format bezeichnet wird, dargestellte Daten enthält. Selbstverständlich enthält die Speichereinrichtung 150 vorzugsweise zusätzliche (nicht gezeigte) Software, welche für das Verständnis der Erfindung nicht erforderlich ist.
  • 1 veranschaulicht zusätzlich, daß der Prozessor 110 eine Decodiereinheit 112, eine Ausführungseinheit 114, einen Registersatz 116 und einen internen Bus 111 enthält. Selbstverständlich enthält der Prozessor 110 zusätzliche Schaltungen, welche für das Verständnis der Erfindung nicht erforderlich sind. Die Decodiereinheit 112 wird zum Decodieren von durch den Prozessor 110 empfangenen Befehlen in Steuersignale und/oder Mikrocodeeintrittspunkte verwendet. In Erwiderung dieser Steuersignale und/oder Mikrocodeeintrittspunkte führt die Ausführungseinheit 114 die richtigen Operationen durch. Der Registersatz 116 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 Registersatz 116 (erweitertes oder Registerformat) dargestellt, aber als 64-Bit-FPDP in dem Speicher 155 (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 Prozessor 110 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-Konvertierer 320, einen Format-2-Konvertierer 360 und eine Operation 340.
  • 3 zeigt Operanden 310, 330, 350 und 370. Die Operanden 310 und 370 sind im Format 1 (z. B. 64-Bit) und die Operanden 330 und 350 sind im Format 2 (z. B. 82-Bit). Der Format-1-Konvertierer konvertiert die Operanden 310 aus dem Format 1 in die Operanden 330 in Format 2 vor der Operation. Die Operation 340 wird unter Verwendung des Formats 2 durchgeführt. Nach der Operation werden die Operanden 350 von dem Format-2-Konvertierer 360 zurück in die Operanden 370 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äne 420, eine Modus2-Domäne 430 und eine Modus2-Anwendung 440. Die Modus1-Anwendung 410 ruft zu der Modus2-Anwendung 440 auf. Die Modus2-Anwendung 440 hat keine Kenntnis über das Modus1-Format (z. B. das Registerformat). Die Modus1-Domäne 420 stellt einen Sprung zu dem Modus2 durch einen Sprungbefehl (z. B. JUMPE) zur Verfügung. Die Modus2-Domäne 430 stellt die Modus2-Konvertierung von Parametern zur Verfügung. Dann findet die Operation in der Modus2-Anwendung 440 statt.
  • Bei einem Modusübergang aus der Modus2-Anwendung 440 in die Modus1-Anwendung 410 stellt ein Verzweigungsbefehl (z. B. BR_IA) einen Ausgang aus der Modus2-Anwendung 440 in die Modus1-Anwendung 410 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äne 420 werden sämtliche Register in der Modus1-Anwendung 410 im Speicher gesichert. Die Modus2-Domäne 430 lädt die Parameter aus dem Speicher mit dem der Verwendung entsprechenden Format. In der Modus2-Anwendung 440 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-Anwendung 410 weiter.
  • 5 ist eine Darstellung, die eine Kontextumschaltung 500 in Übereinstimmung mit einem Ausführungsbeispiel der Erfindung veranschaulicht. Die Kontextumschaltung 500 tritt infolge eines Interrupts auf und umfaßt eine Modus1-Anwendung 410 und ein Modus2-Betriebssystem 520. 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 Aufrufcode 512 und einen Rückkehrcode 514. Das Modus2-Betriebssystem (OS) 520 ist ein Betriebssystem, das im Modus2-Befehlssatz (z. B. IA64) abläuft. Das Modus2-OS 520 enthält einen Patch-Code 522, einen Sicherungscode 524, einen Modus2-Code 525, einen Wiederherstellungscode 526 und einen Rückkehrcode 528.
  • Bei der in 5 veranschaulichten Kontextumschaltung 500 empfängt die Modus1-Anwendung 410 ein Interrupt. Die Register in der Modus1-Anwendung 410 sind in dem Speicherformat und dem erweiterten Format. Der Aufrufcode 512 ruft zu dem Modus2-OS 520 auf. Wenn die Steuerung zu dem Modus2-OS 520 weitergeleitet wird, führt der Patch-Code 522 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 Sicherungscode 524 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-Code 525 seine Ausführung abgeschlossen hat, stellt der Wiederherstellungscode 526 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ückkehrcode 528 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ückkehrcode 514 in der Modus1-Anwendung 410 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ückkehrcode 514 in der Modus1-Anwendung 410 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)-Element 610 in ein gepacktes 32-Bit-Einfachgenauigkeit(SP)-Element 660 und umgekehrt. Das gepackte 32-Bit-INT-Element 610 wird in das gepackte 32-Bit-SP-Element 660 durch die Konvertierungssequenz 605 konvertiert. Das gepackte 32-Bit-SP-Element 660 wird in das gepackte 32-Bit-INT-Element 610 durch Verwendung ursprünglicher Konvertierungsbefehle, wie beispielsweise dem fpcvt-Befehl, konvertiert.
  • Die Konvertierungssequenz 605 konvertiert das gepackte 32-Bit-INT-Element 610 in ein ungepacktes 32-Bit-INT-Element 620, indem das Element 610 in zwei separate Teile entpackt wird, wobei jedes Teil ein 32-Bit-INT-Element ist. Dann wird das entpackte 32-Bit-INT-Element 620 in ein ungepacktes 64-Bit-INT-Element 630 konvertiert, indem jedes 32-Bit-INT-Element in ein zugehöriges 64-Bit-INT-Element konvertiert wird. Dann wird das ungepackte 64-Bit-INT-Element 630 in ein ungepacktes 82-Bit-DP-Element 640 konvertiert, indem jedes 64-Bit-INT-Element in ein zugehöriges 82-Bit-DP-Element konvertiert wird. Das ungepackte 82-Bit-DP-Element 640 wird dann in ein gepacktes 82-Bit-DP-Element 650 konvertiert, indem die 82-Bit-DP-Elemente in ein gepacktes Format gepackt oder kombiniert werden. Schließlich wird das gepackte 82-Bit-DP-Element 650 in das 32-Bit-SP-Element 660 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 (Block 710). 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 (Block 720). 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 (Block 730). Wenn dies nicht der Fall ist, setzt der Prozeß 700 das Exponentenfeld auf 0 × 1003E (Block 750) und fährt damit fort, die logische Operation auszuführen (Block 760). Sofern der Signifikand gleich Null ist, setzt der Prozeß 700 das Exponentenfeld auf 0 × 0 (Block 740) und fährt damit fort, die zugehörige logische Operation, wie beispielsweise FAND, FANDCM, FOR oder FXOR, auszuführen (Block 760).
  • 8 ist eine Darstellung, die eine aufrufende Operation 800 in Übereinstimmung mit einem Ausführungsbeispiel der Erfindung veranschaulicht. Die aufrufende Operation 800 umfaßt einen Aufrufer 810 und einen Aufgerufenen 820.
  • Der Aufrufer 810 arbeitet die Anwendung in einem Datenformat ab und ruft den Aufgerufenen 820 auf. Der Aufgerufene 820 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 Aufgerufenen 820 aufruft. Der Aufgerufene 820 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 Aufgerufene 820 die in dem Speicher gesicherten Registerbits in Speicherformat wieder her. Sofern es eine Nicht-Übereinstimmung des Formats gibt, konvertiert der Aufgerufene 820 zurück, wenn er die Aufruferbefehle ausführt. Bei Rückkehr zu dem Aufrufer 810 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 (Block 910). 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 (Block 920). 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 (Block 930). 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 (Block 950). 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)

  1. 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.
  2. 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.
  3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß das DPFP-Format eine 64-Bit-Darstellung hat.
  4. 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.
  5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, daß das EDPFP-Format eine 82-Bit-Darstellung hat.
  6. 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.
DE19983632T 1998-10-12 1999-10-06 Emulation eines Befehlssatzes bei einem Befehlssatzarchitekturübergang Expired - Fee Related DE19983632B4 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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