(57)【要約】      （修正有）【課題】協調シミュレーションに要する負担を軽減し、シミュレーション時間を短縮する。【解決手段】複数のサブモジュールを有するモジュールを複数個含む検証対象アーキテクチャを検証する協調シミュレーション装置１００は、記憶部１０１に記憶されたシミュレーションプログラム１０１Ａを起動することによって、検証対象アーキテクチャを検証するためのシミュレータ１０２Ａを実現し、トランザクションプログラム１０１Ｂを起動することによってトランザクタ１０２Ｂを実現するプロセッサ１０２と、検証対象アーキテクチャを検証するためのエミュレータ１０３と、を備える。プロセッサ１０２は、協調シミュレーションプログラム１０１Ｃを起動することによってシミュレータ１０２Ａとエミュレータ１０３に協調シミュレーションを実行させ、当該協調シミュレーションの結果が所定の目標値を満たさない場合に検証対象アーキテクチャを変更する。【選択図】図１
2009252086.tif 000002
【特許請求の範囲】
【請求項１】
複数のサブモジュールを有するモジュールを複数個含む検証対象アーキテクチャを検証する協調シミュレーション装置であって、
シミュレーションプログラム、トランザクションプログラム及び協調シミュレーションプログラムを記憶する記憶部と、
前記記憶部に記憶されたシミュレーションプログラムを起動することによって、前記検証対象アーキテクチャを検証するためのシミュレータを実現し、前記トランザクションプログラムを起動することによってトランザクタを実現するプロセッサと、
検証対象アーキテクチャを検証するためのエミュレータと、を備え、
前記プロセッサは、前記協調シミュレーションプログラムを起動することによって前記シミュレータと前記エミュレータに協調シミュレーションを実行させ、当該協調シミュレーションの結果が所定の目標値を満たさない場合に前記検証対象アーキテクチャを変更することを特徴とする協調シミュレーション装置。
【請求項２】
前記プロセッサは、前記サブモジュール毎に検証パラメータを変更することによって前記検証対象アーキテクチャを変更する請求項１に記載の協調シミュレーション装置。
【請求項３】
前記検証パラメータは、前記サブモジュールの動作を示すパラメータ値及び当該パラメータ値が固定であるか否かを示す属性を含み、
前記プロセッサは、前記属性を固定に変更した場合に、当該変更された属性に対応するサブモジュールを前記エミュレータのための検証対象アーキテクチャとする請求項２に記載の協調シミュレーション装置。
【請求項４】
前記プロセッサは、前記検証対象アーキテクチャの変更及び当該変更された検証対象アーキテクチャの協調シミュレーションを前記目標値が満たされるまで繰り返し、当該目標値が満たされた場合に、前記協調シミュレーションの結果及び前記検証対象アーキテクチャを出力する請求項１乃至３の何れか１項に記載の協調シミュレーション装置。
【請求項５】
前記記憶部は、前記協調シミュレーションの結果を記憶し、
前記プロセッサは、前記検証対象アーキテクチャの変更及び当該変更された検証対象アーキテクチャの協調シミュレーションを所定の回数繰り返し、前記記憶部に記憶された協調シミュレーションの結果のうち最良の結果及び当該最良の結果に対応する前記検証対象アーキテクチャを出力する請求項１乃至３の何れか１項に記載の協調シミュレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、協調シミュレーション装置に関し、特に、ハードウェア設計ツール又はハードウェアとソフトウェアとの協調検証において用いられる協調シミュレーション装置に関する。
【背景技術】
【０００２】
従来のシミュレーションでは、プロセッサの所望の性能を満たすようなアーキテクチャのパラメータ（例えば、ＣＰＵの構成、ハードウェア専用回路など）を求めるために、複数のパラメータを可変パラメータとし、可変パラメータの変更とシミュレーションの実行を繰り返す必要がある。しかし、処理プログラム及びプロセッサの大規模化に伴い、シミュレーション時間が増大するという問題がある。
【０００３】
これに対して、例えば所定のモジュールがマッピングされたＦＰＧＡ（Field Programmable Gate Array）に対してエミュレーションを実行し、ＦＰＧＡにマッピングされていないモジュールに対してシミュレーションを実行し、エミュレーションとシミュレーションを協調して行う協調シミュレーションが知られている。しかし、検証対象アーキテクチャをＦＰＧＡにマッピングするためのパラメータの検討に時間がかかるという問題がある。
【０００４】
また、シミュレータはエミュレータのより容易に構築できるので、全てのモジュールがＦＰＧＡにマッピングされるか否かに関わらず、変更頻度の高いパラメータに対応するモジュールに対してシミュレーションを実行し、変更頻度の低いパラメータ又は固定のパラメータに対応するモジュールに対してエミュレーションを実行することが望ましい。
【０００５】
しかし、モジュールのパラメータの変更頻度又は固定のパラメータであるか否かを推測するためには、熟練の設計者の経験や詳細な分析が必要となるので、最適な協調シミュレーションを実行することは容易ではない。従って、従来の協調シミュレーションでは、協調シミュレーションに要する負担を軽減し、シミュレーション時間を短縮することは難しい。
【特許文献１】特開２００５−５１８５７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、協調シミュレーションに要する負担を軽減し、シミュレーション時間を短縮することである。
【課題を解決するための手段】
【０００７】
本発明の第１態様によれば、複数のサブモジュールを有するモジュールを複数個含む検証対象アーキテクチャを検証する協調シミュレーション装置であって、
シミュレーションプログラム、トランザクションプログラム及び協調シミュレーションプログラムを記憶する記憶部と、
前記記憶部に記憶されたシミュレーションプログラムを起動することによって、前記検証対象アーキテクチャを検証するためのシミュレータを実現し、前記トランザクションプログラムを起動することによってトランザクタを実現するプロセッサと、
検証対象アーキテクチャを検証するためのエミュレータと、を備え、
前記プロセッサは、前記協調シミュレーションプログラムを起動することによって前記シミュレータと前記エミュレータに協調シミュレーションを実行させ、当該協調シミュレーションの結果が所定の目標値を満たさない場合に前記検証対象アーキテクチャを変更することを特徴とする協調シミュレーション装置が提供される。
【発明の効果】
【０００８】
本発明によれば、協調シミュレーションに要する負担を軽減し、シミュレーション時間を短縮することができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施例について図面を参照して説明する。なお、以下の実施例は、本発明の実施の一形態であって、本発明の範囲を限定するものではない。
【実施例１】
【００１０】
はじめに、本発明の実施例１について説明する。本発明の実施例１は、協調シミュレーションの終了条件が満たされるまで、検証対象アーキテクチャを変更して協調シミュレーションを行う協調シミュレーション装置の例である。
【００１１】
図１は、本発明の実施例１に係る協調シミュレーション装置１００の構成を示すブロック図である。
【００１２】
協調シミュレーション装置１００は、記憶部１０１、プロセッサ１０２、エミュレータ１０３、入力部１０４及び出力部１０５を備えている。
【００１３】
記憶部１０１は、シミュレーションプログラム１０１Ａ、トランザクションプログラム１０１Ｂ、協調シミュレーションプログラム１０１Ｃ及びモジュールパラメータ１０１Ｄを記憶する。記憶部１０１は、プロセッサ１０２のワーキングメモリとしても機能する。
【００１４】
プロセッサ１０２は、記憶部１０１に記憶されたシミュレーションプログラム１０１Ａを起動することによってシミュレータ１０２Ａを実現し、トランザクションプログラム１０１Ｂを起動することによってトランザクタ１０２Ｂを実現し、協調シミュレーションプログラム１０１Ｃを起動することによって協調シミュレーションを実行する。
【００１５】
エミュレータ１０３は、所定のモジュールがマッピングされたＦＰＧＡに対してエミュレーションを実行することによって検証対象アーキテクチャを検証する。
【００１６】
入力部１０４は、ユーザの指示を受け付ける。入力部１０４は、例えばキーボード又はマウスなどの入力装置である。
【００１７】
出力部１０５は、プロセッサ１０２によって実行された協調シミュレーションの結果を出力する。出力部１０５は、例えばディスプレイなどの表示装置である。
【００１８】
図２は、本発明の実施例１に係る検証対象アーキテクチャを示すブロック図である。
【００１９】
本発明の実施例１では、検証対象アーキテクチャは、ＣＰＵ、メインメモリ、専用ハードウェア及び周辺機器の４個のモジュールから構成されている。各モジュールは、図示されない複数のサブモジュールを有する。
【００２０】
プロセッサ１０２によってシミュレータ１０２Ａ及びトランザクタ１０２Ｂが実現された場合には、シミュレータ１０２Ａ及びエミュレータ１０３に各モジュールがマッピングされる。例えば、図２に示されたように、ＣＰＵ及びメインメモリがエミュレータ１０３にマッピングされ、専用ハードウェア及び周辺機器がシミュレータ１０２Ａにマッピングされ、トランザクタ１０２Ｂによってシミュレータ１０２Ａ及びトランザクタ１０２Ｂの通信が制御される。
【００２１】
図３は、本発明の実施例１に係るモジュールパラメータ１０１Ｄのデータ構造を示す概略図である。
【００２２】
モジュールパラメータ１０１Ｄは、「モジュール」及び「サブモジュール」を含む。「モジュール」は検証対象アーキテクチャを構成するモジュールを示す項目である。「サブモジュール」は、「サブモジュール名」、「パラメータ」及び「属性」を含む。「サブモジュール名」はサブモジュールの名称を示す項目であり、「パラメータ」はサブモジュールの動作に関連する値を示す項目であり、「属性」はパラメータが固定値であるか又は可変値であるかを示す項目である。
【００２３】
例えば、図３に示されたように、ＣＰＵはサブモジュールＳＭ１，ＳＭ２を有し、専用ハードウェアはサブモジュールＳＭ３，ＳＭ４を有する。サブモジュールＳＭ１〜ＳＭ４はパラメータ値Ｐ１〜Ｐ４を有し、サブモジュールＳＭ１，ＳＭ２のパラメータＰ１，Ｐ２は固定値であり、サブモジュールＳＭ３，ＳＭ４のパラメータＰ３，Ｐ４は可変値である。
【００２４】
図４は、本発明の実施例１に係る協調シミュレーションの処理手順を示すフローチャートである。
【００２５】
はじめに、入力部１０４によって、初期設定の入力が受け付けられる（Ｓ４０１）。初期設定は、モジュールパラメータ１０１Ｄ、協調シミュレーションの実行回数、検証対象アーキテクチャ、ターゲットアプリケーション、属性変更条件及び目標性能値である。
【００２６】
次に、プロセッサ１０２によって、Ｓ４０１において受け付けられたモジュールパラメータ１０１Ｄが参照され、固定属性を有するサブモジュールがエミュレータ１０３にマッピングされる（Ｓ４０２）。例えば、図３に示されたように、サブジュールＳＭ１，ＳＭ２のパラメータが固定値である場合には、サブモジュールＳＭ１，ＳＭ２がエミュレータ１０３にマッピングされる。
【００２７】
次に、プロセッサ１０２によって、シミュレーションプログラム１０１Ａが起動され、シミュレータ１０２Ａが実現される（Ｓ４０３）。シミュレータ１０２Ａは、コンパイラ及びＲＴＬ（Register Transfer Level）記述を含む。シミュレータ１０２Ａには、Ｓ４０２においてエミュレータ１０３にマッピングされなかったサブモジュール（すなわち、パラメータが可変値であるサブモジュール）がマッピングされる。例えば、図３に示されたように、サブモジュールＳＭ３，ＳＭ４のパラメータＰ３、Ｐ４が可変値である場合には、サブモジュールＳＭ３，ＳＭ４がシミュレータ１０２Ａにマッピングされる。
【００２８】
次に、プロセッサ１０２によって、協調シミュレーション及び評価が行われる（Ｓ４０４）。協調シミュレーションでは、Ｓ４０２においてエミュレータ１０３にマッピングされたサブモジュールに対してエミュレーションが実行され、Ｓ４０３においてシミュレータ１０２Ａにマッピングされたサブモジュールに対してシミュレーションが実行され、エミュレータ１０３とシミュレータ１０２Ａとの間で通信が行われ、協調シミュレーションの結果として検証対象アーキテクチャ及び実行サイクル数が記憶部１０１に書き込まれる。
【００２９】
協調シミュレーションの終了条件が満たされた場合には（Ｓ４０５−ＹＥＳ）、出力部１０５によって、Ｓ４０４において行われた協調シミュレーションの結果が出力される（Ｓ４０６）。例えば、協調シミュレーションの終了条件は、Ｓ４０１において受け付けられた「協調シミュレーションの実行回数」又は「目標性能値」である。「協調シミュレーションの実行回数」が終了条件である場合には、Ｓ４０４において協調シミュレーションの結果のうち最も実行サイクル数が小さいときの検証対象アーキテクチャ及び実行サイクル数が記憶部１０１に書き込まれ、記憶部１０１に記憶された検証対象アーキテクチャ及び実行サイクル数が協調シミュレーションの結果として出力される。一方、「目標性能値」が終了条件である場合には、実効サイクル数が前回より悪いときに、記憶部１０１に記憶された検証対象アーキテクチャ及び実行サイクル数（すなわち、前回の協調シミュレーションの結果）が協調シミュレーションの結果として出力される。なお、実効サイクル数が前回より悪いときであっても、所定の確率で当該実行サイクル数及び当該実行サイクル数に対応する検証対象アーキテクチャが協調シミュレーションの結果として出力されても良い。
【００３０】
一方、協調シミュレーションの終了条件が満たされていない場合には（Ｓ４０５−ＮＯ）、プロセッサ１０２によって可変属性を有するサブモジュールのパラメータ又は属性が変更される（Ｓ４０７）。可変属性を有するサブモジュールのパラメータは、所定のパターンに従って値が変更される。例えば、所定のパターンは、Ｓ４０１において初期設定として受け付けられても良いし、変更頻度の低いパラメータが優先的に変更されるようなパターンであっても良い。また、可変属性を有するパラメータが数値である場合には増減され、２値である場合にはオン／オフが選択され、多値である場合には複数個の中から１個が選択される。
【００３１】
Ｓ４０７において可変属性から固定属性に変更された場合には（Ｓ４０８−ＹＥＳ）、Ｓ４０２に戻る。
【００３２】
一方、Ｓ４０７において属性が変更されなかった場合には（Ｓ４０８−ＮＯ）、Ｓ４０３に戻る。
【００３３】
本発明の実施例１に係る協調シミュレーションはＳ４０６の後に終了する。
【００３４】
図５は、本発明の実施例１に係る協調シミュレーションが実行されたときの検証対象アーキテクチャの遷移を示す概略図である。
【００３５】
例えば、図３に示されたモジュールパラメータ１０１Ｄの場合には、検証対象アーキテクチャの初期設定は、サブモジュールＳＭ１、ＳＭ２が固定属性を有し、エミュレータ１０３にマッピングされ、１回目の協調シミュレーションが実行される。
【００３６】
次に、サブモジュールＳＭ３の属性が可変属性から固定属性に変更され、サブモジュールＳＭ１〜ＳＭ３がエミュレータ１０３にマッピングされ、２回目の協調シミュレーションが実行される。
【００３７】
次に、サブモジュールＳＭ４の属性が可変属性から固定属性に変更され、全てのサブモジュールＳＭ１〜ＳＭ４がエミュレータ１０３にマッピングされ、３回目の協調シミュレーションが実行される。
【００３８】
３回目の協調シミュレーションにおいて求められた実行サイクル数が目標性能値を満たす場合には、３回目の協調シミュレーションの検証対象アーキテクチャ及び実行サイクル数が協調シミュレーションの結果として出力される。
【００３９】
本発明の実施例１によれば、協調シミュレーションの終了条件が満たされるまで、検証対象アーキテクチャのモジュールパラメータ１０１Ｄが変更されるので、協調シミュレーションに要する負担を軽減することができる。
【００４０】
また、本発明の実施例１によれば、協調シミュレーションの終了条件が満たされるまで、エミュレータ１０３にマッピングされるサブモジュールを増やすように検証対象アーキテクチャを変更するので、協調シミュレーションの処理時間を短縮することができる。
【図面の簡単な説明】
【００４１】
【図１】本発明の実施例１に係る協調シミュレーション装置１００の構成を示すブロック図である。
【図２】本発明の実施例１に係る検証対象アーキテクチャを示すブロック図である。
【図３】本発明の実施例１に係るモジュールパラメータ１０１Ｄのデータ構造を示す概略図である。
【図４】本発明の実施例１に係る協調シミュレーションの処理手順を示すフローチャートである。
【図５】本発明の実施例１に係る協調シミュレーションが実行されたときの検証対象アーキテクチャの遷移を示す概略図である。
【符号の説明】
【００４２】
１００  協調シミュレーション装置
１０１  記憶部
１０２  プロセッサ
１０２Ａ  シミュレータ
１０２Ｂ  トランザクタ
１０３  エミュレータ
１０４  入力部
１０５  出力部
【図１】
2009252086.tif 000003
【図２】
2009252086.tif 000004
【図３】
2009252086.tif 000005
【図４】
2009252086.tif 000006
【図５】
2009252086.tif 000007