Vad är cache?

Vad är cache, och varför har processorer, grafikprocessorer och andra typer av processorer det? Här är allt du behöver veta.

snabblänkar

  • Cache: En liten mängd höghastighetsminne
  • Cachenivåer och minneshierarkin
  • Cache är nödvändigt men förbättrar inte prestandan på egen hand

Även om cache inte pratas lika mycket om kärnor, Bagge (Random Access Memory), eller VRAM, du har säkert hört talas om det förut, särskilt nyligen. AMD annonserar stolt spelprestanda för sin Ryzen-processorer med 3D V-Cache som ett resultat av att använda cache, och en av Intels största förbättringar med sin 13:e generationens Raptor Lake-processorer var att lägga till mer cache.

Men hur kan cache förbättra prestandan när den mäter i termer av megabyte? Även de billigaste RAM-paketen kommer med 16 GB nuförtiden, så hur kan det göra så stor skillnad för prestanda att lägga till bara några extra megabyte cache? Tja, cache är inte din vanliga typ av minne.

Cache: En liten mängd höghastighetsminne

Källa: AMD

Cache är faktiskt en ganska ny utveckling inom processorer, som går tillbaka till 1990-talet, och den uppfanns på grund av RAM. RAM är en nyckelkomponent i datorer som lagrar en betydande mängd data som processorer (som processorer och grafikprocessorer) förväntas behöva ganska ofta. Under lång tid höll förbättringar i RAM-prestanda jämna steg med förbättringar av CPU-prestanda, men på 1990-talet började det bli uppenbart att RAM inte skulle kunna hålla jämna steg med de senaste CPU: erna. RAM hade massor av kapacitet, men överföringshastigheterna var alldeles för långsam.

Här kommer cachen in. Det är inte alls lika stort som RAM-minnet, varken fysiskt eller kapacitetsmässigt, men det är inne i själva processorn och kan överföra data mycket snabbt och med mycket låg latens. Så länge cachen lagrar den data som processorn faktiskt behöver, kan det spara tid eftersom det är många gånger långsammare att be RAM om samma data. Det var en bra lösning på RAM-problemet och gjorde det möjligt för CPU-designers att fortsätta göra snabbare CPU: er och RAM-designers att fortsätta göra större kapacitet av RAM-minne utan att behöva oroa sig så mycket för prestanda. Idag finns cache i nästan alla typer av processorer.

Du kanske undrar varför cachen är så liten. Jo, det har mest att göra med utrymme och pengar. Även 32 MB cache kan ta upp en hel del utrymme på en processor, och moderna chips är begränsade till ungefär 600 mm2 i total yta, vilket måste användas klokt. Det betyder att det kan bli ganska dyrt att dedikera mer område till cache, och den situationen blir faktiskt värre, inte bättre. De senaste tillverkningsprocesserna resulterar i mindre och mindre förbättringar av cache-densitet, och TSMC misslyckades med att minska storleken på cachen alls i den första iterationen av sin 3nm-process.

Cachenivåer och minneshierarkin

Källa: Carlos Carvalho

Uppfinningen av cache innebar att det fanns ett nytt lager för alla datalagringsenheter i en dator. Dessa lager bildar det som kallas minneshierarkin, som du kan se i bilden ovan, och den detaljerar vilket minne går vart i ett typiskt system inom en CPU (även om andra typer av processorer kommer att se väldigt ut liknande). Idag inkluderar den moderna minneshierarkin inte bara cache, RAM och permanenta lagringsenheter utan också en minneshierarki inom själva cachen.

De flesta processorer har olika nivåer av cache för olika ändamål. Den första och minsta nivån av cache är L1, som ges individuella kärnor för att behandla data som behövs omedelbart. L1-cache mäts ofta i kilobyte, där de senaste Ryzen 7000-processorerna har 64KB L1-cache per kärna. Dessutom är den moderna L1-cachen ofta ytterligare uppdelad i L1I (för instruktioner) och L1D (för data).

Nästa upp är L2, som är för en grupp av kärnor snarare än individuella. Naturligtvis är L2-cachen större än L1-cachen, ofta i en storleksordning, men att vara mycket större och behöva serva fler kärnor betyder att den är långsammare och har högre latens. Vissa processorer, särskilt GPU: er och långsammare processorer, går bara upp till L2-cache.

Nästa steg är L3, som vanligtvis används av alla kärnor på chipet. Dess storlek kan variera från några gånger större än L2-cachen till mer än en storleksordning större, beroende på processorn. Det betyder att den är ännu långsammare än L2-cache men ändå överträffar RAM. Dessutom fungerar L3-cachen också ofta som en "offercache", vilket är dit data som vräkts från L1- och L2-cachen går. Den kan vräkas ytterligare från L3-cachen om den är onödig. Idag är L3-cachen särskilt viktig för AMD på grund av dess chipletteknologi. Ryzen 3D V-Cache-chips innehåller 64 MB L3-cache, och RX 7000 Memory Cache Dies (eller MCD-skivor) innehåller 16 MB L3-cache vardera.

Den högsta nivån av cache som setts på de flesta processorer är L4, som ofta är så stor att det faktiskt är RAM. Faktum är att de senaste CPU: erna som använder L4-cache är Intels Sapphire Rapids Xeon-chips, som använder HBM2 som en L4-cache på toppmodeller. AMD, å andra sidan, har aldrig använt en L4-cache och nöjer sig istället med att förstora sin L3-cache till hög kapacitet genom att lägga till fler CPU- och V-Cache-chiplets. En L4-cache gynnar vanligtvis integrerade GPU: er mer, eftersom det är en on-die-lösning som kan dela data mellan CPU: n och den integrerade GPU: n.

I vissa chipset, främst mobila, finns det en annan typ av cache: systemnivåcachen (SLC). Denna cache används sedan över hela styrkretsen, såsom GPU, NPU och CPU. En cache kan ersätta behovet av förfrågningar till huvudminnet, så en SLC gynnar hela SoC.

Cache är nödvändigt men förbättrar inte prestandan på egen hand

Trots all hype kring de senaste innovationerna inom cache, är det inte en silverkula för prestanda. Det finns trots allt ingen bearbetningsförmåga i cachen; den lagrar bara data, och det är allt. Även om varje processor absolut kan dra nytta av att ha mer cache, är det ofta för dyrt att lägga till mer än exakt den mängd som behövs. Att lägga till mer cache kanske inte ens förbättrar prestanda beroende på arbetsbelastningen, vilket är ytterligare ett incitament att inte lägga en ton på en processor.

Med det sagt, att kunna lägga till en stor mängd cache kan vara önskvärt i vissa situationer. CPU: er med mycket cache tenderar att prestera bättre i till exempel spel. AMD: s Ryzen-processorer med 3D V-Cache är ganska snabba för spel trots att de har en lägre frekvens än chips utan V-Cache, och Intels 13:e generationens processorer är betydligt snabbare än 12:e generationens chips, med den enda större förbättringen är en förstorad cache.

I slutändan finns cache så att processorer kan kringgå RAM så ofta som möjligt och prestandan kan vara så ohämmad som möjligt. CPU-designers måste balansera cachekapacitet med storlek och, i förlängningen, kostnad, vilket blir svårare för varje generation av nya tillverkningsprocesser. Även om nya sätt att lägga till cache till processorer introduceras årtionden efter att cachen uppfanns, är det svårt att föreställa sig syftet med denna nyckelkomponent i processorer någonsin kommer att förändras.