-
TECHNISCHES
GEBIET
-
Ausführungsformen
der vorliegenden Erfindung betreffen im Allgemeinen Computersysteme
und insbesondere die Betriebsverwaltung und/oder Steuerung von Operationen
virtueller Maschinen innerhalb von Computersystemen.
-
STAND DER
TECHNIK
-
Ein
Virtuelles-Maschinen-System gestattet ein derartiges Unterteilen
einer physikalischen Maschine, daß die zugrundeliegende Hardware
der Maschine als eine oder mehrere unabhängig arbeitende Virtuelle Maschinen
(VMs) erscheint. Ein Virtueller-Maschinen-Monitor
(VMM) läuft
auf einem Computer und präsentiert anderer
Software eine Abstraktion einer oder mehrerer VMs. Jede VM kann
als eine sich selbst enthaltende Plattform fungieren, welche ihr
eigenes Betriebssystem (OS) und/oder ihre eigene Anwendungs-Software
ablaufen läßt. Software,
welche innerhalb einer VM ausgeführt
wird, wird zusammen als Gast-Software bezeichnet.
-
Die
Gast-Software erwartet, daß sie
so arbeitet, als wenn sie auf einem dedizierten Computer durchgeführt würde, statt
auf einer VM. Das bedeutet, daß die
Gast-Software erwartet, daß sie
verschiedene Ereignisse steuert und Zugriff auf Hardware-Ressourcen
des Computers (z. B. der physikalischen Maschine) besitzt. Die Hardware-Ressourcen
der physikalischen Maschine können
einen oder mehrere Prozessoren, auf dem(den) Prozessoren) befindliche
Betriebsmittel (z. B. Steuerungsregister, Cache-Speicher und anderes), Speicher
(und Strukturen, welche sich im Speicher befinden, z. B. Deskriptor-Tabellen)
und andere Betriebsmittel (z. B. Eingabe-Ausgabe-Vorrichtungen)
umfassen, welche sich in der physikalischen Maschine befinden. Die
Ereignisse können
Unterbrechungen, Ausnahmebehandlungen, Plattformereignisse (z. B.
Initialisierungs- (INIT) oder Systemverwaltungsunterbrechungen (SMIs))
und dergleichen umfassen.
-
Der
VMM kann einen Gast-Software-Zustand bedarfsweise in dem(den) Prozessor(en),
den Vorrichtungen, dem Speicher und den Registern der physikalischen
Maschine hin- und hertauschen. Der(die) Prozessoren) kann(können) einen
beliebigen Zustand während Übergängen zwischen
einer VM und dem VMM hin- und hertauschen. Der VMM kann das Leistungsvermögen einer
VM in manchen Situationen durch Gestatten eines unmittelbaren Zugriffs
auf die zugrundeliegende physikalische Maschine verbessern. Dies
kann insbesondere angebracht sein, wenn eine Operation im nicht
privilegierten Modus in der Gast-Software durchgeführt wird,
welcher den Zugriff auf die physikalische Maschine einschränkt, oder
wenn Operationen keine Hardware-Ressourcen in der physikalischen
Maschine verwenden, für
welche der VMM die Steuerung behalten möchte. Der VMM wird als der
Host der VMs betrachtet.
-
Der
VMM gewinnt die Steuerung zurück,
wann immer eine Gast-Operation die korrekte Ausführung des VMM oder einer der
nicht ausgeführten
VMs beeinträchtigen
kann. Gewöhnlich
untersucht der VMM derartige Operationen, wobei er bestimmt, ob
ein Problem existiert, bevor er gestattet, daß die Operation mit der zugrundeliegenden
physikalischen Maschine fortgesetzt oder die Operation im Namen
eines Gasts emuliert wird. Beispielsweise kann der VMM ein Zurückgewinnen
der Steuerung benötigen,
wenn der Gast auf E/A-Vorrichtungen
zugreift, wenn er versucht die Maschinenkonfiguration zu verändern (z.
B. durch Verändern
von Steuerungsregisterwerten), wenn er versucht auf bestimmte Speicherbereiche
zuzugreifen und dergleichen.
-
Existierende
physikalische Maschinen, welche eine Operation einer VM unterstützen, steuern
die Ausführungsumgebung
einer VM unter Verwendung einer Struktur, welche hier als eine Virtuelle-Maschinen-Steuerungsstruktur
(VMCS) bezeichnet wird. Die VMCS wird in einem Speicherbereich gespeichert
und enthält
beispielsweise den Zustand des Gasts, den Zustand des VMM und Steuerungsinformationen,
welche bezeichnen, unter welchen Bedingungen der VMM während einer
Ausführung
des Gasts die Steuerung zurückgewinnen
möchte.
Der eine oder die mehreren Prozessoren in der physikalischen Maschine
lesen Informationen aus der VMCS aus, um die Ausführungsumgebung
der VM und des VMM zu bestimmen und um das entsprechende Verhalten
der Gast-Software zu erzwingen.
-
Der(die)
Prozessoren) der physikalischen Maschine lädt(laden) und speichert(speichern)
den Maschinenzustand, wenn ein Übergang
in (d. h. Eintritt) oder aus (d. h. Austritt) einer VM auftritt.
Herkömmliche
Architekturen führen
aus, daß ein
vorbestimmter Zustandssatz, wie in den Prozessor-Spezifikationen
definiert, in einer ähnlichen
Weise wie andere Systemstrukturen, Befehlscodierungen und Maschinenverhaltensweisen geladen
und gespeichert wird. Der VMM ist unmittelbar nach diesen Spezifikationen
codiert. Diese Strukturierung schränkt die Flexibilität der Implementierung
des VMM ein.
-
Deshalb
gibt es einen Bedarf an verbesserten Implementierungen von Verfahren
zum Eintritt in und zum Austritt aus VMs. Diese Implementierungen
und Verfahren sollten eine bessere Verwaltung und Steuerung der
Operationen von VM gestatten.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
1 ist
ein Diagramm einer VM-Architektur gemäß einer Ausführungsform
der Erfindung.
-
2A ist
ein Ablaufdiagramm eines Verfahrens zum Verwalten einer VM-Übergangsoperation gemäß einer
Ausführungsform
der Erfindung.
-
2B ist
ein Ablaufdiagramm eines Verfahrens zum Laden eines Maschinenzustands
während
einer VM-Übergangsoperation
gemäß einer
Ausführungsform
der Erfindung.
-
2C ist
ein Ablaufdiagramm eines Verfahrens zum Speichern eines Maschinenzustands
während einer
VM-Übergangsoperation
gemäß einer
Ausführungsform
der Erfindung.
-
3 ist
ein Ablaufdiagramm eines Verfahrens zum Durchführen von Ladeoperationen während eines VM-Übergangs
gemäß einer
Ausführungsform
der Erfindung.
-
4 ist
ein Ablaufdiagramm eines Verfahrens zum Durchführen von Speicheroperationen
während eines
VM-Übergangs
gemäß einer
Ausführungsform
der Erfindung.
-
5 ist
ein Ablaufdiagramm eines Verfahrens zum Bestimmen eines Werts eines
Zustandsaktionsindikators während
einer VM-Übergangsoperation
gemäß einer
Ausführungsform
der Erfindung.
-
BESCHREIBUNG
DER AUSFÜHRUNGSFORMEN
-
Es
werden neue Verfahren, Vorrichtungen und Systeme zum Verwalten von Übergängen während einer
Operation einer VM beschrieben. In der folgenden ausführlichen
Beschreibung der Ausführungsformen wird
auf die begleitenden Zeichnungen Bezug genommen, welche ein Teil
davon bilden und bei welchen auf dem Wege der Darstellung insbesondere
spezifische Ausführungsformen
der Erfindung gezeigt werden, welche in die Praxis umgesetzt werden
können.
Diese Ausführungsformen
werden ausreichend ausführlich
beschrieben, um Durchschnittfachleuten zu ermöglichen, sie zu verstehen und
zu implementieren, und es versteht sich, daß andere Ausführungsformen
eingesetzt werden können
und daß bauliche,
logische und elektrische Veränderungen
vorgenommen werden können,
ohne den Gedanken und den Schutzumfang der vorliegenden Offenbarung
zu verlassen. Die folgende ausführliche
Beschreibung ist deshalb nicht in einem einschränkenden Sinn zu verstehen,
und der Schutzumfang der Ausführungsformen
der hier offenbarten Erfindungen wird nur von den angefügten Ansprüchen definiert.
-
1 illustriert
eine Ausführungsform
einer Virtuellen-Maschinen-Umgebung 100, in welcher die
vorliegende Erfindung arbeiten kann. Bei dieser Ausführungsform
umfaßt
eine physikalische Maschine 110 eine Rechnerplattform,
welche beispielsweise in der Lage sein kann, ein Standard-Betriebssystem
(OS) oder einen Virtuellen-Maschinen-Monitor (VMM), wie beispielsweise
einen VMM 125, auszuführen.
Der VMM 125 kann, obwohl er typischerweise in Software
implementiert wird, eine Maschinenschnittstelle für eine Software
höherer
Ebene emulieren und exportieren. Eine derartige Software höherer Ebene
kann ein Standard- oder Echtzeit-OS umfassen, kann eine hochgradig
abgespeckte Betriebsumgebung mit begrenzter OS-Funktionalität sein,
kann keine herkömmlichen
OS-Einrichtungen umfassen und dergleichen. Ersatzweise kann der
VMM 125 beispielsweise innerhalb oder auf einem anderen
VMM aufgesetzt laufen. Der VMM 125 kann beispielsweise
als Hardware, Software und Firmware oder durch eine Kombination
verschiedener Verfahren implementiert werden. VMMs und ihre typischen
Merkmale und Funktionalität
sind Durchschnittsfachleuten wohlbekannt.
-
Die
physikalische Maschine 110 kann ein Personal-Computer (PC),
ein Mainframe-Computer,
ein tragbares Gerät,
ein tragbarer Computer, eine Set-Top-Box, ein intelligentes Gerät oder ein
beliebiges anderes Rechnersystem oder -Vorrichtung sein. Die physikalische
Maschine 110 umfaßt
einen Prozessor 112 und einen Speicher 120. Zusätzlich kann
die physikalische Maschine 110 verschiedene andere nicht
gezeigte Eingabe/Ausgabe-Vorrichtungen
umfassen.
-
Der
Prozessor 112 kann ein beliebiger Prozessortyp sein, welcher
in der Lage ist, Software auszuführen,
wie beispielsweise ein Mikroprozessor, ein digitaler Signalprozessor,
ein Mikrosteuergerät
oder dergleichen. Der Prozessor 112 kann Mikrocode, Makrocode,
Software, programmierbare Logik oder hart codierte Logik zum Durchführen der
Ausführung
von Ausführungsformen
für Verfahren
der vorliegenden Erfindung umfassen. Obwohl in 1 nur
ein derartiger Prozessor 112 gezeigt wird, versteht es
sich, daß ein
oder mehrere Prozessoren im System vorhanden sein können.
-
Der
Speicher 120 kann eine Festplatte, eine Diskette, ein Schreib-/Lesespeicher
(RAM), ein Nur-Lese-Speicher (ROM), ein Flash-Speicher, ein beliebiges
anderes Maschinenmedium, welche durch Prozessor 112 lesbar
ist, oder eine Kombination der oben stehenden Vorrichtungen sein.
Der Speicher 120 kann Befehle und/oder Daten zum Durchführen der
Ausführung
der Verfahrensausführungsformen
der vorliegenden Erfindung speichern.
-
Der
VMM 125 präsentiert
anderer Software (d. h. "Gast-" Software) die Abstraktion
einer oder mehrerer virtuellen Maschinen (VMs), welche den verschiedenen
Gästen
die gleichen oder unterschiedliche Abstraktionen bereitstellen kann. 1 zeigt
drei VMs, 132, 142 und 152. Die Gast-Software,
welche auf jeder VM abläuft,
kann ein Gast-OS, wie beispielsweise ein Gast-OS 134, 144 oder 154,
und verschiedene Gast-Software-Anwendungen 136, 146 und 156 umfassen.
Jedes der Gast-OSs 134, 144 und 154 erwartet,
daß es
innerhalb der VMs 132, 142 und 152, auf
welchen die Gast-OS 134, 144 oder 154 laufen,
auf physikalische Betriebsmittel (z. B. Register des Prozessors 112,
Speicher 120 und E/A-Vorrichtungen) zugreift und verschiedene
Ereignisse, einschließlich
Unterbrechungen, welche von Systemvorrichtungen während des
Betriebs der VMs 132, 142 und 152 erzeugt
wurden, behandelt.
-
Der
Prozessor 112 steuert den Betrieb der VMs 132, 142 und 152 gemäß Daten,
welche in der VMCS 122 gespeichert sind. Die VMCS 122 kann
im Speicher 120 (wie in 1 gezeigt),
innerhalb des Prozessors 112, in einem beliebigen anderen
Ort oder in jeder Kombination von Speicherorten gespeichert sein.
Die VMCS 122 stellt eine Speicherung für den Maschinenzustand des
VMM 125 und der Gast-Software bereit. Zusätzlich kann
sie Indikatoren umfassen, um den Betrieb einer VM einzuschränken oder
auf andere Weise zu steuern und um Übergänge zwischen einer VM und dem
VMM 125 zu steuern. Die VMCS 122 ist durch den
VMM 125 zugänglich.
Die VMCS muß kein
zusammenhängender
Speicherbereich oder Speicherungsbereich sein. Deshalb kann die
VCMS bei manchen Ausführungsformen
logisch aus mehreren Speichern oder Speicherungsorten zusammengesetzt
und darauf zugegriffen werden.
-
Ein Übergang
von dem VMM 125 an die Gast-Software wird ein "VM-Eintritt" genannt. Ein Übergang aus
einer Gast-Software zu dem VMM 120 wird ein "VM-Austritt" genannt. Zusammen
werden VM-Eintritte und VM-Austritte als "VM-Übergänge" bezeichnet. Bei
einer Ausführungsform
kann ein VMM 125 einen VM-Eintritt durch Ausführen eines
bestimmten Befehls in Gang setzen, um den VM-Eintritt zu bewirken.
Bei einer Ausführungsform
können
VM-Austritte explizit von der VM angefordert werden (z. B. durch
Ausführen
eines speziellen Befehls zum Erzeugen des VM-Austritts). Bei manchen
Ausführungsformen
fordert die VM einen Übergang nicht
unrmttelbar an, sondern statt dessen erfordert irgendein Ereignis
(z. B. eine Schutzverletzung, eine Unterbrechung und dergleichen)
oder ein Befehl, welcher von einer VM ausgeführt wird, einen VM-Austritt,
wie es durch Steuerungen in der VMCS 122 oder durch die
Architektur des Virtuellen-Maschinen-Systems
bestimmt wird (z. B. wenn ein bestimmtes Steuer-Bit in der VMCS
gesetzt ist, dann bewirken Ausführungen
des INVLPG-Befehls VM-Austritte; jedes Auftreten einer nicht maskierbaren
Unterbrechung bewirkt einen VM-Austritt).
-
Während VM-Übergängen kann
der Prozessor 112 aufgrund verschiedener Elemente des Maschinenzustands
handeln. Wie Durchschnittsfachleute anerkennen, können einem Maschinenzustand
verschiedene architektonische Komponenten beispielsweise in dem(den)
Prozessor(en), den E/A-Vorrichtungen, dem Chipsatz usw. zugeordnet
sein. Dementsprechend verwenden Beschreibungen verschiedener Ausführungsformen der
vorliegenden Erfindung den Ausdruck "Maschinenzustand" im Rahmen seiner herkömmlichen
Bedeutung, welche um einige Komponenten erweitert wurde, welche
traditionell nicht als architektonisch angesehen werden. Folglich
kann ein Maschinenzustand Universal- und Fließkommaregister (z. B. in der
Befehlssatzarchitektur (ISA) des Pentium N von Intel, welcher als
IA-32 ISA, EAX, EDX, ST3 und dergleichen bezeichnet wird), Steuerregister
(z. B. im IA-32 ISA, CR0, CR3 und dergleichen), Befehlszeiger (z.
B. im IA-32 ISA, EIP), Verarbeitungskennzeichen (z. B. im IA-32
ISA, EFLAGS und dergleichen), Modell-spezifische Register (MRSs)(z. B.
im IA-32 ISA, DEBUGCTL, MTRRs, TSC und dergleichen), Segmentregister
(z. B. im IA-32 ISA, CS, SS, TR und dergleichen, welche Selektor-,
Basis-, Begrenzungs- und AT-Byte-Felder umfassen), einen zusätzlichen
internen (architektonischen oder nicht architektonischen) Maschinenzustand
(z. B. Schlafzustand, Unterbrechbarkeitsinformationen, Ablaufmaschinenzustand),
einen Zustand, welcher die Speicherverwaltung betrifft (z. B. PDPTRs,
Inhalte eines Translation-Look-Aside-Puffers (TLB)), Chipsatz-Register,
einen E/A-Vorrichtungszustand und anderes umfassen. Entsprechend
ist nicht vorgesehen, daß die
Beispielliste der oben stehend präsentierten Informationen erschöpfend ist,
und sie kann durch andere Informationen erweitert werden. Weiterhin
erkennen Durchschnittsfachleute die hier präsentierten Akronyme unmittelbar.
-
Das
VM-System 100 stellt eine flexible Architektur zum Implementieren
von Mechanismen bereit, welche verwendet werden, wenn das Laden
und/oder das Speichern eines Maschinenzustands während Übergängen (z. B. Eintritten und
Austritten) zwischen Gast-VMs (z. B. 132, 142 und 152)
und einem Host-VMM 125 verwaltet werden.
-
2A illustriert
ein Ablaufdiagramm eines Verfahrens 200 zum Verwalten von
VM-Übergangsoperationen
gemäß einer
Ausführungsform
der Erfindung. Der Prozeß kann
durch Verarbeitungslogik durchgeführt werden, welche Hardware
(z. B. einen Schaltkomplex, dedizierte Logik, programmierbare Logik,
Mikrocode usw.), Software (welche z. B. auf einem Universal-Computersystem
oder einer dedizierten Maschine ausgeführt wird) oder eine Kombination
aus beidem umfassen kann.
-
Bei 210 erfaßt der Prozessor,
daß gerade
ein VM-Übergang
stattfindet. Der VM-Übergang
kann ein VM-Austritt oder ein VM-Eintritt sein. Dementsprechend
wird bei 220 eine Prüfung
durchgeführt,
um zu bestimmen, ob der VM-Übergang
eine VM-Austrittsoperation ist.
-
Falls
der Prozessor einen VM-Eintritt behandelt, kann der Prozessor eine
Anzahl an Operationen zur Vorbereitung der Steuerungsübergabe
von einem VMM zu einer VM durchführen.
Beispielsweise kann der Prozessor den VMM-Maschinenzustand bei 230 speichern,
den VM-Maschinenzustand bei 240 laden und schließlich die
Steuerung an die VM bei 250 übergeben.
-
Falls
der Prozessor einen VM-Austritt behandelt, kann der Prozessor eine
Anzahl an Operationen zur Vorbereitung der Steuerungsübergabe
an einen VMM von einer VM durchführen.
Beispielsweise kann der Prozessor einen VM-Maschinenzustand bei 260 speichern,
einen VMM-Maschinenzustand bei 270 laden und schließlich die
Steuerung an den VMM bei 280 übergeben.
-
Ausführungsformen
von Verfahren zum Laden (z. B. bei 240 und/oder bei 270 in 2) und zum Speichern (z. B. bei 230 und/oder
bei 260 in 2) eines Maschinenzustands
während
VM-Übergängen werden in 2B bzw. 2C illustriert.
-
Es
versteht sich, daß andere
Aktionen während
der Verarbeitung eines VM-Eintritts oder eines VM-Austritts auftreten
können,
welche in der 2A, 2B und 2C nicht
dargestellt sind. Beispielsweise kann es nötig sein, daß die Gültigkeit
und die Konsistenz des Zustands, welcher gerade bei einem VM-Eintritt
oder VM-Austritt geladen wird, sichergestellt werden müssen.
-
2B illustriert
ein Verfahren 202 zum Laden eines Zustands während eines
VM-Übergangs.
Das Verfahren kann durch Verarbeitungslogik durchgeführt werden,
welche Hardware (z. B. einen Schaltkomplex, dedizierte Logik, programmierbare
Logik, Mikrocode und dergleichen), Software (welche z. B. auf einem
Universal-Computersystem oder auf einer dedizierten Maschine ausgeführt wird)
oder eine Kombination aus beidem umfassen kann.
-
Anfänglich wird
bei 222 bestimmt, ob irgendwelche Elemente des Maschinenzustands
verblieben sind, welche verarbeitet werden müssen. Falls keine Elemente
des Maschinenzustands zur Verarbeitung verblieben sind, wird das
Verfahren terminiert. Andernfalls wird bei 232 ein Wert
eines Steuer-Bits bestimmt. Diese Steuer-Bits und ihre Bestimmungen
werden nachfolgend ausführlich
diskutiert. Wenn, wie bei 242 bestimmt, das Bit nicht gesetzt
ist (das Bit einen Wert von 0 aufweist), kehrt die Steuerung zu 222 zurück. Andernfalls
(das Bit ist mit einem Wert von 1 gesetzt) wird bei 252 ein
Wert, welcher dem Element des Maschinenzustands entspricht, bestimmt.
Die Bestimmung des Werts wird nachfolgend diskutiert. Dieser Wert
wird dann bei 262 in dem Maschinenzustand installiert.
Die Steuerung kehrt dann zu 222 zurück, um zu bestimmen, ob weitere
Elemente des Maschinenzustands verblieben sind.
-
2C illustriert
ein Verfahren 204 zum Speichern eines Maschinenzustands
während
eines VM-Übergangs.
Das Verfahren kann durch Verarbeitungslogik durchgeführt werden,
welche Hardware (z. B. einen Schaltkomplex, dedizierte Logik, programmierbare
Logik, Mikrocode und dergleichen), Software (welche z. B. auf einem
Universal-Computersystem
oder einer dedizierten Maschine ausgeführt wird) oder eine Kombination
aus beidem umfassen kann.
-
Anfänglich wird
bei 224 bestimmt, ob irgendwelche Elemente des Maschinenzustands
verblieben sind, welche verarbeitet werden müssen. Falls keine Elemente
des Maschinenzustands zur Verarbeitung verblieben sind, wird das
Verfahren terminiert. Andernfalls wird bei 234 ein Wert
eines Steuer-Bits bestimmt. Diese Steuer-Bits und ihre Bestimmungen
werden nachfolgend ausführlich
diskutiert. Wenn, wie bei 244 bestimmt, das Bit nicht gesetzt
ist (das Bit einen Wert von 0 aufweist), kehrt die Steuerung zu 224 zurück. Andernfalls
(das Bit ist mit einem Wert von 1 gesetzt) wird bei 254 ein
Wert, welcher dem Element des Maschinenzustands entspricht, bestimmt.
Die Bestimmung des Werts wird nachfolgend diskutiert. Dieser Wert
wird dann bei 264 gespeichert. Die Steuerung kehrt dann
zu 224 zurück,
um zu bestimmen, ob weitere Elemente des Maschinenzustands verblieben
sind.
-
Bei
einer Ausführungsform
umfaßt
die VMCS zwei Sätze
von Steuer-Bits, welcher der Steuerung des VMM unterliegen. Diese
Steuer-Bits werden als VM-Eintrittssteuerungen und VM-Austrittssteuerungen
bezeichnet. Die VM-Eintrittssteuerungen informieren den Prozessor während eines
VM-Eintritts darüber,
welcher VMM-Maschinenzustand gespeichert werden soll und welcher
VM-Maschinenzustand geladen werden soll. Die VM-Austrittssteuerungen
informieren den Prozessor während
eines VM-Austritts darüber,
welcher VM-Maschinenzustand
gespeichert werden soll und welcher VMM-Maschinenzustand geladen
werden soll.
-
Nur
beispielhaft können
die VM-Eintrittssteuerungen als eine Bit-Folge mit einer Länge von
6 dargestellt werden, wobei jeder Bit-Ort innerhalb der Bit-Folge
eine Aktion oder Nicht-Aktion auf einem bestimmten Element des Maschinenzustands
identifiziert oder repräsentiert.
Beispielsweise können
der Bit-Ort innerhalb der Folge und das zugeordnete Element des
Maschinenzustands wie folgt dargestellt werden:
-
In
einer ähnlichen
Weise können
die VM-Austrittssteuerungen als eine Bit-Folge innerhalb der VMCS mit
einer Länge
von 4 dargestellt werden. Genauso können der Bit-Ort innerhalb
der Folge und die zugeordnete Aktion für das Element des Maschinenzustands
wie folgt dargestellt werden:
-
Falls
der VMM bei einem VM-Eintritt in den VM-Eintrittssteuerungen (Bit-Nummer
0) das "Speichern – VMM-DR7"-Bit gesetzt aufweist,
speichert der Prozessor dann den aktuellen Wert des DR7-Registers.
Bei einer Ausführungsform
wird der Wert des DR7- Registers
in der VMCS gespeichert. Falls umgekehrt das "Speichern – VMM-DR7"-Bit in den VM-Eintrittssteuerungen
gelöscht
ist, speichert der Prozessor dann den DR7-Registerwert nicht. Die
VM-Eintrittssteuer-Bits "Speichern – VMM-CR3" und "Speichern – VMM-CR4" (z. B. Bit-Nummer
1 bzw. 2) verhalten sich in einer ähnlichen Weise.
-
Falls
genauso der VMM das VM-Eintrittssteuer-Bit "Speichern – Gast-DR7" (z. B. Bit-Nummer 4) gesetzt aufweist, lädt der Prozessor
dann das DR7-Register. Bei einer Ausführungsform ist der geladene
Wert im DR7-Feld der Gast-VM in der VMCS eingeschlossen. Falls das
VM-Eintrittssteuer-Bit "Laden – DR7" gelöscht ist,
lädt der
Prozessor das DR7-Register dann nicht. Wieder verhalten sich die
Steuer-Bits "Laden – Gast-CR3" und "Laden – Gast-CR4" (z. B. Bit-Nummer
4 bzw. 5) in einer analogen Weise. Die VM-Austrittssteuer-Bits arbeiten
auf ähnlichen
Wegen zum Steuern des Speicherns des Maschinenzustands der Gast-VM und
des Ladens des Maschinenzustands des Host-VMM beim VM-Austritt.
-
Bei
diesem Beispiel steuern die VM-Eintritts- und VM-Austrittssteuerungen
nicht die gleichen Elemente des Maschinenzustands; da die VM-Eintrittssteuerungen
Bits umfassen, welche DR7 repräsentieren,
und die VM-Austrittssteuerungen keine umfassen. Wie Durchschnittsfachleute
jedoch unmittelbar anerkennen, können
die VM-Eintritts- und VM-Austrittssteuerungen
die gleichen Elemente des Maschinenzustands steuern, und es ist
vorgesehen, daß derartige
Repräsentationen
innerhalb des Schutzumfangs der verschiedenen Ausführungsformen
für die
vorliegende Erfindung fallen. Außerdem sollte die bestimmte
Auswahl des Maschinenzustands, welcher dieses Beispiel repräsentiert,
nicht als einschränkend
angesehen werden.
-
Obwohl
das oben stehend präsentierte
Beispiel eine Darstellung zum Verstehen einer Ausführungsform
der vorliegenden Erfindung bereitstellt, ist es nicht vorgesehen,
daß die
Erfindung derartig eingeschränkt wird.
In allen Szenarien muß beispielsweise
der geladene Wert kein Wert in der VMCS sein, und der gespeicherte
Wert muß kein
Wert unmittelbar aus dem Maschinenzustand sein (wie es bei den oben
stehend beschriebenen Ausführungsformen
der Fall ist).
-
Bei
dem oben stehend gegebenen Beispiel kann der Prozessor einen Wert
für ein
Element des Maschinenzustands aus oder in der VMCS laden oder speichern.
Ersatzweise kann der Prozessor einen Festwert für ein Element des Maschinenzustands
laden oder speichern. Weiterhin kann der Prozessor einen Wert laden oder
speichern, welcher dynamisch berechnet wurde. Schließlich kann
der Prozessor keine Aktion hinsichtlich eines Elements des Maschinenzustands
vornehmen (es wird kein Wert geladen oder gespeichert). Diese alternativen
Mechanismen zum Bestimmen des Werts, welcher geladen oder gespeichert
werden soll, werden nachfolgend beschrieben.
-
Der
Prozessor kann einen Festwert (d. h. konstant oder vorbestimmt)
für ein
Element des Maschinenzustands laden oder speichern. Beispielsweise
kann der Prozessor bei einem VM-Austritt einen Festwert in das EFLAGS-Register
laden. Das bedeutet, daß es
kein VMM-EFLAGS
gibt, welches in der VMCS repräsentiert
ist. Statt dessen erzwingt der Prozessor vor einem Übergang
der Steuerung an den VMM, daß das EFLAGS-Register
in dem Prozessor einen Festwert oder einen vorbestimmten Wert (z.
B. Ox2 oder andere Werte) aufweist. Auf diese Weise "erzwingt" der Prozessor den
Wert eines Elements des Maschinenzustands. In gleicher Weise kann
der Prozessor einen Wert erzwingen, welcher beim VM-Eintritt in
der VMCS gespeichert wurde, einen Wert erzwingen, welcher beim VM-Eintritt
in den Maschinenzustand geladen wurde, und/oder einen Wert erzwingen,
welcher beim VM-Austritt
in der VMCS gespeichert wurde.
-
Auf
diese Weise müssen
nicht alle Elemente des Maschinenzustands explizit in der VMCS repräsentiert
sein. Dieses Verfahren stellt einen flexiblen Mechanismus zum Abdecken
zusätzlicher
Elemente des Maschinenzustands bereit, ohne eine große oder
schwerfällige
VMCS zu erzeugen. Zusätzlich
kann dieses Erzwingen eines Maschinenzustands oder gespeicherter
Werte das Leistungsvermögen
der Implementierung eines VM-Austritts und eines VM-Eintritts durch
ein Reduzieren der Anzahl an Zugriffen, welche auf die VMCS nötig sind,
und durch ein Reduzieren einer Konsistenz- und Fehlerprüfung verbessern,
welche beim VM-Eintritt und/oder beim VM-Austritt erforderlich ist.
-
Weiterhin
kann der Prozessor einen Wert berechnen, welcher dann in den Maschinenzustand
geladen oder in der VMCS gespeichert wird. Dieser berechnete Wert
wird auf der Grundlage des Werts von einem oder mehreren Elementen
des Maschinenzustands, der Werte, welche innerhalb der VMCS eingeschlossen
sind, und dergleichen dynamisch bestimmt. Beispielsweise kann der
Wert, welcher beim VM-Austritt in das EIP-Register geladen wird,
durch Laden eines VMM-EIP-Feldwerts aus der VMCS und Laden des EIP-Registers mit diesem
EIP-Wert, welcher durch irgendeinen berechneten Wert erhöht wurde,
wobei der berechnete Wert von der Ursache des VM-Austritts abhängt, berechnet
werden.
-
Eine
dynamische Berechnung eines Elements des Maschinenzustands kann
eine effizientere Implementierung eines VMM gestatten. Bei dem oben
stehend gegebenen Beispiel gestattet die dynamische Berechnung des
EIP beim VM-Austritt beispielsweise dem VMM, Handler für individuelle
VM-Austrittsquellen aufzubauen, wobei die Notwendigkeit, den Austrittsgrund
in der VMM-Software zu decodieren, eliminiert wird.
-
Schließlich kann
der Prozessor während
eines VM-Übergangs
keine Aktion hinsichtlich eines Elements des Maschinenzustands vornehmen.
Beispielsweise kann der Prozessor die Werte der Universalregister
(z. B. im IA-32 ISA, EAX, EDX und dergleichen) unverändert lassen,
wenn ein Übergang
aus einer VM zum VMM stattfindet.
-
Der
Prozessor bestimmt die entsprechende Aktion, welche während eines
VM-Übergangs
hinsichtlich eines Elements des Maschinenzustands vorzunehmen ist,
indem ein "Zustandsaktionsindikator" evaluiert wird. Der
Zustandsaktionsindikator bestimmt, welche Aktion vorgenommen werden
soll. Der Wert eines Zustandsaktionsindikators ("Zustandsaktionsindikatorwert") kann den Prozessor
anweisen, Zustandsinformationen aus der VMCS zu laden oder Zustandsinformationen
in der VMCS zu speichern. Der Zustandsaktionsindikatorwert kann
den Prozessor auch anweisen, zu erzwingen, daß ein fester oder vorbestimmter
Wert geladen oder gespeichert wird, keine Aktion hinsichtlich eines
bestimmten, betrachteten Elements des Maschinenzustands vorzunehmen
oder einen berechneten Wert zu laden oder zu speichern.
-
Die
oben stehend diskutierten VM-Eintritts- und VM-Austrittssteuerungen
sind Beispiele von Zustandsaktionsindikatoren. Bei diesem Beispiel
verwendet der Prozessor Felder der VMCS als Zustandsaktionsindikatoren.
Jedes Bit in der VM-Eintritts- oder VM-Austrittssteuerung entspricht einem
einzelnen Element des Maschinenzustands. Wenn ein Bit gesetzt ist,
zeigt es dem Prozessor an, daß das
Element des Maschinenzustands aus/in der VMCS geladen/gespeichert
werden soll; Wenn es gelöscht
ist, wird das Element des Maschinenzustands ignoriert. Bei alternativen
Ausführungsformen
kann ein einzelnes Bit bestimmen, ob ein Element des Maschinenzustands
geladen werden soll oder auf einen Fest wert gezwungen werden soll.
Bei noch weiteren Ausführungsformen
können
die Zustandsaktionsindikatoren mehr als ein einzelnes Bit sein,
und sie können
ein komplexeres Verhalten codieren. Beispielsweise kann der Zustandsaktionsindikator
2 Bits sein, welche 4 Werte gestatten, um die oben stehend beschriebenen
Mechanismen des Ladens, des Erzwingens, des Berechnens und des Ignorierens
zu unterscheiden.
-
Ein
Zustandsaktionsindikator kann einem bestimmten VM-Übergang
(z. B. allen VM-Austritten),
einem bestimmten Element des Maschinenzustands (wie bei der oben
stehend ausführlich
erklärten
Ausführungsform
der VM-Eintritts- und VM-Austrittssteuerung) und/oder mehreren Elementen
des Maschinenzustands (z. B. einem einzelnen Zustandsaktionsindikator,
welcher beim VM-Austritt das Laden aller Universalregister in den
Prozessor steuert) zugeordnet sein.
-
Ein
Zustandsaktionsindikatorwert kann aus einem Wert bestimmt werden,
welcher aus der VMCS erfaßt
wurde (wie bei den oben stehenden Beispielen), kann ein Festwert
(d. h. ein vorbestimmter Wert) sein oder kann ein dynamisch berechneter
Wert sein. Nachfolgend wird jede dieser Möglichkeiten diskutiert.
-
Ein
Zustandsaktionsindikator kann unter der Steuerung des VMM in der
VMCS gespeichert werden. Beispiele von Zustandsaktionsindikatoren,
welche in der VMCS gespeichert werden, wurden oben stehend ausführlich diskutiert.
-
Ein
Zustandsaktionsindikator kann vorbestimmt sein. Wenn der Wert des
Zustandsaktionsindikators ein fester oder ein vorbestimmter Wert
ist, dann weist der VMM keine unmittelbare Steuerung über die
Aktionen auf, welche der Prozessor bei VM-Übergängen an
einem entsprechenden Element des Maschinenzustands vornimmt. Beispielsweise
kann der Prozessor den Wert des EIP-Registers während einer VM-Eintrittsverarbeitung
durchgehend nicht speichern, einen Gast-Wert für das EIP-Register aus der
VMCS während
einer VM-Eintrittsverarbeitung durchgehend laden und/oder das EIP-Register während einer
VM-Austrittsverarbeitung durchgehend laden.
-
Ein
Zustandsaktionsindikator kann dynamisch berechnet werden. Falls
der Zustandsaktionsindikator ein dynamisch berechneter Wert ist,
kann der Zustandsaktionsindikator dann von einem oder mehreren Werten
abhängen,
welche einem oder mehreren Elementen des Maschinenzustands, einem
oder mehreren Feldern in der VMCS und dergleichen zugeordnet sind.
-
Wenn
beispielsweise der Prozessor in dem IA-32 ISA physikalische Adreßerweiterungen
(im PAE-Modus) auf einen VM-Eintritt oder VM-Austritt nachfolgend
verwendet, lädt
der Prozessor die Einträge
für die
Seitenverzeichniszeiger-Tabellen (PDPTRs) aus der VMCS. Falls sich
der Prozessor nicht in einem PAE-Modus befindet, werden die PDTRs
in dem Prozessor dann auf 0 gezwungen. Zum Bestimmen, ob sich der
Prozessor im PAE-Modus befindet, untersucht der Prozessor das PAE-Bit
in dem CR4-Register.
Folglich kann gesagt werden, daß der
Prozessor eine dynamische Bestimmung oder Berechnung des Zustandsaktionsindikatorwerts
vorgenommen hat. Wenn das PAE-Bit gesetzt ist, weist der Zustandsaktionsindikator
den Prozessor dann an, "aus
der VMCS zu laden".
Wenn das PAE-Bit gelöscht
ist, weist der Zustandsaktionsindikator den Prozessor dann an, "einen Wert zu erzwingen" (z. B. einen Wert
von 0 zu erzwingen). Es ist zu beachten, daß das hier beschriebene Verarbeiten
zum Bestimmen, ob sich der Prozessor im PAE-Modus befindet, vereinfacht ist,
um verschiedene Ausführungsformen
der vorliegenden Erfindung deutlich zu erklären. Ein weiteres Verarbeiten
kann erforderlich sein, um diese Bestimmung vorzunehmen, was von
Durchschnittsfachleuten unmittelbar erkannt und verstanden wird.
-
Bei
einem anderen Beispiel kann der Prozessor die Basis- und Begrenzungsfelder
für ein
Segmentregister laden, wenn der Wert eines Selektors eines Segments
nicht null ist oder falls sich der Prozessor im V86-Modus befindet.
Um diese Bestimmung vorzunehmen, untersucht der Prozessor zwei Teile
der Maschinenzustandsinformationen: den Wert des Selektors für das betrachtete
Segment und den Wert eines VM-Bits in einem EFLAGS-Register. Wenn der
Selektor nicht null ist oder wenn das VM-Bit im EFLAGS gesetzt ist, dann
wird der Prozessor angewiesen, auf andere Weise "aus der VMCS zu laden", der Prozessor nimmt
keine Aktion vor. Es ist zu beachten, daß die hier beschriebene Verarbeitung
zum Bestimmen, ob es nötig
ist, die Basis- und Begrenzungsfelder zu laden vereinfacht ist,
um verschiedene Ausführungsformen
der vorliegenden Erfindung deutlich zu erklären. Es kann weitere Verarbeitung
erforderlich sein, um diese Bestimmung vorzunehmen, was von Durchschnittsfachleuten
unmittelbar erkannt und verstanden wird.
-
Wie
es Durchschnittsfachleuten jetzt offenkundig ist, können die
hier beschriebenen Verfahren zur dynamischen Steuerung des Ladens
und des Speicherns des Maschinenzustands während eines Übergangs zwischen
einem VMM und VMs verwendet werden. Übergänge in und aus einem VMM treten
unter Verwendung einer VMCS und eines Prozessors mit flexibler Befehlslogik
auf, wie oben stehend beispielhaft präsentiert wurde. Weiterhin muß nicht
jedes Element des Maschinenzustands und nicht jede Aktion, welche
der Prozessor vorgenommen hat, allein innerhalb der VMCS bejahend
deklariert oder repräsentiert
werden.
-
3 illustriert
ein Ablaufdiagramm eines Verfahrens 300 zum Durchführen des
Ladens eines Elements des Maschinenzustands während eines VM-Übergangs
gemäß einer
Ausführungsform
der Erfindung. 3 kann innerhalb des Entwurfs
eines Prozessors für
eine Maschine implementiert werden. Das Verfahren kann durch Verarbeitungslogik
durchgeführt
werden, welche Hardware (z. B. einen Schaltkomplex, dedizierte Logik,
programmierbare Logik, Mikrocode und dergleichen), Software (welche
z. B. auf einem Universal-Computersystem oder einer dedizierten
Maschine ausgeführt
wird) oder eine Kombination aus beidem umfassen kann.
-
Bei 310 bestimmt
der Prozessor den Zustandsaktionsindikator für das betrachtete Element des
Maschinenzustands. Bei 320 untersucht der Prozessor den
Zustandsaktionsindikator. Falls der Zustandsaktionsindikatorwert
anzeigt, daß das
betrachtete Element des Maschinenzustands aus der VMCS geladen werden muß, dann
wird bei 330 der Wert für
das Element des Maschinenzustands geladen und bei 335 in
das entsprechende betrachtete Element des Maschinenzustands installiert.
Falls der Zustandsaktionsindikatorwert jedoch anzeigt, daß das betrachtete
Element des Maschinenzustands erzwungen werden muß, wie bei 340 bestimmt, dann
installiert der Prozessor bei 350 den vorbestimmten oder
erzwungenen Wert in dem entsprechenden Element des Maschinenzustands.
Weiterhin kann der Zustandsaktionsindikatorwert anzeigen, daß von dem
Prozessor keine Aktion hinsichtlich des betrachteten Elements des
Maschinenzustands bei 360 vorgenommen werden muß, in welchem
Fall der Prozessor keine Aktion vornimmt (der Prozessor modifiziert
das betrachtete Element des Maschinenzustands nicht).
-
Wenn
die Evaluierung des Zustandsaktionsindikators bei 360 negativ
ist (er nicht anzeigt, daß keine Aktion
hinsichtlich des betrachteten Elements des Maschinenzustands erforderlich
ist), dann kann gefolgert werden, daß eine dynamische Berechnung
erforderlich ist. Natürlich
kann bei manchen Ausführungsformen eine
affirmative Prüfung
des Zustandsaktionsindikators vorgenommen werden, um zu bestimmen,
ob eine Berechnung notwendig ist, ohne irgendeine Störung dieses
zu bewirken. Dementsprechend wird ein Wert für das betrachtete Element des
Maschinenzustands bei 370 berechnet und bei 380 innerhalb
des Elements des Maschinenzustands installiert. Der Prozessor kann
den Wert für
das Element des Maschinenzustands durch Untersuchen eines oder mehrerer
Elemente des Maschinenzustands, durch Untersuchen eines Werts in
der VMCS und/oder durch Untersuchen eines Steuerungsindikatorwerts
und so weiter dynamisch berechnen. Wenn die Untersuchung weiterhin
einmal vorgenommen wurde, kann der Prozessor eine oder mehrere Transformationen
(z. B. eine Berechnung) durchführen,
um den Wert für
das betrachtete Element des Maschinenzustands herzustellen. Folglich
kann der Prozessor verschiedene Daten verwenden und führt verschiedene Aktionen
durch, um den Wert für
das Element des Maschinenzustands zu erzeugen.
-
Das
Verfahren 300 wird für
jedes Element des Maschinenzustands wiederholt, obwohl dieses in 3 nicht
dargestellt wird. Zusätzlich
können,
wie oben stehend diskutiert, jedem Zustandsaktionsindikator ein
oder mehrere Elemente des Maschinenzustands zugeordnet sein.
-
4 illustriert
ein Ablaufdiagramm eines Verfahrens 400 zum Durchführen des
Speicherns eines Elements des Maschinenzustands während eines
VM-Übergangs
gemäß einer
Ausführungsform
der Erfindung. Das Verfahren 400 wird innerhalb der Prozessorarchitekturen
implementiert. Das Verfahren kann durch Verarbeitungslogik durchgeführt werden,
welche Hardware (z. B. einen Schaltkomplex, dedizierte Logik, programmierbare
Logik, Mikrocode und dergleichen), Software (welche beispielsweise
auf einem Universal-Computersystem
oder einer dedizierten Maschine läuft) oder eine Kombination
aus beidem umfassen kann.
-
Bei 410 bestimmt
der Prozessor den Zustandsaktionsindikator für das betrachtete Element des
Maschinenzustands. Bei 420 untersucht der Prozessor den
Zustandsaktionsindikator. Falls der Zustandsaktionsindikator eine
Speicherung des betrachteten Elements des Maschinenzustands in der
VMCS erfordert, dann wird das betrachtete Element des Maschinenzustands
bei 430 in einem oder mehreren Feldern der VMCS gespeichert.
Falls dies nicht der Fall ist, dann wird bei 440 der Zustandsaktionsindikatorwert
geprüft,
um zu bestimmen, ob ein Festwert in der VMCS gespeichert werden
muß, und
falls dies so ist, wird der Festwert bei 450 in einem oder
mehreren Feldern der VMCS gespeichert. Unter manchen Umständen kann
der Zustandsaktionsindikatorwert den Prozessor anweisen, keine Aktion
durchzuführen,
wie bei 460 dargestellt.
-
Bei 470 wird
entsprechend dem Element des Maschinenzustands ein Wert dynamisch
bestimmt. Der berechnete Wert wird dann in einem oder mehreren Feldern
der VMCS bei 480 gespeichert. Der Prozessor kann den Wert
durch Untersuchen eines oder mehrerer Elemente des Maschinenzustands,
durch Untersuchen eines Werts in der VMCS und/oder durch Untersuchen
eines Steuerungsindikatorwerts usw. dynamisch berechnen. Wenn die
Untersuchung weiterhin einmal vorgenommen wurde, kann der Prozessor
eine oder mehrere Transformationen (z. B. eine Berechnung) durchführen, um
den berechneten Wert herzustellen, welcher in dem einen oder den
mehreren Feldern der VMCS gespeichert ist. Folglich kann der Prozessor
verschiedene Daten verwenden, und er führt verschiedene Aktionen durch,
um den berechneten Wert zu erzeugen.
-
Das
Verfahren 400 kann für
jedes Element des Maschinenzustands wiederholt werden, obwohl dies
in 4 nicht dargestellt wird. Zusätzlich können, wie oben stehend diskutiert,
jedem Zustandsaktionsindikator ein oder mehrere Elemente des Maschinenzustands
zugeordnet werden.
-
5 illustriert
ein Ablaufdiagramm eines Verfahrens 500 zum Bestimmen eines
Werts eines Zustandsaktionsindikators während einer VM-Übergangsoperation
(z. B. Block 310 in 3 und Block 410 in 4)
gemäß einer
Ausführungsform
der Erfindung. Das Verfahren kann durch Verarbeitungslogik durchgeführt werden,
welche Hardware (z. B. einen Schaltkomplex, dedizierte Logik, programmierbare
Logik, Mikrocode und dergleichen), Software (welche beispielsweise
auf einem Universal-Computersystem oder einer dedizierten Maschine
läuft)
oder eine Kombination aus beidem umfassen kann.
-
Bei 505 bestimmt
der Prozessor das betrachtete Element des Maschinenzustands, den
Typ des verarbeiteten VM-Übergangs
und ob ein Laden oder Speichern eines Zustands verarbeitet wird.
Auf der Grundlage der bestimmten Informationen bestimmt der Prozessor
bei 507, ob die Architektur vorschreibt, daß der Zustandsaktionsindikator,
welcher diesem Element des Maschinenzustands zugeordnet ist, ein
Festwert ist, aus der VMCS geladen oder berechnet wurde.
-
Falls
der Zustandsaktionsindikator bei 510 ein Festwert ist,
wird dann bei 520 der feste Zustandsaktionsindikatorwert
bestimmt.
-
Falls
der Zustandsaktionsindikator bei 530 aus der VMCS erfaßt werden
muß, wird
dann bei 540 der Zustandsaktionsindikatorwert aus der VMCS
geladen.
-
Falls
der Zustandsaktionsindikator bei 550 dynamisch bestimmt
oder berechnet muß,
werden dann bei 550 die Berechnungen durchgeführt, um
den Zustandsaktionsindikatorwert zu bestimmen. Die dynamische Bestimmung
oder Berechnung kann beispielsweise ein Laden verschiedener Felder
innerhalb der VMCS (einschließlich
der Steuerungsvektorfeldwerte), ein Untersuchen verschiedener Elemente
des Maschinenzustands, ein Untersuchen verschiedener Elemente eines
VM- und/oder VMM-Zustands, ein Untersuchen ein oder mehrerer Steuerungsindikatorwerte
und/oder ein Transformieren (z. B. ein Durchführen von Berechnungen) auf
der Grundlage der untersuchten Informationen umfassen.
-
Bei
manchen Ausführungsformen
können
die Bestimmung des Zustandsaktionsindikatorwerts und die Evaluierung
nicht explizit sein. Der Prozessor kann mit dem Wissen entworfen
sein, daß eine
bestimmte Situation eine bestimmte Aktion verlangt. Beispielsweise
kann die Logik in einem Prozessor ein Element des Maschinenzustands
unbedingt auf einen bestimmten Wert zwingen, ohne irgendeinen Zustandsaktionsindikatorwert
explizit zu evaluieren. Folglich sollte das explizite Prüfen, welches
hinsichtlich der 5 beschrieben wurde, nicht als
einschränkend
angesehen werden.
-
Die
Ausführungsformen
der vorliegenden Erfindung stellen ein verbessertes Verarbeiten
von VM-Übergängen bereit.
Dies wird durch ein flexibles Verkörpern des Verarbeitens innerhalb
des Prozessors erzielt, welcher eine VMCS verwendet, muß jedoch
nicht vollständig
auf Informationen angewiesen sein, welche innerhalb der VMCS zum
Durchführen
eines VM-Übergangs
bereitgestellt werden.
-
Durchschnittsfachleute
erkennen jetzt an, daß die
Implementierung eines Prozessors gemäß verschiedenen Ausführungsformen
der vorliegenden Erfindung das Laden und das Speichern eines Maschinenzustands
während
VM-Übergängen verwalten
und steuern kann. Insbesondere stellen diese Ausführungsformen
dem VMM die Flexibilität
bereit, um die Semantik des Ladens und des Speicherns eines Maschinenzustands
während
VM-Übergängen vorzuschreiben,
wie es von der Architektur gestattet wird. Dies muß nicht
mit einer starren VMCS erzielt werden, welche alle Instanzen von
Elementen des Maschinenzustands berücksichtigt, und nicht alles
Speichern und Laden eines Maschinenzustands bei VM-Übergängen muß explizit durch den VMM durch
Steuerungen in der VMCS geleitet werden.
-
Es
versteht sich, daß oben
stehende Beschreibung beispielhaft und nicht restriktiv gedacht
ist. Durchschnittsfachleuten werden beim Durchsehen der oben stehenden
Beschreibung viele andere Ausführungsformen
offenkundig werden. Der Schutzumfang der Ausführungsformen der Erfindung
sollte deshalb unter Bezugnahme auf die angefügten Ansprüche, zusammen mit dem vollen
Schutzumfang der Äquivalente,
zu welchen diese Ansprüche
berechtigen, bestimmt werden.
-
Es
wird ausdrücklich
betont, daß die
Zusammenfassung bereitgestellt wird, um 37 C.F.R. §1.72(b)
zu befolgen, welcher eine Zusammenfassung erfordert, welche dem
Leser gestattet, die Natur und das Wesentliche der technischen Offenbarung
schnell aufzunehmen. Sie wird in dem Verständnis eingereicht, daß sie nicht
verwendet wird, um den Schutzumfang oder die Bedeutung der Ansprüche zu interpretieren
oder einzuschränken.
-
In
der vorangehenden Beschreibung der Ausführungsformen werden verschiedene
Merkmale zum Zweck der Rationalisierung der Offenbarung zusammen
in einer einzelnen Ausführungsform
gruppiert. Dieses Offenbarungsverfahren darf nicht so interpretiert
werden, daß es
eine Absicht wiedergibt, daß die
beanspruchten Ausführungsformen
der Erfindung mehr Merkmale erfordern, als ausdrücklich in jedem Anspruch dargestellt
sind. Statt dessen liegt, wie die folgenden Ansprüche wiedergeben,
der erfinderische Gegenstand in weniger als allen Merkmalen einer
einzelnen offenbarten Ausführungsform.
Folglich werden die folgenden Ansprüche hiermit in die Beschreibung
der Ausführungsformen
einbezogen, wobei jeder Anspruch für sich selbst als eine separate
beispielhafte Ausführungsform
steht.
-
ZUSAMMENFASSUNG
-
Es
werden Verfahren und Systeme zur Steuerung von Übergängen zwischen einer virtuellen
Maschine (VM) und einem Virtuellen-Maschinen-Monitor (VMM) bereitgestellt.
Ein Prozessor verwendet Zustandsaktionsindikatoren, um zugeordnete
Elemente des Maschinenzustands vor einem Beenden des Übergangs
zu laden und/oder zu speichern. Die Zustandsaktionsindikatoren können in
einer Virtuellen-Maschinen-Steuerungsstruktur (VMCS) gespeichert,
vorbestimmt und/oder dynamisch berechnet werden. Bei manchen Ausfuhrungsformen
können
die geladenen Werte unmittelbar aus der VMCS erfaßt, vorbestimmt
und/oder dynamisch berechnet werden. Bei manchen Ausführungsformen
können
die gespeicherten Werte unmittelbar aus dem Maschinenzustand erfaßt, vorbestimmt
und/oder dynamisch berechnet werden.