OpenSolarisのインストールは一応、順調。細かい問題はもちろんありますけど。
この記事も、いつものWindows PCではなく、OpenSolaris上で書いています。
それはともかく、懲りもせずUSBネタです。
ちょっと、ニュース鮮度が落ちてしまったけど、
USB3のホストの新製品がVIAとFrescoLogicから発表になったようです。PCIe側が1レーン見たいなので、多分xHCI rev0.65だろうけど、それより注意たいのは、どちらの製品も拡大写真をみると、ヒートシンク用のマウントホールとおぼしき穴が開いていること。消費電力はきついのだろうと思う。両方共設計ルールは130nm(正直5GHz帯のPHYはきつかろうと思う)か90nmと思うが、下手をするとポートあたり200mW位電力を食うので、VIAとかは、4ポート+1ポート(PCIeの分)で、PHYだけで1W超の可能性もあります。
もう一つは、(USB2ネタだが)インテルがUHCIを捨てるという大胆な決断をしたこと。ご存知のように、USBは、バックワードコンパチビリティを持っているので、2.0のHighSpeed(HS)対応のホストは、1.1のFullSpeed(FS)のデバイスを接続しても動作します。PC環境での2.0ホストは、(インテルの決めた)EHCIという仕様のホストが使われています。ところが、EHCIはHSしかサポートしておらず、FSまでは「コンパニオンHOST」というものを別に用意する必要があります。EHCIの仕様では、コンパニオンHOSTをどのように作るかはまったく触れられていません。ちなみにxHCI(USB3.0のホスト)はすべての転送速度をサポートする仕様になっています。
歴史的な経緯で、PCの環境ではコンパニオンHOSTはUHCIという仕様が用いられており、組み込み系など非PCの環境ではOHCIという仕様が用いられています。UHCI/OHCIでは、仕様そのものもOHCIの方が気が利いているところがあるのですが、インテルのチップセットのUHCIは実装がイマイチで、ちょっと問題だったりしていました。
最近買った、H57系のマザーボードでは、UHCIはもはや載っていない(Windowsのデバイスマネージャからも確認できます)のです。で、どうやって解決しているかというと、EHCIのルートポートにUSB2のHubを置いているのです。インテルは「レートマッチングハブ」という呼び方をしていますが、要はは普通のHubです。
USB2のHubはストアアンドフォワード方式になっていて、ダウンストリームポートにFS以下のデバイスが接続されている場合は、アップストリーム側のHS転送を、減速してする機能を持っていますので、これでFS以下のデバイスも(少なくとも理屈の上では)問題なくつながることになります。
で、このような実装のメリットはなんなのか考えてみました。
(1)イマイチBuggyなUHCIを作り直す必要がない.
(2)UHCIのドライバがいらなくなるので、ソフトウェアが簡素化される&メモリ上のフットプリントが小さくなる。
(3)データの転送量に比べて、割り込み頻度が高いUHCIがなくなるので、システムパフォーマンスがよくなる。
とかでしょうか?
一方デメリットは、ハブが4段しかカスケードできないことでしょう。USB2の規格では、ハブは最大5段まで、カスケードできますが、レートマッチングハブが1段分既に消費しているので、マザーボードの外側では4段までという制限になってしまいます。この制限をインテルは、実用上問題無しと判断したのでしょう。USB2.0の規格上最大のケーブル長は5mですが、カスケードして最大20メートルまでOK見たいな商品(実は中身はHub)
最大20mまで延長できる、USB2.0対応延長ケーブル。エレコム USBエクステンダーケーブル USB2-EXA50 【02P14jun10】
を使う場合はちょっと要注意です。
あと、USBのデバイスが調子が悪いときに、「取り合えずマザーボード直接につなぎ直す」みたいな「おまじない」はあまり意味がなくなるかもしれませんね。