2016-11-17 5 views
1

La page Web wiki (https://en.wikipedia.org/wiki/Sandy_Bridge) mentionne que Data TLB a 64, 32 et 4 entrées respectivement pour les pages 4KB, 2MB et 1GB. J'ai trouvé ces chiffres difficiles à comprendre. Sandy Bridge a une adresse virtuelle de 48 bits, ce qui signifie pour la page 4K, il peut y avoir 2^36 pages, et pour les pages 2MB et 1GB, il devrait y avoir 2^27 et 2^18 pages. Si TLB a 64 entrées pour la page 4K, la taille de chaque entrée ne doit pas être inférieure à 6 + 36 = 42 bits. Pourquoi y a-t-il seulement 32 entrées pour la page 2M, au lieu de 2^15 (42-27) entrées?Comment la taille du TLB dans le CPU Sandy Bridge d'Intel est-elle déterminée?

Je sais que dans les entrées TLB, il y aura des bits supplémentaires à des fins de contrôle. Mais cet espace ne devrait-il pas être constant pour une taille de page différente?

Répondre

4

Parce qu'ils sont différents TLB.
exécution cpuid avec EAX = 2 sur mon Haswell et décoder les descripteurs TLB obtient:

Instruction TLB:
                            2M/4M pages, entièrement associative, 8 entrées
                            pages, 8 4 Ko, 64 entrées manière

données TLB:
                            pages 2M/4M, 4 voies, 32 entrées et un tableau séparé avec 1 Go pages, à 4 voies, 4 entrées
                            4 KByte pages, 4 voies, 64 entrées

2e niveau partagé TLB:
                            4 K/pages 2M, 8 voies, 1024 entrées

Un cache TLB est un trèsCAM spécialisée avec une mise en page fixe, il n'est pas une mémoire à gratter avec une disposition générale.

Certains TLB peuvent gérer plus d'une taille de page, mais ce sont des compromis lorsque l'information est mise en cache dans un format commun. La présence de différents TLB gérant différentes tailles de page améliore les accès au cache, tout comme l'utilisation d'un DTLB et d'un ITLB.

Les caches de données fonctionnent différemment car ils ne mettent pas en cache les informations, ils mettent en cache les données sans mise en page et il est donc logique de leur donner la taille en KiB.

+0

Cela a vraiment du sens! Je vous remercie. – Harper