architectures des ordinateurs caches et mémoire...

52
Architectures des ordinateurs Caches et mémoire virtuelle Daniel Etiemble [email protected]

Upload: others

Post on 12-Jul-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

Architectures des ordinateursCaches et mémoire virtuelle

Daniel Etiemble

[email protected]

Page 2: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 3: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 4: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 5: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 6: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 7: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 8: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 9: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 10: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 11: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 12: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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)

Page 13: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 14: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 15: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 16: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 17: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 18: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 19: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 20: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 21: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 22: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 23: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 24: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 25: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 26: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 27: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 28: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 29: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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.

Page 30: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

;

!

Page 31: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 32: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 33: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 34: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 35: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 36: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 37: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 38: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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)

Page 39: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 40: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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)

Page 41: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 42: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 43: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 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

Page 44: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 45: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 46: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 47: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 48: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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)

Page 49: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 50: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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 »

Page 51: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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

Page 52: Architectures des ordinateurs Caches et mémoire virtuellehnc.toile-libre.org/files/teaching/archi_15/02. IFIPS... · 2015-09-24 · Architecture des ordinateurs D. Etiemble 21 0%

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