MESI
Przejdź do nawigacji
Przejdź do wyszukiwania
MESI (inaczej Illinois protocol) — protokół spójności danych w pamięci podręcznej 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 cache[edytuj | edytuj kod]
- 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 oraz 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ą 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żywamy tu trzech stanów: 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.