このページの本文へ

前へ 1 2 3 次へ

塩田紳二のWindows 8 IN-N-OUT 第17回

USB 3.0対応HDDが速くなる? Windows 8でのUSBの仕組み

2012年08月23日 12時00分更新

文● 塩田紳二

  • この記事をはてなブックマークに追加
  • 本文印刷

構造は同じだが、USB 1.1から3.0までを
xHCIでサポートするWindows 8

Windows 7のUSBドライバースタックの構造。EHCI/OHCI/UHCIとドライバーの上にUSB PORTデバイス、USBハブデバイスがあり、その上に各デバイスのクラスドライバーやミニポートドライバーによるデバイスクラスが存在する

こちらはWindows 8のUSBドライバースタックの構造。USB 3.0は1.1/2.0とは別になっており、xHCIコントローラーがUSB 1.1~3.0デバイスまでをサポートするため、コントローラーのドライバーはxHCIドライバーのみとなる

 USBに関する基本的な構造は、Windows 8も同様である。デバイスのクラスドライバーとミニポートドライバーの組み合わせにより、個々のUSBデバイスに対応する。またWindows 8でも、ルートハブやUSB 3.0ハブから先のドライバー構成は基本的に変わっていない。

 USBは世界中で大量のデバイスが使われており、マイクロソフトであっても全体の検証は困難だ。ホストコントローラーやハブ、デバイスだけでも、膨大な組み合わせが存在する。新規のUSBデバイスは毎日のように発表されており、逆に古いデバイスにはテストしたくても入手困難なものがある。

 マイクロソフトの調査によるとUSBデバイスの利用には偏りが見られ、「人気の高い」デバイスがある反面、ほとんど使われていないデバイスもあるという。また製品としては別々であっても同じ制御チップを使っているために、同類と見なすことができるデバイスも存在する。メーカーが違っても、デバイスとしての構成は同じになるOEM製品もある。

 またマイクロソフトへの「障害レポート」では、USBデバイスに対するものは少ないという。逆に言えば、「障害レポート」が表示されるようなUSBデバイスは、今後も要注意だと言える。USBデバイスに関連した障害のうち、Windows側で対応可能なもの(Windowsが原因だったもの)に関しては、Windows 8では正しく動くべきであり、検証の対象に含めたという。重複などを考慮し、マイクロソフトではWindows 8の検証の対象とするUSBデバイスを、1000種類程度に抑えたそうだ。

大容量ストレージ向けの新クラス「UAS」
USB 3.0対応HDDが速くなる?

 Windows 8では新たなデバイスクラスとして、高速大容量のストレージデバイスの接続に利用される「UAS」(USB Attached SCSI)が追加された。USBには今でも、HDDなどを接続するための「大容量ストレージデバイス」というクラスがある。ここで定義されている「BOT」(Bulk Only Transport)は、USB 1.1のときに作られたもので、USB 2.0でも改良されることはなかった。登場当時はフロッピーディスクやCD-ROMなどが対象であったし、その後登場したUSBメモリーもさほど高速ではないために、転送効率が要求されることはあまりなかったからである。

 しかしUSB 3.0では、大量のデータを効率良く転送するための「ストリーム」転送プロトコルが追加されている。これを使って大容量ストレージを接続するためのプロトコルとして、「USB Attached SCSI Protocol」(UASP)が作られた。簡単に言えば、USB経由でSCSIコマンドをやりとりして、外部記憶デバイスを制御するプロトコルだ。そのためのデバイスクラスがUASクラスである。なお、UASPはUSB 3.0専用というわけではなく、USB 2.0でも利用できる。プロトコルのオーバーヘッドを小さくして、効率的な転送ができる。また、USB 3.0では全二重転送であるため、さらに効率良く通信できる。

 USB大容量ストレージのプロトコル上の問題として、コマンド実行後に次のコマンドがホストから来るまで、デバイスが待ったままになってしまう点がある。例えばひとつのコマンドがUSBデバイスクラスドライバーから発せられると、コマンドはUSBスタックを通って、コントローラー経由でデバイスに届く。その応答は逆のルートを通って、デバイスクラスにまで戻る。ところが応答が戻るまでデバイスクラスドライバーは次の指示を出すことができず、この間デバイスは待されてしまうのだ。

 そこでUASPでは、コマンドやデータ(イン/アウト)、ステータスのそれぞれに別のパイプ(通信路)を割り当てて、これらを続けて送信し、デバイスはこれに順次対応する方式を採用した。これによりコマンドの「キューイング」が可能となり、デバイス側に不要な待ち時間が発生しなくなる。

 Windows 8が出荷されると、UASデバイスも簡単に利用できるようになる。対応機器の普及が期待される。特に外付けのRAIDデバイスのような高速なデバイスでも、USBで簡単に接続できるようになる。バックアップのような従来時間がかかっていた処理でも、作業時間を短縮できるようになるだろう。

前へ 1 2 3 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン