Linformatique une grande cuisine 1 Les caches Dans

  • Slides: 92
Download presentation
L’informatique : une grande cuisine 1

L’informatique : une grande cuisine 1

Les caches Dans l’exemple de la bibliothèque, le bureau fait office de cache. UC

Les caches Dans l’exemple de la bibliothèque, le bureau fait office de cache. UC Mémoire Centrale Cache est le nom qui a été choisi pour représenter le niveau de hiérarchie de mémoire situé entre l’UC et la mémoire principale. L’élément de base est le bloc. 2

Hiérarchie mémoire 100 Ko 512 Ko 64 -128 Méga 10 Téra UC Cache RAM

Hiérarchie mémoire 100 Ko 512 Ko 64 -128 Méga 10 Téra UC Cache RAM Disque 5 ns 10 -12 ns 60 ns 8 ms mots Blocs de mots Pages de mots 3

Problématique 4

Problématique 4

Référence à un mot Xn dans le cache X 4 X 1 Xn-2 UC

Référence à un mot Xn dans le cache X 4 X 1 Xn-2 UC Xn-1 Mémoire Centrale X 5 X 3 5

Référence à un mot Xn dans le cache 1 X 4 X 1 Xn-2

Référence à un mot Xn dans le cache 1 X 4 X 1 Xn-2 UC Xn-1 Mémoire Centrale X 5 UC veut faire référence à Xn X 3 6

Référence à un mot Xn dans le cache 2 X 4 X 1 Xn-2

Référence à un mot Xn dans le cache 2 X 4 X 1 Xn-2 UC Xn-1 Mémoire Centrale X 5 X 3 Recherche de Xn dans le cache 7

Référence à un mot Xn dans le cache 2 UC X 1 Xn-2 D

Référence à un mot Xn dans le cache 2 UC X 1 Xn-2 D éf a ca ut ch de e Xn X 4 Xn-1 Mémoire Centrale X 5 X 3 Recherche de Xn dans le cache 8

Référence à un mot Xn dans le cache X 4 3 X 1 Xn-2

Référence à un mot Xn dans le cache X 4 3 X 1 Xn-2 UC Xn-1 Mémoire Centrale X 5 Xn X 3 Extraction de Xn dans la mémoire Insertion dans le cache 9

Bilan : Référence à un mot Xn X 4 X 1 Xn-2 Xn-1 X

Bilan : Référence à un mot Xn X 4 X 1 Xn-2 Xn-1 X 5 Xn X 3 Avant la référence à Xn X 3 Après la référence à Xn 10

But du cours • • Question 1 : Où placer un bloc? Question 2

But du cours • • Question 1 : Où placer un bloc? Question 2 : Comment un bloc est-il trouvé ? Question 3 : Quel bloc remplacé lors d’un défaut ? Question 4 : Comment sont traités les écritures? 11

Question 1 : • Où placer un bloc? • Caches à correspondances directes •

Question 1 : • Où placer un bloc? • Caches à correspondances directes • Caches totalement associatifs • Caches associatifs par ensemble 12

web • cachespentium 3 13

web • cachespentium 3 13

Les caches à correspondance directe Le moyen le plus simple est d’assigner un emplacement

Les caches à correspondance directe Le moyen le plus simple est d’assigner un emplacement unique dans le cache. Cet emplacement est fonction du mot en mémoire. La correspondance est la suivante : numéro de bloc modulo le nombre de blocs dans le cache adresse Cette structure du cache est dite à correspondance directe. Rappel : Modulo n = reste de la division par n 14

Rappel modulo 15

Rappel modulo 15

Rappel modulo 27 27 mod 8 =3 16

Rappel modulo 27 27 mod 8 =3 16

Cache à correspondance directe 8 entrées Exemple : UC Mémoire Centrale 17

Cache à correspondance directe 8 entrées Exemple : UC Mémoire Centrale 17

Cache à correspondance directe 8 entrées ? 000 UC 00001 00101 01001 01101 10001

Cache à correspondance directe 8 entrées ? 000 UC 00001 00101 01001 01101 10001 110 10101 111 Adresse 11001 Donnée Adresse 11101 18

Cache à correspondance directe 8 entrées 00001 000 00101 010 UC 011 100 1

Cache à correspondance directe 8 entrées 00001 000 00101 010 UC 011 100 1 mod 8 = 1 01001 01101 10001 110 10101 11001 11101 19

Cache à correspondance directe 8 entrées 000 UC 00001 00101 01001 011 100 01101

Cache à correspondance directe 8 entrées 000 UC 00001 00101 01001 011 100 01101 10001 110 10101 11001 11101 20

Simulateur 21

Simulateur 21

Cache à correspondance directe 8 entrées 000 001 UC 010 Aux 4 adresses 011

Cache à correspondance directe 8 entrées 000 001 UC 010 Aux 4 adresses 011 00001, 01001, 10001, 101 11001 correspond la même entrée d’index (adresse dans le 110 cache) 111 001 du cache 00001 00101 01001 01101 10001 10101 11001 11101 22

Cache à correspondance directe 8 entrées 000 UC 00001 00101 01001 011 100 01101

Cache à correspondance directe 8 entrées 000 UC 00001 00101 01001 011 100 01101 10001 110 10101 11001 11101 23

Cache à correspondance directe 8 entrées 000 001 UC 00001 00101 01001 PROBLEME :

Cache à correspondance directe 8 entrées 000 001 UC 00001 00101 01001 PROBLEME : 01101 Un emplacement dans le cache peut appartenir à 100 plusieurs emplacements mémoire. 101 si la donnée correspond au 10001 Comment savoir mot demandé ? 110 10101 11001 11101 24

Cache à correspondance directe 8 entrées Etiquette Donnée 00001 000 UC 00101 01001 01101

Cache à correspondance directe 8 entrées Etiquette Donnée 00001 000 UC 00101 01001 01101 10001 110 10101 111 Réponse : 11001 Une Etiquette permet de savoir si le mot demandé est dans le 11101 cache 25

Cache à correspondance directe 8 entrées 00001 000 001 01 010 UC 01001 01101

Cache à correspondance directe 8 entrées 00001 000 001 01 010 UC 01001 01101 100 101 00 110 111 10001 10101 11001 Index Etiquette donnée 11101 26

Question 1 : • Où placer un bloc? Caches à correspondance directe • Caches

Question 1 : • Où placer un bloc? Caches à correspondance directe • Caches totalement associatifs Caches associatifs par ensemble 27

Les caches totalement associatifs Si un bloc peut être placé n’importe où dans le

Les caches totalement associatifs Si un bloc peut être placé n’importe où dans le cache, celui ci est totalement associatif. 28

Les caches totalement associatifs 000 UC ? 00001 00101 01001 011 100 01101 10001

Les caches totalement associatifs 000 UC ? 00001 00101 01001 011 100 01101 10001 110 10101 11001 11101 29

Les caches totalement associatifs 000 UC 00001 00101 01001 011 100 01101 10001 110

Les caches totalement associatifs 000 UC 00001 00101 01001 011 100 01101 10001 110 10101 11001 11101 30

Simulateur • Simulateurdecache 31

Simulateur • Simulateurdecache 31

Question 1 : • Où placer un bloc? Caches à correspondance directe Caches totalement

Question 1 : • Où placer un bloc? Caches à correspondance directe Caches totalement associatifs • Caches associatifs par ensemble 32

Caches associatif par ensemble Si un bloc peut être placé dans un ensemble restreint

Caches associatif par ensemble Si un bloc peut être placé dans un ensemble restreint de places dans le cache, le cache est dit associatif par ensemble de blocs. Un ensemble est un groupe de blocs dans le cache. Un bloc est d’abord affecté à un ensemble, puis placé n’importe où dans l’ensemble. numéro de l’ensemble = numéro de bloc modulo le nombre d’ensembles dans le cache 33

Cache associatif par ensemble de 4 000 E 0 00101 010 UC E 1

Cache associatif par ensemble de 4 000 E 0 00101 010 UC E 1 011 E 2 110 111 01001 01101 100 101 00001 10101 E 3 11001 11101 34

Cache associatif par ensemble de 4 000 E 0 00101 010 UC E 1

Cache associatif par ensemble de 4 000 E 0 00101 010 UC E 1 011 E 2 110 17 mod 4 = 1 111 01001 01101 100 101 00001 10101 E 3 11001 11101 35

Alors quel cache est à utiliser ? • Augmenter le degré d’associativité présente généralement

Alors quel cache est à utiliser ? • Augmenter le degré d’associativité présente généralement l’avantage de diminuer le taux de défaut. (Voir TD) • Mais cela a tendance à augmenter le coût et le temps d’accès. 36

But du cours Question 1 : Où placer un bloc? • Question 2 :

But du cours Question 1 : Où placer un bloc? • Question 2 : Comment un bloc est-il trouvé ? Question 3 : Quel bloc remplacé lors d’un défaut ? Question 4 : Comment sont traités les écritures? 37

Organisation de la mémoire principale Adresse de l’octet Adresse du mot 0 4 8

Organisation de la mémoire principale Adresse de l’octet Adresse du mot 0 4 8 0 1 2 3 4 5 6 7 8 9 10 11 38

Organisation de la mémoire principale Adresse de l’octet Adresse du mot 0 4 8

Organisation de la mémoire principale Adresse de l’octet Adresse du mot 0 4 8 0 1 2 3 4 5 6 7 8 9 10 11 6 7 Mémoire Transfert du mot de 32 bits 4 5 Cache Pour se déplacer dans le bloc il faut 2 bits d’adresse, mais tous les octets Ont le même index. 39

Comment trouver un bloc ? Quelle est la relation de l’adresse UC avec le

Comment trouver un bloc ? Quelle est la relation de l’adresse UC avec le cache ? Cache direct Etiquette Index Taille =Log 2(bloc. Cache)-1 Déplacement dans le bloc Cache associatif par ensemble de bloc Etiquette Index Déplacement Numéro de l’ensemble dans le bloc Remarque : en augmentant d’un facteur de deux l’associativité on diminue de 1 bit la taille de l’index. 40

Cache à correspondance directe Succès Validité Index 0 1 2. . . . 1022

Cache à correspondance directe Succès Validité Index 0 1 2. . . . 1022 1023 Etiquette donnée 41

UC veux la donnée qui est à l’adresse : 31 30 29 28. .

UC veux la donnée qui est à l’adresse : 31 30 29 28. . . . 16 15 14 13 12 11 10 9. . . 4 3 2 1 0 Adresse Index Etiquette d’octet Validité Index 0 1 2. . . . 1022 1023 Etiquette U C donnée 32 42

L’index sélectionne une entrée du cache : 31 30 29 28. . . .

L’index sélectionne une entrée du cache : 31 30 29 28. . . . 16 15 14 13 12 11 10 9. . . 4 3 2 1 0 Adresse Index Etiquette d’octet Validité Index 0 1 2. . . . 1022 1023 Etiquette U C donnée 32 43

Compare l’étiquette 31 30 29 28. . . . 16 15 14 13 12

Compare l’étiquette 31 30 29 28. . . . 16 15 14 13 12 11 10 9. . . 4 3 2 1 0 Adresse Index Etiquette d’octet Validité Index 0 1 2. . . . 1022 1023 Etiquette U C donnée = 44

Le mot est délivré au processeur. 31 30 29 28. . . . 16

Le mot est délivré au processeur. 31 30 29 28. . . . 16 15 14 13 12 11 10 9. . . 4 3 2 1 0 Adresse Index Etiquette d’octet SUCCES Validité Index 0 1 2. . . . 1022 1023 Etiquette U C donnée 32 ET 45

En cas de défaut UC 31 30 29 28. . . . 16 15

En cas de défaut UC 31 30 29 28. . . . 16 15 14 13 12 11 10 9. . . 4 3 2 1 0 Index Etiquette Donnée U C Cache Défaut/succès Adresse Donnée Mémoire 46

Comment tirer parti de la localité spatiale ? • Le cache que nous avons

Comment tirer parti de la localité spatiale ? • Le cache que nous avons décrit jusqu’à présent ne tire pas parti de la localité spatiale dans les requêtes. En effet, chaque mot dispose de son propre bloc. EXEMPLE • Supposons que les adresses d’octets suivantes soient demandées par un programme : 47

Exemple : 16, . . . , 19, . . . , 17 000

Exemple : 16, . . . , 19, . . . , 17 000 UC 00001 00101 01001 011 100 01101 10001 110 10101 11001 11101 48

Exemple : 16, . . . , 19, . . . , 17 000

Exemple : 16, . . . , 19, . . . , 17 000 UC 16 16 10000 Etiquette Index 00001 00101 01001 011 100 01101 10001 110 10101 11001 11101 49

Exemple : 16, . . . , 19, . . . , 17 00001

Exemple : 16, . . . , 19, . . . , 17 00001 000 UC 16 16 10000 Etiquette Index 00101 01001 011 100 DEFAUT 01101 10001 110 10101 11001 11101 50

Exemple : 16, . . . , 19, . . . , 17 000

Exemple : 16, . . . , 19, . . . , 17 000 UC 16 16 10000 Etiquette Index 10 00001 00101 01001 011 100 01101 10001 110 10101 11001 11101 51

Exemple : 16, . . . , 19, . . . , 17 000

Exemple : 16, . . . , 19, . . . , 17 000 UC 19 19 10011 Etiquette Index 00001 00101 01001 011 100 01101 10001 110 10101 11001 11101 52

Exemple : 16, . . . , 19, . . . , 17 00001

Exemple : 16, . . . , 19, . . . , 17 00001 000 UC 19 19 10011 Etiquette Index 00101 01001 011 100 DEFAUT 01101 10001 110 10101 11001 11101 53

Exemple : 16, . . . , 19, . . . , 17 000

Exemple : 16, . . . , 19, . . . , 17 000 UC 19 19 10011 Etiquette Index 00001 00101 01001 011 10 100 01101 10001 110 10101 11001 11101 54

Exemple : 16, . . . , 19, . . . , 17 000

Exemple : 16, . . . , 19, . . . , 17 000 UC 17 17 10001 Etiquette Index 00001 00101 01001 DEFAUT 011 10 100 01101 10001 110 10101 11001 11101 55

Exemple : 16, . . . , 19, . . . , 17 000

Exemple : 16, . . . , 19, . . . , 17 000 001 010 UC Bilan : 3 défauts 011 10 101 110 111 56

J’ai une idée ! = Augmenter la taille des blocs Ce Dupont. . Dans

J’ai une idée ! = Augmenter la taille des blocs Ce Dupont. . Dans mes bras 57

Caches à 4 mots mémoire 00001 000 UC 00101 01001 011 100 01101 10001

Caches à 4 mots mémoire 00001 000 UC 00101 01001 011 100 01101 10001 110 10101 11001 11101 58

Caches à 4 mots mémoire 00001 000 UC 00101 01001 01101 10001 110 10101

Caches à 4 mots mémoire 00001 000 UC 00101 01001 01101 10001 110 10101 111 3 bits index 11001 2 bits adresse dans le bloc remarque : pas d’étiquette 11101 59

Exemple : 16, . . . , 19, . . . , 17 00001

Exemple : 16, . . . , 19, . . . , 17 00001 000 00101 01001 UC 011 16 100 DEFAUT 101 10001 110 10101 11001 100 index 01101 00 adresse dans le bloc remarque : pas d’étiquette 11101 60

Exemple : 16, . . . , 19, . . . , 17 00001

Exemple : 16, . . . , 19, . . . , 17 00001 000 00101 01001 UC 011 16 10000 index 16 17 18 19 01101 10001 110 10101 On ramène les ref : 111 16, 17, 18, 19 adresse dans le bloc remarque : pas d’étiquette 11001 11101 61

Exemple : 16, . . . , 19, . . . , 17 00001

Exemple : 16, . . . , 19, . . . , 17 00001 000 001 succès 010 UC 011 19 10011 index 00101 01001 16 17 18 19 01101 10001 110 10101 111 adresse dans le bloc remarque : pas d’étiquette 11001 11101 62

Exemple : 16, . . . , 19, . . . , 17 00001

Exemple : 16, . . . , 19, . . . , 17 00001 000 001 succès 010 UC 011 17 10001 index 00101 01001 16 17 18 19 01101 10001 110 10101 111 adresse dans le bloc remarque : pas d’étiquette 11001 11101 63

Exemple : 16, . . . , 19, . . . , 17 •

Exemple : 16, . . . , 19, . . . , 17 • Bilan : 1 seul défaut survient pour trois références. • SUPER : JE SUIS LE MEILLEUR 64

Exemple : 16, . . . , 19, . . . , 17 •

Exemple : 16, . . . , 19, . . . , 17 • Bilan : 1 seul défaut survient pour trois références. • SUPER : JE SUIS LE MEILLEUR DUPONT and Co 65

Si nous avons les temps d’accès suivants : 1 cycle d’horloge pour envoyer l’adresse

Si nous avons les temps d’accès suivants : 1 cycle d’horloge pour envoyer l’adresse 10 cycles d’horloge pour chaque accès mémoire 1 cycle d’horloge pour envoyer un mot de donnée. Total = 3* (1+10+1) = 36 cycles 66

Exemple : 16, . . . , 19, . . . , 17 •

Exemple : 16, . . . , 19, . . . , 17 • • Reprenons les chiffres précédent : 1 cycle d’horloge pour envoyer l’adresse 10 cycles d’horloge pour chaque accès mémoire 1 cycle d’horloge pour envoyer un mot de donnée. • Total = 1+4*10+4*1 = 45 cycles • Le gain n’est pas ici enorme !!!!!. • Comment diminuer ce temps ? 67

Tirer parti de la localité spatiale • Question : De quelle manière une plus

Tirer parti de la localité spatiale • Question : De quelle manière une plus grande taille de bloc influence-t-elle les performances ? • Le taux de défauts chute lorsque nous augmentons la taille de bloc. • Attention : il faut adapter le système mémoire en conséquence. 68

Encore plus compliqué : • Le taux de défaut peut augmenter, si la taille

Encore plus compliqué : • Le taux de défaut peut augmenter, si la taille de bloc est prise très grande par rapport à la taille du cache, car le nombre de blocs pouvant être contenus dans le cache deviendra petit, et la compétition entre ces blocs sera rude. Par conséquent un bloc sera éjecté du cache avant qu’un grand nombre de ses mots soit accédé. • Le coût du défaut croît. Car le temps nécessaire(si on ne modifie pas le système mémoire) pour accéder à une données augmente. 69

Les caches par ensemble 70

Les caches par ensemble 70

Par ensemble (256) de 4 blocs 4 Blocs Index 0 1 2. . .

Par ensemble (256) de 4 blocs 4 Blocs Index 0 1 2. . . . 253 254 255 V E D 256 Ensembles Multiplexeur 4 par 1 Succès Donnée 71

Par ensemble (256) de 4 blocs 31 30 29 28. . . . 16

Par ensemble (256) de 4 blocs 31 30 29 28. . . . 16 15 14 13 12 11 10 9. . . 4 3 2 1 0 Adresse d’octet 4 Blocs Index 0 1 2. . . . 253 254 255 V E D V E U C D 256 Ensembles Multiplexeur 4 par 1 Succès Donnée 72

Par ensemble (256) de 4 blocs 31 30 29 28. . . . 16

Par ensemble (256) de 4 blocs 31 30 29 28. . . . 16 15 14 13 12 11 10 9. . . 4 3 2 1 0 Adresse d’octet 22 8 Index 0 1 2. . . . 253 254 255 V E D V E U C D Multiplexeur 4 par 1 Succès Donnée 73

Par ensemble (256) de 4 blocs 31 30 29 28. . . . 16

Par ensemble (256) de 4 blocs 31 30 29 28. . . . 16 15 14 13 12 11 10 9. . . 4 3 2 1 0 Adresse d’octet 22 8 Index 0 1 2. . . . 253 254 255 V E D Multiplexeur 4 par 1 Succès Donnée 74

Par ensemble (256) de 4 blocs 31 30 29 28. . . . 16

Par ensemble (256) de 4 blocs 31 30 29 28. . . . 16 15 14 13 12 11 10 9. . . 4 3 2 1 0 Adresse d’octet 22 8 Index 0 1 2. . . . 253 254 255 V E D V E U C D Multiplexeur 4 par 1 Succès Donnée 75

Les étiquettes en fonction du type de caches Pour des caches de même dimension

Les étiquettes en fonction du type de caches Pour des caches de même dimension : Correspondance directe 31 30 29 28. . . . 16 15 14 13 12 11 10 9. . . 4 3 2 1 0 Index Etiquette Associatif par ensemble de bloc 31 30 29 28. . . . 16 15 14 13 12 11 10 9. . . 4 3 2 1 0 Etiquette Index Adresse d’octet Totalement associatif 31 30 29 28. . . . 16 15 14 13 12 11 10 9. . . 4 3 2 1 0 Adresse Etiquette d’octet 76

But du cours • • Question 1 : Où placer un bloc? Question 2

But du cours • • Question 1 : Où placer un bloc? Question 2 : Comment un bloc est-il trouvé ? Question 3 : Quel bloc remplacé lors d’un défaut ? Question 4 : Comment sont traités les écritures? 77

Quel bloc remplacé lors d’un défaut ? Il existe trois stratégies principales employées pour

Quel bloc remplacé lors d’un défaut ? Il existe trois stratégies principales employées pour choisir le bloc à remplacer : • FIFO (Pas bonne) • Le hasard (facile à réaliser) • Le plus ancien (LRU Least Rencently Used). Ceci utilise un corollaire de la localité temporelle. Remarque = FIFOdifférent de LRU. 78

Les défauts de caches • Défauts obligatoires de chargement (défaut de démarrage à froid).

Les défauts de caches • Défauts obligatoires de chargement (défaut de démarrage à froid). Un bloc accédé pour la première fois n’est pas dans le cache. • Défauts de capacité. Si le cache ne peut contenir tous les blocs nécessaires au cours de l’exécution d’un programme • Défauts de conflits (défaut de collision). Si la stratégie de placement de bloc est associative par ensembles de blocs ou à correspondance directe, des défauts de conflit surviendront, car un bloc peut être rejeté puis récupéré si trop de blocs sont en correspondance avec le même ensemble. 79

But du cours • • Question 1 : Où placer un bloc? Question 2

But du cours • • Question 1 : Où placer un bloc? Question 2 : Comment un bloc est-il trouvé ? Question 3 : Quel bloc remplacé lors d’un défaut ? Question 4 : Comment sont traités les écritures? 80

Comment sont traités les écritures? L’écriture simultanée (ou rangement simultané) : L’information est écrite

Comment sont traités les écritures? L’écriture simultanée (ou rangement simultané) : L’information est écrite à la fois dans le bloc du cache et dans le bloc de la mémoire de niveau inférieur. La réécriture (la recopie) : L’information est écrite uniquement dans le bloc du cache. Le bloc modifié du cache est recopié en mémoire principale uniquement quand il est remplacé. 81

Si nous avons les temps d’accès suivants : 1 cycle d’horloge pour envoyer l’adresse

Si nous avons les temps d’accès suivants : 1 cycle d’horloge pour envoyer l’adresse 10 cycles d’horloge pour chaque accès mémoire 1 cycle d’horloge pour envoyer un mot de donnée. Total = 3* (1+10+1) = 36 cycles 82

Exemple : 16, . . . , 19, . . . , 17 Reprenons

Exemple : 16, . . . , 19, . . . , 17 Reprenons les chiffres précédent : 1 cycle d’horloge pour envoyer l’adresse 10 cycles d’horloge pour chaque accès mémoire 1 cycle d’horloge pour envoyer un mot de donnée. Total = 1+4*10+4*1 = 45 cycles Le gain n’est pas ici énorme !!!!!. Comment diminuer ce temps ? 83

Tirer parti de la localité spatiale Question : De quelle manière une plus grande

Tirer parti de la localité spatiale Question : De quelle manière une plus grande taille de bloc influence-t-elle les performances ? Le taux de défauts chute lorsque nous augmentons la taille de bloc. Attention : il faut adapter le système mémoire en conséquence. 84

Organisation des mémoires UC UC UC Cache Bus Bus Mémoire B M B B

Organisation des mémoires UC UC UC Cache Bus Bus Mémoire B M B B B M M M 85

Organisation d’une mémoire entrelacée Adresse externe a=4 b b 0 4 8. 1 5

Organisation d’une mémoire entrelacée Adresse externe a=4 b b 0 4 8. 1 5 9 2 6. 3 7. Mot 1 Mot 2 Mot 3 Mot 4 Mémoire entrelacée b 86

Encore plus compliqué : ATTENTION (voir TD) Le taux de défaut peut augmenter, si

Encore plus compliqué : ATTENTION (voir TD) Le taux de défaut peut augmenter, si la taille de bloc est prise très grande par rapport à la taille du cache, car le nombre de blocs pouvant être contenus dans le cache deviendra petit, et la compétition entre ces blocs sera rude. Par conséquent un bloc sera éjecté du cache avant qu’un grand nombre de ses mots soit accédé. Le coût du défaut croît. Car le temps nécessaire(si on ne modifie pas le système mémoire). 87

Les performances des caches • Le temps UC est divisé entre les cycles d’horloge

Les performances des caches • Le temps UC est divisé entre les cycles d’horloge passés par l’UC à exécuter le programme et les cycles d’horloge que l’UC passe à attendre le système mémoire. Tps UC = (Cycles d’exécution UC + Cycles d’attente mémoire) * Tps C 88

Les cycles d’attente mémoire • Les cycles d’horloge d’attente mémoire proviennent principalement des défauts

Les cycles d’attente mémoire • Les cycles d’horloge d’attente mémoire proviennent principalement des défauts de cache. (Une prédiction précise des performances implique généralement des simulations très détaillées du processeur et du système mémoire). Cycles d’attente = mémoire (Nb. d’inst/programmes) *(Nb. de défauts/instruction) *Coût défaut Cycles d’attente = mémoire (Nb. d'accès par programme) *(taux de défaut) *Coût défaut 89

Résumé • Où peut être placer un bloc ? Un corresp. direct, plusieurs (associatif

Résumé • Où peut être placer un bloc ? Un corresp. direct, plusieurs (associatif par ensembles), ou tout (totalement associatif) endroit. • Comment un bloc est il trouvé ? Indexation (correspondance direct) Recherche limitée (associatif par ensembles) Recherche totale (totalement associatif) • Quel bloc est remplacé lors d’un défaut ? Généralement, soit le moins récemment utilisé, soit un bloc au hasard, de manière aléatoire. • Comment sont traitées les écritures ? Chaque niveau de la hiérarchie peut utiliser soit l’écriture simultanée soit la réécriture. 90

Résumé • Le défi lancé par la conception des hiérarchies de mémoires est que

Résumé • Le défi lancé par la conception des hiérarchies de mémoires est que tout changement qui peut améliorer le taux de défauts peut aussi affecter de façon négative les performances globales. • C’est une combinaison d'effets positifs et négatifs pour chaque paramètre de conception qui rend délicate la conception d’une hiérarchie de mémoires Changement de Conception Effet sur le taux de défauts Effet négatif possible sur les performances Augmenter la taille Réduit les défauts de capacité Peut augmenter le Tps d’accès Augmenter l’associativité Réduit le taux de défaut Peut augmenter le temps dû aux défauts de conflit d’accès Augmenter la taille de bloc Réduit le taux de défaut Peut augmenter le coût pour un large éventail de défaut de tailles de bloc 91

Caches : taille des blocs Coût de l’échec Taux d’échec Tps transfert Tps d’accès

Caches : taille des blocs Coût de l’échec Taux d’échec Tps transfert Tps d’accès Taille du bloc Augmenter la taille du cache indéfiniment Taille du bloc 92