All Rights Reserved by 仮想マイコン応用推進協議会/vECU-MBD WG
2012/12/21
135 135
9.2 CPU最大負荷率測定の目的
135 135
CPU負荷率が100%を超えると
・処理が飛ばされる
・処理タイミングにズレが発生する
・意図していない処理順序になる
等が発生し、結果意図しない動作になることが懸念される。
CPU最大負荷率を測定し、100%迄のマージンを把握することを目的とする。
All Rights Reserved by 仮想マイコン応用推進協議会/vECU-MBD WG
2012/12/21
136 136
9.3 用法
アイドル 動作
9.3.1 複数のタスクに対しての測定
機能により要求性能が異なるため、複数のタスク(実行周期)を持つ場合がある。
その際には、全てのタスクに於いて、CPU最大負荷率を確認しなければならない。
1msタスク
・
・
10msタスク
・
・
それぞれのタスクに対して負荷測定。
以下<タイミングチャート(例)>の様に 周期が長いタスク実行の間に
周期が短いタスクが実行される為、
そのことも考慮する。
1ms
1ms
タスク
1ms 10msタスク
タスク
・・・
10ms
<タイミングチャート(例)>
All Rights Reserved by 仮想マイコン応用推進協議会/vECU-MBD WG
2012/12/21
137 137
9.3 用法
9.3.2 実機での測定方法(例)
10ms経過?
・
・
・
No Yes
・CPU最大実行時間保存用のRAMを準備
・10ms経過判断用のタイマカウンタを利用し
『カウンタ値が保存されたデータより大きければ更新』
という処理を10msタスクの最終処理に入れる
・最大実行時間となるような条件をECUに入力する
・RAMモニタ機能を利用し結果の読み出しを行う
<10msタスクを内部タイマを使用して
経過待ちをチェックして実現している場合
>
その他、簡易的にICEのトレース機能を利用する方法等もある。
All Rights Reserved by 仮想マイコン応用推進協議会/vECU-MBD WG
2012/12/21
138 138
9.4 仮想ECUの要件
<負荷率の計測機能>
ソースコードとテストシナリオ(最大負荷率となるシナリオ) を入力し、レポートを出力する。
テストシナリオ
ソースコード
レポート
All Rights Reserved by 仮想マイコン応用推進協議会/vECU-MBD WG
2012/12/21
139 139
9.4 仮想ECUの要件
①関数毎の実行時間を計測する(関数のcall~return)
②全体の実行時間(アイドル~アイドル)を計測する
③負荷率を算出する
**クロック or
**ms
**%
**%
**クロック or
**ms
**%
関数毎の
**クロック or
**ms Input
Input
Input
Output Output
Output
Output
出せるOutputにより、Inputとして必要な情報も変化す る。
<負荷率の計測手段>
All Rights Reserved by 仮想マイコン応用推進協議会/vECU-MBD WG
2012/12/21
140 140
9.4 仮想ECUの要件
参考:最大負荷率となるパスの検索機能
・
・
・
・
・
・
ソースコードから最大実行時間となるパスを検索 そのテストシナリオを出力するツールが存在す る。
この様なツールとの連携や
この様な機能の取り込みがあるのが望ましい。
テストシナリオ
最大実行時間となるパス
All Rights Reserved by 仮想マイコン応用推進協議会/vECU-MBD WG
2012/12/21
141 141
9.4 仮想ECUの要件
9.4.2 ネック箇所の検出
NGの場合(マージンが無い場合)、
関数毎や機能毎の処理時間が測定できれば、負荷の大きい処 理(ネック箇所)を特定できる。
特定したことにより、負荷分散や処理の効率化を施すことも可能 になる。
関数x
・・・
・・・
・・・
関数y
・・・
・・・
・・・
処理時間妥当
処理時間長い
関数y’
・・・
・・・
・・・ 負荷分散や
処理効率化を実施し 処理時間を妥当に
All Rights Reserved by 仮想マイコン応用推進協議会/vECU-MBD WG
2012/12/21
142 142
9.5 今後の動向
マルチコアを使用した場合のCPU負荷測定について
今後、組込みソフトウェアでもマルチコアを使用したシーンの増加 が見込まれる。
・バスの負荷
・リソースのロック
等コア間のやりとりまで仮想化する必要がある。
またシングルコア時には単純にマージンをとるだけで良かったモ デルの精度が、複数のコア間のやりとりが発生する為、コア間の やりとりに影響が出る。
(単純に使用できるかは構成/構造に依存する)
9.5.1 マルチコア
All Rights Reserved by 仮想マイコン応用推進協議会/vECU-MBD WG
2012/12/21
143
9.5.2 機能安全規格ISO26262との関係
Part6 Clause10 Table13 1d(リソース使用テスト)
ソフトウェアアーキテクチャ設計時に (負荷見積もりを行いながら)
スケジューリングの設計を実施する。
※ASIL A ~ ASIL D の全てで強く推奨となっている ソフトウェア統合テスト時に負荷測定を実施する。
※ASIL A ~ ASIL C で推奨、
ASIL D で強く推奨となっている
9.5 今後の動向
Part6 Clause7 Table3 1f(適切なスケジューリング)
【CPU負荷率との関連項目】
All Rights Reserved by 仮想マイコン応用推進協議会/vECU-MBD WG
2012/12/21
144 144
第1章 仮想ECUシミュレータの導入・活用の狙い 第2章 開発プロセス上の位置付け
第3章 現状事例(ユースケース)
第4章 時間精度について
第5章 複数シミュレータの同期化
第6章 モデル間インタフェースについて 第7章 ユーザインタフェース(UI)について 第8章 フォールト注入について
第9章 性能評価(CPU負荷率)
第10章 周辺モデル設計における留意点
10.1 周辺モデル設計における留意点
All Rights Reserved by 仮想マイコン応用推進協議会/vECU-MBD WG
2012/12/21