Dans quel endroit de l’architecture de l’ordinateur la table des pages est-elle stockée ?


La réponse dépend de l'architecture !

Dans un système avec une mémoire virtuelle paginée, la table des pages vit dans la mémoire virtuelle de ce qui est responsable du mappage des pages (le système d'exploitation/hyperviseur). Celle-ci, à son tour, vit là où elle en a besoin (DRAM, pour simplifier - considérez ce qui se passe si la table des pages est swappée sur le disque ; elle devrait se trouver en DRAM pour se ramener en DRAM), et son adresse est donnée par un registre de configuration spécial écrit par le SE/Hyperviseur.


La plupart des systèmes modernes fournissent une certaine accélération matérielle pour traduire les adresses des pages, et maintiennent un cache sur puce des traductions (le TLB, ou translation lookaside buffer). Cette table n'est pas la table des pages, mais un cache pour les entrées de la table des pages récemment utilisées. Notez que le TLB suppose une taille d'adresse virtuelle typiquement utilisée et donc utile. En outre, les pages manquées et les évictions sont gérées par un matériel spécial qui met à jour la TLB (le page table walker, ou PTW).


La taille de la table des pages varie selon les architectures, et certaines supportent des tailles de pages non uniformes (grandes pages / énormes pages / etc.). De façon pratique, dans un système typique avec un espace d'adressage de 32 bits et des pages de 4KB (la mémoire dans une page est indexée par 12 bits de l'adresse virtuelle, car 2^12 = 4096), il reste 20 bits (32-12 = 20) pour l'index de la table des pages, ce qui signifie qu'une adresse virtuelle de 32 bits peut différencier 2^20 pages de 4KB. Si chaque entrée de la table des pages est d'un mot (4 octets), la structure de données entière tient dans 4MB (bien que la structure de données de la table des pages soit souvent implémentée de manière hiérarchique). De manière réaliste, différentes architectures, systèmes d'exploitation, hyperviseurs, etc. sont quelque peu libres de mettre en œuvre leurs propres saveurs de mémoire virtuelle, tant qu'ils configurent et utilisent correctement le matériel sous-jacent.

Certains ordinateurs n'utilisent pas du tout la mémoire virtuelle, ou utilisent des schémas autres que les pages mappées pour mettre en œuvre la mémoire virtuelle et n'ont pas besoin d'une table des pages.