Описание тега mesi
Протокол MESI (известный также как протокол Иллинойса) - это протокол согласованности кеш-памяти и согласованности памяти. Это или расширение, такое как MESIF или MOESI, используется почти повсеместно в многоядерных процессорах и системах SMP.
http://en.wikipedia.org/wiki/MESI_protocol
MESI требует, чтобы ядро принимало исключительное владение строкой кэша перед записью в нее, чтобы несколько ядер не могли хранить конфликтующие значения или даже читать устаревшие значения.
(Кэш сам по себе не является источником переупорядочения памяти: обычно буферы хранятся в отдельных ядрах. А на ISA со слабым упорядочением - выполнение загрузок вне очереди. См. Обеспечивает ли барьер памяти, что согласованность кеша завершена? Нет, кеш всегда согласован. Барьер памяти ожидает, пока буфер хранилища истощится. Распространенное заблуждение, что хранилища делают кеш некогерентным, а затем барьеры очищают его вручную.
Соответствующие вопросы и ответы:
- Может ли num++ быть атомарным для int num? объясняет, как атомарные операции RMW обычно реализуются в современных x86, удерживая строку кэша в состоянии Modified между загрузкой и хранением, не отвечая на Invalidate или RFO до тех пор, пока не будет выполнена атомарная транзакция.