protokół MESI

Transkrypt

protokół MESI
© Tomasz Jamrógiewicz
ZDECENTRALIZOWANA KONTROLA SPÓJNOŚCI PAMIĘCI
W systemach z pamięcią podręczną występują chwilowe braki zgodności pomiędzy
zawartością wiersza pamięci operacyjnej a jego kopią w pamięci podręcznej. Z
punktu widzenia danej jednostki centralnej ma to miejsce kiedy:
1. w wyniku działania jednostki centralnej (zapis), zmieniona zostaje zawartość
jej pamięci podręcznej;
2. zmieniona zostaje, w wyniku działania innej jednostki centralnej (zapis),
zawartość pamięci operacyjnej.
JC
____________
Pamięć
podręczna
JC
____________
Pamięć
podręczna
JC
____________
Pamięć
podręczna
PAO
Przywracanie, po zapisie, zgodności pomiędzy pamięcią podręczną i operacyjną
może być realizowane:
1. bezpośrednio po zapisie do pamięci podręcznej (write-through) – zapis
równoczesny;
2. podczas usuwania wiersza pamięci podręcznej (write-back) – zapis zwrotny.
W systemach wieloprocesorowych, w których występuje kilka jednostek z
pamięciami podręcznymi, brak zgodności pomiędzy pamięcią podręczną i
operacyjną może powodować utratę spójności pamięci. W przypadku stosowania
zapisu zwrotnego kopie tego samego wiersza pamięci operacyjnej mogą różnić się
między sobą w zależności od tego, w której pamięci podręcznej się znajdują.
1
© Tomasz Jamrógiewicz
Zgodnie z procedurą ZDECENTRALIZOWANEJ KONTROLI SPÓJNOŚCI PAMIĘCI
odpowiedzialność za utrzymanie spójności ciąży na wszystkich kontrolerach pamięci
podręcznych. Każdy z kontrolerów jest zobowiązany śledzić przesyłane zgłoszenia
i odpowiednio reagować. W takim przypadku najczęściej stosowany jest protokół
MESI.
Zgodnie z tym protokołem każdej kopii wiersza pamięci operacyjnej przypisywany
jest jeden z czterech atrybutów (dwa bity):
Modified (zmieniona) -
kopia znajdująca się tylko w jednej pamięci podręcznej,
w której niektóre dane zostały zmienione;
Exclusive (niezmieniona) -
kopia znajdująca się tylko w jednej pamięci podręcznej,
w której żadne dane nie zostały zmienione;
Shared (wspólna) -
niezmieniona kopia znajdująca się w kilku pamięciach
podręcznych;
Invalid (nieważna).
Rozpatrzmy cztery możliwe przypadki:
1. chybiony odczyt,
2. trafiony odczyt,
3. chybiony zapis,
4. trafiony zapis.
Chybiony odczyt
Kontroler pamięci podręcznej wczytuje brakujący wiersz (na jedną z pozycji
opatrzoną atrybutem kopia nieważna).
A. Jeśli to jest jedyna kopia, to nadaje jej atrybut niezmieniona:
(invalid
exclusive).
B. Jeśli, w którejś z pamięci podręcznych już znajduje się niezmieniona kopia tego
samego wiersza, to obu tym kopiom zostanie nadany atrybut wspólna:
(invalid
shared i exclusive
shared).
C. Jeśli jest kilka wspólnych kopii (niezmienionych), to kontroler nadaje jej atrybut
wspólna:
(invalid
shared a w pozostałych shared
shared).
2
© Tomasz Jamrógiewicz
D. Jeśli, w którejś z pamięci podręcznych znajduje się zmieniona kopia tego samego
wiersza, to kontroler tej pamięci sygnalizuje, że operację odczytu należy powtórzyć.
Następnie przejmuje kontrolę nad magistralą i aktualizuje zawartość tego wiersza
pamięci operacyjnej a kopii nadaje atrybut wspólna:
(modified
shared).
Po powtórzeniu odczytu kopia otrzymuje atrybut wspólna:
(invalid
shared).
Trafiony odczyt
Nic się nie zmienia.
Chybiony zapis
Kontroler inicjuje odczyt wiersza pamięci z zamiarem jego modyfikacji.
A. Jeśli to jest jedyna kopia, to otrzyma atrybut zmieniona:
(invalid
modified).
B. Jeśli istnieje kopia niezmieniona lub niezmienione kopie wspólne to zostaną
unieważnione a wczytana kopia będzie miała atrybut zmieniona.
(invalid
modified, exclusive lub shared
invalid).
C. Jeśli istnieje kopia zmieniona, to kontroler pamięci, w której się ona znajduje
przejmuje magistralę i zapisuje ją do pamięci operacyjnej a w pamięci podręcznej
unieważnia:
(modified
invalid).
Teraz po jej wczytaniu będzie to jedyna kopia i uzyska atrybut zmieniona:
(invalid
modified).
Trafiony zapis
Kopia wiersza pamięci będzie zmodyfikowana.
A. Jeśli brak innych kopii to:
(exclusive lub modified
modified)
B. Jeśli są inne kopie tego samego wiersza pamięci podręcznej, to powinny zostać
unieważnione:
(shared
modified i shared
invalid).
3

Podobne dokumenty