Što je Cache Coherence?

Koherentnost predmemorije prirodni je problem koji se razvija kada više agenata pristupa skupu podataka sustava i mijenja ga. Primarno područje računalne arhitekture u kojem to postaje problem je višeprocesorska računala. Svaki procesor u višeprocesorskom računalu ima vlastitu predmemoriju koja učitava i pohranjuje informacije iz memorije s slučajnim pristupom (RAM). Kada dva procesora pristupaju istom području memorije, koherencija predmemorije bi se izgubila ako se ne poduzmu određene mjere opreza.

Bez koherencije predmemorije, višeprocesorski sustav ne bi mogao funkcionirati. Postoji nekoliko metoda koje su razvijene kako bi se riješio ovaj problem i izbjegli potencijalni problemi. Koherencija temeljena na direktoriju, njuškanje i snarfing tri su metode koje se koriste za sprječavanje gubitka koherencije predmemorije.

Koherencija utemeljena na imeniku radi kao filtar kako bi se osigurala koherentnost. Podaci se nalaze unutar dijela memorije koji je dostupan svim procesorima. Kada se promijene informacije koje su pohranjene unutar tog područja memorije, sustav će ažurirati predmemoriju ili ih poništiti.

Njuškanje zahtijeva od procesora da nadzire sve pristupe memorijskim lokacijama koje su spremljene u predmemoriju. To omogućuje procesoru da zna kada je došlo do operacije pisanja. Znajući kada se dogodi operacija pisanja, procesor može ažurirati svoju predmemoriju.

Snarfing je prilično sličan njuškanju. Snarfing uključuje ne samo praćenje pristupa memorijskim lokacijama koje su spremljene u predmemoriju, već i praćenje stvarnih informacija koje su pohranjene u memoriji. Kada dođe do pisanja u memoriju, predmemorija se može ažurirati novim informacijama.

Sustavi koherencije temeljeni na imeniku imaju relativno veliku latenciju, što rezultira sporijom obradom. Niži zahtjevi za širinom pojasa omogućuju da sustavi koherencije temeljenih na direktoriju budu praktični u velikim aplikacijama koherencije predmemorije. Što više procesora sustav koristi, to može imati više prednosti od korištenja sustava koherentnosti koji se temelji na direktoriju.
Njuškanje je mnogo brža metoda. Ova metoda zahtijeva veću propusnost od pristupa koji se temelji na direktoriju. Ova metoda se može učinkovito koristiti u sustavima koji imaju relativno malo procesora.
Snarfing se obično ne koristi kao metoda održavanja koherencije predmemorije. To je prije svega zato što hvatanje zahtijeva više resursa za korištenje u usporedbi s metodama njuškanja i metodama koje se temelje na direktoriju. Da bi sustav snarfinga funkcionirao, mora pratiti i memorijske adrese i podatke pohranjene u tim područjima memorije. Količina propusnosti i obrade koju zauzima ova metoda čini je nepoželjnom za većinu primjena održavanja koherencije predmemorije.