ソフトウェアアプリケーションの実行速度高速化技術
近年、ソフトウェアの実行速度に対する高速化の要求がはますます高まっています。例えば、SDV(Software defined vehicle)の時代を迎え、ソフトウェアの比率が高まる車載ECUでは、大量生産によるコスト削減のためにできるだけ低価格のマイコンを使用する必要がありますが、安価でクロック数が低いマイコンでもアプリケーションの実行速度は下げないことが重要となってきています。
目次
1. 実行速度高速化実現方法の課題
2. ボトルネックの把握、タスク設計の最適化
3. 実行時間の把握
4. ソースコードの高速化可能箇所を発見
5. ハードウェアの完成前にシミュレーションでテスト、デバッグ、検証
6. まとめ
より詳しい技術や関連製品について知りたい方へ
本コラムに関係する技術や関連する製品について知りたい方は、お気軽にご相談ください。
1. 実行速度高速化実現方法の課題
一般的にソフトウェアで高速化を実現するには、実行速度のボトルネックになる箇所を特定し、リアルタイムOSのタスク設計の最適化、ソースコードの変更を行う必要があります。しかし、手作業でこれらを行うには以下の課題があり、容易ではありません。
- どの部分が高速化へのボトルネックとなっているのかの把握
- リアルタイムOSのタスク設計でどの部分が高速化できるかの把握
- ソースコードで実行速度改善の可能性がある箇所の把握とその変更方法
- 上記の開発の早い段階での把握、改善
実行速度高速化実現を支援するツール
ユビキタスAIでは、これらの課題を解決するための各種ツールを販売しています。
2. ボトルネックの把握、タスク設計の最適化
高速化のボトルネックとなっている部分の把握とリアルタイムOSのタスク設計の最適化は、INCHRON社のマルチECU対応タイミング検証ツール「chronSUITE 」で行います。chronSUITEを使用すれば、イベントチェーン解析により各種イベントのエンドツーエンド時間を計測し、時間がかかる部分の把握やリアルタイムOSのタスクの最適化が可能となります。
chronSUITEによりイベントチェーン解析が可能に
MAN Truck & Bus & INCHRON AG | Florian Mayer, Ferry Kraft | 24.11.2022 | Controlling Timing via Event Chain Analysis
chronSUITEによるエンドツーエンドタイミング時間の測定
最適化の可能性:イベントチェーンによるタスク内の実行順序の最適化により、サイクル時間の短縮
MAN Truck & Bus & INCHRON AG | Florian Mayer, Ferry Kraft | 24.11.2022 | Controlling Timing via Event Chain Analysis
chronSUITEによるタスクの最適化
3. 実行時間の把握
chronSUITEを使うことで時間がかかっているタスクは把握できますが、そのタスクから呼ばれている各種関数の実行時間は分かりません。これについては、Verifysoft社のカバレッジ測定ツール「TestwellCTC++ 」を使用することで、どの関数に平均でどれだけ時間がかかっているのかを把握することが可能になります。
TestwellCTC++による各関数の実行時間の把握
例:task_mode()が10,000回実行され、平均実行時間1.75 ms(1カウント0.1msタイマーの場合)
4. ソースコードの高速化可能箇所を発見
ソースコード中で実現可能性のある個所の把握と適切な修正提案を行うのが、Appentra社のアプリケーション実行速度高速化支援ツール「Codee」です。Codeeは、ソースコードを静的解析して高速化の実現可能性がある個所を指摘して高速化をサジェスチョンしたり、高速化のためにソースコードを自動で変更したりします。
TestwellCTC++による各関数の実行時間の把握
Codeeによるソースコードの解析結果
5. ハードウェアの完成前にシミュレーションでテスト、デバッグ、検証
もし開発の最終段階や量産直前で予定の実行速度が出ていないことが問題として現れた場合、それを期間内に改善するのは非常に困難です。従って、できるだけ早期の段階で要求時間を満たしているか、またそれにどれぐらい余裕があるのかを把握することが重要です。これには、車載ECUソフトウェア開発向けシミュレーションツール「GSIL」を使用すれば、実機が未完成でも、完成したソフトウェアでシミュレーションを行うことで、要求時間を満たしているか、どのぐらい余裕があるのかを把握することが可能になります。
要求時間、余裕度合の把握
- ECUで処理される各種の制御の時間制約が満たされているかどうかを検証
- chronVIEW+GSILで実機完成前に実装後にタイミング検証可能
- GSILはタスク遷移トレースデータ出力可能
- 実機ほどの検証精度は出ないが、早期の段階でタスク実行時間、エンドツーエンド時間の推定、実行速度のボトルネックを特定可能
- CPU実行速度を補正
- タスク動作はシミュレーション
- BSWは含まない
GSILによる早期の要求時間、余裕度の確認
6. まとめ
このように、ユビキタスAIで提供している各種ツールを使用すれば、容易に効率的にアプリケーションの高速化が可能となります。
本コラムに関係する技術や関連する製品について詳しく知りたい方は、お気軽にご相談ください。
このコラムの著者
株式会社ユビキタスAI
エンベデッド第3事業部 担当部長
植田 宏​(うえだ ひろし)
大学卒業後Tier1メーカーへ入社、ECUソフトウェア開発を行う。その後海外で組込みソフトウェア開発エンジニアの経験を経て、帰国。1998年より車載系ソフトウェアの技術営業に従事。自身の経験を活かし、課題解決に役立つ海外のソフトウェア商材を取扱い、国内のエンジニアへ届けている。
より詳しく技術や関連製品について知りたい方へ
本コラムに関係する技術や関連する製品について知りたい方は、お気軽にご相談ください。
組込み制御ソフトウェアでのCIの課題と実現方法
2024.09.02
イベントチェーンを応用した車載ECUのタイミング検証
2024.08.30
車載制御ECUソフトウェア教育向けパッケージGTrainerとは
2024.08.08
システムテストのカバレッジ測定
2024.06.13
組込み制御ソフト開発へのシミュレーション応用による開発効率向上
2024.06.04
CANを使用したSILSテスト ―車両全体シミュレーション、テストケース再利用―
2024.05.27
GSILのMILS開発への適用
2023.12.20
GSILのCI(Continuous Integration)適用
2023.09.22
GSILの網羅的自動テストケース生成機能を使ったECUの信頼性向上
2023.09.13
OEM⇔サプライヤでのECU制御ソフトウェア環境共有による手戻り工数削減方法
2023.07.25
SILSを使用した車載制御ECUソフトウェア開発競争力強化
2023.07.20
車載ECUシミュレーションでテスト資産を活かすための技術とは?
2022.05.16
早期の車載ECUタイミング検証の実現
2021.08.27