E/Eアーキテクチャの進化
CASEの進化に伴い、E/Eアーキテクチャも従来の分散型のネットワーク構成からセントラル(中央集権)型、ゾーン型へと進化、個々のECUへの機能統合や、CASE実現のための機能の高度化が進んでいます。この結果、ひとつひとつのECUにはMCUやSoCが複数搭載され、またそれらのデバイス上で実行されるソフトウェアも大規模化、複雑さも増しています。このようにECU用のソフトウェアは大規模化している一方、その開発期間は、xEV市場の急激な立ち上がりに示されているように、従来よりも短縮することが求められています。ルネサスは、マルチコア対応に続いて、マルチデバイスに対応する開発環境を提供することにより、お客様のECU開発期間を短縮し、設計後の手戻り工数の削減を強力にサポートします。
図1. E/E Architecture Transformation
マルチデバイスシステムのデバッグ
1つのECUに複数の機能が搭載され、複数のデバイスで構成されるようになってきています。 Gateway ECUの構成例を示します。 (図2)
図 2. Gateway ECU
Gateway ECUのような複数のデバイス間でデータを共有するようなソフトウェアでは、複数ソフトウェアで生成したデータを他のデバイスの共有メモリに格納するシステム構成があります。
このような複数のデバイス上で連携して動作するソフトウェアを開発することを考えてみましょう。複数のデバイスを組み合わせたテスト時に、共有メモリに不正なデータが書き込まれるバグが発生したと仮定します。このバグを解決するには、問題のソフトウェアを特定する必要があります。
Device Bの共有メモリに不正なデータが格納されたいた場合に、デバッグしようとした時、従来であればDevice Bの動作を止めて、レジスタやメモリ、変数値をデバッガを使用して調べる、というのはよく行われる方法です。ところが、Device Bの動作を止めても、Device-Aはそのまま動き続けるので、Device-A 側で動作するSoftware A、B、Cで何が起きていたのかを見ようとしても、Device-A上のSoftwareは動作を続いているため、 問題が発生したときの変数値を参照できず、根本原因に辿りつけないということが起こりえます。(図3)
図 3. Debug Environment
今回リリースしたマルチデバイスデバッグ&トレースツールを利用し、同期ブレークとトレースのデータアクセス履歴を組みあわせて使用することでDevice-AのどのSoftwareが不正なデータを書き込んでいるかを容易に特定することでできます。(図4)
図 4. Multi-Device Debug and Trace
複数デバイスを同時にデバッグすることで、メモリやネットワーク等のリソースを共有しながら各デバイスが協調動作するシステム全体のソフトウェア動作を確認することが可能となり、原因特定や問題解析を短期間で行うことができます。
今回ご紹介した同期デバッグ機能については、ビデオにてデモンストレーション、解説していますので、こちらも合わせてご覧ください。
今後の展開
我々は最終的には車全体のデバッグ環境を目標にしています。 今回のマルチデバイスデバッグ&トレースツールは複雑に絡みあう E/Eアーキテクチャで実行されるソフトウェアの動作解析を行う点ではまだ始まったばかりと考えています。
図 5. Renesas final goal is to provide debugging tool sets for the entire vehicle
ルネサスはマルチデバイスデバッグ&トレースツールを最終目標に近づけるため、2つのアプローチを考えています。1つ目のアプローチは、すでに実現しているR-Car S4内のRH850コアとArmコアの同一時間軸のトレースを応用し、異コア・複数デバイスで同一時間軸のトレースを検討中です。今回紹介したマルチデバイス同期デバッグをさらに強化するものになります。
もう1つのアプローチはICEを使ったデバッグだけでなく、様々なツールのトレース情報・ログ情報を対象にしたいと考えています。概念は(図6)に示すような形で、ターゲットボードから得られる各ツールから出力されるタイムスタンプ付きのCPUトレース情報、Log情報、性能解析情報等を解析し、それを表示ツールにて同一時間軸でトレース情報を表示し、不具合事象の解析に役立てようと開発をしています。接続できるツールはできるだけエコシステムを活用できるようにしてお客様の投資コストを抑えるようにしたいと考えております。
図 6. Debugging Concept
さらに、さまざまなECUのデバッグ手法を考慮して、早期にソフトウェア開発を実施できるVirtual Turnkeyと実機デバッグが同じIDEで利用できるようにするなど、ルネサスは今後も新しいシステム対応を進めていきます。