protokół MESIF

Protokół MESIF jest protokołem spójności pamięci podręcznej i spójności pamięci opracowanym przez firmę Intel dla spójnych niejednorodnych architektur pamięci podręcznej . Protokół składa się z pięciu stanów: Modified (M), Exclusive (E), Shared (S), Invalid (I) and Forward (F).

Stany M, E, S i I są takie same jak w protokole MESI . Stan F jest wyspecjalizowaną formą stanu S i wskazuje, że pamięć podręczna powinna działać jako wyznaczony obiekt odpowiadający na wszelkie żądania dotyczące danej linii. Protokół zapewnia, że ​​jeśli jakakolwiek pamięć podręczna utrzymuje linię w stanie S, co najwyżej jedna (inna) pamięć podręczna utrzymuje ją w stanie F.

W systemie pamięci podręcznych wykorzystujących protokół MESI żądanie linii pamięci podręcznej, które jest odbierane przez wiele pamięci podręcznych utrzymujących linię w stanie S, będzie obsługiwane nieefektywnie. Może być zaspokojony przez (wolną) pamięć główną lub wszystkie współdzielone pamięci podręczne mogą odpowiedzieć, bombardując osobę żądającą nadmiarowymi odpowiedziami. W systemie pamięci podręcznych wykorzystujących protokół MESIF na żądanie linii pamięci podręcznej odpowie tylko pamięć podręczna utrzymująca linię w stanie F. Pozwala to żądającemu otrzymać kopię z szybkością między pamięcią podręczną, a jednocześnie pozwala na użycie tak małej liczby pakietów multiemisji, na ile pozwala topologia sieci.

M mi S I F
M Red XN Red XN Red XN Green tickY Red XN
mi Red XN Red XN Red XN Green tickY Red XN
S Red XN Red XN Green tickY Green tickY Green tickY
I Green tickY Green tickY Green tickY Green tickY Green tickY
F Red XN Red XN Green tickY Green tickY Red XN

Ponieważ pamięć podręczna może jednostronnie odrzucić (unieważnić) linię w stanie S lub F, możliwe jest, że żadna pamięć podręczna nie ma kopii w stanie F, mimo że istnieją kopie w stanie S. W takim przypadku żądanie linii jest realizowane (mniej wydajnie, ale nadal poprawnie) z pamięci głównej. Aby zminimalizować prawdopodobieństwo odrzucenia linii F z powodu braku zainteresowania, ostatni żądający linii otrzymuje stan F; kiedy pamięć podręczna w stanie F odpowiada, przekazuje stan F nowej pamięci podręcznej.

Zatem główna różnica w stosunku do protokołu MESI polega na tym, że żądanie kopii linii pamięci podręcznej do odczytu zawsze wchodzi do pamięci podręcznej w stanie F. Jedynym sposobem na wejście w stan S jest spełnienie żądania odczytu z pamięci głównej.

Dla dowolnej pary pamięci podręcznych dozwolone stany danej linii pamięci podręcznej są wymienione w tabeli po prawej stronie. Kolejność, w jakiej wymienione są stany, nie ma innego znaczenia niż umożliwienie wymówienia akronimu MESIF.

Istnieją inne techniki spełniania żądań odczytu ze współdzielonych pamięci podręcznych przy jednoczesnym pomijaniu zbędnych odpowiedzi, ale posiadanie tylko jednej odpowiedzi z wyznaczonej pamięci podręcznej ułatwia unieważnienie wszystkich kopii, gdy jest to konieczne do przejścia do stanu wyłączności.

Porównanie z protokołem MOESI

Stanu F w tym protokole nie należy mylić ze stanem O „Właściciel” w protokole MOESI. Podczas gdy oba stany identyfikują jedną pamięć podręczną z zestawu współdzielących, aby efektywnie przesyłać dane przy użyciu bezpośrednich transferów z pamięci podręcznej do pamięci podręcznej (zamiast oczekiwać informacji z pamięci głównej), istnieje różnica w intencjach tych dwóch stanów.

  • Linia pamięci podręcznej w stanie F jest czysta i może zostać usunięta w dowolnym momencie bez powiadomienia.
  • Linia pamięci podręcznej w stanie O jest brudna i przed odrzuceniem musi zostać ponownie zapisana w pamięci.

Stan F w protokole MESIF jest po prostu sposobem na wybranie jednego z współużytkujących linię czystej pamięci podręcznej, aby odpowiedział na żądanie odczytu danych za pomocą bezpośredniego transferu z pamięci podręcznej do pamięci podręcznej, zamiast czekać, aż dane przyjdą z głównej pamięć. Ta optymalizacja ma sens w architekturach, w których opóźnienie między pamięcią podręczną jest znacznie mniejsze w porównaniu z opóźnieniem dostępu do pamięci głównej. Kluczową kwestią, na którą należy zwrócić uwagę, jest to, że podobnie jak w protokole MESI, gdy dane są w stanie udostępnionym (z jedną z pamięci podręcznych w stanie F), dane są czyste.

Stan O w protokole MOESI jest optymalizacją protokołu MESI, w którym wymóg czystości udostępnianych danych jest złagodzony. Innymi słowy, pamięci podręczne mogą udostępniać dane, które są brudne, o ile jeden z udostępniających bierze odpowiedzialność za posiadanie danych. Prośby o udostępnienie danych będą teraz spełniane przez właściciela. Ta optymalizacja umożliwia opóźnienie zapisu zwrotnego danych, umożliwiając udostępnianie brudnych danych. Kluczowa różnica w protokole MOESI polega na tym, że w przeciwieństwie do protokołu MESIF stan posiadania nie jest czysty.

Istnieje możliwość skonstruowania protokołu MOESIF.

Zobacz też