Multicœur et synchronisation

Que définit un modèle de cohérence mémoire (memory consistency model) ?

  1. ALa taille des lignes et le nombre d’ensembles du cache
  2. BLe type de transistor utilisé pour la DRAM de la mémoire principale
  3. CDans quel ordre les lectures et écritures d’un cœur sur plusieurs adresses peuvent être vues par les autres cœurs
Afficher la réponse et l'explication

Réponse : C. Dans quel ordre les lectures et écritures d’un cœur sur plusieurs adresses peuvent être vues par les autres cœurs

Pour les performances, le CPU peut réordonner les opérations mémoire, par exemple en accumulant les écritures dans un tampon d’écriture (store buffer) ou en anticipant les lectures. Il est conçu pour que le résultat ne change pas au sein d’un cœur, mais les autres cœurs peuvent voir l’ordre modifié. Le modèle de cohérence mémoire définit quels réordonnancements peuvent survenir et constitue le contrat qui permet au programmeur d’écrire une synchronisation correcte.

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

Autres questions sur Multicœur et synchronisation

  1. Quelle description de la cohérence séquentielle (sequential consistency) est correcte ?
  2. Les deux threads ci-dessus s’exécutent simultanément sur des cœurs différents (sans réordonnancement par le compilateur). Quel résultat est impossible en cohérence séquentielle mais possible sur un CPU réel comme x86 ?
  3. Quelle est la caractéristique du modèle de cohérence mémoire de x86 (TSO, Total Store Order) ?
  4. Quelle affirmation sur les modèles de cohérence mémoire faibles comme ceux d’ARM ou de RISC-V (RVWMO) est correcte ?
  5. Quel est le rôle d’une instruction de barrière mémoire (fence) ?

Comparatifs sur ce thème