Podręcznik
1. Pamięci ROM
1.7. Protokół MESI
Do zapewnienia spójności wielopoziomowej pamięci podręcznej może być użyty protokół MESI. Istnieje wiele jego odmian. W najprostszej postaci wyróżniamy cztery stany linii pamięci:
- nieważna (I – Invalid),
- wspólna (S – Shared),
- wyłączna (E – Exclusive),
- zmodyfikowana (M – Modified).
Stany te są zapamiętywane w bitach statusu pamięci podręcznej. Ustawienie stanu na I (nieważny) oznacza, że linia pamięci podręcznej jest niewykorzystywana, może być użyta do zapisu danych. W momencie kiedy dane zostają wpisane po raz pierwszy do pamięci podręcznej otrzymują status E (wyłączny). Oznacza to, że dana jest ważna i nie występuje jej kopia w innej pamięci podręcznej (np. związanej z innym rdzeniem). Kopia w RAM jest aktualna. Kiedy taka dana jest powielona do innej pamięci podręcznej otrzymuje status S (wspólny). Oznacza to, że istnieją kopie tej danej w innych pamięciach podręcznych i RAM, wszystkie kopie są ważne. Kiedy dana jest zmodyfikowane otrzymuje status M (zmodyfikowany). W tym wypadku inne jej kopie w pamięci podręcznej tracą ważność, również dana w pamięci RAM jest nieaktualna. Poszczególne stany protokołu MESI są przedstawione w tabeli 1.
Tabela 1. Stany MESI
|
M zmodyfikowany |
E wyłączny |
S wspólny |
I nieważny |
Czy linia pamięci podręcznej jest ważna? |
Tak |
Tak |
Tak |
Nie |
Kopia pamięci jest … |
nieaktualna |
ważna |
ważna |
- |
Czy istnieją kopie w innych pamięciach podręcznych? |
Nie |
Nie |
Być może |
Być może |
obrazów coraz częściej używanych w procesie rozpoznawania obiektów.