Вы находитесь на странице: 1из 3

NSY104

Architectures des systmes informatiques


2010-2011

TD N3 Mmoire cache
1. Alignement
Pour un cache dont les lignes font 128 octets, donnez ladresse du premier mot dans la ligne contenant ladresse
suivante :
0xA23847EF
0x7245E824
0xEEFABCD2
Correction : Si les lignes du cache font 128 octets, alors les 7 bits de poids faible de ladresse indiquent quel octet
dans la ligne une adresse fait rfrence. Les lignes tant alignes, ladresse du premier mot dans la ligne peut tre
trouve en positionnant 0 les bits spcifiant les octets dans la ligne. En consquence, les adresses des premiers
octets dans les lignes contenant les adresses prcites sont les suivantes :
0xA2384780
0x7245E800
0xEEFABC80
2. Lignes et longueurs de lignes
Soit un cache dune capacit de 32 Ko. Combien de lignes peut contenir le cache si les longueurs de ligne sont
de 32, 64 ou 128 octets ?
Correction : Le nombre de lignes dun cache correspond simplement sa capacit divise par la longueur de ligne,
aussi le cache possde-t-il 1024 lignes si les lignes font 32 octets, 512 si elles font 64 octets et 256 si elles en font
128.
3. Associativit et ensembles
Si un cache possde une capacit de 16 Ko et une longueur de ligne de 128 octets, combien densembles le cache
possde-t-il sil est associatif par ensemble de 2, 4 ou 8 blocs ?
Correction : Avec des lignes de 128 octets, le cache contient un total de 128 lignes. Le nombre densembles dans le
cache correspond au nombre de lignes divis par le degr dassociativit du cache. Le cache possde donc 64
ensembles pour une associativit par ensembles de 2 blocs, 32 ensembles pour une associativit par ensemble de 4
blocs et 16 ensembles pour une associativit par ensemble de 8 blocs.
4. Taille des tableaux dtiquettes
Un cache possde une capacit de 64 Ko, des lignes de 128 octets et un degr dassociativit de 4. Le systme
contenant le cache utilise des adresses de 32 bits.
Combien de lignes et densembles possde le cache ?
Correction : 64 Ko/128 octets = 512. Le cache possde donc 512 lignes. Puisque son degr dassociativit
est de 4, le cache possde 512/4 = 128 ensembles.
Combien dentres sont requises dans le tableau dtiquettes ?
Correction : Une entre de tableau dtiquette est requise pour chaque ligne, aussi le tableau dtiquettes
ncessite-t-il 512 entres.
Combien de bits dtiquettes sont requis pour chaque entre dans le tableau dtiquettes ?
Correction : Puisque le cache possde 128 ensembles, 7 bits dadresse seront utiliss pour slectionner un
ensemble dans le tableau, 7 bits supplmentaires seront utiliss pour slectionner loctet lintrieur de
chaque ligne, car les lignes font 128 octets. En consquence, 18 (32-14) bits dtiquette sont requis pour
chaque entre dans le tableau dtiquette.
Si le cache est de type write-through, combien de bits sont requis pour chaque entre du tableau dtiquettes
et quelle quantit de mmoire totale est requise pour le tableau dans le cas dune politique de remplacement
LRU? Quen serait-il sil sagissait dun cache write-back ?
Correction : Puisque le cache utilise la politique de remplacement LRU et possde un degr dassociativit de 4, 2
bits sont requis pour chaque entre du tableau dtiquettes pour mmoriser lordre du dernier rfrencement. Les
caches write-through ncessitent un bit de validit dans chaque entre du tableau du tableau dtiquette mais pas de
bit de modification, ce qui nous donne une taille de 21 bits (18+2+1) pour chaque entre du tableau dtiquettes.
Puisquil y a 512 lignes dans le cache, la taille du tableau dtiquettes sera de 10 752 bits. Les caches write-back
ncessitent un bit de modification dans chaque entre du tableau dtiquettes en plus des bits requis pour un cache
write-through similaire, aussi chaque entre du tableau dtiquettes requerra 22 bits, pour une taille totale du
tableau de 11 264 bits.
5. Adressage
Soit un cache possdant les mmes caractristiques que celui de lexercice prcdent. Pour chacune des adresses
mentionnes ci-aprs, indiquez le numro de lensemble qui sera examin afin de dterminer si ladresse est
contenue dans le cache et celui de loctet rfrenc dans la ligne de cache. Nous supposerons que les bits utiliss
pour slectionner un octet lintrieur de la ligne sont les bits de poids faible de ladresse et que les bits utiliss pour
slectionner lensemble sont les bits suivants de poids plus lev.
0xABC89987
0x32651987
0x228945DB
0x48569CAC
Correction : Dans lexercice prcdent, nous avons conclu que 7 bits taient requis pour slectionner un octet dans
la ligne de cache, aussi les 7 bits de poids faible de ladresse dtermineront loctet de rfrence. Sept bits sont
galement requis pour slectionner lensemble, qui correspondra aux bits 7 13 de ladresse. Considrant cela, les
rponses sont les suivantes :
0xABC89987
Octet dans la ligne = 0x7, ensemble = 0x33 (51).
0x32651987
Les 14 bits de poids faible de cette adresse sont les mmes que ceux de la question prcdente, aussi, loctet et
lensemble seront-ils les mmes.
0x228945DB
Octet dans la ligne = 0x5B (91), ensemble = 0xB (11).
0x48569CAC
Octet dans la ligne = 0x2C (44), ensemble = 0x39 (57).
6. Taux de hit et temps daccs
Supposons quun cache possde un temps daccs (latence de cache-hit) de 10 ns et un taux de miss de 5 %. Une
modification apporte au cache ferait baisser son taux de miss 3 % mais ferait monter la latence du cache-hit 15
ns . Dans quelles conditions cette modification pourrait-elle offrir de meilleures performances (temps daccs moyen
la mmoire plus court) ?
Correction : Le temps daccs moyen la mmoire est (Thit Phit )+(Tmiss Pmiss). Pour que la modification permette
de rduire le temps daccs, il est ncessaire que (15 ns0,97)+(Tmiss 0,03) < (10 ns0,95)+ (Tmiss0,05). En
rsolvant cette ingalit, on obtient Tmiss > 252,5 ns. Dans les cas o le temps de cache-miss est suprieur cette
valeur, la rduction de frquence des cache-miss aura plus dimpact sur le temps daccs moyen que laugmentation
du temps de cache-hit. De manire intuitive, ce rsultat parat logique : mesure que le temps de cache-miss devient
plus important, nous serons plus facilement prdisposs augmenter le temps de cache-hit pour rduire le taux de
cache-miss, parce que chaque cache-miss devient de plus en plus pnalisant.
7. Taux de hit et temps dextraction de ligne
Un cache possde un taux de hit de 95 %, des lignes de 128 octets et une latence de cache-hit de 5 ns. La mmoire
principale prend 100 ns pour retourner le premier mot (32 bits) dune ligne puis 10 ns pour retourner chaque mot
suivant.
Quelle est la valeur de Tmiss pour ce cache ? Nous supposerons que le cache attend que la ligne soit charge dans le
cache et rexcute ensuite lopration mmoire en obtenant alors un cache-hit. Nous ngligerons le temps requis pour
crire la ligne dans le cache une fois quelle a t extraite de la mmoire principale. Nous supposerons galement que
le cache prend le mme temps pour dtecter un miss quil nen requiert pour un cache-hit.
Correction : Le cache possde des lignes de 128 octets qui correspondent 32 mots. En considrant les temps
dopration mmoire indiqus, le cache ncessite 5 ns pour dtecter quun miss est survenu et 100 ns+ (3110 ns) =
410 ns pour extraire une ligne de la mmoire principale et la placer dans le cache. Le cache rexcute alors
lopration qui a caus le miss, ce qui prend 5 ns. Ceci donne un temps de cache-miss de 420 ns.
Si le fait de doubler la longueur de ligne du cache permet de rduire le taux de miss 3 %, le temps daccs moyen
la mmoire sen trouvera-t-il rduit ?
Correction : Pour le cache de dpart, le temps daccs moyen la mmoire est (0,955 ns)+(0,05 420 ns) = 25,75
ns. Si nous doublons la longueur de ligne, les lignes de cache font 64 mots et ncessitent 730 ns pour tre extraites
de la mmoire, aussi la latence du cache miss atteint-elle 740 ns. Le temps moyen daccs la mmoire devient
(0,975 ns)+(0,03740 ns) = 27,05 ns. Si nous oprions ce changement, le temps moyen daccs la mmoire serait
donc au contraire augment.
8. checs obligatoires, de capacit et de conflit
Un programme accde 1 000 000 de rfrences mmoire. Lorsquil tourne sur un systme donn, le cache obtient
un taux de miss de 7 %, dont un quart sont des checs obligatoires, un autre quart des checs de capacit
et la moiti des checs de conflits.
Si la seule modification que vous pouvez apporter au cache consiste augmenter son degr dassociativit, quel est
le nombre maximal de miss que vous pouvez esprer liminer ?
Correction : Le fait daugmenter le degr dassociativit permettra de rduire le nombre dchecs de conflits (des
miss qui surviennent parce que les lignes de cache se font concurrence pour des emplacements dans le cache), mais
naffectera pas le nombre dchecs de capacit (les miss qui surviennent parce quun programme rfrence plus de
donnes que ne peut en contenir le cache). En consquence, le mieux que nous puissions esprer en augmentant le
degr dassociativit du cache est dliminer tous les checs de conflit. Le taux de miss tant de 7 % et le programme
oprant 1 000 000 de rfrences mmoire, le nombre total de miss est de 70 000. La moiti dentre eux sont des
checs de conflit. Le nombre maximale que nous pouvons liminer en augmentant le degr dassociativit du cache
est donc de 35 000.
Si vous avez la possibilit daugmenter la taille du cache en plus de son degr dassociativit, quel est le nombre
maximal de miss que vous pouvez esprer liminer ?
Correction : En augmentant la capacit ainsi que le degr dassociativit du cache, nous pouvons liminer les miss
de capacit et les miss de conflit la fois, soit les trois quarts de lensemble des miss, pour un total de 52 500 miss.

Marcel Bosc Christophe Dehlinger Arnaud Giersch Mathieu Haefele


Benot Meister Nicolas Passat

Вам также может понравиться