Direkte mapping er en cache-minnedesign der hver minneadresse er tilordnet en spesifikk cache-linje. Dette betyr at det kun er én mulig hurtigbufferplassering for hver minneadresse. Direkte kartlegging er enkel å implementere og har lav maskinvareoverhead, men det kan resultere i cache-konflikter hvis flere minneadresser tilordnes den samme cache-linjen.
For å beregne cache-linjeindeksen for en gitt minneadresse, deles minneadressen på cache-linjestørrelsen. Resten av denne divisjonen er cache-linjeindeksen. For eksempel, hvis minneadressen er 0x100 og hurtigbufferlinjestørrelsen er 16 byte, er hurtigbufferlinjeindeksen 4.
Den direkte kartleggingsfunksjonen tilordner en minneadresse til en hurtigbufferlinjeindeks i henhold til følgende formel:
```
cacheLineIndex =minneAddress mod cacheLineSize
```
Hvor:
* cacheLineIndex er cache-linjeindeksen
* minneadresse er minneadressen
* cacheLineSize er cache-linjestørrelsen
Her er et eksempel på hvordan direkte kartlegging fungerer. Tenk på en cache med en cache-linjestørrelse på 16 byte. Følgende tabell viser minneadressene som tilordnes hver hurtigbufferlinjeindeks:
| Cachelinjeindeks | Minneadresser |
|---|---|
| 0 | 0x000, 0x010, 0x020, ..., 0x0F0 |
| 1 | 0x100, 0x110, 0x120, ..., 0x1F0 |
| 2 | 0x200, 0x210, 0x220, ..., 0x2F0 |
| 3 | 0x300, 0x310, 0x320, ..., 0x3F0 |
| ... | ... |
La oss nå si at vi ønsker å få tilgang til minneadressen 0x123. For å beregne hurtigbufferlinjeindeksen for denne adressen deler vi 0x123 med 16. Resten av denne divisjonen er 3. Derfor er hurtigbufferlinjeindeksen for minneadressen 0x123 3.
I henhold til tabellen ovenfor, tilordnes cache-linjeindeksen 3 til minneadressene 0x300, 0x310, 0x320, ..., 0x3F0. Derfor tilordnes minneadressen 0x123 til hurtigbufferlinjen som inneholder minneadressene 0x300, 0x310, 0x320, ..., 0x3F0.