W dzisiejszym świecie MESI stał się tematem o dużym znaczeniu i zainteresowaniu szerokiego spektrum ludzi. Niezależnie od tego, czy ze względu na swój wpływ na społeczeństwo, znaczenie historyczne czy wpływ na kulturę popularną, MESI nadal przyciąga uwagę milionów osób na całym świecie. Z historią sięgającą wieków, MESI ewoluował i dostosował się do zmian i postępu współczesnego społeczeństwa. W tym artykule szczegółowo zbadamy wszystko, co jest związane z MESI, od jego początków po jego obecny wpływ na różne aspekty życia codziennego.
Write throughWrite backWrite once
MESI (inaczej Illinois protocol) — protokół spójności danych w pamięci podręcznej (cache) komputera, stosowany w większości współczesnych procesorów.
Każda linia pamięci podręcznej ma przydzielony jeden z czterech stanów (zakodowanych na dwóch dodatkowych bitach):
M (modified) – linia pamięci jest dostępna tylko w jednym z poziomów cache i jest różna od zawartości pamięci operacyjnej
E (exclusive) – linia pamięci jest dostępna tylko w jednym z poziomów cache, oraz w pamięci operacyjnej
S (shared) – linia pamięci jest dostępna na wszystkich poziomach cache oraz w pamięci operacyjnej
I (invalid) – linia pamięci jest nieaktualna i może zostać zastąpiona inną.
Tryby zapisu do pamięci podręcznej
Write through (zapis skrośny) – najstarszy chronologicznie tryb zapisu, używany w procesorach 80486 (pierwsze układy z pamięcią podręczną). Jest to zapis przeprowadzany przez całą hierarchię pamięci od najniższego poziomu cache do pamięci operacyjnej. Występują tu tylko dwa stany: shared i invalid. Po wypełnieniu linii następuje przejście do shared. Linia zostaje zamarkowana jako invalid podczas zapisu do pamięci poprzez kanał DMA (ESH-W – external hit write).
Write back (inaczej copy back) – tryb zapisu wprowadzony razem z architekturą Intel Pentium. Jest to rodzaj zapisu z opóźnieniem. Po wpisaniu danej do linii cache aktualizacja reszty pamięci jest opóźniana do momentu wymiany danej linii w pamięci podręcznej. Przyspiesza to znacznie działanie systemu cache, zmniejszając tym samym aktywność na magistrali. Używane są trzy stany: exclusive, modified i invalid. Po wypełnieniu linii (RM) następuje przejście do exclusive. Pierwszy zapis do pamięci operacyjnej spowoduje przejście do modified. Przy odczycie przez kanał DMA (ESH-R, external hit read) nastąpi przejście z powrotem do exclusive. Zapis przez kanał DMA oznacza zamarkowanie linii jako invalid.
Write once – połączenie obu powyższych trybów. Pierwszy zapis do cache realizowany jest jako write through. Dalsze zapisy są przeprowadzane w trybie write back, aż do ponownego unieważnienia linii cache. Odczyt przez kanał DMA powoduje przejście do stanu shared, zapis przez kanał DMA – przejście do stanu invalid.