ということで、やっと解説が全部終了である。ここまで細かくやると、むしろ全貌が見えにくくなってしまった、という読者も居られるかもしれないが、だとすれば申し訳ないことである。とりあえずこれで、USB-IFが現在公開しているものについている話は、ほぼ網羅したのではないかと思う。

こういう書き方をするのは、まだ触れていないものがあるからで、それはxHCIである。xHCIそのものはUSB-IFが規格を定めたものではなくIntelが仕様を策定しているもので、そのためたとえばUAS DriverはxHCIの存在を前提にして記述されているが、肝心のxHCIはIntel任せというわけだ。

そのxHCI、以前は「IntelのチップセットにxHCIコントローラが搭載されるタイミング」でRevision 1.0が公開されるだろうと書いたが、これに先んじて今年5月21日に公開された。「何でこんな時期に?」とRavencraftに聞いてもどうせまともな答えは返ってこないだろうと予測されるので以下勝手に推察してみたい。

本来xHCIはSandyBridge世代のP6シリーズチップセットで導入される予定だった。ところが(理由は不明だが)、これを延期せざるを得なくなったようだ。現状では2012年に投入する新チップセットで投入という話になっている。この話が出てきたのが概ね昨年末の事で、これに続き今年3月位にはIntelも自社でUSB 3.0のコントローラを出すなんて噂が飛んだ。正直Intelが自社でUSB 3.0のコントローラを造るメリットがあるか? と言われれば多分無い訳で、あるとすれば3rd Party(最有力なのが現Renesas ElectronicsのμPD720200Aあたりだろう)をIntelブランドでリリースする程度ではないかと思うが、ただμPD720200Aの製品ページを見れば判るとおり、この製品はxHCI rev0.96に準拠したものとなっている。なにせxHCIのSpecがRevision 0.96のまま止まっているのだから、これはRenesas Electronicsの責任ではない。本当にこうした形で採用するかどうかはともかく、採用を行う場合にはRevision 1.0相当まで引き上げないと格好がつかないし、そのためにはまずSpecificationをRevision 1.0にしなければならない。搭載製品が登場前にRevision 1.0がリリースされた背景はこんなところにあるのではないかと思う。

もっともその後Renesas ElectronicsはAMDと協業を決めるなんて事をしているので、最終的にRenesas Electronicsの製品になるのか、それとも他社の製品を使うのか(昨今ではUSB 3.0のコントローラは筆者が知るだけで10種類近く存在している。もっとも、μPD720200/μPD720200Aの様にDiscrete Chipとして完成された形になっているものは少なく、大半はIPのみでの供給であるが)、もしくはこうしたチップ単体供給そのものを断念する、というあたりは現状不明であるが、Revision 1.0が公開された理由はこんなところなんじゃないか、と想像される。

さて話を戻す。これでちょっと興味深いのは、過去にもレポートしたが、「次にxHCIだが、これも内部的にはずいぶんEHCIなどから変わったものになりそうだ。EHCIまでの問題は、とにかくPollingやらBroadcastやらでかなりCPUリソースを消費することであるが、これがxHCIにすることで大幅に解消されるとか。これはUSB 3.0の話ではなく、USB 1.1/2.0デバイスを接続した場合でもそうなるそうで、だいぶ性能が上がるのではないか、というのが関係者の談であった。」という話があるからだ。そんな訳でxHCIの内部解説の前に、まずはこのあたりをベンチマークでちょっと試してみたいと思う。

(続く)