Czy istnieje zgodność między rozmiarami pamięci podręcznej a opóźnieniem dostępu? Czy wszystkie pozostałe rzeczy są takie same, czy większa pamięć podręczna działa wolniej? Jeśli tak, to dlaczego? Ile wolniej?
Czy istnieje zgodność między rozmiarami pamięci podręcznej a opóźnieniem dostępu? Czy wszystkie pozostałe rzeczy są takie same, czy większa pamięć podręczna działa wolniej? Jeśli tak, to dlaczego? Ile wolniej?
Odpowiedzi:
Dostęp do przedmiotów w twoich rękach jest szybszy niż do przedmiotów w kieszeniach, do których dostęp jest szybszy niż do przedmiotów w szafce, do których dostęp jest szybszy niż w Digikey. Każdy wymieniony przeze mnie kolejny rodzaj pamięci jest większy, ale wolniejszy niż poprzedni.
A więc, miejmy to, co najlepsze z obu światów, ułóżmy ręce tak duże, jak magazyn Digikey! Nie, to nie działa, ponieważ teraz nie są już tak naprawdę rękami. To kula armatnia cię obciąża.
Powodem, dla którego dostęp do większej pamięci jest wolniejszy, jest odległość . Większe miejsce do przechowywania jest średnio dalej od Ciebie. Dotyczy to przedmiotów fizycznych i pamięci RAM.
Pamięć komputerowa zajmuje przestrzeń fizyczną. Z tego powodu większe wspomnienia są fizycznie większe, a niektóre lokalizacje w tej pamięci będą fizycznie dalej. Dostęp do rzeczy, które są daleko, wymaga więcej czasu ze względu na ograniczenia prędkości. W przypadku kieszeni i Digikey ograniczenia prędkości to prędkość twoich ramion i ograniczenia prędkości na autostradzie.
W przypadku pamięci RAM ograniczeniami prędkości są prędkość propagacji sygnałów elektrycznych, opóźnienie propagacji bramek i sterowników oraz powszechne stosowanie zegarów synchronicznych. Nawet jeśli pieniądze nie były przedmiotem, a można było kupić tyle, ile chcesz z najszybszej dostępnej obecnie technologii pamięci RAM, nie będziesz w stanie korzystać z nich wszystkich. Jeśli chcesz, ułóż arkusz pamięci podręcznej L1 w formacie A4 i umieść procesor bezpośrednio na środku. Gdy procesor chce uzyskać dostęp do pewnej pamięci w rogu pamięci, dosłownie zajmie nanosekundę, aby żądanie dotarło do niej, i nanosekundę, aby ją odzyskać. I to nie obejmuje wszystkich opóźnień propagacji przez bramki i sterowniki. Spowoduje to poważne spowolnienie procesora 3GHz.
Ponieważ logika synchroniczna jest znacznie łatwiejsza do zaprojektowania niż logika asynchroniczna, jeden „blok” pamięci RAM będzie taktowany tym samym zegarem. Jeśli chcesz, aby cała pamięć była pamięcią podręczną L1, musisz taktować całą partię wolnym zegarem, aby poradzić sobie z najgorszym przypadkiem taktowania najbardziej odległej lokalizacji w pamięci. Oznacza to, że odległe lokalizacje pamięci powstrzymują teraz lokalizacje lokalne, które mogły być taktowane szybciej. Najlepszą rzeczą jest strefowanie pamięci. Najbliższa i najmniejsza część pamięci podręcznej użyłaby najszybszego zegara. Następna najbliższa i najmniejsza sekcja użyłaby nieco wolniejszego zegara itp.
A teraz masz pamięci podręczne L1 i L2 oraz pamięć RAM.
Co prowadzi nas do następnego powodu, zużycia energii.
Pamięć podręczna zużywa znaczną ilość energii. Nie tylko sama pamięć, ale cała otaczająca ją logika, która obsługuje mapowanie między liniami pamięci podręcznej a pamięcią główną. Zwiększenie wydajności tej dodatkowej logiki może spowodować wzrost zużycia energii. Teraz w przypadku niektórych aplikacji (mobilnych, wbudowanych) masz jeszcze większą motywację, aby utrzymać niewielką pamięć podręczną.
Zobacz Kompromisy w projektowaniu pamięci podręcznej dotyczące optymalizacji zasilania i wydajności: studium przypadku (Ching-Long Su i Alvin M. Despain, 1995).
Pomijając wszystkie czynniki ekonomiczne / wydajności / zużycia energii, odpowiedź na twoje pytanie brzmi: zależy to od wielu mikro czynników architektonicznych.
Jako przykład patrz to odniesienie - zmierzone opóźnienie dostępu L1 dla wszystkich testowanych procesorów wynosi 4 cykle zegarowe. Częstotliwości procesorów są prawie takie same, ale rozmiary pamięci podręcznej L1 różnią się aż o współczynnik 3.
Przyczyna stałego opóźnienia L1 na kilku różnych procesorach w powyższym teście jest zakorzeniona w mikro-architekturze pamięci podręcznej: sam dostęp do pamięci podręcznej (pobieranie danych z pamięci) zajmuje tylko jeden cykl zegara. Dodatkowe trzy cykle są wydawane na dekodowanie dostępu, sprawdzanie obecności danych i nie tylko ... Liczba dodatkowych etapów jest taka sama w testowanych procesorach, dlatego opóźnienia dostępu są takie same.
Pomimo powyższego przykładu nie należy wyciągać wniosku, że opóźnienie pamięci podręcznej jest niezależne od wielkości pamięci podręcznej. Gdyby ktoś próbował zaimplementować absurdalnie dużą pamięć podręczną L1, logika wykonująca wszystkie wymagane operacje odczytu pamięci podręcznej również stałaby się duża. W pewnym momencie opóźnienie propagacji w całej tej logice byłoby zbyt długie, a operacje, które wcześniej zajęły tylko jeden cykl zegara, musiałyby zostać podzielone na kilka cykli zegara. Zwiększy to opóźnienie.
Zakładając, że wspomniana pamięć podręczna jest zaimplementowana w SRAM, modułami, na które największy wpływ ma rozmiar pamięci podręcznej, są: dekodery wierszy i multipleksery. Jednak nawet bardzo czułe wzmacniacze będą miały wpływ na bardzo duże pamięci podręczne: mniejsze wahania napięcia na linii bitowej ze względu na wyższą pojemność będą wymagały „silniejszego” wzmacniacza czułości. Mówi się, że najpoważniejszy wpływ na prędkość logiczną zostanie dodany przez pojemność przewodów połączeniowych - ta pojemność ma więcej niż liniową zależność od wielkości SRAM. Dokładne szczegóły są specyficzne dla implementacji.
Teraz pamięci podręczne L1 mają dość stabilne opóźnienia, ponieważ ich wydajność jest najważniejsza. Jeśli spróbujesz analizować pamięci podręczne L2 i L3, obraz bardzo się komplikuje.
Obraz komplikuje się znacznie bardziej, jeśli wziąć pod uwagę procesory wielordzeniowe - mają one dodatkową logikę zapewniającą spójność pamięci podręcznej . Prowadzi to do dodatkowego czynnika, który wpływa na opóźnienie dostępu do pamięci podręcznej: historii dostępu do pamięci wszystkich rdzeni.
Podsumowanie
Jak widać, twoje pytanie nie jest trywialne i nie można na nie odpowiedzieć całkowicie. Jeśli jednak weźmiesz pod uwagę bufory preferowane pod względem ekonomicznym i wydajności, powiedziałbym, że ich rozmiar nie wpłynie w żaden sposób na opóźnienie.
Dla zainteresowanych czytelników:
Odniesienie to jest bardzo dogłębną analizą czynników wydajności współczesnych procesorów. Jest tam dużo materiałów związanych z pamięcią podręczną. Wymaga głębokiego zrozumienia zasad architektury komputerowej i zasad mikroarchitektury (alternatywnie - dobre podsumowanie tematów, które trzeba znać, aby zostać profesjonalistą w tej dziedzinie).
Inżynier testujący pamięć podręczną procesora tutaj - Dave Tweed w komentarzach ma poprawne wyjaśnienia. Pamięć podręczna ma taki rozmiar, aby zmaksymalizować wydajność w oczekiwanej cenie procesora. Pamięć podręczna jest generalnie największym konsumentem powierzchni matrycy, więc jej rozmiar stanowi dużą różnicę ekonomiczną (i wydajność).
Zajrzyj na stronę rodziny procesorów Intel Ivy Bridge: http://ark.intel.com/products/codename/29902/Ivy-Bridge
Najwyższej klasy Xeon ma 30 MB pamięci podręcznej, ma 12 rdzeni i kosztuje około 2700 USD. Niższy i3 z 3 MB pamięci podręcznej (i3-3217) kosztuje zaledwie 500 USD za cały laptop (nie mogę go znaleźć indywidualnie).
Xeon zapewnia najwyższą wydajność, ale także kosztuje więcej w produkcji i testowaniu. I3 jest znacznie tańszy, ale kompromisem jest mniejszy rozmiar matrycy, którego największą część stanowi pamięć podręczna.