Jak ważna jest pamięć podręczna L3 dla procesorów AMD?

Rzeczywiście, sensowne jest wyposażenie procesorów wielordzeniowych w dedykowaną pamięć, która będzie współdzielona przez wszystkie dostępne rdzenie. W tej roli szybka pamięć podręczna L3 może znacznie przyspieszyć dostęp do najczęściej żądanych danych. Wtedy rdzenie, jeśli będzie taka możliwość, nie będą musiały mieć dostępu do wolnej pamięci głównej (RAM, RAM).

Przynajmniej w teorii. Ostatnio AMD ogłosił procesor Athlon II X4, czyli model Phenom II X4 bez pamięci podręcznej L3, dając do zrozumienia, że ​​nie jest to konieczne. Zdecydowaliśmy się bezpośrednio porównać dwa procesory (z pamięcią podręczną L3 i bez niej), aby zobaczyć, jak pamięć podręczna wpływa na wydajność.

Kliknij na zdjęcie, aby powiększyć.

Jak działa pamięć podręczna?

Zanim przejdziemy do testów, ważne jest, aby zrozumieć podstawy. Zasada działania pamięci podręcznej jest dość prosta. Pamięć podręczna buforuje dane jak najbliżej rdzeni przetwarzania procesora, aby zredukować żądania procesora do bardziej odległej i wolniejszej pamięci. Na nowoczesnych platformach stacjonarnych hierarchia pamięci podręcznej obejmuje aż trzy poziomy poprzedzające dostęp do pamięć o dostępie swobodnym. Ponadto pamięci podręczne drugiego, aw szczególności trzeciego poziomu służą nie tylko do buforowania danych. Ich celem jest zapobieganie przeciążeniu magistrali procesora, gdy rdzenie muszą wymieniać informacje.

Trafienia i chybienia

Skuteczność architektury pamięci podręcznej mierzy się procentem trafień. Żądania danych, które mogą być spełnione przez pamięć podręczną, są uważane za trafienia. Jeśli ta pamięć podręczna nie zawiera wymaganych danych, żądanie jest przekazywane dalej wzdłuż potoku pamięci i zliczane jest chybienie. Oczywiście pomyłki powodują, że uzyskanie informacji zajmuje więcej czasu. W rezultacie w potoku obliczeniowym pojawiają się „bąbelki” (przestoje) i opóźnienia. Z kolei hity pozwalają zachować maksymalną wydajność.

Pisanie w pamięci podręcznej, ekskluzywność, spójność

Zasady zastępowania określają sposób udostępniania miejsca w pamięci podręcznej dla nowych wpisów. Ponieważ dane zapisane w pamięci podręcznej muszą ostatecznie pojawić się w pamięci głównej, systemy mogą to robić w tym samym czasie, co zapis do pamięci podręcznej (zapis) lub mogą oznaczyć obszar danych jako „brudny” (zapis zwrotny) i zapisz do pamięci, gdy zostanie usunięty z pamięci podręcznej.

Dane na kilku poziomach pamięci podręcznej mogą być przechowywane wyłącznie, to znaczy bez nadmiarowości. Wtedy nie znajdziesz identycznych linii danych w dwóch różnych hierarchiach pamięci podręcznej. Lub pamięci podręczne mogą działać łącznie, to znaczy, że niższe poziomy pamięci podręcznej gwarantują, że zawierają dane obecne na wyższych poziomach pamięci podręcznej (bliżej rdzenia procesora). AMD Phenom korzysta z ekskluzywnej pamięci podręcznej L3, podczas gdy Intel stosuje strategię inkluzywnej pamięci podręcznej. Protokoły spójności zapewniają spójność i aktualność danych we wszystkich rdzeniach, warstwach pamięci podręcznej, a nawet procesorach.

Rozmiar pamięci podręcznej

Większa pamięć podręczna może pomieścić więcej danych, ale zwykle zwiększa opóźnienie. Ponadto duża pamięć podręczna zużywa znaczną liczbę tranzystorów procesora, dlatego ważne jest, aby znaleźć równowagę między „budżetem” tranzystorów, rozmiarem matrycy, zużyciem energii i wydajnością/opóźnieniem.

Łączność

Rekordy w pamięci RAM mogą być bezpośrednio mapowane do pamięci podręcznej, to znaczy, że w pamięci podręcznej jest tylko jedna pozycja dla kopii danych z pamięci RAM, lub mogą być asocjacyjne n-way, czyli w pamięci podręcznej jest n możliwych lokalizacji gdzie te dane mogą być przechowywane. Więcej wysoki stopień asocjatywność (aż do w pełni asocjacyjnych pamięci podręcznych) zapewnia najlepszą elastyczność buforowania, ponieważ istniejące dane w pamięci podręcznej nie muszą być nadpisywane. Innymi słowy, wysoki stopień asocjacji n gwarantuje wyższy współczynnik trafień, ale zwiększa opóźnienie, ponieważ testowanie wszystkich tych skojarzeń pod kątem trafienia zajmuje więcej czasu. Z reguły najwyższy stopień skojarzenia jest rozsądny dla ostatniego poziomu pamięci podręcznej, ponieważ dostępna jest tam maksymalna pojemność, a wyszukiwanie danych poza tą pamięcią podręczną spowoduje, że procesor uzyska dostęp do wolnej pamięci RAM.

Aby podać kilka przykładów, Core i5 i i7 używają 32 KB pamięci podręcznej L1 z 8-kierunkową asocjatywnością dla danych i 32 KB pamięci podręcznej L1 z 4-kierunkową asocjatywnością dla instrukcji. Zrozumiałe jest, że Intel chce, aby instrukcje były dostępne szybciej, a pamięć podręczna L1 dla danych ma maksymalny procent trafień. Pamięć podręczna L2 Procesory Intel ma 8-kierunkowe skojarzenie, a pamięć podręczna L3 firmy Intel jest jeszcze inteligentniejsza, ponieważ implementuje 16-kierunkowe skojarzenie w celu maksymalizacji trafień.

Jednak AMD stosuje inną strategię z procesorami Phenom II X4, które wykorzystują pamięć podręczną L1 z dwukierunkową asocjatywnością w celu zmniejszenia opóźnień. Aby zrekompensować ewentualne pomyłki, podwojono pojemność pamięci podręcznej: 64 KB na dane i 64 KB na instrukcje. Pamięć podręczna L2 ma 8-kierunkową asocjatywność, podobnie jak konstrukcja Intela, ale pamięć podręczna L3 AMD działa z 48-kierunkową asocjatywnością. Ale decyzji o wyborze takiej czy innej architektury pamięci podręcznej nie można oceniać bez uwzględnienia całej architektury procesora. To całkiem naturalne, że wyniki testów mają znaczenie praktyczne, a naszym celem był właśnie praktyczny test całej tej złożonej wielopoziomowej struktury pamięci podręcznej.

Każdy nowoczesny procesor ma dedykowaną pamięć podręczną, w której przechowywane są instrukcje i dane procesora, gotowe do użycia niemal natychmiast. Ten poziom jest powszechnie określany jako pierwszy poziom pamięci podręcznej lub L1 i został po raz pierwszy wprowadzony w procesorach 486DX. Ostatnio procesory AMD znormalizowały użycie 64 tys. pamięci podręcznej L1 na rdzeń (dla danych i instrukcji), podczas gdy procesory Intel używają 32 tys. pamięci podręcznej L1 na rdzeń (również w przypadku danych i instrukcji).

Pamięć podręczna pierwszego poziomu pojawiła się po raz pierwszy na procesorach 486DX, po czym stała się funkcja złożona wszystkie nowoczesne procesory.

Pamięć podręczna drugiego poziomu (L2) pojawiła się na wszystkich procesorach po wydaniu Pentium III, chociaż pierwsze jej implementacje na opakowaniu znajdowały się w procesorze Pentium Pro (ale nie na chipie). Nowoczesne procesory są wyposażone w do 6 MB wbudowanej pamięci podręcznej L2. Z reguły taka objętość jest dzielona między dwa rdzenie procesora Intel Core Na przykład 2 duety. Zwykłe konfiguracje L2 zapewniają 512 KB lub 1 MB pamięci podręcznej na rdzeń. Procesory z mniejszą pamięcią podręczną L2 są zwykle w niższym poziomie cenowym. Poniżej znajduje się diagram wczesnych implementacji pamięci podręcznej L2.

Pentium Pro miał pamięć podręczną L2 w pakiecie procesora. Kolejne generacje Pentium III i Athlon implementowały pamięć podręczną L2 poprzez oddzielne chipy SRAM, co było bardzo powszechne w tamtych czasach (1998, 1999).

Późniejsza zapowiedź technologii procesu do 180 nm pozwoliła producentom w końcu zintegrować pamięć podręczną L2 na kości procesora.


Wczesne procesory dwurdzeniowe po prostu wykorzystywały istniejące projekty, gdy dwie matryce były instalowane w pakiecie. AMD wprowadziło dwurdzeniowy procesor na monolitycznej matrycy, dodał kontroler pamięci i przełącznik, a Intel po prostu zmontował dwie jednordzeniowe matryce w jednym pakiecie dla swojego pierwszego dwurdzeniowego procesora.


Po raz pierwszy pamięć podręczna L2 zaczęła być dzielona między dwa rdzenie obliczeniowe na Procesory rdzeniowe 2 duety. AMD poszło dalej i zbudowało swój pierwszy czterordzeniowy Phenom od zera, podczas gdy Intel ponownie użył kilku matryc do swojego pierwszego czterordzeniowego procesora, tym razem dwóch dwurdzeniowych rdzeni Core 2, aby obniżyć koszty.

Pamięć podręczna L3 istnieje od pierwszych dni procesora Alpha 21165 (96 kB, wprowadzonego w 1995 r.) lub IBM Power 4 (256 kB, 2001 r.). Jednak w architekturach opartych na architekturze x86 pamięć podręczna L3 pojawiła się po raz pierwszy z Modele Intel Itanium 2, Pentium 4 Extreme (Gallatin, oba procesory w 2003) i Xeon MP (2006).

Pierwsze implementacje zapewniały tylko kolejny poziom w hierarchii pamięci podręcznej, chociaż współczesne architektury wykorzystują pamięć podręczną L3 jako duży i współdzielony bufor do wymiany danych między rdzeniami w procesory wielordzeniowe. Podkreśla to również wysoki stopień asocjatywności n. Lepiej poszukać danych trochę dłużej w pamięci podręcznej, niż dostać się do sytuacji, w której kilka rdzeni korzysta z bardzo wolnego dostępu do głównej pamięci RAM. AMD po raz pierwszy wprowadziło pamięć podręczną L3 w procesorze desktopowym wraz ze wspomnianą już linią Phenom. 65-nanometrowy Phenom X4 zawierał 2 MB współdzielonej pamięci podręcznej L3, podczas gdy obecny 45-nanometrowy Phenom II X4 ma 6 MB współdzielonej pamięci podręcznej L3. Procesory Intel Core i7 i i5 wykorzystują 8 MB pamięci podręcznej L3.

Nowoczesne procesory czterordzeniowe mają dedykowane pamięci podręczne L1 i L2 dla każdego rdzenia, a także dużą pamięć podręczną L3 współdzieloną przez wszystkie rdzenie. Ogólna pamięć podręczna L3 umożliwia również wymianę danych, na których rdzenie mogą pracować równolegle.


Podczas wykonywania różnych zadań niezbędne bloki informacji z pamięci RAM są odbierane przez procesor komputera. Po ich przetworzeniu CPU zapisuje wyniki obliczeń do pamięci i otrzymuje kolejne bloki danych do przetworzenia. Trwa to aż do zakończenia zadania.

Powyższe procesy realizowane są z bardzo dużą szybkością. Jednak prędkość nawet najszybszej pamięci RAM jest znacznie mniejsza niż prędkość dowolnego słabego procesora. Każda czynność, czy to zapisywanie do niej informacji, czy odczytywanie z niej, zajmuje dużo czasu. Szybkość pamięci RAM jest dziesięć razy mniejsza niż szybkość procesora.

Pomimo takiej różnicy w szybkości przetwarzania informacji, procesor komputera nie jest bezczynny i nie czeka na wydanie i odebranie danych przez pamięć RAM. Procesor zawsze działa, a wszystko dzięki obecności w nim pamięci podręcznej.

Pamięć podręczna to specjalny rodzaj pamięci RAM. Procesor wykorzystuje pamięć podręczną do przechowywania tych kopii informacji z głównej pamięci RAM komputera, które prawdopodobnie będą dostępne w najbliższej przyszłości.

Zasadniczo pamięć podręczna działa jak szybki bufor pamięci, który przechowuje informacje, których może potrzebować procesor. W ten sposób procesor otrzymuje niezbędne dane dziesięć razy szybciej niż podczas odczytywania ich z pamięci RAM.

Główną różnicą między pamięcią podręczną a zwykłym buforem są wbudowane funkcje logiczne. Bufor przechowuje losowe dane, które są zwykle przetwarzane zgodnie ze schematem „pierwszy odebrany, pierwszy wydany” lub „pierwszy odebrany, ostatni wydany”. Pamięć podręczna zawiera dane, do których prawdopodobnie będzie można uzyskać dostęp w najbliższej przyszłości. Dlatego dzięki „inteligentnej pamięci podręcznej” procesor może działać z pełną prędkością i nie czekać na pobranie danych z wolniejszej pamięci RAM.

Główne typy i poziomy pamięci podręcznej L1 L2 L3

Pamięć podręczna jest wykonana w postaci układów statycznej pamięci o dostępie swobodnym (SRAM), które są instalowane na płyta główna lub wbudowany w procesor. W porównaniu z innymi typami pamięci, pamięć statyczna może działać z bardzo dużą szybkością.

Szybkość pamięci podręcznej zależy od objętości konkretnego układu, im większa objętość układu, tym trudniej jest to osiągnąć wysoka prędkość za jej pracę. Biorąc pod uwagę tę cechę, podczas produkcji pamięci podręcznej procesora pamięć podręczna jest wykonywana w postaci kilku małych bloków, zwanych poziomami. Najpopularniejszym dzisiaj jest trzypoziomowy system pamięci podręcznej L1, L2, L3:

Pamięć podręczna pierwszego poziomu L1 - najmniejsza objętość (tylko kilkadziesiąt kilobajtów), ale najszybsza i najważniejsza. Zawiera dane najczęściej używane przez procesor i działa bez opóźnień. Zazwyczaj liczba układów pamięci L1 jest równa liczbie rdzeni procesora, przy czym każdy rdzeń ma dostęp tylko do własnego układu L1.

Pamięć podręczna L2 jest gorszy od pamięci L1, ale wygrywa pod względem objętości, która jest już mierzona w kilkuset kilobajtach. Służy do tymczasowego przechowywania. ważna informacja, prawdopodobieństwo dostępu, które jest niższe niż w przypadku informacji przechowywanych w pamięci podręcznej L1.

Pamięć podręczna trzeciego poziomu L3 - ma największą objętość z trzech poziomów (może osiągnąć dziesiątki megabajtów), ale ma też najwolniejszą prędkość, która wciąż jest znacznie wyższa niż prędkość pamięci RAM. Pamięć podręczna L3 jest współużytkowana przez wszystkie rdzenie procesora. Poziom pamięci L3 jest przeznaczony do tymczasowego przechowywania tych ważnych danych, których prawdopodobieństwo dostępu jest nieco niższe niż w przypadku informacji przechowywanych na pierwszych dwóch poziomach L1, L2. Zapewnia również interakcję rdzeni procesora ze sobą.

Niektóre modele procesorów są wykonane z dwoma poziomami pamięci podręcznej, w których L2 łączy wszystkie funkcje L2 i L3.

Gdy przydatna jest duża ilość pamięci podręcznej.

Odczujesz znaczący efekt dużej ilości pamięci podręcznej podczas korzystania z programów do archiwizacji, w grach 3D, podczas przetwarzania i kodowania wideo. W stosunkowo „lekkich” programach i aplikacjach różnica praktycznie nie jest zauważalna ( programy biurowe, graczy itp.).

Wszyscy użytkownicy doskonale zdają sobie sprawę z takich elementów komputera, jak procesor odpowiedzialny za przetwarzanie danych, a także pamięć o dostępie swobodnym (RAM lub RAM) odpowiedzialna za ich przechowywanie. Ale nie wszyscy prawdopodobnie wiedzą, że istnieje również pamięć podręczna procesora (Cache CPU), czyli pamięć RAM samego procesora (tzw. pamięć super-RAM).

Jaki jest powód, który skłonił twórców komputerów do użycia specjalnej pamięci dla procesora? Czy pamięć RAM nie wystarcza na komputer?

Naprawdę, przez długi czas komputery osobiste nie miały żadnej pamięci podręcznej. Ale, jak wiadomo, procesor jest najszybszym urządzeniem w komputerze osobistym, a jego szybkość rośnie z każdą nową generacją procesora. Obecnie jego prędkość mierzy się w miliardach operacji na sekundę. Jednocześnie standardowa pamięć RAM nie zwiększyła znacząco swojej wydajności w trakcie swojej ewolucji.

Ogólnie rzecz biorąc, istnieją dwie główne technologie układów pamięci — pamięć statyczna i pamięć dynamiczna. Nie zagłębiając się w szczegóły ich struktury, powiemy tylko, że pamięć statyczna, w przeciwieństwie do pamięci dynamicznej, nie wymaga regeneracji; ponadto 4-8 tranzystorów jest używanych na jeden bit informacji w pamięci statycznej, a 1-2 tranzystory są używane w pamięci dynamicznej. W związku z tym pamięć dynamiczna jest znacznie tańsza niż pamięć statyczna, ale jednocześnie znacznie wolniejsza. Obecnie chipy RAM są produkowane w oparciu o pamięć dynamiczną.

Przybliżona ewolucja stosunku szybkości procesorów i pamięci RAM:

Tak więc, jeśli procesor cały czas pobierał informacje z pamięci RAM, musiałby czekać na spowolnienie pamięć dynamiczna i cały czas byłby bezczynny. W tym samym przypadku, gdyby pamięć statyczna była używana jako pamięć RAM, koszt komputera wzrósłby kilkakrotnie.

Dlatego wypracowano rozsądny kompromis. Główna część pamięci RAM pozostała dynamiczna, podczas gdy procesor otrzymał własną szybką pamięć podręczną opartą na statycznych układach pamięci. Jego objętość jest stosunkowo niewielka - na przykład objętość pamięci podręcznej L2 to tylko kilka megabajtów. Jednak tutaj warto pamiętać, że cała pamięć RAM pierwszego komputery IBM Komputer PC miał mniej niż 1 MB.

Ponadto na celowość wprowadzenia technologii buforowania wpływa również czynnik, który różne aplikacje, które znajdują się w pamięci RAM, ładują procesor na różne sposoby, w wyniku czego istnieje wiele danych, które wymagają priorytetowego przetwarzania w porównaniu z resztą.

Historia pamięci podręcznej

Ściśle mówiąc, zanim pamięć podręczna została przeniesiona na komputery osobiste, była z powodzeniem wykorzystywana w superkomputerach od kilkudziesięciu lat.

Po raz pierwszy w komputerze PC opartym na procesorze i80386 pojawiła się pamięć podręczna o wielkości zaledwie 16 KB. Dzisiejsze procesory wykorzystują różne poziomy pamięci podręcznej, od pierwszego (najszybsza pamięć podręczna o najmniejszym rozmiarze – zwykle 128 KB) do trzeciego (najwolniejsza pamięć podręczna największego rozmiaru – do kilkudziesięciu MB).

Początkowo zewnętrzna pamięć podręczna procesora znajdowała się na osobnym układzie scalonym. Z czasem doprowadziło to jednak do tego, że magistrala znajdująca się między pamięcią podręczną a procesorem stała się wąskim gardłem, spowalniającym wymianę danych. W nowoczesnych mikroprocesorach zarówno pierwszy, jak i drugi poziom pamięci podręcznej znajdują się w samym rdzeniu procesora.

Przez długi czas w procesorach były tylko dwa poziomy pamięci podręcznej, ale po raz pierwszy w procesorze Intel Itanium pojawiła się pamięć podręczna trzeciego poziomu, wspólna dla wszystkich rdzeni procesora. Istnieją również opracowania procesorów z czteropoziomową pamięcią podręczną.

Architektury i zasady działania pamięci podręcznej

Do tej pory znane są dwa główne typy organizacji pamięci podręcznej, które wywodzą się z pierwszych teoretycznych opracowań w dziedzinie cybernetyki - architektur Princeton i Harvard. Architektura Princeton zakłada jedną przestrzeń pamięci do przechowywania danych i poleceń, podczas gdy architektura Harvarda ma osobną. Większość procesorów komputery osobiste Linia x86 używa oddzielnego typu pamięci podręcznej. Poza tym w nowoczesne procesory pojawił się także trzeci rodzaj pamięci podręcznej – tzw. asocjacyjny bufor translacji, mający na celu przyspieszenie translacji adresów pamięć wirtualna system operacyjny na adresy pamięci fizycznej.

W uproszczeniu schemat interakcji między pamięcią podręczną a procesorem można opisać w następujący sposób. Najpierw obecność informacji potrzebnych procesorowi jest sprawdzana w najszybszym - pamięci podręcznej pierwszego poziomu, następnie - w pamięci podręcznej drugiego poziomu i tak dalej. Jeśli niezbędne informacje na żadnym poziomie nie ma pamięci podręcznej, wtedy mówią o błędzie lub chybieniu pamięci podręcznej. Jeśli w pamięci podręcznej nie ma żadnych informacji, procesor musi pobrać je z pamięci RAM, a nawet z pamięć zewnętrzna(Z twardy dysk).

Kolejność, w jakiej procesor wyszukuje informacje w pamięci:

W ten sposób procesor wyszukuje informacje

Aby kontrolować działanie pamięci podręcznej i jej interakcję z jednostkami obliczeniowymi procesora, a także pamięcią RAM, istnieje specjalny kontroler.

Schemat organizacji interakcji rdzenia procesora, pamięci podręcznej i pamięci RAM:

Kontroler pamięci podręcznej jest kluczowym ogniwem między procesorem, pamięcią RAM i pamięcią podręczną.

Należy zauważyć, że buforowanie danych to złożony proces, który wykorzystuje wiele technologii i algorytmów matematycznych. Wśród podstawowych pojęć stosowanych w cachingu można wyróżnić metody pisania pamięci podręcznej oraz architekturę asocjatywności pamięci podręcznej.

Metody zapisu w pamięci podręcznej

Istnieją dwie główne metody zapisywania informacji w pamięci podręcznej:

  1. Metoda write-back (odwrotny zapis) - dane są zapisywane najpierw do pamięci podręcznej, a następnie, gdy określone warunki i w pamięci RAM.
  2. Metoda zapisu (przez zapis) - dane są zapisywane jednocześnie do pamięci RAM i pamięci podręcznej.

Architektura powiązań pamięci podręcznej

Architektura asocjacji pamięci podręcznej definiuje sposób, w jaki dane z pamięci RAM są mapowane do pamięci podręcznej. Istnieją następujące główne warianty architektury asocjacji buforowania:

  1. Bezpośrednio zmapowana pamięć podręczna - określony obszar pamięci podręcznej odpowiada za określony obszar pamięci RAM
  2. W pełni asocjacyjna pamięć podręczna - dowolny obszar pamięci podręcznej może być powiązany z dowolnym obszarem pamięci RAM
  3. Mieszana pamięć podręczna (zestaw asocjacyjny)

Różne architektury asocjatywności pamięci podręcznej mogą zazwyczaj być używane na różnych poziomach pamięci podręcznej. Bezpośrednie buforowanie mapowane do pamięci RAM jest najszybszą opcją buforowania, więc ta architektura jest zwykle używana w przypadku dużych pamięci podręcznych. Z kolei w pełni asocjacyjna pamięć podręczna ma mniej błędów pamięci podręcznej (chybień).

Wniosek

W tym artykule zapoznałeś się z koncepcją pamięci podręcznej, architekturą pamięci podręcznej i metodami buforowania, dowiedziałeś się, jak wpływa to na wydajność nowoczesnego komputera. Obecność pamięci podręcznej może znacznie zoptymalizować wydajność procesora, skrócić jego czas bezczynności, a w konsekwencji zwiększyć wydajność całego systemu.

Wszystkie procesory od końca lat 90. mają wewnętrzną pamięć podręczną (lub po prostu pamięć podręczną). Pamięć podręczna to szybka pamięć, która przesyła instrukcje i dane bezpośrednio przetwarzane przez procesor.

Nowoczesne procesory mają wbudowaną pamięć podręczną dwóch poziomów - pierwszego (L1) i drugiego (L2). Dzięki zawartości pamięci podręcznej L1 procesor jest nieco szybszy, a pamięć podręczna L2 jest zwykle nieco większa. Dostęp do pamięci podręcznej odbywa się bez stanu oczekiwania, tj. Pamięć podręczna pierwszego poziomu (pamięć podręczna w układzie) działa z taką samą częstotliwością, jak procesor.

Oznacza to, że jeśli dane potrzebne procesorowi znajdują się w pamięci podręcznej, to nie ma opóźnień w przetwarzaniu. W przeciwnym razie procesor musi pobierać dane z pamięci głównej, co znacznie zmniejsza wydajność systemu.

Aby jakościowo zrozumieć zasadę działania pamięci podręcznej obu poziomów, rozważmy sytuację domową na przykładzie.

Przychodzisz do kawiarni na lunch codziennie o tej samej porze i zawsze siadasz przy tym samym stoliku. Zawsze zamawiaj standardowy zestaw z trzech kursów.

Kelner biegnie do kuchni, kucharz kładzie je na tacy i przynoszą Twoje zamówienie. I tak, powiedzmy, trzeciego dnia kelner, aby nie biegać po raz kolejny do kuchni, spotyka się o wyznaczonej godzinie z gotowym gorącym obiadem na tacy.

Nie czekasz na zamówienie i zaoszczędziłeś dużo czasu. Taca z twoimi naczyniami to skrytka pierwszego poziomu. Ale czwartego dnia nagle chcesz dodać kolejne danie, powiedzmy deser.

Chociaż o wyznaczonej godzinie czekała już na Ciebie taca z zamówieniem, kelner i tak musiał biec do kuchni po deser.

A na piątym - znowu menu z trzema pozycjami. Szóstego - znowu deser, ale inny niż poprzedni. A kelner, nie wiedząc, jaki deser chcesz zamówić (i nie wiedząc w ogóle, czy cokolwiek zamówisz), postanawia zrobić kolejny krok: obok Twojego stolika stawia szafkę z kilkoma rodzajami deserów.

A jeśli wyrazisz pragnienie, wszystko jest pod ręką, nie musisz biegać do kuchni. Szafka na deser to skrytka drugiego poziomu.

Rozmiar pamięci podręcznej L1 (od 16 do 128 KB) i L2 (od 64 KB do 512 KB, do 4 MB w Pentium III Cheop i AMD Opteron) znacząco wpływa na wydajność procesora.

Procesory Intel Pentium III i oparte na nim procesory Celeron mają pamięć podręczną L1 o rozmiarze 32 KB. Intel Pentium 4, a także oparte na nim wersje Celeron i Cheop mają tylko 20 KB. Procesory AMD Duron, Athlon (w tym XP/MP) i Opteron, a także VIA S3 zawierają 128 KB pamięci podręcznej L1.

Nowoczesne procesory dwurdzeniowe mają pamięć podręczną pierwszego poziomu dla każdego rdzenia osobno, więc czasami w opisie pamięci podręcznej możemy zobaczyć liczbę 128x2. Oznacza to, że każdy rdzeń procesora ma 128 KB pamięci podręcznej L1.

Rozmiar pamięci podręcznej L1 jest ważny, aby uzyskać wysoką wydajność w większości typowych zadań ( aplikacje biurowe, gry, większość aplikacji serwerowych itp.). Jego skuteczność jest szczególnie widoczna w przypadku obliczeń strumieniowych (na przykład przetwarzania obrazu wideo).

Jest to jeden z powodów, dla których Pentium 4 jest stosunkowo nieefektywny w większości typowych aplikacji (chociaż jest to kompensowane przez wysokie taktowanie). Pamięć podręczna L1 zawsze działa (wymienia informacje z rdzeniem procesora) z wewnętrzną częstotliwością procesora.

Natomiast pamięć podręczna L2 w różne modele procesory działają na różnych częstotliwościach (i odpowiednio wydajności). Począwszy od Intel Pentium II, wiele procesorów używało pamięci podręcznej L2 działającej z połową wewnętrznej częstotliwości procesora.

To rozwiązanie jest stosowane w przestarzałych procesorach Intel Pentium III (do 550 MHz) i przestarzałych procesorach AMD Athlon (w niektórych z nich wewnętrzna pamięć podręczna L2 pracowała z jedną trzecią częstotliwości rdzenia procesora). Ilość pamięci podręcznej L2 jest również różna dla różnych procesorów.

Starsze i niektóre nowsze procesory Intel Pentium III mają 512 KB pamięci podręcznej L2, podczas gdy inne Pentium III mają 256 KB. Procesor Intel Celeron oparty na Pentium III miał 128 i 256 KB pamięci podręcznej L2, podczas gdy procesor Pentium 4 miał tylko 128 KB. Różne warianty wersji Xeon procesora Intel Pentium 4 mają do 4 MB pamięci podręcznej L2.

Nowe procesory Pentium 4 (niektóre serie o częstotliwości 2000 MHz i wszystkie dla częstotliwości wyższych) mają 512 KB pamięci podręcznej L2, reszta Pentium 4 ma 256 KB. Procesory Cheop (oparte na Pentium 4) mają 256 lub 512 KB pamięci podręcznej L2.

Ponadto posiadają również pamięć podręczną trzeciego poziomu L3. Zintegrowana pamięć podręczna L3 w połączeniu z szybką magistralą systemową tworzy szybkie łącze danych do pamięci systemowej.

Z reguły tylko procesory do rozwiązań serwerowych lub specjalne modele procesorów „stacjonarnych” są wyposażone w pamięć podręczną L3. Pamięć podręczna L3 posiadają na przykład takie linie procesorów jak Xeon DP, Itanium 2, Xeon MP.

Procesor AMD Duron ma 128 KB pamięci podręcznej L1 i 64 KB pamięci podręcznej L2. Procesory Athlon (oprócz starszych), Athlon MP i większość wariantów Athlon XP mają 128 KB pamięci podręcznej L1 i 256 KB pamięci podręcznej L2, a najnowszy Athlon XP (2500+, 2800+, 3000+ i więcej) ma 512 KB pamięci podręcznej L2 . AMD Opteron zawiera 1 MB pamięci podręcznej L2.

Najnowsze modele procesorów Intel Pentium D, Intel Pentium M, Intel Core 2 Duo są wyposażone w 6 MB pamięci podręcznej L2, a Core 2 Quad z 12 MB pamięci podręcznej L2.

Najnowszy procesor Intel Core i7 w chwili pisania tego tekstu ma 64 KB pamięci podręcznej L1 na każdy z 4 rdzeni i 256 KB pamięci L2 na każdy rdzeń. Oprócz pamięci podręcznej pierwszego i drugiego poziomu procesor ma również wspólną pamięć podręczną dla wszystkich rdzeni trzeciego poziomu, równą 8 MB.

W przypadku procesorów, które mogą mieć różne rozmiary pamięci podręcznej L2 (lub w przypadku Intel Xeon MP - L3) dla tego samego modelu, ten rozmiar należy podać przy sprzedaży (oczywiście od tego zależy cena procesora). Jeśli procesor jest sprzedawany w opakowaniu „pudełkowym” (dostawa w pudełku), zwykle wskazuje to na rozmiar pamięci podręcznej.

W przypadku normalnych zadań użytkownika (w tym gier) szybkość pamięci podręcznej L2 jest ważniejsza niż jej rozmiar; w przypadku zadań serwerowych ważniejsza jest objętość. Najbardziej wydajne serwery, szczególnie te z dużą ilością pamięci RAM (kilka gigabajtów), wymagają maksymalnej ilości i prędkość maksymalna Pamięć podręczna L2.

Wersje Cheop procesorów Pentium III pozostają niezrównane pod względem tych parametrów. ( Procesor Xeon MP jest nadal bardziej wydajny w zadaniach serwerowych niż Pentium III Xeon, ze względu na wyższą częstotliwość taktowania samego procesora i magistrali pamięci, a także pozwala zminimalizować okresy oczekiwania, które występują podczas przetwarzania danych. Decydującą rolę odgrywa w tym pamięć podręczna drugiego poziomu umieszczona w układzie procesora.

Jakie jest najbrudniejsze miejsce na komputerze? Pomyśl koszyk? Foldery użytkownika? System chłodzenia? Nie zgadłem! Najbrudniejsze miejsce to skrytka! W końcu trzeba go ciągle czyścić!

W rzeczywistości na komputerze jest wiele pamięci podręcznych i nie służą one jako wysypisko śmieci, ale jako akceleratory dla sprzętu i aplikacji. Skąd bierze się ich reputacja jako „systemowego zsypu na śmieci”? Zobaczmy, czym jest cache, jak to się dzieje, jak działa i dlaczego od czasu do czasu.

Pojęcie i rodzaje pamięci podręcznej

Pamięć Esh lub pamięć podręczna to specjalne miejsce do przechowywania często używanych danych, do którego uzyskuje się dostęp dziesiątki, setki i tysiące razy szybciej niż pamięć RAM lub inne nośniki pamięci.

Aplikacje (przeglądarki internetowe, odtwarzacze audio i wideo, edytory baz danych itp.), komponenty systemu operacyjnego (cache miniatur, cache DNS) oraz sprzęt (pamięć podręczna procesora L1-L3, bufor ramki graficznej) posiadają własną pamięć podręczną. chip, bufory dysków) . Jest realizowany na różne sposoby - programowo i sprzętowo.

  • Pamięć podręczna programu to po prostu osobny folder lub plik, w którym pobierane są np. zdjęcia, menu, skrypty, treści multimedialne i inne treści odwiedzanych witryn. Jest to folder, w którym przeglądarka po raz pierwszy zanurza się po ponownym otwarciu strony internetowej. Zamiana niektórych treści z Lokalny magazyn przyspiesza jego ładowanie i .

  • Zwłaszcza w dyskach twardych pamięć podręczna to osobny układ RAM o pojemności 1-256 Mb, umieszczony na płytce elektroniki. Otrzymuje informacje odczytane z warstwy magnetycznej i jeszcze nie załadowane do pamięci RAM, a także dane, o które najczęściej prosisz system operacyjny.

  • Nowoczesny procesor zawiera 2-3 podstawowe poziomy pamięci podręcznej (zwanej również pamięcią superszybką), umieszczone w postaci modułów sprzętowych na tym samym chipie. Najszybsza i najmniejsza objętość (32-64 Kb) to pamięć podręczna Level 1 (L1) - działa z tą samą częstotliwością co procesor. L2 znajduje się na środkowej pozycji pod względem szybkości i pojemności (od 128 Kb do 12 Mb). A L3 jest najwolniejszy i najbardziej obszerny (do 40 Mb), nie ma go w niektórych modelach. Szybkość L3 jest tylko niska w porównaniu do jej szybszych odpowiedników, ale jest też setki razy szybsza niż najbardziej produktywna pamięć RAM.

Pamięć notatnika procesora służy do przechowywania stale używanych danych, wypompowanych z pamięci RAM i instrukcji kodu maszynowego. Im jest większy, tym szybszy procesor.

Dziś trzy poziomy buforowania nie są już limitem. Wraz z pojawieniem się architektury Sandy Bridge, Intel zaimplementował w swoich produktach dodatkową pamięć podręczną L0 (przeznaczoną do przechowywania odszyfrowanych mikrorozkazów). A najbardziej wydajne procesory mają również pamięć podręczną czwartego poziomu, wykonaną w postaci oddzielnego mikroukładu.

Schematycznie interakcja poziomów pamięci podręcznej L0-L3 wygląda tak (na przykład Intel Xeon):

Ludzki język o tym, jak to wszystko działa

Aby zrozumieć, jak działa pamięć podręczna, wyobraź sobie osobę pracującą przy biurku. Teczki i dokumenty, z których cały czas korzysta, leżą na stole ( w pamięci podręcznej). Aby uzyskać do nich dostęp, po prostu wyciągnij rękę.

Papiery, których potrzebuje rzadziej, są przechowywane w pobliżu na półkach ( w pamięci RAM). Aby je zdobyć, musisz wstać i przejść kilka metrów. A to, z czym dana osoba obecnie nie pracuje, zostało zarchiwizowane ( nagrane na twardym dysku).

Im szerszy stół, tym więcej dokumentów się na nim zmieści, co oznacza, że ​​pracownik będzie mógł odbierać szybki dostęp więcej informacji im większa pojemność pamięci podręcznej, tym szybciej program lub urządzenie działa teoretycznie).

Czasami popełnia błędy - trzyma na stole papiery, które zawierają nieprawdziwe informacje i wykorzystuje je w swojej pracy. W rezultacie obniża się jakość jego pracy ( błędy pamięci podręcznej prowadzą do awarii oprogramowania i sprzętu). Aby poprawić sytuację, pracownik musi wyrzucić dokumenty z błędami i umieścić prawidłowe na ich miejscu ( wyczyść pamięć podręczną).

Stół ma ograniczoną powierzchnię ( pamięć podręczna jest ograniczona). Czasami można go rozszerzyć, na przykład przesuwając drugą tabelę, a czasami nie (rozmiar pamięci podręcznej można zwiększyć, jeśli program zapewnia taką możliwość; pamięci podręcznej sprzętowej nie można zmienić, ponieważ jest zaimplementowana sprzętowo) .

Innym sposobem na przyspieszenie dostępu do większej liczby dokumentów niż może pomieścić stół, jest znalezienie asystenta, który będzie podawał pracownikowi papier z półki (system operacyjny może przydzielić część nieużywanej pamięci RAM do buforowania danych urządzenia). Ale to i tak wolniej niż zdejmowanie ich ze stołu.

Dokumenty pod ręką powinny być odpowiednie do bieżących zadań. Jest to odpowiedzialność samego pracownika. Trzeba regularnie sprzątać papiery (wyciąganie nieistotnych danych z pamięci podręcznej spada „na barki” aplikacji, które z niej korzystają; niektóre programy mają funkcję automatycznego czyszczenia pamięci podręcznej).

Jeśli pracownik zapomni o utrzymaniu porządku w miejscu pracy i aktualności dokumentacji, może narysować sobie harmonogram sprzątania stołu i wykorzystać go jako przypomnienie. W ostateczności powierz to asystentowi (jeśli aplikacja zależna od pamięci podręcznej działa wolniej lub często ładuje nieaktualne dane, użyj narzędzi do zaplanowanego czyszczenia pamięci podręcznej lub rób to ręcznie co kilka dni).

W rzeczywistości spotykamy się z „funkcjami buforowania” w każdym miejscu. To jest zakup produktów na przyszłość, a różne czynności, które wykonujemy mimochodem, jednocześnie itp. Tak naprawdę jest to wszystko, co oszczędza nam niepotrzebnego zamieszania i niepotrzebnych ruchów ciała, usprawnia życie i ułatwia pracę. Komputer robi to samo. Jednym słowem, gdyby nie było pamięci podręcznej, działałby setki i tysiące razy wolniej. A nam się to nie podobało.

Więcej na stronie:

Co to jest pamięć podręczna, do czego jest potrzebna i jak działa aktualizacja: 25 lutego 2017 r. przez: Johnny Mnemonik