リクラメーション
リクラメーション (Reclamation) とは、あまり耳慣れないことばですが、日本語で「矯正」、「教化」、「再生利用」などと訳します。
ここでは、上書きのできないフラッシュを管理するソフトウェアにおいて、「1度使用した箇所を、再度利用可能にするための処理」のことを「リクラメーション」と呼びます。
NAND型フラッシュにおけるリクラメーションとは、メモリ上にデータを格納するにあたり、使用済み領域を再生させる、つまり再度書き込み可能な状態に初期化する処理のことです。
具体的なリクラメーションの方法としては、プログラム側でどのページが有効かを記憶しておく必要があります。
もしブロック内に有効ページと無効ページの両方がある場合は、有効ページを他ブロックへ移動してから、ブロック消去を行うという手順を踏みます。
リクラメーションの場合の処理時間について最小と最大の二つのケースを考えてみましょう。
最小の場合は、対象ブロック中に有効ページがない場合なので、ブロック消去時間 + プログラムオーバヘッド (対象ブロックに有効ページがないことの確認処理) となり、最大の場合は、対象ブロック中の全ページが有効ページの場合なので、 32ページ分のフラッシュへの書き込み (A) + ブロック消去時間 (B) + プログラムオーバヘッド (対象ブロック中のすべてのページが有効ページだと判断する処理、移動先ページの選定時間など) となります。
また、プログラムにより有効ページが少ないブロックからリクラメーションを行うようにしておけば、より実用的です。

