Caches et mémoire virtuelle

publicité
Architectures des ordinateurs
Caches et mémoire virtuelle
Daniel Etiemble
[email protected]
Capacité mémoire
100M
≈ 0.5 T
(bits)
DRAM
10M
1M
Point mémoire DRAM
(1,5 transistors)
SRAM
100K
X 4 tous les trois ans
10K
1K
LM
Date d’apparition
1978
1981
1984
1987
1990
1993
1996
LB
LB
Q
Surface SRAM/DRAM = 4
Coût bit SRAM/DRAM = 10
L3 Informatique - IFIPS2
2007-08
Q
Point mémoire SRAM
(6 transistors)
Architecture des ordinateurs
D. Etiemble
2
1
Caractéristiques temporelles des DRAM
ns
250
200
Temps de cycle
150
Temps d’accès ligne
lent
100
rapide
50
Temps d’accès colonne
1980
64 Ko
1983
256 Ko
L3 Informatique - IFIPS2
2007-08
1986
1989
1992
1 Mo
4 Mo
16 Mo
année
Architecture des ordinateurs
D. Etiemble
3
Le “gap” des performances mémoire
10000
1000
CPU
100
DRAM
10
20
00
96
98
92
94
88
90
84
86
80
82
1
Croissance besoins CPU : 50 à 60%/an
Décroissance latence DRAM : 8 à 10%/an
L3 Informatique - IFIPS2
2007-08
Architecture des ordinateurs
D. Etiemble
4
2
Evolution des hiérarchies mémoire (1985-2000)
Special bus
CPU
a)
L1
cache
MM
L2
cache
Superscalar
CPU
d)
System bus
+
MM
L1 caches
b)
CPU
+
L1 caches
L2
cache
MM
PentiumII
System bus
Special bus
Pentium
Superscalar
CPU
+
L1 caches
c)
System bus
L2
cache
MM
System bus
Pentium 4
L2 CACHE
Pentium Pro
L3 Informatique - IFIPS2
2007-08
MM
RDRAM
Superscalar
CPU
+
L1 caches
e)
System bus
Architecture des ordinateurs
D. Etiemble
5
Principe des caches
•
•
•
Fondés sur le principe de localité
Mémoires de taille et vitesse différentes
Organisation
– Découpage en lignes (blocs)
– Mécanisme de correspondance
• Placement des lignes dans le cache
• Détection succès ou échec
– Gestion de la cohérence
Ligne
CPU
Cache
L3 Informatique - IFIPS2
2007-08
Architecture des ordinateurs
D. Etiemble
Mémoire principale
6
3
Principe de localité
• Localité spatiale
– Si on accède à une case mémoire, on accédera à une case
proche
• Localité temporelle
– si on accède à une case mémoire, on y accédera
probablement très bientôt (ou dans très longtemps ou
jamais !)
L3 Informatique - IFIPS2
2007-08
Architecture des ordinateurs
D. Etiemble
7
Mécanismes de correspondance
OU PLACER UNE LIGNE DE LA MP DANS LE CACHE ?
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Mémoire principale
01234567
ADRESSE LIGNE
01234567
01234567
0 1 2 3
Correspondance directe
L3 Informatique - IFIPS2
2007-08
Totalement associatif
Associatif deux voies
Architecture des ordinateurs
D. Etiemble
8
4
Correspondance directe
J (cache) = i (MP) mod NB, avec NB = nombre de lignes du cache
ETIQUETTE
INDEX
5
Adresse Octet
dans le Bloc
i/NB
0
=?
j
NB - 1
ETIQUETTE
NON : Echec
Bits de
contrôle
L3 Informatique - IFIPS2
2007-08
OUI : Succès
Architecture des ordinateurs
D. Etiemble
9
Associativité totale
Ligne i(MP) dans n’importe quelle ligne j du cache.
Etiquette = i, et NB comparateurs pour détecter succès ou échec
ETIQUETTE
0
j
5
Adresse Octet
dans le Bloc
=
1 égalité = Succès
NB
comparaisons =
NB - 1
0 égalité = Echec
=
ETIQUETTE
L3 Informatique - IFIPS2
2007-08
Bits de
contrôle
Architecture des ordinateurs
D. Etiemble
10
5
Associativité par ensemble
N (2, 4, 8) lignes par ensemble. Correspondance directe pour
les ensembles et associativité à l’intérieur d’un ensemble.
N comparateurs.
ETIQUETTE
INDEX Ensemble
5
Adresse Octet
dans le Bloc
i/NE
i/NE
0
0
=?
j
NON
Echec
=?
NE - 1
ETIQUETTE
Bits de
contrôle
L3 Informatique - IFIPS2
2007-08
OUI : Succès
j
Bits de ETIQUETTE
contrôle
NE - 1
Architecture des ordinateurs
D. Etiemble
11
Les causes d’échec cache
• Échecs de démarrage
– Premiers accès à une donnée ou une instruction : elle est en mémoire
principale.
• Échecs de capacité
– Le cache est trop “petit” par rapport aux besoins du programme
(instructions et/ou données)
• Échecs de conflit
– Le mécanisme de correspondance utilisé (correspondance directe ou
associativité par ensemble remplace des lignes déjà présentes dans le
cache (alors que d’autres lignes peuvent être non utilisées)
L3 Informatique - IFIPS2
2007-08
Architecture des ordinateurs
D. Etiemble
12
6
Les 3C
•
•
•
0,14
0,12
0,1
Echecs de démarrage
Echecs de capacité
Echecs de conflit
0,08
0,06
Obligatoire
0,04
Capacité
Conflit
0,02
0
1 bloc
2 blocs
4 blocs
8 blocs
0,01
0,009
0,008
0,007
SPEC92
Lignes de 32 octets - LRU
DECStation5000
0,006
0,005
Obligatoire
0,004
Capacité
Conflit
0,003
0,002
0,001
0
1 bloc
L3 Informatique - IFIPS2
2007-08
2 blocs
4 blocs
8 blocs
Architecture des ordinateurs
D. Etiemble
13
Politique en écriture
WRITE BACK
(Réécriture)
WRITE THROUGH
(Ecriture simultanée)
L2
L1
L1
CPU
L2
x
CPU
Write
Write
Cohérence au plus tard
Write Buffer
Cohérence
au plus tôt
Ecriture mémoire quand une ligne modifiée
est remplacée
Réécriture
3 Load
CPU
1
Read
Miss
L3 Informatique - IFIPS2
2007-08
Bit “modifié”
Architecture des ordinateurs
D. Etiemble
L2
L1
x
2 Write back
14
7
Politiques de remplacement
• Ligne à remplacer ?
– La plus anciennement utilisée (LRU)
– Au hasard
– La moins fréquemment utilisée (LFU)
L3 Informatique - IFIPS2
2007-08
Architecture des ordinateurs
D. Etiemble
15
CPI Mémoire
CPU
Bloc
Cache
Mémoire principale
CPImémoire = ma x m x p
ma: accès mémoire/instruction
m: taux d’échec
p : pénalité d’échec (cycles d’horloge)
L3 Informatique - IFIPS2
2007-08
Architecture des ordinateurs
D. Etiemble
16
8
Améliorer les performances des caches
• Diminuer le taux d’échec
• Taille (cache, ligne) et associativité
• Optimisations du compilateur
• Préchargement
• Diminuer le temps d’accès réussi (hit)
• Petits caches
• Eviter les traductions d’adresse
• Diminuer la pénalité d’échec
• Caches non bloquants
• Caches de second niveau
L3 Informatique - IFIPS2
2007-08
Architecture des ordinateurs
D. Etiemble
17
Taux d’échec (Taille de ligne)
25,00%
1K
4K
16K
64K
256K
20,00%
15,00%
10,00%
5,00%
0,00%
16
L3 Informatique - IFIPS2
2007-08
32
64
128
Architecture des ordinateurs
D. Etiemble
256
18
9
Temps d’accès (taille de ligne)
18
Temps d’accès moyen (cycles)
16
Hypothèse
14
1K
4K
16K
64K
256K
12
10
40 cycles de démarrage,
puis 16 octets tous les 2
cycles
8
6
4
2
0
16/42
32/44
64/48
L3 Informatique - IFIPS2
2007-08
128/56
256/72
Taille de ligne /
Pénalité d’échec
Architecture des ordinateurs
D. Etiemble
19
Taux d’échecs (associativité)
Le taux d’échec décroît quand l’associativité croit, mais les
lectures “optimistes” ne peuvent plus être utilisées (nécessité
de prédicteurs d’ensemble)
Cache 8 Ko ; n voies
Taux d’échec
1
2
L3 Informatique - IFIPS2
2007-08
Architecture des ordinateurs
D. Etiemble
hydro
applu
mgrid
compress
lisp
gcc
go
4
wave
10
9
8
7
6
5
4
3
2
1
0
20
10
Caches non bloquants
Succès pendant échecs : le cache continue à fournir les données des accès réussis pendant
qu’il traite un échec.
CPU
L1
Echec /
Succès
L2 ou MP
Rapport moyen entre les temps de suspension d’un cache non bloquant/cache bloquant
L3 Informatique - IFIPS2
2007-08
eqntott
espresso
compress
ora
xlisp
alvinn
spice2g6
ear
mdljdp2
doduc
wave5
nasa7
hydro2d
mdljsp2
fpppp
suc2cor
Succès pendant 1 échec
Succès pendant 2 échecs
Succès pendant 2 échecs
tomcatv
swm256
100%
90%
80%
70%
60%
50%
40%
30%
20%
10%
0%
Architecture des ordinateurs
D. Etiemble
21
Plusieurs niveaux de cache
• Options: caches instructions et données séparés ou
cache unifié
Processeur
Regs
cache
D - L1
cache
I – L1
Cache
Cache
L2
L2
unifié
unifié
Taille :
200 o
8-64 Ko
SRAM 1-4Mo
Vitesse
<1 ns
<1 ns
6 ns
€/Moctet :
100 €/Mo
Taille ligne : 8 o
32 o
32 o
Plus gros, plus lent, moins cher
L3 Informatique - IFIPS2
2007-08
Architecture des ordinateurs
D. Etiemble
Mémoire
Mémoire
DRAM 128 Mo
60 ns
1.50€/Mo
8 Ko
disque
disque
30 Go
8 ms
0.05€/Mo
22
11
Caches inclusifs ou exclusifs
• Caches inclusifs
– L1⊂ L2 ⊂ MP
• Caches exclusifs
– L1 ⊄ L2
– Fonctionnement
• Echec L1 : bloc de MP dans L1
– Si remplacement, bloc remplacé dans L2 et
bloc demandé dans L1
• Echec L1 et Succès L2
– Remplacement d’un bloc dans L1 (copié
dans L2) et bloc demandé de L2 dans L1
• Nécessité d’un tampon des victimes
– Lors d’un remplacement, le bloc remplacé
est placé dans un tampon pour ne pas
retarder le transfert L2 vers L1
L3 Informatique - IFIPS2
2007-08
Architecture des ordinateurs
D. Etiemble
23
Caches données des processeurs Intel
CACHE PRIMAIRE
Pentium Pro
Pentium III
Pentium 4
Taille
8 Ko
16 Ko
8 Ko
Assoc.
2 voies
4 voies
4 voies
Lignes Latence Ecriture
32 oct
3
Réécriture
32 oct
3
Réécriture
64 oct 2/6
Simultanée
CACHE SECONDAIRE (UNIFIE)
Taille
Assoc.
Pentium Pro 512 Ko 4 voies
Pentium III* 256 Ko 8 voies
Pentium 4
256 Ko 8 voies
L3 Informatique - IFIPS2
2007-08
Lignes Latence Ecriture
32 oct
Réécriture
32 oct
6
Réécriture
128 oct
7/7 Réécriture
Architecture des ordinateurs
D. Etiemble
24
12
Amélioration des performances cache
• Réduire le taux d’échec
– Taille de cache, de ligne et degré d’associativité
– Optimisations du compilateur
– Préchargement
• Réduire le temps de l’accès réussi
– Prédiction d’ensemble
– Eviter les traductions d’adresse
• Réduire la pénalité d’échec
– Caches non bloquants
– Caches de second niveau
L3 Informatique - IFIPS2
2007-08
HW
SW
HW SW
HW
HW
HW
HW
Architecture des ordinateurs
D. Etiemble
25
L’allocation mémoire des tableaux C
•
Les tableaux C sont alloués dans l’ordre ligne d’abord
– Ligne dans des cases mémoires contiguës
•
Balayage à travers les colonnes dans une ligne :
– for (i = 0; i < N; i++)
sum += a[0][i];
– Accède aux éléments successifs
– Si la taille de bloc (B) > 4 octets, exploite la localité spatiale
• Taux d’échecs obligatoires = 4 octets / B
•
Balayage à travers les lignes dans une colonne :
– for (i = 0; i < n; i++)
sum += a[i][0];
– Accèdent à des éléments distants
– Aucune localité spatiale !
• Taux d’échecs obligatoires = 1 (i.e. 100%)
L3 Informatique - IFIPS2
2007-08
Architecture des ordinateurs
D. Etiemble
26
13
Multiplication de matrices (ijk)
/*
/* ijk
ijk */
*/
for
for (i=0;
(i=0; i<n;
i<n; i++)
i++) {{
for
(j=0;
j<n;
for (j=0; j<n; j++)
j++) {{
sum
=
0.0;
sum = 0.0;
for
for (k=0;
(k=0; k<n;
k<n; k++)
k++)
sum
+=
a[i][k]
sum += a[i][k] ** b[k][j];
b[k][j];
c[i][j]
c[i][j] == sum;
sum;
}}
PRODUIT SCALAIRE
}}
Boucle interne :
(*,j)
(i,j)
(i,*)
A
Par ligne
B
C
Par
colonne
Fixé
• Echecs par itération de la boucle interne:
A
0,25
B
1,0
L3 Informatique - IFIPS2
2007-08
C
0,0
Architecture des ordinateurs
D. Etiemble
27
Multiplication de matrices (ikj)
/*
/* ikj
ikj */
*/
for
for (i=0;
(i=0; i<n;
i<n; i++)
i++) {{
for
(k=0;
k<n;
for (k=0; k<n; k++)
k++) {{
rr == a[i][k];
a[i][k];
for
for (j=0;
(j=0; j<n;
j<n; j++)
j++)
c[i][j]
c[i][j] +=
+= rr ** b[k][j];
b[k][j];
}}
SAXPY/DAXPY
}}
Boucle interne :
(i,k)
(k,*)
(i,*)
A
Fixé
B
Par ligne
C
Par ligne
• Echecs par itération de la boucle interne:
A
0,0
L3 Informatique - IFIPS2
2007-08
B
0,25
C
0,25
Architecture des ordinateurs
D. Etiemble
28
14
Améliorer la localité temporelle par blocage
• Exemple : multiplication de matrices avec blocage
– “bloc” (dans ce contexte) ne signifie pas “bloc de cache”.
– C’est un sous bloc de la matrice.
– Exemple: N = 8; taille de sous bloc = 4
A11 A12
A21 A22
B11 B12
X
C11 C12
=
B21 B22
C21 C22
Idée de base : Un sous bloc (i.e., Axy) peut être traité comme un scalaire.
C11 = A11B11 + A12B21
C12 = A11B12 + A12B22
C21 = A21B11 + A22B21
C22 = A21B12 + A22B22
L3 Informatique - IFIPS2
2007-08
Architecture des ordinateurs
D. Etiemble
29
Optimisations du compilateur
ECHANGE DE BOUCLES
for (j=0; j<100; j++)
for (i=0; i<5000; i++)
x[i][j] = 2*x[i][j];
for (i=0; i<5000; i++)
for (j=0; j<100; j++)
x[i][j] = 2*x[i][j];
FUSION DE TABLEAUX
int val[SIZE];
int key[SIZE];
!
L3 Informatique - IFIPS2
2007-08
Améliore la localité spatiale
struc merge {
int val;
;
int key; }
struc merge merge-array [SIZE];
Architecture des ordinateurs
D. Etiemble
30
15
Optimisations du compilateur
Améliore la localité temporelle
FUSION DE BOUCLES
for (i=0; i<N; i++)
for (j=0; j<N; j++)
a[i][j] = 1/b[i][j]*c[i][j];
for (i=0; i<N; i++)
for (j=0; j<N; j++)
d[i][j] = a[i][j]+c[i][j];
L3 Informatique - IFIPS2
2007-08
for (i=0; i<N; i++)
for (j=0; j<N; j++)
{
a[i][j] = 1/b[i][j]*c[i][j];
d[i][j] = a[i][j]+c[i][j];
}
Architecture des ordinateurs
D. Etiemble
31
Optimisations du compilateur
BLOCAGE
AMELIORE LA LOCALITE TEMPORELLE
for (jj=0; jj<N; jj+=B)
for (i=0; i<N; i++)
for (kk=0; kk<N; kk+=B)
for (j=0; j<N; j++)
for (i=0; i<N; i++)
{r=0;
for (j=jj; j<(min(jj+B-1,N); j++)
for (k=0; k<N; k++)
{r=0;
r+=y[i][k]*z[k][j];
for (k=kk; j<(min(kk+B-1,N); k++)
x[i][j]=r;}
r+=y[i][k]*z[k][j];
x[i][j]+=r;}
B : facteur de blocage
L3 Informatique - IFIPS2
2007-08
Architecture des ordinateurs
D. Etiemble
32
16
Préchargement matériel
• Précharger les instructions ou les données avant qu’elles ne
soient nécessaires (charger une ligne avant un échec cache)
•
Quelle ligne ?
– La suivante (préchargement séquentiel selon la localité spatiale)
– Une ligne prédite
•
Quand ?
– Toujours
– Sur un échec
– Sur un échec et lorsqu’on accède une donnée préchargée
•
Où ?
– Dans le cache (pollution potentielle)
– Dans un tampon
L3 Informatique - IFIPS2
2007-08
Architecture des ordinateurs
D. Etiemble
33
Préchargement logiciel
• Instructions de préchargement (IA-32)
–
–
–
–
PREFETCHT0 m8 : tous les niveaux de cache
PREFETCHT1 m8: tous les niveaux sauf L0
PREFETCHT2 m8: tous les niveaux sauf L0 et L1
PREFETCHNTA m8: préchargement dans une structure
non temporelle
• Indications de préchargement
– Dépendent des implémentations
L3 Informatique - IFIPS2
2007-08
Architecture des ordinateurs
D. Etiemble
34
17
Liaison cache-mémoire principale
CPU
CPU
CPU
1 mot
MUX
1 mot
1 mot
Cache
Cache
Cache
m mots
1 mot
Mémoire
1 mot
Mémoire
Mémoire large
Banc
Banc
Banc
Banc
0
1
2
3
Mémoire entrelacée m bancs
Largeur 1 mot
L3 Informatique - IFIPS2
2007-08
Architecture des ordinateurs
D. Etiemble
35
Entrelacement mémoire
Module accédé
Adresses =
0 mod 4
0
1
Adresse
Donnée
entrée
Selon les
2 bits de
poids
faible
de
l’adresse
2
Adresses =
1 mod 4
Récupé
ration
donnée
Adresses =
2 mod 4
Donnée
sortie
3
0
1
Cycle bus
Adresses =
3 mod 4
Cycle mémoire
2
3
Temps
Modules
indépendants
L3 Informatique - IFIPS2
2007-08
Architecture des ordinateurs
D. Etiemble
36
18
Mémoire virtuelle
• Beaucoup de programmes se partagent la mémoire
DRAM
• On peut écrire des programmes sans tenir compte
de la taille de la mémoire principale
• Relocation : des parties de programme peuvent être
placés à différents endroits mémoire
• Mémoire virtuelle
– La mémoire DRAM contient plusieurs programmes s’exécutant en
même temps (processus)
– On utilise la mémoire DRAM comme une sorte de “cache” pour le
disque
L3 Informatique - IFIPS2
2007-08
Architecture des ordinateurs
D. Etiemble
37
Plan d’ensemble de la hiérarchie mémoire
Mémoire
virtuelle
Mémoire principale
Cache
Registres
Mots
Lignes
(transferts
explicites par
Instructions
Mémoire)
Pages
(transferts
automatiques
lors des défauts
de cache)
(transferts
automatiques
lors des défauts
de page)
Transferts de données dans une hiérarchie mémoire
L3 Informatique - IFIPS2
2007-08
Architecture des ordinateurs
D. Etiemble
38
19
Mappage mémoire virtuelle sur mémoire physique
Mémoire virtuelle
•
•
La mémoire est divisée en “blocs” de même taille ∞
(par exemple 4 Ko)
Un bloc de la mémoire virtuelle est affecté à un bloc
quelconque de la mémoire physique (page)
Pile
Mémoire physique
Un
processus
64 Mo
Heap
Heap
Static
Code
0
0
L3 Informatique - IFIPS2
2007-08
Architecture des ordinateurs
D. Etiemble
39
Gestion des défauts de page
• Un défaut de page est comme un échec cache
– On doit trouver la page dans le niveau inférieur de la hiérarchie
• Si le bit « valide » est à 0, le numéro de page physique pointe
vers une page sur disque
• Quand le système d’exploitation démarre un nouveau
processus, il crée de l’espace sur disque pour toutes les pages
du processus, positionne tous les bits « valide » dans la table
des pages à 0 et les numéros de pages physiques pour qu’ils
pointent sur le disque
– Les pages du processus sont chargés depuis le disque uniquement
quand elles sont nécessaires (pagination à la demande)
L3 Informatique - IFIPS2
2007-08
Architecture des ordinateurs
D. Etiemble
40
20
Comparaison Cache - Mémoire virtuelle
Cache
Mémoire virtuelle
Elément transféré
Bloc ou ligne
Page
Echec
Echec cache
Défaut de page
Taille transfert
Bloc : 32-64 octets
Page : 4 ko-16 ko
Placement
Correspondance directe
Associativité N voies
Associativité totale
Remplacement
LRU ou hasard
Approximation LRU
Ecriture
Simultanée ou réécriture
Réécriture
Gestion
Matériel
OS (matériel+logiciel
L3 Informatique - IFIPS2
2007-08
Architecture des ordinateurs
D. Etiemble
41
Traduction adresse virtuelle en adresse physique
Adresse virtuelle
31 30 29 28 27 .…………….12 11 10 9 8 ……..…3 2 1 0
Numéro page virtuelle
Adresse dans page
Page 1 ko
Traduction
Numéro page physique
29 28 27 .……………….12 11 10
Adresse dans page
9 8 ……..…3 2 1 0
Adresse physique
L3 Informatique - IFIPS2
2007-08
Architecture des ordinateurs
D. Etiemble
42
21
Traduction d’adresse
• Associativité totale pour le placement des pages
• Une table des pages est une structure de données
qui contient le mappage des pages virtuelles sur les
pages physiques
– Différentes techniques
• Chaque processus en cours d’exécution a sa propre
table des pages
L3 Informatique - IFIPS2
2007-08
Architecture des ordinateurs
D. Etiemble
43
Traduction d’adresse : Table des pages
N°page virtuelle
Adresse virtuelle
Déplacement
Table page
Registre table
pages
Index
vers
Table
pages
La table des
pages est
en mémoire
physique
L3 Informatique - IFIPS2
2007-08
...
V
D.A.
Val Droits
ide Accès
V
D.A.
0
D.A.
...
N.P.P.
+
N°page
physique
N.P.P
Adresse
mémoire
physique
Droits accès : aucun, Lect. seule,
Lect./Ecrit., Exécutable
Architecture des ordinateurs
D. Etiemble
disque
44
22
Protection et partage en mémoire virtuelle
Table page pour processus 1
Accès lecture et écriture
Table des pages pour processus 2
Accès lecture seulement
Pointeur
Drapeaux
Bits autorisation
vers disque
Mémoire principale
La mémoire virtuelle facilite le partage et la protection
mémoire
L3 Informatique - IFIPS2
2007-08
Architecture des ordinateurs
D. Etiemble
45
Table des pages directes à 2 niveaux
ADRESSE VIRTUELLE
31
22 21
MEMOIRE PHYSIQUE
12 11
Entrée répert. Entrée table
0
Déplacement
+
Opérande
4K
+
4K
+
Table des pages
Registre
de base
du répertoire
L3 Informatique - IFIPS2
2007-08
Répertoire
Architecture des ordinateurs
D. Etiemble
46
23
Table des pages inverses
Table des pages inversée
Adresse virtuelle
Numéro de page virtuelle
déplacement
Numéro page virtuelle
pointeur
Fonction
de hachage
Numéro page virtuelle
pointeur
Numéro page virtuelle
fin de chaîne
Table de
pointeurs
L3 Informatique - IFIPS2
2007-08
Architecture des ordinateurs
D. Etiemble
47
Traduction rapide : TLB
• Problème : la mémoire virtuelle demande 2 (3) accès mémoire
– 1 (2) pour traduire l’adresse virtuelle en adresse physique (accès à la
table des pages)
– 1 pour l’accès à la donnée réelle (succès cache)
– La table des pages étant en mémoire physique, il y a donc 2 (3) accès
mémoire
• Observation comme il y a de la localité dans les pages de
données, il doit y en avoir dans les adresses virtuelles de ces
pages
• Créer un cache de traduction des adresses virtuelles en
adresses physiques
• Un tel cache de « table des pages » est appelé TLB
(Translation Lookaside Buffer)
L3 Informatique - IFIPS2
2007-08
Architecture des ordinateurs
D. Etiemble
48
24
Format TLB
N° page
virtuelle
•
•
•
N° page
physique
Valide
Référence
Modifié
Droits
d’accès
Modifié : indique si la page a été ou non modifiée en écriture
Référence : utilisée pour calculer le LRU
Droits d’accès : lecture/écriture/exécution sur les pages
L3 Informatique - IFIPS2
2007-08
Architecture des ordinateurs
D. Etiemble
49
Fonctionnement du TLB
Données
Données
Adresse
virtuelle
Processeur
Adresse
physique
succès
TLB
succès échec
Cache
Mémoire
principale
Gestionnaire
Défaut page
Disque
échec
Table des
pages
L3 Informatique - IFIPS2
2007-08
Architecture des ordinateurs
D. Etiemble
50
25
Cache et TLB
Cache physique
Cache L1
TLB
Adresses
logiques
Adresses
physiques
Cache virtuel
Cache L1
TLB
Adresses
logiques
Adresses
physiques
Synonymes
L3 Informatique - IFIPS2
2007-08
Architecture des ordinateurs
D. Etiemble
51
Cache et TLB
Caches avec index virtuels et adresses physiques
Numéro page virtuelle
Dépl. dans la page
Etiquettes
Index
TLB
N° page
physique
N° page physique
Cache L1
=?
TLB et cache sont accédés en parallèle
Avec la correspondance directe, taille du cache = taille de page
L3 Informatique - IFIPS2
2007-08
Architecture des ordinateurs
D. Etiemble
52
26
Téléchargement