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.
Se questo articolo ti è piaciuto e vuoi rimanere sempre informato con le notizie di
BitCity.it iscriviti alla nostra
Newsletter gratuita.