Skip to main content

Hva er hukommelsessammenheng?

Memory Coherence er et problem som oppstår i en datamaskin når en prosessor prøver å se på en minnesektor.Dette problemet skjer bare på multicore -systemer, eller datamaskiner som har mer enn en sentral prosesseringsenhet (CPU).Når de flere prosessorene ser på den samme minnesektoren og den ene oppdaterer sektoren, kan den andre sitte igjen med en gammel versjon av dataminnet.For å løse dette problemet brukes konsistensregler for å sikre at prosessorene enten ikke får tilgang til det samme minnet, eller at oppdateringene er konsistente mellom dem.Det er flere forskjellige konsistensmodeller, så programmerere og datamaskinutviklere må kjenne til den nøyaktige modellen som brukes.

Memory Coherence -problemet er en som bare oppstår på datamaskiner som bruker minst to CPU -er på grunn av hvordan de får tilgang til minne.Når en CPU får tilgang til en minnesektor, er den i stand til å ta, bruke og endre minnet uten noen konflikt, fordi det ikke er noen andre maskinvarestykker som konkurrerer om minne.Hvis to CPUer brukes, kan de to CPU -ene ta den samme minnesektoren.Selv om det ikke er noen problemer med de to CPU -ene som deler minnet, oppstår et problem hvis en CPU oppdaterer minnet.Dette etterlater den andre CPU med utdatert minne som, hvis den ikke blir sjekket, kan føre til at hele datamaskinen har to separate og motstridende versjoner av dataminne.

Det er programmeringsskjemaer laget spesielt for å korrigere minnekoherens, noe som kan være et stort spørsmål.De er samlet kjent som hukommelseskonsistensregler, og det er mange versjoner.Totalt sett forteller hver versjon flere CPU -er hvordan du kan dele dataminnet riktig uten å forårsake minnekoherensproblemet.Dette kan gjøres ved å oppdatere begge versjonene av minnet når en versjon endres eller ved å hindre CPU -ene i å få tilgang til det samme minnet samtidig.

Mens du bruker konsistensregler hjelper til med å unngå minnekoherensproblemet, oppstår et annet problem fra dette.Hvert konsistenssett har forskjellige programmering og forskjellige regler, så programmerere som lager programmer eller skriver kode som omhandler direkte med CPU -ene, må skreddersy kodingen for de eksakte konsistensreglene.Hvis ikke, kan dette enten overstyre konsistensen eller forårsake en stor konflikt mellom programmererens koding og konsistensreglene, og datamaskinen kan slutte å fungere.