Mikä on CPU-välimuisti?

Nykyaikaiset prosessorit toimivat uskomattoman nopeasti; ne voivat merkittävästi ylittää järjestelmän RAM-muistin. Tämä suorittimen ja muistin välinen nopeusepätasapaino saa prosessorisi usein olemaan käyttämättömänä odottaen tietojen lähettämistä sille, jotta se voi jatkaa prosessin suorittamista. Tämän estämiseksi, jolloin prosessorit voivat jatkaa toimintaansa yhä nopeammin, käytetään suorittimen välimuistia.

Kuinka suorittimen välimuisti nopeuttaa prosessoria?

Suorittimen välimuisti on suunniteltu mahdollisimman nopeaksi ja tallentamaan CPU: n pyytämät tiedot välimuistiin. CPU-välimuistin nopeus on optimoitu kolmella tavalla: latenssi, kaistanleveys ja läheisyys. Prosessorin välimuisti toimii erittäin alhaisilla viiveillä, mikä minimoi ajan, joka kuluu tuloksen palauttamiseen. Esimerkiksi Intel i9-9900k: n välimuistin latenssi on 0,8, 2,4 ja 11,1 nanosekuntia L1-, L2- ja L3-välimuistille. Vertailun vuoksi nykyaikaisen nopean RAM-muistin latenssi on luokkaa 14 nanosekuntia.

Vihje: Välimuistin tasot selitetään myöhemmin yksityiskohtaisemmin, mutta yksinkertaisesti sanottuna välimuistin alemmat kerrokset ovat nopeampia, mutta kalliimpia, joten niiden kapasiteetti on pienempi. Nanosekunti on sekunnin miljardisosa, joten 0,8 sekunnin latenssi tarkoittaa, että tuloksen palauttamiseen kuluu alle sekunnin miljardisosa.

Kaistanleveyden suhteen suorittimen välimuisti tarjoaa merkittäviä suorituskyvyn parannuksia perinteiseen tallennustilaan ja RAM-muistiin verrattuna. L1- ja L3-välimuistin lukunopeudet voivat olla huippuluokkaa 2,3 TB/s ja 370 Gt/s, kun taas RAM-muistin kaistanleveys on tyypillisesti noin 40 Gt/s. Tämä lisääntynyt kaistanleveys tarkoittaa, että suorittimen välimuisti voi siirtää tietoja suorittimeen paljon nopeammin kuin RAM.

Suurimpien mahdollisten nopeuksien saavuttamiseksi CPU-välimuisti on itse asiassa sisäänrakennettu CPU-suulakkeen piiiin. Tämä minimoi etäisyyden, jonka sähköisten signaalien on kuljettava, pitäen siten latenssin mahdollisimman alhaisena. Esimerkiksi kun L3-välimuisti siirrettiin ensimmäisen kerran emolevyltä CPU-suorittimeen, sen ajan prosessori (Pentium 4 EE) paransi suorituskykyä 10-20 %.

CPU-välimuistin arkkitehtuuri

Nykyaikaiset prosessorit käyttävät yleensä kolme kerrosta suorittimen välimuistia, joissa on merkintä L1-3, ja pienemmät välimuistit ovat lähempänä suorittimen ytimiä, nopeampia ja kalliimpia. Jokaisella yksittäisellä CPU-ytimellä moniytimisessä prosessorissa on oma L1-välimuisti. Se on tyypillisesti jaettu kahteen osaan, L1I ja L1D. L1I: tä käytetään suorittimen käskyjen välimuistiin, kun taas L1D: tä käytetään tietojen välimuistiin, joille nämä ohjeet suoritetaan.

Jokaisella CPU-ytimellä on tyypillisesti myös oma L2-välimuisti nykyaikaisessa prosessorissa. L2-välimuisti on suurempi ja hitaampi kuin L1-välimuisti, ja sitä käytetään ensisijaisesti sellaisten tietojen tallentamiseen, jotka eivät muuten mahdu L2-välimuistiin. Kun ydintä kohden on oma L2-välimuisti, vältetään välimuistin kilpailu. Välimuistikilpailussa eri ytimet taistelevat vaatiakseen välimuistitilaa omille työkuormilleen, mikä voi johtaa tärkeiden tietojen tyhjentämiseen välimuistista.

L3-välimuisti on tyypillisesti jaettu prosessorin kaikkien CPU-ytimien kesken. Jälleen L3-välimuisti on hitaampi kuin L2-välimuisti, mutta se on halvempi ja suurempi. Tarjoamalla jaetun välimuistin on mahdollista vähentää datan määrää, joka monistuisi alemmilla ydinkohtaisen välimuistin tasoilla.

Vinkki: Esimerkiksi välimuistin kooissa Intelin i9-9900K: ssa on 64 kt L1 ja 256 kt L2 välimuisti ydintä kohden (yhteensä 512 kt L1 ja 2 Mt L2), siinä on myös 16 Mt jaettu L3-välimuisti.

Miten prosessorin välimuistia käytetään?

Kaikkia suorittimen välimuistin tasoja käytetään nopeuttamaan prosessorin suorituskykyä tallentamalla tietoja RAM-muistista välimuistiin. Kun prosessori pyytää tietoja, se yleensä etsii ensin välimuistikerroksistaan ​​yrittääkseen saada tiedot mahdollisimman nopeasti. Jos tiedot löytyvät välimuistin osumasta, CPU voi jatkaa käsittelyä. Jos tiedot eivät ole välimuistissa, niin sanotussa välimuistin puutteessa, suorittimen on tarkistettava RAM ja sitten kiintolevy, jos tietoja ei myöskään ole. Nopeammat kerrokset tarkistetaan aina ensin parhaan suorituskyvyn saavuttamiseksi.

Auttaakseen CPU: ta saamaan tarvitsemansa tiedot välimuistissa silloin, kun se tarvitsee niitä, välimuisti yrittää ennakoida, mitä tietoja CPU saattaa tarvita seuraavaksi. Jos prosessori on esimerkiksi pyytänyt tietoja kuvasta, se renderöivä välimuisti saattaa yrittää tallentaa ennalta ehkäisevästi välimuistiin enemmän kuvadataa, jotta se voidaan syöttää CPU: lle mahdollisimman nopeasti.