Sobes.tech
Middle

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á:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.

  6. 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.