(57)【要約】【課題】上流設計の高速化により設計期間の短縮化を図ること。【解決手段】アーキテクチャ１００をドメイン分割する。ドメイン分割はバス系統または／およびクロック系統でおこなう。つぎに、ドメイン分割されたドメイン１０１，１０２のうち任意のドメインを選択する。ここでは、ドメイン１０１が選択されたとする。ドメイン１０１についてＥＳＬシミュレーションを実行し、その実行結果から、ドメイン１０１のトラフィックと同等のドラフィックを生成するトラフィック生成器Ｇに置換する。トラフィック生成器Ｇと置換されなかったドメイン１０２とを結合して置換後のアーキテクチャ１１０を得る。この置換後のアーキテクチャ１１０に対して、再度ＥＳＬシミュレーションを実行することで、評価結果１２０を得る。これにより、ＥＳＬシミュレーションの高速化を実現する。【選択図】図１
2010039678.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、
評価ソフトウェアに関するＥＳＬシミュレーションを実行する実行手段、
前記実行手段を制御して、設計対象となるアーキテクチャからドメイン分割されたドメイン群の中から選ばれた選択ドメインについて前記評価ソフトウェアに関するＥＳＬシミュレーションを実行する実行制御手段、
前記実行制御手段によって実行された実行結果に基づいて、前記選択ドメインのトラフィックと同等のトラフィックを生成する単一のトラフィック生成器を生成する生成手段、
前記選択ドメインを前記生成手段によって生成されたトラフィック生成器に置換することにより、前記アーキテクチャを再構築する再構築手段、
前記再構築手段によって再構築されたアーキテクチャを出力する出力手段、
として機能させることを特徴とする設計支援プログラム。
【請求項２】
前記コンピュータを、
前記アーキテクチャを構成するハードウェアモデル間の接続情報を取得する取得手段、
前記取得手段によって取得された接続情報に基づいて、前記アーキテクチャをドメイン分割する分割手段として機能させ、
前記実行制御手段は、
前記実行手段を制御して、前記分割手段によって分割されたドメイン群の中から選ばれた選択ドメインについて前記評価ソフトウェアに関するＥＳＬシミュレーションを実行することを特徴とする請求項１に記載の設計支援プログラム。
【請求項３】
前記実行制御手段は、
前記実行手段を制御して、前記アーキテクチャについて前記評価ソフトウェアに関するインストラクションレベルのＥＳＬシミュレーションを実行し、
前記分割手段は、
前記アーキテクチャについて前記評価ソフトウェアに関するインストラクションレベルのＥＳＬシミュレーションにより得られる前記ハードウェアモデル間のデータ依存量に基づいて、前記アーキテクチャをドメイン分割することを特徴とする請求項２に記載の設計支援プログラム。
【請求項４】
評価ソフトウェアに関するＥＳＬシミュレーションを実行する実行手段と、
前記実行手段を制御して、設計対象となるアーキテクチャからドメイン分割されたドメイン群の中から選ばれた選択ドメインについて前記評価ソフトウェアに関するＥＳＬシミュレーションを実行する実行制御手段と、
前記実行制御手段によって実行された実行結果に基づいて、前記選択ドメインのトラフィックと同等のトラフィックを生成する単一のトラフィック生成器を生成する生成手段と、
前記選択ドメインを前記生成手段によって生成されたトラフィック生成器に置換することにより、前記アーキテクチャを再構築する再構築手段と、
前記再構築手段によって再構築されたアーキテクチャを出力する出力手段と、
を備えることを特徴とする設計支援装置。
【請求項５】
コンピュータが、
設計対象となるアーキテクチャからドメイン分割されたドメイン群の中から選ばれた選択ドメインについて評価ソフトウェアに関するＥＳＬシミュレーションを実行する実行工程、
前記実行工程によって実行された実行結果に基づいて、前記選択ドメインのトラフィックと同等のトラフィックを生成する単一のトラフィック生成器を生成する生成工程、
前記選択ドメインを前記生成工程によって生成されたトラフィック生成器に置換することにより、前記アーキテクチャを再構築する再構築工程、
前記再構築工程によって再構築されたアーキテクチャを出力する出力工程、
を実行することを特徴とする設計支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムアーキテクチャを探求する際に最適なアーキテクチャ構成を求める設計支援プログラム、設計支援装置、および設計支援方法に関する。
【背景技術】
【０００２】
近年、システムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）の開発時におけるシミュレーションによる設計技術が進められている。この技術は主にＥＳＬ（Ｅｌｅｃｔｒｏｎｉｃ  Ｓｙｓｔｅｍ  Ｌｅｖｅｌ）技術と呼ばれ、システムＬＳＩの設計を、段階ごとに詳細性（抽象性）を変えながら設計を行うシステム上流工程設計での高速シミュレーション技術である。一方で、抽象度の低い構成では、処理速度は遅いが、実際のハードウェアロジックに近い、ハード詳細設計の段階で用いられる（たとえば、下記特許文献１，２を参照。）。
【０００３】
ＥＳＬ技術では、詳細なクロック動作などを適宜スキップ、隠蔽することで高速動作を行うことができる。ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）のインストラクションシミュレータと連動させることで、ソフト動作可能なシミュレーション環境として利用されており、ＳｏＣ（Ｓｙｓｔｅｍ  ｏｎ  ａ  Ｃｈｉｐ）などの大規模システムＬＳＩ開発に適用される。
【０００４】
この技術を用いてシステム全体の挙動を開発の初期段階で見極め、詳細な動作は後工程で実施を行う。設計者は開発上流段階でのブロック図構成レベルの情報でハードウェアを表記することができる。ＥＳＬなどで用いられるシミュレーションでハードウェアを表現する場合、ＳｙｓｔｅｍＣおよびＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）スクリプトによるハードウェア記述によりハードウェアをプログラマブルに表現できるため、容易にシステム構成を変更した評価を行うことができる。またこれらのハードウェア表現は一般的なソフトウェアのプログラムと同様の表現がなされる。
【０００５】
また、ＥＳＬでは、ＣＰＵのインストラクションシミュレータと連動させることで、ソフト動作可能なシミュレーション環境として利用されており、ＳｏＣなどの大規模システムＬＳＩ開発に適用される。さらに、シミュレーションを高速化する技術として、バスやメモリのアクセスタイミングを無視し、ＣＰＵの命令セット実行のみに注力したバックドアモデル技術も提案されている。
【０００６】
これらの技術を用いてシステム全体の挙動を開発の初期段階で見極め、詳細な動作は後工程で実施をおこなう。設計者は開発上流段階でのブロック図構成レベルの情報でハードウェアを表記することができる。ＥＳＬなどで用いられるシミュレーションでハードウェアを表現する場合、ＳｙｓｔｅｍＣおよびＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）スクリプトによるハードウェア記述が適用される。これにより、ハードウェアをプログラマブルに表現できるため、容易にシステム構成を変更した評価を行うことができる。また、これらのハードウェア表現は一般的なソフトウェアのプログラムと同様の表現がなされる。
【０００７】
以上の技術を利用し、ＲＴＬ（Ｒｅｇｉｓｔｅｒ  Ｔｒａｎｓｆｅｒ  Ｌｅｖｅｌ）など実設計モデルを用いたシミュレーションで、実時間の数百万分の一の速度で実施されていたものが数千分の一ほどまで高速化することが可能である。
【０００８】
【特許文献１】特開２００１−２２８０８号公報
【特許文献２】特開２００３−６７４３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述した従来技術では、トランザクションの詳細動作を割愛することや、インストラクションレベルのシミュレーションと並装することで概略的な動作傾向をみるＥＳＬにおいても、解析を行うシステムが大規模化するにあたってシミュレーション時間が指数的に増大していく現象が発生するケースがあるという問題があった。
【００１０】
また、ある程度以上の規模になった場合、ＲＴＬシミュレーションにおける実行時間制約や、実行環境リソースの制約と同じ問題が起こり、本来実施を行いたい上流設計レベルでの概略的な動作解析を行うことに適さないケースが発生してしまうという問題があった。
【００１１】
この発明は、上述した従来技術による問題点を解消するため、設計期間の短縮化を図ることができる設計支援プログラム、設計支援装置、および設計支援方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するため、この設計支援プログラム、設計支援装置、および設計支援方法は、設計対象となるアーキテクチャからドメイン分割されたドメイン群の中から選ばれた選択ドメインについて評価ソフトウェアに関するＥＳＬシミュレーションを実行し、実行結果に基づいて、前記選択ドメインのトラフィックと同等のトラフィックを生成する単一のトラフィック生成器を生成し、前記選択ドメインを生成されたトラフィック生成器に置換することにより、前記アーキテクチャを再構築し、再構築されたアーキテクチャを出力することを要件とする。
【発明の効果】
【００１３】
この設計支援プログラム、設計支援装置、および設計支援方法によれば、設計期間の短縮化を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００１４】
以下に添付図面を参照して、この設計支援プログラム、設計支援装置、および設計支援方法の好適な実施の形態を詳細に説明する。
【００１５】
（本実施の形態の概要）
図１は、本実施の形態にかかる設計支援の概要を示す説明図である。設計対象のアーキテクチャ１００をドメイン分割する。ドメイン分割はバス系統または／およびクロック系統でおこなう。つぎに、ドメイン分割されたドメイン１０１，１０２のうち任意のドメインを選択する。ここでは、ドメイン１０１が選択されたとする。ドメイン１０１についてＥＳＬシミュレーションを実行し、その実行結果から、ドメイン１０１のトラフィックと同等のドラフィックを生成するトラフィック生成器Ｇに置換する。
【００１６】
ドメイン１０１が複数のハードウェアブロックＡ，Ｂ，Ｘ，Ｙ，Ｍの集合であるのに対し、トラフィック生成器Ｇは、単一のハードウェアブロックである。トラフィック生成器Ｇは、置換元であるドメイン１０１のトラフィックと同等なトラフィックを生成しており、トラフィック内のデータの種類や中身がどのような内容であるかは意識していない。
【００１７】
このあと、トラフィック生成器Ｇと置換されなかったドメイン１０２とを結合して置換後のアーキテクチャ１１０を得る。この置換後のアーキテクチャ１１０に対して、再度ＥＳＬシミュレーションを実行することで、評価結果１２０を得る。これにより、ＥＳＬシミュレーションの高速化を実現する。
【００１８】
（設計支援装置のハードウェア構成）
図２は、本実施の形態にかかる設計支援装置のハードウェア構成を示すブロック図である。図２において、設計支援装置は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３と、磁気ディスクドライブ２０４と、磁気ディスク２０５と、光ディスクドライブ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）２０６と、光ディスク２０７と、ディスプレイ２０８と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）２０９と、キーボード２１０と、マウス２１１と、スキャナ２１２と、プリンタ２１３と、を備えている。また、各構成部はバス２００によってそれぞれ接続されている。
【００１９】
ここで、ＣＰＵ２０１は、設計支援装置の全体の制御を司る。ＲＯＭ２０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアとして使用される。磁気ディスクドライブ２０４は、ＣＰＵ２０１の制御にしたがって磁気ディスク２０５に対するデータのリード／ライトを制御する。磁気ディスク２０５は、磁気ディスクドライブ２０４の制御で書き込まれたデータを記憶する。
【００２０】
光ディスクドライブ２０６は、ＣＰＵ２０１の制御にしたがって光ディスク２０７に対するデータのリード／ライトを制御する。光ディスク２０７は、光ディスクドライブ２０６の制御で書き込まれたデータを記憶したり、光ディスク２０７に記憶されたデータをコンピュータに読み取らせたりする。
【００２１】
ディスプレイ２０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ２０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００２２】
インターフェース（以下、「Ｉ／Ｆ」と略する。）２０９は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク２１４に接続され、このネットワーク２１４を介して他の装置に接続される。そして、Ｉ／Ｆ２０９は、ネットワーク２１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ２０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００２３】
キーボード２１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス２１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００２４】
スキャナ２１２は、画像を光学的に読み取り、設計支援装置内に画像データを取り込む。なお、スキャナ２１２は、ＯＣＲ（Ｏｐｔｉｃａｌ  Ｃｈａｒａｃｔｅｒ  Ｒｅａｄｅｒ）機能を持たせてもよい。また、プリンタ２１３は、画像データや文書データを印刷する。プリンタ２１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００２５】
（設計支援装置の機能的構成）
図３は、本実施の形態にかかる設計支援装置の機能的構成を示すブロック図である。設計支援装置３００は、取得部３０１と、分割部３０２と、実行部３０３と、実行制御部３０４と、生成部３０５と、再構築部３０６と、出力部３０７と、を含む構成である。この制御部となる機能（取得部３０１〜出力部３０７）は、具体的には、たとえば、図２に示したＲＯＭ２０２、ＲＡＭ２０３、磁気ディスク２０５、光ディスク２０７などの記憶領域に記憶されたプログラムをＣＰＵ２０１に実行させることにより、または、Ｉ／Ｆ２０９により、その機能を実現する。
【００２６】
取得部３０１は、ハードウェアモデル情報やハードウェアモデル間の接続情報、評価ソフトウェアを取得する機能を有する。具体的には、たとえば、ハードウェアモデル情報や接続情報を記憶領域から読み出したり、外部から受信したりする。取得される情報は、ＳｙｓｔｅｍＣや状態記述言語（ＸＭＬ）などにより記述されている。
【００２７】
図４は、ハードウェアモデル情報を示す説明図である。ハードウェアモデル情報４００とは、アーキテクチャを構成するハードウェアモデルのソースコードの集合である。ここでは、例として、ペリフェラルＸ，Ｙ，Ｚと、共有リソースＭ，Ｎのソースコードを示している。
【００２８】
図５は、設計対象となるアーキテクチャを示すブロック構成図である。図５では、図４に示したハードウェアモデル情報４００を適用したアーキテクチャを示している。図５に示したアーキテクチャ５００では、バスやクロックの接続情報が与えられていないため、単にペリフェラルＸ，Ｙ，Ｚと共有リソースＭ，Ｎとバスとブリッジ（図中太矢印）とクロック供給ブロック（波形図を含むブロック）が含まれていることが表現されているだけである。
【００２９】
図６は、接続情報を示す説明図であり、図７は、接続情報が与えられたアーキテクチャを示すブロック構成図である。符号６０１はバスＡの接続情報、符号６０２はバスＣの接続情報、符号６０３はブリッジＢの接続情報である。これらの接続情報６０１〜６０３をバス系統の接続情報６００と称す。また、符号６１１〜６１４は、クロック供給ブロックＰ〜Ｓの接続情報である。これらの接続情報６１１〜６１４をクロック系統の接続情報６１０と称す。
【００３０】
なお、以降、クロック供給ブロックからのクロックの符号は、クロック供給ブロックの符号を用いる。たとえば、クロック供給ブロックＰからは、クロックＰが供給される。なお、ハードウェアモデルのソースコードのブロック化は、既存の構造分析により実現可能である。以降、ブロック化されたハードウェアモデルをハードウェアブロックと称す。
【００３１】
評価ソフトウェアとは、アーキテクチャに実行させるベンチマークプログラムである。評価ソフトウェアがソースコードではなく評価ソフトウェアの設計情報であった場合、想定される負荷を発生するような代替ソフトウェアを用いてもよい。本実施の形態で対象とする設計が上流工程であり、入力情報そのものにあいまい性を含むものであり、また、得られる結果も概略的な結果をもとめるあいまい性を許容している設計フェーズであるため、代替ソフトウェアを利用することについての問題性、あるいは誤差、精度については許容範囲とみなす。
【００３２】
分割部３０２は、取得部３０１によって取得された接続情報に基づいて、アーキテクチャ１００をドメイン分割する機能を有する。具体的には、たとえば、接続情報から得られるハードウェアモデル間を接続するバスの共通性やハードウェアモデルに供給されるクロックの共通性に基づいて、アーキテクチャ１００をドメイン分割する。
【００３３】
ここで、分割部３０２によるドメイン分割について詳細に説明する。図７に示したアーキテクチャ１００の場合、接続状態はバスへの接続モデル記述ソースを解析することで分割の基準を得ることができる。この解析は、たとえば、ＸＭＬパーサへの組み込みやコンパイラの中のＬｉｎｔ（ソースコード検査プログラム）等の技術を用いて実行することができる。
【００３４】
図８は、図７に示したアーキテクチャ１００の接続解析結果を示す説明図である。図７のアーキテクチャ１００では、接続解析結果８００は、ペリフェラルＸ，Ｙと共有リソースＭはバスＡに接続されているため、バスＡのグループに属する。ペリフェラルＺと共有リソースＮはバスＣに接続されているため、バスＣのグループに属する。
【００３５】
一方、クロック供給ブロックＰはバスグループＡのペリフェラルＸにクロックＰを供給する。クロック供給ブロックＱはバスグループＡの共有リソースＭにクロックＱを供給する。クロック供給ブロックＲは、バスグループＡのペリフェラルＹとバスグループＣのペリフェラルＺにクロックＲを供給する。クロック供給ブロックＳは、バスグループＣの共有リソースＮにクロックＲを供給する。
【００３６】
これにより、ペリフェラルＸと共有リソースＭはともにバスＡに接続されているため、ドメインＤａに分類される。ペリフェラルＹ，ＺはそれぞれバスＡ，Ｃに接続されているが、同一クロックＲの供給を受けている。したがって、図７のアーキテクチャのハードウェア構成については、バスおよびクロックの共通性では分類不可能となる。このようなケースでは、評価ソフトウェアに関するインストラクションレベルのＥＳＬシミュレーションをおこない、その実行結果を用いて再度分類する。
【００３７】
図９は、評価ソフトウェアのソースコード群を示す説明図である。ソースコード群９００において、評価ソフトウェア９０１とは、アーキテクチャ１００が実行するベンチマークプログラムである。ソースコード９０２〜９０４は、評価ソフトウェア９０１内のハードウェアの動作や接続先を示している。「Ｄｒｉｖｅｒ  Ｘ」，「Ｄｒｉｖｅｒ  Ｙ」および「Ｄｒｉｖｅｒ  Ｚ」は、それぞれペリフェラルＸ〜Ｚに相当する。たとえば、ソースコード９０２では、Ｄｒｉｖｅｒ  Ｘ（ペリフェラルＸ）が共有リソースＭ，Ｎにアクセスすることが記述されている。
【００３８】
実行部３０３は、評価ソフトウェア９０１に関するＥＳＬシミュレーションを実行する機能を有する。実行部３０３は、後述する実行制御部３０４により指定された方法で、評価ソフトウェア９０１に関するＥＳＬシミュレーションを実行する。
【００３９】
実行制御部３０４は、実行部３０３を制御して、分割されたドメイン群の中から選ばれた選択ドメインについて評価ソフトウェア９０１に関するＥＳＬシミュレーションを実行する機能を有する。具体的には、たとえば、アーキテクチャ１００について評価ソフトウェア９０１に関するインストラクションレベルのＥＳＬシミュレーションを実行する。
【００４０】
ここで、インストラクションレベルのＥＳＬシミュレーションについて説明する。インストラクションレベルのＥＳＬシミュレーションは通常、評価ソフトウェア９０１のトレース実行によるデバッグに用いるシミュレーションで、通常、アーキテクチャ１００の評価には用いられないが、本実施の形態では、アーキテクチャ１００が生成するトラフィック負荷のみを利用する。インストラクションレベルのＥＳＬシミュレーションを実行することによって、ハードウェアモデルからハードウェアモデルへのデータトラフィック量が明らかになる。
【００４１】
この実行結果では、バスＡ，Ｃや共有リソースＭ，Ｎなど、複数のアクセスタイミングにより発生する衝突現象は得られない。なお、このインストラクションレベルのＥＳＬシミュレーションは、バックドアモデルによるＥＳＬシミュレーションであり、最低限１個のクロックを用いて実行する。
【００４２】
図１０は、アーキテクチャにおける評価ソフトウェア９０１のＥＳＬシミュレーションを示す説明図である。図１０中、バス上の矢印はハードウェアブロック間のデータ依存関係を示している。このＥＳＬシミュレーションは、クロック１系統のシミュレーションである。すなわち、クロックＰ〜Ｓは考慮されていないバックドアモデルによるＥＳＬシミュレーションである（したがって、図１０において、クロックＰ〜Ｓの符号は付していない。）。
【００４３】
図１１および図１２は、図１０に示したインストラクションレベルのＥＳＬシミュレーションの実行結果を示す説明図である。この実行結果により図８において分類が不確定に終わったペリフェラルＹ，Ｚの分類をおこなう。
【００４４】
図１１に示した実行結果１１００では、ペリフェラルＹは共有リソースＭにアクセスデータ量として１００［ＭＢ］分のデータを保存しており、共有リソースＮに１０［ＭＢ］分のデータを保存している。したがって、共有リソースＭへのデータ依存比率の方が高いため、ペリフェラルＹはバスＡのグループに分類される。同様に、ペリフェラルＺは共有リソースＭにアクセスデータ量として０［ＭＢ］分のデータを保存しており、共有リソースＮに１００［ＭＢ］分のデータを保存している。したがって、共有リソースＮへのデータ依存比率の方が高いため、ペリフェラルＺはバスＣのグループに分類される。
【００４５】
図１２に示した実行結果１２００では、ペリフェラルＹは共有リソースＭにアクセスデータ量として１０［ＭＢ］分のデータを保存しており、共有リソースＮに１００［ＭＢ］分のデータを保存している。したがって、共有リソースＮへのデータ依存比率の方が高いため、ペリフェラルＹはバスＣのグループに分類される。同様に、ペリフェラルＺは共有リソースＭにアクセスデータ量として０［ＭＢ］分のデータを保存しており、共有リソースＮに１００［ＭＢ］分のデータを保存している。したがって、共有リソースＮへのデータ依存比率の方が高いため、ペリフェラルＺもバスＣのグループに分類される。
【００４６】
このように、ハードウェア構成では分類不可能であった場合、評価ソフトウェア９０１の実行結果、特にデータ依存比率の高さにより分類する。このデータ依存比率の高さに応じて分類することにより、ＥＳＬシミュレーションを実行する際に、ブロック間を跨るデータアクセスの低減化を図ることができ、評価精度の低下を回避することができる。
【００４７】
また、ブロック間を跨ぐデータアクセスデータを小さくすることで、次のフェーズでドメインをトラフィック生成器Ｇで置き換えた場合に、トラフィックを模擬化したときの誤差を必要最小限に抑制することができる。
【００４８】
図１３および図１４は、アーキテクチャ１００のドメイン分割結果を示すブロック構成図である。図１３のドメイン分割結果は、図８および図１１により確定された分類に基づく分割である。ドメインＤａ１は、バスＡにのみ接続されるペリフェラルＸ，Ｙおよび共有リソースＭ、クロック供給ブロックＰ〜Ｒを有する。ドメインＤｃ１は、バスＣにのみ接続されるペリフェラルＺおよび共有リソースＮ、クロック供給ブロックＲ，Ｓを有する。
【００４９】
図１４のドメイン分割結果は、図８および図１２により確定された分類に基づく分割である。ドメインＤａ２は、バスＡにのみ接続されるペリフェラルＸおよび共有リソースＭ、クロック供給ブロックＰ，Ｑを有する。ドメインＤｃ２は、バスＡ，Ｃに接続されるペリフェラルＹ，Ｚおよび共有リソースＮ、クロック供給ブロックＰ，Ｒ，Ｓを有する。
【００５０】
なお、実行制御部３０４では、分割されたドメイン群の中から選ばれた選択ドメインについて、トランザクションレベルのＥＳＬシミュレーションを実行する。この実行結果により、トラフィック生成器Ｇが生成されることとなる。
【００５１】
図３に戻って、生成部３０５は、実行制御部３０４によって実行された実行結果に基づいて、選択ドメインのトラフィックと同等のトラフィックを生成する単一のトラフィック生成器Ｇを生成する機能を有する。トラフィック生成器Ｇは、対応するドメインに置き換わる単一のハードウェアブロックである。したがって、ドメインを簡略化しているため、ハードウェアブロック数によって増大するＥＳＬシミュレーション時間を短縮することができる。
【００５２】
トラフィック生成器Ｇは、与えられたパラメタにより、無作為なデータを作成し、アーキテクチャにトラフィックの負荷を与えるシミュレーション用のハードウェアブロックである。また、データ入力を行うアドレス空間、データ出力を行うアドレス空間を指定できる。
【００５３】
さらに、置換元のドメインのデータパターンのトラフィック負荷を生成する。具体的には、接続されるバスと同周期のクロックが与えられ、そのクロックに沿って、あらかじめ内部に保存しておいたシナリオデータと呼ばれるトラフィックパターンをもとに、起動時から周期的に負荷をあたえることができる。また、トラフィック生成器Ｇにはシナリオデータを生成するプログラマブルな領域が用意してあり、ドメインと置換する際に、ハードウェアブロックとともに、シナリオ生成プログラムが入力される仕組みをもつ。以下、トラフィック生成器Ｇについて詳細に説明する。
【００５４】
図１５は、トラフィック生成器Ｇを示す説明図である。トラフィック生成器Ｇは４つのインターフェースをもつ。スレーブ端子１５０１は、代替するハードウェアブロックを模擬するためのコマンド１５００を入力するためのインターフェースである。マスター端子１５０２は、入力されたコマンド１５００を処理し、所望のトラフィックを生成するためのインターフェースである。クロック端子１５０３は、動作のための基本周期を取り込むインターフェースである。割込端子１５０４は、動作状況を報告するインターフェースである。
【００５５】
コマンド１５００はシナリオデータに与えるパラメタの列であり、アクセスパターンａｐ、インターバルｉｎｔ、周期ｆ、データ長ｌ、アクセス空間ａｄｄｒ、反復回数ｒｐｔを要素として構成される。
【００５６】
コマンド１５００はレジスタイメージ１５１１として外部から参照できる。表現を行おうとする代替トラフィックは複数のコマンド列で表現されるため、これらを連続して入力可能なようにコマンドバッファ１５１２に蓄える仕組みをもつ。コマンドバッファ１５１２に蓄えられたコマンド列は順次読み出され、あらかじめ準備されたシナリオデータ１５１３に基づき、クロック端子１５０３から入力されたクロックＣＬＫに従って、マスター端子１５０２から出力されることになる。
【００５７】
すなわち、コマンド１５００で指定されたアクセス空間ａｄｄｒに対して反復回数ｒｐｔ回のアクセスパターンａｐの形式で出力される。総アクセス量に対する単位アクセス量は、バスのパケットサイズに相当する。
【００５８】
図１６は、シナリオデータを示す説明図である。図１６において、シナリオデータは、アクセスパターンＡＰ、インターバルＩＮＴ、周期Ｆ、データ長Ｌ、アクセス空間ＡＤＤＲ、反復回数ＲＰＴのパラメタをもたない仮想的なロジックで構成される。これらをパラメタとして選択する理由は、次のような理由によるものである。
【００５９】
アクセスパターンを示す水平（Ｈ）方向、垂直（Ｖ）方向、ランダム（Ｒ）では、アクセスの連続性を示したものである。多くのハードウェアデバイス、とくにメモリ装置では、連続したアドレス（水平方向に対して連続）であるか、周期的にとびとびの空間にアクセス（垂直方向に対して連続）するか、ランダムかによってパフォーマンスが異なることが知られている。これは、実際の回路接続において、連続空間へのアクセス、あるいは空間に対して周期性のあるアクセスであれば、バッファやキャッシュ機構により、ランダムにアクセスすることによりページング切り替えに伴うレイテンシが発生せず、より高速にアクセスできるためである。
【００６０】
ただし、トラフィック生成器Ｇからはアクセス先のデバイスの特性は不明であるため、元々発生していたトラフィックがどのようなアクセスパターンをもっていたかの特徴のみを抽出する。実際のパフォーマンスの変化については、接続先のデバイスの特性を引き出すことにより解決することになる。
【００６１】
インターバルＩＮＴ、周期Ｆ、データ長Ｌ、アクセス空間ＡＤＤＲ、反復回数ＲＰＴについては、実際のトラフィックに対する時間的空間的な属性を示した一般的な表現である。本実施の形態のＥＳＬシミュレーションで利用されるハードウェアはＳｙｓｔｅｍＣなどの記述言語で表現される。これはソフトウェアの関数と同じ構成であり、実際に動作を行う場合には、ＥＳＬシミュレーションを発生させる関数がコールされる仕組みになっている。
【００６２】
トラフィック生成器Ｇの内部で、コマンドバッファ１５１２からアクセスパターンが読み出された場合、シナリオデータとして定義されている関数から、図１６に示すアクセスパターンに相当する関数にリンクする。この時点ではパターンのみを生成する仮想回路が接続されているだけである。続いてコマンドバッファ１５１２から読み出されたインターバルｉｎｔ、周期ｆ、反復回数ｒｐｔ、アクセス空間ａｄｄｒを読み取り、このパラメタをリンクした関数への引数として渡すことで、指定されたアドレス空間ＡＤＤＲに対して、アクセスデータのインターバルＩＮＴ、周期Ｆ、反復回数ＲＰＴのトラフィックが生成可能になる。
【００６３】
図１７は、実際のデータパターンからトラフィック生成器Ｇに置換する場合のアクセスパターン、周期、反復回数、アクセス空間を生成する方式の説明図である。実際のアクセスデータを１回のＥＳＬシミュレーションで得た場合、シミュレータはクロックに応じた詳細なアクセスログを生成する。本実施の形態で対象としている検証評価では、クロック単位での詳細データではなく、複数のハードウェアブロックの相互干渉において、大概的にどのようなパフォーマンスを示すかを検証する目的があるため、クロック単位での詳細なパターンを追従する必要がない。
【００６４】
図１３に示したドメインＤａ１を単一のトラフィック生成器Ｇに置き換える場合、まず、周期パターンを探索する。厳密な周期パターン探索では、測定区間のすべての特性を読み出す手法が利用されるが、本実施の形態でのフェーズでは、誤差を許容しながらも概略的な傾向をみるためのシミュレーションであるため、厳密な周期パターンを抽出する必要がない。そこで、ドメインＤａ１に対する１回目のＥＳＬシミュレーションで得られたアクセス波形１７００をＮサイクル周期で分割する。ｎは定数で、経験的に定められた初期値は１０００とし、シミュレーション環境により値を変更可能とする。
【００６５】
これは、置換を行おうとしているドメインＤａ１内の各ハードウェアブロックが発生するアクセスパターンの解析に重要であり、たとえば、（Ａ）において、パターンの波形が視覚的に周期性を持つ場合、これは既存の数学的アルゴリズムにより周期を求めることができるが、視覚的に周期性を持たない場合、周期を求めることが困難になる。一方で、周期性を見出すことは本問題を解決する主旨ではないため、あえて初期値として、たとえば、ｎ＝１０００を設定することで、その間隔でアクセスパターンを簡略化する。
【００６６】
このように、周期ｎの初期値を定数（ｎ＝１０００）とするのは、視覚的にも周期パターンを見出せない場合のモデル数値化のための手法である。周期パターンがあるか否かは、既存の数学的手法を行い、適当な収束値が得られなかったケースで判断を行う。そして、ｎサイクルで分割した場合の１つのパターンを平均化する。区間平均化するときの１つのアクセス単位は、接続先の転送パケット単位となる。たとえば、３２ビットアクセスを行うものであれば、４バイト単位、６４ビットアクセスであれば８バイト単位となる。
【００６７】
たとえば、図１７の（Ａ）において、全アクセスが１６００ビット（２００バイト）であり、接続先が３２ビット（４バイト）単位であったとすると、（Ｂ）において、トラフィック生成器Ｇで得られる模擬波形１８００は、全アクセス量を平均化したものである。区間である周期ｎは１０００サイクルであるため、４バイトのアクセスを２０サイクルの周期で５０回送ることになるため、１サイクルで４バイトを転送し、１９サイクルのインターバルをもつことになる。このときのトラフィックは、（Ｃ）に示したように、データ長Ｌ＝４、インターバルＩＮＴ＝１９、周期Ｆ＝２０、反復回数ＲＰＴ＝５０となる。
【００６８】
このようにして、すべての区間のパターンについて模擬波形を生成し、これらの値をコマンド１５００としてトラフィック生成器Ｇに順次与えることで、置換されたトラフィック生成器Ｇが、元々存在していたドメインＤａ１のデータアクセス負荷（トラフィック）を表現することができる。
【００６９】
以下、具体的なトラフィック生成器Ｇの操作事例を示す。実行制御部３０４によるドメインＤａ１についての１回目のＥＳＬシミュレーションにより、ドメインＤａ１からの出力波形を測定する。図１７のアクセス波形１７００がブリッジＢにおける測定波形となる。図１７では、ランダムな波形ではなく、周期的なパターンを示しているため、上述した既存の数学的アルゴリズムにより周期を求めることができる。
【００７０】
図１７で得られるアクセス波形の黒い部分は実際にデータが通過した点の集合である。具体的なデータ内容については関係なく、データが通過すること、すなわち置換を行おうとするハードウェアブロックから発生するアクセス負荷により、他のハードウェアブロックのアクセスが影響を受けることになる。
【００７１】
実際には３種類のクロックＰ〜Ｒが導入され、調停（アービトレーション）の結果発生するデータアクセス負荷である。しかし、アクセス波形１７００だけで見れば、単なる一つの負荷の帯であり、この帯を模式化してしまうことでアクセス負荷を簡素化することができる。
【００７２】
なお、トラフィック生成器Ｇは以下のようなレジスタをもつものとする。レジスタは以下の構成である必要はなく、実装環境に応じて形態を変更することも可能である。
【００７３】
ＣＴＬ：コントロールレジスタ
トラフィック生成器Ｇに制御コマンド１５００を設定する。
０ｘ００：制御停止
０ｘ０１：実行開始
０ｘ０２：コマンド１５００の入力モード
【００７４】
ＤＰＲ：データパターンレジスタ
１つの負荷パターンがどのようなアクセスをするか指定する。
０ｘ００：指定されたＳＴＡＲ／ＳＢＡＲ／ＤＴＡＲ／ＤＢＡＲに対して連続
０ｘ０１：指定されたＳＴＡＲ／ＳＢＡＲ／ＤＡＴＲ／ＤＢＡＲに対して断続
０ｘ０２：指定されたＳＴＡＲ／ＳＢＡＲ／ＤＡＴＲ／ＤＢＡＲに対してランダム
断続データの場合、断続データの間隔を上位ビットに指定する。
下位ビットが０ｘ０１以外の場合、上位ビットは無視される。
【００７５】
ＴＷＲ：トラフィック・ワイズ・レジスタ
１つの負荷パターンに対するアクセス量を実数で指定する。
【００７６】
ＩＴＲ：インターバルタイムレジスタ
１つの負荷パターン同士の感覚を実数で指定する。
【００７７】
ＲＴＲ：リピートタイムレジスタ
１つのパターンを何回リピートするかを指定する。
【００７８】
ＳＴＡＲ：ソーストップアドレスレジスタ（置換元のアドレス空間の先頭アドレス）
ＳＢＡＲ：ソースボトムアドレスレジスタ（置換元のアドレス空間の最終アドレス）
ＤＴＡＲ：デスティネーショントップアドレスレジスタ（置換先以外のアドレス空間の先頭アドレス）
ＤＢＡＲ：デスティネーションボトムアドレスレジスタ（置換先以外のアドレス空間の最終アドレス）
【００７９】
ＢＵＦ：コマンドバッファ１５１２（上記パターンを記述するためのバッファ。）
レジスタに書き込むことにより、順にスタックされる。実行時にはＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）読み出しされる。
【００８０】
実験環境のトラフィック生成器Ｇは以下のような仕様で動作する。
１．コントロールレジスタＣＴＬにコマンド１５００の入力モードに変更する。
２．コマンドバッファＢＵＦに各レジスタに与える値を順に記述する。
３．コントロールレジスタＣＴＬを実行モードにする。
【００８１】
トラフィック生成器Ｇにはシナリオを生成するプログラマブルな領域が用意してあり、実際のハードウェアブロックと置換する際に、ハードウェアブロックとともに、シナリオ生成プログラムが入力される仕組みをもつ。上記１〜３のような仕様のトラフィック生成器Ｇへのプログラムの記述を容易に表現するために、アセンブラ風の記述をする。「Ｓｅｔ  ＸＸＸ，ＹＹＹ」と記述した場合、「ＸＸＸ」に「ＹＹＹ」を設定することを意味する。また「＃」はコメント行とする。
【００８２】
Ｓｅｔ  ＣＴＬ，  ００    ＃  停止
Ｓｅｔ  ＣＴＬ，  ０２    ＃  コマンド１５００の入力モード
Ｓｅｔ  Ｂｕｆ，  ００    ＃  連続アクセスするパターンを生成する。
Ｓｅｔ  Ｂｕｆ，  ０４    ＃  データ長Ｌ＝４のアクセス。実行時にトラフィック・ワイズ・レジスタＴＷＲに代入される。
＃  自動インクリメント
Ｓｅｔ  Ｂｕｆ，  １９    ＃  インターバル時間１９。実行時にインターバルタイムレジスタＩＴＲに代入される。
＃  自動インクリメント
Ｓｅｔ  Ｂｕｆ，  ２５５  ＃  繰り返し回数２５５回。実行時にリピートタイムレジスタＲＴＲに代入される。
Ｓｅｔ  Ｂｕｆ，  ０ｘｆｆ００  ＃  ペリフェラルＸ，Ｙのアドレス空間。実行時にソーストップアドレスレジスタＳＴＡＲに代入される
＃  自動インクリメント
Ｓｅｔ  Ｂｕｆ，  ０ｘｆｆｆｆ  ＃  ペリフェラルＸ，Ｙのアドレス空間。実行時にソースボトムアドレスレジスタＳＢＡＲに代入される。
＃  自動インクリメント
Ｓｅｔ  Ｂｕｆ，  ０ｘ００００  ＃  ペリフェラルＸ，Ｙ以外のアドレス空間。実行時にデスティネーショントップアドレスレジスタＤＴＡＲに代入される。
＃  自動インクリメント
Ｓｅｔ  Ｂｕｆ，  ０ｘ００ｆｆ  ＃  ペリフェラルＸ，Ｙ以外のアドレス空間。実行時にデスティネーションボトムアドレスレジスタＤＢＡＲに代入される。
＃  自動インクリメント
Ｓｅｔ  ＣＴＬ，  ０１    ＃  実行開始
【００８３】
実行開始することによって、Ｂｕｆにスタックされた命令を順に読み出し、各レジスタに値を読み込んで実際のトラフィックを生成することになる。以上１つのパターンを再現する例であるが、ランダムアクセスを周期化したときのように、１つのパターンの周期は１回ずつで、毎回アクセス幅やインターバルが異なるケースでは、「Ｓｅｔ  Ｂｕｆ」に相当するセンテンスを必要な回数分繰り返せばよい。
【００８４】
図１８は、ドメインＤａ１についてのシミュレーション波形を示す説明図である。このシミュレーション波形は、ブリッジＢにおいて測定される。図１９はドメインＤａ１についてのシミュレーション波形とトラフィック生成器Ｇからのトラフィック波形との比較を示す説明図である。
【００８５】
（Ａ１）が実際の全体トラフィックの波形、（Ａ２）が測定を行いたい置換されたハードウェアブロック以外のアクセスを示す波形、（Ａ３）が実際のアクセスを示す波形である。また、（Ｂ１）はトラフィック生成器Ｇにより影響を受けた全体トラフィックの波形、（Ｂ２）が測定を行いたい置換されたブロック以外のアクセスを示す波形、（Ｂ３）がトラフィック生成器Ｇの生成した負荷を示す波形である。
【００８６】
このように、測定を行いたい影響を受けるアクセスが、実際のペリフェラルＸ，Ｙによる負荷での影響と同様の影響をトラフィック生成器Ｇにより影響をうけていることが観測できる。結果として、３つの処理系統を１つに集約、簡略化することにより、よりＥＳＬシミュレーション時間を短縮することが可能になる。
【００８７】
図３に戻って、再構築部３０６は、選択ドメインをトラフィック生成器Ｇに置換することにより、アーキテクチャを再構築する機能を有する。具体的には、たとえば、各選択ドメインに固有のトラフィック生成器Ｇと非選択ドメインとを結合することで、アーキテクチャを再構築する。
【００８８】
図２０は、アーキテクチャの再構築を示す説明図である。再構築前のアーキテクチャのドメインＤａ１（図１３）をトラフィック生成器Ｇａ１に置換することで、再構築後のアーキテクチャ１１０が得られる。また、実行制御部３０４は、再構築後のアーキテクチャ１１０についてトランザクションレベルのＥＳＬシミュレーションを実行することで、図１に示した評価結果１２０を得る。
【００８９】
図３に戻って、出力部３０７は、再構築後のアーキテクチャ１１０や評価結果１２０を出力する機能を有する。出力形式は、ディスプレイへの表示や外部への送信、記憶領域への書き込みがある。
【００９０】
（ＥＳＬシミュレーション時間の比較）
図２１は、ＥＳＬシミュレーション時間の比較を示すグラフである。横軸はシミュレーションモデル、縦軸は実行時間（対数）である。バックドアモデルでは、評価ソフトウェア９０１を実行させるのに必要な最低限１系統のクロックを用いてＥＳＬシミュレーションを行った結果である。グラフの右にいくに従ってクロック系統が追加され、この増加にともなって実行時間が指数的に増加していく。
【００９１】
すなわち、複数のクロック依存のハードウェアブロックがある場合、クロック系統が複数あると、シミュレーション内部の時間も時系列に沿った結果をもつこととなり、そのクロック系統が異なれば、シミュレーション内部での同期を取るために処理量が増大することとなる。
【００９２】
図２０の再構築においては、再構築前では、４つのクロック系統（Ｐ〜Ｓ）および８種類のハードウェアブロック（Ｘ，Ｙ，Ｚ，Ｍ，Ｎ，Ａ，Ｂ，Ｃ）のＥＳＬシミュレーションを実行することになる。図２１の実際のトランザクションレベルのＥＳＬシミュレーション時間をもとに換算すると、１０の３．５乗のオーダーで実行時間がかかることになる。
【００９３】
図２０の再構築後では、ドメインＤａ１についてのインストラクションレベルのシミュレーション１回と３系統クロック（Ｐ，Ｒ，Ｓ）および５つのハードウェアブロック（Ｇ，Ｚ，Ｎ，Ｂ，Ｃ）についてのトランザクションレベルのシミュレーション１回を実行することになる。図２１のＥＳＬシミュレーション時間をもとに換算すると、１０の３乗のオーダーの実行時間ですむことになる。
【００９４】
なお、本実施の形態では、評価ソフトウェア９０１の実行においてデータトラフィックのパターンを算出するため、図２１におけるバックドア相当の実行を１回だけ実施することになるが、この実行に要する時間はたかだか１０の１乗のオーダーである。したがって、本実施の形態では、ＥＳＬシミュレーション時間の大幅な短縮が可能となる。
【００９５】
（設計支援処理手順）
図２２は、本実施の形態にかかる設計支援装置による設計支援処理手順を示すフローチャートである。図２２において、情報取得処理（ステップＳ２２０１）、ドメイン分割処理（ステップＳ２２０２）、トラフィック生成器Ｇ生成処理（ステップＳ２２０３）、アーキテクチャ再構築処理（ステップＳ２２０４）の順に実行する。
【００９６】
なお、情報取得処理（ステップＳ２２０１）では、図４に示したハードウェアモデル情報、図６に示した接続情報、図９に示した評価ソフトウェア９０１を取得する。このあと、再構築アーキテクチャについてサイクルモデルのＥＳＬシミュレーションを実行する（ステップＳ２２０５）。そして、実行結果を出力する（ステップＳ２２０６）。これにより、一連の設計支援処理を終了する。
【００９７】
図２３は、ドメイン分割処理（ステップＳ２２０２）の詳細な処理手順を示すフローチャートである。まず、ハードウェア接続解析結果があるか否かを判断する（ステップＳ２３０１）。一方、ない場合（ステップＳ２３０１：Ｎｏ）、構造分析をおこなう（ステップＳ２３０２）。そして、ハードェアブロック間依存解析をおこなって（ステップＳ２３０３）、ステップＳ２３０１に戻る。
【００９８】
ステップＳ２３０１において、ハードウェア接続解析結果がある場合（ステップＳ２３０１：Ｙｅｓ）、ＥＳＬ実行結果があるか否かを判断する（ステップＳ２３０４）。ない場合（ステップＳ２３０４：Ｎｏ）、バックドアモデルによるＥＳＬシミュレーションを実行して（ステップＳ２３０５）、ステップＳ２３０１に戻る。ＥＳＬ実行結果がある場合（ステップＳ２３０４：Ｙｅｓ）、ドメイン分割を実行する（ステップＳ２３０６）。そして、トラフィック生成器生成処理（ステップＳ２２０３）に移行する。
【００９９】
図２４は、トラフィック生成器生成処理（ステップＳ２２０３）の詳細な処理手順を示すフローチャートである。まず、評価対象ドメインを分割されたドメイン群の中から抽出する（ステップＳ２４０１）。抽出されるドメインは、設計者が指定したドメインでもよく、すべてのドメインでもよい。
【０１００】
そして、未処理の評価対象ドメインがあるか否かを判断する（ステップＳ２４０２）。未処理の評価対象ドメインがある場合（ステップＳ２４０２：Ｙｅｓ）、未処理の評価対象ドメインを１つ選択し（ステップＳ２４０３）、サイクルモデルによるＥＳＬシミュレーションを実行する（ステップＳ２４０４）。すなわち、トランザクションレベルのＥＳＬシミュレーションを実行する。
【０１０１】
そして、その実行結果に基づいて評価対象ドメインのトラフィックと同等のトラフィック生成器Ｇを生成して（ステップＳ２４０５）、ステップＳ２４０２に戻る。ステップＳ２４０２において、未処理の評価対象ドメインがない場合（ステップＳ２４０２：Ｎｏ）、アーキテクチャ再構築処理（ステップＳ２２０４）に移行する。
【０１０２】
図２５は、アーキテクチャ再構築処理（ステップＳ２２０４）の詳細な処理手順を示すフローチャートである。まず、非評価対象ドメインを抽出する（ステップＳ２５０１）。図１３の例では、ドメインＤｃ１を抽出する。そして、評価対象ドメイン固有のトラフィック生成器Ｇと非評価対象ドメインとを結合する（ステップＳ２５０２）。図２０に示したように、ドメインＤａ１固有のトラフィック生成器Ｇａ１とドメインＤｃ１とを結合することで、再構築後のアーキテクチャを得る。
【０１０３】
このように、本実施の形態によれば、設計対象となるアーキテクチャから分割されたドメインの一部または全部をそのドメインのトラフィックと同等のトラフィックを生成するトラフィック生成器Ｇに置換することで、アーキテクチャを簡略化することができる。これにより、簡略化されたアーキテクチャについてトランザクションレベルのＥＳＬシミュレーションを実行することで、上流設計におけるＥＳＬシミュレーション速度の高速化を図ることができる。したがって、設計期間の短縮化を図ることができる。
【０１０４】
なお、本実施の形態で説明した設計支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な媒体であってもよい。
【０１０５】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１０６】
（付記１）コンピュータを、
評価ソフトウェアに関するＥＳＬシミュレーションを実行する実行手段、
前記実行手段を制御して、設計対象となるアーキテクチャからドメイン分割されたドメイン群の中から選ばれた選択ドメインについて前記評価ソフトウェアに関するＥＳＬシミュレーションを実行する実行制御手段、
前記実行制御手段によって実行された実行結果に基づいて、前記選択ドメインのトラフィックと同等のトラフィックを生成する単一のトラフィック生成器を生成する生成手段、
前記選択ドメインを前記生成手段によって生成されたトラフィック生成器に置換することにより、前記アーキテクチャを再構築する再構築手段、
前記再構築手段によって再構築されたアーキテクチャを出力する出力手段、
として機能させることを特徴とする設計支援プログラム。
【０１０７】
（付記２）前記コンピュータを、
前記アーキテクチャを構成するハードウェアモデル間の接続情報を取得する取得手段、
前記取得手段によって取得された接続情報に基づいて、前記アーキテクチャをドメイン分割する分割手段として機能させ、
前記実行制御手段は、
前記実行手段を制御して、前記分割手段によって分割されたドメイン群の中から選ばれた選択ドメインについて前記評価ソフトウェアに関するＥＳＬシミュレーションを実行することを特徴とする付記１に記載の設計支援プログラム。
【０１０８】
（付記３）前記分割手段は、
前記接続情報から得られる前記ハードウェアモデル間を接続するバスの共通性に基づいて、前記アーキテクチャをドメイン分割することを特徴とする付記２に記載の設計支援プログラム。
【０１０９】
（付記４）前記分割手段は、
前記接続情報から得られる前記ハードウェアモデルに供給されるクロックの共通性に基づいて、前記アーキテクチャをドメイン分割することを特徴とする付記２または３に記載の設計支援プログラム。
【０１１０】
（付記５）前記実行制御手段は、
前記実行手段を制御して、前記アーキテクチャについて前記評価ソフトウェアに関するインストラクションレベルのＥＳＬシミュレーションを実行し、
前記分割手段は、
前記アーキテクチャについて前記評価ソフトウェアに関するインストラクションレベルのＥＳＬシミュレーションにより得られる前記ハードウェアモデル間のデータ依存量に基づいて、前記アーキテクチャをドメイン分割することを特徴とする付記２〜４のいずれか一つに記載の設計支援プログラム。
【０１１１】
（付記６）前記実行制御手段は、
前記分割手段により、前記いずれのドメインにも分類できない不確定ハードウェアモデルがある場合、前記実行手段を制御して、前記アーキテクチャについて前記評価ソフトウェアに関するインストラクションレベルのＥＳＬシミュレーションを実行し、
前記分割手段は、
前記アーキテクチャについて前記評価ソフトウェアに関するインストラクションレベルのＥＳＬシミュレーションにより得られる前記ハードウェアモデル間のデータ依存量に基づいて、前記アーキテクチャをドメイン分割することを特徴とする付記２〜４のいずれか一つに記載の設計支援プログラム。
【０１１２】
（付記７）前記実行制御手段は、
前記実行手段を制御して、前記再構築されたアーキテクチャについて前記評価ソフトウェアに関するＥＳＬシミュレーションを実行し、
前記出力手段は、
前記再構築されたアーキテクチャについて実行された前記評価ソフトウェアに関するＥＳＬシミュレーションの実行結果を出力することを特徴とする付記１〜６のいずれか一つに記載の設計支援プログラム。
【０１１３】
（付記８）評価ソフトウェアに関するＥＳＬシミュレーションを実行する実行手段と、
前記実行手段を制御して、設計対象となるアーキテクチャからドメイン分割されたドメイン群の中から選ばれた選択ドメインについて前記評価ソフトウェアに関するＥＳＬシミュレーションを実行する実行制御手段と、
前記実行制御手段によって実行された実行結果に基づいて、前記選択ドメインのトラフィックと同等のトラフィックを生成する単一のトラフィック生成器を生成する生成手段と、
前記選択ドメインを前記生成手段によって生成されたトラフィック生成器に置換することにより、前記アーキテクチャを再構築する再構築手段と、
前記再構築手段によって再構築されたアーキテクチャを出力する出力手段と、
を備えることを特徴とする設計支援装置。
【０１１４】
（付記９）コンピュータが、
設計対象となるアーキテクチャからドメイン分割されたドメイン群の中から選ばれた選択ドメインについて評価ソフトウェアに関するＥＳＬシミュレーションを実行する実行工程、
前記実行工程によって実行された実行結果に基づいて、前記選択ドメインのトラフィックと同等のトラフィックを生成する単一のトラフィック生成器を生成する生成工程、
前記選択ドメインを前記生成工程によって生成されたトラフィック生成器に置換することにより、前記アーキテクチャを再構築する再構築工程、
前記再構築工程によって再構築されたアーキテクチャを出力する出力工程、
を実行することを特徴とする設計支援方法。
【図面の簡単な説明】
【０１１５】
【図１】本実施の形態にかかる設計支援の概要を示す説明図である。
【図２】本実施の形態にかかる設計支援装置のハードウェア構成を示すブロック図である。
【図３】本実施の形態にかかる設計支援装置の機能的構成を示すブロック図である。
【図４】ハードウェアモデル情報を示す説明図である。
【図５】設計対象となるアーキテクチャを示すブロック構成図である。
【図６】接続情報を示す説明図である。
【図７】接続情報が与えられたアーキテクチャを示すブロック構成図である。
【図８】図７に示したアーキテクチャの接続解析結果を示す説明図である。
【図９】評価ソフトウェアのソースコード群を示す説明図である。
【図１０】アーキテクチャにおける評価ソフトウェアのＥＳＬシミュレーションを示す説明図である。
【図１１】図１０に示したインストラクションレベルのＥＳＬシミュレーションの実行結果（その１）を示す説明図である。
【図１２】図１０に示したインストラクションレベルのＥＳＬシミュレーションの実行結果（その２）を示す説明図である。
【図１３】アーキテクチャのドメイン分割結果（その１）を示すブロック構成図である。
【図１４】アーキテクチャのドメイン分割結果（その２）を示すブロック構成図である。
【図１５】トラフィック生成器を示す説明図である。
【図１６】シナリオデータを示す説明図である。
【図１７】実際のデータパターンからトラフィック生成器に置換する場合のアクセスパターン、周期、反復回数、アクセス空間を生成する方式の説明図である。
【図１８】ドメインＤａ１についてのシミュレーション波形を示す説明図である。
【図１９】ドメインＤａ１についてのシミュレーション波形とトラフィック生成器からのトラフィック波形との比較を示す説明図である。
【図２０】アーキテクチャの再構築を示す説明図である。
【図２１】ＥＳＬシミュレーション時間の比較を示すグラフである。
【図２２】本実施の形態にかかる設計支援装置による設計支援処理手順を示すフローチャートである。
【図２３】ドメイン分割処理（ステップＳ２２０２）の詳細な処理手順を示すフローチャートである。
【図２４】トラフィック生成器生成処理（ステップＳ２４０３）の詳細な処理手順を示すフローチャートである。
【図２５】アーキテクチャ再構築処理（ステップＳ２２０４）の詳細な処理手順を示すフローチャートである。
【符号の説明】
【０１１６】
３００  設計支援装置
３０１  取得部
３０２  分割部
３０３  実行部
３０４  実行制御部
３０５  生成部
３０６  再構築部
３０７  出力部
【図１】
2010039678.tif 000003
【図２】
2010039678.tif 000004
【図３】
2010039678.tif 000005
【図４】
2010039678.tif 000006
【図５】
2010039678.tif 000007
【図６】
2010039678.tif 000008
【図７】
2010039678.tif 000009
【図８】
2010039678.tif 000010
【図９】
2010039678.tif 000011
【図１０】
2010039678.tif 000012
【図１１】
2010039678.tif 000013
【図１２】
2010039678.tif 000014
【図１３】
2010039678.tif 000015
【図１４】
2010039678.tif 000016
【図１５】
2010039678.tif 000017
【図１６】
2010039678.tif 000018
【図１７】
2010039678.tif 000019
【図１８】
2010039678.tif 000020
【図１９】
2010039678.tif 000021
【図２０】
2010039678.tif 000022
【図２１】
2010039678.tif 000023
【図２２】
2010039678.tif 000024
【図２３】
2010039678.tif 000025
【図２４】
2010039678.tif 000026
【図２５】
2010039678.tif 000027