ECCメモリ (Error Check and Correct memory)
【イー・シー・シー・メモリ】
ECC(Error-Correcting Code)は、「誤り訂正符号」の意味。ECC(Error Check and Correct)メモリは、メモリ・エラーの存在を検出するだけでなく、エラーが発生した箇所(ビット)を特定して、これを正しいものに修正する機能を持ったメモリ。
メモリ・エラーの検出方法としては、伝統的にパリティと呼ばれる方式が用いられてきた。これは、一連のメモリ内のビット列(通常は8bit)ごとに、それらのビットを加算した結果の最下位1ビットを冗長な情報としてメモリの内容と同時に記録しておく(このような冗長ビットなパリティビットと呼ばれる)。そして以後、メモリの内容を読み出すときには、それらのビット値を加算し、パリティビットと比較して、データが破壊されていないかどうかを検査する(加算した結果の最下位ビットがパリティビットと異なれば、メモリ・エラーを報告する)。
このようなパリティによるエラー検出は、検査機構が極めて単純であり、かつ必要な冗長ビットも少なくてすむので、広く利用されてきた。しかしパリティでは、エラーが存在することは検出できても、どのビットがエラーを起こしているのかは検出不能であり、したがって修正を行うこともできない。こうした問題に対し、エラー訂正機能までを持たせ、メモリサブシステムの信頼性を向上するために考案されたメモリがECCメモリである。
ECCメモリで必要な冗長ビット数は、データバス幅に応じたハミングコード(バス幅をNとすると、Nを底とする2の対数をとり、この結果に2を加える)により算出できる。たとえば64bitなら、8bitの冗長ビットが必要とされる。
パリティ方式に比較すると、ECCメモリでは、必要とされる冗長ビットも多く、エラー検出/エラー訂正のための機構も複雑なので、どうしてもコスト高になる。しかしメモリエラーは致命的なシステム障害に発展する可能性が高く、例えばサーバなど、万一の障害発生時の影響が大きいシステムでは、標準でECCメモリが採用されていたり、オプションでECCメモリを選択したりできるようになっている。
Copyright (C) 2000-2007 Digital Advantage Corp.