USB3.0は本当に「速い」のか?、USB2.0と比較してみた
2018/03/16
みなさま、おはようございます、こんにちは、こんばんは。
はじめましての方ははじめまして、HimaJyunです。
最近、はじめてUSB3.0と言う物を利用した(今までは対応のデバイスを持っていなかった)ので
今回は、USB2.0とどう違うかを含めて、本当に速いのかどうかを解説しようと思います。
スポンサーリンク
USBとは?
まず最初に、USBとは何かを軽くご紹介致します。
USBとはUniversal Serial Bus(ユニバーサル・シリアル・バス)の略です。
これ、テストに出ますから覚えておいて下さいね。
じゃあバスって何?
bus(バス->ブスでは無いので注意)とは、お風呂?、いえいえ違います。
お風呂のバスは「bath」です。
このバスは、コンピュータ内外の異なる機器にデータを転送したりするために共通化された経路の事です。
共通化されているため、(規格さえ合っていれば)異なる機器でもデータを転送する事が可能です。
普段良く使う物であれば、今回説明するUSBや、HDDの接続に利用するSATA、
あまり意識しない物であれば、CPUやメモリを接続しているのも広義にはバスです。
その中でも、USBは「シリアルバス」の名が指す通り、シリアルバスと言う種類です。
反対に「パラレルバス」と言うのもあるので、軽く説明しておきます。
シリアルバスとパラレルバスの違い
シリアルバスは、USB,SATA,PCI Expressなどの現在一般的に利用されている方法です。
シリアル(Serial::直列、連続などの意味)の言葉が指す通り、1ビットずつ順番に転送します。(ちなみに、8ビットが1バイト)
パラレルバスは、IDE(パラレルATA)やSCSI、PCI(Expressではない方)で利用されていた、少し古い方法です。
パラレル(Parallel::平行などの意味)の言葉が指す通り、複数のビットをまとめて複数の線で転送します。
良くあるのが、「SATAとIDE、なんでIDEの方が線が多いのに遅いの?」です。
確かに、理論的には同時に複数のデータを送った方が速いです。
しかし、コンピュータの世界には「同期」と言う物があります。
プログラマの方であれば非同期処理とかスレッドで苦しめられたはずです。
コンピュータの世界において、2進数で「1,0,1,1,0(=10進数だと22)」で送信されたデータは必ず「1,0,1,1,0」で受け取る必要があります。
これがもし「0,1,0,1,1」で受け取ってしまうと、十進数だと11になり、値が変わってしまいます。
入金した1万円が、出金する時に5000円になっていては困りますよね。
ですので、パラレルATAではそれらのデータの「同期」を取ります。
速い話が、正しい順番に並び替えるのです。
じゃあそれで良いじゃん、と思うかも知れませんが、
同期を取るためにはクロック信号と言うのをやり取りする専用線が必要になる上に、複数のビットを同時に転送するため、線が多くなりがちです。
PC自作の経験がある方でしたら分かると思いますが、IDEケーブルは硬くてデカくて取り回しが悪かったですよね。
しかも、回路が複雑になったり、まだ届いていないデータを待ったりするため結局の所は効率が悪くなります。
昔はPCの速度も遅かったため、パラレルで同期処理を行うのが良かったのですが、今はそうも行きません
そこで登場するのがシリアルバスです。
シリアルバスは先程も説明した通り、1ビットを連続で送り付けるのです。
つまり、送られてきたデータをそのまま受け取ったので良いのです。
昨今のPCは高性能で高速なため、1ビットずつ順番に送り付けるのでも十分な速度が出せる上に、線が少なくなって取り回しも良くなります。
結局の所、現在のコンピュータにはシリアルバスの方が適していた、と言う訳です。
USBの特徴
USBのU、Universal(汎用)の言葉が示す通り、ホストとなる機器(多くの場合はPC)に様々な種類の周辺機器を接続する事を狙って策定された規格です。
USBの特徴として
- USBからの電力の供給が可能
- 1つのバスに仕様上は最大127台の機器を接続可能
- ホットプラグ(PCの電源が入ったまま機器の着脱)が可能
- 新規参入がしやすい
と言った点があります。
ざっと解説すると、
USBは電力を供給する事にも利用可能です。
卓上扇風機なる代物があったり、有線のマウスやキーボードなどが電池などを必要とせず動作するのもこのためです。
(一説に依ると、USBで肉を焼く強者が居るらしい……?)
1つのバスで127台……そんなに繋ぐ奴なんて普通は居ませんけどね(笑)
ホットプラグに対応しているのも特徴です。
従来のPS/2のキーボードやマウスは電源を入れた状態での抜き差しに対応していませんでした
(差し替えても反応しません)
しかし、USBは優秀なので電源を入れたまま抜き差ししてもきちんと動作します。
つまり、「デバイスの安全な取り外し」を行わなくても大丈夫なのです。
(例外的に、HDDなどは書き込みが終わってなかったりしたらデータが破損してしまうので「デバイスの安全な取り外し」を行いましょうね。)
新規参入がしやすい、ですが、USBデバイスの製造には申請を行う必要がありますが、特許使用料が必要ありません。
つまり、ルールさえ守れば誰でも参入が可能なのです、これが普及を促進したとか……?
USB3.0の違い
さて、ようやく本文らしくなって来ました。
今までのUSBは2.0が主流でしたが、最近はUSB3.0が用いられることも増えて来ました。
USB2.0と3.0は物理的な互換性があり、多くの場合はUSB2.0の周辺機器をUSB3.0の差込口に接続しても正常に動作します。
その逆で、3.0の周辺機器を2.0の差込口に接続した場合でも大抵の周辺機器は動作する様に設計されています。
USB2.0と3.0の違いは以下の通りです。
- 転送速度が最大480Mbpsから約10倍の5Gbps(5120Mps)に高速化
- 供給出来る電力が500mAから900mAにパワーアップ
転送速度はあくまで理論値ですが、多くの製品が実測値でも2~3倍ほど速くなっている様です。
また、供給出来る電力が増えた事で今までより多くの周辺機器が外部電源無しに動作する様になります。
と言うより、SSDくらいなら動かせそうですけどね。
見分け方ですが、USB3.0のコネクタは「青色」を使用する事が推奨されており、実際に多くの製品が青色のコネクタを採用しています。
ですので、コネクタの色が青色だった場合は3.0対応と捉えても良いでしょう。
本当に速いの?
「超速光インターネット(理論値1Gbps)」や「高速4G LTE(理論値xxxMbps、※エリアに依ります※)」などの9割方詐欺に近い謳い文句の所為で痛い目を見た方が多いからか知れませんが、「速い」を素直に信じてくれる方がとても少ないです。
(余談ですが、Mbpsなどの表記の中のbは多くの場合、「バイト」では無く「ビット」です。
先程も説明しましたが、1バイトは8ビットです、すなわち、仮に理論値の1Gbpsが出たとしてもバイトに換算すると「128メガバイト/秒」と言う訳ですよ。)
ですので、今回は外付けHDDを用いて、実証してみようと思います。
テスト環境
「てめぇの方が詐欺だろks」とか言われない様に先に言い訳しておくと、以下の様な環境でテストしましたよ。
- OS::Windows8.1 Pro(x64)
- CPU::AMD-FX 8150
- メモリ::CFD DDR3 32GB
- 測定対象HDD::WD5000AAKX(WD 青 500GB)
- 測定ソフト::CrystalDiskMark 4.0.3(x64)
HDDケースは玄人志向のGW3.5AA-SUP3/MBを使用しました。
ちなみにですが、このケースはS.M.A.R.Tに対応しています。
測定してみた
実際に、USB2.0と3.0ではどれくらいの速度差が出るのかを試してみようと思います。
参考までに、内蔵(SATA接続)のHDDだと以下の様な結果になります。
(内蔵HDDはWD 赤 3TB(WD30EFRX)です。)
まずはUSB2.0で測定してみようと思います。
先程のHDDケースはUSB3.0ですが、2.0で接続しても動作しますので、それで測定してみます。
以上の様な結果になりました。
HDDは元々のランダムアクセス(4K)が遅いのでその辺りは問題ありませんが、シーケンシャルアクセスが4~5分の1くらいにまで低下しています。
例えば、小さなファイルを複数取り扱ったりする場合は大差ないかも知れませんが、僕の様にバックアップ目的で利用すると大抵の場合はシーケンシャルアクセスの速度が重要になって来るので体感出来る程の差が表れて来ます。
では、USB3.0で測定してみましょう。
以上の様になりました。
一部の値がUSB2.0より遅いのが多少気になりますが、SeqのReadに関してはSATA接続と遜色ないアクセス性能です。
SeqのWriteに大した変化がありませんが、実際にバックアップを取りながらタスクマネージャーで見ていると書き込みも100MB/s以上出ている様です。
結果
結果、USB3.0は周辺機器やHDDなどに依って多少の前後は有るものの、全体的に見た場合に確かに高速化されています。
今後はPC側のUSB3.0対応機種も増えて来るでしょうし、3.0の周辺機器でも多くの場合は2.0で問題なく動作するため、もし新しく購入するのであれば3.0対応の製品にしておいた方が良いかも知れませんね。