-
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 gegenständlichen
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,
die innerhalb einer VM ausgeführt
wird, wird als Gast-Software bezeichnet. Es wird auf Hall, J. S.
Virtualizing the VAX architecture. In: Proceedings of the 28th International
Symposium an Computer Architecture, 1991, pp 380-389 hingewiesen.
-
Die
Gast-Software erwartet, daß so
arbeiten zu könnnen,
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 gegenständlichen
Maschine) besitzt. Die Hardware-Ressourcen
der gegenständlichen
Maschine können
einen oder mehrere Prozessoren, auf dem(den) Prozessor(en) 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,
die sich in der gegenständlichen
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 gegenständlichen
Maschine hin- und hertauschen. Der(die) Prozessor(en) 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 gegenständliche
Maschine verbessern. Dies kann insbesondere angebracht sein, wenn
eine Operation im nicht privilegierten Modus in der Gast-Software
durchgeführt
wird, der den Zugriff auf die gegenständliche Maschine einschränkt, oder
wenn Operationen keine Hardware-Ressourcen in der gegenständlichen
Maschine verwenden, für
die 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
VM 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
gegenständlichen
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
gegenständliche
Maschinen, die eine Operation einer VM unterstützen, steuern die Ausführungsumgebung
einer VM unter Verwendung einer Struktur, die hier als eine Virtuelle-Maschinen-Steuerungsstruktur
(VMCS) bezeichnet wird. Die VMCS wird in einem Speicherbereich gespeichert
und enthält
beispielsweise den Zustand des Gastes, den Zustand des VMM und Steuerungsinformationen,
die bezeichnen, unter welchen Bedingungen der VMM während einer
Ausführung
des Gastes die Steuerung zurückgewinnen möchte. Der eine
oder die mehreren Prozessoren in der gegenständlichen 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)
Prozessor(en) der gegenständlichen
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 beiliegenden Zeichnungen Bezug genommen, die ein Teil der
Beschreibung bilden und bei denen auf dem Wege der Darstellung insbesondere
spezifische Ausführungsformen
der Erfindung gezeigt werden, die 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, 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 der die vorliegende
Erfindung arbeiten kann. Bei dieser Ausführungsform umfaßt eine
gegenständliche
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,
und braucht keine herkömmlichen
OS-Einrichtungen und dergleichen umfassen. 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
gegenständliche
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 gegenständliche
Maschine 110 umfaßt
einen Prozessor 112 und einen Speicher 120. Zusätzlich kann
die gegenständliche
Maschine 110 verschiedene andere nicht gezeigte Eingabe/Ausgabe-Vorrichtungen umfassen.
-
Der
Prozessor 112 kann ein beliebiger Prozessortyp sein, der
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 in einem 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, die 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. der "Gast-" Software) die Abstraktion
einer oder mehrerer virtuellen Maschinen (VMs), die den verschiedenen
Gästen
die gleichen oder unterschiedliche Abstraktionen bereitstellen kann. 1 zeigt
drei VM 132, 142 und 152. Die Gast-Software,
die 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-OS 134, 144 und 154 erwartet,
daß es
innerhalb der VMs 132, 142 und 152, auf
denen die Gast-OS 134, 144 oder 154 laufen,
auf gegenständliche
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,
die 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 es kann darauf zugegriffen werden.
-
Ein Übergang
von dem VMM 125 an die Gast-Software wird "VM-Eintritt" genannt. Ein Übergang
aus einer Gast-Software zu dem VMM 120 wird "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 zu initiieren, um den VM-Eintritt zu bewirken.
Bei einer Ausführungsform
können
VM-Austritte explizit von der VM verlangt werden (z.B. durch Ausführen eines
speziellen Befehls zum Bewirken des VM-Austritts). Bei manchen Ausführungsformen
verlangt die VM einen Übergang
nicht unmittelbar, 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 erkennen, 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 IV 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, die verwendet werden, wenn das Laden und/oder
das Speichern eines Maschinenzustands während Übergängen (z.B. Eintritten und Austritten)
zwischen Gast-VM (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, die 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 erkennt
der Prozessor 112, 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 112 einen VM-Eintritt ausführt, kann
der Prozessor 112 eine Anzahl an Operationen zur Vorbereitung
der Steuerungsübergabe
von einem VMM zu einer VM durchführen.
Beispielsweise kann der Prozessor 112 bei 230 den
VMM-Maschinenzustand
speichern, bei 240 den VM-Maschinenzustand laden und schließlich bei 250 die
Steuerung an die VM übergeben.
-
Falls
der Prozessor 112 einen VM-Austritt behandelt, kann der
Prozessor 112 eine Anzahl an Operationen zur Vorbereitung
der Steuerungsübergabe
an einen VMM von einer VM durchführen.
Beispielsweise kann der Prozessor 112 bei 260 einen
VM-Maschinenzustand
speichern, bei 270 einen VMM-Maschinenzustand laden und
schließlich
bei 280 die Steuerung an den VMM ü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,
die 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, die verarbeitet werden müssen. Falls keine Elemente
des Maschinenzustands zur Verarbeitung verblieben sind, wird das
Verfahren beendet. 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, der 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,
die 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.
-
Zunächst wird
bei 224 bestimmt, ob irgendwelche Elemente des Maschinenzustands
verblieben sind, die 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, die 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:
Bit-Ort | Prozessor-Aktion
und zugeordnetes Element des Maschinenzustands |
0 | Speichern-VMM-DR7 |
1 | Speichern-VMM-CR3 |
2 | Speichern-VMM-CR4 |
3 | Laden-Gast-DR7 |
4 | Laden-Gast-CR3 |
5 | Laden-Gast
CR4 |
-
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:
Bit-Ort | Prozessor-Aktion
und zugeordnetes Element des Maschinenzustands |
0 | Speichern-Gast-CR3 |
1 | Speichern-Gast-CR4 |
2 | Laden-VMM-CR3 |
3 | Laden-VMM-CR4 |
-
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 entsprechenden 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, der 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, der 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 festen (d.h. konstanten oder vorbestimmten)
Wert 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
keine VMM-EFLAGS gibt, die 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.
0×2 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, der beim VM-Eintritt in der VMCS gespeichert wurde,
einen Wert erzwingen, der beim VM-Eintritt in den Maschinenzustand
geladen wurde, und/oder einen Wert erzwingen, der 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, die 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.
-
Weiter
kann der Prozessor einen Wert berechnen, der 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, die innerhalb der VMCS eingeschlossen
sind, und dergleichen dynamisch bestimmt. Beispielsweise kann der
Wert, der 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, der 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 obenstehend
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, entfällt.
-
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, die 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 Festwert 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, die 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,
der beim VM-Austritt das Laden aller Universalregister in den Prozessor
steuert) zugeordnet sein.
-
Ein
Zustandsaktionsindikatorwert kann aus einem Wert bestimmt werden,
der 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, weist der VMM keine unmittelbare Steuerung über die Aktionen auf, die 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 gegenständliche
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. Wenn der
Prozessor sich 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
dem 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 (die
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. Wenn der Zustandsaktionsindikatorwert
anzeigt, daß das
betrachtete Element des Maschinenzustands aus der VMCS geladen werden muß, wird
bei 330 der Wert für
das Element des Maschinenzustands geladen und bei 335 in
das entsprechende betrachtete Element des Maschinenzustands installiert.
Wenn der Zustandsaktionsindikatorwert jedoch anzeigt, daß, wie bei 340 bestimmt,
das betrachtete Element des Maschinenzustands erzwungen werden muß, 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ß, so daß 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 dies 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 112 den Zustandsaktionsindikator für das betrachtete
Element des Maschinenzustands. Bei 420 untersucht der Prozessor 112 den
Zustandsaktionsindikator. Wenn der Zustandsaktionsindikator eine
Speicherung des betrachteten Elements des Maschinenzustands in der
VMCS erfordert, wird das betrachtete Element des Maschinenzustands
bei 430 in einem oder mehreren Feldern der VMCS gespeichert.
Wenn dies nicht der Fall ist, wird bei 440 der Zustandsaktionsindikatorwert
geprüft,
um zu bestimmen, ob ein Festwert in der VMCS gespeichert werden
muß, und
wenn 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 112 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.
-
Wenn
der Zustandsaktionsindikator bei 530 aus der VMCS erfaßt werden
muß, wird
bei 540 der Zustandsaktionsindikatorwert aus der VMCS geladen.
-
Wenn
der Zustandsaktionsindikator bei 550 dynamisch bestimmt
oder berechnet muß,
werden 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, die 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 denen diese Ansprüche
berechtigen, bestimmt werden.
-
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.