1 / 80

Référence à un mot Xn dans le cache

Référence à un mot Xn dans le cache. X4 X1 Xn-2 Xn-1 X5 X3. UC. Mémoire Centrale. 1. Référence à un mot Xn dans le cache. X4 X1 Xn-2 Xn-1 X5 X3. UC. Mémoire Centrale. Xn. UC veut faire référence à Xn. 2. Référence à un mot Xn dans le cache. X4 X1 Xn-2 Xn-1 X5 X3. UC.

zuri
Télécharger la présentation

Référence à un mot Xn dans le cache

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Référence à un mot Xn dans le cache X4 X1 Xn-2 Xn-1 X5 X3 UC Mémoire Centrale

  2. 1 Référence à un mot Xn dans le cache X4 X1 Xn-2 Xn-1 X5 X3 UC Mémoire Centrale Xn UC veut faire référence à Xn

  3. 2 Référence à un mot Xn dans le cache X4 X1 Xn-2 Xn-1 X5 X3 UC Mémoire Centrale Xn Recherche de Xn dans le cache

  4. 2 Référence à un mot Xn dans le cache X4 X1 Xn-2 Xn-1 X5 X3 UC Mémoire Centrale Xn Défaut de cache Recherche de Xn dans le cache

  5. 3 Référence à un mot Xn dans le cache X4 X1 Xn-2 Xn-1 X5 Xn X3 UC Mémoire Centrale Extraction de Xn dans la mémoire Insertion dans le cache

  6. Bilan : Référence à un mot Xn X4 X1 Xn-2 Xn-1 X5 Xn X3 X4 X1 Xn-2 Xn-1 X5 X3 Après la référence à Xn Avant la référence à Xn

  7. 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? Questions à résoudre

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

  9. 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

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

  11. Cache à correspondance directe 8 entrées ? 00001 00101 000 001 010 011 100 101 110 111 UC 01001 01101 10001 10101 11001 11101 Adresse Donnée Donnée Adresse

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

  13. Cache à correspondance directe 8 entrées 00001 00101 000 001 010 011 100 101 110 111 UC 01001 01101 10001 10101 11001 11101

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

  15. 00001 00101 01001 01101 10001 10101 11001 11101 Cache à correspondance directe 8 entrées 000 001 010 011 100 101 110 111 UC

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

  17. 00001 00101 01001 01101 10001 10101 11001 11101 Cache à correspondance directe 8 entrées Etiquette Donnée 000 001 010 011 100 101 110 111 UC Réponse : Une Étiquette permet de savoir si le mot demandé est dans le cache

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

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

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

  21. Les caches totalement associatifs ? 00001 00101 000 001 010 011 100 101 110 111 UC 01001 01101 10001 10101 11001 11101

  22. Les caches totalement associatifs 00001 00101 000 001 010 011 100 101 110 111 UC 01001 01101 10001 10101 11001 11101

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

  24. 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 (=adresse) modulo le nombre d’ensembles dans le cache Caches associatif par ensemble

  25. Cache associatif par ensemble de 2 00001 00101 Et D Et D UC 0 1 2 3 01001 01101 10001 10101 Ensembles 11001 11101

  26. Cache associatif par ensemble de 2 00001 00101 Et D Et D UC 0 1 2 3 01001 01101 10001 10101 17 mod 4 = 1 11001 11101

  27. 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. Alors quel cache est à utiliser ?

  28. 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? But du cours

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

  30. Organisation de la mémoire principale Adresse de l’octet Adresse du mot Mémoire 0 1 2 3 4 5 6 7 8 9 10 11 0 4 8 Transfert du mot de 32 bits Cache 4 5 6 7 Pour me déplacer dans le bloc il faut 2 bits d’adresse

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

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

  33. UC UC veut 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 d’octet Index Etiquette Validité Etiquette donnée Index 0 1 2 ... ... ... ... ... ... 1022 1023 32

  34. UC 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 d’octet Index Etiquette Validité Etiquette donnée Index 0 1 2 ... ... ... ... ... ... 1022 1023 32

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

  36. UC 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 d’octet Index Etiquette SUCCES Validité Etiquette donnée Index 0 1 2 ... ... ... ... ... ... 1022 1023 32 ET

  37. 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 Cache Défaut/succès Adresse Donnée Mémoire Un défaut de cache génère une suspension (ou attente), semblable aux suspension de pipeline

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

  39. UC 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 V E D V E D V E D V E D Index 0 1 2 ... ... ... ... ... ... 253 254 255 256 Ensembles Multiplexeur 4 par 1 Succès Donnée

  40. 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 V E D V E D V E D V E D Index 0 1 2 ... ... ... ... ... ... 253 254 255 Multiplexeur 4 par 1 Succès Donnée

  41. 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 V E D V E D V E D V E D Index 0 1 2 ... ... ... ... ... ... 253 254 255 Multiplexeur 4 par 1 Succès Donnée

  42. 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 V E D V E D V E D V E D Index 0 1 2 ... ... ... ... ... ... 253 254 255 Multiplexeur 4 par 1 Succès Donnée

  43. 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 Adresse d’octet Index Totalement associatif 31 30 29 28 ...............16 15 14 13 12 11 10 9 ...4 3 2 1 0 Adresse d’octet Etiquette

  44. 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? But du cours

  45. 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. Quel bloc remplacé lors d’un défaut ? Remarque = de LRU.

  46. 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. Les défauts de caches

  47. 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? But du cours

  48. 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é. Comment sont traités les écritures?

  49. 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 : Comment tirer parti de la localité spatiale ?

  50. Exemple : 16,...,19,...,17 00001 00101 000 001 010 011 100 101 110 111 UC 01001 01101 10001 10101 11001 11101

More Related