USBメモリの書き込み速度が遅い(USB3.0対応)

久しぶりの更新になります。
今回は、順調に書き込み速度が低下しているUSBメモリのお話をしたいと思います。

昨今のUSBメモリは、特にUSB3.0対応製品を中心に読み出し速度の高速性のみを紹介し、書き込み速度については触れないとも多くなりました。このため、実際に購入してみたら書き込み速度が異様に遅く、「なぜ?」という方もいらっしゃるようです。そこで今回は、USBメモリやSSDの速度がどこで決まるかという話を中心に、昨今の事情を解説したいと思います。

本Blogをよく読まされている方なら常識かもしれませんが、SSDやUSBメモリの理論上の最大速度は、NANDフラッシュメモリの「インターフェース速度 x コントローラの物理チャンネルの数」によって決まります。SSDの場合ですと、コントローラに搭載されたNANDフラッシュメモリ接続用の物理チャンネルは通常「8個」。USBメモリの場合は、1、2、4個の3種類のコントローラがあるようです。

インターフェースの速度は、大きく2つあります。1つが、同期モードです。ONFI NV-DDR 1.0の場合で166または200MB/sec。東芝とSAMSUNGが推進しているToggle DDR 1.0の場合で133MB/secです。次世代のONFI NV-DDR 2.0及びToggle DDR 2.0なら400MB/secとさらに高速化されます。もう1つがAsyncモード(非同期転送モード)です。Asyncモード時の速度は、公開されていないので詳細は不明ですが、NV-DDR 1.0やToggle DDR 1.0の半分前後ぐらいだと思っていればよいかと思います。

上記を前提としますと、SSDは通常、物理チャンネルが8つありますので、同期モードの場合、最大1600MB/sec。USBメモリは、同期モードの場合で、1チャンネル品が200MB/sec。2チャンネルなら400MB/sec。4チャンネルなら800MB/secが最大速度ということになります。つまり、USBメモリの場合、最大速度が100MB/sec程度でよいなら、1チャンネル品のコントローラで十分事足りるということになります。

次に書き込み速度についてですが、これを決める要素は、「NANDフラッシュメモリ単体の書き込み速度 x 並列アクセスバンク数(同時にアクセスできるダイの数)」です。つまり、素のNANDフラッシュメモリの書き込み速度が10MB/secだと仮定すると、1ch接続でもダイが2個あれば、2Wayインターリーブを使って20MB/sec、4個あれば4Wayインターリーブで40MB/secの速度がでます。最近のUSBメモリの書き込み速度が何故遅いかという原因は、まさにここにあります。要するにUSBメモリに搭載されているNANDフラッシュメモリのダイの数が少ないのです。

加えて、最近のUSBメモリは、SSDで一般的なMLCタイプだけではなく、TLCタイプも使用されているようです。これが、USBメモリの書き込み速度の低下に拍車をかけています。

TLCタイプのNANDフラッシュメモリは、読み出し速度こそMLCタイプとほぼ同じですが、書き込み速度は、MLCタイプの半分ぐらいしかありません。しかもTLCは、ダイ当たりの容量が64Gbit(8GB)のものが一般的です。一方、MLCの場合は、32Gbit品と64Gbit品の両方が現在の主流です。

まとめますと、現在のUSBメモリの書き込み速度の低下には、大きく2つの要素があります。1つが、NANDフラッシュメモリ自体の書き込み速度の低下です。これは、製造プロセスの微細化による速度低下とMLCではなく、TLCを使うことによる速度低下です。2つ目が、NANDフラッシュメモリの大容量化です。現在のNANDフラッシュメモリは、MLCの場合で32Gbitと64Gbit品の2種類があり、TLCの場合は、現時点で64Gbit品が主流です。このため、8GBモデルなら1つのダイで製造でき、16GBモデルでも2つのダイで製造できてしまいます。同時にアクセスできるダイの数そのものが少ないのですから、書き込み速度があがるわけがありません。

特に現在の安価なUSBメモリは、TLCタイプが採用されている可能性が高いので、購入時には、最初から速度は割り切っておいた方が良いと思います。実例をお見せします。以下のベンチマーク結果は、先日「400円」で購入したLexar MediaのJUMPDRIVEという8GBのUSBメモリ(USB2.0接続)の速度です。リードこそ20MB/secほどでていますが、ライトは、7MB/secほどしかでていません。TLCタイプのNANDフラッシュメモリの書き込み速度は、7MB/sec前後ぐらいだったと思いますのでその速度に合致しています。MLCの64Gbit版のダイ1つの可能性も否定はしませんが、MLCの場合、だいたい10MB/secぐらいの速度がでます。価格も考慮して考えると、本製品に採用されているのは、非同期モード専用品のTLCタイプのNANDフラッシュメモリの可能性が高いと思われます。


もう一つ、LexarのJUMPDRIVEと一緒に「800円」で購入したSUPER TALENTのUSB3.0 Express ST1の16GBモデルのベンチマークも載せておきます。この製品もJUMPDRIVEに負けず劣らずでなかなか素晴らしい結果です。リードこそ90MB/secほどでていますが、ライトはなんと12MB/sec弱。どうみてもNANDフラッシュメモリがTLCタイプっぽい速度です。推測ですが、おそらくこの製品の搭載メモリは、TLCタイプで同期モードなのだと思います。16GBモデルなので、64Gbit(8GB)のダイが2つで1ch接続の2Wayインターリーブまたは2ch接続なのでしょう。


最近のUSBメモリは、低価格化のためにTLCタイプのNANDフラッシュメモリを採用する例が増加しているようです。これによって、特に安価なモデルを中心により一層書き込み速度が遅くなっています。上記のSUPER TALENTの例を考えると、USB3.0対応の32GBモデルですら書き込み速度が25MB/sec前後の製品が以外に多いのかもしれません。昨年までのUSB3.0接続のUSBメモリは、同期モードのMLCタイプを採用しているというイメージでしたが、現在は、同期モードのTLCタイプに変更されてきているという感じがします。少しでも高速な製品が欲しいときは、入念な下調べが必要なのだと思います。

コメント

  1. Teamの超激安の32GBの奴、Readが15とか16程度だったわw
    まぁ、そんな大容量の入れないから別に良いんだけど

    返信削除
  2. USBフラッシュメモリ用のコントローラには、2Wayインターリーブまでしかサポートしてないものもありますので、そのタイプなのかもしれません。最新のUSBメモリ用のコントローラだと、1ch品でも4Wayインターリーブまでサポートしているコントローラもあるようですが。

    返信削除
  3. 困るのが「同じ型番なのに書き込み速度が数倍違う」などという製品まであることですね。

    手持ちのものでもB社の32GBのものを10本買ったらでシーケンシャルで40MB/秒超のものと10MB/秒前後のものが入り交じっていたことがあります。
    試しに一本買ってテストしてから追加購入したんですが、これではね…。

    せめて型番同じで売るなら中身は同じにしてよ…と言いたくなりますが、そうなると海外製品のほうがマシというのでは、もうどうにもこうにも。

    返信削除
  4. SanDiskのSDCZ80シリーズはiSSDを採用していて
    なかなか速いようですね。どういうカラクリなのか
    気になるところですが。

    それにしても、最近のUSBメモリは油断すると
    すぐ地雷を引くので困りますね。
    SSDと違って気軽に殻割できませんし
    中身の情報が乏しく、選ぶのに難儀します。

    返信削除
    返信
    1. SanDiskのSDCZ80シリーズってiSSD採用なんですか。情報ありがとうございます。

      ちなみにiSSDでしたら、カラクリは簡単です。
      iSSDは、パッケージ内にNANDメモリのダイとコントローラを積層したものです。インターフェースは、SATAで、マイクロSSDという名称でSATAの規格として規定されています。つまり、ワンチップソリューションのSSDです。

      iSSDを本当に採用しているなら、SATA-USB3.0変換チップを使ってプロトコル変換しているということになります。ワンチップですが本物のSSDを搭載しているわけですから、確かに性能もでます。ただ、iSSDは、SATA 6Gだったと思います。変換チップの性能が足を引っ張っているようで、読み出しが200MB/secに留まっている点が残念ですね(十分な速度ですが)。

      調べたら、そんなに高くないようなので興味が湧いて来ました。Secure Eraseもできる可能性があるし、一つぐらいあってもよさそうですね。

      削除
  5. 各メーカーのこのUSBメモリはSLC・MLC・TLCのどのタイプかは
    調べる方法はあるんでしょうか?
    商品説明みてもどのタイプかと書いているのを見た事がないもので。

    返信削除

  6. >各メーカーのこのUSBメモリはSLC・MLC・TLCのどのタイプかは
    >調べる方法はあるんでしょうか?

    メーカーのデバック用ベンダーユニークコマンドでもわかれば話は別だと思いますが、現状、USBメモリに使われているNANDメモリがどのタイプかを調べる方法はないと思います。(分解すれば話は別だおと思いますが)

    返信削除
  7. このコメントは投稿者によって削除されました。

    返信削除
  8. 初めまして。私もPC関連を主としたblogを執筆しているものです。
    さて、いきなり揚げ足を取るようで非常に失礼なのは承知しておりますが、本文2段落目
    >>USBメモリの場合は、1、2、4個の3種類のコントローラがあるようです。

    の部分、少し意味が分かりかねます、「1、2、4個の3種類のコントローラ」とは、どういうことでしょうか?

    返信削除
    返信
    1. USBメモリの場合は、物理チャンネルが1つの1chコントローラーと、2つの2chコントローラー、4つの4chコントローラーという意味です。
      わかりにくくて申し訳ありません。

      削除

コメントを投稿

人気の投稿