Čo je vyrovnávacia pamäť?

Čo je vyrovnávacia pamäť a prečo ju majú CPU, GPU a iné druhy procesorov? Tu je všetko, čo potrebujete vedieť.

Rýchle odkazy

  • Cache: Malé množstvo vysokorýchlostnej pamäte
  • Úrovne vyrovnávacej pamäte a hierarchia pamäte
  • Cache je potrebná, ale sama o sebe nezlepšuje výkon

Hoci sa o cache nehovorí toľko ako o jadrách, RAM (Random Access Memory), príp VRAM, určite ste o tom už počuli, najmä nedávno. AMD hrdo propaguje herný výkon CPU Ryzen s 3D V-Cache v dôsledku používania vyrovnávacej pamäte a jedným z najväčších vylepšení spoločnosti Intel s procesormi Raptor Lake 13. generácie bolo pridanie ďalšej vyrovnávacej pamäte.

Ako však môže vyrovnávacia pamäť zlepšiť výkon, keď sa meria v megabajtoch? Dokonca aj tie najlacnejšie súpravy RAM majú v súčasnosti 16 GB, tak ako môže pridanie len niekoľkých extra megabajtov vyrovnávacej pamäte urobiť taký veľký rozdiel vo výkone? Cache nie je váš normálny typ pamäte.

Cache: Malé množstvo vysokorýchlostnej pamäte

Zdroj: AMD

Cache je v skutočnosti pomerne nedávny vývoj v oblasti procesorov, ktorý sa datuje do 90. rokov minulého storočia a bol vynájdený kvôli RAM. RAM je kľúčovým komponentom v počítačoch, ktorý ukladá značné množstvo údajov, ktoré procesory (ako CPU a GPU) budú podľa očakávania potrebovať pomerne často. Po dlhú dobu držali vylepšenia výkonu RAM krok so zlepšením výkonu CPU, ale v 90. rokoch minulého storočia sa Je zrejmé, že RAM nebude schopná držať krok s najnovšími procesormi. RAM mala veľa kapacity, ale prenosové rýchlosti boli príliš vysoké pomaly.

Tu prichádza cache. Fyzicky ani kapacitne nie je ani zďaleka taká veľká ako RAM, ale nachádza sa vo vnútri samotného procesora a dokáže prenášať dáta veľmi rýchlo a s veľmi nízkou latenciou. Pokiaľ vyrovnávacia pamäť ukladá údaje, ktoré procesor skutočne potrebuje, môže ušetriť čas, pretože vyžiadanie rovnakých údajov od RAM je mnohokrát pomalšie. Bolo to skvelé riešenie problému RAM a umožnilo dizajnérom CPU pokračovať vo výrobe rýchlejších CPU a Konštruktéri RAM, aby pokračovali vo vytváraní väčších kapacít RAM bez toho, aby sa o to museli starať výkon. Cache je dnes takmer v každom druhu procesora.

Možno sa čudujete, prečo je vyrovnávacia pamäť taká malá. No, väčšinou to súvisí s priestorom a peniazmi. Dokonca aj 32 MB vyrovnávacej pamäte môže zaberať dosť miesta na procesore a moderné čipy sú obmedzené na približne 600 mm2 celkovej plochy, čo sa musí používať rozumne. To znamená, že vyhradenie väčšej oblasti pre vyrovnávaciu pamäť môže byť dosť drahé a táto situácia sa v skutočnosti zhoršuje, nie zlepšuje. Najnovšie výrobné procesy majú za následok stále menšie a menšie vylepšenia v hustote vyrovnávacej pamäte a TSMC v prvej iterácii svojho 3nm procesu vôbec nedokázalo zmenšiť veľkosť vyrovnávacej pamäte.

Úrovne vyrovnávacej pamäte a hierarchia pamäte

Zdroj: Carlos Carvalho

Vynález vyrovnávacej pamäte znamenal, že všetky zariadenia na ukladanie údajov v počítači majú novú vrstvu. Tieto vrstvy tvoria to, čo sa nazýva hierarchia pamäte, ktorú môžete vidieť na obrázku vyššie a podrobne popisuje aká pamäť ide kam v typickom systéme v rámci CPU (hoci iné druhy procesorov budú vyzerať veľmi dobre podobný). Dnes moderná hierarchia pamäte nezahŕňa len vyrovnávaciu pamäť, RAM a trvalé úložné zariadenia, ale aj hierarchiu pamäte v samotnej vyrovnávacej pamäti.

Väčšina procesorov má rôzne úrovne vyrovnávacej pamäte na rôzne účely. Prvou a najmenšou úrovňou vyrovnávacej pamäte je L1, ktorá má jednotlivé jadrá na spracovanie údajov, ktoré sú potrebné okamžite. L1 cache sa často meria v kilobajtoch, pričom najnovšie CPU Ryzen 7000 majú 64 KB L1 cache na jadro. Okrem toho sa moderná vyrovnávacia pamäť L1 často ďalej delí na L1I (pre inštrukcie) a L1D (pre dáta).

Ďalej je to L2, ktoré je skôr pre skupinu jadier ako pre jednotlivé. Prirodzene, vyrovnávacia pamäť L2 je väčšia ako vyrovnávacia pamäť L1, často rádovo, ale tým, že je oveľa väčšia a musí obsluhovať viac jadier, je pomalšia a má vyššiu latenciu. Niektoré procesory, najmä GPU a pomalšie CPU, prejdú iba do vyrovnávacej pamäte L2.

Ďalším krokom je L3, ktorý vo všeobecnosti používajú všetky jadrá na čipe. Jeho veľkosť sa môže líšiť od niekoľkonásobne väčšej ako vyrovnávacia pamäť L2 až po viac ako rádovo väčšiu, v závislosti od procesora. To znamená, že je ešte pomalší ako vyrovnávacia pamäť L2, ale stále prekonáva RAM. Okrem toho vyrovnávacia pamäť L3 tiež často funguje ako „vyrovnávacia pamäť obetí“, do ktorej idú údaje odstránené z vyrovnávacej pamäte L1 a L2. Ak to nie je potrebné, môže byť ďalej vyradené z vyrovnávacej pamäte L3. V súčasnosti je L3 cache pre AMD obzvlášť dôležitá kvôli jej čipletovej technológii. Čipy Ryzen 3D V-Cache obsahujú 64 MB L3 cache a RX 7000 Memory Cache Dies (alebo MCD) obsahujú 16 MB L3 cache.

Najvyššia úroveň vyrovnávacej pamäte na väčšine procesorov je L4, ktorá je často taká veľká, že je to v skutočnosti RAM. V skutočnosti najnovšie procesory využívajúce vyrovnávaciu pamäť L4 sú čipy Sapphire Rapids Xeon od Intelu, ktoré používajú HBM2 ako vyrovnávaciu pamäť L4 na špičkových modeloch. Na druhej strane AMD nikdy nepoužila vyrovnávaciu pamäť L4 a namiesto toho sa uspokojila s rozšírením vyrovnávacej pamäte L3 na vysoké kapacity pridaním ďalších čipov CPU a V-Cache. Cache L4 zvyčajne viac prospieva integrovaným grafickým procesorom, pretože ide o vlastné riešenie, ktoré dokáže zdieľať údaje medzi CPU a integrovaným GPU.

V niektorých čipsetoch, predovšetkým mobilných, existuje iný typ vyrovnávacej pamäte: vyrovnávacia pamäť na úrovni systému (SLC). Táto vyrovnávacia pamäť sa potom používa v celej čipovej sade, ako je GPU, NPU a CPU. Cache môže nahradiť potrebu požiadaviek na hlavnú pamäť, takže SLC je prínosom pre celý SoC.

Cache je potrebná, ale sama o sebe nezlepšuje výkon

Napriek všetkému humbuku okolo nedávnych inovácií vyrovnávacej pamäte to nie je strieborná guľka pre výkon. Koniec koncov, vo vyrovnávacej pamäti nie je žiadna schopnosť spracovania; len ukladá dáta a to je všetko. Hoci každý procesor môže mať absolútne výhody z toho, že má viac vyrovnávacej pamäte, často je príliš drahé pridať viac, než je presne potrebné množstvo. Pridanie ďalšej vyrovnávacej pamäte nemusí dokonca zlepšiť výkon v závislosti od pracovného zaťaženia, čo je ďalším stimulom, aby ste nezaťažili procesor.

Ako už bolo povedané, v určitých situáciách môže byť žiaduce pridať veľké množstvo vyrovnávacej pamäte. Napríklad procesory s veľkým množstvom vyrovnávacej pamäte majú lepší výkon v hrách. Procesory AMD Ryzen s 3D V-Cache sú dosť rýchle na hranie napriek tomu, že majú nižšiu frekvenciu ako čipy bez V-Cache a Procesory Intel 13. generácie sú výrazne rýchlejšie ako čipy 12. generácie, pričom jediným veľkým vylepšením je zväčšenie cache.

V konečnom dôsledku existuje vyrovnávacia pamäť, takže procesory môžu obísť RAM tak často, ako je to možné, a výkon môže byť tak neobmedzený, ako je to len možné. Dizajnéri CPU musia vyvážiť kapacitu vyrovnávacej pamäte s veľkosťou a v konečnom dôsledku aj s nákladmi, čo je s každou generáciou nových výrobných procesov čoraz ťažšie. Aj keď sa nové spôsoby pridávania vyrovnávacej pamäte do procesorov zavádzajú desaťročia po vynájdení vyrovnávacej pamäte, je ťažké si predstaviť, že sa účel tejto kľúčovej zložky procesorov niekedy zmení.