Académique Documents
Professionnel Documents
Culture Documents
Avances
Chapitre 2: mmoires
caches
1 ING - Institut Suprieur
dInformatique
2015-2016
Introduction
Processeur
(registres: Mmoire
SRAM) Centrale:
DRAM
Les performances des systmes base de microprocesseur sont gnralement
limites par le temps daccs la mmoire :
Temps daccs la mmoire (lecture ou criture)
>>
Temps des opration effectues par un processeur
( dcodage, accs aux registres internes, excution UAL)
Gap de performance entre
processeur et mmoire
Les mmoires vives
RAM ( Random Access
Memory)
Cellule SRAM
Cellule DRAM
4
Les mmoires vives
SRAM VS DRAM
SRAM DRAM
Plus rapide Moins rapide
Capacit dintgration plus Capacit dintgration plus
rduite importante
Plus couteuse Moins couteuse
Plus encombrante Moins encombrante
5
Quelle solution??
Les performances dun processeur sont directement lies
celles de la mmoire. La mmoire doit avoir:
1. Une taille suffisante pour contenir le code et les donnes de lapplication
cible
2. Un temps daccs en rapport avec le temps du cycle processeur
Ces deux aspects sont quasi incompatibles dans le cas
gnral et surtout pour les SOCs: il est trs (trop) couteux
dintgrer une SRAM de taille et de performance importante
Mmoire Mmoire
Processeur Cache:
Centrale:
(registres: Rapide, petite
SRAM Lente,
SRAM)
grande
DRAM
La mmoire cache ( antmmoire) est une mmoire de capacit plus rduite
que la mmoire centrale et ayant un temps daccs plus rduit.
Mmoire
principale
8
Plusieurs niveaux de
mmoire cache
Architecture Harvard pour la cache L1:
Mmoire principale
CPU
9
Hirachie mmoire : ordre
de grander
Fonctionnement des
mmoires cache
Comment a marche ?
12
Fonctionnement : hit / miss?
Le processeur envoie sa requte la mmoire cache
14
Exploitation de la localit
15
Localits des donnes et des
instructions
Les donnes, comme les instructions, possdent de fortes proprits de localits
16
La frquence des succs (hit rate) dpend de toutes ces 17
caractristiques.
Inside a Cache
Addresse Addresse
6848
416 Block de donnes
Etiquette Quel est le nombre de bits qui sont allous ltiquette (TAG)?
de ladresse Assez pour identifier un bloc
(Tag)
Diffrentes organisations du cache
O placer une ligne de cache de la mmoire principale dans le cache ?
19
Diffrentes organisations du cache
20
1.Cache correspondance
Exemple:
directe
mmoire cache de 16 Ko
Un bloc de 16 octets Nombre d' octets par bloc 2 w
Inconvnient:
Des blocs diffrents de la mmoire principale seront stock
dans la mme ligne du cache
Ligne du cache Blocs de la mmoire
principale
0 0, m, 2m, 3m,
1 1, m+1, 2m+1,
..
.
24
2.Cache totalement associative
(fully associative)
Adresse mmoire Cache
Tag Data Mmoire principale
Tag word
W0
s w L0
W1 B0
W2
. W3
.
.
.
.
Compare Li .
w W4j
hit W(4j+1) Bj
1 galit = Succs .
. W(4j+2)
. W(4j+3)
Miss Lm-1
.
0 galit = Echec . 25
.
2. Cache totalement associative
(fully associative)
Avantage : le choix de la ligne remplacer
quand un dfaut de cache se prsente .(les
techniques de remplacement seront prsentes plus
tard)
Inconvnient :
circuit plus complexe pour examiner le tag
(tiquette) de chaque ligne
m comparateurs pour dtecter succs ou
chec
26
3. Associative par ensembles (set
associative)
Correspondance directe pour les ensembles et
associativit lintrieur dun ensemble. k comparateurs.
M=vk
i = j modulo v
Fk+i set1 Bj
W4j
hit .
.
.
F2k-1
Miss
.
. 28
.
Exercices dapplication
1.Adressage
Pour un cache dont les lignes font 128 octets,
donnez ladresse du premier mot dans la ligne
contenant ladresse suivante :
0xA23847EF
0x7245E824
0xEEFABCD2
29
Exercices dapplication
2. Lignes et longueurs de lignes
3. Associativit et ensembles
30
Exercice dapplication
4. Adressage
Soit un cache de 64ko, des lignes de 128 octets et un degr
dassociativit de 4.
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
31
Stratgies de remplacement
Le chargement d'une ligne dans un cache se fait en gnral au dtriment
d'une ligne dj prsente. Un mcanisme matriel arbitre le
remplacement des lignes dans un ensemble.
Sur les caches associatifs, plusieurs stratgies de remplacement sont
couramment utilises :
La stratgie LRU (Least Recently Used) : la ligne choisie est celle qui a t la
plus anciennement rfrence. Une variable de remplacement (des bits) est
rajout ltiquette. chaque accs la variable est mis jours.
Cette stratgie donne en gnral de bons rsultats, mais devient assez
coteuse lorsque l'associativit crot.
32
Lcriture en mmoire en cas
de succs
Gestion de la cohrence des
donnes
Seules les critures modifient ltat de la mmoire.
Rgle: Toute donne crire doit ltre dans le
cache et aussi dans la mmoire principale. Dans la
mmoire principale il doit y avoir un tat cohrent
des donnes.
Deux techniques sont gnralement utilises lors
des critures:
Lcriture au travers (Write through)
Lcriture au plus tard (Write Back)
34
Lcriture au travers (Write through)
rapide
lent
35
Lcriture au travers (Write through)
rapide lent
rapide lent
37
rcapulatif
Lors de laccs une donne, si la valeur est prsente dans le cache, elle est
directement chang avec le processeur. Dans le cas contraire, elle doit tre accd
dans la mmoire principale pour tre recopi dans le cache.
39
Plusieurs niveaux de cache
Parce quon ne peut pas avoir la fois une cache rapide et ayant une grande capacit,
on a recours plusieurs niveau de caches.
40
Plusieurs niveaux de cache
Architecture Harvard pour la cache de niveau 1
41
Performances des mmoires
caches
Temps daccs moyen la mmoire (AMAT)
=
Temps dun succs * taux de succs + Taux
dchecs * pnalit dchec
43
Rduire le temps moyen daccs
la mmoire
Rduire le taux dchec
Augmenter la taille de la mmoire cache
Augmenter lassociativit
Stratgie de remplacement
Optimisations du programme
Rduire le temps daccs
Rduire la taille de la mmoire cache et lassociativit.
Rduire le temps de pnalit
Diffrents niveaux de cache
Cache victimes
44
Optimisation du programme
Boucles
modifies for(j=0;j<N;j++)
for(i=0;i<N;i++)
for(j=0;j<N;j++) for(i=0;i<N;i++)
A[j][i] = A[j][i] A[j][i] = A[j][i]
+1; Hypothse : les donnes sont stockes par +1;
ligne, A[j][i] et
A[j][i+1] sont des adresses conscutives.
for(i=0;i<N;i++) Fusion de
for(i=0;i<N;i++)
B[i]=A[i] +1; boucles
{
for(i=0;i<N ;i++) B[i]=A[i] +1;
C[i]=A[i] * 3; C[i]=A[i] * 3;
}
Une mmoire cache de taille trs rduite totalement associatif, appel Victim cache ,
li au niveau L1 dun cache adressage direct (Direct Mapped) mais isole de la mmoire
principale.
La recherche se fait dabord dans la mmoire cache L1.
En cas de cache Miss, la recherche se fait dans la victim cache. Si linformation est
prsente elle sera envoye au processeur.
Si linformation nest pas dans la victim cache, elle sera cherche dans les autres
niveaux de cache ou dans la mmoire principale.
La donne qui sera remplace dans L1 sera crite dans la victim cache 46