Pular para o conteúdo

Second-Level Address Translation

Referência de arquiteturaFeex

Second-Level Address Translation, SLAT, é um termo geral para tradução assistida por hardware de endereços físicos de convidado para endereços físicos de host. Intel EPT e AMD NPT fornecem implementações específicas de fornecedores.

O que você precisa saber

Second-Level Address Translation, SLAT, é um termo geral para tradução assistida por hardware de endereços físicos de convidado para endereços físicos de host. Intel EPT e AMD NPT fornecem implementações específicas de fornecedores.

Como funciona

As próprias tabelas de páginas de um convidado descrevem sua memória virtual. Um segundo mapeamento controlado pelo hipervisor associa os endereços físicos de convidado resultantes à memória do host e às permissões de acesso. O processador combina os estágios sob as regras de tradução e cache da arquitetura.

Onde é útil

Um hipervisor pode evitar a manutenção de algumas formas de tabelas de páginas sombra (shadow page tables) e, em vez disso, deixar o hardware realizar a varredura em estágios. A sobrecarga restante depende do tamanho da página, do cache de varredura aninhada, do comportamento da TLB e da localidade da memória do convidado.

Como verificar o suporte e a ativação

Identifique o fornecedor do processador e verifique a capacidade correspondente de EPT ou NPT por meio dos diagnósticos suportados pelo hipervisor. Verifique os requisitos completos do recurso que está sendo implantado, incluindo suporte de firmware e do SO.

Uma implantação virtualizada possui várias camadas: capacidade física, permissão do firmware, o hipervisor host ativo, capacidades expostas ao convidado e suporte do SO convidado. Verifique a camada em que a operação realmente é executada, incluindo virtualização aninhada quando relevante.

O que o recurso não estabelece

SLAT não é um bit universal separado de CPUID, um substituto para IOMMU ou prova de suporte para um produto específico de virtualização de SO. Um campo genérico SLAT precisa de uma interpretação específica do fornecedor e não estabelece todos os recursos avançados de tradução.

Compatibilidade e desempenho na prática

Execução de CPU, tradução de memória do convidado e remapeamento de DMA de dispositivos são recursos separados. Não deduza passagem direta ou isolamento a partir de um único campo de virtualização. Use os diagnósticos suportados do hipervisor e os requisitos exatos da plataforma/dispositivo.

Uma lista de verificação prática de verificação

  1. Registre o modelo exato do processador ou da plataforma e as versões envolvidas do aplicativo, SO e runtime. Mantenha o texto exato do erro ou requisito.
  2. Consulte a referência do fabricante para esse modelo exato e, em seguida, inspecione a capacidade efetiva e o estado ativado no ambiente em que o programa é executado.
  3. Compare cada requisito do binário ou backend selecionado. Um recurso com nome semelhante, alias ou rótulo genérico de tecnologia não é suficiente.
  4. Confirme se o aplicativo selecionou a implementação pretendida. Use seus diagnósticos documentados e um fallback suportado quando os requisitos não forem atendidos.
  5. Faça uma alteração suportada por vez e repita a mesma carga de trabalho. Mantenha a configuração original e o caminho de recuperação disponíveis.

Se o recurso estiver listado, mas o software não puder usá-lo

Comece pelo componente exato com falha. Um banco de dados de hardware descreve a capacidade registrada; o sistema operacional ou o hipervisor pode expor um ambiente efetivo diferente. Um erro de instrução ilegal também precisa de investigação da instrução falha real e da compilação do binário, porque corrupção ou uma instrução não suportada não relacionada pode produzir um sintoma semelhante.

Instale a versão do aplicativo, driver ou runtime suportada para a plataforma exata e use a compilação de linha de base ou fallback documentada do fornecedor, se necessário. Uma atualização de software não pode criar uma instrução que o processador não possui. As alterações de firmware e de política de segurança devem seguir o procedimento do fabricante do sistema e um plano de recuperação em vez de uma receita genérica de otimização.

Fontes e escopo desta explicação

Intel 64 and IA-32 Architectures Software Developer's Manual · AMD64 Architecture Programmer's Manual, Volume 2: System Programming

Essas referências estabelecem o comportamento arquitetural e os requisitos de software. Elas não verificam de forma independente cada valor de recurso em uma página de modelo de hardware vinculada. Para obter suporte a modelos, use a evidência do fabricante dessa página e verifique a configuração efetiva do sistema. Este artigo não fornece um benchmark, certificação ou data de análise independente.

Fontes e verificação

Propriedade editorial: Feex. Nenhuma data de revisão independente foi registrada. Como pesquisamos.

Este artigo foi útil?

Um sim ou não é suficiente. Escolha um motivo se desejar, ou adicione uma breve observação.

Este artigo foi útil?