Segundo Traducción de Direcciones de Nivel ( LAMA ), también conocido como paginación anidada , es una virtualización asistida por hardware la tecnología que hace posible evitar la sobrecarga asociada con el software gestionados tablas de páginas sombra .
AMD ha admitido SLAT a través de la tecnología Rapid Virtualization Indexing (RVI) desde la introducción de sus procesadores Opteron de tercera generación (nombre en clave Barcelona). La implementación de Intel de SLAT, conocida como Extended Page Table (EPT), se introdujo en la microarquitectura Nehalem que se encuentra en ciertos procesadores Core i7 , Core i5 y Core i3 .
Las extensiones de virtualización de ARM admiten SLAT, conocidas como tablas de páginas Stage-2 proporcionadas por una MMU Stage-2 . El invitado usa la MMU Stage-1. El soporte se agregó como opcional en la arquitectura ARMv7ve y también es compatible con las arquitecturas ARMv8 (32 bits y 64 bits).
Descripción general
Los procesadores modernos utilizan los conceptos de memoria física y memoria virtual ; los procesos en ejecución utilizan direcciones virtuales y cuando una instrucción solicita acceso a la memoria, el procesador traduce la dirección virtual a una dirección física mediante una tabla de páginas o un búfer de traducción al lado (TLB). Cuando se ejecuta un sistema virtual, se ha asignado memoria virtual del sistema host que sirve como memoria física para el sistema invitado, y el mismo proceso de traducción de direcciones continúa también dentro del sistema invitado. Esto aumenta el costo del acceso a la memoria, ya que la traducción de la dirección debe realizarse dos veces: una vez dentro del sistema invitado (usando la tabla de páginas de sombra emulada por software ) y una vez dentro del sistema host (usando la tabla de páginas de hardware).
Para hacer esta traducción más eficiente, los proveedores de procesadores implementaron tecnologías comúnmente llamadas SLAT. Al tratar cada dirección física de invitado como una dirección virtual de host, una pequeña extensión del hardware utilizado para recorrer una tabla de páginas no virtualizadas (ahora la tabla de páginas de invitados) puede recorrer la tabla de páginas de host. Con las tablas de páginas de varios niveles, la tabla de páginas de host se puede ver conceptualmente como anidada dentro de la tabla de páginas de invitados. Un caminante de tabla de páginas de hardware puede tratar la capa de traducción adicional casi como agregar niveles a la tabla de páginas.
Utilizando SLAT y tablas de páginas multinivel, la cantidad de niveles necesarios para recorrer para encontrar la traducción se duplica cuando la dirección física del invitado es del mismo tamaño que la dirección virtual del invitado y se utilizan páginas del mismo tamaño. Esto aumenta la importancia de almacenar en caché los valores de los niveles intermedios de las tablas de la página del host y del invitado. También es útil utilizar páginas grandes en las tablas de páginas de host para reducir el número de niveles (por ejemplo, en x86-64, el uso de páginas de 2 MB elimina un nivel en la tabla de páginas). Dado que la memoria se asigna normalmente a las máquinas virtuales con una granularidad aproximada, el uso de páginas grandes para la traducción física de invitados es una optimización obvia, lo que reduce la profundidad de las búsquedas y la memoria necesaria para las tablas de páginas del host.
Implementaciones
Indexación rápida de virtualización
La indexación rápida de virtualización (RVI), conocida como tablas de páginas anidadas (NPT) durante su desarrollo, es una tecnología de virtualización asistida por hardware de segunda generación de AMD para la unidad de gestión de memoria del procesador (MMU). [1] [2]
Un artículo de investigación de VMware encontró que RVI ofrece hasta un 42% de ganancias en el rendimiento en comparación con la implementación de solo software (tabla de páginas paralelas). [3] Las pruebas realizadas por Red Hat mostraron una duplicación del rendimiento de los puntos de referencia OLTP . [4]
RVI se introdujo en la tercera generación de procesadores Opteron , nombre en clave Barcelona . [5]
Tablas de páginas extendidas
Extended Page Tables (EPT) es una tecnología de virtualización x86 de segunda generación de Intel para la unidad de gestión de memoria (MMU). El soporte EPT se encuentra en las CPU Intel Core i3 , Core i5 , Core i7 y Core i9 , entre otras. [6] También se encuentra en algunas CPU VIA más nuevas .
Se requiere EPT para lanzar un procesador lógico directamente en modo real , una característica llamada "invitado sin restricciones" en la jerga de Intel, e introducida en la microarquitectura de Westmere . [7] [8]
Según un documento de evaluación de VMware: "EPT proporciona ganancias de rendimiento de hasta un 48% para los puntos de referencia intensivos en MMU y hasta un 600% para los microbenchmarks intensivos en MMU", aunque en realidad puede hacer que el código se ejecute más lento que una implementación de software en algún rincón. casos . [9]
Tablas de página de la etapa 2
El soporte de tabla de páginas de la etapa 2 está presente en los procesadores ARM que implementan el nivel de excepción 2 (EL2).
Soporte en software
Los hipervisores que admiten SLAT incluyen los siguientes:
- Hyper-V para Windows Server 2008 R2 , Windows 8 y versiones posteriores. [10] El Hyper-V de Windows 8 (y posterior de Microsoft Windows) en realidad requiere SLAT. [11] [12]
- Hypervisor.framework, un hipervisor nativo de macOS , disponible desde macOS 10.10 [13]
- KVM , desde la versión 2.6.26 de la línea principal del kernel de Linux [14] [15]
- Parallels Desktop para Mac , desde la versión 5 [16]
- VirtualBox , desde la versión 2.0.0 [17]
- VMware ESX , desde la versión 3.5 [3]
- Estación de trabajo VMware . VMware Workstation 14 (y VMware Workstation posterior) realmente requiere SLAT. [18]
- Xen , desde la versión 3.2.0 [19]
- Qubes OS - SLAT obligatorio [20]
- bhyve [21] [22] - SLAT obligatorio y programado para seguir siendo obligatorio
- vmm, un hipervisor nativo en OpenBSD - SLAT obligatorio [23] [24]
- ACRN , un hipervisor liviano de código abierto, construido teniendo en cuenta el tiempo real y la seguridad crítica, optimizado para usos de IoT y Edge. [25]
Algunos de los hipervisores anteriores realmente requieren SLAT para funcionar (no solo más rápido) ya que no implementan una tabla de páginas de sombra de software; la lista no está completamente actualizada para reflejar eso.
Ver también
- AMD-V (nombre en clave Pacifica): el soporte de virtualización de hardware AMD de primera generación
- Tabla de páginas
- VT-x
Referencias
- ^ "Indexación de virtualización rápida con Windows Server 2008 R2 Hyper-V | El blog de virtualización" . Blogs.amd.com. 2009-03-23 . Consultado el 16 de mayo de 2010 .
- ^ "Paginación anidada AMD-V" (PDF) . Julio de 2008. Archivado desde el original (PDF) el 2012-09-05 . Consultado el 11 de diciembre de 2013 .
- ^ a b "Evaluación de rendimiento de AMD RVI Hardware Assist" (PDF) . Consultado el 16 de mayo de 2010 .
- ^ "Red Hat Magazine | Red Hat Enterprise Linux 5.1 utiliza paginación anidada en el procesador AMD Barcelona para mejorar el rendimiento de los invitados virtualizados" . Magazine.redhat.com. 2007-11-20 . Consultado el 16 de mayo de 2010 .
- ^ "El ingeniero de VMware elogia las tablas de páginas anidadas de AMD" . Searchservervirtualization.techtarget.com. 2008-07-21 . Consultado el 16 de mayo de 2010 .
- ^ "Lista de tecnología de virtualización de Intel" . Ark.intel.com . Consultado el 17 de febrero de 2014 .
- ^ "Intel agregó el modo invitado sin restricciones en la microarquitectura Westmere y las CPU Intel posteriores, utiliza EPT para traducir el acceso de la dirección física del invitado a la dirección física del host. Con este modo, se permite VMEnter sin habilitar la paginación".
- ^ "Manual del desarrollador de arquitecturas Intel 64 e IA-32, Vol. 3C" (PDF) . Intel . Consultado el 13 de diciembre de 2015 .
Si el control de ejecución de VM 'invitado sin restricciones' es 1, el control de ejecución de VM 'habilitar EPT' también debe ser 1.
- ^ Evaluación de rendimiento de Intel EPT Hardware Assist
- ^ "Indexación de virtualización rápida AMD-V y traducción de direcciones de segundo nivel de Windows Server 2008 R2 Hyper-V" . Haciéndolo virtual . Consultado el 16 de mayo de 2010 .
- ^ Bott, Ed (8 de diciembre de 2011). "¿Su PC tiene lo necesario para ejecutar Hyper-V de Windows 8?" . ZDNet . Consultado el 17 de febrero de 2014 .
- ^ "Soporte y controladores" . Consultado el 13 de diciembre de 2015 .
- ^ "Hypervisor | Documentación para desarrolladores de Apple" .
- ^ "Kernel Newbies: Linux 2 6 26" .
- ^ Sheng Yang (12 de junio de 2008). "Ampliación de KVM con la nueva tecnología de virtualización de Intel" (PDF) . linux-kvm.org . Foro KVM. Archivado desde el original (PDF) el 27 de marzo de 2014 . Consultado el 17 de marzo de 2013 .
- ^ Inc, Parallels. "KB Parallels: Novedades de Parallels Desktop 5 para Mac" . kb.parallels.com . Consultado el 12 de abril de 2016 .
- ^ "Registro de cambios para VirtualBox 2.0" . Archivado desde el original el 22 de octubre de 2014.
- ^ liz. "Notas de la versión de VMware Workstation 14 Pro" . docs.vmware.com . Consultado el 19 de noviembre de 2020 .
- ^ "Puntos de referencia: Xen 3.2.0 en AMD Quad-Core Opteron con RVI" . 2008-06-15 . Consultado el 13 de mayo de 2011 .
- ^ "Lista de compatibilidad de hardware (HCL)" . Qubes OS . Consultado el 6 de enero de 2020 .
- ^ Implementación de un soporte de emulación de BIOS para BHyVe: un hipervisor BSD
- ^ "21.7. FreeBSD como anfitrión con bhyve" . Consultado el 13 de diciembre de 2015 .
- ^ Próximamente en OpenBSD / amd64: un hipervisor nativo
- ^ vmm (4) - monitor de máquina virtual
- ^ Diseño de alto nivel de gestión de memoria ACRN
enlaces externos
- Método y sistema para una traducción de direcciones de segundo nivel en un entorno de máquina virtual (patente)
- Beneficios de la traducción de direcciones de segundo nivel en Hyper-V R2
- Virtualización en Linux KVM + QEMU (PDF)