É verdade que a consistência sequencial é uma propriedade mais forte que a coerência do cache?
De acordo com
Daniel Sorin; Hill, Mark D; Wood, David A: Uma cartilha sobre consistência de memória e coerência de cache , Morgan & Claypool, 2011
a consistência sequencial pode ser descrita como (não formalmente):
O modelo de memória de consistência sequencial especifica que o sistema deve parecer executar todas as cargas de encadeamentos e armazenado em todos os locais de memória em uma ordem total que respeite a ordem do programa de cada encadeamento. Cada carga obtém o valor da loja mais recente nesse pedido total.
Em outras palavras, o sistema é sequencialmente consistente, se dados eventos de memória (cargas e armazenamentos) de cada thread, podemos ordenar todos esses eventos de modo que: 1) para cada thread, a ordem de seus eventos seja preservada e 2) a ordem global seja serial (qualquer carga retorna o valor mais recente armazenado).
Agora eles continuam e descrevem a coerência:
Uma definição de coerência análoga à definição de Consistência sequencial é que um sistema coerente deve parecer executar todas as cargas de encadeamentos e armazenar em um único local de memória em uma ordem total que respeite a ordem do programa de cada encadeamento.
Em outras palavras, o sistema é coerente; se dados eventos de memória de cada encadeamento para cada local , podemos solicitar eventos para esse local, de modo que: 1) para cada encadeamento, a ordem de seus eventos para esse local seja preservada e 2) para cada local em que o pedido é serial.
Finalmente, eles apontam a diferença:
Essa definição destaca uma distinção importante entre coerência e consistência : a coerência é especificada em uma localização por memória, enquanto a consistência é especificada em relação a todos os locais da memória.
Portanto, parece que a diferença é que, para sistemas coerentes, precisamos de uma ordem total em todos os eventos para cada local (assim, a ordenação entre eventos para uma localização específica), enquanto que para sistemas consistentes a ordem total deve ser definida em todos os eventos (e, portanto, no o pedido também é entre eventos para locais diferentes)?
Isso significa que a coerência é menos estrita que a consistência? (o que parece divertido!) Existem vestígios coerentes, mas não consistentes?