62 votes

Qu'est-il arrivé à la RAM ECC ?

Il y a dix ou vingt ans, je pouvais acheter de la RAM ECC (Error Correction Code) pour les PC que j'assemblais. La RAM ECC fournissait SEC-DED, je suppose contre les inversions de bits causées par les radiations ionisantes (je ne sais pas ce qui pourrait causer d'autres erreurs de bits transitoires dans la RAM ou les bus E/S).

Cela fait des années que je ne vois plus de RAM ECC proposée pour les PC. Comment cela se fait-il ?

Si la mémoire ECC était utile il y a vingt ans, elle serait probablement plus utile maintenant que les PC fonctionnent avec 1 à 2 ordres de grandeur de plus de mémoire, à des tensions inférieures et avec des caractéristiques physiques plus petites qui sont (vraisemblablement) plus susceptibles d'être corrompues par des radiations parasites. Certaines de ces hypothèses sont-elles incorrectes ?

Par exemple, si la mémoire vive ECC était considérée comme une fonctionnalité utile il y a dix ans, les raisons pour lesquelles elle était utile ne s'appliquent-elles plus aux ordinateurs personnels et aux serveurs actuels ? Ou bien pense-t-on aujourd'hui que la RAM ECC n'a jamais été réellement utile ?

67voto

Giacomo1968 Points 48326

Il y a plus de 15 ans, Intel a décidé que la prise en charge de la RAM ECC n'avait pas d'intérêt pour les machines grand public.

En d'autres termes, Intel a décidé il y a plus de 15 ans que les machines grand public n'en avaient pas besoin. Ainsi, le marché ne le supporte pas en dehors du matériel de serveur. Les consommateurs finaux en paient donc le prix.

Cet article paru en janvier 2021 dans ExtremeTech fournit un résumé assez solide de ce qui s'est passé : " Linus Tovalds accuse Intel d'avoir tué la RAM ECC dans les systèmes grand public " :

"Il fut un temps où l'on pouvait acheter la prise en charge ECC sur les chipsets grand public, mais Intel a supprimé progressivement cette capacité sur les plates-formes non-Xeon il y a plusieurs années. La 975X a peut-être été la dernière plate-forme Intel grand public à la supporter, et cette famille a été lancée il y a 15 ans. Le chipset Xeon 3450 était compatible avec certains processeurs haut de gamme de la famille Nehalem, mais il s'agit toujours d'un chipset Xeon, et non d'un composant grand public."

"En conséquence, la prise en charge de l'ECC dans les produits grand public - et la disponibilité de la RAM ECC pour les produits grand public - ont toutes deux chuté."

Puisque l'article cite Linus Torvalds, voici sa plainte spécifique :

"Les fabricants de mémoire prétendent que c'est pour des raisons économiques et pour réduire la puissance. Et ce sont des salauds de menteurs - laissez-moi encore une fois pointer du doigt le marteau-pilon sur le fait que ces problèmes existent depuis plusieurs générations déjà, mais ces f*ckers ont joyeusement vendu du matériel cassé aux consommateurs et ont prétendu qu'il s'agissait d'une 'attaque', alors que c'était toujours 'nous faisons des économies'."

Le problème est que Linux est accusé d'erreurs du noyau, mais Linus Torvalds pense que la cause première est un problème matériel qui peut être attribué à la prévalence de la RAM non-ECC dans les machines d'aujourd'hui.

Mais c'est une tangente Ce qui revient à dire que les fabricants de PC prennent des raccourcis. Un problème classique de fabrication.

Et de nos jours, alors que le matériel informatique est considéré comme jetable, il peut y avoir une certaine logique : La RAM commence à être défaillante, il suffit de jeter la machine et d'en acheter une nouvelle. La vérité est que le marché est rempli de non-techniciens et de non-constructeurs de PC, alors Ça craint, mais c'est ce que c'est.

39voto

masgo Points 2044

Je suis d'accord avec la réponse donnée par @Giacomo1968 en ce qui concerne l'histoire. L'état actuel est cependant en train de changer. AMD a récemment commencé à prendre en charge la mémoire ECC dans sa gamme actuelle de processeurs de bureau pour le socket AM4 : "L'ECC n'est pas désactivé. Il fonctionne, mais n'est pas validé pour notre plateforme client grand public." (Source : Reddit )

Cela dit, la carte mère doit également le prendre en charge. Certaines cartes grand public le font, d'autres non.

39voto

Xian Points 33986

Un peu plus pour répondre à la question :

Intel a décidé unilatéralement que les consommateurs n'avaient pas besoin de l'ECC et a décidé de ne le fournir qu'aux clients des serveurs et des stations de travail pour lesquels Intel pouvait demander une prime.

Microsoft a essayé de faire de l'ECC une fonctionnalité obligatoire pour la certification de Vista, mais Intel a refusé de le faire. Avant la série Core i7, le contrôleur de mémoire faisait partie de la carte mère et la prise en charge de l'ECC était une fonction du chipset de la carte mère.

Vous pouvez obtenir des ordinateurs portables avec ECC. Par exemple, la gamme Dell Precision Workstation peut être équipée d'un processeur Xeon-W et de RAM ECC.

Vous pouvez acheter n'importe quel CPU Ryzen. Enfin, n'importe quel Ryzen sans graphiques intégrés. Pour que les graphiques intégrés fonctionnent avec ECC, vous avez besoin d'une version Pro qui est difficile à trouver, sauf si vous l'achetez dans un système pré-construit.

Avec un Ryzen et une carte mère comme la ligne ASUS PRO, l'ECC sans tampon fonctionnera très bien.

Pour les modules ECC enregistrés et tamponnés, vous avez besoin d'un vrai processeur Xeon ou EPYC car ces types de RAM sont contrôlés différemment.

Dans un avenir proche, la RAM DDR5 aura la possibilité d'utiliser l'ECC en interne, sans aucune notification ou contrôle de la part du CPU. Elle a également la possibilité de fournir une signalisation et un contrôle aux CPU qui la prennent en charge.

Voici un exemple de module ECC que vous pouvez acheter aujourd'hui. J'en ai acheté quatre pour une construction Ryzen :

"Mémoire Crucial Server 16GB DDR4 DIMM 288-pin - 2666 MHz / PC4-21300 - CL19-1.2 V - sans tampon - ECC CT16G4WFD8266"

Je fournirais bien un lien Amazon mais cela pourrait être considéré comme du spam. Notez également que vous pouvez obtenir des modules ECC à une vitesse de 3 200 MHz aujourd'hui.

39voto

Peter Smith Points 696

Il y a une dizaine ou une vingtaine d'années, je pouvais acheter de la RAM ECC (Error Correction Code) pour 1 000 euros. PC que j'assemblais. La RAM ECC fournissait SEC-DED, je suppose contre les inversions de bits de bits causés par les radiations ionisantes (je ne sais pas ce qui pourrait causer d'autres des erreurs binaires transitoires dans la RAM ou les bus E/S).

Il existe trois causes générales d'erreurs de bits, dont les deux premières sont les suivantes événements uniques :

  1. Rayonnement (principalement neutrons libres ). Ce phénomène particulier dépend d'un certain nombre d'éléments tels que le section transversale des neutrons de l'appareil en question. Cela peut sembler contraire à l'intuition, mais les plus récents beaucoup plus petit ont une probabilité plus faible d'être perturbées par des neutrons car elles ont été conçues pour être moins sensibles. Voir le Lien vers Xilinx (à partir du bas).

  2. Le plomb, plus précisément le Pb210 qui fait partie du Chaîne de désintégration de l'uranium et se trouve dans les anciens kits dans les boules des dispositifs BGA. Xilinx désigne les erreurs de ce type comme le taux alpha, car elles émettent une particule alpha lors de la désintégration. Il est clair que ce n'est pas un problème pour une grande partie des équipements actuels qui sont sans plomb (mais c'est toujours un problème dans l'aérospatiale où le traitement du plomb à l'étain est encore courant).

  3. Problèmes généraux de taux d'erreur binaire. Une interface mémoire est un canal de communication, et tous Les canaux de communication ont un taux d'erreur. Il est vrai que vous ne verrez peut-être jamais une seule erreur de bit dans la vie d'un équipement particulier, car il s'agit d'une quantité statistique. Les erreurs dues au bruit électrique et à un mauvais découplage des appareils entrent également dans cette catégorie.

Par exemple, si la mémoire vive ECC était considérée comme une fonctionnalité utile il y a dix ans, les raisons pour lesquelles elle était utile ne s'appliquent plus aux ordinateurs personnels actuels. raisons pour lesquelles elle était utile ne s'appliquent plus aux ordinateurs personnels et aux et les serveurs actuels ? Ou est-ce que l'on pense maintenant que la RAM ECC n'a jamais été réellement utile ?

Elle était utile, mais d'une valeur limitée, bien que de nombreuses attaques par canal latéral puissent être atténuées par son utilisation.

La véritable raison pour laquelle vous ne pouvez pas le trouver dans les cartes disponibles dans le commerce est tout simplement le coût et les cartes qui ne sont pas disponibles dans le commerce. faire avoir une prime assez importante, bien plus élevée que le coût delta du silicium pour le gérer et les 8 bits de données supplémentaires (pour un système de mémoire de 64 bits). L'analyse coûts-avantages ne permet pas d'envisager une large diffusion.

Je me souviens d'un document de recherche de Boeing qui traitait des erreurs molles dans un centre de données de Denver. La quantité de neutrons libres est (jusqu'à un certain niveau) proportionnelle à l'altitude. Plus on s'élève, plus il y en a.

Si la mémoire ECC était utile il y a vingt ans, elle serait probablement plus utile maintenant que les PC fonctionnent avec 1 à 2 ordres de grandeur de plus de plus de mémoire, à des tensions plus basses et avec des caractéristiques physiques plus petites qui (présumément) n'ont pas d'importance. (vraisemblablement) plus susceptibles d'être corrompues par des radiations parasites. L'une de ces hypothèses est-elle incorrecte ?

Les interfaces de mémoire dont nous disposons aujourd'hui sont loin Les tensions de transition sont plus robustes que vous ne le pensez ; pour la DDRx, les strobes de données sont différentielles (elles rejettent donc le bruit de mode commun) et des tensions de transition plus faibles sont en fait meilleures pour les interfaces à haut débit, comme nous l'avons prouvé il y a des années avec la ECL .

Dans l'avionique, et en particulier dans l'avionique critique pour la sécurité du vol, comme les ordinateurs de contrôle de vol, l'utilisation de l'ECC pour L2 et au-delà est obligatoire, tout comme l'utilisation de la parité pour L1. C'est l'une des raisons pour lesquelles ces cartes ne sont pas de marque Intel ou AMD.

[Mise à jour]. Les spécificités de la disposition des cellules de mémoire ont un effet assez important sur leur susceptibilité aux SEU ; Xilinx a adopté une approche particulière qui empile effectivement les cellules de mémoire de manière à ce que les SEU ne puissent pas se produire. probabilité d'un neutron de haute énergie provoquant un basculement de bit est considérablement réduite.

Comme je suis pas un concepteur de circuits intégrés, c'est tout ce que je peux dire. Il y a beaucoup plus d'informations sur le site Projet Rosetta .

4voto

Dmitry Grigoryev Points 8663

Cela reflète la qualité des logiciels des consommateurs, entre autres facteurs.

La mémoire vive ECC n'est vraiment utile que si le taux d'erreur dû aux basculements sporadiques des bits est la cause dominante des défaillances. Si vous utilisez un logiciel très fiable qui ne se plante jamais de lui-même, l'élimination des quelques sources d'erreurs restantes améliore en fait le taux d'erreur de la RAM. MTBF du système.

Si vous utilisez un logiciel produit à la va-vite en raison de l'économie du "winner takes it all", il aura de nombreuses sources de défaillance en plus des erreurs de RAM. Payer un supplément pour réduire votre taux d'erreur de quelques pour cent n'a pas de sens dans ce cas.

Vient ensuite la rétroaction positive typique des biens dont les coûts fixes sont élevés : des prix plus élevés entraînent une baisse de la demande, ce qui se traduit par des prix encore plus élevés. Je ne pense pas qu'Intel soit à blâmer ici : ils n'ont pas arrêté de supporter l'ECC dans les puces grand public parce qu'ils détestent la technologie, ils l'ont fait parce qu'ils gagnent plus d'argent en vendant des puces non-ECC moins chères.

Notamment, dans le monde des microcontrôleurs industriels, les contrôleurs qui exécutent des logiciels conçus selon les principes de la normes de sécurité fonctionnelle La RAM ECC est largement utilisée aujourd'hui.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X