Certains processeurs proposent une assistance matérielle pour la virtualisation de CPU.
Lorsque vous utilisez cette assistance, le client peut utiliser un mode d'exécution séparé appelé mode client. Qu'il s'agisse d'un code d'application ou un code privilège, le code client fonctionne en mode client. Lors de certains événements, le processeur quitte le mode client et entre en mode racine. L'hyperviseur s'exécute en mode racine, détermine la raison pour laquelle le processeur a quitté le mode client, prend les éventuelles mesures nécessaires, puis relance le client en mode client.
Il n'est pas nécessaire de traduire le code lorsque vous utilisez l'assistance matérielle pour la virtualisation. Par conséquent, les appels système ou les charges de travail d'interruption intensives s'exécutent à une vitesse très proche de la vitesse native. Certaines charges de travail, notamment les charges impliquant des mises à jour de tables de page, entraînent un grand nombre de sorties du mode client en mode racine. En fonction du nombre de sorties et du temps total passé lors de ces sorties, la virtualisation de CPU assistée par matérielle peut accélérer l'exécution de manière significative.