Predpomnilnik
Iz E-študij, proste zakladnice študentskega znanja
- Premoščanje hitrosti med glavnim pomnilnikom in Centralno procesna enota:
- uporaba razdeljenega predpomnilnika (ločen operndni in ukazni)
- širše podatkovne poti od Centralno procesna enota do predpomnilnika ( tipčno 128 ali 256 bitov)
- Premostitve zgrešitev v predpomnilniku
- pagemode
- širše podatkovna poti
- uporaba L2 predpomnilnika (10-15x hitrejši od glavnega pomnilnika)
Principi delovanja
- hiter in majhen pomnilnik med Centralno procesna enota in glavnim pomnilnikom
- uporablja nehomogeno strukturo (Harvardsko), če ima L2 je le-ta homogen
(Kodek: slika 8.9)
- razmerje tag/tap ~ 20-30
- velikost predpomnilnika je tipično manjša od 1% velikosti glavnega pomnilnika
- iskana informacija je v p.p. dovolj zaradi lokalnosti
- v predpomnilniku moramo imeti tudi podatke kateri deli glavnega pomnilnika so v predpomnilniku
- uspešnost delovanja predpomnilnika merimo z verjetnostjo zadetka H
((( Formula sledi kasneje )))
- današnji H je večji od 0,9 ali celo večji od 0,95
ta = tap + (1 − H) * tag;
ta . . . povprečen čas dostopa
tB . . . čas potreben za prenos bloka v predpomnilnik
- ker se v predpomnilnik ne preneša samo eno besedo naenkrat, ampak ponavadi cel blok, je bolj uporabna naslednja formula:
ta = tap + (1 − H) * tB
- tap je enak številu urinih preriod, tipično je 1, redko več
- tB predstavlja t.i. zgrešitveno kazen. Danes je okoli 10-100 urinih period. Kazen je odvisna od zgradba predpomnilnika, širine podatkovnih poti ...
Kako je viden predpomnilnik uporabniku
- neviden ali transparenen
- netransparenten
- uncacheable so področja, ki se nikoli ne preslikajo(presejo) v predpomnilnik. Podavadi so takšni razni V/I registri.
- predpomnilnik je sestavljen iz kontrolnega dela, ki hrani naslov glavnega pomnilnika, veljavni bit, umazani bit, ... in pomnilniškega dela