マルチコアの面倒はOSが見る:東京大学大学院情報学環教授・工学博士 坂村健氏
組み込み機器の開発プラットフォームである「T-Engine」と、それに向けたリアルタイムOSである「T-Kernel」。組み込み機器向けのプロセッサもマルチコア化が進み、T-Kernelも対応した。それが「MP T-Kernel」である。T-EngineやT-Kernelの標準化を行うT-Engineフォーラムの発起人であり代表を務める坂村健氏に、マルチコア化に向けた組み込みシステムの動向について聞いた。
EE Times Japan(EETJ) 組み込み機器にマルチコアプロセッサを採用する利点は何か。
坂村氏 今までのマイクロプロセッサは、半導体の微細化技術で、消費電力の上昇を現実的なところに抑えながら性能を高めてきた。その技術が、壁に当たってしまった。今以上の性能向上にはマイクロプロセッサの動作周波数を上げるしかないが、そうすると単純に言えば、周波数向上に対して3乗の割合で消費電力が爆発的に高まる。
発熱の問題は、組み込み機器では特に深刻だ。携帯機器には大げさな排熱装置を付けられない。車載情報機器では動作環境の温度が高く、自己発熱量が高ければ熱で機器が動作不良を起こしてしまう。しかし、カーナビゲーション機器もデジタルカメラもますます高機能化しており、マイクロプロセッサの性能向上が強く求められている。
そこで注目されているのが、マルチコアプロセッサだ。微細化技術によって増えたトランジスタ数で高機能化するのではなく、複数のプロセッサを1つのチップの中に作る。周波数を80%に低くすれば消費電力は半分になる。プロセッサをデュアルコア化すれば、プロセッサ1つのときと同じ消費電力で、処理性能を1.6倍に高められる。
EETJ マルチコアプロセッサを採用する際の課題は何か。
坂村氏 リソースをコア間でどのように共有するかなど、ソフトウエアを大きく書き変えないといけなくなる。組み込みソフトウエアの規模は非常に大きくなっている。既存のソフトウエア資産やミドルウエアなどがすべて書き直しになるのは問題だ。
このような問題をできる限り解決した、シングルコアプロセッサ用と互換性の高い組み込みOSが求められている。
EETJ マルチコアプロセッサの性能を生かすには、アプリケーションソフトウエアをどのように作り込んでいく必要があるか。
坂村氏 マルチコアプロセッサは、ソフトウエア面から見ると、マルチプロセッサと同じである。マルチプロセッサは、30年以上前の大型機のときからあるアーキテクチャだ。アーキテクチャ上は、大型機に採用されてきたことを組み込み機器などの小型機に反映しているだけである。そのため大型機に由来する情報処理系のOSでは、マルチプロセッサであることを意識せずにソフトウエアを開発できる。しかし、それらの情報処理系OSのスケジューリングは一般にラウンドロビン方式で、リアルタイムOSに必要なプライオリティ方式ではない。組み込み機器に高性能なプロセッサを採用すれば、情報処理系OSでも疑似的にリアルタイム性を出すことはできる。しかし、そのためにオーバーヘッドが出るなら、マルチコアプロセッサで消費電力を抑える理由が分からなくなる。組み込み機器でマルチコアプロセッサの性能を生かすには、マルチコアに対応したリアルタイムOSが必要となる。
さらに、マルチコアプロセッサを使った組み込み機器では、大きく分けて次の2つの構成が考えられる。各コアを個別のOSが管理するAMP(Asymmetric Multiple Processor)構成と、複数のコアをまとめて1つのOSが管理するSMP(Symmetric Multiple Processor)構成だ。情報処理系OSで扱うマルチプロセッサはSMPのみだが、「MP T-Kernel」はどちらの構成にも対応する。AMP構成は各コアの役割分担が固定的なときに有効で、汎用性を前提とする情報処理系OSでは一般に対応していない。SMP構成は情報処理系OSも対応しているが、プライオリティスケジューリングしながらプロセス実行を動的に複数のプロセッサコアに振り分ける機構は持っていない。MP T-Kernelを使えば、アプリケーションソフトウエアが実行時のコア数に合わせて最大限のパフォーマンスを引き出すように、タスクを分配する。
T-Kernel上で動作するソフトウエアは、タスクに分割されている。もともとタスクに分割されているのだから、それをSMP構成で稼働させれば、各タスクが異なるプロセッサコア上で同時に実行できるようになる。シングルプロセッサでは、複数のタスクを疑似的に同時に動かしていたものを、本当に同時に動かせるようになるわけだ。
EETJ ソフトウエア開発者は、機器のプロセッサ構成がシングルプロセッサなのかマルチプロセッサなのかを意識して区別せずにソフトウエアを開発していけるということか。
坂村氏 それが理想だ。「T-Kernel Standard Extension」を使ってソフトウエアを開発していれば、特別なコードを記述することなく、マルチコアプロセッサの性能を生かせるようにしたい。組み込みソフトウエア開発者に、チップが備えるコアの数を意識してソフトウエアを開発させるようなことはしたくない。
なお、T-Kernel Standard ExtensionはT-EngineフォーラムがT-Kernel向けに用意している大規模で高度な組み込みソフトウエア向けの拡張OS機能群だ。メモリ管理やプロセス管理、ファイル管理やイベント管理、デバイス管理などの機能を含んでいる。
EETJ これからの組み込みソフトウエア開発はどのような方向へ進むと考えているか。
坂村氏 複数の異なるOSの連携が重要になるだろう。例えば携帯電話機には、マルチコアではないが、すでに複数のプロセッサが使われている。無線通信を司るベースバンドプロセッサや、グラフィックスプロセッサ、アプリケーションプロセッサなどだ。AMP構成の極端なケースといってもいい。ここまで非対称だと、それらすべてに同じOSを載せることはしない。例えば電子メールやWebブラウザなどを動かすアプリケーションプロセッサの部分はPC化してきているので、WindowsやLinuxなどの情報処理系OSの採用が進んでいる。しかしだからといって、特にリアルタイム性が求められるベースバンドプロセッサのOSにLinuxを使おうと考える人はいないだろう。実際にITRONが多く使われている。
このように高度な組み込み機器では、1つの機器の中で、モジュールごとに複数の異種OSが稼働するのが普通になるだろう。OSによって向いている処理と向かない処理があるからだ。そのため、異種OSの接続性が大切になる。T-Engineフォーラムでは、さまざまなOSとT-Kernelとの接続性を高める取り組みを進めている。
坂村 健(さかむら けん)氏
1951年東京生まれ。専攻はコンピュータアーキテクチャ(電脳建築学)。1984年からオープンなコンピュータアーキテクチャ「TRON」を構築。ユビキタス環境のための組み込みOSとして、世界中で多数使われている。さらに、コンピュータを使った電気製品、家具、住宅、ビル、都市、ミュージアムなど広範なデザイン展開を行っている。2002年1月よりYRPユビキタス・ネットワーキング研究所長を兼任。IEEE(米国電気電子学会)フェロー。
Copyright © ITmedia, Inc. All Rights Reserved.