Algumas CPUs, como a AMD SVM-V e a série Intel Xeon 5500, oferecem suporte de hardware para virtualização de memória usando duas camadas de tabelas de página.

Observação: Neste tópico, "Memória" pode se referir a RAM física ou Memória persistente. ()

A primeira camada de tabelas de páginas armazena as traduções de virtual para físicas convidadas, enquanto a segunda camada de tabelas de páginas armazena a tradução de física para máquina convidada. O TLB (buffer de observação de tradução) é um cache de traduções mantidas pelo hardware da unidade de gerenciamento de memória (MMU) do processador. Uma falta de TLB é uma falta neste cache e o hardware precisa ir para a memória (possivelmente várias vezes) para encontrar a tradução necessária. Para uma falta de TLB para um determinado endereço virtual convidado, o hardware examina as duas tabelas de página para converter o endereço virtual convidado em endereço de máquina. A primeira camada de tabelas de páginas é mantida pelo sistema operacional guest. O VMM mantém apenas a segunda camada de tabelas de páginas.

Considerações de desempenho

Ao usar a assistência de hardware, você elimina a sobrecarga da virtualização de memória de software. Em particular, a assistência de hardware elimina a sobrecarga necessária para manter as tabelas de páginas de sombra em sincronização com as tabelas de páginas de convidados. No entanto, a latência de falta de TLB ao usar a assistência de hardware é significativamente maior. Por padrão, o hipervisor usa páginas grandes em modos assistidos por hardware para reduzir o custo de erros de TLB. Como resultado, se uma carga de trabalho se beneficia ou não usando a assistência de hardware depende principalmente da sobrecarga que a virtualização de memória causa ao usar a virtualização de memória de software. Se uma carga de trabalho envolver uma pequena quantidade de atividade da tabela de páginas (como a criação de processos, o mapeamento da memória ou as alternâncias de contexto), a virtualização de software não causará uma sobrecarga significativa. Por outro lado, cargas de trabalho com uma grande quantidade de atividade de tabela de páginas provavelmente se beneficiarão da assistência de hardware.

Por padrão, o hipervisor usa páginas grandes em modos assistidos por hardware para reduzir o custo de erros de TLB. O melhor desempenho é obtido com o uso de páginas grandes nas conversões de endereços de guest virtual para físico e guest para máquinas.

A opção LPage.LPageAlwaysTenteForNPT pode alterar a política para o uso de páginas grandes em conversões de endereço físico para máquina. Para obter mais informações, consulte Atributos avançados de memória.