DE112004000498T5 - Verfahren zur CPU-Simulation unter Verwendung virtueller Maschinenweiterungen - Google Patents

Verfahren zur CPU-Simulation unter Verwendung virtueller Maschinenweiterungen Download PDF

Info

Publication number
DE112004000498T5
DE112004000498T5 DE112004000498T DE112004000498T DE112004000498T5 DE 112004000498 T5 DE112004000498 T5 DE 112004000498T5 DE 112004000498 T DE112004000498 T DE 112004000498T DE 112004000498 T DE112004000498 T DE 112004000498T DE 112004000498 T5 DE112004000498 T5 DE 112004000498T5
Authority
DE
Germany
Prior art keywords
monitor
virtualization
computer system
event
virtual machine
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.)
Ceased
Application number
DE112004000498T
Other languages
English (en)
Inventor
Konstantin Levit-Gurevich
Igor Liokumovich
Ido Shamir
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 DE112004000498T5 publication Critical patent/DE112004000498T5/de
Ceased 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
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE

Abstract

Computersystem, das umfaßt:
eine zentrale Verarbeitungseinheit (CPU) zum Erzeugen und Steuern einer virtuellen Maschine, auf der simulierter Befehlscode läuft, und zum Erzeugen einer Abstraktion einer realen Maschine, so daß der Betrieb eines realen Betriebssystems für das Computersystem nicht behindert ist.

Description

  • COPYRIGHT-HINWEIS
  • Hierin enthalten ist Material, das Copyright-Schutz unterliegt. Der Copyright-Inhaber hat keinen Einwand gegen die Faksimilereproduktion der Patentoffenbarung, wie sie in den Patentakten oder -aufzeichnungen der Patent- und Warenzeichenbehörde erscheint, durch irgendeine Person, behält sich aber ansonsten alle Rechte auf das Copyright vor.
  • ERFINDUNGSGEBIET
  • Die vorliegende Erfindung betrifft Simulatoren für CPUs (zentrale Verarbeitungseinheit); die vorliegende Erfindung betrifft insbesondere das Verwenden einer direkten Ausführung von simuliertem Code auf einer CPU.
  • ALLGEMEINER STAND DER TECHNIK
  • Softwaresimulatoren für CPUs (z.B. Gambit, Archsim, usw.) besitzen einen großen Einsatzbereich in vielen Bereichen hinsichtlich Design, Validierung und Abstimmung integrierter Schaltungen. Diese Simulatoren werden üblicherweise für die Pre-Silicon-Softwareentwicklung (z.B. BIOS, Betriebssysteme, Compiler, Applikationen usw.), zur Architekturvalidierung (funktionell und Leistung) und mehr verwendet. Ein Benutzer kann eine Befehlssatzarchitektur (ISA – Instruction Set Architecture) einer neuen CPU bewerten, indem er Benchmarks auf einer Host-Maschine ausführt, auf der der Simulator läuft.
  • Auf der Basis der von dem Simulator erzeugten Ergebnisse kann ein Benutzer das neue CPU-Design entsprechend modifizieren oder verifizieren. Außerdem kann der Simulator erweitert werden, um das Verhalten einer ganzen PC-Plattform zu simulieren, einschließlich Busse und E/A-Einrichtungen (beispielsweise einen SoftSDV-Plattformsimulator). Eine mögliche Eingabe für einen derartigen Simulator kann ein als „simuliertes" oder „Gast"-OS bezeichnetes Betriebssystem sein.
  • Die permanente Zunahme sowohl des Umfangs als auch bei der Komplexität des simulierten Codes (Betriebssysteme und Applikationen) erfordert eine Verbesserung gegenwärtiger Simulationstechniken und die Einführung neuer Technologien, um eine signifikante Simulationsbeschleunigung zu erreichen. Wenn die simulierte CPU und die Host-CPU-Architekturen sehr ähnlich (oder identisch) sind, können die simulierten Befehle systemspezifisch (native) laufen. Die meisten Betriebssysteme für PCs übernehmen jedoch eine vollständige Kontrolle über die Maschinenressourcen. Wenn das simulierte Betriebssystem systemspezifisch laufen kann, kommt es somit in einen Konflikt mit dem Host-Betriebssystem wegen PC-Ressourcen (CPU, Einrichtungen, Speicher, usw.).
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Veranschaulicht wird die Erfindung beispielhaft, jedoch nicht beschränkend in den Figuren der beiliegenden Zeichnungen, in denen gleiche Referenzen ähnliche Elemente bezeichnen und in denen:
  • 1 ein Blockschaltbild einer Ausführungsform eines Computersystems ist;
  • 2 auf hoher Ebene eine Architektur einer Ausführungsform einer Simulationsumgebung darstellt und
  • 3 ein Flußdiagramm einer Ausführungsform der Operation eines Full-Platform-Simulators ist.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Ein Verfahren zur Verwendung von Hardwaresupport zur Virtualisierung, um Konflikte zwischen einem Host-Betriebssystem (OS) und einem Gast-OS, um eine vollständige Virtualisierung zu erhalten, wird beschrieben. In der folgenden ausführlichen Beschreibung der vorliegenden Erfindung werden zahlreiche spezifische Einzelheiten dargelegt, damit man ein eingehendes Verständnis der vorliegenden Erfindung erhält. Für den Fachmann ist jedoch offensichtlich, daß die vorliegende Erfindung ohne diese spezifischen Einzelheiten praktiziert werden kann. In anderen Fällen sind wohlbekannte Strukturen und Einrichtungen statt im Detail in Blockdiagrammform gezeigt, um zu vermeiden, daß die vorliegende Erfindung unklar wird.
  • Eine Bezugnahme in der Patentschrift auf „eine Ausführungsform" bedeutet, daß ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Charakteristik, die in Verbindung mit der Ausführungsform beschrieben sind, in mindestens einer Ausführungsform der Erfindung enthalten ist. Die Fälle des Auftretens des Ausdrucks „in einer Ausführungsform" an verschiedenen Stellen in der Patentschrift beziehen sich nicht notwendigerweise alle auf die gleiche Ausführungsform.
  • 1 ist ein Blockschaltbild einer Ausführungsform eines Computersystems 100. Das Computersystem 100 umfaßt eine an einen Bus 105 gekoppelte zentrale Verarbeitungseinheit (CPU) 102. In einer Ausführungsform ist die CPU 102 ein Prozessor der Pentium®-Familie von Prozessoren einschließlich der Pentium®-II-Prozessorfamilie, Pentium®-III-Prozessoren und Pentium®-IV-Prozessoren, erhältlich von der Firma Intel Corporation in Santa Clara, Kalifornien, USA. Alternativ können andere CPUs verwendet werden.
  • Auch ein Chipsatz 107 ist an den Bus 105 gekoppelt. Der Chipsatz 107 umfaßt einen MCH (Memory Control Hub) 110. Der MCH 110 kann einen Speichercontroller 112 umfassen, der an einen Hauptsystemspeicher 115 gekoppelt ist. Der Hauptsystemspeicher 115 speichert Daten und Sequenzen von Befehlen, die von der CPU 102 oder irgendeiner anderen Einrichtung, die im System 100 enthalten ist, ausgeführt werden. Bei einer Ausführungsform umfaßt der Hauptsystemspeicher 115 einen dynamischen Direktzugriffsspeicher (DRAM); der Hauptsystemspeicher 115 kann jedoch auch unter Verwendung anderer Speicherarten implementiert werden. Auch zusätzliche Einrichtungen können an den Bus 105 gekoppelt sein, wie etwa mehrere CPUs und/oder mehrere Systemspeicher.
  • Der MCH 110 kann auch eine Grafikschnittstelle 113 umfassen, die an einen Grafikbeschleuniger 130 gekoppelt ist. In einer Ausführungsform ist die Grafikschnittstelle 113 an den Grafikbeschleuniger 130 über einen beschleunigten Grafikport (AGP) gekoppelt, der entsprechend einer von der Firma Intel Corporation in Santa Clara, Kalifornien, USA, entwickelten AGP Specification Revision 2.0-Schnittstelle arbeitet.
  • Außerdem koppelt die Hub-Schnittstelle den MCH 110 an einen Eingangs-/Ausgangssteuer-Hub (ICH) 140 über eine Hub-Schnittstelle. Der ICH 140 bietet eine Schnittstelle zu Eingabe-/Ausgabe-(E/A)-Einrichtungen innerhalb des Computersystems 100. Der ICH 140 kann an einen Peripheral-Component-Interconnect-Bus gekoppelt sein, der einem von der Firma PCI Special Interest Group of Portland, Oregon, USA, entwickelten Bus Specification Revision 2.1 entspricht. Somit umfaßt der ICH 140 eine PCI-Brücke 146, die eine Schnittstelle zu einem PCI-Bus 142 liefert. Die PCI-Brücke 146 liefert einen Datenweg zwischen CPU 102 und Peripherieeinrichtungen.
  • Der PCI-Bus 142 umfaßt eine Audioeinrichtung 150 und ein Laufwerk 155. Der Durchschnittsfachmann versteht jedoch, daß andere Einrichtungen an den PCI-Bus 142 gekoppelt sein können. Zusätzlich erkennt der Durchschnittsfachmann, daß CPU 102 und MCH 110 kombiniert sein könnten, um einen einzelnen Chip auszubilden. Ein weiterer Grafikbeschleuniger 130 kann in anderen Ausführungsformen im MCH 110 enthalten sein.
  • 2 veranschaulicht eine Ausführungsform der Architektur 200 für eine Simulationsumgebung. Die Architektur 200 umfaßt Hardware 205, auf der die Simulationsumgebung läuft. Gemäß einer Ausführungsform unterstützt die Hardware 205 Lagrande-Technology. Lagrande-Technology (LT) ist eine Technologie, die die Unterstützung für virtuelle Maschinen auf IA-32-Prozessoren gestattet. Unterstützung ist gegeben für zwei Hauptklassen von Software: Monitor (oder Host) und Gast. Monitor-Software (oder einfacher „der Monitor") sollte die volle Kontrolle der CPU 102 haben, wenn sie läuft. Der Monitor liefert Gastsoftware mit einer Prozessorabstraktion und gestattet ihre Ausführung auf der CPU 102. Der Monitor sollte jedoch in der Lage sein, die Kontrolle der Prozessorressourcen, des physischen Speichers, des Interruptmanagements und des E/A beizubehalten.
  • Gemäß einer Ausführungsform wird Unterstützung der CPU 102 zur Virtualisierung mit einer neuen Form von Prozessorbetrieb bereitgestellt, die als Virtual-Machine-Extension-(VMX (Erweiterung einer virtuellen Maschine))-Betrieb bezeichnet wird. In dem VMX-Betrieb wird ein neuer Befehlssatz ermöglicht. Außerdem werden zwei Arten von Control-Transfers, die als VM-Entries und VM-Exits bezeichnet werden, ermöglicht. Diese Übergänge werden von einer neuen Struktur verwaltet, die als eine virtuelle-Maschine-Steuerstruktur (oder VMCS (virtual machine command structure)) bezeichnet wird.
  • Alle Gastsoftware läuft im VMX-Betrieb. Die die Ausführung des VMX-Betriebs steuernde VMCS kann bestimmte Ereignisse, Operationen und Situationen verursachen, die VM-Exits verursachen. Ein VM-Exit bewirkt, daß der Prozessor die Steuerung an einen Monitoreintrittspunkt überträgt, der durch Steuern der VMCS bestimmt ist. Der Monitor erhält somit die Kontrolle über den Prozessor bei einem VM-Exit und kann eine Aktion durchführen, die für das Ereignis, die Operation oder Situation angemessen ist, das bzw. die den VM-Exit verursachte. Er kann dann zu dem Kontext zurückkehren, verwaltet durch die VMCS über einen VM-Entry.
  • Wenn der VM-Monitor die VMCS ordnungsgemäß konstruiert, kann sie verhindern, daß Gastsoftware bestimmt, daß sie im VMX-Betrieb läuft. Die VMCS wurde so ausgelegt, daß sie Einrichtungen enthält, die es dem VM-Monitor gestatten würden, die CPU 102 zu virtualisieren.
  • Wieder unter Bezugnahme auf 2 umfaßt die Simulationsumgebung eine Direct Execution Umgebung 210 und eine Host-OS-Umgebung 220. Die Direct Execution Environment 210 umfaßt Gastcode (OS und/oder Applikationen), die auf einer virtuellen Maschine laufen. Bei Start (oder Wiederaufnahme) einer virtuellen Maschine fuhrt die Hardware 205 eine vollständige Kontextumschaltung vom Kontext eines Host-OS zu dem des Gast-OS durch und gestattet, daß der Gast-Code (auf einer ursprünglichen Privilegebene und bei den ursprünglichen virtuellen Adressen) systemspezifisch (natively) auf der CPU 102 löuft. Die CPU 102 führt übliche Architekturprüfungen aus. Während die CPU 102 auf der virtuellen Maschine läuft, führt sie zusätzliche Prüfungen aus, um Virtualisierungsereignisse (unten beschrieben) zu entdecken.
  • Die Host-OS-Umgebung 220 umfaßt einen Full Platform Simulator (Simulator für eine volle Plattform) 222 und einen Monitor 224. Bei einer Ausführungsform läuft ein Full Platform Simulator 222 in einer Benutzerprivilegebene. Teile des Monitors 224 laufen mit dem Systemprivileg und Teile laufen in der Benutzerprivilegebene. Der Monitor 224 steuert die Ausführung des Gast-Codes und stellt eine Brücke zwischen der Direct Execution Umgebung 210 und der Host-OS-Umgebung 220 dar. Der Monitor 224 erzeugt eine virtuelle Maschine (VM) und nimmt sie wieder auf durch Verwendung von Unterstützung der Hardware 205.
  • Außerdem holt sich der Monitor 224 die Kontrolle von der virtuellen Maschine zurück, wenn der auf der virtuellen Maschine laufende Code versucht, eine sensitive Aktion auszuführen. Diese sensitiven Aktionen, die in der VM nicht ausgeführt werden dürfen, werden als „Virtualisierungsereignisse" bezeichnet. Bei einer Ausführungsform konfiguriert der Monitor 224 die CPU, bei der Virtualisierungsereignisse geprüft werden sollten, während sie auf der virtuellen Maschine laufen, sowie, welche Zustandskomponenten bei Wiederaufnahme der VM geladen/wiederhergestellt werden sollten.
  • Gemäß einer Ausführungsform umfassen Virtualisierungsereignisse Hardware Interrupts, Versuche zur Änderung des virtuellen Adreßraums (Page Tables), Zugang zu Geräten (z.B. E/A-Befehle), Steuerregisterzugang, Page-Faults-Verarbeitung usw. Der Monitor 224 führt die erforderliche Zustandssynchronisierung durch und verarbeitet ein Virtualisierungsereignis.
  • Der Monitor 224 analysiert den Grund, der den Austritt aus der virtuellen Maschine bewirkte, und führt eine entsprechende Virtualisierungs-Operation durch. Bei einer Ausführungsform verarbeitet der Monitor 224 das Virtualisierungsereignis und nimmt die Direct Execution Umgebung wieder zurück auf. Alternativ gibt der Monitor 224 die Steuerung zur Simulation des einen Fehler erzeugenden Befehls an den Full Platform Simulator 222 weiter.
  • Bei einer weiteren Ausführungsform führt der Monitor 224 Virtualisierungsoperationen auf eine Weise aus, die verhindert, daß das Gast-OS der Integrität des Host-OS schadet. Beispielsweise handhabt der Monitor 224 in der virtuellen Maschine verwendete Page Tables und bildet die virtuellen Gast-Adressen auf die vom Hostspeicher zugewiesenen anstatt auf vom Gast-OS beabsichtigte physische Adressen ab.
  • Der Platform Simulator 222 läuft als ein regulärer Prozeß auf dem Host-OS. 3 ist ein Flußdiagramm einer Ausführungsform des Betriebs des Full Platform Simulators 222. Bei dem Verarbeitungsblock 310 beginnt die Simulation. Beim Entscheidungsblock 320 bestimmt der Platform Simulator 222, ob zur Direct Execution umgeschaltet werden soll.
  • Falls der Platform Simulator 222 entscheidet, zur Direct Execution umzuschalten, wird der Monitor 224 mit einer Anforderung zum Start (oder zur Wiederaufnahme) der Direct Execution aufgerufen, und ein Gastzustand wird virtualisiert, Verarbeitungsblock 330. Ansonsten geht die Simulation beim Platform Simulator 222 weiter, Verarbeitungsblock 380. Beim Verarbeitungsblock 340 wird die virtuelle Maschine gestartet (oder wiederaufgenommen). Danach beginnt die virtuelle Maschine, den Gast-OS-Code abzuarbeiten.
  • Zu einem bestimmten Zeitpunkt während des Laufens des Gast-OS-Codes ereignet sich ein sensitives (oder Virtualisierungs-)Ereignis. Deshalb wird bei Verarbeitungsblock 350 aus der virtuellen Maschine ausgestiegen, und der aktuelle Zustand wird gesichert/wiederhergestellt. Bei Entscheidungsblock 360 wird bestimmt, ob das sensitive Ereignis ein komplexes Ereignis ist. Wenn das Ereignis kein komplexes Ereignis ist, ist das Ereignis ein Virtualisierungsereignis, und das Virtualisierungsereignis wird bei Verarbeitungsblock 365 verwaltet. Danach wird die Steuerung zum Verarbeitungsblock 330 zurückgegeben, wo der Gastzustand virtualisiert wird.
  • Wenn das Ereignis ein komplexes Ereignis ist, wird der Gastzustand entvirtualisiert, Verarbeitungsblock 370. Bei Verarbeitungsblock 380 werden wieder Befehle simuliert. Bei Entscheidungsblock 390 wird bestimmt, ob die Simulation geendet hat. Falls nicht, wird die Steuerung zum Verarbeitungsblock 310 zurückgegeben, wo die Simulation weitergeht. Ansonsten wird die Simulation gestoppt.
  • Die obige Beschreibung beschreibt eine Virtual-Machine-Architektur, die eine Unterstützung für die Erzeugung, Beibehaltung und Steuerung einer virtuellen Maschine ermöglicht, die Gast-Code (simulierten Code) abarbeiten kann, während sie eine volle Abstraktion einer realen Maschine erzeugt. Somit werden Virtual Machine Extensions für die leichte Detektion sensitiver CPU-Ereignisse verwendet, was zu der Fähigkeit führt, zwischen einer virtuellen Maschine, auf der Gast-Code (oder simulierter Code) läuft, und einem Virtual-Machine-Monitor, der eine Komponente der Host-Software ist, umzuschalten.
  • Während für einen Durchschnittsfachmann auf dem Gebiet nach der Lektüre der obigen Beschreibung ohne Zweifel viele Änderungen und Modifikationen der vorliegenden Erfindung offensichtlich sind, versteht sich, daß jede besondere Ausführungsform, die gezeigt und über eine Veranschaulichung beschrieben worden ist, in keiner Weise als einschränkend angesehen werden soll. Deshalb sollen Bezugnahmen auf Einzelheiten verschiedener Ausführungsformen den Schutzbereich der Ansprüche nicht einschränken, die selbst nur jene Merkmale aufführen, die als für die Erfindung wesentlich angesehen werden.
  • ZUSAMMENFASSUNG
  • Gemäß einer Ausführungsform wird ein Computersystem offenbart. Das Computersystem umfaßt eine zentrale Verarbeitungseinheit (CPU) zum Erzeugen und Steuern einer virtuellen Maschine, die simulierten Befehlscode abarbeitet, und zum Erzeugen einer Abstraktion einer realen Maschine, so daß der Betrieb eines realen Betriebssystems für das Computersystem nicht behindert ist.

Claims (26)

  1. Computersystem, das umfaßt: eine zentrale Verarbeitungseinheit (CPU) zum Erzeugen und Steuern einer virtuellen Maschine, auf der simulierter Befehlscode läuft, und zum Erzeugen einer Abstraktion einer realen Maschine, so daß der Betrieb eines realen Betriebssystems für das Computersystem nicht behindert ist.
  2. Computersystem nach Anspruch 1, wobei auf der CPU der simulierte Befehlscode und das reale Betriebssystem laufen.
  3. Computersystem nach Anspruch 1, das weiterhin umfaßt: eine direkte Ausführungsumgebung zum Speichern simulierten Befehlscodes und zugehöriger Daten und eine Host-Betriebssystemumgebung.
  4. Computersystem nach Anspruch 3, wobei die Hostbetriebssystemumgebung umfaßt: einen Monitor zum Erzeugen der virtuellen Maschine unter Verwendung der Hardware und einen Plattformsimulator zum Ausführen von Simulationen von Virtualisierungsereignissen;
  5. Computersystem nach Anspruch 4, wobei der Monitor Virtualisierungsoperationen ausführt.
  6. Computersystem nach Anspruch 5, wobei der Monitor die Steuerung immer dann von der virtuellen Maschine erhält, wenn die virtuelle Maschine versucht, ein Virtualisierungsereignis auszuführen.
  7. Computersystem nach Anspruch 6, wobei der Monitor eine Liste von durch die virtuelle Maschine zu prüfenden Virtualisierungsereignissen setzt.
  8. Computersystem nach Anspruch 7, wobei der Monitor die Steuerung an den Monitor zur Verarbeitung des Virtualisierungsereignisses weitergibt.
  9. Computersystem nach Anspruch 8, wobei der Monitor auf die Bestimmung der Art des Virtualisierungsereignisses eine bestimmte Virtualisierungsoperation durchführt.
  10. Computersystem nach Anspruch 9, wobei der Monitor das Virtualisierungsereignis verarbeitet und die Ausführung an den Monitor zurückgibt.
  11. Computersystem nach Anspruch 9, wobei der Monitor die Steuerung an den Plattformsimulator zur Simulierung des Virtualisierungsereignisses weitergibt.
  12. Computersystem nach Anspruch 8, bei welchem die Monitor-Virtualisierungsoperation verhindert, daß der simulierte Befehlscode das reale Betriebssystem beeinflußt.
  13. Verfahren, das umfaßt: Simulieren von Befehlscode auf einer zentralen Verarbeitungseinheit (CPU), die Virtual Machine Extensions (VMX) implementiert; Virtualisieren von simuliertem Befehlscode; Starten einer virtuellen Maschine (VM) auf der CPU und Ausführen von simuliertem Befehlscode auf der VM.
  14. Verfahren nach Anspruch 13, das weiterhin umfaßt: Detektieren eines sensitiven Ereignisses; Verlassen der VM und Analysieren des sensitiven Ereignisses.
  15. Verfahren nach Anspruch 14, das weiterhin umfaßt: Bestimmen, ob das sensitive Ereignis ein komplexes Ereignis ist, und Virtualisieren des simulierten Befehlscodes, wenn das sensitive Ereignis kein komplexes Ereignis ist.
  16. Verfahren nach Anspruch 15, welches weiterhin ein Wiederaufnehmen der VM umfaßt, nachdem der simulierte Befehlscode virtualisiert ist.
  17. Verfahren nach Anspruch 15, das weiterhin umfaßt: Entvirtualisieren des simulierten Befehlscodes, wenn das sensitive Ereignis ein komplexes Ereignis ist und Simulieren des Befehlscodes.
  18. System, das umfaßt: Hardware zum Erzeugen und Steuern einer virtuellen Maschine, auf der simulierter Befehlscode läuft, und zum Erzeugen einer Abstraktion einer realen Maschine, so daß der Betrieb eines realen Betriebssystems für das Computersystem nicht behindert ist; eine direkte Ausführungsumgebung zum Speichern simulierten Befehlscodes und zugehöriger Daten und eine Host-Betriebssystemumgebung.
  19. System nach Anspruch 18, wobei die Hostbetriebssystemumgebung umfaßt: einen Monitor zum Erzeugen der virtuellen Maschine unter Verwendung der Hardware und einen Plattformsimulator zum Ausführen von Simulationen von Virtualisierungsereignissen;
  20. System nach Anspruch 19, wobei der Monitor Virtualisierungsoperationen ausführt.
  21. System nach Anspruch 20, wobei der Monitor die Steuerung immer dann von der virtuellen Maschine erhält, wenn die virtuelle Maschine versucht, ein Virtualisierungsereignis auszuführen.
  22. Computersystem nach Anspruch 21, wobei der Monitor eine Liste von durch die virtuelle Maschine zu prüfenden Virtualisierungsereignissen setzt.
  23. System nach Anspruch 22, wobei der Monitor auf die Bestimmung der Art des Virtualisierungsereignisses eine bestimmte Virtualisierungsoperation durchführt.
  24. System nach Anspruch 23, wobei der Monitor das Virtualisierungsereignis verarbeitet und die direkte Ausführungsumgebung wieder aufnimmt.
  25. Computersystem nach Anspruch 24, wobei der Monitor die Steuerung an den Plattformsimulator zur Simulierung des Virtualisierungsereignisses weitergibt.
  26. Computersystem nach Anspruch 23, wobei der Monitor Operationen derart virtualisiert, daß verhindert wird, daß der simulierte Befehlscode das reale Betriebssystem beeinflußt.
DE112004000498T 2003-03-24 2004-02-11 Verfahren zur CPU-Simulation unter Verwendung virtueller Maschinenweiterungen Ceased DE112004000498T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/395,557 2003-03-24
US10/395,557 US20040193394A1 (en) 2003-03-24 2003-03-24 Method for CPU simulation using virtual machine extensions
PCT/US2004/004092 WO2004095283A2 (en) 2003-03-24 2004-02-11 A method for cpu simulation using virtual machine extensions

Publications (1)

Publication Number Publication Date
DE112004000498T5 true DE112004000498T5 (de) 2006-03-02

Family

ID=32988600

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112004000498T Ceased DE112004000498T5 (de) 2003-03-24 2004-02-11 Verfahren zur CPU-Simulation unter Verwendung virtueller Maschinenweiterungen

Country Status (5)

Country Link
US (1) US20040193394A1 (de)
CN (1) CN1973264B (de)
DE (1) DE112004000498T5 (de)
GB (1) GB2414579A (de)
WO (1) WO2004095283A2 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7302514B2 (en) * 2004-06-15 2007-11-27 Intel Corporation Device, system, and method of virtual machine memory mapping
US20070052715A1 (en) * 2005-09-07 2007-03-08 Konstantin Levit-Gurevich Device, system and method of graphics processing
US7900204B2 (en) * 2005-12-30 2011-03-01 Bennett Steven M Interrupt processing in a layered virtualization architecture
US8782641B2 (en) * 2006-01-24 2014-07-15 International Business Machines Corporation Tuning of work to meet performance goal
CN100456229C (zh) * 2006-09-30 2009-01-28 北京深思洛克软件技术股份有限公司 虚拟硬件系统及基于虚拟硬件系统的指令执行方法
US8875266B2 (en) * 2007-05-16 2014-10-28 Vmware, Inc. System and methods for enforcing software license compliance with virtual machines
US8250641B2 (en) * 2007-09-17 2012-08-21 Intel Corporation Method and apparatus for dynamic switching and real time security control on virtualized systems
US9058420B2 (en) 2008-06-20 2015-06-16 Vmware, Inc. Synchronous decoupled program analysis in virtual environments
TWI519943B (zh) * 2014-10-24 2016-02-01 Virtual machine automatic expansion system and method
US11362807B2 (en) * 2019-08-14 2022-06-14 R3 Llc Sealed distributed ledger system

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6397242B1 (en) * 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture

Also Published As

Publication number Publication date
GB0513157D0 (en) 2005-08-03
GB2414579A (en) 2005-11-30
CN1973264B (zh) 2013-02-13
US20040193394A1 (en) 2004-09-30
CN1973264A (zh) 2007-05-30
WO2004095283A3 (en) 2005-11-03
WO2004095283A2 (en) 2004-11-04

Similar Documents

Publication Publication Date Title
DE10394383B4 (de) Verfahren und Vorrichtung zum Laden eines vertrauenswürdigen Betriebssystems
DE10393679B4 (de) Prozessor, der einen Übergang zwischen einem virtuellen Maschinen Betriebsmodus (VM) und einem virtuellen Maschinen Monitor Betriebsmodus (VMM) unterstützt
DE10297273B4 (de) Verfahren zur Bereitstellung von Systemintegrität und Legacy-Umgebungsemulation
DE112004003066B4 (de) Verwendung mehrerer Monitore virtueller Maschinen zur Abwicklung priviligierter Ereignisse
DE112005003098B4 (de) Verfahren und Vorrichtung zum Zugreifen auf einen physikalischen Speicher von einer CPU oder einem Prozessorelement mit hoher Leistung
DE10296798B4 (de) SMM-Lader und -Ausführungsmechanismus für Komponentensoftware für mehrere Architekturen
DE60217394T2 (de) Methode und system zur parallelen ausführung von interrupt-routinen in einer smi- und pmi-basierten verteilungs- und ausführungsumgebung
DE102014003798B4 (de) Verfahren zum Booten eines heterogenen Systems und Präsentieren einer symmetrischen Kernansicht
DE10197121B4 (de) Neuer Prozessormodus zum Begrenzen des Betriebes von auf einer virtuellen Maschine laufender Gast-Software mit Unterstützung eines Virtuelle-Maschine-Monitors
DE112005002347T5 (de) Zeitgeber-Versetzungsmechanismus in der Umgebung einer virtuellen Maschine
DE112016004297T5 (de) Technologien für mehrstufige virtualisierung
DE10393727T5 (de) Prozessor-Cache-Speicher als RAM zur Ausführung von Boot-Code
DE102012218379A1 (de) Paravirtualisierte virtuelle GPU
DE102018115670A1 (de) Technologien für die Ausführung von nicht vertrauenswürdigem Code mit Prozessor-Sandbox-Unterstützung
US10387184B2 (en) Address based host page table selection
DE112005001798T5 (de) Verwalten von Prozessorressourcen während Architekturereignissen
DE102008058209A1 (de) Anordnung und Verfahren um zu verhindern, dass ein Anwenderbetriebssystem in einem VMM System eine Anordnung abschaltet, die von einem Servicebetriebssystem verwendet wird
DE112011102876T5 (de) Ressourcenverwaltungs- und Sicherheitssystem
DE112011105098T5 (de) Virtuelles BIOS
DE112004000498T5 (de) Verfahren zur CPU-Simulation unter Verwendung virtueller Maschinenweiterungen
CN107358096A (zh) 文件病毒查杀方法及系统
US20090216995A1 (en) System, method and computer program product for providing quiesce filtering for shared memory
US20190377612A1 (en) VCPU Thread Scheduling Method and Apparatus
DE202019005683U1 (de) Prozessorkern mit Unterstützung einer Befehlssatzarchitektur für heterogene Systeme
DE102009060299A1 (de) Das Einführen von Transaktionen, um die Virtualisierung eines physischen Geräte-Controllers zu unterstützen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law

Ref document number: 112004000498

Country of ref document: DE

Date of ref document: 20060302

Kind code of ref document: P

8131 Rejection