Vad är Direct Mapping?

Direktmappning är en metod för att lagra information för enkel åtkomst på en dator. Nyligen använd information lagras i en cache så att datorn snabbt kan hitta informationen nästa gång den behövs. Inom datorprogrammering är en cache en liten del av RAM (Random Access Memory) som är avsatt i syfte att enkelt hämta data. Med direkt mappning tilldelas varje datastycke i minnet ett utrymme i cachen, som det delar med andra datastycken. Cachedata skrivs ständigt över eftersom ny data behövs.

En cache är organiserad i rader. Varje rad är bara tillräckligt stor för att lagra ett datablock och en tagg för att identifiera var datan kom ifrån. När en användare begär en bit data, skannar datorn först cachen för att se om informationen finns där. Om så är fallet returneras informationen till användaren. Detta är känt som en cacheträff, vilket är snabbare än att hämta data från sin ursprungliga plats.

Procentandelen förfrågningar som resulterar i cacheträffar kallas träfffrekvensen. Om data som användaren begärde inte finns i cachen, kommer datorn att hitta den i minnet. En kopia av data kommer att deponeras i cachen så att den kan hittas snabbt nästa gång användaren begär det, vilket i teorin ökar träfffrekvensen. Allt detta sker bakom kulisserna. Användaren vet inte om den mottagna datan kom från cachen eller minnet.

Direktmappning är en metod för att bestämma var minnesblock kommer att lagras i cachen. Varje minnesblock tilldelas en specifik rad i cachen. Eftersom cachen är mindre än minnet kommer flera block att dela en enda rad i cachen. Om en rad redan är full när ett nytt block behöver skrivas till den, kommer ett gammalt block att skrivas över.

Även om direkt kartläggning är ett väldigt enkelt och enkelt sätt att designa en cache, så ger det vissa problem. Om ett program kontinuerligt kommer åt flera datablock som delar samma rad i en direktmappningscache, kommer raden att skrivas om ofta. Detta resulterar i många missar eftersom det är mindre sannolikt att data som datorn behöver är de data som faktiskt finns i den cache-raden för tillfället. Så direkt mappning har en lägre träfffrekvens än andra cachemappningsmodeller.