Paměťová koherence (anglicky cache coherence), resp. koherence vyrovnávajících pamětí (cache) znamená jednotnost dat ve více vyrovnávacích pamětích.
Problém udržení koherence vyvstává u multiprocesorových počítačů s více cachemi. Při změně dat ve vyrovnávací paměti jednoho procesoru je nutné zabránit tomu, aby ostatní procesory (využívající jiné cache) pracovaly se zastaralými daty. Docílit shodných dat na všech pamětech je však složité.
Metody zajištění koherence
Snooping Broadcastové metody, tzv. snoopy cache, šíří informace o změně bloku po sběrnici. Všechny cache na změnu reagují buď zneplatněním daného bloku nebo okamžitou aktualizací dat.
Mezi snoopingové metody patří protokoly WTWNA nebo MESI.
Problémem snoopingu je špatná škálovatelnost.
Adresářové metody Adresářové metody potřebují ke své funkci adresář. Každá žádost o načtení dat z hlavní paměti do cache musí jít právě přes adresář, který si udržuje informaci o tom, které bloky se v kterých vyrovnávacích pamětích nacházejí.
Stejně tak cache informují adresář o přepsání bloku. Adresář si poté najde v tabulce ty cache, ve kterých se daný blok nachází, a informuje je (data jsou v nich zneplatněna nebo rovnou aktualizována).
Existují tři základní schémata: plně mapované adresáře, částečně mapované adresáře, kde je každému bloku dovoleno být přítomen pouze v omezeném počtu cache, provázané adresáře, které obsahují řetěz odkazů na cache.
Odkazy
Reference
Související články Zámek Livelock Deadlock Sdílená paměť
Externí odkazy
Kategorie:Správa paměti Kategorie:Počítačová paměť Kategorie:Paralelní výpočty