Vad är minnesförenlighet?
Minne koherens är ett problem som uppstår i en dator när en processor försöker titta på en minnesektor. Det här problemet uppstår bara på flerkärniga system, eller datorer som har mer än en central processorenhet (CPU). När flera processorer tittar på samma minnessektor och en uppdaterar sektorn kan den andra ha en gammal version av datorminnet. För att åtgärda det här problemet används konsistensregler för att säkerställa att processorerna antingen inte får åtkomst till samma minne eller att uppdateringarna överensstämmer mellan dem. Det finns flera olika konsistensmodeller, så programmerare och datorutvecklare måste känna till den exakta modellen som används.
Problemet med minneskoherensen är ett problem som bara uppstår på datorer som använder minst två CPU: er på grund av hur de får åtkomst till minnet. När en CPU har åtkomst till en minnessektor kan den ta, använda och ändra minnet utan konflikt, eftersom det inte finns några andra hårdvara som konkurrerar om minnet. Om två CPU: er används kan de två CPU: erna ta i samma minnessektor. Det finns inga problem med de två CPU: erna som delar minnet, men det uppstår ett problem om en CPU uppdaterar minnet. Detta lämnar den andra processorn med föråldrat minne som, om den inte avmarkeras, kan göra att hela datorn har två separata och motstridiga versioner av datorminne.
Det finns programmeringsscheman speciellt gjorda för att korrigera minnes koherens, vilket kan vara en viktig fråga. De är gemensamt kända som minneskonsistensregler, och det finns många versioner. Sammantaget berättar varje version för flera processorer om hur man delar datorminnet på rätt sätt utan att orsaka minneskoherensproblemet. Detta kan göras genom att uppdatera båda versionerna av minnet när en version ändras eller genom att CPU: erna inte får åtkomst till samma minne på samma gång.
Medan du använder konsistensregler hjälper du till att undvika problem med minnessammanhang, uppstår ett annat problem av detta. Varje konsistensuppsättning har olika programmering och olika regler, så programmerare som gör program eller skriver kod som handlar direkt med CPU: erna måste skräddarsy kodningen för exakta konsistensregler. 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.