Hostそのものは、他のベンダーも開発を行っている。比較的当初から製品アナウンスがあったのはFresco Logicで、当初はIPでの提供だったのが途中からチップでの提供に変わった事は、昨年のSuperSpeed USB Developer Conferenceのレポートで触れたとおりである。PLDAは、ほぼFresco Logicと同時期からHostの提供をアナウンスしているが、こちらは当初から一貫してIPでの提供である。他にもVIA Labは今年9月16日にVL800 USB 3.0 Host Controllerアナウンスしたし、Arasan Chip Systems Inc.GDA Technologies, Inc.はPLDA同様にIPの形でHostの提供を明らかにしている。ルネサスエレクトロニクスとあわせると、チップでの提供が3社、IPでの提供も3社が行っているわけで、とりあえずマーケットの立ち上がりには十分な数に見える。ところが、現時点においてもCertificationを取得しているのがルネサスエレクトロニクスのものだけ、という辺りが難易度の高さを物語っている。実際Fresco Logicは同社のFL1000シリーズを既に出荷しており、これがASRockのマザーボードに搭載されていたりするのだが、このFL1000Gは本来USB 2.0をもサポートしている筈にも関わらず、実際に接続してもUSB 2.0では動作しないというイレギュラー品である。ちなみにFL1000Gという型番はFresco Logicのサイトには見つからないが、

FL1000(PCIe Gen1 x1接続、1port)→FL1009(PCIe Gen2 x1接続、2port、GoXtream xHCI Accelerator Engine搭載)→FL1000G(PCIe Gen2? x1接続、1port、GoXtream xHCI Accelerator Engine搭載)

という流れで、FL1009の低価格版の扱いになるようだ。GoXtreamなるxHCI Accelerator Engineの正体が不明だが、同社はGoXtreamを使った状態で350MB/secを超える転送速度をデモしているあたり、恐らくこのGoXtreamがフルに動いた状態で、NECのHost Controllerと同等のパフォーマンスになるという感じ(逆に言えばGoXtreamがちゃんと動かないと、もっと性能が落ちる)ではないかと筆者は想像する。

もう一つ特徴的なのは、内部の扱いである。xHCI互換を謳うFresco LogicやVIA Labsの製品は、当然ながらUSB 1.1/2.0/3.0を全てサポートする構造だが、PLDAやArasan/GDAのIPは何れもUSB 2.0がオプション扱いになっている。これはどうしてか? というと2つの可能性があり、

  • 顧客が既に所有しているUSB 1.1/2.0のIPを使いたい(コスト的な問題の場合もあるだろうし、色々手を入れているのでどうしてもそれを使いたいという場合もあるだろう)場合に、それを使えるようにしたい。
  • 汎用のUSB Hostとしてではなく、特定用途向けI/Fとして使いたい場合、別にUSB 1.1/2.0との互換性は必要ない。

というあたりだ。特に2番目に関しては、汎用I/Fとしては許されない話だが、例えば拡張カード上にUSB 3.0のHostを載せ、その先にUSB 3.0のみで動くSSDを接続するという話であれば(それに意味があるかどうかはともかく)USB 1.1/2.0をサポートする必要はない。これは特に組み込み系では顕著であって、無駄に互換性を持つ必要の無い用途であれば、1.1/2.0を切り捨てても問題はない事になる。

ただこうした構成を許すHostを作る場合、xHCI互換といってもそれはレジスタレベルで互換という話であって、実際のインプリメントはxHCIとは遠く離れたものになるのは容易に想像がつく。逆に言えば、こちらを先行させて開発したとすれば、それはxHCI互換とか言いながらトラブルが多いのも無理ないところだろう。

(続く)