図1  組み込みOSのタイプ<BR>拡張性とリアルタイム処理性能の必要性に応じて,(1)機能が豊富な汎用OSをカスタマイズしたリアルタイム処理対応の汎用OS,(2)タスクの実行開始時間が予測可能なリアルタイム処理を実現するリアルタイムOS(RTOS),(3)両者を組み合わせたハイブリッドOSの大きく3タイプある。多様なアプリケーションを搭載する情報家電や情報化の進む自動車などの大規模組み込みシステムでは,マルチコアCPUの効率的な利用や組み込みシステムの大規模化に伴う開発負担を軽減できるOSとして(3)の形態が今後の主流となる。
図1 組み込みOSのタイプ<BR>拡張性とリアルタイム処理性能の必要性に応じて,(1)機能が豊富な汎用OSをカスタマイズしたリアルタイム処理対応の汎用OS,(2)タスクの実行開始時間が予測可能なリアルタイム処理を実現するリアルタイムOS(RTOS),(3)両者を組み合わせたハイブリッドOSの大きく3タイプある。多様なアプリケーションを搭載する情報家電や情報化の進む自動車などの大規模組み込みシステムでは,マルチコアCPUの効率的な利用や組み込みシステムの大規模化に伴う開発負担を軽減できるOSとして(3)の形態が今後の主流となる。
[画像のクリックで拡大表示]

 シンプルなOSの代名詞である組み込みシステム向けのOS(以下組み込みOS)が今,二つの意味で,転機を迎えている(図1[拡大表示])。一つは,ボタンを押したら即座に反応が返るといったリアルタイム処理に長けたリアルタイムOSと,WindowsやLinuxといった機能が豊富な汎用OSの特徴を兼ね備えた「ハイブリッドOS」が主役のいすに座ろうとしていること。もう一つが,組み込みシステムの機器に押し寄せてきたマルチコアCPUへの対応だ。マルチコアCPUは,複数のCPUコアを一つのチップに集積したマイクロプロセッサのこと。消費電力をそれほど上げずに性能を向上させる手堅い手法として,大規模サーバーから組み込みシステムまで幅広い分野で適用が進んでいる(別掲記事「組み込みでも押し寄せるマルチコア化の波」)。

 ハイブリッドOSが登場する背景の一つには,組み込みソフトウェア開発の現場が直面する問題がある。組み込みソフトウェア開発の問題としては,短納期が挙げられる。組み込み機器の製品サイクルは短い。納期までの時間が3カ月程度しかないプロジェクトは珍しくない。

 開発期間を短縮する手っ取り早い方法は,既存のプログラム資産を生かすこと。2005年6月にIPA(情報処理推進機構)のソフトウェア・エンジニアリング・センターが公開した「2005年版組込みソフトウェア産業実態調査報告書」によると,組み込みシステムの平均的なソースコードの行数は100万行。このうち70万行が過去の資産の流用だ。

 この点,リアルタイムOSには一日の長がある。長らくμITRONや米Wind River Systems社の「VxWorks」などが組み込みシステムを支えてきたため,これらのOSに熟知した開発者とそのノウハウ,プログラム資産がメーカー内に存在する。一方で汎用OSは,豊富な機能を備えている。所望の機能をOSが標準装備していれば,独自に開発する必要はない。開発効率の向上につながる。ハイブリッドOSは,2種類のOSの“良いとこ取り”をするわけだ*1

 ただしハイブリッドOSにも問題はある。必要とするCPU性能が高くメモリーなどのリソースが増えることである。いずれもコスト増を招く懸念がある。この点については,複数のCPUコアを一つのチップに集積した「マルチコアCPU」が追い風になる。マルチコアCPUによって性能は高まるし,複数使っていたCPUを1チップにすることによる部品点数の削減とそれに伴う検証コストの低減によって,メモリーなどのリソース増加によるコストアップを相殺できる。


組み込みでも押し寄せるマルチコア化の波

写真●NECエレクトロニクスの携帯電話機向けマルチコアCPU「MP211」
並列実行に向くマルチメディア処理を想定したマイクロプロセッサ。 CPUコア三つとDSPコア一つを集積した。
図●複数機能の同時処理が求められる組み込みOS
限られた時間内にタスクを処理し終える必要がある場合,機能ごとにCPUやメモリーを分けて分散・協調させるのが一般的。ただCPUの高性能化に伴い,プログラミングやタスクのスケジューリングの工夫で一つのCPUによってまかなうことでコストの削減が可能な場面も増えてきた。このとき,一つのCPUで複数の機能を効率よく並列処理できるOSが必要になる。

 多様なアプリケーションを搭載する情報家電や携帯電話といった大規模組み込みシステムで,処理速度の向上策としてマルチコアCPUの投入が始まっている。

 製品としては,携帯電話機でのマルチメディア処理を想定したマイクロプロセッサ「MP 211」をNECエレクトロニクスが既に出荷(写真[拡大表示]) 。三つのCPUコアと一つのDSP(Digital Signal Processor)コアを集積する。英ARM社もNECエレクトロニクスと共同でCPUコアを四つ集積した「ARM11 MPcore」を開発した。

 組み込みシステムにおけるマルチコアCPU導入の目的は,(1)複数の機能を分散処理することによるリアルタイム処理性能の向上と,(2)部品点数の削減によるコスト低減,(3)省電力と性能向上の両立である。

 このうち(2)は,機能ごとにCPUを用意してタスクを実行させていたシステムを,一つのCPUに集約することで実現する。組み込みシステムでは,限られた時間内にタスクを処理し終える必要がある場合,機能ごとにCPUやメモリーを分けて分散・協調させるのが一般的([拡大表示])。当然,機能の数だけ部品点数が多くなり,検証の手間が増える。

 これがマルチコアCPUなら,プログラミングやタスクのスケジューリングの工夫で一つのCPUでまかなえるようになる。部品点数を減らせるので,コスト低減につなげることが可能だ。

 (3)は,CPUコアの数を増やして性能を高めるアプローチが,消費電力当たりの性能を高めるのに向いているからだ。

 CPU性能を高める手っ取り早い方法は動作周波数を高めること。しかし動作周波数を高めると,消費電力の上昇を招く。組み込み機器では使いづらい。CPUコアを複数設ける手法なら,動作周波数を上げなくても,CPUコアの数に応じた性能を確保できる。所望の性能を得ながら,消費電力の増大を抑えられる。