Što je izravno mapiranje?

Izravno mapiranje je metoda pohranjivanja informacija radi lakšeg pristupa na računalu. Nedavno korištene informacije pohranjuju se u predmemoriju tako da računalo može brzo pronaći informacije sljedeći put kada budu potrebne. U računalnom programiranju, predmemorija je mali dio memorije s slučajnim pristupom (RAM) koji se izdvaja u svrhu jednostavnog dohvaćanja podataka. S izravnim mapiranjem, svakom dijelu podataka u memoriji dodjeljuje se prostor u predmemoriji, koji dijeli s drugim dijelovima podataka. Podaci iz predmemorije stalno se prepisuju jer su potrebni novi podaci.

Predmemorija je organizirana u redove. Svaki redak je dovoljno velik samo da pohrani jedan blok podataka i oznaku za identifikaciju odakle su podaci došli. Kada korisnik zatraži dio podataka, računalo najprije skenira predmemoriju kako bi provjerilo postoje li informacije. Ako jest, podaci se vraćaju korisniku. To je poznato kao učitavanje u predmemoriju, što je brže od dohvaćanja podataka s izvorne lokacije.

Postotak zahtjeva koji rezultira učitavanjima u predmemoriju naziva se stopa pogodaka. Ako podaci koje je korisnik zatražio nisu u predmemoriji, računalo će ih pronaći u memoriji. Kopija podataka bit će pohranjena u predmemoriju kako bi se mogla brzo pronaći sljedeći put kada korisnik to zatraži, teoretski povećavajući stopu pogodaka. Sve se ovo događa iza kulisa. Korisnik ne zna jesu li primljeni podaci došli iz predmemorije ili memorije.

Izravno mapiranje jedna je od metoda odlučivanja gdje će blokovi memorije biti pohranjeni u predmemoriji. Svakom bloku memorije dodijeljen je određeni redak u predmemoriji. Budući da je predmemorija manja od memorije, više blokova dijelit će jedan red u predmemoriji. Ako je redak već pun kada u njega treba upisati novi blok, stari blok će biti prepisan.

Iako je izravno mapiranje vrlo jednostavan i lak način dizajniranja predmemorije, ono predstavlja neke probleme. Ako program kontinuirano pristupa više blokova podataka koji dijele isti redak u predmemoriji izravnog preslikavanja, redak će se često prepisivati. To rezultira puno promašaja jer je manje vjerojatno da će podaci koje računalo treba biti podaci koji se trenutno nalaze u tom retku predmemorije. Dakle, izravno mapiranje ima nižu stopu pogodaka od ostalih modela mapiranja predmemorije.