さて、まずOverallの話である。USB 3.0の階層構造はPhoto11の右側の様に構成され、これを左側の様なSpecificationでカバーする事になる。まず物理的な構造であるが、これまでも説明したとおり、USB 2.0とUSB 3.0は信号線がそもそも異なる。また信号は単方向となるため、SSTX±(送信)とSSRX±(受信)という2対4本の信号線が新たに追加される形になる。また途中に挟まるHubに関しては、内部がUSB 1.1/2.0対応と3.0対応で分離される(これは信号線が異なる以上、リーズナブルといえばリーズナブルだろう)話は昨年レポートしたが、この両方を同時に使うようなオペレーションは一切許されないことが明確になっている(Photo13)のが面白い。

Photo11: 例えばUSB 2.0の場合でも、Specificationはこちらで判るとおり複数のものから構成されることになる。これはUSB 3.0でも同じことになるだろう。ちなみにPMとはPowerManagementの意。RouterがPowerManagementの対象外なのは、まぁ当然かもしれない。

Photo12: VBUS/GNDは従来と共通。

Photo13: デバイスから見た場合、USB 3.0とUSB 1.1/2.0の両方を使って通信することは(それに意味があるかどうかは別として)技術的には可能であるが、Hostはこんなつなぎ方を許さない。当然これはHubにも適用されるわけで、Logical ORを取るといっているが、実際はLogical XORではないかと思う。またHubの中では、USB 1.1/2.0と3.0で別々にDevice Treeを管理するというのも面白い。つまりHostは両方のDevice Treeを分けて管理する形になるからだ。

次にアプリケーションというか、Usage Modelから見たUSB 3.0である。とにかく最重要なのがUSB 1.1/2.0との互換性である。"Backward compatible"の項に"New devices work when plugged in legasy systems albeit at USB 2.0 speeds"とあるように、USB 3.0のみに対応したデバイスというものは許されない。デバイスは「必ず」USB 1.1/2.0との互換性を保つ必要がある。言い換えれば、Device側のPHYは3.0のみということは許されず、かならず1.1/2.0対応のPHYが必要という事になる。またUSB Device Modelも従来のものがそのまま使われるという事になり、例えばWindowsの場合であればBus Driverだけを更新すれば良く、その上のFilter DriverとかClass Driverは従来のものがそのまま利用できることが目標であると謳われている。従って、例えば今までPCIやPCI Expressで動いていたDeviceをUSB 3.0対応で……と考えた場合、まずそのDeviceをUSBのClassに対応させてやる必要が出てくるわけだ。