Facility WDRウェアレベリングアナリシス
WDRウェアレベリングアナリシステクノロジーとは、NANDフラッシュメモリに記録されていた
データの痕跡から様々な情報を元に正しい順番に並び替える
「WinDiskRescue」独自のデータ復旧技術です。
どのようなものか?
フラッシュメモリをストレージとした製品は極めてシンプルな構造で成り立っており、主に「NANDメモリ」と呼ばれるデータを記録する半導体と、読み書き制御を行う「コントローラ」と呼ばれる半導体の2つで構成されています。
「シンプルな構造ならデータ復旧は簡単なのでは?」こんな単純な発想が頭に浮かびがちですが、これは大間違いです。
技術を必要とするストレージだということを知っておいてください ”
ナノ世界のマトリクス
NANDメモリを断面で表すと主に「コントロールゲート」、「浮遊ゲート」、「iS-基板」の層で構成されます。 浮遊ゲートは電子を閉じ込めるエリアで、この電子量がデータとなります。浮遊ゲートの下には「トンネル酸化膜」があり通常は絶縁膜なのですが、データを記録する時にのみ電子を通過させデータを記録します。 データの記録が終わると絶縁膜に戻り電子を閉じ込めるためデータが消えずに保存されるのです。
このデータを保存する単体箇所を「セル」と呼び、これを1つのライン上でまとめて「ページ」として構成します。 さらに、このページを一定数量まとめたものを「ブロック」と呼び、このすべてを「コントローラ」でマトリクス化して制御しているのです。
手順を決めているのがコントローラという訳です ”
消耗を制御している
NANDメモリの「セル」は、データの記録や消去が繰り返されるうちに劣化していき最終的にデータが記録できなくなるという消耗特性を持っています。 つまりNANDメモリ内の同じエリアに偏ったデータ記録が行われると、その「セル」のエリアだけが早く劣化してしまうのです。
またNANDメモリは、データを「セル」内に電子として閉じ込めているため、この電子を空にしないと新しくデータを書き込むことができません。 つまりハードディスクと異なり上書きができないのです。 このためデータ更新や削除により不要データの電子でいっぱいになったブロック内をクリーンアップするため、定期的に必要なデータだけを他のブロックへ移し、電子でいっぱいになったブロックの消去を行うのですが、これが「セル」の負担となり消耗に繋がってしまうのです。
このような特性から、すべてのメモリ製品では、コントローラの判断で「ウェアレベリング」と呼ばれる技術を用いて消去回数を平均化し、寿命(セルの劣化)を延ばしているのです。
分散して記録されることが前提となります ”
データ復旧が難しいのか?
メモリ製品ではデータを読み出す際、コントローラを介しNANDメモリ内に分散して記録された状態を元に戻しながらデータとして出力していきますが、もしこのコントローラが無かったらどうなるでしょうか。 ハードディスクの場合、あらかじめ順番を固定化された物理セクタアドレスが存在するため、このアドレスの順番に従って先頭セクタから最終セクタまでアクセスすることができます。
NANDメモリの場合、コントローラを介さず直接NANDメモリへアクセスすると、データは分散記録状態のため本来のデータを復元するには正しい順番に整える必要があります。 仮に1つのデータが10個に分散してバラバラになり記録されていたとすると、何の手掛かりのない状態なら10個のデータの組み合わせパターンだけでも、10の階乗=約363万通りも存在するのです。 実際はNANDメモリ全体を正しい順番にする訳ですので天文学的な組み合わせになります。 つまり大容量化するほどデータ復旧は困難となり現実的では無くなっていくのです。
記録の際に用いたアルゴリズムなのです ”
無数に存在するアルゴリズムから、たった1つを解き明かします。
WinDiskRescueは、フラッシュストレージのデータ復旧に欠かせない技術です。