ECCメモリ
ECCメモリ(Error-correcting code memory, Error checking and correction memory、Error check and correct memory)とは、コンピュータの記憶装置の種類の1つで、データ破損(英語版)を検出し修正する機能を持つメモリである。ECCメモリが持つエラー訂正機能により長期連続稼働におけるデータ化けや異常終了を防ぐことが出来る。例えば、計算に時間を要する科学技術計算あるいはCGレンダリングを行うコンピュータや、どんな状況でもデータの破損が許されない金融機関や、年中無休でWebサイトやクラウドサービスなどを提供するデータセンターのコンピュータではECCメモリのエラー訂正機能が効いてくる。対して、毎日数時間だけ起動させて対話的に使うような一般の用途では、ECCメモリが提供するような信頼性の高さはあまり意味を成さず、コスト高に繋がるだけである。但し、ITマニアの中には完璧さを求めてECCメモリを好む者も存在する。
多くの場合、ECCメモリは1ビットでエラーが生じても維持できる記憶装置である。もしビットが壊れて1ビット反転したとしても、各ワードから読み出されるデータは常に書き込まれたときのデータと同じになるよう修正される。一方、非ECCメモリは誤りを修正できない。パリティをサポートする非ECCメモリは誤りを検出できるが、訂正はできない。
当初、ECCメモリではエラー検知・訂正の処理などで非ECCメモリと比べて数%程度の性能劣化が発生するとされていたが、CPUにECC機能が統合されてからは性能劣化の問題は解決されつつある。
インテル Itanium、Xeon、AMD Athlon、Opteron、DEC Alpha 21264 など多くのプロセッサはチップ上のキャッシュメモリで誤り訂正符号を使っている 。
2006年現在、EDC/ECC と ECC/ECC の2つが商用マイクロプロセッサの最も一般的なキャッシュエラー保護技術となっている。 EDC/ECC は誤り検出符号(EDC)をレベル1キャッシュに用いる。エラーが検出された場合、ECCで保護されたレベル2キャッシュからデータを復元する。 ECC/ECC は ECC で保護されたレベル1キャッシュと ECC で保護されたレベル2キャッシュを用いる 。 EDC/ECC を採用する CPU はすべてのストア命令でレベル2キャッシュへライトスルーする。レベル1データキャッシュからの読み出し中にエラーを検出すると、その部分のデータはレベル2キャッシュから復元できる。