Algunas CPU, como AMD SVM-V e Intel Xeon serie 5500, ofrecen compatibilidad de hardware para virtualización de memoria mediante la utilización de dos capas de tablas de páginas.

La primera capa de tablas de páginas almacena traducciones virtuales a físicas de invitados, mientras que la segunda almacena traducciones físicas a virtuales de invitados. El búfer de traducción de direcciones (TLB) es una memoria caché de traducciones mantenida por el hardware de la unidad de administración de memoria (MMU) del procesador. Una omisión de TLB es una omisión en esta memoria caché, y el hardware debe acudir a la memoria (posiblemente varias veces) para encontrar la traducción requerida. En el caso de una omisión de TLB en una determinada dirección virtual de invitado, el hardware analiza ambas tablas de páginas para traducir la dirección virtual del invitado a una dirección de máquina. El sistema operativo invitado mantiene la primera capa de tablas de páginas. El VMM solo mantiene la segunda capa de tablas de páginas.

Consideraciones sobre rendimiento

Cuando utiliza la asistencia de hardware, elimina la sobrecarga de virtualización de memoria de software. En particular, la asistencia de hardware elimina la sobrecarga requerida para mantener las tablas de páginas de sombra sincronizadas con las tablas de páginas de invitados. Sin embargo, la latencia de la omisión de TLB al utilizar asistencia de hardware es significativamente más alta. De forma predeterminada, el hipervisor utiliza páginas grandes en modos asistidos de hardware con el fin de reducir el costo de las omisiones de TLB. En consecuencia, si una carga de trabajo se beneficia o no con la utilización de asistencia de hardware depende principalmente de la sobrecarga que provoca la virtualización de memoria cuando se utiliza la virtualización de memoria de software. Si una carga de trabajo incluye una pequeña cantidad de actividad de tablas de páginas (como creación de procesos, asignación de memoria o cambios de contexto), la virtualización de software no causa una sobrecarga significativa. De manera inversa, las cargas de trabajo con una gran cantidad de actividad de tablas de páginas probablemente se beneficien con la asistencia de hardware.

El rendimiento de MMU de hardware mejoró desde su presentación gracias a un gran almacenamiento en caché implementado en el hardware. Con la utilización de técnicas de virtualización de memoria de software, la frecuencia de los cambios de contexto en un invitado típico puede ser de entre 100 y 1.000 veces por segundo. Cada cambio de contexto capturará la VMM en la MMU de software. Los enfoques de MMU de hardware evitan este problema.

De forma predeterminada, el hipervisor utiliza páginas grandes en modos asistidos de hardware con el fin de reducir el costo de las omisiones de TLB. El mejor rendimiento se logra mediante la utilización de páginas grandes en traducciones virtuales de invitado a físicas de invitado y en traducciones físicas de invitado a direcciones de máquina.

La opción LPage.LPageAlwaysTryForNPT puede cambiar la directiva para utilizar páginas de gran tamaño en traducciones físicas de invitado a direcciones de máquina.​ Para obtener más información, consulte Atributos avanzados de memoria.

Nota:

La traducción binaria solo funciona con virtualización de memoria basada en software.