Si j'ai un processeur avec deux cœurs, chaque cœur a son propre cache L1, est-il possible que Core1 et Core2 mettent en cache une même partie de la mémoire en même temps?
Oui. Les performances seraient terribles si ce n'était pas le cas. Considérez deux threads exécutant le même code. Vous voulez ce code dans les deux caches L1.
Si c'est possible, quelle sera la valeur de la mémoire principale si Core1 et Core2 ont modifié leur valeur dans le cache?
L'ancienne valeur sera dans la mémoire principale, ce qui n'aura pas d'importance car aucun CPU ne la lira. Avant d'éjecter une valeur modifiée du cache, elle doit être écrite en mémoire. Généralement, une variante du protocole MESI est utilisée. Dans l'implémentation traditionnelle de MESI, si une valeur est modifiée dans un cache, elle ne peut pas du tout être présente dans un autre cache de ce même niveau.