Mr.M.P.Iのプロセッサ・レビュー ――ミドルウェアがプロセッサ・メーカの浮沈を決める
かつて,組み込み向けプロセッサ・メーカが提供するソフトウェア環境と言えば,主にICE(in-circuit emulator)やデバッガ,アセンブラ,Cコンパイラなどだった.ところが,昨今は,いわゆるツール・チェーン(開発ツール群)に加えて,OSやミドルウェアを相当踏み込んで整備していないと製品を購入してもらえない.顧客は短い期間と少ない工数で複雑なシステムを開発しなければならないので,できあいのソフトウェア製品をうまく利用しなければ,やっていられない状況なのだろう.場合によっては,「このミドルウェアを使いたいからこのマイコンを...」という選択もありえる.今やミドルウェアの整備状況によって,プロセッサ・メーカの浮沈が決まると言っても過言でない.
●多彩なミドルウェアが流通
組み込み業界のミドルウェアで,まず思い浮かぶのは音に関するもの(音声CODEC,MP3,MIDI,音声認識,音声合成など),絵に関するもの(JPEG,MPEG,NANCY,3次元グラフィックス,アニメーション),ヒューマン・インターフェースに関するものがある.いずれも計算量の多い信号処理である.そのため,これらの応用では,実現方式を検討する際に,ハードウェアとソフトウェアのトレードオフ評価が必要になる.ひと口にミドルウェアといっても,汎用マイクロプロセッサ向けの完全なソフトウェア製品もあれば,専用ハードウェアの利用を前提としたアクセラレータ・ドライバ型のものもある.当然,性能や機能,価格は製品によってバラツキがある.
次に多いのが,各種の通信を制御するプロトコル・スタック系のミドルウェアである.この分野では,物理層に近い部分はハードウェアに対する依存度が高く,半導体メーカが「ドライバ・ソフトウェア」としてサポートすることが多い.「ミドルウェア」として売買の対象になるのは,中間より上の階層に限られるようだ.こうした通信系のミドルウェアは「制御」主体ということもあり,汎用マイクロプロセッサがよく利用されている.前述の場合と異なり,ハードウェアとソフトウェアのトレードオフ評価を行うケースは,それほど多くない.ただし,これらの制御ソフトウェアはOSがサポートしたり,しなかったりということがあるため,ミドルウェアと言いながらも,実はOSの選択に依存することが多い.このほか,JavaVMや暗号処理,ファイル・システムなどのミドルウェアも製品化されている.
●IPコアやミドルウェアの相性の検証に対処する方法
こうして見ると,CPUコアを内蔵するシステムLSIの開発では,「まずハードウェアありき」とはいかないことがわかる.必要な機能・性能を実現できるミドルウェアの調達を前提に,そのミドルウェアがサポートしているハードウェアをリストアップしてから組み立てるというのも一つの方法である.ただし,ミドルウェアならなんでも組み合わせられるというわけではない.一般に,OSやミドルウェアは,それをコンパイルするツール・チェーンなどに依存する場合が多い.CPUコアとデバッガの間,デバッガとツール・チェーンの間にも相性がある.ただ,製品カタログ片手に,「(所望のソフトウェアが)あったあった」と喜んでばかりもいられない.
膨大な組み合わせが考えられるため,システムを開発する側でそれらの相性を一つ一つ調べることは容易ではない.そのような問題に対処する方法としては,二つの流れがありそうだ.
一つ目の流れは,またしても「ARMプロセッサ」である.ARMの場合,CPUやその周辺回路のIPコア,ミドルウェアなどのラインナップが充実している.そのうえ,ARMは,周辺接続でもインターフェース仕様(AMBA)をうまくコントロールしているため,サード・パーティ製品との整合性が高い.ただし,この場合の難点は,ライセンス料が高いことと,だれでも同じものをそろえられるということだ.何かしらのものを自前で開発しないかぎり,コストでも仕様でも他社と差がつかない.
二つ目の流れは,できあいの「モジュール製品」を使う方法である.Ethernetを使ったTCP/IP接続などが代表例だが,プロトコル・スタックまで含めて一つにまとめられたモジュールがぼつぼつ製品化されてきている.それらの内部には,当然,リアルタイムOS相当の制御プログラムやドライバが入っている.すぐにアプリケーションと通信できるところまで,メーカ側でそろえてくれているわけだ.この場合,ミドルウェアといってもロイヤリティを取られることはまずないし,IPコアやミドルウェアの組み合わせに頭を悩ませる心配もない.初期投資が不要な分,少量生産には向いている.
ただし,まだ,多くの種類が出ているわけではないので,自社の要求に適合するものが見つかるかどうかといったところが最大の問題かもしれない.自社の要求が「あまり汎用的なものではない」と思ったら,ミドルウェアが組み込まれたモジュール製品を手がけているメーカに相談してみるのも一案である.
(本コラムはDESIGN WAVE MAGAZINE 2003年6月号に掲載されました)
◆筆者プロフィール◆
M.P.I(ペンネーム).若いころ,米国系の半導体会社で8ビット,16ビットのプロセッサ設計に従事.ベンチャ企業に移って,コードはコンパチ,ハードは独自の32ビット互換プロセッサのアーキテクトに.米国,台湾の手先にもなったが,このごろは日本の半導体会社でRISCプロセッサ担当の中間管理職のオヤジ.