なぜ,組み込みシステムにハイパーバイザが必要か
tag: 組み込み
2011年2月18日
FA コントローラや医療機器など,今後クラウド連携が検討されている組み込み機器において,ハイパーバイザの利用が有望視されています.しかし,組み込み機器においては,リアルタイム性や信頼性が重要となり,PCサーバで普及しているベアメタル型のハイパーバイザではないいくつかの構成が提案されています.ここでは,ホストOS 型ハイパーバイザを例に組み込みシステムの仮想システムを解説します.
●組み込みシステムにけるマルチOS の利用
まずはFA コントローラを例に考えてみましょう.ユーザ・インタフェースのことを考えると,まずはWindowsという選択肢が浮上します.しかし制御のことを考えるとリアルタイムOS(以下 RTOS)も使いたくなりますね.そして実際,WindowsとVxWorksのような組み合せに特化したマルチOSシステムが製品化され,産業用ロボットなどで実際に使われてきました.汎用OS の豊富な機能とRTOS のリアルタイム性・高信頼性を利用するわけです.
●ハイパーバイザの必要性
開発したいシステムにおいて,汎用OS ではリアルタイム性に不安がある場合,汎用OS にリアルタイム拡張を施す方法が考えられます.しかし,システム規模と信頼性にはトレードオフが存在し,汎用OS のような大規模なソフトウェアを独自に拡張すると,信頼性の確保が難しくコストもかかります.
既存品・標準品のRTOS をそのまま使うのであれば,ボード・ベンダやOS ベンダから提供されるドライバやBSP(Board Support Package)をそのまま利用でき,アプリケーション開発に集中できます.そして開発後のメンテナンスでも有利になると言えるでしょう.
実現するシステムをマルチOS 構成で開発するとした場合,現実的に「安く」,「軽く」も重要となってきます.そこで,ターゲットCPU には組み込み向けのプロセッサ,OSにはLinuxやμ ITRON も視野に入ってきます.開発に対しては,最適な組み合わせを選びたいものです.
特性の異なるOS部品を自由に組み合わせるための技術,それがハイパーバイザです.近年の組み込み機器開発において,アプリケーションの大規模化・開発期間の短縮化・価格の低下が著しい現状から,ハイパーバイザの注目度が高まっているのは必然的と言えるでしょう.
●組み込みシステムでのハイパーバイザの考え方
前項では,「汎用OSにリアルタイム性を付加するのにハイパーバイザによるマルチOS構成が有利な場合がある」と言いましたが,一方で私たちは,組み込みシステムにおけるハイパーバイザを考える際に重要なのはリアルタイム性の付加よりも,むしろ「どの程度の信頼性を必要としているか」の方だと考えています.
組み込みシステムにおいても,ハードウェア性能の向上には目を見張るものがあり,動作するアプリケーションを適切に制限することで,組み込みシステムが必要とする機能要件を,例えばLinuxだけで実現できるケースも多いと思います.つまり,リアルタイム性の付加だけが課題であるなら,ハイパーバイザによるRTOS のビルトインは必ずしも必要ないケースも有ります.
しかし,もし組み込みシステムに対して一定の信頼性を確保しようと思ったら,とりわけLinuxのような巨大なシステムの信頼性に不安があるという場合は,Linuxから独立した信頼のおける機能モジュールが必要になります.それは(信頼性要件から必然的に)比較的小規模で,汎用OSがクラッシュしても稼働を継続でき,必要な通信手段も保持していて,ある程度の自律性を持つ必要があるでしょう.緊急時の動作が想定されますから,やはりRTOSにならざるを得ないでしょう.すなわち,必要とする信頼性を確保するために,ハイパーバイザによるRTOSのビルトインを考慮する,ということになります.
●組み込み向けホストOS 型ハイパーバイザ:EM-VRT
既に述べたとおり,私たちは開発規模が増大しつづける組み込みシステムにおいて高い信頼性を確保するためにはハイパーバイザによるRTOS のビルトインが必要になると考えていました.そして今後,組み込みシステムにおいて信頼性の確保は重要度を増していくとも考えていました.組み込みシステム開発に対するそのような認識から,私たちは組み込み向けハイパーバイザ:EM-VRTを開発しました.
EM-VRT は,サーバで使われているVMwareのような「ベアメタル型ハイパーバイザ」(図1)とは異なり,RTOSをホストOSとして仮想環境を備えた「ホストOS 型ハイパーバイザ」です.開発の当初はベアメタル型の構造も検討し,試作もしました.ハードウェア・リソースのスケジューリング・オーバーヘッドを少なくしたかったことと,シングルコア・プロセッサ上で効率良く動作することを考慮し,結論としてホストOS 型になりました.
対応するアーキテクチャはARM/SH4/ATOM/x86で,ホストOSとしてμ ITRON(eForce社のuC3)とVxWorks(米国WindRiver社)があります. またLinuxの上でAndroidを動作させることもできます(図2).
●組み込みシステムへの利用
EM-VRT のプロモーション活動を続けるうちに,組み込み向けハイパーバイザの適用先として有望だと私たちが考える分野がクラウド連携のデバイスと医療機器です.モバイル端末がクラウド上のサーバと連携して面白いサービスが提供されているのは,iPhoneやAndroid端末の普及により多くのユーザに知られていると思います.さらに今後は,個人情報の取り扱いをセキュアなモジュールに任せることで,ネット上から自由にダウンロードするアプリケーションに対する懸念を解消することができるでしょう.また,位置情報を汎用OSがクラッシュしてもきちんと送り続けられる機能は,現在地検索のようなサービスにおいて重要です.
医療機器については,信頼性の確保に対する要件が厳しい半面,リッチなグラフィックス機能やデータベース連携の利用による治療品質の向上に対するニーズも高いので,この分野もまた組み込み向けハイパーバイザが役立つ分野であると考えています.
●マルチコア/マルチOS の今後
今後,組み込み向けプロセッサにおいても,マルチコアが主流になってくると予想していますが,残念ながら,既存のRTOS すべてがマルチコアに対応しているとは言えない状況です.このままだとせっかくのマルチコア環境のメリットが十分に生かせないことになります.しかし,RTOS 側のマルチコアへの対応が不十分な状態でも,ハイパーバイザ側でメリットを引き出すことができるのです.ハイパーバイザで仮想的なシングルコア環境を複数用意して,既存RTOS を複数動作させてしまうのです.すなわち機能分散型のAMP(Asymmetric Multi-Processing)システムを構成し,既存資産を十分に利用し,かつ機能分散による性能保証も実現できます.
また, 既にマルチコアに対応したSMP(Symmetric Multi-Processing)型のOSを動作させることもできますから,AMP とSMPの混在が可能なのです.用途に応じてこのような構成をとることもできるわけです.
更に,現在はホストOS型ハイパーバイザの構成をとっているEM-VRT ですが,既にベアメタル型ハイパーバイザ構成に対応する作業を進めています.それほど遠くない時期に,出来上がってくるはずです.
EM-VRTはすぐにお試しになる事ができる評価キットが用意されています.もし本記事を読んで興味をお持ちになり,使ってみようと思ってくださったなら,弊社営業までお問い合わせください.
かとう・ひでかず
(株)ウェルインテクノロジー ソフトウェア開発部 ファームウェア・仮想ソフト開発課 マネージャー