Vous êtes sur la page 1sur 47

Cours architecture

Avances
Chapitre 2: mmoires
caches
1 ING - Institut Suprieur dInformatique
2016-2017
Zouhour Ben Azouz
Hanane Ben Fradj
Introduction

Processeur
(registres: Mmoire
SRAM) principale:
DRAM
s des systmes base de microprocesseur sont gnralement
mps daccs la mmoire :
s la mmoire (lecture ou criture)

>>
s des oprations effectues par un proces
odage, accs aux registres internes, exc 2
Gap de performance entre
processeur et mmoire

3
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 (malgr
Capacit dintgration plus laugmentation de
rduite performance: SDRAM,
Plus couteuse DDR2,DDR3, DDR4..)
Plus encombrante Capacit dintgration plus
importante
Moins couteuse
Moins encombrante

5
Solution: La mmoire cache

Mmoire Mmoire
Processeur
registres:
Cache: principale:
SRAM SRAM 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 ( les plus utilises) contenues
dans la mmoire centrale.
6
Comment a marche?
Le processeur envoie sa requte ( adresse mmoire) 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 principale.

2. Lenvoyer au processeur &


Lcrire dans la cache .

Question : o est ce que cette


donne sera crite dans le cache?

La frquence des succs (hit rate) dpend de la taille de la


7
cache et
de lalgorithme excut par le contrleur de la cache.
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

9
Plusieurs niveaux de
mmoire cache
Architecture Harvard pour la cache L1: un cache pour les donnes et un
cache pour les instructions

Mmoire principale

Aujourd'hui : cache
L1 et L2 sont dans la
meme puce que le
processeur : on chip
memory

CPU
10
Pourquoi a marche?

Les mmoires caches permettent de rduire le temps moyen daccs


la mmoire en se basant sur le principe de la localit spatiale et temporelle.

Localit spatiale : Lorsque le programme accde une donne ou une


instruction, il accdera trs probablement aux donnes ou aux
instructions proches en terme dadresse dans un futur proche.

Localit temporelle : Lorsque le programme accde une donne ou une


instruction, il y accdera de nouveau trs probablement dans un futur proche.

11
Localit temporelle et
spatiale
Les donnes, comme les instructions, possdent de fortes proprits de localits

12
Exploitation de la localit

La localit temporelle
est exploite en
Instruction/donne
conservant dans le
cache les donnes qui
ont t rcemment
utilises. (technique de
remplacement quant le
cache est plein)
La localit spatiale est
exploite en
chargeant les donnes 13
Caractristiques de la
mmoire cache
Taille du cache.
Taille du bloc ( appel
aussi ligne).
Instruction/donne
Organisation de la cache:
correspondance entre les
adresses de la mmoire
principale et de la
mmoire cache.
Politique de
remplacement dcriture (
contrleur de cache).
La frquence des succs (hit rate) dpend de toutes ces
14
caractristiques.
Structure de la 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 =
<tag, block de donnes>
304
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) 15
Diffrentes organisation de la
cache
O placer une information de la mmoire principale dans la mmoire
cache?
Numro du bloc

Mmoire principale

Nimporte ou Seulement
Le bloc 12 Nimporte dans Dans
peut tre plac quelle ligne lensemble 0 la ligne 4
16
Diffrentes organisation de la
cache
1. Organisation correspondance directe avec la
mmoire (Direct Mapped) :
Chaque bloc de la mmoire ne peut tre charg qu une seule
ligne 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 quelle ligne du cache.

3. Organisation associative par ensembles (set


associative) :
Le cache est divis en un ensemble d'emplacements et chaque
bloc de la mmoire principale ne peut tre charg qu'
l'intrieur d'un de ses emplacements. Cette organisation est un
compromis entre les deux organisations prcdentes.
17
Diffrentes organisation de la
cache

18
Cache correspondance
directe
Mmoire cache
Mmoire principale

19
1.Cache correspondance
directe (Direct Mapped)
Cache Direct Mapped
Adresse mmoire Mmoire principale
Tag Data
Tag Line (index) offset L0 W0
b L1
k L2 W1
B0
W2
. W3
.
.
Tag Data .
Li .
.
Compare b
W4j
hit W(4j+1)
. Bj
. W(4j+2)
Tag Data . W(4j+3)
Lm-1
Miss
.
.
20
.
Cache correspondance
directe
Numro du bloc Offset du bloc

Adresse requise
Tag Index Offset dans la mmoire principale

t
k b
V Tag Bloc de donne

2k
lines

t
=

HIT Donne

21
Cache correspondance
directe
Nombre d' octets par bloc 2 Nombre de bits de l'offset

Nombre de lignes du cache 2 Nombre de bits de l'index

Exemple:
mmoire cache de 16 Ko
Un bloc de 16 octets
Adresse sur 32 bits

18 bits 10 bits 4 bits


22
Cache correspondance
directe

23
Cache correspondance
directe

0x0-3 0x4-7 0x8-B 0xC-F

24
Cache correspondance
directe
Lecture de ladresse (cas de cache hit):
000000000000000000 0000000001 0100

0x0-3 0x4-7 0x8-B 0xC-F

1 0x 0

25
Cache correspondance
directe
Avantages:
Circuits plus simple: pas de comparateur
pour chaque ligne de cache.
Inconvnients:
Si le processeur accde deux mots
dont les adresses partagent le mme
index il y aura un cache miss.

26
1.Cache correspondance
directe (fully Associative)
Cache fully Assiciative
Adresse mmoire Mmoire principale
Tag Data
Tag offset L0 W0
b L1
L2 W1
B0
W2
. W3
.
.
Tag Data .
Li .
.
Compare b
W4j
Hit W(4j+1)
. Bj
1 galit= succs . W(4j+2)
Tag Data . W(4j+3)
Lm-1
Miss
.
0 galit = chec .
27
.
Cache totalement
associative
Un bloc de la mmoire principale
peut tre dans nimporte quelle
ligne de la mmoire cache

28
Cache totalement
associative
Avantages:
Taux de cache hit plus lev.
Inconvnients:
Circuit plus complexe et plus couteux:
chaque lment de ligne doit contenir
un comparateur

29
Solution hybride: Cache associatif
N voies (N-way set associative)
Compromis entre les deux organisations
prcdentes.
La mmoire cache est divise en
ensembles (sets). Chaque ensemble est
constitu dun nombre de lignes.
Correspondance directe pour les
ensembles et associativit lintrieur
dun mme ensemble. Un bloc de la
mmoire principale peut tre plac dans
un seul ensemble. Par contre il peut
occuper nimporte quelle ligne de cet
30
ensemble.
3.Cache correspondance
directe (set associative)
4 way set associative
Adresse mmoire Mmoire principale
Tag Data
Tag Index(set) offset L0 W0
b L1
k L2 W1
set 0 B0
L4
. W2
. W3
set i . L0
L1
L2 .
L4 .
.
Compare w
W4j
hit . W(4j+1)
. Bj
. W(4j+2)
L0 W(4j+3)
L1
Miss set 2k L2
.
L4 .
31 .
Mmoire cache associative
deux voies
Tag Index (set) Bloc
Offset b

t
k
V Tag Bloc de donne V Tag Bloc de donne

Donne
= =

hit
Mmoire cache associative N
voies
Nombre de lignes de la cache nombre d' ensembles N

Nombre d' ensembles 2 Nombres de bits de l'index


Nombre d' octets par bloc 2 Nombres de bits de l'offset
Exemple:
Mmoire cache associative 4
voies (16ko)
Un bloc de 16 octets
Adresse sur 32 bits

20 bits 8 bits 4 bits


33
Mmoire cache associative N
voies
Nombre de lignes de la cache nombre d' ensembles N

Nombre d' ensembles 2 Nombres de bits de l'index


Nombre d' octets par bloc 2 Nombres de bits de l'offset
Exemple:
Mmoire cache associative 4
voies (16ko)
Un bloc de 16 octets
Adresse sur 32 bits

20 bits 8 bits 4 bits


34
stratgie dcriture
Seules les critures modifient ltat de la mmoire.
Rgle: Toute donne crire doit ltre dans la
mmoire cache et aussi dans la mmoire principale.
Il doit y avoir une cohrence entre les deux
mmoires.
Si la donne se trouve en cache, deux techniques
sont gnralement utilises lors des critures:
Lcriture au travers (Write Through)
Lcriture au plus tard (Write Back)
Si la donne ne se trouve en cache, deux techniques
sont gnralement utilises lors des critures:
Lcriture avec allocation (Write Allocate)
Lcriture sans allocation (No Write 35Allocate)
Lcriture au travers (Write
through)

Write Buffer : FIFO entre le


processeur et la mmoire lent
Le processeur crit la donne dans
la mmoire cache et dans le Write
buffer
Contrleur mmoire: crit le contenu
du buffer dans la mmoire principale
ou la cache L2

36
Stratgie dcriture

la ligne est marque


modifie (dirty) et elle sera
recopie en mmoire
Bit modifie : "Dirty bit "
lorsqu'elle sera la cible d'un
remplacement .

37
Stratgie dcriture ( inst store)

Lcriture avec allocation:


Le bloc de cache dans lequel se trouve la
donne est copi en mmoire-cache avant
dtre mise--jour dans la cache.
Tente dexploiter la localit spatiale, mais
cause un transfert de donnes avec la
mmoire principale chaque chec de cache
issu dune criture.
Lcriture sans allocation:
La donne est copi dans la mmoire
principale sans passer par la mmoire cache

38
Stratgies de remplacement
Le chargement d'une ligne dans une mmoire 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 est 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. Pour une
cache associative 2 voies , un bit est utilis par ensemble.
Il indique la ligne qui na pas t rfrenc rcemment.
Pseudo LRU: Implmentation approximative du LRU
La stratgie LFU (Least frequently Used) : la ligne choisie est
la moins frquemment utilise. Une variable de
remplacement est utilise qui compte le nombre des accs
pour chaque ligne.
39
Stratgies de remplacement
La stratgie LRU (Least Recently Used) :cas dune mmoire
associative 2 voies:
- 1 bit par ensemble
- Si le bit contient 0, alors le premier bloc de lensemble est le
moins rcemment utilis. Le dernier accs a t effectu au
deuxime bloc .

40
Stratgies de remplacement
La stratgie Pseudo LRU (Least Recently Used) :
cas dune mmoire associative 8 voies
7 bits par ensemble

Ordre daccs aux blocs: J,Y,X,Z,B,C,F,A


Daprs larbre, le bloc qui sera remplac est B

Ancien

Nouveau

41
Stratgies de remplacement
Le chargement d'une ligne dans une mmoire 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 est 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 mmoire la variable est mise jour. Elle sera
incrmente pour les lignes qui nont pas t rfrences et
mise zro pour ladresse qui vient dtre rfrence.
Cette stratgie donne en gnral de bons rsultats, mais
devient assez coteuse lorsque l'associativit crot.
Pseudo LRU: Implmentation approximative du LRU
La stratgie LFU (Least frequently Used) : la ligne choisie est
42
la moins frquemment utilise. Une variable de
Performances des mmoires
caches
Temps daccs moyen la mmoire
=
Temps 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
43
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 dautres44
lignes
Rduire de 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

45
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] +1; A[j][i] = A[j][i] +1;
Hypothse : les donnes sont stockes par 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.


46
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 cache47

Vous aimerez peut-être aussi