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 ?
- ALe cœur 1 lit l’ancienne valeur restée dans son propre cache
- BLa lecture du cœur 1 est toujours plus rapide que l’écriture du cœur 0
- 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.
Continuer : 9 autres questions sur Multicœur et synchronisation