Le calcul de page de Mémoire Virtuelle de table et de translation lookaside buffer

Je réponds à certains problèmes liés à la mémoire virtuelle et souhaitez aider à préciser ou de confirmer ma compréhension sur la façon dont ce genre de choses est fait.

Les questions sont les suivantes:

Donné un des octets adressables système avec les versions 32 bits des mots, un espace d'adresse virtuelle de 4 giga-octets, une adresse physique de l'espace de 1 go, et une taille de page de 4 kilo-octets. Il ya une hypothèse que les entrées de table de page sont arrondis à 4 octets.

a) Quelle est la taille de la page table en octets?

b) supposons Maintenant qu'un 4-way set-associative translation lookaside buffer est mis en place, avec un total de 256 traductions d'adresse. Calculer la taille de l'étiquette et les champs d'index.

Mes réponses sont les suivantes:

Un:

La taille de la table de pages est égal au nombre d'entrées dans la table des pages, multiplié par la taille des entrées.

Le nombre d'entrées dans la table de pages est égale à la taille de la mémoire divisé par la taille de la page: 2^32/2^12=2^20.

La taille des entrées est égale à la taille de mot moins les bits utilisés pour le nombre d'entrées dans la table de pages: 32-20=12.

Par conséquent, la page, la taille de la table est: (2^20) * 12 bits = 12582912 bits = 1572864 octets

Cependant, j'ai trouvé cette (sous le titre "de la Page Taille de la Table"), qui utilise essentiellement le même numéro.

De la Page Taille de la Table = ((espace d'adressage virtuel de taille)/(taille de la page)) * (page d'entrée de la table de la taille)
= (4 GO/4 KO) * 4 B = 4 MO

La réponse correcte?

Prochaine, B:

Je ne suis pas sûr de la façon de calculer la partie B. je crois que la Balise est calculée en additionnant le nombre de blocs, plus le décalage, en plus de l'index. C'est une 4 voies associatives, il y a donc 4 blocs dans chaque ensemble. L'indice est de 8 bits parce que la base de la taille de l'index est de 10 bits et est diminué par 2, aussi parce que c'est une 4 voie associative. Cependant, je ne suis pas au courant de la façon de calculer le décalage, qui est nécessaire pour aider à calculer la balise.

Toute aide serait grandement appréciée.

OriginalL'auteur basil | 2013-11-04