Skip to main content

Wat is geheugencoherentie?

Geheugencoherentie is een probleem dat zich op een computer voordoet wanneer een processor probeert te kijken naar een geheugensector.Dit probleem komt alleen voor op multicore systemen of computers met meer dan één centrale verwerkingseenheid (CPU).Wanneer de meerdere processors naar dezelfde geheugensector kijken en de ene de sector bijwerkt, kan de andere worden achtergelaten met een oude versie van het computergeheugen.Om dit probleem op te lossen, worden consistentieregels gebruikt om ervoor te zorgen dat de processors ofwel geen toegang hebben tot hetzelfde geheugen of dat de updates tussen hen consistent zijn.Er zijn verschillende consistentiemodellen, dus programmeurs en computerontwikkelaars moeten het exacte gebruikte model kennen.

Het geheugencoherentieprobleem is er een dat alleen voorkomt op computers die ten minste twee CPU's gebruiken vanwege hoe ze toegang hebben tot geheugen.Wanneer een CPU toegang heeft tot een geheugensector, is deze in staat om het geheugen zonder conflict te nemen, te gebruiken en te wijzigen, omdat er geen andere hardware -stukken zijn die concurreren om geheugen.Als twee CPU's worden gebruikt, kunnen de twee CPU's dezelfde geheugensector pakken.Hoewel er geen problemen zijn met de twee CPU's die het geheugen delen, ontstaat er een probleem als één CPU het geheugen bijwerkt.Dit laat de tweede CPU met verouderd geheugen achter die, indien ongecontroleerd achtergelaten, ervoor kan zorgen dat de hele computer twee afzonderlijke en conflicterende versies van computergeheugen heeft.

Er zijn programmeerschema's die specifiek zijn gemaakt om geheugencoherentie te corrigeren, wat een groot probleem kan zijn.Ze staan gezamenlijk bekend als regels voor geheugenconsistentie en er zijn veel versies.Over het algemeen vertelt elke versie de meervoudige CPU's hoe het computergeheugen goed kan delen zonder het geheugencoherentieprobleem te veroorzaken.Dit kan worden gedaan door beide versies van het geheugen bij te werken wanneer een versie wordt gewijzigd of door te voorkomen dat de CPU's tegelijkertijd toegang krijgen tot hetzelfde geheugen.

Hoewel het gebruik van consistentieregels het probleem van de geheugencoherentie helpt te voorkomen, komt er een ander probleem voort.Elke consistentie -set heeft verschillende programmering en verschillende regels, dus programmeurs die programma's maken of code schrijven die rechtstreeks te maken hebben met de CPU's, moeten de codering aanpassen aan de exacte consistentieregels.Zo niet, dan kan dit de consistentie overschrijven of een groot conflict veroorzaken tussen de codering van de programmeur en de consistentieregels, en de computer kan ophouden te functioneren.