Hinweis: Bei dieser Antwort geht es nicht um Physik, sondern um stille Speicherfehler mit Nicht-ECC-Speichermodulen. Einige Fehler können aus dem Weltraum stammen, andere aus dem Innenraum des Desktops.
Es gibt mehrere Studien zu ECC-Speicherfehlern in großen Serverfarmen wie CERN-Clustern und Google-Rechenzentren. Hardware der Serverklasse mit ECC kann alle Einzelbitfehler erkennen und korrigieren sowie viele Mehrbitfehler erkennen.
Wir können davon ausgehen, dass es viele Nicht-ECC-Desktops (und Nicht-ECC-Smartphones) gibt. Wenn wir die Papiere auf ECC-korrigierbare Fehlerraten (einzelne Bitflips) überprüfen, können wir die Rate der stillen Speicherbeschädigungen im Nicht-ECC-Speicher ermitteln.
Wenn das Programm also über einen großen Datensatz (mehrere GB) oder eine hohe Lese- oder Schreibrate (GB / s oder mehr) verfügt und mehrere Stunden läuft, können wir auf Desktop-Hardware mit bis zu mehreren stillen Bit-Flips rechnen. Diese Rate kann von memtest nicht erkannt werden, und DRAM-Module sind gut.
Lange Cluster-Läufe auf Tausenden von Nicht-ECC-PCs, wie z. B. das internetweite Grid-Computing von BOINC, weisen immer Fehler aufgrund von Speicher-Bit-Flips sowie aufgrund von Fehlern bei der Festplatte und im Netzwerk auf.
Und für größere Computer (10 Tausend Server) kann es auch mit ECC-Schutz vor Einzelbitfehlern, wie wir im Sandia-Bericht 2012 sehen, jeden Tag Doppelbit-Flips geben, sodass Sie keine Chance haben, parallel in voller Größe zu arbeiten Programm für mehrere Tage (ohne regelmäßige Überprüfung und Neustart vom letzten guten Prüfpunkt im Falle eines doppelten Fehlers). Die riesigen Maschinen erhalten auch Bit-Flips in ihren Caches und CPU-Registern (sowohl architektonische als auch interne Chip-Trigger, z. B. im ALU-Datenpfad), da nicht alle von ihnen durch ECC geschützt sind.
PS: Es wird viel schlimmer, wenn das DRAM-Modul schlecht ist. Zum Beispiel habe ich einen neuen DRAM in einen Laptop installiert, der einige Wochen später verstarb. Es gab viele Speicherfehler. Was ich bekomme: Laptop hängt, Linux startet neu, führt fsck aus, findet Fehler im Root-Dateisystem und sagt, dass er nach der Korrektur von Fehlern einen Neustart durchführen möchte. Aber bei jedem nächsten Neustart (ich habe ungefähr 5-6 davon gemacht) werden immer noch Fehler im Root-Dateisystem gefunden.