Wie AMD und Intel CPUs virtualisieren

08.09.2005
Von 
Kriemhilde Klippstätter ist freie Autorin und Coach (SE) in München.

AMD hat bei seinen 64-Bit-Prozessoren den Memory-Controller auf der CPU platziert, Intel nicht. Deshalb können die zukünftigen AMD-Chips viele Virtualisierungsaufgaben per Hardware erledigen, die die Intel-Prozessoren relativ umständlich über Software ausführen müssen. Für die Steuerung des Hauptspeicherbedarfs sorgt die "Memory Management Unit" (MMU): Sie teilt den Programmen den gewünschten Hauptspeicher zu.

Sie sorgt dafür, dass sich die Programme nicht begegnen. Welches Programm tatsächlich welche Memory-Adresse nutzt, wird in das "CR3"-Register geschrieben. AMDs neue Technik der "Nested Page Tables" (NPT) virtualisiert dieses CR3-Register: Jedes Gast-Betriebssystem erhält sein eigenes Register. Im Endeffekt führt das dazu, dass jedes Programm sich in seiner geplanten Umgebung wähnt und nichts von der Virtualisierung spürt.

Die zweite Erweiterung, die Pacifica gegenüber Vanderpool bietet, ist der Device Exclusion Vector, der eng mit dem CR3-Register zusammenhängt. DEV schließt Devices vom Hauptspeicherzugriff aus, wenn sie nicht dazu autorisiert sind. Das muss sein, weil sonst Programme auf ein und denselben Speicherplatz zugreifen und sich gegenseitig überschreiben würden.

Damit sich Programmierer mit der neuen Technik schon vorab vertraut machen können, hat AMD mit "Sim Now" einen Pacifica-Simulator ins Netz gestellt. Das kostenlos verfügbare Programm soll dazu führen, dass gleich zum Start der neuen Prozessoren möglichst viel Software dafür angeboten wird.

Fazit

• Die Prozessorvirtualisierung stellt in jedem Fall einen Fortschritt gegenüber reinen softwarebasierenden Lösungen dar.

• Wegen der jeweils zugrunde liegenden x86-Architektur dürfte AMD im direkten Vergleich zu Intel dabei das geschicktere Konzept verfolgen.

• Spannend bleibt die Frage, wie die Virtualisierer auf Softwarebasis - VMware, Microsoft und Xen - darauf reagieren werden.