大原雄介の最新インターフェイス動向

USB 3.0 その1



SuperSpeed USBロゴ

 Serial ATAに続く次のお題はUSB 3.0である。USBの仕様を策定するUSB-IF(USB Implementation Forum)では、USB 3.0というよりもむしろSuperSpeed USBという言葉を広めたがっているようで、プレゼンテーションをみるとSuperSpped USBを使うケースとUSB 3.0を使うケースの両方が混在していたりするのだが、一般には今のところUSB 3.0の方が通りがよさそうである。そんなわけで、以下USB 3.0のまま話を進めたいと思う。

 2007年9月に開催されたIDF Fall 2007の初日の基調講演で(当時上級副社長だった)Pat Gelsinger氏が突如発表したのがUSB 3.0である。当時のレポートをお読みいただければ、本当に突然という形で発表されたことがお判りいただけよう。開発そのものは2006年あたりから部分的に始められ、「これで行けそうだ」という方向性が見えてきたところで、初期メンバー(Promoter Group:Hewlett-Packard、Intel、Microsoft、NECエレクトロニクス、ST Microelectronics、TIの6社)により方向性を固めたのが2007年中旬、そこから標準化を進め、正式にRevision 1.0の仕様書がリリースされたのは2008年11月の事である。

【写真01】今あらためて見てみると、とりあえずレジンか何かでそれっぽいものを作ってみましたという感じもなくはない。ちなみにこの直後、USB-IFの関係者は一同に「あれ(このコネクタ)については何も喋れない。それはJeff(Ravencraft:USB-IFのChairman)に聞いてくれ」と逃げ回っていたのが記憶に残っている。基調講演では話を広げるために「将来は光化を考慮する」と説明したく、そのためにでっち上げたものだと思えばよい

 少なくとも、物理層にPCIe Gen2をそのまま使うことは、Promotor Groupの結成前にほぼ既定事項で、そこから約1年近くを掛けて技術的な細部を詰めた状態で発表を行なうと共に、仕様策定作業に取り掛かったと思われる。実際、Gelsinger氏の基調講演に登場した謎のコネクタ(写真01)はともかくとして、この時点でUSB 3.0のStandard-A/B Connectorやmicro-A/B/AB Connecter/Receptacle、あるいはケーブルの仕様案が展示されており、その内容は最終的な仕様にほぼそのままの形で盛り込まれたあたり、基本的な電気特性のシミュレーションとか量産/実装のシミュレーションは2007年9月の段階で済んでいたものと思われる。

 もっともこうした物理層/電気層は早めに固まったものの、その上に実装する論理層は結構変更があったようだ。2008年4月に開催されたIDF Shanghai 2008におけるテクニカルトラックでUSB 3.0のプロトコル層に関する説明が初めて行なわれ、その半年後の2008年9月に、今度はサンフランシスコで開催されたIDF Fall 2008でもやはりテクニカルトラックでUSB 3.0のプロトコル層の説明があったが、両方のプレゼンテーションを比較すると、特にフロー制御まわりが大きく変わっていることが確認できる。

 ただその後は大きな変更もなく、2008年11月には仕様もリリースされる。ちなみにUSB-IFが策定するのはあくまでもホストとデバイスを繋ぐ、(物理/電気/論理)的プロトコルがメインであって、ホストコントローラそのものについては「こうあるべき」という要件のみがまとめられているものとなっている。では肝心のホストコントローラの仕様は? というと、これはIntelが策定を行なっている。

 これも歴史的経緯があり、もともとUSB 1.0の時代から、USB-IFはプロトコルのみを策定していた。で、ホストコントローラについては、IntelはUHCI(Universal Host Controller Interface)という規格を定めたものの、これを非公開とした。そこでMicrosoftとNational Semiconductorが中心となってOHCI(Open Host Controller Interface)という規格が定められ、AMD/ALi/SiS/NVIDIAなどのチップセットベンダーはこのOHCI準拠となるホストコントローラを搭載した(VIA Technologiesの製品のみ、UHCIのホストコントローラを搭載していた)。このOHCIなりUHCIなりがチップセットに搭載された時期というのは、MicrosoftがWindows 95 OSR2で初めてUSBをサポートした時期でもあるのだが、当初UHCIはともかくOHCIのドライバは(Microsoft自身が策定を行なったにも関わらず)まともに使えない代物で、その後OSR 2.1/2.5を経てWindows 98とかWindows 98 SEが登場してなんとかまともになった。これは直接的にはIntelの責任ではないのだが、UHCIの仕様を公開しなかったがために、結果的に普及が遅れる事になったのも事実である。

 これを踏まえ、USB 2.0のホストコントローラであるEHCI(Enhanced Host Controller Interface)に関してはIntelが無償で仕様を公開。USB 2.0のコントローラベンダーは各社このEHCIの仕様を参照してこれと互換のホストコントローラを作成したことで、市場は急速に立ち上がり、かつ互換性の問題も殆ど出なかった。こうした経緯もあってか、USB 3.0のホストコントローラであるxHCI(Extensible Host Controller Interface)に関しても、やはりIntelが仕様を策定し、公開を行なった。

 問題はこの時期である。EHCIの場合、Revision 1.0が公開されたのは2002年3月13日となっている。この2002年3月というのは、IntelがUSB 2.0ホストコントローラを初めて内蔵したICH4をリリースした時期に非常に近い(2002年5月:ちなみにIntel 845E/G等と一緒にリリースされている)。ところが市場にはこれに先んじて、NECエレクトロニクス(現ルネサス エレクトロニクス)の「μPD720100」というUSB 2.0コントローラが2000年4月には発売されている。

 ではμPD720100は何に準拠していたのか? というと、EHCI Revision 0.95である。このRevision 0.95はNDAベースで仕様が公開されており、これを基にNECは製品化した形になる。ぶっちゃけた話、Intelは仕様は早期に策定できたものの、実際のホストコントローラを作る時期は(チップセット製造部隊のロードマップの絡みもあって)やや遅れる事になった。そこでほぼRevision 1.0に近いRevision 0.95を策定してNECエレクトロニクスに当面任せる形となり、Intelは自社のICH4に独自開発のUSB 2.0 ホストコントローラを搭載した上で、初めてRevision 1.0に上げて広く公開したという次第だ。このあたり、無償で公開はするにしても、Intelに先んじて広く互換メーカーにUSB 2.0の普及で先手を打たれたくないという思惑が透けて見えなくも無い(ちなみにNECエレクトロニクス自身も、EHCI Revision 1.0の公開にあわせ、これに対応したμPD720101をリリースしている)。

 こうした構図はUSB 3.0においても繰り返されかかったのだが、今回はちょっと途中から話が変わった。ご存知の通りNECエレクトロニクスはUSB 3.0対応のホストコントローラである「μPD720200」を2009年5月に発表する。実際の出荷はやや遅れたが、それでも秋葉原では2009年11月に初のUSB 3.0 I/Fカードが発売されているし、前後して各社のハイエンドマザーボードへの搭載も進んでおり、いまでは普通にUSB 3.0カードが購入できるようになった。ただしこの時点におけるxHCIのSpecificationは0.95のまま。「恐らくIntelのチップセットにUSB 3.0のコントローラが搭載された時点でRevision 1.0に上がるんじゃないんでしょうか?」とは某関係者の予想であったが、この予想は見事に外れ、2010年5月21日にxHCI Revision 1.0が公開された

 この理由は良くわからない。元々USB 3.0はSandy Bridge世代のCougar Point(や、恐らくその上位のPatsburg)で搭載するという話だった。ところが2009年末に計画を変更、Sandy Bridgeの世代ではUSB 3.0 ホストコントローラは搭載しないことになってしまった。となると、次にチップセットの更新があるのは、早くてもIvy Bridgeが登場する2012年という事になる。EHCIのときは最初のホストコントローラ出荷からEHCI Revision 1.0 Specificationの公開まで約2年だから、同じように考えれば2011年5月位まではxHCI Revision 1.0 Specificationを公開しなくても許容されそうに思うが、それに先んじて公開したと言うことは

・2011年5月を過ぎてもxHCI Controllerを内蔵した製品を出せそうにない
・まもなくxHCI Controllerを内蔵した製品を出荷できる

のどちらかになる。ただ現時点でIntelからは特に新製品の話はないし、たとえばμPD720200と同等の単体コントローラのようなものを出すとしても、アナウンスがあるのは恐らく9月のIDFであろうから、いくらなんでもフライング気味である。そう考えると、「当面IntelはxHCIコントローラを内蔵した製品を出せそうにないため、Revision 0.95のまま保留しておいても意味がなく、Revision 1.0を公開した」というあたりではないかと想像される。

 理由はともかく、正式にSpecification 1.0が公開されたのは喜ばしい事で、これによりさまざまなベンダーがxHCI対応コントローラの開発や既存製品への統合といった作業を既に開始している。現実問題としてあと1年近くはNECのμPD720200をマザーボード上あるいは拡張カードで搭載する形のまま推移すると思われるが、その後はチップセットに統合する形での製品が多く登場してくるのではないか? と想像される。

 ということで、次回は「んじゃUSB 3.0で何が嬉しいのか」というあたりをもう少し説明してゆきたい。

バックナンバー

(2010年 8月 5日)

[Text by 大原 雄介]