• [^] # Re: Ai-je bien compris ?

    Posté par (site web personnel) . En réponse au journal Performances des processeurs Intel et optimisation. Évalué à 1.

    La mémoire de PC est cohérente de partout normalement.

    Ça dépends de ce que tu appelles « cohérente ». Si c'est sequential consistency, alors non, ce n'est pas le cas.

    Une fois une données écrite quelques part, elle est visible par tous de la même façon.

    Non, même le modèle mémoire x86 ne garantie pas ça. Quand tu fais une écriture, elle passe d'abord par un write buffer, et celui qui a écrit peut relire la nouvelle valeur alors qu'elle n'est pas écrite partout. Par contre, c'est du TSO (total store order), donc les écritures sont vues dans le même ordre par tout le monde, ce qui est déjà une propriété assez forte par rapport à d'autres architectures (et qui permet souvent, mais pas toujours, de se passer d'opérations atomiques pour des lectures/écritures d'entiers). Tu peux regarder ce que GCC génère pour les opérations atomiques de C++11 pour t'en convaincre (de mémoire, toutes sauf le memory_order_seq_cst génèrent des movl).