みなさんこんにちは。名古屋開発センターの前原です。
私は車載用ECU (Electronic Control Unit) の開発を主に行っており、今はAUTOSAR Classic Platformに関する開発に携わっています。
今後に向け車載用ECUにおける仮想化について力を入れており、これまでに車載用ECUにおける仮想化に関する内容を以下のテーマで発信してきました。
掲載先:本ブログ「汎用コンピュータと組込みシステムにおける仮想化の違いとは?」
掲載先:Vimeo (動画)「車載マイコンの現在と今後」
最近、自動車業界ではECUの数を減らし単一のECUで複数の車載制御を動作させるECU統合の検討が進んでおり、ECU統合の方法の一つとして仮想化技術の利用が注目されています。仮想化技術によりECUの統合が進めば、車体内部のECUが削減されることから、自動車内の部品レイアウトの自由度が向上するとともに、車重軽量化や生産コスト削減が期待されます。
そこで、今回は仮想化技術の一つであるハイパーバイザーを活用した場合のECU統合について紹介します。
- ハイパーバイザーとは
- マイコンの仮想化支援機能
- ECU統合時の仮想化技術の活用例
- ECU統合時の要求・要件
- ECU統合時の検討内容
ハイパーバイザー (HV) とはハードウェアと同じように振る舞うソフトウェアであるバーチャルマシン (VM:Virtual Machine) を制御するためのソフトウェアです。VM上で様々な種類のOSを稼働させることができ、それらのOSを互いに干渉させずに並行して動作させることができます。
ECUにおいて仮想化をソフトウェアだけで実現する場合は、HVとVMのモード切り替えの処理、どこのVM向けの割り込みなのかを判断するための処理に時間がかかるため、リアルタイム性確保が難しいという課題がありました。そこで、ソフトウェアが担っていたそれらの処理を代行する機能を搭載するマイコンが登場してきました。
このような仮想化支援機能を搭載するマイコンが登場したことにより、リアルタイム性確保という制御プログラムの重要な課題が解決され、ECU統合においてマイコン仮想化を採用するためのハードルが下がってきています。
以降はECU統合に仮想化を用いた場合に予想される要求・要件や検討する内容を説明していきます。
ソフトウェア開発者の目線で仮想化支援機能を持つマイコンを使用した場合の要求・要件や検討内容について考察していきます
まずは、ECU統合前のECUの特徴とECU統合時に予想される要求・要件について説明してきます。
機能安全には自動車安全水準 (ASIL:Automotive Safety Integrity Level) があり、ASILは安全リスクが最も低いAから最も高いDまでの四段階で表されます。
ECU統合前のアプリケーションごとにASILが異なる場合、ASILを安全要求が高い方で揃えようとすると、本来は低いASILで済むアプリケーションであってもより高いASILの要求を満たすためのコストが発生するため、「ECU統合前後で同じASIL要求を満たすこと」という要件が導出されます。
ECU統合前のアプリケーションをできるだけそのまま使うことで工数削減、コスト削減につながるためECU統合時に「アプリケーションにあまり変更を加えず統合できること」という要件が導出されます。
検討すべき内容としては今まで別のハードウェア上で動作していたソフトウェアが1つのハードウェア上で動作することになるため要求・要件を満たすためのハードウェアリソースの決定が重要になります。
機能安全の観点では時間保護機能と密接に関係してくるCPU使用率やスケジューリングの検討が重要になってきます。
CPU使用率の検討では、HVの場合はCPUを複数のアプリケーションで共有するためVMとHV切り替えを考慮した上で時間的な要求・要件を満たせるかを検討します。
スケジューリングの検討では、VMとHVの切り替えに対応したスケジューリングを採用し各アプリケーションにどれだけの時間を割り当てるかを検討し要求・要件を満たせるかを検討します。時間によって分離する Time Division Multiple Access (TDMA) 方式を用いたスケジューリングの例は以下の図になります。
再利用の観点では、1つのアプリケーションで周辺デバイスを専有するか複数のアプリケーションで1つの周辺デバイスを共有するかによってソフトウェア (ドライバなど) の修正内容が変わるため、どちらを選択するのかが重要になってきます。
また、HV独自の検討項目としてVM間通信があります。VM間で通信を行う場合には、共有メモリまたはメッセージキューを用意する等どの方法で実現するかを検討します。共有メモリはVMごとに用意したりHVに用意したりといくつかのパターンがありますがHVに共有メモリを用意した場合の例は以下の図になります。
このようにソフトウェア開発者目線ではHV特有の検討事項があり、HVの特徴を理解し最適な設計をする必要があります。
マイコンの仮想化支援機構により、リアルタイム性確保という制御プログラムにおける重要な課題が解決され、ECU統合で仮想化技術を採用するためのハードルが下がり仮想化が普及するための土台が整いつつあります。ソフトウェア開発者としてはその流れに沿い円滑にECU統合をできるようHVの特徴を理解しておくことが大切だと考えます。
引き続き車載用ECUにおける仮想化の技術を向上させ仮想化技術の普及に貢献できるよう努めます。最後まで読んでいただきありがとうございました。