Architectures des ordinateurs Caches et mémoire...
Transcript of Architectures des ordinateurs Caches et mémoire...
Capacité mémoire
100K
1M
10M
100MDRAM
SRAM
(bits)
Point mémoire DRAM(1,5 transistors)
≈ 0.5 T
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
2
1K
10K
1978 1981 1984 1987 1990 1993 1996
Date d’apparition
X 4 tous les trois ans
LB LB
LM
Q Q
Point mémoire SRAM(6 transistors)
Surface SRAM/DRAM = 4Coût bit SRAM/DRAM = 10
Caractéristiques temporelles des DRAM
150
200
250
Temps de cycle
Temps d’accès ligne
ns
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
3
année1980 1983 1986 1989 1992
50
100
Temps d’accès ligne
lent
rapide
Temps d’accès colonne
64 Ko 256 Ko 1 Mo 4 Mo 16 Mo
Le “gap” des performances mémoire
10
100
1000
10000
CPU
DRAM
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
4
1
10
80 82 84 86 88 90 92 94 96 9820
00
Croissance besoins CPU : 50 à 60%/anDécroissance latence DRAM : 8 à 10%/an
Evolution des hiérarchies mémoire (1985-2000)
CPU L1cache MM
System bus
a)
CPU
L2
cacheSuperscalar
CPU
+
L1 caches
Special bus
MM
d)
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
5
CPU +
L1 caches MML2
cache
System bus
b)System bus
MML2
cache
Superscalar CPU
+ L1 caches
c)
System bus
System bus
Superscalar CPU
+ L1 caches
Special bus
MMRDRAM
e)
L2 CACHEPentium Pro
Pentium
PentiumII
Pentium 4
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
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
6
• Détection succès ou échec
– Gestion de la cohérence
CPU
Cache Mémoire principale
Ligne
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
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
7
probablement très bientôt (ou dans très longtemps ou jamais !)
Mécanismes de correspondance
Mémoire principale
OU PLACER UNE LIGNE DE LA MP DANS LE CACHE ?
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
8
01234567 01234567
0 1 2 3
01234567ADRESSE LIGNE
0
1
2
3
4
5
6
7
8
9
10
1
1
12
1
3
14
1
5
16
1
7
18
1
9
20
2
1
22
2
3
24
2
5
26
2
7
28
2
9
30
3
1
Correspondance directe Totalement associatif Associatif deux voies
Correspondance directe
5
ETIQUETTE INDEXAdresse Octetdans le Bloc
J (cache) = i (MP) mod NB, avec NB = nombre de lignes du cache
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
9
= ?
Bits decontrôle
dans le Bloc
j
ETIQUETTE
i/NB0
NB - 1
OUI : Succès
NON : Echec
Associativité totale
5
ETIQUETTEAdresse Octetdans le Bloc
Ligne i(MP) dans n’importe quelle ligne j du cache. Etiquette = i, et NB comparateurs pour détecter succès ou échec
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
10
Bits decontrôle
j
ETIQUETTE
0
NB - 1
=
=
=
NBcomparaisons
1 égalité = Succès
0 égalité = Echec
Associativité par ensemble
5
ETIQUETTE INDEX EnsembleAdresse Octet
N (2, 4, 8) lignes par ensemble. Correspondance directe pourles ensembles et associativité à l’intérieur d’un ensemble. N comparateurs.
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
11
= ?
Bits decontrôle
ETIQUETTE INDEX EnsembleAdresse Octetdans le Bloc
j
ETIQUETTE
i/NE
0
NE - 1OUI : Succès
NONEchec
j
ETIQUETTE
i/NE
0
NE - 1
= ?
Bits decontrôle
Les causes d’échec cache
• Échecs de démarrage– Premiers accès à une donnée ou une instruction : elle est en mémoire
principale.
• Échecsde capacité
– Le cache est trop “petit” par rapport aux besoins du programme (instructions et/ou données)
• Échecs de conflit
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
12
• É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)
Les 3C
• Echecs de démarrage
• Echecs de capacité
• Echecs de conflit
0
0,02
0,04
0,06
0,08
0,1
0,12
0,14
1 bloc 2 blocs 4 blocs 8 blocs
Obligatoire Capacité Conflit
0,01
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
13
0
0,001
0,002
0,003
0,004
0,005
0,006
0,007
0,008
0,009
1 bloc 2 blocs 4 blocs 8 blocs
Obligatoire Capacité Conflit
SPEC92 Lignes de 32 octets - LRU
DECStation5000
Politique en écriture
WRITE THROUGH
(Ecriture simultanée)
CPUL1 L2
Write
WRITE BACK
(Réécriture)
Write
CPUL1 L2
x
Bit “modifié”
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
14
Write
Write BufferEcriture mémoire quand une ligne modifiéeest remplacée
L2CPU
L1
xRead Miss
1
2 Write back
3 Load
Cohérenceau plus tôt
Réécriture
Cohérence au plus tard
Politiques de remplacement
• Ligne à remplacer ?– La plus anciennement utilisée (LRU)
– Au hasard
– La moins fréquemment utilisée (LFU)
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
15
CPI Mémoire
CPU
Cache
Mémoire principale
Bloc
CPImémoire = ma x m x p
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
16
ma: accès mémoire/instruction
m: taux d’échec
p : pénalité d’échec (cycles d’horloge)
CPImémoire = ma x m x p
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
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
17
• Eviter les traductions d’adresse
• Diminuer la pénalité d’échec• Caches non bloquants
• Caches de second niveau
Taux d’échec (Taille de ligne)
15,00%
20,00%
25,00%1K4K16K64K256K
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
18
0,00%
5,00%
10,00%
15,00%
16 32 64 128 256
Temps d’accès (taille de ligne)
10
12
14
16
18
1K4K16K64K256K
Temps d’accès moyen (cycles)
Hypothèse
40 cycles de démarrage, puis 16 octets tous les 2
cycles
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
19
0
2
4
6
8
16/42 32/44 64/48 128/56 256/72
256K
Taille de ligne / Pénalité d’échec
Taux d’échecs (associativité)
Cache 8 Ko ; n voies
Taux
d’é
chec 7
89
10
1
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)
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
20
Taux
d’é
chec
01234567
go gcc
lisp
com
pres
s
mgr
id
appl
u
wav
e
hydr
o
2
4
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 L2 ou MPEchec / Succès
Rapport moyen entre les temps de suspension d’un cache non bloquant/cache bloquant
100%
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
21
0%10%20%30%40%50%60%70%80%90%
100%
swm
256
tom
catv
fppp
p
suc2
cor
hydr
o2d
mdl
jsp2
nasa
7
dodu
c
wav
e5
ear
mdl
jdp2
alvi
nn
spic
e2g6
ora
xlis
p
espr
esso
com
pres
s
eqnt
ott
Succès pendant 1 échecSuccès pendant 2 échecsSuccès pendant 2 échecs
Plusieurs niveaux de cache
• Options: caches instructions et données séparés ou cache unifié
Mémoire
cache D - L1
RegsCache
L2 unifié
Processeur
cache
disque
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
22
Taille :Vitesse€/Moctet :Taille ligne :
200 o<1 ns
8 o
8-64 Ko<1 ns
32 o
DRAM 128 Mo 60 ns1.50€/Mo8 Ko
30 Go8 ms0.05€/Mo
Plus gros, plus lent, moins cher
unifié
SRAM 1-4Mo 6 ns100 €/Mo32 o
cache I – L1
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
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
23
– 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
Caches données des processeurs Intel
CACHE PRIMAIRE
Taille Assoc. Lignes Latence EcriturePentium Pro 8 Ko 2 voies 32 oct 3 RéécriturePentium III 16 Ko 4 voies 32 oct 3 RéécriturePentium 4 8 Ko 4 voies 64 oct2/6 Simultanée
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
24
Pentium 4 8 Ko 4 voies 64 oct2/6 Simultanée
CACHE SECONDAIRE (UNIFIE)
Taille Assoc. Lignes Latence EcriturePentium Pro 512 Ko 4 voies 32 oct RéécriturePentium III* 256 Ko 8 voies 32 oct 6 RéécriturePentium 4 256 Ko 8 voies 128 oct 7/7 Réécriture
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
HW
SWHW SW
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
25
– Prédiction d’ensemble
– Eviter les traductions d’adresse
• Réduire la pénalité d’échec– Caches non bloquants
– Caches de second niveau
HWHW
HWHW
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
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
26
• 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%)
Multiplication de matrices (ijk)
/* ijk *//* ijk */
for (i=0; i<n; i++) {
for (j=0; j<n; j++) {
sum = 0.0;
for (k=0; k<n; k++)
sum += a[i][k] * b[k][j]; A B C
(i,*)
(*,j)(i,j)
Boucle interne :
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
27
sum += a[i][k] * b[k][j];
c[i][j] = sum;
}
}
A B C
Par colonne
Par ligne Fixé
• Echecs par itération de la boucle interne:A B C
0,25 1,0 0,0
PRODUIT SCALAIRE
Multiplication de matrices (ikj)
/* ikj *//* ikj */
for (i=0; i<n; i++) {
for (k=0; k<n; k++) {
r = a[i][k];
for (j=0; j<n; j++)
c[i][j] += r * b[k][j];A B C
(i,*)(i,k) (k,*)
Boucle interne :
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
28
c[i][j] += r * b[k][j];
}
}Par ligne Par ligneFixé
• Echecs par itération de la boucle interne:A B C
0,0 0,25 0,25
SAXPY/DAXPY
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
A A B B C C
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
29
C11 = A11B11 + A12B21 C12 = A11B12 + A12B22
C21 = A21B11 + A22B21 C22 = A21B12 + A22B22
A11 A12
A21 A22
B11 B12
B21 B22X =
C11 C12
C21 C22
Idée de base : Un sous bloc (i.e., Axy) peut être traité comme un scalaire.
Optimisations du compilateur
Améliore la localité spatialeECHANGE 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];
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
30
FUSION DE TABLEAUX
int val[SIZE];
int key[SIZE];
struc merge {int val;int key; }
struc merge merge-array [SIZE];
;
!
Optimisations du compilateur
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++)
{
Améliore la localité temporelle
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
31
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];
{ a[i][j] = 1/b[i][j]*c[i][j];d[i][j] = a[i][j]+c[i][j];}
Optimisations du compilateur
BLOCAGE
for (i=0; i<N; i++)for (j=0; j<N; j++)
{r=0; for (k=0; k<N; k++)
for (jj=0; jj<N; jj+=B)for (kk=0; kk<N; kk+=B)for (i=0; i<N; i++)
for (j=jj; j<(min(jj+B -1,N); j++)
AMELIORE LA LOCALITE TEMPORELLE
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
32
for (k=0; k<N; k++) r+=y[i][k]*z[k][j];
x[i][j]=r;}
for (j=jj; j<(min(jj+B -1,N); j++){r=0; for (k=kk; j<(min(kk+B-1,N);
k++)r+=y[i][k]*z[k][j];
x[i][j]+=r;}B : facteur de blocage
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 ?
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
33
• 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
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
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
34
non temporelle
• Indications de préchargement– Dépendent des implémentations
Liaison cache-mémoire principale
CPU
Cache
1 mot
CPU
MUX
Cache
1 mot
CPU
Cache
1 mot
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
35
Cache
Mémoire
1 mot
Largeur 1 mot
Mémoire
m mots
Mémoire large
Cache
Banc
0
Banc
1
Banc
2
Banc
3
1 mot
Mémoire entrelacée m bancs
Entrelacement mémoire
Adresse-
Adresses =0 mod 4
Récupération
DonnéesortieSelon les
2 bits depoids
0
1
2
3
0
Module accédé
Adresses =1 mod 4
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
36
rationdonnéeDonnée
entrée
poids faibledel’adresse
Cycle bus
Cycle mémoire
0
1
2
3Temps
Adresses =2 mod 4
Adresses =3 mod 4
Modulesindépendants
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
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
37
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
Plan d’ensemble de la hiérarchie mémoire
Registres
Mémoire principale
Cache
Mémoirevirtuelle
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
38
Transferts de données dans une hiérarchie mémoire
PagesLignes
Mots
(transfertsexplicites parInstructionsMémoire)
(transfertsautomatiqueslors des défautsde cache)
(transfertsautomatiqueslors des défautsde page)
Mappage mémoire virtuelle sur mémoire physique
• 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)
UnMémoire physique
∞Mémoire virtuelle
64 Mo
Pile
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
39
0
Unprocessus
0
Heap
64 Mo
Heap
Static
Code
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
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
40
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)
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
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
41
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
Traduction adresse virtuelle en adresse physique
Numéro page virtuelle Adresse dans page
31 30 29 28 27 .…………….12 11 10 9 8 ……..…3 2 1 0Adresse virtuelle
Page 1 ko
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
42
Adresse physique
Adresse dans pageNuméro page physique
Traduction
29 28 27 .……………….12 11 10 9 8 ……..…3 2 1 0
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
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
43
– Différentes techniques
• Chaque processus en cours d’exécution a sa propre table des pages
Traduction d’adresse : Table des pagesAdresse virtuelleN° page virtuelle Déplacement
Registre tablepages
Indexvers +
Table page
Val Droits N° page
V D.A. N.P.P....
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
44
La table des pages est en mémoire physique
versTablepages
+
Adressemémoirephysique
Droits accès : aucun, Lect. seule, Lect./Ecrit., Exécutable
Valide
DroitsAccès
N° pagephysique
V D.A. N.P.P
0 D.A....
disque
Protection et partage en mémoire virtuelle
Table page pour processus 1
Table des pages pour processus 2
Accès lecture seulement
Accès lecture et écriture
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
45
La mémoire virtuelle facilite le partage et la protection mémoire
Mémoire principaleBits autorisation
PointeurDrapeaux
vers disque
Accès lecture seulement
Table des pages directes à 2 niveaux
DéplacementEntrée tableEntrée répert.
01112212231
MEMOIRE PHYSIQUEADRESSE VIRTUELLE
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
46
+
+
+
Registre de base du répertoire
Répertoire
Table des pages
Opérande 4K
4K
Table des pages inverses
déplacementNuméro de page virtuelle
Table des pages inversée
Numéro page virtuellepointeur
Adresse virtuelle
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
47
Fonction de hachage
Table de pointeurs
Numéro page virtuellefin de chaîne
Numéro page virtuellepointeur
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
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
48
• 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)
Format TLB
N° page virtuelle
N° page physique
Valide Référence Modifié Droits d’accès
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
49
• 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
Fonctionnement du TLB
Processeur TLB Cache Mémoireprincipale
échecsuccès
Données
succès
Données
Adressevirtuelle
Adressephysique
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
50
TLB Cacheprincipaleéchec
DisqueGestionnaireDéfaut page
Table despages
Partie « mémoire virtuelle »
Cache et TLB
Cache physique
TLB Cache L1
Adresseslogiques
Adressesphysiques
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
51
Cache virtuel
Cache L1 TLBAdresseslogiques Adresses
physiques
Synonymes
Cache et TLB
Caches avec index virtuels et adresses physiques
Dépl. dans la pageNuméro page virtuelle
IndexEtiquettes
N° page physique
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
52
TLB et cache sont accédés en parallèle Avec la correspondance directe, taille du cache = taille de page
TLB=?
N° page physique
Cache L1
N° page physique