バッドブロック管理とは
バッドブロック管理はデータの保存に適さないブロック(バッドブロック)を検出してマークし、確保されている余分な容量をそのブロックと置き換えることでデータがバッドブロックに書き込まれるのを防ぎ、製品の信頼性を高めています。
バッドブロックの種類
NANDフラッシュのバッドブロックには初期バッドブロックと後発バッドブロックの2種類があります。初期バッドブロックは製造工程で容量の1%程度の割合で発生する不可避なものです。後発バッドブロックはフラッシュメモリ通常動作時に書き込みと消去を繰り返すことで発生します。後発バッドブロックを置き換えるための領域として製品容量の約7%*が確保されています。
*製品によって確保されている容量は異なります。
バッドブロック管理のしくみ
NANDフラッシュ機器が最初に使用される際にバッドブロック・テーブルが作られ、管理プログラムが全てのブロックをチェックします。この際に検出されるバッドブロックを管理プログラムは初期バッドブロックとしてマークし、データの書き込みに使用されないようバッドブロック・テーブルに記録します。後発バッドブロックの場合、コントローラがバッドブロックを検出すると、バッドブロック・テーブルに登録され、保存されていたデータは別の正常なブロックに移されます。(下図参照)
コントローラのECC機能でエラー訂正ができないブロックが見つかった場合、そのブロックに保存されているデータを別の正常なブロックに移動します。データ移動後に元のブロックはバッドブロックとしてバッドブロック・テーブルに記録され、データ書き込みに使用されないようにします。
まとめ
ブロックは書き込み/消去を繰り返すことで徐々に劣化するため、使用できないブロックがないかチェックし、ブロックの置き換えをすることが必要となります。バッドブロック管理を備えた最新のフラッシュ機器は長い製品寿命、高い信頼性、リード/ライトエラーの低減が提供できるのでフラッシュ製品に不可欠な機能です。