Multicœur et synchronisation

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.

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
S'entraîner sur ce thème Retour au thème

Autres questions sur Multicœur et synchronisation

  1. Dans un protocole de cohérence par invalidation, que se passe-t-il lorsqu’un cœur écrit dans une ligne en état Shared (S) ?
  2. 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) ?
  3. Quelle description de la cohérence de cache par espionnage (snooping) est correcte ?
  4. Pourquoi utilise-t-on, dans les systèmes à grand nombre de cœurs, la cohérence par répertoire plutôt que l’espionnage ?
  5. Les protocoles de cohérence se divisent en protocoles par invalidation et par mise à jour. Quelle est la raison la plus appropriée pour laquelle la plupart des CPU adoptent l’invalidation ?

Comparatifs sur ce thème