Bon, "Sequential consistency" ça va beaucoup plus loin que "cohérent".
<pedantic>
Sequential consistency (SC—"Constance séquentielle" ?) garantit que tous les threads d'une machine a mémoire partagée voient les lectures et écritures mémoire dans un ordre identique. En pratique le matériel n'a pas a garantir que l'ordre des opérations est strictement identique, mais il doit apparaître comme si. Donc si j'ai 2 threads, dont l'un des deux au moins écrit dans une variable v, lorsque T0 écrit, alors T1 doit voir la séquence des valeurs de v changer au "même" moment. Les deux threads doivent donc s'accorder sur une séquence unique des valeurs successives de v.
La cohérence ("Cache consistency" ou "Coherence") relaxe fortement SC. Désormais, l'ordre des opérations se fait adresse mémoire par adresse mémoire. Ainsi, si j'ai 2 threads (T0,T1) et deux variables, x et y, Je me fiche de savoir si T1 et T2 voient les écritures de x et y de façon totalement identique en tant que "paire" d'adresses mémoire , tant que les accès individuels a x sont tous vus dans le même ordre par tous les threads, et que les accès a y idem. </pedantic>
[^] # Re: Ai-je bien compris ?
Posté par lasher . En réponse au journal Performances des processeurs Intel et optimisation. Évalué à 2.
Bon, "Sequential consistency" ça va beaucoup plus loin que "cohérent".
<pedantic>Sequential consistency (SC—"Constance séquentielle" ?) garantit que tous les threads d'une machine a mémoire partagée voient les lectures et écritures mémoire dans un ordre identique. En pratique le matériel n'a pas a garantir que l'ordre des opérations est strictement identique, mais il doit apparaître comme si. Donc si j'ai 2 threads, dont l'un des deux au moins écrit dans une variable
v, lorsque T0 écrit, alors T1 doit voir la séquence des valeurs devchanger au "même" moment. Les deux threads doivent donc s'accorder sur une séquence unique des valeurs successives dev.La cohérence ("Cache consistency" ou "Coherence") relaxe fortement SC. Désormais, l'ordre des opérations se fait adresse mémoire par adresse mémoire. Ainsi, si j'ai 2 threads (T0,T1) et deux variables,
xety, Je me fiche de savoir si T1 et T2 voient les écritures dexetyde façon totalement identique en tant que "paire" d'adresses mémoire , tant que les accès individuels axsont tous vus dans le même ordre par tous les threads, et que les accès ayidem.</pedantic>