Hi rarchie mémoire -...

34
6. 1 Hiérarchie mémoire Hiérarchie mémoire Comment améliorer la capacité et la rapidité d'accès à la mémoire centrale?

Transcript of Hi rarchie mémoire -...

Page 1: Hi rarchie mémoire - users.polytech.unice.frusers.polytech.unice.fr/~helen/ARCHI/lesCours/memoire/memoireComplet.pdf · RAM: Random Access Memory volatile chaque mot est accessible

6. 1

Hiérarchie mémoire

Hiérarchie mémoire

Comment améliorer la capacité et la rapidité d'accès à la mémoire centrale?

Page 2: Hi rarchie mémoire - users.polytech.unice.frusers.polytech.unice.fr/~helen/ARCHI/lesCours/memoire/memoireComplet.pdf · RAM: Random Access Memory volatile chaque mot est accessible

6. 2

Hiérarchie mémoire

• Tous les programmes que l’on exécute et toutes les données auxquelles on accède doivent être «chargés» en mémoire centrale afin que le CPU puisse y accéder

• L'accès à la mémoire centrale est l'étape la plus lente lors de l'exécution d'une instruction

• La mémoire centrale n'est pas assez grande pour contenir le programme et les données

• Les mémoires à grande capacité sont lentes et les mémoires rapides sont chères et à faible capacité !

Page 3: Hi rarchie mémoire - users.polytech.unice.frusers.polytech.unice.fr/~helen/ARCHI/lesCours/memoire/memoireComplet.pdf · RAM: Random Access Memory volatile chaque mot est accessible

6. 3

Hiérarchie mémoire

  unitécentrale

mémoire

Inconvénients "goulot d'étranglement"

• lenteur : accès mémoire les uns après les autres, avec une durée déterminée par le protocole de communication 

très coûteux puisque accès mémoire en plusieurs tops d’horloge processeur 

• pas adapté à l’évolution technologique : les performances du CPU doublent tous les 18 mois, alors que celles des mémoires doublent tous les 7 ans (loi de Moore)

Modèle classique de processeur "Von Neumann"

Ordre de grandeur : période de l’ordre de 1ns pour CPU du Pentium III, temps d’accès DRAM de l’ordre de 40ns 

Page 4: Hi rarchie mémoire - users.polytech.unice.frusers.polytech.unice.fr/~helen/ARCHI/lesCours/memoire/memoireComplet.pdf · RAM: Random Access Memory volatile chaque mot est accessible

6. 4

Hiérarchie mémoire

AméliorationTenir compte des caractéristiques des accès mémoire impliquées par les langages de haut niveau         « localité des références » : on accède successivement dans le temps à des  

mots d’adresses consécutives

⇒  la mémoire est constituée de plusieurs unités conçues dans  technologies.

Les unités à accès rapide contiennent des copies des données des unités à accès lent en cours d’utilisation (données à des adresses consécutives).

CPU MEM1 MEM2 DISQUE

capacité et temps d'accès de plus en plus grands

Page 5: Hi rarchie mémoire - users.polytech.unice.frusers.polytech.unice.fr/~helen/ARCHI/lesCours/memoire/memoireComplet.pdf · RAM: Random Access Memory volatile chaque mot est accessible

6. 5

Hiérarchie mémoire1. Classes de mémoires

ROM : Read Only Memory

• stockage permanent (tableau logique et / ou)

• accès rapide

• utilisée pour stocker les programmes de boot, le BIOS,  les micro­instructions dans le cas d’une partie contrôle micro­programmée

• modifiable : PROM, EPROM  mémoire flash

Page 6: Hi rarchie mémoire - users.polytech.unice.frusers.polytech.unice.fr/~helen/ARCHI/lesCours/memoire/memoireComplet.pdf · RAM: Random Access Memory volatile chaque mot est accessible

6. 6

Hiérarchie mémoire

Disques durs

• disque magnétique, stockage permanent 

• accès séquentiel : pas le même temps pour accéder à chaque piste

• très grande capacité, accès lent

© Copyright CommentCaMarche.net 

ensemble de disques

unité de transfert : 512 o

Page 7: Hi rarchie mémoire - users.polytech.unice.frusers.polytech.unice.fr/~helen/ARCHI/lesCours/memoire/memoireComplet.pdf · RAM: Random Access Memory volatile chaque mot est accessible

6. 7

Hiérarchie mémoire

RAM: Random Access Memory­ volatile­ chaque mot est accessible indépendamment, avec le même temps d'accès

Mémoires statiques SRAM 

Accent sur la rapidité d'accès

L'information stockée reste valide statiquement (dans des flip/flop)    → temps d'accès mémoire  temps d'acquisition de la donnée

Utilisées pour les caches

Page 8: Hi rarchie mémoire - users.polytech.unice.frusers.polytech.unice.fr/~helen/ARCHI/lesCours/memoire/memoireComplet.pdf · RAM: Random Access Memory volatile chaque mot est accessible

6. 8

Hiérarchie mémoire

Mémoires dynamiques DRAM

Accent sur la capacité mémoire 

Stockage dynamique dans des condensateurs, l'information doit être réécrite régulièrement (un millier de fois par seconde)

      → temps d'accès mémoire décomposé en    ­ temps d'acquisition                                                                               ­ temps de mise à jour

SDRAM : accès synchrone, DRAM Rambus : boitié bus, DRAM cache : aveccache intégré 

Utilisées pour la mémoire principale

Page 9: Hi rarchie mémoire - users.polytech.unice.frusers.polytech.unice.fr/~helen/ARCHI/lesCours/memoire/memoireComplet.pdf · RAM: Random Access Memory volatile chaque mot est accessible

6. 9

Hiérarchie mémoire

Type demémoire

Technologie Taille Temps d’accès

Registre flip­flop 32, 64, 128 1 ps

Cache SRAM 8 à 512 Ko 1 à 5 ns

Mémoirecentrale

DRAM 256, 512 Moà 1Go

40 ns

Disque Disquemagnétique

120 Go à 200 Go

7 à 10 ms10 Mo par s

Disque optique CD­ROM 100 Go 300 ms600 Ko par s

Clé USB Mémoire flash 4 Go, 2 Go, 512Mo, 216 Mo

11 Mo par s   

De plus

en

plus

loin

du CPU

Page 10: Hi rarchie mémoire - users.polytech.unice.frusers.polytech.unice.fr/~helen/ARCHI/lesCours/memoire/memoireComplet.pdf · RAM: Random Access Memory volatile chaque mot est accessible

6. 10

Hiérarchie mémoire

DRAM  plus grande capacité que les SRAM

SRAM plus rapides que les DRAM

SRAM  consomment plus que les DRAM 

SRAM  plus chères que les DRAM

SRAM plus encombrantes que les DRAM

Page 11: Hi rarchie mémoire - users.polytech.unice.frusers.polytech.unice.fr/~helen/ARCHI/lesCours/memoire/memoireComplet.pdf · RAM: Random Access Memory volatile chaque mot est accessible

6. 11

Hiérarchie mémoire2. Mémoire multi­niveau

Coordonner des mémoires à accès rapide (chère, petite) avec des mémoires à accès lent (peu chère, grande) de façon à ce que la plus grande partie des accès se fasse vers les mémoires rapides

Basé sur le principe de localité des références : Des parties de programmes accèdent successivement dans le temps (localité temporelle) à des adresses consécutives de la mémoire (localité spatiale).

Localité dans la mémoire de données  Localité dans la pileLocalité dans la mémoire d'instructions

Des exemples de localité de référence ?

Page 12: Hi rarchie mémoire - users.polytech.unice.frusers.polytech.unice.fr/~helen/ARCHI/lesCours/memoire/memoireComplet.pdf · RAM: Random Access Memory volatile chaque mot est accessible

6. 12

Hiérarchie mémoire

Objectif des mémoires multi­niveau :        temps d'accès mémoire du système global  temps d'accès à la mémoire rapide        capacité du système global  capacité de la grande mémoire 

Principe utilisé entre :• cache primaire et secondaire• cache secondaire et mémoire centrale• cache intégré dans la mémoire• mémoire centrale et disque (mémoire virtuelle)

Page 13: Hi rarchie mémoire - users.polytech.unice.frusers.polytech.unice.fr/~helen/ARCHI/lesCours/memoire/memoireComplet.pdf · RAM: Random Access Memory volatile chaque mot est accessible

6. 13

Hiérarchie mémoire

2.1. Principes

Plusieurs niveaux de mémoire, deux niveaux adjacents sont manipulés à la fois

  anté­mémoire : plus proche du CPU, plus petite et plus rapide  mémoire : plus grande et plus lente

Processeur Anté­mémoire Mémoire

bloc

unité minimale d'information: bloc = x mots        (par exemple 1 bloc = 8 mots)

Page 14: Hi rarchie mémoire - users.polytech.unice.frusers.polytech.unice.fr/~helen/ARCHI/lesCours/memoire/memoireComplet.pdf · RAM: Random Access Memory volatile chaque mot est accessible

6. 14

Hiérarchie mémoire

Anté­mémoire Mémoire

• L'information de l'anté­mémoire est une copie d'une partie de l'information de la mémoire

• Si on trouve la donnée dans l'anté­mémoire on y accède

• Si la donnée n'est pas dans l'anté­mémoire on recopie le bloc complet qui contient cette donnée de la mémoire vers l'anté­mémoire  défaut

Selon le principe de la localité des références, si l'on vient d'accéder à une adresse d'un bloc, on accèdera bientôt à des adresses du même bloc

défaut

Page 15: Hi rarchie mémoire - users.polytech.unice.frusers.polytech.unice.fr/~helen/ARCHI/lesCours/memoire/memoireComplet.pdf · RAM: Random Access Memory volatile chaque mot est accessible

6. 15

Hiérarchie mémoire

2.2. Performances des mémoires multi­niveau

Pe: taux d'échec d'accès à l'anté­mémoire      (i.e probabilité qu'un mot mémoire accédé ne soit pas dans l'anté­mémoire)

Ta: temps d'accès à l'anté­mémoire si succès

Te: temps de traitement si échec

                                    temps moyen accès mémoire = Pe * Te + (1 ­ Pe) * Ta

  

Page 16: Hi rarchie mémoire - users.polytech.unice.frusers.polytech.unice.fr/~helen/ARCHI/lesCours/memoire/memoireComplet.pdf · RAM: Random Access Memory volatile chaque mot est accessible

6. 16

Hiérarchie mémoireExemple:  temps d’accès anté­mémoire de 3 ns, temps d'accès mémoire de 

50 ns, les blocs contiennent 8 mots  donc Te = 8 x 50 ns.Temps moyen d’accès à un mot mémoire sans hiérarchie : 50 ns

for (j = 1;j < 100; j++)traiter(tableau(i));

switch (choix) {case 1: pas = 10; rienFaire(tableau, pas);case 2: pas = 50; dodo(tableau, pas); ....

}

Pe = O,01Te = 8  50nsTa = 3 ns

Temps moyen d’accès avec hiérarchie:  0,01  8  50 + 0,99  3 = 6,97 ns

Pe = O,9Te = 8  50nsTa = 3 ns

Temps moyen d’accès avec hiérarchie:  0,9  8  50 + 0,1  3 = 360.3 ns

Page 17: Hi rarchie mémoire - users.polytech.unice.frusers.polytech.unice.fr/~helen/ARCHI/lesCours/memoire/memoireComplet.pdf · RAM: Random Access Memory volatile chaque mot est accessible

6. 17

Hiérarchie mémoire3. Mémoire cache

Petite mémoire entre processeur et mémoire centrale

Contient des copies des mots de la mémoire qui risquent d'être accédés par le processeur(localité des références)

Le cache est redondant ­> il n'augmente pas la capacité de la mémoire principale, mais seulement sa rapidité.

Cache

1 bloc ≡x mots(4 ici)

CPUun mot un bloc

Mémoire centrale

Page 18: Hi rarchie mémoire - users.polytech.unice.frusers.polytech.unice.fr/~helen/ARCHI/lesCours/memoire/memoireComplet.pdf · RAM: Random Access Memory volatile chaque mot est accessible

6. 18

Hiérarchie mémoire

LectureRéception de l'adresse ADfournie par le CPU

Le bloc contenant AD est­il dans le cache ?

Lecture mémoire centrale du bloc contenant AD 

Lecture du mot AD danscache et envoie au CPU

Chargement du bloc mémoiredans cache

Allocation emplacement cache pour bloc contenant AD

Envoie du mot AD au CPU

EcritureRéception de l'adresse ADfournie par le CPU

Le bloc contenant AD est­il dans le cache ?

Ecriture de la nouvelle valeur du mot AD dans lecache ET dans mémoire centrale

Ecriture de la nouvelle valeur du mot AD dansla mémoire centrale

OUI

NON

OUI

NON

Ecriture simultanée ?

OUI

NONEcriture de la nouvelle valeur  du mot AD dans le cache(recopie dans la mémoire centrale lors du remplacement du bloc)

coûteux

cohérence de l'information

3.1. Fonctionnement du cache

Page 19: Hi rarchie mémoire - users.polytech.unice.frusers.polytech.unice.fr/~helen/ARCHI/lesCours/memoire/memoireComplet.pdf · RAM: Random Access Memory volatile chaque mot est accessible

6. 19

Hiérarchie mémoire

3.2. Lien entre adresse mémoire et blocs mémoire

Si les blocs contiennent p mots, le mot d'adresse ad en mémoire :­ est dans le bloc "ad div p" de la mémoire­ à l'indice "ad mod p"

Exemple: p = 4, ad = 6­ le mot d'adresse 6 se trouve dans le bloc 6 div 4 = 1 de la mémoire­ avec un déplacement de 6 mod 4 = 2

n° bloc mémoire 0 1 2 3 4 155

Mémoire principale

1

2

0

3

4

5

6

1 bloc mémoire

1 mot mémoire

Page 20: Hi rarchie mémoire - users.polytech.unice.frusers.polytech.unice.fr/~helen/ARCHI/lesCours/memoire/memoireComplet.pdf · RAM: Random Access Memory volatile chaque mot est accessible

6. 20

Hiérarchie mémoire

0 1 2 3n° bloc  cache

3 6 11 15

Cache

Bloc de cache:                clé                               valeur du blocClé : identificateur du numéro de bloc mémoire

     Valeur : contenu du bloc mémoire (x cases mémoire)

3.3. Bloc de cacheLe cache contient beaucoup moins de blocs que la mémoire  :

­ un bloc de cache recevra successivement plusieurs blocs mémoire­ il faut donc pouvoir identifier quel est le bloc mémoire présent dans le cache

n° bloc mémoire

0 1 2 3 4 5

Mémoire principale

Il y actuellement les blocs mémoire 3, 6, 11 et 15 dans le cache

Page 21: Hi rarchie mémoire - users.polytech.unice.frusers.polytech.unice.fr/~helen/ARCHI/lesCours/memoire/memoireComplet.pdf · RAM: Random Access Memory volatile chaque mot est accessible

6. 21

Hiérarchie mémoire

­ le plus bas taux d'échec de recherche du blocle bloc cherché est bien dans le cache à la place calculée

­ un coût réduit de recherche du bloc un bloc mémoire a peu d’emplacements possibles dans le cache

3 stratégies  ­ caches associatifs  ­ caches à accès direct  ­ caches associatifs par ensemble de blocs

La place d’un bloc mémoire dans le cache est calculée à partir du numéro de bloc mémoire selon une stratégie de placement qui assure :

3.4. Où placer/chercher un bloc mémoire dans le cache ?

Page 22: Hi rarchie mémoire - users.polytech.unice.frusers.polytech.unice.fr/~helen/ARCHI/lesCours/memoire/memoireComplet.pdf · RAM: Random Access Memory volatile chaque mot est accessible

6. 22

Hiérarchie mémoire

Cache associatif: Un bloc mémoire peut se trouver n'importe où dans le cache

Mémoire principale

n° bloc mém 0 1 2 3 4

Cache

0 1 2 3n° bloc cache

12

Page 23: Hi rarchie mémoire - users.polytech.unice.frusers.polytech.unice.fr/~helen/ARCHI/lesCours/memoire/memoireComplet.pdf · RAM: Random Access Memory volatile chaque mot est accessible

6. 23

Hiérarchie mémoire

Recherche d'un mot dans un cache de taille N ­> O(N) comparaisons

Pour un accès en (1), ajout d'une logique de comparaison des clés (rapide mais coûteux)        CAM: Content Adressable Memories

C1 Val1 C2 Val2 Ci Vali

AD

== =

Data=Val[D]Accès réussi

cache

CPU<C, D>

AD : adresse mémoire réelle<C,D> :  clé du bloc mémoire et  

déplacement calculés à partir de AD

Le mot d'adresse Ddans le bloc Val

Page 24: Hi rarchie mémoire - users.polytech.unice.frusers.polytech.unice.fr/~helen/ARCHI/lesCours/memoire/memoireComplet.pdf · RAM: Random Access Memory volatile chaque mot est accessible

6. 24

Hiérarchie mémoireCache à accès direct: Un bloc mémoire a un unique emplacement possible dans le cache

0 1 2 3

13 mod 4 = 1Cache

n° bloc cache

Le bloc mémoire M se place dans le bloc M mod N du cache où N est le nombre de blocs du cache

Mémoire principaleMémoire principale

0 1 2 3 4 13n° bloc mém

Page 25: Hi rarchie mémoire - users.polytech.unice.frusers.polytech.unice.fr/~helen/ARCHI/lesCours/memoire/memoireComplet.pdf · RAM: Random Access Memory volatile chaque mot est accessible

6. 25

Hiérarchie mémoire

Sacrifier le parallélisme des caches associatifs pour utiliser des RAM ordinaires

adresse CPU

=data = val[D]

accès réussi

CacheAD

C mod N

<C,D>

clé     val

01

Page 26: Hi rarchie mémoire - users.polytech.unice.frusers.polytech.unice.fr/~helen/ARCHI/lesCours/memoire/memoireComplet.pdf · RAM: Random Access Memory volatile chaque mot est accessible

6. 26

Hiérarchie mémoireExemple

cache mémoire

Cache à accès direct organisé en 4 blocs de 16 mots; lecture du mot d'adresse 178

1. Quel est le bloc mémoire correspondant ?

 2. Où se trouve ce bloc dans le cache ?

3. Y a­t­il défaut de cache ?

8 17 6 50 1 32

Bloc 0adresses 0..15Bloc 1adresses 16..31

Bloc 11adresses 176..192

.

.

.

Page 27: Hi rarchie mémoire - users.polytech.unice.frusers.polytech.unice.fr/~helen/ARCHI/lesCours/memoire/memoireComplet.pdf · RAM: Random Access Memory volatile chaque mot est accessible

6. 27

Hiérarchie mémoireExemple

cache mémoire

Cache à accès direct organisé en 4 blocs de 16 mots; lecture du mot d'adresse 178

1. Quel est le bloc mémoire correspondant ?Le mot d'adresse 178 est dans le bloc 178 div 16 = 11 de la mémoire

2. Où se trouve ce bloc dans le cache ?le bloc 11 mémoire se cherche dans le bloc 11 mod 4 = 3 du cache

3. Accès cacheLe bloc 3 du cache contient le bloc 5 de la mémoire : il y a défaut de cache → copie du bloc 11 mémoire dans le bloc 3 du cache

8 17 6 50 1 32

Bloc 0adresses 0..15Bloc 1adresses 16..31

Bloc 11adresses 176..192

.

.

.

Page 28: Hi rarchie mémoire - users.polytech.unice.frusers.polytech.unice.fr/~helen/ARCHI/lesCours/memoire/memoireComplet.pdf · RAM: Random Access Memory volatile chaque mot est accessible

6. 28

Hiérarchie mémoire

0 1 2 3n° bloc cache

ensemble 0 = 12 mod 2on place le bloc 12 n’importe où dans l’ensemble 0

Cache associatif par ensemble de blocs:  mot mémoire placé dans le cache n'importe où dans un ensemble de blocs. Le numéro d'ensemble est calculé comme dans le cas accès direct : M mod N où N est le nombre d'ensembles du cache

Cache

n° ensemble 0 1

Mémoire principaleMémoire principale

12n° bloc mém 0

N­way associative cache

Page 29: Hi rarchie mémoire - users.polytech.unice.frusers.polytech.unice.fr/~helen/ARCHI/lesCours/memoire/memoireComplet.pdf · RAM: Random Access Memory volatile chaque mot est accessible

6. 29

Hiérarchie mémoire

3.5. Quel bloc remplacer lors d'un défaut de cache?

­ cache à correspondance directe: une seule place possible → on écrase le bloc correspondant

­ cache associatif: on écrase le bloc qui n’a pas été utilisé depuis le plus longtemps (Last Recently Used), ou celui qui est le moins souvent utilisé (Least Frequently Used)

­ cache associatif par ensemble de blocs: dans l’ensemble associé au bloc mémoire, on utilise la stratégie LRU ou LFU

Page 30: Hi rarchie mémoire - users.polytech.unice.frusers.polytech.unice.fr/~helen/ARCHI/lesCours/memoire/memoireComplet.pdf · RAM: Random Access Memory volatile chaque mot est accessible

6. 30

Hiérarchie mémoire

• cache à accès direct: recherche facile mais une seule place possible ⇒ fort taux d’échecExemple: 

pour un cache de 4 blocs, les blocs mémoire 1, 5, 9, 13, …. sont tous égaux à 1 modulo 4 et se placent tous dans le bloc 1 du cache

 ils ne peuvent donc pas être dans le cache en même temps

• cache associatif: moins d’échec car on peut mettre le bloc où l’on veut mais recherche difficile (caches chers)

• cache associatif par ensemble de blocs : compromis entre les 2

Récapitulatif

Page 31: Hi rarchie mémoire - users.polytech.unice.frusers.polytech.unice.fr/~helen/ARCHI/lesCours/memoire/memoireComplet.pdf · RAM: Random Access Memory volatile chaque mot est accessible

6. 31

Hiérarchie mémoire3.6. Eléments de conception des caches

• Taille du cache : assez petite pour que le coût global des accès soit proche de celui de la mémoire centrale seule mais assez grande pour être efficace.Ex : IBM 360 (1968) 16Ko, Intel 486 (1989) 8Ko, Intel Pentium (1993) 8Ko/8Ko + 512 

Ko, Itanium (2001) 16Ko/16Ko + 96Ko + 4 Mo

• Taille des blocs : assez grande pour accéder pendant longtemps à des données consécutives mais par trop grande car sinon il y a peu de blocs et donc on écrase des blocs utiles

• Nombre de caches : la taille des composants diminue donc il est possible d'intégrer dans la puce plusieurs caches.

En général, un (ou deux) cache interne L1 plus un cache externe L2. 

L1 : unifié ou séparé (instructions/données).

Page 32: Hi rarchie mémoire - users.polytech.unice.frusers.polytech.unice.fr/~helen/ARCHI/lesCours/memoire/memoireComplet.pdf · RAM: Random Access Memory volatile chaque mot est accessible

6. 32

Hiérarchie mémoire

Exemple: cache du Pentium III

­ 2 niveaux de cache :cache primaire de 32 Ko (16ko instructions, 16ko données)cache secondaire de 256 Ko

­ accès au cache en 1 cycle­ organisation associative par ensemble de blocs (8 blocs par ensembles, 1 bloc = 16 octets)­ stratégie de remplacement: bloc le moins récemment utilisé­ stratégies d'écriture: recopie immédiate

Exemple: cache du Pentium 4

Cache L2(256 Ko)

Bus système

Cache L1 données (8 Ko) 256

Cache L1 micro­op (12 Ko)64DE

Unité calcul entier Unité calcul flottant

Page 33: Hi rarchie mémoire - users.polytech.unice.frusers.polytech.unice.fr/~helen/ARCHI/lesCours/memoire/memoireComplet.pdf · RAM: Random Access Memory volatile chaque mot est accessible

6. 33

Hiérarchie mémoire

• But de la pagination: obtenir une mémoire virtuelle à très grande capacité+ simplifier la gestion multi processus

• Mémoire virtuelle = mémoire centrale + disquepage: unité de transfert (bloc)adresse virtuelle: clé d'un mot de la mémoire virtuelleadresse physique: adresse réelle du mot dans le disque ou la mémoire centrale

• La gestion des défauts de page est faite par software (routine d’interruption)

4. Pagination et mémoire virtuelle

Remarque: accès disque: mili­seconde, 100 000 cycles horloge processeur                    accès mémoire:nano­seconde, 1 à 10 cycles horloge processeur

Page 34: Hi rarchie mémoire - users.polytech.unice.frusers.polytech.unice.fr/~helen/ARCHI/lesCours/memoire/memoireComplet.pdf · RAM: Random Access Memory volatile chaque mot est accessible

6. 34

Hiérarchie mémoireConclusion

Processeur

cacheinstruction

Unité depagination    TLBcache

données

Mémoire centrale

Disque

Cache secondaire

File instructions