Правда ли, что последовательная согласованность является более сильным свойством, чем когерентность кэша?
В соответствии с
Сорин, Даниэль Дж; Hill, Mark D; Вуд, Дэвид А. Учебник по последовательности памяти и согласованности кэша , Morgan & Claypool, 2011
последовательная согласованность может быть описана как (не формально):
Модель памяти с последовательной согласованностью указывает, что должна отображаться система для выполнения загрузки всех потоков и сохранения во всех ячейках памяти в общем порядке, который соответствует порядку программы каждого потока. Каждая загрузка получает значение самого последнего магазина в этом общем заказе.
Другими словами, система последовательно последовательна, если для заданных событий памяти (загрузки и хранения) каждого потока мы можем упорядочить все эти события так, чтобы: 1) для каждого потока сохранялся порядок его событий, и 2) глобальный порядок последовательный (любая загрузка возвращает последнее сохраненное значение).
Теперь они продолжают и описывают последовательность:
Определение когерентности , аналогичное определению последовательной согласованности, заключается в том, что согласованная система должна отображать все нагрузки потоков и сохранять их в одной ячейке памяти в общем порядке, который учитывает программный порядок каждого потока.
Другими словами, система является связной, если для заданных событий памяти каждого потока для каждого местоположения мы можем упорядочить события для этого местоположения, так что: 1) для каждого потока сохраняется порядок его событий в этом местоположении , и 2) для каждого Расположение заказа является серийным.
Наконец, они указывают на разницу:
В этом определении подчеркивается важное различие между согласованностью и согласованностью : согласованность указывается для каждой ячейки памяти, а согласованность указывается для всех областей памяти.
Таким образом, похоже, разница состоит в том, что для согласованных систем нам нужен общий порядок по всем событиям для каждого местоположения (таким образом, порядок между событиями для конкретного местоположения), в то время как для согласованных систем общий порядок должен быть определен по всем событиям (и, следовательно, порядок также между событиями для разных мест)?
Означает ли это, что последовательность менее строга, чем последовательность? (что кажется забавным!) Есть ли следы, которые являются последовательными, но не последовательными?