Mis on vahemälu?

Mis on vahemälu ja miks see on CPU-del, GPU-del ja muudel protsessoritel? Siin on kõik, mida pead teadma.

Kiirlingid

  • Vahemälu: väike kogus kiiret mälu
  • Vahemälu tasemed ja mäluhierarhia
  • Vahemälu on vajalik, kuid see ei paranda iseenesest jõudlust

Kuigi vahemälust ei räägita nii palju kui tuumadest, RAM (Muumälu) või VRAM, olete sellest ilmselt varem kuulnud, eriti hiljuti. AMD reklaamib uhkusega oma mängude jõudlust Ryzeni protsessorid koos 3D V-vahemäluga vahemälu kasutamise tulemusena ja üks Inteli suurimaid täiustusi oma 13. põlvkonna Raptor Lake'i protsessoritega oli vahemälu lisamine.

Kuid kuidas saab vahemälu jõudlust parandada, kui seda mõõdetakse megabaitides? Isegi kõige odavamate RAM-i komplektidega on tänapäeval kaasas 16 GB, nii et kuidas saab vaid mõne täiendava megabaidi vahemälu lisamine jõudlust nii palju muuta? Vahemälu ei ole teie tavaline mälutüüp.

Vahemälu: väike kogus kiiret mälu

Allikas: AMD

Vahemälu on protsessorites tegelikult üsna hiljutine arendus, mis pärineb 1990ndatest ja see leiutati RAM-i tõttu. RAM on arvutite põhikomponent, mis salvestab märkimisväärsel hulgal andmeid, mida protsessorid (nagu CPU-d ja GPU-d) eeldatavasti üsna sageli vajavad. Pikka aega püsis RAM-i jõudluse paranemine protsessori jõudluse paranemisega sammu, kuid 1990. aastateks hakkas see muutuma Ilmselge, et RAM ei suuda uusimate protsessoritega sammu pidada. RAM-il oli palju mahtu, kuid edastuskiirused olid liiga suured aeglane.

Siin on vahemälu. See ei ole nii füüsiliselt kui ka mahult nii suur kui RAM, kuid see asub protsessoris endas ja suudab andmeid edastada väga kiiresti ja väga väikese latentsusajaga. Kuni vahemällu salvestatakse andmeid, mida protsessor tegelikult vajab, võib see säästa aega, kuna samade andmete küsimine RAM-ist on kordades aeglasem. See oli suurepärane lahendus RAM-i probleemile ja võimaldas CPU disaineritel jätkata kiiremate protsessorite ja RAM-i disainerid jätkavad RAM-i mahu suurendamist, ilma et peaksite selle pärast nii palju muretsema esitus. Tänapäeval on vahemälu peaaegu igat tüüpi protsessorites.

Võite küsida, miks vahemälu on nii väike. Noh, see on enamasti seotud ruumi ja rahaga. Isegi 32 MB vahemälu võib protsessoril üsna vähe ruumi võtta ja tänapäevased kiibid on piiratud ligikaudu 600 mm2 kogupinnaga, mida tuleb mõistlikult kasutada. See tähendab, et vahemälule suurema ala pühendamine võib olla üsna kulukas ja olukord läheb tegelikult hullemaks, mitte paremaks. Uusimate tootmisprotsesside tulemuseks on vahemälu tiheduse vähenemine ja väiksemad täiustused ning TSMC ei suutnud oma 3nm protsessi esimese iteratsiooni käigus vahemälu suurust üldse vähendada.

Vahemälu tasemed ja mäluhierarhia

Allikas: Carlos Carvalho

Vahemälu leiutamine tähendas, et arvuti kõigis andmesalvestusseadmetes on uus kiht. Need kihid moodustavad nn mäluhierarhia, mida näete ülaloleval pildil ja mis on üksikasjalikud milline mälu kuhu läheb tüüpilises protsessorisüsteemis (kuigi muud tüüpi protsessorid näevad väga hea välja sarnane). Tänapäeval ei hõlma kaasaegne mäluhierarhia mitte ainult vahemälu, RAM-i ja püsimäluseadmeid, vaid ka vahemälu endas olevat mäluhierarhiat.

Enamikul protsessoritel on erinevatel eesmärkidel erinevad vahemälu tasemed. Vahemälu esimene ja väikseim tase on L1, millele antakse koheselt vajalike andmete töötlemiseks individuaalsed tuumad. L1 vahemälu mõõdetakse sageli kilobaitides, viimastel Ryzen 7000 protsessoritel on 64 KB L1 vahemälu tuuma kohta. Lisaks on tänapäevane L1 vahemälu sageli jagatud L1I-ks (juhiste jaoks) ja L1D-ks (andmete jaoks).

Järgmine on L2, mis on mõeldud pigem rühma tuumade kui üksikute tuumade jaoks. Loomulikult on L2 vahemälu suurem kui L1 vahemälu, sageli suurusjärgu võrra, kuid kuna see on palju suurem ja peab teenindama rohkem südamikke, on see aeglasem ja sellel on suurem latentsusaeg. Mõned protsessorid, eriti GPU-d ja aeglasemad protsessorid, suurendavad ainult L2 vahemälu.

Järgmine samm on L3, mida üldiselt kasutavad kõik kiibi tuumad. Selle suurus võib protsessorist olenevalt varieeruda mõne korra suuremast kui L2 vahemälust kuni suurusjärgu võrra suuremani. See tähendab, et see on isegi aeglasem kui L2 vahemälu, kuid ületab siiski RAM-i. Lisaks toimib L3 vahemälu sageli ka "ohvri vahemäluna", kuhu lähevad L1 ja L2 vahemälust välja tõstetud andmed. Kui see pole vajalik, võidakse see L3 vahemälust veelgi välja tõsta. Tänapäeval on L3 vahemälu AMD jaoks selle kiibitehnoloogia tõttu eriti oluline. Ryzen 3D V-Cache kiibid sisaldavad 64 MB L3 vahemälu ja RX 7000 Memory Cache Dies (või MCD-d) sisaldavad igaüks 16 MB L3 vahemälu.

Enamiku protsessorite kõrgeim vahemälu tase on L4, mis on sageli nii suur, et see on tegelikult RAM. Tegelikult on uusimad L4 vahemälu kasutavad CPU-d Inteli Sapphire Rapids Xeon kiibid, mis kasutavad tippmudelitel L4 vahemäluna HBM2. Teisest küljest pole AMD kunagi kasutanud L4 vahemälu ja selle asemel on rahul oma L3 vahemälu suurendamisega suure võimsuseni, lisades rohkem protsessori ja V-vahemälu kiipe. L4 vahemälust on tavaliselt rohkem kasu integreeritud GPU-dele, kuna see on sisseehitatud lahendus, mis suudab jagada andmeid protsessori ja integreeritud GPU vahel.

Mõnes kiibistikus, peamiselt mobiilsetes, on teist tüüpi vahemälu: süsteemitaseme vahemälu (SLC). Seda vahemälu kasutatakse seejärel kogu kiibistikus, nagu GPU, NPU ja CPU. Vahemälu võib asendada põhimällu päringute vajaduse, nii et SLC on kasulik kogu SoC-le.

Vahemälu on vajalik, kuid see ei paranda iseenesest jõudlust

Hoolimata kogu hiljutiste vahemälu uuenduste ümber käivatest hüpetest ei ole see jõudluse jaoks hõbedane. Lõppude lõpuks pole vahemälus töötlemisvõimalust; see lihtsalt salvestab andmeid ja ongi kõik. Kuigi iga protsessor saab suuremast vahemälust absoluutselt kasu, on sageli liiga kulukas lisada rohkem, kui täpselt vaja. Suurema vahemälu lisamine ei pruugi isegi töökoormusest olenevalt jõudlust parandada, mis on veel üks stiimul, et protsessorit ei koormata.

Nagu öeldud, võib teatud olukordades olla soovitav suure hulga vahemälu lisamine. Suure vahemäluga protsessorid töötavad näiteks mängudes paremini. AMD 3D V-vahemäluga Ryzeni protsessorid on mängimiseks üsna kiired, hoolimata sellest, et neil on madalam sagedus kui ilma V-vahemäluta kiibid ja Inteli 13. põlvkonna protsessorid on oluliselt kiiremad kui 12. põlvkonna kiibid, ainsaks oluliseks edasiminekuks on suurendatud vahemälu.

Lõppkokkuvõttes on vahemälu olemas, et protsessorid saaksid RAM-ist võimalikult sageli mööda minna ja jõudlus oleks võimalikult piiramatu. Protsessori disainerid peavad tasakaalustama vahemälu mahtu suuruse ja sellest tulenevalt ka kuludega, mis muutub iga uue tootmisprotsessi põlvkonnaga keerulisemaks. Kuigi aastakümneid pärast vahemälu leiutamist võetakse kasutusele uusi viise protsessoritele vahemälu lisamiseks, on raske ette kujutada, et selle protsessorite põhikomponendi eesmärk kunagi muutub.