[an error occurred while processing the directive]

【ESC SV 2009レポート】

Stackable USBのいろいろ

【写真1】あちこちのブースに置かれていたStackable USBのポスター

会場:米国カリフォルニア州McEnery Convention Center

会期:3月30日~4月2日



【写真2】パネルディスカッションに参加した面々。左からDavid Givens氏(Development Manager, Samtec)、Rodger Richey氏(Director of Applications, Microchip Technology Inc.)、Susan Wooley氏(CEO, Stackable USB)、Omair Kahn氏(Hardware Engineer, MICRO/SYS Inc.)、Alp Sezen氏(Senior Director of Embedded Platform Division, VIA Technologies, Inc.)

 今回のESCで意外に目立ったのがStackable USBだ。「PC/104」や「PCI/104」、あるいは昨年レポートした「PCI/104-Express」などに代表されるスタッキングは、PC/104の標準化を行なっているPC/104 Embedded Consortiumと対立している(?)SFF-SIGのサミット、更にはCOM/Expressなどまで考え合わせると、スタッキングインターフェイス業界には十分なプレーヤーがすでにひしめいているが、ここに新たなプレーヤーが参入した。

 「新たに」と書いたものの、実はStackable USBはそれほど新しいアイディアではない。もともとStackable USBというアイディアを考え付いて実装したのは米MICRO/SYS Embedded Systemsである。彼らは2007年初めに、Stackable USBを新たな規格として提案し、これに準拠した製品を投入してゆくが、これはあくまでもMICRO/SYSという企業の独自規格でしかなかった。

 そこでMICRO/SYSは他の賛同するメーカーと共同で、業界標準団体であるStackable USB.orgを設立した(設立時期がはっきりしないが、仕様書の改訂履歴を追う限り、2008年6月頃の模様だ)。団体の議長にはMICRO/SYSの社長であるSuran Wooley氏が就き、昨年10月にはAdvisory Boardを設立、ESC最終日である4月2日にはESC TheaterにてAdvisory Boardによるパネルディスカッションが行なわれた(写真2)。ディスカッションの内容を逐一レポートしてもあまり意味が無い(大半が散文的な会話に終始した)ので、仕様について解説したいと思う。

●最大16枚のボードをスタッキング

 まずStackable USBとは何かという話だが、端的に言えば「PC104のフォームファクタをそのまま流用しつつ、USBで接続できる規格」ということになる。これは口で言うよりも見ていただいたほうが早い。写真3はVIAのブースでのデモ、写真4~7はStackable USBのブースに展示されたメカニカルサンプルだ。

 ご覧の様に、モジュールをひたすら積み重ねる形で拡張しようというものだ。国内ではあまりこうしたスタッキングの例は見かけない(せいぜい1~2枚というところだ)が、海外では特に航空/軍事向けに、こうしてスタックしたシステムを奥行きの長いケースに入れて搭載というケースが非常に多く、何枚もスタックすることにあまり抵抗はないようだ。もちろん、縦に積み重ねるのではなく、水平方向に重ねる事も可能だ(写真8)。

 問題は原則としてPoint-to-PointのUSBの信号をどうスタックするかであるが、これはPCI/104-Expressに非常に近いものがある。図1に構造の模式図を示したが、コネクタは8本分のUSBの信号線を通すことが可能である。で、USBホストを搭載したベースボードからは、(ボード側のホストが対応していれば)8ポート分のUSBの信号が引っ張り出され、それがスタックする毎に1本づつシフトしながら上に配線が繋がるという構造だ。

 1層につき1本づつ引っ張りだされてボードのUSBデバイスに繋がるから、最大8本という事になる。これはボードの表に積み重ねる方向での場合だが、例えばUSBホストを搭載したボードが図2のようになっていれば、ボードの表と裏にそれぞれ8枚づつ、最大16枚積み重ねられる計算になる。さすがに1チップで16ポートもUSBの端子が出てくるコントローラは見たことが無いが、別にUSB Hubをオンボードに搭載すれば済む話だから、それほど無理な数字ではないだろう。

【図1】スタック構造の模式図 【図2】USBボードの例

 もっとも片方向あたり最大8枚というのはあくまでもUSB 1.1の場合で、USB 2.0のHigh-Speedモードでは、片方向当たり5枚に制限されている。もっとも、コネクタを供給するSamtecのGivens氏によれば、コネクタに関して言えば6枚までのスタックでUSB 2.0のHigh-Speedモードが利用できたとの事。とはいえ実際はボードの実装の仕方でこのあたりは変わってくると念を押すことも忘れなかった。

 ちなみにコネクタは53ピンの構造であるが、うち32本をUSBの信号が使う(USB 1ポートあたり2本の信号線が必要で、1本の信号あたり2ピンが割り当てられる)。他にGNDが、信号同士のシールドになるように合計21ピン割り当てられているほか、+5Vと3.3Vが5本(10ピン)、それとI2C(2本/4ピン)、SENSE/RST#(2本/4ピン)があり、残る4ピンはReserveとなっている。実はこの点は、仕様書とパネルディスカッションの中身が食い違っている。というのはパネルディスカッションではI2Cの他にSPIの信号も通すという話が出ていたからで、恐らくこのReservedがSPIに割り当てられるものと見られる。

 +3.3Vの供給というのは比較的早く(2007年1月にリリースされたRevision 0.43で)追加された項目だ。USBは通常5Vのみだし、PC104などのボードであれば消費電力も多い事が結構あるので、5Vだけでも十分足りる。ところがStackable USBでは8/16bitのMCUもターゲットとしているから、こうしたデバイスでは3.3Vの方が便利である。この3.3Vと5Vについては、どちらもボード1枚あたり0.9375Aを供給することがUSBホストにあたるボードに義務付けられている(やけに細かい数字だが、これはボードを16枚装着した状態で15Aを供給せよというところから来ている)。

【写真3】Nano-ITXのフォームファクタのボードの裏側にコネクタが用意され、下側にスタッキングしていく例。Nano-ITXはPC104よりも少し大きい(120×120mm、PC104は3.55×3.775インチ
=90.17×95.89mm)ので、ドーターカードは一回り小さくなる感じだ
【写真4】こちらはPC104のサイズ(Stackable USBの用語ではFull-size)でのスタッキング 【写真5】フルサイズを2分割(1/2サイズ)ないし4分割(1/4サイズ)したフォームファクタも「事実上」用意されており、これはその4分割の例
【写真6】フルサイズの上に1/4サイズを搭載した例 【写真7】こちらは1/4サイズを4枚積み重ねた例 【写真8】1つの大きなベース(キャリアカード)から複数のUSBコネクタを出し、並べて重ねるという実装も可能だそうだ。実際はこの方が現実的かもしれない

●ターゲットはx86以外も幅広く

 PC/104にせよサミットにせよ、現状の殆どのスタッカブルの規格は、PCのものをベースとしている。オリジナルのPC/104はISA(もっと正確に言えば、8bitのXT Busと16bitのAT Bus)をベースにしているから、この時点でPCグレードの構成をホストに必要とするのは明白である。この後継のPCI/104は一応PCIバスだから、ARMやMIPS、PowerPCなどをベースとしたSoCならホストになることは可能だし、実際そうした製品も無くはない。ところが、この後継となるPCI/104-ExpressやPCIe/104となると、PCI Expressが必須になるから、ごく一部のハイエンドSoCを除くとx86しかソリューションが残らないことになる。

 だが「そこまでの性能は要らない」という用途もまだたくさんある。ところがほとんどのMCUはISAバスなど出せないし、x86にしても最近のチップセットはISAバスを持っていないから、LPC-ISAブリッジとかPCI-ISAブリッジなどを乗せてむりやりISAを出している始末だ。

 その一方、USBは確実に普及してきた。32bitはもとより16bit MCUや、中には8bit MCUでありながらUSB 2.0 OTG(On-The-Go)を乗せた製品もあるほどだ。もちろんこうした8bitのMCUで本当に480Mbpsの実効性能が出るかといわれると微妙だが、とりあえずUSB 2.0対応であることは間違いない。

 であれば、PC/104の代わりにUSBで代替してしまえというアイディアはそう間違ったものではない。実際、帯域的にはISAがピークでも16MB/sec程度(実効10MB/sec未満)であり、USB 2.0がピークで60MB/sec、実効で10~30MB/secだから、ほぼマッチしていることになる。しかもUSB 2.0なら16bitクラスのMCUで十分賄えるから、システムコストもぐんと抑えられる。

 今回パネルにMicroChipが出ていたのはまさしくこうした理由で、実際彼らは自社ブースで、PIC24をベースにしたスタックの実装例を示していた(写真9~写真11)。これに関しては、VIA TechnologiesのSezen氏も「我々の顧客からも、I/Oインターフェイスを簡単に済ませたいという強い要望が寄せられている。さまざまな理由でISAから移行を考えていても、PCI/104やPCIe/104はハードルが高すぎるし、コストが高くつく。もっと安価で容易な選択肢が欲しいという声は多く、VIA Technologiesはそうしたニーズに向けたソリューションを展開してゆく」としていた。

【写真9】なんでStackable USBがGreenerかといえば、x86系よりも遥かに消費電力の少ないPICをベースにできるからというただそれだけの理由の模様 【写真10】一番下がPIC24のボードで、その上に2つのドーターカードを積み重ねている。何れも1/4サイズのもの 【写真11】写真10がアクリルケースに入っているのは、発熱が少ない事をしめすためのもの。だからといって「外気温より温度が低い」というのは何か間違っている気がする。突っ込みを入れたかったのだが、担当者がいなかった

【写真12】これもStackable USBのブースに展示されていたもの。Stackable USBは、PC/104のReplaceと、幅広いアーキテクチャへのAdaptionが目的と考えてよさそうだ

 このあたりの棲み分けがどうなっているのかを端的にしめしたのが写真12である。確かに単なるUSBだから、応用は広そうだ。実際、ソフトウェアから見れば、Stackable USBで繋がっているのか、通常のUSBで繋がっているのかは関係ない(全く同一)状況で扱える事になっている。もちろんすでに大量にあるPC/104ベースのすべてのデバイスを扱うには、現在のUSBのクラスドライバでは足りないケースもあるようだが、MICRO/SYSはいくつかの追加のクラスを提供するなど、一応対策はあるようだ。

 ではStackable USBの前途は明るいのかと言うと、まだまだ問題はあるようだ。技術的に見ると、ISAでは比較的簡単だった割り込みのハンドリングがUSBでは問題になるようだ。ISAの場合、理論上は最大15本(実際には4本位であるが)の割り込みラインを使って非同期にホストに対して割り込みを掛けられた。ところがUSBではポーリングのみとなるから、USB 1.1の場合で1ms、USB 2.0でも125μs未満の割り込みは不可能である。これだけのレイテンシを許容できるアプリケーションであれば問題ないが、それではレイテンシが多すぎる場合には、素直にStackable USBに移行するという訳にはいかないようだ(これに関してはホワイトペーパーでも示されている)。

 フォームファクタが厳密に決まっていないのも問題かもしれない。実際、仕様を見ると、コネクタに関してはそのピン配置や機械形状、信号などが細かく決まっているが、フォームファクタに関しては最寄りのブラケットホールとの相対位置が決まっている程度だし、そもそも仕様で1/2サイズとか1/4サイズが定義されていない。MICRO/SYSのKahn氏はハッキリ「Stackable USBはコネクタの規格であって、フォームファクタの規格ではない」とまで言い切っている。確かに自由度を確保するには良いアイディアであるが、今後問題にならないのか心配である。

 さらに不安なのは、他の規格策定団体と全くコミュニケーションをとっていない事だろう。「PC/104 Embedded Consortiumとコラボレーションをしているのか」と聞いたら「彼らの規格をベースにしているが、独自にやっている」という返事が返って来た。USB-IFにも特に何も連絡をしていないそうだ。標準規格をベースにしているのだからいいのかも知れないが、今後幅広い展開を考える際にはいろいろ揉め事が起きそうな気がしてならない。

 ちなみにパネルではUSB 3.0への対応に関して「そうした方向性を考えている(つまりUSB 3.0に対応したStackable USBを用意する)」という返事がWooley氏から出ており、またGivens氏は「コネクタは対応している」と述べていたが、後でもう少し細かく聞くと、現状のコネクタでPCI Express Gen2の信号は通るという意味だとか。

 ただし複数枚のスタックはまた別の話だとの事。ただそれ以前に、そもそも信号線の数が大幅に増えるから、コネクタの互換性どうするのかという大きな疑問が消えないのだが、どうもまだそのあたりまで考えてはいないようだ。いずれにせよ、USB 3.0は当面8/16bit MCUには入らない(というか、性能やダイコスト、消費電力などの観点から入れようがない)から考える必要もないことで、今はUSB 2.0にフォーカスしており、今後MCUでもUSB 3.0が普通に使える時期が来たらその時に考えるということなのかもしれない。

 とりあえずStackable USB.orgは、まず足元を固めるのが先だろう。現在公開されている仕様はRevision 0.77a(2008年6月4日付け)のもので、「いつ1.0になるのか」と聞いたところ「現在Advisoryの間で調整しており、なるべく早く公開する」といった、漠然とした返事しか返ってこなかった。あるいはStackable USBのロゴ(写真6が一番見やすいと思う)の利用条件とか、Stackable USB.orgへの加盟方法などが(ちゃんとある、とWooley氏は言ってはいたが)公開されていない(このページの最後のJoin Todayをクリックするとinfo@stackableusb.orgにメールを打つことになるだけというのはちょっとお粗末である)とか、やるべき事がまだ沢山ありそうだ。

●SFF-SIGのアップデート

 冒頭でもちょっと触れたSFF-SIGであるが、会場にブースなどは展示しなかったものの、初日夜にミーティングを開催し、

・ESC Bostonで概要を発表したMiniBlade 1.0のSpecificationを公開
・SUMITT I/F Specification revision 1.3を発表(ここには4 PCIe x1 LaneとUSB 20×4、それにDMA対応LPC Busが含まれる)
・新しくCOMITのSpecificationを発表

した「そうだ」。なんで伝聞形式かというと、このプレスリリースと、ミーティングへの招待状が届いたのが翌日の昼だったからで、そういうわけで興味ある方はSFF-SIGのサイトで詳細を確認されたい。

□ESC Silicon Valley 2009のホームページ(英文)
http://esc-sv09.techinsightsevents.com/
□関連記事
【2008年4月17日】【ESC】PC/104 Embedded Consortium、「PCI/104-Express」らを承認
http://pc.watch.impress.co.jp/docs/2008/0417/esc02.htm

(2009年4月6日)

[Reported by 大原雄介]

【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp
お問い合わせに対して、個別にご回答はいたしません。

Copyright (c)2009 Impress Watch Corporation, an Impress Group company. All rights reserved.