architectures des ordinateurs caches et mémoire...
TRANSCRIPT
![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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/2.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/3.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/4.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/5.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/6.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/7.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/8.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/9.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/10.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/11.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/12.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/13.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/14.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/15.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/16.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/17.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/18.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/19.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/20.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/21.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/22.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/23.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/24.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/25.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/26.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/27.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/28.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/29.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/30.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/31.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/32.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/33.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/34.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/35.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/36.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/37.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/38.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/39.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/40.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/41.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/42.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/43.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/44.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/45.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/46.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/47.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/48.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/49.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/50.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/51.jpg)
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%](https://reader034.vdocuments.site/reader034/viewer/2022042620/5f3fb1b21ae2ee160830fd68/html5/thumbnails/52.jpg)
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