【いーしーしーめもり】

ECCメモリ とは?

💡 データのミスを自動で見つけて直す、メモリ界の校正係
📌 このページのポイント
ECCメモリのエラー訂正の仕組み 通常メモリ(non-ECC) 1 0 1 1 0 0 1 0(正常) ↓ 宇宙線がビット反転! 1 0 1 0 0 0 1 0(エラー) → 気づかないまま処理続行 ECCメモリ 1 0 1 1 0 0 1 0 + 検査8bit ↓ 宇宙線がビット反転! 1 0 1 0 0 0 1 0(検知!) → 自動で訂正して正常データに 1ビットエラーを自動訂正、2ビットエラーを検出
ECCメモリのエラー訂正イメージ
ひよこ ひよこ

メモリにエラーって起きるの?普通に使ってて大丈夫なのかな?

ペンギン先生 ペンギン先生

実は宇宙線(コスミックレイ)がメモリのビットを反転させることがあるんだよ。日常使いでは滅多に問題にならないけど、サーバーのように24時間動き続けるシステムだと無視できないんだ

ひよこ ひよこ

宇宙線でエラーが起きるの!?それってSFみたいだね!

ペンギン先生 ペンギン先生

本当の話だよ。高エネルギーの粒子がメモリセルに衝突すると、0が1になったり1が0になったりするんだ。これをソフトエラーと呼ぶよ。Googleの研究では、1GBあたり年間数回のソフトエラーが起きるというデータもあるんだ

ひよこ ひよこ

ECCメモリはどうやってエラーを直してるの?

ペンギン先生 ペンギン先生

ハミング符号という数学的な仕組みを使ってるんだ。64ビットのデータに8ビットの検査ビットを追加して、どのビットが間違っているか特定して自動修正するよ。1ビットのエラーなら完全に直せるんだ

ひよこ ひよこ

普通のパソコンにECCメモリって使える?

ペンギン先生 ペンギン先生

マザーボードCPUがECCに対応してないと使えないんだ。一般的なデスクトップ向けCPUは非対応が多いけど、AMDのRyzenは一部対応してるよ。サーバー向けのXeonやEPYCは基本対応してるね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ECCメモリ」って出てきたら「エラーを自動修正できる高信頼性メモリ」と思えればだいたいOK!
📖 おまけ:英語の意味
「ECC Memory (Error-Correcting Code Memory)」 = 誤り訂正符号メモリ
💬 Error(誤り)+ Correcting(訂正する)+ Code(符号)で、データのエラーを自動訂正するメモリだよ
← 用語集にもどる