2015-12-23 2 views
1

J'ai trouvé que TLB contient PID de chaque processus pour des raisons de performance, ce qui signifie en laissant chaque VA de processus à des mappages PA dans TLB pour économiser le coût de changement de contexte. Donc, ma question est le noyau peut manipuler ces entrées PID dans TLB?Le noyau peut-il gérer l'ID de processus écrit sur l'entrée TLB?

Je suis vraiment curieux parce que j'ai entendu dire que TLB est un cache maintenu dans MMU. S'il vous plaît me donner une réponse :)

* Je suppose que x86 :)

Répondre

3

Intel® 64 and IA-32 Architectures Software Developer's Manual

Identifiers contexte de processus (PCIDs)

identificateurs contexte de processus (PCIDs) sont un établissement par lequel un processeur logique peut mettre en cache des informations pour plusieurs espaces d'adresse linéaire. Le processeur peut conserver des informations mises en cache lorsque le logiciel bascule vers un espace d'adresse linéaire différent avec un PCID différent (par exemple, en chargeant CR3, voir la section 4.10.4.1 pour plus de détails). Un PCID est un identifiant de 12 bits.

...

Lorsqu'un processeur logique crée des entrées dans les TLB (section 4.10.2) et des caches de structure d'échange (section 4.10.3), il associe les entrées avec le PCID en cours. Lors de l'utilisation des entrées dans les TLB et les caches de structure de pagination pour traduire une adresse linéaire, un processeur logique utilise uniquement les entrées associées à la PCID actuelle

connexes: Does Linux use x86 CPU's PCID feature for TLB? If not, why?

+0

Merci pour votre réponse –