WEBマガジン

「SysMLを活用した性能の検討」

2011.04.06 株式会社オージス総研  青木 淳

1.SysMLを活用した構造の検討

 前回に引き続き、下図の電光掲示板を例題にSysMLを活用して「性能の検討」を実施してみます。

コンテキスト図
図 1 コンテキスト図

1.1.制約条件の検討

 前回検討した物理構造では、CPUとCPLDの両方からDRAMにアクセスすることになります。Matrix LEDの制御をCPLDにやらせる関係上、DRAMへのアクセスはCPLD側に優先権を持たせることにします。そうすると、CPLDがDRAMへアクセスしている間CPUは待たされる事になります。
 ちらつきを防止するためにMatrix LEDの制御周期を短くすると、CPLDは頻繁にDRAMにアクセスしその分CPUの待ち時間は多くなります。一方、CPUは文字入力装置からの文字列を受け付けますので、長時間待たされると文字列を受け取れず表示不具合の原因になります。Matrix LEDの制御周期はどの程度が妥当なのか、検討が必要になります。

 まず、ブロック定義図を使って制約ブロックに制約条件を記述します。図 2がRAMとMatrix LEDの制約ブロック定義です。

制約ブロック定義
図 2 制約ブロック定義

 RAMへのアクセス時間(t)はアクセスに必要なクロック数(n)に1クロックにかかる時間(1/fc)を掛けた値となります。
 描画に必要な時間(tg)は画素X(X)の半分に2を足した値に1クロックにかかる時間(1/fg)を掛けた値に画素Y(Y)を掛けた値となります。画素Xを半分にするのは、本記事のMatrix LEDはX方向に16×16ドットのMatrix LEDを2個並べた構成となっているので、同時に左右2個のドットを指定するためX方向の描画にかかるクロックは半分ですむためです。また、2を足しているのはラッチ出力のON/OFFがドットの描画とは別に必要なためです。
 描画時に連続してバスを占有する時間(tl)と、tlに左右される1画面の描画でバスを占有する総時間(tb)は、CPUとCPLDの使い方によって変わってきます。今回は3パターンの検討をしています。
 実現方法によって制約条件が異なる場合、ブロック定義図の制約ブロックを汎化関係で接続する事によって、複数の実現方法がある制約条件である事を視覚的に明示することが出来ます。

<<SysML>>

 制約ブロックは制約条件を記述するための特殊なブロックで、後で説明するパラメトリック図で活用できます。ステレオタイプ<<block>>の代わりに<<constraint>>となり、区画はconstraintsとparametersのみとなります。constraints区画には制約条件をテキスト形式で記述し、parameters区画には制約条件で使用されるパラメータとその型を記述します。

1.2.制約関係の検討

 次に、制約間の関係をパラメトリック図で記述します。今回の例は図 3のようになります。

パラメトリック図
図 3 パラメトリック図

 前回、物理構造の部品仕様で記述したプロパティのうち、CPUUnitのclock(20MHz)をfcに、CPUUnitのDRAMのState(4clock)をnに、MatrixLEDUnitのDots_X(32dots)をXに、MatrixLEDUnitのDots_Y(16dots)をYに、MatrixLEDUnitのClock(未決定)をfgに割り当てています。
 tgに割り当てたdrawTime、tbに割り当てたbusAccessTime、tlに割り当てたbusPossessTimeは観測したい値です。
 今回の例では制約プロパティ同士を結ぶ線が1本だけですが、パラメトリック図では複数の制約条件が複雑に絡み合うシステムの制約関係を視覚化することができます。これにより、多くの制約プロパティで共有される性能のボトルネックになる制約条件を推測する事ができます。

<<SysML>>

 パラメトリック図はSysMLで新たに導入された図で、内部ブロック図の特殊バージョンです。
 基本構造は内部ブロック図と同じですが、使える要素を制約プロパティ(制約ブロックのインスタンス)とパラメータに接続する外部プロパティに限定しています。
 内部ブロック図のプロパティは四角形で表されますが、パラメトリック図中の制約プロパティは角丸四角形となっていて、一目見て内部ブロック図と異なる事が判るようになっています。
 パラメータは小さい四角形で表し、一辺を制約プロパティの辺にくっつけるように書きます。パラメータ同士を線で表されるバインディングコネクタを用いて接続する他、他ブロックのプロパティをパラメータに割り当てることもできます。他ブロックプロパティの指定は図中のCPUUnit.DRAM.Stateのように’.’で区切ってブロック構造のネストを辿ることができます。
 図中、<<moe>>というステレオタイプが付いているプロパティは他ブロックのプロパティではありません。これはmeasure of effectivenessの略で、トレードオフ分析で指標となる値である事を表します。ステレオタイプ<<moe>>はSysMLの仕様に含まれていませんが、付録にてトレードオフ分析用拡張として提案されています。
 パラメータ間の接続には方向の概念が無いのでコネクタに矢印は現れません。接続されたパラメータは’=’であると解釈されます。制御設計で使われるブロック線図のイメージだと、データが移動する方向に矢印が付くので矢印が無いと違和感を覚えますが、ブロック線図でも概念的に接続されている線の両端は’=’なので、ブロック線図的な使い方もできると思われます。SysMLの文法に拘らないのであれば矢印をつけるのも有りだと思います。
 パラメトリック図は制約ブロックで定義された制約間の関係を記述するのに用いるので、基本的にブロック定義図とペアで使われます。

1.3.制約のシミュレーション

 制約関係を記述できたので、Matrix LEDの制御周期がCPLDのDRAM占有にどの程度影響するかシミュレーションしてみます。
 表 1にバスアクセスのシミュレーション結果を、 図 4にfgを0.01MHzから0.3MHz(制限値の上限)まで振った描画性能のシミュレーションの結果を示します。
 実際のDRAMにはバーストモードというモードがあり高速アクセスが可能ですが、シミュレーションではノーマルモードの4ステートアクセスとしています。
 なお、SysMLの仕様では制約の記述がテキスト形式ですので、そのままシミュレーションさせることはできません。シミュレーション機能の有無およびシミュレーション機能を利用するための制約記述方法はモデリングツールに依存する事になります。

表 1 バスアクセスシミュレーション結果
バスアクセスシミュレーション結果<

 連続してバスを占有する時間(busPossessTime)は最大でも2μsであり、文字列受信に問題はありません。

描画性能シミュレーション結果義
図4  描画性能シミュレーション結果

 MatrixLEDのクロック周波数を上限の0.3MHzまで上げると960μsで1画面分の描画が完了し、バスの占有率は最高で3.33%です。
 パソコンのディスプレイなどで使われる60fpsの描画性能では1画面辺り16.67msの時間となりますが、クロック周波数を0.02MHzまで下げても描画時間は14.4msと余裕があり、その時のバス占有率は最高で約0.22%です。
 描画用のクロックは0.02MHzで十分であり、CPLDがバスを占有する割合も本記事の電光掲示板としてはまったく問題ない数値と言えます。

2.まとめ

 SysMLを用いた性能の検討では、ブロック定義図で制約条件を制約ブロックとして記述し、パラメトリック図で制約関係を制約ブロックのインスタンスである制約プロパティの関係として記述します。実際に性能の検討をするためには、パラメトリック図をシミュレーションして結果を検討する必要があるのですが、SysMLではシミュレーションを実行できる記述言語を提供していません。各ツールベンダが独自に制約記述言語を規定し、シミュレーションを行えるようにしているのが実情です。制約記述言語としてJavaスクリプトやVBを使えるツールもあるようです。

 これまで6回にわたりSysMLを活用したシステムモデリングの一例を紹介してきました。システムモデリングの中でSysMLを活用するイメージが沸いて来ましたでしょうか。SysMLを活用したシステムモデリングの特徴には以下のようなものが挙げられます。

 特に要求分析工程のモデル化は今まであまり行われていなかった部分なので、SysMLの活用を検討される方は、まず要求図を使って要求の視覚化に挑戦される方が多いようです。
 システムエンジニアリングプロセスにはSYSMODやICONIXなど様々な手法があり、システムモデリングの方法や、その中でのSysML活用法も様々なバリエーションが考えられます。皆様の業務に合ったシステムエンジニアリングプロセスの中で、SysMLを活用したシステムモデリングを行う一助となれたのであれば幸いです。

*本Webマガジンの内容は執筆者個人の見解に基づいており、株式会社オージス総研およびさくら情報システム株式会社、株式会社宇部情報システムのいずれの見解を示すものでもありません。

『WEBマガジン』に関しては下記よりお気軽にお問い合わせください。

同一テーマ 記事一覧

「SysMLを活用した構造の検討」

2011.02.03 製造 株式会社オージス総研  青木 淳

「SysMLを活用した振る舞い検討」

2010.12.04 製造 株式会社オージス総研  青木 淳

「SysMLを活用した要求分析」

2010.10.05 製造 株式会社オージス総研  青木 淳

「SysMLとは何か」

2010.08.06 製造 株式会社オージス総研  青木 淳

「何故システムモデリングが必要か」

2010.06.11 製造 株式会社オージス総研  青木 淳