(57)【要約】【課題】  所望のシミュレーション速度と精度に応じた最適な抽象度のモデルを用いたモジュールの動作シミュレーションを行うための技術を提供すること。【解決手段】  モジュール毎に最も抽象度の高いモデルを選択して、選択したモデル群を用いてそれぞれのモジュールの動作シミュレーションを実行し、この動作シミュレーションにおける、それぞれのモジュールの活性化率を求め（Ｓ１）、指示された項目と、モジュールの活性化率とに従って、このモジュールについてモデルを１つを決定する処理を、それぞれのモジュールについて行う（Ｓ３）。【選択図】  図２
2006172317.tif 000002
【特許請求の範囲】
【請求項１】
動作シミュレーション対象のそれぞれのモジュールについて、モジュールの動作を記述する抽象度が異なる複数種のモデルを保持する保持手段と、
モジュール毎に最も抽象度の高いモデルを選択し、選択したモデル群を用いてそれぞれのモジュールの動作シミュレーションを実行する第１の実行手段と、
前記第１の実行手段により実行される動作シミュレーションにおける、それぞれのモジュールの活性化率を求める計算手段と、
前記動作シミュレーションを行う際に優先すべき項目を指示する指示手段と、
前記指示手段によって指示された前記項目と、前記計算手段が計算したモジュールの活性化率とに従って、当該モジュールについて前記保持手段が保持している複数種のモデルのうち１つを決定する処理を、それぞれのモジュールについて行う決定手段と、
前記決定手段がそれぞれのモジュールについて決定したモデルを用いて、それぞれのモジュールの動作シミュレーションを実行する第２の実行手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記指示手段が動作シミュレーションの速度優先を指示した場合、前記決定手段は、活性化率の高いモジュールについては高い抽象度のモデル、活性化率の低いモジュールについては低い抽象度のモデルを決定し、
前記指示手段が動作シミュレーションの精度優先を指示した場合、前記決定手段は、活性化率の高いモジュールについては低い抽象度のモデル、活性化率の低いモジュールについては高い抽象度のモデルを決定する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
動作シミュレーション対象のそれぞれのモジュールについて、モジュールの動作を記述する抽象度が異なる複数種のモデルを保持する保持手段と、
モジュール毎に最も抽象度の高いモデルを選択し、選択したモデル群を用いてそれぞれのモジュールの動作シミュレーションを実行する第１の実行手段と、
前記第１の実行手段により実行される動作シミュレーションにおける、それぞれのモジュールの活性化率を求める計算手段と、
前記保持手段が保持するそれぞれのモデルについてのイベント数を取得する取得手段と、
前記動作シミュレーションを行う際に優先すべき項目を指示する指示手段と、
前記指示手段によって指示された前記項目と、前記取得手段が取得したそれぞれのイベント数と、前記計算手段が計算したモジュールの活性化率とに従って、当該モジュールについて前記保持手段が保持している複数種のモデルのうち１つを決定する処理を、それぞれのモジュールについて行う決定手段と、
前記決定手段がそれぞれのモジュールについて決定したモデルを用いて、それぞれのモジュールの動作シミュレーションを実行する第２の実行手段と
を備えることを特徴とする情報処理装置。
【請求項４】
前記決定手段は更に、
モジュールの活性化率と、当該モジュールについて最も抽象度の低いモデルについてのイベント数とで決まる評価値を計算する処理を、それぞれのモジュールについて行う計算手段を備え、
前記指示手段が動作シミュレーションの精度優先を指示した場合、
活性化率が高い順にモジュールを参照した場合に、参照しているモジュールの評価値を過去に参照したモジュールの評価値に加算すると共に、加算結果が前記指示手段が指示した項目に応じた値よりも小さい場合には、前記参照しているモジュールについては低い抽象度のモデルを決定し、
前記加算結果が前記指示手段が指示した項目に応じた値以上である場合には、前記参照しているモジュールについては高い抽象度のモデルを決定する
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記決定手段は更に、
モジュールの活性化率と、当該モジュールについて最も抽象度の高いモデルについてのイベント数とで決まる評価値を計算する処理を、それぞれのモジュールについて行う計算手段を備え、
前記指示手段が動作シミュレーションの速度優先を指示した場合、
活性化率が高い順にモジュールを参照した場合に、参照しているモジュールの評価値を過去に参照したモジュールの評価値に加算すると共に、加算結果が前記指示手段が指示した項目に応じた値よりも小さい場合には、前記参照しているモジュールについては高い抽象度のモデルを決定し、
前記加算結果が前記指示手段が指示した項目に応じた値以上である場合には、前記参照しているモジュールについては低い抽象度のモデルを決定する
ことを特徴とする請求項３に記載の情報処理装置。
【請求項６】
動作シミュレーション対象のそれぞれのモジュールについて、モジュールの動作を記述する抽象度が異なる複数種のモデルを保持する保持手段を備える情報処理装置が行う情報処理方法であって、
モジュール毎に最も抽象度の高いモデルを選択し、選択したモデル群を用いてそれぞれのモジュールの動作シミュレーションを実行する第１の実行工程と、
前記第１の実行工程で実行される動作シミュレーションにおける、それぞれのモジュールの活性化率を求める計算工程と、
前記動作シミュレーションを行う際に優先すべき項目を指示する指示工程と、
前記指示工程で指示された前記項目と、前記計算工程で計算したモジュールの活性化率とに従って、当該モジュールについて前記保持手段が保持している複数種のモデルのうち１つを決定する処理を、それぞれのモジュールについて行う決定工程と、
前記決定工程でそれぞれのモジュールについて決定したモデルを用いて、それぞれのモジュールの動作シミュレーションを実行する第２の実行工程と
を備えることを特徴とする情報処理方法。
【請求項７】
動作シミュレーション対象のそれぞれのモジュールについて、モジュールの動作を記述する抽象度が異なる複数種のモデルを保持する保持手段を備える情報処理装置が行う情報処理方法であって、
モジュール毎に最も抽象度の高いモデルを選択し、選択したモデル群を用いてそれぞれのモジュールの動作シミュレーションを実行する第１の実行工程と、
前記第１の実行工程で実行される動作シミュレーションにおける、それぞれのモジュールの活性化率を求める計算工程と、
前記保持手段が保持するそれぞれのモデルについてのイベント数を取得する取得工程と、
前記動作シミュレーションを行う際に優先すべき項目を指示する指示工程と、
前記指示工程で指示された前記項目と、前記取得工程で取得したそれぞれのイベント数と、前記計算工程で計算したモジュールの活性化率とに従って、当該モジュールについて前記保持手段が保持している複数種のモデルのうち１つを決定する処理を、それぞれのモジュールについて行う決定工程と、
前記決定工程でそれぞれのモジュールについて決定したモデルを用いて、それぞれのモジュールの動作シミュレーションを実行する第２の実行工程と
を備えることを特徴とする情報処理方法。
【請求項８】
コンピュータに請求項６又は７に記載の情報処理方法を実行させることを特徴とするプログラム。
【請求項９】
請求項８に記載のプログラムを格納することを特徴とする、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のモジュールのそれぞれの動作シミュレートに係る技術に関するものである。
【背景技術】
【０００２】
プロセス技術の進歩によりＬＳＩの集積度が増大し、これまでボードで実現していたシステムをシステムＬＳＩとして１チップ上に搭載することが可能となった。また、チップ上に搭載する機能モジュールも多様化し、回路規模が増大している。
【０００３】
これに伴い、システムＬＳＩを効率的に設計する手法として、従来のVerilog-HDLやVHDLといったハードウェア記述言語を使用した設計から、SystemCやSpecCといったシステム記述言語による設計が普及してきた（特許文献１参照）。
【０００４】
システム記述言語による設計支援ツールとして、Synopsys社のCoCentricや、CoWare社のn2cが知られている。システム記述言語により記述したモジュールを、ブロック図入力画面で入力し、システムＬＳＩの設計を行うことが可能になっている。
【０００５】
システムＬＳＩの設計が終了すると、設計支援ツールからシミュレーションモデルを生成し、シミュレータを起動してシステムシミュレーションを行いシステムＬＳＩの機能や性能を確認できる。
【０００６】
システム記述言語によるモデリングには、記述の抽象度により以下の３種類の記述レベルが一般に知られている。
【０００７】
・  トランザクションレベル（TL）：
モジュール間の通信を捉えて機能を記述する抽象度レベルである。通信の開始および終了の時間、通信データにより動作するため、クロックに対する精度は非常に低い。イベントにより機能をシミュレートするため、シミュレーション速度は非常に速い。
【０００８】
・  バスサイクルアキュレート（BCA）：
モジュールの入力と出力のイベントとして機能を記述する抽象度レベルである。動作クロックに対し、入力および出力部で正確にシミュレートすることができる。
【０００９】
・  レジスタトランスファレベル（RTL）：
レジスタファイル間の同期転送を捉えて、回路を記述する抽象度レベルである。動作クロックに対し、正確に機能動作をシミュレートすることができ精度が非常に高い。１クロックごとに機能をシミュレートするため、シミュレーション速度は非常に遅い。
【００１０】
抽象度が高いほど、シミュレーション速度は速く、抽象度が低いほどシミュレーション精度は高くなる。システムＬＳＩの設計では、抽象度の高い記述から徐々に抽象度の低い記述へと、モジュールの機能が詳細化されていく。ここで、モジュールをシステム記述言語でモデリングしたものをモデルと呼ぶ。設計者は、モジュールの機能と構造を表すモデルを作成し、各種抽象度で記述されたモデルを選択し、システムＬＳＩの設計を行うのが一般的である。
【特許文献１】特開２００４−１３８５１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
ところで、近年とみに製品のライフサイクルが短くなる中で、システムＬＳＩ設計には、製品システムに最適なアーキテクチャを短期間で設計することが求められている。
【００１２】
システムに最適なアーキテクチャを探索する際には、様々なアーキテクチャに対してシステム・シミュレーションを何度も繰り返して性能評価を行う必要がある。システム・シミュレーションにおいて、各モジュールを表すモデルの抽象度の選択はシミュレーション速度と精度に大きく影響する。
【００１３】
全てのモジュールを抽象度の低いレベルで記述すると（低抽象度モデルを選択）、精度は高くなるが、シミュレーションに膨大な時間がかかってしまう。システムＬＳＩをレジスタ・トランスファ・レベルのモデルでシミュレーションした場合、シナリオテストに1週間以上かかることがある。この場合、いくつものアーキテクチャのシミュレーションを試行することは不可能である。
【００１４】
一方、全てのモジュールを抽象度の高いレベルで記述した場合は（高抽象度モデルを選択）、シミュレーション速度が速く、短期間にいくつものアーキテクチャを試すことができる。しかしながら、シミュレーション精度が低下してしまい、システム・シミュレーションによるアーキテクチャの性能の見積りと、実際の性能とが乖離してしまう可能性がある。
【００１５】
本発明は以上の問題に鑑みてなされたものであり、所望のシミュレーション速度と精度に応じた最適な抽象度のモデルを用いたモジュールの動作シミュレーションを行うための技術を提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明の目的を達成するために、例えば本発明の情報処理装置は以下の構成を備える。
【００１７】
即ち、動作シミュレーション対象のそれぞれのモジュールについて、モジュールの動作を記述する抽象度が異なる複数種のモデルを保持する保持手段と、
モジュール毎に最も抽象度の高いモデルを選択し、選択したモデル群を用いてそれぞれのモジュールの動作シミュレーションを実行する第１の実行手段と、
前記第１の実行手段により実行される動作シミュレーションにおける、それぞれのモジュールの活性化率を求める計算手段と、
前記動作シミュレーションを行う際に優先すべき項目を指示する指示手段と、
前記指示手段によって指示された前記項目と、前記計算手段が計算したモジュールの活性化率とに従って、当該モジュールについて前記保持手段が保持している複数種のモデルのうち１つを決定する処理を、それぞれのモジュールについて行う決定手段と、
前記決定手段がそれぞれのモジュールについて決定したモデルを用いて、それぞれのモジュールの動作シミュレーションを実行する第２の実行手段と
を備えることを特徴とする。
【００１８】
本発明の目的を達成するために、例えば本発明の情報処理装置は以下の構成を備える。
【００１９】
即ち、動作シミュレーション対象のそれぞれのモジュールについて、モジュールの動作を記述する抽象度が異なる複数種のモデルを保持する保持手段と、
モジュール毎に最も抽象度の高いモデルを選択し、選択したモデル群を用いてそれぞれのモジュールの動作シミュレーションを実行する第１の実行手段と、
前記第１の実行手段により実行される動作シミュレーションにおける、それぞれのモジュールの活性化率を求める計算手段と、
前記保持手段が保持するそれぞれのモデルについてのイベント数を取得する取得手段と、
前記動作シミュレーションを行う際に優先すべき項目を指示する指示手段と、
前記指示手段によって指示された前記項目と、前記取得手段が取得したそれぞれのイベント数と、前記計算手段が計算したモジュールの活性化率とに従って、当該モジュールについて前記保持手段が保持している複数種のモデルのうち１つを決定する処理を、それぞれのモジュールについて行う決定手段と、
前記決定手段がそれぞれのモジュールについて決定したモデルを用いて、それぞれのモジュールの動作シミュレーションを実行する第２の実行手段と
を備えることを特徴とする。
【００２０】
本発明の目的を達成するために、例えば本発明の情報処理方法は以下の構成を備える。
【００２１】
即ち、動作シミュレーション対象のそれぞれのモジュールについて、モジュールの動作を記述する抽象度が異なる複数種のモデルを保持する保持手段を備える情報処理装置が行う情報処理方法であって、
モジュール毎に最も抽象度の高いモデルを選択し、選択したモデル群を用いてそれぞれのモジュールの動作シミュレーションを実行する第１の実行工程と、
前記第１の実行工程で実行される動作シミュレーションにおける、それぞれのモジュールの活性化率を求める計算工程と、
前記動作シミュレーションを行う際に優先すべき項目を指示する指示工程と、
前記指示工程で指示された前記項目と、前記計算工程で計算したモジュールの活性化率とに従って、当該モジュールについて前記保持手段が保持している複数種のモデルのうち１つを決定する処理を、それぞれのモジュールについて行う決定工程と、
前記決定工程でそれぞれのモジュールについて決定したモデルを用いて、それぞれのモジュールの動作シミュレーションを実行する第２の実行工程と
を備えることを特徴とする。
【００２２】
本発明の目的を達成するために、例えば本発明の情報処理方法は以下の構成を備える。
【００２３】
即ち、動作シミュレーション対象のそれぞれのモジュールについて、モジュールの動作を記述する抽象度が異なる複数種のモデルを保持する保持手段を備える情報処理装置が行う情報処理方法であって、
モジュール毎に最も抽象度の高いモデルを選択し、選択したモデル群を用いてそれぞれのモジュールの動作シミュレーションを実行する第１の実行工程と、
前記第１の実行工程で実行される動作シミュレーションにおける、それぞれのモジュールの活性化率を求める計算工程と、
前記保持手段が保持するそれぞれのモデルについてのイベント数を取得する取得工程と、
前記動作シミュレーションを行う際に優先すべき項目を指示する指示工程と、
前記指示工程で指示された前記項目と、前記取得工程で取得したそれぞれのイベント数と、前記計算工程で計算したモジュールの活性化率とに従って、当該モジュールについて前記保持手段が保持している複数種のモデルのうち１つを決定する処理を、それぞれのモジュールについて行う決定工程と、
前記決定工程でそれぞれのモジュールについて決定したモデルを用いて、それぞれのモジュールの動作シミュレーションを実行する第２の実行工程と
を備えることを特徴とする。
【発明の効果】
【００２４】
本発明の構成により、所望のシミュレーション速度と精度に応じた最適な抽象度のモデルを用いたモジュールの動作シミュレーションを行うことができる。
【発明を実施するための最良の形態】
【００２５】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【００２６】
［第１の実施形態］
図１は、本実施形態に係る情報処理装置として機能するコンピュータの機構構成を示すブロック図である。このコンピュータは、これから実際に設計しようとするシステムの動作シミュレーションを行うためのものである。
【００２７】
システムを設計する場合には先ず、システムを構成する各モジュールをシステム記述言語でもって記述し、記述したことにより生成されるモデルを用いてモジュールの動作をシミュレーションする。また上述の通り、記述には様々な抽象度があり、どの抽象度のモデルを用いるのかは一長一短であって、なかなか決まらない。そこで本実施形態では、ユーザの要求に応じて、各モジュールの記述の抽象度を決定し、決定した抽象度のモデルを用いてモジュールの動作シミュレーションを行うというものである。
【００２８】
図１において、１０はシミュレーション部で、設計者によってデザインされたシステムを構成する各モジュールの動作シミュレーションを、各モジュールのモデルを用いて行う。同図では４つのモジュール（モジュール１０１〜１０４）のそれぞれについて予め作成されたモデルを保持しているのであるが、本実施形態ではそれぞれのモジュールについて、高い抽象度の記述レベルでもって記述されたモデル（高抽象度モデル）と、低い抽象度の記述レベルでもって記述されたモデル（低抽象度モデル）とを保持している。
【００２９】
即ち、モジュール１０１については、その動作をより高い抽象度でもってシステム記述言語を用いて記述することで生成される高抽象度モデル１０１ａと、その動作をより低い抽象度でもってシステム記述言語を用いて記述することで生成される低抽象度モデル１０１ｂとがセットになって保持されている。これはその他モジュールについても同様で、モジュール１０２については高抽象度モデル１０２ａと低抽象度モデル１０２ｂとがセットになって保持されており、モジュール１０３については高抽象度モデル１０３ａと低抽象度モデル１０３ｂとがセットになって保持されており、モジュール１０３については高抽象度モデル１０３ａと低抽象度モデル１０３ｂとがセットになって保持されている。
【００３０】
また、同図において１１は活性化率測定部で、動作シミュレーションを行っている際に、それぞれのモジュールの活性化率を測定する処理を行う。活性化率については後述する。
【００３１】
１２は抽象度選択部で、各モジュール毎に、高抽象度モデルを用いるのか、低抽象度モデルを用いるのかの選択処理を行う。この選択処理については後述する。
【００３２】
１３は制約条件入力部で、各モジュールの動作シミュレーションを行う場合に、シミュレーションの速度を優先するのか、精度を優先するのかの指示入力を行う。
【００３３】
図８は、本実施形態に係る情報処理装置として機能するコンピュータの基本構成を示すブロック図である。なお、このコンピュータとしては一般のＰＣ（パーソナルコンピュータ）やＷＳ（ワークステーション）等のコンピュータが適用可能である。
【００３４】
同図において１３０１はＣＰＵで、ＲＡＭ１３０２やＲＯＭ１３０３に格納されているプログラムやデータを用いて本装置全体の制御を行うと共に、後述する各処理を行う。図１において、シミュレーション部１０、活性化率測定部１１、抽象度選択部１２はこのＣＰＵ１３０１の一機能として動作する。
【００３５】
１３０２はＲＡＭで、外部記憶装置１３０６からロードされたプログラムやデータを一時的に記憶するためのエリアを備えると共に、ＣＰＵ１３０１が各種の処理を実行する際に使用するワークエリアを備える。
【００３６】
１３０３はＲＯＭで、本装置の設定データや、ブートプログラムなどを格納する。
【００３７】
１３０４は操作部で、キーボードやマウスなどにより構成されており、各種の指示をＣＰＵ１３０１に対して入力することができる。図１に示した制約条件入力部１３は、この操作部１３０４の一機能として動作する。
【００３８】
１３０５は表示部で、ＣＲＴや液晶画面などにより構成されており、ＣＰＵ１３０１による処理結果を画像や文字などでもって表示することができる。
【００３９】
１３０６は外部記憶装置で、ハードディスクドライブ装置などの大容量情報記憶装置として機能するものであり、ここにＯＳ（オペレーティングシステム）や、ＣＰＵ１３０１に後述する各処理を実行させるためのプログラムやデータが保存されており、これらの一部もしくは全部はＣＰＵ１３０１の制御に従ってＲＡＭ１３０２にロードされ、ＣＰＵ１３０１の処理対象となる。なお、外部記憶装置１３０６に保存されているデータには、図１に示した、各モジュール１０１〜１０４毎の高抽象度モデル１０１ａ〜１０４ａ、低抽象度モデル１０１ｂ〜１０４ｂが保存されている。
【００４０】
１３０７は上述の各部を繋ぐバスである。
【００４１】
図２は、本実施形態に係る情報処理装置として機能するコンピュータが行う各モジュールの動作シミュレーション処理のフローチャートである。なお、同図のフローチャートに従った処理をＣＰＵ１３０１に実行させるためのプログラムやデータは外部記憶装置１３０６に保存されており、これをＣＰＵ１３０１の制御に従ってＲＡＭ１３０２にロードし、ＣＰＵ１３０１がこれを用いて処理を行うことで、本実施形態に係る情報処理装置として機能するコンピュータは以下説明する各処理を行うことができる。
【００４２】
先ず、モジュール１０１〜１０４のそれぞれについて、高抽象度モデル１０１ａ〜１０４ａを選択し（抽象度選択部１２による処理）、選択した高抽象度モデル１０１ａ〜１０４ａを用いて、予め決められた動作シミュレーション（テストシミュレーション）を実行し、そのときの各モジュール１０１〜１０４の活性化率を求める（活性化率測定部１１による処理）（ステップＳ１）。ここで活性化率としては、単位時間あたりのバスアクセス回数とする。即ち、それぞれのモジュールについて使用された回数を測定し、これをシミュレーション時間で割ることで求められる。
【００４３】
ここで以下の説明では、それぞれのモジュール１０１〜１０４の活性化率が図９に示したようなものであったとして説明する。図９は、それぞれのモジュール１０１〜１０４の活性化率の例を示す図である。即ち、モジュール１０３、モジュール１０２、モジュール１０４、モジュール１０１の順に活性化率が高かったとする。
【００４４】
次に、本コンピュータのユーザから、動作シミュレーションにおいて優先すべき項目（制約条件）の指示入力を受け付ける（制約条件入力部１３による処理）（ステップＳ２）。本実施形態ではこの制約条件としては、動作シミュレーションの「速度優先」、「精度優先」の２つであるとする。入力形態については特に限定するものではないが、例えば、何れかを入力するように促すためのＧＵＩを表示部１３０５の表示画面上に表示させ、ユーザはこれを見て、操作部１３０４を用いて何れかを選択するようにしても良い。
【００４５】
次に、ＣＰＵ１３０１は、ステップＳ１で求めたそれぞれのモジュール１０１〜１０４の活性化率と、ステップＳ２で入力された制約条件とを用いて、高抽象度モデルを用いるのか、それとも低抽象度モデルを用いるのかをモジュール毎に決定する（抽象度選択部１２による処理）処理を行う（ステップＳ３）。
【００４６】
この決定処理では、制約条件が「速度優先」である場合、活性化率の高いモジュール１０２、１０３については高抽象度モデル１０２ａ、１０３ａを用いると決定し、活性化率の低いモジュール１０１、１０４については低抽象度モデル１０１ｂ、１０４ｂを用いると決定する。図３は、制約条件が「速度優先」である場合にそれぞれのモジュール１０１〜１０４について決定された抽象度モデルを示す図である。
【００４７】
なお、制約条件が「速度優先」である場合、本実施形態では活性化率に基づいてモジュール１０１〜１０４を２つのグループ（活性化率の高い上位２つと、低い下位２つ）に分け、活性化率の高い上位２つのモジュールのグループについては高抽象度モデルを用い、活性化率の低い下位２つのモジュールのグループについては低抽象度モデルを用いるとしたが、活性化率が高いモジュールほど高い抽象度のモデルを用いるようにし、活性化率が低いモジュールほど低い抽象度のモデルを用いるようにすれば、どのようにグループ分けしても良い。また、１つのモジュールについて３以上の抽象度のモデル（例えば１つのモジュールについて高抽象度モデル、中抽象度モデル、低抽象度モデル）を予め用意しておけば、活性化率に応じて、活性化率が高いモジュールほどより高い抽象度のモデルを用いるようにし、活性化率が低いモジュールほどより低い抽象度のモデルを用いるようにすれば良い。
【００４８】
また、制約条件が「精度優先」である場合、活性化率の高いモジュール１０２、１０３については低抽象度モデル１０２ｂ、１０３ｂを用いると決定し、活性化率の低いモジュール１０１、１０４については高抽象度モデル１０１ａ、１０４ａを用いると決定する。図４は、制約条件が「精度優先」である場合にそれぞれのモジュール１０１〜１０４について決定された抽象度モデルを示す図である。
【００４９】
なお、制約条件が「精度優先」である場合、本実施形態では活性化率に基づいてモジュール１０１〜１０４を２つのグループ（活性化率の高い上位２つと、低い下位２つ）に分け、活性化率の高い上位２つのモジュールのグループについては低抽象度モデルを用い、活性化率の低い下位２つのモジュールのグループについては高抽象度モデルを用いるとしたが、活性化率が高いモジュールほど低い抽象度のモデルを用いるようにし、活性化率が低いモジュールほど高い抽象度のモデルを用いるようにすれば、どのようにグループ分けしても良い。また、１つのモジュールについて３以上の抽象度のモデル（例えば１つのモジュールについて高抽象度モデル、中抽象度モデル、低抽象度モデル）を予め用意しておけば、活性化率に応じて、活性化率が高いモジュールほどより低い抽象度のモデルを用いるようにし、活性化率が低いモジュールほどより高い抽象度のモデルを用いるようにすれば良い。
【００５０】
以上のようにして、各モジュールの動作シミュレーションを行う場合に用いるモデルを決定することができるので、次に、各モジュールについて決定したモデルを用いて、動作シミュレーションを実行する（ステップＳ４）。このシミュレーションにより、各モジュールにより構成されるシステムのアーキテクチャの性能評価を行うことができる。
【００５１】
以上の説明により、本実施形態によって、ユーザが動作シミュレーションに優先すべき項目を指示することで、最適な抽象度のモデルが自動的に選択される。
【００５２】
また、本実施形態により、図１に示したアーキテクチャから例えば図５に示すアーキテクチャに変える場合のように、別のアーキテクチャの性能測定を行うときの期間が短縮し、且つ測定精度の低下を最小限に抑えるので、設計期間の短縮と設計品質の向上を達成することができる。図５は、図１に示したアーキテクチャとは異なるアーキテクチャを有する装置の機能構成の一例を示す図である。
【００５３】
また、本実施形態により、活性化率測定部１１は、全てのモジュールに対し高い抽象度のモデルを選択してシミュレーションを行うことにより活性化率を測定するので、活性化率測定時間を短縮することができる。
【００５４】
［第２の実施形態］
図６は、本実施形態に係る情報処理装置の機能構成を示すブロック図である。なお、同図において、図１と同じ部分については同じ番号を付けており、その説明は省略する。本実施形態に係る情報処理装置の機能構成は、図１に示した構成に新たに速度パラメータ付与部１４を加えたものとなる。速度パラメータ付与部１４は、ＣＰＵ１３０１の一機能として動作するものである。また、本実施形態に係る情報処理装置の基本構成については第１の実施形態と同じ（図８に示した構成）である。
【００５５】
以下、本実施形態に係る情報処理装置について説明するが、以下説明する点以外については第１の実施形態と同じである。
【００５６】
先ず、第１の実施形態と同様にして、モジュール１０１〜１０４のそれぞれについて、高抽象度モデル１０１ａ〜１０４ａを選択し（抽象度選択部１２による処理）、選択した高抽象度モデル１０１ａ〜１０４ａを用いて、予め決められた動作シミュレーション（テストシミュレーション）を実行し、そのときの各モジュール１０１〜１０４の活性化率を求める（活性化率測定部１１による処理）。
【００５７】
ここで以下の説明では、それぞれのモジュール１０１〜１０４の活性化率が図１０に示したようなものであったとして説明する。即ち、モジュール１０３、モジュール１０２、モジュール１０４、モジュール１０１の順に活性化率が高かったとする。
【００５８】
ここで、モデルの記述抽象度が高くともモデルの規模が大きければイベント数が多くなり、シミュレーション速度が低下する。よって、ＣＰＵ１３０１は、各モデルの記述がシミュレーション速度に与える影響を表す速度パラメータを調べる（速度パラメータ付与部１４による処理）。本実施形態では、速度パラメータとしては、モデル内に記述されたイベント数を用いる。このイベント数（速度パラメータ）はその値が大きいほどシミュレーション速度が低下することを表す。
【００５９】
ここで、それぞれのモジュール１０１〜１０４のモデル（高抽象度モデル１０１ａ〜１０４ａ、低抽象度モデル１０１ｂ〜１０４ｂ）について求められた速度パラメータは図１０に示したものとして説明する。図１０は、それぞれのモジュール１０１〜１０４の活性化率、及びモジュール１０１〜１０４の高抽象度モデル１０１ａ〜１０４ａ、低抽象度モデル１０１ｂ〜１０４ｂの速度パラメータの例を示す図である。
【００６０】
そして第１の実施形態と同様にして、ユーザからの制約条件を受け付け、その後、ＣＰＵ１３０１はこの制約条件、そして先に求めた活性化率、そして速度パラメータに基づいて、それぞれのモジュール１０１〜１０４のモデルを決定するのであるが、この決定処理が第１の実施形態とは異なる。
【００６１】
図７は、制約条件として「精度優先」が指示された場合に、それぞれのモジュール１０１〜１０４のモデルを決定する処理のフローチャートである。なお、本実施形態に係る各モジュールの動作シミュレーション処理のフローチャートについては図２に示したフローチャートと同じであるが、ステップＳ３における処理が図７のフローチャートに従った処理となる。
【００６２】
先ず、ＣＰＵ１３０１は、入力された制約条件に基づいて、閾値Ｔを決定する（ステップＳ２０１）。この閾値Ｔの求め方については特に限定するものではないが、例えば、以下説明する各モデルの速度評価値の総和を求め、これを制約条件に応じて調整するという方法がある。
【００６３】
次に、各モジュールの参照順を、活性化率の高いもの順に決める（ステップＳ２０２）。ここではその一例として、それぞれのモジュールを活性化率の高いもの順にソートする。図１１は、ソート後の各モジュール、及びそれぞれのモジュールの活性化率を示す図である。
【００６４】
次に、以下の処理で用いる変数i、Ｓを０に初期化する（ステップＳ２０３）。変数iはモジュールを活性化率が高いもの順に参照する場合に、現在参照しているモジュールの位置を示すものである。例えば図１１に示したテーブルの場合にはi＝０はテーブルの一番上の行を差し、i＝１はテーブルの上から二番目の行を差し、i＝２はテーブルの上から三番目の行を差し、i＝３はテーブルの最後の行を差す。
【００６５】
次に、Ｓ＜Ｔであるのか否かを判断し（ステップＳ２０４）、Ｓ＜Ｔである場合には処理をステップＳ２０５に進め、変数i＝０に対応するモジュール（モジュール１０３）の低抽象度モデル１０３ｂのイベント数Ｐ［０］と、モジュール１０３の活性化率Ａ［０］とで決定される速度評価値ｆ（Ｐ［０］、Ａ［０］）を求め、これを変数Ｓが有する値に加算する処理を行う（ステップＳ２０５）。本実施形態ではｆ（ｘ、ｙ）＝ｘ×ｙとするので、ステップＳ２０５では、Ｓ＝Ｓ＋Ｐ［０］×Ａ［０］を計算することになる。
【００６６】
そして、変数i＝０に対応するモジュール（モジュール１０３）については低抽象度モデル１０３ｂを決定する（ステップＳ２０６）。そして変数iの値を１つインクリメントし（ステップＳ２０７）、i＝１についてステップＳ２０４以降の処理を行う。
【００６７】
図１２は、それぞれのモジュールの速度評価値を示した図である。
【００６８】
一方、ステップＳ２０４においてＳ≧Ｔの場合には処理をステップＳ２０９に進め、変数ｊに変数iの値を代入し（ステップＳ２０８）、ｊ＜Ｎ（モジュールの個数）であるか否かを判断し（ステップＳ２０９）、ｊ＜Ｎである場合には処理をステップＳ２１０に進め、モジュールを活性の高いもの順に参照したときにｊ番目以降のものについては高抽象度モデルに決定する（ステップＳ２１０，２１１）。
【００６９】
以上の処理により、例えば閾値Ｔが５００である場合は、低抽象度モデル１０３ｂ、１０２ｂと、高抽象度モデル１０４ａ、１０１ａが選択される。閾値Ｔが１０００である場合は、低抽象度モデル１０３ｂ、１０２ｂ、１０４ｂと、高抽象度モデル１０１ａが選択される。
【００７０】
なお、制約条件が「速度優先」の場合には、図７のフローチャートに従った処理を、Ｐ［i］をテーブルの上からi番目のモジュールの高抽象度モデルのイベント数とし、ステップＳ２０６では高抽象度モデルに決定し、ステップＳ２１０では低抽象度モデルに決定するようにすれば良い。
【００７１】
以上の説明により、本実施形態によって、各モジュールの活性化率と各モデルがシミュレーション速度に与える影響を表す速度パラメータから速度評価値を算出し、それを基に抽象度選択の境界が決定されるので、第１の実施形態よりも制約条件に適した抽象度の選択がなされる。
【００７２】
［その他の実施形態］
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【００７３】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００７４】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００７５】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【００７６】
【図１】本発明の第１の実施形態に係る情報処理装置として機能するコンピュータの機構構成を示すブロック図である。
【図２】本発明の第１の実施形態に係る情報処理装置として機能するコンピュータが行う各モジュールの動作シミュレーション処理のフローチャートである。
【図３】制約条件が「速度優先」である場合にそれぞれのモジュール１０１〜１０４について決定された抽象度モデルを示す図である。
【図４】制約条件が「精度優先」である場合にそれぞれのモジュール１０１〜１０４について決定された抽象度モデルを示す図である。
【図５】図１に示したアーキテクチャとは異なるアーキテクチャを有する装置の機能構成の一例を示す図である。
【図６】本発明の第２の実施形態に係る情報処理装置の機能構成を示すブロック図である。
【図７】制約条件として「精度優先」が指示された場合に、それぞれのモジュール１０１〜１０４のモデルを決定する処理のフローチャートである。
【図８】本発明の第１の実施形態に係る情報処理装置として機能するコンピュータの基本構成を示すブロック図である。
【図９】それぞれのモジュール１０１〜１０４の活性化率の例を示す図である。
【図１０】それぞれのモジュール１０１〜１０４の活性化率、及びモジュール１０１〜１０４の高抽象度モデル１０１ａ〜１０４ａ、低抽象度モデル１０１ｂ〜１０４ｂの速度パラメータの例を示す図である。
【図１１】ソート後の各モジュール、及びそれぞれのモジュールの活性化率を示す図である。
【図１２】それぞれのモジュールの速度評価値を示した図である。
【図１】
2006172317.tif 000003
【図２】
2006172317.tif 000004
【図３】
2006172317.tif 000005
【図４】
2006172317.tif 000006
【図５】
2006172317.tif 000007
【図６】
2006172317.tif 000008
【図７】
2006172317.tif 000009
【図８】
2006172317.tif 000010
【図９】
2006172317.tif 000011
【図１０】
2006172317.tif 000012
【図１１】
2006172317.tif 000013
【図１２】
2006172317.tif 000014