NAND フラッシュメモリは、ビット化けが起こり得るデバイスであり、ECC (Error Correction Code / Error Checking and Correction) を使って補っています。 ECC は、ユーザーデータに ECC データを付加することによって、誤り訂正を行えるようにした仕組みです。 ECC は、1 ビットの誤りならば、訂正が可能です。 2 ビットの誤りならば、訂正はできませんが、誤りが発生したことは検出できます。 3 ビット以上の誤りがあれば、結果はまちまちです。 間違った判断に基づき、誤り訂正したり、誤りがなかったと判断したりするかもしれません。 ECC データは、ユーザーデータ 2^N ビットに対し、2*N ビット必要です。 例えば、ユーザーデータが 8 ビットならば、N = 3 なので、ECC データは 6 ビット必要です。 ユーザーデータが 20