Second-Level Address Translation
Second-Level Address Translation, SLAT, es un término general para la traducción asistida por hardware de direcciones físicas de invitado a direcciones físicas de host. Intel EPT y AMD NPT proporcionan implementaciones específicas de cada fabricante.
Lo que necesita saber
Second-Level Address Translation, SLAT, es un término general para la traducción asistida por hardware de direcciones físicas de invitado a direcciones físicas de host. Intel EPT y AMD NPT proporcionan implementaciones específicas de cada fabricante.
Cómo funciona
Las propias tablas de páginas de un invitado describen su memoria virtual. Una segunda asignación controlada por el hipervisor asocia las direcciones físicas de invitado resultantes con la memoria del host y los permisos de acceso. El procesador combina las etapas según las reglas de traducción y almacenamiento en caché de la arquitectura.
Dónde resulta útil
Un hipervisor puede evitar mantener ciertas formas de tablas de páginas en sombra y, en su lugar, dejar que el hardware realice el recorrido por etapas. La sobrecarga restante depende del tamaño de página, del almacenamiento en caché del recorrido anidado, del comportamiento del TLB y de la localidad de memoria del invitado.
Cómo comprobar la compatibilidad y la habilitación
Identifique el fabricante del procesador y compruebe la capacidad correspondiente de EPT o NPT a través de los diagnósticos admitidos por el hipervisor. Verifique todos los requisitos de la característica que se vaya a desplegar, incluido el soporte de firmware y del SO.
Un despliegue virtualizado consta de varios niveles: capacidad física, permisos del firmware, hipervisor anfitrión activo, capacidades expuestas al huésped y compatibilidad con el sistema operativo huésped. Compruebe el nivel donde se ejecuta realmente la operación, incluida la virtualización anidada cuando corresponda.
Lo que la función no establece
SLAT no es un bit de CPUID universal independiente, un sustituto de IOMMU ni una prueba de compatibilidad con un producto de virtualización de SO específico. Un campo genérico de SLAT requiere una interpretación específica del fabricante y no garantiza la presencia de todas las funciones avanzadas de traducción.
Compatibilidad y rendimiento en la práctica
La ejecución de la CPU, la traducción de memoria del huésped y la reasignación DMA de dispositivos son mecanismos independientes. No deduzca el passthrough o el aislamiento a partir de un único campo de virtualización. Utilice las herramientas de diagnóstico compatibles del hipervisor y los requisitos exactos de la plataforma/dispositivo.
Lista de comprobación práctica para la verificación
- Registre el modelo exacto de procesador o plataforma, así como las versiones de la aplicación, el sistema operativo y el entorno de ejecución involucrados. Conserve la redacción del error o requisito real.
- Consulte la referencia del fabricante para ese modelo exacto y, a continuación, inspeccione la capacidad efectiva y el estado habilitado en el entorno donde se ejecuta el programa.
- Compare cada requisito del binario o backend seleccionado. Una función con nombre similar, un alias o una etiqueta de tecnología general no son suficientes.
- Confirme que la aplicación haya seleccionado la implementación prevista. Utilice sus diagnósticos documentados y una alternativa compatible cuando no se cumplan los requisitos.
- Realice un cambio admitido a la vez y repita la misma carga de trabajo. Mantenga disponibles la configuración original y la vía de recuperación.
Si la función aparece listada pero el software no puede usarla
Comience con el componente exacto que falla. Una base de datos de hardware describe la capacidad registrada; el sistema operativo o el hipervisor pueden exponer un entorno efectivo diferente. Un error de instrucción no válida también requiere investigar la instrucción que generó el fallo y la compilación del binario en sí, ya que la corrupción o una instrucción no compatible no relacionada pueden producir un síntoma similar.
Instale la versión de la aplicación, controlador o entorno de ejecución compatible con la plataforma exacta, y utilice la compilación de referencia o de contingencia documentada por el fabricante si es necesario. Una actualización de software no puede crear una instrucción de la que el procesador carece. Los cambios de firmware y directivas de seguridad deben seguir el procedimiento del fabricante del sistema y un plan de recuperación, en lugar de una fórmula de optimización genérica.
Fuentes y alcance de esta explicación
Intel 64 and IA-32 Architectures Software Developer's Manual · AMD64 Architecture Programmer's Manual, Volume 2: System Programming
Estas referencias establecen el comportamiento arquitectónico y los requisitos de software. No verifican de forma independiente cada valor de función en la página de un modelo de hardware vinculado. Para conocer la compatibilidad de un modelo, consulte las pruebas del fabricante en dicha página y compruebe la configuración efectiva del sistema. Este artículo no proporciona una prueba de rendimiento, certificación ni fecha de revisión independiente.
Fuentes y verificación
Titularidad editorial: Feex. No se registra ninguna fecha de revisión independiente. Cómo investigamos.
- Intel 64 and IA-32 Architectures Software Developer's Manual · Los volúmenes 1 y 2 describen las familias de instrucciones designadas y CPUID; el volumen 3 describe el estado, la paginación, VMX y los controles de protección. La documentación de la arquitectura no establece la compatibilidad con un modelo en particular.
- AMD64 Architecture Programmer's Manual, Volume 2: System Programming · Programación de sistemas, SVM y traducción anidada, revisión 3.46. El visor de documentación actual requiere JavaScript; es posible que las URL de documentos más antiguos se hayan retirado.
¿Fue útil este artículo?
Un sí o un no es suficiente. Elija un motivo si lo desea o agregue una breve nota.
Gracias. Eso nos ayuda a mejorar esta página.