Mikä on käännöspuskuri?

Prosessorit ovat uskomattoman monimutkaisia ​​petoja. On olemassa valtava määrä toisiinsa liitettyjä osia, joiden kaikkien on toimittava täydellisessä sopusoinnussa saavuttaaksemme näkemämme suorituskykytason. Muistin suorituskyky on avaintekijä nykyaikaisten suorittimien suorituskyvyssä, erityisesti rajoittavana tekijänä.

Miksi muistin nopeus on niin tärkeä?

Prosessorit ovat uskomattoman nopeita, ja uusimmat sukupolvet toimivat 5,7 GHz:n taajuudella, kun ne on jäähdytetty riittävästi. Tämän ansiosta he voivat suorittaa 5,7 miljardia operaatiota sekunnissa. Monet näistä toiminnoista suorittavat toiminnon tietyntyyppisille tiedoille, jotka on tallennettava muistiin.

Pääjärjestelmän muisti, joka tunnetaan nimellä RAM, on myös erittäin nopea. Valitettavasti se on erittäin nopea verrattuna mihin tahansa muuhun kuin prosessoriin. Nykyaikaisen huippuluokan RAM-muistin absoluuttinen latenssi on luokkaa 60 nanosekuntia. Valitettavasti se tarkoittaa noin 342 CPU-sykliä. Muistin käytön nopeuttamiseksi käytetään CPU-välimuistia, joka tallentaa tiedot dynaamisesti välimuistiin. Tämä välimuisti sijaitsee itse CPU-suulakkeessa ja käyttää SRAM-soluja DRAM-solujen sijaan, mikä tekee siitä paljon nopeamman. Valitettavasti suorittimen välimuisti on myös paljon pienempi kuin järjestelmän RAM, ei yleensä edes 100 Mt. Pienestä koostaan ​​huolimatta porrastettu suorittimen välimuistijärjestelmä lisää merkittävästi järjestelmän suorituskykyä.

Tässä tulee virtuaalimuisti sotkemaan kaiken

Nykyaikaiset tietokoneet käyttävät virtuaalimuistia. Sen sijaan, että prosesseille osoitettaisiin fyysisiä muistiosoitteita, käytetään virtuaalimuistiosoitteita. Jokaisella prosessilla on oma virtuaalimuistin osoiteavaruutensa. Tästä on kaksi etua. Ensinnäkin se tarjoaa helpon erotuksen yhdelle prosessille kuuluvan muistin ja toiseen prosessiin kuuluvan muistin välillä. Tämä auttaa estämään hyökkäyksiä, joissa haittaohjelmat lukevat tietoja muiden ohjelmistojen muistista ja pääsevät mahdollisesti käsiksi arkaluonteisiin tietoihin. Se piilottaa myös fyysisen muistirakenteen prosessilta. Tämän ansiosta CPU voi siirtää harvoin käytettyjä muistin bittejä muistissa olevaan sivutustiedostoon ilman, että sitä välttämättä irrotetaan virtuaalisesta RAM-muistista. Näin tietokone pystyy hallitsemaan varovasti skenaarioita, joissa tarvitaan enemmän RAM-muistia kuin mitä fyysisesti on. Ilman virtuaalista muistia

Valitettavasti jos käytät näennäismuistiosoitteita, tietokoneen on itse asiassa muunnettava nämä virtuaalimuistin osoitteet fyysisiksi muistiosoitteiksi tietojen lukemiseksi. Tämä vaatii taulukon, joka tallentaa kaikki virtuaalimuistiosoitteiden käännökset fyysisiksi muistiosoitteiksi. Tämän koko riippuu suoraan käytetyn RAM-muistin määrästä. Se on yleensä melko pieni, ainakin verrattuna järjestelmän RAM-muistin kapasiteettiin. Valitettavasti, jos tallennat virtuaaliosoitteiden ja fyysisten osoitteiden välisen käännöksen RAM-muistiin, sinun on tehtävä kaksi pyyntöä RAM-muistiin jokaista RAM-pyyntöä kohden. Toinen löytää pyydettävän fyysisen osoitteen ja sitten toinen päästäkseen kyseiseen sijaintiin.

Syötä käännöspuskuri

Ratkaisu tähän ongelmaan on tallentaa käännöstaulukko jonnekin nopeammin. CPU-välimuisti sopisi hyvin, ainakin nopeuden näkökulmasta. Ongelma tässä on kuitenkin se, että suorittimen välimuisti on pieni ja jo paljon käytetty. Taulukko ei vain mahdu välimuistiin, vaan se häiritsisi sen jo suorituskyvyn määräävää käyttöä.

Tietenkin, jos välimuistin periaate toimii jo muistiin pääsyssä, miksi et toista sitä käännöstaulukossa? Ja tämä on juuri sitä Translation Lookaside Buffer eli TLB. Se on nopea välimuisti viimeaikaisille osoitekäännöksille. Se ei ole tarpeeksi suuri koko pöydän säilyttämiseen, mutta sen pieni koko tarkoittaa, että se pystyy reagoimaan hyvin nopeasti, yhdellä kellojaksolla.

Kaikki muistipyynnöt kulkevat TLB:n kautta. Jos TLB-osuma löytyy, se voi tarjota fyysisen muistiosoitteen varsinaiselle pyynnölle, tyypillisesti lisäämällä yhden viivejakson. Jos TLB puuttuu, haku on suoritettava päämuistista. Noin 5 syklin TLB-mittaus aiheuttaa pienen suorituskyvyn, mikä on enemmän kuin muistin käyttöviiveen peittämä tappio. Kun osoitekäännös on haettu järjestelmän RAM-muistista, se työnnetään TLB:hen ja pyyntö toistetaan sitten välittömällä TLB-osumalla.

Huomautus: TLB:n häätölle on olemassa erilaisia ​​järjestelmiä. Jotkut voivat käyttää First In-, First Out- tai FIFO-järjestelmää. Muut voivat käyttää vähiten käytettyä tai LFU-järjestelmää.

Siinä harvinaisessa tapauksessa, että osoitteenkäännöstaulukossa ei ole merkintää, aiheutuu sivuvirhe, koska pyydetty data ei ole RAM-muistissa. Käyttöjärjestelmän on tämän jälkeen käsiteltävä vika ja siirrettävä tiedot tallennustilasta RAM-muistiin ennen kuin pyyntö voi jatkua.

Johtopäätös

Translation Lookaside Buffer eli TLB on nopea suorittimen välimuisti, joka on tarkoitettu viimeaikaisten osoitekäännösten tallentamiseen järjestelmän RAM-muistissa olevasta sivutiedostosta. Tämä on välttämätöntä, koska virtuaalimuistijärjestelmät, kuten kaikissa nykyaikaisissa tietokoneissa toteutetaan, edellyttäisivät kaksi pyyntöä RAM-muistiin jokaista RAM-pyyntöä kohden. Toinen kääntää virtuaalimuistin osoitteen fyysiseksi muistiosoitteeksi ja toinen fyysiseen osoitteeseen. Tallentamalla viimeisimmät käännökset välimuistiin TLB-osumien muistiviivettä voidaan vähentää huomattavasti.

On huolehdittava siitä, että välimuistissa olevat käännökset liittyvät parhaillaan aktiiviseen prosessiin. Koska jokaisella prosessilla on erilainen virtuaalinen osoiteavaruus, niitä ei voi käyttää uudelleen. Tämän rajoittamatta jättäminen oli Meltdown-haavoittuvuuden taustalla.


Kuinka kloonata kiintolevy

Kuinka kloonata kiintolevy

Nykyaikaisella digitaalisella aikakaudella, jossa data on arvokasta omaisuutta, kiintolevyn kloonaus Windowsissa voi olla ratkaiseva prosessi monille. Tämä kattava opas

Kuinka korjata WUDFRd-ohjain ei latautunut Windows 10:ssä?

Kuinka korjata WUDFRd-ohjain ei latautunut Windows 10:ssä?

Näetkö tietokonetta käynnistettäessä virheilmoituksen, jonka mukaan ohjain WUDFRd ei latautunut tietokoneellesi?

NVIDIA GeForce Experience -virhekoodin 0x0003 korjaaminen

NVIDIA GeForce Experience -virhekoodin 0x0003 korjaaminen

Onko työpöydälläsi NVIDIA GeForce -kokemusvirhekoodi 0x0003? Jos kyllä, lue blogi nähdäksesi kuinka korjata tämä virhe nopeasti ja helposti.

Mikä on SMPS?

Mikä on SMPS?

Tutustu SMPS:ään ja eri teholuokkien merkitykseen ennen kuin valitset SMPS:n tietokoneellesi.

Mitä on eristykseen perustuva turvallisuus?

Mitä on eristykseen perustuva turvallisuus?

Aikoivat syventyä aiheeseen, josta on tulossa yhä tärkeämpi kyberturvallisuuden maailmassa: eristykseen perustuva tietoturva. Tämä lähestymistapa

Automaattisen napsautuksen käyttäminen Chromebookille

Automaattisen napsautuksen käyttäminen Chromebookille

Tänään aioimme perehtyä työkaluun, joka voi automatisoida toistuvia napsautuksia Chromebookillasi: automaattiseen napsautuslaitteeseen. Tämä työkalu voi säästää aikaa ja

Roomba pysähtyy, tarttuu ja kääntyy – korjaa

Roomba pysähtyy, tarttuu ja kääntyy – korjaa

Korjaa ongelma, jossa Roomba-robottiimuri pysähtyy, tarttuu kiinni ja kääntyy jatkuvasti ympäri.

Miksi Chromebookini ei käynnisty?

Miksi Chromebookini ei käynnisty?

Saat vastauksia kysymykseen, miksi Chromebookini ei käynnisty? Tässä hyödyllisessä oppaassa Chromebookin käyttäjille.

Grafiikka-asetusten muuttaminen Steam Deckissä

Grafiikka-asetusten muuttaminen Steam Deckissä

Steam Deck tarjoaa vankan ja monipuolisen pelikokemuksen aivan sormiesi ulottuvilla. Kuitenkin optimoidaksesi pelaamisesi ja varmistaaksesi parhaan mahdollisen

Kellotaulun vaihtaminen Fitbit Versa 4:ssä

Kellotaulun vaihtaminen Fitbit Versa 4:ssä

Muuta Fitbit Versa 4:n kellotaulua saadaksesi kellosi erilaisen ilmeen joka päivä ilmaiseksi. Katso kuinka nopeaa ja helppoa se on.