Vous êtes sur la page 1sur 15

20/10/2020

Cours architecture avancées


Chapitre 2: mémoires caches

3SE - Institut Supérieur d’Informatique


Zouhour Ben Azouz
Hanane Ben Fradj

Introduction

Processeur
(registres: Mémoire
SRAM) principale:
DRAM
Les performances des systèmes à base de microprocesseur sont généralement
limitées par le temps d’accès à la mémoire :
Temps d’accès à la mémoire (lecture ou écriture)

>>
Temps des opérations effectuées par un processeur
( décodage, accès aux registres internes, exécution UAL)

1
20/10/2020

Les mémoires vives

SRAM VS DRAM

SRAM: statiques DRAM:dynamiques


▪ Plus rapide ▪ Moins rapide (malgré
▪ Capacité d’intégration plus l’augmentation de
réduite performance)
▪Plus couteuse ▪ Capacité d’intégration plus
▪ Plus encombrante importante
▪ Moins couteuse
▪ Moins encombrante

Solution: La mémoire cache

Mémoire Mémoire
Processeur
registres:
Cache: principale:
SRAM SRAM DRAM

▪La mémoire cache ( antémémoire) est une mémoire de capacité plus réduite
que la mémoire centrale et ayant un temps d’accès plus réduit.

• Permet de masquer la latence de la mémoire centrale.

• Elle contient une partie des données et des instructions contenues


dans la mémoire centrale.
4

2
20/10/2020

Comment ca marche?
Le processeur envoie sa requête à la mémoire cache

Cache Hit Cache Miss


Donnée dans la mémoire cache : succès Donnée hors de la cache: échec
Temps d’accès réduit. (défaut de cache):

1. Lire un bloc de données à partir


de la mémoire principale.
2. L’envoyer au processeur &
L’écrire dans la cache .

→ Question : où est ce que cette


donnée sera écrite dans la cache?

La fréquence des succès (hit rate) dépend de la taille de la cache et de l’algorithme exécuté
5
par le contrôleur de la cache.

Plusieurs niveaux de mémoires


cache

Mémoire
principale

La plus rapide Moins La moins


rapide
rapide rapide

3
20/10/2020

Plusieurs niveaux de mémoire cache


Architecture Harvard pour la cache L1:

Mémoire principale

CPU
7

Plusieurs niveaux de mémoire cache

4
20/10/2020

Pourquoi ça marche?

Les mémoires caches permettent de réduire le temps moyen d’accès


à la mémoire en se basant sur le principe de la localité spatiale et temporelle.

❑Localité spatiale : Lorsque le programme accède à une donnée ou à une


instruction, il accèdera très probablement aux données ou aux
instructions proches en terme d’adresse dans un futur proche.

❑Localité temporelle : Lorsque le programme accède à une donnée ou à une


instruction, il y accèdera très probablement dans un futur proche.

Localité temporelle et spatiale

Les données, comme les instructions, possèdent de fortes propriétés de localités

10

10

5
20/10/2020

Localité temporelle et spatiale

Les données, comme les instructions, possèdent de fortes propriétés de localités

11

11

Exploitation de la localité

• La localité temporelle
est exploitée en Instruction/donnée
conservant dans la
cache les données qui
ont été récemment
utilisées.

• La localité spatiale est


exploitée en chargeant
les données par bloc.
12

12

6
20/10/2020

Caractéristiques de la mémoire cache

• Taille de la cache.
• Taille du bloc ( appelé aussi
ligne).
Instruction/donnée
• Organisation de la cache:
correspondance entre les
adresses de la mémoire
principale et de la mémoire
cache.
• Politique de remplacement (
contrôleur de cache).

La fréquence des succès (hit rate) dépend de toutes ces


13
caractéristiques.
13

Structure de la cache
Addresse Addresse

Processeur Cache Mémoire


Principale
Donnée Donnée
Bit de validité:
Si V =0 alors la
V Tag Bloc de données
Ligne est libre
100 Ligne de cache =
304
<tag, block de données>

6848
416 Block de données

Etiquette Quel est le nombre de bits qui sont alloués à l’étiquette (TAG)?
de l’adresse Assez pour identifier un bloc
(Tag) 14

14

7
20/10/2020

Différentes organisation de la cache


Où placer une information de la mémoire principale dans la mémoire
cache?
Numéro du bloc

Mémoire principale

N’importe ou Seulement
Le bloc 12 N’importe dans Dans
peut être placé Quelle ligne l’ensemble 0 la ligne 4
15

15

Différentes organisation de la cache


1. Organisation à correspondance directe avec la mémoire (Direct
Mapped) :
Chaque bloc de la mémoire ne peut être chargé qu’à une seule ligne du cache.
En général la fonction de correspondance est un simple calcul de modulo sur
l’adresse mémoire.

2. Organisation totalement associative (Fully Associative) :


Chaque bloc de la mémoire principale peut être chargé à n'importe quelle
ligne du cache.

3. Organisation associative par ensembles (Set Associative) :


Le cache est divisée en un ensemble d'emplacements et chaque bloc de la
mémoire principale ne peut être chargé qu'à l'intérieur d'un de ses
emplacements. Cette organisation est un compromis entre les deux
organisations précédentes.

16

16

8
20/10/2020

Différentes organisation de la cache

17

17

Cache à correspondance directe


Mémoire cache
Mémoire principale

18

18

9
20/10/2020

Cache à correspondance directe


Numéro du bloc Offset du bloc

Adresse requise
Tag Index Offset dans la mémoire principale

t
k b
V Tag Bloc de données

2k
lines
t
=

HIT Donnée

19

19

Cache à correspondance directe


Nombre d' octets par bloc = 2 Nombres de bits de l'offset

Nombre de bloc de la cache = 2 Nombres de bits de l'index

Exemple:
• mémoire cache de 16 Ko
• Un bloc de 16 octets
• Adresse sur 32 bits

18 bits 10 bits 4 bits


20

20

10
20/10/2020

Cache à correspondance directe

21

21

Cache à correspondance directe

0x0-3 0x4-7 0x8-B 0xC-F

22

22

11
20/10/2020

Cache à correspondance directe


Lecture de l’adresse (cas de cache hit):
000000000000000000 0000000001 0100

0x0-3 0x4-7 0x8-B 0xC-F

1 0x 0

23

23

Cache à correspondance directe


Lecture de l’adresse (cas de cache Miss):
000000000000000000 0000000001 0100

0x0-3 0x4-7 0x8-B 0xC-F

1 0x FB

24

24

12
20/10/2020

Cache à correspondance directe


• Avantages:
– la cache est accédée sans attendre la vérification
du Tag.
– Circuits plus simple: pas de comparateur pour
chaque ligne de cache.
• Inconvénients:
– Si le processeur accède à deux mots dont les
adresses partagent le même index il y aura un
cache miss.

25

25

Cache totalement associative


Un bloc de la mémoire principale
peut être placé dans n’importe quelle
ligne de la mémoire cache

26

26

13
20/10/2020

Cache totalement associative

• Avantages:
– Taux de cache hit plus élevé.
• Inconvénients:
– Circuit plus complexe et plus couteux: chaque
élément de ligne doit contenir un comparateur

27

27

Solution hybride: Cache associatif à N voies


(N-way set associative)
• Compromis entre les deux organisation précédentes.
• La mémoire cache est divisée en ensembles (sets).
Chaque ensemble est constitué d’un nombre de
lignes.
• Correspondance directe pour les ensembles et
associativité à l’intérieur d’un même ensemble. Un
bloc de la mémoire principale peut être placé dans
un seul ensemble. Par contre il peut occuper
n’importe quelle ligne de cet ensemble.
• N comparateurs.
28

28

14
20/10/2020

Mémoire cache associative à deux voies

Tag Index (set) Bloc


Offset b

t
k
V Tag Bloc de donnée V Tag Bloc de donnée

Donnée
= =

hit

29

Mémoire cache associative à N voies


Nombre de lignes de la cache = nombre d' ensembles  N

Nombre d' ensembles = 2 Nombres de bits de l'index


Nombre d' octets par bloc = 2 Nombres de bits de l'offset
Exemple:
• Mémoire cache associative à 4 voies (16ko)
• Un bloc de 16 octets
• Adresse sur 32 bits

20 bits 8 bits 4 bits


30

30

15

Vous aimerez peut-être aussi