TD 4 – Architecture des Ordinateurs

Transcription

TD 4 – Architecture des Ordinateurs
TD 4 – Architecture des Ordinateurs
Mémoire cache
Licence Informatique 3ème Année – UPPA
Les 2 premiers exercices traitent de l’étude de hiérarchies mémoire incluant plusieurs niveaux de
cache. Les temps d’accès des mémoires y sont exprimés en nombre de cycles d’horloge processeur. Le
temps d’accès en cas d’échec correspond au temps qu’il faut pour rechercher la donnée dans le niveau de
cache. Le temps d’accès en cas de succès est le temps total pour accéder à la donnée en cas de succès
(temps de recherche de la donnée plus temps de lecture/écriture de la donnée). Le temps d’accès moyen
ti d’un niveau i est donné par la formule suivante :
ti = tempsacces−succes ∗ tauxsucces + (tempsacces−echec + ti+1 ) ∗ tauxechec
Exercice 1 : étude d’une hiérarchie mémoire à 3 niveaux
Niveau
Cache L1
Cache L2
Cache L3
Mémoire
Temps accès
(succès)
3
5
12
40
Temps accès
(échec)
1
2
4
Taux de
succès
80%
90%
95%
Taille
128 Ko
512 Ko
2 Mo
1 Go
1. À partir des performances du tableau ci-dessus, calculer le temps d’accès moyen global pour les 4
hiérarchies mémoires suivantes :
(a) Mémoire centrale seule
(b) Mémoire centrale avec cache L1
(c) Mémoire centrale avec cache L1 et L2
(d) Mémoire centrale avec cache L1, L2 et L3
2. Conclure sur l’apport de chaque niveau de cache dans cette hiérarchie
Exercice 2 : choix d’une hiérarchie mémoire
Type de
mémoire
A
B
B
Temps accès
succès
2
7
10
RAM
50
Temps accès
échec
1
5
7
Taux de
succès en L1
50%
80%
90%
Taux de
succès en L2
X
50%
70% si L1=32 Ko
50% si L1=64 Ko
Taille
32 Ko
64 Ko
128 Ko
512 Mo
Le tableau ci-dessus décrit le temps d’accès pour une mémoire centrale ainsi que pour deux types de
mémoire A et B en différentes tailles pouvant servir à construire des mémoires cache à 2 niveaux. La
mémoire cache fonctionne en mode inclusif. La quatrième colonne du tableau donne le taux d’accès si la
1
mémoire est utilisée au niveau L1. La cinquième colonne du tableau donne le temps d’accès d’un type de
mémoire si elle est utilisée au niveau L2 en fonction de la taille du niveau L1.
Questions :
1. Pourquoi le tableau ne donne pas de temps d’accès en cas d’échec ou de taux de succès d’accès pour
la mémoire centrale ?
2. Expliquer d’où pourrait venir les différences de performances, à la fois en terme de temps d’accès
et de taux de succès des 2 types de mémoire, et pourquoi cela peut dépendre du niveau précédent.
3. Déterminer et justifier la meilleure combinaison (parmi tous les types et tailles proposés) possible
de ces mémoires A et B pour construire une mémoire cache à au plus 2 niveaux.
Exercice 3 : gestion en cache des données d’un programme
Nous allons dans cet exercice étudier comment les données d’un programme sont gérées en mémoire
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 étude, nous allons considérer une hiérarchie mémoire avec un seul niveau de
cache, dont voici les caractéristiques :
– Une mémoire centrale de 64 Mo
– Une mémoire 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émoire référence en mémoire centrale un mot
mémoire d’un octet. Les données du programme sont stockées en mémoire de manière contigüe dans
l’ordre de leurs déclarations. La première donnée est donc le tableau A dont le premier élément en
mémoire se trouve à l’adresse 4000.
Questions :
1. Préciser où sont placées les données du programme en mémoire et les lignes auxquelles elles appartiennent.
2. La mémoire cache fonctionne en mode correspondance directe. Déterminer les principales évolutions
du contenu de la mémoire cache. Déterminer les problèmes (défaut de cache, conflit de ligne ...)
avec l’utilisation de ce mode.
3. La mémoire cache fonctionne maintenant en mode correspondance associative par ensemble de 2.
Déterminer les principales évolutions du contenu de la mémoire cache.
4. Comparer l’efficacité des deux modes pour ce programme et estimer le taux de succès de chaque
mode pour ces 2 méthodes.
5. Pour le mode associatif par ensemble, montrer qu’un pre-fechting efficace peut augmenter considérablement le taux de succés.
2