Linformatique une grande cuisine 1 Les caches Dans
- Slides: 92
L’informatique : une grande cuisine 1
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 Disque 5 ns 10 -12 ns 60 ns 8 ms mots Blocs de mots Pages de mots 3
Problématique 4
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 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 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 é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 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 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 : 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 • Caches totalement associatifs • Caches associatifs par ensemble 12
web • cachespentium 3 13
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 27 27 mod 8 =3 16
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 110 10101 111 Adresse 11001 Donnée Adresse 11101 18
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 10001 110 10101 11001 11101 20
Simulateur 21
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 10001 110 10101 11001 11101 23
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 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 100 101 00 110 111 10001 10101 11001 Index Etiquette donnée 11101 26
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 cache, celui ci est totalement associatif. 28
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 10101 11001 11101 30
Simulateur • Simulateurdecache 31
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 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 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 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 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 : 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 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 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 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 1023 Etiquette donnée 41
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. . . . 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 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 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 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 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 UC 00001 00101 01001 011 100 01101 10001 110 10101 11001 11101 48
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 000 UC 16 16 10000 Etiquette Index 00101 01001 011 100 DEFAUT 01101 10001 110 10101 11001 11101 50
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 UC 19 19 10011 Etiquette Index 00001 00101 01001 011 100 01101 10001 110 10101 11001 11101 52
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 UC 19 19 10011 Etiquette Index 00001 00101 01001 011 10 100 01101 10001 110 10101 11001 11101 54
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 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 mes bras 57
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 111 3 bits index 11001 2 bits adresse dans le bloc remarque : pas d’étiquette 11101 59
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 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 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 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 • Bilan : 1 seul défaut survient pour trois références. • SUPER : JE SUIS LE MEILLEUR 64
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 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 • • 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 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 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
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 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 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 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 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 : 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 : 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 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). 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 : 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 à 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 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 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 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 B M M M 85
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 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 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 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 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 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 Taille du bloc Augmenter la taille du cache indéfiniment Taille du bloc 92
- Comment faire une introduction dans une dissertation
- Les pomes
- Introduction développement conclusion exemple
- Analyzing and leveraging decoupled l1 caches in gpus
- L caches
- Conclusion sur lhistoire de linformatique
- Definition de linformatique
- Introduction sur la ficelle
- Cuisine historique
- Quand je suis frais je suis chaud qui suis-je
- Grande muy grande
- Il y a une fenêtre dans la salle de classe.
- Comment mettre une girafe dans un frigo
- Combien de blida dans une bouteille de champagne
- Dans le ciel nous avons une mère
- Je suis dans la joie une joie immense
- Caspar david friedrich l'abbaye dans une forêt de chênes
- Mettez la girafe au frigo
- Je suis une intruse
- Une bote
- Amener un sujet
- Mettez l'éléphant dans le frigo
- Liaison complète ou partielle
- Définition de groupe nominal
- Comment mettre une girafe dans un frigo
- Appuyez sur l’image qui est dans le bon sens
- Il était une fois une petite fille
- Coupe transversale tige
- Ginseng jean coutu
- Le bonheur est une trajectoire et non pas une destination
- Si une porte se ferme une autre s'ouvre
- La une du journal
- Exemple texte d'opinion
- Manuel de la parfaite femme au foyer 1960
- Quel beau nom paroles
- Lieux des enfers
- Les caractéristiques du début d'un conte
- Nous sommes les étoiles dans le ciel d'abraham
- échange des substances dissoutes
- Dar transmissions ciblées
- Les instructions en classe
- Slogan haribo allemand
- Zone chaude zone froide supermarché
- Groupe verbal
- Situation du passage dernier jour d'un condamné
- Les professeurs 1 of 1 dans la salle de classe.
- Remerciments rapport de stage
- Les tableaux a deux dimension en algorithme
- Comment rendre heureuse sa femme
- Le la l' les un une des
- Preparation microscopique
- Quels sont les constituants d'une phrase
- Solides compacts et divisés
- Comme une belle fleur assise entre les fleurs
- Les solides compacts
- Biais de sélection
- Azerbaijan cuisine
- Words that rhyme with cuisine
- Food of odisha ppt
- Typical english meals
- Czech cuisine presentation
- Pays de la loire desserts
- Chapter 10 global cuisine 1 the americas
- Chinese cuisine logo
- Lafeasta
- Fiche technique d'un cours
- English cuisine encompasses
- Youtube cuisine française
- Kitchen brigade
- Dalmatian cuisine
- English cuisine
- Pays de la cuisine lune
- Where did french cuisine originated
- Plat typique bulgare
- China cuisine
- Komi cuisine
- Let t(x y) means that student x likes dish y
- Marche en avant dans le temps
- Progression cap cuisine
- American cuisine
- Czech cuisine of perversions
- Carnet personnel de techniques professionnelles
- Brigade de cuisine
- Ile de france food specialties
- Eastern european cuisine history
- Coupe pain danois
- Referentiel cap cuisine
- Pppst com
- Les voitures les plus rapides du monde
- Preactionneurs
- Les lettres et les sons
- Remplacez les mots soulignes par les pronoms convenable
- Qu'est-ce que tu aimes manger?