Što je predmemorija i zašto je CPU, GPU i druge vrste procesora imaju? Ovdje je sve što trebate znati.
Brze veze
- Predmemorija: mala količina memorije velike brzine
- Razine predmemorije i hijerarhija memorije
- Predmemorija je neophodna, ali sama po sebi ne poboljšava performanse
Iako se o predmemoriji ne govori toliko koliko o jezgrama, radna memorija (Memorija s izravnim pristupom), ili VRAM, vjerojatno ste već čuli za to, pogotovo u posljednje vrijeme. AMD ponosno reklamira igračke performanse za svoje Ryzen CPU s 3D V-Cacheom kao rezultat korištenja predmemorije, a jedno od Intelovih najvećih poboljšanja sa svojim procesorima Raptor Lake 13. generacije bilo je dodavanje više predmemorije.
Ali kako predmemorija može poboljšati performanse kada se mjeri u megabajtima? Čak i najjeftiniji RAM kompleti ovih dana dolaze sa 16 GB, pa kako dodavanje samo nekoliko dodatnih megabajta predmemorije može napraviti tako veliku razliku u performansama? Pa, predmemorija nije vaša normalna vrsta memorije.
Predmemorija: mala količina memorije velike brzine
Izvor: AMD
Cache je zapravo prilično nedavni razvoj procesora, koji datira iz 1990-ih, a izumljen je zbog RAM-a. RAM je ključna komponenta u računalima koja pohranjuje značajnu količinu podataka za koje se očekuje da će procesori (poput CPU-a i GPU-a) prilično često trebati. Dugo su vremena poboljšanja u performansama RAM-a išla ukorak s poboljšanjima u performansama CPU-a, ali do 1990-ih to je postajalo očito je da RAM ne bi mogao držati korak s najnovijim CPU-ima. RAM je imao dosta kapaciteta, ali su i brzine prijenosa bile previše usporiti.
Ovdje dolazi predmemorija. Nije ni približno velik kao RAM ni fizički ni po kapacitetu, ali je unutar samog procesora i može prenositi podatke vrlo brzo i uz vrlo nisku latenciju. Sve dok predmemorija pohranjuje podatke koje procesor zapravo treba, može uštedjeti vrijeme jer je traženje istih podataka od RAM-a mnogo puta sporije. Bilo je to izvrsno rješenje za problem RAM-a i omogućilo je CPU dizajnerima da nastave s izradom bržih CPU-a i Dizajneri RAM-a koji nastavljaju stvarati veće kapacitete RAM-a bez potrebe za brigom izvođenje. Danas se predmemorija nalazi u gotovo svakoj vrsti procesora.
Možda se pitate zašto je predmemorija tako mala. Pa, uglavnom ima veze s prostorom i novcem. Čak i 32 MB predmemorije može zauzeti prilično malo prostora na procesoru, a moderni čipovi ograničeni su na otprilike 600 mm2 ukupne površine, što se mora mudro koristiti. To znači da posvećivanje većeg područja predmemoriji može biti prilično skupo, i ta situacija se zapravo pogoršava, a ne poboljšava. Najnoviji proizvodni procesi rezultiraju sve manjim i manjim poboljšanjima u gustoći predmemorije, a TSMC uopće nije uspio smanjiti veličinu predmemorije u prvoj iteraciji svog 3nm procesa.
Razine predmemorije i hijerarhija memorije
Izvor: Carlos Carvalho
Izum predmemorije značio je novi sloj za sve uređaje za pohranu podataka u računalu. Ovi slojevi tvore ono što se naziva hijerarhija memorije, koju možete vidjeti na gornjoj slici i detalje koja memorija ide gdje u tipičnom sustavu unutar CPU-a (iako će druge vrste procesora izgledati vrlo sličan). Danas moderna hijerarhija memorije ne uključuje samo predmemoriju, RAM i trajne uređaje za pohranu, već i hijerarhiju memorije unutar same predmemorije.
Većina procesora ima različite razine predmemorije za različite svrhe. Prva i najmanja razina predmemorije je L1, koja ima pojedinačne jezgre za obradu podataka koji su odmah potrebni. L1 predmemorija često se mjeri u kilobajtima, a najnoviji procesori Ryzen 7000 imaju 64 KB L1 predmemorije po jezgri. Dodatno, moderna L1 predmemorija često se dalje dijeli na L1I (za upute) i L1D (za podatke).
Sljedeći je L2, koji je za grupu jezgri, a ne za pojedinačne. Naravno, L2 predmemorija je veća od L1 predmemorije, često za red veličine, ali to što je puno veća i mora opsluživati više jezgri znači da je sporija i ima veću latenciju. Neki procesori, posebno GPU-i i sporiji CPU-i, ići će samo do L2 predmemorije.
Sljedeći korak je L3, koji općenito koriste sve jezgre na čipu. Njegova veličina može varirati od nekoliko puta veće od L2 predmemorije do više od reda veličine veće, ovisno o procesoru. To znači da je čak sporiji od L2 predmemorije, ali još uvijek nadmašuje RAM. Dodatno, L3 predmemorija također često djeluje kao "predmemorija žrtava", gdje idu podaci izbačeni iz L1 i L2 predmemorije. Može biti dodatno izbačen iz L3 predmemorije ako je nepotreban. Danas je L3 predmemorija posebno važna za AMD zbog njegove chiplet tehnologije. Ryzen 3D V-Cache čipovi sadrže 64 MB L3 predmemorije, a RX 7000 Memory Cache Dies (ili MCD-ovi) sadrže po 16 MB L3 predmemorije.
Najviša razina predmemorije koja se može vidjeti na većini procesora je L4, koja je često toliko velika da je zapravo RAM. Zapravo, najnoviji procesori koji koriste L4 predmemoriju su Intelovi Sapphire Rapids Xeon čipovi, koji koriste HBM2 kao L4 predmemoriju na vrhunskim modelima. AMD, s druge strane, nikada nije koristio L4 predmemoriju i umjesto toga je zadovoljan povećanjem svoje L3 predmemorije do velikih kapaciteta dodavanjem više CPU i V-Cache čipleta. L4 predmemorija obično više koristi integriranim GPU-ovima, jer je to on-die rješenje koje može dijeliti podatke između CPU-a i integriranog GPU-a.
U nekim skupovima čipova, prvenstveno mobilnim, postoji još jedna vrsta predmemorije: predmemorija na razini sustava (SLC). Ta se predmemorija zatim koristi u cijelom skupu čipova, kao što su GPU, NPU i CPU. Predmemorija može zamijeniti potrebu za zahtjevima prema glavnoj memoriji, tako da SLC koristi cijelom SoC-u.
Predmemorija je neophodna, ali sama po sebi ne poboljšava performanse
Unatoč svoj pompi oko nedavnih inovacija u predmemoriji, to nije srebrni metak za performanse. Uostalom, nema mogućnosti obrade u predmemoriji; samo pohranjuje podatke i to je to. Iako svaki procesor može apsolutno imati koristi od veće predmemorije, često je preskupo dodati više od točno potrebne količine. Dodavanje više predmemorije možda čak neće poboljšati performanse ovisno o radnom opterećenju, što je dodatni poticaj da ne stavljate tonu na procesor.
Uz to, mogućnost dodavanja velike količine predmemorije može biti poželjna u određenim situacijama. CPU-i s puno predmemorije obično imaju bolje rezultate u igrama, na primjer. AMD-ovi procesori Ryzen s 3D V-Cacheom prilično su brzi za igranje unatoč nižoj frekvenciji od čipova bez V-Cachea, i Intelovi procesori 13. generacije znatno su brži od čipova 12. generacije, a jedino veće poboljšanje je povećanje predmemorija.
U konačnici, predmemorija postoji kako bi procesori mogli zaobilaziti RAM što je češće moguće, a performanse mogu biti što je moguće nesputanije. Dizajneri CPU-a moraju uravnotežiti kapacitet predmemorije s veličinom i, prema tome, cijenom, što postaje sve teže sa svakom generacijom novih proizvodnih procesa. Iako se novi načini dodavanja predmemorije procesorima uvode desetljećima nakon što je izumljena predmemorija, teško je zamisliti da će se svrha ove ključne komponente procesora ikada promijeniti.