19.05.2013 Views

Facoltà di Ingegneria Tesi di laurea ANALISI DELLE TECNOLOGIE ...

Facoltà di Ingegneria Tesi di laurea ANALISI DELLE TECNOLOGIE ...

Facoltà di Ingegneria Tesi di laurea ANALISI DELLE TECNOLOGIE ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

host al primo livello della gPT. Nella figura, l’in<strong>di</strong>rizzo in CR3, attraverso il nested<br />

walk, passa da in<strong>di</strong>rizzo fisico guest a in<strong>di</strong>rizzo fisico host che punta al primo livello<br />

della gPT (da gCR3 a gPML4E);<br />

l’hardware legge la gPML4E (la guest Page Map Level-4 Entry), che, ancora, ha un<br />

in<strong>di</strong>rizzo fisico guest da tradurre in in<strong>di</strong>rizzo host: attraverso un nested walk si ottiene<br />

il livello successivo della page table guest (gPDPE);<br />

così via, si percorrono i livelli della gPT fino all’ultimo; la gPTE punta a un in<strong>di</strong>rizzo<br />

fisico guest X, che viene tradotto in in<strong>di</strong>rizzo fisico <strong>di</strong> sistema Y. Il page walker<br />

riempie la TLB con la entry appropriata (V,Y) e riprende l’esecuzione del guest, il<br />

tutto senza intervento dell’hypervisor.<br />

I processori AMD che supportano il nested paging usano la stessa TLB per memorizzare le<br />

traduzioni, sia se il processore si trovi nel Guest Mode, sia se si trovi nell’Host Mode: nel<br />

primo caso la TLB mappa gli in<strong>di</strong>rizzi virtuali guest in in<strong>di</strong>rizzi fisici <strong>di</strong> sistema, nel secondo<br />

caso, invece, mappa gli in<strong>di</strong>rizzi virtuali host in in<strong>di</strong>rizzi fisici <strong>di</strong> sistema. Inoltre, i processori<br />

AMD sono dotati <strong>di</strong> una nuova tabella, la Nested TLB (NTLB), che memorizza le traduzioni<br />

da in<strong>di</strong>rizzi guest-physical a in<strong>di</strong>rizzi system-physical, per accelerare il percorso della nested<br />

page table.<br />

A <strong>di</strong>fferenza dello shadow paging, che richiede all’hypervisor <strong>di</strong> conservare una sPT per ogni<br />

gPT, un hypervisor che sfutta il Nested Paging può creare una singola nPT per mappare<br />

l’intero spazio <strong>di</strong> in<strong>di</strong>rizzamento del guest: in questo modo si impiega meno memoria rispetto<br />

all’implementazione equivalente con la tecnica <strong>di</strong> shadow paging.<br />

Il Nested Paging, come abbiamo visto, elimina gli overhead legati alla virtualizzazione<br />

software-only, introducendo un livello <strong>di</strong> traduzione in più. Questo, però, determina un costo<br />

maggiore per le TLB miss (rispetto alle TLB miss del paging non-nested), perché il page<br />

walker deve percorrere simultaneamente la gPT e la nPT per tradurre un in<strong>di</strong>rizzo.<br />

61

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!