Quest-ce que le tampon de recherche de traduction ?

Les processeurs sont des bêtes incroyablement complexes. Il existe un grand nombre de pièces interconnectées qui doivent toutes fonctionner à l'unisson pour atteindre les niveaux de performance que nous voyons. Les performances de la mémoire sont un facteur clé des performances des processeurs modernes, en particulier en tant que facteur limitant.

Pourquoi la vitesse de la mémoire est-elle si importante ?

Les processeurs sont incroyablement rapides, les dernières générations fonctionnant à 5,7 GHz lorsqu'elles sont suffisamment refroidies. Cela leur permet d'effectuer 5,7 milliards d'opérations chaque seconde. Beaucoup de ces opérations exécutent une action sur un certain type de données qui doivent être stockées en mémoire.

La mémoire principale du système, appelée RAM, est également très rapide. Malheureusement, il est très rapide par rapport à autre chose que le CPU. La latence absolue sur la RAM haut de gamme moderne est de l'ordre de 60 nanosecondes. Malheureusement, cela se traduit par environ 342 cycles CPU. Pour accélérer l'accès à la mémoire, un cache CPU est utilisé qui met dynamiquement en cache les données. Ce cache est situé sur la puce CPU elle-même et utilise des cellules SRAM plutôt que des cellules DRAM, ce qui le rend beaucoup plus rapide. Malheureusement, le cache du processeur est également beaucoup plus petit que la RAM système, ne totalisant généralement même pas 100 Mo. Pourtant, malgré sa petite taille, le système de cache du processeur à plusieurs niveaux augmente considérablement les performances du système.

Voici la mémoire virtuelle pour tout gâcher

Les ordinateurs modernes utilisent un système appelé mémoire virtuelle. Plutôt que d'allouer des adresses de mémoire physique aux processus, des adresses de mémoire virtuelle sont utilisées. Chaque processus a son propre espace d'adressage de mémoire virtuelle. Cela a deux avantages. Premièrement, il fournit une séparation facile entre la mémoire qui appartient à un processus et la mémoire qui appartient à un autre. Cela aide à prévenir les attaques où des logiciels malveillants lisent des données à partir de la mémoire d'autres logiciels, accédant potentiellement à des informations sensibles. Il masque également la structure de la mémoire physique du processus. Cela permet au processeur de déplacer des bits de mémoire rarement utilisés vers un fichier d'échange sur le stockage, sans nécessairement le démonter de la RAM virtuelle. Cela permet à l'ordinateur de gérer en douceur les scénarios dans lesquels il faut plus de RAM qu'il n'y en a physiquement. Sans mémoire virtuelle,

Malheureusement, si vous utilisez des adresses de mémoire virtuelle, l'ordinateur doit réellement traduire ces adresses de mémoire virtuelle en adresses de mémoire physique pour lire les données. Cela nécessite une table pour stocker toutes les traductions des adresses de mémoire virtuelle en adresses de mémoire physique. La taille de celui-ci dépend directement de la quantité de RAM utilisée. Il est généralement assez petit, du moins par rapport à la capacité de la RAM système. Malheureusement, si vous stockez la traduction entre les adresses virtuelles et les adresses physiques dans la RAM, vous devez faire deux demandes à la RAM pour chaque demande à la RAM. Un pour trouver l'adresse physique à demander, puis un autre pour accéder réellement à cet emplacement.

Entrer dans le tampon de recherche de traduction

La solution à ce problème est de stocker la table de traduction quelque part plus rapidement. Le cache CPU ferait parfaitement l'affaire, du moins du point de vue de la vitesse. Le problème avec cela, cependant, est que le cache du processeur est minuscule et déjà fortement utilisé. Non seulement la table ne rentre pas dans le cache, mais cela perturberait son utilisation déjà déterminante pour les performances.

Bien sûr, si le principe du cache fonctionne déjà pour l'accès mémoire, pourquoi ne pas le répéter pour la table de traduction ? Et c'est exactement ce qu'est le Translation Lookaside Buffer, ou TLB. Il s'agit d'un cache à grande vitesse pour les traductions d'adresses récentes. Il n'est pas assez grand pour stocker toute la table, mais sa petite taille signifie qu'il peut répondre très rapidement, en un seul cycle d'horloge.

Toute demande de mémoire passe par le TLB. S'il y a un hit TLB, il peut fournir l'adresse de mémoire physique pour la demande réelle, ajoutant généralement un seul cycle de latence. S'il y a un manque de TLB, la recherche doit être effectuée à partir de la mémoire principale. Il y a une petite pénalité de performance à un manque de TLB d'environ 5 cycles, une perte plus qu'éclipsée par la latence d'accès à la mémoire. Une fois que la traduction d'adresse est extraite de la RAM système, elle est poussée dans le TLB et la demande est ensuite répétée avec un hit TLB immédiat.

Remarque : Il existe différents schémas d'éviction TLB. Certains peuvent utiliser un schéma First In, First Out ou FIFO. D'autres peuvent utiliser un schéma le moins fréquemment utilisé ou LFU.

Dans les rares cas où il n'y a pas d'entrée dans la table de traduction d'adresses, un défaut de page est provoqué, car les données demandées ne sont pas dans la RAM. Le système d'exploitation doit alors gérer le défaut et transférer les données du stockage vers la RAM avant que la demande puisse continuer.

Conclusion

Le tampon de recherche de traduction, ou TLB, est un cache CPU haute vitesse dédié à la mise en cache des traductions d'adresses récentes à partir du fichier de page dans la RAM système. Ceci est nécessaire car les systèmes de mémoire virtuelle, tels qu'implémentés dans tous les ordinateurs modernes, nécessiteraient deux requêtes à la RAM pour chaque requête à la RAM. Un pour traduire l'adresse de mémoire virtuelle en une adresse de mémoire physique, et un autre pour accéder réellement à l'adresse physique. En mettant en cache les traductions récentes, la latence de la mémoire peut être considérablement réduite pour les hits TLB.

Des précautions doivent être prises pour s'assurer que les traductions mises en cache sont pertinentes pour le processus actuellement actif. Comme chaque processus a un espace d'adressage virtuel différent, ils ne peuvent pas être réutilisés. Ne pas strictement limiter cela était la cause de la vulnérabilité Meltdown.



Leave a Comment

Comment cloner un disque dur

Comment cloner un disque dur

À l’ère numérique moderne, où les données constituent un atout précieux, le clonage d’un disque dur sous Windows peut être un processus crucial pour beaucoup. Ce guide complet

Comment réparer le pilote WUDFRd qui n’a pas pu se charger sous Windows 10 ?

Comment réparer le pilote WUDFRd qui n’a pas pu se charger sous Windows 10 ?

Êtes-vous confronté au message d'erreur lors du démarrage de votre ordinateur indiquant que le pilote WUDFRd n'a pas pu se charger sur votre ordinateur ?

Comment réparer le code derreur 0x0003 de NVIDIA GeForce Experience

Comment réparer le code derreur 0x0003 de NVIDIA GeForce Experience

Rencontrez-vous le code d’erreur 0x0003 de l’expérience NVIDIA GeForce sur votre bureau ? Si oui, lisez le blog pour savoir comment corriger cette erreur rapidement et facilement.

How to Use Auto Clicker for Chromebook

How to Use Auto Clicker for Chromebook

Today, were going to delve into a tool that can automate repetitive clicking tasks on your Chromebook: the Auto Clicker. This tool can save you time and

Comment supprimer un GPU dun PC Windows en 2023

Comment supprimer un GPU dun PC Windows en 2023

Avez-vous besoin de retirer le GPU de votre PC ? Rejoignez-moi pour expliquer comment supprimer un GPU de votre PC dans ce guide étape par étape.

Comment installer un SSD NVMe sur un ordinateur de bureau et un ordinateur portable

Comment installer un SSD NVMe sur un ordinateur de bureau et un ordinateur portable

Vous avez acheté un nouveau SSD NVMe M.2 mais vous ne savez pas comment l'installer ? Lisez la suite pour savoir comment installer un SSD NVMe sur un ordinateur portable ou un ordinateur de bureau.

Quest-ce quune bombe logique ?

Quest-ce quune bombe logique ?

Une bombe logique est un incident de sécurité où un attaquant met en place une action différée. Continuez à lire pour en savoir plus.

Quest-ce que Stuxnet ?

Quest-ce que Stuxnet ?

Stuxnet était un ver auto-propagé. Il s'agissait de la première utilisation d'une cyber-arme et du premier malware.

Quest-ce quun hacker éthique ?

Quest-ce quun hacker éthique ?

Un hacker éthique est un hacker qui agit dans les limites de la loi. Continuez à lire pour en savoir plus sur le sujet.

Quest-ce que le chiffrement symétrique ?

Quest-ce que le chiffrement symétrique ?

Il existe de nombreuses parties différentes de la cryptographie. Si vous souhaitez chiffrer certaines données, vous pouvez utiliser deux types d'algorithmes : symétrique