(57)【要約】【課題】データ処理システムの設計のための検証試験を実施するための装置及び方法が提供される。【解決手段】該装置は、該データ処理システムの設計の少なくとも一部を表す検証対象システムと、該検証対象システムのインタフェースに接続するため、かつ該検証試験の実施中に該インタフェースを介して該検証対象システムに入力するための信号を生成するためのトランザクタと、を備える。プロファイルストレージは、該インタフェースでの所望のトラフィックフローの統計的表示を提供するプロファイルを保管し、該統計的表示は複数のトラフィック属性に対する統計情報を提供し、また当該トラフィック属性間の少なくとも１つの依存性を特定する。次に、該トランザクタは、生成される該信号が該プロファイルで特定された依存性を考慮するように、生成される該信号を決定するために該プロファイルを参照する。このような機構によって、該トランザクタは、現実のシステムで観察されるであろうトラフィックフローを一層現実に近く再現することが可能になる。【選択図】図１
2010140487.tif 000002
【特許請求の範囲】
【請求項１】
データ処理システムの設計のために検証試験を実施するための装置であって、
前記データ処理システムの前記設計の少なくとも一部を表す検証対象システムと、
前記検証対象システムのインタフェースに接続するため、かつ前記検証試験の実施中に前記インタフェースを介して前記検証対象システムへの入力のための信号を生成するためのトランザクタと、
前記インタフェースで所望のトラフィックフローの統計的表示を提供するプロファイルを保管するためのプロファイルストレージであって、前記統計的表示は複数のトラフィック属性に対する統計情報を提供し、前記複数のトラフィック属性間の少なくとも１つの依存性を特定する、プロファイルストレージと、を備え、
前記トランザクタは、生成される前記信号が前記プロファイルで特定された前記少なくとも１つの依存性が考慮されるように、生成される前記信号を決定するために前記プロファイルを参照する、
装置。
【請求項２】
前記プロファイルは、所望のトラフィックフローの前記統計的表示内の前記少なくとも１つの依存性を特定するように、階層構造を採用する、請求項１に記載の装置。
【請求項３】
前記階層構造は、ヒストグラムの階層構造であり、各ヒストグラムは前記トラフィック属性のうちの１つに対する統計情報を提供する、請求項２に記載の装置。
【請求項４】
前記所望のトラフィックフローは、前記トランザクタが前記データ処理システムの機能モデルまたは実際のコンポーネントと置換された場合、前記インタフェースで観察されることが予測されるであろうトラフィックフローを表す、請求項１に記載の装置。
【請求項５】
所望のトラフィックフローの前記統計的表示は、前記機能モデルまたは前記実際のコンポーネントが使用される際に発生するトラフィックフローを監視することにより取得される、請求項４に記載の装置。
【請求項６】
前記トラフィックフローは、トランザクションプロトコルに従い生成され、前記複数のトラフィック属性は、少なくとも１つのトランザクションプロトコル属性を含む、請求項１に記載の装置。
【請求項７】
前記トラフィックフローは、前記トランザクションプロトコルに従い生成され、前記複数のトラフィック属性は、前記トランザクションプロトコルに従い生成された特定のトラフィック間のタイミングを特定する少なくとも１つのタイミング属性を含む、請求項１に記載の装置。
【請求項８】
データ処理システム内のトラフィックフローの統計的表示を提供するプロファイルを生成するための装置であって、
前記データ処理システムの前記設計の少なくとも一部を表す検証対象システムと、
前記検証対象システムのインタフェースに接続するため、かつそのインタフェースで前記トラフィックフローを観察するためのモニタと、を備え、
前記モニタは、複数のトラフィック属性と前記複数のトラフィック属性間の少なくとも１つの依存性を特定する制御入力に反応して、前記観察されたトラフィックフローに基づいて前記プロファイルを生成し、前記プロファイルの統計的表示は、前記複数のトラフィック属性に対して統計情報を提供し、かつ前記複数のトラフィック属性間の前記少なくとも１つの依存性を特定する、
装置。
【請求項９】
前記制御入力は、前記複数のトラフィック属性と前記少なくとも１つの依存性とを設定するプロファイルテンプレートの形態を採り、前記モニタは、前記観察されたトラフィックフローに基づいて前記プロファイルテンプレートを投入することにより前記プロファイルを作成する、請求項８に記載の装置。
【請求項１０】
前記制御入力は、前記複数のトラフィック属性と前記少なくとも１つの依存性とを設定する初期のプロファイルの形態を採り、かつ、少なくとも部分的に統計情報が投入され、前記モニタは、前記観察されたトラフィックフローに基づいて前記初期のプロファイルの統計情報を補完することにより前記プロファイルを作成する、請求項８に記載の装置。
【請求項１１】
前記モニタにより作成された前記プロファイルを、前記データ処理システムの代替表示に対して生成された追加のプロファイルと比較するための比較ロジックをさらに含み、前記追加のプロファイルは、前記複数のトラフィック属性に対する統計情報を提供し、かつ、前記複数のトラフィック属性間の少なくとも１つの依存性を特定する、請求項８に記載の装置。
【請求項１２】
前記データ処理システムの前記設計の少なくとも一部を表す代替の検証対象システムであって、前記検証対象システムとは前記データ処理システムの実装が異なる、代替の検証対象システムと、
前記代替の検証対象システム内の同等のインタフェースに接続し、追加のプロファイルを作成するためにその同等のインタフェースでトラフィックフローを観察する前記モニタと、
前記検証対象システムと前記代替の検証対象システムの動作の違いを決定するために、前記プロファイルと前記追加のプロファイルを比較するための比較ロジックと、をさらに含む、請求項８に記載の装置。
【請求項１３】
インタフェースで前記トラフィックフローを観察するために、前記データ処理システムの前記設計の少なくとも一部を表す追加の検証対象システムのインタフェースに結合するためのエラー検出回路をさらに備え、
前記エラー検出回路は、前記モニタにより生成されたプロファイルへのアクセスを有し、かつ、前記プロファイルを考慮して、観察される前記トラフィックフローが予期されないものである際にエラー信号を生成する、請求項８に記載の装置。
【請求項１４】
前記プロファイルは、トラフィックフローの前記統計的表示内に少なくとも１つの依存性を特定するように、階層構造を採用する、請求項８に記載の装置。
【請求項１５】
前記階層構造は、ヒストグラムの階層構造で、各ヒストグラムは前記トラフィック属性のうちの１つに統計情報を提供する、請求項１４に記載の装置。
【請求項１６】
前記トラフィックフローは、トランザクションプロトコルに従い生成され、前記複数のトラフィック属性は、少なくとも１つのトランザクションプロトコル属性を含む、請求項８に記載の装置。
【請求項１７】
前記トラフィックフローは、前記トランザクションプロトコルに従い生成され、前記複数のトラフィック属性は、前記トランザクションプロトコルに従い生成された特定のトラフィック間のタイミングを特定する少なくとも１つのタイミング属性を含む、請求項８に記載の装置。
【請求項１８】
データ処理システムの設計のために検証試験を実施する方法であって、
前記データ処理システムの前記設計の少なくとも一部を表す検証対象システムを提供するステップと、
前記検証対象システムのインタフェースにトランザクタを接続するステップと、
前記検証試験の実施中、前記インタフェースを介して、前記トランザクタにより生成された信号を前記検証対象システムに入力するステップと、
前記インタフェースで所望のトラフィックフローの統計的表示を提供するプロファイルをプロファイルストレージ内に保管するステップであって、前記統計的表示は複数のトラフィック属性に対する統計情報を提供し、前記複数のトラフィック属性間の少なくとも１つの依存性を特定する、ステップと、
生成される前記信号が前記プロファイルで特定された前記少なくとも１つの依存性を考慮するように、前記検証対象システムに入力するために生成される前記信号を決定するために、前記トランザクタに前記プロファイルを参照させるステップと、
を含む方法。
【請求項１９】
コンピュータ上で実行されると、前記コンピュータに請求項１８に記載の前記方法を実行させる、コンピュータプログラムを含む、コンピュータプログラム製品。
【請求項２０】
データ処理システム内のトラフィックフローの統計的表示を提供するプロファイルを生成する方法であって、
前記データ処理システムの前記設計の少なくとも一部を表す検証対象システムを提供するステップと、
前記検証対象システムのインタフェースにモニタを接続するステップと、
前記モニタを介して、そのインタフェースで前記トラフィックフローを観察するステップと、
複数のトラフィック属性と前記複数のトラフィック属性間の少なくとも１つの依存性を特定する制御入力に応答して、前記モニタに、前記観察されたトラフィックフローに基づいて前記プロファイルを作成させるステップであって、前記プロファイルの統計的表示は、前記複数のトラフィック属性に対する統計情報を提供し、かつ前記複数のトラフィック属性間の前記少なくとも１つの依存性を特定する、ステップと、
を含む方法。
【請求項２１】
コンピュータ上で実行されると、前記コンピュータに請求項２０に記載の方法を実行させる、コンピュータプログラムを含む、コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システムを設計するための検証試験の実行中等、データ処理システムにおけるトラフィックフローの統計的表示の使用に関する。
【背景技術】
【０００２】
設計を効果的かつ効率的に試験および／または検証できることは、ますます重要になっている。典型的なデータ処理システムの設計は、複雑性が急速に高まっており、その上、多様な異なる製造元または企業により設計される回路ブロックを含んでいる。いわゆるシステムオンチップ（ＳｏＣ）設計は、単独の集積回路上に多数のコンポーネントを集積し、コストと性能の面では強力な利点を有するが、設計が確実に製造過程に移され得る前には大量の検証および試験を必要とする。このような検証および試験の実施は、データ処理システムの設計全体に関して、または、例えば、特定のマスタデバイス、特定のスレーブデバイス、相互接続コンポーネント等、データ処理システム内での使用を目的とする１つ以上の特定のコンポーネントに関して、実施され得る。
【０００３】
この検証および試験実施要件は、新しいシステムを市場に投入する際のボトルネックとなっている。したがって、このような設計の検証および試験実施の効率性および有効性を改善できる方策は非常な利点となる。
【０００４】
データ処理システムの設計の検証を模索するために使用され得る１つの公知の手法は、試験が予定されるデータ処理システムの設計の少なくとも一部を表す検証対象システム（ＳＵＶ）を構成することである。ＳＵＶは、ＳＵＶが形成される検証実行環境に応じて、多様な形態を採ることが可能である。例えば、検証実行環境は、シミュレータツールを使用して実装され得、この場合、ＳＵＶ内に含まれる１つ以上のコンポーネントは典型的にソフトウェアモデルの形態を採ることになる。代替として、検証実行環境は、エミュレータにより提供され得、例えば、ＦＰＧＡ（フィールド・プログラマブル・ゲート・アレイ）プラットフォーム上に合成可能なハードウェアを提供し得る。この実施形態においては、多様なコンポーネントは、最終目的コンポーネントのハードウェアモデルと見なすことができるが、最終のハードウェア実装形態ではない。また別の代替実施形態においては、検証実行環境は、ＡＳＩＣ実装として提供され得、実質的に、完全なシリコン実装として検証対象システムを提供する（後者の手法は、例えば、ハードウェアプラットフォーム上で稼動中のソフトウェアで検証試験の実施を模索する場合に有用であり得る）。
【０００５】
いかなる様式でＳＵＶが形成される場合でも、（ハードウェアまたはソフトウェアのいずれかのレベルで）正常な操作を試験するために、一連の検証テストが次に、ＳＵＶ上で実施され、システムの異なる部分間で多様なトランザクションを実行させ、各トランザクションはシステムの特定の部分間の１つ以上の転送を定義する。理想的には、ＳＵＶの動作は、そのＳＵＶにより表されるデータ処理システムの部分の動作をできるだけ厳密に追跡することが望ましい。しかしながら、これは、ＳＵＶに含まれる多様なコンポーネントの開発と実施される検証試験の開発両方に時間がかかる点で、コストがかかるということがわかる。例えば、詳細な機能モデルは、実在のコンポーネントが実在のシステムで実行するであろう内容を再現することを模索するＳＵＶの多様なコンポーネントのために開発され得、事実、一部のＳＵＶにおいては実在のコンポーネント自体が使用され得る。しかしながら、このような機能モデルを作成するには多大な開発努力を要し、さらに、検証試験が実施される間の開発段階によるが、実際に実在するコンポーネントは使用可能でない可能性がある。
【０００６】
検証試験自体を考慮すると、検証試験の実施に関わる複雑性およびコストに顕著に寄与する別の要素は、検証試験中に実行される適切なトランザクションシーケンスの開発である。実在のシステムで観察されるであろうアクティビティを再現することを模索する特定のトランザクションのリストを定義することを模索する、詳細な試験ベクトルが作成され得るが、このような詳細なベクトルのリストは、作成に長い時間がかかり、事実、ＳＵＶ内での実行に長い時間がかかる。さらに、このような試験ベクトルは、大きなストレージ要件があるために、エミュレーションまたはＡＳＩＣ環境において配備することが困難であり得る。
【０００７】
したがって、このような複雑性を削減することを目的として、開発された別の試験手法は、ＳＵＶの１つ以上のコンポーネントを表すように、トランザクションの使用が関与し、トランザクションは、簡素化されたモデルで、外部的には、代用されるコンポーネントと同一のハードウェア要素をモデル化すると見なされ得るが、内部的には顕著に簡素化される。実施例として、機能モデルが特定のタイプのＣＰＵを表すように開発され得るが、これは、汎用マスタデバイスを表すトランザクタにより置換され得る。このようなトランザクタは、次に、ユーザ設定ファイルにより制約される転送のランダムパターンを生成するように構成され得、このような手法は、しばしば制約付きランダム試験と称される。トランザクションの１つの実施例は、ＸＶＣ（ｅＸｔｅｎｓｉｂｌｅ  Ｖｅｒｉｆｉｃａｔｉｏｎ  Ｃｏｍｐｏｎｅｎｔ）で、しばしば、いくつかのＸＶＣが設計に代用され得、個別のＸＶＣに対する試験が試験マネージャによって調整される。
【０００８】
典型的に、異なるトランザクションを構成する転送がシステム内で作成および処理される方式は、トランザクションプロトコルにより制御される。ユーザ設定ファイルが、トランザクタにより生成されるいかなる転送もトランザクションプロトコルに準拠するように、ランダム試験を制約するために使用され得る。したがって、制約付きランダム試験の手法は、トランザクションプロトコルに準拠する多数のランダム転送を生成するために使用され得る。さらに、トランザクタは、システム設計においてコーナーケース（つまり、正常な動作パラメータ以外で発生する問題または状況）を効率的に検証するために、１つ以上の方向形式のベクトルを実行するように構成され得る。
【０００９】
上記の様式でトランザクタを使用することによって、機能モデルまたは詳細な試験ベクトルを採用する前述の技法に比べると、複雑性とコストが顕著に低下した、ＳＵＶ内のインタフェースの徹底した試験が可能になり得る。しかしながら、このようなトランザクタは、設計内の置換したコンポーネントと同等な方式で動作することを模索しないので、したがって、このようなトランザクタを使用するといくつかの欠点に悩まされる。
【００１０】
トランザクタを使用する制約付きランダム試験の結果として発生するトラフィックフローは、実際のシステムにおいてトランザクタおよびＳＵＶにより表されるコンポーネント間で発生する内容を表すものではないので、したがって、最適化または性能の測定が不可能である。さらに、ＡＸＩ等の最新トランザクションプロトコルに伴なう大量のプロトコル容量も手伝って、制約付きランダム試験の実施だけに基づいて、特に所望のカバレッジポイントに達することは困難であり得る。その上に、ある意味を持った方式でランダム試験実施を制約することを、容易に明白な様式で達成することは困難であり、制約は通常トランザクタにハードコードされ、したがって、試験実施手順の複雑性とコストが増すことになる。
【００１１】
確率論的モデル（つまり、ランダムパラメータを使用して実在のコンポーネントの動作を推定するモデル）により決定されるトラフィック生成を説明する論文がいくつか発表されている。例えば、Ｆｉｆｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｗｏｒｋｓｈｏｐ  ｏｎ  Ｓｙｓｔｅｍ−ｏｎ−Ｃｈｉｐ  ｆｏｒ  Ｒｅａｌ−Ｔｉｍｅ  Ａｐｐｌｉｃａｔｉｏｎｓ（ＩＷＳＯＣ’０５、２００５）ｉｗｓｏｃの５３５ページから５４０ページに掲載されている、Ｚ  Ｌｕ  ｅｔ  ａｌによる「Ｔｒａｆｆｉｃ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ｆｏｒ  Ｅｖａｌｕａｔｉｎｇ  Ｎｅｔｗｏｒｋｓ  ｏｎ  Ｃｈｉｐｓ」は、チャネルがソースノードから送信先ノードへの論理的パスであるような、単独の通信チャネルの空間配置、時間的特徴およびメッセージサイズの仕様を捕捉するために使用されるトラフィック構成ツリーを説明する。これらの特性は、統計的集計として捉えられる。この表示は、次に、処理要素がどのように動作し得るかの推定に基づいて合成ネットワークトラフィックを生成するために使用される。
【００１２】
Ａ．  Ｓｃｈｅｒｒｅｒ  ｅｔ  ａｌ  によるＴｅｃｈｎｉｃａｌ  Ｒｅｐｏｒｔ  ２００５−５３、ＬＩＰ、ＥＮＳ−Ｌｙｏｎ、Ｄｅｃｅｍｂｅｒ  ２００５の「Ａｎａｌｙｓｉｓ  ａｎｄ  Ｓｙｎｔｈｅｓｉｓ  ｏｆ  Ｃｙｃｌｅ−Ａｃｃｕｒａｔｅ  Ｏｎ−Ｃｈｉｐ  Ｔｒａｆｆｉｃ  ｗｉｔｈ  Ｌｏｎｇ−Ｒａｎｇｅ  Ｄｅｐｅｎｄｅｎｃｅ」は、合成トレースジェネレータを駆動するために、ＶＣＤ（値変更ダンプ）波形（ＶＣＤはアクティビティ参照リストの形態である）からオンチップトラフィックの統計的属性を抽出するための方法論を説明する。
【００１３】
「Ｖｅｒｉｆｉｃａｔｉｏｎ  Ｍｅｔｈｏｄｏｌｏｇｙ  Ｍａｎｕａｌ  ｆｏｒ  Ｓｙｓｔｅｍ  Ｖｅｒｉｌｏｇ（ＶＭＭ）」は、ランダムシナリオ生成を説明し、各シナリオは、生成のために使用するハードコードされた１組の重みを有する。各属性で異なる配分が維持され得る。
【００１４】
上記の多様な技法は合成トラフィック生成のための多様な手法を提供するが、このような合成トラフィックを生成させるために、検証対象システムとのインタフェースにトランザクタが使用される場合、そのトラフィックは実在のシステムで実際に発生するであろうトラフィックを依然として厳密に表していないので、性能の評価や最適化には有用ではないという問題が依然として存在する。
【発明の概要】
【課題を解決するための手段】
【００１５】
第１の態様の観点からは、本発明は、データ処理システムの設計のために検証試験を実施するための装置を提供し、該装置は、データ処理システムの設計の少なくとも一部を表す検証対象システムと、検証対象システムのインタフェースに接続するため、かつ検証試験実施中に前記インタフェースを介して検証対象システムに入力するための信号を生成するためのトランザクタと、前記インタフェースで所望のトラフィックフローの統計的表示を提供するプロファイルを保管するためのプロファイルストレージと、を備え、統計的表示は複数のトラフィック属性の統計的情報を提供し、その複数のトラフィック属性の間の少なくとも１つの依存性を特定し、トランザクタは、生成される信号がプロファイルで特定される少なくとも１つの依存性を考慮するように、生成される信号を決定するためにプロファイルを参照する。
【００１６】
本発明の発明者は、実際に、可能なトランザクションを定義するために使用されるトランザクションプロトコルから発生する多様なトラフィック属性の間に依存性が存在することを観察した。例えば、トランザクションプロトコルにより定義される多様なトランザクションプロトコルの属性が存在することはしばしばあり、これらのトランザクションプロトコルの属性は、トラフィック属性の例として考えられ得る。これらのトランザクションプロトコル属性の間には、使用されるトランザクションプロトコルに応じて、依存性が定義され得る。例えば、ＡＸＩを考えると、存在し得る依存性の１つの具体的な実施例では、キャッシュラインフィル（ｃａｃｈｅ  ｌｉｎｅ  ｆｉｌｌ）リクエストから発生する「ＷＲＡＰ４」のバーストタイプの属性を備える読取トランザクションは、「ｃａｓｈｅａｂｌｅ」のキャッシュ可能／バッファ可能属性も有することである。依存性が発生し得るトラフィック属性の別の実施例は、トランザクションプロトコルに従って生成される特定のトラフィック信号間のタイミングを特定するタイミング属性である。
【００１７】
さらに、本発明の発明者は、トラフィックフローの統計的表示を提供するための公知の技法は全て、これらの統計的表示のトラフィック属性間の依存性を捕捉しないことに気づいた。この結果、このような公知の統計的表示が、検証対象システムに結び付けられてトランザクタにより生成される信号を制御するために使用される場合、これは、実在のシステムで実際に生成される信号と比較すると、生成された信号において多大な誤りを引き起こす可能性がある。さらに、提供される統計的表示だけに基づくと、トランザクタは、トランザクションプロトコルを考慮すると実際には不正な信号を生成する可能性があり、したがって、このような不正なトランスファが生成されることを避けるために、不正なプロトコルの組み合わせ（典型的には、トランザクタにハードコードされる制約による）を明示的に定義する必要がある。さらに、大きなプロトコルスペースにおいてトラフィックフローのこのような平坦な統計的表示を使用する場合、試験実施を対象のカバレッジポイントに向かわせるに十分なようにトランザクタの動作を制約することは困難である。
【００１８】
これらの観察に基づいて、本発明の発明者は、生成される信号を決定する際にトランザクタによって参照され得るプロファイルを開発することを決定した。そのプロファイルはトランザクタとＳＵＶの間のインタフェースで所望のトラフィックフローの統計的表示を提供し、プロファイルの統計的表示は複数のトラフィック属性の統計情報を提供するだけでなく、トラフィック属性間の少なくとも１つの依存性を特定する。この結果、トランザクタがプロファイルを参照すると、生成される信号はプロファイルで特定された指定の少なくとも１つの依存性を考慮したものとなる。このように、トランザクタは、実在のシステムで観察されるであろうトラフィックの性質にもっと近い制約付きのランダムトラフィックを生成するために使用され得る。
【００１９】
さらに、トラフィック属性間の少なくとも１つの依存性はプロファイルで捕捉されるので、トランザクタが不正なトランザクションを生成する可能性が少なくなり、したがって、トランザクタが避けることが必要な不正なプロトコルの組み合わせを明示的に定義するために必要な作業が少なくなる。さらに、プロトコル状態の空間全体に及ぶことを模索する検証試験を作成するのではなく、プロファイルで特定された少なくとも１つの依存性を考慮することによって、トランザクタのアクティビティは、実在のシステムにより実行される可能性が実際に高いプロトコルの状態空間の部分に焦点をおくことができる。
【００２０】
この発明の使用を通して、試験手順におけるトランザクタの適用性が拡大され得る。これまで、特定の検証試験を実施するためのトランザクタは比較的安価な機構を提供したにもかかわらず、実在のコンポーネントの機能を模倣することを目的としたことはまったくなく、代わりに、このような機能性が必要であるいずれの試験においても機能モデルが使用されていたが、トランザクタは、今や、実在のシステムの特定の機能が再現される必要がある場合でも、特定の状況において機能モデルに代わるはるかに安価な代替として使用され得る。特に、プロファイルは複数のトラフィック属性の統計情報だけでなく、トラフィック属性間の少なくとも１つの依存性も捕捉するので、トランザクタは、実在のシステムで発生するであろうトラフィックフローをもっと厳密に再現する信号のはるかにもっと現実的なシーケンスを作成することができる。
【００２１】
また、このようなアプローチは、第三者にコンポーネントの機能モデルを出荷して、これらの第三者に試験の実施を可能にすることに関わる当事者に、はるかに改善されたセキュリティレベルを提供することにも留意されたい。特に、機能モデルを出荷する代わりに、トランザクタを、任意選択でそのトランザクタにより実行される１つ以上のプロファイルとともに出荷することが可能になり、その第三者が同様な試験を実施することを可能にするが、さもなければ機能モデルの出荷により公開されるかもしれないコンポーネントの内部機能を全く公開することがない。特に、トランザクタと、トラフィック属性間の依存性を考慮するプロファイルとの使用を通して、インタフェースでのコンポーネントの動作だけが第三者に公開され、コンポーネントの内部構造および動作に関しては何も推論され得ない。
【００２２】
プロファイルは、多様な方式に構成され得る。しかしながら、一実施形態においては、プロファイルは階層構造を採用して、所望のトラフィックフローの該統計的表示内の該少なくとも１つの依存性を特定する。階層構造は多様な形態を採ることができるが、一実施形態においては、階層構造は、ヒストグラムの階層構造で、各ヒストグラムが該トラフィック属性のうちの１つの統計情報を提供する。したがって、純粋に例示を目的として、プロファイルで特定されたトラフィック属性が、各アクセスリクエストのバースト長、バーストタイプおよびキャッシュ可能／バッファ可能の属性を含む場合、バーストタイプがバースト長に依存していると定義され、かつキャッシュ可能／バッファ可能がバーストタイプに依存していると定義される場合、ヒストグラムは、定義された依存性を考慮しながら、これらのトラフィック属性の各々に対して開発され得ると考えることができる。したがって、可能なバースト長各々に対して異なるバーストタイプのヒストグラムが作成され得、同様にバーストタイプのヒストグラム各々に対して、そのヒストグラムで捕捉されるバースとタイプ各々対して異なるキャッシュ可能／バッファ可能のヒストグラムが生成され得る。このようなアプローチにより、アクセスリクエストが、該プロファイルを考慮してトランザクタにより生成されると、このようなアクセスリクエスト各々のバースト長、バーストタイプおよびキャッシュ可能／バッファ可能の属性は、これらのトラフィック属性間の依存性が必ず考慮されるように、階層構造を考慮しながら生成され、それによって、階層構造により定められるようにこれらの属性の選択を制約する。
【００２３】
プロファイルの統計的表示により表される、インタフェースでの所望のトラフィックフローは、多様な形態を採ることができる。しかしながら、一実施形態においては、所望のトラフィックフローは、トランザクタがデータ処理システムの機能モデルまたは実際のコンポーネントと置換された場合、該インタフェースで観察されることが予測されるトラフィックフローを表す。機能モデルは、例えば、レジスタ転送レベル（ＲＴＬ）モデル、サイクル近似（ＣＸ）モデル等、多様な形態を採り得る。このような機能モデルまたは実際のコンポーネントの代わりにトランザクタを使用できることによって、依然としてこのような所望のトラフィックをシミュレートできる一方で、検証試験の実施に関わる複雑性とコストを大幅に削減する。
【００２４】
所望のトラフィックフローの統計的表示が取得され得る様式はいくつか存在する。例えば、プロファイルは、所望のトラフィックフローの知識に基づいてユーザにより手作業で定義される可能性がある。しかしながら、代替の実施形態においては、所望のトラフィックフローの統計的表示は、該機能モデルまたは該実際のコンポーネントが使用される際に発生するトラフィックフローを監視することにより取得される。上記のように、機能モデルは多様な形態を採ることができるが、モデル化されている実際のコンポーネントの完全な転送機能を再現するモデルであることが目的とされる。ＲＴＬモデルまたはＣＸモデルは、所望のトラフィックフローの統計的表示を作成するために、トラフィックフローが監視される可能性がある機能モデルの適切な実施例となる。
【００２５】
プロファイルが統計情報を提供するトラフィック属性は、多様な形態を採ることができる。一実施形態においては、トラフィックフローは、トランザクションプロトコルに従い作成され、該複数のトラフィック属性は少なくとも１つのトランザクションプロトコル属性を含む。このようなトランザクションプロトコル属性の特定例は、前述のように、バースト長、バーストタイプ、キャッシュ可能／バッファ可能の属性等である。
【００２６】
しかしながら、プロファイルが統計情報を提供できるトラフィック属性は、トランザクションプロトコルの属性に限定されない。代わりに、一実施形態においては、複数のトラフィック属性は、代わりに、またはこれに加えて、トランザクションプロトコルに従い作成される特定のトラフフィック信号間のタイミングを特定する少なくとも１つのタイミング属性を含むことができる。このようなタイミング属性の例は、データのビートの間のサイクル数を特定する待機状態カウントである。プロファイル内のトランザクションプロトコル属性とタイミング属性の両方、さらにこれらの属性間の１つ以上の依存性を捕捉することによって、トランザクタは、実在のシステムにおいて、またはシステムの関連コンポーネントをモデルする詳細機能モデルを使用して観察され得るトラフィックの非常に現実的な推定を提供するトラフィックを生成できる。さらに、トランザクション間のタイミングを捕捉することは、プロファイル内の複数のフローの関連帯域幅の指標を与えることになる。
【００２７】
本発明の上記の第１の態様によると、本発明は、トランザクタを駆動するために、複数のトラフィック属性に対する統計情報を提供し、かつこれらのトラフィック属性間の少なくとも１つの依存性を特定するプロファイルの使用に関するが、本発明の第２の態様によると、このようなプロファイルを生成するための技法が提供される。特に、本発明の第２の態様によると、データ処理システム内のトラフィックフローの統計的表示を提供するプロファイルを生成するための装置が提供され、該装置は、データ処理システムの設計の少なくとも一部を表す検証対象システムと、検証対象システムのインタフェースに接続するため、かつそのインタフェースでトラフィックフローを観察するためのモニタと、を備え、モニタは複数のトラフィック属性とその複数のトラフィック属性間の少なくとも１つの依存性を特定する制御入力に応答して、観察されたトラフィックフローに基づいて該プロファイルを作成し、該プロファイルの統計的表示は、該複数のトラフィック属性の統計情報を提供し、かつ該複数のトラフィック属性間の該少なくとも１つの依存性を特定する。
【００２８】
したがって、本発明の第２の態様においては、モニタは、複数のトラフィック属性およびそれらのトラフィック属性間の少なくとも１つの依存性を特定する制御入力を受信し、次に、その観察されたトラフィックフローのプロファイルを作成するために、検証対象システム内のインタフェースでトラフィックフローを監視するように構成される。モニタに入力される制御入力に起因して、そのプロファイルは特定された属性に対する統計情報を提供し、また、トラフィック属性間で特定された依存性を捕捉する。
【００２９】
このようなアプローチは、本発明に従いプロファイルを作成するために特に効率的な機構を提供する。モニタに入力される制御入力は多様な形態を採ることができる。一実施形態においては、制御入力は、複数のトラフィック属性と該少なくとも１つの依存性とを設定するプロファイルテンプレートの形態を採り、モニタは観察されたトラフィックフローに基づいてプロファイルテンプレートを生成することにより該プロファイルを生成する。
【００３０】
したがって、このようなテンプレートは、例えば、ヒストグラムの階層構造を特定することができ、これらのヒストグラムは最初は空で、その後、観察されたトラフィックフローに基づいて、モニタがこれらのヒストグラムを生成する。
【００３１】
代替の実施形態において、制御入力は、複数のトラフィック属性と該少なくとも１つの依存性とを設定する初期のプロファイルの形態を採り、さらに少なくとも部分的に統計情報が投入され、モニタは、観察されたトラフィックフローに基づいて初期のプロファイルの統計情報を補完することにより該プロファイルを生成する。
【００３２】
したがって、この実施形態においては、部分的に投入されたプロファイルテンプレートが開始点として使用され、次に、モニタが、観察されたトラフィックフローに基づいて統計情報を補完する。空のプロファイルテンプレートまたは部分的に投入された初期のプロファイルを使用することによって、ＩＤまたはアドレス主導の依存性等、多様で有用な階層トポロジーに及ぶプロファイルが提供され得る。さらに、例えば、プロセッサ等、ＳｏＣのコンポーネントを開発中の企業の例を考えると、この企業は、第三者に、この第三者により使用され得るモデリングコンポーネントを提供することができるが、この場合、そのモデリングコンポーネントはトランザクタと１つ以上の典型的なプロファイルの形態を採り、企業はプロセッサの詳細な知識を使用して、典型的かつ正確なプロファイルテンプレート、または部分的に投入された初期のプロファイルを第三者に納品して、次にそれを検証試験で使用する。
【００３３】
このようなプロファイルの１つの目的は、トランザクタへの入力として使用することであるが、本発明の発明者は、このようなプロファイルは他の目的にも使用され得ることに気づいた。特に、データ処理システムの設計を検証する場合に発生する別の問題は、例えば、ＲＴＬモデルビューとサイクル近似モデルビューまたはエミュレーションビュー等、わずかに異なるその設計の複数のビューの性能または動作を比較する場合である。本発明の発明者は、本発明のプロファイルの使用により、特に、トラフィック属性間の依存性を捕捉することにより実現されるさらに正確で強力な統計的表示により、このような複数の設計ビューの間でさらに正確な比較が行われ得ると判断した。特に、一実施形態においては、比較ロジックは、モニタにより生成されたプロファイルをデータ処理システムの代替の表示に対して生成された追加のプロファイルに比較するために使用され得、追加のプロファイルも、該複数のトラフィック属性に統計的表示を提供し、かつ、該複数のトラフィック属性間の該少なくとも１つの依存性を特定する。どちらもトラフィック属性間の依存性を捕捉する２つのプロファイルを比較することによって、トラフィック属性の平坦な統計的表示からは明らかにならないような、プロファイル間のわずかな違いが特定され得る。純粋に例として、ＣＰＵのＲＴＬモデルとＣＰＵのサイクル近似モデルとの平坦な統計的表示は、どちらも、同様に見えるバースト長とバーストタイプの統計情報を特定し得る。しかしながら、本発明のプロファイルを使用すると、さらに、例えば、バーストタイプがバースト長に依存していることを特定するなら、平坦な統計情報が収集された場合には完全に隠されるであろう、異なるバースト長に対するバーストタイプのわずかな違いが明らかにされ得る。
【００３４】
モニタにより作成されるプロファイルと比較されるデータ処理システムの代替の表示は、多様な方式で作成され得る。しかしながら、一実施形態において、装置は、データ処理システムの設計の少なくとも一部を表す代替の検証対象システムであって、検証対象システムとは異なるデータ処理システムの実現形態である、代替の検証対象システムと、該代替の検証対象システム内の同等なインタフェースに接続し、かつ、追加のプロファイルを作成するためにその同等なインタフェースでトラフィックフローを観察するモニタと、検証対象システムと代替の検証対象システムの操作の違いを決定するために、プロファイルと該追加のプロファイルを比較する比較ロジックと、をさらに備える。したがって、この実施形態においては、モニタは、まず、第１のプロファイルを作成するために検証対象システムに接続されてから、次に、第２のプロファイルを作成するために代替の検証対象システムに接続され、次に、比較ロジックが、２つのＳＵＶの操作の違いを決定するために、第１と第２のプロファイルを比較する。また、プロファイルは、トラフィックフローの多様な態様の性能を視覚化するためにも使用され得る。
【００３５】
本発明のプロファイルの別の可能な用途は、検証対象システム内のエラー検出の分野にある。特に、プロファイルが本発明に従い作成され、システムのインタフェースで予測されるトラフィック動作を捕捉する場合、エラー検出回路は、検証対象システムで発生する実際のトラフィックフローを観察するために、検証対象システムの同等なインタフェースに結合され得る。エラー検出回路は、次に、本発明に従い生成されるプロファイルへのアクセスも有するように構成され得、プロファイルを考慮して、観察されたトラフィックフローが予期されないものであった場合にエラー信号を生成するように配置され得る。
【００３６】
本発明のプロファイルは、所望のトラフィック属性だけでなく、トラフィック属性間の依存性も捕捉するため、正常なシステムで予測されるべきトラフィックの非常に現実的な観点を提供することができる。プロファイルを考慮して予測されるトラフィックフローと、検証対象システム内で実際に発生するトラフィックフローとの間に不一致があると、エラーにフラグを立てることができ、検証対象システムが不正に動作していることを示す。
【００３７】
このような状況の検証対象システムは、多様な形態を採り得る。所望のデータ処理システムのモデルであり得る一方で、一部の実施形態においては、最終のデータ処理システム自体でもあり得、エラー検出回路は、ソフトウェアの不具合またはハードウェアの故障等、何らかの原因により何らかの望ましくないシステム動作を検出するために使用される。
【００３８】
第３の態様の観点から、本発明は、データ処理システムの設計のために検証試験を実施する方法を提供し、該方法は、データ処理システムの設計の少なくとも一部を表す検証対象システムを提供するステップと、トランザクタを検証対象システムのインタフェースに接続するステップと、該検証試験の実施中、該インタフェースを介して、トランザクタにより生成された信号を検証対象システムに入力するステップと、該インタフェースで所望のトラフィックフローの統計的表示を提供するプロファイルをプロファイルストレージ内に保管するステップであって、統計的表示は複数のトラフィック属性に統計情報を提供し、かつ、該複数のトラフィック属性間の少なくとも１つの依存性を特定する、ステップと、検証対象システムに入力するために生成される信号を決定するために、生成される信号が統計データで特定された該少なくとも１つの依存性を考慮するように、トランザクタに該プロファイルを参照させるステップと、を含む。
【００３９】
第４の態様の観点から、本発明は、データ処理システム内のトラフィックフローの統計的表示を提供するプロファイルを生成する方法を提供し、該方法は、データ処理システムの設計の少なくとも一部を表す検証対象システムを提供するステップと、モニタを検証対象システムのインタフェースに接続するステップと、モニタを介して、インタフェースでトラフィックフローを観察するステップと、複数のトラフィック属性とその複数のトラフィック属性間の少なくとも１つの依存性を特定する制御入力に応答して、モニタに、観察されたトラフィックフローに基づいて該プロファイルを作成させるステップと、を含み、該プロファイルの統計的表示は、該複数のトラフィック属性の統計情報を提供し、かつ該複数のトラフィック属性間の該少なくとも１つの依存性を特定する。
【００４０】
第５の態様の観点から、本発明は、コンピュータ上で実行されると、コンピュータに本発明の第３の態様の方法または本発明の第４の態様のいずれかを実施させるコンピュータプログラムを含むコンピュータプログラム製品を提供する。
【００４１】
本発明の上記および他の目的、機能および利点は、添付の図面を参照しながら、以下の例示的な実施形態の詳細説明を読むことによって明らかになる。
【図面の簡単な説明】
【００４２】
【図１】本発明の一実施形態に従い、検証実行環境内のコンポーネントを示す模式図である。
【図２】本発明の代替の実施形態に従い、検証実行環境を示す模式図である。
【図３Ａ】先行技術のトラフィックフローの平坦な統計的表示を示す。
【図３Ｂ】本発明の一実施形態に従い、トラフィックフローの統計的表示内の依存性を特定するように階層構造を採用するプロファイルを示す。
【図３Ｃ】本発明の一実施形態に従い、トラフィックフローの統計的表示内の依存性を特定するように階層構造を採用するプロファイルを示す。
【図４Ａ】先行技術のトラフィックフローの平坦な統計的表示を示す。
【図４Ｂ】本発明の代替の実施形態に従い、トラフィックフローの統計的表示内の依存性を特定するように階層構造を採用するプロファイルを示す。
【図５】本発明の一実施形態に従い、トラフィック属性の階層構造を採用するプロファイルを示し、図中、トラフィック属性はトランザクションとタイミングの両方の属性を含む。
【図６】本発明の一実施形態に従い、プロファイルを生成するためのモニタの動作を示す模式図である。
【図７】本発明の一実施形態に従い、プロファイルを作成するために実行されるステップを示す模式図である。
【図８】本発明の一実施形態に従い、検証対象システムから代替のプロファイルを生成するために、図６に示したモニタがどのように使用され得るかを示す模式図である。
【図９】図６および８で生成されたプロファイルが比較目的のためにどのように使用され得るかを模式的に示す。
【図１０Ａ】本発明の実施形態に従い生成されたプロファイルの比較により、先行技術を使用して取得された平坦な統計的表示の比較からは発見されないであろう不一致がどのように特定され得るかを示す。
【図１０Ｂ】本発明の実施形態に従い生成されたプロファイルの比較により、先行技術を使用して取得された平坦な統計的表示の比較からは発見されないであろう不一致がどのように特定され得るかを示す。
【図１１】検証対象システムのエラーを検出するためにプロファイルを使用するための技法を示す模式図である。
【図１２】本発明の実施形態の技法が採用され得る、データ処理装置を示す模式図である。
【発明を実施するための形態】
【００４３】
図１は、本発明の一実施形態に従い、検証実行環境１０内で提供されるコンポーネントを模式的に示す模式図である。検証実行環境内に、試験されるデータ処理システムの設計の少なくとも一部を表す検証対象システム（ＳＵＶ）２０が提供される。検証実行環境およびＳＵＶは多様な形態を採り得る。例えば、検証実行環境は、シミュレータツールを使用して実装され得、この場合、ＳＵＶ内に含まれる１つ以上のコンポーネントは典型的にソフトウェアモデルの形態を採ることになる。代替として、検証実行環境は、例えば、合成可能なハードウェアを提供するエミュレータにより提供され得、この場合、ＳＵＶのコンポーネントは最終目的のコンポーネントのハードウェアモデルと見なされ得るが、最終のハードウェア実装そのものではない。別の代替の実施形態においては、検証実行環境は、ＡＳＩＣ実装として提供され得、事実、完全集積実装としてＳＵＶを提供する。
【００４４】
図１に示された実施例において、ＳＵＶは、相互接続コンポーネント７０を介していくつかのスレーブコンポーネント３５、４０に結合されたいくつかのマスタコンポーネント２５、３０を含む。相互接続７０は、接続された多様なコンポーネント間の通信を可能にするようにいくつかの方式で構成され得るが、一実施形態においては、相互接続７０は、ポイントツーポイントリクエスト／応答チャネル構造を採用する。
【００４５】
以下の説明において、「接続」は、２つのコンポーネントを通信可能にする物理的なリンクを説明するために使用される。例えば、ＡＭＢＡ接続は、マスタインタフェース、スレーブインタフェースおよび相互接続を備える。接続は、何らかの様式で関連するが、異なる方向であり得る１つ以上の「チャネル」を備える（つまり、一部のチャネルはマスタからスレーブへと通過するが、一方で他のチャネルはスレーブからマスタへと通過する）。これらのチャネル間の依存性は、接続の属性として説明される。関連性のないチャネルは、２つの接続部分として考えられる。
【００４６】
「チャネル」は、単方向通信を形成する一組の信号とインタフェースである。各チャネルは、正確に１つのソースと１つ以上のシンクを有し、つまり、マルチキャストであり得る。チャネルは、接続のサブセットを形成し、したがって、例としては、ＡＸＩ読取接続は２つのチャネル（アドレス読取チャネルとデータ読取チャネル）を有し、ＡＸＩ書込接続は３つのチャネル（アドレス書込チャネル、データ書込チャネルおよび応答書込チャネル）を有する。チャネルは、１つ以上の「トラフィックフロー」を有する。
【００４７】
「トラフィックフロー」は、チャネルの事実上独立した通信である。トラフィックフローは、チャネル全体で通信されるペイロードを記述し、そのペイロードに応じて、データフローまたは制御フローにさらに分類され得る。２つ以上のトラフィックフローが単独のチャネルを共有する場合は、両方を組み合わせた属性を備える単独のフローとして記述される可能性がある。
【００４８】
図１に図示したＳＵＶは、ハードウェアと関連ソフトウェア要素の正常な操作を評価するために、検証試験の実施中に特定の接続とチャネルのアクセスを可能にする。検証試験の実施を支援するために、１つ以上のトランザクタ４５、５５が、ＳＵＶのインタフェースに接続され、検証試験の実施中にＳＵＶに入力するための信号を生成するために使用される。図１に図示したように、トランザクタは、刺激信号をＳＵＶに入力することによりトランザクションを開始するために使用されるマスタトランザクタであり得、各トランザクションは指定されたコンポーネント間の１つ以上の転送を定義する。さらに、トランザクタは、送信された転送リクエストに応答して、ＳＵＶに信号を返信するように構成されるスレーブトランザクタ５５であり得る。典型的な先行技術のシステムにおいては、トランザクタは、特定のユーザ設定ファイルに基づいて、制約付きランダム試験を実施するために使用されてきた、あるいは、システム設計のコーナーケースを検証するために、１つ以上の方向形式のベクトルを実行するために使用されてきた。しかしながら、トランザクタは、例えば、汎用マスタデバイスまたは汎用スレーブデバイス等の汎用のコンポーネントを表す簡素化されたモデルであるので、現在までその使用は、トランザクタが、設計で置換したコンポーネントと同等な方式で動作する必要がない状況に制約されてきた。特に、トランザクタを使用する制約付きランダム試験の結果発生するトラフィックフローは、実在のシステムにおいてトランザクタとＳＵＶにより表される、コンポーネント間で発生するトラフィックフローを表すものではない。
【００４９】
しかしながら、本発明の実施形態に従うと、トランザクタは、プロファイル５０、６０を参照して生成される信号を決定し、各プロファイルは、関連するトランザクタが結合されるインタフェースでの所望のトラフィックフローの統計的表示を提供し、統計的表示は、複数のトラフィック属性の統計情報を提供し、これに加えて、それらのトラフィック属性の間の少なくとも１つの依存性を特定する。プロファイルにより提供される統計的表示内の属性間で少なくとも１つの依存性を捕捉することによって、トランザクタは、現実のシステムで観察されるであろうトラフィックの性質にはるかに近い制約付きランダムトラフィックを作成するために使用され得ることが発見された。これにより、これまでトランザクタは不適切であると考えられてきた特定の試験手順でのトランザクタの使用が可能になる。このようなプロファイルの使用に起因する他の利点も発見された。例えば、トラフィック属性間の少なくとも１つの依存性がプロファイルで捕捉されるので、先行技術の制約付きランダム試験実施技法を使用するよりも、トランザクタが不正なトランザクションを生成する可能性が低い。したがって、トランザクタ内で不正なプロトコルの組み合わせを明示的に定義するために必要な作業が少なくなる。さらに、指定された依存性を考慮することにより、トランザクタの動作は、実在のシステムで実際に実行される可能性が高いプロトコル状態空間の部分に焦点をおくことがさらに容易になり得、それにより、検証試験時間が短縮する。
【００５０】
図１において、ＳＵＶは、相互接続により接続されるいくつかのコンポーネントを備えるが、ＳＵＶは多様な形態をとることが可能なこと、さらに、図２に図示するように、例えば、単一のコンポーネントだけを組み入れ得ることを理解されたい。特に、図２に図示した実施例において、ＳＵＶ１３０は、メモリコンポーネント１４０を含み、その操作が検証される。マスタトランザクタ１２０は、複数のトラフィック属性の統計情報だけでなく、それらの属性間の少なくとも１つの依存性をも提供するプロファイル１１０により駆動され、トランザクタが、実在のシステムのマスタデバイスとメモリ制御装置との間で発生するであろう現実のトラフィックフローをさらに正確に再現する制御信号を発信することを可能にする。メモリ制御装置コンポーネント１４０は、メモリコンポーネント１５０にも接続され、トランザクタ１２０からの信号入力に応答してメモリアクセス動作を実施することを可能にする。
【００５１】
プロファイルにより提供される統計的表示は、多様な方式で構成され得る。しかしながら、一実施形態においては、プロファイルは、所望のトラフィックフローの統計的表示内の１つ以上の依存性を特定するために、階層構造を採用する。階層構造は多様な形態を採ることができるが、一実施形態においては、階層構造は、ヒストグラムの階層構造で、各ヒストグラムがトラフィック属性のうちの１つに対する統計情報を提供する。
【００５２】
図３Ａから３Ｃは、この概念をさらに詳しく示す。この実施例において、トランザクタは、ＣＰＵのトラフィックをモデル化するために使用され、トランザクションプロトコル属性のバースト長、方向、およびバーストタイプという、３つのトラフィック属性がプロファイル内で捕捉される、と想定する。これらの属性の平坦な統計的表示が、例えば、実在のシステムでこれらを監視することによって形成された場合、図３Ａに図示したバースト長、方向、およびバーストタイプに対して３つの個別のヒストグラム２００、２０５、２１０が作成され得る。
【００５３】
この統計情報が、その後、トランザクタによりトラフィックを生成するために使用される場合、トランザクタは、属性の不正な（または観察されない）組み合わせを十分に作成し得、結果のトラフィックは、実在のシステムで観察されるトラフィックに近くなくなる。例えば、トランザクタは、バースト長が「５」、方向が「書込」、およびバーストタイプが「増分」であるトランザクションを作成し得るが、現実には、このようなトランザクションは、現実のシステムでは決して発生し得ない。例えば、実在のシステムで発生するであろうトランザクションについて、以下の情報が分かっている場合がある。
【００５４】
【表１】
2010140487.tif 000003
【００５５】
本発明の実施形態の技法を使用して、表１に特定された依存性が階層構造のヒストグラムに捕捉されると、プロファイルを生成するために同一のトラフィックを監視する場合、結果として作成されるプロファイルは、図３Ｂに模式的に図示されたプロファイルであり得る。この実施例において、バースト長ヒストグラム２００は変わらず、一次トランザクションプロトコル属性として使用される。バースト長ヒストグラムの各エントリに対して、個別の方向ヒストグラムが作成され、したがって、例としての目的で図示されているように、方向ヒストグラム２２０は、バースト長４に対して作成され得、方向ヒストグラム２２５はバースト長８に対して作成され得る。表１と比較することによって、３つのクラスのトランザクションのうちのいずれもバースト長４を指定し得、したがって、方向ヒストグラムは、読取と書込アクセスの混合型を含む可能性があるが、バースト長８は、キャッシュ不可能のフェッチトランザクションにだけ指定され得、これらのトランザクションは必ず読取トランザクションであり、したがって、方向ヒストグラム２２５は読取アクセスだけを含むようになることが確認され得る。
【００５６】
同様に、各方向ヒストグラムの各エントリに対して、個別のバーストタイプのヒストグラムが作成される。したがって、方向ヒストグラム２２０に対して、２つのバーストタイプヒストグラム２３０、２３５が作成され、同様に、方向ヒストグラム２２５に対して、１つのバーストタイプヒストグラム２４０が作成される。さらに、タイミング属性が捕捉されると、各トランザクションクラスの相対帯域幅が決定され得る。
【００５７】
トランザクタが生成する信号を決定するために、図３Ｂに模式的に図示したプロファイルがトランザクタにより参照される場合、生成される信号は、トランザクタとＳＵＶとの間のインタフェースで、現実のシステムで発生する現実のトラフィックフローをさらに一層厳密に表すトラフィックフローとなる。
【００５８】
完全性のために、図３Ｃは、図３Ｂで図示したプロファイルのＸＭＬ表現を提供する。示したように、長さヒストグラムの５つの「ｂｉｎ  ｘ＿ｖａｌｕｅｓ」は、それぞれ、長さ１、２、４、５および８を特定し、頻度は６、２、１２、１および５であることを示す。さらに、バースト長が４の方向ヒストグラム２２０は、それぞれ１０と６の読取と書込値を有し、一方で、バースト長８の方向ヒストグラム２２５は、読取エントリだけを含み、これは、デフォルトで１の値に設定されることが確認される。また、３つのバーストタイプヒストグラム２３０、２３５および２４０も図３ＣのＸＭＬ表現で特定されることも確認される。
【００５９】
図４Ａは、別の実施例の状況に成功技術のアプローチを使用して作成される可能性があるトラフィックフローの平坦な統計的表示を図示し、ここでも、３つのトランザクションプロトコルの属性が捕捉されるが、今回は、属性はバースト長、バーストタイプおよびキャッシュ可能／バッファ可能である。ＡＲＬＥＮ、ＡＲＢＵＲＳＴおよびＡＲＣＡＣＨＥが、ＡＸＩのこれらのトランザクションプロトコル属性に与えられた名前で、図４Ａは、ＡＸＩデータフローを監視することによって取得され得る結果を示す。
【００６０】
図４Ｂでは、本発明の実施形態に従い生成されたプロファイルが図示され、同一のＡＸＩデータフローに基づくがここではこの実施形態に従い、ＡＲＬＥＮは一次ヒストグラムと考えられ、ＡＲＣＨＡＣＨＥは、ＡＲＢＵＲＳＴに依存し、ＡＲＢＵＲＳＴはＡＲＬＥＮに依存する。図４Ａに図示した平坦な統計的表示がトランザクタを駆動するために使用された場合、図４Ｂに図示した本発明の実施形態のプロファイルでトランザクタが駆動される状況と比較すると、非常に異なる結果が達成されることがわかる。例えば、図４Ａの独立したヒストグラム２５０、２５５、２６０を使用すると、ＡＲＬＥＮが１でＡＲＢＵＲＳＴがＷＲＡＰタイプのトランザクションが作成される可能性がある。しかしながら、図４Ｂから、そして特にＡＲＢＵＲＳＴヒストグラム２７０から明らかであるように、この組み合わせは、本来のデータフローには存在しておらず、ＡＸＩプロトコルにおいては不正となる。図４Ｂに図示した階層表示を使用することにより、トランザクタはこのようなトランザクションを決して作成しないため、この問題は対処される。
【００６１】
依存性の階層は、例えば、捕捉時に、モニタツールが使用され、現実のシステムのトラフィックフローを観察することによりプロファイルを生成する場合、プロファイルが生成される時点に定義され得る。捕捉時に依存性が定義されることを可能にすることによって、その時点で特定の対象属性に焦点を置くことが可能である。例えば、メモリ制御装置のインタフェースで、属性「ＩＤ」は、非常に異なるトランザクションプロトコル属性とタイミング属性を含む独立的なフローの間を区別するために使用され得る。代替として、ユーザは、待機状態（データのビート間のサイクル数を特定）に関心を抱き得るので、どのタイプのトランザクションが異なるデータパフォーマンスを作成するかを発見するために、待機状態を上位レベルのヒストグラムとして使用することが可能である。待機状態が上位レベルのヒストグラムとして使用される実施例は図５に図示される。方向ヒストグラム３１０とタイプヒストグラム３２５から明らかであるように、高い待機状態は、バーストタイプ増分の読取トランザクションで発生する。
【００６２】
図６は、本発明の一実施形態に従い、上記のプロファイルが生成され得る機構を示す。図６に図示したように、検証対象システム４００は、相互接続４２０を介していくつかのスレーブデバイス４２５、４３０、４３５に結合されたいくつかのマスタデバイス４０５、４１０、４１５を備える。マスタデバイス４０５は、ＣＰＵのＲＴＬモデルとして形成される。
【００６３】
モニタツール４４０は、ＲＴＬモデル４０５と相互接続４２０との間のインタフェースで発生するトラフィックフローを観察するために使用され、これに基づいて第１のプロファイル４５０を作成する。モニタツール４４０がプロファイルを作成することを可能にするように、プロファイルテンプレートまたは初期のプロファイルがモニタツールへの入力として提供される。特に、複数の対象トラフィック属性を定義し、かつ、これらの属性間の依存性を定義するプロファイルテンプレートが使用され得、モニタツールは、次に、観察されたトラフィックフローに基づいてプロファイルテンプレートを生成することによって、プロファイルを作成する。したがって、一実施形態において、プロファイルテンプレートは、階層構造のヒストグラムを特定し、これらのヒストグラムは最初は空であり、その後、観察されたトラフィックフローに基づいて、モニタツールがこれらのヒストグラムを投入する。
【００６４】
プロファイルテンプレートを使用する代わりに、モニタツール４４０への制御入力は、初期のプロファイルの形態を採り得る。プロファイルテンプレートと同様に、これは、複数の対象トラフィック属性およびそれらの間の依存性を定義するが、少なくとも部分的に統計情報を投入される。特に、手動入力された何らかの情報、または異なるＳＵＶを監視することにより作成された何らかの情報等で部分的に更新されていることがあり得る。この事例においては、モニタツールは、次に、観察されたトラフィックフローに基づいて、初期のプロファイルの統計情報を補完することによって、プロファイルを作成する。
【００６５】
図７は、図６に説明した機構を使用する場合に実施されるステップをまとめた流れ図である。まず、ステップ５００で、対象のトラフィック属性が定義される。これらは、トランザクションプロトコル属性、タイミング属性または、この２つの混合であり得る。その後、ステップ５１０で、属性間の依存性が特定され、これは、典型的に、ＳＵＶで監視されるデバイスのタイプに依存する。例えば、特定のタイプのデバイスでは、バースト長を一次属性として選択することが適切であると考えられ得るが、他のタイプのデバイスでは、他の何らかの属性を選択することが適切であり得る。さらに、選択される依存性は、デバイスのタイプだけではなく、例えば、トランザクタと生成されたプロファイルを使用してどのようなタイプの試験が実施されるか等、プロファイルがその後どのように使用されるかにも依存し得る。
【００６６】
ステップ５２０で、対象のトラフィック属性と依存性の両方を捕捉する階層構造を提供するために、プロファイルテンプレートが作成される。したがって、前述の実施例を考慮すると、プロファイルテンプレートは、この段階では、階層構造のヒストグラムを含むが、ヒストグラムは現在まだ投入されていない。ステップ５００から５２０までは、全部ユーザにより手動で実施され得る、または、代替として、これらのステップのうちの１つ以上が自動化される可能性がある。
【００６７】
ステップ５３０で、モニタツール４４０は、次に、ＳＵＶ４００のトラフィックを監視し、この結果、プロファイル４５０を生成するためにステップ５４０でプロファイルテンプレートを投入する。
このようなプロファイルの１つの使用目的は、トランザクタへの入力（図１および２を参照して前述した実施例のように）であるが、このようなプロファイルは他の目的にも使用され得る。例えば、ここで図８および９を参照して検討するように、このプロファイルは、わずかに異なる特定の設計の複数のビューの性能または動作を比較するために使用され得る。特に、トラフィック属性間の依存性を捕捉することにより実現されるさらに正確な統計的表示によって、このような設計の複数のビューの間でさらに正確な比較を実行することが可能になる。
【００６８】
したがって、図８に示すように、モニタツール４４０は、代替の検証対象システム６００の同等なインタフェースに接続されるように配置され得、次に、同じプロファイルテンプレートまたは初期のプロファイルを使用することによって、観察されたトラフィックフローに基づいて第２のプロファイル６５０を作成することができる。図６に図示したＳＵＶ４００と同様に、図８のＳＵＶ６００は、相互接続６２０を介して、３つのスレーブデバイス６２５、６３０、６３５に結合された３つのマスタデバイス６０５、６１０、６１５を有する。しかしながら、図６のＳＵＶ６００とは異なり、図８で使用されるＣＰＵモデル６０５は、図６で使用したＲＴＬモデル４０５ではなく、サイクル近似（ＣＸ）モデルである。
【００６９】
第２のプロファイル６５０が生成されると、図９に模式的に図示すように、ＣＰＵのサイクル近似モデルがＣＰＵのＲＴＬモデルの動作をどの程度正確に追跡するかの出力指標を作成するために、２つのプロファイル４５０、６５０が比較ロジック６６０を使用して比較され得る。比較ロジックが実装され得るいくつかの方式があるが、一実施形態においては、比較ロジックは、コンピュータ上で稼動するソフトウェアルーチンの形態を採り、その入力として２つのプロファイル４５０、６５０を受信する。
【００７０】
図１０Ａおよび１０Ｂは、平坦な統計的表示を比較することを模索する代替のアプローチと比較すると、本発明の実施形態に従い生成されたプロファイルを比較する場合に達成され得る利点を示す。
【００７１】
特に、図１０Ａに示すように、トラフィックフロー７００、７１０の２つの平坦な統計的表示が模式的に示されるが、平坦な統計的表示７００は、図６のＳＵＶ４００のＲＴＬモデル４０５と相互接続４２０との間のインタフェースを監視することから取得され、一方で、平坦な統計的表示７１０は、図８のサイクル近似モデル６０５と相互接続６２０との間の同等なインタフェースを監視することから取得される。比較７２０が実施されると、２つの平坦な統計的表示の間の類似性により、サイクル近似モデルは、ＲＴＬモデルの動作を厳密に推定することを示すことが確認される。
【００７２】
しかしながら、図１０Ｂは、同じ状況を示すが、ここでは、図６および８を参照して説明された機構を使用して取得された２つのプロファイル４５０、６４０が使用される。この実施例においては、バースト長は一次ヒストグラムとして選択され、バーストタイプはバースト長に依存すると想定される。この事例においては、比較７３０が実施されると、バースト長の動作は類似しているが、バースト長３のアクセスは、サイクル近似モデルとＲＴＬモデルを比較すると、実際には、異なるバーストタイプの特性を有することが検出される。このようにして、ＲＴＬモデルと比較すると、サイクル近似モデルの動作の違いを特定するが、これは、平坦な統計的表示が使用された場合には、気づかれずに終わってしまう違いである。
【００７３】
本発明の実施形態に従う技法を使用して生成されたプロファイルの別の用途は、エラー検出分野にある。複雑なシステムは複雑な動作を有する。すべての可能な不正モデルを列挙すること、および言うまでもなく検出することは非常に困難である。従来のエラー検出方式は、システムに対して比較する１組のエラーパターンを構築する。これは、システムの詳細な知識を使用して手作業で行われることが非常に多い。１組の詳細な試験と応答が作成されてから、特有の事前に特定された故障を診断するために使用され得る故障辞書を形成する。エラーパターンに付随する問題は、特殊な試験シーケンスにより実現することが必要な特定のシステム状態に非常に限定されることである。したがって、正常に稼動中のシステムにおいて使用するには不適切である。
【００７４】
本発明の一実施形態において、この問題は、システムのトラフィックプロファイルを、システムが正常に稼動している際に観察されるプロファイルから分岐させる所定の動作として、エラーを定義することにより対処され得る。前述のプロファイルの統計的性質は、いかなる特定の通信のコンテンツおよびタイミングの固有の可変性が捕捉されることを可能にし、このようにして、いかなる比較も必ず適切な許容範囲を使用することになる。
【００７５】
図１１は、エラーを検出するために提案される機構を模式的に示す。まず、正常なシステム８００は、１つ以上のプロファイル８２０を作成するために監視され、それらのプロファイルの各々は、前述の階層構造を採用し、したがって、１つ以上のトラフィック属性間の依存性を捕捉する。これらのプロファイル８２０の組は、正常に操作する場合にシステムから予測される１組の予測プロファイルを形成する。
【００７６】
次に、予測プロファイル８２０を作成する場合に監視されたインタフェースと同一組のインタフェースを監視して、同一の一連のプロファイルを作成し、次に、システム８１０から作成された実際のプロファイル８３０と予測プロファイル８２０との間の比較操作８４０を実行することにより、システム８１０の不正な動作が検出される。プロファイルの階層構造のために、プロファイル間の不一致は、容易に特定され得、エラーの迅速な検出を可能にする。
【００７７】
このようなアプローチの使用を通して、機能のシミュレーションは、予測されるトラフィックフローと比較され得る。実際に作成されたプロファイルが予測プロファイルに一致する場合、実際の動作は予測される動作に一致すると考えられ、システムは正常に動作していると考えられる。しかしながら、不一致がある場合、機能のシミュレーションは不正に動作していると考えられ、エラーがフラグされ得る。同一の技法は、ソフトウェアの不具合またはハードウェアの故障など原因が何であっても望ましくないシステム動作を検出するために、設計の物理的実現において使用され得る。
【００７８】
システムがいくつかの異なるアプリケーションで使用される場合、上記の手法の感度は、各々異なるアプリケーション中の動作に対応するトラフィックプロファイルを何組か使用することによって改善され得る。
【００７９】
上記のアプローチの使用を可能にするためには、稼動中のシステム８００から予想される１組のプロファイル８２０を取得することが必要で、一実施形態において、これは、システムのＲＴＬエミュレーションを使用して実現され得る。
【００８０】
図１２は、本発明の実施形態の上記の技法を実施するために使用され得るタイプの汎用目的コンピュータ９００を模式的に示す。汎用目的コンピュータ９００は、中央処理ユニット９０２、ランダムアクセスメモリ９０４、読取専用メモリ９０６、ネットワークインタフェースカード９０８、ハードディスクドライブ９１０、ディスプレイドライバ９１２およびモニタ９１４、およびキーボード９１８とマウス９２０を備えたユーザ入力／出力回路９１６と、を含み、全てがコモンバス９２２を介して接続される。動作中、中央処理ユニット９０２は、ランダムアクセスメモリ９０４、読取専用メモリ９０６、ハードディスクドライブ９１０のうちの１つ以上に保管され得る、または、ネットワークインタフェースカード９０８を介して動的にダウンロードされ得る、コンピュータプログラム命令を実行する。処理が実施された結果は、ディスプレイドライバ９１２およびモニタ９１４を介して、ユーザに表示され得る。汎用目的コンピュータ９００の操作を制御するためのユーザ入力は、ユーザ入力／出力回路９１６を介して、キーボード９１８またはマウス９２０から受信され得る。コンピュータプログラムは、多様なコンピュータ言語で作成される可能性があることがわかる。コンピュータプログラムは、記録媒体上に保管および分散され得る、または、汎用目的コンピュータ９００に動的にダウンロードされ得る。適当なコンピュータプログラムの制御下で操作する場合、汎用目的コンピュータ９００は、上記の技法を実行することができ、上記の技法を実行するための装置を形成すると考えられ得る。汎用目的コンピュータ９００のアーキテクチャは、大幅に変わることが可能で、図１２は１つの実施例に過ぎない。
【００８１】
本発明の実施形態に従い、所望のトラフィックフローの統計的表示内のトラフィック属性間で少なくとも１つの依存性を特定するように、階層構造を採用するプロファイルが提供される。このようなプロファイルは、トランザクタに検証対象システム内で一層現実に近いトラフィックフローを作成させるように、トランザクタを駆動するために使用され得る。さらに、このようなプロファイルは、２つの異なるＳＵＶの操作間の不一致を一層容易に特定するために使用され得る。その上に、このようなプロファイルは、プロファイルのうちの１つを考慮して、観察されたトラフィックフローが予測外である状況を検出することにより、ＳＵＶ内のエラー検出を可能にするためにも使用され得る。
【００８２】
本発明の例示的な実施形態は、本明細書において添付の図面を参照しながら詳細に説明されてきたが、本発明はそれらの正確な実施形態に限定されないこと、さらに、添付の請求項により画定される本発明の範囲および精神を逸脱することなく、当業者によりこれに多様な変更および変形が有効であり得ること、を理解されたい。
【符号の説明】
【００８３】
１０      検証実行環境
２０      検証対象システム
２５      マスタコンポーネント
３０      マスタコンポーネント
３５      スレーブコンポーネント
４０      スレーブコンポーネント
４５      トランザクタ
５０      プロファイル
５５      トランザクタ
６０      プロファイル
７０      相互接続
１１０      プロファイル
１２０      トランザクタ
１３０      検証対象システム
１４０      メモリコンポーネント
１５０      メモリコンポーネント
４００      検証対象システム
４０５      マスタデバイス
４１０      マスタデバイス
４１５      マスタデバイス
４２０      相互接続
４２５      スレーブデバイス
４３０      スレーブデバイス
４３５      スレーブデバイス
４４０      モニタツール
４５０      第１のプロファイル
６００      検証対象システム
６０５      マスタデバイス
６１０      マスタデバイス
６１５      マスタデバイス
６２０      相互接続
６２５      スレーブデバイス
６３０      スレーブデバイス
６３５      スレーブデバイス
６５０      第２のプロファイル
【図１】
2010140487.tif 000004
【図２】
2010140487.tif 000005
【図３Ａ】
2010140487.tif 000006
【図３Ｂ】
2010140487.tif 000007
【図３Ｃ】
2010140487.tif 000008
【図４Ａ】
2010140487.tif 000009
【図４Ｂ】
2010140487.tif 000010
【図５】
2010140487.tif 000011
【図６】
2010140487.tif 000012
【図７】
2010140487.tif 000013
【図８】
2010140487.tif 000014
【図９】
2010140487.tif 000015
【図１０Ａ】
2010140487.tif 000016
【図１０Ｂ】
2010140487.tif 000017
【図１１】
2010140487.tif 000018
【図１２】
2010140487.tif 000019
【外国語明細書】
2010140487.tif 000020
2010140487.tif 000021
2010140487.tif 000022
2010140487.tif 000023
2010140487.tif 000024
2010140487.tif 000025
2010140487.tif 000026
2010140487.tif 000027
2010140487.tif 000028
2010140487.tif 000029
2010140487.tif 000030
2010140487.tif 000031
2010140487.tif 000032
2010140487.tif 000033
2010140487.tif 000034
2010140487.tif 000035
2010140487.tif 000036
2010140487.tif 000037
2010140487.tif 000038
2010140487.tif 000039
2010140487.tif 000040
2010140487.tif 000041
2010140487.tif 000042
2010140487.tif 000043
2010140487.tif 000044
2010140487.tif 000045
2010140487.tif 000046
2010140487.tif 000047
2010140487.tif 000048
2010140487.tif 000049
2010140487.tif 000050
2010140487.tif 000051
2010140487.tif 000052
2010140487.tif 000053
2010140487.tif 000054
2010140487.tif 000055
2010140487.tif 000056
2010140487.tif 000057
2010140487.tif 000058
2010140487.tif 000059
2010140487.tif 000060
2010140487.tif 000061
2010140487.tif 000062
2010140487.tif 000063
2010140487.tif 000064