MESI – Wikipedia, wolna encyklopedia
![](http://upload.wikimedia.org/wikipedia/commons/thumb/2/29/Write_through.png/150px-Write_through.png)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/e/e9/Write_back.png/150px-Write_back.png)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/0/0f/Write_once.png/150px-Write_once.png)
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
[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 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.