Qu'est-ce que Cohérence de cache ?

Mécanisme qui maintient la cohérence du contenu lorsque les caches de plusieurs cœurs d'un CPU multicœur contiennent des données de même adresse. Lorsqu'un cœur écrit, les anciennes copies des autres cœurs sont par exemple invalidées.

Nom japonais: キャッシュコヒーレンシ

« Cohérence de cache » apparaît dans 6 questions d'entraînement réparties sur 2 thèmes, dont Multicœur et synchronisation, Interfaces d'E/S et bus.

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

Domaine: CPU et architecture

S'entraîner : questions sur Cohérence de cache

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.

Quelle combinaison correspond aux quatre états du protocole de cohérence de cache MESI ?

  1. AMemory, Execute, Store, Index
  2. BModified, Exclusive, Shared, Invalid
  3. CMiss, Evict, Swap, Idle
Afficher la réponse et l'explication

Réponse : B. Modified, Exclusive, Shared, Invalid

Dans MESI, chaque ligne de cache se trouve dans l’un des états suivants : Modified (modifiée et détenue par ce seul cœur), Exclusive (non modifiée et détenue par ce seul cœur), Shared (même contenu détenu par plusieurs cœurs) ou Invalid (invalide). L’état change chaque fois que le cœur lit ou écrit, ou qu’il apprend une lecture ou écriture d’un autre cœur, ce qui évite les incohérences entre données d’une même adresse.

« Cohérence de cache » dans les explications

Questions mentionnant « Cohérence de cache » (6)

  1. 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 ?
  2. Quelle combinaison correspond aux quatre états du protocole de cohérence de cache MESI ?
  3. Quelle description de la cohérence de cache par espionnage (snooping) est correcte ?
  4. Quelle est la différence entre cohérence de cache et modèle de cohérence mémoire ?
  5. Quelle description de CXL (Compute Express Link) est correcte ?
  6. Quelle combinaison correspond aux trois protocoles constituant CXL ?

Comparatifs incluant ce terme

Termes associés

CXL PCI Express Ligne de cache Espionnage de bus (snooping) Modèle de cohérence mémoire Architecture de von Neumann Architecture du jeu d'instructions (ISA) DMA (accès direct à la mémoire) DVFS (ajustement dynamique de la tension et de la fréquence) Exécution dans le désordre (out-of-order)

Retour au glossaire