Qu’est-ce que l’abattage TLB?

Qu’est-ce qu’un abattage TLB dans les SMP?

Je suis incapable de trouver beaucoup d’informations concernant ce concept. Tout bon exemple serait très apprécié.

Un exemple rapide:

  1. Vous avez de la mémoire partagée par tous les processeurs de votre système.

  2. L’un de vos processeurs restreint l’access à une page de cette mémoire partagée.

  3. Maintenant, tous les processeurs doivent vider leurs TLB, de sorte que ceux qui ont été autorisés à accéder à cette page ne puissent plus le faire.

Les actions d’un processeur provoquant le vidage des TLB sur d’ autres processeurs sont ce que l’on appelle un abattage TLB.

Un TLB (Translation Lookaside Buffer) est un cache des traductions des adresses de mémoire virtuelle vers les adresses de mémoire physique. Lorsqu’un processeur modifie le mappage virtuel-physique d’une adresse, il doit indiquer aux autres processeurs d’invalider ce mappage dans leurs caches.

Ce processus s’appelle un “abattage TLB”.

Je pense que la question exige une réponse plus détaillée.

table de pages : structure de données stockant la correspondance entre la mémoire virtuelle (logiciel) et la mémoire physique (matériel)

Cependant, la table de pages peut être assez volumineuse et traverser la table de pages (pour trouver l’adresse physique correspondante de l’adresse virtuelle) peut prendre du temps. Pour accélérer ce processus, un cache appelé TLB (Translation Lookaside Buffer) est utilisé, qui stocke les adresses de mémoire virtuelle récemment utilisées.

Comme on peut le voir clairement, les entrées TLB doivent être synchronisées avec leurs entrées de table de pages respectives à tout moment. Maintenant, les TLB sont un cache par cœur, c. -à- d. chaque kernel a son propre TLB.

Chaque fois qu’une entrée de table de pages est modifiée par l’un des cœurs, cette entrée TLB particulière est invalidée dans tous les cœurs. Ce processus est appelé abattage TLB.

Le vidage TLB peut être déclenché par diverses opérations de mémoire virtuelle qui modifient les entrées de la table de pages telles que la migration de page, la libération de pages, etc.