MESI — це протокол забезпечення когерентності кеш-пам'яті комп'ютера, який використовується в більшості сучасних процесорів.

Кожному рядку кеш-пам'яті призначається один із чотирьох станів (закодованих двома додатковими бітами):

M (modified, модифікований) — рядок пам'яті наявний лише на одному з рівнів кеша і відрізняється від вмісту оперативної пам'яті. E (exclusive, ексклюзивний) — рядок пам'яті наявний лише на одному з рівнів кеша, а також в оперативній пам'яті. S (shared, спільний) — рядок пам'яті наявний на всіх рівнях кеша, а також в оперативній пам'яті. I (invalid, недійсний) — рядок пам'яті є неактуальним і може бути замінений іншим.

Для будь-якої заданої пари кешів допустимі стани певного рядка кешу є такими:  M   E   S   I   M   E   S   I  Якщо блок перебуває у стані M (modified, модифікований) або E (exclusive, ексклюзивний), то копії цього блоку в інших кешах перебувають у стані I (invalid, недійсний).

Режими запису до кеш-пам'яті

Write through (наскрізний запис) — найстаріший за часом режим запису, що використовувався в процесорах 80486 (перших процесорах із кеш-пам'яттю). Запис виконується через усю ієрархію пам'яті — від найнижчого рівня кешу до оперативної пам'яті. Використовуються лише два стани: shared і invalid. Після заповнення рядка він переходить у стан shared. Під час запису до пам'яті через канал DMA (ESH-W, external hit write) рядок позначається як invalid.

Write back (також copy back) — режим запису, запроваджений разом з архітектурою Intel Pentium. Це різновид відкладеного запису. Після запису даних до рядка кешу оновлення решти пам'яті відкладається до моменту витіснення цього рядка з кеш-пам'яті. Це значно прискорює роботу кеш-пам'яті, зменшуючи навантаження на системну шину. Використовуються три стани: exclusive, modified і invalid. Після заповнення рядка (RM) він переходить у стан exclusive. Перший запис до оперативної пам'яті переводить його у стан modified. Під час читання через канал DMA (ESH-R, external hit read) відбувається повернення до стану exclusive. Запис через канал DMA призводить до позначення рядка як invalid.

Write once — поєднання двох наведених вище режимів. Перший запис до кешу виконується в режимі write through. Наступні записи здійснюються в режимі write back до повторного анулювання відповідного рядка кеш-пам'яті. Читання через канал DMA переводить рядок у стан shared, а запис через канал DMA — у стан invalid.

Див. також Протокол MSI — базовий протокол, модифікацією якого є MESI. Write-once (режим кеша) — рання форма протоколу MESI. Протокол MOSI Протокол MOESI Протокол MESIF Протокол MERSI Протокол Dragon Протокол Firefly (режим кеша)

Примітки

Посилання An interactive MESI simulation An open source MESI controller (Verilog)