Czy to prawda, że spójność sekwencyjna jest silniejszą właściwością niż spójność pamięci podręcznej?
Według
Sorin, Daniel J; Hill, Mark D; Wood, David A: A Primer on Memory Consistency and Cache Coherence , Morgan & Claypool, 2011
sekwencyjną spójność można opisać jako (nie formalnie):
Model pamięci spójności sekwencyjnej określa, że system musi pojawiać się, aby wykonywać wszystkie obciążenia wątków i zapisuje je we wszystkich lokalizacjach pamięci w całkowitej kolejności, która jest zgodna z kolejnością programu dla każdego wątku. Każde ładowanie otrzymuje wartość najnowszego sklepu w tej całkowitej kolejności.
Innymi słowy, system jest sekwencyjnie spójny, jeśli dane zdarzenia pamięci (obciążenia i zapasy) każdego wątku możemy uporządkować wszystkie te zdarzenia w taki sposób, że: 1) dla każdego wątku zachowana jest kolejność jego zdarzeń, i 2) porządek globalny jest serial (każde obciążenie zwraca ostatnią zapisaną wartość).
Teraz kontynuują i opisują spójność:
Definicja spójności, która jest analogiczna do definicji spójności sekwencyjnej, polega na tym, że spójny system musi wydawać się wykonywać obciążenia wszystkich wątków i zapisywać je w jednym miejscu pamięci w całkowitej kolejności, która jest zgodna z kolejnością programu dla każdego wątku.
Innymi słowy, system jest spójny, jeśli biorąc pod uwagę zdarzenia pamięci każdego wątku dla każdej lokalizacji , możemy uporządkować zdarzenia dla tej lokalizacji, tak że: 1) dla każdego wątku zachowana jest kolejność jego zdarzeń dla tej lokalizacji i 2) dla każdego lokalizacja zamówienie jest szeregowe.
Na koniec zwracają uwagę na różnicę:
Ta definicja podkreśla istotne rozróżnienie między spójnością a spójnością : spójność jest określana na podstawie lokalizacji na pamięć, podczas gdy spójność jest określana w odniesieniu do wszystkich lokalizacji w pamięci.
Wydaje się więc, że różnica polega na tym, że dla spójnych systemów potrzebujemy całkowitego porządku dla wszystkich zdarzeń dla każdej lokalizacji (a więc kolejności między zdarzeniami dla konkretnej lokalizacji), podczas gdy dla spójnych systemów całkowitą kolejność należy zdefiniować dla wszystkich zdarzeń (a zatem zamówienie jest również między wydarzeniami dla różnych lokalizacji)?
Czy to oznacza, że spójność jest mniej ścisła niż spójność? (co wydaje się zabawne!) Czy są ślady spójne, ale niespójne?