前述のように、Windowsはセクターというブロックの単位でHDDやUSBメモリーなどを読み書きする。これとフラッシュメモリーを構成するページ/ブロックとの関係、あるいはWindows上で普段目にする“ファイル”との関係が分かりづらいので説明しておこう。

LBAはハードを問わず

 セクターはHDDなどのドライブ装置がデータを記録する際の最小単位で、LBA(Logical Block Addressing)という方式で管理される(図B)。磁気記録円盤などの記録領域を512バイト単位のセクターに分割し、全セクターに通し番号(LBAのアドレス)を振る。ドライブ装置はLBAのアドレスを指定してセクター単位で読み書きされる。このような装置をブロックデバイスという。

【WindowsはLBA方式でドライブにアクセスする】
図B 通常、WindowsではLBAという方式を使ってHDDなどのドライブ装置にアクセスする。LBAでは記録領域を512バイトのセクターに分割して通し番号を振る。Windowsはこの通し番号を指定してデバイスドライバー経由でデータを読み書きする
図B 通常、WindowsではLBAという方式を使ってHDDなどのドライブ装置にアクセスする。LBAでは記録領域を512バイトのセクターに分割して通し番号を振る。Windowsはこの通し番号を指定してデバイスドライバー経由でデータを読み書きする
[画像のクリックで拡大表示]

 LBAはもともとHDDなど円盤状の記録メディアを前提としたものだが、USBメモリーなどのフラッシュメモリーメディアもこの方式で読み書きされる。Logicalという名の通りLBAのアドレスは論理的なもので、メディアの形状や実装方法を問わない。Windowsのデバイスドライバー(機器制御ソフト)はLBAのアドレスを指定して、機器の制御チップに読み書き命令を送る。だが、その後で制御チップがどう処理するかは関知しない。HDDではLBAのアドレスと物理的な記録領域が固定的に決まっているが、フラッシュメモリーは可変方式。制御チップがLBAのアドレスと実際のページ/ブロックの関係を管理しており、それをダイナミックに変更する。