Traduzione degli indirizzi di secondo livello (SLAT)

La traduzione degli indirizzi di secondo livello (SLAT) è una tecnologia di virtualizzazione hardware che riduce il sovraccarico dell'hypervisor.

A tal fine, SLAT risolve le inefficienze associate alla ricerca degli indirizzi di memoria virtualizzata nei volumi shadow del software. La tecnologia esiste come una funzionalità della CPU: un buffer TLB (Translation Lookaside Buffer) aggiunto che contiene una cache aggiornata in tempo reale degli indirizzi di memoria virtualizzata e dei corrispondenti indirizzi fisici.

La virtualizzazione è una tecnologia fondamentale per molti data center, ma il livello software introdotto da un hypervisor impone un sovraccarico di elaborazione che riduce le risorse disponibili per le macchine virtuali (VM). Le risorse di elaborazione fisica devono essere presentate alle VM come risorse virtualizzate: questa è l'essenza dell'astrazione, che isola i carichi di lavoro dall'hardware di elaborazione sottostante. Quando viene recuperato da SLAT anziché tramite un'operazione di ricerca standard, le prestazioni sono migliorate perché l'indirizzo di memoria è memorizzato sul processore. La latenza è ridotta e il sistema esegue solo un'operazione di ricerca della memoria anziché due.

Poiché la memoria viene indirizzata in un sistema virtualizzato, i valori a cui si fa riferimento vengono aggiunti a SLAT. Il TLB contiene le recenti mappature della tabella delle pagine generate dall'hypervisor. Quando viene richiesta una traduzione dell'indirizzo da virtuale a fisico, l'hypervisor interroga il TLB per informazioni sulla mappatura. Se c'è una corrispondenza, l'indirizzo fisico viene restituito all'hypervisor, senza la memoria e le risorse della CPU che sarebbero necessarie per la traduzione. Questo è il "secondo livello" della traduzione degli indirizzi. Se non c'è corrispondenza, l'hypervisor controlla la tradizionale tabella delle pagine ed esegue la normale traduzione degli indirizzi. L'hypervisor salverà quindi la nuova traduzione nel TLB per riferimento futuro. 

Sia Intel che AMD supportano SLAT. Core i3, i5 e i7 supportano tutti quella che Intel chiama la loro tecnologia: Extended Page Table (EPT). I processori AMD includono SLAT sin dalla loro architettura di Barcellona. AMD chiama la loro SLAT rapid virtualization indexing (RVI). Entrambi possono offrire aumenti delle prestazioni fino a circa il 40% in situazioni di virtualizzazione pesante e persino fino al 600% in micro benchmark.

Esistono numerosi hypervisor che supportano SLAT, tra cui KVM 2.6.26, VirtualBox 2 (e successivo), Vmware ESX 3.5 (e successivo), Xen 3.2.0 (e successivo). I sistemi basati su Bhyve e Windows 8 non solo supportano SLAT, ma lo richiedono.