Vous êtes sur la page 1sur 4

Fiche de Travaux dirigés

LA MEMOIRE CACHE
Exercice 1 : Pourquoi utilise-t-on des mémoires caches ?
Exercice 2 : Soit une mémoire cache de niveau L1 ayant les caractéristiques suivantes :
 32 mots par lignes (mots de 2 octets)
 Taille de 32ko
 L1 et L2 sont inclusifs
 4-associatifs. Remplacement LRU.
 Association par poids faible
 Taille de bus d’adresse : 32bits
1. Combien y a-t-il de lignes dans cette mémoire cache ?
2. Combien y a t-il de blocs associatifs dans cette mémoire cache ?
3. Si la mémoire cache de niveau L2 a une taille de 2 Mo, combien y a-t-il de blocs de la mémoire cache
L2 par bloc de la mémoire cache L1 ?
4. Si la mémoire fait 1Go, combien d’adresses correspondront à un bloc du cache L1 ?

Exercice 3 : Lignes et longueurs de lignes


Soit un cache d’une capacité de 32 Ko. Combien de lignes peut contenir le cache si les longueurs
de ligne sont de 32, 64 ou 128 octets ? (Indication : Le nombre de lignes d’un cache correspond
simplement à sa capacité divisée par la longueur de ligne)
Exercice 4 : Associativité et ensembles
Si un cache possède une capacité de 16 Ko et une longueur de ligne de 128 octets, combien
d’ensembles le cache possède-t-il s’il est associatif par ensemble de 2, 4 ou 8 blocs ?
(Indication : Le nombre d’ensembles dans le cache correspond au nombre de lignes divisé par
le degré d’associativité du cache)
Exercice 4 : Taux de hit et temps d’accès (corrigé)
Supposons qu’un cache possède un temps d’accès (latence de cache-hit) de 10 ns et un taux de
miss de 5 %. Une modification apportée au cache ferait baisser son taux de miss à 3 % mais
ferait monter la latence du cache-hit à 15ns . Dans quelles conditions cette modification pourrait-
elle offrir de meilleures performances (temps d’accès moyenà la mémoire plus court) ?
(Indication : Le temps d’accès moyen à la mémoire est (Thit ×Phit )+(Tmiss ×Pmiss). Pour que
la modification permette de réduire le temps d’accès, il est nécessaire que (15 ns×0,97)+(Tmiss
×0,03) < (10 ns×0,95)+ (Tmiss×0,05). En résolvant cette inégalité, on obtient Tmiss > 252,5
ns. Dans les cas où le temps de cache-miss est supérieur à cette valeur, la réduction de
fréquence des cache-miss aura plus d’impact sur le temps d’accès moyen que l’augmentation du
temps de cache-hit.)
Exercice 5 : Échecs obligatoires, de capacité et de conflit (corrigé)
Un programme accède à 1 000 000 de références mémoire. Lorsqu’il tourne sur un système
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.
1. Si la seule modification que vous pouvez apporter au cache consiste à augmenter
son degré d’associativité, quel est le nombre maximal de miss que vous pouvez
espérer éliminer ?
Correction : Le fait d’augmenter le degré d’associativité permettra de réduire le nombre
d’échecs de conflits (des miss qui surviennent parce que les lignes de cache se font
concurrence pour des emplacements dans le cache), mais n’affectera pas le nombre
d’échecs de capacité (les miss qui surviennent parce qu’un programme référence plus de
données que ne peut en contenir le cache). En conséquence, le mieux que nous puissions
espérer en augmentant le degré d’associativité du cache est d’éliminer tous les échecs de
conflit. Le taux de miss étant de 7 % et le programme opérant 1 000 000 de références
mémoire, le nombre total de miss est de 70 000. La moitié d’entre eux sont des échecs de
conflit. Le nombre maximal que nous pouvons éliminer en augmentant le degré
d’associativité du cache est donc de 35 000.
2. Si vous avez la possibilité d’augmenter la taille du cache en plus de son degré
d’associativité, quel est le nombre maximal de miss que vous pouvez espérer
éliminer ?
Correction : En augmentant la capacité ainsi que le degré d’associativité du cache, nous
pouvons éliminer les miss de capacité et les miss de conflit à la fois, soit les trois quarts
de l’ensemble des miss, pour un total de 52 500 miss.
Exercice 6 :
On suppose qu’un programme est composé d’une boucle de 10 instructions. Supposons
également que la moitié des instructions se trouvent en mémoire cache et l’autre moitié en
mémoire centrale. Si le temps d’accès au cache est de 5 ns et celui de la mémoire centrale est de
20 ns, on veut calculer le temps global d’exécution du programme (on négligera le temps
d’exécution des instructions par le processeur)
1. Quel est le temps d’exécution dans le cache ? dans la mémoire centrale ?
2. En déduire le temps d’exécution global
Exercice 7 :
Si le temps d’accès au cache est de 5 ns, le temps de pénalité au cache est de 10 ns, et que le
temps d’échec du cache est de 20 ns. Calculez le temps de récupération d’une instruction.
(Indication : Temps de récupération = T_échec × T_penalité+ (1 – T_échec ) × T c)
Exercice 8 :
Supposons que le temps d’accès au cache est de 5 ns, et que le temps d’accès à la mémoire
centrale est de 100 ns. Si le temps d’exécution d’un programme est de 95 ns, dans quelle
mémoire se trouvent ces instructions ? et quel est le nombre total des instructions du
programme ?

LES LOIS D’OPTIMISATION


Exercice 1 : Calculez l’accélération totale (gain) selon la loi d’Amdahl et l’efficacité du système
avec 8 processeurs, et 80% pour la partie parallélisable.
On rappelle que : Efficacité parallèle = Accélération / Nombre de processeur
Exercice 2 : Un programme pour lequel 90 % pourrait s’exécuter en parallèle.
1. Calculer le gain maximal avec huit (8) processeurs suivant la loi de Amdahl
2. Même question avec la loi de Gustafson
Exercice 3 : Calculez l’accélération maximale par la loi de Amdahl sur une machine parallèle
sans limite de processeurs, pour un programme pour lequel 75 % pourrait s’exécuter en parallèle
Exercice 4 : Un programme s’exécute en 220 secondes sur 64 processeurs. Des mesures
montrent que 5 % du temps d’exécution est pour des parties séquentielles. Quelle sera
l’accélération obtenue par ce programme.
1. Par la loi de gustafson ?
2. Par la loi de Amdahl ?
Exercice 5 : Avec seulement 5% du calcul total restant séquentiel, quel est le nombre suffisant
de processeurs d'un calculateur parallèle pour atteindre le maximum d'efficacité
Exercice 6 : Un programme séquentiel a 20% de son temps d’exécution qui ne peut être
parallélisé. On veut l’accélérer à taille constante. Quel est le nombre de processeurs nécessaire
pour obtenir une efficacité parallèle de 50% ?
Exercice 7 : Soit une application dont le pourcentage de son temps d’exécution pouvant
bénéficier du parallélisme est 40 %. On va intéresser aux limites théoriques atteignables en
termes de d’accélération en suivant la loi d’Amdahl.
1. Exprimez cette accélération (speed-up) en fonction de α, la fraction de l’algorithme
bénéficiant du parallélisme et de P, le nombre de processeurs
2. Remplir ce tableau à deux entrées qui indique l’évolution de cette loi en fonction de P et
α sous la forme

3. Pour un parallélisme de 40%, commentez le speed-up et l’efficacité obtenue en


augmentant le nombre de processeurs.
4. Donner le speed-up max pouvant être atteint. En déduire par quoi est bornée la loi
d’Amdahl
Exercice 8 : Le but de l’exercice est de comparer la loi d’Amdahl à la loi de Gustafson
1. Exprimer le speed-up selon la loi de Gustafson
2. Comparer à l’aide d’un tableau les speed-up obtenus avec les deux lois pour le
programme de l’exercice précédent
Exercice 9 : On considère un problème d’une certaine taille. Un programme parallèle passe 6%
de son temps d’exécution dans les opérations exécutées sur un seul processeur. Quel est le
nombre minimal de processeurs pour que le programme parallèle produise une accélération de
10 par rapport au programme séquentiel ?
Exercice 10 : Un programme a une accélération de 8 sur 12 processeurs. Quelle est la fraction
maximale du temps d’exécution séquentiel qui peut correspondre à des opérations purement
séquentielles ?
Exercice 11 : On considère deux algorithmes (A et B) qui permettent de calculer la somme des
matrices :

1. Calculer l’accélération et l’efficacité de chaque algorithme.


2. Faire une comparaison entre ces deux algorithmes

Vous aimerez peut-être aussi