Qu'est-ce que Protocole MESI ?

Protocole de cohérence qui gère chaque ligne de cache selon quatre états : Modified, Exclusive, Shared et Invalid. Lors d'une écriture, les copies des autres cœurs sont invalidées.

Nom japonais: MESIプロトコル

« Protocole MESI » apparaît dans 4 questions d'entraînement réparties sur 2 thèmes, dont Multicœur et synchronisation, CPU et architecture.

Transitions d'état du protocole MESI Écrit (local) Écrit (autre) Écrit (autre) Lit (local, copie ailleurs) Écrit (autre) Lit (local, seule copie) Écrit (local, invalide autres) Lit (autre, réécriture) Écrit (local, silencieux) Lit (autre) M I S E Accès du cœur local Accès d'un autre cœur (snoop) M : modifié, exclusif E : intact, exclusif S : intact, partagé I : invalide
Transitions d'état du protocole MESI · Voir dans les schémas

Domaine: Multicœur et synchronisation

S'entraîner : questions sur Protocole MESI

Dans le protocole MESI, que signifie l’état Modified (M) d’une ligne de cache ?

  1. ASeul ce cœur détient la ligne, et son contenu diffère de la mémoire principale (réécriture nécessaire)
  2. BPlusieurs cœurs détiennent le même contenu, qui concorde aussi avec la mémoire principale
  3. CLe contenu de la ligne est inutilisable et doit être rechargé pour être lu
Afficher la réponse et l'explication

Réponse : A. Seul ce cœur détient la ligne, et son contenu diffère de la mémoire principale (réécriture nécessaire)

L’état M signifie que ce cœur a écrit et qu’il est seul à détenir la valeur la plus récente. La valeur en mémoire principale étant obsolète, il faut réécrire la valeur récente ou la transmettre directement lorsque la ligne est évincée ou qu’un autre cœur veut la lire. Une ligne en état M peut être écrite autant de fois que voulu sans prévenir les autres cœurs ; les écritures successives d’un même cœur sont donc traitées rapidement.

Dans le protocole MESI, que se passe-t-il lorsqu’un cœur écrit dans une ligne en état Exclusive (E) ?

  1. AIl envoie une demande d’invalidation à tous les autres cœurs avant d’écrire
  2. BL’écriture est impossible ; il écrit d’abord en mémoire principale puis relit
  3. CIl n’a pas besoin de prévenir les autres cœurs et la ligne passe directement à l’état M
Afficher la réponse et l'explication

Réponse : C. Il n’a pas besoin de prévenir les autres cœurs et la ligne passe directement à l’état M

L’état E signifie que seul ce cœur détient la ligne et que son contenu est identique à la mémoire principale. Comme aucun autre cœur n’en a de copie, le passage à l’état M se fait sans notification d’invalidation. L’intérêt de l’état E est d’économiser des échanges dans le cas fréquent où une donnée utilisée par un seul cœur est lue puis écrite. Pour une écriture depuis l’état S, l’invalidation des autres copies est nécessaire.

« Protocole MESI » dans les explications

Questions mentionnant « Protocole MESI » (4)

  1. Dans le protocole MESI, que signifie l’état Modified (M) d’une ligne de cache ?
  2. Dans le protocole MESI, que se passe-t-il lorsqu’un cœur écrit dans une ligne en état Exclusive (E) ?
  3. Dans le protocole MESI, quel est le comportement habituel lorsque le cœur 1 veut lire une ligne que le cœur 0 détient à l’état Modified (M) ?
  4. Dans un processeur multicœur, quel mécanisme maintient la cohérence lorsque les caches de plusieurs cœurs contiennent des données de la même adresse ?

Termes associés

Ligne de cache Acquisition-libération (acquire-release) Barrière mémoire Cohérence séquentielle Compare-and-swap Course aux données (data race) Espionnage de bus (snooping) Faux partage (false sharing) Instruction atomique Interblocage (deadlock)

Retour au glossaire