Skip to main content

Qu'est-ce que la cohérence de la mémoire?

La cohérence de la mémoire est un problème qui se produit dans un ordinateur lorsqu'un processeur tente de regarder un secteur de la mémoire.Ce problème ne se produit que sur des systèmes multicore ou des ordinateurs qui ont plus d'une unité centrale de traitement (CPU).Lorsque les multiples processeurs examinent le même secteur de mémoire et que l'un met à jour le secteur, l'autre peut être laissé avec une ancienne version de la mémoire de l'ordinateur.Pour résoudre ce problème, des règles de cohérence sont utilisées pour garantir que les processeurs n'accèdent pas à la même mémoire ou que les mises à jour sont cohérentes entre elles.Il existe plusieurs modèles de cohérence différents, donc les programmeurs et les développeurs d'ordinateurs doivent connaître le modèle exact utilisé.

Le problème de cohérence de la mémoire est celui qui ne se produit que sur les ordinateurs qui utilisent au moins deux CPU en raison de la façon dont ils accéder à la mémoire.Lorsqu'un processeur accéde à un secteur de la mémoire, il est capable de prendre, d'utiliser et de modifier la mémoire sans aucun conflit, car il n'y a pas d'autres pièces de matériel en concurrence pour la mémoire.Si deux CPU sont utilisés, les deux CPU peuvent saisir le même secteur de mémoire.Bien qu'il n'y ait aucun problème avec les deux processeurs partageant la mémoire, un problème survient si un processeur met à jour la mémoire.Cela laisse le deuxième processeur avec une mémoire obsolète qui, si elle n'est pas contrôlée, peut faire en sorte que l'ensemble de l'ordinateur ait deux versions distinctes et conflictuelles de la mémoire de l'ordinateur.

Il existe des schémas de programmation spécialement conçus pour corriger la cohérence de la mémoire, ce qui peut être un problème majeur.Ils sont connus collectivement sous le nom de règles de cohérence de la mémoire, et il existe de nombreuses versions.Dans l'ensemble, chaque version indique aux multiples processeurs comment partager correctement la mémoire de l'ordinateur sans causer le problème de cohérence de la mémoire.Cela peut être fait en mettant à jour les deux versions de la mémoire lorsqu'une version est modifiée ou en empêchant les CPU d'accéder à la même mémoire en même temps.

Bien que l'utilisation de règles de cohérence aide à éviter le problème de cohérence de la mémoire, un autre problème en découle.Chaque ensemble de cohérence a une programmation différente et des règles différentes, donc les programmeurs qui créent des programmes ou écrivent du code qui traitent directement des CPU devront adapter le codage pour les règles de cohérence exactes.Sinon, cela peut soit remplacer la cohérence, soit provoquer un conflit majeur entre le codage du programmeur et les règles de cohérence, et l'ordinateur peut cesser de fonctionner.