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 invité. VMM ne conserve que la seconde couche des tables de page.
Remarques concernant les 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.
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 stratégie d'utilisation des pages de grande taille dans les conversions invité physique-adresse machine. Pour plus d'informations, consultez Attributs avancés de mémoire.