Mikä on välimuisti?

Mikä on välimuisti ja miksi prosessoreissa, grafiikkasuorittimissa ja muissa prosessoreissa on se? Tässä on kaikki, mitä sinun tarvitsee tietää.

Pikalinkit

  • Välimuisti: Pieni määrä nopeaa muistia
  • Välimuistin tasot ja muistihierarkia
  • Välimuisti on välttämätön, mutta se ei itsessään paranna suorituskykyä

Vaikka välimuistista ei puhuta niin paljon kuin ytimistä, RAM (Random Access Memory), tai VRAM, olet luultavasti kuullut siitä aiemmin, varsinkin äskettäin. AMD mainostaa ylpeänä pelisuorituskykyään Ryzen-suorittimet 3D V-välimuistilla välimuistin käytön seurauksena, ja yksi Intelin suurimmista parannuksista 13. sukupolven Raptor Lake -suorittimiin oli välimuistin lisääminen.

Mutta kuinka välimuisti voi parantaa suorituskykyä, kun se mitataan megatavuina? Jopa halvimmissa RAM-sarjoissa on nykyään 16 Gt, joten kuinka vain muutaman ylimääräisen megatavun välimuistin lisääminen voi parantaa suorituskykyä niin paljon? No, välimuisti ei ole normaali muistityyppisi.

Välimuisti: Pieni määrä nopeaa muistia

Lähde: AMD

Välimuisti on itse asiassa melko uusi kehitys prosessoreissa, peräisin 1990-luvulta, ja se keksittiin RAM-muistin takia. RAM on keskeinen komponentti tietokoneissa, joka tallentaa huomattavan määrän dataa, jota prosessorit (kuten CPU: t ja GPU: t) tarvitsevat melko usein. RAM-muistin suorituskyvyn parannukset pysyivät pitkään suorittimen suorituskyvyn parantumisen tahdissa, mutta 1990-luvulla siitä oli tulossa On selvää, että RAM ei pystyisi pysymään uusimpien prosessorien tahdissa. RAM-muistissa oli paljon kapasiteettia, mutta siirtonopeudet olivat aivan liian hidas.

Tässä välimuisti tulee sisään. Se ei ole läheskään yhtä suuri kuin RAM-muisti fyysisesti tai kapasiteetilla, mutta se on itse prosessorissa ja voi siirtää tietoja erittäin nopeasti ja erittäin alhaisella latenssilla. Niin kauan kuin välimuisti tallentaa prosessorin tarvitsemat tiedot, se voi säästää aikaa, koska samojen tietojen pyytäminen RAM-muistista on monta kertaa hitaampaa. Se oli loistava ratkaisu RAM-ongelmaan ja antoi prosessorisuunnittelijoille mahdollisuuden jatkaa nopeampien prosessorien valmistamista RAM-suunnittelijat jatkavat RAM-kapasiteetin kasvattamista ilman, että sinun tarvitsee huolehtia niin paljon esitys. Nykyään välimuisti on melkein kaikissa prosessoreissa.

Saatat kuitenkin ihmetellä, miksi välimuisti on niin pieni. No, se liittyy lähinnä tilaan ja rahaan. Jopa 32 megatavua välimuistia voi viedä melko vähän tilaa prosessorissa, ja nykyaikaisten sirujen kokonaispinta-ala on rajoitettu noin 600 mm2:iin, jota on käytettävä viisaasti. Tämä tarkoittaa, että välimuistin lisääminen voi tulla melko kalliiksi ja tilanne on itse asiassa huononemassa, ei paranemassa. Uusimmat valmistusprosessit johtavat pienempiin ja pienempiin parannuksiin välimuistin tiheydessä, ja TSMC ei onnistunut pienentämään välimuistin kokoa ollenkaan 3nm: n prosessin ensimmäisessä iteraatiossa.

Välimuistin tasot ja muistihierarkia

Lähde: Carlos Carvalho

Välimuistin keksiminen tarkoitti, että kaikki tietokoneen tiedontallennuslaitteet saivat uuden kerroksen. Nämä kerrokset muodostavat niin sanotun muistihierarkian, joka näkyy yllä olevassa kuvassa ja se sisältää yksityiskohtia mikä muisti menee minne tyypillisessä prosessorin järjestelmässä (vaikka muunlaiset prosessorit näyttävät hyvin samanlainen). Nykyään nykyaikainen muistihierarkia ei sisällä vain välimuistia, RAM-muistia ja pysyviä tallennuslaitteita, vaan myös itse välimuistissa olevan muistihierarkian.

Useimmilla prosessoreilla on eri tasoisia välimuistia eri tarkoituksiin. Ensimmäinen ja pienin välimuistitaso on L1, jolle annetaan yksittäiset ytimet välittömästi tarvittavan tiedon käsittelemiseksi. L1-välimuisti mitataan usein kilotavuina, ja uusimmissa Ryzen 7000 -suorittimissa on 64 kt L1-välimuistia ydintä kohti. Lisäksi nykyaikainen L1-välimuisti jaetaan usein edelleen L1I: hen (ohjeita varten) ja L1D: hen (datalle).

Seuraavaksi on L2, joka on tarkoitettu ryhmälle ytimiä yksittäisten ytimien sijaan. Luonnollisesti L2-välimuisti on suurempi kuin L1-välimuisti, usein suuruusluokkaa, mutta koska se on paljon suurempi ja tarvitsee palvella enemmän ytimiä, se on hitaampi ja sillä on korkeampi latenssi. Jotkut prosessorit, erityisesti GPU: t ja hitaammat suorittimet, käyttävät vain L2-välimuistia.

Seuraava vaihe on L3, jota yleensä käyttävät kaikki sirun ytimet. Sen koko voi vaihdella muutaman kerran L2-välimuistia suuremmasta yli suuruusluokkaa suurempaan prosessorista riippuen. Tämä tarkoittaa, että se on jopa hitaampi kuin L2-välimuisti, mutta on silti parempi kuin RAM. Lisäksi L3-välimuisti toimii usein myös "uhrivälimuistina", jonne L1- ja L2-välimuistista häätetyt tiedot menevät. Se voidaan edelleen häätää L3-välimuistista, jos se on tarpeeton. Nykyään L3-välimuisti on erityisen tärkeä AMD: lle siruteknologiansa vuoksi. Ryzen 3D V-Cache -sirut sisältävät 64 Mt L3-välimuistia ja RX 7000 Memory Cache Dies (tai MCD) sisältävät 16 Mt L3-välimuistia.

Suurin useimmissa prosessoreissa havaittu välimuisti on L4, joka on usein niin suuri, että se on käytännössä RAM-muistia. Itse asiassa viimeisimmät L4-välimuistia käyttävät suorittimet ovat Intelin Sapphire Rapids Xeon -sirut, jotka käyttävät HBM2:ta L4-välimuistina huippuluokan malleissa. AMD sitä vastoin ei ole koskaan käyttänyt L4-välimuistia, ja sen sijaan tyytyy laajentamaan L3-välimuistiaan suuriin kapasiteettiin lisäämällä CPU- ja V-Cache-siruja. L4-välimuisti hyödyttää tyypillisesti enemmän integroituja GPU: ita, koska se on on-die-ratkaisu, joka voi jakaa tietoja suorittimen ja integroidun GPU: n välillä.

Joissakin piirisarjoissa, pääasiassa mobiililaitteissa, on toisenlainen välimuisti: järjestelmätason välimuisti (SLC). Tätä välimuistia käytetään sitten koko piirisarjassa, kuten GPU, NPU ja CPU. Välimuisti voi korvata pyyntöjen tarpeen päämuistiin, joten SLC hyödyttää koko SoC: tä.

Välimuisti on välttämätön, mutta se ei itsessään paranna suorituskykyä

Huolimatta viimeaikaisten välimuistiinnovaatioiden ympärillä olevasta hypetystä, se ei ole suorituskyvyn paras luoti. Loppujen lopuksi välimuistissa ei ole käsittelykykyä; se vain tallentaa dataa, ja se on siinä. Vaikka jokainen prosessori voi ehdottomasti hyötyä enemmän välimuistista, on usein liian kallista lisätä enemmän kuin täsmälleen tarvittava määrä. Välimuistin lisääminen ei ehkä edes paranna suorituskykyä työmäärästä riippuen, mikä on lisäkannustin olla käyttämättä prosessoria.

Tästä huolimatta suuren määrän välimuistin lisääminen voi olla toivottavaa tietyissä tilanteissa. Prosessorit, joissa on paljon välimuistia, toimivat yleensä paremmin esimerkiksi peleissä. AMD: n Ryzen-suorittimet, joissa on 3D V-Cache, ovat melko nopeita pelaamiseen huolimatta siitä, että niiden taajuus on pienempi kuin sirut ilman V-Cachea. Intelin 13. sukupolven CPU: t ovat huomattavasti nopeampia kuin 12. sukupolven sirut, ja ainoa merkittävä parannus on suurennettu kätkö.

Loppujen lopuksi välimuisti on olemassa, jotta prosessorit voivat ohittaa RAM-muistin niin usein kuin mahdollista ja suorituskyky voi olla mahdollisimman hillitöntä. CPU-suunnittelijoiden on tasapainotettava välimuistikapasiteettia koon ja sitä kautta myös kustannusten kanssa, mikä vaikeutuu jokaisen uuden tuotantoprosessin sukupolven myötä. Vaikka uusia tapoja lisätä välimuistia prosessoreihin otetaan käyttöön vuosikymmeniä välimuistin keksimisen jälkeen, on vaikea kuvitella, että tämän prosessorien keskeisen osan tarkoitus muuttuu koskaan.