MESI

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacji, wyszukiwania
Write through
Write back
Write once

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.