Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Na výpočet indexu riadku vyrovnávacej pamäte pre danú adresu pamäte sa adresa pamäte vydelí veľkosťou riadku vyrovnávacej pamäte. Zvyšok tohto rozdelenia je index riadkov vyrovnávacej pamäte. Ak je napríklad adresa pamäte 0x100 a veľkosť riadku vyrovnávacej pamäte je 16 bajtov, index riadku vyrovnávacej pamäte je 4.
Funkcia priameho mapovania mapuje adresu pamäte na index riadku vyrovnávacej pamäte podľa nasledujúceho vzorca:
```
cacheLineIndex =memoryAddress mod cacheLineSize
```
kde:
* cacheLineIndex je index riadku vyrovnávacej pamäte
* memoryAddress je adresa pamäte
* veľkosť vyrovnávacej pamäte je veľkosť riadku vyrovnávacej pamäte
Tu je príklad toho, ako funguje priame mapovanie. Predstavte si vyrovnávaciu pamäť s veľkosťou riadku vyrovnávacej pamäte 16 bajtov. Nasledujúca tabuľka zobrazuje adresy pamäte, ktoré sa mapujú na každý index riadkov vyrovnávacej pamäte:
| Index riadku vyrovnávacej pamäte | Adresy pamäte |
|---|---|
| 0 | 0x000, 0x010, 0x020, ..., 0x0F0 |
| 1 | 0x100, 0x110, 0x120, ..., 0x1F0 |
| 2 | 0x200, 0x210, 0x220, ..., 0x2F0 |
| 3 | 0x300, 0x310, 0x320, ..., 0x3F0 |
| ... | ... |
Teraz povedzme, že chceme získať prístup k adrese pamäte 0x123. Na výpočet indexu riadku vyrovnávacej pamäte pre túto adresu vydelíme 0x123 číslom 16. Zvyšok tohto delenia je 3. Preto je index riadku vyrovnávacej pamäte pre adresu pamäte 0x123 3.
Podľa vyššie uvedenej tabuľky sa index riadku vyrovnávacej pamäte 3 mapuje na adresy pamäte 0x300, 0x310, 0x320, ..., 0x3F0. Preto sa adresa pamäte 0x123 mapuje na riadok vyrovnávacej pamäte, ktorý obsahuje adresy pamäte 0x300, 0x310, 0x320, ..., 0x3F0.