Hvad er cache-sammenhæng?
Cache-kohærens er det naturlige problem, der udvikler sig, når et systems datasæt åbnes og ændres af flere agenter. Det primære område af computerarkitektur, hvor dette bliver et problem, er i multiprocessorcomputere. Hver processor i en multiprocessorcomputer har sin egen cache, der indlæser og gemmer information fra tilfældig adgangshukommelse (RAM). Når to processorer får adgang til det samme hukommelsesområde, ville cachekoherensen gå tabt, hvis der ikke blev truffet visse forholdsregler.
Uden cache-kohærens ville et multiprocessorsystem ikke være i stand til at fungere. Der er flere metoder, der er udviklet for at tackle dette problem og undgå potentielle problemer. Katalogbaseret sammenhæng, snooping og snarfing er tre metoder, der bruges til at forhindre tab af cache-sammenhæng.
Katalogbaseret sammenhæng fungerer som et filter for at sikre sammenhæng. Data placeres i en del af hukommelsen, der er tilgængelig for alle processorer. Når de oplysninger, der er gemt inden for dette hukommelsesområde, ændres, opdaterer systemet enten cachen eller ugyldige dem.
Snooping kræver, at processoren overvåger alle adgangerne til de hukommelsessteder, der er cache. Dette gør det muligt for processoren at vide, hvornår en skriveoperation har fundet sted. Ved at vide, hvornår en skriveoperation finder sted, kan processoren opdatere sin cache.
Snarfing er meget lig snooping. Snarfing involverer ikke kun overvågning af adgangen til hukommelsessteder, der er cache, men også overvågning af de faktiske oplysninger, der er gemt i hukommelsen. Når der sker en hukommelsesskrivning, kan cachen opdateres med de nye oplysninger.
Katalogbaserede sammenhængssystemer har en relativt høj latenstid, hvilket resulterer i langsommere behandling. Krav til lavere båndbredde gør det muligt for bibliotekbaserede sammenhængssystemer at være praktiske i store skala-applikationer af cache-sammenhæng. Jo flere processorer et system bruger, jo flere fordele kan det have ved at bruge et katalogbaseret sammenhængssystem.
Snooping er en meget hurtigere metode. Denne metode kræver mere båndbredde end den katalogbaserede tilgang. Denne metode er i stand til at blive brugt effektivt i systemer, der har relativt få processorer.
Snarfing bruges normalt ikke som en metode til at opretholde cache-sammenhæng. Dette er primært fordi snarfing kræver, at der bruges flere ressourcer sammenlignet med både snooping og katalogbaserede metoder. For at et snarfing-system skal fungere, skal det holde styr på både hukommelsesadresserne og de data, der er gemt i disse hukommelsesområder. Mængden af båndbredde og behandling, der udtages ved denne metode, gør det uønsket for de fleste anvendelser af opretholdelse af cache-kohærens.