TD 4 – Architecture des Ordinateurs
M´emoire cache
Licence Informatique 3eme` Ann´ee – UPPA
Les 2 premiers exercices traitent de l’´etude de hi´erarchies m´emoire incluant plusieurs niveaux de cache. Les temps d’acc`es des m´emoires y sont exprim´es en nombre de cycles d’horloge processeur. Le temps d’acc`es en cas d’´echec correspond au temps qu’il faut pour rechercher la donn´ee dans le niveau de cache. Le temps d’acc`es en cas de succ`es est le temps total pour acc´eder `a la donn´ee en cas de succ`es (temps de recherche de la donn´ee plus temps de lecture/´ecriture de la donn´ee). Le temps d’acc`es moyen ti d’un niveauiest donn´e par la formule suivante :
ti=tempsacces−succes∗tauxsucces+ (tempsacces−echec+ti+1)∗tauxechec
Exercice 1 : ´ etude d’une hi´ erarchie m´ emoire ` a 3 niveaux
Niveau Temps acc`es Temps acc`es Taux de Taille (succ`es) (´echec) succ`es
Cache L1 3 1 80% 128 Ko
Cache L2 5 2 90% 512 Ko
Cache L3 12 4 95% 2 Mo
M´emoire 40 1 Go
1. `A partir des performances du tableau ci-dessus, calculer le temps d’acc`es moyen global pour les 4 hi´erarchies m´emoires suivantes :
(a) M´emoire centrale seule
(b) M´emoire centrale avec cache L1 (c) M´emoire centrale avec cache L1 et L2 (d) M´emoire centrale avec cache L1, L2 et L3
2. Conclure sur l’apport de chaque niveau de cache dans cette hi´erarchie
Exercice 2 : choix d’une hi´ erarchie m´ emoire
Type de Temps acc`es Temps acc`es Taux de Taux de Taille m´emoire succ`es ´echec succ`es en L1 succ`es en L2
A 2 1 50% X 32 Ko
B 7 5 80% 50% 64 Ko
B 10 7 90% 70% si L1=32 Ko 128 Ko
50% si L1=64 Ko
RAM 50 512 Mo
Le tableau ci-dessus d´ecrit le temps d’acc`es pour une m´emoire centrale ainsi que pour deux types de m´emoire A et B en diff´erentes tailles pouvant servir `a construire des m´emoires cache `a 2 niveaux. La m´emoire cache fonctionne en mode inclusif. La quatri`eme colonne du tableau donne le taux d’acc`es si la
1
m´emoire est utilis´ee au niveau L1. La cinqui`eme colonne du tableau donne le temps d’acc`es d’un type de m´emoire si elle est utilis´ee au niveau L2 en fonction de la taille du niveau L1.
Questions :
1. Pourquoi le tableau ne donne pas de temps d’acc`es en cas d’´echec ou de taux de succ`es d’acc`es pour la m´emoire centrale ?
2. Expliquer d’o`u pourrait venir les diff´erences de performances, `a la fois en terme de temps d’acc`es et de taux de succ`es des 2 types de m´emoire, et pourquoi cela peut d´ependre du niveau pr´ec´edent.
3. D´eterminer et justifier la meilleure combinaison (parmi tous les types et tailles propos´es) possible de ces m´emoires A et B pour construire une m´emoire cache `a au plus 2 niveaux.
Exercice 3 : gestion en cache des donn´ ees d’un programme
Nous allons dans cet exercice ´etudier comment les donn´ees d’un programme sont g´er´ees en m´emoire cache. Ce programme est le suivant :
int A[1000], B[1000], C[1000];
int sum, i, moy;
int NB = 1000;
...
sum = 0;
for(i = 0; i < NB; i++) {
C[i] = A[i] + B[i];
sum += A[i];
}
moy = sum / NB;
Pour simplifier cette ´etude, nous allons consid´erer une hi´erarchie m´emoire avec un seul niveau de cache, dont voici les caract´eristiques :
– Une m´emoire centrale de 64 Mo
– Une m´emoire cache d’une taille de 8 Ko – Les lignes ont une taille de 32 octets
Les entiers ont une taille de 32 bits. Une adresse m´emoire r´ef´erence en m´emoire centrale un mot m´emoire d’un octet. Les donn´ees du programme sont stock´ees en m´emoire de mani`ere contig¨ue dans l’ordre de leurs d´eclarations. La premi`ere donn´ee est donc le tableau A dont le premier ´el´ement en m´emoire se trouve `a l’adresse 4000.
Questions :
1. Pr´eciser o`u sont plac´ees les donn´ees du programme en m´emoire et les lignes auxquelles elles appar- tiennent.
2. La m´emoire cache fonctionne en mode correspondance directe. D´eterminer les principales ´evolutions du contenu de la m´emoire cache. D´eterminer les probl`emes (d´efaut de cache, conflit de ligne ...) avec l’utilisation de ce mode.
3. La m´emoire cache fonctionne maintenant en mode correspondance associative par ensemble de 2.
D´eterminer les principales ´evolutions du contenu de la m´emoire cache.
4. Comparer l’efficacit´e des deux modes pour ce programme et estimer le taux de succ`es de chaque mode pour ces 2 m´ethodes.
5. Pour le mode associatif par ensemble, montrer qu’un pre-fechting efficace peut augmenter consid´e- rablement le taux de succ´es.
2