このページの本文へ

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

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

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

文● 塩田紳二

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

USB 1.1と2.0でドライバーは別々
USB 3.0ではすべてを統合

 これに対してUSB 2.0では、より高速なHigh Speed(HS、480Mbps)が利用できるようになった。しかし従来のソフトウェアを生かすために、HSのみのコントローラー(EHCI、Enhanced HCI)が定義され、USB 1.1相当部分には継続してUHCIやOHCIを利用できるようにした。つまり、USB 2.0までのコントローラーは、LS/FS用のコントローラーとHS用のコントローラーを含んだもので、物理的にはひとつのデバイスだが、ソフトウェア側からみると2つのホストコントローラーになっていた。

USB 2.0ホストコントローラーは内部でUSB 1.1とUSB 2.0に別れていて、それぞれがホストコントローラーインターフェースを持っている。図の中央下にある「Port Routing Logic」は、接続してきたデバイスの種類に応じて1.1か2.0かを選択する機能

USB 2.0用のEHCIは、ホストコントローラーである「EHC」とUSB 1.1用の「Companion HC」の振り分けの機能を含む、図のグレー部分を定義する

 これに対してUSB 3.0では、Super Speed(SS、5Gbps)が定義された。SSをサポートするコントローラーに対しては、「xHCI」(eXtensible HCI)が定義された。これは、ひとつのHCIでLS/FS/HS/SSをサポートするコントローラーを定義するものだ。xHCIはひとつのホストコントローラーで、デバイスがUSB 1.1でも2.0でも個別のポートデバイスを介することなく、直接ホストコントローラー(のドライバー)と接続するようになる。デバイスやハブの有無などにより、ホストコントローラードライバーを変える必要がなくなったからだ。

USB 3.0ホストコントローラー(xHC)は、接続したUSBデバイスの種類にかかわらず、ひとつのホストインターフェースだけで動作し、ドライバーもひとつのみ

USB 3.0のホストコントローラーxHCは、LS/FS(USB 1.0)、HS(USB 2.0)、SS(USB 3.0)の機能があり、ポートに接続されたデバイスのタイプや途中のハブなどにより、これらを自動的に選別する

 xHCIはその名前のとおり、ホストコントローラーの機能を「UCX」(USB Host Controller Class Extension Driver)と呼ばれるドライバーで、拡張可能となっている。新規のUSB規格がすぐに登場する……というわけではないが、これである程度、将来の拡張に耐えるHCIになったわけだ。

USB 3.0と2.0での挙動の違い

 USB 2.0までは、USBポートごとにドライバーが組み込まれ、USBデバイスとUSBポートの間に対応関係があった。そのため、物理的に同一のデバイスでも接続するポートを変更すると、接続したポートに対して再度ドライバーのインストールが行なわれる。あるポートに接続したUSBメモリーを、別のポートに初めて挿すたびにドライバーがインストールされるのを見たことがあるだろう。あれはこのせいだ。

 こうなった理由は先に述べたとおり、同じポートであってもUSB 1.1デバイスと2.0デバイスでは、接続するホストコントローラーが別になるからだ(図1)。ちなみに途中にUSB 2.0ハブが入る場合、USB 1.1デバイスのLS/FSは、ハブ内でHSに変換されるため、USB 1.1デバイスでもEHCI側に接続することになる。

同じUSBコネクタにUSB 1.1デバイス(マウス)とUSB 2.0デバイス(HDD)を接続すると、物理的な接続は同一だが、UHCI(USB 1.1)かEHCI(USB 2.0)に接続が行なわれる。これは、USB 2.0コントローラー内のルーティング回路により振り分けられる

 Windows 7でデバイスマネージャーを開き、「表示」メニューから「デバイス(接続別)」を開いたとき、PCIバスの下にUSB 2.0ホストコントローラーである「USB Enchanded Host Controller」と、USB 1.1ホストコントローラーである「USB Universal Host Controller」がそれぞれ表示されているはずだ(インテル系チップセットの場合)。これに対して、USB3.0ホストコントローラーがあるなら、PCI Express Root Portの下などにUSB 3.0 Host Controllerが置かれて、その下に「USB 3.0 Root Hub」さらに「USBデバイス」があるはずだ(図2)。

USB 1.1/2.0は、ホストコントローラーがポートと組みになりデバイスと対応する。UHCIとEHCIは別のデバイスとして扱われている。これに対してUSB 3.0のホストコントローラーは、単純にPCI Express上のデバイスとなり、その下にデバイスが登録される

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

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

ピックアップ

ASCII.jp RSS2.0 配信中

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