Hva er cache?

click fraud protection

Hva er cache, og hvorfor har CPUer, GPUer og andre typer prosessorer det? Her er alt du trenger å vite.

Hurtigkoblinger

  • Cache: En liten mengde høyhastighetsminne
  • Hurtigbuffernivåer og minnehierarkiet
  • Cache er nødvendig, men forbedrer ikke ytelsen alene

Selv om cache ikke snakkes så mye om kjerner, RAM (Random Access Memory), eller VRAM, du har sikkert hørt om det før, spesielt nylig. AMD annonserer stolt spillytelse for sin Ryzen CPUer med 3D V-Cache som et resultat av bruk av cache, og en av Intels største forbedringer med 13. generasjons Raptor Lake CPUer var å legge til mer cache.

Men hvordan kan cache forbedre ytelsen når den måler i megabyte? Selv de billigste RAM-settene kommer med 16 GB i disse dager, så hvordan kan det å legge til bare noen få ekstra megabyte med hurtigbuffer gjøre en så stor forskjell for ytelsen? Vel, cache er ikke din normale type minne.

Cache: En liten mengde høyhastighetsminne

Kilde: AMD

Cache er faktisk en ganske ny utvikling innen prosessorer, som dateres tilbake til 1990-tallet, og den ble oppfunnet på grunn av RAM. RAM er en nøkkelkomponent i datamaskiner som lagrer en betydelig mengde data som prosessorer (som CPUer og GPUer) forventes å trenge ganske ofte. I lang tid holdt forbedringer i RAM-ytelse tritt med forbedringer i CPU-ytelse, men på 1990-tallet var det i ferd med å bli åpenbart at RAM ikke ville være i stand til å holde tritt med de nyeste CPUene. RAM hadde mye kapasitet, men overføringshastighetene var det også langsom.

Her kommer cachen inn. Den er ikke på langt nær så stor som RAM verken fysisk eller kapasitetsmessig, men den er inne i selve prosessoren og kan overføre data veldig raskt og med svært lav ventetid. Så lenge cachen lagrer dataene prosessoren faktisk trenger, kan det spare tid fordi det er mange ganger tregere å spørre RAM om de samme dataene. Det var en flott løsning på RAM-problemet og tillot CPU-designere å fortsette å lage raskere CPUer og RAM-designere for å fortsette å lage større kapasiteter med RAM uten å måtte bekymre deg så mye om opptreden. I dag er cache i stort sett alle typer prosessorer.

Du lurer kanskje på hvorfor cachen er så liten. Vel, det har mest med plass og penger å gjøre. Selv 32 MB hurtigbuffer kan ta opp ganske mye plass på en prosessor, og moderne brikker er begrenset til omtrent 600 mm2 i totalt areal, som må brukes med omhu. Det betyr å dedikere mer område til cache kan bli ganske dyrt, og den situasjonen blir faktisk verre, ikke bedre. De siste produksjonsprosessene resulterer i mindre og mindre forbedringer i cache-tetthet, og TSMC klarte ikke å redusere størrelsen på cache i det hele tatt i den første iterasjonen av sin 3nm-prosess.

Hurtigbuffernivåer og minnehierarkiet

Kilde: Carlos Carvalho

Oppfinnelsen av cache betydde at det var et nytt lag til alle datalagringsenheter i en datamaskin. Disse lagene danner det som kalles minnehierarkiet, som du kan se på bildet ovenfor, og det detaljer hvilket minne går hvor i et typisk system i en CPU (selv om andre typer prosessorer vil se veldig ut lignende). I dag inkluderer det moderne minnehierarkiet ikke bare cache, RAM og permanente lagringsenheter, men også et minnehierarki i selve cachen.

De fleste prosessorer har forskjellige nivåer av cache for ulike formål. Det første og minste nivået av cache er L1, som får individuelle kjerner for å behandle data som er nødvendig umiddelbart. L1-cache måles ofte i kilobyte, med de nyeste Ryzen 7000-prosessorene som har 64KB L1-cache per kjerne. I tillegg er den moderne L1-cachen ofte videre delt inn i L1I (for instruksjoner) og L1D (for data).

Neste opp er L2, som er for en gruppe kjerner i stedet for individuelle. Naturligvis er L2-cachen større enn L1-cachen, ofte i en størrelsesorden, men å være mye større og å måtte betjene flere kjerner betyr at den er tregere og har høyere latenstid. Noen prosessorer, spesielt GPUer og tregere CPUer, vil bare gå opp til L2-cache.

Neste trinn er L3, som vanligvis brukes av alle kjerner på brikken. Størrelsen kan variere fra noen få ganger større enn L2-cachen til mer enn en størrelsesorden større, avhengig av prosessoren. Dette betyr at den er enda tregere enn L2-cache, men likevel overgår RAM. I tillegg fungerer L3-cachen også ofte som en "offer-cache", som er dit data som blir kastet ut fra L1- og L2-cachen, går. Den kan bli kastet ut av L3-cachen ytterligere hvis den er unødvendig. I dag er L3-cachen spesielt viktig for AMD på grunn av brikketeknologien. Ryzen 3D V-Cache-brikker inneholder 64 MB L3-cache, og RX 7000 Memory Cache Dies (eller MCD-er) inneholder 16 MB L3-cache hver.

Det høyeste cachenivået som er sett på de fleste prosessorer er L4, som ofte er så stort at det faktisk er RAM. Faktisk er de siste CPU-ene som bruker L4-cache Intels Sapphire Rapids Xeon-brikker, som bruker HBM2 som en L4-cache på toppmodeller. AMD, på den annen side, har aldri brukt en L4-cache og nøyer seg i stedet med å forstørre L3-cachen til høy kapasitet ved å legge til flere CPU- og V-Cache-brikker. En L4-cache drar vanligvis mer nytte av integrerte GPU-er, siden det er en on-die-løsning som kan dele data mellom CPU og den integrerte GPU.

I noen brikkesett, først og fremst mobile, er det en annen type cache: system-level cache (SLC). Denne hurtigbufferen brukes deretter på tvers av hele brikkesettet, for eksempel GPU, NPU og CPU. En cache kan erstatte behovet for forespørsler til hovedminnet, så en SLC kommer hele SoC til gode.

Cache er nødvendig, men forbedrer ikke ytelsen alene

Til tross for all hypen rundt nyere innovasjoner i cache, er det ikke en sølvkule for ytelse. Tross alt er det ingen prosesseringsevne i hurtigbufferen; den lagrer bare data, og det er det. Selv om hver prosessor absolutt kan dra nytte av å ha mer cache, er det ofte for dyrt å legge til mer enn nøyaktig den nødvendige mengden. Å legge til mer hurtigbuffer vil kanskje ikke engang forbedre ytelsen avhengig av arbeidsbelastningen, noe som er et ytterligere insentiv til ikke å legge massevis på en prosessor.

Når det er sagt, kan det være ønskelig å legge til en stor mengde cache i visse situasjoner. CPUer med mye cache har en tendens til å prestere bedre i spill, for eksempel. AMDs Ryzen CPUer med 3D V-Cache er ganske raske for spill til tross for at de har en lavere frekvens enn brikker uten V-Cache, og Intels 13. generasjons CPUer er betydelig raskere enn 12. generasjons brikker, med den eneste store forbedringen en forstørret cache.

Til syvende og sist eksisterer cache slik at prosessorer kan omgå RAM så ofte som mulig og ytelsen kan være så uhemmet som mulig. CPU-designere må balansere cachekapasitet med størrelse og, i forlengelse, kostnad, noe som blir vanskeligere for hver generasjon av nye produksjonsprosesser. Selv om nye måter å legge til hurtigbuffer på prosessorer blir introdusert tiår etter at hurtigbufferen ble oppfunnet, er det vanskelig å forestille seg formålet med denne nøkkelkomponenten i prosessorer noen gang vil endre seg.