メモリの1ビットが変わると、何が起こるのか

雑記Topに戻る

コンピューターのデータは、0と1の並びとして保存される。その一つが意図せず変わると、影響は置かれていた場所によって大きく異なる。わずかな表示の乱れで済む場合も、計算結果の誤りや停止につながる場合もある。

同じ一ビットでも、役割が違う

整数の下位ビットが変われば、数値の変化は小さいことがある。浮動小数点数の指数部分が変われば、桁が大きく変わる可能性がある。命令やアドレスの一部なら、実行する処理そのものが変わり得る。

使われない領域の変化は、結果に現れない場合もある。エラーの件数だけで被害を決めることはできず、どこで起き、検出され、訂正されたかが重要になる。

余分な情報を付けて、誤りを見つける

ECCは、データに検査用の情報を加え、読み出し時に整合性を調べる仕組みである。代表的な方式には、一ビットの誤りを訂正し、二ビットの誤りを検出するものがある。対応する範囲は方式によって異なる。

一時的な外乱と、繰り返し故障する部品では対応が違う。訂正されたエラーも記録し、発生傾向を追うことで、交換すべき機器を見つけやすくなる。

計算全体を守る仕組み

ECCメモリを搭載しても、ソフトの不具合や保存装置の破損まで自動的に解決するわけではない。計算の途中結果を保存し、入力と出力を検査し、重要な結果を別の方法で確認することが役立つ。

長時間の科学計算や多数の機器を使う運用では、まれな故障も集積すると無視しにくくなる。エラーを完全になくす発想に加え、検出し、影響を限定し、やり直せる設計が必要になる。

製品のECC対応には、メモリ素子内部だけの訂正と、CPU・メモリ間の転送を含む保護などの違いがある。保護される経路は仕様で確認する。

参考資料

参考資料確認日:2026年10月13日。

雑記Topに戻る