組み込み機器向けプラットフォーム/ソフトウエアの開発エコシステムは、ますます複雑化していく組み込み機器をうまく設計するための重要な要素となってきた。本稿では、米Texas Instruments社のDaVinciプラットフォームを利用した開発プロジェクトから学んだ、設計における課題を示す。
筆者は2003年初頭、米EDN誌に、Texas Instruments(TI)社のOMAP(open multimedia applications platform)プラットフォームと開発キット「Innovator」を実際に用いた記事を執筆した*1)。実践に基づいたその記事では、チップとソフトウエアに関する諸問題に言及しており、同プラットフォームを使うユーザーの立場で書かれた初めての記事となった。2005年10月になって、TI社はDaVinciテクノロジ製品を発表し、その数カ月後にそれらの製品群を用いたデモを公開した。ARMコアとTI社のDSPコアを1チップに集積するという点でいえば、DaVinciはOMAPと類似したアーキテクチャである。
複雑な組み込み機器向けプラットフォームはTI社に特有なものではないが、今回は、DaVinciプラットフォームを実際に使用して、それをサポートする開発エコシステム(本稿では、サードパーティ製の開発ツールなどと相互運用を可能とする仕組みのことを指す)がこの数年でどのように発展したかを知る機会を得た。今回の実践プロジェクトでは、複雑な組み込み機器向けプラットフォームにおける最近の動向を探るため、ほかの半導体メーカーが提供するプラットフォーム製品についても調査を行った。
今回のプロジェクトで学んだことの1つは、市場が求める設計を行うには、チップ自体よりもプラットフォームプロバイダが提供するソフトウエアやツールがますます重要な要素となるということである。集積度が高く複雑なチップの価値を否定するつもりはまったくないが、ソフトウエアと開発ツールの重要性が高まっていることは紛れもない事実である。チップはどれも同じような集積度と機能を持つようになってきた。それに対し、ますます複雑になるソフトウエア開発にかかわる労力を軽減するためのツールは、他社と差異化を図るための主要な要素となる。
米iSuppli社によると、メモリー、アナログ、ディスプレイドライバを除く半導体市場の規模は、現在の1080億米ドル強から、2010年までには1630億米ドルに拡大する。このうちプロセッサベースの半導体が88%を占めることになるという*2)。これらの製品すべてにソフトウエアが必要となる。TI社のDSP担当主席フェロー兼ビジネス開発マネジャであるGene Frantz氏は、最近のブログに「これからはSoC(system on chip)のSを『システム』ではなく『ソフトウエア』としたほうが適切になるかもしれない」と記述している。
米Xilinx社で組み込みプロセッシング担当製品マーケティングマネジャを務めるJay Gould氏によると、「プロジェクトにかかわるソフトウエアエンジニアの数は、ハードウエアエンジニアの2〜5倍以上必要になるかもしれない」という。オランダNXP Semiconductors社で標準ICビジネスライン担当プロダクトイノベーションディレクタを務めるAta Khan氏と、米Atmel社のBiCMOS製品ディレクタであるD Chris Baumann氏は、「複雑な処理を行うアプリケーションでは、顧客におけるソフトウエア開発の期間と予算がプロジェクト全体の70〜80%を占める」と口をそろえる。この見解が正しいとすれば、複雑な組み込みシステムに必要なソフトウエア開発リソースは、ハードウエア開発リソースの2.5〜4倍だということになる。
ソフトウエアがますます重要視される理由の1つは、プロセッサ技術が進歩したことである。これによって、各種のソフトウエア命令サイクルは、既存のアプリケーション上で、新しい機能を実行できる。例えば、Frantz氏によると、1982年の通信システムでは演算性能が5MIPSのプロセッサで、単位時間当たり625命令サイクルを実行していた。それに対し、最新のDSPでは、単位時間当たり何十万という命令サイクルの実行が可能となった。同氏はまた、オーディオやビデオの信号処理についても、単位時間当たりの命令サイクルは通信システムほど多くはないが、同様の技術的進歩が見られることを指摘している。組み込み機器向けプラットフォームは、開発者が他社製品との差異化を図るための機能や性能を、ソフトウエアの変更によってシステムに追加する方法を提供する。それによって柔軟性を生かした設計が行える。
組み込みシステムにおいてソフトウエア開発リソースの比率を増加させているもう1つの要因は、ある1つの原理に基づいている。その原理とは、筆者が組み込みソフトウエア/システムの設計者として学び、身につけたものでもある。それは、原因のいかんにかかわらず、どのような問題に対しても、その原因を突き止め、問題点を調整し、ソフトウエアでその影響を抑えたり、修正したりすることができるのであれば、それはソフトウエアの問題であるといえる。複雑な連続処理の実行が必要な場合、純粋にハードウエアで実装するよりもソフトウエアで実装したほうが効率的である。チップがすでに存在するなら、そのチップの設計を変更するよりもソフトウエアで変更したほうが必ずといってよいほど簡単で、迅速かつ低コストである。この事実が、上述した原理が正しいことを証明しているといえよう。
この原理に基づけば、環境や製造過程の要因により生じた予期せぬ問題にもソフトウエアで対処しなければならず、設計プロジェクトの最終段階で発生する問題のほとんどは、ソフトウエア開発者への負荷となる。このため、当初の製品仕様の範囲を超えてソフトウエアはさらに複雑となる。設計が成功するか失敗するかは、ソフトウエア開発チームがこの原理に基づく問題にうまく対処できるかどうかにかかっているのである。
※1…Cravotta, Robert, "Forge Ahead?" EDN, March 6, 2003, p.50.
※2…"Market Forecast Database," iSuppli, June 2006, www.isuppli.com.
Copyright © ITmedia, Inc. All Rights Reserved.