Plan Prsentation de la Solution Le Protocole MESI






























































































- Slides: 94
Plan • Présentation de la Solution. • Le Protocole MESI • Gestion de la lecture /écriture du processeur en mémoire. • Gestion de la lecture /écriture d ’un second maître du Bus en mémoire.
Il faut une solution !!! • Une solution qui gère les problèmes de cohérence de cache. • Une solution performante.
Voici la Solution • La solution est d ’utiliser un protocole pour gérer : -les écritures en mémoires -les lectures en mémoires
Définition d ’un protocole • Ensemble de règles établies à l ’avance. • Ces règles définissent le déroulement des opérations à effectuer.
Où et comment implanter le protocole • Où : – Dans toutes les parties ou l ’on est susceptible de modifier la mémoire : • Le cache L 1 • Le cache L 2 … • Comment implanter le protocole: – En utilisant une machine d ’état. – Cette machine d ’état est implanter dans le contrôleur du cache
Plan • Présentation de la Solution. • Le Protocole MESI • Gestion de la lecture /écriture du processeur en mémoire. • Gestion de la lecture /écriture d ’un second maître du Bus en mémoire.
Le Protocole MESI • • M: Modified <==> Modifier E: Exclusif <==> Exclusif S: Shared <==> Partager I : Invalid <==> Invalide
L ’État Modifier • Le bloc du cache a été mis à jour (il contient des données modifiées) suite a un succès en écriture sur le cache • Cette état informe le cache qu ’il doit espionner le bus système et écrire l ’entrer modifier en mémoire quand un succès d ’espionnage sur ce bloc est détecter.
Exemple de l ’État Modifié : Marque l ’état Modifié Processeur Cache M A=9 Mémoires A= 8 B= 9 C=10 D=15 E=1. . Maîtres Bus
réécriture Commençons à construire le graphe d ’état. Succes d ’espionnage Lecture /Écriture Succès en lecture Modifié Succès en écriture e réé ur t i r c
Succès en lecture Succès d ’espionnage réécriture Commençons à construire le graphe d ’état. Modifié Succès en écriture s Suc c ’e es d e nag n o pi ré ure t i r éc
L ’État Exclusif • Indique ce cache n ’a pas eu connaissance de la possession du bloc par un autre cache
Continuons à construire notre graphe d ’état ès d ’ espio écritu nnage sur re Succès en écriture Succès d ’espionnage sur lecture Succ Exclusif Succès en lecture
Succès d ’espionnage Succès en lecture Modifié ’es d es e nag n o pi ure t i r éc ré S ucc Succès en écriture Succ ès d ’ espio nnag e sur écritu re Succès d ’espionnage sur lecture réécriture Continuons à construire notre graphe d ’état Exclusif Succès en lecture Succès en écriture
L ’État Partagé • Indique ce bloc peut être présent dans plusieurs caches.
Continuons à construire notre graphe d ’état Succès en lecture Succès d ’espionnage sur écriture Partagé Succès en écriture
Continuons à construire notre graphe d ’état Succès en lecture Succès d ’espionnage Modifié ’es d es ure t i r éc ré S ucc Succès en écriture Succ ès d ’ espio nnag e sur écritu re Succès en écriture Succès en lecture e nag n o pi Partagé Succès d ’spionnage sur lecture réécriture Succès d ’espionnage sur écriture Exclusif Succès en lecture Succès en écriture
L ’État Invalide • Le bloc contenu dans la cache n ’est pas correct.
Continuons à construire notre graphe d ’état re tu c e l n e chec É Invalide Éch ec e n le Chargement de bloc ctur e Charge ment de bloc
Finissons de construire notre graphe d ’état ture en lec c Éche Succès en lecture Chargement de bloc Succès d ’espionnage sur écriture Succès d ’espionnage Modifié ec e n lec ture e ’es d es nag n o pi S r c réé ucc Succès en écriture Charge ment de bloc e itur Succ ès d ’ espio nnag e sur écritu Succès en écriture Succès en lecture Éch Partagé Succès d’espionnage lecture réécriture Invalide re Exclusif Succès en lecture Succès en écriture
Plan • Présentation de la Solution. • Le Protocole MESI • Gestion de la lecture /écriture du processeur en mémoire. • Gestion de la lecture /écriture d ’un second maître du Bus en mémoire.
Opération de chargement de A Processeur Cache L 2 Mémoire A=8 B=9 C=10 c Maître Bus c Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Opération de chargement de A Processeur Cache L 2 Mémoire A=8 B=9 C=10 Maître Bus A=8 c c Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Opération de chargement de A Processeur Cache L 2 Mémoire A=8 B=9 C=10 c Maître Bus c A=8 Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Explication du Fonctionnement du Protocole MESI Processeur Cache L 2 A=8 c Mémoire A=8 B=9 C=10 Maître Bus c Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Opération de chargement de A Processeur A=8 Cache L 2 A=8 c Mémoire A=8 B=9 C=10 Maître Bus c Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Opération de chargement de A Processeur A=8 Cache L 2 A=8 c Mémoire A=8 B=9 C=10 Maître Bus c Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Opération d ’écriture de A=9 Processeur A=8 Cache L 2 A=8 c Mémoire A=8 B=9 C=10 Maître Bus c Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Opération d ’écriture de A=9 Processeur A=9 Cache L 2 A=8 c Mémoire A=8 B=9 C=10 Maître Bus c Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Opération d ’écriture de A=9 Processeur A=9 Cache L 2 A=9 c Mémoire A=8 B=9 C=10 Maître Bus c Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Opération incrémentation de A et écriture de A Processeur A=9 Cache L 2 A=9 c Mémoire A=8 B=9 C=10 Maître Bus c Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Opération de réécriture de A=10 Processeur A=10 Cache L 2 A=9 c Mémoire A=8 B=9 C=10 Maître Bus c Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Plan • Présentation de la Solution. • Le Protocole MESI • Gestion de la lecture /écriture du processeur en mémoire. • Gestion de la lecture /écriture d ’un second maître du Bus en mémoire.
Explication du Fonctionnement du Protocole MESI • Quand il y un maître du bus autres que le processeur qui intervient. comment cela se passe : – Opération de lecture par un maîtres du bus autre que le processeur. – Opération d ’écriture par un maîtres du bus autre que le processeur.
Explication du Fonctionnement du Protocole MESI • Lors d ’une lecture par un maîtres du bus autre que le processeur il existe plusieurs cas : • État du bloc L 2 invalide => échec d ’espionnage • État du bloc L 2 Exclusif => Peut donner la valeur tout de suite – Bloc L 2 est dans l ’état modifié • État du bloc de donné dans L 1 (exclusif ou partagé ) • État du bloc L 1 modifier
Le Maîtres du Bus veut connaître la valeur de A Processeur A=9 Cache L 2 A=9 c Mémoire A=8 B=9 C=10 Maître Bus A? c Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut connaître la valeur de A Processeur A=9 Mémoire A=8 B=9 C=10 Maître Bus A? Cache L 2 A=9 c c Succès d ’espionnage de L 2!!!! Donc il reprend le contrôle du Bus. L 2 à la donner mais à t ’il la plus récente? ? Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut connaître la valeur de A Mémoire A=8 B=9 C=10 Processeur A=9 Cache L 2 A=9 c Maître Bus A? c L 2 interroge L 1 lui répond qu ’il est en mode Exclusif Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut connaître la valeur de A Processeur A=9 Mémoire A=8 B=9 C=10 Maître Bus A? Cache L 2 A=9 c L 2 sait maintenant que la Valeur de A qu ’il a est la c plus récente. L 2 va donc réécrire la Valeur de A en mémoire Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut connaître la valeur de A Processeur A=9 Cache L 2 A=9 c Mémoire A=8 B=9 C=10 Maître Bus A? c Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut connaître la valeur de A Mémoire A=8 B=9 C=10 Processeur A=9 Cache L 2 A=9 c A=9 Maître Bus A? c Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut connaître la valeur de A Processeur A=9 Cache L 2 A=9 c Mémoire A=8 B=9 C=10 c Maître Bus A? A=9 Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut connaître la valeur de A Processeur A=9 Cache L 2 A=9 c Mémoire A=9 B=9 C=10 c Maître Bus A? A=9 Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut connaître la valeur de A Processeur A=9 Cache L 2 A=9 c Mémoire A=9 B=9 C=10 Maître Bus A? c L 2 Rend la main au Maître Bus qui va pouvoir lire la Valeur de A Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut connaître la valeur de A Processeur A=9 Cache L 2 A=9 c Mémoire A=9 B=9 C=10 c Maître Bus A? A=9 Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut connaître la valeur de A Processeur A=9 Cache L 2 A=9 c Mémoire A=9 B=9 C=10 c Maître Bus A? A=9 Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut connaître la valeur de A Processeur A=9 Cache L 2 A=9 c Mémoire A=9 B=9 C=10 Maître Bus A=9 c Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut connaître la valeur de A Processeur A=9 Cache L 2 A=9 c Mémoire A=9 B=9 C=10 Maître Bus A=9 c Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Explication du Fonctionnement du Protocole MESI • Étudions le cas où le bloc de donnée L 1 est en mode Modifié
Le Maître du Bus veut connaître la valeur de A Processeur A=10 Cache L 2 A=9 c Mémoire A=8 B=9 C=10 Maître Bus A? c Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut connaître la valeur de A Processeur A=10 Mémoire A=8 B=9 C=10 Maître Bus A? Cache L 2 A=9 c c Succès d ’espionnage de L 2!!!! Donc il reprend le contrôle du Bus. L 2 à la donner mais à t ’il la plus récente? ? Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut connaître la valeur de A Mémoire A=8 B=9 C=10 Processeur A=10 Cache L 2 A=9 c Maître Bus A? c L 2 interroge L 1 lui répond qu ’il est en mode modifier Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut connaître la valeur de A Processeur A=10 Cache L 2 A=9 c Mémoire A=8 B=9 C=10 Maître Bus A? c Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut connaître la valeur de A Processeur A=10 Cache L 2 A=9 c Mémoire A=8 B=9 C=10 Maître Bus A? c Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut connaître la valeur de A Processeur A=10 Cache L 2 A=10 c Mémoire A=8 B=9 C=10 Maître Bus A? c Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut connaître la valeur de A Processeur A=10 Mémoire A=8 B=9 C=10 Maître Bus A? Cache L 2 A=10 c L 2 sait maintenant que la Valeur de A qu ’il a est la c plus récente. L 2 va donc réécrire la Valeur de A en mémoire Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut connaître la valeur de A Processeur A=10 Cache L 2 A=10 c Mémoire A=8 B=9 C=10 Maître Bus A? c Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut connaître la valeur de A Mémoire A=8 B=9 C=10 Processeur A=10 Cache L 2 A=10 c A=10 Maître Bus A? c Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut connaître la valeur de A Processeur A=10 Cache L 2 A=10 c Mémoire A=8 B=9 C=10 c Maître Bus A? A=10 Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut connaître la valeur de A Processeur A=10 Cache L 2 A=10 c Mémoire A=10 B=9 C=10 Maître Bus A? c Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut connaître la valeur de A Processeur A=10 Mémoire A=10 B=9 C=10 Maître Bus A? Cache L 2 A=10 L 2 rend la main au maître du Bus pour c c qu ’il puisse exécuter la lecture Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut connaître la valeur de A Processeur A=10 Cache L 2 A=10 c Mémoire A=10 B=9 C=10 c Maître Bus A? A=10 Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut connaître la valeur de A Processeur A=10 Cache L 2 A=10 c Mémoire A=10 B=9 C=10 c Maître Bus A? A=10 Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut connaître la valeur de A Processeur A=10 Cache L 2 A=10 c Mémoire A=10 B=9 C=10 Maître Bus A=10 c Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut connaître la valeur de A Processeur A=10 Cache L 2 A=10 c Mémoire A=10 B=9 C=10 Maître Bus A=10 c Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Explication du Fonctionnement du Protocole MESI • Passons maintenant a l ’écriture par le Maître Bus – L 1 en mode Partagé ou Exclusif. – L 1 en mode modifié.
Le Maître du Bus veut écrire une valeur dans A Processeur A=9 Cache L 2 A=9 c Mémoire A=8 B=9 C=10 Maître Bus A<=4 c Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut écrire une valeur dans A Processeur A=9 Mémoire A=8 B=9 C=10 Maître Bus A<=4 Cache L 2 A=9 c c Succès d ’espionnage de L 2!!!! Donc il reprend le contrôle du Bus. L 2 à la donner mais à t ’il la plus récente? ? Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut écrire une valeur dans A Processeur A=9 Cache L 2 A=9 c Mémoire A=8 B=9 C=10 Maître Bus A<=4 L 2 interroge L 1. c L 1 lui répond qu ’il est en mode Exclusif Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut écrire une valeur dans A Processeur A=9 Mémoire A=8 B=9 C=10 Maître Bus A<=4 Cache L 2 A=9 c. L 2 sait maintenant que la Valeur de A qu ’il a est la c plus récente. L 2 va donc réécrire la Valeur de A en mémoire Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut écrire une valeur dans A Processeur A=9 Cache L 2 A=9 c Mémoire A=8 B=9 C=10 Maître Bus A<=4 c Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut écrire une valeur dans A Mémoire A=8 B=9 C=10 Processeur A=9 Cache L 2 A=9 c A=9 Maître Bus A<=4 c Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut écrire une valeur dans A Processeur A=9 Cache L 2 A=9 c Mémoire A=9 B=9 C=10 c Maître Bus A<=4 A=9 Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut écrire une valeur dans A Mémoire A=9 B=9 C=10 Processeur A=9 Cache L 2 A=9 c Maître Bus A<=4 c L 2 Rend la main au maître Bus qui va pouvoir écrire la Valeur de A Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut écrire une valeur dans A Processeur A=9 Cache L 2 A=9 c Mémoire A=9 B=9 C=10 Maître Bus A<=4 A=4 c Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut écrire une valeur dans A Processeur A=9 Cache L 2 A=9 c Mémoire A=9 B=9 C=10 c Maître Bus A<=4 A=4 Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut écrire une valeur dans A Processeur A=9 Cache L 2 A=9 c Mémoire A=4 B=9 C=10 c Maître Bus A<=4 A=4 Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut écrire une valeur dans A Processeur A=9 Cache L 2 A=9 c Mémoire A=4 B=9 C=10 Maître Bus A<=4 c Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Explication du Fonctionnement du Protocole MESI • Maintenant voyons le cas ou L 1 à été modifier
Le Maître du Bus veut écrire une valeur dans A Processeur A=11 Cache L 2 A=9 c Mémoire A=8 B=9 C=10 Maître Bus A<=4 c Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut écrire une valeur dans A Processeur A=11 Mémoire A=8 B=9 C=10 Maître Bus A<=4 Cache L 2 A=9 c c Succès d ’espionnage de L 2!!!! Donc il reprend le contrôle du Bus. L 2 à la donner mais à t ’il la plus récente? ? Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut écrire une valeur dans A Mémoire A=8 B=9 C=10 Processeur A=11 Cache L 2 A=9 c Maître Bus A<=4 L 2 interroge L 1. c L 1 lui répond qu ’il est en mode Modifié Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut écrire une valeur dans A Processeur A=11 Mémoire A=8 B=9 C=10 Maître Bus A<=4 Cache L 2 A=9 c c L 2 sait maintenant que la Valeur de A dans L 1 est la plus récente. L 2 va donc réécrire la Valeur de A qui est dans L 1 en mémoire Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut écrire une valeur dans A Processeur A=11 Cache L 2 A=9 c Mémoire A=8 B=9 C=10 Maître Bus A<=4 c Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut écrire une valeur dans A Processeur A=11 Cache L 2 A=9 c Mémoire A=8 B=9 C=10 Maître Bus A<=4 c Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut écrire une valeur dans A Processeur A=11 Cache L 2 A=9 A=11 c Mémoire A=8 B=9 C=10 Maître Bus A<=4 c Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut écrire une valeur dans A Mémoire A=8 B=9 C=10 Processeur A=11 Cache L 2 A=9 c A=11 Maître Bus A<=4 c Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut écrire une valeur dans A Processeur A=11 Cache L 2 A=9 c Mémoire A=11 B=9 C=10 c Maître Bus A<=4 A=11 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut écrire une valeur dans A Mémoire A=11 B=9 C=10 Processeur A=11 Cache L 2 A=9 c Maître Bus A<=4 c L 2 Rend la main au maître Bus qui va pouvoir écrire la Valeur de A Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut écrire une valeur dans A Processeur A=11 Cache L 2 A=9 c Mémoire A=9 B=9 C=10 Maître Bus A<=4 A=4 c Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut écrire une valeur dans A Processeur A=11 Cache L 2 A=9 c Mémoire A=9 B=9 C=10 c Maître Bus A<=4 A=4 Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut écrire une valeur dans A Processeur A=11 Cache L 2 A=9 c Mémoire A=4 B=9 C=10 c Maître Bus A<=4 A=4 Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Le Maître du Bus veut écrire une valeur dans A Processeur A=11 Cache L 2 A=9 c Mémoire A=4 B=9 C=10 Maître Bus A<=4 c Cache L 1 Cache L 2 Invalide Partagé Modifié Exclusif
Une solution est la Gestion MESI (Modified, Exclusive, Invalid, Shared) Succès en écriture WB/WT#=0 e r lectu n e c éche Succès d ’espionnage ou FLUSH#, ou WBINVD réécriture INVD Succès en lecture Modifié WB/WT # = 0 Succès d ’espionnage externe sur écriture INV. =1 Ou espionnage interne , ou FLUSH#, ou INVD, ou WBINVD Éche c en lectu re ééc Chargeme nt de bloc re ritu r age 0) n n pio (INV= s e ’ d ture s e c ec Suc e en l ern ext Succès en écriture W B/ W T# =1 Succ ou su ès d ’espio sur éc ccès d ’es nnage in te p riture (INV ionnage e rne xte = 1 ou IN VD, ) ou FLU rne WBI NVD SH# , Succès en lecture Partagé Succès en écriture (WB/WT# =1) Succès d ’espionnage externe sur lecture (INV. =0 ) INV=1 Invalide Chargement de bloc Succès d ’espionnage externe INV. =0 Exclusif Succès en lecture Succès en écriture