Translation lookaside buffer (TLB)

Les Translation lookaside buffers (TLB) sont des caches mémoire qui stockent les traductions récentes de la mémoire virtuelle en adresses physiques. Cela permet de les retrouver plus rapidement.

La recherche commence dans le CPU lorsqu'un programme fait référence à un emplacement de mémoire virtuelle. La première étape consiste à vérifier les caches d'instructions. Le système doit rechercher l'adresse physique de la mémoire demandée si elle ne se trouve pas dans les caches très rapides. À ce stade, la TLB est vérifiée pour une référence rapide à l'emplacement dans la mémoire physique. Lorsqu'une adresse est recherchée dans la TLB et qu'elle n'est pas trouvée, la mémoire physique doit être recherchée au moyen d'une opération d'exploration de page mémoire. Lorsque les adresses de la mémoire virtuelle sont traduites, les valeurs référencées sont ajoutées à la TLB. La vitesse augmente lorsqu'une valeur est récupérée dans la TLB. Cela est dû au fait que le processeur stocke l'adresse dans la TLB. De nombreux processeurs possèdent des TLB afin d'accélérer les opérations de mémoire virtuelle en raison de la faible latence et des fréquences de fonctionnement élevées. Les TLB ajoutent également le support nécessaire aux ordinateurs multi-utilisateurs pour séparer la mémoire, en ayant un mode utilisateur et un mode superviseur ainsi qu'en utilisant des permissions sur les bits de lecture et d'écriture pour permettre le partage. Les TLB peuvent souffrir de problèmes de performance dus au multitâche et aux erreurs de code. Cette dégradation des performances s'appelle un thrash du cache. Le cache thrash est causé par une activité informatique en cours qui ne progresse pas en raison d'une utilisation excessive des ressources ou de conflits dans le système de mise en cache.