Skip to main content

Vad är minneskoherens?

Minneskoherens är ett problem som uppstår i en dator när en processor försöker titta på en minnessektor.Detta problem uppstår endast på multicore -system, eller datorer som har mer än en central bearbetningsenhet (CPU).När de flera processorerna tittar på samma minnessektor och en uppdaterar sektorn kan den andra sitta kvar med en gammal version av datorminnet.För att lösa problemet används konsistensregler för att säkerställa att processorerna antingen inte har tillgång till samma minne eller att uppdateringarna är konsekventa mellan dem.Det finns flera olika konsistensmodeller, så programmerare och datorutvecklare måste veta den exakta modellen som används.

Minneskoherensproblemet är ett som bara inträffar på datorer som använder minst två CPU på grund av hur de får åtkomst till minne.När en CPU har tillgång till en minnessektor kan den ta, använda och ändra minnet utan någon konflikt, eftersom det inte finns några andra hårdvaruverk som tävlar om minne.Om två CPU: er används kan de två CPU: erna ta tag i samma minnessektor.Även om det inte finns några problem med att de två CPU: erna delar minnet, uppstår ett problem om en CPU uppdaterar minnet.Detta lämnar den andra CPU med föråldrat minne som, om det inte är kontrollerat, kan få hela datorn att ha två separata och motstridiga versioner av datorminnet.

Det finns programmeringsscheman specifikt för att korrigera minneskoherens, vilket kan vara en viktig fråga.De är kollektivt kända som minneskonsistensregler, och det finns många versioner.Sammantaget berättar varje version på flera CPU: er hur man delar datorminnet korrekt utan att orsaka minneskoherensproblemet.Detta kan göras genom att uppdatera båda versionerna av minnet när en version ändras eller genom att hålla CPU: erna från att komma åt samma minne samtidigt.

När du använder konsistensregler hjälper till att undvika minneskoherensproblemet, uppstår ett annat problem.Varje konsistensuppsättning har olika programmering och olika regler, så programmerare som gör program eller skrivkod som hanterar direkt med CPU: erna måste skräddarsy kodningen för de exakta konsistensreglerna.Om inte, kan detta antingen åsidosätta konsistensen eller orsaka en stor konflikt mellan programmerarens kodning och konsistensreglerna, och datorn kan upphöra att fungera.