(57)【要約】【課題】評価対象システムの性能を精度よく見積もる性能シミュレーションを行う。【解決手段】シーケンス情報入力部１８が、性能シミュレーションに用いるシーケンスを示すシーケンス情報を複数入力し、性能選択部８が、機能ブロックの優先度、機能ブロックの処理時間、シーケンス情報の入力順序等の複数の順序決定基準を用いて性能シミュレーションにおけるスケジューリングアルゴリズムを選択し、処理選択部１３が、各シーケンス情報に示される機能ブロック及びスケジューリングアルゴリズムに基づいて、機能ブロックのシミュレーション実行順序を決定し、処理実行部１４が、決定されたシミュレーション実行順序に従って性能シミュレーションを行うことで、スケジューリングアルゴリズムに応じて機能ブロックのシミュレーション実行順序を変化させることができ、評価対象システムの性能を様々な観点から精度よく見積もることができる。【選択図】図１
2009258831.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータ処理コンポーネントが含まれ前記複数のデータ処理コンポーネントの実行順序が規定されているデータ処理シーケンスを対象としてハードウェアプラットフォームの処理性能についての性能シミュレーションを行うシミュレーション装置であって、
性能シミュレーションの対象として選択された複数の対象データ処理シーケンスについて、対象データ処理シーケンスごとに、対象データ処理シーケンスに含まれる複数の対象データ処理コンポーネントとその実行順序とが示されるデータ処理シーケンス情報を入力するデータ処理シーケンス情報入力部と、
性能シミュレーションにおけるスケジューリングアルゴリズムを選択するスケジューリングアルゴリズム選択部と、
データ処理シーケンス情報に示される個々の対象データ処理シーケンスにおける対象データ処理コンポーネントの実行順序と、前記スケジューリングアルゴリズム選択部により選択されたスケジューリングアルゴリズムとに基づき、前記複数の対象データ処理シーケンス単位で対象データ処理コンポーネントのシミュレーション実行順序を決定するスケジューリング部と、
前記スケジューリング部により決定されたシミュレーション実行順序で性能シミュレーションを行うシミュレーション実行部とを有することを特徴とするシミュレーション装置。
【請求項２】
前記スケジューリングアルゴリズム選択部は、
シミュレーション実行順序を決定するための複数の順序決定基準のうちの任意の順序決定基準を用いてスケジューリングアルゴリズムを選択することを特徴とする請求項１に記載のシミュレーション装置。
【請求項３】
前記スケジューリングアルゴリズム選択部は、
前記データ処理シーケンス情報入力部への各データ処理シーケンス情報の入力順序、各対象データ処理コンポーネントに設定されている優先度の順序、各対象データ処理コンポーネントの予測処理時間の長短、及び各対象データ処理シーケンスに設定されているシーケンスＩＤ（Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）の順序のうちの任意の順序決定基準を用いてスケジューリングアルゴリズムを選択することを特徴とする請求項２に記載のシミュレーション装置。
【請求項４】
前記スケジューリングアルゴリズム選択部は、
複数の順序決定基準のうちの２つ以上の順序決定基準を組み合わせる場合に、当該２つ以上の順序決定基準間の優先順位を決定してスケジューリングアルゴリズムを選択することを特徴とする請求項２又は３に記載のシミュレーション装置。
【請求項５】
前記シミュレーション装置は、更に、
前記シミュレーション実行部による性能シミュレーションの結果得られた処理性能が所定の目標性能に合致しない場合に、前記スケジューリングアルゴリズム選択部により選択されたスケジューリングアルゴリズムを変更するスケジューリングアルゴリズム変更部を有し、
前記スケジューリング部は、
前記スケジューリングアルゴリズム変更部による変更後のスケジューリングアルゴリズムに基づいて、対象データ処理コンポーネントのシミュレーション実行順序を決定し、
前記シミュレーション実行部は、
前記変更後のスケジューリングアルゴリズムに基づいて前記スケジューリング部により決定されたシミュレーション実行順序で性能シミュレーションを行うことを特徴とする請求項１〜４のいずれかに記載のシミュレーション装置。
【請求項６】
前記スケジューリングアルゴリズム変更部は、
前記シミュレーション実行部により性能シミュレーションが行われる度に、前記シミュレーション実行部による性能シミュレーションの結果得られた処理性能と前記目標性能とを比較し、前記シミュレーション実行部による性能シミュレーションの結果得られた処理性能が前記目標性能に合致するまで、スケジューリングアルゴリズムの変更を繰り返すことを特徴とする請求項５に記載のシミュレーション装置。
【請求項７】
前記シミュレーション実行部は、
性能シミュレーションとして、前記スケジューリング部により決定されたシミュレーション実行順序で前記ハードウェアプラットフォームが複数の対象データ処理コンポーネントを実行する場合の処理時間を予測することを特徴とする請求項１〜６のいずれかに記載のシミュレーション装置。
【請求項８】
コンピュータが、複数のデータ処理コンポーネントが含まれ前記複数のデータ処理コンポーネントの実行順序が規定されているデータ処理シーケンスを対象としてハードウェアプラットフォームの処理性能についての性能シミュレーションを行うシミュレーション方法であって、
前記コンピュータが、性能シミュレーションの対象として選択された複数の対象データ処理シーケンスについて、対象データ処理シーケンスごとに、対象データ処理シーケンスに含まれる複数の対象データ処理コンポーネントとその実行順序とが示されるデータ処理シーケンス情報を入力するデータ処理シーケンス情報入力ステップと、
前記コンピュータが、性能シミュレーションにおけるスケジューリングアルゴリズムを選択するスケジューリングアルゴリズム選択ステップと、
前記コンピュータが、データ処理シーケンス情報に示される個々の対象データ処理シーケンスにおける対象データ処理コンポーネントの実行順序と、前記スケジューリングアルゴリズム選択ステップにより選択されたスケジューリングアルゴリズムとに基づき、前記複数の対象データ処理シーケンス単位で対象データ処理コンポーネントのシミュレーション実行順序を決定するスケジューリングステップと、
前記コンピュータが、前記スケジューリングステップにより決定されたシミュレーション実行順序で性能シミュレーションを行うシミュレーション実行ステップとを有することを特徴とするシミュレーション方法。
【請求項９】
複数のデータ処理コンポーネントが含まれ前記複数のデータ処理コンポーネントの実行順序が規定されているデータ処理シーケンスを対象としてハードウェアプラットフォームの処理性能についての性能シミュレーションを行うコンピュータに、
性能シミュレーションの対象として選択された複数の対象データ処理シーケンスについて、対象データ処理シーケンスごとに、対象データ処理シーケンスに含まれる複数の対象データ処理コンポーネントとその実行順序とが示されるデータ処理シーケンス情報を入力するデータ処理シーケンス情報入力処理と、
性能シミュレーションにおけるスケジューリングアルゴリズムを選択するスケジューリングアルゴリズム選択処理と、
データ処理シーケンス情報に示される個々の対象データ処理シーケンスにおける対象データ処理コンポーネントの実行順序と、前記スケジューリングアルゴリズム選択処理により選択されたスケジューリングアルゴリズムとに基づき、前記複数の対象データ処理シーケンス単位で対象データ処理コンポーネントのシミュレーション実行順序を決定するスケジューリング処理と、
前記スケジューリング処理により決定されたシミュレーション実行順序で性能シミュレーションを行うシミュレーション実行処理とを実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、システムの構築前のシステム設計初期段階において評価対象システムの性能を見積もる性能シミュレーションに関する。
【背景技術】
【０００２】
従来、評価対象システムの性能を見積もるにあたり、アプリケーションプログラム実行時のトレース情報を取得し、そのトレース情報を元に性能シミュレーションを行い、評価対象ハードウェアアーキテクチャにおける性能を予測していた。
そのような性能シミュレーション方式の例が、特開平６−５９９３９号公報（特許文献１）に記載されている。
上記特許文献１に記載の性能シミュレーション方式は、アプリケーションプログラムを実機上で実行したときのトレース情報を蓄積し、このトレース情報の演算時間や通信時間をシミュレーション評価対象ハードウェアの演算性能や通信性能に置き換えてシミュレーションすることにより予測時間を求めている。
また、スケジューリング方式やキューイング方式などを考慮したリアルタイムＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が組み込まれたシステムにおける性能シミュレーション方法の例が、特開２００２−１４０２０８号公報（特許文献２）に記載されている。
上記特許文献２に記載の性能シミュレーション方法は、リアルタイムＯＳ機能にあるスケジュール方式に従いタスク内の優先度情報から実行する処理の実行順を決定している。
【特許文献１】特開平６−５９９３９号公報
【特許文献２】特開２００２−１４０２０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記特許文献１に記載の性能シミュレーション方式では、アプリケーションプログラム実行時に取得したトレース情報の実行順序にのみ従って性能シミュレーションを実行する。
また、上記特許文献２に記載の性能シミュレーション方式では、リアルタイムＯＳ機能にあるスケジュール方式を選択することにより、タスク内の優先度情報を用いてタスクの実行順序を決定している。
しかし、シミュレーション評価対象のハードウェアアーキテクチャの変更に伴い、アプリケーションプログラム内の処理機能を実行するハードウェアの変更や、ハードウェアの演算性能が変わることにより、取得したトレース情報の実行順序やＯＳ機能にあるスケジュール方式の選択による決定方法とは異なる順序に処理が実行されることがある。
評価対象システムにおいてどの処理を優先して処理するかのスケジューリングアルゴリズムによる決定方法には、入力順、優先度順、処理時間の短い順、シーケンスＩＤ順、これらを組み合わせたものなど複数あり、スケジューリングアルゴリズムの変更により、取得したトレース情報の実行順序やＯＳ機能にあるスケジュール方式の選択による決定方法とは異なる順序に処理が実行されることがあるため、性能シミュレーションによる見積もり結果の精度がよくないといった課題がある。
【０００４】
この発明は上記のような課題を解決することを主な目的の一つとしており、性能シミュレーションにおけるスケジューリングアルゴリズムを選択し、選択したスケジューリングアルゴリズムに従って性能シミュレーションを実行することにより評価対象システムの性能を精度よく見積もることを目的とする。
【課題を解決するための手段】
【０００５】
本発明に係るシミュレーション装置は、
複数のデータ処理コンポーネントが含まれ前記複数のデータ処理コンポーネントの実行順序が規定されているデータ処理シーケンスを対象としてハードウェアプラットフォームの処理性能についての性能シミュレーションを行うシミュレーション装置であって、
性能シミュレーションの対象として選択された複数の対象データ処理シーケンスについて、対象データ処理シーケンスごとに、対象データ処理シーケンスに含まれる複数の対象データ処理コンポーネントとその実行順序とが示されるデータ処理シーケンス情報を入力するデータ処理シーケンス情報入力部と、
性能シミュレーションにおけるスケジューリングアルゴリズムを選択するスケジューリングアルゴリズム選択部と、
データ処理シーケンス情報に示される個々の対象データ処理シーケンスにおける対象データ処理コンポーネントの実行順序と、前記スケジューリングアルゴリズム選択部により選択されたスケジューリングアルゴリズムとに基づき、前記複数の対象データ処理シーケンス単位で対象データ処理コンポーネントのシミュレーション実行順序を決定するスケジューリング部と、
前記スケジューリング部により決定されたシミュレーション実行順序で性能シミュレーションを行うシミュレーション実行部とを有することを特徴とする。
【発明の効果】
【０００６】
本発明によれば、スケジューリングアルゴリズムを選択するとともに、選択したスケジューリングアルゴリズムに応じて対象データ処理コンポーネントのシミュレーション実行順序を決定してシミュレーションを実行するため、スケジューリングアルゴリズムに応じて対象データ処理コンポーネントのシミュレーション実行順序を変化させることができ、評価対象システムの性能を様々な観点から精度よく見積もることができる。
【発明を実施するための最良の形態】
【０００７】
実施の形態１．
本実施の形態では、評価対象システムの動作における入力データであるシナリオデータごとにトレース情報を独立したデータ処理シーケンスに分割し、処理の実行順序を決定するためのスケジューリングに関する要素情報を取得し、スケジューリングアルゴリズムの選択に従った性能シミュレーションを行うことにより、評価対象システムの性能を精度よく見積もるシミュレーション装置について説明する。
【０００８】
本実施の形態に係るシミュレーション装置は、例えば、図３に示すような、複数の機能ブロックが含まれる評価対象システムを対象としてハードウェアプラットフォームの処理性能についての性能シミュレーションを行う。
図３に示す評価対象システムにおいて、計測データが機能ブロックＡに入力されてから、機能ブロックＥ又は機能ブロックＦから制御指示が出力されるまでは、複数の経路（機能ブロックの実行順序、処理工程）が存在する。それぞれの経路をデータ処理シーケンスという（以下、処理シーケンス又はシーケンスともいう）。
また、各処理シーケンスを構成している機能ブロックをデータ処理コンポーネントともいう。
更に、図３に示す評価対象システムには、多数の処理シーケンスが存在するが、これら多数の処理シーケンスのうち、性能シミュレーションの対象として選択された処理シーケンスを対象データ処理シーケンスともいう。また、対象データ処理シーケンスに含まれる機能ブロックを対象データ処理コンポーネントともいう。
なお、図３の詳細については後述する。
【０００９】
図１は、本実施の形態に係る性能シミュレーション装置１００の構成例を示す構成ブロック図である。
図１において、機能選択部１は、任意の機能ブロック単位に分割された複数の機能から構成された評価対象システムの機能モデルや機能設定を行う。
機能シミュレーション部２は、機能モデルや機能設定に基づき機能検証を実行する。
シナリオデータ３は、評価対象システムの機能動作や、その動作に対する性能を評価するために用いる。
トレース情報４は、機能シミュレーションにおいて、シナリオデータに従い評価対象システム内の複数に分割された機能ブロックを実行した際に、どの機能ブロックを実行し次の機能ブロックに遷移したかを示す遷移情報や機能ブロック内の分岐情報などの実行履歴を示す。
トレース分割部５は、機能シミュレーションにより取得したトレース情報４を、シナリオデータごとの独立した処理シーケンスに分割する。トレース分割部５により分割されたトレース情報４は、シーケンス情報という。１つのシーケンス情報には、１つの処理シーケンスが示される。また、シーケンス情報には、対象となる処理シーケンスに含まれる複数の機能ブロック及びその実行順序が示される。
【００１０】
性能情報データベース６は、性能パラメータ情報７を格納するデータベースである。
性能パラメータ情報７は、各機能ブロック単体において、処理に必要とされる処理量を様々なハードウェアプラットフォーム上で計測した結果を示す。例えば、機能ブロックごとの予測処理時間等を示す。また、性能パラメータ情報７には、機能ブロックのシミュレーション実行順序を決定するためのスケジューリングに関する要素情報も含まれる。更には、評価対象システムを実行するハードウェアプラットフォームの仕様など、処理時間を予測するための情報も含まれる。
【００１１】
性能選択部８は、評価対象システムの各機能ブロックをどのハードウェアモジュール上で実行するかの指定や、ハードウェアモジュール間の接続指定、処理の実行順序を決定するためのスケジューリングアルゴリズムの選択設定を行う。
性能選択部８は、例えば、後述するシーケンス情報入力部１８への各シーケンス情報の入力順序、各機能ブロックに設定されている優先度の順序、各機能ブロックの予測処理時間の長短、及び各データ処理シーケンスに設定されているシーケンスＩＤ（Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）の順序のうちの任意の順序決定基準を用いてスケジューリングアルゴリズムを選択する。
また、性能選択部８は、上２つ以上の順序決定基準を組み合わせる場合に、当該２つ以上の順序決定基準間の優先順位を決定してスケジューリングアルゴリズムを選択する。
性能選択部８は、スケジューリングアルゴリズム選択部の例である。
【００１２】
性能シミュレーション部９は、性能設定に基づき構築した性能モデル（スケジューリングアルゴリズム）と、トレース分割部５により分割されたシナリオデータごとの独立した処理シーケンス（シーケンス情報に示される処理シーケンス）と、性能パラメータ情報により性能シミュレーションを実行する。
【００１３】
性能シミュレーション部９において、シーケンス情報入力部１８は、トレース分割部５により分割されたシーケンス情報を入力する。
シーケンス情報入力部１８は、データ処理シーケンス情報入力部の例である。
【００１４】
スケジューリング要素情報取得部１０は、シナリオデータごとの独立した処理シーケンスのＩＤ情報（シーケンス情報のＩＤ）や機能ブロックの優先度情報、処理時間情報など、処理の実行順序を決定するためのスケジューリングに関する要素情報を取得する。
【００１５】
スケジューリング要素選択部１１は、スケジューリング要素情報取得部１０で取得した複数のスケジューリング要素情報から、性能選択部８において指定したスケジューリングアルゴリズムの選択設定に基づき、必要なスケジューリング要素情報の選択を行う。
【００１６】
待ち行列モデル１２は、複数の処理シーケンスによる処理実行要求があった場合に実行する処理を選択実行し、それ以外の処理の実行を待たせる。
待ち行列モデル１２には、処理選択部１３と処理実行部１４が存在する。
【００１７】
処理選択部１３は、複数の処理シーケンスによる処理実行要求があった場合にスケジューリング要素選択部１１にて選択したスケジューリング要素情報に基づき実行する処理を選択する。
換言すると、処理選択部１３は、シーケンス情報に示される個々の処理シーケンスにおける機能ブロックの実行順序と、性能選択部８により選択されたスケジューリングアルゴリズムとに基づき、複数の処理シーケンス単位で機能ブロックのシミュレーション実行順序を決定する。
処理選択部１３は、スケジューリング部の例である。
【００１８】
処理実行部１４は、処理選択部１３で選択した処理を実行したとして、その処理に対する処理時間分を時間経過させる。
つまり、処理実行部１４は、処理選択部１３により決定されたシミュレーション実行順序で性能シミュレーションを行う。
処理実行部１４は、シミュレーション実行部の例である。
【００１９】
次に動作について説明する。
図２は、本実施の形態に係るシミュレーション装置１００の動作例を示したフローチャートである。
また、性能シミュレーションにより処理時間を見積もる評価対象システムの一例を図３に示す。
図３に示す評価対象システムは計測データを入力し、その計測データに従い機能ブロックの機能が実行され、次の機能ブロックに遷移し実行するといった動作を制御指示まで行うものである。
本実施の形態に係る性能シミュレーション方式による評価の一例として、評価対象システムに対してシナリオデータ（１）〜（３）の３つのシナリオデータを、評価対象システムに同時に入力した際のシナリオデータごと（処理シーケンスごと）の処理時間を、性能シミュレーションにより見積もることを想定する。
シナリオデータ（１）〜（３）は図４に示すように、制御指示までの評価対象システムの各機能ブロックの実行順序を示す。
【００２０】
本実施の形態に係るシミュレーション装置１００は、機能シミュレーションを実行するために、図３の評価対象システムに対する機能モデル及び機能設定を行う（ステップＳ１）。
図４に示した３つのシナリオデータを入力した場合の機能シミュレーションを実行し、トレース情報を出力する（ステップＳ２、Ｓ３、Ｓ４）。
機能シミュレーションの実行により取得したトレース情報を図５に示す。
トレース情報は、３つのシナリオデータを入力した際に実行した機能ブロックＩＤや機能ブロック内の分岐パターン情報やその他、機能ブロック実行時の情報を記載したものである。
このトレース情報から３つのシナリオデータごとに分割したシーケンス情報をトレース分割部５において作成する（ステップＳ５）。
３つのシナリオデータごとに分割したシーケンス情報を図６に示す。
なお、各シーケンス情報に示されている処理シーケンスが対象データ処理シーケンスに相当し、各シーケンス情報に示されている機能ブロックが対象データ処理コンポーネントに相当する。
【００２１】
次に、性能選択部８において、評価対象システムの各機能ブロックをどのハードウェアモジュール上で実行するかの指定や、処理の実行順序を決定するためのスケジューリングアルゴリズムの選択設定を行う（ステップＳ６）（スケジューリングアルゴリズム選択ステップ）。
【００２２】
性能シミュレーション対象となるハードウェアモジュール上に評価対象システムの各機能ブロックを割当てた図を図７に示す。
図７では、１つのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）から構成されたサーバ計算機１において、機能ブロックＡ〜Ｆの全てが実行処理するように指定している。
【００２３】
図８にスケジューリングアルゴリズムの選択設定の例を示す。
スケジューリングアルゴリズムは、２つ以上の処理の実行要求がサーバ計算機１に対して同時にあり、処理要求が競合している場合において、どの機能ブロックを先に処理するのかを決定する指針を示すものである。
スケジューリングアルゴリズムは１つの以上の順序決定基準が含まれる。
順序決定基準の例としては、処理の入力アクセスのきた順番（シーケンス情報入力部１８がシーケンス情報を入力した順番）に処理するもの（入力順）、各機能ブロックに優先度を指定しその優先度に従って処理するもの（優先度順）、機能ブロックに対する予測処理時間の短いものから処理するもの（処理時間短い順）、トレース分割部５において作成したシーケンス情報につけたＩＤ番号の早いものから処理するもの（シーケンスＩＤ順）などがある。
性能選択部８は、処理要求が競合している中からどの処理を先に実行するかを決定するにあたり、スケジューリングアルゴリズムの選択を行う。
図８に示すように複数の順序決定基準を選択した場合には、どの順序決定基準を優先して用いるか示す優先順位を設定する。
図８に示すスケジューリングアルゴリズムの例では、入力順、優先度順、処理時間短い順の３つの順序決定基準が指定され、これら３つの順序決定基準のうち優先度順が最も優先順位が高く、処理時間短い順が２番目に優先順位が高く、入力順が最も優先順位が低いことを示している。
このようなスケジューリングアルゴリズムにより、３つの処理シーケンスに含まれる機能ブロック間のシミュレーション実行順序が決定される。
【００２４】
また、シミュレーション装置１００では、性能シミュレーションを実行するにあたり、トレース分割部５において作成したシーケンス情報（分割トレース情報）をシーケンス情報入力部１８が入力するとともに（データ処理シーケンス情報入力ステップ）、サーバ計算機１において各機能ブロックの処理に必要とされる処理量等を示した性能パラメータ情報を性能シミュレーション部９に入力し、性能シミュレーションを実行する（ステップＳ７、Ｓ８、Ｓ９）。
性能パラメータ情報は、例えば、図９に示す情報であり、機能ブロックごとの予測処理時間が示される。
また、性能パラメータ情報には、処理の実行順序を決定するためのスケジューリングに関する要素情報が含まれていてもよい。例えば、図１０に示すように、性能パラメータ情報に、機能ブロックごとの予測処理時間とともに、各機能ブロックの優先度が示される。
【００２５】
次に、性能シミュレーションの実行手順を具体的に説明する。
本実施の形態では、スケジューリングアルゴリズムとして入力順のみが指定された場合の性能シミュレーションの実行手順を説明する。
【００２６】
図６に示した３つのシナリオデータごとに分割したシーケンス情報を性能シミュレーション部９のシーケンス情報入力部１８が入力すると、各シーケンスの最初に実行を行う機能ブロックの処理要求を受け付ける。
処理要求を受け付けた入力順は、シーケンス情報（１）、シーケンス情報（２）、シーケンス情報（３）の順番であったとする。
シーケンス情報（１）においては機能ブロックＡの処理要求があり、スケジューリング要素情報取得部１０が、シーケンス情報（１）の入力の順番（１番目）、シーケンス情報（１）のＩＤ、性能パラメータ情報にある機能ブロックＡの処理時間、機能ブロックＡの優先度をスケジューリング要素情報として取得する（ステップＳ１０）。
次に、スケジューリング要素選択部１１が、性能選択部８が入力順と指定したスケジューリングアルゴリズムの選択に従い、スケジューリング要素情報取得部１０が取得したスケジューリング要素情報の中から、シーケンス情報（１）の入力の順番（１番目）を選択し、待ち行列モデル１２へ出力する（ステップＳ１１）。
シーケンス情報（２）においても同様に最初の処理要求である機能ブロックＡの処理要求があり、スケジューリング要素情報取得部１０はシーケンス情報（１）の場合と同様のスケジューリング要素情報を取得し、性能選択部８で入力順と指定したスケジューリングアルゴリズムの選択に従い、スケジューリング要素選択部１１がスケジューリング要素情報の中からシーケンス情報（２）の入力の順番（２番目）を選択し、待ち行列モデル１２へ出力する（ステップＳ１１）。
シーケンス情報（３）においても同様に最初の処理要求である機能ブロックＡの処理要求があり、スケジューリング要素情報取得部１０はシーケンス情報（１）の場合と同様のスケジューリング要素情報を取得し、性能選択部８で入力順と指定したスケジューリングアルゴリズムの選択に従い、スケジューリング要素選択部１１がスケジューリング要素情報の中からシーケンス情報（３）の入力の順番（３番目）を選択し、待ち行列モデル１２へ出力する（ステップＳ１１）。
【００２７】
図１１は、シーケンス情報（１）〜（３）の各機能ブロックのシミュレーション実行順序を説明する図である。
図１１のＮｏ．１の行に、シーケンス情報（１）〜（３）の先頭の機能ブロック（機能ブロックＡ）とその入力順序を示す。
処理選択部１３では、シーケンス情報（１）〜（３）のアクセスに対する入力順情報を比較し、入力順の早いシーケンス情報（１）を選択する（ステップＳ１２）（スケジューリングステップ）。
処理実行部１４では、シーケンス情報（１）の機能ブロックＡに対する処理を実行したとして、その処理に対する処理時間分を時間経過させる（ステップＳ１３）（シミュレーション実行ステップ）。
図１２にシーケンス（１）の機能ブロックＡに対する処理時間４［ｍｓｅｃ］を時間経過させたタイムチャートを示す。なお、図１２では、機能ブロックＡに対する処理として、処理Ａと表記している。
【００２８】
なお、処理要求が存在する間は、次の処理を行うためステップＳ１０の処理へ戻る（ステップＳ１４）。
シーケンス情報（１）の機能ブロックＡの処理が終わると、シーケンス情報（１）から次の機能ブロックＢに対する処理要求を受け付ける。シーケンス情報（１）の機能ブロックＢの入力順序は４番目となる。
この結果、図１１のＮｏ．２の行に示すように、シーケンス情報（１）の先頭の機能ブロックである機能ブロックＢの入力順序は４番目となり、シーケンス情報（２）の先頭の機能ブロックである機能ブロックＡの入力順序は２番目となり、シーケンス情報（３）の先頭の機能ブロックである機能ブロックＡの入力順序は３番目となる。
この段階では、処理選択部１３は、この中から入力順の早いシーケンス情報（２）を選択し、処理実行部１４は、シーケンス情報（２）の機能ブロックＡに対する処理を実行したとして、その処理に対する処理時間分を時間経過させる。
このような動作を処理要求がなくなるまで繰り返すことにより、各シーケンスに対する処理の見積り時間は図１２のタイムチャートに示されたように、シーケンス（１）は２７［ｍｓｅｃ］、シーケンス（２）は３２［ｍｓｅｃ］、シーケンス（３）は３１［ｍｓｅｃ］との結果を得ることができる。なお、図１２では、機能ブロックＡ〜Ｆに対する処理を、処理Ａ〜Ｆと表記している。
【００２９】
以上のようにスケジューリングアルゴリズムとしてアクセスの入力順を選択した場合において、シナリオデータ（１）〜（３）のそれぞれに対する処理時間を見積もることができる。
従って、性能シミュレーションにより、評価対象としたシナリオデータごとに見積り処理時間を得ることができる。
【００３０】
以上、本実施の形態では、任意の機能ブロック単位に分割された複数の機能から構成されたシステムを対象として、機能ブロックの実行順序を示すトレース情報と、機能ブロックに対する性能情報データベースとに従いシステム性能を見積もる性能シミュレーションにおいて、
対象システムのプログラムへ入力する入力データごとの独立した処理シーケンスにトレース情報を分割する手段や、分割された複数の処理シーケンスに対してどの処理を実行するかを決定するにあたり判定要素となる情報を取得するスケジューリング要素情報取得手段と、スケジューリングアルゴリズムの設計に従いスケジューリング要素情報の中から必要なスケジューリング要素情報のみを選択する手段とを備えた構成において、
スケジューリングアルゴリズムの設計に対応してシステムの性能を精度よく見積もることが可能な性能シミュレーション方式について説明した。
【００３１】
実施の形態２．
性能シミュレーションの実行にあたり、図８で説明したスケジューリングアルゴリズムの順序決定基準として優先度順と入力順を選択し、２つの優先順位は優先度順を１、入力順を２にした場合、すなわち優先度順が同じ場合は入力順に従って、実行する処理を決定するスケジューリングアルゴリズムについて説明を行う。
【００３２】
図６に示した３つのシナリオデータごとに分割したシーケンス情報を性能シミュレーション部９のシーケンス情報入力部１８が入力すると、各シーケンス情報の最初に実行を行う機能ブロックの処理要求を受け付ける。
処理要求を受け付けた入力順は、シーケンス情報（１）、シーケンス情報（２）、シーケンス情報（３）の順番であったとする。
シーケンス情報（１）においては機能ブロックＡの処理要求があり、実施の形態１と同様に、スケジューリング要素情報取得部１０が、シーケンス情報（１）の入力の順番（１番目）、シーケンス情報（１）のＩＤ、性能パラメータ情報にある機能ブロックＡの処理時間、機能ブロックＡの優先度（優先度３）をスケジューリング要素情報として取得する（ステップＳ１０）。
次に、スケジューリング要素選択部１１が、性能選択部８で優先度順と入力順と指定したスケジューリングアルゴリズムの選択に従い、スケジューリング要素情報取得部１０において取得したスケジューリング要素情報の中から性能パラメータ情報にある機能ブロックＡの優先度情報（優先度３）とシーケンス情報（１）の入力の順番（１番目）を選択し、待ち行列モデル１２へ出力する（ステップＳ１１）。
シーケンス情報（２）においても同様に機能ブロックＡに対するスケジューリング要素情報である優先度情報（優先度３）とシーケンス情報（２）の入力の順番（２番目）を選択し、待ち行列モデル１２へ出力する（ステップＳ１１）。
シーケンス情報（３）においても同様に機能ブロックＡに対するスケジューリング要素情報である優先度情報（優先度３）とシーケンス情報（３）の入力の順番（３番目）を選択し、待ち行列モデル１２へ出力する（ステップＳ１１）。
【００３３】
図１３は、シーケンス情報（１）〜（３）の各機能ブロックのシミュレーション実行順序を説明する図である。
図１３のＮｏ．１の行に、シーケンス情報（１）〜（３）の先頭の機能ブロック（機能ブロックＡ）とその優先度を示す。
処理選択部１３では、シーケンス情報（１）〜（３）の機能ブロックの優先度情報と入力順情報を比較し、優先度の高いシーケンスを選択する。優先度に差がない場合は入力順の早いシーケンスを選択する。
このケースでは、優先度は３つとも「３」であるため入力順の早いシーケンス情報（１）を選択する（ステップＳ１２）。
処理実行部１４では、シーケンス情報（１）の機能ブロックＡに対する処理を実行したとして、その処理に対する処理時間分を時間経過させる（ステップＳ１３）。
図１４にシーケンス情報（１）の機能ブロックＡに対する処理時間４［ｍｓｅｃ］を時間経過させたタイムチャートを示す。
【００３４】
シーケンス情報（１）の機能ブロックＡの処理が終わると、シーケンス情報（１）から次の機能ブロックＢに対する処理要求を受け付ける。機能ブロックＢの優先度は「１」である。
このため、図１３のＮｏ．２の行に示すように、シーケンス情報（１）の先頭の機能ブロックである機能ブロックＢの優先度は「１」であり、シーケンス情報（２）及びシーケンス情報（３）の先頭の機能ブロックである機能ブロックＡの優先度は「３」である。
処理選択部１３は、この中から優先度の高いシーケンス情報（１）を選択し、処理実行部１４は、シーケンス情報（１）の機能ブロックＢに対する処理を実行したとして、その処理に対する処理時間分を時間経過させる。
このような動作を処理要求がなくなるまで繰り返すことにより、各シーケンスに対する処理の見積り時間は図１４のタイムチャートに示されたように、シーケンス（１）は１２［ｍｓｅｃ］、シーケンス（２）は３２［ｍｓｅｃ］、シーケンス（３）は２８［ｍｓｅｃ］との結果を得ることができる。
なお、図１４では、機能ブロックＡ〜Ｆに対する処理を、処理Ａ〜Ｆと表記している。
【００３５】
以上のようにスケジューリングアルゴリズムとして優先度順を選択した場合において、シナリオデータ（１）〜（３）のそれぞれに対する処理時間を見積もることができる。
また、各機能ブロックの優先度の変更による処理時間の違いを見積もる場合には、性能パラメータ情報にある各機能ブロックの優先度を変更して性能シミュレーションを行えばよいため、機能ブロックの優先度の変更による処理時間の見積りを容易に行える。
従って、性能シミュレーションにより、評価対象としたシナリオデータごとに見積り処理時間を得ることができる。
【００３６】
以上、本実施の形態では、機能ブロックに対してどの機能ブロックの処理を優先的に行うかの優先度情報を付加することにより、その機能ブロックに対する優先度によるスケジューリングアルゴリズムに対応してシステムの性能を見積もることが可能な性能シミュレーション方式について説明した。
【００３７】
実施の形態３．
性能シミュレーションの実行にあたり、図８で説明したスケジューリングアルゴリズムの順序決定基準として処理時間の短い順と入力順を選択し、２つの優先順位は処理時間の短い順を１、入力順を２にした場合、すなわち処理時間の短い順が同じ場合は入力順に従って、実行する処理を決定するスケジューリングアルゴリズムについて説明を行う。
【００３８】
図６に示した３つのシナリオデータごとに分割したシーケンス情報を性能シミュレーション部９のシーケンス情報入力部１８が入力すると、各シーケンス情報の最初に実行を行う機能ブロックの処理要求を受け付ける。
処理要求を受け付けた入力順は、シーケンス情報（１）、シーケンス情報（２）、シーケンス情報（３）の順番であったとする。
シーケンス情報（１）においては機能ブロックＡの処理要求があり、実施の形態１と同様に、スケジューリング要素情報取得部１０が、シーケンス情報（１）の入力の順番（１番目）、シーケンス情報（１）のＩＤ、性能パラメータ情報にある機能ブロックＡの処理時間（４［ｍｓｅｃ］）、機能ブロックＡの優先度をスケジューリング要素情報として取得する（ステップＳ１０）。
次に、スケジューリング要素選択部１１が、性能選択部８で処理時間の短い順と入力順と指定したスケジューリングアルゴリズムの選択に従い、スケジューリング要素情報取得部１０において取得したスケジューリング要素情報の中から性能パラメータ情報にある機能ブロックＡの処理時間情報（４［ｍｓｅｃ］）とシーケンス情報（１）の入力の順番（１番目）を選択し、待ち行列モデル１２へ出力する（ステップＳ１１）。
シーケンス情報（２）においても同様に機能ブロックＡに対するスケジューリング要素情報である処理時間情報（４［ｍｓｅｃ］）とシーケンス情報（２）の入力の順番（２番目）を選択し、待ち行列モデル１２へ出力する（ステップＳ１１）。
シーケンス情報（３）においても同様に機能ブロックＡに対するスケジューリング要素情報である処理時間情報（４［ｍｓｅｃ］）とシーケンス情報（２）の入力の順番（３番目）を選択し、待ち行列モデル１２へ出力する（ステップＳ１１）。
【００３９】
図１５は、シーケンス情報（１）〜（３）の各機能ブロックのシミュレーション実行順序を説明する図である。
図１５のＮｏ．１の行に、シーケンス情報（１）〜（３）の先頭の機能ブロック（機能ブロックＡ）とその処理時間を示す。
処理選択部１３では、シーケンス情報（１）〜（３）の機能ブロックの処理時間情報と入力順情報を比較し、処理時間の短いシーケンスを選択する。処理時間に差がない場合は入力順の早いシーケンスを選択する。
このケースでは、処理時間は３つとも４［ｍｓｅｃ］であるため入力順の早いシーケンス情報（１）を選択する（ステップＳ１２）。
処理実行部１４では、シーケンス情報（１）の機能ブロックＡに対する処理を実行したとして、その処理に対する処理時間分を時間経過させる（ステップＳ１３）。
図１６にシーケンス情報（１）の機能ブロックＡに対する処理時間４［ｍｓｅｃ］を時間経過させたタイムチャートを示す。
【００４０】
シーケンス情報（１）の機能ブロックＡの処理が終わると、シーケンス情報（１）から次の機能ブロックＢに対する処理要求を受け付ける。機能ブロックＢの処理時間は２［ｍｓｅｃ］である。
このため、図１５のＮｏ．２の行に示すように、シーケンス情報（１）の先頭の機能ブロックである機能ブロックＢの処理時間は２［ｍｓｅｃ］であり、シーケンス情報（２）及びシーケンス情報（３）の先頭の機能ブロックである機能ブロックＡの処理時間は４［ｍｓｅｃ］である。
処理選択部１３は、この中から処理時間の短いシーケンス情報（１）を選択し、処理実行部１４は、シーケンス情報（１）の機能ブロックＢに対する処理を実行したとして、その処理に対する処理時間分を時間経過させる。
このような動作を処理要求がなくなるまで繰り返すことにより、各シーケンスに対する処理の見積り時間は図１６のタイムチャートに示されたように、シーケンス（１）は３２［ｍｓｅｃ］、シーケンス（２）は２６［ｍｓｅｃ］、シーケンス（３）は１７［ｍｓｅｃ］との結果を得ることができる。
なお、図１６では、機能ブロックＡ〜Ｆに対する処理を、処理Ａ〜Ｆと表記している。
【００４１】
以上のようにスケジューリングアルゴリズムとして処理時間の短い順を選択した場合において、シナリオデータ（１）〜（３）のそれぞれに対する処理時間を見積もることができる。
また、シミュレーション評価対象のハードウェアの違いにより性能を見積もる場合には、シミュレーション評価対象のハードウェアに対応した各機能ブロックの処理時間を性能情報データベース６より求めることができるため、シミュレーション評価対象のハードウェアの変更による処理時間の見積りを容易に精度よく求めることができる。
従って、性能シミュレーションにより、評価対象としたシナリオデータごとに見積り処理時間を得ることができる。
【００４２】
以上、本実施の形態では、機能ブロックに対する性能情報データベースの情報より、処理時間の短い機能ブロックを優先的に処理するスケジューリングアルゴリズムに対応してシステムの性能を見積もることが可能な性能シミュレーション方式について説明した。
【００４３】
実施の形態４．
性能シミュレーションの実行にあたり、図８で説明したスケジューリングアルゴリズムの順序決定基準として処理シーケンスのＩＤ順を選択し、すなわち処理シーケンスのＩＤの早い順に従って、実行する処理を決定するスケジューリングアルゴリズムについて説明を行う。
【００４４】
図６に示した３つのシナリオデータごとに分割したシーケンス情報を性能シミュレーション部のシーケンス情報入力部１８が入力すると、各シーケンス情報の最初に実行を行う機能ブロックの処理要求を受け付ける。
処理要求を受け付けた入力順は、シーケンス情報（１）、シーケンス情報（２）、シーケンス情報（３）の順番であったとする。
シーケンス情報（１）においては機能ブロックＡの処理要求があり、実施の形態１と同様に、スケジューリング要素情報取得部１０が、シーケンス情報（１）の入力の順番、シーケンス情報（１）のＩＤ、性能パラメータ情報にある機能ブロックＡの処理時間、機能ブロックＡの優先度をスケジューリング要素情報として取得する（ステップＳ１０）。
次に、スケジューリング要素選択部１１が、性能選択部８でシーケンスＩＤ順と指定したスケジューリングアルゴリズムの選択に従い、スケジューリング要素情報取得部１０において取得したスケジューリング要素情報の中からシーケンスＩＤ情報（１）を選択し、待ち行列モデル１２へ出力する（ステップＳ１１）。
シーケンス情報（２）においても同様に機能ブロックＡに対するスケジューリング要素情報であるシーケンスＩＤ情報（２）を選択し、待ち行列モデル１２へ出力する（ステップＳ１１）。
シーケンス情報（３）においても同様に機能ブロックＡに対するスケジューリング要素情報であるシーケンスＩＤ情報（３）を選択し、待ち行列モデル１２へ出力する（ステップＳ１１）。
【００４５】
図１７は、シーケンス情報（１）〜（３）の各機能ブロックのシミュレーション実行順序を説明する図である。
図１７のＮｏ．１の行に、シーケンス情報（１）〜（３）の先頭の機能ブロック（機能ブロックＡ）とそのシーケンスＩＤ情報を示す。
処理選択部１３では、シーケンス情報（１）〜（３）のシーケンスＩＤ情報を比較し、シーケンスＩＤの早い（小さい）シーケンス情報を選択する。
このケースでは、シーケンスＩＤが「１」であるシーケンス情報（１）を選択する（ステップＳ１２）。
処理実行部１４では、シーケンス情報（１）の機能ブロックＡに対する処理を実行したとして、その処理に対する処理時間分を時間経過させる（ステップＳ１３）。
図１８にシーケンス情報（１）の機能ブロックＡに対する処理時間４［ｍｓｅｃ］を時間経過させたタイムチャートを示す。
【００４６】
シーケンス情報（１）の機能ブロックＡの処理が終わると、シーケンス情報（１）から次の機能ブロックＢに対する処理要求を受け付ける。機能ブロックＢのシーケンスＩＤ情報は「１」である。
このため、図１７のＮｏ．２の行に示すように、シーケンス情報（１）の先頭の機能ブロックである機能ブロックＢのシーケンスＩＤは「１」であり、シーケンス情報（２）及びシーケンス情報（３）の先頭の機能ブロックである機能ブロックＡのシーケンスＩＤはそれぞれ「２」と「３」である。
処理選択部１３は、この中からシーケンスＩＤの早いシーケンス情報（１）を選択し、処理実行部１４は、シーケンス情報（１）の機能ブロックＢに対する処理を実行したとして、その処理に対する処理時間分を時間経過させる。
このような動作を処理要求がなくなるまで繰り返すことにより、各シーケンスに対する処理の見積り時間は図１８のタイムチャートに示されたように、シーケンス（１）は１２［ｍｓｅｃ］、シーケンス（２）は２５［ｍｓｅｃ］、シーケンス（３）は３２［ｍｓｅｃ］との結果を得ることができる。
なお、図１８では、機能ブロックＡ〜Ｆに対する処理を、処理Ａ〜Ｆと表記している。
【００４７】
以上のようにスケジューリングアルゴリズムとして処理シーケンスＩＤ順を選択した場合において、シナリオデータ（１）〜（３）のそれぞれに対する処理時間を見積もることができる。
従って、性能シミュレーションにより、評価対象としたシナリオデータごとに見積り処理時間を得ることができる。
【００４８】
以上、本実施の形態では、トレース情報を分割した処理シーケンスの順番の情報より、処理シーケンス番号の小さい処理シーケンスを優先的に処理するスケジューリングアルゴリズムに対応してシステムの性能を見積もることが可能な性能シミュレーション方式について説明した。
【００４９】
実施の形態５．
性能シミュレーションの実行にあたり、図８で説明したスケジューリングアルゴリズムの順序決定基準として優先度順、処理時間の短い順、入力順を選択し、３つの優先順位は優先度順を１、処理時間の短い順を２、入力順を３にした場合、すなわち優先度順が同じ場合は、処理時間の短い順に従って、さらに処理時間の短い順が同じ場合は入力順に従って、実行する処理を決定するスケジューリングアルゴリズムについて説明を行う。
【００５０】
図６に示した３つのシナリオデータごとに分割したシーケンス情報を性能シミュレーション部９のシーケンス情報入力部１８が入力すると、各シーケンス情報の最初に実行を行う機能ブロックの処理要求を受け付ける。
処理要求を受け付けた入力順は、シーケンス情報（１）、シーケンス情報（２）、シーケンス情報（３）の順番であったとする。
シーケンス情報（１）においては機能ブロックＡの処理要求があり、実施の形態１と同様に、スケジューリング要素情報取得部１０が、シーケンス情報（１）の入力の順番（１番目）、シーケンス情報（１）のＩＤ、性能パラメータ情報にある機能ブロックＡの処理時間（４［ｍｓｅｃ］）、機能ブロックＡの優先度（優先度３）をスケジューリング要素情報として取得する（ステップＳ１０）。
次に、スケジューリング要素選択部１１が、性能選択部８で優先度順、処理時間の短い順、入力順と指定したスケジューリングアルゴリズムの選択に従い、スケジューリング要素情報取得部１０において取得したスケジューリング要素情報の中から性能パラメータ情報にある機能ブロックの優先順位情報（優先度３）、処理時間情報（４［ｍｓｅｃ］）、シーケンス情報（１）の入力の順番（１番目）を選択し、待ち行列モデル１２へ出力する（ステップＳ１１）。
シーケンス情報（２）においても同様に機能ブロックＡに対するスケジューリング要素情報である機能ブロックの優先順位情報（優先度３）、処理時間情報（４［ｍｓｅｃ］）、シーケンス情報（２）の入力の順番（２番目）を選択し、待ち行列モデル１２へ出力する（ステップＳ１１）。
シーケンス情報（３）においても同様に機能ブロックＡに対するスケジューリング要素情報である機能ブロックの優先順位情報（優先度３）、処理時間情報（４［ｍｓｅｃ］）、シーケンス情報（３）の入力の順番（３番目）を選択し、待ち行列モデル１２へ出力する（ステップＳ１１）。
【００５１】
図１９は、シーケンス情報（１）〜（３）の各機能ブロックのシミュレーション実行順序を説明する図である。
図１９のＮｏ．１の行に、シーケンス情報（１）〜（３）の先頭の機能ブロック（機能ブロックＡ）とその優先度及び処理時間を示す。
処理選択部１３では、シーケンス情報（１）〜（３）の機能ブロックの優先度情報、処理時間情報、入力順情報を比較し、優先度の高いシーケンスを選択する。
優先度に差がない場合は処理時間の短いシーケンスを選択する。
さらに処理時間に差がない場合は入力順の早いシーケンスを選択する。
このケースでは、優先度は３つとも「３」であり、さらに処理時間は３つとも４［ｍｓｅｃ］であるため入力順の早いシーケンス情報（１）を選択する（ステップＳ１２）。
処理実行部１４では、シーケンス情報（１）の機能ブロックＡに対する処理を実行したとして、その処理に対する処理時間分を時間経過させる（ステップＳ１３）。
図２０にシーケンス（１）の機能ブロックＡに対する処理時間４［ｍｓｅｃ］を時間経過させたタイムチャートを示す。
【００５２】
シーケンス情報（１）の機能ブロックＡの処理が終わると、シーケンス情報（１）から次の機能ブロックＢに対する処理要求を受け付ける。
機能ブロックＢの優先度は「１」、処理時間は２［ｍｓｅｃ］である。
このため、この段階での各シーケンス情報の機能ブロックと優先度と処理時間は図１９のＮｏ．２の行のようになる。
処理選択部１３は、この中から優先度の高いシーケンス情報（１）を選択し、処理実行部１４は、シーケンス情報（１）の機能ブロックＢに対する処理を実行したとして、その処理に対する処理時間分を時間経過させる。
このような動作を処理要求がなくなるまで繰り返すことにより、各シーケンスに対する処理の見積り時間は図２０のタイムチャートに示されたように、シーケンス（１）は１２［ｍｓｅｃ］、シーケンス（２）は３２［ｍｓｅｃ］、シーケンス（３）は２３［ｍｓｅｃ］との結果を得ることができる。
なお、図２０では、機能ブロックＡ〜Ｆに対する処理を、処理Ａ〜Ｆと表記している。
【００５３】
以上のようにスケジューリングアルゴリズムとして優先度順と処理時間の短い順を組み合わせて選択した場合において、シナリオデータ（１）〜（３）のそれぞれに対する処理時間を見積もることができる。
従って、性能シミュレーションにより、評価対象としたシナリオデータごとに見積り処理時間を得ることができる。
【００５４】
以上、本実施の形態では、機能ブロックに対してどの機能ブロックを優先的に処理を行うかの優先度情報や、機能ブロックに対する性能情報データベースの情報など、複数のスケジューリング要素情報より、複数のスケジューリングアルゴリズムを組み合わせから求めたアルゴリズムに対応してシステムの性能を見積もることが可能な性能シミュレーション方式について説明した。
【００５５】
実施の形態６．
図２２は、本実施の形態に係るシミュレーション装置１００の構成例を示す。
本実施の形態に係るシミュレーション装置１００では、性能フィードバック部１５及びフィードバック情報データベース１６が追加された以外は、図１に示す構成と同じである。
【００５６】
性能フィードバック部１５は、性能選択部８による設定を変更し性能シミュレーション結果の取得を繰り返すことにより、性能選択部８による最良の設定を求める。
より具体的には、性能フィードバック部１５は、処理実行部１４により性能シミュレーションが行われる度に、処理実行部１４による性能シミュレーションの結果得られた処理性能と所定の目標性能とを比較し、処理実行部１４による性能シミュレーションの結果得られた処理性能が目標性能に合致するまで、スケジューリングアルゴリズムの変更を繰り返す。
性能フィードバック部１５は、スケジューリングアルゴリズム変更部の例である。
フィードバック情報データベース１６は、性能フィードバック部１５を実行する上で性能シミュレーション結果を格納するためのデータベースである。
【００５７】
また、図２３は、本実施の形態に係るシミュレーション装置１００の動作例を示すフローチャートである。
図２３に示すフローは、Ｓ１６及びＳ１７の処理が追加されている以外は、図２に示したものと同じである。
以下、Ｓ１６及びＳ１７について説明する。
【００５８】
ここでは、評価対象システムに対してシナリオデータ（１）〜（３）の３つのシナリオデータを、評価対象システムに同時に入力した際に、性能フィードバック部１５が、シナリオデータ（１）とシナリオデータ（３）が目標性能を満たすためのスケジューリングアルゴリズムを求める例について説明する。
【００５９】
性能フィードバック部１５では、性能シミュレーションによる結果が目標性能を満たしているかどうかを判定し、満たしていない場合はスケジューリングアルゴリズムの選択を変更し、再度性能シミュレーションを実施する。
スケジューリングアルゴリズムの選択を変更するにあたり、性能シミュレーション結果から得られたシナリオデータごとの独立した処理シーケンスのＩＤ情報や機能ブロックの優先度情報、処理時間情報など、処理の実行順序を決定するためのスケジューリングに関する要素情報をもとにして、性能フィードバック部１５はスケジューリングアルゴリズムの選択を行う。
以下では、シーケンス情報（１）に対する処理時間は２０［ｍｓｅｃ］以下、シーケンス情報（３）に対する処理時間は３０［ｍｓｅｃ］以下という目標性能を性能フィードバック部１５において設定し、性能フィードバック部１５は、このシーケンス情報（１）とシーケンス情報（３）に対する目標性能を満たすためのスケジューリングアルゴリズムを求める例について説明する。
【００６０】
例えば、最初にスケジューリングアルゴリズムとして入力順が選択され、実施の形態１に示したように、性能シミュレーション部９が入力順のスケジューリングアルゴリズムに従って性能シミュレーションを実行したとする。
性能シミュレーションの結果は図１２のようにシーケンス情報（１）は２７［ｍｓｅｃ］、シーケンス情報（３）は３１［ｍｓｅｃ］と求まり、性能フィードバック部１５は目標性能を満たさないと判定し、性能シミュレーション結果をフィードバック情報データベース１６へ格納し、スケジューリングアルゴリズムの選択を変更する（ステップＳ１６、Ｓ１７、Ｓ６）。
変更するスケジューリングアルゴリズムにおいては、性能シミュレーション結果から得られた処理の実行順序を決定するためのスケジューリングに関する要素情報をもとにして決定する。
図２１に示すように、性能シミュレーション結果から、実行した機能ブロックに対する優先度の値の合計値をシーケンス情報ごとに求める。
また、実行した機能ブロックに対する処理時間の合計値をシーケンス情報ごとに求める。
処理シーケンスＩＤ情報は、シーケンス情報（１）は１、シーケンス情報（２）は２、シーケンス情報（３）は３である。
【００６１】
以上のことから性能フィードバック部１５はシーケンス情報（１）とシーケンス情報（３）の目標性能を満たすために、シーケンス情報（２）に比べ、シーケンス情報（１）とシーケンス情報（３）が共に合計値の小さいスケジューリングアルゴリズムを選択する。
よって、シーケンスＩＤ順ではシーケンス情報（３）がシーケンス情報（２）より処理シーケンスＩＤ情報の値が大きいため選択から除外する。
処理時間の短い順は優先度順に比べ、シーケンス情報（１）に対する処理時間の合計が、シーケンス情報（２）と大差ないため、性能フィードバック部１５は、最終的に優先度順をスケジューリングアルゴリズムとして選択する。
【００６２】
そして、性能シミュレーション部９は、スケジューリングアルゴリズムとして優先度順による性能シミュレーション実行する。
性能シミュレーションの結果は、図１４のようにシナリオデータ（１）は１２［ｍｓｅｃ］、シナリオデータ（３）は２８［ｍｓｅｃ］と求まり、性能フィードバック部１５は目標性能を満たしたと判定し終了する（ステップＳ１８）。
【００６３】
以上のようにフィードバック処理によって性能シミュレーションを行うことにより、評価対象に対して目標性能を満たすスケジューリングアルゴリズムを導くことができる。
【００６４】
以上、本実施の形態では、複数のスケジューリングアルゴリズムの選択設定を変更し、性能シミュレーションの実行と結果の格納を繰り返し行うことにより、評価対象データに対応した最良のスケジューリングアルゴリズムを導くことが可能な性能シミュレーション方式について説明した。
【００６５】
最後に、実施の形態１〜６に示したシミュレーション装置１００のハードウェア構成例について説明する。
図２４は、実施の形態１〜６に示すシミュレーション装置１００のハードウェア資源の一例を示す図である。
なお、図２４の構成は、あくまでもシミュレーション装置１００のハードウェア構成の一例を示すものであり、シミュレーション装置１００のハードウェア構成は図２４に記載の構成に限らず、他の構成であってもよい。
【００６６】
図２４において、シミュレーション装置１００は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。
ＣＰＵ９１１は、バス９１２を介して、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９１３、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９１４、通信ボード９１５、表示装置９０１、キーボード９０２、マウス９０３、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。
更に、ＣＰＵ９１１は、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、コンパクトディスク装置９０５（ＣＤＤ）、プリンタ装置９０６、スキャナ装置９０７と接続していてもよい。また、磁気ディスク装置９２０の代わりに、光ディスク装置、メモリカード（登録商標）読み書き装置などの記憶装置でもよい。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
通信ボード９１５、キーボード９０２、マウス９０３、スキャナ装置９０７、ＦＤＤ９０４などは、入力装置の一例である。
また、通信ボード９１５、表示装置９０１、プリンタ装置９０６などは、出力装置の一例である。
【００６７】
通信ボード９１５は、ネットワークに接続されている。例えば、通信ボード９１５は、ＬＡＮ（ローカルエリアネットワーク）、インターネット、ＷＡＮ（ワイドエリアネットワーク）などに接続されている。
【００６８】
磁気ディスク装置９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。
プログラム群９２３のプログラムは、ＣＰＵ９１１がオペレーティングシステム９２１、ウィンドウシステム９２２を利用しながら実行する。
【００６９】
また、ＲＡＭ９１４には、ＣＰＵ９１１に実行させるオペレーティングシステム９２１のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。
また、ＲＡＭ９１４には、ＣＰＵ９１１による処理に必要な各種データが格納される。
【００７０】
また、ＲＯＭ９１３には、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）プログラムが格納され、磁気ディスク装置９２０にはブートプログラムが格納されている。
シミュレーション装置１００の起動時には、ＲＯＭ９１３のＢＩＯＳプログラム及び磁気ディスク装置９２０のブートプログラムが実行され、ＢＩＯＳプログラム及びブートプログラムによりオペレーティングシステム９２１が起動される。
【００７１】
上記プログラム群９２３には、実施の形態１〜６の説明において「〜部」として説明している機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
【００７２】
ファイル群９２４には、実施の形態１〜６の説明において、「〜の判断」、「〜の計算」、「〜の比較」、「〜の評価」、「〜の更新」、「〜の設定」、「〜の登録」、「〜の選択」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのＣＰＵの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態１〜６で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ等の記録媒体に記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００７３】
また、実施の形態１〜６の説明において「〜部」として説明しているものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明しているものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、実施の形態１〜６の「〜部」としてコンピュータを機能させるものである。あるいは、実施の形態１〜６の「〜部」の手順や方法をコンピュータに実行させるものである。
【００７４】
このように、実施の形態１〜６に示すシミュレーション装置１００は、処理装置たるＣＰＵ、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータであり、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【図面の簡単な説明】
【００７５】
【図１】実施の形態１に係るシミュレーション装置の構成例を示す図。
【図２】実施の形態１に係るシミュレーション装置の動作例を示すフローチャート図。
【図３】実施の形態１に係る評価対象システムの例を示す図。
【図４】実施の形態１に係るシナリオデータの例を示す図。
【図５】実施の形態１に係るトレース情報の例を示す図。
【図６】実施の形態１に係るシーケンス情報の例を示す図。
【図７】実施の形態１に係る性能シミュレーション対象ハードウェアの例を示す図。
【図８】実施の形態１に係るスケジューリングアルゴリズムの例を示す図。
【図９】実施の形態１に係る性能パラメータ情報の例を示す図。
【図１０】実施の形態１に係る性能パラメータ情報の例を示す図。
【図１１】実施の形態１に係る性能シミュレーションの実行順序の例を示す図。
【図１２】実施の形態１に係る性能シミュレーションの結果の例を示す図。
【図１３】実施の形態２に係る性能シミュレーションの実行順序の例を示す図。
【図１４】実施の形態２に係る性能シミュレーションの結果の例を示す図。
【図１５】実施の形態３に係る性能シミュレーションの実行順序の例を示す図。
【図１６】実施の形態３に係る性能シミュレーションの結果の例を示す図。
【図１７】実施の形態４に係る性能シミュレーションの実行順序の例を示す図。
【図１８】実施の形態４に係る性能シミュレーションの結果の例を示す図。
【図１９】実施の形態５に係る性能シミュレーションの実行順序の例を示す図。
【図２０】実施の形態５に係る性能シミュレーションの結果の例を示す図。
【図２１】実施の形態６に係る優先度と処理時間の合計値の例を示す図。
【図２２】実施の形態６に係るシミュレーション装置の構成例を示す図。
【図２３】実施の形態６に係るシミュレーション装置の動作例を示すフローチャート図。
【図２４】実施の形態１〜６に係るシミュレーション装置のハードウェア構成例を示す図。
【符号の説明】
【００７６】
１  機能選択部、２  機能シミュレーション部、３  シナリオデータ、４  トレース情報、５  トレース分割部、６  性能情報データベース、７  性能パラメータ情報、８  性能選択部、９  性能シミュレーション部、１０  スケジューリング要素情報取得部、１１  スケジューリング要素選択部、１２  待ち行列モデル、１３  処理選択部、１４  処理実行部、１５  性能フィードバック部、１６  フィードバック情報データベース、１８  シーケンス情報入力部、１００  シミュレーション装置。
【図１】
2009258831.tif 000003
【図２】
2009258831.tif 000004
【図３】
2009258831.tif 000005
【図４】
2009258831.tif 000006
【図５】
2009258831.tif 000007
【図６】
2009258831.tif 000008
【図７】
2009258831.tif 000009
【図８】
2009258831.tif 000010
【図９】
2009258831.tif 000011
【図１０】
2009258831.tif 000012
【図１１】
2009258831.tif 000013
【図１２】
2009258831.tif 000014
【図１３】
2009258831.tif 000015
【図１４】
2009258831.tif 000016
【図１５】
2009258831.tif 000017
【図１６】
2009258831.tif 000018
【図１７】
2009258831.tif 000019
【図１８】
2009258831.tif 000020
【図１９】
2009258831.tif 000021
【図２０】
2009258831.tif 000022
【図２１】
2009258831.tif 000023
【図２２】
2009258831.tif 000024
【図２３】
2009258831.tif 000025
【図２４】
2009258831.tif 000026