La virtualizzazione di AMD

I processori di AMD e Intel da tempo offrono specifiche soluzioni dedicate alla virtualizzazione, implementate in hardware, che permettono di ottenere performance migliori rispetto alle soluzioni che usano solamente il software. Diamo uno sguardo all'implementazione di AMD.

Autore: Francesco Ferrari

Le tecnologie per facilitare al virtualizzazione integrate delle CPU di AMD e di Intel sono abbastanza simili fra loro, ma ci sono comunque delle differenze sia a livello di comandi che,  più in generale, nella modalità  di funzionamento.
L'implementazione di tecnologie in hardware  per facilitare la virtualizzazione consente di avere diversi vantaggi. Per esempio, uno dei componenti fondamentali per la virtualizzaizone, il VMM (Virtual Machine Monitor)  che permette fra l'altro il controllo su tutto l'hardware, in pratica può funzionare in modalità  host oppure root. Le virtual machine, invece, possono operare in modalità  guest, ma conservano le funzionalità  delle operazioni in modalità  kernel, cioè quella standard che si ritrova su un classico PC. In modalità  kernel, infatti, il sistema operativo ha un accesso diretto all'hardware, mentre le applicazioni possono accedere a queste risorse tramite il sistema operativo. Usando un sistema di  virtualizzazione solo  via software, invece, le macchine virtuali devono operare a un livello con meno privilegi, visto che devono sottostare al software di virtualizzazione. Questo si traduce in un dispendio di risorse elevato quando, per esempio, si devono eseguire accessi a basso livello sull'hardware. Potendo disporre di un sistema di virtualizzazione in hardware, invece, i sistemi operativi guest possono eseguire la maggior parte delle operazioni in kernel mode, evitando così il relativo dispendio di risorse.




[tit:La soluzione di AMD]


Il nome in codice della tecnologia di virtualizzazione di AMD è Pacifica, mentre quello ufficiale è Secure Virtual Machine (SVM) e permette, fra le altre cose, una più semplice gestione della memoria così che i diversi sistemi operativi non siano costretti ad accedere alle stesse aree di memoria.
Introdotta agli inizi del 2006, questa tecnologia utilizza una modalità  operativa del software VMM di tipo host. La modalità  operativa degli altri software, invece, è di tipo guest. L'avvio della virtualizzazione avviene con un apposito comando, mentre il controllo della macchina virtuale usa il comando VMRUN. In pratica con questo comando, equivalente quello VMLAUNCH nel sistema di virtualizzazione di Intel, si possono eseguire le istruzioni di una macchina virtuale, e, quando sono state completate oppure si giunge a un'istruzione di salto, il software VMM riprende il controllo della CPU. Per il controllo del VMM si usa il comando VMEXIT. Il funzionamento prevede l'esecuzione di diverse operazioni di salvataggio di stato tra i vari passaggi legati alla virtualizzazione.
Un'apposita area di memoria grande 4 Kbyte, chiamata da AMD Virtual Machine Control Block (VMCB) e analoga al VCMS di Intel, ospita le informazioni necessarie per le azioni delle varie macchine virtuali, come per esempio lo stato della CPU del sistema guest e i relativi valori dei registri. Per esempio, il funzionamento prevede che, al comando VMRUN, lo stato del sistema host venga salvato in una nuova area di memoria e, successivamente al passaggio dal sistema host a quello guest, nello spazio del VMCB sia salvato lo stato del processore della macchina virtuale e ripristinato quello precedente.

Tra le tecnologie per la virtualizzazione utilizzate da AMD nei più recenti Opteron quad core c'è quella chiamata Rapid Virtualization Indexing che permette alle virtual machine di gestire più direttamente la memoria per migliorare le prestazioni tramite una riduzione dei cicli necessari all'Hypervisor. Questa tecnologia permette anche di ridurre del 25% i tempi di passaggio da una virtual machine all'altra. Anche il Tagged Translation Look-Aside Buffer (TLB) è stato ottimizzato per ridurre i tempi necessari allo switch tra una virtual machine e l'altra, conservando la mappa degli spazi di memoria di ogni virtual machine. Il Device Exclusion Vector (DEV), invece, gestisce il traffico controllando gli accessi alla memoria delle virtual machine, isolandole per assicurare una maggiore sicurezza delle operazioni. Questo controllo è realizzato in hardware in modo da migliorare l'efficienza, e crea dei domini protetti di memoria a cui concedere o negare l 'accesso a seconda delle richieste di device esterni come hard disk e controller di rete.

Visualizza la versione completa sul sito

Informativa
Questo sito o gli strumenti terzi da questo utilizzati si avvalgono di cookie necessari al funzionamento ed utili alle finalità illustrate nella cookie policy. Se vuoi saperne di più o negare il consenso a tutti o ad alcuni cookie, consulta la cookie policy. Chiudendo questo banner, acconsenti all’uso dei cookie.