Vous êtes sur la page 1sur 46

Cours architecture

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)

RAM statiques: SRAM RAM dynamiques: DRAM


Information Information maintenue
maintenue par rafrachissement
spontanment sous (balayage rgulier de
tension toutes les cases
mmoires)

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

Le cot dune mmoire augmente lorsque le temps daccs


diminue. Le cot du SOC dpend de sa surface, donc de la
taille mmoire on-chip.

Compromis: Hirarchiser la mmoire avec des mmoires


caches 6
Solution: La mmoire cache

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.

permet de masquer la latence de la mmoire centrale.

Elle contient une partie des donnes et des instructions contenues


dans la mmoire centrale.
7
Plusieurs niveaux de
mmoire cache
Parce que cest trs couteux davoir la fois une cache rapide et ayant une
grande capacit, on a recours plusieurs niveau de caches.

Mmoire
principale

La plus rapide Moins La moins


rapide
rapide rapide

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

Cache Hit Cache Miss


Donne dans la mmoire cache : succs Donne hors de la cache: chec
Temps daccs rduit.
1. Lire un bloc de donnes partir
de la mmoire centrale
Temps daccs lent

2. Lenvoyer au processeur &


Lcrire dans la cache .

Question : ou est ce que cette


Donne sera crite dans la cache?
13
Pourquoi a marche? Localit

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

Processeur Cache Mmoire


Principale
Donne Donne
Bit de validit:
Si V =0 alors la V Tag Bloc de donnes
Ligne est libre
100 Ligne de cache =
304
<tag, block de donnes>

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

1. Organisation correspondance directe avec la mmoire


(Direct Mapped) :

Chaque bloc de la mmoire ne peut tre charg qu un seul endroit du


cache. En gnral la fonction de correspondance est un simple calcul
de modulo sur ladresse mmoire
2. Organisation totalement associative (Fully associative) :

Chaque bloc de la mmoire principale peut tre charg n'importe quel


endroit du cache
3. Organisation associative par ensembles (set associative) :

Le cache est divis en ensembles d'emplacements et chaque bloc de la


mmoire principale ne peut tre charg qu' l'intrieur d'un des
ensembles. Cette organisation est un compromis entre les deux
organisations prcdentes.

20
1.Cache correspondance
Exemple:
directe
mmoire cache de 16 Ko
Un bloc de 16 octets Nombre d' octets par bloc 2 w

Adresse sur 32 bits

m Nombre de bloc de la cache 2s

Adresse physique vers cache et mmoire principale

Tag Line (index) Word (offset)

18 bits W=4 bits


S=10 bits
1.Cache correspondance directe
(Direct Mapped)
Adresse mmoire Cache
Tag Data Mmoire principale
Tag Line (index) word
W0
s w L0
W1 B0
W2
. W3
.
.
.
.
Compare Li .
w W4j
hit W(4j+1) Bj
.
. W(4j+2)
. W(4j+3)
Miss Lm-1
.
. 22
.
1. Cache correspondance directe
(Direct Mapped)
Avantage : circuit pour accder aux donnes plus simple donc plus rapide

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,
..
.

supposons m-1 m-1,


que le processeur fait accs au 2m-1, 3m-1,...
bloc 0 et juste aprs au bloc m
23
dans une boucle (N fois) chaque accs un dfaut de cache
2. Cache totalement associative
(fully associative)
Un block de la mmoire principale peut
tre plac dans nimporte quelle ligne j du
cache.

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.

La cache est divise en v ensemble (sets), chaque


ensemble est constitu de k lignes

M=vk
i = j modulo v

Avec i = N de lensemble du cache


j = N du bloc de la mmoire principale
M = nombre de lignes du cache
27
3. Associative par ensembles (set
associative)
Adresse mmoire Cache
Tag Data Mmoire principale
Tag set word
F0
s w B0
W0
d
F1
set0
. B1
W2
.
.
Fk-1 .
w .
Fk .
Compare

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

Soit un cache dune capacit de 32 Ko. Combien de


lignes peut contenir le cache si les longueurs de ligne
sont de 32, 64 ou 128 octets ?

3. Associativit et ensembles

Si un cache possde une capacit de 16 Ko et une


longueur de ligne de 128 octets, combien densembles
le cache possde-t-il sil est associatif par ensemble
de 2, 4 ou 8 blocs ?

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 de choix alatoire (Random) : la ligne est choisie de manire


alatoire parmi les lignes possibles. Cette stratgie peu coteuse en logique
est peu fiable du point de vue des performances

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

Write Buffer : FIFO entre le processeur et la mmoire


Le processeur crit la donne dans le cache et dans le Write buffer
Contrleur mmoire: crit le contenu du buffer dans la mmoire
principale
Avantage
- regroupement des critures (burst)
- Priorit au lecture/ criture 36
Lcriture au plus tard (Write Back)

la ligne est marque modifie et


elle sera recopie en mmoire
lorsqu'elle sera la cible d'un
remplacement

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.

Algorithme simplifi de contrle du cache:


Soit accder une valeur donne dans la mmoire principale situe dans un bloc
ladresse Xb.
Si le bloc Xb est dans le cache /*cache hit*/
- Mettre jours la variable de remplacement de bloc situ dans le contrleur du cache;
- Slectionner et accder la valeur dans le bloc Xb dans le cache.
Sinon /*cache miss*/
- Lire dans la mmoire principale le bloc Xb et le placer une position fonction de ltat
de la variable de remplacement du bloc.
/* Transfert de blocs => N cycles dchanges entre cache et mmoire (miss pnality)*/
- Slectionner et accder la valeur dans le bloc Xb dans le cache
38
fin
Placement des donnes 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

Pour amliorer la performance il faut :


Rduire le taux dchec
Rduire la pnalit dchec
Rduire le temps daccs la mmoire cache
42
Les causes dchecs (les 3C)
checs de dmarrage:
Premiers accs une donne ou une instruction.
checs de capacit:
la mmoire cache est trop petite par rapport aux besoins
du programme.
checs de conflit:
le mcanisme de correspondance utilis (correspondance
directe ou associativit par ensemble remplace des lignes
dj prsentes dans la mmoire cache (alors que dautres
lignes peuvent tre non utilises).

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;
}

Cette transformation rduit le nombre de cache miss. 45


Cache victime (Victim Cache)

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