Mémoire ECC : caractéristiques et fonctionnement de cette RAM

Mémoire ECC

Vous avez sûrement déjà lu ou entendu le concept de mémoire ECC, surtout si nous parlons de processeurs de serveur, où ce type de mémoire est utilisé. Mais, en quoi diffèrent-ils de ceux traditionnellement utilisés dans les ordinateurs ? Peuvent-ils être installés sur un PC de bureau ou un ordinateur portable ? Que signifie l'acronyme ECC ? On vous l'explique.

Dans le monde des serveurs, un type de RAM On utilise une mémoire généralement accompagnée de l'acronyme ECC, en plus de ce que l'on appelle la mémoire enregistrée, qui se présente sous la forme de modules RDIMM. Donc, dans cet article, nous n'allons pas décrire le matériel que vous trouverez normalement dans un PC, à moins que vous n'ayez une station de travail avec un Processeur de type HEDT ou vous travaillez quotidiennement avec des serveurs.

Qu'est-ce que la RAM enregistrée ou RDIMM ?

Enregistrement de la mémoire RDIMM

Les mémoires RAM enregistrées sont différentes des mémoires conventionnelles en raison du détail d'avoir un registre situé entre le module de mémoire, appelé dans ce cas RDIMM, et le contrôleur de mémoire système. Ce registre est une mémoire qui stocke les informations suivantes :

  • Adresses mémoire auxquelles accéder.
  • Commandes (lecture, écriture ou copie)
  • Vitesse d'horloge à laquelle il communique avec la RAM

Il diffère dans son fonctionnement des DIMM conventionnels par le fait que tandis que les données sont envoyées via les broches classiques pour la communication de données, les commandes qui permettent d'accéder à la mémoire sont exécutées à l'aide de ce registre. Ceci est fait pour avoir une plus grande intégrité du signal et réduire la charge électrique sur le contrôleur de mémoire, l'un des avantages qui en découle étant la possibilité de prendre en charge plus de modules de mémoire dans le système.

Cependant, les modules RDIMM sont plus lents à utiliser que les modules conventionnels, car une étape supplémentaire est ajoutée pour l'accès au registre, ce qui se traduit par une bande passante beaucoup plus faible et une latence beaucoup plus élevée dans les RDIMM. Cependant, les modules DIMM utilisés dans les PC sont destinés à être utilisés dans les PC de bureau où il n'y a généralement pas plus de deux canaux d'accès, comme c'est le cas avec les postes de travail basés sur des processeurs HEDT et également sur des serveurs.

Qu'est-ce que l'ECC en RAM ?

Intel Xeon

Nous devons tenir compte du fait que la RAM, étant une mémoire volatile, dépend de l'électricité pour maintenir les données qu'elle stocke, ce qui la rend vulnérable aux pertes. Surtout si l'on tient compte du fait que ceux que nous utilisons dans nos PC sont de type DRAM et ont donc besoin d'un rafraîchissement de la charge de temps en temps, cela les rend vulnérables aux interférences magnétiques et électriques.

Habituellement, les bits de chaque cellule dans une mémoire RAM ne changent généralement pas, car il y a une distance de tension suffisamment grande entre les deux valeurs pour qu'il n'y ait pas de saut d'une valeur à une autre, cependant, à mesure que de nouvelles générations sont libérées, la mémoire diminue le tension de différence et c'est là que les méthodes de correction d'erreur ou ECC sont nécessaires afin de maintenir l'information.

Mais pour se faire une idée nous allons prendre une valeur simple en binaire, 011101011, qui en décimal équivaut au nombre 235.

  • Si le premier bit change, 111101011, alors la valeur devient 491.
  • Si c'est le deuxième bit qui change, 001101011, la valeur devient 107.
  • Un changement dans le troisième bit fait la valeur 011001011 et donc 203.

D'après ce que vous pouvez voir, un simple changement dans les valeurs de la RAM peut changer la valeur d'une donnée dans une adresse mémoire et nous devons tenir compte du fait qu'ils stockent non seulement des données, mais aussi des instructions et si nous pensons aux serveurs, nous avons Gardez à l'esprit que ceux-ci sont conçus pour fonctionner 24 heures sur 7 et XNUMX jours sur XNUMX, c'est-à-dire perpétuellement. Il faut tenir compte du fait que la DRAM ne va pas rester stable, de sorte qu'avec le temps, les erreurs se multiplient, ce qui peut entraîner un crash généralisé du système.

Le code de Hamming

Code Hamming ECC

La méthode utilisée pour corriger les erreurs dans le signal de mémoire ECC est appelée code de Hamming, ce n'est pas n'importe quel type d'algorithme exécuté par le CPU, mais est effectué dans le contrôleur de mémoire lui-même qui se trouve dans le processeur. avec prise en charge de ce type de RAM. Son nom est dû au mathématicien américain Richard W. Hamming qui est celui qui l'a développé.

Comment ça marche? L'idée du code de Hamming est d'ajouter des bits de redondance pour la correction d'erreur en comparant la valeur des bits de parité. Pour ce faire, il s'agit de compter les bits de gauche à droite et ils sont numérotés, non pas selon la valeur qu'ils stockent, mais leur position est prise en compte.

Les bits qui en position correspondent à une puissance de 2 (1, 2, 4, 8…) sont marqués comme bits de parité, tandis que le reste des bits est marqué comme bits de données uniquement. Les bits de parité sont doublés à la fin de la chaîne de bits, ils sont donc également appelés bits de redondance, du fait qu'ils sont répétés. Pour vérifier l'intégrité des données, il s'agit de les comparer entre elles pour vérifier l'intégrité du signal qui est stocké en mémoire.

Code Hamming bits parité

Si l'opération est une écriture mémoire :

  • Le CPU envoie les informations au contrôleur de mémoire où il lui indique quelle adresse mémoire il veut modifier et les données qu'il veut écrire.
  • Le contrôleur génère le code ECC et l'envoie en mémoire.
  • Les données sont stockées en mémoire.

En revanche, s'il est lu depuis la mémoire.

  • La CPU fait une demande à une adresse mémoire au contrôleur qui fait la demande à la RAM.
  • Le contrôleur exécute le code de Hamming pour effectuer le contrôle, si les données sont correctes alors elles sont renvoyées au CPU, si elles ne sont pas correctes, le processus de correction d'erreur est effectué automatiquement.

Modules RAM avec ECC

RAM ECC et non ECC

Les modules de mémoire ECC ont plus de puces de mémoire malgré la même capacité de stockage, car certains bits sont utilisés pour la correction d'erreurs. Il faut tenir compte du fait que dans la mémoire ECC, la parité n'est pas exécutée dans chaque octet. Ce que vous faites, c'est utiliser des blocs de 9 bits par octet, donc au final vous avez 64 bits pour stocker les données et 8 comme bits de parité.

Cela signifie également que le contrôleur de mémoire dans le processeur qui communique dans la RAM doit être capable de générer le code de Hamming et comme la mémoire de type ECC est généralement utilisée dans les processeurs plus avancés que les processeurs de bureau, cela signifie que la prise en charge de ce type de mémoire nécessite non seulement des contrôleurs de mémoire spéciaux, mais également des cartes mères spéciales qui prennent en charge ce type de mémoire. Étant donné qu'un PC domestique ne sera pas allumé en permanence et aura des redémarrages réguliers, aucune mémoire ECC n'est utilisée

Avec cela, nous arrivons à la dernière partie de l'article qui sont les RDIMM avec ECC, qui combinent évidemment les caractéristiques des deux types de RAM et avec eux tous leurs avantages et inconvénients. À ce jour, étant donné que toutes les mémoires RDIMM sont destinées au serveur et au HEDT et que ce marché nécessite le code de correction d'erreur, il n'y a pas un seul module de mémoire RDIMM qui ne soit pas ECC.