Hvad er cache?

Hvad er cache, og hvorfor har CPU'er, GPU'er og andre slags processorer det? Her er alt, hvad du behøver at vide.

hurtige links

  • Cache: En lille mængde højhastighedshukommelse
  • Cache-niveauer og hukommelseshierarkiet
  • Cache er nødvendig, men forbedrer ikke ydeevnen i sig selv

Selvom der ikke tales så meget om cache som om kerner, vædder (Random Access Memory), eller VRAM, du har sikkert hørt om det før, især for nylig. AMD reklamerer med stolthed for sin spilydelse Ryzen CPU'er med 3D V-Cache som et resultat af brugen af ​​cache, og en af ​​Intels største forbedringer med sine 13. generations Raptor Lake CPU'er var at tilføje mere cache.

Men hvordan kan cache forbedre ydeevnen, når den måler i megabyte? Selv de billigste RAM-sæt kommer med 16 GB i disse dage, så hvordan kan tilføjelse af et par ekstra megabyte cache gøre så stor en forskel for ydeevnen? Nå, cache er ikke din normale type hukommelse.

Cache: En lille mængde højhastighedshukommelse

Kilde: AMD

Cache er faktisk en ret ny udvikling inden for processorer, der går tilbage til 1990'erne, og den blev opfundet på grund af RAM. RAM er en nøglekomponent i computere, der gemmer en betydelig mængde data, som processorer (som CPU'er og GPU'er) forventes at have brug for ret ofte. I lang tid holdt forbedringer i RAM-ydeevne trit med forbedringer i CPU-ydeevne, men i 1990'erne var det ved at blive indlysende, at RAM ikke ville være i stand til at følge med de nyeste CPU'er. RAM havde masser af kapacitet, men overførselshastighederne var det også langsom.

Her kommer cachen ind. Den er ikke nær så stor som RAM hverken fysisk eller efter kapacitet, men den er inde i selve processoren og kan overføre data meget hurtigt og med meget lav latenstid. Så længe cachen gemmer de data, som processoren faktisk har brug for, kan det spare tid, fordi det er mange gange langsommere at bede RAM om de samme data. Det var en fantastisk løsning på RAM-problemet og gjorde det muligt for CPU-designere at fortsætte med at lave hurtigere CPU'er og RAM-designere til at blive ved med at lave større kapacitet af RAM uden at skulle bekymre dig så meget om ydeevne. I dag er cache i stort set alle slags processorer.

Du undrer dig måske over, hvorfor cachen er så lille. Nå, det har mest at gøre med plads og penge. Selv 32 MB cache kan optage en del plads på en processor, og moderne chips er begrænset til omkring 600 mm2 i det samlede areal, hvilket skal bruges fornuftigt. Det betyder, at det kan blive ret dyrt at dedikere mere område til cache, og den situation bliver faktisk værre, ikke bedre. De seneste fremstillingsprocesser resulterer i mindre og mindre forbedringer i cache-tæthed, og TSMC formåede slet ikke at reducere størrelsen af ​​cache i den første iteration af sin 3nm-proces.

Cache-niveauer og hukommelseshierarkiet

Kilde: Carlos Carvalho

Opfindelsen af ​​cache betød, at der var et nyt lag til alle datalagringsenheder i en computer. Disse lag danner det, der kaldes hukommelseshierarkiet, som du kan se på billedet ovenfor, og det detaljerer hvilken hukommelse går hvor i et typisk system i en CPU (selvom andre slags processorer vil se meget ud lignende). I dag omfatter det moderne hukommelseshierarki ikke kun cache, RAM og permanente lagerenheder, men også et hukommelseshierarki i selve cachen.

De fleste processorer har forskellige niveauer af cache til forskellige formål. Det første og mindste niveau af cache er L1, som får individuelle kerner til behandling af data, der er nødvendige med det samme. L1-cache måles ofte i kilobytes, hvor de seneste Ryzen 7000 CPU'er har 64KB L1-cache pr. kerne. Derudover er den moderne L1-cache ofte yderligere opdelt i L1I (for instruktioner) og L1D (for data).

Næste op er L2, som er til en gruppe af kerner i stedet for individuelle. Naturligvis er L2-cachen større end L1-cachen, ofte i en størrelsesorden, men at være meget større og at skulle servicere flere kerner betyder, at den er langsommere og har højere latenstid. Nogle processorer, især GPU'er og langsommere CPU'er, vil kun gå op til L2-cache.

Næste trin er L3, som generelt bruges af alle kerner på chippen. Dens størrelse kan variere fra et par gange større end L2-cachen til mere end en størrelsesorden større, afhængigt af processoren. Dette betyder, at den er endnu langsommere end L2-cache, men stadig overgår RAM. Derudover fungerer L3-cachen også ofte som en "offer-cache", hvilket er der, hvor data, der er smidt ud fra L1- og L2-cachen, går. Det kan blive fjernet yderligere fra L3-cachen, hvis det er unødvendigt. I dag er L3-cachen særlig vigtig for AMD på grund af sin chiplet-teknologi. Ryzen 3D V-Cache-chips indeholder 64 MB L3-cache, og RX 7000 Memory Cache Dies (eller MCD'er) indeholder hver 16 MB L3-cache.

Det højeste niveau af cache set på de fleste processorer er L4, som ofte er så stort, at det reelt er RAM. Faktisk er de seneste CPU'er til at bruge L4-cache Intels Sapphire Rapids Xeon-chips, som bruger HBM2 som en L4-cache på topmodeller. AMD har på den anden side aldrig brugt en L4-cache og nøjes i stedet med at forstørre sin L3-cache til høje kapaciteter ved at tilføje flere CPU- og V-Cache-chiplets. En L4-cache gavner typisk integrerede GPU'er mere, da det er en on-die-løsning, der kan dele data mellem CPU'en og den integrerede GPU.

I nogle chipsæt, primært mobile, er der en anden type cache: system-level cache (SLC). Denne cache bruges derefter på tværs af hele chipsættet, såsom GPU, NPU og CPU. En cache kan erstatte behovet for anmodninger til hovedhukommelsen, så en SLC gavner hele SoC.

Cache er nødvendig, men forbedrer ikke ydeevnen i sig selv

På trods af al hypen omkring de seneste innovationer i cache, er det ikke en sølvkugle for ydeevne. Når alt kommer til alt, er der ingen behandlingsevne i cachen; den gemmer bare data, og det er det. Selvom hver processor absolut kan drage fordel af at have mere cache, er det ofte for dyrt at tilføje mere end præcis den nødvendige mængde. Tilføjelse af mere cache forbedrer måske ikke engang ydeevnen afhængigt af arbejdsbyrden, hvilket er et yderligere incitament til ikke at lægge et ton på en processor.

Når det er sagt, kan det være ønskeligt i visse situationer at kunne tilføje en stor mængde cache. CPU'er med masser af cache har en tendens til at præstere bedre i spil, for eksempel. AMD's Ryzen CPU'er med 3D V-Cache er ret hurtige til spil på trods af at de har en lavere frekvens end chips uden V-Cache, og Intels 13. generations CPU'er er betydeligt hurtigere end 12. generations chips, hvor den eneste større forbedring er en forstørret cache.

I sidste ende eksisterer cachen, så processorer kan omgå RAM så ofte som muligt, og ydeevnen kan være så uhæmmet som muligt. CPU-designere skal balancere cachekapacitet med størrelse og i forlængelse heraf omkostningerne, hvilket bliver vanskeligere for hver generation af nye fremstillingsprocesser. Selvom nye måder at tilføje cache til processorer bliver introduceret årtier efter cachen blev opfundet, er det svært at forestille sig, at formålet med denne nøglekomponent i processorer nogensinde vil ændre sig.