連載
» 2010年07月20日 12時00分 公開

USB 3.0の追加ディスクリプタ、実機動作速度は?失敗しないUSB 3.0、規格解説と実現のキーポイント(4)(2/2 ページ)

[インベンチュア株式会社 開発部 中村 孝志,@IT MONOist]
前のページへ 1|2       

そのほかのUSB 3.0で追加されたリクエスト

 USB 3.0では上記デバイスディスクリプタのほかに以下のものが追加されており、主にパワーマネジメントに関する情報となります。

 ※規格上必ずサポートする必要がありますが、パワーマネジメント機構はまだ有効ではないようです(2010年7月現在)


  ・Standard Request
    ・SET_SEL
    ・SET_ISCHO_DELAY
    ・SET_FEATURE/CLEAR_FEATURE
      ・Function Suspend
      ・U1_Enable
      ・U2_Enable
      ・LTM_Enable

 以上が、USB 2.0からUSB 3.0のファームウェアの対応として必須となるデバイスディスクリプタになります。

  • SuperSpeed USB Endpoint Companion
  • Binary Device Object Store(BOS) Descriptor
  • DEVICE_CAPABILITY Descriptor
      ・USB 2.0 Extensionタイプ
      ・SUPERSPEED_USBタイプ

 これらの対応によりファームウェアとしてUSB 3.0の最低限の準備が整うこととなります。

USB 3.0の実機における転送能力

 インベンチュアではUSB評価基板を開発し、PCI Expressを経由したソフトウェア制御の下、USB 3.0システムの構築/評価/確認を行ってきました。

デバッグ性能向上のため、PC上でデバッグや制御が可能となることに加えPCを通じたデータ転送のボトルネックとならないPCI Expressとしました。

 USB 3.0の転送においてプロトコルの改善を十二分に活用し、転送レートを比較的容易に引き上げる手段として、Burst数が重要となります。Burst数が多ければ多いほど、プロトコルオーバーヘッドを削減でき、規格上では無制限なデータ連続性を維持することも可能となります。

photo 図5 USB 3.0実機評価システム

 このようなシステムを用い、現在の環境でUSB 3.0の実力値を実験的に計測しました。前回ご紹介したUSB固有のDMAをバスマスタとし、転送先/転送元をPCのメモリ上に展開し、データ取り扱いによるボトルネック要因の発生を排除しています。以下のプロトコルアナライザ画面は独自のループバック(OUTでデータを受信して、INでデータを送信)により取得したスクリーンショットになります。

 プロトコル上ではデータペイロードの連続性が重要ですが、スクリーンショット下部にData Throughputがグラフ化されていますのでぜひご覧いただければと思います。

※オレンジ:IN転送、緑:OUT転送

photo 図6 Bulk Burst転送(1-Burst)
photo 図7 Bulk Burst転送(4-Burst)

photo 図8 Bulk Burst転送(8-Burst)
photo 図9 Bulk Burst転送(16-Burst)

 Burst数はデバイス内部のRAMサイズやバスマスタを含めたアーキテクチャにより決定することができます。そして、Endpointごとの可能なBurst数は、Endpoint Companionディスクリプタを通じてホストに通知が必要です。ホストはデバイスの可能バースト数を損なわないようなデータハンドリングを行わなければなりません。

 アナライザの結果から申し上げると、期待どおりBurst数設定により転送レートには非常に大きな差が生じることが分かりました。そして、これらのスクリーンショットから確認できる内容として以下のことがいえます。

IN転送

 バースト数の増加と瞬間転送レートに関連性が確認できる

 デバイスは絶えずデータを送信できており、ホストは滞りなくデータを受信できている

OUT転送

 デバイス側は滞りなくデータを受信できているが、ホストの送信がBurstになっていないため、速度が頭打ちになっている

 ※8-Burstと16-BurstのOUT転送レート値(緑のグラフ)に差が生じないため

 このような結果が得られましたが、1ついえることはUSB 3.0のプロトコル改善効果はもちろん、USB 3.0の高速転送がすでに得られるということです。一般的なバスはRead転送(ここでいうIN転送)よりWrite転送(同OUT転送)の転送効率が優れています。USB 3.0ではIN転送(デバイス→ホスト)の効率がより優れており、ホストの受信データ処理とデバイスのデータ送信能力さえ整えば、期待される高速転送が実現できるのではないでしょうか。

今回のまとめ

 USB 3.0は世間でいわれている“高速転送”はすでに実現可能で実際に体感できると断言できます。ただし、USB 2.0をベースとしてそれほど多くはないながらもファームウェアの追加を必要としますし、USB 2.0と同様のデバイス/システムアーキテクチャが通用するとは限りません。気を付けるべきポイントは論理層、デバイスアーキテクチャ、バスマスタ構成やファームウェアなどが挙げられ、そのノウハウこそがUSB 3.0の能力を最大限に引き出すといっても過言ではないと考えています。

 歴史を振り返れば、バスに対する高速化の要求が生まれ、バスの高速化が実現するとボトルネックポイントが変わり、その改善が重ねられることでバスも生きてきます(※)。システム全体の能力が上がるとバスへの高速化要求が再燃し、飽くなき性能向上が繰り返されます。

 ※現状ではUSB 3.0における有名なボトルネックポイントはHDDが挙げられます。

 USBは全世界で老若男女問わず、最も有名なバスの1つです。いまではPC周辺専用バスから脱却し、ポータブル機器/AV系家電など、さらなる可能性を秘めたバスだといえます。

 USB 3.0はこれから何年も使用される最も身近なバスとなることを確信していますし、これからUSB 3.0に取り組まれる読者の方々のご参考になれば幸いです。

前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.