DE69839113T2 - Direkte Vectoremulation eines geerbten Befehlssatzes - Google Patents

Direkte Vectoremulation eines geerbten Befehlssatzes Download PDF

Info

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
Application number
DE69839113T
Other languages
English (en)
Other versions
DE69839113D1 (de
Inventor
William J. Centerville Cannon
David K.. Dayton Remnant
Paul D. Franklin Ward
Timothy R. Beavercreek Hoerig
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.)
Northrop Grumman Systems Corp
Original Assignee
Northrop Grumman 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 Northrop Grumman Corp filed Critical Northrop Grumman Corp
Application granted granted Critical
Publication of DE69839113D1 publication Critical patent/DE69839113D1/de
Publication of DE69839113T2 publication Critical patent/DE69839113T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • G06F9/30174Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • G06F12/1475Key-lock mechanism in a virtual system, e.g. with translation means
    • 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)
  • 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 , welches eine gemäß Art. 54(3) EPÜ entgegenstehende PCT-Anmeldung darstellt, beschreibt ein Befehlsemulationssystem, welches Zielbefehle in Emulationsbefehle zur Ausführung durch einen Hostprozessor übersetzt. Eine Sprungtabelle weist Zeigereinträge auf, die dazu verwendet werden, Sätze von Übersetzungsbefehlen in einem Übersetzungsbefehlsspeicher zu lokalisieren, und zwar zum Erzeugen von Emulationsbefehlen, die mittels des Hosts für jede der sich unterscheidenden Typen von Zielbefehlen ausführbar sind. Die Zielbefehle sind in einem Zielobjekt codebereich des RAM gespeichert und werden typischerweise aus einem externen Speichermedium erlangt. Sie werden wie notwendig übertragen, z. B. in den RAM "gecacht".
  • 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 Bezugsziffer 20 gekennzeichnet. Solch ein Code wird normalerweise in einem nicht-volatilen Nur-Lese-Speicher ("read only memory"; ROM) gespeichert. Wie gezeigt, umfasst der ROM 20 Legacy-Befehle, die als INSTR 1, INSTR 2 und INSTR 3 usw. gekennzeichnet sind. Der ROM 20 umfasst auch unmittelbare Daten. Die Befehle INSTR 1, INSTR 2, INSTR 3, usw. zuzüglich der unmittelbaren Daten im ROM 20 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 ROM 22, abgebildet oder dorthin übersetzt. Die Struktur des Speichergeräts 22 bezüglich der Befehle bleibt die gleiche wie beim ROM 20, aber mit einer anderen Basisadresse B. Mit anderen Worten befinden sich Befehle im ROM 20 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 ROM 22 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-Code 20 aus zugreifen, und zwar mittels Lesens der Daten direkt an der Basisadresse A zuzüglich des Befehlszähler-(IC-)Versatzes vom ROM 20.
  • 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 Hardwarevorrichtung 24, wie beispielsweise ein ROM, der eine Nachschlagetabelle enthält, mit dem Datenbus zwischen einem aufgerüsteten Mikroprozessor 26 und dem Legacy-Mikrocode gekoppelt ist, d. h. dem ROM 20. Die Hardwarevorrichtung 24 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 ROM 22) an eine andere Stelle (z. B. die Basisadresse B) in den Hauptspeicher 28 geladen, was es dem Emulationscode im aufgerüsteten bzw. Upgrade-Prozessor ermöglicht, entweder auf die übersetzten 22 oder unübersetzten 20 Legacy-Speicherabschnitte zuzugreifen. Die vom übersetzten Speicher 22 abgerufenen Vektoren werden dazu verwendet, die individuellen Softwareroutinen im Emulationscode 30 anzuzeigen. Bei dieser Ausführungsform der Erfindung müssen die übersetzten 22 und unübersetzten 20 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üglich 4 ein erfindungsgemäße Speichersystem gezeigt. Wie gezeigt, umfasst das System den Upgrade-Mikroprozessor 26, welcher zwei auf einem Chip befindliche Cachespeicher 32 und 34 umfasst. Ein Cachespeicher 32 wird für Daten verwendet, welcher einen Datencache bildet, während der andere Cachespeicher 34 für Befehle verwendet wird und somit einen Befehlscache bildet. Der Befehlscache 34 mag fast ausschließlich für den Emulationscode verwendet werden. Der Datencache 32 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 Datencache 30 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 Datencache 30 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)

  1. 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.
  2. Vorrichtung nach Anspruch 1, wobei das Übersetzungsmittel Hardware-basiert ist.
  3. Vorrichtung nach Anspruch 2, wobei das Übersetzungsmittel ein zwischen einen aufgerüsteten Mikroprozessor und ein Speichergerät gekoppeltes Hardware-Gerät beinhaltet.
  4. Vorrichtung nach Anspruch 1, wobei das Übersetzungsmittel Software-basiert ist.
  5. 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.
  6. Verfahren nach Anspruch 5, wobei die Vorläufer-Befehle durch Software in Adresszeiger für die Software-Emulationsroutinen umgesetzt werden.
  7. Vorrichtung nach Anspruch 5, wobei die Vorläufer-Befehle durch Hardware in Adresszeiger für die Software-Emulationsroutinen umgesetzt werden.
DE69839113T 1998-01-05 1998-12-16 Direkte Vectoremulation eines geerbten Befehlssatzes Expired - Lifetime DE69839113T2 (de)

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)

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

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

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