Multicœur et synchronisation

Deux cœurs possèdent chacun dans leur cache une copie de la variable x. Après une écriture de x par le cœur 0, quel problème peut survenir lors de la lecture de x par le cœur 1 en l’absence de mécanisme de cohérence de cache ?

  1. ALe cœur 1 lit l’ancienne valeur restée dans son propre cache
  2. BLa lecture du cœur 1 est toujours plus rapide que l’écriture du cœur 0
  3. CLa valeur de x est lue doublée
Afficher la réponse et l'explication

Réponse : A. Le cœur 1 lit l’ancienne valeur restée dans son propre cache

Dans un CPU multicœur, des copies des données d’une même adresse existent dans les caches de chaque cœur. Si le cœur 0 modifie x uniquement dans son cache, l’ancienne valeur reste dans le cache du cœur 1, qui la lit. Le mécanisme de cohérence de cache, par exemple en invalidant les copies des autres cœurs lors d’une écriture, garantit que la valeur la plus récente est visible quel que soit le cœur qui lit.

S'entraîner sur ce thème Retour au thème

Autres questions sur Multicœur et synchronisation

  1. Quelle combinaison correspond aux quatre états du protocole de cohérence de cache MESI ?
  2. Dans le protocole MESI, que signifie l’état Modified (M) d’une ligne de cache ?
  3. Dans le protocole MESI, que se passe-t-il lorsqu’un cœur écrit dans une ligne en état Exclusive (E) ?
  4. 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) ?
  5. 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) ?

Comparatifs sur ce thème