Hiérarchie mémoire

Dans un cache à lignes de 64 octets et à 64 ensembles, à quel numéro d’ensemble correspond la donnée d’adresse 0x1234 ?

  1. A4
  2. B52
  3. C8
Afficher la réponse et l'explication

Réponse : C. 8

Le déplacement occupe les 6 bits de poids faible (64 = 2⁶) et l’index les 6 bits suivants (64 ensembles = 2⁶). 0x1234 = 4660 divisé par 64 donne 4660 ÷ 64 = 72, reste 52 ; le numéro de ligne est donc 72. Le numéro d’ensemble est le reste de la division du numéro de ligne par le nombre d’ensembles : 72 mod 64 = 8. 52 est le reste de la division par 64, c’est-à-dire la position dans la ligne (déplacement). 4 n’est que le dernier chiffre hexadécimal de l’adresse et n’a aucun rapport avec l’ensemble.

S'entraîner sur ce thème Retour au thème

Autres questions sur Hiérarchie mémoire

  1. Pour un traitement qui écrit de nombreuses fois dans la même ligne, quelle est la principale raison pour laquelle l’écriture différée est plus avantageuse que l’écriture immédiate ?
  2. Par opposition à LRU, qui évince l’élément inutilisé depuis le plus longtemps, quelle description du remplacement optimal (OPT), qui évince l’élément qui restera inutilisé le plus longtemps à l’avenir, est correcte ?
  3. Comment évolue en général le temps de succès lorsque la capacité du cache augmente ? Quelle réponse est correcte, raison comprise ?
  4. Pourquoi le parcours de la liste chaînée ci-dessus est-il généralement bien plus lent que la lecture séquentielle d’un tableau comportant le même nombre d’éléments ?
  5. Chaque défaut lit une ligne de 64 octets et la latence de la mémoire principale est de 100 ns ; si un seul défaut peut être traité à la fois, la bande passante de lecture plafonne à environ 0.64 GB/s. Si 10 défauts peuvent être traités simultanément, quelle est approximativement la bande passante ? (aucune autre contrainte)

Comparatifs sur ce thème