Czy istnieje zgodność między wielkością pamięci podręcznej a opóźnieniem dostępu?

9

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?

ivanmp
źródło
1
Jeśli jesteś zainteresowany zbadaniem pewnych kompromisów w projektowaniu pamięci podręcznej, HP opracowało narzędzie CACTI, które zapewnia oszacowania opóźnień i zużycia energii na podstawie charakterystyk projektowych. Dostępny jest również interfejs WWW dla wersji 5.3 .
Paul A. Clayton,

Odpowiedzi:

5

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).

Rocketmagnet
źródło
1
+1 Podoba mi się twoja odpowiedź. Uderza we wszystkie istotne punkty, a także tworzy kopię zapasową. Łatwy do odczytania
Gustavo Litovsky
czy to prawda? odpowiedź opiera się na opóźnieniu prędkości światła o cal od kilku cali?
Andyz Smith
1
Ta odpowiedź jest dobra jako ogólny przegląd, ale podejrzewam, że nie odpowiada na wstępne pytanie. Nie należy być ekspertem uArch, aby zdać sobie sprawę, że pamięć podręczna formatu A4 nie jest praktyczna. Uważam, że OP zapytał o jakiś rozsądny wzrost wielkości pamięci podręcznej i jak ten wzrost wpłynie na opóźnienie dostępu do pamięci podręcznej.
Wasilij
1
@AndyzSmith - To rażąca przesada i nadmierne uproszczenie, ale myślę, że ma to ogólny sens, że w pewnym momencie, że pamięć podręczna L1 nie może zostać powiększona w nieskończoność. W pewnym momencie pojawiają się prawa fizyki i spowalniają je.
Rocketmagnet
Opóźnienie sygnału na chipie nie jest prędkością światła, jest to bardziej skomplikowana wartość obliczona, biorąc pod uwagę pojemność netto / drut plus sterowaną pojemność bramki jako sieć RLC. To za mało, aby być linią transmisyjną. Im dłuższa siatka, tym większa musi być brama wjazdowa lub trzeba wstawić bufory jako wzmacniacze. Wszystko to zużywa również więcej energii.
pjc50,
4

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).

Wasilij
źródło
Dziękuję za Twoją odpowiedź! Wasze i @ Rocketmagnet odpowiedzi są prawie komplementarne. Mam nadzieję, że mogę wybrać jedno i drugie. Mam już cytowaną kopię referencji i ostatnio byłem bardzo zainteresowany tym tematem, stąd pytanie.
ivanmp,
dlaczego logika wykonania operacji odczytu zależy od wielkości pamięci podręcznej. Dlaczego „staje się ona zbyt długa” pod jaką konkretną liczbą adresów występuje skok dyskretny. lub jeśli nie ma dyskretnego skoku, jaki jest wzór na czas dostępu w zależności od wielkości?
Andyz Smith
czy możesz sprecyzować, który składnik: muxes. ” powoduje, że logika staje się duża? en.wikipedia.org/wiki/Sum_addressed_decoder
Andyz Smith
@AndyzSmith, formuła czasu dostępu w funkcji wielkości może podać tylko osoba projektująca i symulująca pamięć podręczną. W opublikowanym przeze mnie referencji widać, że pobranie danych z L1 zajmuje 4 cykle zegara, ale nikt nie próbuje oszacować luzów związanych z tymi odczytami. Pytanie o formułę nie jest praktycznym pytaniem bez wielu dodatkowych informacji specyficznych dla implementacji.
Wasilij
1
@AndyzSmith, zakładając, że wspomniana pamięć podręczna 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 duże wzmacniacze będą miały wpływ na wzmacniacze sensowne: mniejsze wahania napięcia na linii bitowej ze względu na wyższą pojemność -> „silniejszy” wzmacniacz zmysłowy. 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. Ponownie szczegóły dotyczą konkretnej implementacji.
Wasilij
3

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.

Xyzio
źródło
2
Bardzo interesująca odpowiedź. Ale jak powiedziałem w pytaniu, nie szukam ekonomicznej, oczywistej odpowiedzi. To, co próbuję zrozumieć, dotyczy wydajności związanej z dostępem do bardzo (> 512 MB) dużej pamięci podręcznej. Czy rozmiar zmniejszyłby wydajność pamięci podręcznej?
ivanmp,