Français
Énergie et réseaux

TLB

Initiales de « translation lookaside buffer ».

TLB: le raccourci d'adresse mémoire du CPU.

Un "translation lookaside buffer" (TLB) est un cache petit et rapide qui se trouve à l'intérieur ou très près d'un cœur de processeur et stocke les traductions récentes d'adresses mémoire virtuelles vers physiques. Lorsqu'un logiciel exécuté sur un CPU demande des données à une adresse mémoire virtuelle, l'unité de gestion mémoire (MMU) doit normalement consulter la table de pages dans la RAM pour trouver l'adresse physique correspondante. Cette recherche est lente. Le TLB intercepte ces requêtes et renvoie une traduction mise en cache en un seul cycle si la paire d'adresses a été utilisée récemment, contournant entièrement la table de pages.

La capacité du TLB est mesurée en entrées, allant généralement de 16 à 512 selon la conception du processeur et le niveau de cache. Un CPU x86-64 moderne peut avoir des TLB d'instructions et de données séparés, chacun avec plusieurs niveaux: un TLB L1 qui est minuscule et très rapide, et un TLB L2 qui est plus grand mais légèrement plus lent. Lorsqu'une adresse virtuelle n'est pas trouvée dans le TLB, un "TLB miss" (défaut de TLB) se produit et le processeur doit parcourir la table de pages, une opération coûteuse qui peut bloquer l'exécution pendant des centaines de cycles.

Performance et comportement du système

L'efficacité du TLB devient critique dans les charges de travail qui touchent de grandes régions de mémoire ou qui ont une faible localité. Un processus scannant des gigaoctets de données peut subir des défauts fréquents si la taille de page est fixe (généralement 4 Ko sur Linux x86) et que le TLB ne peut pas contenir les traductions pour l'ensemble de travail. De nombreux systèmes prennent désormais en charge plusieurs tailles de page: en plus des pages de 4 Ko, les "huge pages" de 2 Mo ou 1 Go réduisent le nombre de traductions nécessaires, bien qu'elles consomment plus de mémoire et soient plus difficiles à gérer.

Lorsqu'un changement de contexte de processus se produit, le TLB devient généralement obsolète car les adresses virtuelles du nouveau processus correspondent à une mémoire physique différente. La plupart des CPU modernes étiquettent les entrées TLB avec un identifiant de processus (ASID ou ID de contexte de processus) pour éviter les vidages complets, bien que certains systèmes plus anciens doivent effacer l'intégralité du TLB à chaque commutation. Les professionnels des services publics optimisant les systèmes de contrôle en temps réel ou les moteurs de trading haute fréquence profilent souvent les taux de défauts de TLB à l'aide de compteurs de performance et ajustent l'allocation de la taille de page et l'affinité de processus pour maximiser les taux de succès du cache.

Le terme "lookaside buffer" (tampon de consultation parallèle) reflète l'architecture: le TLB se situe à côté du chemin d'exécution principal, consulté en parallèle avec d'autres logiques de traduction d'adresses. C'est l'une des nombreuses structures invisibles mais critiques pour la performance qui séparent la vitesse de mémoire perçue de la latence réelle de la RAM, aux côtés des caches d'instructions et de données L1, L2 et L3.

Sources

Entrée IG453007/12/2013

Autres termes : Énergie et réseaux

Tout voir

Recevez le mot du jour

Un terme industriel chaque jour, avec le métier auquel il appartient et pourquoi il mérite d'être connu. Sans publicité.