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:
-
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.
-
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.
-
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.
-
Ř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.
-
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.
-
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.