【いーしーしーめもり】

ECCメモリ とは?

最終更新:
💡 データの誤りを見つけ、直せる範囲で訂正するメモリ

誤り訂正符号を使い、メモリのデータの誤りを検出・訂正する仕組みを備えたメモリ。サーバーなどで使われるが、訂正できる範囲は方式によって異なる。

📌 このページのポイント
検査用の情報で、誤りを検出・訂正SECDEDで1ビットを訂正する例元のデータ1010誤り発生1000訂正後1010検査用の情報は省略した模式図直せる誤りの範囲は、ECC方式による
1ビットの誤りを訂正する模式例。4ビットの表示はデータの一部で、検査ビットや実際の符号構成は省略しています。SECDEDは同じ符号の単位内で1ビットを訂正、2ビットを検出します。
ひよこ ひよこ
メモリにエラーって起きるの?
ペンギン先生 ペンギン先生
保存しているビットが変わるなどの誤りは起こり得るよ。一時的なものだけでなく、故障によるものもある。Googleのサーバーを対象にした2009年の研究でも、故障に由来する誤りが重要だったと報告されているね
ひよこ ひよこ
ECCメモリはどうやって直すの?
ペンギン先生 ペンギン先生
データと一緒に検査用の情報を保存し、読み出したときに照合するんだ。誤り訂正符号を使うことで、誤りの検出と、方式が対応する範囲での訂正ができるよ。サーバーなどでデータの信頼性を高めるために使われるね
ひよこ ひよこ
どんなエラーでも直せる?
ペンギン先生 ペンギン先生
訂正できる範囲は方式によるよ。例えばSECDEDは、同じ符号の単位内で1ビットの誤りを訂正し、2ビットの誤りを検出できる。3ビット以上では検出も保証されないので、全てのデータ破損を防ぐ仕組みとは言えないんだ
ひよこ ひよこ
DDR5にはECCがあるって聞いたよ?
ペンギン先生 ペンギン先生
DDR5のon-die ECCは、DRAMチップ内部の誤りを訂正する機能だよ。チップの外やCPUとの間の転送で起きる誤りは訂正できない。ECC対応のCPUとメモリモジュールを使う、システム側のECCとは区別しよう
ひよこ ひよこ
普通のパソコンにも付けられる?
ペンギン先生 ペンギン先生
メモリを買う前に、CPU、マザーボード、対応するモジュールの種類を確認しよう。挿せることとECCが機能することは別だよ。製品の対応表や設定を確かめ、ECCだけで全ての故障がなくなると考えないことも大切だね
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ECCメモリ」って出てきたら「データの誤りを検出し、直せる範囲で訂正するメモリ」と思えばだいたいOK!
📖 おまけ:英語の意味
「ECC Memory (Error-Correcting Code Memory)」 = 誤り訂正符号を使うメモリ
💬 ECCは誤り訂正符号のことだよ。データと一緒に検査用の情報を扱い、読み出したデータの誤りを検出・訂正するんだ

参考資料

← 用語集にもどる