Professional Documents
Culture Documents
Jolle Delacroix
Lordinateur contient diffrents niveaux de mmoire, organiss selon une hirarchie mmoire.
Architecture des machines 2006-2007 Jolle Delacroix 2
Jolle Delacroix
Jolle Delacroix
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
Jolle Delacroix
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
Processeur
Commandes
Donnes
Adresse
Bus
Selection
Tampon dentres/Sorties
Jolle Delacroix
Bus adresse
010
0 1 0
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
0 1 2 3 4 5 6 7
1- Slection
2-Bus(donnes) 3- Ecriture
Bus donnes
Jolle Delacroix 11
Bus adresse
010
0 1 0
0 1 2 3 4 5 6 7
1- Slection
2-Bus(donnes) 3- Ecriture
Bus donnes
Jolle Delacroix 12
Donnes
Jolle Delacroix
Adresses
13
RAM
Jolle Delacroix
14
Les mmoires de lordinateur Le principe de hirarchie mmoire : les caches Principe de la hirarchie de mmoire, fonctionnement des caches
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
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
Jolle Delacroix
17
I1 I2 loop : I3 I4 I5 I6 fin :
Localit temporelle Premier accs aux instructions I2, I3, I4, I5 en MC Les 4 accs suivants seffectuent partir du cache
Jolle Delacroix
18
I1 I2 loop : I3 I4 I5 I6 fin :
Localit spatiale Premier accs linstruction I1 en MC Les accs I2, I3, I4, I5, I6 seffectuent partir du cache
Jolle Delacroix
19
Processeur Registres
Mmoire Cache
Mmoire Centrale
Bus Local
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
Processeur Registres
Mmoire Cache
Mmoire Centrale
Bus Local
(A)
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
Processeur Registres
Mmoire Cache
Mmoire Centrale
Bus Local
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
Processeur Registres
Mmoire Cache
Mmoire Centrale
Bus Local
DRAM
Bus
Ecriture
Store D R1 A
23
Processeur Registres
Mmoire Cache
Mmoire Centrale
Bus Local
SRAM
DRAM
Bus
Ecriture
Store D R1 A Write Through
Write Back
Processeur Registres
Mmoire Cache
Mmoire Centrale
16
SRAM
DRAM
Bus
Ecriture
Store D R1 A
25
Processeur Registres
Mmoire Cache
Mmoire Centrale
Bus Local
R1
10 Ecrire (R1) dans A
10
(A)
16
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)
Processeur Registres
Mmoire Cache
Mmoire Centrale
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
Processeur Registres
Mmoire Cache
Mmoire Centrale
16
SRAM
DRAM
Bus
Ecriture
Store D R1 A
Processeur Registres
Mmoire Cache
Mmoire Centrale
Bus Local
R1
10
16
SRAM
Bus
DRAM
Ecriture
Load D R2 B
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
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 centrale
Cache unifi
Niveau L1
Bus interne
Architecture des machines 2006-2007
Cache unifi
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
Jolle Delacroix
34
Bloc 0
000000 - 001111
Bloc 1
010000 - 011111
Bloc 2
100000 - 101111
Etiquette du bloc
Bloc 3
110000 - 111111
Jolle Delacroix
35
Jolle Delacroix
36
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
Jolle Delacroix
38
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
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
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
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
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
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
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
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
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 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
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.
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.
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
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
49
Cache associatif
1 V
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
Cache associatif
LRU : date de dernier accs FIFO : date de chargement
1 V
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
Cache unifi
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
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
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
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
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
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
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
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
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
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
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
Cache unifi
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
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
Jolle Delacroix
68
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.
Jolle Delacroix
69