Second-level address translation (SLAT)

Second-level address translation (SLAT) is een hardware-virtualisatietechnologie die de hypervisor-overhead vermindert.

Daartoe pakt SLAT de inefficiënties aan die gepaard gaan met het opzoeken van gevirtualiseerde geheugenadressen in softwareschaduwvolumes. De technologie bestaat als een CPU-functie: een toegevoegde TLB (translation lookaside buffer) die een in real-time bijgewerkte cache bevat van gevirtualiseerde geheugenadressen en hun overeenkomstige fysieke adressen.

Virtualisatie is een kerntechnologie voor veel datacenters, maar de softwarelaag die door een hypervisor wordt geïntroduceerd, brengt een computeroverhead met zich mee die de voor virtuele machines (VM's) beschikbare resources beperkt. Fysieke computerresources moeten aan VM's worden gepresenteerd als gevirtualiseerde resources - dit is de essentie van abstractie, waarmee werklasten worden afgeschermd van de onderliggende computerhardware. Wanneer SLAT wordt gebruikt in plaats van een standaard look-up, is de prestatie beter omdat het geheugenadres op de processor wordt opgeslagen. De latentie is lager en het systeem hoeft maar één keer het geheugen op te zoeken in plaats van twee keer.

Als geheugen in een gevirtualiseerd systeem wordt aangesproken, worden waarden waarnaar wordt verwezen aan SLAT toegevoegd. De TLB bevat recente paginatabel toewijzingen die door de hypervisor zijn gegenereerd. Wanneer een virtueel-naar-fysiek adres vertaling wordt gevraagd, vraagt de hypervisor de TLB om mapping informatie. Als er een overeenkomst is, wordt het fysieke adres teruggegeven aan de hypervisor - zonder de geheugen- en CPU-resources die nodig zouden zijn voor de vertaling. Dit is het "tweede niveau" van adresvertaling. Als er geen overeenkomst is, controleert de hypervisor de traditionele paginatabel en voert hij de normale adresvertaling uit. De hypervisor slaat de nieuwe vertaling vervolgens op in de TLB voor toekomstige verwijzing. 

Zowel Intel als AMD ondersteunen SLAT. Core i3, i5 en i7 ondersteunen allemaal wat Intel hun technologie noemt: extended page table (EPT). AMD processoren omvatten SLAT sinds hun Barcelona-architectuur. AMD noemt hun SLAT rapid virtualization indexing (RVI). Beiden bieden prestatieverbeteringen tot zo'n 40 procent in zware virtualisatiesituaties en zelfs tot 600 procent in micro-benchmarks.

Er zijn een aantal hypervisors die SLAT ondersteunen, waaronder KVM 2.6.26, VirtualBox 2 (en later), Vmware ESX 3.5 (en later), Xen 3.2.0 (en later). Bhyve en op Windows 8 gebaseerde systemen ondersteunen SLAT niet alleen, maar vereisen het.