You are on page 1of 69

Les mmoires de lordinateur Le principe de hirarchie mmoire : les caches

Architecture des machines 2006-2007

Jolle Delacroix

Les mmoires de lordinateur


Une mmoire est un composant lectronique capable de stocker temporairement des informations. Une mmoire est caractrise par :
Sa capacit, reprsentant le volume global d'informations (en bits) que la mmoire peut stocker (par exemple 1 Goctets, soit 230 octets, soit 230 * 8 bits. Son temps d'accs, correspondant l'intervalle de temps entre la demande de lecture/criture et la disponibilit de la donne.

Lordinateur contient diffrents niveaux de mmoire, organiss selon une hirarchie mmoire.
Architecture des machines 2006-2007 Jolle Delacroix 2

Les mmoires de lordinateur


Lordinateur contient diffrents niveaux de mmoire, organiss selon une hirarchie mmoire.

REGISTRES N bits (32, 64) 1 nanoseconde

Mmoires Caches Koctets 5 nanosecondes

Mmoires Centrales Goctets 10 nanosecondes

Mmoires de masse 100 - 200 Goctets 5 millisecondes

Architecture des machines 2006-2007

Jolle Delacroix

Les mmoires de lordinateur


Mmoires internes : mmoires volatiles Barrettes mmoire SIMM, DIMM Mmoires de stockage : mmoires permanentes Plateaux magntiques

REGISTRES N bits (32, 64) 1 nanoseconde

Mmoires Caches Koctets 5 nanosecondes

Mmoires Centrales Goctets 10 nanosecondes

Mmoires de masse 100 - 200 Goctets 5 millisecondes

Architecture des machines 2006-2007

Jolle Delacroix

Les diffrents types de mmoire


Mmoires vives : RAM (Random Access Memory) Mmoire accessible en lecture et criture Mmoire volatile interne. Compose la mmoire centrale et les caches DRAM (Dynamic RAM) et SRAM (Static RAM) (60 5 ns) Mmoires mortes : ROM (Read Only Memory) Mmoire accessible en lecture (150 ns) Mmoire non volatile interne. une fois l'information enregistre, celle-ci ne peut pas (ou difficilement) tre modifie. Mmoires flash : compromis entre les deux types de mmoire Mmoire accessible en lecture et criture Mmoire non volatile. Temps daccs plus important que la RAM
Architecture des machines 2006-2007 Jolle Delacroix 5

Les diffrents types de mmoire Mmoires vives : RAM (Random Access Memory)
DRAM : mmoire dynamique. Peu couteuses, elles composent la mmoire centrale de lordinateur.
1 cellule mmoire mmorise un bit et est constitue par un transistor et un condensateur le condensateur se dcharge dans le temps. Il convient de recharger chaque cellule priodiquement (1000 fois / s) : le rafraichissement de la mmoire. Se prsente sous la forme de barrette DIMM (Dual Inline Memory Module). Temps daccs : 60 ns (DRAM) 10 ns (SDRAM)
Architecture des machines 2006-2007 Jolle Delacroix 6

Les diffrents types de mmoire Mmoires vives : RAM (Random Access Memory)
SRAM : mmoire statique. Plus couteuses et encombrantes, elles composent les caches du processeur.
1 cellule mmoire mmorise un bit et est constitue par 4 6 transistors (circuit de type bascule) Temps daccs : 10 ns

Architecture des machines 2006-2007

Jolle Delacroix

Les diffrents types de mmoire


Contient les informations manipules couramment par le processeur

registre Mmoire SR A M

Mmoire DR A M

Mmoire ROM

Contient les informations Les plus rcemment accdes par le processeur Un sous ensemble de la DRAM
Architecture des machines 2006-2007

Mmoire Vive, volatile (lecture/criture) Contient le code et les donnes des programmes excuts par le processeur
Jolle Delacroix

Mmoire Morte non volatile (lecture) Contient lamorce (boot) de lordinateur

Processeur
Commandes

Adressage de la mmoire centrale


Cellule mmoire mmorisant 1 bit

Donnes

Adresse

Bus

Selection

Tampon dentres/Sorties

Architecture des machines 2006-2007

Jolle Delacroix

Bus adresse
010

Mmoire centrale : criture


Bus de commandes
Adresses mmoire

0 1 0

1000110001110010 0111001110001101 1000110001110010 0111001110010101 1000110001110010 1000100101010110 1000110001110010 0111011010101101

0 1 2 3 4 5 6 7

1- Slection 2-Bus(donnes)
Architecture des machines 2006-2007

Bus donnes
Jolle Delacroix 10

3- Ecriture

Bus adresse
010

Mmoire centrale : criture


Bus de commandes
Adresses mmoire

1000110001110010 0111001110001101 1000110001110010 0111001110010101 1000110001110010 1000100101010110 1000110001110010 0111011010101101 0100001001000001


0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 Architecture des machines 2006-2007 1

0 1 2 3 4 5 6 7

1- Slection

2-Bus(donnes) 3- Ecriture

Bus donnes
Jolle Delacroix 11

Bus adresse
010

Mmoire centrale : criture


1
Bus de commandes
Adresses mmoire

0 1 0

1000110001110010 0111001110001101 0100001001000001 0111001110010101 1000110001110010 1000100101010110 1000110001110010 0111011010101101 0100001001000001

0 1 2 3 4 5 6 7

0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 Architecture des machines 2006-2007 1

1- Slection

2-Bus(donnes) 3- Ecriture

Bus donnes
Jolle Delacroix 12

Les diffrents types de mmoire Adressage dune puce mmoire


Mmoire RAM (brochage) Alimentation
Vcc D0 D1 D2 D3 D4 D5 D6 D7 R W S A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11

Donnes

Read Write Slection

Architecture des machines 2006-2007

Jolle Delacroix

Adresses
13

RAM

Les diffrents types de mmoire Adressage dune puce mmoire

Architecture des machines 2006-2007

Jolle Delacroix

14

Les mmoires de lordinateur Le principe de hirarchie mmoire : les caches Principe de la hirarchie de mmoire, fonctionnement des caches

Architecture des machines 2006-2007

Jolle Delacroix

15

Hirarchie Mmoire
vitesse cout Le plus lev capacit La plus petite 6-35 ns 70 - 120 ns Le moins lev La plus grande

Processeur Registres

Mmoire Cache

Mmoire centrale
La mmoire cache est une mmoire intermdiaire place entre le processeur et la mmoire centrale dont le temps d'accs est de 4 20 fois infrieur celui de la mmoire centrale.

Bus Local

SRAM

DRAM

Bus
Architecture des machines 2006-2007 Jolle Delacroix

Elle comporte un nombre fini dentres ( n mots mmoire)


16

Mmoire cache : principe


La stratgie suivie s'appuie sur le principe de localit

Processeur Registres
info

Mmoire Cache

info

Mmoire Centrale

Bus Local
DRAM

1. L'info cherche est-elle dans le cache ? OUI / Succs (a) : ramener l'info dans le processeur NON / Dfaut (2) : chercher l'info dans la mmoire centrale 2. L'info est-elle en mmoire centrale ? OUI / Succs (b) : ramener l'info dans le cache , puis dans le processeur (a) NON / Dfaut

SRAM

Architecture des machines 2006-2007

Jolle Delacroix

17

Mmoire cache Principe de localit


Localit temporelle : si une donne d'adresse A est accde un temps t, la probabilit qu'elle soit de nouveau accde aux temps t+1, t+2 est trs forte.
La donne est remonte dans le cache pour minimiser les temps d'accs suivants

I1 I2 loop : I3 I4 I5 I6 fin :

load Im R1 5 add Im R2 3 add Im R1 -1 JMPZ Fin JMP Loop store D R2 10

Localit temporelle Premier accs aux instructions I2, I3, I4, I5 en MC Les 4 accs suivants seffectuent partir du cache

Architecture des machines 2006-2007

Jolle Delacroix

18

Mmoire cache Principe de localit


Localit spatiale : si une donne d'adresse A est accde un temps t, la probabilit que les donnes d'adresses voisines soient accdes aux temps t+1, t+2 est trs forte.
La donne d'adresse A et galement les donnes d'adresse voisines sont remontes dans le cache pour minimiser les temps d'accs suivants

I1 I2 loop : I3 I4 I5 I6 fin :

load Im R1 5 add Im R2 3 add Im R1 -1 JMPZ Fin JMP Loop store D R2 10

Localit spatiale Premier accs linstruction I1 en MC Les accs I2, I3, I4, I5, I6 seffectuent partir du cache

Architecture des machines 2006-2007

Jolle Delacroix

19

Processeur Registres

Mmoire Cache

Mmoire Centrale

Bus Local

A A+4 A+8 A+12 A + 16

Mmoire cache Le cache en lecture

SRAM

DRAM

Bus
Si (A) prsent Alors Charger processeur avec (A) Sinon
Charger cache avec (A) et ses voisines Charger processeur avec (A)

Lecture
Load D R1 A

FinSi FinSi
Jolle Delacroix 20

Architecture des machines 2006-2007

Processeur Registres

Mmoire Cache

Mmoire Centrale

Bus Local

(A)

A A+4 A+8 A+12 A + 16

Mmoire cache Le cache en lecture

SRAM

DRAM

Bus
Si (A) prsent Alors Charger processeur avec (A) Sinon
Charger cache avec (A) et ses voisines Charger processeur avec (A)

Lecture
Load D R1 A

FinSi FinSi
Jolle Delacroix 21

Architecture des machines 2006-2007

Processeur Registres

Mmoire Cache

Mmoire Centrale

Bus Local

A A+4 A+8 A+12 A + 16

A A+4 A+8 A+12 A +16

Mmoire cache Le cache en lecture

SRAM

DRAM

Bus
Si (A) prsent Alors Charger processeur avec (A) Sinon
Charger cache avec (A) et ses voisines Charger processeur avec (A)

Lecture
Load D R1 A

FinSi FinSi
Jolle Delacroix 22

Architecture des machines 2006-2007

Processeur Registres

Mmoire Cache

Mmoire Centrale

Bus Local
DRAM

Mmoire cache Le cache en criture


SRAM

Bus

Ecriture
Store D R1 A

Si (A) prsente Alors Modifier (A) dans le cache Sinon FinSi


Architecture des machines 2006-2007 Jolle Delacroix

Write Through Write Back

Modifier (A) en mmoire principale Modifier (A) en mmoire principale

23

Processeur Registres

Mmoire Cache

Mmoire Centrale

Bus Local

A A+4 A+8 A+12 A + 16

Mmoire cache Le cache en criture

SRAM

DRAM

Bus

Ecrire (R1) dans A

Ecriture
Store D R1 A Write Through

Si (A) prsente Alors Modifier (A) dans le cache Sinon FinSi


Architecture des machines 2006-2007 Jolle Delacroix 24

Modifier (A) en mmoire principale Modifier (A) en mmoire principale

Write Back

Processeur Registres

Mmoire Cache

Mmoire Centrale

Bus Local 16 10 (A)


R1
10 Ecrire (R1) dans A

16

SRAM

DRAM

A A+4 A+8 A+12 A+ 16

Mmoire cache Le cache en criture

Bus

Ecriture
Store D R1 A

Si (A) prsente Alors Modifier (A) dans le cache Sinon FinSi


Architecture des machines 2006-2007 Jolle Delacroix

Write Through Write Back

Modifier (A) en mmoire principale Modifier (A) en mmoire principale

25

Processeur Registres

Mmoire Cache

Mmoire Centrale

Bus Local
R1
10 Ecrire (R1) dans A

10

(A)

16

A A+4 A+8 A+12 A +16

Mmoire cache Le cache en criture

SRAM

DRAM

Bus
DMA UE

Le contenu du cache pour (A) est diffrent de la MC Un autre dispositif tel que un DMA accdant (A) ne voit pas la valeur modifie Politique de modification de la MC
Jolle Delacroix 26

Imprimer (A)

Architecture des machines 2006-2007

Processeur Registres

Mmoire Cache

Mmoire Centrale

Mmoire cache Le cache en criture


A+4 A+8 A+12 A + 16

Bus Local 16 10 (A)


R1
10 Ecrire (R1) dans A

16 10 A

Write Through (criture Immdiate) Lcriture en mmoire centrale est effectue en mme temps que dans le cache Cohrence maximale Cot plus lev dune criture 27

SRAM

DRAM
Ecrire (R1) dans A

Bus

Ecriture
Store D R1 A

Si (A) prsente Alors Modifier (A) dans le cache


Modifier (A) en mmoire principale
Architecture des machines 2006-2007 Jolle Delacroix

Processeur Registres

Mmoire Cache

Mmoire Centrale

Mmoire cache Le cache en criture


A A+4 A+8 A+12 A + 16 Write Back (criture diffre) Lcriture en mmoire centrale est effectue plus tard lorsque lentre du cache doit tre remplace Cohrence moindre

Bus Local 16 10 (A)


R1
10 Ecrire (R1) dans A

16

SRAM

DRAM

Bus

Ecriture
Store D R1 A

Si (A) prsente Alors Modifier (A) dans le cache


Modifier (A) en mmoire principale
Architecture des machines 2006-2007 Jolle Delacroix

Cot moins lev dune criture


28

Processeur Registres

Mmoire Cache

Mmoire Centrale

Mmoire cache B Le cache en B+4 B+8 criture B+12


Write Back (criture diffre) Lcriture en mmoire centrale est effectue plus tard lorsque lentre du cache doit tre remplace Cohrence moindre Cot moins lev dune criture
29

Bus Local
R1
10

A (10) A+4 A+8 A+12 A + 16

16

SRAM

B + 16 10 A A+4 A+8 A+12 A + 16

Bus

DRAM

Ecriture
Load D R2 B

Ecrire lentre du cache modifie dans A

Il y a dfaut au niveau du cache. Le mot B et ses voisins doivent tre chargs dans le cache. Ils remplacent le mot A et ses voisins. La modification de (A) est recopie en mmoire centrale
Architecture des machines 2006-2007 Jolle Delacroix

Mmoire cache Performances


Soient
h, la probabilit de succs Tc le temps daccs au cache Tm, le temps de lecture dun bloc de mots en mmoire centrale Td, le temps daccs un mot en mmoire centrale

alors Teff, le temps effectif pour accder une information Teff = h Tc + (1 h) (Tm + Tc)
h 0,9 0,8
Architecture des machines 2006-2007

Tc (cycle) 1 1 1

Tm (cycle) 20 20 20

Td (cycle) 5 5
Jolle Delacroix

Teff 3 5 7
30

0,7

Mmoire cache Architecture de caches


Puce processeur Niveau L2
UC registres

Mmoire centrale

Cache donnes Cache instructions

Cache unifi

Niveau L1

Bus interne
Architecture des machines 2006-2007

Back side bus 500 Mhz


Jolle Delacroix

Front side bus 100 Mhz


31

Les mmoires de lordinateur Le principe de hirarchie mmoire : les caches

Les structures de caches


Puce processeur Niveau L2 UC registres Cache donnes Cache instructions Niveau L1
Architecture des machines 2006-2007 Jolle Delacroix 32

Cache unifi

Mmoire cache : structure

La recherche dun mot dans le cache seffectue partir de son adresse en mmoire centrale. Un cache est caractris : sa capacit Nombre dentres * taille du bloc de donnes 128 * 16 octets son organisation Cache associatif Cache direct Cache mixte
Architecture des machines 2006-2007 Jolle Delacroix 33

Mmoire cache : structure


Les blocs doctets chargs dans les entres du cache (ligne du cache) sont aligns, cest--dire que ladresse du premier octet du bloc est toujours un multiple de la taille du bloc en octet. Exemple : blocs de 16 octets; adresse de 6 bits

Bloc 0 Bloc 1 Bloc 2 Bloc 3

000000 - 001111 010000 - 011111 100000 - 101111 110000 - 111111

Architecture des machines 2006-2007

Jolle Delacroix

34

Mmoire cache : structure


0000 0100 1000 1100 0001 0101 1001 1101 0010 0110 1010 1110 0011 0111 1011 1111

Bloc 0

000000 - 001111

Bloc 1

010000 - 011111

Numro de loctet dans le bloc

Bloc 2

100000 - 101111

Etiquette du bloc

Bloc 3

110000 - 111111

Architecture des machines 2006-2007

Jolle Delacroix

35

Mmoire cache : structure


cache
Trois types de cache : associatif : un bloc de mots de la mmoire centrale est plac dans n'importe quelle entre (ligne) libre du cache correspondance directe : l'entre (ligne) du cache occupe par un bloc de mots est fonction de l'adresse en mmoire centrale de ce bloc. Rpertoire : mixte
Contient ltiquette du bloc prsent dans lentre du cache

Donne utiles Contient le bloc de mots (n octets)

Architecture des machines 2006-2007

Jolle Delacroix

36

Les mmoires de lordinateur Le principe de hirarchie mmoire : les caches

Les structures de caches Cache associatif


Puce processeur Niveau L2 UC registres Cache donnes Cache instructions Niveau L1
Architecture des machines 2006-2007 Jolle Delacroix 37

Cache unifi

Cache associatif
Un bloc de mots de la mmoire centrale est plac dans n'importe quelle entre libre du cache si le cache est plein, il faut librer une entre Algorithme de remplacement de ligne

Architecture des machines 2006-2007

Jolle Delacroix

38

Cache purement associatif (lecture) Adresse mmoire


Etiquette noctet Mmoire utile contenant les Mots : Instructions ou donnes

Rpertoire

Comparateurs

octet trouv

Si Rpertoire contient Etiquette Alors bloc de mots trouv Charger le processeur avec ligne[noctet] Sinon Si Rpertoire plein Alors Algorithme de remplacement de ligne Remplir la ligne choisie Charger le processeur avec ligne[noctet] Sinon Remplir une ligne libre Charger le processeur avec ligne [noctet] FinSi FinSi des machines 2006-2007 Jolle Delacroix 39 Architecture

Load D R1 3D16

00111101

Mmoire centrale
00 08 10

0 1 2 3 4 5 6 7
Chaque bloc contient 8 octets 3 bits de poids faible pour les dsigner Ltiquette est forme des 5 bits de poids fort

30 38

a b c d e f g h

E8 F0 F8

Si rpertoire contient 00111 Alors Charger f dans processeur Sinon Si rpertoire plein Alors Remplacement ligne
Remplir ligne Charger f dans processeur Sinon Remplir une ligne Charger f dans processeur
Jolle Delacroix 40

Cache purement associatif : Lecture


Architecture des machines 2006-2007

Load D R1 3D16

00111101

Mmoire centrale
00 08 10

0 1 2 3 4 5 6 7

00111

a b c d e f g h

30 38

a b c d e f g h

Chaque bloc contient 8 octets 3 bits de poids faible pour les dsigner Ltiquette est forme des 5 bits de poids fort

E8 F0 F8

Si rpertoire contient 00111 Alors Charger f dans processeur Sinon Si rpertoire plein Alors Remplacement ligne
Remplir ligne Charger f dans processeur Sinon Remplir une ligne Charger f dans processeur
Jolle Delacroix 41

Cache purement associatif : Lecture


Architecture des machines 2006-2007

Load D R1 3D16 00000 00001

00111101
i j k l mn o p q r s t uvw x

Mmoire centrale
00 08 10 i j k l mn o p q r s t uvw x

Il existe des lignes libres dans le cache

0 1 2 3 4 5 6 7

30 38

a b c d e f g h

11111

y z a b cd e f

Chaque bloc contient 8 octets 3 bits de poids faible pour les dsigner Ltiquette est forme des 5 bits de poids fort

E8 F0 F8

y z a b cd e f

Si rpertoire contient 00111 Alors Charger f dans processeur Sinon Si rpertoire plein Alors Remplacement ligne
Remplir ligne Charger f dans processeur Sinon Remplir une ligne Charger f dans processeur
Jolle Delacroix 42

Cache purement associatif : Lecture


Architecture des machines 2006-2007

Load D R1 3D16 00000 00111 00001

00111101
i j k l mn o p a b c d e f g h q r s t uvw x

Mmoire centrale
00 08 10 i j k l mn o p q r s t uvw x

Il existe des lignes libres dans le cache

0 1 2 3 4 5 6 7

30 38

a b c d e f g h

11111

y z a b cd e f

Chaque bloc contient 8 octets 3 bits de poids faible pour les dsigner Ltiquette est forme des 5 bits de poids fort

E8 F0 F8

y z a b cd e f

Si rpertoire contient 00111 Alors Charger f dans processeur Sinon Si rpertoire plein Alors Remplacement ligne
Remplir ligne Charger f dans processeur Sinon Remplir une ligne Charger f dans processeur
Jolle Delacroix 43

Cache purement associatif : Lecture


Architecture des machines 2006-2007

Load D R1 3D16 00000 00011 00001 00010 00110 11101 11111 11110

00111101
i j k l mn o p l q a b t r c u e k g r r s t uvw x z e r v bn e v e y l mnp i o b f l g a

Mmoire centrale
00 i j k l 08 q r s t 10 a z e r 18 l r c u mn o p uvw x v bn e e k g r

Il nexiste pas de lignes libres dans le cache

0 1 2 3 4 5 6 7

30 b v e y l m n p 38 a b c d e f g h

y z a b cd e f r t a b g l e E8 F0 F8 t i o b f l g a r t a b g l e y z a b cd e f

Chaque bloc contient 8 octets 3 bits de poids faible pour les dsigner Ltiquette est forme des 5 bits de poids fort

Si rpertoire contient 00111 Alors Charger f dans processeur Sinon Si rpertoire plein Alors Remplacement ligne
Remplir ligne Charger f dans processeur Sinon Remplir une ligne Charger f dans processeur
Jolle Delacroix 44

Cache purement associatif : Lecture


Architecture des machines 2006-2007

Load D R1 3D16 00000 00011 00001 00010 00110 11101 11111 00111

00111101
i j k l mn o p l q a b t r c u e k g r r s t uvw x z e r v bn e v e y l mnp i o b f l g a

Mmoire centrale
00 i j k l 08 q r s t 10 a z e r 18 l r c u mn o p uvw x v bn e e k g r

Il nexiste pas de lignes libres dans le cache On choisit une ligne remplacer

0 1 2 3 4 5 6 7

30 b v e y l m n p 38 a b c d e f g h

y z a b cd e f a b c d e f g h E8 F0 F8 t i o b f l g a r t a b g l e y z a b cd e f

Chaque bloc contient 8 octets 3 bits de poids faible pour les dsigner Ltiquette est forme des 5 bits de poids fort

Si rpertoire contient 00111 Alors Charger f dans processeur Sinon Si rpertoire plein Alors Remplacement ligne
Remplir ligne Charger f dans processeur Sinon Remplir une ligne Charger f dans processeur
Jolle Delacroix 45

Cache purement associatif : Lecture


Architecture des machines 2006-2007

Cache associatif
Un bloc de mots de la mmoire centrale est plac dans n'importe quelle entre libre du cache si le cache est plein, il faut librer une entre Algorithme de remplacement de ligne Alatoire : une ligne au hasard FIFO : First In First Out : la ligne remplace est la plus ancienne dans le cache LRU : Least recently Used : la ligne remplace est la moins rcemment accde NMRU : Not most recently Used : la ligne remplace nest pas la plus rcemment utilise

Architecture des machines 2006-2007

Jolle Delacroix

46

Cache associatif
Algorithme de remplacement de ligne FIFO : First In First Out : la ligne remplace est la plus ancienne dans le cache. Simple mais pas forcment pertinent.

Accs (tiquette bloc)

00000

00001

00010

00100

00000

10000

00010

11000

00000 Ligne 0

00000

00000

00000

00000

10000

10000

10000

00001 Ligne 1

00001

00001

00001

00001

00001

11000

00010 Ligne 2

00010

00010

00010

00010

00010

00100 Ligne 3

00100

00100

00100

00100

D
Architecture des machines 2006-2007

S
Jolle Delacroix

D
47

Cache associatif
Algorithme de remplacement de ligne LRU : Least recently Used : la ligne remplace est la moins rcemment accde Complexe mettre en uvre car ncessite de maintenir lordre des accs.

Accs (tiquette bloc)

00000

00001

00010

00100

00000

10000

00010

11000

00000 Ligne 0

00000

00000

00000

00000

00000

00000

00000

00001 Ligne 1

00001

00001

00001

10000

10000

10000

00010 Ligne 2

00010

00010

00010

00010

00010

00100 Ligne 3

00100

00100

00100

11000

D
Architecture des machines 2006-2007

S
Jolle Delacroix

D
48

Cache associatif
Algorithme de remplacement de ligne NMRU : Not most recently Used : la ligne remplace nest pas la plus rcemment utilise. La ligne remplace est choisie alatoirement parmi celles autres que la ligne la plus rcemment accde. La moins rcemment accde Moins coteux que LRU
LRU NMRU 10000 00000 10000

Accs (tiquette bloc)

00000

00001

00010

00100

00000

00000 Ligne 0

00000

00000

00000

00000

00000

00000

00000

00001 Ligne 1

00001

00001

00001

10000

00001

00001

00010 Ligne 2

00010

00010

00010

00010

10000

00100 Ligne 3

00100

00100

00100

00100

D
Architecture des machines 2006-2007

S
Jolle Delacroix

La plus rcemment accde

49

Cache associatif

Coteux et encombrants : 1 comparateur par ligne.

Complexe : politique de remplacement de ligne.

Format dune entre de cache (rpertoire)


LRU : date de dernier accs FIFO : date de chargement

1 V

1 D Champ remplacement tiquette


Cl de recherche

Bit de validit 0 : la ligne ne contient pas de donnes valides 1 : lentre contient des donnes valides

Bit de modification (dirty bit) politique en criture diffre 0 : le contenu de la ligne n pas t modifi 1 : le contenu de la ligne a t modifi
Jolle Delacroix 50

Architecture des machines 2006-2007

Cache associatif
LRU : date de dernier accs FIFO : date de chargement

1 V

1 D Champ remplacement tiquette


Cl de recherche

Bit de modification (dirty bit) politique en criture diffre Bit de validit 0 : la ligne ne contient pas de donnes valides 0 : le contenu de la ligne n pas t modifi 1 : le contenu de la ligne a t modifi 1 : lentre contient des donnes valides

Si Rpertoire contient Etiquette Alors Bloc de mots trouv (entre avec bit V 1) Charger le processeur avec ligne[noctet] Sinon Si Rpertoire plein Alors Algorithme de remplacement de ligne Si (criture diffre et D = 1) Alors crire ligne en mmoire centrale Finsi Remplir la ligne choisie Charger le processeur avec ligne[noctet] Sinon Remplir une ligne libre (V = 1) Charger le processeur avec ligne [noctet] FinSi FinSi
Architecture des machines 2006-2007 Jolle Delacroix 51

Les mmoires de lordinateur Le principe de hirarchie mmoire : les caches

Les structures de caches Cache correspondance directe


Puce processeur Niveau L2 UC registres Cache donnes Cache instructions Niveau L1
Architecture des machines 2006-2007 Jolle Delacroix 52

Cache unifi

Cache correspondance directe


Un bloc de mots de la mmoire centrale est plac dans une entre du cache qui est fonction de son adresse en mmoire centrale. Load D R2 EF16 Load D R1 3D16 0 1 2 3 4 5 6 7

11101111 00111101
00 i j k l 08 q r s t 10 a z e r 18 l r c u mn o p uvw x v bn e e k g r

11 00

t i o b f l g a a b c d e f g h

30 b v e y l m n p 38 a b c d e f g h

Chaque bloc contient 8 octets 3 bits de poids faible pour les dsigner Le cache contient 8 entres 3 bits pour les dsigner Ltiquette est forme des 2 bits de poids fort restant
Architecture des machines 2006-2007 Jolle Delacroix

E8 F0 F8

t i o b f l g a r t a b g l e y z a b cd e f
53

Cache correspondance directe


Un bloc de mots de la mmoire centrale est plac dans une entre du cache qui est fonction de son adresse en mmoire centrale.
index

Load D R2 FF16 Load D R1 3D16 0 1 2 3 4 5 6 7

11111111 00111101
Deux (n) blocs de la mmoire centrale entrent dans la mme entre du cache (tous ceux ayant la mme valeur dindex) La valeur dtiquette stocke dans la ligne permet de connatre quel bloc occupe la ligne un instant donn

11

t i o b f l g a

Chaque bloc contient 8 octets 3 bits de poids faible pour les dsigner Le cache contient 8 entres 3 bits pour les dsigner Ltiquette est forme des 2 bits de poids fort restant
Architecture des machines 2006-2007 Jolle Delacroix 54

Cache correspondance directe


Adresse mmoire Etiquette Index n octet

Rpertoire contient les tiquettes

Mmoire utile contient les mots : instructions ou donnes


Octet trouv

Si Rpertoire [Index] = Etiquette Alors Bloc de mots trouv Charger processeur avec MemoireUtile[Index,noctet] Sinon Rpertoire[Index] = Etiquette Charger Ligne[Index] partir de la mmoire centrale Charger processeur avec MmoireUtile[Index,noctet] FinSi
Architecture des machines 2006-2007 Jolle Delacroix 55

Cache correspondance directe


Load D R1 3D16 0 1 2 3 4 5 6 7

00111101

00 i j k l 08 q r s t 10 a z e r 18 l r c u

mn o p uvw x v bn e e k g r

30 b v e y l m n p 38 a b c d e f g h

11 00

t i o b f l g a a b c d e f g h

E8 F0 F8

t i o b f l g a r t a b g l e y z a b cd e f

Si Rpertoire [111] = 00 Alors

Bloc de mots trouv Charger processeur avec MemoireUtile[111,101] (f) Sinon Rpertoire[Index] = Etiquette Charger Ligne[Index] partir de la mmoire centrale Charger processeur avec MmoireUtile[Index,noctet]
Jolle Delacroix 56

FinSi
Architecture des machines 2006-2007

Cache correspondance directe


Load D R1 3D16 0 1 2 3 4 5 6 7

00111101

00 i j k l 08 q r s t 10 a z e r 18 l r c u

mn o p uvw x v bn e e k g r

30 b v e y l m n p 38 a b c d e f g h

11 11

t i o b f l g a y z a b cd e f

E8 F0 F8

t i o b f l g a r t a b g l e y z a b cd e f

Si Rpertoire [111] = 00

Bloc de mots trouv Charger processeur avec MemoireUtile[111,101] (f) Sinon Rpertoire[Index] = Etiquette Charger Ligne[Index] partir de la mmoire centrale Charger processeur avec MmoireUtile[Index,noctet]
Jolle Delacroix 57

Alors

FinSi
Architecture des machines 2006-2007

Cache correspondance directe


Load D R1 3D16 0 1 2 3 4 5 6 7

00111101

00 i j k l 08 q r s t 10 a z e r 18 l r c u

mn o p uvw x v bn e e k g r

30 b v e y l m n p 38 a b c d e f g h

11 00

t i o b f l g a a b c d e f g h

E8 F0 F8

t i o b f l g a r t a b g l e y z a b cd e f

Si Rpertoire [111] = 00 Alors

Bloc de mots trouv Charger processeur avec MemoireUtile[111,101] (f) Sinon Rpertoire[111] = 00 Charger Ligne[111] partir de la mmoire centrale Charger processeur avec MmoireUtile[111,101] (f)
Jolle Delacroix 58

FinSi
Architecture des machines 2006-2007

Cache correspondance directe


Moins coteux et encombrants : 1 comparateur par cache Complexit : pas de politique de remplacement de ligne. Performance moindre due aux conflits de ligne : plusieurs blocs de mots (ceux de mme tiquette) se partagent une mme entre. Format dune entre de cache (rpertoire)
1 V 1 D tiquette
Cl de recherche

Bit de validit 0 : la ligne ne contient pas de donnes valides 1 : lentre contient des donnes valides

Bit de modification (dirty bit) politique en criture diffre 0 : le contenu de la ligne n pas t modifi 1 : le contenu de la ligne a t modifi
Jolle Delacroix 59

Architecture des machines 2006-2007

Cache correspondance directe (checs par collision)


index

Load D R2 FF16 Load D R1 3D16 0 1 2 3 4 5 6 7

11111111 00111101

11111111 00111101
00000 00111 00001
i j k l mn o p a b c d e f g h q r s t uvw x

11

t i o b f l g a

11111

y z a b cd e f

Cache correspondance directe : les deux blocs de mots occupent la mme ligne. Des rfrencements successifs ces deux blocs causent des dfauts mme si la cache comporte encore des entres libres
Architecture des machines 2006-2007

Cache associatif : les deux blocs de mots occupent des lignes diffrentes

Jolle Delacroix

60

Cache correspondance directe


1 V 1 D tiquette
Cl de recherche

Bit de validit 0 : la ligne ne contient pas de donnes valides 1 : lentre contient des donnes valides

Bit de modification (dirty bit) politique en criture diffre 0 : le contenu de la ligne n pas t modifi 1 : le contenu de la ligne a t modifi

Si Rpertoire [Index]. V = 1 Alors Si Rpertoire[Index] = Etiquette Alors Bloc de mots trouv Charger processeur avec MemoireUtile[Index,noctet] Sinon Si Rpertoire[Index].D = 1 Alors Ecrire MemoireUtile[Index] en mmoire centrale FinSi Repertoire[Index] = Etiquette Charger Ligne[Index] partir de la mmoire centrale Charger processeur avec MmoireUtile[Index,noctet] FinSi Sinon Repertoire[Index].V = 1; Repertoire[Index] = Etiquette Charger Ligne[Index] partir de la mmoire centrale Charger processeur avec MmoireUtile[Index,noctet] FinSi
Architecture des machines 2006-2007 Jolle Delacroix 61

Les mmoires de lordinateur Le principe de hirarchie mmoire : les caches

Les structures de caches Cache mixte


Puce processeur Niveau L2 UC registres Cache donnes Cache instructions Niveau L1
Architecture des machines 2006-2007 Jolle Delacroix 62

Cache unifi

Cache mixte ou associatif par blocs


Solution intermdiaire entre le cache purement associatif et le cache correspondance directe Le cache est divis en sous-ensembles appels voies.

Etiquette

Index

noctet
Ladresse de loctet est utilise comme pour le cache correspondance directe : lindex slectionne une ligne dans toutes les voies. Le contenu de chaque entre est compar de faon associative avec ltiquette de ladresse.

Voie 1

Voie 2

Le nombre de voies du cache constitue le degr dassociativit du cache (3)

Voie 3
Architecture des machines 2006-2007 Jolle Delacroix 63

Cache Mixte

Etiquette

Index

noctet

Voie 1

Voie 2
Octet trouv

Voie 3

Si Rpertoire[Index] Contient Etiquette Alors Charger MemoireUtile[Voie,Index,noctet] Sinon Choisir Voie pour remplacer Ligne Remplacer Ligne dans Voie choisie Charger MmoireUtile[Voie choisie ,Index,noctet] FinSi
Architecture des machines 2006-2007 Jolle Delacroix 64

Cache Mixte
Load D R1 3D16

00111101

Voie 1
00 a b a b cc dd e ff gg hh e

Voie 2
11 y z a b c d e f

Si Rpertoire[111] Contient 00 Alors Charger MemoireUtile[voie 1, entre 111, octet 101] Sinon Choisir Voie pour remplacer Ligne Remplacer Ligne dans Voie choisie Charger MmoireUtile[Voie choisie,Index,noctet] FinSi
Architecture des machines 2006-2007 Jolle Delacroix 65

Cache Mixte
Load D R1 3D16

00111101

Voie 1
10 f a g h k e b c d l o yg uh f

Voie 2
11 y z a b c d e f

Si Rpertoire[111] Contient 00 Alors Charger MemoireUtile[voie 1, entre 111, octet 101] Sinon Choisir Voie pour remplacer Ligne Remplacer Ligne dans Voie choisie Charger MmoireUtile[Voie choisie,Index,noctet] FinSi
Architecture des machines 2006-2007 Jolle Delacroix 66

Cache Mixte
Load D R1 3D16

00111101

Voie 1
10

Le choix de la voie remplacer seffectue laide dun algorithme de remplacement de lignes (FIFO, LRU, NMRU)

f a

g h k e b c d l

o yg uh f

Voie 2
00 a bc d e f g h

Si Rpertoire[111] Contient 00 Alors Charger MemoireUtile[voie 1, entre 111, octet 101] Sinon Choisir Voie pour remplacer Ligne (exemple voie 2) Remplacer Ligne 111 dans Voie 2 Charger MmoireUtile[Voie 2, entre 111, octet 101] FinSi
Architecture des machines 2006-2007 Jolle Delacroix 67

Cache Mixte

Solution intermdiaire en terme de cot et dencombrement Complexit : politique de remplacement de ligne. Performance intermdiaire : les diffrentes voies du cache permettent de rduire le nombre dchecs par collision. Format dune entre de cache (rpertoire) similaire celui du cache associatif

Architecture des machines 2006-2007

Jolle Delacroix

68

Quelques exemples de caches

Processeur Intel 486


Cache L1 unifi donnes et instructions Capacit 8 Ko Cache mixte 4 voies de 128 lignes de 16 octets

Processeur pentium
Cache L1 spar donnes et instructions Chaque cache a une capacit de 8 Ko Chaque cache est un cache mixte 2 voies de 128 lignes de 32 octets.

Architecture des machines 2006-2007

Jolle Delacroix

69

You might also like