データ復旧:トップ > メディア解説 > USBメモリの構造と動作
USBメモリでは、NAND型フラッシュメモリを利用してデータの記録が行われています。
NAND型フラッシュメモリは、不揮発性記憶素子のフラッシュメモリの一種で1987年に開発されました。
回路規模が小さく、安価に大容量化でき、また書き込みや消去も高速で可能ですが、その反面バイト単位の書き替え動作が不得手となっています。
NAND型フラッシュメモリは、メモリセルがビット線に対して直列に接続されています。 メモリセルを駆動するのに使用するソース線を複数のセルで共有するため、書き込みは同時に複数ビット同時に行うことになり、NOR型のものと比べて大容量で高速がアクセス可能です。
ただし、複数のセルでの共有がされているため、データの書き込み読み込みはページと呼ばれる複数ビット単位で、消去はブロックとよばれるページを複数にひとまとめにした単位で一括して行われます。
また、フラッシュメモリでは、既に何かが記録されたページに別のデータを直接上書きできず、一旦ページ全体を消去する必要があり、しかも消去作業は当該ページを含むブロックの単位で行います。
具体的には以下のような流れになります。
(2)の書き出し処理で、元のブロックには書き戻されず、書き換え回数が少ないブロックが優先的に選ばれます。大半の制御チップはブロック単位でデータを管理して、書き換えた回数を統計し、書き換え時は統計を基に、書き換え回数の少ないブロックを優先的に選び、(2)の書き出し作業を行います。
フラッシュメモリにおける“書き換え”は、Windows上で同じファイルを書き換えても、その結果はフラッシュメモリの内部で違うセルに記録し直されることになり、物理的に違う場所に記録した上で、論理的な場所と物理的な場所の関係を記録した管理情報を書き換えますが、こうした処理はコントローラーが行っています。
一般に、HDDやフロッピーディスク、DVD-RAMなどの記録領域はセクタと呼ばれるブロックに分割され、Windowsはセクタの番号を指定してブロック単位でデータを読み書きし、実際にはデバイスドライバを通じて読み書き命令をデバイスのコントローラーへ送っています。
ところが、あるセクタのデータを具体的にメディアのどこに記録するかはコントローラーに任されており、Windowsは一切関知していません。
そのため、USBメモリはコントローラーにより、記録する場所を毎回変えることになります。
HDDやDVD等の場合、このような入れ替えは基本的に起こりません。Windowsから見たセクタ番号は基本的に、特定の記録領域に結び付けられています。このデータの再配置はUSBメモリならではの特徴です。
なお、USBメモリが登場したころは低速の「USB1.1」規格が採用され読み書きに非常に時間がかかっていましたが、その後、USB1.1よりも20倍早い「USB2.0」規格が普及し、ほぼすべてのUSBメモリがUSB2.0対応になりました。現在ではさらに高速な「USB3.0」規格が登場し、USB3.0対応の機種も増えています。USB3.0対応のメモリを使う場合は、パソコンもUSB3.0対応である必要があり、USB2.0端子に接続した場合はUSB2.0の速度で動作します。USB3.0は、端子の内側が青色になっているのが特徴です。