メモリマッピング
フラッシュはHDDなどと異なり、直接上書き操作のできないデバイスです。
あるデータの一部を書き換えるためには、そのデータの格納された物理ページを読み出し、変更箇所のデータを更新した後、新しい物理ページに書き込みます。
データの格納場所が次々と物理ページ上を移動していきます。
そのために、フラッシュ上の物理アドレス空間と論理アドレス空間のアドレスマッピングを行う必要があります。
データ更新をするたびにこのマッピング情報を更新して、変更箇所の論理ページアドレスに対応する物理ページアドレスを移していきます。
このような物理ページアドレスと論理ページアドレスのマッピングのメカニズムは、マイクロプロセッサのMMUが行っている仮想アドレスと物理アドレスのマッピングの考え方とそれほど大きな違いはありません。
ただし、フラッシュの場合にはMMUに相当するハードウェアが仲介することが少ないため、あまり込み入ったメカニズムを実現することは実用上難しいことが多いといえます。
フラッシュは不揮発デバイスなので、システムの電源断と関わりなく継続的にメモリマッピング情報を保持しておかねばなりません。
つまりメモリのマッピングの管理情報自身もフラッシュ上に格納する必要があるということです。
この点がフラッシュの管理を難しくさせている一面です。

