0% ont trouvé ce document utile (0 vote)
107 vues55 pages

Cours 3

Le document présente un cours sur la mémoire cache, définissant son rôle comme une mémoire rapide intercalée entre le processeur et la mémoire principale. Il aborde le principe de fonctionnement, la gestion de la mémoire cache, ainsi que les performances et la hiérarchie des mémoires. Différentes stratégies de mappage et d'écriture dans la mémoire cache sont également discutées.

Transféré par

Imad Ri Skander
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
107 vues55 pages

Cours 3

Le document présente un cours sur la mémoire cache, définissant son rôle comme une mémoire rapide intercalée entre le processeur et la mémoire principale. Il aborde le principe de fonctionnement, la gestion de la mémoire cache, ainsi que les performances et la hiérarchie des mémoires. Différentes stratégies de mappage et d'écriture dans la mémoire cache sont également discutées.

Transféré par

Imad Ri Skander
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Institut Supérieur des Sciences Appliquées et de Technologie de Mateur

Gestion de la mémoire

Cours 3 « La mémoire cache »

Année universitaire 2024-2025


Définition et utilité

2 Plan du cours

I. La mémoire cache


1. Définition et utilité
2. Principe & fonctionnement de la mémoire cache
3. Gestion de la mémoire cache
4. Performance d’une mémoire

II. La hiérarchie des mémoires

05/05/2025
Définition et utilité

3 Plan du cours

I. La mémoire cache


1. Définition et utilité
2. Principe & fonctionnement de la mémoire cache
3. Gestion de la mémoire cache
4. Performance d’une mémoire

II. La hiérarchie des mémoires

05/05/2025
4 I. La mémoire cache
1 Définition & utilité

Le cache (ou antémémoire) est une mémoire


intercalée entre la mémoire et un processeur ou un
périphérique, qui est souvent fabriquée avec de la
mémoire SRAM, parfois avec de l'eDRAM.

05/05/2025
5

Figure : Exemple de mémoire cache

05/05/2025
6 1 Définition & utilité
❑ La mémoire cache est un type de mémoire RAM ultra-
rapide, conçue précisément pour stocker des fichiers,
des dossiers et des informations, ou pour exécuter des
fonctions spécifiques pour lesquelles seule cette
mémoire a été conçue.

❑ Elle exécute des fonctions très spécifiques et


fonctionne aux côtés d’autres composants permettant
à un ordinateur ou à un périphérique de fonctionner
plus efficacement.
05/05/2025
7 1 Définition & utilité
❑ La mémoire cache agit comme un tampon entre le
processeur et la mémoire principale.

❑ Elle est utilisée pour maintenir les parties de données et


programmes qui sont le plus fréquemment utilisé par les CPU.

❑ Les parties de données et les programmes sont transférés du


disque vers la mémoire cache par le système d’exploitation.

❑ Les données stockées dans une mémoire cache pourraient


être les résultats d’un calcul plus tôt, ou les doublons de
données stockées ailleurs.. 05/05/2025
8 1 Définition & utilité
Où peut-on trouver une mémoire cache?

On trouve une zone de cache dans:


✓ les disques durs ;

✓ les mémoires vives ;

✓ les serveurs de pages dynamiques ;


✓ les serveurs de bases de données ;
✓ les microprocesseurs ;
05/05/2025
9 1 Définition & utilité
Le cache interne et le cache externe

Un cache peut être :

1. situé sur la même puce que le processeur


(cache interne / onchip).

2. accessible via un bus externe au processeur


(cache externe). 05/05/2025
10 1 Définition & utilité
Mémoire cache de processeur

Exemple de mémoire cache externe


(non intégrée au processeur)

05/05/2025
11 Mémoire cache de processeur

05/05/2025
Figure Exemple de mémoire cache à deux niveaux
Définition et utilité

12 Plan du cours

I. La mémoire cache


1. Définition et utilité
2. Principe & fonctionnement de la mémoire cache
3. Gestion de la mémoire cache
4. Performance d’une mémoire

II. La hiérarchie des mémoires

05/05/2025
13 2. Principe & fonctionnement de la mémoire cache
L’accès au cache est simple :
1. on commence par vérifier si notre adresse correspond à une donnée
du cache le plus rapide (qui est souvent le plus petit) nommé le
cache L1.
2. Si elle n’y est pas, on effectue la même vérification pour le cache de
niveau inférieur (le cache L2).
3. Si une donnée est présente dans un des caches, on la charge
directement dans le séquenceur (instruction) ou en entrée des unités
de calcul (donnée).
4. Dans le cas contraire, on vérifie le cache du niveau inférieur. Et on
répète cette opération, jusqu’à avoir vérifié tous les caches : on doit
alors aller chercher la donnée en mémoire. 05/05/2025
14

05/05/2025
15
Exemple de Mémoire cache à 2 niveaux

Un cache L1 est formé de deux blocs séparés, l'un servant au


stockage des données, l'autre servant au stockage des instructions.

05/05/2025
Mémoire cache à deux niveaux (Cache L1 et Cache L2)
16
Exemple de Mémoire cache à 3 niveaux

✓ Il existe trois catégories différentes, classées par niveaux:


L1, L2 et L3.
✓ Le cache L1 est généralement intégré à la puce du
processeur et sa taille est la plus petite, allant de 8 Ko à 64
Ko. Il s’agit également du type de mémoire le plus rapide
à lire par la CPU. Les CPU multi-cœurs auront
généralement un cache L1 distinct pour chaque cœur.
✓ Les caches L2 et L3 sont plus grands que L1, mais leur
accès est plus long. Le cache L2 fait parfois partie de la
CPU, mais constitue souvent une puce séparée entre la
CPU et la RAM. 05/05/2025
17 2. Principe & fonctionnement de la mémoire cache
❑ Le microprocesseur n’a pas conscience de sa présence et lui
envoie toutes ses requêtes comme s’il s’agissait de la mémoire
principale :

1. Soit la donnée ou l’instruction requise est présente dans le cache


et elle est alors envoyée directement au microprocesseur. On
parle de succès de cache. (a) Hit

2. Soit la donnée ou l’instruction n’est pas dans le cache, et le


contrôleur de cache envoie alors une requête à la mémoire
principale. Une fois l’information récupérée, il la renvoie au
microprocesseur tout en la stockant dans le cache. On parle de
défaut de cache. (b) Miss
05/05/2025
18 2. Principe & fonctionnement de la mémoire cache

Hit

1. Succès de cache. (a)

Miss

2. Défaut de cache. (b)

Figure: Principe de la mémoire cache 05/05/2025


Définition et utilité

19 Plan du cours

I. La mémoire cache


1. Définition et utilité
2. Principe & fonctionnement de la mémoire cache
3. Gestion de la mémoire cache
4. Performance d’une mémoire

II. La hiérarchie des mémoires

05/05/2025
20 3. Gestion de la mémoire cache
Définitions

Ligne : est le plus petit élément de données qui


peut être transféré entre la mémoire cache et la
mémoire de niveau supérieur.
(Taille de la ligne = Taille du bloc)

Mot : est le plus petit élément de données qui peut


être transféré entre le processeur et la mémoire.
05/05/2025
21 3. Gestion de la mémoire cache
Le principe de localité

❑ Le principe de localité affirme que les informations auxquelles va


accéder le processeur ont une forte probabilité d’être localisées dans
une fenêtre spatiale et une fenêtre temporelle.

❑ La localité spatiale suggère de copier des blocs de mots dans le


cache plutôt que des mots isolés.

❑ La localité temporelle suggère de conserver pendant quelque temps


dans le cache les informations auxquelles on vient d’accéder.

05/05/2025
22 3. Gestion de la mémoire cache
Le principe de localité

1. La localité spatiale indique que l'accès à une donnée située à une


adresse X va probablement être suivi d'un accès à une zone très
proche de X. C'est évidemment vrai dans le cas d'instructions
exécutées en séquence, et plus vrai encore pour les boucles courtes.
(Exemple : tableaux, structures,…).
2. La localité temporelle indique que l'accès à une zone mémoire à un
instant donné a de fortes chances de se reproduire dans la suite
immédiate du programme. C'est évidemment vrai dans le cas des
boucles de quelques instructions seulement
(Exemple : structures itératives,…). 05/05/2025
23 3. Gestion de la mémoire cache
Correspondance cache et mémoire (le mappage « Mapping »)
La taille du cache est beaucoup plus petite que la taille de la mémoire. Il faut définir
une stratégie de copie des blocs de données dans le cache ; Cette méthode
s'appelle le mappage « Mapping ».

05/05/2025
Stratégies de correspondance entre cache et mémoire « Mapping »
24 3. Gestion de la mémoire cache
Correspondance cache et mémoire (le mappage « Mapping »)
1. Correspondance directe (Direct mapped cache): le bloc n de la mémoire
principale peut se retrouver seulement dans le bloc m = (n modulo sb) de la
mémoire cache, sb étant la taille en nombre de blocs de la mémoire cache ;

05/05/2025
25

Direct mapped cache

05/05/2025
26 Exemple

 l’exemple inclut les éléments suivants :


• Le cache peut contenir 64 Ko.
• Les données sont transférées entre la mémoire principale et le cache par
blocs de 4 octets chacun.
Cela signifie que le cache est organisé en 16K (2¹⁴) lignes de 4 octets
chacune.
• La mémoire principale est composée de 16 Mo, chaque octet étant
directement adressable par une adresse de 24 bits (2²⁴ = 16M). Ainsi, pour
les besoins du mappage, on peut considérer que la mémoire principale est
constituée de 4M blocs de 4 octets chacun.

05/05/2025
27 Solution
s-r r w
s
 Taille mémoire cache 64 ko = 2¹⁶ s+w
 Taille block 4 octet = 2²
 Taille mémoire principale 16 Mo = 2²⁴
 Nombre de ligne 2¹⁶/2² =2¹⁴
 Nombre de block 2²⁴ / 2² =2²²
 2ʷ Taille de bock ou ligne donc Taille block 4 octet = 2² =>w=2
 2ˢ Nombre de bock dans mémoire principale 2ˢ⁺ʷ/ 2ʷ => 2²⁴ / 2² => 2²²⁺²/ 2²
donc S=22
 2ʳ Nombre de ligne 2¹⁴ => r=14
 Taille tag s-r =>22-14=8

05/05/2025
28

Direct-Mapping Cache Organization


05/05/2025
29

Direct Mapping Example

05/05/2025
30 3. Gestion de la mémoire cache
Correspondance cache et mémoire (le mappage « Mapping »)
2. Correspondance totalement associative (Fully associative cache) : chaque
bloc mémoire peut être placé dans n'importe quel bloc du cache;

05/05/2025
31

totalement associative

05/05/2025
32

Fully Associative Cache Organization

05/05/2025
33 Exemple
 La figure montre notre exemple en utilisant le mappage associatif.
Une adresse de mémoire principale consiste en un tag de 22 bits et un numéro
d'octet de 2 bits.
Le tag de 22 bits doit être stocké avec le bloc de données de 32 bits pour
chaque ligne du cache.
Notez que ce sont les 22 bits les plus à gauche (les plus significatifs) de l'adresse
qui forment le tag.
Ainsi, l'adresse hexadécimale de 24 bits 16339C possède le tag de 22 bits
058CE7.
Cela peut être facilement observé en notation binaire :

05/05/2025
34

Associative Mapping Example


05/05/2025
35 3. Gestion de la mémoire cache
Correspondance cache et mémoire (le mappage « Mapping »)
3. Correspondance associative par ensemble (set associative cache) : séparation de
la mémoire cache en groupes de blocs et associativité complète dans un groupe,
c.à.d. le bloc n de la mémoire principale peut se retrouver dans n'importe quel bloc
du groupe g = (n modulo sg) de la mémoire cache, sg étant le nombre total de
groupes de blocs dans la mémoire cache.

05/05/2025
m=v*k
i = j mod v
36

associative par ensemble


05/05/2025
37

2-Way Set Associative Cache Organization

05/05/2025
38 Exemple

05/05/2025
39 3. Gestion de la mémoire cache
Algorithmes de remplacement
✓ Si le cache est plein et que le processeur a besoin d’un bloc qui n’est
pas dans le cache, il faut remplacer un des blocs du cache.
✓ Les stratégies employées sont, principalement :
❑ Choisir un bloc candidat de manière aléatoire
❑ Choisir le plus ancien bloc du cache (FIFO, First In First Out)
❑ Choisir le bloc le moins récemment utilisé (LRU Least Re ently Used)
❑ Choisir le bloc le moins fréquemment utilisé (LFU Least Frequently Used)

✓ Les stratégies concernant l'utilisation (LFU, LRU) sont les plus efficace
(vient ensuite la stratégie aléatoire).
✓ Les stratégies aléatoire et FIFO sont plus faciles à implanter.
05/05/2025
40 3. Gestion de la mémoire cache
Politique d’écriture
Deux situations se présentent selon que le bloc dans lequel on souhaite écrire se trouve
dans le cache ou non.
Dans le premier cas, on peut choisir :
➢ Ecriture immédiate : écrire à la fois dans le bloc du cache et dans le bloc de la
mémoire (écriture simultanée, ou en anglais write through)
➢ Ecriture remplacement : écrire uniquement dans le bloc du cache, et différer l'écriture
de ce bloc en mémoire lorsque l'emplacement qu'il occupe sera désigné pour recevoir
un nouveau bloc mémoire (réécriture ou en anglais write back).
Dans le deuxième cas, on peut choisir
➢ Ecriture allouée : de charger le bloc de la mémoire dans le cache puis effectuer
l'opération d'écriture.
➢ Ecriture non allouée : d'effectuer l'écriture directement dans la mémoire. 05/05/2025
41

Algorithme Write-through
05/05/2025
42

Algorithme Write-back
05/05/2025
43 3. Gestion de la mémoire cache
Politique d’écriture
Deux situations se présentent selon que le bloc dans lequel on souhaite écrire se trouve
dans le cache ou non.

Politique d’écriture dans le cache


05/05/2025
Définition et utilité

44 Plan du cours

I. La mémoire cache


1. Définition et utilité
2. Principe & fonctionnement de la mémoire cache
3. Gestion de la mémoire cache
4. Performance d’une mémoire

II. La hiérarchie des mémoires

05/05/2025
45 4. Performance d’une mémoire
On peut évaluer la performance d'une mémoire utilisant un cache par le
calcul du temps d'accès mémoire moyen :

Temps d'accès mémoire moyen = temps d'accès succès + taux d'échec x pénalité d'échec

Temps d'accès succès = temps d'accès à une donnée résidant dans le cache

Taux d'échec = nombre de défaut de cache/nombre d'accès cache

Taux d'échec = 1 - taux de succès

Taux de succès = nombre de succès / nombre d'accès cache

05/05/2025
46 4. Performance d’une mémoire
Exemple:
Lors de l'exécution d'une instruction, le processeur prend du temps pour la
décoder, accéder aux données en mémoire nécessitées par cette instruction, et
déclencher les opérations sur des données. Voici un cas illustratif :
▪ Durée d'un cycle horloge : T
▪ Pénalité d'échec : 10 cycles
▪ Durée d'une instruction (sans référence mémoire) : 2 cycles
▪ Nombre de références mémoire par instruction : 1,33
▪ Taux d'échec : 2%
▪ Temps d'accès succès : négligeable

Temps d'exécution moyen d'une instruction = (2 + 1,33 x 2% x10) T = 2,27 T

Et dans le cas où il n'y a pas de cache, le temps passe à :


Temps d'exécution moyen d'une instruction = (2 + 1,33 x 10)T = 15,3 T 05/05/2025
Définition et utilité

47 Plan du cours

I. La mémoire cache


1. Définition et utilité
2. Principe & fonctionnement de la mémoire cache
3. Gestion de la mémoire cache
4. Performance d’une mémoire

II. La hiérarchie des mémoires

05/05/2025
48
II. La hiérarchie des mémoires

Figure : Hiérarchie des mémoires 05/05/2025


49 Exercice 1

 Soit une mémoire cache de niveau L1 ayant les caractéristiques suivantes : - 32 mots par
lignes (mots de 2 octets) - Taille de 32ko - L1 et L2 sont inclusifs - 4- associatifs -
Remplacement LRU - Association par poids faible - Taille de bus d’adresse : 32bits
 1- Combien y-a-t-il de lignes dans cette mémoire cache ?
 2- Combien y-a-t-il de blocs associatifs dans cette mémoire cache ?
 3- Si la mémoire cache de niveau L2 a une taille de 2 Mo, combien y-a-t-il de blocs de la
mémoire cache L2 par bloc de la mémoire cache L1 ?
 4- Si la mémoire fait 1Go, combien d’adresses correspondront à un bloc du cache L1 ?
 5- Si un bloc n’est pas présent en cache L1, combien de lignes de L1 aura-t-on parcouru ?

05/05/2025
50 Solution

 Soit une mémoire cache de niveau L1 ayant les caractéristiques suivantes : - 32 mots par lignes (mots de 2
octets) - Taille de 32ko - L1 et L2 sont inclusifs - 4- associatifs - Remplacement LRU - Association par poids
faible - Taille de bus d’adresse : 32bits
 1- Combien y-a-t-il de lignes dans cette mémoire cache ? Nombre de lignes = Taille cache /(Taille mot*
nombre de mots par ligne) = 32 KOct / (2 Oct * 32) = 2¹⁰/2 = 2⁹= 512 lignes
 2- Combien y-a-t-il de blocs associatifs dans cette mémoire cache ? Nombre de blocs = Nombre de lignes/
Nombre de lignes par bloc = 2¹²/4 = 2⁹ / 2² = 2⁷ = 128 blocs
 3- Si la mémoire cache de niveau L2 a une taille de 2 Mo, combien y-a-t-il de blocs de la mémoire cache L2
par bloc de la mémoire cache L1 ? Taille cache L2 / Taille cache L1 = 2 MOct/32 KOct = 2²¹ / 2¹⁵ = 2⁶ = 64
 4- Si la mémoire fait 1Go, combien d’adresses correspondront à un bloc du cache L1 ? Nbre d’adresse à un
bloc = Taille mémoire / (Nbre blocs * Taille mot * Nbre de lignes d’adresse) = 1 GOct / (128*2Oct* 32) =
2³⁰ / 2¹³ = 2¹⁷ =131072 Sachant que le nombre de lignes d’adresse = taille du bus d’adresse = 32
 5- Si un bloc n’est pas présent en cache L1, combien de lignes de L1 aura-t-on parcouru ? 4 lignes

05/05/2025
51 Exercice 2

 A) Supposons un programme composé d’une boucle de 10 instructions et que la moitié des


instructions se trouvent en mémoire cache et l’autre moitié en mémoire centrale. Si le
temps d’accès au cache est de 5 ns et celui de la mémoire centrale est de 20 ns, calculer le
temps global d’exécution du programme (sans prise en compte du temps d’exécution des
instructions par le processeur).
 B) Si le temps d’accès au cache est de 5 ns, le temps de pénalité au cache est de 10 ns, et
que le temps d’échec du cache est de 20 ns. Calculez le temps de récupération d’une
instruction

05/05/2025
52 Solution

 A) Puisque la mémoire cache contient la moitié des instructions du programme, donc nous
avons 5 instructions qui se trouvent en cache. Chaque instruction dans le cache prend 5 ns
pour la récupérer. Au total pour le temps d’accès aux instructions qui se trouvent en
mémoire cache, nous avons 5 × 5 = 25 ns Nous ajoutons à ce temps, le temps d’accès aux
instructions qui se trouvent en mémoire centrale et pour lesquelles le temps d’accès est de
20 ns. Donc, nous avons 5 × 20 = 100 ns Le temps global d’exécution est de 25 + 100 =
125 ns
 B) Le temps de récupération d’une instruction à partir du cache peut être calculé selon la
formule de récupération d’une instruction de la façon suivante :
Temps de récupération = T échec × T pénalité+ (1 − T échec) × T accès
Temps de récupération =20 ×10 + (1 − 20) × 5 = 200 + (-95) =105 ns

05/05/2025
53 Exercice 3

 Un processeur dispose d'un espace d'adressage mémoire de 32 bits (c'est-à-dire d'adresses


32 bits). La mémoire est divisée en blocs de 32 bits. Octet schacun. L'ordinateur dispose
également d'un cache capable de stocker 16 Kooctets.
a.) Combien de blocs le cache peut-il stocker ?
b.) En supposant que le cache utilise mappage direct , divisez l'adresse en champs TAG,
BLOCK et BYTE OFFSET

05/05/2025
54 Solution

a-16 Ko / 32 octets = 214/ 25= 29= 512 blocs


b-

05/05/2025
55

Fin

05/05/2025

Vous aimerez peut-être aussi