Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
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)
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
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
Mmoire
principale
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?
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
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.
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
Exemple:
mmoire cache de 16 Ko
Un bloc de 16 octets
Adresse sur 32 bits
23
Cache correspondance
directe
24
Cache correspondance
directe
Lecture de ladresse (cas de cache hit):
000000000000000000 0000000001 0100
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
36
Stratgie dcriture
37
Stratgie dcriture ( inst store)
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
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
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;
}
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