(57)【要約】【課題】短期間で容易に、マクロのトランザクションを忠実に再現することが可能な性能評価用トランザクション生成プログラム及び性能評価用トランザクション生成装置を提供すること。【解決手段】性能評価用トランザクション生成プログラムであって、コンピュータに、半導体回路を構成する各半導体素子が出力する信号のレベル遷移を示す情報である動作波形データと半導体素子間の動作の依存関係を示すパラメタに基づいて、前記半導体回路を構成する各半導体素子の動作の依存関係を示すトランザクションシナリオを生成させ、前記トランザクションシナリオに基づいて、前記半導体回路を検証するためのトランザクションを生成させることを特徴とする。【選択図】図８
2014215768.tif 000002
【特許請求の範囲】
【請求項１】
性能評価用トランザクション生成プログラムであって、
コンピュータに、
半導体回路を構成する複数の半導体素子の各々が出力する信号のレベル遷移を示す情報である動作波形データと前記複数の半導体素子間の動作の依存関係を示すパラメタに基づいて、前記複数の半導体素子間の動作の前記依存関係を示すトランザクションシナリオを生成させ、
前記トランザクションシナリオに基づいて、前記半導体回路を検証するためのトランザクションを生成させる、
ことを特徴とする性能評価用トランザクション生成プログラム。
【請求項２】
前記トランザクションを実行させる、
ことを特徴とする請求項１に記載の性能評価用トランザクション生成プログラム。
【請求項３】
前記複数の半導体素子は第１および第２の半導体素子を含み、
前記依存関係は、前記第１の半導体素子のトランザクションが前記第２の半導体素子のトランザクションの結果に依存する関係である、
ことを特徴とする請求項１又は２に記載の性能評価用トランザクション生成プログラム。
【請求項４】
前記依存関係は、前記複数の半導体素子間の動作であって、前記トランザクションの並列処理の単位であるチャネルが同一のチャネルである動作間における関係である、
ことを特徴とする請求項１乃至３の何れか１項に記載の性能評価用トランザクション生成プログラム。
【請求項５】
前記依存関係は、前記複数の半導体素子間の動作であって、前記トランザクションの並列処理の単位であるチャネルが異なるチャネルである動作間における関係である、
ことを特徴とする請求項１乃至３の何れか１項に記載の性能評価用トランザクション生成プログラム。
【請求項６】
性能評価用トランザクション生成装置であって、
半導体回路を構成する複数の半導体素子の各々が出力する信号のレベル遷移を示す情報である動作波形データと前記複数の半導体素子間の動作の依存関係を示すパラメタに基づいて、前記複数の半導体素子間の動作の前記依存関係を示すトランザクションシナリオを生成するトランザクションシナリオ生成手段と、
前記トランザクションシナリオ生成手段によって生成された前記トランザクションシナリオに基づいて、前記半導体回路を検証するためのトランザクションを生成するトランザクション生成手段と、
を備えることを特徴とする性能評価用トランザクション生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理回路から構成されるハードウェアシステムの性能評価用トランザクション生成プログラム及び性能評価用トランザクション生成装置に関する。
【背景技術】
【０００２】
プロセス技術の進歩によりＬＳＩ（大規模集積回路：Large Scale Integrated circuit）の集積度が増大し、システムＬＳＩとして１チップ上に搭載することが可能となっている。また、チップ上に搭載する機能モジュールも多様化し、回路規模も増大している。近年、性能要求を満たすために、より複雑なアーキテクチャを実現する必要があり、アーキテクチャに起因する問題が発生しやすくなっている。アーキテクチャとはＬＳＩのハードウェアの基本構成のことで、例えばＬＳＩを構成する複数の機能ブロックの組み合わせの構成などのことである。
【０００３】
ＬＳＩのシステム全体としての処理能力を評価するためには、ハードウェアとソフトウェアとを同時に動作させた検証を行うことが必要である。例えば、回路記述用のＲＴＬ（レジスタ転送レベル：Register Transfer Level）を用いて検証を行うには、具体的なハードウェア構成のレベルでシステム全体のシミュレーションを実行することになる。
【０００４】
特許文献１には、システムアーキテクチャのシミュレーション方法に関し、機能ブロック間のデータ授受の記録を残し、グループ分けに応じたシミュレーションを実行する技術が開示されている。
【０００５】
図１は、従来のＬＳＩ開発における課題を説明するための図である。
ＬＳＩの開発は、図１に示すように、与えられた「仕様設計」に基づいて、ハードウェアについては、「ハード設計」を行い、「ハード検証」した後「ＬＳＩ製造」が行われる。また、ソフトウェアについては、「ソフト設計」を行い、「ソフト検証」が行われる。従来のシステム評価は、その後に実行される。すなわち、システム評価はハードウェア設計完了後しか行えず、そこでアーキテクチャに起因する問題が発見されたとしても、多くの作業をやり直す必要が生じるために現実的には大きなフィードバックは行えない。
【０００６】
そこで、（１）アーキテクチャにフィードバック可能な開発初期段階（ハードウェア設計完了前）でのシステム評価を行うことができ、かつ、（２）アーキテクチャに起因する問題が発見可能なシステム評価を行うことができる仕組み、が求められている。
【０００７】
上記（１）アーキテクチャにフィードバック可能な開発初期段階（ハードウェア設計完了前）でのシステム評価を行うことができる仕組みとしては、「仮想的にハードウェアを表現したソフトウェアであるＥＳＬ（電子システムレベル：Electronics System Level）モデルによる性能評価技術」が提案されている。また、ＥＳＬモデルによる性能評価を実現するためのＥＳＬモデル記述言語（System C）およびＥＳＬシミュレータは、既知の技術として実現されている。
【０００８】
図２は、ＥＳＬ技術を用いたシステム評価環境を示す図である。
図２に示すように、ＥＳＬシミュレータは、ＣＰＵ（中央処理装置：Central Processing Unit）、ＭＥＭ（メモリ：MEMory）、ＤＭＡＣ（ダイレクトメモリアクセスコントローラ：Direct Memory Access Controller）等のハードウェアをソフトウェアで仮想的にモデル化して表現し、シミュレーション対象に対する命令であるトランザクションを電子システムレベルでシミュレートするためのシミュレータである。
【０００９】
また、ハードウェアの仕様記述のトランザクション手順が定義され、トランザクション識別子により順序機械の検査装置を自動生成する技術が開示されている（例えば、特許文献２参照。）。
【００１０】
上記（２）アーキテクチャに起因する問題が発見可能なシステム評価を行うことができる仕組みについては、「アーキテクチャに起因する問題」を見つけるために、「実際の使用時（ユースケース）のシステム動作による性能評価を行う」ことが重要である。この性能評価を実現するために、以下の要素が表現される環境が求められている。
・実際の使用に則ったシステム動作時の各ハードウェアマクロ（以降、マクロ）のトランザクション負荷が表現される環境
・トランザクション負荷が高い精度（マクロ仕様のトランザクション）で表現される環境
これらのことから、「ＥＳＬモデルでマクロのトランザクションを忠実に再現する仕組み」が求められている。
【００１１】
また、現在のＬＳＩ開発は、すべてのマクロを新規に開発することは稀であり、新規開発のＩＰ（設計資産：Intellectual Property）と既存のＩＰの組み合わせで構成されることが殆どである。従って、ＥＳＬモデル化の対象としては、新規開発ＩＰ（ＲＴＬ無し）と既存ＩＰ（ＲＴＬ有り）のユースケースがある。
【００１２】
図３は、ユースケースと従来技術との関係を示す図である。
図３に示すように、「ＥＳＬモデルでマクロのトランザクションを忠実に再現する仕組み」として、従来は、ユースケースに応じて、「手作り」と「動作波形再現」の二つの手法が使用されている。
【００１３】
このような従来技術では、「忠実に再現するモデルを開発するのに時間がかかる」という問題点があった。
【００１４】
図４は、「手作り」手法を説明するための図である。
図４に示すように、「手作り」手法は、まず、マクロ仕様書４１に基づいて、モデリング４２を行うことにより、ユーザがマクロのトランザクションを忠実にシミュレートするＥＳＬモデル４３を作成する。この「手作り」手法は、ＥＳＬモデル４３を作成することでマクロのトランザクションを忠実に再現できることになる一方、精度の高いＥＳＬモデル４３を開発するには、複雑な実装仕様の検討が必要であるため時間とコストがかかり、必要な時期にモデルが準備できない場合がある。
【００１５】
図５は、Synopsys社のトラフィックジェネレータを説明するための図である。
例えば、Synopsys社のシステムレベル検証ツール「Platform Architect MCO（Multicore Optimization Technology）」に搭載されているトラフィックジェネレータは、ハードウェアの実行結果であるハードウェアマクロの動作波形情報（ＶＣＤ：Value Change Dumped）を入力とし、動作波形情報から要求（リクエストトランザクション）のみを抽出してシミュレートする。これを用いてバスモデルへ負荷をかけることで、アーキテクチャ評価を行う。
【００１６】
「手作り」手法の課題を解決するための施策としての「動作波形再現」手法は、例えば図５に示したSynopsys社のトラフィックジェネレータのように、モデリング対象のＲＴＬが存在する場合、マクロの動作波形情報からリクエストトランザクションのみをシミュレートする仕組みが実現されている。動作波形情報からトランザクションを生成することでユーザがモデル開発を行う必要がなくなり、短期間かつ容易にマクロのトランザクションのモデリングが可能になる。
【先行技術文献】
【特許文献】
【００１７】
【特許文献１】特開２００３−６７４３９号公報
【特許文献２】特開２００４−２１７３０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１８】
しかしながら、従来の技術では、マクロのトランザクションを忠実に再現できない、という問題点があった。
【００１９】
図６は、従来技術の問題点を説明するための図である。
すなわち、現状のトラフィックジェネレータは、バスおよびスレーブデバイスへのトランザクション負荷をかけることを主眼としていることから、リクエストトランザクションのみをシミュレートしているため、リクエストトランザクションに対する応答（レスポンストランザクション）を待ち合せて、次のリクエストトランザクションを発行するようなマクロ特有の「トランザクション間に依存関係を持たせた動作」が実現できず、マクロのトランザクションを忠実に再現できない。
【００２０】
例えば、ハードウェアの実動作が、図６（ａ）に示すように、第１の要求（リクエストトランザクション）６１Ａに対する第１の応答（レスポンストランザクション）６２Ａの発行が、何らかの原因により遅れ、第１の応答（レスポンストランザクション）６４Ａの発行となった場合、本来発行すべきであった第２の要求（リクエストトランザクション）６３Ａは、第１の応答６４Ａの発行を待つので、第２の要求（リクエストトランザクション）６５Ａとしては遅れての発行となる。
【００２１】
これに対して、トラフィックジェネレータでは、図６（ｂ）に示すように、第１の要求（リクエストトランザクション）６１Ｂに対する第１の応答（レスポンストランザクション）６２Ｂの発行が、何らかの原因により遅れ、第１の応答（レスポンストランザクション）６４Ｂの発行となった場合であっても、第２の要求（リクエストトランザクション）６３Ｂは、第１の応答６４Ｂの発行を待たずに発行され、遅れることはない。
【００２２】
本発明は、短期間で容易に、マクロのトランザクションを忠実に再現することが可能な性能評価用トランザクション生成プログラム及び性能評価用トランザクション生成装置の提供を目的とする。
【課題を解決するための手段】
【００２３】
本発明は、上記課題を解決するため、下記のような構成を採用した。
１つの案では、性能評価用トランザクション生成プログラムであって、コンピュータに、半導体回路を構成する複数の半導体素子の各々が出力する信号のレベル遷移を示す情報である動作波形データと前記複数の半導体素子間の動作の依存関係を示すパラメタに基づいて、前記複数の半導体素子間の動作の前記依存関係を示すトランザクションシナリオを生成させ、前記トランザクションシナリオに基づいて、前記半導体回路を検証するためのトランザクションを生成させることを特徴とする。
【発明の効果】
【００２４】
本発明によれば、ＲＴＬが有る場合、マクロの動作波形とマクロ特徴動作のパラメタを用意するだけで、短期間で容易にマクロのトランザクションを忠実に再現することが可能となる、という効果を奏する。
【図面の簡単な説明】
【００２５】
【図１】従来のＬＳＩ開発における課題を説明するための図である。
【図２】ＥＳＬ技術を用いたシステム評価環境を示す図である。
【図３】ユースケースと従来技術との関係を示す図である。
【図４】「手作り」手法を説明するための図である。
【図５】Synopsys社のトラフィックジェネレータを説明するための図である。
【図６】従来技術の問題点を説明するための図である。
【図７】性能評価用トランザクション生成プログラムが実行される性能評価用トランザクション生成装置のハードウェアシステム（パソコン）を示す図である。
【図８】性能評価用トランザクション生成装置の構造を示す図である。
【図９】動作波形ファイルの例を示す図である。
【図１０】パラメタファイルの例を示す図である。
【図１１】トランザクションシナリオファイルの例を示す図である。
【図１２】トランザクションシナリオ生成装置８３の構造を示す図である。
【図１３】トランザクションシナリオ生成装置８３が実行するトランザクションシナリオ生成処理の流れを示すフローチャートである。
【図１４】図１３のステップＳ１３０１の「動作波形からのトランザクション抽出」処理を説明するための図である。
【図１５】図１３のステップ１３０２の「依存関係付加」処理で、同一チャネル間の場合を説明するための図である。
【図１６】図１３のステップ１３０２の「依存関係付加」処理で、異なるチャネル間の場合を説明するための図である。
【図１７】トランザクションシナリオの生成を説明するための図である。
【図１８】トランザクション実行装置８５によるトランザクション実行処理を実行するためのトランザクション実行プログラムの位置付けを説明する図である。
【図１９】トランザクション実行装置８５が実行するトランザクション実行処理の流れを示すフローチャートである。
【図２０】トランザクション実行プログラムの例を示す図である。
【図２１】トランザクション実行処理を実行するトランザクション実行装置８５の動作フロー（リード動作）を示す図である。
【図２２】トランザクション実行処理を実行するトランザクション実行装置８５の動作フロー（ライト動作）を示す図である。
【発明を実施するための形態】
【００２６】
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。
本発明の実施の形態のポイントは、下記の３つである。
（１）マクロの動作波形情報にマクロ特徴動作仕様（トランザクションの動作の依存関係）をパラメタとして与えることでマクロのトランザクションを忠実に再現する仕組み
（２）トランザクションの動作の依存関係をトランザクションシナリオに反映する仕組み
（３）トランザクションの動作の依存関係を実現する仕組み
本実施の形態は、ハードウェアシステム（パソコン）上で実行されるソフトウェア（プログラム）であり、後述する性能評価用トランザクション生成プログラムである。そして、性能評価用トランザクション生成プログラムが実行されるハードウェアシステム（パソコン）としての性能評価用トランザクション生成装置である。
【００２７】
図７は、性能評価用トランザクション生成プログラムが実行される性能評価用トランザクション生成装置のハードウェアシステム（パソコン）を示す図である。
【００２８】
図７において、ハードウェアシステム（パソコン）７０は、ＣＰＵ（中央処理装置：Central Processing Unit）７１、メモリ（主記憶装置）７２、ハードディスク（補助記憶装置）７３、ディスプレイ（出力装置）７４、キーボード／マウス（入力装置）７５、及び入出力制御装置７６を備える一般的なコンピュータである。
【００２９】
性能評価用トランザクション生成装置７７は、ハードディスク（補助記憶装置）７３に格納された性能評価用トランザクション生成プログラムを実行することにより機能する。
【００３０】
図８は、性能評価用トランザクション生成装置の構造を示す図である。
図８において、性能評価用トランザクション生成装置７７は、トランザクションシナリオ生成装置８３及びトランザクション実行装置８５を備える。
【００３１】
トランザクションシナリオ生成装置８３は、動作波形（ＶＣＤ）ファイル８１に格納された動作波形データと、パラメタファイル８２に格納されたマクロ特徴動作仕様に基づいて、半導体回路を構成する各半導体素子の動作の依存関係を示すトランザクションシナリオを生成し、トランザクションシナリオファイル８４に格納する。動作波形ファイル８１には、半導体回路を構成する各半導体素子が出力する信号のレベル遷移を示す情報である動作波形データが格納されている。また、パラメタファイル８２には、半導体素子間の動作の依存関係を示すパラメタとしてマクロ特徴動作仕様が格納されている。
【００３２】
トランザクション実行装置８５は、トランザクションシナリオファイル８４に格納されたトランザクションシナリオに基づいて、半導体回路のアーキテクチャを検証するためのトランザクションを生成させる。
【００３３】
そして、性能評価用トランザクション生成装置７７を、例えば、Synopsys社のシステムレベル検証ツール「Platform Architect MCO」に搭載することにより、半導体回路のアーキテクチャ評価を行うことができる。
【００３４】
図９は、動作波形ファイルの例を示す図である。
図９において、動作波形ファイル８１は、動作を記録する信号を定義する信号定義部と、信号の状態変化時の時刻及び信号値を記録する信号変化記録部で構成される。図９に示した例では、０[ns]時の値変化信号値、１０００[ns]時の値変化信号値及び１００００[ns]時の値変化信号値が、信号変化記録部に記録されている。
【００３５】
図１０は、パラメタファイルの例を示す図である。
図１０において、パラメタファイル８２は、Channel、Type、StartTime及びEndTimeから構成され、マクロの特徴動作仕様として、トランザクション依存関係付加のパラメタを設定する。
【００３６】
Channelは、依存関係を付加する対象のチャネルを指定する。チャネルとはトランザクションの並列処理の単位である。例えば、readはリードチャネルであり、writeはライトチャネルである。
【００３７】
Typeは、上記並列処理で同一のチャネル内で複数並列処理されるのか、異なるチャネルが混在して複数処理されるのかを示すパラメタであり、これによって付加する依存関係の種類が指定される。すなわち依存関係は、同一チャネル内のトランザクションへの依存関係と、異なるチャネル間のトランザクションへの依存関係がある。sameは、同一チャネル内のトランザクションへの依存関係を付加し、differentは、異なるチャネル間のトランザクションへの依存関係を付加する。
【００３８】
StartTimeは、依存関係を付加する開始時刻[ns]を指定する。EndTimeは、依存関係を付加する終了時刻[ns]を指定する。
【００３９】
図１１は、トランザクションシナリオファイルの例を示す図である。
図１１において、トランザクションシナリオファイル８４は、トランザクションのシーケンスおよびトランザクションの動作の依存関係を表現したファイルであり、TransNum、WriteDepend及びReadDependから構成される。
【００４０】
TransNumは、トランザクションの番号を指定する。WriteDependは、TransNumで指定されたトランザクションに動作の依存関係があるライトトランザクションのトランザクション番号を指定する。ReadDependは、TransNumで指定されたトランザクションに動作の依存関係があるリードトランザクションのトランザクション番号を指定する。
【００４１】
上記性能評価用トランザクション生成装置７７によって生成されたトランザクションは、トランザクションシナリオファイル８４に基づいて生成されたデータ群である。トランザクションは、バスへのリクエストトランザクション（Req）及びレスポンストランザクション（Resp）で構成される。
【００４２】
上述したように、マクロの動作波形は、ある条件下でのマクロのトランザクションを表現しているのみであるため、従来のように動作波形をただ再現しただけでは、動作波形取得条件以外の状態になった場合のマクロのトランザクションをシミュレートできなかった。
【００４３】
そこで、性能評価用トランザクション生成装置７７は、トランザクションシナリオ生成装置８３によって、マクロの動作波形とマクロ特徴動作仕様としての「トランザクションの動作の依存関係」をパラメタファイルとして外部から入力し、パラメタ値と動作波形情報に基づき依存関係を付加したトランザクションシナリオを生成する。そして、トランザクション実行装置８５によって、トランザクションシナリオ生成装置８３が生成したトランザクションシナリオに基づきトランザクションを実行する。これにより、波形動作取得条件以外の状態でも、マクロの動作を忠実に再現できる。
【００４４】
次に、性能評価用トランザクション生成装置７７が備えるトランザクションシナリオ生成装置８３及びトランザクション実行装置８５のそれぞれについて詳細に説明する。
【００４５】
図１２は、トランザクションシナリオ生成装置８３の構造を示す図である。
図１２に示すように、トランザクションシナリオ生成装置８３は、トランザクションシナリオ生成部１２１を備える。
【００４６】
トランザクションシナリオ生成部１２１は、動作波形（ＶＣＤ）ファイル８１に格納された動作波形データと、パラメタファイル８２に格納されたマクロ特徴動作仕様に基づいて、半導体回路を構成する各半導体素子の動作の依存関係を示すトランザクションシナリオを生成し、トランザクションシナリオファイル８４に格納する。
【００４７】
図１３は、トランザクションシナリオ生成装置８３が実行するトランザクションシナリオ生成処理の流れを示すフローチャートである。
【００４８】
ステップＳ１３０１において、動作波形からトランザクションを抽出し、ステップＳ１３０２において、依存関係の付加を行う。これらの処理については、その詳細を後述する。
【００４９】
図１４は、図１３のステップＳ１３０１の「動作波形からのトランザクション抽出」処理を説明するための図である。
【００５０】
図１４に示すように、まず、動作波形（ＶＣＤ）ファイル８１の動作波形（ＶＣＤ）の各時刻の信号値から信号の状態を内部で再現し（再現波形１４１）、再現波形とインタフェースプロトコル仕様からトランザクションを認識する。例えば、動作波形（ＶＣＤ）の４０[ns]（＃４０）のclock信号（内部信号名：”（ダブルコーテーションマーク））の立ち上がり（clock＝１）において、rready信号（内部信号名：＃（シャープマーク））が１（０[ns]時に設定）、かつrvalid信号（内部信号名：＄（ドルマーク））が１であるため、インタフェースプロトコル仕様に基づいてトランザクションであると認識する。
【００５１】
その後、認識した順番に番号を付与しTransNumに格納し、トランザクションが成立した時刻をTimeに格納し、Read/WriteをChannelに格納して、トランザクションテーブル１４２を作成する。
【００５２】
図１５は、図１３のステップ１３０２の「依存関係付加」処理で、同一チャネル間の場合を説明するための図である。
【００５３】
Typeパラメタにsameが設定された場合、Channelパラメタで指定されたチャネル（read又はwrite）内のStartTimeパラメタとEndTimeパラメタで指定された時刻内に存在するトランザクションに対して依存関係を付加する。すなわち、注目するチャネルの始端と終端を除く区間に発生しているリクエストに対し、パラメタファイル８２で指定された時間内にて注目するチャネル内で直前に発行されているトランザクションがあれば、レスポンストランザクションを待ち合わせる依存関係を付加する。
【００５４】
例えば、Type＝Same、Channel＝read、StartTime＝４０[ns]、EndTime＝１６０[ns]の場合、readチャネル内の４０[ns]から１６０[ns]間に存在するトランザクションに動作の依存関係を付加する。また、Type＝Same、Channel＝Write、StartTime＝４０[ns]、EndTime＝１６０[ns]の場合、writeチャネル内の４０[ns]から１６０[ns]間に存在するトランザクションに動作の依存関係を付加する。
【００５５】
図１６は、図１３のステップ１３０２の「依存関係付加」処理で、異なるチャネル間の場合を説明するための図である。
【００５６】
Typeパラメタにdifferentが設定された場合、Channelパラメタで指定されたチャネル（read又はwrite）ともう一方のチャネル（Channelパラメタにreadが指定された場合はwrite、Channelパラメタにwriteが指定された場合はread）間のStartTimeパラメタとEndTimeパラメタで指定された時刻内に存在するトランザクションに対して動作の依存関係を付加する。すなわち、注目するチャネルの始端と終端を除く区間に発生しているリクエストに対し、パラメタファイル８２で指定された時間内にて異なるチャネル内で直前に発行されているトランザクションがあれば、レスポンストランザクションを待ち合わせる動作の依存関係を付加する。
【００５７】
例えば、Type＝different、Channel＝read、StartTime＝４０[ns]、EndTime＝１６０[ns]の場合、readチャネルからwriteチャネルに対して、４０[ns]から１６０[ns]間に存在するトランザクションに動作の依存関係を付加する。また、Type＝different、Channel＝write、StartTime＝４０[ns]、EndTime＝１６０[ns]の場合、Writeチャネルからreadチャネルに対して、４０[ns]から１６０[ns]間に存在するトランザクションに動作の依存関係を付加する。
【００５８】
図１７は、トランザクションシナリオの生成を説明するための図である。
下記（１）乃至（４）の処理によりトランザクションシナリオを生成する。
【００５９】
（１）トランザクションテーブルの「Time」と、依存関係パラメタファイルの「StartTime」及び「EndTime」を比較し、注目トランザクションが動作の依存関係の付加対象かどうかを判断する。図１７中の「トランザクションテーブル」に例示されているように、「Time」が、例えば８０[ns]の場合、図１７中の「依存関係パラメタファイル」に例示されているように、「StartTime」４０[ns]と「EndTime」１６０[ns]の間になる。よって、この場合は依存関係対象であると判断し、下記（２）に移行する。また、「Time」が、例えば２００[ns]のように「startTime」「EndTime」間でない場合は、トランザクションテーブルの次の行に移行して、同様の処理を実行する。
【００６０】
（２）トランザクションテーブルの「Channel」と依存関係パラメタファイルの「Type」を参照し、依存関係付加方法を判定する。例えば、図１７中に例示したように、トランザクションテーブルの「Channel」と同じ、依存関係パラメタファイルの「Channel」（read又はwrite）の「Type」が「same」の場合は、同一チャネル依存関係付加を選択し、下記
（３）へ移行する。また、トランザクションテーブルの「Channel」と同じ、依存関係パラメタファイルの「Channel」（read又はwrite）の「Type」が「different」の場合は、異チャネル依存関係付加を選択してから、下記（３）へ移行する。
【００６１】
（３）１つ前の時刻のトランザクションの「Channel」と注目トランザクションの「Channel」を、選択した依存関係付加方法に基づいて比較し、依存関係を付加するかを判定する。前時刻にトランザクションが無い場合は、注目トランザクションを次時刻に変更して上記（１）へ戻る。例えば、同一チャネル依存関係付加を選択した場合であって、１つ前の時刻のトランザクションの「Channel」と注目トランザクションの「Channel」が同じ場合は、依存関係を付加して下記（４）へ移行する。１つ前の時刻のトランザクションの「Channel」と注目トランザクションの「Channel」が異なる場合は、上記（２）へ移行する。また、異チャネル依存関係付加を選択した場合であって、１つ前の時刻のトランザクションの「Channel」と注目トランザクションの「Channel」が同じ場合は、上記（２）へ移行する。１つ前の時刻のトランザクションの「Channel」と注目トランザクションの「Channel」が異なる場合は、依存関係を付加して下記（４）へ移行する。
【００６２】
（４）依存するトランザクションの“TransNum”の値を、注目トランザクションの“Channel”に該当するトランザクションシナリオの該当行に記載し、注目トランザクションを次時刻に変更して上記（１）へ戻る。
【００６３】
このように、トランザクションの動作の依存関係をトランザクションシナリオに反映することで、従来技術では反映することができなかった動作波形情報を用いた場合のトランザクションの動作の依存関係を含めた、マクロのトランザクションの忠実な再現が可能となる。また、動作波形とパラメタからトランザクションシナリオを自動生成する仕組みとし、トランザクション実行装置８５と合わせて使用することにより、モデル開発コストを削減し、短期間かつ容易なモデル開発が可能になる。
【００６４】
図１８は、トランザクション実行装置８５によるトランザクション実行処理を実行するためのトランザクション実行プログラムの位置付けを説明する図である。
【００６５】
トランザクション実行プログラム１８０１は、トランザクション実行装置８５によってトランザクション実行処理を実行するためのソフトウェアプログラムであり、上述のようにして作成されたトランザクションシナリオを実行する。また、トランザクションシナリオを実行するためのトランザクション実行プログラム１８０１は、プログラミング言語の関数であるリードチャネルトランザクションシナリオ実行関数１８０１Ａ及びライトチャネルトランザクションシナリオ実行関数１８０１Ｂを備える。
【００６６】
リードチャネルトランザクションシナリオ実行関数１８０１Ａ又はライトチャネルトランザクションシナリオ実行関数１８０１Ｂは、テーブル操作ＡＰＩ（アプリケーションプログラミングインタフェース：Application Programming Interface）を介して、トランザクションシナリオ制御ライブラリ１８０２に格納されているトランザクション情報、すなわち上述のトランザクションシナリオを取得する。
【００６７】
また、リードチャネルトランザクションシナリオ実行関数１８０１Ａ及びライトチャネルトランザクションシナリオ実行関数１８０１Ｂは、時間制御ＡＰＩを介し、ＥＳＬシミュレータ等のシミュレータ１８０４に対してリクエストの発行間隔調整（レイテンシ）等を実行する。
【００６８】
また、リードチャネルトランザクションシナリオ実行関数１８０１Ａは、リードチャネル制御ＡＰＩを介し、汎用バスマスタ１８０３のリードチャネルに対してリクエストの発行及びレスポンスの待ち合わせ等を実行する。ライトチャネルトランザクションシナリオ実行関数１８０１Ｂは、ライトチャネル制御ＡＰＩを介し、汎用バスマスタ１８０３のライトチャネルに対してリクエストの発行及びレスポンスの待ち合わせ等を実行する。
【００６９】
図１９は、トランザクション実行装置８５が実行するトランザクション実行処理の流れを示すフローチャートであり、図２０は、トランザクション実行プログラムの例を示す図である。また、図２１は、トランザクション実行処理を実行するトランザクション実行装置８５の動作フロー（リード動作）を示す図であり、図２２は、トランザクション実行処理を実行するトランザクション実行装置８５の動作フロー（ライト動作）を示す図である。
【００７０】
トランザクション実行装置８５が実行するトランザクション実行処理は、トランザクションシナリオに定義された依存関係情報に基づき、リクエストの発行前に、汎用バスマスタ１８０３が公開するリードチャネル制御ＡＰＩ及びライトチャネル制御ＡＰＩを用いて指定トランザクションの完了待ち合わせを行うことで、トランザクション間の動作の依存関係を実現する。
【００７１】
すなわち、トランザクション実行装置８５は、まず、図１９のステップＳ１９０１において、トランザクションシナリオ生成装置８３が生成したトランザクションシナリオをトランザクションシナリオ制御ライブラリ１８０２から順に取得する。
【００７２】
そして、ステップＳ１９０２において、ステップＳ１９０１でトランザクションシナリオを取得できたか否か、すなわちトランザクションシナリオ制御ライブラリ１８０２に格納されているトランザクションシナリオを全て取得したか否かを判断する。
【００７３】
トランザクションシナリオ制御ライブラリ１８０２に格納されているトランザクションシナリオを順に取得した結果、次に取得するべきトランザクションシナリオがない場合（ステップＳ１９０２：ＮＯ）は、本トランザクション実行処理を終了する。他方、トランザクションシナリオを取得した場合（ステップＳ１９０２：ＹＥＳ）は、ステップＳ１９０３において、待ち合わせ（レイテンシ）を実行する。
【００７４】
次に、ステップＳ１９０４において、ステップＳ１９０１で取得したトランザクションシナリオに、リードの依存関係が存在するか否かを判断する。
【００７５】
存在しない場合（ステップＳ１９０４：ＮＯ）は、ステップＳ１９０６へ進み、存在する場合（ステップＳ１９０４：ＹＥＳ）は、ステップＳ１９０５において、リード依存トランザクション完了の待ち合わせを行う。
【００７６】
次に、ステップＳ１９０６において、ステップＳ１９０１で取得したトランザクションシナリオに、ライトの依存関係が存在するか否かを判断する。
【００７７】
存在しない場合（ステップＳ１９０６：ＮＯ）は、ステップＳ１９０８へ進み、存在する場合（ステップＳ１９０６：ＹＥＳ）は、ステップＳ１９０８において、ライト依存トランザクション完了の待ち合わせを行う。
【００７８】
そして、ステップＳ１９０８において、リクエストトランザクションを発行し、ステップＳ１９０１に戻る。
【００７９】
上述の処理をステップＳ１９０１でトランザクション情報を取得できなくなるまで、すなわち、順に取得すべきトランザクションシナリオがトランザクションシナリオ制御ライブラリ１８０２内になくなるまで繰り返す。
【００８０】
上述したトランザクション実行装置８５が実行するトランザクション実行処理を実行することにより、図２１に示すようなリード動作が実行され、また、図２２に示すようなライト動作が実行される。これら図２１及び図２２に示すような動作は、生成されたトランザクションを全て実行するまで繰り返し実行される。
【００８１】
上述のようなトランザクション実行装置８５を用いることにより、モデル開発の作業は、ＲＴＬが無い場合に従来行っていたモデル開発における「モデル仕様設計・コーディング・テスト」工程が不要となり、マクロトランザクション仕様の調査結果に基づきトランザクションシナリオを作成するのみとなるため、短期間で容易に、マクロのトランザクションを忠実に再現することが可能となる。
【００８２】
以上、本発明の実施の形態を説明してきたが、上述の性能評価用トランザクション生成装置７７は、トランザクションをリクエストトランザクションとレスポンストランザクションに分けて制御可能とし、指定トランザクションのレスポンストランザクションを待ち合せる機能を使用することにより、リクエストトランザクションとレスポンストランザクション間に動作の依存関係が付与できる。そして、依存関係が表現可能となることで、従来技術では行えなかった動作条件変化時のリクエストトランザクション発行タイミングが変化するという「マクロのトランザクションの忠実な再現」が可能となる。
【００８３】
また、トランザクションシナリオを作成するだけでマクロのトランザクションを忠実に再現可能となることから、モデル開発コストを削減し、短期間かつ容易なモデル開発が可能になる。
【００８４】
上述の性能評価用トランザクション生成装置７７は、通常の情報処理装置（コンピュータ）を使用して実現することができる。すなわち、性能評価用トランザクション生成装置７７は、ＣＰＵ、ＲＡＭやＲＯＭ等のメモリ、入力装置、出力装置、外部記録装置、媒体駆動装置、及びネットワーク接続装置を備える。また、これらはバスにより互いに接続されている。
【００８５】
メモリは、性能評価用トランザクション生成装置７７に用いられるプログラム及びデータを格納する。ＣＰＵは、メモリを利用してプログラムを実行することにより、上述のトランザクションシナリオ生成処理及びトランザクション実行処理を実行する。
【００８６】
入力装置は、例えば、キーボード、ポインティングデバイス等であり、ユーザからの指示や情報の入力に用いられる。出力装置は、例えば、表示装置、プリンタ、スピーカ等であり、ユーザへの問い合わせや処理結果の出力に用いられる。
【００８７】
外部記録装置は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。この外部記録装置には、ハードディスクドライブも含まれる。性能評価用トランザクション生成装置７７は、この外部記録装置にプログラム及びデータを格納しておき、それらをメモリにロードして使用することができる。
【００８８】
媒体駆動装置は、可搬型記録媒体を駆動し、その記録内容にアクセスする。可搬型記録媒体は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。この可搬型記録媒体には、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory）、ＤＶＤ（Digital Versatile Disk）、ＵＳＢ（Universal Serial Bus）メモリ等も含まれる。ユーザは、この可搬型記録媒体にプログラム及びデータを格納しておき、それらをメモリにロードして使用することができる。
【００８９】
このように、トランザクションシナリオ生成処理及びトランザクション実行処理に用いられるプログラム及びデータを格納するコンピュータ読み取り可能な記録媒体には、メモリ、外部記録装置、及び可搬型記録媒体のような、物理的な（非一時的な）記録媒体が含まれる。
【００９０】
ネットワーク接続装置は、ＬＡＮ（Local Area Network）等の有線または無線の通信ネットワークに接続され、通信に伴うデータ変換を行う通信インタフェースである。性能評価用トランザクション生成装置７７は、プログラム及びデータを外部の装置からネットワーク接続装置を介して受け取り、それらをメモリにロードして使用することができる。
【００９１】
例えば、外部記録装置に格納したプログラムやデータは、性能評価用トランザクション生成装置７７のメモリにロードされる。また、ネットワーク接続装置を介して接続可能な外部装置は、プログラムやデータを搬送する搬送信号を生成し、通信ネットワーク上の任意の伝送媒体を介して性能評価用トランザクション生成装置７７に送信する。
【００９２】
開示した実施の形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができる。
【符号の説明】
【００９３】
４１        マクロ仕様書
４２        モデリング
４３        ＥＳＬモデル
６１Ａ      第１の要求（リクエストトランザクション）
６２Ａ      第１の応答（レスポンストランザクション）
６３Ａ      第２の要求（リクエストトランザクション）
６４Ａ      第１の応答（レスポンストランザクション）
６５Ａ      第２の要求（リクエストトランザクション）
６１Ｂ      第１の要求（リクエストトランザクション）
６２Ｂ      第１の応答（レスポンストランザクション）
６３Ｂ      第２の要求（リクエストトランザクション）
６４Ｂ      第１の応答（レスポンストランザクション）
７０        ハードウェアシステム（パソコン）
７１        ＣＰＵ（中央処理装置：Central Processing Unit）
７２        メモリ（主記憶装置）
７３        ハードディスク（補助記憶装置）
７４        ディスプレイ（出力装置）
７５        キーボード／マウス（入力装置）
７６        入出力制御装置
７７        性能評価用トランザクション生成装置
８１        動作波形（ＶＣＤ）ファイル
８２        パラメタファイル
８３        トランザクションシナリオ生成装置
８４        トランザクションシナリオファイル
８５        トランザクション実行装置
１２１      トランザクションシナリオ生成部
１４１      再現波
１４２      トランザクションテーブル
１８０１    トランザクション実行プログラム
１８０１Ａ  リードチャネルトランザクションシナリオ実行関数
１８０１Ｂ  ライトチャネルトランザクションシナリオ実行関数
１８０２    トランザクションシナリオ制御ライブラリ
１８０３    汎用バスマスタ
１８０４    シミュレータ
【図１】
2014215768.tif 000003
【図２】
2014215768.tif 000004
【図３】
2014215768.tif 000005
【図４】
2014215768.tif 000006
【図５】
2014215768.tif 000007
【図６】
2014215768.tif 000008
【図７】
2014215768.tif 000009
【図８】
2014215768.tif 000010
【図９】
2014215768.tif 000011
【図１０】
2014215768.tif 000012
【図１１】
2014215768.tif 000013
【図１２】
2014215768.tif 000014
【図１３】
2014215768.tif 000015
【図１４】
2014215768.tif 000016
【図１５】
2014215768.tif 000017
【図１６】
2014215768.tif 000018
【図１７】
2014215768.tif 000019
【図１８】
2014215768.tif 000020
【図１９】
2014215768.tif 000021
【図２０】
2014215768.tif 000022
【図２１】
2014215768.tif 000023
【図２２】
2014215768.tif 000024
【手続補正書】
【提出日】平成26年4月15日(2014.4.15)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】図１４
【補正方法】変更
【補正の内容】
【図１４】
2014215768.tif 000025