96 Anatomia PC
Żądania dostępu do pamięci filtrowane są przez układ kontrolera Cache. Jeżeli potrzebna informacja znajduje się w buforze przekazuje się ją procesorowi. Brak informacji lub jej nicaktualność powoduje uruchomienie magistrali pamięciowej w celu sięgnięcia do odpowiedniego adresu. W pierwszym przypadku mowa jest o tzw. trafieniu (Cache-Hit). Stan przeciwny stanowi Cache-Miss.
Sytuacja komplikuje się znacznie, jeżeli w systemie operuje kilka procesorów (lub innych układów mających prawo zapisu do pamięci). Aktualność przechowywanej w buforze infonnacji zależy już nie tylko od gospodarza danego L-215. Dla zachowania zbieżności ze stanem pamięci należy przedsięwziąć pewne działania dodatkowe W lym celu wszystkie zainteresowane strony stale podsłuchują (Snooping) co dzieje się na magistrali pamięciowej. Analizie podlegają adresy odwołań do pamięci, które porównuje się ze stanem posiadania w buforze L-2. Każda z linijek otrzymuje dodatkową etykietę zgodnie z tzw protokołem MESI.
Protokół MESI jest zbiorem reguł odnoszących się do statusu poszczególnych linijek pamięci cache. Opracowany został pod względem optymalizacji dostępu do pamięci, tzn. bezpośredni i czasochłonny zapis lub odczyt z/do pamięci opóźnia się tak długo jak tylko jest to jeszcze możliwe bez utraty koherencji (zbieżności). Protokół bierze swoją nazwę od pierwszych liter możliwych stanów: Mochftcd, Exciusive, Sharecłlnvalid.
• F.xrhsive\ Linijka o tym statusie obecna jest tylko w tym jednym buforze cache i nie powtarza się w żadnym innym. Jej zawartość jest w pełni zgodna z buforowanymi komórkami pamięci. Jeżeli procesor żąda danych z zakresu pokrywanego przez linijkę opatrzoną statusem E nie wyzwala to cyklu odczytu z pamięci - dane pobierane są z bufora cache. Zapis danych do obszaru objętego tą linijką również, nie powoduje aktywowania magistrali ale zmienia się status linijki z E na M (Modified).
• Mndified: Statusem tym oznaczana jest linijka, która podobnie jak w przypadku E nie wystęuje w żadnym innym buforze. Jej zawartość jednak /cislała zmodyfikowana i nie jest już zgodna ze stanem pamięci Ponieważ jednak ostatnia modyfikacja tego adresu odbyła się w bufor/e cache, on to właśnie (a nie pamięć) zawiera bardziej aktualną informację. Tak w ięc zapis jak i odczyt z tego obszaru stanowi trafienie (Hit) i nie wywołuje pobudzenia magistrali pamięciowej.
• Shnred Stan ten odzwierciedla sytuację dublowania się danych w różnych buforach cache. Dochodzi do niej w przypadku sięgania przez różne procesory do tego samego obszaru pamięci. Odczyt z dowolnej z linijek16 opatrzonej statusem S stanowi naturalnie trafienie i nie uruchamia magistrali. Sytuacja komplikuje się w momencie zapisu pod jeden / buforowanych przez nią adresów. Jest to nadal trafienie ale powstaje niebezpieczny stan rozbieżności. Eliminuje się go poprzez natychmiastowy zapis aktualnej wartości linijki do pamięci (pracuje magistrala) a status wszystkich innych z nią związanych zostaje przestawiony na / (Invalid).
1 ’ Niceo inna logika ohowiązuje w systemach multiprocesorowych dzielących wspólny Cache poziomu drugiego.
M Zawartość wszystkich linijek o statusie S (odnoszących się ilu lego samego adresu) jesi naturalnie ta sama.