会期:6月16~19日(現地時間) 前の記事で2日目午後の発表は「すごく変なもの」と書いたが、今年の場合はその筆頭がこのUbicomのIP3023。 Ubicomは、ローエンドのネットワークプロセッサにフォーカスしたメーカーで、実際同社の前製品であるIP2020シリーズプロセッサは、国内でもいくつか採用実績がある。そのUbicomの最新製品は、8-wayのSMT(Symmetric Multi-Thread)を搭載した、250MHz駆動の凄いやつということになっている。ということで、早速ご紹介したい。
●ダイコストを下げるということ
この結果、単にCPUコアが小さくても、これを用いて作成した特定用途向けプロセッサのダイ面積は、かなり大きくなる。加えて汎用のOSを使った場合、メモリサイズも大きくなるし、そうなるとキャッシュやMMUといったものも必要になってくるから、更にダイサイズを押し上げることに繋がる【写真1】。
ところが同社のSoftware I/Oを使えば、周辺回路の面積を大幅に削減できるから、ダイ面積が非常に小さくなる、というのが同社の主張だ【写真2】。
ところがUbicomの場合、USBの代わりに汎用の信号入出力(GPIO:General Purpose I/O)ラインを用意する。つまりこのGPIOラインをソフトから制御して、USBコントローラの代わりに(きちんとUSBの信号になるように)データを送り出させれば、それはUSBとして機能する、という発想だ。同社はこれでUSBやEthernetはおろか、PCIバスまで制御できると豪語している。 ただ、そうなるとプロセッサ自体は、ありきたりのARMとかMIPSでは追いつかないことになるし、何より効率が良くない。そこでIP3023では新しい命令セットを採用した【写真3】。これにより、Software I/O自体の効率も上がり、またコード密度やパケット処理の性能も大幅に上がったとしている【写真4】。
しかも、そのThreadのスケジュールが(Pentium4のHyperThreadingなどと異なり)Deterministic Multi-Threading(日本語にすると「決定論的マルチスレッド」とかになって意味が不明だが、要するに設計段階でどういった具合にスレッド制御するかを決めること)を採用する【写真6】など、色々尋常ではない。
メモリに関しても、また発想が凄い。VxWorksやLinuxだとメモリを過剰に利用するが、同社の提供するipOSを使うと、作業領域(Stack)込みで100KB以内に収まるから、外部メモリの必要がなく、従ってピン数も減らせるし、全部オンチップメモリだからキャッシュミスが発生しない(メモリがキャッシュみたいなものだ)、といった極端な話が続く【写真7】 では、ここまでケチケチに徹すると、ナニが得られるか? 例えばIEEE 802.11gのルータをIP3023で作った場合、ルーター部の部品原価が15.70ドルで済む(!)といった、恐ろしく安いソリューションである【写真8】
●実際のIP3023の構成 さてそのIP3023、250MHzで250MIPSの性能を持ち、オンチップで320KBのプログラム/データメモリを持つ。ただスピードはかなり自由に可変でき、スリープモードでは0.3MHzまでクロックが下がる【写真9】。内部構成は極めてシンプルで、必要なら外部にメモリも搭載できるが、Ubicomはこの構成を推奨しないようだ【写真10】。 ただ、見かけほど簡単でないのが、Serial I/OとParallel I/Oの2つのブロックである。まずSerial I/Oの方は、最大90のI/Oポートを持ち、このうち8つのI/Oポートは2つのSer/Des(シリアル←→パラレル変換)ポートとしても利用できる。また、オンボードで10Base-TのPHYを1つ搭載するが、このあたりはいまいち意図が不明だ。 一方Pallalelの方は、4ポートのMII、もしくは16ポートのGPIOとして構成できる。現時点で用意されているI/Oデバイスの種類はMII、UtopiaⅠ、IEEE 802.11x CardBus、I2C、SPI、GPSI、UART、Blue RF、PCM Highway、USB 1.1、IEEE 802.11a/b/g チップセット、PCMCIA、IDEとかなり多岐に渡る。もっともポートの数に上限があるし、Ser/Desが2組しかないため、同時に利用できるデバイスは多少制限はされる【写真11】。
また、あたりまえだがCPU性能も関係してくる。例えば【写真12】だが、MII1ポートあたり平均12MIPS、ADSLモデムをUtopia経由で接続すると22MIPS、IEEE 802.11a/gカードをCardBusなりMiniPCIなりで接続するのに12MIPS、各々CPUパワーを消費することになる。IP3023の場合、1MIPS=1MHzなので、例えばWAN側1ポート、LAN側1ポートの100Base-Tと、IEEE 802.11gの無線LANを装備すると、12×3=36MIPSをSoftware I/Oで消費することになる。 ちなみに、PCI(というかCard Bus)におけるSoftware I/Oの詳細を見てみると、平均で12MIPSとは言っても、ピーク時にはRTTの25%を消費するというから、決して負荷は小さくない【写真13】。 ちなみに【写真14】は、BCM4710(BROADCOMのMIPS32コアのネットワークプロセッサであるAirForceとダイ内部を比較したもの、【写真15】には更に必要とされるメモリまで含んで比較したものが示されている。CPUコア自体で言えば、IP3023はMIPS32コアよりもやや大きいようだ。ただ、Cache/TLBの類を持たず、また周辺回路部の面積は圧倒的に少ない。更にメモリまで入れると、その差はさらに広がることになる。
●はっきりしない部分も多い ただ、ここまであれこれと公開されつつも、「んじゃTDPは?」とか「ルーティング性能は?」といった、根本的なデータが何故か開示されていなかったりする。質問してみたものの、「それほど高くない」だの「802.11gで十分な性能」だのと、要を得ない答えが返ってくるあたり、やはり問題はあるのだろう。 例えばTDP。シングルとはいえ、スーパーパイプライン構成を取り、しかもマルチスレッドにより常時動作しているから、消費電力はそう少なくはないだろう。ルーティング性能も同じくで、とにかくRRTがかなりの頻度で発生するから、実際にルーティングに利用できるのは100MIPS前後と想像される。 IEEE 802.11gと言えば54Mbpsと言いつつ、実効では良くて30Mbps(実際は22~23Mbpsのことが多い)であり、ARM9やMIPS32コアでの実績を考えると、やはり30Mbpsあたりがルーティング性能の限界だろう。 例えばARM/MIPS32コアとかなら、パケットサイズを大きくするほどオーバーヘッドが減り、ルーティング性能が向上する傾向があるが、IP3032の場合パケットサイズを大きくすると、Software I/Oの負荷が増えることになり、オーバーヘッドが一切変わらない(か、下手をするとRRTの頻度が増えてしまい、かえって性能が落ちるかもしれない)あたりが根本的な問題だ。 120/160MHz駆動のシングルスレッドプロセッサである同社のIP2000シリーズよりは高い性能が得られるとは思うが、何しろIP2022を使った製品が大した性能を出せていない(http://bb.watch.impress.co.jp/column/review/2003/04/23/)あたり、IP3023でも例えばBRECIS COMMUNICATIONSのMSP2000シリーズ(http://www.brecis.com/prod_MSP2000.html)並みの性能が出せるかと言うと、かなり疑問が残る。 もっとも、このプロセッサの場合「性能を上げれば解決しちゃうかもしれない」というあたりが普通と違うところ。例えば10段で250MHz駆動のパイプラインを、12段300MHzとかにするだけで、いきなり30Mbpsオーバーのルーティング性能が手に入りそうなあたりが、このプロセッサの強みである。ただ、そうなるとTDPも更に増えそうで、せっかく部品点数を下げたのに、ヒートシンクだのアクティブファンだのが必要になったら意味がない。そのあたりのバランスをどう取ってゆくのか、が今後のこのプロセッサの見所と言える。
□Embedded Processor Forum 2003(英文)
(2003年6月24日) [Reported by 大原雄介]
【PC Watchホームページ】
|
|