Spójność pamięci podręcznej to naturalny problem, który pojawia się, gdy do zbioru danych systemu uzyskuje dostęp i zmienia go wielu agentów. Głównym obszarem architektury komputerowej, w którym staje się to problemem, są komputery wieloprocesorowe. Każdy procesor w komputerze wieloprocesorowym ma własną pamięć podręczną, która ładuje i przechowuje informacje z pamięci o dostępie swobodnym (RAM). Gdy dwa procesory uzyskują dostęp do tego samego obszaru pamięci, spójność pamięci podręcznej zostanie utracona, jeśli nie zostaną podjęte pewne środki ostrożności.
Bez spójności pamięci podręcznej system wieloprocesorowy nie mógłby działać. Istnieje kilka metod opracowanych w celu rozwiązania tego problemu i uniknięcia potencjalnych problemów. Spójność oparta na katalogach, podsłuchiwanie i snarfing to trzy metody stosowane w celu zapobiegania utracie spójności pamięci podręcznej.
Spójność oparta na katalogach działa jak filtr w celu zapewnienia spójności. Dane są umieszczane w części pamięci, która jest dostępna dla wszystkich procesorów. Gdy informacje przechowywane w tym obszarze pamięci ulegną zmianie, system zaktualizuje pamięci podręczne lub unieważni je.
Snooping wymaga, aby procesor monitorował wszystkie dostępy do lokalizacji pamięci, które zostały zbuforowane. Dzięki temu procesor wie, kiedy nastąpiła operacja zapisu. Wiedząc, kiedy następuje operacja zapisu, procesor może zaktualizować swoją pamięć podręczną.
Snarfing jest bardzo podobny do węszenia. Snarfing obejmuje nie tylko monitorowanie dostępu do lokalizacji pamięci, które zostały zbuforowane, ale także monitorowanie rzeczywistych informacji przechowywanych w pamięci. Gdy nastąpi zapis do pamięci, pamięć podręczna może zostać zaktualizowana o nowe informacje.
Systemy koherencji oparte na katalogach mają stosunkowo duże opóźnienia, co skutkuje wolniejszym przetwarzaniem. Niższe wymagania dotyczące przepustowości umożliwiają stosowanie systemów koherencji opartych na katalogach w zastosowaniach koherencji pamięci podręcznej na dużą skalę. Im więcej procesorów wykorzystuje system, tym więcej korzyści może mieć korzystanie z systemu spójności opartego na katalogach.
Snooping to znacznie szybsza metoda. Ta metoda wymaga większej przepustowości niż podejście oparte na katalogach. Ta metoda może być skutecznie stosowana w systemach, które mają stosunkowo niewiele procesorów.
Snarfing nie jest zwykle używany jako metoda utrzymywania spójności pamięci podręcznej. Dzieje się tak głównie dlatego, że snarfing wymaga użycia większej ilości zasobów w porównaniu z metodami snooping i opartymi na katalogach. Aby system snarfing działał, musi śledzić zarówno adresy pamięci, jak i dane przechowywane w tych obszarach pamięci. Wielkość przepustowości i przetwarzania, które są wykorzystywane przez tę metodę, sprawia, że jest ona niepożądana w przypadku większości zastosowań utrzymywania spójności pamięci podręcznej.