Hva er Cache Coherence?

May 8  by Eliza

Cache sammenheng er det naturlig problem som oppstår når et system datasettet er tilgjengelig og endres av flere agenter. Det primære område av datamaskinarkitektur hvor dette blir et problem ligger i fler datamaskiner. Hver prosessor i en flerprosessordatamaskin har sin egen hurtigbuffer som laster og lagrer informasjonen fra direktelageret (RAM). Når to prosessorer har tilgang til samme område i minnet, vil cache sammenheng gå tapt dersom visse forholdsregler ikke ble tatt.

Uten cache sammenheng, ville en multiprosessorsystem være ute av stand til å fungere. Det finnes flere metoder som er utviklet for å løse dette problemet og unngå potensielle problemer. Katalogbasert sammenheng, snusing og snarfing er tre metoder som brukes for å hindre tap av cache sammenheng.

Katalogbasert sammenheng fungerer som et filter for å sikre koherens. Data blir lagt inn i en del av minnet som er tilgjengelig for alle prosessorer. Når informasjonen som er lagret i det området av minnet er endret, vil systemet enten oppdatere cacher eller avkrefte dem.

Snusing krever at prosessoren til å overvåke alle aksesser til de minnesteder som er blitt bufret. Dette gjør det mulig for prosessoren å vite når en skriveoperasjon har oppstått. Ved å vite når en skriveoperasjon skjer, kan prosessoren oppdatere sin cache.

Snarfing er ganske lik snusing. Snarfing innebærer ikke bare overvåking av tilganger til minnesteder som har blitt hurtigbufret men også overvåke den faktiske informasjonen som er lagret i minnet. Når et minne skrive skjer, kan cache bli oppdatert med ny informasjon.

Katalogbasert koherensskapende systemer har en relativt høy ventetid, noe som resulterer i langsommere behandling. Lavere krav til båndbredde aktivere katalogbaserte koherensskapende systemer for å være praktisk i store programmer av cache sammenheng. Jo flere prosessorer som et system bruker, jo flere fordeler det kan ha fra å bruke en katalogbasert sammenheng system.

Snusing er en mye raskere metode. Denne metoden krever mer båndbredde enn katalogbasert tilnærming. Denne metoden er i stand til å bli brukt effektivt i systemer som har relativt få prosessorer.

Snarfing blir vanligvis ikke brukt som en metode for å opprettholde cache koherens. Dette er først og fremst fordi snarfing krever flere ressurser som skal brukes i forhold til både snusing og katalogbaserte metoder. For en snarfing system skal fungere, må det holde styr på både minneadresser og data som er lagret i de områder av minne. Mengden av båndbredde og behandling som blir tatt opp av denne fremgangsmåte gjør det uønsket for de fleste anvendelser for å opprettholde cache koherens.