Intel i486 posiada 8 KB pamięci podręcznej L1. Intel Nehalem ma 32 KB L1 cache instrukcji i 32 KB L1 cache danych na jeden rdzeń.
Ilość pamięci podręcznej L1 nie wzrosła prawie tak szybko, jak szybkość zegara wzrosła.
Dlaczego nie?
Intel i486 posiada 8 KB pamięci podręcznej L1. Intel Nehalem ma 32 KB L1 cache instrukcji i 32 KB L1 cache danych na jeden rdzeń.
Ilość pamięci podręcznej L1 nie wzrosła prawie tak szybko, jak szybkość zegara wzrosła.
Dlaczego nie?
Odpowiedzi:
30 tys. Tekstów z Wikipedii nie jest tak pomocne, jak wyjaśnienie, dlaczego zbyt duża pamięć podręczna jest mniej optymalna. Gdy pamięć podręczna staje się zbyt duża, opóźnienie znalezienia elementu w pamięci podręcznej (faktoring w pamięci podręcznej nie trafia) zaczyna zbliżać się do opóźnienia wyszukiwania elementu w pamięci głównej. Nie wiem do jakich proporcji dążą projektanci procesorów, ale sądzę, że jest to coś analogicznego do wytycznych 80-20: Chciałbyś znaleźć swoje najczęstsze dane w pamięci podręcznej w 80% przypadków, a pozostałe 20 % czasu będziesz musiał przejść do pamięci głównej, aby ją znaleźć. (lub niezależnie od proporcji, jakie zamierzali projektanci CPU).
EDYCJA: Jestem pewien, że to nigdzie blisko 80% / 20%, więc zamień X i 1-X. :)
Jednym z czynników jest to, że pobieranie L1 rozpoczyna się przed ukończeniem translacji TLB, aby zmniejszyć opóźnienie. Przy wystarczająco małej pamięci podręcznej i wystarczająco wysokim poziomie bity indeksu dla pamięci podręcznej będą takie same między adresami wirtualnymi i fizycznymi. Prawdopodobnie zmniejsza to koszt utrzymania spójności pamięci dzięki wirtualnie indeksowanej, fizycznie tagowanej pamięci podręcznej.
Na wielkość pamięci podręcznej ma wpływ wiele czynników:
Prędkość sygnałów elektrycznych (powinna być, jeśli nie prędkość światła, coś tego samego rzędu wielkości):
Koszt ekonomiczny (obwody na różnych poziomach pamięci podręcznej mogą być różne, a niektóre rozmiary pamięci podręcznej mogą być niegodne)
Jeśli rozmiar pamięci podręcznej L1 nie zmienił się po 64 KB, to dlatego, że nie był już wart. Zauważ też, że teraz istnieje większa „kultura” pamięci podręcznej i wielu programistów pisze kod „przyjazny dla pamięci podręcznej” i / lub używa instrukcji prefetech, aby zmniejszyć opóźnienia.
Próbowałem kiedyś stworzyć prosty program, który uzyskiwał dostęp do losowych lokalizacji w tablicy (kilku MegaBajtów): ten program prawie zamroził komputer, ponieważ dla każdego losowego odczytu cała strona była przenoszona z pamięci RAM do pamięci podręcznej, a ponieważ było to wykonywane bardzo często tak prosto program wyczerpał całe pasmo, pozostawiając naprawdę mało zasobów dla systemu operacyjnego.
Wierzę, że można to podsumować po prostu stwierdzając, że im większa pamięć podręczna, tym wolniejszy będzie dostęp. Większa pamięć podręczna po prostu nie pomaga, ponieważ pamięć podręczna została zaprojektowana w celu zmniejszenia wolnej komunikacji magistrali do pamięci RAM.
Ponieważ szybkość procesora gwałtownie rośnie, pamięć podręczna tej samej wielkości musi działać coraz szybciej, aby nadążyć za nią. Pamięć podręczna może być znacznie lepsza (pod względem prędkości), ale nie pod względem pamięci.
(Jestem facetem od oprogramowania, więc mam nadzieję, że to nie jest tak źle)
Pamięć podręczna poziomu 1 lub podstawowa pamięć podręczna znajduje się w CPU i służy do tymczasowego przechowywania instrukcji i danych zorganizowanych w blokach po 32 bajty. Podstawowa pamięć podręczna jest najszybszą formą przechowywania. Ponieważ jest wbudowany w układ z interfejsem zerowego stanu oczekiwania (opóźnienia) do jednostki wykonawczej procesora, jego rozmiar jest ograniczony .
SRAM wykorzystuje dwa tranzystory na bit i może przechowywać dane bez pomocy zewnętrznej, dopóki zasilanie jest dostarczane do obwodu. Kontrastuje to z dynamiczną pamięcią RAM (DRAM), która musi być odświeżana wiele razy na sekundę, aby zachować zawartość danych.
Procesor Intel P55 MMX, uruchomiony na początku 1997 r., Był godny uwagi ze względu na zwiększenie wielkości pamięci podręcznej poziomu 1 do 32 KB. Układy AMD K6 i Cyrix M2 wprowadzone na rynek w tym samym roku jeszcze bardziej podniosły stawkę, dostarczając pamięci podręczne poziomu 1 o pojemności 64 KB. 64Kb pozostaje standardowym rozmiarem pamięci podręcznej L1, chociaż różne procesory wielordzeniowe mogą go używać w różny sposób.
EDYCJA: Należy pamiętać, że ta odpowiedź pochodzi z 2009 roku, a procesory ewoluowały ogromnie w ciągu ostatnich 10 lat. Jeśli dotarłeś do tego postu, nie traktuj wszystkich naszych odpowiedzi tutaj zbyt poważnie.
W rzeczywistości rozmiar pamięci podręcznej L1 JEST największym wąskim gardłem w szybkości we współczesnych komputerach. Żałośnie małe rozmiary pamięci podręcznej L1 mogą być cenne dla ceny, ale nie dla wydajności. Pamięć podręczna L1 jest dostępna przy częstotliwościach GHz, takich samych jak operacje procesora, w przeciwieństwie do dostępu do pamięci RAM 400x wolniej. Jest to drogie i trudne do wdrożenia w obecnym dwuwymiarowym projekcie, jednak jest technicznie wykonalne, a pierwsza firma, która z powodzeniem to zrobi, będzie miała komputery 100 razy szybsze i nadal fajne, co przyniosłoby duże innowacje w wielu pola i są obecnie dostępne tylko dzięki drogim i trudnym do zaprogramowania konfiguracjom ASIC / FPGA. Niektóre z tych problemów dotyczą problemów własnościowych / własności intelektualnej i korporacyjnej chciwości od dziesięcioleci, gdzie kiepska i nieskuteczna kadra inżynierów jest jedynymi, którzy mają dostęp do wewnętrznych mechanizmów, i którzy w większości otrzymują rozkaz marszu, aby wycisnąć opłacalne, zaciemnione protekcjonistyczne bzdury. Nadmiernie sprywatyzowane badania zawsze prowadzą do takiej technologicznej stagnacji lub dławienia (jak widzieliśmy w przemyśle lotniczym i motoryzacyjnym przez wielkich producentów, a wkrótce farmacji). Otwarte i bardziej rozsądne uregulowania dotyczące patentów i tajemnic handlowych przynoszące korzyści wynalazcom i opinii publicznej (a nie szefom i udziałowcom firmy) bardzo by tu pomogły. Opracowywanie znacznie większych pamięci podręcznych L1 powinno być oczywiste, a to powinno i powinno być opracowane kilkadziesiąt lat temu. Bylibyśmy o wiele dalej w dziedzinie komputerów i wielu dziedzin naukowych korzystających z nich, gdybyśmy mieli. i którzy w większości otrzymują rozkaz marszu, aby wycisnąć opłacalne, zaciemnione protekcjonistyczne bzdury. Nadmiernie sprywatyzowane badania zawsze prowadzą do takiej technologicznej stagnacji lub dławienia (jak widzieliśmy w przemyśle lotniczym i motoryzacyjnym przez wielkich producentów, a wkrótce farmacji). Otwarte i bardziej rozsądne uregulowania dotyczące patentów i tajemnic handlowych przynoszące korzyści wynalazcom i opinii publicznej (a nie szefom i udziałowcom firmy) bardzo by tu pomogły. Opracowywanie znacznie większych pamięci podręcznych L1 powinno być oczywiste, a to powinno i powinno być opracowane kilkadziesiąt lat temu. Bylibyśmy o wiele dalej w dziedzinie komputerów i wielu dziedzin naukowych korzystających z nich, gdybyśmy mieli. i którzy w większości otrzymują rozkaz marszu, aby wycisnąć opłacalne, zaciemnione protekcjonistyczne bzdury. Nadmiernie sprywatyzowane badania zawsze prowadzą do takiej technologicznej stagnacji lub dławienia (jak widzieliśmy w przemyśle lotniczym i motoryzacyjnym przez wielkich producentów, a wkrótce farmacji). Otwarte i bardziej rozsądne uregulowania dotyczące patentów i tajemnic handlowych przynoszące korzyści wynalazcom i opinii publicznej (a nie szefom i udziałowcom firmy) bardzo by tu pomogły. Opracowywanie znacznie większych pamięci podręcznych L1 powinno być oczywiste, a to powinno i powinno być opracowane kilkadziesiąt lat temu. Bylibyśmy o wiele dalej w dziedzinie komputerów i wielu dziedzin naukowych korzystających z nich, gdybyśmy mieli. Nadmiernie sprywatyzowane badania zawsze prowadzą do takiej technologicznej stagnacji lub dławienia (jak widzieliśmy w przemyśle lotniczym i motoryzacyjnym przez wielkich producentów, a wkrótce farmacji). Otwarte i bardziej rozsądne uregulowania dotyczące patentów i tajemnic handlowych przynoszące korzyści wynalazcom i opinii publicznej (a nie szefom i udziałowcom firmy) bardzo by tu pomogły. Opracowywanie znacznie większych pamięci podręcznych L1 powinno być oczywiste, a to powinno i powinno być opracowane kilkadziesiąt lat temu. Bylibyśmy o wiele dalej w dziedzinie komputerów i wielu dziedzin naukowych korzystających z nich, gdybyśmy mieli. Nadmiernie sprywatyzowane badania zawsze prowadzą do takiej technologicznej stagnacji lub dławienia (jak widzieliśmy w przemyśle lotniczym i motoryzacyjnym przez wielkich producentów, a wkrótce farmacji). Otwarte i bardziej rozsądne uregulowania dotyczące patentów i tajemnic handlowych przynoszące korzyści wynalazcom i opinii publicznej (a nie szefom i udziałowcom firmy) bardzo by tu pomogły. Opracowywanie znacznie większych pamięci podręcznych L1 powinno być oczywiste, a to powinno i powinno być opracowane kilkadziesiąt lat temu. Bylibyśmy o wiele dalej w dziedzinie komputerów i wielu dziedzin naukowych korzystających z nich, gdybyśmy mieli. Opracowywanie znacznie większych pamięci podręcznych L1 powinno być oczywiste, a to powinno i powinno być opracowane kilkadziesiąt lat temu. Bylibyśmy o wiele dalej w dziedzinie komputerów i wielu dziedzin naukowych korzystających z nich, gdybyśmy mieli. Opracowywanie znacznie większych pamięci podręcznych L1 powinno być oczywiste, a to powinno i powinno być opracowane kilkadziesiąt lat temu. Bylibyśmy o wiele dalej w dziedzinie komputerów i wielu dziedzin naukowych korzystających z nich, gdybyśmy mieli.