Sobes.tech
Middle

Pověz mi o pravidlech fungování cache.

sobes.tech AI

Odpověď od AI

Mezipaměť ukládá kopie dat, aby urychlila přístup k nim. Hlavní pravidla:

  1. Pravidlo místní (Locality of Reference):

    • Časová lokalita: Pokud byl prvek dat nedávno použit, pravděpodobně bude znovu použit brzy.
    • Prostorová lokalita: Pokud byl prvek dat použit, pravděpodobně budou brzy použity i sousední prvky.
  2. Politiky nahrazování cache (Cache Replacement Policies): Určují, který datový blok odstranit, když je cache plná a je potřeba místo pro nová data. Časté politiky:

    • FIFO (First-In, First-Out): Odstraňuje nejstarší blok.
    • LRU (Least Recently Used): Odstraňuje blok, který byl nejméně nedávno použit.
    • LFU (Least Frequently Used): Odstraňuje blok, který byl nejméně často použit.
  3. Politiky zápisu do cache (Cache Writing Policies): Určují, kdy se změny v cache synchronizují s hlavní pamětí.

    • Write-Through: Data jsou zapisována současně do cache i do hlavní paměti. Zajišťuje konzistenci, ale je pomalejší.
    • Write-Back: Data jsou nejdříve zapisována pouze do cache. Hlavní paměť je aktualizována později, když je blok odstraněn z cache nebo explicitně označen jako "špinavý" (změněný). Je rychlejší, ale vyžaduje mechanismus sledování změn.
  4. Řešení cache miss (Cache Miss Handling): Určují, jak systém reaguje, když požadovaná data nejsou v cache.

    • Systém načte data z další úrovně paměti (například z hlavní paměti).
    • Data jsou umístěna do cache (případně nahrazením existujícího bloku) a poté poskytnuta požadujícímu procesu.
  5. Pravidla koherence cache (Cache Coherence Rules): Důležitá v systémech s více procesory, kde více procesorů může mít kopie stejných dat ve svých lokálních cache. Zajišťují konzistenci dat mezi všemi cache. Příklady protokolů: MSI, MESI.

  6. Pravidla invalidace/aktualizace (Cache Invalidation/Update): Při změně dat na jednom místě (například v cache jednoho procesoru) je nutné buď invalidovat (učinit neplatným) kopii v ostatních cache nebo ji aktualizovat, aby se zabránilo používání zastaralých dat.