Qu'est-ce que le nettoyage de mémoire ?

Le nettoyage de la mémoire consiste à lire la mémoire d'un ordinateur, à corriger les erreurs, puis à réécrire les données corrigées. 

Les cellules de mémoire des processeurs des ordinateurs modernes sont extrêmement denses. Par conséquent, elles sont exposées à divers dangers, notamment les particules alpha et les rayons cosmiques.

En raison des impuretés radioactives, les particules alpha constituaient un problème plus important pour les premières puces RAM ; la technologie actuelle a résolu ce problème mais ne peut pas se prémunir contre les rayons cosmiques.

le nettoyage de mémoire

Les particules alpha sont un type de rayonnement puissant. Elles sont émises par les noyaux lors de la désintégration radioactive et correspondent essentiellement au noyau d'un atome d'hélium.

Elles ont une courte portée car elles sont assez grosses et ont une forte charge électrique. Toutefois, à l'intérieur de cette portée, ils peuvent avoir un impact important.

La charge électrique d'une particule alpha peut faire " basculer " un bit de 1 à 0 sur des appareils électroniques qui fonctionnent avec des charges électriques, comme les cellules de mémoire.

Les rayons cosmiques sont des protons de haute énergie et d'autres noyaux atomiques qui proviennent de sources astronomiques et attaquent constamment le globe.

L'atmosphère offre une protection raisonnable contre les rayons cosmiques, mais cette protection diminue avec l'altitude, ce qui augmente la probabilité d'un retournement de bit de rayon cosmique.

Le véritable danger vient des "secondaires", ou débris, créés par la collision d'un rayon cosmique avec la haute atmosphère.

On estime que de telles causes produisent au moins une erreur chaque année dans au moins 8 % des clés de RAM dans le monde. Bien que ce chiffre puisse sembler faible (il s'agit en fait d'une petite minorité), il est suffisant pour susciter des inquiétudes.

Les cellules de mémoire corrompues sont appelées erreurs molles en raison d'influences extérieures, et elles peuvent être réparées.

RAM avec ECC

En général, les données informatiques ne sont pas conservées en un seul endroit, notamment dans les modules de mémoire dits ECC.

ECC est l'abréviation de error correction code (code de correction d'erreur). Ces modules sont utilisés dans des situations où des données potentiellement endommagées peuvent avoir des conséquences coûteuses ou mortelles.

La fiabilité des avions, des réacteurs nucléaires, des vaisseaux spatiaux, des ensembles de données scientifiques et des modèles financiers est requise.

La RAM ECC stocke les données de manière redondante, ce qui permet de réparer les erreurs. Il n'y a pas de duplication des données. Cependant, une somme de contrôle qui peut être comparée aux données actuelles est fournie.

Si la somme de contrôle est incorrecte, une erreur s'est produite et peut être réparée. Si la somme de contrôle est correcte, aucune erreur corrigible ne s'est produite.

La formulation est essentielle. L'expression "aucune erreur corrigible ne s'est produite" n'est pas synonyme de "aucune erreur ne s'est produite".

Cette notion ne fonctionne que si l'ordinateur vérifie régulièrement l'absence de problèmes. Les erreurs logicielles ou binaires peuvent être réparées tant qu'il s'agit d'erreurs uniques ; les erreurs multiples ne peuvent pas être réparées.

Si une clé RAM stocke le calcul 2+2=4, elle peut détecter un bitflip qui le transforme en 2+2=5. Cependant, s'il y a eu deux inversions de bits indépendantes, vous pouvez vous retrouver avec la valeur stockée 2+3=5. Ce n'est pas la valeur prévue et cela peut poser des problèmes pour les calculs qui en dépendent, mais l'ECC n'a pas été capable de détecter ou de remédier au problème.

Cet exemple est trop simplifié. Il souligne toutefois pourquoi il est essentiel que ces erreurs peu fréquentes soient détectées dès que possible.

Les deux erreurs sont corrigibles, à condition que l'une soit corrigée avant l'autre. Étant donné le faible taux d'incidence, il n'y a pas vraiment d'urgence. En revanche, les événements aléatoires peuvent se produire à proximité immédiate.

Mise en œuvre de la pratique

Une fois détectées, les erreurs doivent être corrigées. Le nettoyage de la mémoire est le processus qui consiste à localiser et à corriger les erreurs de mémoire.

Le nettoyage de la mémoire n'est pas effectué lorsque le CPU demande des données à la RAM afin d'éviter tout impact sur les performances.

Au lieu de cela, la procédure de nettoyage est exécutée par le contrôleur de mémoire pendant que la RAM est inactive.

Cela augmente la consommation d'énergie car la procédure nécessite de lire les données de la RAM puis de les réécrire dans la RAM pour corriger les erreurs.

Lorsque l'unité centrale demande des données, le contrôleur de mémoire vérifie les erreurs à la volée. Le nettoyage de la mémoire, en revanche, garantit que toute la RAM est vérifiée, même lorsqu'elle n'est pas sollicitée.

Conseil : les paramètres de scrub peuvent souvent être modifiés dans l'application de configuration du BIOS de votre ordinateur si nécessaire. Cela nécessitera l'utilisation de RAM ECC, que la plupart des PC ne prennent pas en charge.

La fréquence à laquelle le stockage doit être nettoyé est idéalement déterminée par le type et la taille du stockage.

Les caches du processeur basés sur la SRAM peuvent également être nettoyés. Cependant, ils sont généralement beaucoup plus petits que la mémoire principale et n'ont pas besoin d'être nettoyés aussi fréquemment.

La DRAM est couramment utilisée comme mémoire principale. La DRAM a une densité de stockage beaucoup plus élevée et occupe plus d'espace physique, ce qui entraîne un plus grand potentiel d'erreurs logicielles. Par conséquent, elles doivent être nettoyées plus fréquemment.

Conclusion

Le nettoyage de la mémoire consiste à utiliser des codes de correction d'erreur, parfois appelés ECC, pour s'assurer que les données contenues dans un dispositif de mémoire n'ont pas été altérées par un retournement de bit.

Comme l'indique le taux d'incidence croissant avec l'altitude, les inversions de bits dans les dispositifs modernes sont généralement induites par les rayons cosmiques secondaires.

L'effacement s'effectue de deux manières. Le premier type est opportuniste ; lorsque l'unité centrale cherche des données, on parle d'épuration à la demande.

L'autre technique est connue sous le nom d'épuration par patrouille. Dans ce cas, le contrôleur de mémoire opère automatiquement sur l'ensemble de la RAM alors que celle-ci est par ailleurs inactive.

Le nettoyage des dispositifs de stockage sur une base régulière et efficace contribue à leur fiabilité. Le nettoyage de la mémoire, en revanche, nécessite une mémoire vive ECC et n'est pas réalisable avec une mémoire vive ordinaire.

La mémoire DDR5 est dotée de la fonction "ECC on-die". Cela permet de corriger les retournements de bits pendant que les données sont au repos.

La véritable mémoire ECC, quant à elle, peut non seulement effectuer cette correction, mais aussi détecter les erreurs pendant la transmission, car les informations de parité sont également envoyées en même temps.

L'ECC sur puce ne peut pas accomplir cela, et n'est pas non plus aussi efficace que la véritable mémoire ECC. Néanmoins, comme elle ne nécessite pas l'ajout d'une puce RAM redondante à un module DIMM, il s'agit d'une méthode relativement peu coûteuse pour accroître la fiabilité de la mémoire.