Próbuję zrozumieć, dlaczego niektóre pamięci podręczne procesora są szybsze od innych. Podczas porównywania pamięci podręcznej z czymś takim, jak pamięć główna, występują różnice w typie pamięci (SRAM vs DRAM) oraz problemy z lokalizacją (na chipie vs konieczność przejścia przez magistralę pamięci), które mogą wpływać na prędkości dostępu. Ale L1 i L2 są na ogół na tym samym chipie, a przynajmniej na tej samej kości, i myślę, że są tego samego rodzaju pamięcią. Dlaczego więc L1 jest szybszy?
14
Odpowiedzi:
Nie, nie są to ten sam rodzaj pamięci RAM, nawet jeśli są na tym samym układzie, który wykorzystuje ten sam proces produkcyjny.
Ze wszystkich pamięci podręcznych pamięć podręczna L1 musi mieć możliwie najkrótszy czas dostępu (najniższe opóźnienie), w porównaniu do tego, ile pojemności musi mieć, aby zapewnić odpowiedni wskaźnik „trafień”. Dlatego jest zbudowany z wykorzystaniem większych tranzystorów i szerszych metalowych ścieżek, zmniejszając przestrzeń i moc dla prędkości. Pamięci podręczne wyższego poziomu muszą mieć większą pojemność, ale mogą sobie pozwolić na wolniejszą pamięć, dlatego używają mniejszych tranzystorów, które są ściślej upakowane.
źródło
L1 jest zwykle używany jako pamięć dla dekodowanych instrukcji, podczas gdy L2 jest ogólną pamięcią podręczną dla pojedynczego rdzenia. Im mniejsza pamięć podręczna, tym mniejszy jest rozmiar i zwykle jest on szybszy. Z grubsza ogólna zasada dotycząca procesorów komputerowych:
Pamięć podręczna L1: 2-3 cykl dostępu
Pamięć podręczna L2: ~ 10 cykl dostępu
Pamięć podręczna L3: ~ 20-30 dostęp do cyklu zegara
Cytat pochodzi tutaj z odpowiedzi „Pinhedda”.
źródło
Jest kilka powodów, dla których prędkość jest odwrotnie proporcjonalna do wielkości. Pierwsze, co przychodzi mi do głowy, to fizyczna dominacja przewodników, w których propagacja sygnału ogranicza się do pewnego współczynnika prędkości światła. Operacja może trwać tak długo, jak długo sygnał elektryczny pokona najdłuższy odcinek wewnątrz płytki pamięci iz powrotem. Innym powiązanym powodem jest oddzielenie domen zegarowych. Każdy procesor korzysta z własnego generatora zegarowego, który pozwala procesorowi pracować na zegarach wieloczęstotliwościowych. Pamięć podręczna poziomu 1 działa i jest synchronizowana z zegarem procesora, który jest najszybszy w systemie. Z drugiej strony pamięć podręczna poziomu 2 musi obsługiwać wiele procesorów i działa w innej (wolniejszej) domenie zegara. Nie tylko wolniejszy zegar L2 (większy kafelek), ale przekroczenie granicy domeny zegarowej dodaje kolejne opóźnienie. Potem oczywiście są kwestie związane z fan-outem (już wspomniane).
źródło
Oprócz nieodłącznych cech wydajnościowych, rolę odgrywa także lokalizacja (L1 jest bliżej procesora). Zgodnie z tym, co każdy programista powinien wiedzieć o pamięci :
źródło