Certains CPU, notamment les modèles AMD SVM-V et Intel Xeon 5500, fournissent une prise en charge matérielle pour la virtualisation de mémoire à l'aide de deux couches de tables de page.

La première couche de tables de page stocke les translations client virtuelles-physiques ; la seconde couche de tables de page stocke les translations client physiques vers machine. Le TLB (translation look-aside buffer - Tampon de traduction) est un cache de translations conservé par le matériel de l'unité de gestion de mémoire (MMU) du processeur. Un élément non trouvé TLB est un élément non trouvé dans ce cache ; le matériel doit alors explorer la mémoire (certainement à plusieurs reprises) pour trouver la translation requise. Pour un élément non trouvé TLB d'une certaine adresse virtuelle client, le matériel consulte les deux tables de page pour convertir l'adresse virtuelle client en adresse de la machine. La première couche des tables de page est conservée par le système d'exploitation client. VMM ne conserve que la seconde couche des tables de page.

Considérations de performances

Lorsque vous utilisez l'assistance matérielle, vous éliminez le supplément de la virtualisation de mémoire logicielle. En particulier, l'assistance matérielle élimine le temps système requis pour maintenir les tables de page fantômes synchronisées avec les tables de page client. Toutefois, la latence d'élément non trouvé TLB est beaucoup plus élevée lorsque vous utilisez l'assistance matérielle. Par défaut, l'hyperviseur utilise des grandes pages dans les modes d'assistance matérielle pour réduire le coût des pertes TLB. Par conséquent les bénéfices que tire une charge de travail de l'utilisation de l'assistance matérielle dépend essentiellement du supplément entraîné par la virtualisation de mémoire lors de l'utilisation de la virtualisation de mémoire logicielle. Si une charge de travail implique une faible quantité d'activité de table de page (création de processus, mappage de la mémoire ou commutations contextuelles), la virtualisation de logiciel n'entraîne pas de supplément significatif. Inversement, les charges de travail avec un grande quantité d'activité de table de page sont susceptibles de tirer avantage de l'assistance matérielle.

Les performances de la MMU matérielle se sont améliorées depuis sa première introduction grâce à l'extension de la mise en cache dans le matériel. Grâce aux techniques de virtualisation de mémoire logicielle, la fréquence des commutations contextuelles d'un invité type peut se produire entre 100 et 1 000 fois par seconde. Chaque commutation contextuelle interrompt VMM dans la MMU logicielle. Les approches de MMU matérielle évitent ce problème.

Par défaut, l'hyperviseur utilise des grandes pages dans les modes d'assistance matérielle pour réduire le coût des pertes TLB. Les meilleurs performances sont obtenues en utilisant de grandes pages dans les conversions client virtuel-physique et client physique-adresse machine.

L'option LPage.LPageAlwaysTryForNPT peut modifier la règle d'utilisation de grandes pages dans les conversions client physique-adresse machine.​ Pour plus d'informations, voir Attributs avancés de mémoire.

Remarque :

La conversion binaire ne fonctionne qu'avec la virtualisation de mémoire basée sur un logiciel.