USBメモリの転送速度が遅い理由

特に書き込みについて

こんなことをしようと思ったのも、とにかくUSBメモリの書き込みの遅さにストレスを感じていたからです。
USBメモリでGB単位のファイルコピーをすると、数分から数十分かかることも珍しくありません。

そもそもフラッシュメモリは、書き込みが苦手な記憶装置
頭ではそう理解しているつもりでも、無意識にハードディスクと比べてしまい、
「こんなに遅かったっけ?」と感じてしまうのが正直なところ。

USBメモリとポータブルハードディスク

そこで、USBメモリとポータブルハードディスクの転送速度を実際に比較してみることにしました。

なぜ、対抗馬としてポータブルハードディスクなのかというと、
両方ともUSBのバスパワーで動作していて外部電源を必要とせず、持ち運ぶことが前提なので、
使いみちとしても同じようなもんだからです。
当然、ポータブルハードディスクのほうが大きくて値段も高いですけどね。
ただ、容量あたりの単価で比べると逆転して、ポータブルハードディスクのほうが安くなります。

テスト環境

純粋にフラッシュメモリとハードディスクの転送速度の違いを調べたかったため、接続規格は両方ともUSB2.0。
同一ポートでパソコンとつないでます。

USBメモリとポータブルハードディスクの型番は下記のとおり。

USBメモリ USM16GLX
ポータブルハードディスク HD-PHS120U2

一応、USBメモリは高速タイプ
比較対象のポータブルハードディスクは、USBメモリより3年以上前のモデル。
なんでこんなものを持ってきたかというと、それでもハードディスクのほうが速いと実感していたからです。

ベンチマークテストには「CrystalDiskMark」を使用。
ファイルシステムはFAT32で統一。
ディスク内にファイルが保存されてない状態からテスト開始としました。

テスト結果

USBメモリ ポータブルハードディスク
USBメモリ ポータブルハードディスク

書き込み速度は、ポータブルハードディスクの圧勝
大容量のデータ転送だと、状況としてはシーケンシャルに近くなりますが、それでおよそ倍半分の関係。
意外だったのは、フラッシュメモリが得意とするランダムアクセスについても、
ポータブルハードディスクが上回っていたこと。
まぁ、このUSBメモリは、特に書き込みが遅い気はします。

一方、読み込み速度では高速タイプのUSBメモリの実力が発揮されています。
シーケンシャルではほぼ互角ですが、ランダムアクセスの読み込みだと、明らかにUSBメモリのほうが速いです。

フラッシュメモリとランダムアクセス

フラッシュメモリのランダムアクセスが得意というのは、あくまでも読み込みに限った話
「ReadyBoost」(死語)なんてのは、
ランダムアクセスでの読み込みが得意なフラッシュメモリの特徴を活かしたWindowsの機能だったわけです。

しかし、「ReadyBoost」は、
USB接続のフラッシュメモリがSATA接続のハードディスクに対して優位でなければ意味がないので、
このページよりさらにUSBメモリに不利な条件になります。
最近の内蔵ハードディスクはかなり速くなってきているので、
「ReadyBoost」の効果が発揮される場面というのは、実はほとんどないんじゃないかと思います。

ランダムアクセスの書き込みについても、
ハードディスクのような機械的動作がないため、フラッシュメモリのほうが速そうですが、
これが大きな間違いです。
フラッシュメモリ自体が、特に書き込みが苦手なのです。

フラッシュメモリの書き込みが遅い理由

フラッシュメモリは、電気の力で記録しているのに、電源を断っても情報が保存されるという特徴を持ちます。
普通に考えると、おかしな話です。

フラッシュメモリの書き込み時には、素子に高電圧を加えて、電子に絶縁体を貫通させています。
結構無理矢理です。

フラッシュメモリの書き換え回数に制限があるのも、このフラッシュメモリの書き込みの仕組みからくる宿命です。
ハードディスクのように同じ場所を繰り返し使っていては、フラッシュメモリがすぐに寿命を迎えてしまいます。
このため、表面上は同じ場所のデータを書き換えているようでも、
フラッシュメモリ内部では違う場所のデータを書き換え、それらを関連付けています。※ウェアレベリング。

また、フラッシュメモリへの書き込みは、自由自在に行えるわけではありません。
フラッシュメモリの構造上、ブロック単位でデータを消去してから書き込みを行う必要があります。
一旦消してからじゃないと、データを格納できないんです。
これも、先のフラッシュメモリの書き込みの仕組みに由来します。

早い話が、フラッシュメモリの場合、読み込みに比べて書き込みはかなり手間な作業になるため、
速度面でも不利なのです。
実際、フラッシュメモリでは、読み込みよりも書き込みのほうが圧倒的に遅くなります
対して、ハードディスクの読み書き速度には、フラッシュメモリほどの差異はありません。
ハードディスクの場合、ランダムアクセスではキャッシュが効いてくるので、むしろ書き込みのほうが速くなります。

SSDはなぜ速いか

本題から若干話はそれますが、SSDというものがあります。
私もデスクトップパソコンの起動ディスクとして使っていますが、爆速です。
電源を入れてから、「Windows 7」が起動し、すべてのスタートアッププログラムを読み終えるまで、
1分かかりません。

SSD
SSD

実測すると、「CrystalDiskMark」の512Kランダムアクセスで、読み書き共に100MB/sを超えてきます。
これは、システムとしてすでに使用中のSSDで、SATA接続のNTFSフォーマットなので、
前述のベンチマークとは条件が違いすぎますが、参考にはなるはずです。

SSDもフラッシュメモリなのに、なぜ書き込みが速いのでしょうか?
私も最初疑問でした。

SSDが速いのは、メモリコントローラの性能が全然違うからです。
サイズ的に余裕があるので、多数のメモリチップに対して並列処理しています。
しかも、大容量かつ高速のキャッシュメモリを内蔵しています。
持ち運ぶため小型であることが求められるUSBメモリとは条件が違いすぎるのです。

とはいえ、SSDも本質的にはフラッシュメモリなので、読み込みに比べると書き込みは遅いです。
SSDがすごいのは、それを内部処理でハードディスクを凌駕する性能にまで持っていった点です。

USB1.1 → USB2.0 → USB3.0

USBはもともと、マウスやキーボード、プリンタ等の周辺機器を接続するための汎用規格として誕生しました。
まさか今日のように大容量の外部記憶装置がガチャガチャつなげられる状態になるとは想定しておらず、
特にUSB1.1の頃はUSBの転送速度の遅さがネックになっていました。

USB2.0になって、実用上外部記憶装置の使用に耐えうるだけの転送速度が確保されました。
このへんから、USBメモリの普及が一気に進んだ感じがあります。
USBメモリの大容量化も進みました。

そして、さらにケタ違いに転送速度を高めたUSB3.0が登場しました。
それまでから大容量のデータを転送する外部記憶装置用として、eSATAという専用規格があったんですが、
イマイチ、というかほとんど普及しませんでした。
やっぱり、USBの汎用性の高さ、何でもできる感、何も考えなくていいというのがウケるようです。

ここで注意が必要なのは、
「USB1.1 → USB2.0」と「USB2.0 → USB3.0」では、いささか状況が異なるということ。
USB1.1の頃は、明らかにUSBの転送速度がボトルネックでした。
だから、USB2.0対応製品は、ほぼすべてがその恩恵を受けることができました。
でも、USB2.0である程度の転送速度が確保されてからは、その限りではありません。
USBの転送速度ではなく、製品内部の速度がボトルネックになっていることがあるからです。
上記、USBメモリとポータブルハードディスクの比較でも示したとおりです。

つまり、「USB3.0、だから速い」とは限らない
特に、USBメモリではこのページに書いてきたような製品構造上の問題があるため、
ハードディスクに比べて製品による性能差が激しいです。
USB3.0対応USBメモリでも、書き込みについてはUSB2.0接続のハードディスクに及ばないケースが多いかもしれません。
そのへんをふまえてコントローラ等にそれなりのコストをかけたものは、USBメモリでもかなりの速度が出ます。
SanDiskのSDCZ80とかが好例ですが、必然的に、価格、サイズに反映される傾向にあります。

USB3.0になって、製品による当たり外れがより一層目立つようになったと言えるのかもしれません。