Comment calculer le nombre de bits d'étiquette, d'index et de décalage de différents caches?


18

Plus précisément:

1) Un cache à mappage direct avec 4096 blocs / lignes dans lequel chaque bloc a 8 mots de 32 bits. Combien de bits sont nécessaires pour les champs de balise et d'index, en supposant une adresse 32 bits?

2) Même question que 1) mais pour un cache entièrement associatif ?

Corrigez-moi si je me trompe, est-ce:

bits de balise = longueur de bit d'adresse - exposant de l'index - exposant du décalage?

[Le décalage = 3 est-il dû à 2 ^ 3 = 8 ou est-il 5 à partir de 2 ^ 5 = 32?]


quelques explications sur la balise, l'index et l'offset dans cs.stackexchange.com/questions/33818/…
Ran G.

Réponses:


20

La question telle qu'elle a été formulée ne répond pas tout à fait. Un mot a été défini comme étant de 32 bits. Nous devons savoir si le système est "adressable en octets" (vous pouvez accéder à un bloc de données de 8 bits) ou "adressable par mot" (le plus petit bloc accessible est de 32 bits) ou même "adressable en demi-mot" (le le plus petit bloc de données auquel vous pouvez accéder est de 16 bits.) Vous devez le savoir pour savoir ce que le bit de poids faible d'une adresse vous dit.

Ensuite, vous travaillez de bas en haut. Supposons que le système soit adressable en octets .

Ensuite, chaque bloc de cache contient 8 mots * (4 octets / mot) = 32 = 2 5 octets, donc le décalage est de 5 bits.

L' index pour un cache mappé direct est le nombre de blocs dans le cache (12 bits dans ce cas, car 2 12 = 4096).

Ensuite, la balise est tous les bits qui restent, comme vous l'avez indiqué.

Comme le cache devient plus associatif mais reste de la même taille, il y a moins de bits d'index et plus de bits d'étiquette.


yup c'est octet adressable mais la question que j'ai regardée ne l'a pas spécifiquement
énoncé

3

Votre formule pour les bits d'étiquette est correcte.

Que le décalage soit de trois bits ou de cinq bits dépend du fait que le processeur utilise l'adressage d'octets (octets) ou l'adressage de mots. En dehors des DSP, presque tous les processeurs récents utilisent l'adressage d'octets, il serait donc sûr de supposer l'adressage d'octets (et cinq bits de décalage).


Je ne savais pas qu'il y avait de telles distinctions, oui c'est l'adressage d'octets
compski

1
Avant le milieu des années 70, on pouvait raisonnablement supposer qu'un "mot" était la taille de la plus petite unité de données adressable. Ce tableau sur la page wikipedia sur word est amusant (si vous aimez ce genre de chose, (ce que je fais.))
Wandering Logic

1

J'apprends pour l'examen final du sujet Computer System, j'ai googlé pendant un moment et trouvé cette question. Et cette partie de la question est confuse: "dans laquelle chaque bloc a 8 mots de 32 bits". Un mot fait 4 octets (ou 32 bits), il suffit donc que la question soit "... dans laquelle chaque bloc contient 8 mots"

La réponse est - chaque bloc est de 32 octets (8 mots), nous avons donc besoin de 5 bits de décalage pour déterminer quel octet dans chaque bloc - mappé directement => nombre d'ensembles = nombre de blocs = 4096 => nous avons besoin de 12 bits d'index pour déterminer quel ensemble

=> bit d'étiquette = 32 - 12 - 5 = 15

Pour une association complète, le nombre de jeux est 1 => pas de bit d'index => bit d'étiquette = 32 - 0 - 5 = 27


1

Il n'y a pas de bits d'index dans un cache entièrement associatif. Les bits d'index sont utilisés pour identifier de manière unique à quel jeu appartient le bloc. Dans un cache entièrement associatif, tous les blocs font essentiellement partie du même ensemble.


-1

dans le mappage associé complet, l'index est 0 b / s comme vous le dites set = 1 donc index = log de 1 dans la base 2 = 0 set offset = log de la taille de bloc de la base d'octets 2 donc utilisez 8 = 2 ^ 3 ou 32 = 2 ^ 5 balises = 32-0-5 = 27 pour index direct = 2 ^ 12 = 12 offset = balise 0 bit = 32-12-0 = 20


Je trouve cela très impossible à lire. Veuillez utiliser une ponctuation.
David Richerby
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.