Depuis des dizaines d'années, une des excuses quand un programme a un gros bug va être « C'est pas moi, c'est Murphy » « Ce sont les rayons cosmiques ». En effet, et c'est un fait communément admis (et a priori faux), les fameux rayons cosmiques pourraient modifier la valeur d'un bit dans de la mémoire vive, et donc causer un plantage. Ou pire, comme en Belgique en 2003 (à Schaerbeek), modifier le résultat d'une élection : un candidat avait reçu 4 096 votes en trop, une erreur qui a été attribuée à un rayon cosmique, ou plus exactement à une erreur de la mémoire vive de la machine à dépouiller.

La solution classique pour éviter les erreurs en question va être d'utiliser de la mémoire ECC, à correction d'erreur. C'est une technologie qui permet de détecter et de corriger les erreurs dans certains cas, et de les détecter dans d'autres. Elle est rarement employée, car elle a un coût, qui est généralement simple à calculer : une barrette de mémoire doit contenir neuf puces au lieu de huit dans une configuration classique. Apple, avec certains Power Mac et ses Mac Pro, a longtemps intégré de la mémoire ECC, mais a abandonné cette technologie avec les puces Silicon.

Mais des chercheurs qui viennent de publier une étude sur arXiv — une plateforme de prépublication —, eux, pensent que les rayons cosmiques ne provoquent pas d'erreurs. Pour le prouver, ils sont étudiés le comportement de deux superordinateurs espagnols. Le premier est un système équipé de mémoire DDR3 avec correction d'erreurs, le second une sorte de prototype de test basé sur des puces mobiles, qui intègrent de la mémoire LPDDR3 (comme celles de nos smartphones et Mac) à la même fréquence, mais sans correction d'erreurs au niveau matériel. Les deux centres de données sont placés dans une région proche, à une altitude faible (environ 100 mètres au-dessus du niveau de la mer) et dans une zone assez proche de deux stations capables de mesurer le flux des rayons cosmiques.
Et les conclusions de l'étude, avec de nombreuses analyses statistiques dont nous vous passons les détails, montrent qu'il n'y a pas de corrélation entre le niveau d'émissions des rayons cosmiques et les erreurs dans la mémoire vive des deux centres de données. Pour eux, les rayons cosmiques n'influent pas sur la mémoire vive de solutions (à peu près) modernes et les personnes qui l'affirment habituellement le font généralement sans avoir réellement vérifié cette possibilité. Ils expliquent tout de même que l'altitude à laquelle se trouve le centre de données pourrait avoir un impact (l’atmosphère fait office de bouclier), mais que cette hypothèse n'a pas été testée.
Les erreurs existent bien tout de même
Il faut bien prendre en compte un point : si les chercheurs considèrent que les rayons cosmiques ne causent pas d'erreurs dans la mémoire vive, ils n'affirment évidemment pas qu'il n'y a pas d'erreurs. Elles sont parfaitement documentées et les contrôleurs ECC peuvent comptabiliser les erreurs corrigées et celles qui ne le sont pas, mais les causes possibles ne sont pas les rayons cosmiques. Il peut s'agir de puces défectueuses, de parasites, de défauts liés à la qualité de l'alimentation, etc.

Enfin, il faut le rappeler, les erreurs arrivent aussi sur nos appareils. Mais dans les faits, elles posent rarement de réels problèmes. D'une part, elles sont bien moins nombreuses statistiquement sur un appareil avec 8 ou 16 Go de RAM que sur un superordinateur doté de plusieurs milliers de gigaoctets de mémoire vive, et d'autre part, elles sont parfois sans effet. Si un bit qui change de valeur se trouve dans une zone inutilisée, il n'a évidemment aucun effet. Et si une erreur (et donc pas un rayon cosmique) change la valeur d'un bit de la vidéo que vous êtes en train de regarder, vous ne verrez probablement pas qu'un pixel de l'image a vu sa couleur subtilement changer pendant 1/30 de secondes. Mais de temps en temps, comme expliqué au début, l'erreur peut avoir des conséquences, qui vont plus loin qu'un écran bleu.

















