Architectures des ordinateurs Caches et mémoire virtuellede/IFIPS-caches.pdf · 2007-10-08 · 1...

26
1 Architectures des ordinateurs Caches et mémoire virtuelle Daniel Etiemble [email protected] L3 Informatique - IFIPS2 2007-08 Architecture des ordinateurs D. 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

Transcript of Architectures des ordinateurs Caches et mémoire virtuellede/IFIPS-caches.pdf · 2007-10-08 · 1...

Page 1: Architectures des ordinateurs Caches et mémoire virtuellede/IFIPS-caches.pdf · 2007-10-08 · 1 Architectures des ordinateurs Caches et mémoire virtuelle Daniel Etiemble de@lri.fr

1

Architectures des ordinateursCaches et mémoire virtuelle

Daniel Etiemble

[email protected]

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

Page 2: Architectures des ordinateurs Caches et mémoire virtuellede/IFIPS-caches.pdf · 2007-10-08 · 1 Architectures des ordinateurs Caches et mémoire virtuelle Daniel Etiemble de@lri.fr

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

Page 3: Architectures des ordinateurs Caches et mémoire virtuellede/IFIPS-caches.pdf · 2007-10-08 · 1 Architectures des ordinateurs Caches et mémoire virtuelle Daniel Etiemble de@lri.fr

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

Page 4: Architectures des ordinateurs Caches et mémoire virtuellede/IFIPS-caches.pdf · 2007-10-08 · 1 Architectures des ordinateurs Caches et mémoire virtuelle Daniel Etiemble de@lri.fr

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

Page 5: Architectures des ordinateurs Caches et mémoire virtuellede/IFIPS-caches.pdf · 2007-10-08 · 1 Architectures des ordinateurs Caches et mémoire virtuelle Daniel Etiemble de@lri.fr

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

Page 6: Architectures des ordinateurs Caches et mémoire virtuellede/IFIPS-caches.pdf · 2007-10-08 · 1 Architectures des ordinateurs Caches et mémoire virtuelle Daniel Etiemble de@lri.fr

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)

Page 7: Architectures des ordinateurs Caches et mémoire virtuellede/IFIPS-caches.pdf · 2007-10-08 · 1 Architectures des ordinateurs Caches et mémoire virtuelle Daniel Etiemble de@lri.fr

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

Page 8: Architectures des ordinateurs Caches et mémoire virtuellede/IFIPS-caches.pdf · 2007-10-08 · 1 Architectures des ordinateurs Caches et mémoire virtuelle Daniel Etiemble de@lri.fr

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

Page 9: Architectures des ordinateurs Caches et mémoire virtuellede/IFIPS-caches.pdf · 2007-10-08 · 1 Architectures des ordinateurs Caches et mémoire virtuelle Daniel Etiemble de@lri.fr

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

Page 10: Architectures des ordinateurs Caches et mémoire virtuellede/IFIPS-caches.pdf · 2007-10-08 · 1 Architectures des ordinateurs Caches et mémoire virtuelle Daniel Etiemble de@lri.fr

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)

Page 11: Architectures des ordinateurs Caches et mémoire virtuellede/IFIPS-caches.pdf · 2007-10-08 · 1 Architectures des ordinateurs Caches et mémoire virtuelle Daniel Etiemble de@lri.fr

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

Page 12: Architectures des ordinateurs Caches et mémoire virtuellede/IFIPS-caches.pdf · 2007-10-08 · 1 Architectures des ordinateurs Caches et mémoire virtuelle Daniel Etiemble de@lri.fr

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

Page 13: Architectures des ordinateurs Caches et mémoire virtuellede/IFIPS-caches.pdf · 2007-10-08 · 1 Architectures des ordinateurs Caches et mémoire virtuelle Daniel Etiemble de@lri.fr

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%)

Page 14: Architectures des ordinateurs Caches et mémoire virtuellede/IFIPS-caches.pdf · 2007-10-08 · 1 Architectures des ordinateurs Caches et mémoire virtuelle Daniel Etiemble de@lri.fr

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

Page 15: Architectures des ordinateurs Caches et mémoire virtuellede/IFIPS-caches.pdf · 2007-10-08 · 1 Architectures des ordinateurs Caches et mémoire virtuelle Daniel Etiemble de@lri.fr

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];

Page 16: Architectures des ordinateurs Caches et mémoire virtuellede/IFIPS-caches.pdf · 2007-10-08 · 1 Architectures des ordinateurs Caches et mémoire virtuelle Daniel Etiemble de@lri.fr

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

Page 17: Architectures des ordinateurs Caches et mémoire virtuellede/IFIPS-caches.pdf · 2007-10-08 · 1 Architectures des ordinateurs Caches et mémoire virtuelle Daniel Etiemble de@lri.fr

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

Page 18: Architectures des ordinateurs Caches et mémoire virtuellede/IFIPS-caches.pdf · 2007-10-08 · 1 Architectures des ordinateurs Caches et mémoire virtuelle Daniel Etiemble de@lri.fr

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

Page 19: Architectures des ordinateurs Caches et mémoire virtuellede/IFIPS-caches.pdf · 2007-10-08 · 1 Architectures des ordinateurs Caches et mémoire virtuelle Daniel Etiemble de@lri.fr

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)

Page 20: Architectures des ordinateurs Caches et mémoire virtuellede/IFIPS-caches.pdf · 2007-10-08 · 1 Architectures des ordinateurs Caches et mémoire virtuelle Daniel Etiemble de@lri.fr

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)

Page 21: Architectures des ordinateurs Caches et mémoire virtuellede/IFIPS-caches.pdf · 2007-10-08 · 1 Architectures des ordinateurs Caches et mémoire virtuelle Daniel Etiemble de@lri.fr

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

Page 22: Architectures des ordinateurs Caches et mémoire virtuellede/IFIPS-caches.pdf · 2007-10-08 · 1 Architectures des ordinateurs Caches et mémoire virtuelle Daniel Etiemble de@lri.fr

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

Page 23: Architectures des ordinateurs Caches et mémoire virtuellede/IFIPS-caches.pdf · 2007-10-08 · 1 Architectures des ordinateurs Caches et mémoire virtuelle Daniel Etiemble de@lri.fr

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

Page 24: Architectures des ordinateurs Caches et mémoire virtuellede/IFIPS-caches.pdf · 2007-10-08 · 1 Architectures des ordinateurs Caches et mémoire virtuelle Daniel Etiemble de@lri.fr

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)

Page 25: Architectures des ordinateurs Caches et mémoire virtuellede/IFIPS-caches.pdf · 2007-10-08 · 1 Architectures des ordinateurs Caches et mémoire virtuelle Daniel Etiemble de@lri.fr

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

Page 26: Architectures des ordinateurs Caches et mémoire virtuellede/IFIPS-caches.pdf · 2007-10-08 · 1 Architectures des ordinateurs Caches et mémoire virtuelle Daniel Etiemble de@lri.fr

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