Multicœur et synchronisation
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) ?
- ALe cœur 0 réécrit la valeur la plus récente ou la transmet directement au cœur 1, et les deux lignes passent à l’état Shared (S)
- BLe cœur 1 lit l’ancienne valeur de la mémoire principale et le cœur 0 reste à l’état M
- CLa lecture du cœur 1 attend jusqu’à ce que le cœur 0 évince la ligne
Afficher la réponse et l'explication
Réponse : A. Le cœur 0 réécrit la valeur la plus récente ou la transmet directement au cœur 1, et les deux lignes passent à l’état Shared (S)
Informé de la demande de lecture du cœur 1, le cœur 0 sait qu’il détient la valeur la plus récente : il la réécrit en mémoire principale ou la transmet directement au cœur 1. Les deux cœurs détenant ensuite le même contenu, tous deux passent à l’état S. L’essentiel est de ne pas laisser lire l’ancienne valeur de la mémoire principale. La transmission directe livre la valeur plus vite qu’un passage par la mémoire principale.
Continuer : 9 autres questions sur Multicœur et synchronisation