Multicœur et synchronisation
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) ?
- AIl ne modifie que sa propre ligne en laissant intactes les copies des autres cœurs
- BIl invalide les copies de la même ligne détenues par les autres cœurs, puis passe sa ligne à l’état M et écrit
- CIl vide les caches de tous les cœurs avant d’écrire
Afficher la réponse et l'explication
Réponse : B. Il invalide les copies de la même ligne détenues par les autres cœurs, puis passe sa ligne à l’état M et écrit
L’état S indique que d’autres cœurs peuvent détenir la même ligne ; une écriture directe rendrait les autres copies obsolètes. Le cœur envoie donc une demande d’invalidation, fait passer les copies des autres cœurs à l’état I, puis passe sa ligne à l’état M et écrit. Lorsqu’un autre cœur lira ensuite cette donnée, il subira un défaut et rechargera la valeur la plus récente. La plupart des CPU adoptent ce type de protocole par invalidation.
Continuer : 9 autres questions sur Multicœur et synchronisation