Tradução de endereços de segundo nível (SLAT)

Tradução de endereços de segundo nível (SLAT) é uma tecnologia de virtualização de hardware que reduz o hypervisor overhead.

Para fazer isso, o SLAT aborda as ineficiências associadas à procura de endereços de memória virtualizados em volumes de sombras de software. A tecnologia existe como um recurso de CPU: um buffer de tradução adicional (TLB) que contém um cache atualizado em tempo real de endereços de memória virtualizada e seus correspondentes endereços físicos.

Virtualização é uma tecnologia central para muitos centros de dados, mas a camada de software introduzida por um hypervisor impõe uma sobrecarga de computação que reduz os recursos disponíveis para máquinas virtuais (VMs). Os recursos de computação física devem ser apresentados às VMs como recursos virtualizados -- esta é a essência da abstração, que isola as cargas de trabalho do hardware de computação subjacente. Quando recuperado do SLAT em vez de através de uma operação padrão de look-up, o desempenho é melhorado porque o endereço de memória é armazenado no processador. A latência é reduzida e o sistema só passa por uma operação de look-up de memória em vez de duas.

Como a memória é endereçada em um sistema virtualizado, os valores referenciados são adicionados ao SLAT. A TLB contém mapeamentos de tabelas de páginas recentes geradas pelo hipervisor. Quando uma tradução de endereço virtual para físico é solicitada, o hypervisor consulta a TLB para informações de mapeamento. Se houver uma correspondência, o endereço físico é devolvido ao hypervisor -- sem os recursos de memória e CPU  isso seria necessário para a tradução. Este é o "segundo nível" de tradução de endereços. Se não houver uma correspondência, o hypervisor verifica a tabela de páginas tradicional e executa a tradução normal do endereço. O hypervisor então salvará a nova tradução na TLB para referência futura. 

Both Intel e AMD suportam SLAT. Core i3, i5 e i7 todos suportam o que a Intel chama de sua tecnologia: tabela de páginas estendida (EPT). Os processadores AMD incluem SLAT desde sua arquitetura de Barcelona. A AMD chama seu SLAT de indexação rápida de virtualização (RVI). Ambos podem oferecer aumentos de desempenho de até cerca de 40% em situações de virtualização pesada e até 600% em micro benchmarks.

Existem vários hypervisors que suportam SLAT, incluindo KVM 2.6.26, VirtualBox 2 (e posteriores), Vmware ESX 3.5 (e posteriores), Xen 3.2.0 (e posteriores). Os sistemas baseados em Bhyve e Windows 8 não só suportam SLAT, mas requerem-no.