Protokoły spójności pamięci podręcznej (przykłady)
Przykłady protokołów spójności dla pamięci podręcznej są wymienione tutaj. Dla uproszczenia wszystkie transakcje o statusie „ chyba ” odczytu i zapisu, które oczywiście pochodzą ze stanu „ I ” (lub chybienia Tagu), na diagramach nie są pokazane. Są one wyświetlane bezpośrednio w nowym stanie. Wiele z poniższych protokołów ma jedynie wartość historyczną. Obecnie głównymi używanymi protokołami są protokoły typu R-MESI / MESIF oraz HRT-ST-MESI (typ MOESI) lub ich podzbiór lub rozszerzenie.
Problem ze spójnością pamięci podręcznej
W systemach wieloprocesorowych , wielordzeniowych i NUMA , w których stosuje się dedykowaną pamięć podręczną dla każdego procesora , rdzenia lub węzła , może wystąpić problem ze spójnością, gdy te same dane są przechowywane w więcej niż jednej pamięci podręcznej. Ten problem pojawia się, gdy dane są modyfikowane w jednej pamięci podręcznej. Problem ten można rozwiązać na dwa sposoby:
- Unieważnij wszystkie kopie w innych pamięciach podręcznych (broadcast-invalidate)
- Zaktualizuj wszystkie kopie w innych pamięciach podręcznych (write-broadcasting), podczas gdy pamięć może być aktualizowana (write-through) lub nie aktualizowana (write-back).
Uwaga: Spójność ogólnie dotyczy tylko danych (jako operandów), a nie instrukcji (zobacz Kod samomodyfikujący się ).
Schematy można podzielić na podstawie:
- Schemat Snoopy a schemat katalogów i współdzielone pamięci podręczne
- Protokół zapisu i zapisu zwrotnego (oparty na własności).
- Protokół aktualizacji a unieważnienia
- Interwencja vs brak interwencji
- Protokół udostępniania „brudnego” i „niebrudnego” (MOESI vs MESI)
W celu zachowania spójności danych przyjęto trzy podejścia.
- Obserwacja magistrali lub Snooping - zwykle używane w przypadku SMP opartego na magistrali - Symetryczny system wieloprocesorowy / systemy wielordzeniowe
- Oparta na katalogach – Message-passing – może być używana we wszystkich systemach, ale zazwyczaj w systemie NUMA i dużych systemach wielordzeniowych
- Współdzielona pamięć podręczna – zwykle stosowana w systemach wielordzeniowych
Protokół koherencji Snoopy'ego
Protokół używany w systemach opartych na magistrali, takich jak systemy SMP
SMP – symetryczne systemy wieloprocesorowe
Systemy działające w ramach jednego systemu operacyjnego ( systemu operacyjnego ) z co najmniej dwoma jednorodnymi procesorami i ze scentralizowaną wspólną pamięcią główną
Każdy procesor ma własną pamięć podręczną, która działa jako pomost między procesorem a pamięcią główną . Połączenie jest nawiązywane za pomocą magistrali systemowej lub poprzeczki („xbar”) lub połączenia dwóch wcześniejszych podejść, magistrali dla adresu i poprzeczki dla danych (poprzeczka danych).
Wąskim gardłem tych systemów jest ruch i przepustowość pamięci. Przepustowość można zwiększyć, stosując dużą ścieżkę magistrali danych, poprzeczkę danych, przeplatanie pamięci (dostęp równoległy do wielu banków) i transakcje danych poza kolejnością . Ruch można zmniejszyć, używając pamięci podręcznej, która działa jak „filtr” w porównaniu z pamięcią współdzieloną, czyli pamięć podręczna jest niezbędnym elementem pamięci współdzielonej w systemach SMP.
W systemach wieloprocesorowych z oddzielnymi pamięciami podręcznymi, które współużytkują wspólną pamięć, te same dane mogą być przechowywane w więcej niż jednej pamięci podręcznej. Problem ze spójnością danych może wystąpić, gdy dane są modyfikowane tylko w jednej pamięci podręcznej. Protokoły utrzymujące spójność dla wielu procesorów nazywane są protokołami spójności pamięci podręcznej .
Zwykle w SMP spójność opiera się na podejściu „Obserwacja autobusu” lub „ Snoopy ” (od postaci Snoopy'ego z Fistaszków ). W systemie szpiegującym wszystkie pamięci podręczne monitorują (lub szpiegują) transakcje magistrali w celu przechwycenia danych i ustalenia, czy mają kopię w pamięci podręcznej.
Różne protokoły spójności pamięci podręcznej są używane do zachowania spójności danych między pamięciami podręcznymi.
Protokoły te są generalnie klasyfikowane tylko na podstawie stanów pamięci podręcznej (od 3 do 5 i 7 lub więcej) oraz transakcji między nimi, ale może to powodować pewne zamieszanie.
Ta definicja jest niekompletna, ponieważ brakuje w niej ważnych i istotnych informacji, takich jak działania, które one wywołują. Działania te mogą być wywołane z procesora lub magistrali (np. interwencja, unieważnienie, rozgłaszanie, aktualizacja itp.). Rodzaj działań zależy od implementacji. Protokoły mające te same stany i te same zasady transakcji mogą być różne, na przykład protokół MESI ze wspólną interwencją na niezmodyfikowanych danych i MESI bez interwencji (patrz poniżej). Protokoły o różnych stanach mogą być praktycznie tym samym protokołem, na przykład 4-stanowe protokoły MESI Illinois i 5-stanowe MERSI (R-MESI) IBM / MESIF-Intel są tylko inną implementacją tej samej funkcjonalności (patrz poniżej).
Za najbardziej powszechne i popularne protokoły uważa się 4-stanową pamięć podręczną znaną jako akronimy MESI i 5-stanowy MOESI , to tylko dla łatwej wymowy, terminy pochodzące od nazw używanych stanów. Inne protokoły używają tych samych stanów lub ich podzbiorów, ale z różnymi implementacjami i często z inną, ale równoważną terminologią. Termin MESI lub MOESI lub ich podzbiór ogólnie odnosi się do klasy protokołów, a nie do określonego protokołu .
Stany pamięci podręcznej
Stany MESI i MOESI są często i częściej nazywane różnymi nazwami.
-
M = Zmodyfikowany lub D = Brudny lub DE = Brudny-wyłączny lub EM = Wyjątkowo zmodyfikowany
- zmodyfikowane tylko w jednej pamięci podręcznej – przy wymianie wymagany jest zapis zwrotny.
- dane są przechowywane tylko w jednej pamięci podręcznej, ale dane w pamięci nie są aktualizowane (nieprawidłowe, nieczyste).
-
O = Właściciel lub SD = Udostępnione Brudne lub SM = Udostępnione Zmodyfikowane lub T = Oznaczone
- zmodyfikowane, potencjalnie współdzielone, posiadane, wymagane odpisanie przy wymianie.
- dane mogą być przechowywane w więcej niż pamięci podręcznej, ale dane w pamięci nie są aktualizowane (nieprawidłowe, nieczyste). Tylko jedna skrytka jest „właścicielem”, inne skrytki są ustawione jako „Ważne” (S/V/SC). Na żądanie odczytu z magistrali dane są dostarczane przez „właściciela” zamiast z pamięci.
-
E = Exclusive lub R = Reserved lub VE = Valid-Exclusive lub EC = Exclusive Clean lub Me = Exclusive
- czysty, tylko w jednej pamięci podręcznej.
- Dane są przechowywane tylko w jednej pamięci podręcznej i czyszczone w pamięci.
-
S = wspólne lub V = ważne lub SC = wspólne czyste
- wspólne lub ważne
- Dane potencjalnie udostępniane innym pamięciom podręcznym. Dane mogą być czyste lub brudne. Termin „czysty” w SC jest mylący, ponieważ może być również brudny (patrz protokół Dragon ).
-
I = Nieprawidłowy .
- Linia pamięci podręcznej jest nieprawidłowa. Jeśli linia pamięci podręcznej nie jest obecna (brak pasującego tagu), jest to uważane za równoznaczne z nieprawidłowym, dlatego nieprawidłowe dane oznaczają, że dane są obecne, ale są nieprawidłowe lub nieobecne w pamięci podręcznej.
Stany specjalne:
-
F = Naprzód lub R = Ostatnie
- Dodatkowe stany protokołu MESI
- Ostatnie odczytane dane. Jest to specjalny stan „Valid”, który jest „Właścicielem” dla niezmodyfikowanych współdzielonych danych , używany w niektórych rozszerzonych protokołach MESI (MERSI lub R-MESI IBM, MESIF – Intel). Stan R/F jest używany do umożliwienia „interwencji”, gdy wartość jest czysta, ale współdzielona przez wiele pamięci podręcznych. Ta pamięć podręczna jest odpowiedzialna za interwencję ( wspólna interwencja ). Na żądanie odczytu z magistrali dane są dostarczane z tej pamięci podręcznej zamiast z pamięci. MERSI i MESIF to ten sam protokół z inną terminologią ( F zamiast R ). Czasami R jest określane jako „ SL udostępnione ostatnie ” ( ).
- Stan R = Recent jest używany nie tylko w protokole MERSI = R-MESI , ale w kilku innych protokołach. Ten stan może być używany w połączeniu z innymi stanami. Na przykład RT-MESI , HR-MESI , HRT-MESI , HRT-ST-MESI . Wszystkie protokoły korzystające z tego stanu będą określane jako typu R-MESI .
-
H = Hover – H-MESI (dodatkowy stan protokołu MESI)
- Hover ( H ) pozwala wierszowi pamięci podręcznej na zachowanie znacznika adresu w katalogu, nawet jeśli odpowiadająca mu wartość we wpisie pamięci podręcznej jest nieprawidłową kopią. Jeśli odpowiadająca wartość pojawi się na magistrali (dopasowanie znacznika adresu) z powodu ważnej operacji „Odczyt” lub „Zapis”, wpis jest aktualizowany za pomocą ważnej kopii, a jego stan jest zmieniany w S .
- Ten stan może być używany w połączeniu z innymi stanami. Na przykład HR-MESI , HT-MESI , HRT-MESI , HRT-ST-MESI .
Różne protokoły koherencji
Protokoły | |
---|---|
protokół SI | Napisz przez |
protokół MSI | Protokół synapsy |
protokół MEI | IBM PowerPC 750 , MPC7400 |
protokół MES | Protokół świetlików |
protokół MESI | Pentium II, PowerPC, Intel Harpertown (Xeon 5400) |
protokół MOSI | Protokół Berkeleya |
protokół MOESI | AMD64 , MOESI, T-MESI IBM |
Stosowana terminologia | |
---|---|
protokół stanu Illinois | D-VE-SI (= rozszerzony MESI) |
Napisz raz lub Napisz najpierw | DRVI (= MESI) |
Protokół Berkeleya | D-SD-VI (= MOSI) |
Protokół synapsy | DVI (= MSI) |
Protokół świetlików | D-VE-S (= MES) DEC |
Protokół smoka | D-SD (SM?)-SC-VE (= MOES) Xerox |
Protokół Bull HN ISI | D-SD-RVI (= MOESI) |
Protokół MERSI (IBM) / MESIF (Intel). |
|
protokół HRT-ST-MESI | H=Hover, R=Recent,T=Tagged, ST=Shared-Tagged – IBM – Uwaga: główne terminologie to SD-DRVI i MOESI, dlatego będą używane w obu terminach. |
Protokół POWER4 IBM | Mu-T-Me-MSS L -I ( L2 siedem stanów)
(*) Stan specjalny – Pytanie o rezerwację podwójnego słowa ładowania i przechowywania (dla implementacji 64-bitowych). |
Operacje koherencji Snoopy'ego
- Transakcje autobusowe
- Charakterystyka danych
- Operacje pamięci podręcznej
Transakcje autobusowe
Główne operacje to:
- Napisz przez
- Odpisać
- Napisz Przydziel
- Zapis bez alokacji
-
Interwencja w pamięci podręcznej
- Wspólna interwencja
- Brudna interwencja
- Unieważnienie
- Napisz-emisja
- Nadawanie interwencyjne
Napisz przez
- Linia pamięci podręcznej jest aktualizowana zarówno w pamięci podręcznej, jak iw MM lub tylko w MM ( wpisz no-allocate ).
- Prosty do wdrożenia, wymagający dużej przepustowości. To jest lepsze dla pojedynczego zapisu.
Odpisać
- Dane są zapisywane tylko w pamięci podręcznej. Dane są zapisywane z powrotem do MM tylko wtedy, gdy dane są zastępowane w pamięci podręcznej lub gdy jest to wymagane przez inne pamięci podręczne (zobacz Zasady zapisu ).
- Lepsze jest wielokrotne zapisywanie na tej samej linii pamięci podręcznej.
- Rozwiązanie pośrednie: Write Through dla pierwszego zapisu, Write-Back dla następnego ( protokoły Write-once i Bull HN ISI ).
Napisz Przydziel
- W przypadku pomyłki dane są odczytywane od „właściciela” lub z MM, następnie dane są zapisywane w pamięci podręcznej (aktualizacja-zapis częściowy) (patrz Polityka zapisu ).
Zapis bez alokacji
- W przypadku chybienia dane są zapisywane tylko w MM bez angażowania pamięci podręcznej lub, jak w protokole Bull HN ISI , w „właścicielu”, czyli w pamięci podręcznej D lub SD (aktualizacja właściciela), jeśli są, w innym przypadku w MM.
- Write-no-Allocate jest zwykle powiązany z Write Through.
- Cache Intervention
- (lub w skrócie „ interwencja ”)
- – Shared Intervention – wspólna czysta interwencja (na niezmodyfikowanych danych)
- – On Read Miss dostarcza dane przez właściciela E lub R / F lub też S zamiast MM (patrz protokoły Illinois , typu IBM R-MESI i Intel MESIF).
- – Shared Intervention – wspólna czysta interwencja (na niezmodyfikowanych danych)
- – Brudna interwencja (na zmodyfikowanych danych)
- – W przypadku braku odczytu dane są dostarczane przez właściciela M (D) lub O (SD) lub przez E (R) (*) zamiast MM (np. protokół MOESI, RT-MESI, … ).
- – Brudna interwencja (na zmodyfikowanych danych)
- (*) – Nie dla E (R) w oryginalnej propozycji protokołu MOESI oraz w niektórych innych implementacjach typu MOESI.
- – „ Interwencja ” jest lepsza w porównaniu do „ nieinterwencji ”, ponieważ transakcje cache-to-cache są znacznie szybsze niż dostęp MM, a dodatkowo oszczędzają przepustowość pamięci (redukcja ruchu pamięci). Rozszerzony typ MESI Illinois i R-MESI / MESIF są zatem znacznie lepsze niż protokół MOESI (patrz MESI vs MOESI poniżej)
- Unieważnienie
- – po trafieniu zapisu ze stanem S (V) lub O (SD) (wspólny), wysyłana jest transakcja magistrali aby unieważnić wszystkie kopie w innych pamięciach podręcznych ( Write-invalidate ).
- Write-broadcast (Write-update)
- – w przypadku trafienia zapisu w stanie S (V) lub O (SD) (udostępniony), zapis jest przekazywany do innych pamięci podręcznych w celu aktualizacji ich kopii (np. protokół Intel Nehalem Dragon , Firefly (DEC).
- – Uwaga – Operacja aktualizacji na innych pamięciach podręcznych jest czasem nazywana również Snarfing.Pamięć podręczna śledzi magistralę, a jeśli w pamięci podręcznej wystąpi trafienie, ta pamięć podręczna przechwytuje dane przesyłane przez magistralę i aktualizuje swoją pamięć podręczną. stanu H w ( H-MESI ) można zdefiniować jako snarfing . W pierwszym przypadku dzieje się to w operacji zapisu rozgłaszania, w drugim przypadku zarówno w operacjach odczytu, jak i
- zapisu
- .
- ze stanem H ( H-MESI ) aktualizuje swoją nieważną kopię wartością wysłaną na magistralę, a jej stan jest zmieniany w S. Unieważnienie
- zapisu vs rozgłaszanie
- – Unieważnienie zapisu jest lepsze, gdy procesor wykonuje wiele zapisów, zazwyczaj częściowych, przed że linia pamięci podręcznej jest odczytywana przez inny procesor
- – Write-broadcast (aktualizacja) jest lepsza, gdy jest jeden producent i wielu odbiorców danych, gorzej, gdy pamięć podręczna jest wypełniona danymi, które nie będą ponownie odczytywane ( rosnący ruch autobusowy, rosnąca ingerencja w pamięć podręczną ).
- - Powszechnym rozwiązaniem jest unieważnienie.
Charakterystyka danych
Dane przechowywane w pamięci podręcznej mają trzy cechy:
- Ważność
- Wyłączność
- Własność
- Ważność
- – Dowolna nieprawidłowa linia pamięci podręcznej, czyli MOES / D-SD-RV.
- Wyłączność
- – Dane ważne tylko w jednej pamięci podręcznej (dane nieudostępniane) w stanie M (D) lub E (R), przy czym MM nie jest czysty w przypadku M (D) i czysty w przypadku E (R).
- Własność
- — pamięć podręczna odpowiedzialna za dostarczanie danych żądania zamiast MM (interwencja) — w zależności od protokołu pamięć podręczna, która musi dokonać interwencji, może być S - E - M w MESI Illinois lub R / F - E - M w typie R-MESI / MESIF lub M (D) lub O (SD) lub też E (R) (*) w protokołach typu MOESI, (np. AMD64 , Bull HN ISI – patrz operacja „Read Miss” poniżej).
(*) – W zależności od implementacji.
Uwaga: Nie należy mylić bardziej restrykcyjnej definicji „właściciela” w protokole MOESI z tą bardziej ogólną definicją .
Operacje pamięci podręcznej
Operacje pamięci podręcznej to:
- Przeczytaj Hit
- Przeczytaj panią
- Napisz trafienie
- Napisz Pani
- Odczyt trafienia
- — dane są odczytywane z pamięci podręcznej. Stan pozostaje niezmieniony
- – Uwaga : ponieważ jest to oczywista operacja, później nie będzie już brana pod uwagę, również w diagramach transakcji stanu.
- Brak odczytu
- – Żądanie odczytu danych jest wysyłane do magistrali
- – Istnieje kilka sytuacji:
- Dane przechowywane tylko w MM
- – Dane są odczytywane z MM.
- – Pamięć podręczna jest ustawiona na E (R) lub S (V)
- – E (R), jeśli do wykrywania „ brak udostępniania danych ” używana jest specjalna linia magistrali („ Linia współdzielona ”) . Używany we wszystkich protokołach posiadających E (R) z wyjątkiem protokołów Write-Once i Bull HN ISI (patrz „Write Hit” poniżej).
-
- Dane przechowywane w MM oraz w jednej lub kilku pamięciach podręcznych w stanie S (V) lub w R/F w protokołach typu R-MESI / MESIF .
- – Są trzy sytuacje:
-
– protokół Illinois – priorytet sieciowy służy do tymczasowego i arbitralnego przypisania własności kopii S. - Dane są dostarczane przez wybraną pamięć podręczną. Żądanie pamięci podręcznej jest ustawione na S ( wspólna interwencja z czyszczeniem MM). -
– protokoły typu R-MESI / MESIF – kopia jest w stanie R / F ( współwłaściciel ) – Dane dostarczane są przez pamięć podręczną R / F . Wysyłająca pamięć podręczna jest zmieniana w S , a żądająca pamięć podręczna jest ustawiana R / F (w przypadku chybienia odczytu „własność” jest zawsze przejmowana przez ostatnią żądającą pamięć podręczną) – wspólna interwencja . - – We wszystkich innych przypadkach dane są dostarczane przez pamięć, a żądająca pamięć podręczna jest ustawiona na S (V).
-
-
- Dane przechowywane w MM i tylko w jednej pamięci podręcznej w stanie E (R) .
-
– Dane są dostarczane przez pamięć podręczną E (R) lub przez MM, w zależności od protokołu. – Z E (R) w rozszerzonym MESI (np. Illinois , Pentium (R) II), typu R-MESI/MESIF oraz z tej samej implementacji MOESI (np. AMD64 ) – Pamięć podręczna żądania jest ustawiona na S (V) lub R / F w protokołach typu R-MESI / MESIF i pamięci podręcznej E (R) zmienia się w S (V) lub w I w protokole MEI. - – We wszystkich pozostałych przypadkach dane są dostarczane przez MM.
- Dane zmodyfikowane w jednej lub kilku pamięciach podręcznych z MM nie są czyste
-
- Protokół typu MOESI – Dane przechowywane w M (D) lub w O (SD) i inne pamięci podręczne w S (V)
- – Dane są wysyłane do żądającej pamięci podręcznej od „właściciela” M (D) lub O (SD). Żądająca pamięć podręczna jest ustawiana na S (V), podczas gdy M (D) jest zmieniana na O (SD).
- – MM nie jest aktualizowany.
- Protokoły typu MESI i MEI – Dane przechowywane w stanie M (D) a pozostałe pamięci podręczne w stanie S (V)
- – Istnieją dwa rozwiązania:
- – Dane są wysyłane z pamięci podręcznej M (D) do żądającej pamięci podręcznej, a także do MM (np. Illinois , Pentium (R) II )
- – Operacja jest wykonywana w dwóch krokach: transakcja żądająca jest zatrzymywana, dane są wysyłane z pamięci podręcznej M (D) do MM, następnie transakcja oczekiwania może być kontynuowana i dane są odczytywane z MM (np. protokół MESI i MSI Synapse ).
- – Wszystkie pamięci podręczne są ustawione na S (V)
-
- Trafienie zapisu
- – Dane są zapisywane w pamięci podręcznej
- – Istnieje kilka sytuacji:
-
- Pamięć podręczna w S (V) lub R/F lub O (SD) (udostępnianie)
-
– Unieważnienie zapisu
-
– Kopiowanie wsteczne
- – Dane są zapisywane w pamięci podręcznej i transakcja unieważniająca jest wysyłany do magistrali w celu unieważnienia wszystkich pozostałych pamięci podręcznych
- – Pamięć podręczna jest ustawiona M (D)
- – Jednorazowy zapis ( Write-Once , Bull HN ISI )
- – Dane są zapisywane w pamięci podręcznej iw MM, co powoduje unieważnienie wszystkich pozostałych pamięci podręcznych. Pamięć podręczna jest ustawiona R (E)
-
– Kopiowanie wsteczne
- – Zapis rozgłaszania (np. Firefly , Dragon )
- – Dane są zapisywane w pamięci podręcznej, a transakcja rozgłaszania jest wysyłana do magistrali w celu aktualizacji wszystkich innych pamięci podręcznych posiadających kopię
- – Pamięć podręczna jest ustawiona na M (D ) jeśli „linia wspólna” jest wyłączona, w przeciwnym razie jest ustawiona O (SD). Wszystkie pozostałe kopie są ustawione S (V)
-
-
- Cache w stanie E (R) lub M (D) (wyłączność)
- – Zapis może odbywać się lokalnie bez żadnych innych działań. Stan jest ustawiony (lub pozostaje) M (D)
-
- Write Miss
-
– Write Allocate
-
– Read with Intent to Modified ( RWITM )
- – Podobnie jak operacja Read miss plus komenda unieważnienia, pamięć podręczna jest zapisywana (aktualizowana)
- – Pamięć podręczna żądająca jest ustawiona na M (D), wszystkie inne pamięci podręczne są unieważniane
- – Rozgłaszanie zapisu (np. Firefly , Dragon )
- – Podobnie jak w przypadku braku odczytu. Jeśli „linia wspólna” jest „wyłączona”, dane są zapisywane w pamięci podręcznej i ustawiane na M (D) , inaczej jak w przypadku Write Hit – Write Broadcasting
-
– Read with Intent to Modified ( RWITM )
-
– Write-no-Allocate
- – Dane są wysyłane do MM lub jak w protokole Bull HN ISI , tylko do pamięci podręcznej D (M) lub SD (O), jeśli są, z pominięciem skrytka.
-
– Write Allocate
Protokoły spójności
- – ostrzeżenie – Dla uproszczenia wszystkie transakcje w stanie odczytu i zapisu „chybione”, które oczywiście pochodzą ze stanu I (lub znacznika chybienia), na diagramach nie są pokazane. Są one przedstawione bezpośrednio na nowym stanie.
- – Uwaga – Wiele z poniższych protokołów ma jedynie wartość historyczną. Obecnie głównymi używanymi protokołami są typ R-MESI / MESIF i HRT-ST-MES (typ MOESI) lub ich podzbiór.
——————————————————————————————————
protokół MESI
Stany MESI = DRVI
- – Wykorzystanie „wspólnej linii” magistrali do wykrywania „wspólnej” kopii w innych pamięciach podręcznych
- Operacje procesora
- Odczyt Miss
- Istnieją dwie alternatywne implementacje: standardowa MESI (bez interwencji) i rozszerzona MESI (z interwencją)
- 1 – MESI „bez interwencji” ( np. PowerPC 604 )
- – Jeśli w pamięci podręcznej znajduje się kopia M , transakcja jest zatrzymywana i czeka się, aż pamięć podręczna M zaktualizuje MM, wtedy transakcja może być kontynuowana, a dane są odczytywane z MM. Obie pamięci podręczne są ustawione na S
- – w innym przypadku dane są odczytywane z MM. Jeśli „linia wspólna” jest „włączona”, pamięć podręczna jest ustawiona S w przeciwnym razie E
- 2 – MESI „Interwencja” z M i E (np. Pentium (R) II ) – Jeśli
- w pamięci podręcznej znajduje się kopia M lub E (wyłączność) , dane są dostarczane do żądającej pamięci podręcznej z M lub z E (interwencja). Jeśli wysyłająca pamięć podręczna to M , dane są również zapisywane w tym samym czasie w MM (kopia wsteczna). Wszystkie pamięci podręczne są ustawione na S
- – w przeciwnym razie dane są odczytywane z MM. Jeśli „linia wspólna” jest „włączona”, pamięć podręczna jest ustawiona S w innym przypadku E
- Trafienie zapisu
- – jeśli pamięć podręczna to M lub E (wyłączność), zapis może odbywać się lokalnie bez żadnych innych działań
- – w przeciwnym razie dane są zapisywane w pamięci podręcznej i transakcja unieważniająca jest wysyłana do magistrali w celu unieważnienia wszystkich innych pamięci podręcznych
- – Pamięć podręczna jest ustawiona M
- Transakcje magistrali
- Bus Read
- – jeśli M i „no Intervention” dane są wysyłane do MM (Copy Back)
- – jeśli M i „Intervention” dane są wysyłane do żądającej pamięci podręcznej i do MM (Copy Back)
- – jeśli E (*) i „Interwencja” danych wysłanych do żądającej pamięci podręcznej
- – Stan zmienia się (lub pozostaje) w S
-
- Bus Odczyt – ( RWITM )
- – Podobnie jak w przypadku „Odczyt magistrali”
- – Pamięć podręczna jest ustawiona na „Nieprawidłowy” ( I )
-
-
- Bus Invalidate Transaction
- Pamięć podręczna jest ustawiony jako „Nieważny” ( I )
-
- Operacje
- – Zapis Przydziel
- – Interwencja : od M – E (*)
- – Zapis unieważnia
- – Kopiowanie wsteczne : M zamiana
- (*) – rozszerzony MESI
——————————————————————————————————
protokół MOESI
Stany MEOSI = DR-SD-VI = T-MESI IBM
- – Wykorzystanie „wspólnej linii” magistrali do wykrywania „wspólnej” kopii w innych pamięciach podręcznych
- Operacje procesora
-
- Brak odczytu
- – Jeśli w innej pamięci podręcznej znajduje się kopia M , O lub E (*), dane są dostarczane przez tę pamięć podręczną (interwencja). Żądająca pamięć podręczna jest ustawiona na S , M jest zmieniane na O i E na S
- – w innym przypadku dane są odczytywane z MM.
- – Jeśli „linia wspólna” jest ustawiona na „włączone”, żądająca pamięć podręczna jest ustawiona S w przeciwnym razie E
-
-
- Trafienie zapisu
- – Jeśli pamięć podręczna ma wartość M lub E (wyłączność), zapis może odbywać się lokalnie bez żadnych innych działań
- – w innym przypadku O lub S (udostępnianie) transakcja „Unieważnienie” jest wysyłana do magistrali w celu unieważnienia wszystkich innych pamięci podręcznych.
- – Pamięć podręczna jest ustawiona (lub pozostaje) M
-
-
- Write Miss
- – Operacja RWITM jest wysyłana do magistrali
- – Dane są dostarczane od „właściciela” lub z MM jak w przypadku Read Miss, następnie pamięć podręczna jest zapisywana (aktualizowana)
- – Pamięć podręczna jest ustawiana M i wszystkie inne pamięci . I
-
-
- podręczne są ustawione
- — jeśli pamięć podręczna to M , O lub E (*), dane są wysyłane do żądającej pamięci podręcznej (interwencja). Jeśli pamięć podręczna to E , stan zmienia się w S , w przeciwnym razie jest ustawiany (lub pozostaje) O
- – w przeciwnym razie stan jest zmieniany lub pozostaje w S
-
- Transakcje magistrali Odczyt magistrali
-
- Bus Odczyt – ( RWITM )
- – Jeśli pamięć podręczna to M lub O lub E (*) dane są wysyłane do magistrali (Interwencja)
- – Pamięć podręczna jest ustawiona na „Nieprawidłowy” ( I )
-
-
- Magistrala Unieważnia transakcję
- – Pamięć podręczna jest ustawiona na „Nieprawidłowy” ( I )
-
- Operacje
- Napisz Przydziel
- Interwencja : z MOE (*)
- Napisz unieważnić
- Kopia zwrotna : wymiana MO
- – (*) implementacja w zależności od E
——————————————————————————————————
protokół stanu Illinois
Stany MESI = DRVI
- – Charakterystyka:
- – Jest rozszerzeniem protokołu MESI
- – Wykorzystanie priorytetu sieciowego do współdzielonej interwencji (interwencja na współdzielonych danych)
- – Różnice w stosunku do MESI: oprócz E i M , interwencja również z S (patrz Read Miss – punkt 1 )
- Operacje
- - Zapis Alokacja
- - Interwencja : z MES
- - Unieważnienie zapisu
- - Kopiowanie zwrotne : M zamiana
——————————————————————————————————
Protokół jednokrotnego zapisu (lub zapisu pierwszego).
Stany DRVI (MESI)
- – Charakterystyka:
- – Brak użycia „linia współdzielona” (protokół dla standardowej lub niemodyfikowalnej magistrali)
- – Zapis przez pierwsze trafienie zapisu w stanie V , a następnie kopiowanie wsteczne
- Operacje procesora
- Odczyt chybiony
- – Jeśli w innej pamięci podręcznej znajduje się kopia D , dane jest dostarczany przez tę pamięć podręczną (interwencja) i jednocześnie jest zapisywany również w MM (Copy-Back).
- – w przeciwnym razie dane są odczytywane z MM
- – wszystkie pamięci podręczne są ustawione V
-
- Zapis Hit
- – Jeśli pamięć podręczna jest D lub R (wyłączność), zapis może odbywać się lokalnie bez żadnej innej akcji, a stan jest ustawiony (lub pozostaje) D
- – w przeciwnym razie V (First Write Hit) dane są zapisywane w pamięci podręcznej iw MM (Write Through) unieważniając wszystkie inne pamięci podręczne (Write-Invalidate). – Pamięć podręczna jest ustawiona R
-
-
- Brak zapisu
- – podobnie jak brak odczytu, ale z poleceniem „unieważnienia” ( RWITM ) plus trafienie zapisu w stanie D (aktualizacja). Pamięć podręczna jest ustawiona na D , a wszystkie inne pamięci podręczne są ustawione na „Nieprawidłowy” ( I )
-
- – Uwaga – Zapis przez jest wykonywany tylko w trybie „Write Miss”. Należy zaznaczyć, że w tym przypadku transakcja magistrali w każdym przypadku jest potrzebna do unieważnienia innych pamięci podręcznych, a zatem można wykorzystać ten fakt do aktualizacji również MM. Zamiast tego w „Write Hit” nie jest potrzebna żadna więcej transakcja, więc „Write Through” stałaby się bezużyteczną operacją w przypadku ponownej aktualizacji pamięci podręcznej.
- Transakcje magistrali
-
- Odczyt magistrali
- — jeśli pamięć podręczna to D , dane są wysyłane do żądającej pamięci podręcznej (interwencja) i do MM (kopiowanie zwrotne). Pamięć podręczna jest ustawiona V
- – w przeciwnym razie stan jest zmieniony lub pozostaje w V
-
-
- Odczyt magistrali – ( RWITM )
- – Jeśli pamięć podręczna to D , dane są wysyłane do magistrali (Interwencja)
- – Pamięć podręczna jest ustawiona na „Invalid” ( I )
-
-
- Bus Invalidate Transakcja
- — pamięć podręczna jest ustawiona jako „Nieprawidłowa” ( I )
-
- Operacje
- Napisz Przydziel
- Interwencja : od D
- Write Through : pierwsze trafienie zapisu w stanie V
- Napisz unieważnić
- Kopia zwrotna : wymiana D
——————————————————————————————————
Protokół Bull HN ISI
(Bull-Honeywell Italia)
Stany D-SD-RVI (MOESI) Opatentowany protokół (F. Zulian)
- – Charakterystyka:
- – Rozszerzenie MOESI protokołu Write-Once
- - Write-no-allocate on miss z aktualizacją D lub SD
- - Brak użycia RWITM
- - Brak użycia "shared line"
- Operacje procesora
-
- Brak odczytu
- - Jak w przypadku MOESI z "Shared Line" " "on" i interwencja tylko od "właściciela" D lub SD , ale nie od R
-
-
- Write Hit
- - Jeśli pamięć podręczna to D lub R , jak w przypadku MOESI, zapis może odbywać się lokalnie bez żadnych innych działań. Pamięć podręczna jest ustawiona (lub pozostaje) D
- - Jeśli SD lub V (pierwszy zapis), podobnie jak w przypadku Jednokrotnego zapisu , dane są zapisywane w pamięci podręcznej i w MM (Write Through), unieważniając wszystkie inne pamięci podręczne (Write-Invalidate) – The pamięć podręczna jest ustawiona R
-
- - Brak zapisu
- - Dane są wysyłane do magistrali z pominięciem pamięci podręcznej (Write-no-allocate)
- - Jeśli istnieje kopia „właściciela” D lub SD , „właściciel” jest aktualizowany (patrz Write-no- Przydziel — aktualizacja właściciela ), podczas gdy inne pamięci podręczne są unieważniane. „Właściciel” jest ustawiony (lub pozostaje) D . Pamięć pozostaje „brudna”
- - w przeciwnym razie dane są wysyłane do MM, unieważniając wszystkie inne pamięci podręczne (Write-Invalidate)
- - Brak zapisu
- Transakcje magistrali
- Odczyt magistrali
- - jak w przypadku MOESI z interwencją tylko od „właściciela” Odczyt magistrali D lub SD
-
- (zapis aktualizacja / zapis niepoprawny )
- - Jeśli pamięć podręczna to D lub SD , pamięć podręczna jest aktualizowana, w przeciwnym razie jest ustawiona na „Nieprawidłowy” ( I )
-
- Operacje
- Zapis bez przydzielania : w przypadku chybienia
- Napisz aktualizację : na miss
- Write Through : pierwszy zapis, a następnie kopiowanie z powrotem
- Zapisz aktualizację / Unieważnij zapis
- Interwencja : od SD-D
- Kopia zwrotna : wymiana D lub wymiana karty SD z unieważnieniem
- obs. - Jest to jedyny protokół obsługujący transakcje OE (SD-R), a także jedyny, który korzysta z opcji Write-no-allocated on miss.
——————————————————————————————————
Protokół synapsy
Stany DVI (MSI)
- - Charakterystyka:
- - Cechą charakterystyczną tego protokołu jest posiadanie jednobitowego znacznika z każdą linią pamięci podręcznej w MM, wskazującej, że pamięć podręczna ma linię w stanie D.
- - Ten bit zapobiega możliwemu wyścigowi, jeśli pamięć podręczna D nie odpowiada wystarczająco szybko, aby uniemożliwić MM odpowiedź przed aktualizacją.
- - Dane zawsze pochodzą z MM
- - Brak użycia "łączy wspólnej"
- - Cechą charakterystyczną tego protokołu jest posiadanie jednobitowego znacznika z każdą linią pamięci podręcznej w MM, wskazującej, że pamięć podręczna ma linię w stanie D.
- Operacje procesora
- Brak odczytu
- - Jeśli w innej pamięci podręcznej znajduje się kopia D , transakcja odczytu jest odrzucana (brak potwierdzenia). Kopia D jest zapisywana z powrotem do MM i zmienia swój stan w V , następnie żądająca pamięć podręczna ponownie wysyła nową transakcję odczytu i dane są odczytywane z MM.
- - w innym przypadku dane są odczytywane z MM.
- - Pamięć podręczna jest ustawiona V
-
- Hit zapisu
- - Jeśli pamięć podręczna to D , zapis może odbywać się lokalnie bez żadnych innych działań.
- - else V , podobnie jak Read Miss robi, w tym transfer danych z pamięci z dodatkowo poleceniem unieważnienia ( RWITM ). Odbywa się to tylko w celu unieważnienia innych V , ponieważ ten protokół nie obsługuje transakcji unieważniania.
- - Pamięć podręczna jest ustawiona D . Wszystkie inne kopie pamięci podręcznej są ustawione jako „Nieprawidłowe” ( I )
-
-
- Write Miss ( RWITM )
- - Podobnie jak w przypadku Read Miss, ale z poleceniem unieważnienia. Linia pamięci podręcznej pochodzi z MM, następnie pamięć podręczna jest zapisywana (aktualizowana). Pamięć podręczna jest ustawiona D . Wszystkie inne pamięci podręczne są ustawione jako „Nieprawidłowe” ( I ).
-
- Transakcje magistrali
-
- Odczyt magistrali
- — jeśli pamięć podręczna to D , dane są wysyłane do MM (Kopiuj wstecz). Pamięć podręczna jest ustawiona V
- - w przeciwnym razie stan pozostaje w V
-
-
- Bus Read ( RWITM )
- - Jeśli pamięć podręczna to D , dane są wysyłane do MM (Copy Back)
- - Pamięć podręczna ( D lub V ) jest ustawiona na „Nieprawidłowy” ( I )
-
- Operacje
- Napisz Przydziel
- Interwencja : brak interwencji
- Unieważnienie zapisu : ( RWITM )
- Nie Unieważnij transakcję
- Kopia zwrotna : wymiana D
——————————————————————————————————
Protokół Berkeleya
Stany D-SD-VI (MOSI)
- - Charakterystyka:
- - Jak w przypadku MOESI bez stanu E
- - Brak użycia "łączy wspólnej"
- Operacje procesora
-
- Odczyt Miss
- - Dane dostarczane są przez "właściciela", czyli z D lub z SD lub z MM. D jest zmieniane w SD
- - Pamięć podręczna jest ustawiona V
-
-
- Trafienie zapisu
- - Jeśli pamięć podręczna to D (wyłączność), zapis może odbywać się lokalnie bez żadnych innych działań
- - w przeciwnym razie ( SD lub V ), transakcja „Unieważnienie” jest wysyłana na bus, aby unieważnić inne pamięci podręczne.
- - Pamięć podręczna jest ustawiona (lub pozostaje) D
-
-
- Write Miss
- - Operacja RWITM jest wysyłana na magistralę
- - Podobnie jak w przypadku Read Miss, dane pochodzą od "właściciela", D lub SD lub z MM, następnie pamięć podręczna jest aktualizowana
- - Pamięć podręczna jest ustawiony D. wszystkie inne pamięci podręczne są ustawione I
-
- Transakcje magistrali
-
- Odczyt magistrali
- — jeśli pamięć podręczna to D lub SD , dane są wysyłane do żądającej pamięci podręcznej (interwencja). Pamięć podręczna jest ustawiona (lub pozostaje) w SD
- - w przeciwnym razie pamięć podręczna pozostaje w V
-
-
- Bus Odczyt – ( RWITM )
- - Jeśli pamięć podręczna to D lub SD , dane są wysyłane do magistrali (Interwencja)
- - Pamięć podręczna jest ustawiona jako „Nieprawidłowa” ( I )
-
-
- Bus Invalidate Transaction
- - Pamięć podręczna jest ustawiona jako „Nieprawidłowa” ( I )
-
- Operacje
- Napisz Przydziel
- Interwencja : od D-SD
- Napisz unieważnić
- Kopiowanie wsteczne : zamiennik D-SD
——————————————————————————————————
Protokół Firefly (DEC).
Stany D-VE-S (MES)
- - Charakterystyka:
- - Brak stanu "Invalid"
- - "Write-broadcasting" + "Write Through"
- - Użycie "lini wspólnej"
- - "Write-broadcasting" pozwala uniknąć konieczności stanu "Invalid"
- - Jednoczesna interwencja ze wszystkich pamięci podręcznych (współdzielonych i brudna interwencja – na niezmodyfikowanych danych zmodyfikowanych)
- - Ten protokół wymaga synchronicznej magistrali
- Operacje procesora
-
- Odczyt Miss
- - Każdy inny cache jest „właścicielem”, czyli wszystkie inne cache z kopią dostarczoną jednocześnie data na magistrali (jednoczesna interwencja – taktowanie magistrali jest ustalone tak, aby wszystkie odpowiadały w tym samym cyklu), w przeciwnym razie dane są dostarczane z MM.
- - Jeśli istnieje pamięć podręczna D , dane są jednocześnie wysyłane również do MM (Kopiuj z powrotem)
- - Jeśli w innych pamięciach podręcznych znajdują się kopie, „Linia wspólna” jest ustawiona na „on”
- - Jeśli „Linia wspólna” jest „włączona” wszystkie pamięci podręczne są ustawione S w przeciwnym razie pamięć podręczna żądająca jest ustawiona VE .
-
-
- Write Hit
- - Jeśli pamięć podręczna to D lub VE (wyłączność), zapis może odbywać się lokalnie bez żadnych innych działań, a pamięć podręczna jest ustawiona na D
- - w przeciwnym razie S , do magistrali wysyłane jest „rozgłaszanie zapisu”, aby zaktualizować wszystkie inne pamięci podręczne i MM (Write Through)
- - Jeśli w innej pamięci podręcznej znajduje się kopia, „Wspólna linia” jest ustawiona na „włączone”. Jeśli „Linia wspólna” jest wyłączona, pamięć podręczna jest ustawiona. VE w przeciwnym razie wszystkie pamięci podręczne są ustawione. S
-
-
- Brak zapisu
- — operacja składa się z dwóch kroków. Przeczytaj Miss, a następnie napisz Hit.
- - Jeśli dane pochodzą z pamięci podręcznej (Linia współdzielona „on”), do magistrali wysyłane jest „Write-broadcasting” w celu aktualizacji wszystkich pozostałych pamięci podręcznych i MM (Write Through). Wszystkie pamięci podręczne są ustawione S
- - w przeciwnym razie pamięć D
-
-
- podręczna jest ustawiona
- - W przypadku trafienia ( D lub VE lub S ) dane są wysyłane na magistralę (interwencja), aw przypadku D dane są zapisywane również w MM. Pamięć podręczna jest ustawiona S
-
- Transakcje magistrali Odczyt magistrali
-
- Bus Read
- - Jeśli trafi ( D lub VE lub S ) dane są wysyłane do magistrali (Interwencja).
- - Wszystkie pamięci podręczne są ustawione S
-
-
- Write Broadcasting
- - Pamięć podręczna jest aktualizowana o nowe dane. Stan pozostaje S
-
- Operacje
- Napisz Przydziel
- Interwencja : z D-VE-S (ze wszystkich „ważnych” skrytek)
- Write-broadcasting - Napisz poprzez
- Kopiowanie zwrotne : wymiana D i przy każdej transakcji z pamięcią podręczną D
——————————————————————————————————
Protokół Dragon (Xerox).
Stany D-SD-VE-SC (MOES)
Uwaga – stan SC , pomimo określenia „czysty”, może być „czysty” lub „brudny” jak stan S pozostałych protokołów. SC i S są odpowiednikami
- - Charakterystyka:
- - Brak stanu „Invalid”
- - „Write-broadcasting” (brak „Write Through”)
- – Wykorzystanie „wspólnej linii”
- – „Write-broadcasting” pozwala uniknąć konieczności stanu „Invalid”
- Operacje procesora
-
- Odczyt Miss
- - Dane jest dostarczany przez „właściciela”, czyli od D lub od SD lub od MM. D jest zmieniane w SD
- - Jeśli „linia wspólna” jest „włączona”, pamięć podręczna jest ustawiona SC w przeciwnym razie VE
-
-
- Write Hit
-
– Jeśli pamięć podręczna to D lub VE (wyłączność), zapis może odbywać się lokalnie bez żadnych innych działań. Pamięć podręczna jest ustawiona (lub pozostaje) D
- - w przeciwnym razie SD lub SC (udostępnianie) dane są zapisywane w pamięci podręcznej, a do magistrali wysyłane jest „Write-broadcasting” w celu aktualizacji wszystkich innych pamięci podręcznych – MM nie jest aktualizowany (brak zapisu przez)
- - Jeśli w innej pamięci podręcznej znajduje się kopia, „Linia wspólna” jest ustawiona na „on”
- - Jeśli „Linia wspólna” jest „włączona”, pamięć podręczna jest ustawiona SD , w przeciwnym razie D . Wszystkie inne możliwe kopie pamięci podręcznej są ustawione. SC
-
-
- Zapis Miss
- - Podobnie jak w przypadku Read Miss, dane pochodzą od „właściciela”, D lub SD lub z MM, następnie pamięć podręczna jest aktualizowana
- - Jeśli w innej pamięci podręcznej znajduje się kopia, „ Linia wspólna” jest ustawiona na „włączone”.
- - Jeśli „Linia wspólna” jest „włączona”, zaktualizowane dane są przesyłane do innych pamięci podręcznych, a stan jest ustawiony na SD . Wszystkie pozostałe pamięci podręczne są ustawione na SC
- — w innym przypadku pamięć podręczna to D
-
- Transakcje magistrali
-
— Odczyt magistrali
- — jeśli pamięć podręczna to D lub SD , dane są wysyłane do żądającej pamięci podręcznej (interwencja). Pamięć podręczna jest ustawiona (lub pozostaje) SD
- — w przeciwnym razie pamięć podręczna pozostaje SC
-
— Odczyt magistrali
-
- Bus Odczyt
- — jeśli pamięć podręczna to D lub SD , dane są wysyłane do magistrali (Interwencja)
- — pamięć podręczna jest ustawiona SC
-
-
- Zapis Broadcasting
- — pamięć podręczna jest aktualizowana o nowe dane. Pamięć podręczna pozostaje SC
-
- Operacje
- Napisz Przydziel
- Interwencja : z D-SD (ale nie z VE)
- Nadawanie z zapisem
- Kopiowanie wsteczne : zamiennik D-SD
——————————————————————————————————
Protokół MERSI (IBM) / MESIF (Intel).
Stany MERSI lub R-MESI Stany MESIF Opatentowane protokoły — IBM (1997) — Intel (2002)
- - MERSI i MESIF to ten sam identyczny protokół (tylko nazwa stanu jest inna, F zamiast R )
- - Charakterystyka:
- - Ta sama funkcjonalność protokołu Illinois
- - Nowy stan R (Recent) / F (Forward) to " właściciel " dla danych „shared-clean” (z aktualizacją MM).
- - „Współdzielona własność” (w przypadku czystych danych) nie jest przypisywana przez priorytet sieci, jak w Illinois , ale jest zawsze przypisywana do ostatniej pamięci podręcznej z odczytem Miss, ustawiając jej stan R / F
- – „Własność” jest tymczasowo luzowana w przypadku wymiany R / F. „Własność” jest ponownie przypisywana do następnej Miss Read z pamięciami podręcznymi „wspólnie czystymi”
- - Użycie „wspólnej linii”
- Operacje
- Napisz Przydziel
- Interwencja : od MER/F
- Napisz unieważnić
- Kopia zwrotna : zamiennik M
——————————————————————————————————
MESI kontra MOESI
MESI i MOESI to najpopularniejsze protokoły
Powszechnie uważa się, że MOESI jest rozszerzeniem protokołu MESI i dlatego jest bardziej wyrafinowany i wydajniejszy. Jest to prawdą tylko w porównaniu ze standardowym MESI, czyli MESI z „interwencją bez dzielenia się”. MESI z „dzieloną interwencją”, podobnie jak MESI Illinois lub równoważne 5-stanowe protokoły MERSI / MESIF , są znacznie bardziej wydajne niż protokół MOESI .
W MOESI operacje z pamięci podręcznej do pamięci podręcznej są wykonywane tylko na zmodyfikowanych danych. Zamiast tego w protokołach typu MESI Illinois i MERSI / MESIF operacje cache-to-cache są zawsze wykonywane zarówno z danymi czystymi, jak i zmodyfikowanymi . W przypadku zmodyfikowanych danych ingerencji dokonuje „właściciel” M, ale własność nie zostaje utracona, ponieważ jest migrowana do innej pamięci podręcznej (pamięć podręczna R/F w MERSI / MESIF lub wybrana pamięć podręczna typu Illinois ). Jedyna różnica polega na tym, że MM musi zostać zaktualizowany. Ale również w MOESI transakcję tę należy wykonać później w przypadku wymiany, jeśli w międzyczasie nie nastąpi żadna inna modyfikacja. Jest to jednak mniejszy limit w porównaniu do transakcji pamięciowych ze względu na brak ingerencji, jak w przypadku czystych danych dla protokołu MOESI. (patrz np. „Ocena wyników między MOESI (Szanghaj) a MESIF Nehalem-EP”)
Najbardziej zaawansowane systemy używają tylko protokołu R-MESI / MESIF lub bardziej kompletnych protokołów RT-MESI , HRT-ST-MESI i POWER4 IBM , które są udoskonalonym połączeniem protokołów MESI i MOESI
Uwaga: Cache-to-cache to wydajne podejście w systemach wieloprocesorowych/wielordzeniowych bezpośrednio połączonych między nimi, ale mniej w przypadku zdalnej pamięci podręcznej, jak w systemach NUMA , w których preferowany jest standardowy MESI . Przykład w protokole POWER4 IBM „wspólna interwencja” jest wykonywana tylko „lokalnie”, a nie między zdalnymi modułami.
——————————————————————————————————
protokół RT-MESI
Stany RT-MESI opatentowany protokół IBM
- Charakterystyka:
- - Połączenie MESI i MOESI
- - Shared Intervention + Dirty Intervention (zarówno na czystych, jak i brudnych danych)
- - Ta sama funkcjonalność protokołu R-MESI z nowym stanem T = Tagged, odpowiednik stanu O
- - Migracja „Dirty-Owner”
- - The „właściciel” (zarówno współdzielony, jak i brudny) jest zawsze ostatnią żądającą pamięcią podręczną (nowy „właściciel” ( LRU ) ma mniejsze prawdopodobieństwo szybkiego zwolnienia w porównaniu ze starym)
- - „właściciele” to T , M , E , R (wszystkie z wyjątkiem S )
- - Korzystanie z „wspólnej linii”
Operacje procesora
-
- Odczyt Miss
- - Jeśli w innej pamięci podręcznej znajduje się kopia M lub T (brudna własność), dane są dostarczane przez tę pamięć podręczną (interwencja brudna). Żądająca pamięć podręczna jest ustawiona na T , a poprzednie M lub T są zmieniane w S
- - Jeśli w innej pamięci podręcznej znajduje się kopia E lub R (własność współdzielona), dane są dostarczane przez tę pamięć podręczną (interwencja współdzielona). Żądanie danych jest ustawione R i E lub R są zmieniane w S
- - w innym przypadku dane są odczytywane z MM i pamięć podręczna jest ustawiana R .
-
-
- Write Hit
- - Jeśli pamięć podręczna to M lub E (wyłączność), zapis może odbywać się lokalnie bez żadnych innych działań
- - w innym przypadku T , R lub S (udostępnianie) transakcja „Unieważnienie” jest wysyłana do magistrali w celu unieważnienia wszystkich innych pamięci podręcznych .
- - Pamięć podręczna jest ustawiona (lub pozostaje) M i wszystkie inne pamięci podręczne są ustawione I
-
-
- Napisz brak
- - Operacja RWITM jest wysyłana na magistralę
- - Dane są dostarczane od „właściciela” lub z MM jak przy Odczycie Miss, następnie dane są zapisane (zaktualizowane) w pamięci podręcznej.
- - Pamięć podręczna jest ustawiona jako M , a wszystkie inne pamięci podręczne są ustawione I
-
- Transakcje magistrali
-
- Odczyt magistrali
- - Jeśli pamięć podręczna to T , M , R lub E , dane są wysyłane do żądającej pamięci podręcznej (interwencja).
- - Pamięć podręczna jest ustawiona (lub pozostaje) w S
-
-
- Bus Odczyt – ( RWITM )
- - Jeśli pamięć podręczna to T lub M lub R lub E , dane są wysyłane do żądającej pamięci podręcznej (interwencja)
- - Pamięć podręczna jest ustawiona jako „Nieprawidłowa” ( I )
-
-
- Bus Invalidate Transaction
- — pamięć podręczna jest ustawiona jako „Nieprawidłowa” ( I )
-
- Operacje
- Napisz Przydziel
- Interwencja : z TMRE
- Napisz unieważnić
- Kopia zwrotna : wymiana TM
——————————————————————————————————
Protokół RT-ST-MESI
Jest to ulepszenie protokołu RT-MESI i jest podzbiorem protokołu HRT-ST-MESI
- S T = Shared-Tagged
- - Użycie stanu "Shared-Tagged" pozwala na utrzymanie interwencji po zwolnieniu linii pamięci podręcznej Tagged
- - W przypadku zamiany T (dezalokacji linii pamięci podręcznej) dane muszą zostać zapisane z powrotem do MM i tak stracić „własność”. Aby tego uniknąć, można zastosować nowy stan ST . W Read Miss poprzednie T jest ustawione na ST zamiast S . S T jest kandydatem do zastąpienia własności w przypadku cofnięcia alokacji T. Transakcja T „Copy back” jest zatrzymywana (brak aktualizacji MM) przez pamięć podręczną ST , która zmienia swój stan w T . ST W przypadku nowego odczytu z innej pamięci podręcznej, ta ostatnia jest ustawiana jako T ST , poprzednia T jest zmieniana w , a poprzednia jest zmieniana w S.
Dodatkową poprawę można uzyskać, stosując , więcej , niż , stan STn ST ST1 ST2 … .
- - W Read Miss, T jest zmieniane w S T1 i wszystkie indeksy pozostałych S Ti są zwiększane o "1.
- - W przypadku dealokacji T , S T1 zatrzymuje transakcję "Copy Back", zmienia swój stan w T i wszystkie indeksy pozostałych S Ti zmniejszają się o „1”
- - W przypadku dealokacji, np. S Tk , łańcuch zostanie przerwany i wszystkie S Ti o indeksie większym od „k” zostaną automatycznie poluzowane względem S T i będą de facto uważane tylko za proste stany S ST1 również wtedy, gdy zostaną ustawione jako ST mamy . Wszystko to dlatego, że tylko ST1 Na przykład, jeśli interweniuje blokując i zastępując się T. sytuację typu T , , S T3 , S T4 z S T2 zastąpione, jeśli T zostanie zastąpione nową sytuacją będzie T , S T2 , S T3 bez S T1 .
——————————————————————————————————
protokół HRT-ST-MESI
IBM opatentował pełny protokół HRT-ST-MESI
- Stan I = Nieprawidłowy znacznik (*) – Nieprawidłowe dane - Stan H = Ważny znacznik – Nieprawidłowe dane
- Stan I jest ustawiany podczas inicjalizacji pamięci podręcznej, a jego stan zmienia się dopiero po chybieniu odczytu lub zapisu procesora. Po tym nie wróci więcej w tym stanie.
- H ma taką samą funkcjonalność jak stan I , ale dodatkowo z możliwością przechwytywania dowolnej transakcji magistrali, która pasuje do znacznika katalogu i aktualizowania pamięci podręcznej danych.
- Po pierwszym użyciu I zostaje zastąpione przez H w swoich funkcjach
- - Główne funkcje to:
- - Write Back
- - Interwencja zarówno w udostępnianie czystych, jak i brudnych danych – z TMRE
- - Rezerwowe stany Tagged (Shared-Tagged)
- - Nieprawidłowy stan H (Hover) auto-aktualizacja
(*) – Uwaga: Znacznik do definicji jest zawsze ważny, ale do pierwszej aktualizacji linii pamięci podręcznej jest uważany za nieważny, aby uniknąć aktualizacji pamięci podręcznej również wtedy, gdy ta linia nie była jeszcze wymagana i używana.
——————————————————————————————————
Protokół POWER4 IBM
Stany MT-Me-SI -Mu-S L = RT-MESI+Mu
- - Korzystanie z „wspólnej linii”
- Stosowany w systemach wielordzeniowych/modułowych – multi cache L2
- Ten protokół jest równoważny z protokołem RT-MESI dla systemów z wieloma pamięciami podręcznymi L2 w systemach wielomodułowych
-
- S L - „Shared Last” odpowiednik R w RT-MESI
- Ja – „Ważna na wyłączność” = E
- Mu – niezamówiony zmodyfikowany stan
- - stan specjalny – prośba o rezerwację podwójnego słowa ładowania i przechowywania (dla implementacji 64-bitowych)
- „Wspólna interwencja” z S L jest wykonywana tylko między pamięciami podręcznymi L2 tego samego modułu
- „Brudna interwencja” z T jest wykonywana tylko między pamięciami podręcznymi L2 tego samego modułu
- Operacje
- — Zapis Alokacja
- — Interwencja : z MT-VE-S L = MOES L
- — Unieważnienie zapisu
- — Kopiowanie zwrotne : Zastąpienie MT
- — Uwaga: T i S L — Interwencja tylko w module ustawień regionalnych
——————————————————————————————————
Ogólne uwagi dotyczące protokołów
W pewnych warunkach najbardziej wydajnym i kompletnym protokołem okazuje się protokół HRT-ST-MESI .
- - Zapis zwrotny
- - Interwencja zarówno w przypadku brudnych, jak i wspólnych czystych danych
- - Zarezerwuj stany stanu Tagged (Shared-Tagged)
- - Nieprawidłowa automatyczna aktualizacja stanu H (Hover)