注:この回答は物理に関するものではなく、ECC以外のメモリモジュールでのサイレントメモリエラーに関するものです。一部のエラーは宇宙空間から発生する可能性があり、一部のエラーはデスクトップの内部空間から発生する可能性があります。
CERNクラスターやGoogleデータセンターなどの大規模サーバーファームでのECCメモリ障害に関するいくつかの研究があります。ECCを備えたサーバークラスのハードウェアは、すべてのシングルビットエラーを検出して修正し、多くのマルチビットエラーを検出できます。
非ECCデスクトップ(および非ECCモバイルスマートフォン)が多数あると想定できます。論文でECC修正可能なエラー率(シングルビットフリップ)を確認すると、ECC以外のメモリでのサイレントメモリの破損率を知ることができます。
大規模なCERN2007の調査「データの整合性」:ベンダーは、「 メモリモジュールのビットエラーレートは10 -12」、「観測されたエラーレートは予想よりも4桁低い」と宣言しています。データ集約型タスク(8 GB / sのメモリ読み取り)の場合、これは、シングルビットフリップが毎分(10 -12ベンダーBER)または2日に1回(10 -16 BER)発生する可能性があることを意味します。
2009年のGoogleの論文「DRAMErrorsinthe Wild:A Large-Scale Field Study」によると、1 Mビットあたり最大25000〜75000の1ビットFIT(10億時間あたりの時間の障害)が発生する可能性があります。これは1〜5ビットに相当します。計算後の8GBのRAMの1時間あたりのエラー。紙は同じことを言っています:「1GBあたり年間2000-6000の修正可能なエラー率を意味します」。
2012 Sandiaレポート「大規模ハイパフォーマンスコンピューティングのためのサイレントデータ破損の検出と修正」:「ダブルビットフリップは起こりそうにないと考えられました」が、ORNLの高密度Cray XT5では、「75,000以上のDIMMで1日1回の割合で」 ECCを使用します。そして、シングルビットエラーはもっと高くなるはずです。
したがって、プログラムに大きなデータセット(数GB)がある場合、またはメモリの読み取りまたは書き込み速度が高い(GB /秒以上)場合、数時間実行すると、デスクトップハードウェアで最大数回のサイレントビットフリップが予想されます。このレートはmemtestでは検出できず、DRAMモジュールは良好です。
BOINCインターネット全体のグリッドコンピューティングのように、何千もの非ECC PCで実行される長いクラスターには、常にメモリビットフリップやディスクおよびネットワークのサイレントエラーによるエラーが発生します。
また、Sandiaの2012年のレポートに見られるように、シングルビットエラーからのECC保護を備えた大規模なマシン(1万台のサーバー)の場合、毎日ダブルビットフリップが発生する可能性があるため、フルサイズの並列を実行する機会はありません。数日間のプログラム(定期的なチェックポイントなし、および二重エラーの場合の最後の適切なチェックポイントからの再起動なし)。巨大なマシンは、すべてがECCによって保護されているわけではないため、キャッシュとCPUレジスタ(アーキテクチャと内部チップの両方のトリガー、たとえばALUデータパス)でもビットフリップを取得します。
PS:DRAMモジュールが不良の場合、事態はさらに悪化します。たとえば、ラップトップに新しいDRAMをインストールしましたが、数週間後に死亡しました。それは多くのメモリエラーを出し始めました。私が得たもの:ラップトップがハングし、Linuxが再起動し、fsckを実行し、ルートファイルシステムでエラーを見つけ、エラーを修正した後に再起動したいと言っています。しかし、次回の再起動のたびに(私はそれらのうちの約5〜6を実行しました)、ルートファイルシステムでまだエラーが見つかりました。