Résumé
Le translation lookaside buffer, ou TLB, est une mémoire cache du processeur utilisée par l'unité de gestion mémoire (MMU) dans le but d'accélérer la traduction des adresses virtuelles en adresses physiques. Sans TLB, le processeur doit consulter la table des pages à chaque fois qu'une adresse virtuelle est utilisée. Lorsque la table des pages est stockée en mémoire, avec plusieurs niveaux d'indirection, cela ralentit considérablement les accès mémoire. Par exemple, dans le mode protégé de l'Intel 80386, l'accès à une adresse virtuelle implique trois accès à la mémoire vive : un premier accès pour lire une entrée dans un répertoire de table de pages (page directory), un second pour lire une entrée dans une table de pages (page table), et enfin un troisième pour accéder à la donnée. À partir du Pentium Pro, en mode PAE avec des pages de 4 Kio, il existe même un niveau d'indirection supplémentaire, soit en tout quatre accès mémoire. Le TLB mémorise les derniers couples (page, cadre) correspondant aux dernières pages auxquelles le processeur a dû accéder, ce qui permet d'améliorer grandement les temps d'accès à la mémoire. Le TLB du 80386 comporte 32 entrées. Le système d'exploitation doit être conscient de l'existence du TLB, car s'il modifie la table des pages en mémoire, la MMU n'en est pas avertie par défaut. Les processeurs fournissent donc des instructions pour invalider sélectivement des entrées du TLB, ou bien vider complètement le TLB. Sur le 80386, l'adresse du page directory est stockée dans le registre CR3. Lorsque CR3 est modifié, cela signifie que les associations entre adresses virtuelles et adresses physiques ont changé, donc les entrées du TLB sont obsolètes. Le processeur vide donc systématiquement le TLB lors de chaque écriture dans le registre CR3. Sur 80386, il s'agit en réalité de la seule façon d'invalider des entrées du TLB ; il n'existe pas de méthode plus sélective. Ainsi, lorsqu'une entrée de table de page change, le système d'exploitation doit réécrire dans CR3 sa propre valeur, avec des instructions du type : mov %cr3, %ax mov %ax, %cr3 L'un des bits des entrées de la table de pages est appelé le bit global.
À propos de ce résultat
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.