2013年はさまざまなI/FにまつわるUpdateがあった年でもある。1月にはUSB-IFが10Gbps USBのアナウンスをCESにおいて行い、ついで7月31日にはUSB 3.1が、8月8日にはSATA-IOがSATA Revision 3.2をリリースしている。
PCI-SIGは直近では新しい話は無いものの、6月のDevelopers ConferenceでPCIe 3.1とかM.2などをアナウンスしているし、Thunderboltは4月にDisplay Port 1.2に対応、また同じ4月に開催されたNABでThunderbolt 2のデモを行った。そして、IDF期間中の9月12日にThunderbolt 2を正式発表した。というわけで、このあたりのI/F関連についてまとめて説明したいと思う。
USB 3.1
さて、まずはUSB 3.1の話題(Photo01)である。USB 3.1は10Gbpsの転送速度を実現する規格となっている(Photo02)。
Use casesとしては、4K Displayの接続とか、複数デバイスの接続などが挙げられる。後述するPower Deliveryと組み合わせると、本当に1本のケーブルで信号と電源の両方を供給できる目途が立ってきたことにより、さすがに従来の500MB/secの帯域では不足になってきたということだろう。
Photo04が設計目標であるが、この結果として実現されたのは、これまでの2倍を超える帯域である(Photo05)。
具体的に言えば次の2つの変更を行った。
- シンボル転送速度を5Gbps→10Gbpsへ
- エンコードを8b/10b→128b/132bへ
面白いのは5Gbps、つまりUSB 3.0の規格はPCIe Gen2のPHYをそのまま持ってきたが、USB 3.1はPCIe Gen3のPHYを持ってくるのではなく、独自のPHYを使う方向にまた戻した事だ。この結果としてデータ転送速度は、
- USB 3.0:5×(8÷10)=4Gbps=500MB/sec
- USB 3.1:10×(128÷132)≒9.7Gbps=1.2125GB/sec
となり、2.4倍強の高速化が実現された計算になる。Random BER(Bit Error Rate)そのものは10^-12と替わらないが、Single bit errorのRecovery頻度は0に、Single/Multi bit errorのRecovery頻度も大幅に改善しているのが分かる。
話を戻すとなぜPCIe Gen3のPHYを使わなかったかについてIsmail氏は「確かに当初は(PCIe Gen3 PHYも)検討した。ただ(PCIe Gen3 PHY登場の)後で、さらにいろいろな技術が利用できるようになったので、こうした技術を全部比較した上でこの構成にした。実際、構成としては幾つか(PCIe Gen3 PHYより)有利な点がある。例えば(PHYの)Clock SourceはUSB 3.0と共通にできるから、実装コストを下げられる」とした。
もっとも「とは言ってもUSB 3.1 Controllerは結局PCIeでHostとつながる訳で、ここがGen3 x1とかGen2 x2だったら結局PCIeの接続がボトルネックになるのでは?」と確認したところ「実際にはGen2 x4とかGen3 x2で接続することになると思う」という返事であった。構成を考えるとやや贅沢というか無駄が多いソリューションになりそうだが、将来はIOHとかからもっとたくさんのPCIeレーンが出てくるのかもしれない。
さて、話を戻すとPhoto02では「ソフトウェアなどは互換を保つ」としているが、細かく見るといろいろな拡張や変更が行われている(Photo06)。
下のレベルから行くと、まずはCableだ。USB 3.1では、Connectorそのものは既存のUSB 3.0のConnectorをそのまま使うが、Cableに関してはちょっと話が異なる(Photo07)。
そもそもUSB 3.1のSpecificationを見ると、Cableの長さに関して規定はなく、単に保つべき電気的特性が定められているだけである。
では既存のUSB 3.0のCableはUSB 3.1で使えるか? というと、「1m以内なら多分OK」(Ismail氏)である。このCable長に関しては「我々は調査をしたが、出荷されているUSBケーブルの99.9%は2m以内だから、これはそれほど障害にならない」(Ravencraft氏)という判断だそうである。
Cableはいろいろと問題が発生する事をUSB-IFでも予期しているためか、新たにCableのCompliance Methodを開発するとしている(Photo08)。実際、「例えばユーザーがUSB 3.1のControllerとDeviceを既存のUSB 3.0 Cableを組み合わせて、その結果として速度が10Gbpsに耐えないと判断されると速度は自動的に5GbpsにFalldownするが、これをユーザーが知る手段はあるのか?」と聞いたところ「無い」(Ismail氏)という返事だった。
ただこうした問題を回避するため、新たにUSB 3.1準拠Cableのロゴを策定する事を考えており、なのでこのロゴのついたケーブルを利用すれば10Gbpsが利用できる、という具合にする予定だそうだ。
ちなみに物理層に関しては何しろ信号速度が10GT/secの、しかもPassive Cable接続なので、当然ながら従来よりもマージンの面では厳しくなる(Photo09)ため、相当補正をかける事になる。この結果、逆に1mを超えるような用途ではPassive Cableのままの通信は不可能である。
Photo09:送信側3TapのEqualizer、受信側はCTLE(Continues Time Linear Equalizer)にDFE(Decision Feedback Equalizer)という、ある意味定番な構成ではあるが、かなりきつく補正をかけている感じだ |
これをカバーするため、より長距離が必要なケーブルはリピータを内蔵するActive Cableの構成を取る事を当初から予定していたようだ(Photo10)。もっともまだ今はメンバー企業が内部でいろいろ仕様を検討している段階であり、そんなわけでIDFのShowcaseにおいてもまだRepeaterのプロトタイプなどは展示されていなかった。
仕様が決まらないことには価格とか消費電力などもハッキリした事は言えないのだろうが、大雑把に言えばThunderbolt用のものよりは若干安い&消費電力が低いものになるのではないか、という気がする。
理由は簡単で、Thunderboltは10GT/secのレーン×2が必要なのに、こちらは10GT/secのレーン×1で済むから、要するに機能は半分、消費電力もほぼ半分と想定されるためだ。そんな訳で、幾分はケーブルの値段も安く済むであろう。ちなみにOptical Cableに関しては将来の課題だそうで直近では特に情報はないそうである。
ついでにいくつか。Link Layerでは10GT/secの追加に伴い、LTSSMやSpeed Trainingに追加が行われている(Photo11)。またProtocol Layerでも幾つかの変更がある(Photo12)。当然Hubに関しても10Gbps対応にはそれなりの機能追加が必要になる(Photo13)。
Photo12:multiple INは、HostやHubは10GbpsでもDeviceが5Gbpsというケースで、複数のDeviceがフルに動くようなケースに対応したものになるだろう。Isochronous Bandwidthはまぁ当然ということで、要するに時間は変わらないまま速度を倍増した形になる |
Photo13:Photo12のキャプションにも書いたが、USB 3.1ではHubが10Gbps、Deviceが5Gbpsというケースが当然ありえるので、ここで帯域を最大にするような仕組みが必要になる |
ちなみにこの図にある"Enhanced SuperSpeed"という用語だが、USB 3.1のSpecificationではSuperSpeedPlusなる用語も出ていたりする。これと従来のSuperSpeedとの違いだが、
- SuperSpeed:USB 3.0での動作
- SuperSpeedPlus:USB 3.1で追加された動作
- Enhanced SuperSpeed:USB 3.0もしくはUSB 3.1での動作
という具合になっている。
話を戻すと、Photo14はHubのArbitrationの様子をシミュレーションした結果である。acounter~fcounterが、それぞれのDeviceが送受信したパケット数を示しているが、ほぼ同等になっているのが分かる。
むろんControlとかisosynchronousなどではデバイス毎に帯域が保障されているが、そうではないBulk Transferの場合でも均等に転送が行えるように重み付けのラウンドロビンを実装したケースだ。もっともSpecificationによれば、Upstream Flowing Packet Reception and Selectionに関しては
- 重み付けラウンドロビン
- 単なるラウンドロビン
のどちらかを実装すべき(shall use)とあるだけなので、このあたりの実装は製品によって変わってくる様だ。
xHCI、つまりUSB 3.0に対応したコントローラの仕様も若干変更がある(Photo15)。
必須となるのは10GbpsのSpeed IDへの対応だが、実装にあたっては10Gbpsにおけるスループットを最大にする様な配慮が必要とわざわざ書かれるあたりは、メーカーによる実装の出来不出来がありそうな気がする。これに伴い、PIPE Specificationも4.2になっている(Photo16)。
ただ4.2はUSB 3.1への取りあえずの対応という感じで、きちんと統合されたものは4.3になる模様だ。この途中過程であるPIPE 4.2はこちらからダウンロード可能である。
ちなみに今後のロードマップであるが、何しろやっとSpecificationが出来上がったばかりであり、製品化のためのまずはSiliconの製造に取り掛かっている段階(Photo17)。
Photo17:主要タイムライン。0.7のDraftが出たあたりから、早期に製品開発を目指す企業は実際のSilicon開発を始めている。実のところIPだけであれば既に存在したりする訳で、ただしCompliance Testとの絡みもあるから、「単に動くだけ」ならすぐ作れても、ちゃんと認証を取れるかどうかをCompliance Testの進捗をにらみながら対応する必要がある |
ただいきなりSiliconを作ったからといってそのまま出荷できるわけではない。何しろUSBの場合互換性が命だからだ。なのでCompiance Testは必須な訳だが(Photo18)、こちらの方はまだこれからといったところだ(Photo19)。
Photo18:主なCompliance Testの項目だが、これはあくまでも概略。ちなみにUSB PDの要求云々はケーブルとコネクタに掛かる部分で、コントローラそのものにUSB PDの機能が求められる訳ではない |
ちなみに今回はFPGAボード上にFresco LogicのUSB 3.1対応IPを乗せ、さらにSSDを接続したプロトタイプボード(Photo20)の動作デモが行われ(Photo21,22)、従来のUSB 3.0の帯域を越える性能を発揮していることが示された。
Photo20:これはXilinxのおそらくVirtex-7と思われるFPGAドーターカードをFMCカードに搭載し、さらにSSDまで搭載したもの。PCに装着して動作させているのを下から無理やり撮影した関係でアングルがちょっと見難い。IPそのものもFRESCO LOGICが開発中のもので、まだ製品レベルではない模様 |
Photo22:という事でベンチマーク画面をクローズアップ。ATTO Disk Benchmarkを使い、870MB/sec前後の転送速度を実現できていることが示された |
ただしIDFのshowcaseで幾つかのベンダーに話を聞いたものの、ほとんどの会社が「現在USB 3.1のコントローラを開発しているかどうかを含めて一切ノーコメント」という、なかなか微妙な返事だったのは興味深い。
唯一USB 3.1をやると表明していたのはFresco Logicのみ。あとはEllisys CorporationがUSB 3.1に対応したProtocol Testerを展示したりAgilent Technologiesが測定器を出したり、という程度で、何かが水面下で蠢いている感じであった。
次のページ:USB Power Delivery