Hva er cache-sammenheng?

Cache-koherens er det naturlige problemet som utvikles når et systems datasett er tilgjengelig og endret av flere agenter. Det primære området med dataarkitektur der dette blir et problem, er i multiprosessordatamaskiner. Hver prosessor i en datamaskin med flere prosessorer har sin egen cache som laster inn og lagrer informasjon fra RAM (random access memory). Når to prosessorer får tilgang til det samme minnet, vil cachekoherensen gå tapt hvis ikke visse forholdsregler ble tatt.

Uten cachekoherens ville et flerprosessorsystem ikke kunne fungere. Det er flere metoder som er utviklet for å løse dette problemet og unngå potensielle problemer. Katalogbasert sammenheng, snooping og snarfing er tre metoder som brukes for å forhindre tap av cache-koherens.

Katalogbasert sammenheng fungerer som et filter for å sikre sammenheng. Data plasseres i en del av minnet som er tilgjengelig for alle prosessorene. Når informasjonen som er lagret i det minnet, endres, vil systemet enten oppdatere hurtigbufrene eller ugyldiggjøre dem.

Snooping krever at prosessoren overvåker alle tilgangene til minneplassene som har blitt lagret. Dette gjør det mulig for prosessoren å vite når en skriveoperasjon har skjedd. Ved å vite når en skriveoperasjon oppstår, kan prosessoren oppdatere cachen.

Snarfing ligner ganske på snooping. Snarfing innebærer ikke bare å overvåke tilgangene til minneplasseringer som har blitt lagret, men også overvåke den faktiske informasjonen som er lagret i minnet. Når en minneskriving oppstår, kan hurtigbufferen oppdateres med den nye informasjonen.

Katalogbaserte sammenhengssystemer har en relativt høy latenstid, noe som resulterer i tregere prosessering. Lavere båndbreddekrav gjør det mulig å katalogbaserte sammenhengssystemer være praktiske i storskala applikasjoner av cache-koherens. Jo flere prosessorer et system bruker, jo flere fordeler kan det ha ved å bruke et katalogbasert sammenhengssystem.

Snooping er en mye raskere metode. Denne metoden krever mer båndbredde enn den katalogbaserte tilnærmingen. Denne metoden kan brukes effektivt i systemer som har relativt få prosessorer.

Snarfing brukes vanligvis ikke som en metode for å opprettholde cachekoherens. Dette er først og fremst fordi snarfing krever mer ressurser for å brukes sammenlignet med både snooping og katalogbaserte metoder. For at et snarfing-system skal fungere, må det følge med på både minneadressene og dataene som er lagret i minnene. Mengden båndbredde og prosessering som tas opp med denne metoden, gjør det uønsket for de fleste bruksområder for å opprettholde cache-koherens.

ANDRE SPRÅK

Hjalp denne artikkelen deg? Takk for tilbakemeldingen Takk for tilbakemeldingen

Hvordan kan vi hjelpe? Hvordan kan vi hjelpe?