JP5374707B2 - 計算機ソフトウェアシステム設計支援装置 - Google Patents
計算機ソフトウェアシステム設計支援装置 Download PDFInfo
- Publication number
- JP5374707B2 JP5374707B2 JP2013502203A JP2013502203A JP5374707B2 JP 5374707 B2 JP5374707 B2 JP 5374707B2 JP 2013502203 A JP2013502203 A JP 2013502203A JP 2013502203 A JP2013502203 A JP 2013502203A JP 5374707 B2 JP5374707 B2 JP 5374707B2
- Authority
- JP
- Japan
- Prior art keywords
- task
- execution time
- execution
- time
- computer software
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000013461 design Methods 0.000 title claims description 43
- 238000012545 processing Methods 0.000 claims description 82
- 238000000034 method Methods 0.000 claims description 56
- 230000008569 process Effects 0.000 claims description 28
- 230000006870 function Effects 0.000 claims description 26
- 238000004088 simulation Methods 0.000 claims description 25
- 238000011156 evaluation Methods 0.000 claims description 11
- 230000003252 repetitive effect Effects 0.000 claims description 4
- 230000015654 memory Effects 0.000 description 39
- 230000004913 activation Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000011161 development Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000007257 malfunction Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000012356 Product development Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000011362 coarse particle Substances 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000007616 round robin method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3419—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3457—Performance evaluation by simulation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Description
本発明は、スタンドアロンで動作する計算機ソフトウェアの性能予測を行い、計算機ソフトウェアの設計ならびに性能を事前評価するための設計支援方法と設計支援装置に関するものである。
情報家電や携帯電話などの計算機搭載デバイスに要求される機能が増大したことにより、デバイスに搭載されるソフトウェア量が増大し、1つのシステムに搭載されるソフトウェア部品も莫大な数になっている。特に、携帯電話の場合、通話機能、電子メール機能、ブラウザ機能など、200〜300のソフトウェア部品が同居している。
そのため、このような計算機搭載デバイスの品質の問題がつきまとう。かかる品質問題は、シミュレータなどで解決することもできるが、性能問題はソフトウェア部品を結合した後でないと性能が満足するか否かわからないことが多い。
なぜなら、これらソフトウェア部品は1つのハードウェア資源を共有しながら同時に作動するので、1つのソフトウェア部品の実行が他のソフトウェア部品の実行を遅らせる原因になるからである。性能問題が発見された場合、開発工程の後戻りが発生し、膨大なコストが発生しているのが現状である。
そのため、このような計算機搭載デバイスの品質の問題がつきまとう。かかる品質問題は、シミュレータなどで解決することもできるが、性能問題はソフトウェア部品を結合した後でないと性能が満足するか否かわからないことが多い。
なぜなら、これらソフトウェア部品は1つのハードウェア資源を共有しながら同時に作動するので、1つのソフトウェア部品の実行が他のソフトウェア部品の実行を遅らせる原因になるからである。性能問題が発見された場合、開発工程の後戻りが発生し、膨大なコストが発生しているのが現状である。
かかる状況下、従来から、図15に示すようなサーバコンピュータの設計モデルには待ち行列モデルが多く利用されている(例えば、非特許文献1)。特に、待ち行列モデルは、ネットワークシステムで利用されてきている。しかしながら、待ち行列モデルはシステム設計には有効なもののソフトウェア設計には待ち行列モデルとソフトウェアの設計モデルに大きいなギャップがあり、実用的なアプローチとは言い難いものであった。
また、ソフトウェアの実行に際して、必要なハードウェア資源量を各々のステップのまとまり単位で見積って、全体システムの性能を予測するアプローチ方法を提示している(非特許文献2)。但し、システム内の共有資源へのアクセスはしばしば性能に大きいな影響を与えるが、この性能評価においても、待ち行列モデルを利用したものであり、上記と同様の問題がある。
また、ソフトウェアの実行に際して、必要なハードウェア資源量を各々のステップのまとまり単位で見積って、全体システムの性能を予測するアプローチ方法を提示している(非特許文献2)。但し、システム内の共有資源へのアクセスはしばしば性能に大きいな影響を与えるが、この性能評価においても、待ち行列モデルを利用したものであり、上記と同様の問題がある。
また、コンピュータシステム内の性能予測のアプローチ方法を開示しているものもある(特許文献1)。
また、並列計算機を対象とした性能評価方法もあるが(特許文献2)、こちらも待ち行列モデルをベースとした待ち行列網モデルを用いており上記と同じ問題がある。
また、並列計算機を対象とした性能評価方法もあるが(特許文献2)、こちらも待ち行列モデルをベースとした待ち行列網モデルを用いており上記と同じ問題がある。
また、実際にシステムでの性能を測定しそのデータに基づき性能予測を行うものがある(特許文献3)。この方法は、系列システムの開発には有効であろうが、最初にシステムを設計する場合にはあまり有効に機能するものではない。
また、計算機システム内の粒度の粗い部品レベルでの性能予測方法がある(特許文献4)。しかしながら、粒度の粗い部品レベルでの性能予測の場合、リアルタイムシステムなどの時間制約が厳しいものについては性能評価できない。
また、計算機システム内の粒度の粗い部品レベルでの性能予測方法がある(特許文献4)。しかしながら、粒度の粗い部品レベルでの性能予測の場合、リアルタイムシステムなどの時間制約が厳しいものについては性能評価できない。
滝根 哲哉、伊藤 大雄、西尾 章治郎、ネットワーク設計理論、岩波書店、2001
C.Smith andL.Willianm’s, "Performance Solutions," Addison Wesloy,2002
組込みシステムの動作不良原因は、組込みソフトウェア不具合が半数以上を占める。不具合が起きる理由として、組込みソフトウェアの大規模化と複雑化に対して、十分な対策がとられなかったためである。
例えば、携帯電話の場合、図13に示すように、製品競争力確保のために新機能の搭載や、新技術を利用した機能向上や、顧客要望に対応する機能改善を行っており、ワンセグ機能,メール機能,通話機能,ブラウザ機能,動画再生機能など数多くのプログラムが搭載されている。このため、携帯電話の開発規模が増大し、プログラムの組合せ動作検証が困難になっている。不具合原因の50%以上がプログラムに起因するものであり、それらの不具合が製品開発段階の終盤や製品出荷後に発生している。
このため、搭載される数多くのプログラムの個々の機能の性能要求を明確化し、事前動作検証を行うことにより、開発期間・工程・後戻り・不具体対策コストの抑制を図るべく、機能だけでなく要求性能を満足できるようにプログラムの設計支援を行えるツールが要望されている(図14を参照)。
例えば、携帯電話の場合、図13に示すように、製品競争力確保のために新機能の搭載や、新技術を利用した機能向上や、顧客要望に対応する機能改善を行っており、ワンセグ機能,メール機能,通話機能,ブラウザ機能,動画再生機能など数多くのプログラムが搭載されている。このため、携帯電話の開発規模が増大し、プログラムの組合せ動作検証が困難になっている。不具合原因の50%以上がプログラムに起因するものであり、それらの不具合が製品開発段階の終盤や製品出荷後に発生している。
このため、搭載される数多くのプログラムの個々の機能の性能要求を明確化し、事前動作検証を行うことにより、開発期間・工程・後戻り・不具体対策コストの抑制を図るべく、機能だけでなく要求性能を満足できるようにプログラムの設計支援を行えるツールが要望されている(図14を参照)。
上記状況に鑑みて、本発明は、不具合の重大な原因の1つである性能問題に関連する設計工程を改善し、組込みソフトウェアの品質向上と後戻り工数削減による開発コストの抑制を図るべく、計算機ソフトウェア設計支援方法および設計支援装置を提供することを目的とする。
上記目的を達成すべく、本発明の計算機ソフトウェア設計支援方法は、少なくとも1つのアプリケーション処理プログラムを搭載したシステムの性能予測を行う計算機ソフトウェア設計支援方法であって、以下の1)〜4)のステップを備える。
1)アプリケーション処理プログラムを構成するタスク毎に少なくとも優先度,起動周期,実行時間,実行回数を定義するステップ
2)アプリケーション処理プログラムを構成するタスクの実行フローを定義するステップ
3)タスク毎に定義された優先度,起動周期,実行時間,実行回数を用いて、タスクの実行フローの実行時間を算出するステップ
4)アプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布からシステムの性能予測を行うステップ
1)アプリケーション処理プログラムを構成するタスク毎に少なくとも優先度,起動周期,実行時間,実行回数を定義するステップ
2)アプリケーション処理プログラムを構成するタスクの実行フローを定義するステップ
3)タスク毎に定義された優先度,起動周期,実行時間,実行回数を用いて、タスクの実行フローの実行時間を算出するステップ
4)アプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布からシステムの性能予測を行うステップ
かかる構成によれば、携帯電話や情報家電など多くのアプリケーション処理プログラムを搭載したシステムの性能予測について、設計段階において事前検証することができる。
上記1)のアプリケーション処理プログラムを構成するタスク毎の優先度,起動周期,実行時間,実行回数について説明する。ここで、アプリケーション処理プログラムはシステムが持つ機能をコンピュータに実現させるためのものである。また、タスクは機能をコンピュータに実現させるためのコンポーネントとなる処理のことをいう。タスクの優先度とは、実行可能なタスクが複数存在する場合にコンピュータに実行させる順番を決定するための指標である。また、タスクの起動周期とは、周期的にタスクを起動させる場合はその起動時間間隔をいう。タスクがイベントにより動作する処理である場合は起動周期を例えば0(ゼロ)とする。タスクの実行時間とは、コンピュータがタスクを実行する予測時間である。この予測時間は、タスクが行う処理ボリュームやタスクがハードウェアリソースにアクセスする場合はその処理待ち時間を考慮する。また、タスクの実行回数とは、周期的に起動されるタスクの実行回数やエラーリトライするタスクのリトライ回数をいう。
上記1)のアプリケーション処理プログラムを構成するタスク毎の優先度,起動周期,実行時間,実行回数について説明する。ここで、アプリケーション処理プログラムはシステムが持つ機能をコンピュータに実現させるためのものである。また、タスクは機能をコンピュータに実現させるためのコンポーネントとなる処理のことをいう。タスクの優先度とは、実行可能なタスクが複数存在する場合にコンピュータに実行させる順番を決定するための指標である。また、タスクの起動周期とは、周期的にタスクを起動させる場合はその起動時間間隔をいう。タスクがイベントにより動作する処理である場合は起動周期を例えば0(ゼロ)とする。タスクの実行時間とは、コンピュータがタスクを実行する予測時間である。この予測時間は、タスクが行う処理ボリュームやタスクがハードウェアリソースにアクセスする場合はその処理待ち時間を考慮する。また、タスクの実行回数とは、周期的に起動されるタスクの実行回数やエラーリトライするタスクのリトライ回数をいう。
次に、上記2)のアプリケーション処理プログラムを構成するタスクの実行フローについて説明する。ここで、アプリケーション処理プログラムとは、例えば、携帯電話の場合には、ブラウザ機能を実現するプログラムや、電子メール機能を実現するプログラムや、通話機能を実現するプログラムなどをいう。アプリケーション処理プログラムを構成するタスクの実行フローとは、アプリケーション処理プログラムを構成する1以上のタスクの実行順序、繰り返し、条件分岐、タスク間のリソースの排他制御などをフローチャートの如く示したものをいう。
次に、上記3)のタスク毎に定義された優先度,起動周期,実行時間,実行回数を用いて、タスクの実行フローの実行時間をどのように算出するとは、タスクの実行フローにしたがって、各タスクの実行時間を加算していくことである。
1つのアプリケーション処理プログラムを搭載するシステムの場合、そのアプリケーション処理プログラムを構成するタスクの実行フローにしたがって、順番に実行時間を加算していく。タスクが処理待ち時間を要するリソースにアクセスする場合は、その処理待ち時間も加算する。
1つのアプリケーション処理プログラムを搭載するシステムの場合、そのアプリケーション処理プログラムを構成するタスクの実行フローにしたがって、順番に実行時間を加算していく。タスクが処理待ち時間を要するリソースにアクセスする場合は、その処理待ち時間も加算する。
一方、複数のアプリケーション処理プログラムを搭載するシステムの場合、アプリケーション処理プログラム毎にタスクの実行フローが複数存在する。実行フローが複数存在する場合、実行可能なタスクが複数存在するケースも有り得る。この場合、例えば、1方の実行フローのタスクでリソースの処理待ち時間が生じた場合や特定条件が成立するまで処理を待つアルゴリズムを有する場合は、他方の実行フローで実行可能なタスクに切り替わり当該タスクが実行されるとして実行時間を加算する。また、オペレーティングシステム(OS)によって優先度の高いものが実行されることから、例えば、1方の実行フローで実行可能なタスクの優先度と他方の実行フローで実行可能なタスクの優先度とを比べて、優先度の高い側のタスクが実行されるとして実行時間を加算する。
本発明の計算機ソフトウェア設計支援方法における上記1)のタスクの実行時間において、タスク実行時間の分布情報が付加されることが好ましい。
タスクによっては、常に一定の実行時間で処理を終わるものではないものも存在することに着眼して、タスク実行時間の分布情報を加えるものである。タスク実行時間の分布情報とは、実行時間のバラツキ分布や、実行時間の確率分布や、ガウス分布などの数式で示す分布情報などである。なお、タスク実行時間の分布情報は、タスクの実行時間のバラツキを表すものであれば、これらに限定されずとも構わない。
タスクによっては、常に一定の実行時間で処理を終わるものではないものも存在することに着眼して、タスク実行時間の分布情報を加えるものである。タスク実行時間の分布情報とは、実行時間のバラツキ分布や、実行時間の確率分布や、ガウス分布などの数式で示す分布情報などである。なお、タスク実行時間の分布情報は、タスクの実行時間のバラツキを表すものであれば、これらに限定されずとも構わない。
例えば、タスク実行時間の分布情報は、見積り実行時間とその重み付けで定義されることがより好ましい。重み付けは、見積り実行時間になる確率で表現してもよい。
例えば、タスク実行時間の分布情報は、該タスクがハードウェアリソースにアクセスする場合に、ハードウェアリソースのアクセス時間を含むことがより好ましい。
ここで、ハードウェアリソースとは、共有メモリ、フラッシュメモリ(flash
memory)などの不揮発性の半導体メモリ、USB(Universal Serial Bus)メモリ、ハードディスクなどをいう。また、ハードウェアリソースのアクセス時間とは、リソースにアクセスするための書き込み時間、読み込み時間などの処理待ち時間である。
ここで、ハードウェアリソースとは、共有メモリ、フラッシュメモリ(flash
memory)などの不揮発性の半導体メモリ、USB(Universal Serial Bus)メモリ、ハードディスクなどをいう。また、ハードウェアリソースのアクセス時間とは、リソースにアクセスするための書き込み時間、読み込み時間などの処理待ち時間である。
また、タスク実行時間の分布情報には、該タスクが排他制御ロジックを含む場合に、排他制御の処理待ち時間を含むことがより好ましい。なお、排他制御ロジックにはタイムアウト時間を設定しても構わない。
また、タスク実行時間は、該タスクに用いられるシステムソフトウェアのアプリケーションインタフェース関数の見積り実行時間を積み上げたものを参考指標値として用いることがより好ましい。
ここで、システムソフトウェアとは、オペレーティングシステム(OS)や画面描画サービスプログラムなど、アプリケーション処理プログラムの枠外のプログラムである。
ここで、システムソフトウェアとは、オペレーティングシステム(OS)や画面描画サービスプログラムなど、アプリケーション処理プログラムの枠外のプログラムである。
また、本発明の計算機ソフトウェア設計支援方法において、アプリケーション処理プログラム毎の性能目標となる予測時間領域を定義し、シミュレーション結果の前記実行時間分布が前記予測時間領域と比較して逸脱する場合には、該アプリケーション処理プログラムに対してアラームを出力することが好ましい。
ここで、アプリケーション処理プログラム毎の性能目標となる予測時間領域とは、処理時間の上限を定めるもの、下限を定めるもの、上下限を定めるもの、いくつかの時間を定めるもの、いくつかの時間領域を定めるものが例として挙げられる。
ここで、アプリケーション処理プログラム毎の性能目標となる予測時間領域とは、処理時間の上限を定めるもの、下限を定めるもの、上下限を定めるもの、いくつかの時間を定めるもの、いくつかの時間領域を定めるものが例として挙げられる。
また、本発明の計算機ソフトウェア設計支援方法において、アプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布のシミュレーションは、条件実行される1以上の各タスクに対して、それぞれの実行確率が定義されることにより、実行時間分布が生じることが好ましい。
ここで、条件実行される1以上の各タスクに対してそれぞれの実行確率が定義されるとは、例えば、条件によって2つの処理に分かれる場合、条件によって実行されるタスクが異なることになることから、条件によって実行時間が変わることになる。そこで、それぞれのタスクの実行確率を定義することで、条件によって処理が分かれるロジックを備えるアプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布をシミュレーションすることにしたのである。
ここで、条件実行される1以上の各タスクに対してそれぞれの実行確率が定義されるとは、例えば、条件によって2つの処理に分かれる場合、条件によって実行されるタスクが異なることになることから、条件によって実行時間が変わることになる。そこで、それぞれのタスクの実行確率を定義することで、条件によって処理が分かれるロジックを備えるアプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布をシミュレーションすることにしたのである。
また、本発明の計算機ソフトウェア設計支援方法において、アプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布のシミュレーションは、複数のタスクで共通アクセスされるハードウェアリソースに対して、排他制御を行うことにより、実行時間分布が生じることが好ましい。
複数のタスクで共通アクセスされるハードウェアリソースに対して排他制御を行う場合、通常、フラグやセマフォやトークンなどを用いて排他制御を行う。このフラグの値が変化するまでの時間やセマフォなど取得までの時間が処理待ち時間となる。この処理待ち時間は、タスクの実行状況によって変化するため実行時間分布が生じることになるのである。
複数のタスクで共通アクセスされるハードウェアリソースに対して排他制御を行う場合、通常、フラグやセマフォやトークンなどを用いて排他制御を行う。このフラグの値が変化するまでの時間やセマフォなど取得までの時間が処理待ち時間となる。この処理待ち時間は、タスクの実行状況によって変化するため実行時間分布が生じることになるのである。
次に、本発明の計算機ソフトウェアシステム設計支援装置について説明する。
本発明の計算機ソフトウェアシステム設計支援装置は、アプリケーション処理プログラムを構成するタスク毎の優先度,起動周期,実行時間,実行回数を定義してタスク情報データベースとして登録するタスク定義入力手段と、アプリケーション処理プログラム毎に用いるタスクの実行フローを、予め登録されているフロー定義部品を用いて定義して、プログラム定義データベースとして登録するプログラム定義入力手段と、タスク情報データベースとプログラム定義データベースおよびフロー定義部品が格納されているフロー定義部品データベースを用いて、アプリケーション処理プログラム毎の実行時間分布をシミュレーションする実行時間分布シミュレーション手段と、システムの性能評価結果を表示する結果表示手段と、を備える。
本発明の計算機ソフトウェアシステム設計支援装置は、アプリケーション処理プログラムを構成するタスク毎の優先度,起動周期,実行時間,実行回数を定義してタスク情報データベースとして登録するタスク定義入力手段と、アプリケーション処理プログラム毎に用いるタスクの実行フローを、予め登録されているフロー定義部品を用いて定義して、プログラム定義データベースとして登録するプログラム定義入力手段と、タスク情報データベースとプログラム定義データベースおよびフロー定義部品が格納されているフロー定義部品データベースを用いて、アプリケーション処理プログラム毎の実行時間分布をシミュレーションする実行時間分布シミュレーション手段と、システムの性能評価結果を表示する結果表示手段と、を備える。
かかる構成によれば、携帯電話や情報家電など多くのアプリケーション処理プログラムを搭載したシステムの性能予測について、設計段階において事前検証することができる。
上記のアプリケーション処理プログラムを構成するタスク毎の優先度,起動周期,実行時間,実行回数を定義してタスク情報データベースとして登録するタスク定義入力手段について説明する。ここで、アプリケーション処理プログラムはシステムが持つ機能をコンピュータに実現させるためのものである。また、タスクは機能をコンピュータに実現させるためのコンポーネントとなる処理のことをいう。タスクの優先度とは、実行可能なタスクが複数存在する場合にコンピュータに実行させる順番を決定するための指標である。また、タスクの起動周期とは、周期的にタスクを起動させる場合はその起動時間間隔をいう。タスクがイベントにより動作する処理である場合は起動周期を例えば0(ゼロ)とする。タスクの実行時間とは、コンピュータがタスクを実行する予測時間である。この予測時間は、タスクが行う処理ボリュームやタスクがハードウェアリソースにアクセスする場合はその処理待ち時間を考慮する。また、タスクの実行回数とは、周期的に起動されるタスクの実行回数やエラーリトライするタスクのリトライ回数をいう。
上記のアプリケーション処理プログラムを構成するタスク毎の優先度,起動周期,実行時間,実行回数を定義してタスク情報データベースとして登録するタスク定義入力手段について説明する。ここで、アプリケーション処理プログラムはシステムが持つ機能をコンピュータに実現させるためのものである。また、タスクは機能をコンピュータに実現させるためのコンポーネントとなる処理のことをいう。タスクの優先度とは、実行可能なタスクが複数存在する場合にコンピュータに実行させる順番を決定するための指標である。また、タスクの起動周期とは、周期的にタスクを起動させる場合はその起動時間間隔をいう。タスクがイベントにより動作する処理である場合は起動周期を例えば0(ゼロ)とする。タスクの実行時間とは、コンピュータがタスクを実行する予測時間である。この予測時間は、タスクが行う処理ボリュームやタスクがハードウェアリソースにアクセスする場合はその処理待ち時間を考慮する。また、タスクの実行回数とは、周期的に起動されるタスクの実行回数やエラーリトライするタスクのリトライ回数をいう。
タスク情報データベースは、これらの優先度,起動周期,実行時間,実行回数の情報を、タスク毎に割り当てられたユニークな識別番号により参照できるデータベースである。なお、タスク毎に割り当てられたユニークな識別番号はユニークなタスク名でもよい。
次に、上記のアプリケーション処理プログラム毎に用いるタスクの実行フローを、予め登録されているフロー定義部品を用いて定義して、プログラム定義データベースとして登録するプログラム定義入力手段について説明する。ここで、アプリケーション処理プログラムとは、例えば、携帯電話の場合には、ブラウザ機能を実現するプログラムや、電子メール機能を実現するプログラムや、通話機能を実現するプログラムなどをいう。アプリケーション処理プログラムを構成するタスクの実行フローとは、アプリケーション処理プログラムを構成する1以上のタスクの実行順序、繰り返し、条件分岐、タスク間のリソースの排他制御などをフローチャートの如く示したものをいう。
また、フロー定義部品とは、タスクの実行順序、繰り返し、条件分岐、タスク間のリソースの排他制御などを、それぞれシンボル図形化したものであり、繰り返し回数、条件分岐の確率、排他制御のタイムアウトなどのパラメータを有するものである。
また、プログラム定義データベースとは、該プログラムが使用するフロー定義部品とそのパラメータ、該プログラムがアクセスするリソース、該プログラムを構成するタスクの識別番号をプログラム毎に割り当てられたユニークな識別番号により参照できるデータベースである。なお、プログラム毎に割り当てられたユニークな識別番号はユニークなプログラム名でもよい。
また、プログラム定義データベースとは、該プログラムが使用するフロー定義部品とそのパラメータ、該プログラムがアクセスするリソース、該プログラムを構成するタスクの識別番号をプログラム毎に割り当てられたユニークな識別番号により参照できるデータベースである。なお、プログラム毎に割り当てられたユニークな識別番号はユニークなプログラム名でもよい。
次に、上記のタスク情報データベースとプログラム定義データベースおよびフロー定義部品が格納されているフロー定義部品データベースを用いて、アプリケーション処理プログラム毎の実行時間をシミュレーションする実行時間分布シミュレーション手段について説明する。アプリケーション処理プログラム毎の実行時間分布のシミュレーションは、該プログラムに対応するプログラム定義データベースから、使用されるタスクと使用されるフロー定義部品を認識し、該タスクに対応するタスク情報データベースから優先度や実行時間などを認識し、また該フロー定義部品に対応するフロー定義部品データベースから処理内容とパラメータを認識する。
そして、認識したタスクの優先度や実行時間、認識した実行順序などに基づいて、タスクの実行フローにしたがって、各タスクの実行時間を加算していくことにより、アプリケーション処理プログラム毎の実行時間をシミュレーションする。
1つのアプリケーション処理プログラムを搭載するシステムの場合、そのアプリケーション処理プログラムを構成するタスクの実行フローにしたがって、順番に実行時間を加算していく。タスクが処理待ち時間を要するリソースにアクセスする場合は、その処理待ち時間も加算する。
1つのアプリケーション処理プログラムを搭載するシステムの場合、そのアプリケーション処理プログラムを構成するタスクの実行フローにしたがって、順番に実行時間を加算していく。タスクが処理待ち時間を要するリソースにアクセスする場合は、その処理待ち時間も加算する。
一方、複数のアプリケーション処理プログラムを搭載するシステムの場合、アプリケーション処理プログラム毎にタスクの実行フローが複数存在する。実行フローが複数存在する場合、実行可能なタスクが複数存在するケースも有り得る。この場合、例えば、1方の実行フローのタスクでリソースの処理待ち時間が生じた場合や特定条件が成立するまで処理を待つアルゴリズムを有する場合は、他方の実行フローで実行可能なタスクに切り替わり当該タスクが実行されるとして実行時間を加算する。また、オペレーティングシステム(OS)によって優先度の高いものが実行されることから、例えば、1方の実行フローで実行可能なタスクの優先度と他方の実行フローで実行可能なタスクの優先度とを比べて、優先度の高い側のタスクが実行されるとして実行時間を加算する。
次に、上記のシステムの性能評価結果を表示する結果表示手段について説明する。シミュレーションした結果のプログラム毎の実行時間分布は、実行最小時間、実行最大時間、発生頻度をグラフや表にして装置に付属する液晶パネルなどの表示画面に結果を表示する。また、シミュレーション結果は、プログラム毎あるいはプログラムのバージョン毎に異なるファイルとして保存される。
また、上記の計算機ソフトウェアシステム設計支援装置において、アプリケーション処理プログラム毎の性能目標情報として、アプリケーション処理プログラム毎に予測時間領域を上記のプログラム定義データベースに定義する性能目標情報定義手段を更に備えることが好ましい。
性能目標情報とは、最小実行時間、実行最大時間、平均実行時間、分布度合いである。
性能目標情報とは、最小実行時間、実行最大時間、平均実行時間、分布度合いである。
また、上記の計算機ソフトウェアシステム設計支援装置における結果表示手段は、シミュレーション結果の前記実行時間分布が前記予測時間領域と比較して逸脱する場合には、該アプリケーション処理プログラムに対してアラームを出力することが好ましい。
ここで、アプリケーション処理プログラム毎の性能目標となる予測時間領域とは、処理時間の上限を定めるもの、下限を定めるもの、上下限を定めるもの、いくつかの時間を定めるもの、いくつかの時間領域を定めるものが例として挙げられる。
ここで、アプリケーション処理プログラム毎の性能目標となる予測時間領域とは、処理時間の上限を定めるもの、下限を定めるもの、上下限を定めるもの、いくつかの時間を定めるもの、いくつかの時間領域を定めるものが例として挙げられる。
また、上記の計算機ソフトウェアシステム設計支援装置におけるタスク定義入力手段において、タスク毎に起動オフセット時間,実時間属性およびタイムスライス時間を、タスク情報データベースに更に登録できる手段を備えることが好ましい。
ここで、起動オフセット時間とはタスクが起動するまでの遅れ時間である。主メモリに常駐するタスクの場合、遅れ時間は無視できるが、起動される度にハードディスクから処理コードが読み込まれる非常駐のタスクの場合は遅れ時間も考慮して設計を行うことが、システム全体の性能評価を正しく行えることになる。
また、実時間属性とは、本明細書において、割り込みのようなイベント駆動型のタスク、すなわちリアルタイム性が要求されるタスクか、周期的に処理を行うような周期駆動型のタスク、すなわち周期性が要求されるタスクか、CPU時間を実行可能な全てのタスクに分配するラウンドロビン方式が要求されるタスクか否かのタスクの属性を意味する。
ここで、起動オフセット時間とはタスクが起動するまでの遅れ時間である。主メモリに常駐するタスクの場合、遅れ時間は無視できるが、起動される度にハードディスクから処理コードが読み込まれる非常駐のタスクの場合は遅れ時間も考慮して設計を行うことが、システム全体の性能評価を正しく行えることになる。
また、実時間属性とは、本明細書において、割り込みのようなイベント駆動型のタスク、すなわちリアルタイム性が要求されるタスクか、周期的に処理を行うような周期駆動型のタスク、すなわち周期性が要求されるタスクか、CPU時間を実行可能な全てのタスクに分配するラウンドロビン方式が要求されるタスクか否かのタスクの属性を意味する。
また、上記の計算機ソフトウェアシステム設計支援装置におけるタスク定義入力手段において、タスク実行時間の分布情報を見積り実行時間とその重み付けの1セットとして複数セットを分布情報として登録できる手段を備えることが好ましい。
重み付けは、見積り実行時間になる確率で表現してもよい。タスクによっては、常に一定の実行時間で処理を終わるものではないものも存在することに着眼して、タスク実行時間の分布情報を加えるものである。タスク実行時間の分布情報とは、実行時間のバラツキ分布や、実行時間の確率分布や、ガウス分布などの数式で示す分布情報などである。なお、タスク実行時間の分布情報は、タスクの実行時間のバラツキを表すものであれば、これらに限定されずとも構わない。
重み付けは、見積り実行時間になる確率で表現してもよい。タスクによっては、常に一定の実行時間で処理を終わるものではないものも存在することに着眼して、タスク実行時間の分布情報を加えるものである。タスク実行時間の分布情報とは、実行時間のバラツキ分布や、実行時間の確率分布や、ガウス分布などの数式で示す分布情報などである。なお、タスク実行時間の分布情報は、タスクの実行時間のバラツキを表すものであれば、これらに限定されずとも構わない。
また、上記の計算機ソフトウェアシステム設計支援装置におけるタスク定義入力手段において、処理待ち時間が発生するハードウェアリソースの処理待ち時間の見積り時間を登録する処理待ち時間登録手段を更に備えることが好ましい。
ここで、ハードウェアリソースとは、上述したように、共有メモリ、フラッシュメモリなどの不揮発性の半導体メモリ、USBメモリ、ハードディスクなどをいう。また、ハードウェアリソースのアクセス時間とは、リソースにアクセスするための書き込み時間、読み込み時間などの処理待ち時間である。
また、ハードウェアリソースは複数のタスクで共通アクセスされるリソースであることがより好ましい。複数のタスクで共通アクセスされるリソースで排他制御ロジックを要する場合、排他制御の処理待ち時間を含む。なお、排他制御ロジックにはタイムアウト時間を設定しても構わない。複数のタスクで共通アクセスされるハードウェアリソースに対して排他制御を行う場合、通常、フラグやセマフォやトークンなどを用いて排他制御を行う。このフラグの値が変化するまでの時間やセマフォなど取得までの時間が処理待ち時間となる。この処理待ち時間は、タスクの実行状況によって変化するため実行時間分布が生じることになるのである。
ここで、ハードウェアリソースとは、上述したように、共有メモリ、フラッシュメモリなどの不揮発性の半導体メモリ、USBメモリ、ハードディスクなどをいう。また、ハードウェアリソースのアクセス時間とは、リソースにアクセスするための書き込み時間、読み込み時間などの処理待ち時間である。
また、ハードウェアリソースは複数のタスクで共通アクセスされるリソースであることがより好ましい。複数のタスクで共通アクセスされるリソースで排他制御ロジックを要する場合、排他制御の処理待ち時間を含む。なお、排他制御ロジックにはタイムアウト時間を設定しても構わない。複数のタスクで共通アクセスされるハードウェアリソースに対して排他制御を行う場合、通常、フラグやセマフォやトークンなどを用いて排他制御を行う。このフラグの値が変化するまでの時間やセマフォなど取得までの時間が処理待ち時間となる。この処理待ち時間は、タスクの実行状況によって変化するため実行時間分布が生じることになるのである。
また、上記の計算機ソフトウェアシステム設計支援装置において、プログラム定義入力手段は、前記フロー定義部品データベースに登録された部品を用いて、繰り返し処理,条件分岐処理,並列実行処理を少なくとも定義入力できることがより好ましい。
ここで、条件分岐処理は、条件実行される1以上の各タスクに対して、それぞれの実行確率を定義できることが好ましい。
条件実行される1以上の各タスクに対してそれぞれの実行確率が定義されるとは、例えば、条件によって2つの処理に分かれる場合、条件によって実行されるタスクが異なることになることから、条件によって実行時間が変わることになる。そこで、それぞれのタスクの実行確率を定義することで、条件によって処理が分かれるロジックを備えるアプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布をシミュレーションすることにしたのである。
条件実行される1以上の各タスクに対してそれぞれの実行確率が定義されるとは、例えば、条件によって2つの処理に分かれる場合、条件によって実行されるタスクが異なることになることから、条件によって実行時間が変わることになる。そこで、それぞれのタスクの実行確率を定義することで、条件によって処理が分かれるロジックを備えるアプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布をシミュレーションすることにしたのである。
また、並列実行処理は、並列に実行される全てのタスクが終了した場合のみ、その後の処理が進むパルドタイプ並列実行と、並列実行される全てのタスクが終了しなくても進むスプリットタイプ並列実行と、を備えることが好ましい。
ソフトウェア、特にデバイス機器に組み込まれる組み込みソフトウェアでは、CPU能力が低い、メモリが少ないなどの厳しいハードウェア制約の中でソフトウェアを設計する必要がある。
本発明によれば、ソフトウェアモジュールの設計・製作・デバイスに組込みを行った段階で初めてシステム全体の性能が未達成であることが判明するといった事態を回避でき、ソフトウェア製作の膨大な後戻り工程やそれに伴うコストを削減できるといった効果を有する。
本発明によれば、ソフトウェアモジュールの設計・製作・デバイスに組込みを行った段階で初めてシステム全体の性能が未達成であることが判明するといった事態を回避でき、ソフトウェア製作の膨大な後戻り工程やそれに伴うコストを削減できるといった効果を有する。
以下、本発明の実施形態について、図面を参照しながら詳細に説明していく。なお、本発明の範囲は、以下の実施例や図示例に限定されるものではなく、幾多の変更及び変形が可能である。
図1は、本発明の計算機ソフトウェア設計支援方法の処理フローを示している。
本発明の計算機ソフトウェア設計支援方法は、1以上のアプリケーション処理プログラムを搭載するスタンドアロンのシステムに関する性能予測を以下のステップで行う。
(ステップ1)それぞれのアプリケーション処理プログラムを構成するタスク毎に、優先度,起動周期,実行時間,実行回数を定義する。
(ステップ2)アプリケーション処理プログラム毎に、プログラムを構成するタスクの実行フローを定義する。
(ステップ3)タスク毎に定義された優先度,起動周期,実行時間,実行回数を用いて、それぞれのアプリケーション処理プログラム毎に、タスクの実行フローの実行時間を算出する。
(ステップ4)全てのアプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布に基づいて、システムの性能予測を行う。
本発明の計算機ソフトウェア設計支援方法は、1以上のアプリケーション処理プログラムを搭載するスタンドアロンのシステムに関する性能予測を以下のステップで行う。
(ステップ1)それぞれのアプリケーション処理プログラムを構成するタスク毎に、優先度,起動周期,実行時間,実行回数を定義する。
(ステップ2)アプリケーション処理プログラム毎に、プログラムを構成するタスクの実行フローを定義する。
(ステップ3)タスク毎に定義された優先度,起動周期,実行時間,実行回数を用いて、それぞれのアプリケーション処理プログラム毎に、タスクの実行フローの実行時間を算出する。
(ステップ4)全てのアプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布に基づいて、システムの性能予測を行う。
アプリケーション処理プログラムとタスクの関係について、図2を用いて説明する。
図2は、アプリケーション処理プログラムの一例を示す機能ブロック図である。
図2のアプリケーション処理プログラムでは、処理タスク1と処理タスク2で構成されている。処理タスク1は、メッセージキュー1からメッセージデータ3を取り出し、メッセージデータ3を加工して共有メモリ5にデータを書き込む処理を行うものとする。また、処理タスク2は、共有メモリ5からデータを読み込み、データを加工して、フラッシュメモリ6にデータを書き込む処理と、場合によってはフラッシュメモリ6からデータを読み出して、メッセージキュー2に送る処理を行うものとする。
図2は、アプリケーション処理プログラムの一例を示す機能ブロック図である。
図2のアプリケーション処理プログラムでは、処理タスク1と処理タスク2で構成されている。処理タスク1は、メッセージキュー1からメッセージデータ3を取り出し、メッセージデータ3を加工して共有メモリ5にデータを書き込む処理を行うものとする。また、処理タスク2は、共有メモリ5からデータを読み込み、データを加工して、フラッシュメモリ6にデータを書き込む処理と、場合によってはフラッシュメモリ6からデータを読み出して、メッセージキュー2に送る処理を行うものとする。
このようなアプリケーション処理プログラムにおいては、上記(ステップ1)に従って、まず処理タスク1と処理タスク2の2つのタスクに関して、優先度,起動周期,実行時間,実行回数を定義することになる。
ここで、処理タスク1がメッセージ駆動型のタスクとし、処理タスク2が周期的駆動型のタスクとして設計されるとする。処理タスク1の起動周期は0(ゼロ)で、処理タスク2の起動周期を例えば10msとする。また、メッセージ駆動型の処理タスク1は、一般的に、優先度が高く設計される。また、処理が1回だけ行われる場合、実行回数は1であり、複数回処理が繰り返される場合、実行回数はn回となる。
ここで、処理タスク1がメッセージ駆動型のタスクとし、処理タスク2が周期的駆動型のタスクとして設計されるとする。処理タスク1の起動周期は0(ゼロ)で、処理タスク2の起動周期を例えば10msとする。また、メッセージ駆動型の処理タスク1は、一般的に、優先度が高く設計される。また、処理が1回だけ行われる場合、実行回数は1であり、複数回処理が繰り返される場合、実行回数はn回となる。
実行時間に関しては、処理タスク1の場合、タスクの行う処理、すなわち、メッセージキュー1からデータの取り出し処理、共有メモリ5への書き込み処理、それぞれの見積り時間を予測して決定する。また、処理タスク2の場合、共有メモリ5からデータを読み込み処理、フラッシュメモリ6にデータを書き込む処理、メッセージキュー2にデータを送る処理、それぞれの見積り時間を予測して決定する。
ここで、共有メモリの書き込み処理、読み込み処理、フラッシュメモリのアクセス処理などに処理待ち時間があればそれらを考慮して見積り時間を予測する。また、処理タスク1と処理タスク2がそれぞれ書き込み・読み込みを行う共有メモリ5に排他制御が行われる場合、制御権を受け取るまでの処理待ち時間も考慮して見積り時間を予測する。
ここで、共有メモリの書き込み処理、読み込み処理、フラッシュメモリのアクセス処理などに処理待ち時間があればそれらを考慮して見積り時間を予測する。また、処理タスク1と処理タスク2がそれぞれ書き込み・読み込みを行う共有メモリ5に排他制御が行われる場合、制御権を受け取るまでの処理待ち時間も考慮して見積り時間を予測する。
図3(1)は、アプリケーション処理プログラムの実行フローに用いるタスクの種類の一例を示している。タスクは見積り予測が可能な単位に細かく定義する。タスクを繰り返し実行するものや、条件によってケース分けして多数を実行するものや、タスクを並列に実行するものなど定義する。
また、図3(2)は、ハードウェアリソースの一例を示している。ハードウェアリソースには、リソースにアクセスするためのタスクの処理待ち時間が属性情報として付与されている。
また、図3(2)は、ハードウェアリソースの一例を示している。ハードウェアリソースには、リソースにアクセスするためのタスクの処理待ち時間が属性情報として付与されている。
次に、アプリケーション処理プログラムを構成するタスクの実行フローについて図4〜10を参照して説明する。
まず、繰り返しタスクの実行フローの一例を示す。図4は繰り返しタスクの実行フローの一例を示している。例えば、初期化処理タスク10が10μsec、プロセストランザクションタスク12が20μsec、終了セッションタスク14が5μsecの見積り時間で、繰り返しタスク16の繰り返し回数n=5とした場合、図4に示す実行フローの実行時間は、10+20×5+5=115μsecとなる。
まず、繰り返しタスクの実行フローの一例を示す。図4は繰り返しタスクの実行フローの一例を示している。例えば、初期化処理タスク10が10μsec、プロセストランザクションタスク12が20μsec、終了セッションタスク14が5μsecの見積り時間で、繰り返しタスク16の繰り返し回数n=5とした場合、図4に示す実行フローの実行時間は、10+20×5+5=115μsecとなる。
次に、ケースタスクの実行フローの一例を示す。図5はケースタスクの実行フローの一例を示している。例えば、トランザクション取得タスク20が15μsec、プロセスAタスク22が20μsec、プロセスBタスク24が40μsec、プロセスCタスク26が25μsecの見積り時間で、ケースタスク28の分岐確率a〜cがそれぞれ0.5,0.3,0.2とした場合、図5に示す実行フローの実行時間は、最小実行時間が15+20=35μsec、最大実行時間が15+40=55μsecで、実行時間分布が35μsec,55μsec,15+25=40μsecがそれぞれの確率で現れる分布となる。
次に、パルドタスクの実行フローの一例を示す。図6はパルドタスクの実行フローの一例を示している。例えば、ユーザ入力操作タスク30が5μsec、リモートクエリー表示タスク32が15μsec、クエリー結果をスクリーンに表示させるタスク34が25μsec、入力データを表示データとするタスク36が10μsec、ディスプレイ表示タスク38が20μsecの見積り時間の場合、図6に示す実行フローの実行時間は、5+25+10+20=60μsecとなる。なお、パルドタスク31は付属するタスク32とタスク34が並列実行され、それらのタスクが全て終了しないと先に処理が進まないロジックを備えるものである。
次に、共有メモリを排他制御するタスクの実行フローの一例を示す。図7は、データ入力し共有メモリに書き込む2つのプログラムのタスクの実行フローの一例を示している。2つのアプリケーション処理プログラムは、繰り返しタスク41とデータ入力タスク42と書込みデータタスク43の実行フローで構成されるプログラムと、繰り返しタスク46とデータ入力タスク47と書込みデータタスク48の実行フローで構成されるプログラムである。例えば、書込みデータタスク43の実行時間は20μsecで、書込みデータタスク48の実行時間は25μsecとすると、それぞれの書込みデータタスクは他方の書込みデータタスクが共有メモリ40に書込み中は処理待ちとなるため、書込みデータタスク43の実行時間は最小実行時間が20μsec、最大実行時間が20+25=45μsecとなり、書込みデータタスク48の実行時間は最小実行時間が25μsec、最大実行時間が25+20=45μsecとなる。
また、図8は、共有メモリにデータを書き込む処理と読み込む処理の2つのプログラムのタスクの実行フローの一例を示している。2つのアプリケーション処理プログラムは、繰り返しタスク51とデータ入力タスク52と書込みデータタスク53の実行フローで構成されるプログラムと、繰り返しタスク56と読込みデータタスク57とスクリーン表示タスク58の実行フローで構成されるプログラムである。共有メモリ50に一方のプログラムがデータを書き込んで、他方のプログラムが書き込まれたデータを読み込んで処理する場合を想定する。例えば、データ入力タスク52の実行時間は10μsec、書込みデータタスク53の実行時間は20μsec、読込みデータタスク57の実行時間は15μsec、スクリーン表示タスク58の実行時間は25μsecとすると、データ入力してそれがスクリーン表示されるまでの最小実行時間は10+20+15+25=70μsecとなる。
ここで、データ入力タスク52の優先度と読込みデータタスク57の優先度が異なる場合を考える。仮に、データ入力タスク52が、読込みデータタスク57より優先される場合、データ入力してそれがスクリーン表示されるまでの最小実行時間は10+20+10+15+25=80μsecとなる。書込みデータタスク53が終了した後、繰り返しによって再びデータ入力タスク52が動作しそれが終了するまで、読込みデータタスク57が動作しないからである。なお、データ入力タスク10が、スクリーン表示タスク58より優先される場合も同様となる。
次に、フラッシュメモリにアクセスするタスクの実行フローの一例を示す。図9は、データ格納しそれをテンポラリメモリあるいはフラッシュメモリに格納するプログラムのタスクの実行フローの一例を示している。例えば、データ格納タスク60の実行時間は15μsec、テンポラリメモリへ格納タスク62の実行時間は20μsec、フラッシュメモリの処理待ち時間を50μsecと見積ってフラッシュメモリへ格納タスク63の実行時間は70μsec、終了セッションタスク65の実行時間は5μsec、ケースタスク61の分岐確率がそれぞれ0.8と0.2とすると、図9に示す実行フローの実行時間は、最小実行時間が15+20=40μsec、最大実行時間が15+70+5=90μsecで、実行時間分布が40μsec,90μsecがそれぞれの確率で現れる分布となる。
次に、メッセージキューからメッセージを受け取るタスクの実行フローの一例を示す。図10は、メッセージキュー70からメッセージ受信しサービスを行うプログラムのタスクの実行フローの一例を示している。例えば、メッセージ受信タスク71の実行時間は10μsec、サービス処理タスク72の実行時間は50μsec、終了セッションタスク73の実行時間は5μsecとすると、図10に示す実行フローの実行時間は、10+50+5=65μsecとなる。
(映像再生装置)
図11に映像再生装置のアプリケーション処理プログラムの機能ブロック図を示す。図11には、ファイル読込みタスク,映像復号タスク,映像表示タスク,音声復号タスク,音声再生タスクおよび共有メモリが示され、それぞれのタスクの起動周期および起動遅延、共有メモリの待ち時間およびアクセス単位が示されている。
まず、ファイル読込みタスクが共有メモリから読み込んだデータを他の共有メモリに書込む。次に、映像復号タスクと音声復号タスクがそれぞれ共有メモリのデータを取り出して復号し、それぞれ映像表示タスクと音声再生タスクに共有メモリを介して渡す。
図12は、図11の機能ブロックをタスクの実行フローに書き換えたものである。音声処理プログラムと映像処理プログラムの2つのプログラムに分け、それぞれのタスクの実行フローを示している。共有メモリ1〜5について排他制御は行っていない。またファイル読込みタスク(80,86)は共通のタスクである。
図11に映像再生装置のアプリケーション処理プログラムの機能ブロック図を示す。図11には、ファイル読込みタスク,映像復号タスク,映像表示タスク,音声復号タスク,音声再生タスクおよび共有メモリが示され、それぞれのタスクの起動周期および起動遅延、共有メモリの待ち時間およびアクセス単位が示されている。
まず、ファイル読込みタスクが共有メモリから読み込んだデータを他の共有メモリに書込む。次に、映像復号タスクと音声復号タスクがそれぞれ共有メモリのデータを取り出して復号し、それぞれ映像表示タスクと音声再生タスクに共有メモリを介して渡す。
図12は、図11の機能ブロックをタスクの実行フローに書き換えたものである。音声処理プログラムと映像処理プログラムの2つのプログラムに分け、それぞれのタスクの実行フローを示している。共有メモリ1〜5について排他制御は行っていない。またファイル読込みタスク(80,86)は共通のタスクである。
例えば、ファイル読込みタスク(80,86)の実行時間は20μsec、音声復号タスク82の実行時間は10μsec、音声再生タスク83の実行時間は30μsec、映像復号タスク87の実行時間は40μsec、映像表示タスク88の実行時間は60μsecとすると、音声処理プログラムの最小実行時間は60μsec、映像処理プログラムの最小実行時間は120μsecとなる。また、最大実行時間は、処理が起動周期時間分遅れるとし、さらに起動遅延時間も加わるとして算出する。音声処理プログラムの場合は、(2+1)+(4+1)+(16+1)=25msecを最小実行時間に加算して最大実行時間を算出する。映像処理プログラムの場合は、(2+1)+(4+1)+(16+1)=25msecを最小実行時間に加算して最大実行時間を算出する。それぞれのタスクの起動周期が異なるために実行時間にはバラツキが生じることになるのである。
実施例2では、計算機ソフトウェアシステム設計支援装置の一態様について説明する。
計算機ソフトウェアシステム設計支援装置は、汎用のデスクトップ型コンピュータやノート型コンピュータで構成される。
図16は、計算機ソフトウェアシステム設計支援装置の機能ブロック図を示している。
計算機ソフトウェアシステム設計支援装置は、図16の破線で囲まれたタスク情報データベースとプログラム定義データベースおよびフロー定義部品データベースを備える。これらのデータベースは、通常、計算機ソフトウェアシステム設計支援装置のハードディスクに保存される。
タスク情報データベースは、アプリケーション処理プログラムを構成するタスク毎のタスク名,優先度,起動オフセット,起動周期,実時間属性,実行時間,タイムスライス,実行回数の情報を、タスク毎に割り当てられたユニークなタスク名により参照できるデータベースである。
計算機ソフトウェアシステム設計支援装置は、汎用のデスクトップ型コンピュータやノート型コンピュータで構成される。
図16は、計算機ソフトウェアシステム設計支援装置の機能ブロック図を示している。
計算機ソフトウェアシステム設計支援装置は、図16の破線で囲まれたタスク情報データベースとプログラム定義データベースおよびフロー定義部品データベースを備える。これらのデータベースは、通常、計算機ソフトウェアシステム設計支援装置のハードディスクに保存される。
タスク情報データベースは、アプリケーション処理プログラムを構成するタスク毎のタスク名,優先度,起動オフセット,起動周期,実時間属性,実行時間,タイムスライス,実行回数の情報を、タスク毎に割り当てられたユニークなタスク名により参照できるデータベースである。
また、プログラム定義データベースは、プログラムが使用するフロー定義部品とそのパラメータ、該プログラムがアクセスするリソース、プログラムを構成するタスク名をプログラム毎に割り当てられたユニークなプログラム名により参照できるデータベースである。
また、フロー定義部品データベースは、繰り返し回数、条件分岐の確率、排他制御のタイムアウトなどのフロー定義部品のパラメータ情報を、タスクの実行順序、繰り返し、条件分岐、タスク間のリソースの排他制御などのフロー定義部品に割り当てられたユニークな番号により参照できるデータベースである。
また、図16に示すように、計算機ソフトウェアシステム設計支援装置は、タスク毎にタスク情報を定義してタスク情報データベースとして登録するタスク定義入力手段と、プログラム毎に用いるタスクの実行フローを予め登録されているフロー定義部品を用いて定義してプログラム定義データベースとして登録するプログラム定義入力手段とを備える。
また、アプリケーション処理プログラム毎の実行時間分布をシミュレーションするプログラムの実行時間分布シミュレーション手段と、システムの性能評価結果表示手段を備える。
また、アプリケーション処理プログラム毎の実行時間分布をシミュレーションするプログラムの実行時間分布シミュレーション手段と、システムの性能評価結果表示手段を備える。
以下、計算機ソフトウェアシステム設計支援装置の操作メニューならびに画面を参照しながら説明する。
図17および図18は、それぞれプロジェクトの作成メニューとプロジェクトの作成画面を示している。計算機ソフトウェアシステム設計支援装置は、設計対象デバイスもしくは設計対象システムをプロジェクト単位に管理する。従って、最初にプロジェクトを作成する。
図17および図18は、それぞれプロジェクトの作成メニューとプロジェクトの作成画面を示している。計算機ソフトウェアシステム設計支援装置は、設計対象デバイスもしくは設計対象システムをプロジェクト単位に管理する。従って、最初にプロジェクトを作成する。
次に、アプリケーション処理プログラムとそれを構成する個々のタスクを定義する画面について説明する。タスクの定義は、UML(Unified Modeling Language)2.0に沿ったクラス図を描いて定義する。UMLは、オブジェクト指向のソフトウェア開発における、プログラム設計図の統一表記法である。
また、アプリケーション処理プログラムの定義は、アプリケーション処理プログラム毎に用いるタスクの実行フローを、予め登録されているフロー定義部品を用いて定義することである。このタスクの実行フローをソフトウェア実行モデルと称している。
図19と図20は、それぞれタスク作成メニューとUML2.0に沿ったタスク作成画面を示している。また図21は、アプリケーション処理プログラムの定義画面である。
また、アプリケーション処理プログラムの定義は、アプリケーション処理プログラム毎に用いるタスクの実行フローを、予め登録されているフロー定義部品を用いて定義することである。このタスクの実行フローをソフトウェア実行モデルと称している。
図19と図20は、それぞれタスク作成メニューとUML2.0に沿ったタスク作成画面を示している。また図21は、アプリケーション処理プログラムの定義画面である。
次に、性能要求解析について説明する。図22は性能要求解析メニューを示している。メニューから性能要求解析を選択すると、図23のシミュレーション情報入力画面が表示される。図23のシミュレーション情報入力画面を用いて、シミュレーション動作環境情報を入力する。具体的には、シミュレート時間とスケジューリング方式を入力する。
図23の画面において、画面内の“性能目標情報”タブを選択すると、図24の性能目標情報一覧画面が表示される。性能目標情報として、プログラムの時間制約、ここでは実行時間の上限が表示される。
個々のタスクの性能目標情報は、図25の性能目標情報入力画面を用いて作成する。
図23の画面において、画面内の“性能目標情報”タブを選択すると、図24の性能目標情報一覧画面が表示される。性能目標情報として、プログラムの時間制約、ここでは実行時間の上限が表示される。
個々のタスクの性能目標情報は、図25の性能目標情報入力画面を用いて作成する。
次に、タスク情報について説明する。
図23の画面において、画面内の“タスク情報”タブを選択すると、図26のタスク情報一覧画面が表示される。タスク情報一覧画面では、タスク毎にタスク名,優先度,起動オフセット,起動周期,実時間属性,実行時間,タイムスライス,実行回数の情報が一覧となって表示される。
個々のタスク情報は、図27のタスク情報入力画面を用いて作成する。
図23の画面において、画面内の“タスク情報”タブを選択すると、図26のタスク情報一覧画面が表示される。タスク情報一覧画面では、タスク毎にタスク名,優先度,起動オフセット,起動周期,実時間属性,実行時間,タイムスライス,実行回数の情報が一覧となって表示される。
個々のタスク情報は、図27のタスク情報入力画面を用いて作成する。
次に、シミュレーションによる性能評価の結果表示画面について説明する。
全体情報としては、図28に示すように、シミュレート時間、実時間属性のタスク実行時間合計、CPU使用率、性能目標未達成のプログラム一覧が全体情報画面として表示される。
図28の画面において、画面内の“シーケンス”タブを選択すると、図29のシーケンス画面が表示される。図28のグラフ情報として、プログラム名、性能目標、最小実行時間、最大実行時間が表示される。シーケンス画面によれば、アプリケーション処理プログラムの実行時間分布を把握することができる。
図28又は図29の画面において、画面内の“タスクトレース”タブを選択すると、図30のタスクトレース画面が表示される。タスクトレース画面によれば、アプリケーション処理プログラムを構成するタスクの実行順序と実行時間を把握することができる。図中のグラフでは、1つのプログラムが5個のタスク(DecodeAudioタスク,DecodeVideoタスク,Timingタスク,FileReaderタスク,Playbuttonタスク)から構成され、FileReaderタスクの実行後、Timingタスクが実行される様子が示されている。
全体情報としては、図28に示すように、シミュレート時間、実時間属性のタスク実行時間合計、CPU使用率、性能目標未達成のプログラム一覧が全体情報画面として表示される。
図28の画面において、画面内の“シーケンス”タブを選択すると、図29のシーケンス画面が表示される。図28のグラフ情報として、プログラム名、性能目標、最小実行時間、最大実行時間が表示される。シーケンス画面によれば、アプリケーション処理プログラムの実行時間分布を把握することができる。
図28又は図29の画面において、画面内の“タスクトレース”タブを選択すると、図30のタスクトレース画面が表示される。タスクトレース画面によれば、アプリケーション処理プログラムを構成するタスクの実行順序と実行時間を把握することができる。図中のグラフでは、1つのプログラムが5個のタスク(DecodeAudioタスク,DecodeVideoタスク,Timingタスク,FileReaderタスク,Playbuttonタスク)から構成され、FileReaderタスクの実行後、Timingタスクが実行される様子が示されている。
本発明の計算機ソフトウェア設計支援方法および計算機ソフトウェア設計支援装置は、携帯電話端末や情報家電などスタンドアロンの計算機搭載デバイスのソフトウェア設計方法や設計支援装置として、また、自動車車載システムやロボット制御システムなどの複数の計算機で構成されるシステムに搭載されるソフトウェアの設計支援方法や設計支援装置として有用である。
1,2 メッセージキュー
3,4 データ
5 共有メモリ
6 フラッシュメモリ
11,12 タスク
3,4 データ
5 共有メモリ
6 フラッシュメモリ
11,12 タスク
Claims (20)
- 少なくとも1つのアプリケーション処理プログラムを搭載したシステムの性能予測を行う計算機ソフトウェア設計支援方法であって、
アプリケーション処理プログラムを構成するタスク毎に少なくとも優先度,起動周期,実行時間,実行回数を定義するステップと、
アプリケーション処理プログラムを構成するタスクの実行フローを定義するステップと、
前記タスク毎に定義された優先度,起動周期,実行時間,実行回数を用いて、タスクの実行フローの実行時間を算出するステップと、
アプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布からシステムの性能予測を行うステップと、
を備えたことを特徴とする計算機ソフトウェア設計支援方法。 - 前記タスクの実行時間において、タスク実行時間の分布情報が付加されたことを特徴とする請求項1に記載の計算機ソフトウェア設計支援方法。
- 前記タスク実行時間の分布情報は、見積り実行時間とその重み付けで定義されることを特徴とする請求項2に記載の計算機ソフトウェア設計支援方法。
- 前記タスク実行時間の分布情報は、該タスクがハードウェアリソースにアクセスする場合に、ハードウェアリソースのアクセス時間を含むことを特徴とする請求項2に記載の計算機ソフトウェア設計支援方法。
- 前記タスク実行時間の分布情報は、該タスクが排他制御ロジックを含む場合に、排他制御の予想待ち時間を含むことを特徴とする請求項2に記載の計算機ソフトウェア設計支援方法。
- 前記タスク実行時間は、該タスクに用いられるシステムソフトウェアのアプリケーションインタフェース関数の見積り実行時間を積み上げたものを参考指標値として用いることを特徴とする請求項2に記載の計算機ソフトウェア設計支援方法。
- 前記アプリケーション処理プログラム毎の予測時間領域を定義し、シミュレーション結果の前記実行時間分布が前記予測時間領域と比較して逸脱する場合には、該アプリケーション処理プログラムに対してアラームを出力することを特徴とする請求項1〜6のいずれかに記載の計算機ソフトウェア設計支援方法。
- 前記アプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布のシミュレーションは、条件実行される1以上の各タスクに対して、それぞれの実行確率が定義されることにより、実行時間分布が生じることを特徴とする請求項1に記載の計算機ソフトウェア設計支援方法。
- 前記アプリケーション処理プログラムの実行最小時間、実行最大時間、実行時間分布のシミュレーションは、複数のタスクで共通アクセスされるハードウェアリソースに対して、排他制御を行うことにより、実行時間分布が生じることを特徴とする請求項1に記載の計算機ソフトウェア設計支援方法。
- アプリケーション処理プログラムを構成するタスク毎の優先度,起動周期,実行時間,実行回数を定義してタスク情報データベースとして登録するタスク定義入力手段と、
アプリケーション処理プログラム毎に用いるタスクの実行フローを、予め登録されているフロー定義部品を用いて定義して、プログラム定義データベースとして登録するプログラム定義入力手段と、
前記タスク情報データベースとプログラム定義データベースおよび前記フロー定義部品が格納されているフロー定義部品データベースを用いて、アプリケーション処理プログラム毎の実行時間分布をシミュレーションする実行時間分布シミュレーション手段と、
システムの性能評価結果を表示する結果表示手段と、
を備えたことを特徴とする計算機ソフトウェアシステム設計支援装置。 - アプリケーション処理プログラム毎の性能目標情報として、アプリケーション処理プログラム毎に予測時間領域を前記プログラム定義データベースに定義する性能目標情報定義手段を更に備えたことを特徴とする請求項10に記載の計算機ソフトウェアシステム設計支援装置。
- 前記結果表示手段は、シミュレーション結果の前記実行時間分布が前記予測時間領域と比較して逸脱する場合には、該アプリケーション処理プログラムに対してアラームを出力することを特徴とする請求項11に記載の計算機ソフトウェアシステム設計支援装置。
- 前記タスク定義入力手段において、タスク毎に起動オフセット時間,実時間属性およびタイムスライス時間を、タスク情報データベースに更に登録できる手段を備えたことを特徴とする請求項10〜12のいずれかに記載の計算機ソフトウェアシステム設計支援装置。
- 前記タスク定義入力手段において、タスク実行時間の分布情報を見積り実行時間とその重み付けの1セットとして複数セットを分布情報として登録できる手段を備えたことを特徴とする請求項10〜12のいずれかに記載の計算機ソフトウェアシステム設計支援装置。
- 前記タスク定義入力手段において、見積り実行時間とその重み付けとを1セットとして、複数セットをタスク実行時間の分布情報として登録できるタスク実行時間分布情報入力手段を更に備えたことを特徴とする請求項10〜12のいずれかに記載の計算機ソフトウェアシステム設計支援装置。
- 前記タスク定義入力手段において、処理待ち時間が発生するハードウェアリソースの処理待ち時間の見積り時間を登録する処理待ち時間登録手段を更に備えたことを特徴とする請求項15に記載の計算機ソフトウェアシステム設計支援装置。
- 前記ハードウェアリソースが、複数のタスクで共通アクセスされるリソースであることを特徴とする請求項16に記載の計算機ソフトウェアシステム設計支援装置。
- 前記プログラム定義入力手段は、前記フロー定義部品データベースに登録された部品を用いて、繰り返し処理,条件分岐処理,並列実行処理を少なくとも定義入力できることを特徴とする請求項10〜12のいずれかに記載の計算機ソフトウェアシステム設計支援装置。
- 前記条件分岐処理は、条件実行される1以上の各タスクに対して、それぞれの実行確率を定義できることを特徴とする請求項18に記載の計算機ソフトウェアシステム設計支援装置。
- 前記並列実行処理には、並列に実行される全てのタスクが終了した場合のみ、その後の処理が進むパルドタイプ並列実行と、並列実行される全てのタスクが終了しなくても進むスプリットタイプ並列実行と、を備えたことを特徴とする請求項18に記載の計算機ソフトウェアシステム設計支援装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013502203A JP5374707B2 (ja) | 2011-03-02 | 2012-03-02 | 計算機ソフトウェアシステム設計支援装置 |
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011045592 | 2011-03-02 | ||
JP2011045594 | 2011-03-02 | ||
JP2011045592 | 2011-03-02 | ||
JP2011045594 | 2011-03-02 | ||
JP2013502203A JP5374707B2 (ja) | 2011-03-02 | 2012-03-02 | 計算機ソフトウェアシステム設計支援装置 |
PCT/JP2012/001478 WO2012117746A1 (ja) | 2011-03-02 | 2012-03-02 | 計算機ソフトウェアシステム設計支援装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5374707B2 true JP5374707B2 (ja) | 2013-12-25 |
JPWO2012117746A1 JPWO2012117746A1 (ja) | 2014-07-07 |
Family
ID=46757688
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013502203A Expired - Fee Related JP5374707B2 (ja) | 2011-03-02 | 2012-03-02 | 計算機ソフトウェアシステム設計支援装置 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP5374707B2 (ja) |
WO (1) | WO2012117746A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111861012A (zh) * | 2020-07-23 | 2020-10-30 | 西安奥卡云数据科技有限公司 | 一种测试任务执行时间预测方法及最优执行节点选择方法 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10437699B2 (en) | 2015-01-21 | 2019-10-08 | International Business Machines Corporation | Measuring execution time of benchmark programs in a simulated environment |
GB2545508B (en) * | 2015-12-18 | 2019-04-10 | Imagination Tech Ltd | Controlling operation of a GPU |
CN109002377A (zh) * | 2018-07-26 | 2018-12-14 | 郑州云海信息技术有限公司 | 一种处理器检测方法、处理器检测装置以及计算机设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000047884A (ja) * | 1998-07-28 | 2000-02-18 | Toshiba Corp | スケジューリング解析装置、スケジューリング解析方法及びスケジューリング解析用プログラムを記録した媒体 |
JP2002268879A (ja) * | 2001-03-07 | 2002-09-20 | Mitsubishi Electric Corp | プログラム設計支援装置、プログラム設計支援方法及びプログラム設計支援方法をコンピュータに実行させるためのプログラム。 |
JP2006185055A (ja) * | 2004-12-27 | 2006-07-13 | Toshiba Corp | 計算機システムの設計支援システムおよび設計支援プログラム |
-
2012
- 2012-03-02 WO PCT/JP2012/001478 patent/WO2012117746A1/ja active Application Filing
- 2012-03-02 JP JP2013502203A patent/JP5374707B2/ja not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000047884A (ja) * | 1998-07-28 | 2000-02-18 | Toshiba Corp | スケジューリング解析装置、スケジューリング解析方法及びスケジューリング解析用プログラムを記録した媒体 |
JP2002268879A (ja) * | 2001-03-07 | 2002-09-20 | Mitsubishi Electric Corp | プログラム設計支援装置、プログラム設計支援方法及びプログラム設計支援方法をコンピュータに実行させるためのプログラム。 |
JP2006185055A (ja) * | 2004-12-27 | 2006-07-13 | Toshiba Corp | 計算機システムの設計支援システムおよび設計支援プログラム |
Non-Patent Citations (2)
Title |
---|
CSNH199700143008; 中本幸一、市瀬規善、寺峯和裕、上野智美、岩永雅洋、宮田宣和、中山幹大、米田 潔: 'リアルタイム性能解析システムProBA/RTH' NEC技報 Vol.47,No.6(通巻304号), 19940715, pp.42〜43, 株式会社NECクリエイティブ * |
JPN6012016472; 中本幸一、市瀬規善、寺峯和裕、上野智美、岩永雅洋、宮田宣和、中山幹大、米田 潔: 'リアルタイム性能解析システムProBA/RTH' NEC技報 Vol.47,No.6(通巻304号), 19940715, pp.42〜43, 株式会社NECクリエイティブ * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111861012A (zh) * | 2020-07-23 | 2020-10-30 | 西安奥卡云数据科技有限公司 | 一种测试任务执行时间预测方法及最优执行节点选择方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2012117746A1 (ja) | 2012-09-07 |
JPWO2012117746A1 (ja) | 2014-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6678780B2 (ja) | プロセス視覚化プラットフォーム | |
US9507688B2 (en) | Execution history tracing method | |
US8635056B2 (en) | System and method for system integration test (SIT) planning | |
US8312417B2 (en) | Using dynamic call graphs for creating state machines | |
US20140331209A1 (en) | Program Testing Service | |
EP2850529A2 (en) | System and methods for generating and managing a virtual device | |
JP5374707B2 (ja) | 計算機ソフトウェアシステム設計支援装置 | |
CN113886162B (zh) | 一种计算设备性能测试方法、计算设备及存储介质 | |
US20170147398A1 (en) | Estimating job start times on workload management systems | |
JP6283096B2 (ja) | プログラム試験サービス | |
JP2023086678A (ja) | 深層学習フレームワークに基づいて深層学習モデルを生成して適用する方法及び装置 | |
JP2020505710A (ja) | ソフトウェアプログラムを検証するための方法およびシステム | |
US10528691B1 (en) | Method and system for automated selection of a subset of plurality of validation tests | |
Trčka et al. | Integrated model-driven design-space exploration for embedded systems | |
US20210286785A1 (en) | Graph-based application performance optimization platform for cloud computing environment | |
CN112445855A (zh) | 用于图形处理器芯片的可视化分析方法和可视化分析装置 | |
US11954569B2 (en) | Techniques for parallel model training | |
CN110717992A (zh) | 调度模型的方法、装置、计算机系统和可读存储介质 | |
JP2006185055A (ja) | 計算機システムの設計支援システムおよび設計支援プログラム | |
US11544436B1 (en) | Hardware-software interaction testing using formal verification | |
Lázaro-Muñoz et al. | A tasks reordering model to reduce transfers overhead on GPUs | |
CN113391903A (zh) | 可调度性模型的建立方法、装置、电子设备及存储介质 | |
JP2014102530A (ja) | 情報伝達システム設計支援方法およびプログラム | |
US10114916B1 (en) | Method and system to accelerate visualization of waveform data | |
US20200233932A1 (en) | Providing ability to simulate production systems at scale in a fast, scalable way |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130819 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |