2013-02-05 22 views
5

Mam podstawowe pytanie dotyczące polityki przestrzeganej przez system pamięci.Eksmisja cache z L1 cache na L2 eksmisji

Rozważ rdzeń z prywatnymi pamięciami podręcznymi L1 i L2. Po pamięci podręcznej L2 mamy magistralę, na której działa ruch koherentny. Teraz, jeśli linia pamięci podręcznej adresu (X) zostanie wyeksmitowana z pamięci podręcznej L2, czy konieczne jest usunięcie tego adresu z pamięci podręcznej L1?

Powodem eksmisji może być to, że pomaga w zachowaniu niezmiennej protokołu koherencji [jeżeli linia L2 wskazuje nieważne rdzeniowe nie zawierają tego adresu].

Odpowiedz

10

Istnieje three different designs i wszystkie są używane.

  1. Ekskluzywne: dane w pamięci podręcznej L1 nigdy nie znajdują się w pamięci podręcznej L2. Dane w pamięci podręcznej L2 nigdy nie są w pamięci podręcznej L1.

  2. Włącznie: Dane w pamięci podręcznej L1 muszą również znajdować się w pamięci podręcznej L2.

  3. Ani: dane w pamięci podręcznej L1 mogą, ale nie muszą znajdować się w pamięci podręcznej L2.

Każda z nich ma zalety i wady. Schemat włączający pozwala na ignorowanie pamięci podręcznej L1 przez protokół koherencji pamięci podręcznej - jeśli dane nie znajdują się w pamięci podręcznej L2, nie znajduje się on w pamięci podręcznej L1. Jednak ekskluzywny schemat najbardziej efektywnie wykorzystuje cenną pamięć podręczną.

Wzory inkluzywne stają się coraz popularniejsze, ponieważ szybsza synchronizacja między rdzeniami staje się ważniejsza niż nieznacznie większe efektywne rozmiary pamięci podręcznej.

+0

Mam wątpliwości co do rozmiaru linii. możesz wyjaśnić to samo http://stackoverflow.com/questions/14707803/line-size-of-l1-and-l2-caches –

+0

Czy możesz podać kilka dalszych uwag na ten temat: "Projekty z włączeniem są coraz bardziej popularne, ponieważ są szybsze synchronizacja między rdzeniami staje się ważniejsza niż posiadanie nieco większych efektywnych rozmiarów pamięci podręcznej "? – rkioji