Qu'est-ce que Pagination imbriquée (nested paging) ?
Méthode où le matériel parcourt successivement deux niveaux de tables des pages : la traduction gérée par l'OS de la machine virtuelle et celle gérée par l'hyperviseur. Elle réduit les interventions de l'hyperviseur et accélère la virtualisation.
Nom japonais: 入れ子ページング
« Pagination imbriquée (nested paging) » apparaît dans 3 questions d'entraînement réparties sur 1 thèmes, dont Système d'exploitation et matériel.
Domaine: Système d'exploitation et matériel
Deux traductions en un seul parcours matériel
Un système d'exploitation invité dans une machine virtuelle gère des tables des pages qui associent les adresses virtuelles invitées à ce qu'il croit être des adresses physiques, appelées adresses physiques invitées. Cette mémoire se trouve en réalité là où l'hyperviseur l'a placée. Avec la pagination imbriquée, aussi appelée traduction en deux étapes, le matériel parcourt les tables des pages de l'invité puis les propres tables de l'hyperviseur, traduisant automatiquement adresse virtuelle invitée, puis physique invitée, puis physique hôte. Les implémentations courantes sont les Extended Page Tables (EPT) d'Intel, les Nested Page Tables (NPT) d'AMD et la traduction de stage 2 d'Arm.
Pourquoi un défaut de TLB peut coûter 24 accès mémoire
Chaque entrée dont le parcours invité a besoin est localisée par une adresse physique invitée, qui doit elle-même être traduite par les tables de l'hôte avant de pouvoir être lue. Avec des tables à quatre niveaux des deux côtés, chaque niveau invité coûte quatre lectures hôte plus une lecture de table invitée, soit cinq au total, donc 20 pour quatre niveaux, et traduire l'adresse finale de la donnée par l'hôte en ajoute quatre : (4 + 1) × (4 + 1) − 1 = 24, contre quatre pour un parcours natif. Les caches de parcours de pages (page-walk caches), les TLB qui mémorisent la traduction combinée finale et les grandes pages côté hôte maintiennent le coût moyen bien plus bas.
Questions fréquentes
Quelle est la différence entre pagination imbriquée et tables des pages fantômes ?
Avec les tables des pages fantômes, l'hyperviseur maintient par logiciel des tables combinées allant de l'adresse virtuelle invitée à l'adresse physique hôte et intercepte les mises à jour des tables des pages de l'invité. Avec la pagination imbriquée, le matériel parcourt successivement les tables de l'invité et de l'hôte, si bien que l'invité met à jour ses propres tables sans intervention de l'hyperviseur.
Combien d'accès mémoire nécessite un parcours de pages imbriqué ?
Avec des tables des pages à quatre niveaux à la fois chez l'invité et chez l'hôte, un défaut de TLB peut nécessiter jusqu'à 24 accès mémoire dans le pire cas, contre quatre pour un parcours non virtualisé.
La pagination imbriquée est-elle la même chose que la virtualisation imbriquée ?
Non. La pagination imbriquée est une traduction d'adresses en deux étapes pour des machines virtuelles ordinaires, tandis que la virtualisation imbriquée consiste à exécuter un hyperviseur à l'intérieur d'une machine virtuelle.