JP7799862B2 - 処理負荷推定システム、及び処理負荷推定方法 - Google Patents

処理負荷推定システム、及び処理負荷推定方法

Info

Publication number
JP7799862B2
JP7799862B2 JP2024564015A JP2024564015A JP7799862B2 JP 7799862 B2 JP7799862 B2 JP 7799862B2 JP 2024564015 A JP2024564015 A JP 2024564015A JP 2024564015 A JP2024564015 A JP 2024564015A JP 7799862 B2 JP7799862 B2 JP 7799862B2
Authority
JP
Japan
Prior art keywords
processing load
load estimation
calculation
cost
unit
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.)
Active
Application number
JP2024564015A
Other languages
English (en)
Other versions
JPWO2024127523A1 (ja
JPWO2024127523A5 (ja
Inventor
健太 塚原
隆博 飯田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ASTEMO, LTD.
Original Assignee
ASTEMO, LTD.
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ASTEMO, LTD. filed Critical ASTEMO, LTD.
Publication of JPWO2024127523A1 publication Critical patent/JPWO2024127523A1/ja
Publication of JPWO2024127523A5 publication Critical patent/JPWO2024127523A5/ja
Application granted granted Critical
Publication of JP7799862B2 publication Critical patent/JP7799862B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3409Recording 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3409Recording 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/3414Workload generation, e.g. scripts, playback
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3409Recording 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/3419Recording 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3409Recording 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/3433Recording 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 for load management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3442Recording 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 planning or managing the needed capacity
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3447Performance evaluation by modeling
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3452Performance evaluation by statistical analysis
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3457Performance evaluation by simulation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3457Performance evaluation by simulation
    • G06F11/3461Trace driven simulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明は、ソフトウェアコンポーネントの処理負荷推定システムに係り、特に、組込みソフトウェア開発において、システム全体の性能評価においても、精度良く処理負荷を推定することができる処理負荷推定システムに関する。
近年の車両の制御装置に実装される組込みソフトウェアは多様化・複雑化の一途を辿っており、組込みソフトウェアの設計および検証に要する工数は増大し続けている。これらに対応する一つの手法として、モデルを用いてシミュレーション設計・検証するモデルベースによる組込みソフトウェア開発技術が挙げられる。
モデルベース開発では、Simulinkに代表されるようなモデリングツールを用いて開発を行う方法が代表的である。この方法では、基本演算ブロックや機能ブロックを組み合わせることで制御仕様を満たしたモデルを設計し、シミュレーションによる検証が可能であり、モデリングツールを使用しない場合と比較して高効率な設計開発が実現できる。
車両の制御装置では、CPUリソースやROM/RAM容量などの制約が厳しく、リソースの制約を考慮した設計が求められる。特に車両の電動制御の分野においては、高速な処理速度が求められことでCPUリソース不足が顕在化しており、上流工程で機能的な検証を通ったモデルが、実装段階になってCPUリソースの制約を満たせないことが判明し、モデルの作り直しや追加の処理負荷低減施策などにより開発工数が増大してしまう問題が発生する。そこで、例えば特許文献1の発明では、複数の機能モデルにより構成される評価対象システムにシナリオデータを入力して得られたトレース情報から、実行経路毎の処理負荷を単に予測するだけでなく、選択したOSのスケジューリングアルゴリズムに従って性能シミュレーションをすることで、複数の処理が同時に実行された場合の処理負荷を精度よく見積るシミュレーション装置が開示されている
また、特許文献2では、複数の処理が同時に起動した場合の遅延を考慮しつつ、モデルの構成要素である演算ブロックの処理時間やCPUの実行サイクル数からモデル全体のCPU処理負荷を設計上流段階で予測する、モデルベースの性能予測システムが開示されている。
特開2009-258831号公報 特開2011-154521号公報
特許文献1の発明では、複数の機能モデルを有した評価システムに対してシナリオデータを入力し、そのシナリオで実行されたシーケンス毎に処理時間を評価している。しかしながら、このシーケンスはモデル内の演算経路を指しているのではなく、OSによってスケジューリングされる機能モデルの実行順序を指しており、機能モデル単体の処理時間は固定値であるため、機能モデル単体の処理時間を精度よく見積ることはできない。
一方、特許文献2の発明では、モデルの構成要素である基本演算ブロック毎の処理時間を予め記憶しておき、モデルの処理時間を予測している。この手法を用いれば、分岐処理などによりモデル内に複数の演算経路がある場合でも、その経路毎に処理時間を予測可能であり、例えば、演算ブロックの処理時間の累積値が最大となる経路から最大処理時間を予測可能である。しかしながら、この方法では車両の制御装置に実装して動作させた際の、平均処理時間を精度よく予測することはできない。
また、各CPUコアに実装された制御システムが処理負荷破綻を起こしてしまうか否かを予測するためには、各CPUコアに配置する全モデルの最大処理時間を予測しなければならない。この全モデルの最大処理時間を予測するためには、例えばOSによってスケジューリングされた結果に従い個々のモデルの理論上の最大処理時間を累積する方法が考えられる。しかし、各CPUコアに実装された全モデルの処理時間が最大となる時、必ずしも個々のモデルの最大処理時間となる演算経路が実行されるわけではない。よって、個々のモデルの最大処理時間を累積したものを全体の最大処理時間としてしまうと、実際より過大な最大処理時間として予測されてしまう問題があった。
更に、近年では、組込みマルチコア型のリアルタイムシステムのタイミングやスケジューリングを検証するツールが導入され始めている。このようなツールでは、スケジューリング情報や周期タスク、割り込みタスクの情報などのOSの設計情報と、スケジューリング対象である各モデルの処理時間をインプットすることで、システム全体のタイミングやスケジューリングを検証することが可能である。よって、処理時間の推定において、特許文献1や特許文献2の特徴である、OSスケジューリングの機能を兼ね備える必要性はあまりなく、モデル単体の処理負荷を精度よく求めることがより重要になってきている。
本発明は、上記課題を鑑みてなされるものであり、ソフトウェアコンポーネント単体から推定する処理時間の精度を高めつつ、システム全体の性能評価においても、実用的で高精度な処理負荷推定システムを提供するものである
前述の課題を解決するために、本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、処理負荷推定システムであって、所定の処理を実行する演算装置と、前記演算装置がアクセス可能な記憶装置とを備え、予め定められた演算フローを実現する複数の演算要素を有し入力値に応じて演算経路が異なるソフトウェアコンポーネントが入力されるソフトウェアコンポーネント入力部と、前記ソフトウェアコンポーネントに与えるテストスイートが入力されるテストスイート入力部と、前記演算装置が、前記演算経路毎の処理負荷を推定する処理負荷推定部と、前記演算装置が、前記テストスイートに基づいて、前記ソフトウェアコンポーネントのシミュレーションを行い、複数のシミュレーション結果から得られる動的な特徴を出力するシミュレーション部と、前記演算装置が、前記シミュレーション部から出力された動的な特徴を処理する結果処理部と、を有し、前記結果処理部は、前記動的な特徴と、前記入力値に対応する複数の演算結果と、前記経路毎の処理負荷とに基づいて、前記ソフトウェアコンポーネントの実用処理負荷を推定することを特徴とする。
本発明の一態様によれば、高精度に処理負荷性能を推定できる。前述した以外の課題、構成及び効果は、以下の実施例の説明によって明らかにされる。
第1の実施形態に係る処理負荷推定システムのシステム構成図である。 第1の実施形態に係る制御モデルを示すモデル図である。 第1の実施形態に係る制御モデルの演算経路を示す図である。 第1の実施形態に係るコストデータベースの一例を示す図である。 第1の実施形態に係る演算経路毎の累積コストを示す図である。 第1の実施形態に係るテストスイートを示す図である。 第1の実施形態に係るシミュレーション結果情報を示す図である。 第1の実施形態に係る結果処理部が実行する処理のフローチャートである。 第1の実施形態に係る偏差の算出結果の例を示す図である。 第1の実施形態に係る実用的な処理時間を示す図である。 第2の実施形態に係るプログラムのフローチャートである。 第2の実施形態に係るプログラムの演算経路の例を示す図である。 第2の実施形態に係るコストデータベースの一例を示す図である。 第3の実施形態に係る結果処理部が実行する処理のフローチャートである。 第4の実施形態に係る結果処理部が実行する処理のフローチャートである。 第4の実施形態に係る通過率の一例を示す図である。 第5の実施形態に係る処理負荷推定システムのシステム構成図である。 第5の実施形態に係るコストデータベースの一例を示す図である。 第7の実施形態に係る処理負荷推定システムのシステム構成図である。 第7の実施形態に係る制御モデルのデータフロー図である。 第7の実施形態に係るコストデータベースの一例を示す図である。 第7の実施形態に係る経路コスト評価部が実行する処理のフローチャートである。
以下、図面を用いて、本発明の第1から第7の実施形態について説明する。なお、各図において、同一符号は同一部位を示す。
(第1の実施形態)
図1は、本発明の第1の実施形態に係るソフトウェアコンポーネントの処理負荷推定システム1のシステム構成図である。
ソフトウェアコンポーネントの処理負荷推定システム1は、ソフトウェアコンポーネント入力部102、テストスイート入力部104、シミュレーション部105、処理負荷推定部106、及び結果処理部107によって構成される。ソフトウェアコンポーネント入力部102は、ソフトウェアコンポーネント100の入力を受ける。テストスイート入力部104は、テストスイート103の入力を受ける。シミュレーション部105は、ソフトウェアコンポーネント入力部102に入力されたソフトウェアコンポーネント100とテストスイート入力部104に入力されたテストスイート103を用いてシミュレーションを行う。処理負荷推定部106は、ソフトウェアコンポーネントの処理負荷を推定する。結果処理部107は、シミュレーション部105によるシミュレーション結果と処理負荷推定部106による推定結果に基づいて、ソフトウェアコンポーネント100の実用的で高精度な処理負荷を推定する。ソフトウェアコンポーネント100は、例えば制御モデル101やプログラム201である。
第1の実施形態では、ソフトウェアコンポーネント100が制御モデル101である場合について説明する。
本実施形態における処理負荷推定部106は、各演算経路の処理時間を推定する。処理負荷推定部106は、制御モデル101を構成する演算ブロック毎の処理負荷に係るコストを記憶するコスト記憶部108と、コスト記憶部108を参照しながら経路毎の演算ブロックのコストを累積して、制御モデル101の各演算経路の処理時間を推定する経路コスト評価部109を有する。
なお、本発明の実施形態では、処理負荷推定部106の具体例として、処理負荷推定部106がコスト記憶部108と経路コスト評価部109を有する場合を説明するが、他の方法を採用してもよい。例えば、経路毎の処理時間を予め記憶する方法でもよい。
第1の実施形態に係る処理負荷推定システム1は、プロセッサ(CPU)、メモリ、補助記憶装置、及び通信インターフェースを有する計算機によって構成される。処理負荷推定システム1は、入力インターフェース及び出力インターフェースを有してもよい。
プロセッサは、メモリに格納されたプログラムを実行する演算装置である。プロセッサが、各種プログラムを実行することによって、処理負荷推定システム1の各機能部(例えば、ソフトウェアコンポーネント入力部102、テストスイート入力部104、シミュレーション部105、処理負荷推定部106、結果処理部107など)による機能が実現される。なお、プロセッサがプログラムを実行して行う処理の一部を、他の演算装置(例えば、ASIC、FPGA等のハードウェア)で実行してもよい。
メモリは、不揮発性の記憶素子であるROM及び揮発性の記憶素子であるRAMを含む。ROMは、不変のプログラム(例えば、BIOS)などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、プロセッサが実行するプログラム及びプログラムの実行時に使用されるデータ(例えば、コスト記憶部108など)を一時的に格納する。
補助記憶装置は、例えば、磁気記憶装置(HDD)、フラッシュメモリ(SSD)等の大容量かつ不揮発性の記憶装置である。また、補助記憶装置は、プロセッサがプログラムの実行時に使用するデータ(例えば、コスト記憶部108としてRAMに展開されるコストデータが記録されたファイルなど)、及びプロセッサが実行するプログラムを格納する。すなわち、プログラムは、補助記憶装置から読み出されて、メモリにロードされて、プロセッサによって実行されることによって、処理負荷推定システム1の各機能を実現する。
通信インターフェースは、所定のプロトコルに従って、他の装置との通信を制御するネットワークインターフェース装置である。
入力インターフェースは、キーボードやマウスなどの、ユーザからの入力を受けるインターフェースである。例えば、入力インターフェースは、コストデータが記録され、補助記憶装置に格納されるファイルの入力を受け付ける。また、入力インターフェースは、GUIを提供し、ユーザからコストデータの入力を受け付けてもよい。
出力インターフェースは、ディスプレイ装置やプリンタなどの、プログラムの実行結果をユーザが視認可能な形式で出力するインターフェースである。例えば、第1の実施形態に係る処理負荷推定システム1では、出力インターフェースは、結果処理部107が出力する演算量や処理コストを表示するためのデータを出力する。また、出力インターフェースは、プログラムの実行結果をユーザが視認可能な形式で出力するデータ出力ポートでもよい。例えば、出力インターフェースは、結果処理部107が出力する演算量や処理コストが表示されるレポートを所定のデータ形式(例えばpdf、html)で出力する。
なお、処理負荷推定システム1にネットワークを介して接続された端末が入力インターフェース及び出力インターフェースを提供してもよい。
プロセッサが実行するプログラムは、リムーバブルメディア(CD-ROM、フラッシュメモリなど)又はネットワークを介して処理負荷推定システム1に提供され、非一時的記憶媒体である不揮発性の補助記憶装置に格納される。このため、処理負荷推定システム1は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。
処理負荷推定システム1は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。例えば、ソフトウェアコンポーネント入力部102、テストスイート入力部104、シミュレーション部105、処理負荷推定部106、及び結果処理部107は、各々別個の物理的又は論理的計算機上で動作するものでも、複数が組み合わされて一つの物理的又は論理的計算機上で動作するものでもよい。
図2は、本実施形態に係る制御モデル101を示すモデル図である。
制御モデル101は、入力ポート10101、10102、10103、10104、入力値を増幅するゲインブロック10105、入力値を加算する加算ブロック10106、入力値を乗算する乗算ブロック10107、固定値を出力する定数ブロック10108、10109、10110、パラメータ値を出力する定数ブロック10111、1次元のテーブル検索を行い該当する結果を出力する一次元テーブル検索ブロック10112、入力値を比較演算する比較演算ブロック(比較)10113、入力値が等価か否かを判定する比較演算ブロック(等価)10114、2番目の入力値がTRUEの場合は1番目の入力を、FALSEの場合には3番目の入力を出力するスイッチブロック10115、10116、及び出力ポート10117によって構成される。
図3は、本実施形態に係る制御モデル101の演算経路を示す図である。
制御モデル101は、三つのメイン演算経路MR1、MR2、及びMR3と、二つのサブ演算経路SR1、及びSR2を有している。制御モデル101は、制御モデルの入力ポート10101、10102、10103、10104の入力値や、定数ブロック10111のパラメータ値によって実行される演算経路が異なる。メイン演算経路MR1は、サブ演算経路SR1の結果がTRUEであり、且つサブ演算経路SR2の結果がTRUEである場合に実行される経路である。メイン演算経路MR2は、サブ演算経路SR1がFALSEであり、且つサブ演算経路SR2がTRUEである場合に実行される経路である。メイン演算経路MR3は、サブ演算経路SR1の結果によらず、サブ演算経路SR2がFALSEである場合に実行される経路である。
本実施形態で利用される定数ブロック10111に設定されるパラメータは、調整可能なパラメータであり、例えばキャリブレーションパラメータやコンフィギュレーションパラメータなどが考えられる。どちらも、プログラムとして実装した後に値を変更できる。キャリブレーションパラメータは、制御モデル101の制御性能の向上を目的とする調整可能なパラメータであり、例えば、車載電子制御装置の場合、車両走行試験などを通して適切な値に校正される。一方、コンフィギュレーションパラメータは、例えば、仕向け地、車両諸元、車両装備品などによって、車両の工場出荷時に変更されるパラメータである。
図4は、本実施形態に係るコスト記憶部108に含まれるコストデータベースの一例を示す図であり、演算ブロック毎の演算負荷コストが記録されるコストデータベースの一例を示す。
コスト記憶部108は、ゲインブロック10105のコストC1、加算ブロック10106のコストC2、乗算ブロック10107のコストC3、一次元テーブル検索ブロック10112のコストC4、比較演算ブロック(比較)10113のコストC5、比較演算ブロック(等価)10114のコストC6、スイッチブロック10115、10116のコストC7を予め記憶している。コスト記憶部108は、経路コスト評価部109によって参照される。なお、本実施形態では、入力ポート10101、10102、10103、10104や、定数ブロック10108、10109、10110、10111、出力ポート10117は四則演算や論理演算などの演算処理を伴わないため、コストが定義されていない。
処理負荷に係るコストとは、例えば、各演算ブロックをプログラムとして実装し、マイコンシミュレータや実機マイコンを用いて予め計測した処理時間などである。この方法は、一度全ての演算ブロックの処理時間を実測してデータベースを構築すれば、その後は容易に処理負荷を推定できる。しかしながら、処理時間は、プログラムが実装される制御装置やクロック周波数によって異なるため、制御装置が変わる毎に処理負荷を再計測しなければならない課題がある。
一般に、車載電子制御装置に多く使用されるRISC方式のマイコンは、基本的に全ての演算は1クロックサイクルで実行され、また、最小限必要な単純な命令のみでプログラムを実行するという特徴がある。また、RISC方式のマイコンの命令セットは、加減算、論理演算、比較演算、乗算など、低レベル演算の種類においては、それほど変わらない。一方で、処理時間はマイコンのクロック周波数によって大きく変化する。そこで、可能な限り様々なマイコン環境で活用でき、且つマイコンのクロック周波数が変わっても再測定することなく容易に処理負荷を推定可能とするため、各演算ブロックのコストとしてクロックサイクルを採用してもよい。1クロックサイクルの実行時間はマイコンのクロック周波数で決定されるため、マイコンのクロック周波数が変わっても、クロックサイクルから処理時間を容易に推定できる。
続いて、本実施形態における処理負荷推定部106の詳細について説明する。経路コスト評価部109は、ソフトウェアコンポーネント入力部102を経由して入力された制御モデル101を解析し、図3の三つのメイン演算経路MR1、MR2、MR3と、どのメイン演算経路が実行されるか決定する二つのサブ演算経路SR1、SR2を抽出する。その後、図4のコスト記憶部108に予め記憶されたコストC1、C2、C3、C4、C5、C6、C7を参照しながら各演算径路のコストを累積し、三つのメイン演算経路MR1、MR2、MR3の処理時間を推定する。
図5は、各メイン演算経路MR1、MR2、MR3の推定処理時間に相当する累積コストを示す図である。
メイン演算経路MR1は、サブ演算経路SR1がTRUEであり、且つサブ演算経路SR2がTRUEの時に実行されるため、メイン演算経路MR1の累積コストCMR1は、メイン演算経路MR1上に配置されている演算ブロックの累積コストと、サブ演算経路SR1、SR2上に配置されている演算ブロックの累積コストの合計値で決定される。具体的には、メイン演算経路MR1の演算ブロックであるゲインブロック10105のコストC1と、スイッチブロック10115、10116のコストC7と、サブ演算経路SR1のコストCSR1と、サブ演算経路SR2のコストCSR2を全て累積し、累積コストCMR1は、C1+C7+C7+CSR1+CSR2として求められる。なお、サブ演算経路SR1のコストCSR1は、サブ演算経路SR1に配置されている演算ブロックである比較演算(比較)ブロック10113のコストC5である。
サブ演算経路SR2のコスト SR2 は、サブ演算経路SR2に配置されている演算ブロックである比較演算(等価)10114のコストC6である。よって、メイン演算経路MR1の選択時に実行される全ての演算ブロックの累積コストCMR1は、C1+C7+C7+C5+C6によって求められる。同様の考え方で、メイン演算経路MR2の経路が選択される際に実行される全ての演算ブロックの累積コストCMR2は、C2+C7+C7+C5+C6によって求められる。
メイン演算経路MR3は、サブ演算経路SR1の実行結果によらず、サブ演算経路SR2がFALSEの場合に実行される。よって、本実施形態では、SR1のコストは累積せず、メイン演算経路MR3とサブ演算経路SR2の経路上に配置されている演算ブロックの累積コストの合計値でMR3の累積コストCMR3を求める。具体的には、メイン演算経路MR3の演算ブロックである乗算ブロック10107のコストC3、一次元テーブル検索ブロック10112のコストC4、スイッチブロック10115のコストC7と、サブ演算経路SR2のコスト SR2 、つまりC6を全て累積し、メイン演算経路MR3の累積コストCMR3を求める。よって、メイン演算経路MR3の経路が実行される際に実行される演算ブロックの累積コストは、C3+C4+C7+C6によって求められる。
また、各メイン演算経路MR1、MR2、MR3の累積コストを比較し、累積コストが最も高い経路が、制御モデル101の理論上の最大処理時間となる経路である。同様に、累積コストが最も低い経路が、制御モデル101の理論上の最小処理時間となる。
但し、処理負荷推定部106で推定された最大処理時間と最小処理時間は、実際のユースケース、例えば実際の車両走行において、必ずしも実行される経路であるとは限らない。推定対象のモデルの入力がそのモデルの前処理で決定されるため、該当の経路を実行する入力が必ずしも生成されるとは限らないため、これらの経路が実行されない可能性がある。又は、どのようなデータを入力しても該当する経路が到達不能である場合や、調整可能なパラメータによっては、該当する経路が実行されない可能性もある。このような理由から、前述の方法で求めた最大処理時間及び最小処理時間は、実用的な範囲における最大処理時間及び最小処理時間とはならず、実用的な処理時間の推定が課題となる。また、システム全体の最大処理時間を推定する際に、個々のモデルの理論上の最大処理時間を累積して推定すると、過大な最大処理時間が推定される課題もある。
よって、結果処理部107は、経路コスト評価部109の結果に基づいて、新たにシミュレーション部105より得られた複数の演算結果を用いて、これらの課題を解決する。
図6に示すテストスイート103は、複数のテストケースの集合体であり、制御モデル101に入力される入力データである。入力データは、一般的に信号とパラメータの2種類に分類される。具体的には、テストスイート103の入力信号1、入力信号2、入力信号3、及び入力信号4は、制御モデル101の入力ポート10101、10102、10103、及び10104にそれぞれ入力される。また、テストスイート103のパラメータ1は、制御モデル101の定数ブロック10111が出力するパラメータ値である。
シミュレーション部105は、入力された制御モデル101にテストスイート103を入力し、シミュレーションを行う。図7に、シミュレーション部105が出力するシミュレーション結果を示す。シミュレーション結果は、出力ポート10117から出力されるタイムステップ毎の出力データだけでなく、どの演算経路を実行したかの情報も含む。
結果処理部107は、シミュレーション部105が出力するシミュレーション結果(図7)を分析し、複数の演算結果を算出する。更に、結果処理部107は、処理負荷推定部106が推定した演算経路毎の推定処理時間と、シミュレーション部105が算出した複数の演算結果を組み合わせることで、最終的な推定処理時間を決定する。
本実施形態では、結果処理部107が分析して得られた複数の演算量に関する値である、動的な特徴を使用し、より実用的な処理負荷を推定する。結果処理部107が使用する演算量に関する値として、演算負荷の平均値や、標準偏差を使用するとよい。
図8は、本発明の実施形態1に係る結果処理部107が実用的な最大処理負荷を推定する場合に実行する処理のフローチャートである。
結果処理部107は、フローチャートに示す通り、ステップS107101から処理を開始する。
ステップS107102で、結果処理部107は、シミュレーション部105からシミュレーション結果(図7)を取得する。
ステップS107103で、結果処理部107は、処理負荷推定部106から演算経路毎の累積コスト(図5)を取得する。
ステップS107104で、結果処理部107は、シミュレーション結果(図7)から取得したタイムステップ毎の演算経路情報と、演算経路毎の累積コスト(図5)に基づいて、テストスイートの平均累積コストを算出する。
ステップS107105で、結果処理部107は、各タイムステップの累積コストと平均累積コストを用いて累積コストのばらつき(偏差)を算出後、標準偏差を算出する。
ステップS107106で、結果処理部107は、標準偏差に係数を乗算して平均値に加えることで、実ユースケースで取り得る可能性が高い最大累積コストを推定する。
ステップS107107で、結果処理部107は、演算経路毎の累積コスト(図5)の中から、最も大きい累積コストを抽出する。
ステップS107108で、結果処理部107は、実ユースケースで取る可能性が高い最大累積コストが演算経路上の最大累積コストを超えるかを判定し、算出された最大累積コストが演算経路上の最大累積コストより小さい場合(NO)、ステップS107109に進み、算出された最大累積コストが演算経路上の最大累積コストを超える場合(YES)、ステップS107110に進む。
ステップS107109で、結果処理部107は、標準偏差を用いて算出された最大累積コストを最大処理時間として推定して出力する。
ステップS107110で、結果処理部107は、経路上の最大累積コストを最大処理時間として推定して出力する。
ステップS107111で、結果処理部107は、処理を終了する。
ステップS107104におけるテストスイートの平均累積コストCμの算出方法について説明する。平均累積コストCμは、テストスイートに含まれる各タイムステップの累積コストを全て合計し、総数nで除算することで求められる。
次に、ステップS107105における標準偏差σの算出方法について説明する。標準偏差を求めるには、まず偏差dを求める。偏差dは、テストスイートの各累積コストCiから平均累積コストCμを減算して求めることができる。偏差dの算出結果の例を図9に示す。標準偏差は、偏差dを2乗し、データの総数nで除算した値の平方根で求めることができる。
標準偏差は、ばらつき具合を表す統計学の指標の一つであり、標準偏差σによって、平均に対する数値のばらつきを知ることができる。ばらつきが大きいと標準偏差σが大きくなり、ばらつきが小さいと標準偏差σが小さくなる。一般的に、平均値±σの中に観測データが含まれる確率は68.3%、平均値±2σの中に観測データが含まれる確率は95%、平均値±3σの中に観測データが含まれる確率は99.7%となる。
次に、ステップS107108、S107109、S107110における実用的な最大処理負荷決定方法の詳細について説明する。本実施形態では、実用的な最大処理負荷PCmaxを平均累積コストCμ、標準偏差σ、調整可能な係数kを用いて、以下の計算式で求める。この時、kは調整可能なパラメータ係数であり、システムの特徴や、テストスイートの成熟度により、ユーザで任意の値に補正することができる。但し、ステップS107107で抽出した経路上の最大累積コストCmaxは、理論上の最大累積コストとなるため、標準偏差を用いて算出した結果がCmaxを超えてはならない。標準偏差を用いて算出した最大累積コストが理論上の最大累積コストCmaxを超える場合には、実用的な最大処理負荷PCmaxをCmaxとする。
実施形態1に係るばらつきを考慮した処理負荷推定システムによると、図10に示すような領域における動的な特徴であるばらつきを考慮して実用的な最大処理時間を求めることができる。なお、本実施形態では実用的な最大処理時間を推定するシステムについて説明したが、同様の手法を用いることで、実用的な最小処理時間も算出できる。
本実施形態によれば、実際のユースケースでは実行されない経路を排除できるだけでなく、入力されたテストスイートの実ユースケースのカバー率が低い場合でも、標準偏差を用いることで実運用の範囲で最大処理時間を統計学の観点から予測できる。これにより、従来の課題であった、各モデルの理論上の最大処理時間を累積してシステム全体の最大処理時間を予測する場合に、予測結果が過剰となる問題を抑制できる。
本実施形態では、標準偏差を用いて推定した処理時間を出力する場合について特に焦点を当てて説明したが、図8のフローチャートのステップS107104で算出した平均累積コストを平均処理時間として推定してもよい。
また、テストスイートの実ユースケースのカバー率が高い場合には、標準偏差を用いずに、図10のテストスイート内の最大処理時間や最小処理時間を、実用的な最大処理時間、最小処理時間として推定してもよい。
(第2の実施形態)
第2の実施形態では、ソフトウェアコンポーネント100が、プログラム201である場合について、制御モデル101だけではなく、プログラム201においても同様に実用的な処理負荷を推定できることを説明する。第2の実施形態では、主に第1の実施形態との差分について説明し、第1の実施形態と同じ構成及び処理の説明は省略する。
図11Aは、本実施形態に係るプログラム201のフローチャートであり、図11Bは、本実施形態に係るプログラム201の演算経路の例を示す図である。
プログラム201は、フローチャートに示す通り、ステップS20101から処理を開始する。
ステップS20102で、プログラム201は、条件1を満たすかを判定し、条件1を満たす場合(YES)、ステップS20103に進み、条件1を満たさない場合(NO)、ステップS20104に進む。
ステップS20103で、プログラム201は、命令1を実行後、ステップS20104に進む。
ステップ20104で、プログラム201は、条件2を満たすかを判定し、条件2を満たす場合(YES)、ステップ20105に進み、条件2を満たさない場合(NO)、ステップ20106に進む。
ステップS20105で、プログラム201は、命令2を実行する。
ステップS20106で、プログラム201は、命令3を実行する。
ステップS20107で、プログラム201は、処理を終了する。
図11Bに示す通り、プログラム201の演算経路は、分岐1と分岐3が実行される演算経路R1、分岐1と分岐4が実行される演算経路R2、分岐2と分岐3が実行される演算経路R3、分岐2と分岐4が実行される演算経路R4の四つの経路がある。よって、プログラム201は、複数の演算経路を有しており、入力によって条件判定の結果が変化し、実行される経路が異なる点で、制御モデル101と同様に扱える。
図12は、本実施形態に係るコスト記憶部108に含まれるコストデータベースの一例を示す図であり、CPU演算要素毎の演算負荷コストが記録されるコストデータベースの一例を示す。
第1の実施形態に係るコスト記憶部108は、演算ブロック毎のコスト記憶するのに対し、本実施形態に係るコスト記憶部108は、プログラム201を構成するCPUの演算要素毎の処理負荷をコストとして記憶する。例えば、加算(ADD)はC23、乗算(MUL)はC25のように、ユーザが任意にコストを定義できる。
本実施形態に係るプログラム201用のコスト記憶部108では、CPUの演算要素に対応してコストを記憶するが、例えば四則演算などの演算子毎にコストを記憶してもよい。
続いて、プログラム201が入力された場合の経路コスト評価部109の動作の詳細を説明する。実施形態1では、経路毎のブロックのコストを累積したが、本実施形態では演算経路毎のCPUの演算要素のコストを累積する。
経路コスト評価部109は、例えば、プログラム201の構文を解析して、各演算経路のCPUの演算要素を抽出してもよい。又は、プログラムをコンパイルしてアセンブラレベルに変換し、CPUの演算要素を抽出してもよい。
以上のように、制御モデル101から処理負荷を推定するより、プログラム201から処理負荷を推定する方が、実際の動作に近い演算要素を用いて処理負荷を推定でき、より高精度な処理負荷を推定できる。一方で、プログラム201を設計してからでないと処理負荷を推定できないため、制御モデル101を用いた手法と比べて大きな手戻りが発生する懸念がある。
本実施形態によれば、制御モデル101だけではなく、プログラム201においても同様に実用的な処理負荷を推定できることを説明した。
(第3の実施形態)
第3の実施形態では、結果処理部107で分析して得られた複数の演算結果の一つとして、動的な特徴である各演算経路の通過情報を活用し、より実用的な処理負荷を推定する。具体的には、結果処理部107が、通過情報に基づいて、実行されない演算経路を特定し、実行されない演算経路を推定対象から除外することで、より実用的な処理時間を推定する。なお、第3の実施形態では、主に前述した実施形態との差分について説明し、前述した実施形態と同じ構成及び処理の説明は省略する。また、ソフトウェアコンポーネント100は、制御モデル101でもプログラム201でもどちらでもよいが、第3の実施形態では制御モデル101を例として説明する。
図13は、本実施形態に係る結果処理部107が実行する処理のフローチャートである。
結果処理部107は、フローチャートに示す通り、ステップS107201から処理を開始する。
ステップS107202で、結果処理部107は、シミュレーション部105からシミュレーション結果(図7)を取得する。
ステップS107203で、結果処理部107は、処理負荷推定部106から演算経路毎の累積コスト(図5)を取得する。
ステップS107204で、結果処理部107は、シミュレーション部105によるシミュレーションの結果を解析し、実行されていない演算経路を特定する。
ステップS107205で、結果処理部107は、実行されない演算経路が存在するか否かを判定し、実行されない演算経路が存在する場合(YES)、ステップS107206に進み、実行されない演算経路が存在しない場合(NO)、ステップS107207に進む。
ステップS107206で、結果処理部107は、シミュレーション部105より得られた各演算経路の累積コストのうち、実行されない演算経路の累積コスト以外の累積コストを用いて処理時間を推定する。
ステップS107207で、結果処理部107は、シミュレーション部105より得られた各演算経路の累積コストをそのまま利用して処理時間を推定する。
ステップS107208で、結果処理部107は、処理を終了する。
例えば、実行されない演算経路を除いた累積コストの中で最も大きな累積コストを最大処理時間として推定してもよい。また、実行されない演算経路を除いた累積コストの中で最も小さい累積コストを最小処理時間として推定してもよい。また、実行されない演算経路を除いた累積コストの平均値を算出し、平均処理負荷として推定してもよい。
本実施形態によれば、実際のユースケースでは実行されない経路を除外して、より実用的で高精度に処理時間を推定できる。
(第4の実施形態)
第4の実施形態では、結果処理部107で分析して得られた複数の演算結果の一つとして、動的な特徴である各演算経路の通過頻度を表す通過率を活用し、より実用的な処理負荷を推定する。具体的には、結果処理部107は、所定の閾値より通過率が小さい場合は推定対象から除外することでより実用的な処理時間を推定するシステムについて説明する。なお、第4の実施形態では、主に前述した実施形態との差分について説明し、前述した実施形態と同じ構成及び処理の説明は省略する。また、ソフトウェアコンポーネント100は、制御モデル101でもプログラム201でもどちらでもよいが、第4の実施形態では制御モデル101を例として説明する。
図14は、本実施形態に係る結果処理部107が実行する処理のフローチャートである。
結果処理部107は、フローチャートに示す通り、ステップS107301から処理を開始する。
ステップS107302で、結果処理部107は、シミュレーション部105からシミュレーション結果(図7)を取得する。
ステップS107303で、結果処理部107は、処理負荷推定部106から演算経路毎の累積コスト(図5)を取得する。
ステップS107304で、結果処理部107は、シミュレーション部105によるシミュレーションの結果を解析し、各演算経路の通過率を算出する。
ステップS107305で、結果処理部107は、各演算経路の通過率とユーザが予め設定した閾値とを比較し、通過率が小さい演算経路が存在するかを判定し、通過率が小さい演算経路が存在する場合(YES)、ステップS107306に進み、通過率が小さい演算経路が存在しない場合(NO)、ステップS107307に進む。
ステップS107306で、結果処理部107は、通過率が小さい演算経路を除いた演算経路の累積コストを用いて処理時間を推定する。
ステップS107307で、結果処理部107は、全演算経路の累積コストを用いて処理時間を推定する。
ステップS107308で、結果処理部107は、処理を終了する。
図15は、制御モデル101の場合の通過率の一例を示す図である。
制御モデル101の演算経路MR1、MR2、MR3の通過率がそれぞれ、39.9999%、60.0%、0.0001%である場合、ステップS107305で通過率の閾値が0.001%である場合、演算経路MR3の通過率は閾値を下回っているため、演算経路MR3の累積コストは除外され、MR1とMR2の累積コストを用いて処理負荷を推定する。
例えば、通過率が閾値より小さい演算経路を除いた累積コストの中で最も大きな累積コストを最大処理時間として推定してもよい。又は、通過率が閾値より小さい演算経路を除いた累積コストの中で最も小さい累積コストを最小処理時間として推定してもよい。また、通過率が閾値より小さい演算経路を除いた累積コストの平均値を算出し、平均処理負荷として推定してもよい。
システム全体の最大処理時間、最小処理時間となるタイミングにおいて、各ソフトウェアコンポーネントの中で実行頻度が低い演算経路が実行される可能性は極めて小さい。本実施形態によれば、実際のユースケースでは実行される可能性があるが、実行頻度が低い演算経路を除外することで、前述の問題を解決し、システム全体の最大処理負荷や最小処理負荷の推定精度を向上できる。
(第5の実施形態)
第5の実施形態では、処理負荷推定部106がメモリアクセスの通信遅延時間であるレイテンシを考慮して処理負荷を推定するシステムについて説明する。なお、第5の実施形態では、主に前述した実施形態との差分について説明し、前述した実施形態と同じ構成及び処理の説明は省略する。また、ソフトウェアコンポーネント100は、制御モデル101でもプログラム201でもどちらでもよいが、第5の実施形態では制御モデル101を例として説明する。
図16は、本発明の第5の実施形態に係るソフトウェアコンポーネントの処理負荷推定システム1のシステム構成図である。第1の実施形態のシステム構成図(図1)と異なる点は、処理負荷推定部106にメモリ解析部501が追加されている点である。
メモリ解析部501は、メモリ属性としてソフトウェアコンポーネント100のメモリアクセスに関係する演算要素を抽出し、経路コスト評価部109に送る。経路コスト評価部109は、メモリ解析部501の抽出結果を取得し、予め記憶されたメモリアクセスのレイテンシのコストをコスト記憶部108から読み出し、各演算経路の累積コストと共に、レイテンシのコストを累積する。
図2に示す制御モデル101の入力ポート10101、10102、10103、10104が制御モデル101の入力インターフェースであり、出力ポート10117が制御モデル101の出力インターフェースである。例えば、入出力インターフェースをグローバル変数アクセスとしてプログラムを設計する場合、入力ポート10101、10102,10103、10104に対しグローバル変数の読み出し処理のレイテンシに相当するコストを割り当て、出力ポート10117に対しグローバル変数の書き込み処理のレイテンシに相当するコストを割り当てる。
図2に示す制御モデル101のパラメータ値を出力する定数ブロック10111は、パラメータを読み込む。本実施形態では、例えばキャリブレーションパラメータをメモリ領域から読み出すレイテンシに相当するコストを定数ブロック10111に割り当てる。
図17は、本実施形態に係るコスト記憶部108に含まれるコストデータベースの一例を示す図であり、メモリ演算ブロック毎の演算負荷コストが記録されるコストデータベースの一例を示す。
経路コスト評価部109は、ユーザが予め定めた適用条件に該当するブロックをメモリ演算ブロックとして検出し、メモリ演算ブロックのコストもあわせて演算ブロックのコストを累積して、演算経路毎の累積コストを算出する。例えば、メイン演算経路MR1は、入力ポート10101のグローバル変数を読み込み、定数ブロック10111のパラメータ読み込み、出力ポート10117のグローバル変数を書き込むレイテンシに相当するコストが加算される。よって、メイン演算経路MR1が選択される際に実行される全ての演算ブロックとメモリ演算ブロックの累積コストCMR1は、C51+C1+C7+C7+C5+C53+C6+C52によって求められる。同様に、メイン演算経路MR2が選択される際に実行される全ての演算ブロックとメモリ演算ブロックの累積コストCMR2は、C51+C51+C2+C7+C7+C5+C53+C6+C52によって求められる。また、メイン演算経路MR3が選択される際に実行される全ての演算ブロックとメモリ演算ブロックの累積コストCMR3は、C51+C3+C4+C7+C53+C6+C52によって求められる。
本実施形態によれば、演算に伴う処理時間の他、メモリアクセスのレイテンシを考慮することで、より高精度に処理時間を推定できる。
(第6の実施形態)
第6の実施形態では、処理負荷推定部106が、予め記憶された特定のブロックの組み合わせを検出した場合、本来のコストとは異なるコスト(特定のブロックの組み合わせに対応付けられたコスト)に補正して処理負荷を推定するシステムについて説明する。なお、第6の実施形態では、主に前述した実施形態との差分について説明し、前述した実施形態と同じ構成及び処理の説明は省略する。また、ソフトウェアコンポーネント100は、制御モデル101でもプログラム201でもどちらでもよいが、第6の実施形態では制御モデル101を例として説明する。
図3に示すサブ演算経路SR2では、比較演算ブロック(等価)10114が、パラメータが1であるかを判定し、判定結果である論理値をスイッチブロック10116に入力する。その後、スイッチブロックでは、入力された論理値を判定し、論理値に応じて経路を選択する。この時、比較演算ブロック(等価)10114とスイッチブロック10116のそれぞれで処理が発生するため、それぞれのコストが累積される。
しかし、実際のプログラムでは、比較演算ブロック(等価)10114による比較演算処理は省略され、スイッチブロック10116の処理の中で、具体的にはif文の条件式でパラメータがTRUEかFALSEか直接判定するようにプログラムが設計されるのが一般的である。よって、このようなモデルからプログラムに変換される過程で生じる最適化を考慮するために、例えば、比較演算ブロックからスイッチブロックの流れでモデリングされている場合、経路コスト評価部109が比較演算ブロック10114のコストと、スイッチブロック10116のコストを単に参照して累積せず、新たなコストを参照する。また、コスト記憶部108は、予め、比較演算ブロック10114とスイッチブロック10116とを組み合わせたコストを記憶する。
本実施形態によれば、最適化の影響を考慮した累積コストを算出でき、実際の動作に近づくことで、より高精度に処理負荷を推定できる。
(第7の実施形態)
第7の実施形態では、処理負荷推定部106がデータフローを考慮して処理負荷を推定するシステムについて説明する。なお、第7の実施形態では、主に前述した実施形態との差分について説明し、前述した実施形態と同じ構成及び処理の説明は省略する。また、ソフトウェアコンポーネント100は、制御モデル101でもプログラム201でもどちらでもよいが、第7の実施形態では制御モデル101を例として説明する。
図18は、本発明の実施形態に係るデータフローを考慮したソフトウェアコンポーネントの処理負荷推定システム1を示すシステム構成図である。第1の実施形態に係る処理負荷推定システム(図1)と、処理負荷推定部106にデータフロー解析部701が新たに追加される点で異なる。
データフロー解析部701は、図19に示すような制御モデル101のデータフローを解析し、ブロックとブロックを接続する信号線のデータ型を特定する。更に、ゲインブロック10105や、定数ブロック10108、10109、10110、10111、一次元テーブル検索ブロック10112などの定数やパラメータが設定されているブロックを解析し、設定されている定数やパラメータのデータ型を特定する。
図20は、本実施形態に係るコスト記憶部108に含まれるコストデータベースの一例を示す図であり、演算ブロック毎の演算負荷コストが記録されるコストデータベースの一例を示す。
図20に示すように、各演算の処理時間はデータ型によって異なるため、予め各データ型のコストをコスト記憶部108に記憶する。更に、型変換のサイクル数もデータ型によって異なるため、型変換のサイクル数を予めコスト記憶部108に記憶する。
図21は、本実施形態に係る経路コスト評価部109が実行する処理のフローチャートである。
経路コスト評価部109は、フローチャートに示す通り、ステップS109701から処理を開始する。
ステップS109702で、経路コスト評価部109は、信号線のデータ型やブロックに設定されている定数やパラメータのデータ型の情報を含むモデル情報を、データフロー解析部701から取得する。
ステップS109703で、経路コスト評価部109は、データ型の情報を含むモデル情報から制御モデル101に含まれる全演算ブロックとその入力データ型を特定する。
ステップS109704で、経路コスト評価部109は、コスト記憶部108を参照し、演算ブロックとデータ型の組み合わせに応じたコストをそれぞれ取得する。
ステップS109705で、経路コスト評価部109は、データの型変換が発生している箇所を特定する。
ステップS109706で、経路コスト評価部109は、コスト記憶部108を参照し、データの型変換の種類に応じたコストをそれぞれ取得する。
ステップS109707で、経路コスト評価部109は、ステップS109704で取得した演算ブロックとデータ型の組み合わせに応じたコストと、ステップS109706で取得したデータの型変換のコストを演算経路毎に全て累積し、演算経路毎の累積コストを算出する。
ステップS109708で、経路コスト評価部109は、処理を終了する。
例えば、図19に示すゲインブロック10105の入力データ型はdouble型であり、且つゲインブロック10105に設定されている定数値10もdouble型である。このとき、ステップS109703では、ゲインブロック10105とdouble型の組み合わせを特定し、ステップS109704において、図20に示すコスト記憶部108のデータベースからゲインブロックdouble型のコストであるC12を選択する。
また、例えば、図19のゲインブロック10105の入力データ型はdouble型、ゲインブロック10105に設定されている定数値10もdouble型、出力信号のデータ型はsingle型である。よって、double型からsingle型へデータの型変換が1回発生しており、このようなデータの型変換はステップS109705で特定される。その後、ステップS109706において、図20に示すコスト記憶部108のデータベースから、double型からsingle型に変換する際のコストC91を選択する。
以上のような考え方を適用して、メイン演算経路MR1の経路が選択される際に実行される全ての演算ブロックの累積コストCMR1は、C12+C91+C71+C71+C51+C61となる。
本実施形態によれば、ブロック情報だけでは推定できなかった処理負荷を、データ型を考慮して推定でき、演算ブロック情報だけの場合に比べて、高精度に処理負荷を推定できる。
なお、第7の実施形態は、必ずしもシミュレーション部105や、結果処理部107を必要とせず、処理負荷推定部106のみで独立して実施できる。
以上、本発明の複数の実施形態を説明したが、2以上の実施形態を任意に組み合わせることができる。
以上に説明したように、本発明の実施形態によると、設計工程の上流において早い段階でより高精度で平均処理時間、最小処理時間、最大処理時間等の性能を推定でき、手戻り防止による開発工数を削減できる。また、実際のユースケースを考慮した実用的な処理時間を提供することで、ソフトウェアコンポーネント単体だけでなく、システム全体の性能評価にも活用できる。
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、ICカード、SDカード、DVD等の記録媒体に格納することができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
100:ソフトウェアコンポーネント、101:制御モデル、102:ソフトウェアコンポーネント入力部、103:テストスイート、104:テストスイート入力部、105:シミュレーション部、106:処理負荷推定部、107: 結果処理部、108:コスト記憶部、109:経路コスト評価部、201:プログラム、501:メモリ解析部、701:データフロー解析部

Claims (15)

  1. 処理負荷推定システムであって、
    所定の処理を実行する演算装置と、前記演算装置がアクセス可能な記憶装置とを備え、
    予め定められた演算フローを実現する複数の演算要素を有し入力値に応じて演算経路が異なるソフトウェアコンポーネントが入力されるソフトウェアコンポーネント入力部と、
    前記ソフトウェアコンポーネントに与えるテストスイートが入力されるテストスイート入力部と、
    前記演算装置が、前記演算経路毎の処理負荷を推定する処理負荷推定部と、
    前記演算装置が、前記テストスイートに基づいて、前記ソフトウェアコンポーネントのシミュレーションを行い、複数のシミュレーション結果から得られる動的な特徴を出力するシミュレーション部と、
    前記演算装置が、前記シミュレーション部から出力された動的な特徴を処理する結果処理部と、を有し、
    前記結果処理部は、前記動的な特徴と、前記入力値に対応する複数の演算結果と、前記経路毎の処理負荷とに基づいて、前記ソフトウェアコンポーネントの実用処理負荷を推定することを特徴とする処理負荷推定システム。
  2. 請求項1に記載の処理負荷推定システムであって、
    前記演算要素は、前記ソフトウェアコンポーネントを構成するモデルにおける演算ブロックであることを特徴とする処理負荷推定システム。
  3. 請求項1に記載の処理負荷推定システムであって、
    前記演算要素は、前記ソフトウェアコンポーネントを構成するソフトウェアにおける演算子であることを特徴とする処理負荷推定システム。
  4. 請求項1に記載の処理負荷推定システムであって、
    前記結果処理部は、前記シミュレーション結果から動的な特徴として得られる演算量に関する値に基づいて、前記実用処理負荷を推定することを特徴とする処理負荷推定システム。
  5. 請求項1に記載の処理負荷推定システムであって、
    前記結果処理部は、前記シミュレーションによって得られた演算負荷のばらつきから算出された標準偏差に基づいて、前記実用処理負荷を推定することを特徴とする処理負荷推定システム。
  6. 請求項1に記載の処理負荷推定システムであって、
    前記結果処理部は、前記ソフトウェアコンポーネントに基づく理論上の演算経路のうち前記シミュレーションで通過しなかった演算経路を除外して、前記実用処理負荷を推定することを特徴とする処理負荷推定システム。
  7. 請求項1に記載の処理負荷推定システムであって、
    前記結果処理部は、前記シミュレーションにおける各演算経路の通過頻度に基づいて、前記実用処理負荷を推定することを特徴とする処理負荷推定システム。
  8. 請求項7に記載の処理負荷推定システムであって、
    前記結果処理部は、前記シミュレーションにおける通過頻度が所定の閾値以下である演算経路を除外して前記実用処理負荷を推定することを特徴とする処理負荷推定システム。
  9. 請求項1から8のいずれか一つに記載の処理負荷推定システムであって、
    前記処理負荷推定部は、前記演算要素の処理負荷を記憶するコスト記憶部と、前記演算経路毎のコストを累積した累積コストを計算する経路コスト評価部と、を有し、
    前記経路コスト評価部は、前記累積コストに基づいて前記演算経路毎の処理負荷を推定することを特徴とする処理負荷推定システム。
  10. 請求項9に記載の処理負荷推定システムであって、
    前記処理負荷推定部は、前記ソフトウェアコンポーネントのメモリ属性に関する演算要素を解析するメモリ解析部を有し、
    前記コスト記憶部は、前記メモリ解析部より得られた前記ソフトウェアコンポーネントの前記メモリ属性毎の書き込み及び読み込みの遅延時間に相当するコストを記憶し、
    前記処理負荷推定部は、前記遅延時間を考慮して処理負荷を推定することを特徴とする処理負荷推定システム。
  11. 請求項9に記載の処理負荷推定システムであって、
    前記コスト記憶部は、特定の演算要素の組合せのコストを記憶し、
    前記経路コスト評価部は、
    特定の演算要素の組合せを検出し、
    前記検出された前記特定の演算要素の組合せに対応付けられたコストを用いて、前記演算経路毎の処理負荷を推定することを特徴とする処理負荷推定システム。
  12. 請求項9に記載の処理負荷推定システムであって、
    前記処理負荷推定部は、データフローを解析するデータフロー解析部を有し、
    前記経路コスト評価部は、前記データフロー解析部よる解析結果に基づいて、前記演算経路毎の処理負荷を推定することを特徴とする処理負荷推定システム。
  13. 請求項12に記載の処理負荷推定システムであって、
    前記コスト記憶部は、データ型の違いに応じて異なるコストを記憶し、
    前記経路コスト評価部は、前記データ型の違いに応じたコストを用いて、前記演算経路毎の処理負荷を推定することを特徴とする処理負荷推定システム。
  14. 請求項12に記載の処理負荷推定システムであって、
    前記コスト記憶部は、データ型の変換のコストを記憶し、
    前記データフロー解析部は、データ型の変換を検出し、
    前記経路コスト評価部は、前記データ型の変換の違いに応じてコストを用いて、前記演算経路毎の処理負荷を推定することを特徴とする処理負荷推定システム。
  15. 処理負荷推定システムが実行する処理負荷推定方法であって、
    前記処理負荷推定システムは、所定の処理を実行する演算装置と、前記演算装置がアクセス可能な記憶装置とを有し、
    前記処理負荷推定方法は、
    前記処理負荷推定システムが、予め定められた演算フローを実現する複数の演算要素を有し入力値に応じて演算経路が異なるソフトウェアコンポーネントが入力されるソフトウェアコンポーネント入力手順と、
    前記ソフトウェアコンポーネントに与えるテストスイートが入力されるテストスイート入力手順と、
    前記演算装置が、前記演算経路毎の処理負荷を推定する処理負荷推定手順と、
    前記演算装置が、前記テストスイートに基づいて、前記ソフトウェアコンポーネントのシミュレーションを行い、複数のシミュレーション結果から得られる動的な特徴を出力するシミュレーション手順と、
    前記演算装置が、前記シミュレーション手順で出力された動的な特徴を処理する結果処理手順と、を有し、
    前記結果処理手順では、前記演算装置が、前記動的な特徴と、前記入力値に対応する複数の演算結果と、前記経路毎の処理負荷とに基づいて、前記ソフトウェアコンポーネントの実用処理負荷を推定することを特徴とする処理負荷推定方法。
JP2024564015A 2022-12-13 2022-12-13 処理負荷推定システム、及び処理負荷推定方法 Active JP7799862B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/045930 WO2024127523A1 (ja) 2022-12-13 2022-12-13 処理負荷推定システム、及び処理負荷推定方法

Publications (3)

Publication Number Publication Date
JPWO2024127523A1 JPWO2024127523A1 (ja) 2024-06-20
JPWO2024127523A5 JPWO2024127523A5 (ja) 2025-04-17
JP7799862B2 true JP7799862B2 (ja) 2026-01-15

Family

ID=91484527

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2024564015A Active JP7799862B2 (ja) 2022-12-13 2022-12-13 処理負荷推定システム、及び処理負荷推定方法

Country Status (3)

Country Link
EP (1) EP4636597A1 (ja)
JP (1) JP7799862B2 (ja)
WO (1) WO2024127523A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009258831A (ja) 2008-04-14 2009-11-05 Mitsubishi Electric Corp シミュレーション装置及びシミュレーション方法及びプログラム
JP2011154521A (ja) 2010-01-27 2011-08-11 Hitachi Advanced Digital Inc モデルベースの性能予測システム
JP2014102734A (ja) 2012-11-21 2014-06-05 Renesas Electronics Corp 性能検証プログラム、性能検証方法及び性能検証装置
US20190370155A1 (en) 2018-05-31 2019-12-05 The Mathworks, Inc. Observer for simulation test and verification
JP2020160923A (ja) 2019-03-27 2020-10-01 三菱電機株式会社 処理性能検証装置、及び、処理性能を検証する方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009258831A (ja) 2008-04-14 2009-11-05 Mitsubishi Electric Corp シミュレーション装置及びシミュレーション方法及びプログラム
JP2011154521A (ja) 2010-01-27 2011-08-11 Hitachi Advanced Digital Inc モデルベースの性能予測システム
JP2014102734A (ja) 2012-11-21 2014-06-05 Renesas Electronics Corp 性能検証プログラム、性能検証方法及び性能検証装置
US20190370155A1 (en) 2018-05-31 2019-12-05 The Mathworks, Inc. Observer for simulation test and verification
JP2020160923A (ja) 2019-03-27 2020-10-01 三菱電機株式会社 処理性能検証装置、及び、処理性能を検証する方法

Also Published As

Publication number Publication date
WO2024127523A1 (ja) 2024-06-20
JPWO2024127523A1 (ja) 2024-06-20
EP4636597A1 (en) 2025-10-22

Similar Documents

Publication Publication Date Title
US7549069B2 (en) Estimating software power consumption
US7904870B2 (en) Method and apparatus for integrated circuit design model performance evaluation using basic block vector clustering and fly-by vector clustering
US7844928B2 (en) Method and apparatus for evaluating integrated circuit design performance using enhanced basic block vectors that include data dependent information
CN101482891B (zh) 性能评估模拟
US7770140B2 (en) Method and apparatus for evaluating integrated circuit design model performance using basic block vectors and fly-by vectors including microarchitecture dependent information
US20160117199A1 (en) Computing system with thermal mechanism and method of operation thereof
US20110016455A1 (en) Power Profiling for Embedded System Design
US20060130029A1 (en) Programming language model generating apparatus for hardware verification, programming language model generating method for hardware verification, computer system, hardware simulation method, control program and computer-readable storage medium
JP5454349B2 (ja) 性能推定装置
US10963026B2 (en) Digital signal transition counters for digital integrated circuits
US9021289B2 (en) Method and system for power estimation based on a number of signal changes
CN108228445B (zh) 虚拟机能耗的测试方法以及装置
JP7799862B2 (ja) 処理負荷推定システム、及び処理負荷推定方法
Wert et al. Integrating software performance curves with the palladio component model
US20160116533A1 (en) Diagnostic apparatus
Lorenz et al. From RTL IP to functional system-level models with extra-functional properties
CN119003093A (zh) 资源调度评估方法、装置、设备、存储介质和产品
JP7518013B2 (ja) 診断パターン生成方法及び計算機
US7512923B2 (en) Automatic estimation method, apparatus, and recording medium
US20230205517A1 (en) Automated use of computational motifs via deep learning detection
JP6175637B2 (ja) 電力見積支援プログラム、電力見積支援装置および電力見積支援方法
Bobrek et al. Shared resource access attributes for high-level contention models
US7346868B2 (en) Method and system for evaluating design costs of an integrated circuit
CN120353684B (zh) 一种基于仿真模拟模型对计算机硬件性能评估方法及系统
US12436870B2 (en) Method and apparatus for detecting outliers in a set of runs of software applications

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20250127

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20250127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20251007

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20251104

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20251202

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20251226