AMD Pacifica: Virtualisierung von CPU & Speicher

SVM-Operationen

AMD unterstützt die Virtualisierung auf Prozessorebene durch eine neue Form von CPU-Operationen mit der Bezeichnung SVM (Secure Virtual Machine). VM-Software wie beispielsweise VMware Workstation arbeiten dabei weiterhin im „normalen“ Prozessormodus. AMD bezeichnet diesen Host auch als Virtual Machine Monitor VMM oder Hypervisor. Der VMM/Hypervisor besitzt die volle Kontrolle über den Prozessor und die übrige Hardware des PCs. Die virtuellen Maschinen beziehungsweise die Gast-Software arbeiten im neuen CPU-Mode „Guest“.

Ein VMM kann den Prozessor durch den SVM-Befehl „VMRUN“ veranlassen, im Guest-Modus zu arbeiten. Dabei ist der VMRUN-Befehl nur im CPL-0-Ring verfügbar. Der Übergang zurück aus dem Guest-Modus erfolgt mit "#VMEXIT“. Die Funktionalität eines Pacifica-Prozessors im normalen Betriebsmodus entspricht dabei einer CPU ohne SVM-Unterstützung. Der Unterschied einer Pacifica-CPU liegt in den zusätzlich verfügbaren SVM-Befehlen. Das Verhalten des Prozessors im Guest-Modus lässt sich durch SVM kontrollieren. So verursachen bestimmte Befehle oder Situationen einen #VMEXIT.

Dabei ist es für Gast-Software nicht möglich, seinen Betrieb im Guest-Modus zu erkennen. Durch SVM behält der Hypervisor auch die Kontrolle über VM-Software, die mit CPL 0 arbeitet. Mit SVM besitzt der VMM einfach ausgedrückt einen höheren "Privilege Level" als CPL 0. Diese Fähigkeit erleichtert die Programmierung eines VMM, weil die Gast-Software stets in dem "Privilege Level" arbeiten kann, für die sie entwickelt wurde.