Qu'est-ce que TLB shootdown?

Qu'est-ce QU'une fusillade TLB dans SMPs?

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

57
demandé sur Peter Mortensen 2010-09-20 06:40:02

3 réponses

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 limite l'accès à 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 peuvent plus le faire.

Les actions d'un processeur provoquant le vidage des TLB sur d'autres processeurs sont ce qu'on appelle un TLB shootdown.

54
répondu Carl Norum 2017-05-20 21:38:21

Un TLB (Translation Lookaside Buffer) est un cache des traductions d'adresses de mémoire virtuelle vers des 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 "shootdown TLB".

92
répondu Gabe 2015-02-06 17:00:00

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

Table de Page : une structure de données qui stocke le mappage entre la mémoire virtuelle (logiciel) et la mémoire physique (matériel)

Cependant, la table de page peut être assez grande et traverser la table de page (pour trouver l'adresse physique correspondante de l'adresse virtuelle) peut prendre beaucoup de temps. Pour rendre ce processus plus rapide, un cache appelé TLB (Translation Lookaside Buffer) est utilisé, qui stocke le adresses de mémoire virtuelle accédées.

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

Chaque fois qu'une entrée de table de page 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é TLB shootdown.

Le rinçage TLB peut être déclenché par diverses opérations de mémoire virtuelle cela change les entrées de la table de page comme la migration de page, la libération des pages, etc.

5
répondu coda 2018-01-26 16:40:35