Hiérarchie mémoire
Dans la boucle ci-dessus, avec un int de 4 octets, des lignes de cache de 64 octets et un tableau absent du cache aligné sur une frontière de ligne, quel est le taux de défauts de la lecture du tableau en l’absence de préchargement ?
int a[1024];
for (i = 0; i < 1024; i++)
sum += a[i];
- A12.5%
- B6.25%
- C100%
Afficher la réponse et l'explication
Réponse : B. 6.25%
Une ligne de 64 octets contient 64 ÷ 4 = 16 int. En lecture séquentielle, le premier élément de chaque ligne provoque un défaut et les 15 autres sont des succès ; le taux de défauts est donc 1 ÷ 16 = 6.25%. Pour 1024 éléments, on obtient 1024 ÷ 16 = 64 défauts. 12.5% correspond à l’hypothèse erronée de 8 éléments par ligne. 100% correspond à un accès qui n’utilise qu’un élément par ligne, par exemple une lecture tous les 16 éléments (tous les 64 octets).