(57)【特許請求の範囲】
【請求項１】
それぞれのノードと、データを送信するために前記ノードを接続すると共に、少なくとも1つのデータ伝送プロトコルに従って管理され、前記ノードのうちの2つの間にそれぞれの経路を形成するそれぞれのリンクとを備えるネットワーク内でトランザクションを追跡するための方法であって、
前記ネットワークのリンクによる伝送の間のトランザクションをピックアップするステップと、
ピックアップされた前記トランザクションを同じ形式に変換するステップと、
記憶された各トランザクションがピックアップされたリンクを識別できるように、変換されたトランザクションを記憶するステップと、
前記記憶されたトランザクションのうちから、相関させるべき変換されたトランザクションがピックアップされたリンクに隣接したリンクからピックアップされたトランザクションを探索するステップと、
相関させるべき前記変換されたトランザクションを、記憶されたトランザクションと比較するステップであって、前記相関させるべきトランザクションと記憶されたトランザクションの間の一致が前記比較によって明らかになる場合は、前記相関させるべきトランザクションが記憶されたトランザクションに相関されると共に、前記相関させるべきトランザクションの比較が、隣接したリンクからピックアップされたことが判明した前記トランザクションに限定される、ステップと、
相関されたトランザクションの対を使用して、前記ネットワーク内のトランザクションが辿る経路を決定するステップと
を備える方法。
【請求項２】
2つのトランザクションの比較が、前記2つのトランザクションのデータ上で、前記2つのトランザクションがピックアップされた前記リンクのタイプに従って選択された比較アルゴリズムを実行するステップを備える、請求項1に記載の方法。
【請求項３】
前記比較アルゴリズムが、前記2つのトランザクションの内容が同一である場合に正の相関結果を提供するアルゴリズムと、前記2つのトランザクションのうちの1つのトランザクションの内容がもう一方のトランザクション内に突き止められる場合に正の相関結果を提供するアルゴリズムとを備える、請求項2に記載の方法。
【請求項４】
変換された各トランザクションが、前記トランザクションがピックアップされた前記リンクに従って選択された一時記憶セルに記憶され、セルが、トランザクションがピックアップされてよい各リンクに割り当てられる、請求項1から3のいずれか一項に記載の方法。
【請求項５】
記憶されたトランザクションを、それが1つまたは複数の他のトランザクションに完全に相関された場合は、それが記憶された前記セルから取り除くステップを備える、請求項4に記載の方法。
【請求項６】
変換されたトランザクションが、トランザクション開始および終了データと、トランザクション内容データと、前記トランザクションが要求タイプのものか、それとも応答タイプのものか示す1片の情報と、トランザクション識別子と、前記トランザクションが前記応答タイプのものである場合は、前記応答タイプの前記トランザクションに対応する前記要求タイプのトランザクションの識別子とを備える、請求項1から5のいずれか一項に記載の方法。
【請求項７】
前記要求タイプの前記トランザクションだけが、別のトランザクションとの比較に備えて記憶される、請求項6に記載の方法。
【請求項８】
前記応答タイプのトランザクションを前記要求タイプの記憶されたトランザクションに相関させるステップと、前記要求タイプの前記トランザクションを他のリンクに伝播しなくてよい場合、および前記要求タイプの前記トランザクションがピックアップされた前記リンクが、前記ネットワーク内で前記要求タイプの前記トランザクションが実行される前に、前記要求タイプの前記トランザクションに対応する前記応答タイプのトランザクションを送信しなくてよい場合にだけ、前記要求タイプの前記記憶されたトランザクションを削除するステップとを含む、請求項6または7に記載の方法。
【請求項９】
それぞれのノードと、データを送信するために前記ノードを接続すると共に、少なくとも1つのデータ伝送プロトコルに従って管理され、前記ノードのうちの2つの間にそれぞれの経路を形成するそれぞれのリンクとを備えるネットワーク内でトランザクションを追跡するためのデバイスであって、
前記リンクによって送信されたトランザクションをピックアップするために前記リンクに接続されたプローブを備え、
請求項1から8のいずれか一項に記載の方法を実施するように構成された、デバイス。
【請求項１０】
前記プローブが、トランザクションを同じ形式に変換するためのモジュールに関連付けられる、請求項9に記載のデバイス。
【請求項１１】
プローブによるメモリセルを備える1組のメモリセルを備える、請求項9または10に記載のデバイス。
【請求項１２】
前記ネットワーク内のトランザクション伝播の解析を実施するために相関されたトランザクションの対を受け取ると共に処理し、かつ/または前記相関されたトランザクションの対に関連する情報を保存および／または可視化スクリーン上に表示し、かつ/または伝送待ち時間を決定し、かつ/または伝送またはネットワーク負荷の統計を精緻化し、かつ/またはユーザによって定義されたプロセスを実施するように構成された少なくとも1つの出力モジュールを備える、請求項9から11のいずれか一項に記載のデバイス。
【請求項１３】
コンピュータによって読取り可能かつ実行可能なサポート上で保存されており、
コンピュータによって実行されるとき、請求項1から8のいずれか一項に記載の方法を実施するように構成されたプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ伝送ネットワーク内のデータ伝播に関する。本発明は、詳細には、少なくとも1つのノード、少なくとも1つのデータ伝送プロトコルに従って管理された2つのデータリンクを備えるSOC(Systems On Chip:システムオンチップ)に適用される。
【背景技術】
【０００２】
SOCは、異種プロセッサコア、専門回路およびメモリなど、同じ集積回路ハードウェアコンポーネント、ならびにそれらの間でコンポーネントをリンクする「ネットワークオンチップ」NOCと呼ばれる複雑な通信アーキテクチャに集まる傾向がますます高まっている。ネットワークオンチップは通常、システムオンチップのハードウェアコンポーネントをリンクするいくつかのポイントツーポイントデータリンクを備える。システムオンチップのハードウェアコンポーネント間のデータリンクは、STMicroelectronics社のSTBusおよびVSTNOC、ARM社のAXIおよびAHB、SONICS社のOCP、NXP社のDTLおよびMTL、ARTERIS社のDanubeなど、いくつかのプロトコルに準拠したバスを使用して行うことができる。こうしたネットワークは、それぞれ異なる搬送上の制約を守りながら、それぞれ異なる性質のデータを運ぶことができる。したがって、音声または音響タイプのデータは、小さい待ち時間、および比較的低い帯域幅を必要とする。ビデオシーケンスタイプのデータもまた、小さい待ち時間を必要とするが、高い帯域幅をも必要とする。もう一方で、通常のデータを運ぶには、大きい待ち時間および可変帯域幅を必要としない。データのタイプが何であれ、あるサービス品質が保証されなければならない。
【０００３】
システムオンチップがますます複雑になっているので、システムを各ステップで検証できるように、それぞれ異なる設計ステップでシステムをテストすることを可能にする設計、モデリングおよびシミュレーションツールを実装することが望ましい。システムが集積回路に完全にまたは部分的に実装されると、それをテストできることも望ましい。
【０００４】
一般に、システムオンチップなどの複雑なシステムの開発は、非公式の言語で書かれた仕様書を定義するステップで開始する。次いで、仕様を一致させることを可能するアルゴリズムを定義または選択するステップがある。アルゴリズムは、MatlabやC++のような高水準言語を使用して定義されてよい。アルゴリズムを定義することによって、アーキテクチャについて記述し、したがってハードウェアとソフトウェアの間の分散(ハードウェアコンポーネント、およびハードウェアコンポーネントによって実行されるソフトウェアの定義)を指定する「トランザクションレベルモデル」TLMと呼ばれる第1の抽象レベルのモデルを定義するステップに移ることが可能となる。トランザクションレベルモデルは、機能モデルPV(プログラマビュー)と、タイムドモデルPVT(プログラマビュー+タイミング)を集めることができる。機能モデルは、たとえば、システムのハードウェアコンポーネントに埋め込まれたソフトウェアをシミュレートすることを可能にする。機能モデルでは、ハードウェアコンポーネント間のデータ転送は、理想的な一意の通信チャネル、すなわち制限されないレートをもつことによってシミュレートされてよい。タイムドモデルは、アーキテクチャの選択、およびハードウェアとソフトウェアの間のプロセスの分散を早期に評価することを可能にする。システムのハードウェアコンポーネントが守らなければならない時間制約を指定するために、ワードのサイズおよび通信チャネルのレートが固定される。トランザクションレベルモデルは、SystemCなど、ハードウェアシステムをモデル化するための言語を使用して定義することができ、通信チャネルに接続されたポートによってそれらの間でリンクされたモジュールによってハードウェアコンポーネントを表すことが可能となる。ハードウェアコンポーネントおよびソフトウェアコンポーネントの振舞いは、C++などのプログラミング言語でコードを実行するプロセスによって記述される。したがって、システムのハードウェアコンポーネントおよびソフトウェアコンポーネントはすべて、性質およびその抽象レベルがどうであれ、SystemCを使用してモデル化することができる。以下の開発ステップは、システムの時間を計測するクロックの各サイクルでシステムの振舞いを指定するBCA(Bus Cyc
le Accurate)サイクルの精度でモデルを作成するクロック概念を加えることにある。次いで、レジスタ転送レベルRTLを定義するためのステップがあり、このレジスタ転送レベルRTLは、次いで、集積回路を迅速かつ効率的に合成することを可能にする。レベルRTLは、VHDLやVerilogなどの言語を使用して、各クロックパルスで各ビットの値を定義する。次いで、レベルRTLは、集積回路の製造用のマスクを作成するベースとして役立つ2次元構造を得るための配置ツールおよびルーティングツールによって処理できる論理ゲートネットワークを定義することを可能にする。
【０００５】
ネットワーク、具体的にはネットワークオンチップの性能は、ネットワークを統合するシステムの性能に大きい影響を及ぼす。したがって、ネットワークのトラフィックを解析し、ネットワークの使用を特徴付け、具体的にはネットワーク内のデータの伝播を追跡できることが望ましい。システムの以前の開発ステップの間に行われた設計選択について再考しないようにするには、システムオンチップの設計および開発の間にこうした解析が十分すぐに行われることが望ましい。
【０００６】
抽象レベルTLM、BCAおよびRTLは、システムを実装し、それを集積回路に組み込む前にシステムアーキテクチャの性能を徹底的に研究することを可能にする。システム内のデータ伝播の追跡は通常、システムのそれぞれ異なるリンクに接続されたプローブを使用して行われ、システムのすべてのコンポーネントが必ずしも同じ抽象レベルでモデル化されるとは限らない。
【０００７】
しかし、ネットワークを解析しまたは監視するための既存のツールは通常、1つのネットワークプロトコルだけに従う。それぞれ異なる伝送プロトコルを一致させるリンクを備える複雑なネットワークの場合には、イニシエータコンポーネントとターゲットコンポーネントの間の経路からそれぞれ異なるプローブによって得られたデータまたは信号を伝送プロトコル間で相関させることは難しいことがある。要求メッセージを、要求メッセージへの応答メッセージに相関させることも難しいことがある。さらに、ネットワーク内で送信されたメッセージのデータは時々、ネットワークのいくつかのリンク内で配布されることがある。次いで、送信されたデータを追跡し、プローブによって検出された1片のデータが、同じメッセージ内の他のデータと共に別のときに突き止められると決定することは難しい。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
したがって、ネットワークがどんなに複雑であれ、マルチプロトコルネットワーク、具体的にはマルチプロトコルチップ上のネットワークで送信されたデータの伝播を追跡することができ、また送信されたデータがメッセージ内に一緒にとどまり、またはネットワークのいくつかの異なるリンクによって送信された他のいくつかのメッセージで別のときに配布されるのが望ましい。
【課題を解決するための手段】
【０００９】
一実施形態は、少なくとも1つのノードと、ノードに接続されており、少なくとも1つのデータ伝送プロトコルに従って管理された、データを送信するための少なくとも2つのリンクとを備えるネットワーク内でトランザクションを追跡するための方法に関する。一実施形態によれば、この方法は、ネットワークのリンクによる伝送の間、トランザクションをピックアップするステップと、ピックアップされたトランザクションを同じ形式に変換するステップと、記憶された各トランザクションがピックアップされたリンクを識別できるように、変換されたトランザクションを記憶するステップと、変換された、相関させるべきトランザクションを、記憶されたトランザクションと比較するステップであって、相関させるべきトランザクションと記憶されたトランザクションの間の一致が比較によって明らかになる場合は、相関させるべきトランザクションが記憶されたトランザクションに相関される、ステップとを備える。
【００１０】
一実施形態によれば、この方法は、記憶されたトランザクションから、相関させるべきトランザクションがピックアップされたリンクに隣接したリンクからピックアップされたトランザクションを探索するステップを備え、相関させるべきトランザクションの比較が、見つかったトランザクションに限定される。
【００１１】
一実施形態によれば、2つのトランザクションの比較は、2つのトランザクションのデータ上で、2つのトランザクションがピックアップされたリンクのタイプに従って選択された比較アルゴリズムを実行するステップを備える。
【００１２】
一実施形態によれば、比較アルゴリズムは、2つのトランザクションの内容が同一である場合に正の相関結果を提供するアルゴリズムと、2つのトランザクションのうちの1つのトランザクションの内容がもう一方のトランザクション内に突き止められる場合に正の相関結果を提供するアルゴリズムとを備える。
【００１３】
一実施形態によれば、変換された各トランザクションは、トランザクションがピックアップされたリンクに従って選択された一時記憶セルに記憶され、セルが、トランザクションがピックアップされてよい各リンクに割り当てられる。
【００１４】
一実施形態によれば、この方法は、記憶されたトランザクションを、それが1つまたは複数の他のトランザクションに完全に相関された場合は、それが記憶されたセルから取り除くステップを備える。
【００１５】
一実施形態によれば、変換されたトランザクションは、トランザクション開始および終了データと、トランザクション内容データと、トランザクションが要求タイプのものか、それとも応答タイプのものか示す1片の情報と、トランザクション識別子と、トランザクションが応答タイプのものである場合は、応答タイプのトランザクションに対応する要求タイプのトランザクションの識別子とを備える。
【００１６】
一実施形態によれば、要求タイプのトランザクションだけが、別のトランザクションとの比較に備えて記憶される。
【００１７】
一実施形態によれば、この方法は、応答タイプのトランザクションを要求タイプの記憶されたトランザクションに相関させるステップと、要求タイプのトランザクションを他のリンクに伝播しなくてよい場合、および要求タイプのトランザクションがピックアップされたリンクが、システムによって要求が実行される前に、要求タイプのトランザクションに対応する応答タイプのトランザクションを送信しなくてよい場合にだけ、要求タイプの記憶されたトランザクションを削除するステップとを備える。
【００１８】
一実施形態は、少なくとも1つのノードと、ノードに接続されており、少なくとも1つのデータ伝送プロトコルに従って管理された、データを送信するための少なくとも2つのリンクとを備えるネットワーク内でトランザクションを追跡するためのデバイスに関し、デバイスが、リンクによって送信されたトランザクションをピックアップするためにデータ伝送リンクに接続されたプローブを備える。一実施形態によれば、デバイスは、上記に述べられた方法を実施するように構成される。
【００１９】
一実施形態によれば、プローブは、トランザクションを同じ形式に変換するモジュールに関連付けられる。
【００２０】
一実施形態によれば、デバイスは、プローブによるメモリセルを備える1組みのメモリセルを備える。
【００２１】
一実施形態によれば、デバイスは、相関されたトランザクションの対を受け取り、ネットワーク内のトランザクション伝播の解析を実施するために情報を処理し、かつ/または情報を保存し、かつ/または可視化スクリーン上に情報を表示し、かつ/または伝送待ち時間を決定し、かつ/または伝送またはネットワーク負荷の統計を精緻化し、かつ/またはユーザによって定義されたプロセスの実施するように構成された少なくとも1つの出力モジュールを備える。
【００２２】
一実施形態は、コンピュータによって読取り可能かつ実行可能なサポート上で保存されており、コンピュータによって実行されるとき、上記に記載された方法を実施するように構成されたプログラムに関する。
【００２３】
本発明の実施形態について、それだけに限らないが添付の図に関連して、下記に述べられる。
【図面の簡単な説明】
【００２４】
【図１】マルチプロトコルネットワークオンチップを備えるシステムオンチップ、およびをネットワークオンチップ内のトランザクションの伝播を追跡するデバイスを概略的に示す図である。
【図２】一実施形態による、トランザクションの伝播を追跡するデバイスを概略的に示す図である。
【図３】図2に示されたデバイスのトランザクションの伝播を追跡するモジュールの概略図である。
【図４】図3に示されたモジュールのトランザクションを相関させるモジュールの概略図である。
【図５】図4に示されたモジュールのトランザクションを探索するモジュールの概略図である。
【図６】トランザクションを探索するモジュールによって実行されたステップシーケンスのフローチャートである。
【図７】プローブが接続された2つのリンクと、プローブによってピックアップされたトランザクション信号と、一時トランザクション記憶セルの状態とを備えるシステムの一部を示す図である。
【図８】プローブが接続されたいくつかのリンクと、プローブによってピックアップされたトランザクション信号と、一時トランザクション記憶セルの状態とを備えるシステムの一部を示す図である。
【発明を実施するための形態】
【００２５】
図1は、一実施形態による、トランザクションの伝播を追跡するデバイスTTSに接続されたプローブPBを備えるシステムオンチップSOCを示している。システムSOCは、それぞれ異なる抽象レベルで定義されたいくつかの部分を備える設計状態にある。たとえば、システムSOCは、クロックサイクル精度BCAの抽象レベルの第1の部分P1と、トランザクション抽象レベルTLMの第2の部分P2とを備える。システムSOCは、トランザクションイニシエータMP1、SPC1、SPC2、SPC3、トランザクションターゲットMM1、MM2、MM3、イニシエータとターゲットの間の相互接続ネットワークINTCと、イニシエータMP1、SPC2およびSPC3とネットワークINTCとの間のゲートウェイPS1、PS2、PS3とを備える。ネットワークINTCは、ノードND1、ND2、ND3を備える。ノードND1は、バスゲートウェイBP1によってノードND3にリンクされる。ノードND2は、バスゲートウェイBP2によってノードND3にリンクされる。イニシエータMP1は、ゲートウェイPS1によってノードND1にリンクされる。イニシエータSPC1は、ノードND1に接続される。イニシエータSPC2およびSPC3は、ゲートウェイPS2およびPS3によってノードND2にリンクされる。ノードND3は、トランザクションターゲットMM1、MM2およびMM3に接続される。システムコンポーネント間の各リンクは、プローブPBによって監視され、このプローブPBは、リンクによって送信された信号をリッスンし、伝送プロトコルによって定義された形式に信号を変換し、信号をデバイスTTSに送信する。イニシエータMP1は、たとえばシミュレートされた、または実際のマイクロプロセッサコアである。イニシエータSPC1、SPC2およびSPC3は、たとえば、実際の、またはそれぞれ異なり得る抽象レベルでモデル化された専門プロセスコンポーネントである。したがって、イニシエータSPC1は、たとえばトランザクションフローを生成するトラフィックジェネレータである。イニシエータSPC2およびSPC3は、たとえば、それぞれPVタイプおよびPVTタイプのトランザクションレベルモデルによってモデル化される。トランザクションターゲットMM1、MM2およびMM3は、たとえば実際のまたはシミュレートされたそれぞれ異なるモデルのメモリである。バスゲートウェイBP1、BP2は、たとえばバッファメモリである。
【００２６】
以下の説明では、用語「トランザクション」は、システムの2つのコンポーネント間で送信された要求または応答のメッセージを指す。
【００２７】
図2は、一実施形態による、トランザクションの伝播を追跡するデバイスTTSを示している。デバイスTTSは、一方の側はプローブPBに、もう一方の側は出力モジュールOUTMに接続されたトランザクションを追跡するモジュールTPPMを備える。モジュールTPPMは、プローブPBによって送信されたトランザクションデータを受け取る。モジュールTPPMは、アルゴリズムデータベースALDB、およびシステムネットワークトポロジSOCに関する情報MINFへのアクセスを有する。データベースALDBは、2つのトランザクションが相関するかどうか判定するために、システムネットワークSOC内で送信された1対のトランザクションのデータ上で実行可能なアルゴリズムを備える。情報MINFは、ネットワーク、すなわち具体的には、システムのコンポーネントが接続されたネットワークのすべてのリンクを定義する。モジュールTPPMは、システムネットワークSOC内のトランザクションが辿る経路を、ネットワーク内の隣接したプローブPBによって検出された対のトランザクションによってそれらの間で相関させることによって決定できるようにするように構成される。下記では、2つのプローブまたは2つのリンクは、それらの間に、トランザクションをピックアップしてよい他のプローブまたはリンクを備えない、2つのプローブまたは2つのリンクをリンクするネットワーク内に経路がある場合、ネットワーク内で隣接していると見なされる。
【００２８】
プローブPBは、プローブが接続されたデータ伝送リンク、および関連する伝送プロトコルが何であれ、検出された各トランザクションを一意の形式で変換するトランザクション適応モジュールTADを備える。場合によっては、具体的にはプローブが第三者によって設計された場合は、モジュールTADは、プローブの外部にあってよい。次いで、モジュールTADは、プローブの出力データの形式に適応される。プローブPBは、受信信号からのトランザクションを構成するために有限状態機械FSMをも備える。
【００２９】
モジュールTADは、プローブPBによってピックアップされた各トランザクションを、要求または応答開始イベントと、要求または応答内容と、要求または応答終了イベントとを備えるデータセットの形で供給するように構成される。要求または応答開始および終了イベントは、プローブ識別子PBと、プローブによるイベントの検出日付と、トランザクション識別子とを備える。応答終了イベントは、対応する要求トランザクションの識別子をも備える。要求また応答内容は、要求または応答内容データに関連するプローブ識別子を備える。内容データは、転送された複数のデータブロックの全体的なサイズと、データブロックのサイズを指定する転送されるデータの長さと、転送されたデータの宛先アドレスとを備える。内容データは、具体的には、いくつかのプロトコルによって課された特定性を考慮に入れることができるように、オプションのパラメータを備えることもできる。
【００３０】
トランザクションは、システムコンポーネントSOCをシミュレートするコンポーネントシミュレーションモジュールTRNPによってモジュールTPPM内に入れることもできる。そのために、モジュールTRNPは、たとえば、事前定義されたときにトランザクションベースTRDBから来るトランザクションをモジュールTPPMに送信するように構成される。
【００３１】
出力モジュールOUTMは、相関するトランザクション対、およびそのそれぞれの内容を受け取り、ネットワーク内のトランザクションの伝播の解析を実施するために情報を処理し、あるいは情報を保存し、または可視化スクリーン上に情報を表示するように構成される。したがって、モジュールOUTMは、伝送待ち時間を決定し、伝送統計またはネットワーク負荷を精緻化し、あるいはユーザによって定義された他のプロセスを実施するように構成されてよい。
【００３２】
図3は、トランザクションTPPMを追跡するモジュールの実施形態を示している。モジュールTPPMは、トランザクション登録モジュールTREGと、1組の一時トランザクション記憶セルTRSTと、トランザクション相関モジュールTPLKと、プローブ登録モジュールPREGと、構成データプロセスモジュールCPARとを備える。モジュールTPPMは、システムアーキテクチャSOCを表すデータを備えるデータベースSARC、ならびにデータベースDARCをも備え、このデータベースDARCは具体的には、システムSOCの2つのコンポーネント間、具体的には2つの隣接したプローブPB間のデフォルトリンクの仕様を備える。ベースSARCのデータは、具体的には、システムSOCの隣接したプローブの各対のトランザクション相関アルゴリズムを示し、このアルゴリズムが、ベースALDB内で定義される。プローブが特に性能上の理由でアクティブ化されない場合、ネットワークのリンクを維持するために、アクティブ化されていないプローブの2つの隣接したアクティブプローブ間のデータベースSARC内にリンクが作成される。
【００３３】
モジュールPREGは、たとえばデバイスTTSの再設定段階の間、プローブPB登録要求を受け取るように構成され、それぞれのプローブPB登録要求が、プローブ識別子と、プローブが接続されたリンクの識別子とを備える。登録要求を受け取ると、モジュールPREGは、登録すべきプローブについてセットTRST内にセルP1〜Pnを作成し、モジュールCPARに、システムアーキテクチャSOCを表すベースSARC内にリンク識別子に関するプローブの識別子を登録するよう求める。
【００３４】
モジュールTREGは、プローブPBからトランザクションデータTINFを受信する。トランザクションTINFが要求タイプである場合、モジュールTREGは、受信されたトランザクションデータを送信したプローブに割り当てられたセルP1〜Pnを求めてセットTRSTを探索する。プローブにセルが割り当てられている場合、モジュールTRSTは、モジュールTPLKにトランザクションデータを転送し、受信されたトランザクションデータを送信したプローブに割り当てられたセルP1〜Pn内にトランザクションデータを登録する。応答タイプのトランザクションは、セルP1〜Pnに記憶されない。
【００３５】
モジュールTPLKは、モジュールTREGによって送信された、処理すべき各トランザクションを、セットTRSTのセルのうちの1つのセル内に以前に記憶された「関連トランザクション」と呼ばれる1つまたは複数のトランザクションに相関させるように構成される。そのために、モジュールTPLKは、システムアーキテクチャデータSARCおよび相関アルゴリズムデータベースALDBを使用して、受信された各トランザクションの関連トランザクションを求めてセットTRSTを探索する。関連トランザクションが見つかる場合、モジュールTPLKは、それが見つかったセルP1〜Pnからそれを取り除き、受信されたトランザクション、および見つかったトランザクションを出力モジュールOUTMに送信する。
【００３６】
図4は、モジュールTPLKの一実施形態を示している。モジュールTPLKは、処理すべきトランザクションTINFを発したプローブに隣接したプローブを決定するモジュールLMDと、潜在的に関連するトランザクションを求めてセルセットTRSTを探索するモジュールPTRSと、潜在的に関連するトランザクションのうちから関連トランザクションを選択するモジュールTRLとを備える。
【００３７】
モジュールLMDは、プローブ識別子を受け取り、受け取られた識別子PBNに対応するプローブに隣接するすべてのプローブ、すなわち他のプローブを含まないシステムSOC内の経路を介してそれにリンクされたプローブを求めてベースSARCを探索する。モジュールPTRSは、処理すべきトランザクションデータTINF、およびモジュールLMDによって供給された隣接プローブ識別子APBを受け取り、見つかった各隣接プローブのP1〜Pn内で、セルに格納された最後のトランザクションを読み出す。セルP1〜Pn内で読み出されたトランザクションは、相関を検出するために、処理すべきトランザクションTINFと比較される。相関が見つからない場合は、モジュールPTRSは、読み出されたトランザクションとの相関が検出され、またはセルのすべてのトランザクションが読み出されるまで、見つかった各隣接プローブのセルP1〜Pn内で、セル内で読み出された最後のセルに続くトランザクションなどを読み出す。読み出され、処理すべきTINFに相関されたトランザクションTINFは、それに関連するトランザクションと見なされ、モジュールTRLに供給される。通常(部分相関の場合を除く)、モジュールTREGから受け取られた各トランザクションTINFについて、ただ一つの関連トランザクションを見つけなければならない。いくつかの関連トランザクションがセットTRSTから抽出される場合、モジュールTRLは、それらのうちの1つを選択し、処理されたトランザクションTINFと共に、出力モジュールOUTMにそれを供給する。
【００３８】
図5は、モジュールPTRSの一実施形態を示している。モジュールPTRSは、トランザクション抽出モジュールTREXと、アルゴリズム探索モジュールSALDと、アルゴリズム実行モジュールALEXと、トランザクション選択モジュールTRTとを備える。モジュールTREXは、処理すべきトランザクションTINFを送信したプローブPBNに隣接した各プローブの識別子APBを受け取る。モジュールTREXは、図6に示されたステップシーケンスのステップS1からS6を実行する。ステップS1で、モジュールTREXは、トランザクションデータTINFから、トランザクションが応答タイプのものであるかどうか判定する。トランザクションTINFが応答タイプのものである場合は、モジュールTREXは、ステップS2で、トランザクションTINFを送信したプローブPBが接続されたリンクが、「Write Posting」タイプのものであるかどうか、すなわち要求がネットワーク内で伝播する前にリンクが要求への応答を送信できるかどうか判定する。モジュールTREXは、そのために、データベースSARCにアクセスしてよい。このリンクが「Write Posting」タイプのものでない場合は、モジュールTREXは、ステップS3およびS4を実行し、ステップS3およびS4の間、それは、トランザクションTINFに対応する要求タイプのトランザクションを求めて、トランザクションTINFを送信したプローブのセルP1〜Pnを探索する(ステップS3)。要求タイプのトランザクションがセル内に見つかる場合(ステップS4)、それはセルから取り除かれる(ステップS5)。次いで、トランザクションTINFは、それが対応する要求の識別子を含んでいるため、応答タイプのトランザクションを別のトランザクションに相関させる必要がないので、処理されずに出力モジュールOUTMに送信される。
【００３９】
トランザクションTINFが要求タイプのものある場合、モジュールTREXは、受け取られたプローブ識別子APBに対応するトランザクションデータを各セルP1〜Pn内で読み出す(ステップS6)。したがってトランザクションTINFに潜在的に関連する各抽出されたトランザクションは、モジュールSALDに供給される。モジュールSALDは、トランザクションのタイプ、および潜在的に関連する要求を送信した隣接したAPBが接続されたリンクのタイプ、ならびに処理されたトランザクションTINFを送信したプローブに従って、トランザクション相関アルゴリズムを求めてベースALDBを探索する。モジュールALEXは、処理されたトランザクションTINFのトランザクションデータTINF、および潜在的に関連するトランザクションのデータ上で、選択されたアルゴリズムを実行する。したがって、モジュールALEXは、トランザクション対に対するアルゴリズムの実行の結果をモジュールTRTに供給する。並行して、モジュールTRTは、アルゴリズムが実行された関連トランザクションPTRのトランザクションデータを受け取る。アルゴリズムの実行の結果が肯定的である場合、潜在的に関連するトランザクションは、関連トランザクションPTRであり、モジュールTRTは、関連トランザクションPTRのデータを供給する。次いで、モジュールTREXは、関連トランザクションPTRを、それが読み出されたセルP1〜Pnから取り除く。
【００４０】
トランザクション相関アルゴリズムは、たとえば2つのトランザクションの各データブロックを2つずつ比較すること、および2つのトランザクションのすべてのブロックが厳密に同一である場合に肯定的な相関結果を提供することにある。別の相関アルゴリズムは、トランザクションTINFが、潜在的に関連するトランザクションの一部に対応するかどうか判定することにあってよい。この場合には、2つのトランザクションは相関していると見なされ、トランザクションTINFに対応する関連トランザクションの一部だけが、モジュールTREXによってセルP1〜Pnから取り除かれ、または相関するとマーキングされる。
【００４１】
別の相関アルゴリズムは、潜在的に関連するトランザクションが処理されたトランザクションTINFの一部に対応するかどうか判定することにあってよい。この場合、関連トランザクションに対応する処理されたトランザクションの一部だけが相関すると見なされ、モジュールSALDは、処理されたトランザクションの内容全体が、関連トランザクションに相関されるまで、処理されたトランザクションを別の潜在的に関連するトランザクションに相関させる別の試みを実施しなければならない。この場合、モジュールTRLは、関連トランザクションに関連付けられた処理されたトランザクション対を、見つかった関連トランザクションと同じ数だけ供給する。
【００４２】
図7は、3つのコンポーネントC1、C2、C3を備えるシステムオンチップと、コンポーネントC1とC2の間のリンク、およびコンポーネントC2とC3の間のリンクを示している。2つのリンクはそれぞれ、プローブPB1、PB2に接続され、プローブが、トランザクションの伝播を追跡するデバイスTTSに接続される。図7は、プローブPB1、PB2によってピックアップされたトランザクション信号、ならびに連続した時間t1、t2、t3およびt4にプローブPB1およびPB2に割り当てられたセットTRSTのセルP1、P2の内容のクロノグラム(chronogram)をも示している。コンポーネントC1は、コンポーネントC2への書込み要求タイプのトランザクションREQ1を発する。トランザクションREQ1を受信すると、コンポーネントC2は、コンポーネントC1に応答して、応答タイプのトランザクションREP1を送信し、要求REQ1の内容を繰り返す書込み要求タイプREQ2の新しいトランザクションの形でコンポーネントC3にトランザクションREQ1を伝播する。トランザクションREQ2を受信した後に、コンポーネントC3は、要求を実行し、コンポーネントC2に応答して応答タイプのトランザクションREP2を送信する。プローブPB1は、時間t1およびt2に、トランザクションREQ1およびREP1を連続してピックアップし、プローブPB2は、時間t3およびt4に、トランザクションREQ2およびREP2を連続してピックアップする。
【００４３】
通常、応答REP1は、要求REQ1の実行の実際の成功または失敗についてコンポーネントC1に通知できるように応答REP2の情報を含むべきであるので、応答REP2を受信した後にだけ、コンポーネントC2によって出されるべきである。実行速度の理由で、一部のシステムは、中間コンポーネント、ここではC2が要求を受け取るとすぐに、要求を出すコンポーネント、ここではC1に応答することからなる、図7に示された操作に従う。その結果、因果関係の原理の違反が生じる。したがって、図7の連続的な線の太い矢印は、トランザクション間の因果関係のリンクを表しており、点線の太い矢印は、因果関係のリンクの違反を表している。因果関係原理の違反について理解できるようにするために、コンポーネントC1とC2の間のリンクは、ベースSARC内でタイプ「Write Posting」のものとして構成されるが、コンポーネントC2とC3の間のリンクはそうではない。その結果、デバイスTTSは、トランザクションREP1を処理するとき、図6に示されたシーケンスに従って、プローブPB1のセルP1からトランザクションREQ1を削除しないことになる。そのようにして、デバイスは、トランザクションREQ2を処理するとき、デバイスTTSによって、トランザクションREQ1に相関され得る。したがって、トランザクションREQ1は、セルP2に挿入される要求REQ2をプローブPB2が受け取った後にだけ、セルP1から取り除かれる。デバイスがトランザクションREP2を処理するとき、トランザクションREP2は、応答トランザクションが対応する要求トランザクションの識別子を含むという事実により、トランザクションREQ2に相関される。次いで、トランザクションREQ2は、セルP2から取り除かれる。プローブREP1がプローブPB1によってピックアップされる前にトランザクションREQ2がプローブPB2によってピックアップされる場合、トランザクションREQ2は、トランザクションREQ1に既に相関されており、したがってトランザクションREQ1は、トランザクションREP1が処理されるとき、もはやセル内にないことに留意されたい。
【００４４】
図8は、4つのコンポーネントC4、C5、C6、C7と、4つのコンポーネントが接続されたネットワークノードND4とを備えるシステムオンチップの一部を示しており、コンポーネントC4〜C7とネットワークノードND4の間の各リンクは、プローブPB4、PB5、PB6、PB7に接続される。プローブPB4〜PB7は、他のプローブがそれらの間に配置されないならば、ベースSARC内で隣接すると見なされる。図8は、第1のトランザクションと、その内容が第1のトランザクションの内容の一部に相関されるべきいくつかの後続のトランザクションとの間の相関を示している。そのために、図8は、プローブPB4〜PB7によってピックアップされたトランザクション信号、ならびに連続した時間t5、t6、t7、t8にプローブPB4〜PB7に割り当てられたセットTRSTのセルP4、P5、P6、P7の内容のクロノグラムをも示している。図を単純にするために、これらの時間のそれぞれにおいて、その内容が修正されるセルP4〜P7だけが示されている。
【００４５】
時間t5で、プローブPB4は、コンポーネントC4とノードND4の間のリンク上で、通常のサイズの3つのデータブロックB1、B2、B3を備えるトランザクションをピックアップする。トランザクションB1〜B3は、プローブPB4のセルP4に挿入される。時間t6で、コンポーネントC6とノードND4の間のプローブPB6は、プローブPB6のセルP6に挿入されるブロックB3を備えるトランザクションをピックアップする。ブロックB3を備えるトランザクションをデバイスTTSによって処理することによって、セルP4内に記憶されたトランザクションB1〜B3のブロックB3にそれが相関することになる。したがって、ブロックB3だけが、セルP4から取り除かれる。時間t7で、コンポーネントC5とノードND4の間のプローブPB5は、プローブPB5のセルP5に挿入されるブロックB1を備えるトランザクションをピックアップする。次いで、ブロックB1を備えるトランザクションは、デバイスTTSによって、セルP4内に記憶されたトランザクションB1〜B3のブロックB1に相関される。したがって、ブロックB1は、セルP4から取り除かれる。時間t8で、コンポーネントC7とノードND4の間のプローブPB7は、プローブPB7のセルP7に挿入されるブロックB2を備えるトランザクションをピックアップする。次いで、ブロックB2を備えるトランザクションは、デバイスTTSによって、セルP4内に記憶されたトランザクションB1〜B3のブロックB2に相関される。したがって、ブロックB2は最終的に、セルP4から取り除かれる。ベースALDB内に提供され、プローブPB1〜PB4が接続されたリンクに割り当てられたアルゴリズムにより、セットTRSTのセル内に格納された別のトランザクションの一部とのトランザクションの部分相関が構成される。
【００４６】
セル内のトランザクションに相関するブロックを削除するのではなく、トランザクションの各ブロックとの関係で、相関マークがセル内に記憶されてよいことに留意されたい。ブロックの各相関では、ブロックに対応するマークが、セル内で更新され、トランザクションのすべてのブロックが、相関するとマーキングされるとき、トランザクションは、セルから取り除かれる。
【００４７】
デバイスTTSは、テストすべきシステムSOCをシミュレートし、またはそれに接続され、あるいはシステムの一部をシミュレートし、システムの他の部分に接続されるコンピュータによって実行されたソフトウェアの形で作成されてよい。
【００４８】
本発明は、様々な実施形態および適用が可能であることが当業者には明らかであろう。具体的には、本発明は、システムオンチップに限定されないが、データ伝送ネットワークを備える任意のシステムに適用されてよい。さらに、テストすべきシステムのリンクにそれぞれが割り当てられたセル内にトランザクションを記憶することは必要ない。たとえばリンクまたはプローブに関連して、記憶されたトランザクションがどのリンク上でピックアップされたか決定できるようにするために、相関させるべき各トランザクションを単に記憶する必要がある。効率が下がることがあり得るが、関連トランザクションの探索を、相関させるべきトランザクションがピックアップされたリンクに隣接したリンク内でピックアップされたトランザクションに限定することも必要ない。
【００４９】
いくつかの単純な方法では、1つのトランザクション比較アルゴリズムで十分であり得る。したがって、2つのトランザクション間の相関を検出するこうしたアルゴリズムを選択するためのステップを提供することは必要ない。
【００５０】
本発明は、検出された相関に関する情報の出力モジュールOUTMへの送信の特定の形式にも限定されない。したがって、2つのトランザクションを間の相関リンクは、上述されたように、トランザクションおよび関連トランザクションに関するすべての情報を連続的に供給することによって、またはトランザクションに関するデータ、および以前に出力モジュールに送信された関連トランザクションの識別子を単に供給することによって、モジュールOUTMに送信されてよい。それは、出力モジュールにアクセス可能なメモリ内でピックアップされたすべてのトランザクションを記憶し、それらの間で相関されたトランザクションの識別子の対だけをモジュールに送信するために提供することもできる。
【００５１】
さらに、本発明は、上記に述べられたトランザクション比較アルゴリズムに限定されない。確かに、それには、他のトランザクション比較アルゴリズム、具体的には、特定のトランザクションの内容に適応されたアルゴリズムが提供されてよい。
【００５２】
本発明は、特定のトランザクション形式に限定されず、この形式の構造は、任意の選択からもたらされる。
【符号の説明】
【００５３】
ALDB  アルゴリズムデータベース/データベース/ベース/相関アルゴリズムデータベース
ALEX  アルゴリズム実行モジュール
APB  隣接プローブ識別子/プローブ/プローブ識別子
BP1  バスゲートウェイ
BP2  バスゲートウェイ
B1  データブロック
B2  データブロック
B3  データブロック
CPAR  構成データプロセスモジュール
C1  コンポーネント
C2  コンポーネント
C3  コンポーネント
C4  コンポーネント
C5  コンポーネント
C6  コンポーネント
C7  コンポーネント
DARC  データベース
FSM  有限状態機械
INTC  相互接続ネットワーク/ネットワーク
LMD  プローブを決定するモジュール
MINF  情報
MM1  トランザクションターゲット
MM2  トランザクションターゲット
MM3  トランザクションターゲット
MP1  トランザクションイニシエータ
ND1  ノード
ND2  ノード
ND3  ノード
ND4  ネットワークノード
OUTM  出力モジュール
PB  プローブ/プローブ識別子
PBN  識別子/プローブ
PB1  プローブ
PB2  プローブ
PB4  ブローブ
PB5  ブローブ
PB6  ブローブ
PB7  ブローブ
PREG  プローブ登録モジュール
PS1  ゲートウェイ
PS2  ゲートウェイ
PS3  ゲートウェイ
PTR  関連トランザクション/トランザクション
PTRS  モジュール
P1  セル/第1の部分
P2  セル/第2の部分
P4  セル
P5  セル
P6  セル
P7  セル
Pn  セル  
REP1  トランザクション
REP2  トランザクション
REQ1  トランザクション
REQ2  トランザクション
SALD  アルゴリズム探索モジュール
SARC  データベース/ベース/システムアーキテクチャデータ
SOC  システムオンチップ/システムネットワークトポロジ/システムネットワーク
SPC1  トランザクションイニシエータ
SPC2  トランザクションイニシエータ
SPC3  トランザクションイニシエータ
TAD  トランザクション適応モジュール
TINF  トランザクションデータ/トランザクション
TPLK  トランザクション相関モジュール
TPPM  トランザクションを追跡するモジュール
TRDB  トランザクションベース
TREG  トランザクション登録モジュール
TRL  関連トランザクションを選択するモジュール
TRNP  コンポーネントシミュレーションモジュール
TRST  一時トランザクション記憶セル/メモリセル/セット/セルセット
TRL  モジュール
TREX  トランザクション抽出モジュール/モジュール
TRT  トランザクション選択モジュール
TTS  トランザクション
t1  時間
t2  時間
t3  時間
t4  時間
t5  時間
t6  時間
t7  時間
t8  時間
【図１】
0005633047.tif 000002
【図２】
0005633047.tif 000003
【図３】
0005633047.tif 000004
【図４】
0005633047.tif 000005
【図５】
0005633047.tif 000006
【図６】
0005633047.tif 000007
【図７】
0005633047.tif 000008
【図８】
0005633047.tif 000009