Skip to main content

Hvad er hukommelseskohærens?

Hukommelseskohærens er et problem, der opstår på en computer, når en processor forsøger at se på en hukommelsessektor.Dette problem forekommer kun på multicore -systemer eller computere, der har mere end en central behandlingsenhed (CPU).Når de flere processorer ser på den samme hukommelsessektor, og den ene opdaterer sektoren, kan den anden være tilbage med en gammel version af computerhukommelsen.For at løse dette problem bruges konsistensregler til at sikre, at processorer enten ikke får adgang til den samme hukommelse, eller at opdateringerne er konsistente mellem dem.Der er flere forskellige konsistensmodeller, så programmerere og computerudviklere skal kende den nøjagtige model, der bruges.

Problemet med hukommelseskohærens er et, der kun forekommer på computere, der bruger mindst to CPU'er på grund af hvordan de får adgang til hukommelsen.Når en CPU får adgang til en hukommelsessektor, er den i stand til at tage, bruge og ændre hukommelsen uden nogen konflikt, fordi der ikke er andre hardwarestykker, der konkurrerer om hukommelsen.Hvis der bruges to CPU'er, kan de to CPU'er gribe den samme hukommelsessektor.Selvom der ikke er problemer med de to CPU'er, der deler hukommelsen, opstår der et problem, hvis en CPU opdaterer hukommelsen.Dette efterlader den anden CPU med en forældet hukommelse, der, hvis den ikke er kontrolleret, kan få hele computeren til at have to separate og modstridende versioner af computerhukommelse.

Der er programmeringsskemaer, der er lavet specifikt for at rette op på hukommelseskohærensen, hvilket kan være et stort problem.De er samlet kendt som hukommelseskonsistensregler, og der er mange versioner.Generelt fortæller hver version af de flere CPU'er, hvordan man korrekt deler computerhukommelsen uden at forårsage hukommelseskohærensproblemet.Dette kan gøres ved at opdatere begge versioner af hukommelsen, når en version ændres eller ved at forhindre CPU'erne i at få adgang til den samme hukommelse på samme tid.

Mens brug af konsistensregler hjælper med at undgå hukommelseskohærensproblemet, opstår et andet problem fra dette.Hvert konsistenssæt har forskellige programmering og forskellige regler, så programmerere, der laver programmer eller skriver kode, der beskæftiger sig direkte med CPU'erne, bliver nødt til at skræddersy kodningen for de nøjagtige konsistensregler.Hvis ikke, kan dette enten tilsidesætte konsistensen eller forårsage en større konflikt mellem programmererens kodning og konsistensreglerne, og computeren kan ophøre med at fungere.