web-dev-qa-db-ja.com

非ECCRAMでゼロエラーが表示されるのはなぜですか?

ソースによると、メモリエラーはveryの可能性のあるイベントです:

  • 一部の人は 4 GBのRAMを搭載したコンピューターをわずか3日間操作しただけで、DRAMエラーの確率は95%になります。
  • 他の人によると サーバーの32%で、1か月に少なくとも1つのエラーが発生し、DIMMの8%に障害が発生しています。

それらの恐怖とは対照的に、私は10年以上のパーソナルコンピュータの使用で、メモリエラーを正確になし見ました。

私はその主題に特別な注意を払ったことがないことを認めます。しかし、私は何時間も冒険しましたmemtest86は数回実行され、エラーも発生しませんでした。

IMOが記憶の問題を悪化させる要因のいくつか:

  • 私は自分のコンピューターを最も「大量の商品」の部品から構築しています。主流の低価格のマザーボードと次に安いメモリです。
  • また、私は通常、利用可能なテクノロジーを最大限に活用します。 32ビットOSの時代には、4GBのRAMを使用し、現在のデスクトップCPUと新しい64ビットOSでは32GBのRAMを使用していました。
  • メモリ使用量は適度に大きく、多くの仮想マシンが24時間年中無休で大小のタスクを実行しています。

しかし、それにもかかわらず、メモリ関連の問題はこれまで見つかりませんでした!

どのようだ?

ブレルグ!

くそー、私はこれをコメントに詰め込もうとしましたが、フォーマットが十分ではなかったので、私はそれを答えに入れることに頼らなければなりませんでした。

統計学

あなたがそれを見なかった理由は、あなたがそれを見る確率が低いからです、そしてもっと重要なことに、あなたは見ていませんでした。メモリエラーに気付くオッズは、次のオッズから計算されます。

  • 地球に当たる宇宙線
  • あなたの場所に当たる光線
  • 光線が他のものに遮られたり吸収されたりしない
  • コンピュータに当たる光線
  • rAMに当たる光線
  • rAM内で光線が少し反転します
  • 現在割り当てられているメモリのブロックにあるビット
  • 使用されているメモリは次のいずれかです:
    • memtest86 + のようなプログラムでテスト済み
      • テスト済みちょうどいいタイミングでエラーを検出する(たとえば、プログラムがメモリを書き込み、それを読み戻して比較するマイクロ秒の間)
    • 実行可能コードのブロックに割り当てられます。この場合も:
      • 変更されたビットは、コードに大幅な影響を与えるのに十分なほどコードを大幅に変更します
      • 劇的な効果はそれをクラッシュさせます
      • クラッシュするプログラムは、単に消えるのではなく、実際に目に見えてクラッシュします
      • プログラムはあなたが気づき気にかけるものです
      • バグのあるプログラムとして単に破棄するのではありません

もちろん、これは、宇宙線や他の電子機器からの干渉など、一時的で断続的なエラーについて話している場合です。 RAMモジュールに実際に欠陥がある場合、ほぼ確実にある時点で問題が発生します(ただし、それでも、物理的なRAMいつでも、欠陥は小さく、完全に使用されない部分に完全にローカライズされているため、エラーが表示されない場合があります)。

一時的なエラーの可能性は確かに驚くほど高い可能性がありますが、おそらくhave何年にもわたってメモリエラーが発生し、上記のリスト項目の2つ(実行可能コードとバギー)のために単にそれらに気付かなかったでしょう。 -無視します。

変更されたビットがたまたまデータの一部に含まれていると、簡単に溺れてしまう可能性があるため、気付かない場合があります。

たとえば、テキストデータのブロックでビットが反転した場合、The end. になって Tje end.ですが、1ビットが反転したためにhjに置き換えられたことに気付く代わりに(必要に応じて自由に確認してください)、おそらく次のように想定します。指が間違ったキーを押したのは、それらがたまたま隣り合っていて、エラーを修正しただけだからです。

さらに悪いことに、反転したビットがたまたま画像、オーディオ、またはビデオファイルの一部であった場合、何も気付かない可能性があります。たまたま適切な場所にあると、画像の幅や高さが間違っている、曲のわずかなポップ音、ビデオのわずかな破損などの顕著な変化が発生し、瞬間的なブロックが発生する可能性がありますデコード中。ただし、メディアファイルのサイズが非常に大きいため、1ビットが適切な場所に配置される可能性は非常に低くなります。単一のピクセルの色がわずかに変化する可能性がはるかに高く(たとえば、濃い赤からわずかに濃い赤)、おそらく気付かないでしょう。曲の波形の単一のピークが変化して、振幅がわずかに低くなり、気付かない可能性があります。ビデオの単一フレームの単一ピクセルが変更される可能性があり、おそらくできませんでした注意してください。

警告

恐ろしい事実は、この種の検出されていない一時的なエラーが実際に忍び寄り、気付かれなくなる可能性があるということです。だから私は 本当に心配している バックアップにフラッシュメディアを使用することについて 時々それらが破損する 、そしてあなたが気づかないなら、破損があなたに忍び込む可能性があるからですバックアップし、永続的になります。さらに、変更が予想されるため、破損のテストは難しい場合があります。そのため、バイナリファイルの場合は悪夢となるすべての変更を手動で調べる必要があります。

取り除く

明るい面があるとすれば、リストで述べたように、実際に重要なデータの一部に変更が加えられる必要があるということだと思います。ほとんどの人にとって、保存される重要でかけがえのないデータに到達する可能性は非常に低い傾向があります。

Memtestのようなプログラムを使用して、RAMに欠陥がないかどうかを確認できます。マスターに合格した場合は、「10億分の1の可能性」についてのみ心配する必要があります(必要に応じて、正確な計算を他の誰かに任せてください)importantデータが破損します。そうしないと、ここまたはそこにある「bit-rot」のビットは、通常、プログラムをクラッシュさせる以外にほとんど何もしません。開発者に誓わせる(それでも、それが再び行われない場合は…)

9
Synetech

IBM PCのような初期のパーソナルコンピュータには、メモリエラーを検出するためのパリティビットが含まれていましたが、最近のほとんどのシステムには含まれていません。その結果、エラーはメモリエラーとして捕捉されず、代わりにデータの破損や奇妙なクラッシュなどの他の問題が発生することがあります。

  • パリティ付きメモリ-エラーを検出
  • ECC付きメモリ-エラーを検出して修正します
  • どちらもないメモリ-エラーは検出されません
1
Brian