Plan Présentation de la Solution. Le Protocole MESI

Slides:



Advertisements
Présentations similaires
Contrôle de la concurrence
Advertisements

Les acquis dapprentissage Définition et conception Outil de communication conçu à partir des documents développés pour lorganisation des réunions du projet.
Module 5 : Implémentation de l'impression
Le Concept du programme enregistré
Architecture de machines Le microprocesseur
Introduction au langage C
ARCHITECTURE INTERNE d’un MICROPROCESSEUR
Algorithmes et structures de données avancés
Projet de Base de Données Groupe Moteur encadré par Mr MAINGUENAUD KikiTeam – ASI3 – 19 / 06 / 2002 Soizic Geslin Minh Le Hoai Samy Fouilleux Maxime Chambreuil.
D/ Partage et permission NTFS
Plan : Définition L’affectation Les entrées Les sorties exercices
Architectures Matérielles
Module 6 : Gestion et analyse du système DNS
A abstraction b assembleur c nombre binaire d bit e cache f UC g puce h compilateur i famille dordinateurs j contrôle k chemin de données l défaut m dé
Objectifs Nous allons concevoir une mise en œuvre contenant un noyau de jeu d’instructions. Nous verrons comment l’architecture de jeu d’instructions.
Le Concept du programme enregistré
2.Les différentes architectures (Louis)
Paramètres et pointeurs
Fonctions Dans un programme : certaines opérations (ou séquences d'opérations) peuvent se répéter plusieurs fois : affichage de tableau, saisie, ou même.
FLSI602 Génie Informatique et Réseaux
Points importants de la semaine Les fonctions. La portée. La passage par copie. Les tableaux.
Mémoire cache ou antémémoire
Conception et analyse des algorithmes
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Principes de la technologie orientée objets
Module 1 : Préparation de l'administration d'un serveur
Architecture de base d’un ordinateur
Démarche de résolution de problèmes
Section XI Traitement de fichiers
Réalisée par :Samira RAHALI
Atomicité Transactions Atomiques Recouvrement à Base de Journal
NOTE : Pour faire évoluer le diaporama, si le clic de souris ne fait rien utilisez les touches du clavier : Pg up Pg down.
Algorithmique et Programmation
Le Système Processeur David Saint-Mellion.
FICHIERS : Définition : Algorithme général:
Code des opérateurs Appartenance à une liste ( appartient_l ) –Prototype: Bool appartient_l(type_el x, liste L) –Pré-conditions: aucunes. –Post-conditions:
Les multiprocesseurs Jusqu’à maintenant, nous avons parlé longuement des microprocesseurs. Nous allons maintenant étudier les multiprocesseurs, comment.
Gei 431 Architecture des ordinateurs II – Frédéric Mailhot Et maintenant, où allons-nous? Après toutes les techniques vues jusquici: Que peut-on faire.
Amorçage des compilateurs Un compilateur est un programme écrit dans un langage Peut-il être écrit dans le langage cible ? dans le langage source ? comment.
Périphériques et bus système
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
Module 8 : Maintenance des logiciels à l'aide des services SUS
Module 3 : Analyse des performances du serveur
Synchronisation Classique
La démarche de conception d’une séquence en français
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Gestion des transactions SQLServer.
TEST d’activités mentales n°6
Exemple de gestion d'un buffer clavier en liste circulaire
Systèmes de gestion de bases de données NFP 107 Les techniques du contrôle de concurrence Philippe Rigaux
Vue d'ensemble Surveillance des journaux d'événements
Les IT - Matérielles David Saint-Mellion. Processeur Composants Périphériques APPLICATION Système uP Sources des IT matérielles Entrée TOR : le changement.
Paradigmes des Langages de Programmation
Programation Parallèle et Distribuée PhD Marco Antonio Ramos Corchado.
Module 8 : Surveillance des performances de SQL Server
J.-M. ADAM – D. BARDOU Fonctionnement de l'unité centrale.
Algorithmes et Programmation
Aide personnalisée Démarche Constat : Eléments d’évaluation, puis la différenciation s’avère une aide insuffisante. Définition d’objectifs s’inspirant.
INTEROPERABILITE & ADMINISTRATION NUMERIQUE - e-forum Maroc – Rabat - 22 juin 2006.
Structure de Base d’un ordinateur Matière : Informatique
La programmation.
Ait Ahmed Madjid Cohen Lior Jaballah Seddik Leborgne Fabien
Interprétation/Génération de code pour le langage Z minimal Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
de l'intention à l'action
Un programme Algorithme permettant au processeur de s'alimenter:
Visualisation des flots optiques en 3D
Explication de l’ordinateur et ses composantes
Chapitre 9 Les caractères.
Paris & Province – 2007 Recommandation de Formation Titre de la Formation Formation de (Cible) Version : ____ Date : __ /__ /__.
ARCHITECTURE MATERIELLE D’UN SYSTEME A MICROPROCESSEUR
L ES INSTRUCTIONS DE L ECTURE, E CRITURE ET A FFECTATION Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université.
Transcription de la présentation:

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.

Une solution qui gère les problèmes de cohérence de cache. Il faut une solution !!! Une solution qui gère les problèmes de cohérence de cache. Une solution performante. Nous avons venons de voir pourquoi nous avons besoin d ’une solution. Il est impératif que la cohérence des données en mémoire soit respectée. Nous voulons une solution efficace pour gérer ce problème: La solution de l ’écriture immédiate est une solution qui maintient la cohérence des données en mémoire mais ce n ’est pas 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 Dans toutes les parties ou l ’on est susceptible de modifier la mémoire : Le cache L1 Le cache L2 … Comment implanter le protocole: En utilisant une machine d ’état. Cette machine d ’état est implanter dans le contrôleur du cache

Présentation de la Solution. Le Protocole MESI 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. Nous avons vu une présentation de la solution , où elle devait être implantée et comment . Maintenant présentons la solution .

M: Modified <==> Modifier E: Exclusif <==> Exclusif Le Protocole MESI M: Modified <==> Modifier E: Exclusif <==> Exclusif S: Shared <==> Partager I : Invalid <==> Invalide Explication des initiales du protocole MESI .

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. L ’état modifié est l ’état le plus important car c ’est dans cet état qu ’on active l ’espionnage . Tant que les données ne sont pas modifiées elles restent cohérentes.Mais lorsqu ’elles sont modifiées, le problème de cohérence peut intervenir.

Exemple de l ’État Modifié : Marque l ’état Modifié Mémoires A= 8 B= 9 C=10 D=15 E=1 . Cache A=9 Processeur M Maîtres Bus Comment le protocole MESI est-il implanté ? Nous pouvons voir qu ’un certain nombre de bit ont été rajouté dans le cache pour déterminer l ’état du bloc en mémoire.

Commençons à construire le graphe d ’état. réécriture Succes d ’espionnage Lecture /Écriture Succès en lecture Modifié Succès en écriture Dans un graphe d ’état on se rappelle que tous les états sont marqués par des bulles. Et les flèches pointent vers les états dans lesquels on passe lorsqu ’un événement se produit. -Nous avons donc une bulle qui marque l ’état modifié. -Lorsque le processeur écrit dans un bloc déjà modifié il reste modifié. -Lorsque le processeur lit un bloc modifié il reste modifié. -Mais lors d ’une lecture ou d ’une écriture par un maître du bus autre que le processeur, le bloc ne peut pas rester dans l ’état modifié .De plus une réécriture est obligatoire. Remarque : Une réécriture signifie: aller écrire en mémoire centrale les données du cache.

Commençons à construire le graphe d ’état. Succès en écriture Modifié Succès en lecture réécriture Succes d ’espionnage Succès d ’espionnage On replace dans le graphe général cet état .

L ’État Exclusif Indique que ce cache n ’a pas eu connaissance de la possession du bloc par un autre cache L ’état exclusif signifie que le cache qui a une donnée « pense » être le seul à l ’avoir.

Continuons à construire notre graphe d ’état Succès d ’espionnage sur lecture Succès d ’espionnage sur écriture Exclusif Succès en lecture Succès en écriture Même chose que précédemment : -Quand on est le seul cache à avoir une donnée et que le processeur nous la demande on est toujours le seul à avoir cette donnée donc on reste dans l ’état exclusif. -Quand le processeur écrit une donnée dans notre cache on est le seul à l ’avoir mais elle vient d ’être modifiée donc on doit passer dans l ’état Modifié. -Lorsque un maître du bus autre que le processeur lit la donnée on ne peut plus rester dans l ’état exclusif car d ’autres ont la donnée donc il faut aller dans un autre état .Un état qui signifierait que la donnée est partagée. -Lorsque un maître du bus autre que le processeur écrit à l ’adresse de cette donnée , on est le seul à avoir une donnée mais elle n ’est plus valide donc on doit passer dans un autre état qui marque que la donnée est invalide.

Continuons à construire notre graphe d ’état Succès en écriture Modifié Succès en lecture réécriture Succes d ’espionnage Succès d ’espionnage Succès d ’espionnage sur lecture On replace ce que l ’on vient de voir dans le graphe d  ’état. Succès d ’espionnage sur écriture Exclusif Succès en écriture Succès en lecture

Indique que ce bloc peut être présent dans plusieurs caches. L ’État Partagé Indique que ce bloc peut être présent dans plusieurs caches. L’état partagé à l ’inverse de l ’état exclusif indique que le cache n ’est pas le seul à avoir la donnée .

Continuons à construire notre graphe d ’état Succès en lecture Succès d ’espionnage sur écriture Partagé Succès en écriture On a l ’état partagé. -Sur une lecture faite par le processeur , on reste dans l ’état partagé. -Sur une écriture par un maître du bus autre que le processeur la donnée partagée devient invalide il faut donc passer dans un autre état. -Sur une écriture par le processeur le cache devient le seul à posséder cette donnée donc il n ’a plus une donnée partagée mais une donnée en mode exclusif.

Continuons à construire notre graphe d ’état Succès en lecture Succès d ’espionnage sur écriture Partagé Succès en lecture Succès en écriture Modifié réécriture Succes d ’espionnage Succès d ’espionnage Exclusif Succès d ’espionnage sur écriture Succès en écriture Succès d ’spionnage sur lecture On replace le tout dans le graphe général .

Le bloc contenu dans la cache n ’est pas correct. L ’État Invalide Le bloc contenu dans la cache n ’est pas correct. L ’état invalide c ’est le plus simple état. Il indique que la donnée n ’est plus valide.

Continuons à construire notre graphe d ’état Chargement de bloc Échec en lecture Invalide -Sur une lecture deux cas sont possibles , dans les deux cas de toute manière il y a chargement du bloc. Mais l’état du bloc va différer suivant la position du cache dans la hiérarchie mémoire. En effet , suivant la position du cache , le cache va penser être le seul à avoir la donnée ou bien il va savoir que d ’autres l ’ont avant lui . Donc soit le bloc sera dans l ’état partagé ou en mode exclusif.

Finissons de construire notre graphe d ’état Succès en lecture Succès en écriture Modifié réécriture Succes d ’espionnage Succès d ’espionnage Exclusif Succès d ’espionnage sur écriture Partagé Succès d’espionnage lecture Chargement de bloc Échec en lecture Invalide Échec en lecture Chargement de bloc On replace le tout dans le graphe général et voilà le graphe complet.

Présentation de la Solution. Le Protocole MESI 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. Voyons maintenant un peu plus concrètement comment cela se passe. Nous allons voir l  ’exemple d ’une lecture et d ’une écriture en mémoire par le processeur géré par le protocole MESI .

Opération de chargement de A Processeur Mémoire A=8 B=9 C=10 Maître Bus Cache L2 c Alors présentons premièrement le schéma: Nous pouvons constater que nous avons 2 caches un cache L1 qui est représenté dans le processeur, et un cache L2 Le système que nous présentons est un système à traversée de cache. La Flèche Noire représente Le Bus de données. La Flèche Verte représente le Bus d ’adresse. Comme nous travaillerons toujours sur une seul donnée , l ’état de cette donnée dans le protocole MESI est représenté pour les 2 caches. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif Modifié Exclusif

Opération de chargement de A Processeur Mémoire A=8 B=9 C=10 Maître Bus Cache L2 A=8 c Au commencement, nous considérerons que les valeurs ne sont pas chargées. Donc l ’état de la mémoire des caches est invalide (aucune donnée correcte ). Le processeur désire charger la valeur de A. Donc par le bus d ’adresse il va demander la valeur à la mémoire. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif Modifié Exclusif

Opération de chargement de A Processeur Mémoire A=8 B=9 C=10 Maître Bus Cache L2 c A=8 La donnée transite par le bus de donnée. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif Modifié Exclusif

Explication du Fonctionnement du Protocole MESI Processeur Mémoire A=8 B=9 C=10 Maître Bus Cache L2 A=8 A=8 c La donnée va passer par le cache L2 qui va mémoriser au passage cette donnée. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif Modifié Exclusif

Opération de chargement de A Processeur Mémoire A=8 B=9 C=10 Maître Bus A=8 Cache L2 A=8 c -Le cache L2 vient de mémoriser une donnée , au moment où il l ’a mémorisé il était le seul à l ’avoir donc il passé dans un état exclusif. -La donnée continue de transiter vers le processeur. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif Modifié Exclusif

Opération de chargement de A Processeur A=8 Mémoire A=8 B=9 C=10 Maître Bus Cache L2 A=8 c Le cache L1 reçoit la donnée , comme le système est un système à traversée de cache , L1 sait que L2 a reçu la donnée avant lui donc L1 sait qu ’il partage sa donnée avec L2. Voilà l ’opération de chargement de A est fini. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif Modifié Exclusif

Opération d ’écriture de A=9 Processeur A=8 Mémoire A=8 B=9 C=10 Maître Bus Cache L2 A=8 c Maintenant voyons ce qui se passe lorsque le processeur change la valeur de A. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif Modifié Exclusif

Opération d ’écriture de A=9 Processeur A=9 Mémoire A=8 B=9 C=10 Maître Bus A=9 Cache L2 A=8 c Le processeur vient de modifier A dans le cache L1, L1 sait donc que pour l ’instant il est le seul à avoir cette donnée donc il passé dans l ’état exclusif. Mais il va prévenir L2 (en lui passant la valeur ) que A a été modifié. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif Modifié Exclusif

Opération d ’écriture de A=9 Processeur A=9 Mémoire A=8 B=9 C=10 Maître Bus Cache L2 A=9 A=9 c Donc L2 passe dans l ’état modifié et mémorise la nouvelle valeur de A. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif Modifié Exclusif

Opération incrémentation de A et écriture de A Processeur A=9 Mémoire A=8 B=9 C=10 Maître Bus Cache L2 A=9 c Imaginons maintenant que le processeur change encore la valeur de A. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif Modifié Exclusif

Opération de réécriture de A=10 Processeur A=10 Mémoire A=8 B=9 C=10 Maître Bus Cache L2 A=9 c A passe à 10. L1 mémorise la nouvelle valeur et passe de l ’état exclusif à modifié. Mais L1 ne va pas envoyer les données à L2 . L2 est déjà dans un état modifié il surveille donc le bus pour la valeur de A . L2 n ’a pas besoin d ’avoir la vraie valeur de A. ==> Un gain de temps. On n ’a pas besoin de recopier la donnée dans tous les caches. ==> Évite de surcharger les bus en minimisant les transits de donnée. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif Modifié Exclusif

Présentation de la Solution. Le Protocole MESI 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. Voyons maintenant l ’écriture et la lecture par un maître du bus autre que le processeur. C ’est là que les problèmes de cohérence vont apparaître…..

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 L2 invalide => échec d ’espionnage État du bloc L2 Exclusif => Peut donner la valeur tout de suite Bloc L2 est dans l ’état modifié État du bloc de donné dans L1 (exclusif ou partagé ) État du bloc L1 modifier Nous n ’étudierons que les cas où L2 est dans un état modifié car dans les autres cas il n ’y a pas de problème de cohérence. Si L2 est dans l ’état invalide, il ne peut pas donner de valeur . Si L2 est dans l ’état exclusif, il peut donner immédiatement au second maître bus la valeur demandée. ==> Gain de temps. Mais Si L2 est dans l ’état modifié il doit faire des choses que nous allons voir

Le Maîtres 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 L2 A=9 c Le maître du bus veut connaître la valeur de A . Et L2 est dans l ’état modifié. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif 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 L2 A=9 c Succès d ’espionnage de L2!!!! Donc il reprend le contrôle du Bus. L2 à la donner mais à t ’il la plus récente?? Il y a succès d ’espionnage. L2 reprend le contrôle du bus . L2 doit maintenant déterminer si il a la donnée la plus récente .Il va donc aller le demander au cache L1. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif 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 L2 A=9 c L2 interroge L1. L1 lui répond qu ’il est en mode Exclusif L2 interroge L1. L1 répond qu ’il est en mode exclusif . L2 peut donc en déduire qu ’il a la donnée la plus récente. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif 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 L2 A=9 c L2 sait maintenant que la Valeur de A qu ’il a est la plus récente.L2 va donc réécrire la Valeur de A en mémoire Comme L1 a partager sa valeur avec L2. L1 repasse donc dans l ’état partagé. L2 va lancer une procédure de réécriture. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif 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 L2 A=9 A=9 c Voilà la procédure de réécriture. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif 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 L2 A=9 c A=9 L2 passe dans l ’état exclusif . Nous nous retrouvons dans le mêmes états que lors du chargement de A. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif 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 L2 A=9 A=9 c Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif Modifié Exclusif

Le Maître du Bus veut connaître la valeur de A Processeur A=9 Mémoire A=9 B=9 C=10 Maître Bus A? Cache L2 A=9 A=9 c Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif Modifié Exclusif

Le Maître du Bus veut connaître la valeur de A Processeur A=9 Mémoire A=9 B=9 C=10 Maître Bus A? Cache L2 A=9 c L2 Rend la main au Maître Bus qui va pouvoir lire la Valeur de A L2 redonne la main au maître du bus. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif Modifié Exclusif

Le Maître du Bus veut connaître la valeur de A Processeur A=9 Mémoire A=9 B=9 C=10 Maître Bus A? Cache L2 A=9 A=9 c Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif Modifié Exclusif

Le Maître du Bus veut connaître la valeur de A Processeur A=9 Mémoire A=9 B=9 C=10 Maître Bus A? Cache L2 A=9 c A=9 Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif Modifié Exclusif

Le Maître du Bus veut connaître la valeur de A Processeur A=9 Mémoire A=9 B=9 C=10 Maître Bus A=9 Cache L2 A=9 A=9 c Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif Modifié Exclusif

Le Maître du Bus veut connaître la valeur de A Processeur A=9 Mémoire A=9 B=9 C=10 Maître Bus A=9 Cache L2 A=9 c Ainsi le maître du bus a désormais la valeur la plus récente de A . Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif Modifié Exclusif

Explication du Fonctionnement du Protocole MESI Étudions le cas où le bloc de donnée L1 est en mode Modifié

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 L2 A=9 c Maintenant, nous allons recommencer sauf que L1 et L2 ont des valeurs différentes. Le maître du bus veut connaître la valeur de A. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif 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 L2 A=9 c Succès d ’espionnage de L2!!!! Donc il reprend le contrôle du Bus. L2 à la donner mais à t ’il la plus récente?? Comme A est modifié L2 va espionner le bus . L2 s ’aperçoit que la valeur de A est demandée. L2 stoppe donc le transfert et reprend le contrôle du bus. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif 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 L2 A=9 c L2 interroge L1. L1 lui répond qu ’il est en mode modifier L2 interroge L1 pour savoir si L2 a la valeur de L1 la plus récente. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif 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 A=10 Maître Bus A? Cache L2 A=9 c L2 en déduit donc que sa valeur est trop ancienne, il lui faut donc la nouvelle . L1 lui donne cette nouvelle valeur. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif 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? A=10 Cache L2 A=9 c Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif 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 L2 A=10 A=10 c L1 partage maintenant sa donnée avec L2 donc L1 passe dans l ’état partagé. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif 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 L2 A=10 c L2 sait maintenant que la Valeur de A qu ’il a est la plus récente.L2 va donc réécrire la Valeur de A en mémoire L2 a maintenant la valeur la plus récente de A donc il va pouvoir entamer une procédure de réécriture. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif 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 L2 A=10 A=10 c Voilà la procédure de réécriture. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif 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 L2 A=10 c A=10 L2 passe donc dans l ’état exclusif. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif 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 L2 A=10 A=10 c La mémoire sauvegarde la valeur de A. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif 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 L2 A=10 c Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif 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 L2 A=10 A=10 L2 rend la main au maître du Bus pour qu ’il puisse exécuter la lecture c L2 redonne le contrôle du bus au maître bus qui va pouvoir finir son chargement . Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif 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 L2 A=10 A=10 c Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif 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 L2 A=10 c A=10 Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif 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=10 Cache L2 A=10 A=10 c Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif 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=10 Cache L2 A=10 c Et voilà le maître du bus vient de charger la valeur de A. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif Modifié Exclusif

Explication du Fonctionnement du Protocole MESI Passons maintenant a l ’écriture par le Maître Bus L1 en mode Partagé ou Exclusif. L1 en mode modifié. Maintenant voyons comment cela se passe pour l ’écriture en mémoire par un second maître du bus différent du processeur.

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 L2 A=9 c A est chargé dans L1 et L2 . L2 est en mode modifié donc il surveille le bus. Et le second maître du bus veut mettre à jour la valeur de A. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif 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 L2 A=9 c Succès d ’espionnage de L2!!!! Donc il reprend le contrôle du Bus. L2 à la donner mais à t ’il la plus récente?? Le cache L2 s ’aperçoit que le second maître du bus veut écrire à l’adresse de A. L2 stoppe donc la procédure d ’écriture . Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif 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 L2 A=9 L2 interroge L1. L1 lui répond qu ’il est en mode Exclusif c L2 interroge L1 pour savoir si sa donnée est la plus récente . L1 lui répond qu ’il est en mode exclusif ce qui veut dire que L2 a la valeur la plus récente. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif 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 L2 A=9 c L2 sait maintenant que la Valeur de A qu ’il a est la plus récente.L2 va donc réécrire la Valeur de A en mémoire L2 sait donc qu ’il peut entamer une procédure de réécriture. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif 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 L2 A=9 A=9 c Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif 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 L2 A=9 c A=9 Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif Modifié Exclusif

Le Maître du Bus veut écrire une valeur dans A Processeur A=9 Mémoire A=9 B=9 C=10 Maître Bus A<=4 Cache L2 A=9 A=9 c Une fois la valeur réécrite en mémoire, A contenu dans le cache L1 et L2 devient une donnée invalide; Car le maître du bus va remplacer cette valeur. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif Modifié Exclusif

Le Maître du Bus veut écrire une valeur dans A Processeur A=9 Mémoire A=9 B=9 C=10 Maître Bus A<=4 Cache L2 A=9 c L2 Rend la main au maître Bus qui va pouvoir écrire la Valeur de A Une fois la procédure de réécriture terminée, L2 redonne le contrôle du bus au second maître bus. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif Modifié Exclusif

Le Maître du Bus veut écrire une valeur dans A Processeur A=9 Mémoire A=9 B=9 C=10 Maître Bus A<=4 Cache L2 A=9 A=4 c Le maître bus va écrire A en mémoire. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif Modifié Exclusif

Le Maître du Bus veut écrire une valeur dans A Processeur A=9 Mémoire A=9 B=9 C=10 Maître Bus A<=4 Cache L2 A=9 c A=4 Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif Modifié Exclusif

Le Maître du Bus veut écrire une valeur dans A Processeur A=9 Mémoire A=4 B=9 C=10 Maître Bus A<=4 Cache L2 A=9 A=4 c Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif Modifié Exclusif

Le Maître du Bus veut écrire une valeur dans A Processeur A=9 Mémoire A=4 B=9 C=10 Maître Bus A<=4 Cache L2 A=9 c Et voilà . Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif Modifié Exclusif

Explication du Fonctionnement du Protocole MESI Maintenant voyons le cas ou L1 à été modifier Recommençons la même opération mais avec A qui a été modifié dans L1.

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 L2 A=9 c L1 et L2 ont des valeurs de A différentes. Le maître du bus veut écrire à l ’adresse de A. Comme L2 est en mode modifié il surveille le bus. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif 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 L2 A=9 c Succès d ’espionnage de L2!!!! Donc il reprend le contrôle du Bus. L2 à la donner mais à t ’il la plus récente?? L2 va stopper la procédure d ’écriture en mémoire, et va entamer une procédure de réécriture mais avant il faut que L2 ait la bonne valeur de A. Il va donc s ’en assurer en demandant à L1 dans quel état est la donnée A dans L1. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif 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 L2 A=9 L2 interroge L1. L1 lui répond qu ’il est en mode Modifié c L2 interroge L1. L1 lui répond que A est dans un état modifié. Le cache L2 peut donc en déduire que L1 a une valeur de A différente. Il faut donc qu ’il réécrive cette donnée en mémoire et pas la sienne . Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif 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 L2 A=9 c L2 sait maintenant que la Valeur de A dans L1 est la plus récente. L2 va donc réécrire la Valeur de A qui est dans L1 en mémoire Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif Modifié Exclusif

Le Maître du Bus veut écrire une valeur dans A Processeur A=11 Mémoire A=8 B=9 C=10 A=11 Maître Bus A<=4 Cache L2 A=9 c Le transfert commence. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif 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 A=11 Cache L2 A=9 c Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif 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 L2 A=9 A=11 c Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif 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 L2 A=9 c A=11 Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif Modifié Exclusif

Le Maître du Bus veut écrire une valeur dans A Processeur A=11 Mémoire A=11 B=9 C=10 Maître Bus A<=4 Cache L2 A=9 A=11 c L1 et L2 passe dans l ’état invalide car la valeur de A va être modifiée par le maître du bus. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif Modifié Exclusif

Le Maître du Bus veut écrire une valeur dans A Processeur A=11 Mémoire A=11 B=9 C=10 Maître Bus A<=4 Cache L2 A=9 c L2 Rend la main au maître Bus qui va pouvoir écrire la Valeur de A L2 redonne le contrôle du bus au second maître bus. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif Modifié Exclusif

Le Maître du Bus veut écrire une valeur dans A Processeur A=11 Mémoire A=9 B=9 C=10 Maître Bus A<=4 Cache L2 A=9 A=4 c Le second maître du bus va donc écrire la valeur de A en mémoire. Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif Modifié Exclusif

Le Maître du Bus veut écrire une valeur dans A Processeur A=11 Mémoire A=9 B=9 C=10 Maître Bus A<=4 Cache L2 A=9 c A=4 Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif Modifié Exclusif

Le Maître du Bus veut écrire une valeur dans A Processeur A=11 Mémoire A=4 B=9 C=10 Maître Bus A<=4 Cache L2 A=9 A=4 c Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif Modifié Exclusif

Le Maître du Bus veut écrire une valeur dans A Processeur A=11 Mémoire A=4 B=9 C=10 Maître Bus A<=4 Cache L2 A=9 c Cache L1 Cache L2 Invalide Partagé Invalide Partagé Modifié Exclusif Modifié Exclusif

Une solution est la Gestion MESI (Modified,Exclusive,Invalid,Shared) Succès en écriture WB/WT#=0 Chargement de bloc échec en lecture WB/WT# = 0 Succès en lecture Invalide Partagé Succès d ’espionnage externe sur écriture INV.=1 Ou espionnage interne , ou FLUSH#, ou INVD,ou WBINVD Succès d ’espionnage externe INV.=0 Chargement de bloc INV=1 Échec en lecture Succès d ’espionnage externe sur lecture (INV. =0 ) INVD réécriture WB/WT#=1 Succès en écriture (WB/WT# =1) réécriture Voici le protocole MESI avec les signaux qui transitent entre le cache L1 et le cache L2. Succès d ’espionnage ou FLUSH#, ou WBINVD Succès d ’espionnage interne ou succès d ’espionnage externe sur écriture (INV= 1) ou FLUSH# , ou INVD, WBINVD Succes d ’espionnage externe en lecture (INV=0) Succès en lecture Modifié Exclusif Succès en écriture Succès en lecture Succès en écriture