Mikä on suora kartoitus?

Suora kartoitus on tapa tallentaa tiedot, jotta niitä on helppo käyttää tietokoneella. Äskettäin käytetyt tiedot tallennetaan välimuistiin, jotta tietokone löytää tiedot nopeasti seuraavan kerran, kun niitä tarvitaan. Tietokoneohjelmoinnissa välimuisti on pieni osa hajamuistia (RAM), joka on varattu tietojen hakemista varten. Suoran kartoituksen avulla jokaiselle muistissa olevalle datalle on varattu välimuistissa oleva tila, jonka se jakaa muiden tietojen kanssa. Välimuistin tiedot korvataan jatkuvasti, koska uutta tietoa tarvitaan.

Välimuisti on järjestetty riveiksi. Jokainen rivi on vain tarpeeksi suuri yhden datalohkon ja tunnisteen tallentamiseen tunnisteen tunnistamiseksi. Kun käyttäjä pyytää tietoja, tietokone skannaa ensin välimuistin nähdäkseen, ovatko tiedot siellä. Jos on, tiedot palautetaan käyttäjälle. Tämä tunnetaan välimuistin osumana, joka on nopeampi kuin tietojen noutaminen alkuperäisestä sijainnistaan.

Välimuistin osumia johtavien pyyntöjen prosenttiosuutta kutsutaan osumaprosentiksi. Jos käyttäjän pyytämät tiedot eivät ole välimuistissa, tietokone löytää ne muistista. Kopio tiedoista tallennetaan välimuistiin, jotta ne löytyvät nopeasti seuraavan kerran, kun käyttäjä sitä pyytää, mikä teoriassa lisää osumien määrää. Kaikki tämä tapahtuu kulissien takana. Käyttäjä ei tiedä, ovatko vastaanotetut tiedot välimuistista vai muistista.

Suora kartoitus on yksi tapa päättää, mihin muistilohkot tallennetaan välimuistiin. Jokaiselle muistiloholle on määritetty tietty rivi välimuistissa. Koska välimuisti on pienempi kuin muisti, useat lohkot jakavat yhden rivin välimuistissa. Jos rivi on jo täynnä, kun sille on kirjoitettava uusi lohko, vanha lohko korvataan.

Vaikka suora kartoitus on erittäin yksinkertainen ja helppo tapa suunnitella välimuisti, se aiheuttaa joitain ongelmia. Jos ohjelma käyttää jatkuvasti useita datalohkoja, joilla on sama rivi suorassa kartoitusvälimuistissa, rivi kirjoitetaan usein uudelleen. Tämä johtaa moniin virheisiin, koska tietokoneen tarvitsemat tiedot ovat epätodennäköisemmin niitä tietoja, jotka ovat tällä hetkellä kyseisellä välimuistirivillä. Suoralla kartoittamisella on siis alhaisempi osuma kuin muilla välimuistin kartoitusmalleilla.