• 検索結果がありません。

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

145 145

10.1 周辺モデル設計における留意点

1.考え方

シミュレータベンダーなどが提供するモデル(MCUコア、MCU周辺)の再利用を配慮すべき。

あくまでも汎用的なモデルでなければ、ユーザーにとって利点が少ない。

(利用シミュレータ変更におけるコスト軽減の為)。

2.シミュレータベンダーへ依頼する場合。

(1)仮想シミュレータは、Accellera Systems Initiative(旧OSCI) TLM 2.0準拠のSystemC対応シミュ レータであるかの確認。

(2)提供のMCU周辺モデルは、他社SystemC対応シミュレータでの動作が可能かどうかの確認。

(3)他社作成MCU周辺モデルをシミュレータベンダー提供の仮想シミュレータにて動作可能かの確 認。また、ビルド(あるいはMake)などの方法等の提示要求。

3.SystemC対応MCU周辺モデルを個別開発する企業へ依頼する場合

(1)抽象度の確認

ATAL-1~ATAL-3

*ATAL-3(cycle-accurate)の対応は半導体ベンダーからの情報開示必要

(2)単体(Unit)テストのみならず、連動(Combination)テストの要求

(3)テストパターン(テストベンチ)の提供

周辺モデルを組み合わせて基本動作が確認出来るテストパターン(テストベンチ)の提供