Povedz mi o pravidlách fungovania cache.
sobes.tech AI
Odpoveď od AI
Cache uchováva kópie údajov na zrýchlenie prístupu k nim. Hlavné pravidlá:
-
Pravidlo blízkosti (Locality of Reference):
- Časová blízkosť: Ak bol prvok údajov nedávno použitý, pravdepodobne bude znova použitý v blízkej budúcnosti.
- Priestorová blízkosť: Ak bol prvok údajov použitý, pravdepodobne budú použité aj susedné prvky.
-
Pravidlá nahradzovania (Cache Replacement Policies): Určujú, ktorý blok údajov odstrániť z cache, keď je plná a je potrebné miesto pre nové údaje. Bežné politiky:
- FIFO (First-In, First-Out): Odstráni najstarší blok.
- LRU (Least Recently Used): Odstráni blok, ku ktorému sa najdlhšie neobrátilo.
- LFU (Least Frequently Used): Odstráni blok, ktorý sa najmenšou frekvenciou používal.
-
Pravidlá zápisu (Cache Writing Policies): Určujú, kedy sa zmeny v cache synchronizujú s hlavným pamäťovým priestorom.
- Write-Through: Dáta sa zapisujú súčasne do cache aj do hlavnej pamäti. Zabezpečuje konzistenciu, ale je pomalšie.
- Write-Back: Dáta sa najskôr zapisujú iba do cache. Hlavná pamäť sa aktualizuje neskôr, keď sa blok odstráni alebo explicitne označí ako "špinavý". Rýchlejšie, ale vyžaduje mechanizmus sledovania zmien.
-
Pravidlá pri cache miss (Cache Miss Handling): Určujú, ako systém reaguje, keď požadované údaje chýbajú v cache.
- Systém načíta údaje z ďalšej úrovne pamäti (napríklad z hlavnej pamäti).
- Údaje sa vložia do cache (možno nahradením existujúceho bloku) a následne sú poskytnuté požadujúcemu procesu.
-
Pravidlá koherencie (Cache Coherence Rules): Sú dôležité v multiprocesorových systémoch, kde viaceré procesory môžu mať kópie tých istých údajov vo svojich lokálnych cache. Zabezpečujú konzistenciu údajov medzi všetkými cache. Príklady protokolov: MSI, MESI.
-
Pravidlá invalidácie/aktualizácie (Cache Invalidation/Update): Pri zmene údajov na jednom mieste (napríklad v cache jedného procesora) je potrebné buď invalidovať (urobiť neplatným) kópiu v iných cache, alebo ju aktualizovať, aby sa predišlo používania zastaraných údajov.