第 3 章 基本方式の提案
3.4 SRMS の評価手法
3.4. SRMSの評価手法 第 3. 基本方式の提案 ソースコードである.
設計文書解析
設計文書解析は,ソフトウェア仕様書やテスト仕様書,要求文書をその対象 とする.解析の目的は,システムの構成や機能割り当て,オブジェクトやユー スケースに関する情報の獲得と,システムが満たすべき性能要件の把握である.
これらの情報は静的解析と動的振舞解析の基礎情報となる.
動的振舞解析
動的振舞解析は実システムである組込みシステムの実機を動作させて行う解 析手法である.
実システムを動作させることから,動作シナリオを必要とする.動作シナリオ は要求文書から得た性能要件の充足を確認するために必要な実行パスをシステ ムに与えるものである.動作シナリオの作成は,静的解析と設計文書解析によっ て得られたアーキテクチャ情報や制御構造を参照することで行う.動的振舞解 析によって得られる実行トレースデータは,ソフトウェアの動的振舞のデータ であり,解析対象となる関数の呼出しや復帰とその実行時間の情報,関数を実 行するスレッドの識別子,および指定された関数引数の値から構成される.実 行トレースデータの取得には,測定による侵襲性が低いシステム測定技術[26]
を使用する.
本技術ではハードウェアの出力ポートに対して関連データを直接出力するため のコード断片をソフトウェアに埋め込む.次に,このソフトウェアを実行シナ リオによって実システムで動作させる.ハードウェア出力ポートから出力され る関連データは,外部の専用ハードウェアによって高速に取得する.これによ りシステムの動的振舞を変化させる影響を少なくできることから,正確な振舞 データを得ることができる.動的振舞モデルは,アーキテクチャ情報や制御構 造を参照して作成するモデルであり,加えて実行トレースデータから抽出した 動的振舞のデータを含む.システムリソースモデルは,ハードウェアリソース の構成,リソース使用量,システムの振舞いを高い抽象度で表現する.システ ムリソースモデルはシステム仕様とハードウェア・アーキテクチャを元に作成
3.4. SRMSの評価手法 第 3. 基本方式の提案
!"#$%&'()*
('+&,-.*
/0+12'!
324!
56789:;*
<=>?@AB*
4A)'4CDEF*
G2'H2I*
#include "t3log.h“
#line 1 “xxx.c"
# 1 "D:\\xxx.h" 1 int foo(void) { T3LOG (B_foo);
: T3LOG (E_foo);
return 0;
}
flag, name, timestamp [,ret|param,…]
--- Entry, funcA, 10000000
Entry, funcB, 10002000 Exit, funcB, 10003000 Entry, alloc, 10014000, 10240 Exit, alloc, 10014060, 0x3fd234e0 Entry, funcC, 10014100
Entry, funcD, 10020000 Entry, alloc, 10021000, 40960 Exit, alloc, 10022000, 0x3fd24220 Entry, funcE, 10025000
Exit, funcE, 10030000
Entry, dealloc, 10032000, 0x3fd24220 Exit, dealloc, 10034000
Exit, funcD, 10040000
Entry, dealloc, 10043000, 0x3fd234e0 Exit, dealloc, 10044000
Entry funcF, 10050000 :
DJ2KH2I*
DJ2KH2I#*
LMNO*
図3.4 システム測定技術概要
する.その際に補助的な情報として,ソフトウェア・アーキテクチャと制御構 造も使用する.この2つの情報はソフトウェア仕様書などの技術文書やソース コードの解析結果から獲得する.
3.4.2 実行トレースデータの取得手法
実行トレースデータ(Execution trace data) の取得には,測定による侵襲性 が低いシステム測定技術(図3.4),[26]を使用する.
本技術は計測対象システムの振舞を正確に測定し振舞の数値化,可視化する動 的解析ール群であるビジュアライザで構成される.計測対象システムの動作と 時間情報を,システムの動的振舞を変化させる影響を少なく,かつ長時間に渡っ て記録できることが本技術の特徴である.
本技術では,ハードウェアの出力ポートに対して関連データを直接出力する ためにプローブコードと呼ばれるコードの断片をソースコードに埋め込む.次 に,このソースコードと実行シナリオであるテストシナリオに基いて,解析の 対象システムを動作させる.ハードウェア出力ポートから出力される関連デー
3.4. SRMSの評価手法 第 3. 基本方式の提案 タは,外部の専用ハードウェアによって高速に取得する.この際,外部の専用 ハードウェアによってデータ取得における時間情報であるタイムスタンプを付 加する.これにより実行トレースデータを得る.本技術の適用はソースコード が入手可能であり,ハードウェアに何らかの出力ポートを持つ組込みシステム において一般的に適用できるものである.さらに測定した大量の情報分析と可 視化を可能とし,ガント・チャート,動的コールグラフ,2D遷移マトリックス 図,処理時間のプロット図,タスク変化図,処理時間の平均値や偏差値などの統 計データを自動生成するビジュアライザ機能がある.これら機能によりシステム の俯瞰的な振舞と詳細な振舞の双方を測定することが可能である.
3.4.3 性能評価モデル
性能評価モデル (Performance evaluation model) は,動的振舞モデル (Dy-namic behavior model)とシステムリソースモデル(System resource model) を 統合したモデルであり,シミュレーション・フレームワーク[72]において,性 能評価のシミュレーションに用いる(図3.5).本研究において使用するシミュ レーション・フレームワークはIBM Rational Rhapsody[72]である.
上流工程において,いくつかのアーキテクチャ候補に対して性能を分析する ためには,モデルの変更容易性が保証される必要がある.そこで動的振舞モデ ルとシステムリソースモデルが分離された構造を採用する.
!"#$%&
'()*&
+),*&
-./&
%0123$45&
647$*&
89:;6<*& =>$0?@&
647$*&
)A%$'B)0&
647$*&
=>$0&
647$*&
C0DE=>$06<*&
F")G"=H&
IJKLMNM&
O@PQ&
RSN&
TUKL&
VWXY6<*Z&
C[7\$%&
]^_`ab^cMC[7\$CdAe'\$Ef$1&
図3.5 性能評価モデルの構成
3.4. SRMSの評価手法 第 3. 基本方式の提案 動的振舞モデルは,タスクマネージャ・モジュール(Task manager module)と パラメータファイル(Parameter file)の2つの内部モジュールで構成する.
パラメータファイル
パラメータファイルは,実行トレースデータに性能評価の指標を視点とした 捨象技術[73]や情報抽出を適用して得られた動的振舞のデータであり,関数の 呼出や復帰と実行時間の情報,リソースの獲得・解放要求情報で構成される外部 ファイルである.多様な条件におけるシミュレーションを実施するために,パ ラメータは外部ファイルとして独立した構造を採用している.またパラメータ ファイルはソフトウェアの振舞いの変化と実行時間の情報を含むことから,性 能評価のシミュレーションにおいて,実行シナリオとしての側面を合わせ持つ.
タスクマネージャ・モジュール
タスクマネージャ・モジュールはソフトウェアの振舞いを表現したモデルで あり,パラメータファイルを順次読み込むことで,振舞いの処理ステップを実 行する.また,このモジュールはシステムリソースモデルに対して,リソース 獲得の要求通知や振舞単位の処理時間を送信,リソース獲得の成功・失敗通知 や振舞単位の処理完了の通知を受信する.これらの通知を受信後,次の処理ス テップに移行する.システムリソースモデルは,インターフェイス・モジュー ル,リソース・モジュール,リソース管理モジュールの3種類の内部モジュール から構成する.インターフェイス・モジュールは,動的振舞モデルとの間で通 知を送受信する.
リソース・モジュールは,対象とするハードウェアリソースに対応したオブジェ クトであり,リソースの振舞いとリソースの使用量を表現する.リソース管理 モジュールは,複数のソフトウェア要素が並行してリソースを使用している状 況において,全体としてのリソース使用量を計算する.性能評価モデルを用い た性能評価の対象は,システム全体ならびに処理単位における所要時間と,振舞 いに対応したメモリー使用量の推移と最大値である.そのため,所要時間を表 現するタイムリソースモデルと,メモリー使用量を表現するメモリー・リソー スモデルの2種類のシステムリソースモデルを用いてそれらを表現する.なお,
システムリソースモデルは外部モデルとして独立させ,さらに性能評価モデル
3.4. SRMSの評価手法 第 3. 基本方式の提案
!"#$%&
'()*+&
",!*-."/&
'()*+&
&
&
&
!"#01*/'2+3/4()*5*67&
8&
9:;<&
9:;=&
9:;>&
9:;?&
@AB?&
@AB>&
@ABC&
D&
(EFGH&
(EFIJ)*& K*LM.N01*/&
'()*+&
(EFOPQR&
(EFSTUV&
図3.6 タイムリソースモデルの構成とクラス図
の作成用にライブラリ化する.これにより性能評価モデルの作成において,シ ステムリソースモデルを個別に作成する必要はない.
3.4.4 タイムリソースモデル
タイムリソースモデル(Time resource model)は,システムの時間経過を表現 するモデルである(図3.6).
このモデルは動的振舞モデルから受け取った処理時間のデータであるジョ ブを登録してハードウェアリソース・モジュールに振り分けるジョブキュー,
MPUなどの各ハードウェアリソースによる時間経過を処理するハードウェア リソース・モジュール,動的振舞モデルとのインターフェイス・モジュール,タ イムリソースモデル全体の処理時間を計算するタイム管理モジュールの4種類 の内部モジュールで構成する.
動的振舞モデルは,タイムリソースモデルに対してジョブ登録要求を,シグナ ルとして送信する.
インターフェイス・モジュールは,動的振舞モデルからジョブを受け取り,ジョ ブキュー・モジュールに登録する.次に登録されたジョブをモジュール内の1 個,もしくは複数個のハードウェアリソース・モジュールに対してジョブキュー がジョブの割り当てを行うことで,処理時間の経過をシミュレートする.ジョ ブの割り当てはプロセッサの構成がAMP(Asymmetric Multiprocessing:非対 称型マルチプロセッシング)構成の場合,プロセッサを表すハードウェアリソー ス・モジュールに対して,静的に固有のジョブをジョブキューがプロセッサに割