Skip to main content

Cos'è la coerenza della memoria?

La coerenza della memoria è un problema che si verifica in un computer quando un processore tenta di esaminare un settore della memoria.Questo problema si verifica solo su sistemi multicore o computer che hanno più di un'unità di elaborazione centrale (CPU).Quando i più processori guardano lo stesso settore della memoria e uno aggiorna il settore, l'altro può essere lasciato con una vecchia versione della memoria del computer.Per risolvere questo problema, le regole di coerenza vengono utilizzate per garantire che i processori non accedano la stessa memoria o che gli aggiornamenti siano coerenti tra di loro.Esistono diversi modelli di coerenza, quindi programmatori e sviluppatori di computer devono conoscere il modello esatto utilizzato.

Il problema della coerenza della memoria è uno che si verifica solo su computer che utilizzano almeno due CPU a causa di come accedono alla memoria.Quando una CPU accede a un settore della memoria, è in grado di prendere, utilizzare e alterare la memoria senza alcun conflitto, perché non ci sono altri pezzi di hardware in competizione per la memoria.Se vengono utilizzati due CPU, i due CPU possono afferrare lo stesso settore della memoria.Sebbene non ci siano problemi con le due CPU che condividono la memoria, si presenta un problema se una CPU aggiorna la memoria.Questo lascia la seconda CPU con memoria obsoleta che, se lasciata incontrollata, può far sì che l'intero computer abbia due versioni separate e contrastanti della memoria del computer.

Ci sono schemi di programmazione realizzati specificamente per correggere la coerenza della memoria, che può essere un problema importante.Sono conosciuti collettivamente come regole di coerenza della memoria e ci sono molte versioni.Nel complesso, ogni versione indica alle CPU multiple come condividere correttamente la memoria del computer senza causare il problema della coerenza della memoria.Questo può essere fatto aggiornando entrambe le versioni della memoria quando una versione viene modificata o impedendo alle CPU di accedere alla stessa memoria contemporaneamente.

Mentre l'utilizzo delle regole di coerenza aiuta a evitare il problema della coerenza della memoria, ne deriva un altro problema.Ogni set di coerenza ha diverse programmi e regole diverse, quindi i programmatori che stanno realizzando programmi o scrivendo un codice che si occupano direttamente delle CPU dovranno personalizzare la codifica per le regole di coerenza esatte.In caso contrario, ciò può sovrascrivere la coerenza o causare un grave conflitto tra la codifica del programmatore e le regole di coerenza e il computer può smettere di funzionare.