ニューストピックス

2021年08月27日
株式会社ユビキタスAIコーポレーション

【コラム】早期の車載ECUタイミング検証の実現

車載 ECU の制御では、特定の時間内に処理を終えないといけないといったタイミングの要求があります。
例えば、自動ブレーキシステムでは、安全性を確保するために「レーダーが障害物を検出してから 300ms 以内に必ずブレーキを作動させる」といったタイミングの要求があります。

ecutiming_1.png

このようなタイミング要求は、車載制御 ECU、特に自動運転制御などでは数百の要求項目があります。開発の最終段階でこの要求を満足していないことが判明した場合、修正は容易ではありません。

修正するには、その原因を知る必要があります。ハードウェアの変更は困難なため、一般的にはソフトウェアによる対策を行います。ここでは、時間がかかっている関数のリストアップや、タスクの最適化についての検討が必要となります。

実行時間短縮の目途が付けば、関数・タスクを再設計し、再実装・再テストを行うこととなりますが、開発終了までの時間の無い中でこのような作業を行うのは非常に困難です。

そこで、より早い段階でのタイミング検証が求められます。
chronSUITE は、早期検証を実現するシミュレーションツール、最悪実行時間算出ツールなどで構成される、ドイツINCHRON 社のタイミング検証支援ツールです。

chronSUITE の chronSIM を使えば、設計時にタスク設計を最適化することが可能です。タスク設計情報、タイミング要求を chronSIM に入力すれば、シミュレーションにより、タイミング要求を満たしているか、何がオーバーヘッドとなっているかの解析、タイミング不具合の解析を行うことができ、タイミング設計変更⇒シミュレーションを繰り返すことで素早いフィードバックによる早期の適切なタスク設計が可能となります。

自動運転などではマルチコア、VM が使用されますが、それらも考慮した解析や、複数ECU間の通信を含めたシミュレーションも可能です。

ecutiming_2.png

chronSIM によるタスクシミュレーション

実装やハードウェアの完成後には、chronSUITE の chronVIEW を使うことで、ソフト実装、ハードウェアを含めたタイミング検証を行うことができます。タスクの起動、休止、終了などの状態を、トレースするツールからのトレースデータを使用してタイミング解析を行います。

ecutiming_3.jpg ecutiming_4.png

chronVIEW による実機のタイミング検証

このように、 chronSIM を使えば早期のタイミング検証はタスク設計情報のみであれば可能ですが、実装を含むとなるとハードウェアの完成を待つ必要がありました。ECU アプリケーションのロジックの確認であれば、MILS、SILS で可能ですが、タイミングとなると、CPU の処理速度、タスクの実行動作がリアルの ECU と異なるため、従来の MILS、SILS での早期の検証は難しいものでした。

ユビキタスAI と株式会社 エー・アンド・デイで共同開発、販売している「GSIL」は、ハードウェアの完成前に PC 上で車載制御 ECU のロジックの確認、デバッグが容易に可能となるツールです。この GSIL には、MILS や従来の SILS では困難な、早期の段階で実装を含めたタイミング要求を検証できる機能があります。

まず、CPU の処理速度の違いによる実機との実行速度の違いですが、インストラクションセット、メモリアクセスなどの違いがあるため実機と完全に同じ条件とはならないものの、実機と PC でベンチマークを取り、おおよその倍率を算出して実行速度を把握することができます。タイミングの保証まではできませんが、開発早期での時間のボトルネックの把握が可能となります。「GSIL」では、トレースデータを設定した倍率を考慮してエクスポートする機能があり、これらを簡単に実現可能です。

次にタスクの実行動作ですが、一般的に SILS ではその実行時に並列処理を行うことはできません。従って、上記の手法を使っても処理時間は実 ECU とは大きく異なってしまいます。これは GSIL でも同様です。

ecutiming_5.png

GSIL の実際のタスク実行動作

しかし、GSIL では、タスクの処理のトレースに工夫することで、あたかも並列処理をしたかのような動作をシミュレーションできます。

ecutiming_6.png

並列処理を考慮したトレースデータのインポート

これにより、より正確なタイミング要求時間の解析が可能になりました。また、ユビキタスAI が取り扱っているドイツ Verifysoft 社のカバレッジ測定ツール Testwell CTC++ を使用することで、関数毎に関数の開始から終了までの処理速度の計測が可能です。各タスクから呼ばれる関数のどの関数でどれだけの時間がかかっているかを把握し、その関数の C コードを変更することで、効率的にトータルの実行速度の短縮が可能となります。

これらのツールを利用することで、開発のそれぞれの段階においてタイミング検証を実施することが可能になります。

ecutiming_7.png

V字開発プロセスでのタイミング検証

関連製品