La traduzione degli indirizzi di secondo livello (Second Level Address Translation - SLAT), nota anche come paginazione annidata, è una tecnologia di virtualizzazione assistita dall'hardware che consente di evitare il sovraccarico associato alla gestione software delle tabelle di pagina ombra da parte dell'hypervisor.

AMD supporta la SLAT tramite la tecnologia Rapid Virtualization Indexing (RVI) fin dall'introduzione dei processori di terza generazione Opteron (nome in codice Barcelona). L'implementazione della SLAT da parte di Intel, nota come Extended Page Table (EPT), è stata introdotta nella microarchitettura Nehalem presente in alcuni processori Core i7, Core i5 e Core i3.

Anche le estensioni di virtualizzazione dei processori ARM ricorrono alla SLAT, segmentando la gestione della memoria virtuale in due fasi. Il sistema guest utilizza un'unità di gestione della memoria (MMU) di Stage-1, mentre una MMU di Stage-2 gestisce le tabelle di pagina della memoria fisica del sistema host. Il supporto è stato aggiunto come opzione nell'architettura ARMv7ve ed è supportato anche nelle architetture ARMv8 (a 32 e 64 bit).

Panoramica

modifica

Nelle architetture x86 l'introduzione, a partire dal processore Intel 80286, della modalità protetta ha esteso anche alle architetture tradizionali i concetti di memoria fisica e memoria virtuale. Quando i processi utilizzano indirizzi virtuali e un'istruzione richiede l'accesso alla memoria, il processore traduce l'indirizzo virtuale in un indirizzo fisico utilizzando una tabella delle pagine o un buffer di traduzione lookaside (TLB). Quando si esegue un sistema virtuale, viene allocata la memoria virtuale del sistema host che funge da memoria fisica per il sistema guest, e lo stesso processo di traduzione degli indirizzi viene eseguito anche all'interno del sistema guest. Ciò aumenta il costo di accesso alla memoria poiché la traduzione degli indirizzi deve essere eseguita due volte. – una volta all'interno del sistema guest (utilizzando la tabella delle pagine guest emulata dal software) e una volta all'interno del sistema host (utilizzando la mappa fisica [pmap]).

Una tabella ombra realizzata via software è la soluzione comune per ridurre il sovraccarico computazionale derivante dalla doppia traduzione degli indirizzi di memoria. Le tabelle di pagina ombra traducono gli indirizzi di memoria virtuali del sistema guest direttamente in indirizzi fisici del sistema host. Ogni istanza guest ha una tabella ombra separata e l'hypervisor è responsabile della loro gestione. Sebbene il meccanismo delle tabelle di pagina ombra sia più veloce della doppia traduzione, è una tecnica comunque costosa rispetto all'esecuzione in una macchina non virtuale, in quanto ogni volta che il sistema guest aggiorna le proprie tabelle di memoria anche l'hypervisor è costretto a modificare le rispettive tabelle ombra per mantenere la sincronia con il guest.

Per rendere questa traduzione più efficiente, nei processori sono state implementate tecnologie costruttive chiamate appunto SLAT. Trattando ogni indirizzo fisico del sistema guest come un indirizzo virtuale del sistema host, una minima frazione dell'hardware utilizzato per leggere la struttura di una tabella non virtualizzata (ovvero la tabella di memoria paginata del sistema guest) può leggere anche la tabella delle pagine del sistema host. Con le tabelle multilivello, la tabella di memoria del sistema host può essere vista concettualmente come annidata all'interno della tabella di memoria del sistema guest. Un hardware dedicato per la lettura delle pagine di memoria può trattare lo strato di traduzione aggiuntivo quasi come se fossero altri livelli aggiunti alla tabella delle pagine.

Implementazioni

modifica

Rapid Virtualization Indexing

modifica

La Rapid Virtualization Indexing (RVI), che in fase di sviluppo veniva chiamata Nested Page Tables (NPT), è una tecnologia di virtualizzazione assistita da hardware di seconda generazione di AMD per le proprie unità di gestione della memoria (MMU).[1][2] La RVI è stata introdotao a partire dalla terza generazione di processori Opteron, nome in codice Barcelona.[3]

Uno studio di ricerca VMware ha scoperto che la RVI offre fino al 42% di guadagno in termini di prestazioni rispetto all'implementazione via software (tabella di pagine ombra).[4] Test condotti da Red Hat hanno mostrato un raddoppio delle prestazioni nell'esecuzione dei benchmark OLTP.[5]

Extended Page Tables

modifica

Extended Page Tables (EPT) è il nome che Intel ha dato alla tecnologia di virtualizzazione x86 di seconda generazione per le proprie unità di gestione della memoria (MMU). Il supporto EPT è presente, tra gli altri, nei processori Intel Core i3, Core i5, Core i7 e Core i9.[6] È presente anche in alcune CPU VIA più recenti. EPT è necessario per avviare un processore logico direttamente in modalità reale, una funzionalità chiamata "guest senza restrizioni" nel gergo Intel e introdotta nella microarchitettura Westmere.[7][8]

Secondo un documento valutativo di VMware, "EPT fornisce un guadagno di prestazioni fino al 48% per benchmark ad alta intensità d'uso della MMU, e fino al 600% per microbenchmark ad alta intensità d'uso della MMU", anche se in alcuni casi limite può effettivamente causare un'esecuzione del codice più lenta di un'implementazione software.

Tabelle delle pagine di fase 2

modifica

Il supporto delle tabelle delle pagine Stage-2 è presente nei processori ARM che implementano il livello di eccezione 2 (EL2).

Software che ne fanno uso

modifica

Gli hypervisor che supportano la SLAT includono:

Alcuni degli hypervisor sopra menzionati necessitano di SLAT per funzionare (non solo più velocemente) poiché non implementano tabelle di pagine ombra via software; l'elenco non è completamente aggiornato per riflettere questa situazione.

Vedi anche

modifica
  • AMD-V (nome in codice Pacifica) – prima generazione del supporto alla virtualizzazione hardware di AMD
  • VT-x

Riferimenti

modifica
  1. ^ (EN) Rapid Virtualization Indexing with Windows Server 2008 R2 Hyper-V | The Virtualization Blog, su blogs.amd.com, 23 marzo 2009. URL consultato il 16 maggio 2010 (archiviato dall'url originale il 13 novembre 2009).
  2. ^ (EN) AMD-V Nested Paging (PDF), su developer.amd.com, July 2008. URL consultato l'11 dicembre 2013 (archiviato dall'url originale il 24 maggio 2010).
  3. ^ (EN) VMware engineer praises AMD's Nested Page Tables, su searchservervirtualization.techtarget.com, 21 luglio 2008. URL consultato il 16 maggio 2010 (archiviato dall'url originale il 21 novembre 2009).
  4. ^ a b (EN) Performance Evaluation of AMD RVI Hardware Assist (PDF), su vmware.com. URL consultato il 16 maggio 2010 (archiviato dall'url originale il 26 febbraio 2015).
  5. ^ (EN) Red Hat Magazine | Red Hat Enterprise Linux 5.1 utilizes nested paging on AMD Barcelona Processor to improve performance of virtualized guests, su magazine.redhat.com, 20 novembre 2007. URL consultato il 16 maggio 2010 (archiviato dall'url originale il 10 marzo 2015).
  6. ^ (EN) Intel Virtualization Technology List, su ark.intel.com. URL consultato il 17 febbraio 2014 (archiviato dall'url originale il 15 gennaio 2016).
  7. ^ "Intel ha aggiunto la modalità guest senza restrizioni sulla microarchitettura Westmere e sulle CPU Intel successive; utilizza EPT per tradurre l'accesso all'indirizzo fisico del guest in indirizzo fisico dell'host. Con questa modalità, è consentito l'uso di VMENter senza abilitazione del paging."
  8. ^ (EN) Intel 64 and IA-32 Architectures Developer's Manual, Vol. 3C, su intel.com. URL consultato il 13 dicembre 2015 (archiviato dall'url originale il 23 dicembre 2015).
    «Se il controllo di esecuzione della VM "guest senza restrizioni" è 1, anche il controllo di esecuzione della VM "abilita EPT" deve essere 1.»
  9. ^ (EN) AMD-V Rapid Virtualization Indexing and Windows Server 2008 R2 Hyper-V Second Level Address Translation, su doingitvirtual.com:80. URL consultato il 16 maggio 2010 (archiviato dall'url originale il 23 ottobre 2009).
  10. ^ (EN) Bott, Does your PC have what it takes to run Windows 8's Hyper-V?, su zdnet.com, 8 dicembre 2011. URL consultato il 17 febbraio 2026.
  11. ^ (EN) Support & Drivers, su support.amd.com. URL consultato il 13 dicembre 2015 (archiviato dall'url originale il 22 febbraio 2012).
  12. ^ (EN) Hypervisor | Apple Developer Documentation, su developer.apple.com. URL consultato il 17 febbraio 2026.
  13. ^ (EN) Kernel Newbies: Linux 2 6 26, su kernelnewbies.org. URL consultato il 17 febbraio 2026.
  14. ^ (EN) Sheng Yang, Extending KVM with new Intel Virtualization technology (PDF), su linux-kvm.org, 12 giugno 2008. URL consultato il 17 marzo 2013 (archiviato dall'url originale il 26 maggio 2011).
  15. ^ (EN) Inc, KB Parallels: What's new in Parallels Desktop 5 for Mac, su kb.parallels.com. URL consultato il 12 aprile 2016 (archiviato dall'url originale il 31 marzo 2013).
  16. ^ (EN) Changelog for VirtualBox 2.0, su virtualbox.org (archiviato dall'url originale il 4 maggio 2012).
  17. ^ (EN) liz, VMware Workstation 14 Pro Release Notes, su docs.vmware.com. URL consultato il 19 novembre 2020 (archiviato dall'url originale il 29 settembre 2018).
  18. ^ (EN) Benchmarks: Xen 3.2.0 on AMD Quad-Core Opteron with RVI, su virtualization.info, 15 giugno 2008. URL consultato il 13 maggio 2011 (archiviato dall'url originale il 16 marzo 2013).
  19. ^ (EN) Hardware Compatibility List (HCL), su Qubes OS. URL consultato il 17 febbraio 2026.
  20. ^ (EN) FreeBSD as a Host with bhyve, su docs.freebsd.org. URL consultato il 17 febbraio 2026.
  21. ^ vmm(4) — virtual machine monitor
  22. ^ (EN) Features/VT-d - QEMU, su wiki.qemu.org. URL consultato il 17 febbraio 2026.
  23. ^ (EN) Hyper-V Enlightenments — QEMU documentation, su www.qemu.org. URL consultato il 17 febbraio 2026.
  24. ^ (EN) Add Intel VT-d nested translation [LWN.net], su lwn.net. URL consultato il 17 febbraio 2026.
  25. ^ (EN) Intel Virtualisation: How VT-x, KVM and QEMU Work Together, su Binary Debt, 14 ottobre 2018. URL consultato il 12 novembre 2023 (archiviato dall'url originale il 4 febbraio 2026).
  26. ^ (EN) Features/KVMNestedVirtualizationTestsuite - QEMU, su wiki.qemu.org. URL consultato il 17 febbraio 2026.
modifica
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica

📚 Artikel Terkait di Wikipedia

Nuove funzioni di Windows 10

Technica. URL consultato il 14 maggio 2016. ^ Windows Insider Preview: Nested Virtualization, su blogs.technet.com. URL consultato il 14 maggio 2016 (archiviato

Data integration

Services ParseKit (enigma.io) Paxata RapidMinder Studio Red Hat JBoss Data Virtualization. Community project: teiid. Azure Data Factory (ADF) SQL Server Integration