DE69839113T2 - Direkte Vectoremulation eines geerbten Befehlssatzes - Google Patents
Direkte Vectoremulation eines geerbten Befehlssatzes Download PDFInfo
- Publication number
- DE69839113T2 DE69839113T2 DE69839113T DE69839113T DE69839113T2 DE 69839113 T2 DE69839113 T2 DE 69839113T2 DE 69839113 T DE69839113 T DE 69839113T DE 69839113 T DE69839113 T DE 69839113T DE 69839113 T2 DE69839113 T2 DE 69839113T2
- Authority
- DE
- Germany
- Prior art keywords
- instructions
- precursor
- software
- legacy
- commands
- 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 - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30174—Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1466—Key-lock mechanism
- G06F12/1475—Key-lock mechanism in a virtual system, e.g. with translation means
-
- 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)
- Computer Security & Cryptography (AREA)
- Executing Machine-Instructions (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
- HINTERGRUND DER ERFINDUNG
- 1. Gebiet der Erfindung
- Die vorliegende Erfindung betrifft ein Verfahren und eine Vorrichtung zum Nachbilden bzw. Emulieren von Befehlen eines Mikroprozessors und insbesondere ein Verfahren und eine Vorrichtung, welche es einem Mikroprozessor ermöglichen, mit einem Upgrade- bzw. Aufrüstungs-Mikroprozessor mit einem inkompatiblen Befehlssatz aufgerüstet zu werden.
- 2. Beschreibung des Standes der Technik
- Es ist bekannt, dass Mikroprozessoren mit unterschiedlichen Befehlssatzarchitekturen ("instruction set architectures"; ISA) ausgestaltet sind. Die ISA bestimmt den Befehlssatz für einen bestimmen Mikroprozessor. Anwendungsprogramme werden von Mikroprozessoren ausgeführt, wobei die Anwendungsprogramme normalerweise in einer Sprache auf relativ hoher Ebene geschrieben sind, und welche in Maschinenbefehle übersetzt bzw. kompiliert werden, die mit dem Befehlssatz für den spezifischen Mikroprozessor kompatibel sind. Mikroprozessoren werden zunehmend dazu ausgestaltet, Befehle schneller und schneller auszuführen. Als solches werden Systeme, die solche Mikroprozessoren beinhalten, oft aufgerüstet, um die Geschwindigkeit des Systems zu erhöhen. Unglücklicherweise ist der Befehlssatz des aufgerüsteten Mikroprozessors, abhängig vom jeweiligen Upgrade, oftmals mit dem Befehlssatz des zu ersetzenden Mikroprozessors ("Vorläufer- bzw. Legacy-Prozessor") inkompatibel. Als solche müssen die bestehenden Anwendungsprogramme in solchen Anwendungen oft in neue und moderne Computersprachen mit modernen Compilern umgeschrieben werden. Leider kann eine solche Unternehmung oft ziemlich mühsam und teuer sein.
- Aufgrund des Alters und der Veralterung vieler bestehender eingebetteter Computer sinkt die Zuverlässigkeit solcher Computer rapide, während die Wartung immer schwieriger und teurer wird. Als solches ist es manchmal vonnöten, veraltete "Vorläufer- bzw. Legacy"-Mikroprozessoren durch Mikroprozessoren neuerer Technologie zu ersetzen. Um Inkompatibilitäten von Befehlssätzen zu umgehen, sind Emulationssysteme (Emulatoren) entwickelt worden. Es sind Emulatoren bekannt, die den Befehlssatz des Legacy-Mikroprozessors emulieren, um es den Befehlen des Legacy-Mikroprozessors zu ermöglichen, von einem anderen Mikroprozessor "ausgeführt" zu werden. Es sind sowohl software- als auch hardwarebasierte Emulatoren bekannt. Beispielsweise sind verschiedene Softwareemulatoren für eine F-16 Avionics Integration Support Facility (AISF) Common Modular Environment (COMET) im Dokument Nr. F-16 AISF-COMET-100 (EMULATORS-SWD-A vom 21. Mai 1996) beschrieben. Hardwarebasierte Emulatoren für den militärischen Standard-MIL-STD-1750A sind in dem Dokument mit dem Titel "Line Replaceable Unit Emulator Hardware Product Fabrication Specification", Dokument Nr. SFF20702 vom 16. April 1996 beschrieben.
-
EP 0 730 266 beschreibt eine Vorrichtung zum Emulieren von Befehlen, die in einer Revision eines Prozessors unterstützt werden, auf dem Prozessor der folgenden Revision. Deshalb werden spezifische Befehle, die nicht in letzterem implementiert sind, durch Routinen emuliert, die im Speicher gespeichert sind. Wenn ein unimplementierter Befehl ausgeführt werden soll, wird eine Ausnahmebedingung ausgelöst, welche Information über die Parameter und den Typ des Befehls enthält. Der allgemeine, im Speicher gespeicherte Emulationscode ist für alle Befehle eines Typs geeignet. Der Emulationscode umfasst Routinen zum Holen bzw. Abrufen eines unimplementierten Befehls des gegebenen Befehlstyps, ein Interpretieren der Parameterfelder, die den unimplementierten Befehl vollständig spezifizieren, und ein Emulieren des vollständig spezifizierten unimplementierten Befehls. -
US 5,408,622 beschreibt, wie ein für eine Systemarchitektur geschriebenes Programm so übersetzt werden kann, dass es auf einer anderen Systemarchitektur läuft. Eine Übersetzung bzw. Umsetzung kann mit einem interpretativen Emulator erreicht werden, der Emulationsroutinen verwendet. Es wird ein Sprung-Hostbefehl am Ende einer Emulationsroutine verwendet, um zur nächsten Emulationsroutine zu springen. Die Adresse der nächsten auszuführenden Emulationsroutine wird während der aktuellen Emulationsroutine berechnet, ohne zur Dispatch-Schleife zurückzukehren. Um die Adresse für den Sprung-Hostbefehl zu erzeugen, werden ein emulierter Programmzähler, ein Summiermittel, eine Zustandsmaschine, ein Zeigerspeichermittel, ein Opcode-Speichermittel und eine Sprungbefehlschaltung benötigt. -
WO 98/57262 - Leider sind bekannte Softwareemulatoren dafür bekannt, relativ ineffizient zu sein. Insbesondere werden in solchen bekannten Softwareemulatoren Legacy-Befehle für den aufgerüsteten bzw. Upgrade-Mikroprozessor abgerufen, welcher eine Nachschlagetabelle verwendet, um den Legacy-Befehl zu interpretieren. Da jeder Legacy-Befehl interpretiert werden muss, leiden Computersysteme, welche einen Cache-Speicher beinhalten, bekannterweise an einer relativ hohen Wahrscheinlichkeit von Cacheverfehlungen bzw. "Cache-Misses", welche den Gesamtdurchsatz des Systems verringern.
- ZUSAMMENFASSUNG DER ERFINDUNG
- Es ist eine Aufgabe der vorliegenden Erfindung, ein Emulationssystem zum Emulieren von Legacy- bzw. Vorläufer-Befehlen eines Mikroprozessors mit einem inkompatiblen Befehlssatz bereitzustellen, welches den Durchsatz des Systems relativ zu bekannten Emulatoren erhöht.
- Kurz gesagt, betrifft die vorliegende Erfindung, wie in Anspruch 1 und 5 dargelegt, ein Verfahren und eine Vorrichtung zum Emulieren von Befehlen eines Mikroprozessors ("Legacy-Befehle") mit einem inkompatiblen Befehlssatz, welche einen relativ zu bekannten Emulationssystemen erhöhten Durchsatz bereitstellen. Insbesondere werden die Legacy-Befehle in direkte Vektoren zu Softwareroutinen für jeden Legacy-Befehl übersetzt bzw. umgesetzt. Anstatt den Legacy-Befehl abzurufen und den Befehl in Software zu interpretieren, ruft das erfindungsgemäße Emulationssystem und -verfahren die direkten Vektoren zu den Softwareroutinen ab, welche die Legacy-Befehle emulieren. Die Legacy-Befehle können entweder mittels Software übersetzt werden, wenn der Legacy-Speicher in den Hauptspeicher geladen wird, oder mittels Hardware modifiziert werden, wenn auf den Legacy-Speicher zugegriffen wird. Mittels Abrufens der direkten Vektoren wird die Notwendigkeit von Nachschlagetabellen zum Interpretieren der Legacy-Befehle vermieden. Da keine Notwendigkeit besteht, den Cache mit Nachschlagetabellenzugriffen zu füllen, wird die Wahrscheinlichkeit von Cache-Verfehlungen stark verringert, was den Durchsatz des Systems erhöht.
- KURZE BESCHREIBUNG DER ZEICHNUNG
- Diese und andere Aufgaben der vorliegenden Erfindung werden unter Bezug auf die folgende Beschreibung und die beiliegenden Zeichnungen besser verständlich, in denen:
-
1 ein Blockdiagramm ist, welches die Übersetzung des Legacy- bzw. Vorläufer-Befehls gemäß der vorliegenden Erfindung zeigt; -
2 ein Blockdiagramm ist, welches eine Ausführungsform (in welcher die Vektorübersetzung mittels Hardware vorgenommen wird) zum Übersetzen der Legacy-Befehle gemäß der vorliegenden Erfindung zeigt; -
3 ein Blockdiagramm ist, das die Abbildung der Legacy-Befehle auf den Hauptspeicher zeigt; -
4 ein Blockdiagramm eines aufgerüsteten Mikroprozessors mit Cachespeicher ist, das den Betrieb des Cachesystems gemäß der vorliegenden Erfindung zeigt. - GENAUE BESCHREIBUNG DER ERFINDUNG
- Die vorliegende Erfindung betrifft ein Emulationssystem und -verfahren zum Nachbilden bzw. Emulieren von Vorläufer- bzw. Legacy-Befehlen eines veralteten ("Legacy"-)Mikroprozessors mit einem neuen Upgrade-Mikroprozessor mit einem inkompatiblen Befehlssatz. In solchen Anwendungen werden Softwareprogramme geschrieben, welche jeden der Legacy-Befehle unter Verwendung von Befehlen des Upgrade-Mikroprozessors emulieren. In bekannten Emulationssystemen bewirkt die Emulationssoftware, dass der Legacy-Befehl abgerufen und mittels des neuen Mikroprozessors mittels der Nachschlagetabelle interpretiert wird. Wie nachstehend genauer besprochen, hat solch eine Methodik einen erheblichen Einfluss auf den Durchsatz des Systems. Um den Durchsatz des Systems zu erhöhen, werden die Legacy-Befehle in direkte Vektoren zu Softwareroutinen oder einen Emulationscode zum Emulieren der Legacy-Befehle übersetzt. Als solche wird die Wahrscheinlichkeit von Cache-Misses, wie nachstehend genauer besprochen, stark verringert, was zu einem erhöhten Durchsatz des Systems führt.
- Bezüglich
1 wird eine eingebettete Software oder Code für einen Legacy-Mikroprozessor allgemein mit der Bezugsziffer20 gekennzeichnet. Solch ein Code wird normalerweise in einem nicht-volatilen Nur-Lese-Speicher ("read only memory"; ROM) gespeichert. Wie gezeigt, umfasst der ROM20 Legacy-Befehle, die als INSTR 1, INSTR 2 und INSTR 3 usw. gekennzeichnet sind. Der ROM20 umfasst auch unmittelbare Daten. Die Befehle INSTR 1, INSTR 2, INSTR 3, usw. zuzüglich der unmittelbaren Daten im ROM20 befinden sich beispielsweise an einer Basisadresse A im Speicherraum. - Gemäß einem wichtigen Gesichtspunkt der Erfindung wird jeder Befehl (d. h., Befehl INSTR 1, INSTR 2, INSTR 3, usw.) in einen direkten Vektor zu einer Softwareroutine oder in einen Emulationscode zum Emulierend des Vorläufer- bzw. Legacy-Befehls übersetzt. Beispielsweise wird jeder Legacy-Befehl auf ein weiteres Speichergerät
22 , wie beispielsweise einen ROM22 , abgebildet oder dorthin übersetzt. Die Struktur des Speichergeräts22 bezüglich der Befehle bleibt die gleiche wie beim ROM20 , aber mit einer anderen Basisadresse B. Mit anderen Worten befinden sich Befehle im ROM20 an einer Basisadresse A zuzüglich eines Befehlszähler-("instruction counter"; IC) Versatzes, welcher dem nächsten auszuführenden Legacy-Befehl entspricht. Die Befehle INSTR 1, INSTR 2, INSTR 3, usw. werden an einer anderen Adresse B, aber mit dem gleichen IC-Versatz, auf den ROM22 abgebildet. - Die direkten Vektoren im ROM
22 können entweder JUMP-(Sprung-)Befehle zu Softwareroutinen zum Emulieren des Legacy-Befehls oder Adresszeiger sein. Die direkten Vektoren können beispielsweise einen Versatzzeiger zu einer Emulationsmikrocoderoutine oder einen Zeiger zu einer Tabelle darstellen, welche einen Zeiger zu einer Mikroroutine enthält. Ungeachtet dessen werden eher diese Vektoren mittels der Emulationssoftware abgerufen als die Legacy-Befehle. - Die unmittelbaren Daten mögen in Scheinvektoren im ROM
22 übersetzt werden, welche nicht von der Emulationssoftware verwendet werden. Stattdessen mag die Emulationssoftware gemäß der vorliegenden Erfindung auf die unmittelbaren Daten direkt vom Legacy-Code20 aus zugreifen, und zwar mittels Lesens der Daten direkt an der Basisadresse A zuzüglich des Befehlszähler-(IC-)Versatzes vom ROM20 . - Verschiedene Verfahren sind zum Übersetzen des Legacy-Mikrocodes geeignet. Es sind sowohl Hardware- als auch Softwareverfahren zum Übersetzen dieser Befehle geeignet.
2 zeigt eine Hardwareimplementierung, in welcher eine Hardwarevorrichtung24 , wie beispielsweise ein ROM, der eine Nachschlagetabelle enthält, mit dem Datenbus zwischen einem aufgerüsteten Mikroprozessor26 und dem Legacy-Mikrocode gekoppelt ist, d. h. dem ROM20 . Die Hardwarevorrichtung24 ist so konfiguriert, dass jedes Mal, wenn ein Zugriff auf den Legacy-Code benötigt wird, d. h., die Basisadresse B zuzüglich des IC-Versatzes, der Vektor, der dem benötigten Befehl entspricht, bereitgestellt wird. Alternativ kann der Decoder umgangen werden, so dass ein Zugriff auf den Legacy-Code (d. h., die Basisadresse A zuzüglich des IC-Versatzes) zu den unübersetzten Daten zurückkehren wird. Somit kann der Upgrade-Prozessor mittels des abgerufenen Vektors zu der zugeordneten Emulationscoderoutine geleitet werden, oder er kann direkt vom Speicher aus auf die unmittelbaren Daten zugreifen. - In einer alternativen Ausführungsform der Erfindung mag der Vorläufer- bzw. Legacy-Emulationscode mittels Software übersetzt bzw. umgesetzt werden, wenn der Legacy-Speicher in den Hauptspeicher geladen oder modifiziert wird. Insbesondere wird ein Softwareprogramm, beispielsweise ein Teil der Initialisierungssoftware, dazu verwendet, den Legacy-Code in den Hauptspeicher
28 des Computersystems zu laden (3 ) (z. B. an der Basisadresse A). In dieser Ausgestaltung werden, nachdem der Legacy-Mikrocode geladen wurde, die direkten Vektoren (d. h. der ROM22 ) an eine andere Stelle (z. B. die Basisadresse B) in den Hauptspeicher28 geladen, was es dem Emulationscode im aufgerüsteten bzw. Upgrade-Prozessor ermöglicht, entweder auf die übersetzten22 oder unübersetzten20 Legacy-Speicherabschnitte zuzugreifen. Die vom übersetzten Speicher22 abgerufenen Vektoren werden dazu verwendet, die individuellen Softwareroutinen im Emulationscode30 anzuzeigen. Bei dieser Ausführungsform der Erfindung müssen die übersetzten 22 und unübersetzten20 Legacy-Speicherabschnitte nicht getrennt werden, sie könnten verschachtelt sein, so dass jeder Vektor dem unübersetzten Befehl unmittelbar folgt oder ihm vorangeht. - Wie oben erwähnt, ist die Konfiguration des Verfahrens und Systems zum Emulieren von Legacy-Befehlen daran angepasst, den Durchsatz des Systems zu verbessern. Insbesondere umfassen viele bekannte Mikroprozessoren Cachespeicher, um den Durchsatz des Systems zu verbessern. Software, die vom Hauptspeicher abgerufen wird, wird in den Cachespeicher kopiert, welcher viel schneller als der Hauptspeicher ist. Somit können im Cachespeicher gespeicherte Befehle viel schneller ausgeführt werden als diejenigen, die nur im Hauptspeicher gespeichert sind. Solche Cachespeicher werden normalerweise aus statischen Hochgeschwindigkeitsspeichern mit wahlfreiem Zugriff ("static random access memory"; SPAM) gebildet und werden dazu verwendet, Kopien von Daten im Hauptspeicher oder neu gespeicherte Daten zu speichern.
- Solche Cachespeicher arbeiten auf den Prinzipien, dass die meiste Programme Befehle in Folge ausführen und, aufgrund von Schleifen, Programme häufig kürzlich abgerufene Befehle wiederverwenden. Dieses Prinzip wird als Lokalitätseigenschaft bezeichnet. Somit arbeitet ein Cachespeichersystem, anstatt nur einen einzelnen Befehl auf einmal abzurufen, vorausschauend und ruft Blöcke von Befehlen in Folge ab und speichert die Befehle für einen schnellen Zugriff.
- Bei Betrieb werden alle Daten in einem Cachespeicher mit etwas gespeichert, das als Adress-Tag bzw. -markierung bekannt ist. Der Adress-Tag zeigt die physikalischen Adressen der Daten im Hauptspeicher an, die im Cache gespeichert sind. Wenn der Mikroprozessor einen Speicherzugriff initiiert, werden die Adress-Tags im Cachespeicher zuerst untersucht, um zu bestimmen, ob die bestimmten benötigten Daten schon im Cachespeicher gespeichert sind. Wenn die Daten im Cachespeicher gefunden werden, wird dies als Cachetreffer bezeichnet und die Daten sind sofort für den Mikroprozessor verfügbar. Falls bestimmt wird, dass sich die benötigten Daten nicht im Cachespeicher befinden, wird dieser Zustand als Cacheverfehlung bzw. "Cache-Miss" bezeichnet. Als Folge einer Cacheverfehlung müssen die benötigten Daten dann vom Hauptspeicher mit einer sehr viel langsameren Rate abgerufen werden.
-
4 zeigt eine typische Konfiguration eines Mikroprozessors mit einem Cachespeicher auf dem Chip. In zuvor bekannten Systemen rief die bekannte Emulationssoftware die Legacybefehle selbst ab. Die Legacy-Befehle wurden dann mittels einer Nachschlagetabelle interpretiert. Da der Cachespeicher auf der Prämisse beruht, dass eine Folge von Daten an sequentiellen Speicherorten benötigt wird, ist die Verwendung der Nachschlagetabelle in Cachespeichersystemen nicht besonders effizient und führt zu einer relativ hohen Wahrscheinlichkeit von Cacheverfehlungen. Mittels Verwendens von direkten Vektoren und aufgrund der Auswirkungen des Lokalitätsprinzips im Legacy-Code und den entsprechenden direkten Vektoren wird die Wahrscheinlichkeit von Cacheverfehlungen stark verringert, wodurch der Gesamtdurchsatz des Systems erhöht wird. Insbesondere ist bezüglich4 ein erfindungsgemäße Speichersystem gezeigt. Wie gezeigt, umfasst das System den Upgrade-Mikroprozessor26 , welcher zwei auf einem Chip befindliche Cachespeicher32 und34 umfasst. Ein Cachespeicher32 wird für Daten verwendet, welcher einen Datencache bildet, während der andere Cachespeicher34 für Befehle verwendet wird und somit einen Befehlscache bildet. Der Befehlscache34 mag fast ausschließlich für den Emulationscode verwendet werden. Der Datencache32 mag für den Legacy-Code, direkte Vektoren und Daten verwendet werden. - Bei Betrieb mag auf eine Cacheverfehlung hin eine Gruppe von acht Vektoren vom Hauptspeicher abgerufen werden und im Datencache
32 als Teil des Cacheleitungs auffüllablaufs gespeichert werden. Da die Legacy- bzw. Vorläufer-Befehle normalerweise der Reihe nach bzw. sequentiell erfolgen, werden sich die 7 folgenden Anfragen nach Befehlsvektoren normalerweise im Datencache30 befinden. Falls der nächste auszuführende Legacy-Befehl nicht-sequentiell ist, sich aber unter den letzten tausend auszuführenden Befehlen (d. h., den lokalen Schleifen) befindet, besteht eine hohe Wahrscheinlichkeit, dass sich der Vektor noch immer im Datencache30 befindet. Diese Erfindung hat die Wahrscheinlichkeit von Cacheverfehlungen verringert und somit den Durchsatz des Systems erhöht. - Es ist offensichtlich, dass viele Modifikationen und Änderungen der vorliegenden Erfindung vor dem Hintergrund der obigen Lehren möglich sind. Es ist daher zu beachten, dass die Erfindung im Umfang der beiliegenden Ansprüche auch anderweitig als oben insbesondere beschrieben angewandt werden kann.
Claims (7)
- Vorrichtung zur Emulation von Vorläufer-Befehlen mittels Befehlen an einen aufgerüsteten Mikroprozessor, wobei die Vorrichtung Folgendes umfasst: • Mittel zur Emulation der Vorläufer-Befehle mittels Befehlen des aufgerüsteten Mikroprozessors, wobei das Emulationsmittel Software-Routinen zur Emulation der Vorläufer-Befehle beinhaltet und jede Software-Routine durch eine von der Adresse des emulierten Befehls verschiedene Adresse festgelegt ist; dadurch gekennzeichnet, dass • die Vorläufer-Befehle durch Umsetzungsmittel auf die Adressen der jeweiligen Software-Routinen abgebildet sind, welche die Vorläufer-Befehle emulieren; und • Mittel zum Holen von Adressen für die Software-Routinen als Antwort auf Anforderungen von Vorläufer-Befehlen.
- Vorrichtung nach Anspruch 1, wobei das Übersetzungsmittel Hardware-basiert ist.
- Vorrichtung nach Anspruch 2, wobei das Übersetzungsmittel ein zwischen einen aufgerüsteten Mikroprozessor und ein Speichergerät gekoppeltes Hardware-Gerät beinhaltet.
- Vorrichtung nach Anspruch 1, wobei das Übersetzungsmittel Software-basiert ist.
- Verfahren zum Emulieren von Vorläufer-Befehlen mit einem anderen, einen inkompatiblen Befehlssatz aufweisenden Mikroprozessor, wobei das Verfahren folgende Schritte aufweist: • Speichern einer oder mehrerer Software-Routinen zum Emulieren von Vorläufer-Befehlen; und durch folgende Schritte gekennzeichnet ist: • Umsetzen der Vorläufer-Befehle in Adressen für die Software-Emulationsroutinen zum Emulieren der Vorläufer-Befehle; und • Holen der Adressen für die Software-Emulationsroutinen als Antwort auf Anforderungen von Vorläufer-Befehlen.
- Verfahren nach Anspruch 5, wobei die Vorläufer-Befehle durch Software in Adresszeiger für die Software-Emulationsroutinen umgesetzt werden.
- Vorrichtung nach Anspruch 5, wobei die Vorläufer-Befehle durch Hardware in Adresszeiger für die Software-Emulationsroutinen umgesetzt werden.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US2960 | 1987-01-13 | ||
US09/002,960 US6041402A (en) | 1998-01-05 | 1998-01-05 | Direct vectored legacy instruction set emulation |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69839113D1 DE69839113D1 (de) | 2008-03-27 |
DE69839113T2 true DE69839113T2 (de) | 2009-02-05 |
Family
ID=21703391
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69839113T Expired - Lifetime DE69839113T2 (de) | 1998-01-05 | 1998-12-16 | Direkte Vectoremulation eines geerbten Befehlssatzes |
Country Status (7)
Country | Link |
---|---|
US (1) | US6041402A (de) |
EP (1) | EP0927929B1 (de) |
JP (1) | JP2990195B2 (de) |
AU (1) | AU708160B1 (de) |
CA (1) | CA2256831C (de) |
DE (1) | DE69839113T2 (de) |
RU (1) | RU2233004C2 (de) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7085775B2 (en) * | 1997-04-09 | 2006-08-01 | Sidewinder Holdings Ltd. | Database method and system for conducting integrated dispatching |
US6272453B1 (en) * | 1998-01-05 | 2001-08-07 | Trw Inc. | Concurrent legacy and native code execution techniques |
US6243668B1 (en) * | 1998-08-07 | 2001-06-05 | Hewlett-Packard Company | Instruction set interpreter which uses a register stack to efficiently map an application register state |
US6357003B1 (en) * | 1998-10-21 | 2002-03-12 | Silicon Graphics, Inc. | Advanced firmware boot sequence x86 computer system that maintains legacy hardware and software compatibility |
GB2348305A (en) * | 1999-03-24 | 2000-09-27 | Int Computers Ltd | Instruction execution mechanism |
AU2001268406A1 (en) * | 2000-07-31 | 2002-02-13 | Caterpillar Inc. | Methods and apparatus for emulating software |
US20030093649A1 (en) * | 2001-11-14 | 2003-05-15 | Ronald Hilton | Flexible caching of translated code under emulation |
US7171546B2 (en) * | 2002-05-23 | 2007-01-30 | Adams Phillip M | CPU life-extension apparatus and method |
US7219337B2 (en) * | 2003-03-06 | 2007-05-15 | Northrop Grumman Corporation | Direct instructions rendering emulation computer technique |
US8423976B2 (en) | 2003-03-13 | 2013-04-16 | Northrop Grumman Corporation | Extreme pipeline and optimized reordering technology |
US8612729B2 (en) | 2007-12-17 | 2013-12-17 | Advanced Micro Devices, Inc. | Known good code for on-chip device management |
US7831813B2 (en) * | 2007-12-17 | 2010-11-09 | Globalfoundries Inc. | Uses of known good code for implementing processor architectural modifications |
US9280347B2 (en) * | 2012-03-15 | 2016-03-08 | International Business Machines Corporation | Transforming non-contiguous instruction specifiers to contiguous instruction specifiers |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5430862A (en) * | 1990-06-29 | 1995-07-04 | Bull Hn Information Systems Inc. | Emulation of CISC instructions by RISC instructions using two pipelined stages for overlapped CISC decoding and RISC execution |
GB9314460D0 (en) * | 1993-07-13 | 1993-08-25 | Int Computers Ltd | Computer systems integration |
US5408622A (en) * | 1993-09-23 | 1995-04-18 | Apple Computer, Inc. | Apparatus and method for emulation routine control transfer via host jump instruction creation and insertion |
US5586270A (en) * | 1993-09-30 | 1996-12-17 | Intel Corporation | Method and apparatus for upgrading a central processing unit and existing memory structure in a computer system |
US5481684A (en) * | 1994-01-11 | 1996-01-02 | Exponential Technology, Inc. | Emulating operating system calls in an alternate instruction set using a modified code segment descriptor |
US5632028A (en) * | 1995-03-03 | 1997-05-20 | Hal Computer Systems, Inc. | Hardware support for fast software emulation of unimplemented instructions |
US5619665A (en) * | 1995-04-13 | 1997-04-08 | Intrnational Business Machines Corporation | Method and apparatus for the transparent emulation of an existing instruction-set architecture by an arbitrary underlying instruction-set architecture |
US5748912A (en) * | 1995-06-13 | 1998-05-05 | Advanced Micro Devices, Inc. | User-removable central processing unit card for an electrical device |
US5742802A (en) * | 1996-02-16 | 1998-04-21 | International Business Machines Corporation | Method and system for efficiently mapping guest instruction in an emulation assist unit |
US5828897A (en) * | 1996-12-19 | 1998-10-27 | Raytheon Company | Hybrid processor and method for executing incrementally upgraded software |
US6142682A (en) * | 1997-06-13 | 2000-11-07 | Telefonaktiebolaget Lm Ericsson | Simulation of computer processor |
-
1998
- 1998-01-05 US US09/002,960 patent/US6041402A/en not_active Expired - Lifetime
- 1998-12-16 DE DE69839113T patent/DE69839113T2/de not_active Expired - Lifetime
- 1998-12-16 EP EP98124201A patent/EP0927929B1/de not_active Expired - Lifetime
- 1998-12-17 AU AU97154/98A patent/AU708160B1/en not_active Expired
- 1998-12-18 CA CA002256831A patent/CA2256831C/en not_active Expired - Lifetime
- 1998-12-18 RU RU98123503/09A patent/RU2233004C2/ru active
-
1999
- 1999-01-05 JP JP11000500A patent/JP2990195B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
AU708160B1 (en) | 1999-07-29 |
EP0927929A2 (de) | 1999-07-07 |
RU2233004C2 (ru) | 2004-07-20 |
EP0927929B1 (de) | 2008-02-13 |
JPH11265286A (ja) | 1999-09-28 |
EP0927929A3 (de) | 2000-05-03 |
US6041402A (en) | 2000-03-21 |
JP2990195B2 (ja) | 1999-12-13 |
DE69839113D1 (de) | 2008-03-27 |
CA2256831A1 (en) | 1999-07-05 |
CA2256831C (en) | 2002-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69723286T2 (de) | Echtzeitprogramm-sprachbeschleuniger | |
DE69505717T2 (de) | Verfahren und Vorrichtung zur Feststellung und Durchführung von kreuzweisen Unterprogrammanrufen | |
DE68921775T2 (de) | Prozessorssimulation. | |
DE60308201T2 (de) | Datenverarbeitungssystem mit externen und internen anweisungssätzen | |
DE69820027T2 (de) | Vorrichtung zur ausführung virtueller maschinenbefehle | |
DE60005563T2 (de) | Rechnersysteminitialisierung durch in einem speicher mit sequentiellem zugriff gespeicherten urlade-code | |
DE68921776T2 (de) | Prozessorssimulation. | |
DE19983768B4 (de) | Verfahren zum Ausführen von für verschiedene Befehlssatzarchitekturen geschriebener Firmware | |
DE69737423T2 (de) | Verfahren und gerät zum replizieren von datenspeicherung in einem fortgeschrittenen mikroprozessor | |
DE3486399T2 (de) | Zentrale Verarbeitungseinheit mit der Fähigkeit, Befehle mit variablen Längen zu unterstützen. | |
DE68927172T2 (de) | Multiprozessorsystem mit cache-speichern | |
DE69929936T2 (de) | Verfahren und Vorrichtung zum Abrufen von nicht-angrenzenden Befehlen in einem Datenverarbeitungssystem | |
DE112005003863B3 (de) | Verwalten von Prozessorressourcen während Architekturereignissen | |
DE69836902T2 (de) | Auf variable instruktionen eingestellter computer | |
DE3587622T2 (de) | Emulationseinrichtung in einem Datenverarbeitungssystem. | |
DE10393920B4 (de) | Verfahren und Systeme zur Steuerung virtueller Maschinen | |
DE69227774T2 (de) | Speicherverwaltungsverfahren | |
DE69839113T2 (de) | Direkte Vectoremulation eines geerbten Befehlssatzes | |
DE69621694T2 (de) | Verfahren und Anordnung zur transparenten Emulation einer Befehlssatzarchitektur | |
DE69427734T2 (de) | Linearadressierter Mikroprozessorcachespeicher | |
DE60103414T2 (de) | Cpu, die auf ein erweitertes registerset in einem erweiterten registermodus zugreift und entsprechendes verfahren | |
DE69433339T2 (de) | Lade-/Speicherfunktionseinheiten und Datencachespeicher für Mikroprozessoren | |
DE4330751C2 (de) | Verfahren zum Liefern von Daten von einem Hauptspeicher über ein Speicherpuffersystem zu einem Datenverarbeitungssystem | |
DE69424842T2 (de) | Durchführung von Programmen eines ersten Systems auf einem zweiten System | |
DE60036960T2 (de) | Unterscheidung von feinkorntranslation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
R082 | Change of representative |
Ref document number: 927929 Country of ref document: EP Representative=s name: WUESTHOFF & WUESTHOFF PATENT- UND RECHTSANWAEL, DE |
|
R081 | Change of applicant/patentee |
Ref document number: 927929 Country of ref document: EP Owner name: NORTHROP GRUMMAN SYSTEMS CORPORATION, US Free format text: FORMER OWNER: NORTHROP GRUMMAN CORP., LOS ANGELES, US Effective date: 20120814 |
|
R082 | Change of representative |
Ref document number: 927929 Country of ref document: EP Representative=s name: WUESTHOFF & WUESTHOFF PATENT- UND RECHTSANWAEL, DE Effective date: 20120814 |