Einige CPUs, wie z. B. AMD SVM-V und die Intel Xeon 5500-Serie, ermöglichen durch die Verwendung von zwei Seitentabellenebenen eine Hardwareunterstützung für die Arbeitsspeichervirtualisierung.

In der ersten Ebene der Seitentabellen sind die V2P-Übertragungen (Virtual-To-Physical) gespeichert, während in der zweiten Ebene die Speichertabellen die P2M-Übertragungen (Physical-To-Machine) gespeichert werden. Der TLB (Translation Look-aside Buffer) ist ein Cache für Übersetzungen, der von der MMU-Hardware des Prozessors verwaltet wird. Eine fehlgeschlagene TLB-Suche bedeutet, dass bestimmte Informationen nicht in diesem Cache vorhanden sind. In diesem Fall muss die Hardware (möglicherweise viele Male) auf den Arbeitsspeicher zugreifen, um die erforderliche Übersetzung zu finden. Wenn eine bestimmte virtuelle Gastadresse nicht im TLB vorhanden ist, werden von der Hardware beide Seitentabellen berücksichtigt, um die virtuelle Gastadresse in die physische Hostadresse zu übersetzen.

Das Diagramm veranschaulicht die Implementierung der Arbeitsspeichervirtualisierung bei ESXi.

Abbildung 1. Arbeitsspeicherzuordnung bei ESXi


Diese Abbildung veranschaulicht die Implementierung der Arbeitsspeichervirtualisierung.

  • Durch die Kästchen werden Seiten dargestellt; die Pfeile veranschaulichen die verschiedenen Arbeitsspeicherzuordnungen.

  • Die Pfeile vom virtuellen Arbeitsspeicher des Gasts zum physischen Arbeitsspeicher des Gasts zeigen die durch die Seitentabellen des Gastbetriebssystems gepflegte Zuordnung. (Die Zuordnung vom virtuellen Arbeitsspeicher zum linearen Arbeitsspeicher für Prozessoren mit x86-Architektur ist nicht dargestellt).

  • Die Pfeile vom physischen Arbeitsspeicher des Gasts zum Maschinenarbeitsspeicher stellen die durch den VMM gepflegte Zuordnung dar.

  • Die gestrichelten Pfeile zeigen die Zuordnung vom virtuellen Arbeitsspeicher des Gasts zum Maschinenarbeitsspeicher in den Schattenseitentabellen, die ebenfalls durch den VMM gepflegt werden. Der zugrunde liegende Prozessor, der die virtuelle Maschine ausführt, verwendet die Zuordnungen in der Schattenseitentabelle.

Aufgrund der mit der Virtualisierung einhergehenden zusätzlichen Ebene der Arbeitsspeicherzuordnung kann mit ESXi eine effektive Arbeitsspeicherverwaltung für alle virtuellen Maschinen umgesetzt werden. Ein Teil des physischen Arbeitsspeichers einer virtuellen Maschine könnte dabei gemeinsam genutzten Seiten, nicht zugeordneten Seiten oder ausgelagerten Seiten zugeordnet werden.

Ein Host führt die virtuelle Arbeitsspeicherverwaltung aus, ohne dass das Gastbetriebssystem darüber informiert ist und ohne Einfluss auf das eigene Subsystem der Arbeitsspeicherverwaltung im Gastbetriebssystem.

Überlegungen zur Leistung

Wenn Sie die Hardwareunterstützung verwenden, wird dadurch der Overhead für die softwarebasierte Arbeitsspeichervirtualisierung eliminiert. Insbesondere beseitigt die Hardwareunterstützung den Overhead, der für die Synchronisierung der Schattenseitentabellen mit Gastseitentabellen benötigt wird. Die TLB-Fehlerlatenz bei Verwendung der Hardwareunterstützung ist jedoch deutlich höher. Ob eine Arbeitslast die Hardwareunterstützung zum Vorteil nutzen kann oder nicht, hängt demnach vom Overhead ab, der durch die Arbeitsspeichervirtualisierung bei Verwendung einer softwarebasierten Arbeitsspeichervirtualisierung verursacht wird. Wenn eine Arbeitslast eine geringe Menge an Seitentabellenaktivität umfasst (wie Prozesserstellung, Arbeitsspeicherzuordnung oder Kontext-Switches), verursacht die softwarebasierte Virtualisierung keinen erheblichen Overhead. Umgekehrt ist es wahrscheinlich, dass Arbeitslasten mit einem großen Anteil an Seitentabellenaktivität von der Hardwareunterstützung profitieren.