architectures des ordinateurs caches et mémoire virtuellede/ifips-caches.pdf · 2007-10-08 · 1...
TRANSCRIPT
1
Architectures des ordinateursCaches et mémoire virtuelle
Daniel Etiemble
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
2
Capacité mémoire
1K
10K
100K
1M
10M
100M
1978 1981 1984 1987 1990 1993 1996
DRAM
SRAM
(bits)
Date d’apparition
X 4 tous les trois ans
LB LB
LM
Q Q
Point mémoire SRAM
(6 transistors)
Point mémoire DRAM
(1,5 transistors)
≈ 0.5 T
Surface SRAM/DRAM = 4
Coût bit SRAM/DRAM = 10
2
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
3
Caractéristiques temporelles des DRAM
année1980 1983 1986 1989 1992
50
100
150
200
250
Temps de cycle
Temps d’accès ligne
lent
rapide
Temps d’accès colonne
64 Ko 256 Ko 1 Mo 4 Mo 16 Mo
ns
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
4
Le “gap” des performances mémoire
1
10
100
1000
10000
80 82 84 86 88 90 92 94 96 9820
00
CPU
DRAM
Croissance besoins CPU : 50 à 60%/an
Décroissance latence DRAM : 8 à 10%/an
3
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
5
Evolution des hiérarchies mémoire (1985-2000)
CPU L1cache MM
System bus
a)
CPU +
L1 caches MML2
cache
System bus
b)System bus
L2
cacheSuperscalar
CPU
+
L1 caches
Special bus
MM
d)
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
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
6
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
CPU
Cache Mémoire principale
Ligne
4
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
7
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 - IFIPS22007-08
Architecture des ordinateursD. Etiemble
8
Mécanismes de correspondance
01234567 01234567
0 1 2 3
01234567
ADRESSE LIGNE
Mémoire principale
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
OU PLACER UNE LIGNE DE LA MP DANS LE CACHE ?
Correspondance directe Totalement associatif Associatif deux voies
5
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
9
Correspondance directe
= ?
Bits decontrôle
5
ETIQUETTE INDEXAdresse Octetdans le Bloc
j
ETIQUETTE
i/NB0
NB - 1
OUI : Succès
NON : Echec
J (cache) = i (MP) mod NB, avec NB = nombre de lignes du cache
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
10
Associativité totale
Bits decontrôle
5
ETIQUETTEAdresse Octetdans le Bloc
j
ETIQUETTE
0
NB - 1
=
=
=
NBcomparaisons
1 égalité = Succès
0 égalité = Echec
Ligne i(MP) dans n’importe quelle ligne j du cache. Etiquette = i, et NB comparateurs pour détecter succès ou échec
6
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
11
Associativité par ensemble
= ?
Bits decontrôle
5
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
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
12
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)
7
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
13
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
0,001
0,002
0,003
0,004
0,005
0,006
0,007
0,008
0,009
0,01
1 bloc 2 blocs 4 blocs 8 blocs
Obligatoire Capacité Conflit
SPEC92 Lignes de 32 octets - LRU
DECStation5000
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
14
Politique en écriture
WRITE THROUGH(Ecriture simultanée)
CPU
L1 L2
Write
Write Buffer
WRITE BACK(Réécriture)
Write
CPU
L1 L2
x
Bit “modifié”
Ecriture mémoire quand une ligne modifiée
est remplacée
L2
CPU
L1
xRead Miss
1
2 Write back
3 Load
Cohérenceau plus tôt
Réécriture
Cohérence au plus tard
8
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
15
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
16
CPI Mémoire
CPU
Cache
Mémoire principale
Bloc
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
9
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
17
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 - IFIPS22007-08
Architecture des ordinateursD. Etiemble
18
Taux d’échec (Taille de ligne)
0,00%
5,00%
10,00%
15,00%
20,00%
25,00%
16 32 64 128 256
1K4K16K64K256K
10
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
19
Temps d’accès (taille de ligne)
0
2
4
6
8
10
12
14
16
18
16/42 32/44 64/48 128/56 256/72
1K4K16K64K256K
Taille de ligne / Pénalité d’échec
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
20
Taux d’échecs (associativité)
Cache 8 Ko ; n voies
Ta
ux
d’é
ch
ec
0123456789
10
go
gcc
lisp
co
mp
ress
mg
rid
ap
plu
wa
ve
hyd
ro
1
2
4
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)
11
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
21
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
0%10%20%30%40%50%60%70%80%90%
100%
sw
m25
6
tom
catv
fpppp
suc2co
r
hydro
2d
mdljs
p2
nasa7
doduc
wa
ve5
ear
mdljd
p2
alv
inn
spic
e2
g6
ora xlis
p
espre
sso
com
pre
ss
eqnto
tt
Succès pendant 1 échecSuccès pendant 2 échecsSuccès pendant 2 échecs
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
22
Plusieurs niveaux de cache
• Options: caches instructions et données séparés ou cache unifié
Taille :
Vitesse
€/Moctet :
Taille ligne :
200 o
<1 ns
8 o
8-64 Ko
<1 ns
32 o
DRAM 128 Mo
60 ns
1.50€/Mo
8 Ko
30 Go
8 ms
0.05€/Mo
Plus gros, plus lent, moins cher
MémoireMémoire
cache D - L1
RegsCache
L2 unifié
CacheL2
unifié
Processeur
SRAM 1-4Mo
6 ns
100 €/Mo
32 o
cache I – L1
disquedisque
12
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
23
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 - IFIPS22007-08
Architecture des ordinateursD. Etiemble
24
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 oct 2/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
13
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
25
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
HW
SW
HW SW
HW
HW
HW
HW
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
26
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%)
14
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
27
Multiplication de matrices (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];
c[i][j] = sum;
}
}
/* 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];
c[i][j] = sum;
}
}
A B C
(i,*)
(*,j)
(i,j)
Boucle interne :
Par
colonne
Par ligne Fixé
• Echecs par itération de la boucle interne:A B C
0,25 1,0 0,0
PRODUIT SCALAIRE
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
28
Multiplication de matrices (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];
}
}
/* 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 :
Par ligne Par ligneFixé
• Echecs par itération de la boucle interne:A B C
0,0 0,25 0,25
SAXPY/DAXPY
15
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
29
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
C11 = A11B11 + A12B21 C12 = A11B12 + A12B22
C21 = A21B11 + A22B21 C22 = A21B12 + A22B22
A11 A12
A21 A22
B11 B12
B21 B22
X =
C11 C12
C21 C22
Idée de base : Un sous bloc (i.e., Axy) peut être traité comme un scalaire.
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
30
Optimisations du compilateur
FUSION DE TABLEAUX
int val[SIZE];
int key[SIZE];
struc merge {int val;int key; }
struc merge merge-array [SIZE];
;
Améliore la localité spatiale
!
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];
16
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
31
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++)
d[i][j] = a[i][j]+c[i][j];
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];
}
Améliore la localité temporelle
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
32
Optimisations du compilateur
BLOCAGE
for (i=0; i<N; i++)for (j=0; j<N; j++)
{r=0; for (k=0; k<N; k++)
r+=y[i][k]*z[k][j];x[i][j]=r;}
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++){r=0; for (k=kk; j<(min(kk+B-1,N); k++)
r+=y[i][k]*z[k][j];x[i][j]+=r;}
AMELIORE LA LOCALITE TEMPORELLE
B : facteur de blocage
17
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
33
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 - IFIPS22007-08
Architecture des ordinateursD. Etiemble
34
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
18
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
35
Liaison cache-mémoire principale
CPU
Cache
Mémoire
1 mot
1 mot
Largeur 1 mot
CPU
MUX
Cache
Mémoire
1 mot
m mots
Mémoire large
CPU
Cache
Banc
0
Banc
1
Banc
2
Banc
3
1 mot
1 mot
Mémoire entrelacée m bancs
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
36
Entrelacement mémoire
Adresse
-
Adresses =
0 mod 4
Récupé
rationdonnéeDonnée
entrée
Donnée
sortieSelon les
2 bits de
poids faible
de
l’adresse
Cycle bus
Cycle mémoire
0
1
2
3
0
1
2
3
Module accédé
Temps
Adresses =
1 mod 4
Adresses =
2 mod 4
Adresses =3 mod 4
Modules
indépendants
19
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
37
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 - IFIPS22007-08
Architecture des ordinateursD. Etiemble
38
Transferts de données dans une hiérarchie mémoire
Plan d’ensemble de la hiérarchie mémoire
Pages
Lignes
Mots
Registres
Mémoire principale
Cache
Mémoirevirtuelle
(transferts
explicites parInstructions
Mémoire)
(transfertsautomatiques
lors des défauts
de cache)
(transfertsautomatiques
lors des défauts
de page)
20
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
39
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)
0
Un
processus
0
Mémoire physique
∞∞∞∞
Mémoire virtuelle
Heap
64 Mo
Pile
Heap
Static
Code
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
40
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)
21
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
41
Comparaison Cache - Mémoire virtuelle
OS (matériel+logicielMatérielGestion
RéécritureSimultanée ou réécritureEcriture
Approximation LRULRU ou hasardRemplacement
Associativité totaleCorrespondance directe
Associativité N voies
Placement
Page : 4 ko-16 koBloc : 32-64 octetsTaille transfert
Défaut de pageEchec cacheEchec
PageBloc ou ligneElément transféré
Mémoire virtuelleCache
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
42
Traduction adresse virtuelle en adresse physique
Numéro page virtuelle Adresse dans page
Adresse dans pageNuméro page physique
Traduction
31 30 29 28 27 .…………….12 11 10
29 28 27 .……………….12 11 10
9 8 ……..…3 2 1 0
Adresse virtuelle
Adresse physique
9 8 ……..…3 2 1 0
Page 1 ko
22
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
43
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 - IFIPS22007-08
Architecture des ordinateursD. Etiemble
44
Traduction d’adresse : Table des pagesAdresse virtuelle
N°page virtuelle Déplacement
Registre tablepages
La table des pages est en mémoire physique
IndexversTablepages
+
Adressemémoirephysique
Droits accès : aucun, Lect. seule, Lect./Ecrit., Exécutable
Table page
Valide
DroitsAccès
N°pagephysique
V D.A. N.P.P
0 D.A.
V D.A. N.P.P.
...
...
disque
23
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
45
Protection et partage en mémoire virtuelle
La mémoire virtuelle facilite le partage et la protection
mémoire
Table page pour processus 1
Mémoire principale
Bits autorisation
PointeurDrapeaux
Table des pages pour processus 2
vers disque
Accès lecture seulement
Accès lecture et écriture
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
46
Table des pages directes à 2 niveaux
+
+
+
Registre de base du répertoire
Répertoire
Table des pages
Opérande
DéplacementEntrée tableEntrée répert.
01112212231
4K
4K
MEMOIRE PHYSIQUEADRESSE VIRTUELLE
24
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
47
Table des pages inverses
déplacementNuméro de page virtuelle
Fonction de hachage
Table de pointeurs
Table des pages inversée
Numéro page virtuellepointeur
Numéro page virtuellefin de chaîne
Adresse virtuelle
Numéro page virtuellepointeur
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
48
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)
25
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
49
Format TLB
• 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
Droits d’accès
ModifiéRéférenceValideN° page physique
N° page virtuelle
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
50
Fonctionnement du TLB
Processeur TLB Cache Mémoire
principale
échecsuccès
Données
succès
échec
DisqueGestionnaireDéfaut page
Table des
pages
Données
Adressevirtuelle
Adressephysique
26
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
51
Cache et TLB
Cache physique
TLB Cache L1
Adresseslogiques
Adressesphysiques
Cache virtuel
Cache L1 TLBAdresseslogiques Adresses
physiques
Synonymes
L3 Informatique - IFIPS22007-08
Architecture des ordinateursD. Etiemble
52
Cache et TLB
Caches avec index virtuels et adresses physiques
TLB et cache sont accédés en parallèle
Avec la correspondance directe, taille du cache = taille de page
Dépl. dans la pageNuméro page virtuelle
Index
TLB=?
N° page physique
Etiquettes
Cache L1
N° page physique