Kuchnia pamięci

Procesor to kucharz, a dane to składniki. Im dalej leży składnik, tym dłużej trzeba po niego iść. Zobacz, dlaczego komputer ma tyle rodzajów pamięci i po co mu blat, czyli pamięć podręczna.

Wyprawa po składnik

Kliknij miejsce, z którego kucharz ma przynieść składnik. Oś czasu jest logarytmiczna: każda kreska to tysiąc razy dłużej.

Skąd—
Czas prawdziwy0 ns
Gdyby 1 ns trwała 1 sekundę0 s

Wyścig

Wszyscy ruszają po składnik naraz. Kto wróci pierwszy?

Gotujemy! Po co jest blat?

Blat to pamięć podręczna (cache): mało miejsca, ale wszystko pod ręką. Lodówka to RAM: zmieści dużo, ale każda wyprawa trwa ok. 8 razy dłużej. Gdy blat jest pełny, kucharz odkłada do lodówki składnik nieużywany najdawniej.

Przepis: kolejne składniki
Lodówka · RAM · 100 ns
Blat · cache · 12 ns

Naciśnij „Gotuj”, żeby zacząć.

Trafienia (na blacie)0
Chybienia (z lodówki)0
Skuteczność blatu—
Krok0

Sprawdź się

Punkty 0 · Seria 0 · Rekord 0

Hierarchia pamięci komputera

Dlaczego komputer ma tyle rodzajów pamięci?

Idealna pamięć byłaby jednocześnie bardzo szybka, ogromna i tania. Takiej nie ma. Pamięć szybka jest droga i mała, a pamięć pojemna jest wolna. Dlatego komputer łączy kilka rodzajów pamięci w hierarchię: blisko procesora trzyma mało, ale szybko, a dalej dużo, ale wolno.

Rejestry i pamięć podręczna (cache)

Rejestry to kilkadziesiąt komórek wewnątrz procesora, dostępnych w jednym takcie zegara. Pamięć podręczna (cache L1, L2, L3) to szybka pamięć w procesorze, która przechowuje kopie danych używanych niedawno. Gdy potrzebne dane są w cache, mówimy o trafieniu. Gdy ich nie ma i trzeba sięgnąć do RAM, mówimy o chybieniu.

Dlaczego cache działa?

Programy zwykle używają tych samych danych wiele razy w krótkim czasie (np. zmienna w pętli) i sięgają po dane leżące obok siebie (np. kolejne elementy listy). Tę cechę nazywa się lokalnością. Dzięki niej w typowym programie zdecydowana większość odczytów trafia w cache.

RAM: pamięć operacyjna

RAM przechowuje programy i dane, z którymi komputer właśnie pracuje. Jest ulotna: po wyłączeniu zasilania jej zawartość znika. Dlatego niezapisany dokument przepada, gdy zabraknie prądu.

Dyski: SSD i HDD

Dyski to pamięć nieulotna: zachowują dane bez prądu. Dysk HDD ma obracające się talerze i ruchomą głowicę, więc odczyt trwa milisekundy. Dysk SSD nie ma ruchomych części i jest nawet sto razy szybszy przy losowych odczytach. Dlatego wymiana HDD na SSD tak bardzo przyspiesza stary komputer.

Internet i chmura

Pliki w chmurze leżą na serwerach, czasem na innym kontynencie. Sygnał biegnie światłowodem z prędkością bliską prędkości światła, ale i tak podróż tam i z powrotem przez ocean zajmuje dziesiątki milisekund.

Ile trwa sięgnięcie po dane?

Hierarchia pamięci: czas dostępu, pojemność i porównanie w skali, w której 1 nanosekunda trwa 1 sekundę
PamięćW kuchniCzas dostępu1 ns = 1 sTypowa pojemność
Rejestryręce kucharzaok. 0,3 ns0,3 skilkaset bajtów
Cache L1deska do krojeniaok. 1 ns1 sok. 32–64 KB na rdzeń
Cache L3blat kuchennyok. 12 ns12 skilka–kilkadziesiąt MB
RAMlodówkaok. 100 nsok. 2 minuty8–32 GB
Dysk SSDsklep osiedlowyok. 0,1 msponad doba0,5–2 TB
Dysk HDDhurtownia za miastemok. 10 msprawie 4 miesiące1–20 TB
Internet (przez ocean)dostawa z innego kontynentuok. 100 msponad 3 latapraktycznie bez limitu

Wartości są przybliżone i zależą od konkretnego sprzętu. Ważne są proporcje: każdy kolejny poziom jest od kilku do kilkuset razy wolniejszy.

Najczęstsze pytania o pamięć komputera

Czym różni się RAM od dysku?

RAM to szybka pamięć robocza, w której leżą uruchomione programy i otwarte pliki. Po wyłączeniu komputera jej zawartość znika. Dysk przechowuje dane na stałe, także bez prądu, ale jest znacznie wolniejszy od RAM.

Co to jest pamięć podręczna (cache)?

To mała i bardzo szybka pamięć wewnątrz procesora, w której trzymane są kopie ostatnio używanych danych. Dzięki niej procesor rzadziej musi czekać na wolniejszą pamięć RAM.

Co to jest trafienie i chybienie w cache?

Trafienie oznacza, że potrzebne dane były już w pamięci podręcznej i procesor dostał je od razu. Chybienie oznacza, że danych nie było i trzeba je pobrać z wolniejszej pamięci RAM.

Dlaczego SSD jest szybszy od HDD?

Dysk HDD musi obrócić talerz i przesunąć głowicę w odpowiednie miejsce, co trwa kilka milisekund. Dysk SSD zapisuje dane w układach pamięci flash bez ruchomych części, więc odczyt trwa ułamek milisekundy.

Czy więcej RAM zawsze przyspiesza komputer?

Pomaga tylko wtedy, gdy obecnej pamięci brakuje. Gdy RAM się kończy, system odkłada dane na dysk, który jest tysiące razy wolniejszy, i komputer zwalnia. Jeśli RAM wystarcza, jego dokładanie niewiele zmienia.

Dlaczego nie buduje się całej pamięci z szybkiego cache?

Pamięć podręczna jest bardzo droga w produkcji, zajmuje dużo miejsca w procesorze i pobiera dużo energii. Komputer z kilkoma gigabajtami cache byłby ogromny i niezwykle kosztowny, dlatego łączy się małą szybką pamięć z dużą wolniejszą.

Ile to jest nanosekunda?

Nanosekunda to jedna miliardowa część sekundy. W ciągu jednej nanosekundy światło pokonuje około 30 centymetrów, a procesor o taktowaniu 3 GHz wykonuje około trzech taktów zegara.