Mikä on käännöspuolen puskuri?

Tietokoneen keskusyksikössä (CPU) on välimuistijärjestelmä, jota kutsutaan käännösnäkymäpuskuriksi (TLB), joka vastaa fyysisen muistin kääntämisestä virtuaalimuistiksi. Tämä on erillinen välimuistijärjestelmä, koska suorittimen on nopeampi etsiä välimuistista muistiosoitteita kuin sijoittaa se tavalliseen välimuistiin. Muistiosoitteiden tallentamiseen TLB käyttää sivutaulukon merkintöjä muodostaen kartan virtuaalisten ja fyysisten muistiosoitteiden välille. Kun käytetään käännösnäkymäpuskuria, voi olla joko TLB -osuma tai virhe, eli muisti on löydetty tai tuntematon. Tietokoneissa voi olla useita eri TLB -tasoja muistien lisäämiseksi.

Kun fyysinen muisti muutetaan virtuaalimuistiksi, sen välimuistin luominen helpottaa tietokoneen todellisen muistipaikan löytämistä. Nämä tiedot voidaan sijoittaa suorittimen päävälimuistiin, mutta se aiheuttaa useita ongelmia. Näiden tietojen tallentamiseen on käytettävä useita eri käyttöoikeustasoja, jotka hidastavat koko prosessia. Käännösnäkymäpuskuri katselee näitä tasoja ja auttaa CPU: ta löytämään oikean muistipaikan, jotta tiedot voidaan avata.

Käännösnäkymäpuskuri käyttää sivutaulukkojärjestelmää, joka luokittelee virtuaalimuistin käännösalueet. Kun fyysinen muisti muuttuu virtuaalimuistiksi, esimerkiksi kun asiakirja tallennetaan tai ohjelmaa käytetään, TLB tallentaa tämän käännöksen. TLB ei tallenna tietoja itse vaan muistin sijainnin, mikä tekee siitä muistitehokkaan.

Suoritin etsii tiedostoa tai jotain muistiarkkitehtuurista tietokoneen kautta. Suorittimen ensimmäinen askel on kääntöpuolen puskurin käyttäminen sen tarkistamiseen, onko muisti tallennettu välimuistiin; tämä tuottaa joko osuman tai missauksen. TLB -osuma tarkoittaa, että fyysinen muisti on tallennettu välimuistiin ja se löytyy nopeasti. TLB -virhe tarkoittaa, että fyysistä muistia ei tallenneta välimuistiin, ja suorittimen on tarkasteltava kaikkia sivutaulukoita löytääkseen muistin, joka on tehotonta muistia ja vie enemmän aikaa.

Useimmissa tietokoneissa on useita käännösnäkymäpuskuritasoja. Alin taso sisältää vähiten tietoa, mutta on myös nopein. Kun ensimmäisen tason tietoja on liikaa, ne leviävät ylemmille tasoille. Nämä tasot eivät ole yhtä nopeita, mutta ovat kuitenkin nopeampia kuin suoritin, joka etsii fyysisen muistin osoitetta kaikista sivutaulukoista.