Co je soudržnost mezipaměti?
Soudržnost mezipaměti je přirozený problém, který se vyvíjí, když je k datové sadě systému přistupováno a upravováno více agentů. Primární oblast počítačové architektury, kde se to stává problémem, je v počítačích s více procesory. Každý procesor v počítači s více procesory má svou vlastní mezipaměť, která načítá a ukládá informace z paměti RAM (random access memory). Pokud dva procesory přistupují ke stejné oblasti paměti, byla by ztracena koherence mezipaměti, pokud by nebyla přijata určitá opatření.
Bez koherence mezipaměti by víceprocesorový systém nemohl fungovat. Existuje několik metod, které byly vyvinuty za účelem řešení tohoto problému a předcházení potenciálním problémům. Soudržnost založená na adresářích, snooping a snarfing jsou tři metody, které se používají k zabránění ztráty koherence mezipaměti.
Soudržnost založená na adresářích funguje jako filtr, aby byla zajištěna koherence. Data jsou umístěna do části paměti, která je přístupná všem procesorům. Když se změní informace uložené v této oblasti paměti, systém buď aktualizuje mezipaměti, nebo je zneplatní.
Snooping vyžaduje, aby procesor monitoroval všechny přístupy do paměti, která byla uložena do mezipaměti. To umožňuje procesoru vědět, kdy došlo k operaci zápisu. Tím, že procesor ví, kdy dojde k operaci zápisu, může aktualizovat svou mezipaměť.
Snarfing je docela podobný slídění. Snarfing zahrnuje nejen monitorování přístupů do paměti, která byla uložena do mezipaměti, ale také monitorování skutečných informací uložených v paměti. Když dojde k zápisu do paměti, může být mezipaměť aktualizována o nové informace.
Systémy koherence založené na adresářích mají relativně vysokou latenci, což má za následek pomalejší zpracování. Nižší požadavky na šířku pásma umožňují, aby systémy koherence založené na adresářích byly praktické v rozsáhlých aplikacích koherence mezipaměti. Čím více procesorů systém používá, tím více výhod může mít použití systému koherence založeného na adresářích.
Snooping je mnohem rychlejší metoda. Tato metoda vyžaduje větší šířku pásma než přístup založený na adresáři. Tuto metodu lze efektivně použít v systémech, které mají relativně málo procesorů.
Snarfing se obvykle nepoužívá jako metoda udržování koherence mezipaměti. Důvodem je především to, že snarfing vyžaduje použití více zdrojů ve srovnání s metodami snoopingu a adresáře. Aby šnupavý systém fungoval, musí sledovat jak adresy paměti, tak data uložená v těchto oblastech paměti. Množství šířky pásma a zpracování, které je touto metodou přijato, je pro většinu aplikací udržování koherence mezipaměti nežádoucí.