Professional Documents
Culture Documents
1. Pour tous les types de mmoire suivants, donnez les qualificatifs applicables ainsi que les ordres de grandeur des
paramtres numriques pour la capacit (usuelle), la taille physique, la latence : DRAM, ROM, SRAM, disque
dur, disquette HD, DVD, cdrom, bande magntique. DRAM : semi-conducteur, volatile, effaable, 1 Go, 5
cm, 50 ns
ROM : semi-conducteur, non-volatile, non-effaable, 100 ko, 1 cm, 100 ns
... finir
Mmoire cache
On se place dans le cas dun processeur qui utilise un adressage de 4 Gio de mmoire, avec 8 kio de mmoire cache.
Cette taille de mmoire cache ne changera pas dans tout lexercice. On utilisera des mots-mmoires de 32 bits.
1. Quelle est la taille dune adresse (en bits) ?
32 bits
2. On utilise les donnes suivantes :
temps daccs la mmoire cache : 5 ns,
latence daccs la mmoire principale : 40 ns ; mmoire,
temps de cycle en mode page : 10 ns par mot mmoire ; supplmentaire ;
Quel est le temps ncessaire pour consulter un mot mmoire en cas de succs de cache ? Et pour seulement un
octet ?
5 ns, pour un mot mmoire ou un octet.
3. Si la taille dun bloc de mmoire est fixe 512 bits, en cas de dfaut de cache, quel est le temps de pnalit ?
512 bits=16 mots mmoires, donc 16*10+40=200 ns.
4. Mme question si la taille dun bloc de mmoire est fixe 256 bits.
256 bits=8 mots mmoires, donc 8*10+40=120 ns.
5. On a le choix entre trois modes de construction de cette mmoire : par cache direct de 256 bits par bloc (temps
daccs 3 ns), par cache associatif par ensemble quatre voies de 256 bits par bloc (temps daccs 4 ns), par
cache associatif mais avec 512 bits par bloc (temps daccs 5 ns).
Des expriences montrent que pour le genre dapplications que lon va utiliser sur cette machine, dans la premire
solution, on a un taux de succs cache de 75%, dans la deuxime un taux de succs de 80% et dans la troisime
un taux de succs de 87%.
Quel est la solution la plus intressante ? Justifiez en exhibant le temps moyen daccs la mmoire dans les
trois cas.
Premier cas : 5+0, 25120 = 35 ns. Deuxime cas : 5+0, 2120 = 29 ns. Troisime cas : 5+0, 13200 = 31 ns.
Il est donc meilleur de prendre la deuxime solution.
6. Dans le cas de la premire solution, dcrivez comment on dcompose une adresse (nombre de bits en particulier).
Dites aussi combien de blocs diffrentes peuvent rsider en mmoire cache.
La slection octets stale sur 256 bits soit 32 octets, soit 5 bits pour slectionner un octet. Il peut y avoir
jusqu 8192/32=256 blocs diffrents en mmoire, qui forment 8 bits dindex cache. Les 32 8 5 = 19 bits
restants servent identifier le bloc.
7. Dans le cas de la deuxime solution, dcrivez comment on dcompose une adresse (nombre de bits en particulier).
Dites aussi combien de blocs diffrents peuvent rsider en mmoire cache, ainsi que le nombre de blocs par voie.
La slection octet stale toujours sur 5 bits, mais il ny a plus que 64 index caches diffrents, car ils sont
rpartis en quatre voies (soit bien 256 blocs au total). Donc, il y a 6 bits dindex cache et 32-6-5=21 bits
didentifiant de bloc.
Une matrice est reprsente en C par un tableau de taille N2 de float (cest--dire des nombres cods selon le
standard IEEE 754).
Dans lordinateur que nous examinons, les blocs de mmoire cache de donnes (cache associatif) sont de 256 mots
de 4 octets, avec une taille totale de mmoire cache de 2 Mo. On veut faire une multiplication de matrices.
Rappel : le coefficient cij dune matrice C = A B est
X
cij =
aik bkj .
1kN
Le temps de calcul dun produit de matrice est donc le temps de N3 multiplications et N3 additions, ainsi que
quelques oprations qui prennent assez peu de temps par rapport au reste (tests de fin de boucle).
1. Quelle est la quantit de mmoire ncessaire pour stocker une matrice de taille 4 4 ? Et une matrice de taille
N N en gnral ? 16 float stocker, soit 64 octets. Et 4N2 octets en gnral.
2. On veut calculer C = A2 . chaque tape de calcul, on raffiche compltement les deux matrices (A et C, mme
si C nest pas encore calcule compltement) . Jusqu une certaine taille de matrice, on constate que le temps
de calcul ressemble t = k N3 , avec un certain k qui dpend de la vitesse du processeur. Mais partir dune
certaine taille, on constate un trs fort ralentissement. Comment peut-on lexpliquer ? Quelle est cette taille ?
On doit mettre en mmoire la matrice dorigine complte et la matrice rsultat. Quand il ny a plus de place
en mmoire cache, les calculs ncessitent daccder des donnes qui sont en mmoire principale, vacuant des
donnes qui vont resservir un peu aprs, et donc revenir dans la mmoire cache. Cet effet de ping-pong peut faire
perdre beaucoup de temps. La taille partir de laquelle se dclenche cet effet est quand la mmoire est pleine.
M = 2 4 N2 = 22 1, donc N2 = 21 8 octets. Donc N = 29 .
3. On constate que laffichage dune matrice entre la taille 8 et la taille 9 est assez important. Quelle peut-tre
lexplication ? La taille 8 correspond la taille dun bloc de la mmoire cache. Lorsquon dpasse cette taille,
mme sil ny a pas beaucoup de cases mmoires en plus, il faut charger un autre bloc en mmoire.