Kas ir kešatmiņa un kāpēc CPU, GPU un cita veida procesoros tā ir? Šeit ir viss, kas jums jāzina.
Ātrās saites
- Kešatmiņa: neliels ātrgaitas atmiņas apjoms
- Kešatmiņas līmeņi un atmiņas hierarhija
- Kešatmiņa ir nepieciešama, taču tā pati par sevi neuzlabo veiktspēju
Lai gan par kešatmiņu netiek runāts tik daudz kā par kodoliem, RAM (Brīvpiekļuves atmiņa) vai VRAM, jūs droši vien esat par to dzirdējuši iepriekš, it īpaši nesen. AMD ar lepnumu reklamē spēļu veiktspēju Ryzen CPU ar 3D V-kešatmiņu kešatmiņas izmantošanas rezultātā, un viens no lielākajiem Intel uzlabojumiem ar 13. paaudzes Raptor Lake centrālajiem procesoriem bija kešatmiņas pievienošana.
Bet kā kešatmiņa var uzlabot veiktspēju, ja to mēra megabaitos? Pat lētākie RAM komplekti mūsdienās ir aprīkoti ar 16 GB, tāpēc kā tikai dažu papildu megabaitu kešatmiņas pievienošana var tik lielas izmaiņas veiktspējā? Kešatmiņa nav jūsu parastais atmiņas veids.
Kešatmiņa: neliels ātrgaitas atmiņas apjoms
Avots: AMD
Kešatmiņa patiesībā ir diezgan nesena procesoru attīstība, kas datēta ar deviņdesmitajiem gadiem, un tā tika izgudrota RAM dēļ. RAM ir galvenais datoru komponents, kurā tiek glabāts ievērojams datu apjoms, kas procesoriem (piemēram, CPU un GPU) ir diezgan bieži vajadzīgs. Ilgu laiku RAM veiktspējas uzlabojumi neatpalika no CPU veiktspējas uzlabojumiem, taču 90. gados tas kļuva skaidrs, ka RAM nespēs sekot līdzi jaunākajiem CPU. RAM bija daudz ietilpības, taču pārsūtīšanas ātrums bija pārāk liels lēns.
Lūk, kur ienāk kešatmiņa. Tas ne tuvu nav tik liels kā RAM ne fiziski, ne pēc ietilpības, taču tas atrodas pašā procesorā un var pārsūtīt datus ļoti ātri un ar ļoti mazu latentumu. Kamēr kešatmiņā tiek glabāti procesoram faktiski nepieciešamie dati, tas var ietaupīt laiku, jo RAM prasīšana par tiem pašiem datiem ir daudzkārt lēnāka. Tas bija lielisks risinājums RAM problēmai un ļāva CPU dizaineriem turpināt ražot ātrākus CPU un RAM dizaineriem, lai turpinātu palielināt RAM ietilpību, neuztraucoties par to sniegumu. Mūsdienās kešatmiņa ir gandrīz visos procesoros.
Jums varētu rasties jautājums, kāpēc kešatmiņa ir tik maza. Nu, tas galvenokārt ir saistīts ar telpu un naudu. Pat 32 MB kešatmiņas var aizņemt diezgan maz vietas procesorā, un mūsdienu mikroshēmu kopējā platība ir ierobežota līdz aptuveni 600 mm2, kas ir jāizmanto saprātīgi. Tas nozīmē, ka vairāk vietas atvēlēšana kešatmiņai var izmaksāt diezgan dārgi un šī situācija patiesībā pasliktinās, nevis uzlabojas. Jaunākie ražošanas procesi nodrošina arvien mazākus un mazākus kešatmiņas blīvuma uzlabojumus, un TSMC savā 3 nm procesa pirmajā atkārtojumā nemaz neizdevās samazināt kešatmiņas lielumu.
Kešatmiņas līmeņi un atmiņas hierarhija
Avots: Carlos Carvalho
Kešatmiņas izgudrojums nozīmēja, ka visām datora datu glabāšanas ierīcēm ir jauns slānis. Šie slāņi veido tā saukto atmiņas hierarhiju, ko varat redzēt iepriekš esošajā attēlā, un tajā ir sniegta informācija kāda atmiņa kur iet tipiskā sistēmā CPU (lai gan cita veida procesori izskatīsies ļoti līdzīgi). Mūsdienās mūsdienu atmiņas hierarhija ietver ne tikai kešatmiņu, RAM un pastāvīgās atmiņas ierīces, bet arī atmiņas hierarhiju pašā kešatmiņā.
Lielākajai daļai procesoru dažādiem mērķiem ir dažādi kešatmiņas līmeņi. Pirmais un mazākais kešatmiņas līmenis ir L1, kuram tiek piešķirti atsevišķi kodoli tūlītējai nepieciešamo datu apstrādei. L1 kešatmiņa bieži tiek mērīta kilobaitos, un jaunākajiem Ryzen 7000 CPU ir 64 KB L1 kešatmiņas vienam kodolam. Turklāt mūsdienu L1 kešatmiņa bieži tiek sadalīta L1I (norādījumiem) un L1D (datiem).
Nākamais ir L2, kas ir paredzēts kodolu grupai, nevis atsevišķiem. Protams, L2 kešatmiņa ir lielāka nekā L1 kešatmiņa, bieži vien par lielumu, taču, tā ir daudz lielāka un jāapkalpo vairāk kodolu, tas nozīmē, ka tā darbojas lēnāk un tai ir lielāks latentums. Daži procesori, īpaši GPU un lēnāki CPU, palielinās tikai L2 kešatmiņu.
Nākamais solis ir L3, ko parasti izmanto visi mikroshēmas kodoli. Tās izmērs var atšķirties no dažām reizēm lielāks par L2 kešatmiņu līdz vairāk nekā par vienu pakāpi lielākam atkarībā no procesora. Tas nozīmē, ka tas ir pat lēnāks nekā L2 kešatmiņa, taču joprojām pārspēj RAM. Turklāt L3 kešatmiņa bieži darbojas arī kā "upura kešatmiņa", kurā tiek pārvietoti dati, kas izlikti no L1 un L2 kešatmiņas. Ja tas nav vajadzīgs, tas var tikt tālāk izlikts no L3 kešatmiņas. Mūsdienās L3 kešatmiņa ir īpaši svarīga AMD, pateicoties tās mikroshēmu tehnoloģijai. Ryzen 3D V-Cache mikroshēmās ir 64 MB L3 kešatmiņas, un RX 7000 Memory Cache Dies (vai MCD) katrā ir 16 MB L3 kešatmiņas.
Lielākajā daļā procesoru augstākais kešatmiņas līmenis ir L4, kas bieži vien ir tik liels, ka faktiski ir RAM. Faktiski jaunākie CPU, kas izmanto L4 kešatmiņu, ir Intel Sapphire Rapids Xeon mikroshēmas, kas izmanto HBM2 kā L4 kešatmiņu augstākās klases modeļos. No otras puses, AMD nekad nav izmantojis L4 kešatmiņu un tā vietā ir apmierināts ar L3 kešatmiņas palielināšanu līdz lielai ietilpībai, pievienojot vairāk CPU un V-Cache mikroshēmojumu. L4 kešatmiņa parasti dod lielāku labumu integrētajiem GPU, jo tas ir iebūvēts risinājums, kas var koplietot datus starp centrālo procesoru un integrēto GPU.
Dažās mikroshēmojumos, galvenokārt mobilajās, ir cita veida kešatmiņa: sistēmas līmeņa kešatmiņa (SLC). Pēc tam šī kešatmiņa tiek izmantota visā mikroshēmojumā, piemēram, GPU, NPU un CPU. Kešatmiņa var aizstāt vajadzību pēc pieprasījumiem galvenajai atmiņai, tāpēc SLC dod labumu visam SoC.
Kešatmiņa ir nepieciešama, taču tā pati par sevi neuzlabo veiktspēju
Neraugoties uz ažiotāžu, kas saistīta ar nesenajiem jauninājumiem kešatmiņā, tas nav nozīmīgs sniegums. Galu galā kešatmiņā nav apstrādes iespēju; tas tikai saglabā datus, un viss. Lai gan katrs procesors var gūt absolūtu labumu no lielākas kešatmiņas, bieži vien ir pārāk dārgi pievienot vairāk nekā tieši nepieciešams. Lielākas kešatmiņas pievienošana, iespējams, pat neuzlabos veiktspēju atkarībā no darba slodzes, kas ir vēl viens stimuls nelikt procesoram daudz.
Tomēr noteiktās situācijās var būt vēlama iespēja pievienot lielu daudzumu kešatmiņas. CPU ar lielu kešatmiņu parasti darbojas labāk, piemēram, spēlēs. AMD Ryzen CPU ar 3D V-kešatmiņu ir diezgan ātri spēlēšanai, neskatoties uz to, ka tiem ir zemāka frekvence nekā mikroshēmām bez V-Cache, un Intel 13. paaudzes CPU ir ievērojami ātrāki nekā 12. paaudzes mikroshēmas, un vienīgais nozīmīgais uzlabojums ir palielināts. kešatmiņa.
Galu galā kešatmiņa pastāv, lai procesori varētu apiet RAM, cik bieži vien iespējams, un veiktspēja var būt pēc iespējas neierobežota. CPU dizaineriem ir jāsabalansē kešatmiņas jauda ar lielumu un, attiecīgi, izmaksām, kas kļūst arvien grūtāk ar katru jaunu ražošanas procesu paaudzi. Lai gan jauni veidi, kā procesoriem pievienot kešatmiņu, tiek ieviesti gadu desmitiem pēc kešatmiņas izgudrošanas, ir grūti iedomāties, ka šīs procesoru galvenās sastāvdaļas mērķis jebkad mainīsies.