(57)【要約】  複数の処理ユニットと、前記処理ユニットの間の通信を可能にするよう前記処理ユニットを接続するインターコネクトと、前記処理ユニットの間の通信においてイベントを検出する少なくとも１つのイベントモニタとを有する電子装置が提供される。電子装置はさらに、少なくとも１つのイベントモニタにより検出された１以上のイベントに従って前記インターコネクトを制御する第１コントローラユニットを有する。
2010500807.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理ユニットと、
前記処理ユニットの間の通信を可能にするよう前記処理ユニットを接続するインターコネクトと、
前記処理ユニットの間の通信においてイベントを検出する少なくとも１つのイベントモニタと、
少なくとも１つのイベントモニタにより検出された１以上のイベントに従って前記インターコネクトを制御する第１コントローラユニットと、
を有する電子装置。
【請求項２】
前記コントローラユニットは、前記インターコネクトを介し前記処理ユニットの間の通信を制御するインターコネクトコントローラとモニタコントローラとを有する、請求項１記載の電子装置。
【請求項３】
前記モニタコントローラは、前記イベントモニタにおいて、前記処理ユニットにおいて及び／又は前記インターコネクトコントローラ若しくは前記インターコネクトにおいて直接的に設定を更新するよう構成される、請求項２記載の電子装置。
【請求項４】
イベントモニタは、前記処理ユニット、前記インターコネクト及びＩ／Ｏインタフェース又はモニタインタフェースの少なくとも１つに関連付けされる、請求項１記載の電子装置。
【請求項５】
前記イベントモニタ、前記モニタコントローラ、前記インターコネクトコントローラ及び／又は前記インターコネクトは、トランザクションに対して動作する、請求項３又は４記載の電子装置。
【請求項６】
前記イベントは、所定の及び／又はプログラマブルイベントの所定の又はプログラマブルシーケンスを含む、請求項１記載の電子装置。
【請求項７】
前記制御ユニットは、所定の又はプログラマブル処理及び／又はアクションの所定の又はプログラマブルシーケンスを実行するよう前記インターコネクトを制御するよう構成される、請求項１記載の電子装置。
【請求項８】
所定の又はプログラマブル処理は、制御指向及び／又はデータ指向処理とすることができ、
前記制御指向処理は、停止、シングルステップ、マルチステップ、継続及びリセット処理を含み、
前記データ指向処理は、前記処理ユニットの状態及び／又はインターコネクト状態の入出力を含む、請求項７記載の電子装置。
【請求項９】
前記制御指向処理の単位は、クロックサイクルレベル、ハンドシェイク、リクエスト／レスポンス、トランザクション又はトランザクショングループ単位とすることができる、請求項６乃至８何れか一項記載の電子装置。
【請求項１０】
前記モニタコントローラは、前記処理ユニット、前記インターコネクト、前記イベントモニタ及び／又は前記第１コントローラユニットの状態を入出力するよう構成される、請求項６記載の電子装置。
【請求項１１】
前記インターコネクトは、ネットワークベースインターコネクト又はバスベースインターコネクトを構成する、請求項１記載の電子装置。
【請求項１２】
前記イベントモニタ及び前記コントローラユニットを接続するモニタ通信ユニットをさらに有する、請求項１乃至１１何れか一項記載の電子装置。
【請求項１３】
前記第１コントローラユニットは、インターコネクトコントローラ及び／又はモニタコントローラを有する、請求項１乃至１２何れか一項記載の電子装置。
【請求項１４】
前記複数の処理ユニットの少なくとも１つは、オンチップメモリ、オフチップメモリ又はメモリコントローラを有する、請求項１乃至１３何れか一項記載の電子装置。
【請求項１５】
複数の処理ユニットと、
前記処理ユニットの間の通信を可能にするよう前記処理ユニットを接続するインターコネクトと、
前記処理ユニットの間の通信においてイベントを検出する少なくとも１つのイベントモニタと、
少なくとも１つのイベントモニタにより検出された１以上のイベントに従って前記インターコネクトを制御する第１コントローラユニットと、
を有するシステム・オン・チップ。
【請求項１６】
複数の処理ユニットと、前記処理ユニットの間の通信を可能にするよう前記処理ユニットを接続するインターコネクトとを有する電子装置及び／又はシステム・オン・チップにおける通信制御方法であって、
前記処理ユニットの間の通信においてイベントを検出するステップと、
前記少なくとも１つのイベントモニタにより検出されるイベントの１つに従って前記インターコネクトを制御するステップと、
を有する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子装置及び電子装置における通信制御方法に関する。
【背景技術】
【０００２】
近年、電子回路又は集積回路（ＩＣ）は、その機能、プログラマブルコンポーネントの個数及びそれらの通信に関して複雑さを増してきている。このため、ソフトウェア及びハードウェアの（共同）設計の複雑さもまた増大し、効率的な検証、デバッグ及び最適化が要求される。
【０００３】
ＡＳＩＣ、ＡＳＳＰ、ＦＰＧＡ、ＰＬＤ、ＣＰＬＤ及び構造化されたＡＳＩＣ装置を含む最新のＩＣの設計及び製造では、ユーザインタラクション又はイベント（シーケンス）に応答したデジタルプログラマブルコンポーネントの制御が可能とされ、（ソフトウェア及びハードウェア）設計検証及びシリコンデバッグにおいて非常に利用される。ｗｗｗ．ａｒｍ．ｃｏｍ／ｐｒｏｄｕｃｔｓ／ｓｏｌｕｔｉｏｎｓ／ＣｏｒｅＳｉｇｈｔ．ｈｔｍｌでは、１以上のプログラマブルコンポーネントを処理可能な制御システムが示されている。ソフトウェアからハードウェアの定義及び実現からのプログラマブルコンポーネントの一貫したレベルの制御を実行することによって、ソフトウェア及びハードウェアのデバッグ及び最適化についてのシリコン（パフォーマンス）解析の関係を可能にする高いシステム透過性が実現される。同様の制御システムが、設計ボトルネック／バグが特定及び解決されると典型的には取り除かれるが、Ｉ／Ｏインタフェースなどの専用の（部分的又は非プログラマブル／コンフィギュラブル）アクセラレータなどのハードワイヤコンポーネントの設計により頻繁に実現される。実際のシリコンのプロトタイプ／プロダクトにおけるハードワイヤコンポーネントの制御システムの実現は、何れの切断点をどこに設けるべきかＩＣの製造前に確定される必要があるため、より困難である。さらに、これらのシステムはしばしば、実行時のデータに依存する動作を示すため、キーオンチップイベントが発生する時点を予め正確に決定することを不可能でないが極めて困難にする。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の課題は、電子装置内の通信に対して向上した制御を備える電子装置を提供することである。
【課題を解決するための手段】
【０００５】
本発明は、請求項１記載の電子装置と、請求項１６記載の電子装置における通信制御方法とを提供する。従属項は、効果的な実施例を規定する。
【０００６】
このため、複数の処理ユニットと、前記処理ユニットの間の通信を可能にするよう前記処理ユニットを接続するインターコネクトと、前記処理ユニットの間の通信においてイベントを検出する少なくとも１つのイベントモニタとを有する電子装置が提供される。電子装置はさらに、少なくとも１つのイベントモニタにより検出された１以上のイベントに従って前記インターコネクトを制御する第１コントローラユニットを有する。
【０００７】
本発明の一特徴によると、前記コントローラユニットは、前記処理ユニットの間の通信を制御するインターコネクトコントローラ及び／又は前記インターコネクトを制御するためのモニタコントローラを有する。
【０００８】
本発明のさらなる特徴によると、前記モニタコントローラは、前記イベントモニタにおいて、前記処理ユニットにおいて及び／又は前記インターコネクトコントローラにおいて設定を更新するよう構成される。
【０００９】
本発明のさらなる特徴によると、イベントモニタは、前記処理ユニット、前記インターコネクト及びＩ／Ｏインタフェース又はモニタインタフェースの少なくとも１つに関連付けされる。
【００１０】
本発明のさらなる特徴によると、前記イベントモニタ、前記モニタコントローラ、前記インターコネクトコントローラ及び／又は前記インターコネクトは、トランザクションに対して動作する。
【００１１】
本発明のさらなる特徴によると、前記イベントは、所定の及び／又はプログラマブルイベントの所定の又はプログラマブルシーケンスを含む。
【００１２】
本発明の一特徴によると、前記制御ユニットは、所定の又はプログラマブル処理及び／又はアクションの所定の又はプログラマブルシーケンスを実行するよう前記インターコネクトを制御するよう構成される。
【００１３】
本発明の一特徴によると、所定の又はプログラマブル処理は、制御指向及び／又はデータ指向処理を構成するかもしれない。前記制御指向処理は、停止、シングルステップ、マルチステップ、継続及びリセット処理を含む。前記データ指向処理は、前記処理ユニットの状態及び／又はインターコネクト状態のダウンロード及びアップロードを含む。
【００１４】
本発明の一特徴によると、前記制御指向処理の単位は、クロックサイクルレベル、ハンドシェイク、リクエスト／レスポンス、トランザクション又はトランザクショングループ単位とすることができる。
【００１５】
本発明はまた、複数の処理ユニットと、前記処理ユニットの間の通信を可能にするよう前記処理ユニットを接続するインターコネクトとを有する電子装置及び／又はシステム・オン・チップにおける通信制御方法に関する。前記処理ユニットの間の通信においてイベントが検出される。前記少なくとも１つのイベントモニタにより検出されるイベントの１つに従って前記インターコネクトが制御される。
【００１６】
本発明はまた、複数の処理ユニットと、前記処理ユニットの間の通信を可能にするよう前記処理ユニットを接続するインターコネクトと、前記処理ユニットの間の通信においてイベントを検出する少なくとも１つのイベントモニタとを有するシステム・オン・チップに関する。当該システム・オン・チップはさらに、少なくとも１つのイベントモニタにより検出された１以上のイベントに従って前記インターコネクトを制御する第１コントローラユニットを有する。
【発明の効果】
【００１７】
本発明は、ハードウェアとソフトウェアの共同設計の収束を利用するというアイデアに関する。ハードウェア設計の最上位の抽象化レベルでは、電子装置の各コンポーネントは、トランザクションと呼ばれるハイレベルデータ表現、すなわち、トランザクションレベルを介し互いに通信している。ソフトウェア設計の最下位の抽象化レベルでは、すなわち、ソフトウェアがシステムのプログラマブルコンポーネントにマップされているレベルでは、アプリケーションソフトウェアを解析、検証及び調整するため、再びトランザクションレベルモデルが利用される。これは、ソフトウェアとハードウェアのエンジニアがシステムの実際の動作の同一の見解を共有することができるように、ソフトウェア設計者とハードウェア設計者の双方に共通の基準をトランザクションレベルにし、これにより、残りのハードウェア及びソフトウェアエラー又は非効率性のローカリゼーションを向上させる。さらにこれは、製品化に要する時間と、設計者たちに適切にフィードバックされるとき、ツールとフローの大きな低減と、製造プロセスの向上をもたらす。
【００１８】
トランザクションの具体例として、リード（ロード）、ロードリンクト、ライト（ストア）、限定ライト、タグ付け又は許可されたライト、フラッシュ、テスト・アンド・セット、セマフォ処理などがあげられる。トランザクションの具体例は、ＶＰＢ、ＡＰＢ、ＡＨＢ、ＡＸＩ、ＶＣＩ、ＯＣＰ、ＤＴＬ、ＳＴＢｕｓ、ＭＩＰＩ、ＰＣＩＥｘｐｒｅｓｓ、ＰＣＩなどのオンチップ及びボードレベル通信プロトコルに見つけることができる。これらのトランザクションは、リクエスト及び任意的なレスポンス段階を含む。ここでのトランザクションの定義は、メッセージパッシングプロトコルを含む。これらのプロトコルは、通常はリクエスト段階しか利用しない。一例となるトランザクションは、送信（プット、ライト）と受信（ゲット、リード）である。ここでのトランザクションの定義はさらに、中断、（電力管理、デバッグ、テスト）コマンドと、いわゆるサイドバンド信号などを含む。
【００１９】
本発明の効果及び実施例は、図面を参照してより詳細に説明される。
【図面の簡単な説明】
【００２０】
【図１】図１は、本発明によるシステム・オン・チップの実施例のアーキテクチャのブロック図を示す。
【図２】図２ａ及び２ｂは、ネットワーク及びバスにおいて通信に必要とされるコンポーネントのブロック図を示す。
【図３】図３は、本発明の実施例によるトランザクションベース及びサイクルベーストラフィックの基本図を示す。
【図４】図４ａ〜４ｄは、本発明の実施例による通信制御を介したシステム状態の進捗を示す。
【図５】図５は、本発明によるネットワーク・オン・チップを供えた電子装置の実施例のブロック図を示す。
【発明を実施するための形態】
【００２１】
図１は、本発明によるシステム・オン・チップの実施例のアーキテクチャのブロック図を示す。システム・オン・チップは、インターコネクトとして供するＩＰ通信ユニットＩＰＣＵにより互いに通信する複数のＩＰ（Ｉｎｔｅｌｌｅｃｔｕａｌ  Ｐｒｏｐｅｒｔｙ）ブロックＩＰを有する。通信ユニットＩＰＣＵは、単一の同質的なインターコネクト（ルータやバス及びブリッジなど）として実現されるか、又は複数の非同質的なインターコネクト（物理的には、スイッチ、バス、ルータ、ブリッジ、高速又は低速など、論理的には、データ、制御中断、デバッグ及び電力管理インターコネクトなど）を有するかもしれない。ＩＰ通信コントローラＩＰＣＣは、ＩＰブロックＩＰの間のトラフィックをＩＰ通信ユニットＩＰＣＵを介し制御する。ＩＰ通信コントローラＩＰＣＣは、中央コントローラ又は分散コントローラとして実現可能である。本発明によるシステム・オン・チップは、単一のダイ又はチップ上に実装されるか、又はＦＰＧＡ及びエミュレータを含む複数のダイ又はチップに拡張されるかもしれない。さらに、通信ユニット（インターコネクト）は、プロトタイプ化又は他の目的のため、ダイ間、チップ間、ボード間及びボード・ツー・（パーソナル）コンピュータインターコネクトを含むかもしれない。プロトタイプ化の場合、ＩＰブロックのいくつかはシミュレート又はエミュレートされ、又はＦＰＧＡ、エミュレータ又は（パーソナル）コンピュータ上に実装されるかもしれない。
【００２２】
ＩＰブロックＩＰは、処理ユニットとして実現され、プロセッサ、コプロセッサ、ＤＭＡコントローラ、メモリ、メモリコントローラなどを構成するかもしれない。
【００２３】
システム・オン・チップはさらに、複数のイベントモニタＥＭと、少なくとも１つのモニタコントローラＭＣとを有する。イベントモニタＥＭは、システム・オン・チップのＩＰブロック間の通信（データトラフィック、制御トラフィックなど）においてイベントを検出するのに供する。モニタコントローラＭＣは、イベントモニタＥＭによるイベントの検出に従って、ＩＰ通信ユニットＩＰＣＵを制御するよう構成される。イベントは、例えば、より高いレベルのトランザクション（リード／ライトインタラプト）又は同期イベント、システムコンフィギュレーションイベントなどにおけるクロックサイクル又はクロックサイクルセット毎の（低）ビットレベ、ワードなど各種抽象化レベルで規定されるかもしれない。イベントモニタＥＭは、所定の及び／又はプログラマブルなイベントが発生したか、及び／又はそれらが所定の及び／又はプログラマブルな順序で発生したか、それらがＩＰブロックＩＰからＩＰ通信ユニットＩＰＣＵに又はＩＰ通信ユニットＩＰＣＵ（インターコネクト）内を通過しているか検出するのに供する。さらに、イベントモニタＥＭは、ネットワーク・オン・チップバッファ充填若しくはアンダーフロー若しくはオーバフロー、パケットの欠落、特定の値を有するローカル若しくはエンド・ツー・エンドフロー制御、特定の値を有するパケット、リクエスト若しくはレスポンスメッセージのヘッダ若しくはペイロードなど、通信ユニットＩＰＣＵ（インターコネクトとして）に関するイベントを検出するかもしれない。特定の値に加えて、イベントモニタは、値の範囲、特定の値（又はそれらの範囲）の出現頻度をモニタし、複数の観察若しくはイベントを１つの複合的又は合成されたイベントに合成すると共に、上記可能性のすべての組み合わせであるかもしれない。好ましくは、イベントモニタＥＭは、インターコネクト及びそれのインタフェースとしてＩＰ通信ユニットＩＰＣＵ内の戦略的位置に配置される。このため、イベントモニタＥＭは、バスシステムのバスワイヤ、ルータ若しくはネットワークインタフェース又はネットワーク内のリンクに接続可能である。インタフェースは、ＩＰブロックを備えたインタフェース、Ｉ／ＯブロックＤＩＯ、ＩＰ通信コントローラＩＰＣＣ、内部若しくは外部メモリ及び／若しくはそれらのコントローラ／インタフェース並びに／又は外部インタフェースを含むかもしれない。
【００２４】
さらに、モニタ通信ユニットＭＣＵ及びイベントモニタＥＭのための専用の通信又はモニタインターコネクトを構成するモニタ通信ユニットＭＣＵ又はモニタインターコネクトが設けられる。あるいは、ＩＰ通信ユニットＩＰＣＵは、この目的のため利用可能である。
【００２５】
ＩＰ通信ユニットＩＰＣＵは、モニタコントローラＭＣが、例えば、デバッグモード、ＩＰ通信トラフィックの中断、オン・チップ若しくはオフ・チップメモリ上のＩＰブロック及び／又はＩＰ通信の各状態を開始するため、ＩＰ通信ユニットＩＰＣＵと通信する。モニタコントローラＭＣは、ＩＰ通信ユニットＩＰＣＵによりＩＰ通信ユニットＩＰＣＵと共に、イベントモニタＥＭ及びＩＰブロックＩＰに、検出対象となるイベントと対応するレスポンスに関する詳細をアップロードする。これは、例えば、メモリマップされたコンポーネントとしてイベントモニタＥＭを定義することによって、又はそれらをモニタリング／デバッグ管理プロトコル（電力管理プロトコルなど）によりアドレッシングすることによって実行可能である。さらに又はあるいは、専用のモニタ通信ユニットＭＣＵが利用されるかもしれない。
【００２６】
モニタコントローラＭＣは、イベントモニタＥＭを介し、ＩＰ通信ユニットを介し又はＪＴＡＧやＴＡＮなどの専用のテストバスを介しプログラム可能である。モニタコントローラは、イベントコントローラＭＣをメモリマップされたコンポーネントとして規定することによって、又はそれらをモニタリング／デバッグ管理プロトコル（電力管理プロトコルなど）によりアドレッシングすることによって、アドレッシング及びプログラム可能である。
【００２７】
ＩＰブロックＩＰに接続されるイベントモニタＥＭＩＰはまた、それらがモニタコントローラＭＣを介し制御可能となるように、モニタ通信ユニットＭＣＵに接続されてもよい。ＩＰブロックのためのこれらイベントモニタＥＭＩＰは、ＩＰブロックの外部に構成されてもよく、又はＩＰブロックの内部に実現されてもよい。さらに、これらのユニットは、何れか既存のモニタ手段を利用してもよい。このため、ＩＰ通信ユニットの観察と制御は、ＩＰブロックＩＰに拡張可能であり、電子システムの設計、検証及びデバッグに関する機会を拡大する。
【００２８】
図２ａ及び２ｂは、ネットワーク及び複数のバスとしての通信ユニットの各コンポーネントのブロック図を示す。図２ａでは、通信ユニットＩＰＣＵは、ネットワークベースインターコネクトとして実現される。ネットワークは、複数のネットワークインタフェースＮＩ（ＩＰブロックが接続される）、複数のルータＲ及び複数のチャネルを有する。図２ｂでは、通信ユニットはバスベースインターコネクトとして実現される。さらに、バスは複数のバスアダプタＢＡ、複数のバスＢ、ブリッジＢＲと共に、さらなるバスアダプタＢＡ（ＩＰブロックが接続される）を有する。
【００２９】
図３は、本発明の実施例によるトランザクションベース及びサイクルベーストラフィックの基本図を示す。トランザクションベースのビューはＴＢによりマークされ、サイクルベースのビューはＣＢによりマークされる。ＩＰ通信ユニットがネットワークベースインターコネクトとして実現される場合、データトラフィックは、典型的にはパケットに分割される。ＩＰ通信ユニットがバスベースインターコネクトとして実現される場合、データトラフィックはクロックサイクル毎にビット又はワードに分割される。しかしながら、両方のケースでは、データトラフィックは時間コヒーレントなトランザクションに再構成される必要がある。トランザクションコヒーレントなビューは、関連するすべての観察点が明確な状態にあるシステムの状態により定義される（リクエストが送信されたが、レスポンスが受信されない、リクエストが送信されたが、レスポンスが保留となっているなど）。これが成り立つ時点は存在しないかもしれず、図３によると、時間／トランザクションコヒーレントビューは、異なる時点におけるローカルビューをグローバルなコヒーレントビューに組み合わせる。複数のトランザクションが同時にアクティブとなり、分割又はパイプライン化される可能性があるため、ネットワークのパケット又はバスのビット／ワードの時間コヒーレントビューへの再構成は複雑なものとなりうる。さらに、トランザクションは、互いに相互関連しているかもしれない。従って、ビット／ワード又はパケットのトランザクションへの再構成が求められる場合、ローカルでオンチップな再構成が、オフチップ再構成より望ましいかもしれない。
【００３０】
図４ａ〜４ｄは、本発明の実施例による通信制御を介したシステム状態の進行を示す。特に、図３の図の異なるシナリオが示される。図４ａでは、データトラフィックのトランザクションレベルの停止が示される。図４ｂは、インタフェースＩＮにおける単一ステップの停止を示す。図４ｃは、インタフェースＩ２における３ステップの停止を示す。図４ｄは、インタフェースＩ１における２ステップの停止を示す。他の好ましい停止方法は、すべてのインタフェースにおいてＮステップである。このため、イベント又はイベントシーケンスが発生した場合、ＩＰ通信ユニットを介した通信を停止することができる。
【００３１】
さらなる実施例によると、システムデバッグ処理が実現される場合、ＩＰ通信ユニットＩＰＣＵを介したデータ通信は、所定のイベントがイベントモニタＥＭにより検出されると中断され、それはトランザクション切断点などに対応するかもしれない。従って、ＩＰブロックＩＰ、ＩＰ通信ユニットＩＰＣＵ及び／又はイベントモニタＥＭの各トランザクション状態が、さらなる解析のためバックグランドメモリにダンプ又は格納されるかもしれない。特に、バックグランドメモリにオンチップ又はオフチップにダンプ又は格納されるべきトランザクション状態は、例えば、モニタコントローラなどにより選択可能である。ここで、実際のアクティブなプロセス又はトランザクションに関するコヒーレントビューが生成され、メモリに格納可能である。さらに、トランザクションダンプは、モニタ通信ユニットＭＣＵ及び／又はＩＰ通信ユニットＩＰＣＵを介し実行可能である。モニタ通信ユニットＭＣＵは低〜中の帯域幅を有し、ＩＰ通信ユニットＩＰＣＵは高帯域幅を有するかもしれない。
【００３２】
好ましくは、イベントモニタＥＭ、ＩＰブロックＩＰ及び／又はＩＰ通信ユニットノードは、新たなトランザクション切断点がイベントモニタにロード又は更新され、トランザクションがＩＰブロックにアップロードできるように構成可能である。さらに、所定のイベントがイベントモニタＥＭにより検出された場合、ＩＰ通信データトラフィックは、図４ａ〜４ｄに示されるように、ステップ単位又は選択的に制御可能である。
【００３３】
さらなる実施例によると、システムパフォーマンスのモニタリング及び／又はローカル若しくはグローバル最適化のため、上述したイベントモニタＥＭは、発生したトランザクションシーケンスをモニタし、これらモニタされたトランザクションシーケンスが予想通りに発生したか、又は所定のトランザクションシーケンスが検出されたか判断する。これらが予想通りに発生しない場合、トランザクションシーケンスはシステムデバッグ中に訂正可能であり、又はシステムのパフォーマンス解析中に最適化可能である。イベントモニタＥＭによって、特定のトランザクションの発生がまた計数できる。さらに、イベントモニタＥＭは、通信ユニットの実際のスループットをモニタするかもしれない。従って、イベントモニタＥＭによって、シリコンによる実際の電子装置又は電子回路が設計要求を満たしているか判断することができる。満たしていない場合、システムパフォーマンスは、例えば、通信の優先順位付けを調整することによって最適化可能である。これは、ネットワーク・オン・チップにおける保証されたスループットの通信とベストエフォートな通信を相互に交換することによって実行可能である。あるいは、ネットワーク・オン・チップ内からネットワーク・オン・チップへのベストエフォートトラフィックの許可は、規制可能である。ＩＰ通信ユニットＩＰＣＵは、各種優先順位においてトランザクションを書き出すのに利用される。各種優先順位は、ネットワーク又はバス全体を要求する上位の優先順位から、システム動作を中断することなくメモリにダンプされる非介入的なトランザクションなどのための低優先順位まで含むかもしれない。
【００３４】
好ましくは、イベントモニタＥＭは、トランザクションレベルなどの特定の抽象化レベルに基づきイベントを認識する。さらに、検出されたイベントは、バス、ルータ、ネットワークインタフェースなどの通信コンポーネントの所定の又はプログラマブルなイベントと比較されるかもしれない。さらに、検出されたイベントは、計算コンポーネントの所定の又はプログラマブルなイベントと比較されるべきである。さらに、検出対象となる所定の又はプログラマブルなイベントは、ローカルに格納可能である。検出されると、タイムスタンプが検出されたイベントと関連付け可能である。さらに、イベントの出現回数が、それに係るタイムスタンプと共に検出される。
【００３５】
上記課題を達成するため、モニタコントローラＭＣは、好ましくは、データトラフィックを停止し（図４ａ〜４ｄに示されるように）、データトラフィックを再スタートするため、ＩＰ通信コントローラＩＰＣＣの動作を制御し、これによりＩＰ通信ユニットＩＰＣＵの動作を制御するため、ＩＰ通信コントローラＩＰＣＣに接続されるかもしれない。データトラフィックのステップ単位の再スタートは、システムの一部又はすべてに関係するかもしれない。これは、例えば、ＩＰブロックＩＰ、ＩＰ通信ユニットＩＰＣＵ及び／又はイベントモニタＥＭにおいてトランザクションをリフレッシュ及び／又は変更した後に実行可能である。さらに、モニタコントローラＭＣは、優先順位及び／又は非侵入性の各レベルにおけるＩＰブロック、ＩＰ通信ユニットＩＰＣＵ及びイベントモニタＥＭからのトランザクションの読み出しを制御する。
【００３６】
上述されるように、イベントモニタＥＭとモニタコントローラＭＣとの間の通信は、専用のモニタ通信ユニットＭＣＵ又はＩＰ通信ユニットＩＰＣＵを介し実行される。専用のモニタ通信ユニットＭＣＵは、ＤＴＬ、ＡＨＢ又はＪＴＡＥなどのネットワーク又はバスとして実現可能である。
【００３７】
図５は、第２実施例によるシステム・オン・チップのブロック図を示す。ここで、インターコネクトは、ＩＰブロックＩＰ（ＩＰ１〜４）を接続するためのネットワーク・オン・チップＮとして実現される。ネットワークインタフェースＮＩが、ＩＰブロックＩＰの少なくとも１つに関連付けされる。ネットワーク・オン・チップＮはさらに、ネットワークコントローラＮＣにより制御される複数のルータＲを有してもよい。好ましくは、イベントモニタＥＭは、イベント又はトランザクションを検出するため、ＩＰブロックＩＰとの間のデータトラフィックを観察するようネットワークインタフェースＮＩに接続される。ネットワークインタフェースＮＩに隣接するイベントモニタＥＭの位置は、ネットワークインタフェースＮＩが確立されたネットワークパスのアクノリッジメントのリクエストを行うとき効果的である。さらに、ＩＰデータがパケット化され、ネットワークパッケージがネットワークインタフェースＮＩにおいて分解される。イベントモニタＥＭがＩＰブロックに直接接続される図１の実現形態と対照的に、第２実施例によるイベントモニタＥＭの個数を少なく維持することが可能である。さらに、イベントモニタＥＭは、イベントの検出のためネットワーク・オン・チップ上の通信トラフィックをモニタするため、ネットワーク・オン・チップにおいてルータＲに接続されてもよい。さらに、イベントモニタＥＭはまた、モニタコントローラＭＣに接続されてもよい。モニタコントローラＭＣは、必要に応じてネットワーク・オン・チップ上のデータトラフィックを停止するため、ＩＰ通信コントローラＩＰＣＣに対応するネットワークコントローラＮＣを制御するよう構成される。本実施例では、モニタ通信ユニットとＩＰ通信ユニットは、ネットワーク・オン・チップとして実装される。図５によると、インターコネクトＮは、イベントモニタＥＭとモニタコントローラＭＣとを有する。しかしながら、本発明によるインターコネクトＮの既知のインターコネクトＮに関する実際の貢献は、イベントモニタＥＭとモニタコントローラＭＣが図５の破線ボックスの外側に配置される構成により表されるであろう。
【００３８】
図示された例では、すべてのトランザクションは１つのパケットに収容されるかもしれない。すべてのパケットは、１つのパス又は接続を介し送信可能である。あるいは又はさらに、トランザクションは複数のパケットに分割又は伸張されるかもしれない。さらに、パケットはまた、異なるパスを介し移動するかもしれない。図示された例によると、プロセッサＩＰ１は、データがプロセッサＩＰ３によりリフレッシュされたとき、メモリＩＰ２からデータを読み取る必要がある。プロセッサＩＰ３によるリフレッシュは、ネットワークインタフェースＮＩ２に接続されるイベントモニタＥＭ２によりモニタ可能である。イベントモニタＥＭ２は、プロセッサＩＰ３がメモリＩＰ２のデータをリフレッシュする時点を決定するよう構成されてもよい。従って、イベントモニタＥＭ２が、プロセッサＩＰ３がメモリＩＰ２のデータをリフレッシュしたことを検出した場合、当該情報は、プロセッサＩＰ３による１つのライトアクションの後にプロセッサＩＰ１の２回のリードアクションが続く場合、すべてのネットワーク通信を停止するモニタコントローラＭＣに転送される。ネットワーク通信が停止された場合、選択されたネットワークインタフェース及びルータの各状態は、プロセッサＩＰ３がすでに新たなデータを送信したか、又はデータがネットワーク内に格納されているかモニタするのに必要とされ、さらなる解析のためダンプすることが可能である。
【００３９】
ネットワークインタフェースとルータとの決定された状態の解析は、Ｉ／Ｏユニットとして供するＩＰブロックＩＰ４へのネットワークパスをセットアップすることによって解析されるかもしれない。Ｉ／ＯユニットＩＰ４へのネットワークパスは、オフチップ解析のため決定された状態を転送するのに供する。状態のビットレベルの転送の代わりにトランザクションレベルでの状態ダンプが、オフチップ解析に転送されるデータ量を減少されることに留意すべきである。
【００４０】
プロセッサＩＰ３内でデータ生成問題が発生した場合、適切な値がメモリＩＰ２にアップロード可能であり、システムの動作は連続的又はステップ単位モードにより継続されるかもしれない。システムが停止した場合、ユーザは、プロセッサＩＰ３が新たなデータをすでに送信したか、又はデータ（パケット）がネットワークの何れかにストールされたかモニタするため、選択されたネットワークインタフェースＮＩ及びルータ（にあるパケット）の各状態を解析することが可能である。ハードウェア設計と共にソフトウェアでは、これらの状態は設計データベースから解析可能であるが、実際のシリコンの解析のため、ユーザは、解析のため状態をオフチップにダンプするため、（ＩＯブロック）ＩＰ４などへのネットワークパスをセットアップする必要がある。現在のビットレベルの代わりに、トランザクションレベルによるシリコン状態ダンプは、シフトアウトされるデータ量を減少させ、ソフトウェア及びハードウェア設計データベースとの比較を容易にする。
【００４１】
本発明が図面及び上記説明により詳細に図示及び説明されたが、このような図示及び説明は、例示的なものであり限定的なものとみなされるべきでなく、本発明は開示された実施例に限定されるものでない。
【００４２】
開示された実施例の他の変形が、図面、開示及び添付された請求項を参照することによって、請求された発明を実践する当業者により理解及び実行可能である。
【００４３】
請求項において、“有する”という用語は他の要素又はステップを排除するものでなく、“ある”という不定冠詞は複数を排除するものでない。単一の又は他のユニットが、請求項に記載されたいくつかのアイテムの機能を実現するかもしれない。ある手段が互いに異なる従属項に記載されるという事実は、これらの手段の組み合わせが効果的に利用可能でないこと示すものでない。
【００４４】
コンピュータプログラムが、他のハードウェアと一緒に又は一部として供給される光記憶媒体又はソリッドステート媒体などの適切な媒体に格納／配布されるかもしれないが、インターネット、他の有線若しくは無線通信システムなどを介し他の形式により配布されてもよい。
【００４５】
請求項の参照符号は、その範囲を限定するものとして解釈されるべきでない。
【図１】
2010500807.tif 000003
【図２ａ】
2010500807.tif 000004
【図２ｂ】
2010500807.tif 000005
【図３】
2010500807.tif 000006
【図４ａ】
2010500807.tif 000007
【図４ｂ】
2010500807.tif 000008
【図４ｃ】
2010500807.tif 000009
【図４ｄ】
2010500807.tif 000010
【図５】
2010500807.tif 000011
【手続補正書】
【提出日】平成21年2月10日(2009.2.10)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子装置及び電子装置における通信制御方法に関する。
【背景技術】
【０００２】
近年、電子回路又は集積回路（ＩＣ）は、その機能、プログラマブルコンポーネントの個数及びそれらの通信に関して複雑さを増してきている。このため、ソフトウェア及びハードウェアの（共同）設計の複雑さもまた増大し、効率的な検証、デバッグ及び最適化が要求される。
【０００３】
ＡＳＩＣ、ＡＳＳＰ、ＦＰＧＡ、ＰＬＤ、ＣＰＬＤ及び構造化されたＡＳＩＣ装置を含む最新のＩＣの設計及び製造では、ユーザインタラクション又はイベント（シーケンス）に応答したデジタルプログラマブルコンポーネントの制御が可能とされ、（ソフトウェア及びハードウェア）設計検証及びシリコンデバッグにおいて非常に利用される。ｗｗｗ．ａｒｍ．ｃｏｍ／ｐｒｏｄｕｃｔｓ／ｓｏｌｕｔｉｏｎｓ／ＣｏｒｅＳｉｇｈｔ．ｈｔｍｌでは、１以上のプログラマブルコンポーネントを処理可能な制御システムが示されている。ソフトウェアからハードウェアの定義及び実現からのプログラマブルコンポーネントの一貫したレベルの制御を実行することによって、ソフトウェア及びハードウェアのデバッグ及び最適化についてのシリコン（パフォーマンス）解析の関係を可能にする高いシステム透過性が実現される。同様の制御システムが、設計ボトルネック／バグが特定及び解決されると典型的には取り除かれるが、Ｉ／Ｏインタフェースなどの専用の（部分的又は非プログラマブル／コンフィギュラブル）アクセラレータなどのハードワイヤコンポーネントの設計により頻繁に実現される。実際のシリコンのプロトタイプ／プロダクトにおけるハードワイヤコンポーネントの制御システムの実現は、何れの切断点をどこに設けるべきかＩＣの製造前に確定される必要があるため、より困難である。さらに、これらのシステムはしばしば、実行時のデータに依存する動作を示すため、キーオンチップイベントが発生する時点を予め正確に決定することを不可能でないが極めて困難にする。
【０００４】
ＵＳ６，３４５，２９５Ｂ１は、コンピュータシステム付属ネットワークのトレースファシリティを開示する。ネットワークは、それぞれが通信パスに接続される複数のトレースツールを有し、トレースファシリティはシステムワイドトレースを提供する。トレースファシリティは、各トレースツールにおいて少なくとも１つのトレースバッファを有する。各トレースツールは、バスに関する情報のアドレス範囲を選択するアドレスフィルタを有し、当該情報は、イベントとしてバスを介し通信され、選択されたイベント情報をトレースバッファに格納し、これにより、トレースが実行される。各トレースツールを相互接続する切断点の接続が提供される。各トレースツールにおけるトレースツール制御は、トレースをそれのアドレスフィルタとトレースバッファにおいて停止し、切断点接続における切断点信号をすべての相互接続されたトレースツールに発信するため、トレースツールにアドレッシングされるトレース停止コマンドに応答する。相互接続されたトレースツールは、各トレースツールにおいてトレースが保存されるように、トレーススレットを停止するよう切断点信号に応答する。経過時間クロックが、各イベントのタイミングの決定を可能にするように、各トレースされたイベントにタイムスタンプを提供する。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の課題は、電子装置内の通信に対して向上した制御を備える電子装置を提供することである。
【課題を解決するための手段】
【０００６】
このため、複数の処理ユニットと、前記処理ユニットの間の通信を可能にするよう前記処理ユニットを接続するインターコネクトと、前記処理ユニットの間の通信においてイベントを検出する少なくとも１つのイベントモニタとを有する電子装置が提供される。電子装置はさらに、少なくとも１つのイベントモニタにより検出された１以上のイベントに従って、所定の又はプログラマブル処理及び／又はアクションの所定の又はプログラマブルシーケンスを実行するよう前記インターコネクトを制御するコントローラユニットを有する。
【０００７】
本発明の一実施例によると、前記コントローラユニットは、前記処理ユニットの間の通信を制御するインターコネクトコントローラ及び／又は前記インターコネクトを制御するためのモニタコントローラを有する。本発明のさらなる実施例によると、前記モニタコントローラは、前記イベントモニタにおいて、前記処理ユニットにおいて及び／又は前記インターコネクトコントローラにおいて設定を更新するよう構成される。
【０００８】
本発明のさらなる実施例によると、イベントモニタは、前記処理ユニット、前記インターコネクト及びＩ／Ｏインタフェース又はモニタインタフェースの少なくとも１つに関連付けされる。
【０００９】
本発明のさらなる実施例によると、前記イベントモニタ、前記モニタコントローラ、前記インターコネクトコントローラ及び／又は前記インターコネクトは、トランザクションに対して動作する。
【００１０】
本発明のさらなる実施例によると、前記イベントは、所定の及び／又はプログラマブルイベントの所定の又はプログラマブルシーケンスを含む。
【００１１】
本発明の一実施例によると、所定の又はプログラマブル処理は、制御指向及び／又はデータ指向処理を構成するかもしれない。前記制御指向処理は、停止、シングルステップ、マルチステップ、継続及びリセット処理を含む。前記データ指向処理は、前記処理ユニットの状態及び／又はインターコネクト状態のダウンロード及びアップロードを含む。
【００１２】
本発明の一実施例によると、前記制御指向処理の単位は、クロックサイクルレベル、ハンドシェイク、リクエスト／レスポンス、トランザクション又はトランザクショングループ単位とすることができる。
【００１３】
本発明はまた、複数の処理ユニットと、前記処理ユニットの間の通信を可能にするよう前記処理ユニットを接続するインターコネクトとを有する電子装置（システム・オン・チップなど）における通信制御方法に関する。前記処理ユニットの間の通信においてイベントが検出される。前記処理ユニットの間の通信において検出されるイベントに従って、所定の又はプログラマブル処理及び／又はアクションの所定の又はプログラマブルシーケンスを実行するよう前記インターコネクトが制御される。
【発明の効果】
【００１４】
本発明は、ハードウェアとソフトウェアの共同設計の収束を利用するというアイデアに関する。ハードウェア設計の最上位の抽象化レベルでは、電子装置の各コンポーネントは、トランザクションと呼ばれるハイレベルデータ表現、すなわち、トランザクションレベルを介し互いに通信している。ソフトウェア設計の最下位の抽象化レベルでは、すなわち、ソフトウェアがシステムのプログラマブルコンポーネントにマップされているレベルでは、アプリケーションソフトウェアを解析、検証及び調整するため、再びトランザクションレベルモデルが利用される。これは、ソフトウェアとハードウェアのエンジニアがシステムの実際の動作の同一の見解を共有することができるように、ソフトウェア設計者とハードウェア設計者の双方に共通の基準をトランザクションレベルにし、これにより、残りのハードウェア及びソフトウェアエラー又は非効率性のローカリゼーションを向上させる。さらにこれは、製品化に要する時間と、設計者たちに適切にフィードバックされるとき、ツールとフローの大きな低減と、製造プロセスの向上をもたらす。
【００１５】
トランザクションの具体例として、リード（ロード）、ロードリンクト、ライト（ストア）、限定ライト、タグ付け又は許可されたライト、フラッシュ、テスト・アンド・セット、セマフォ処理などがあげられる。トランザクションの具体例は、ＶＰＢ、ＡＰＢ、ＡＨＢ、ＡＸＩ、ＶＣＩ、ＯＣＰ、ＤＴＬ、ＳＴＢｕｓ、ＭＩＰＩ、ＰＣＩＥｘｐｒｅｓｓ、ＰＣＩなどのオンチップ及びボードレベル通信プロトコルに見つけることができる。これらのトランザクションは、リクエスト及び任意的なレスポンス段階を含む。ここでのトランザクションの定義は、メッセージパッシングプロトコルを含む。これらのプロトコルは、通常はリクエスト段階しか利用しない。一例となるトランザクションは、送信（プット、ライト）と受信（ゲット、リード）である。ここでのトランザクションの定義はさらに、中断、（電力管理、デバッグ、テスト）コマンドと、いわゆるサイドバンド信号などを含む。
【００１６】
本発明の効果及び実施例は、図面を参照してより詳細に説明される。
【図面の簡単な説明】
【００１７】
【図１】図１は、本発明によるシステム・オン・チップの実施例のアーキテクチャのブロック図を示す。
【図２】図２ａ及び２ｂは、ネットワーク及びバスにおいて通信に必要とされるコンポーネントのブロック図を示す。
【図３】図３は、本発明の実施例によるトランザクションベース及びサイクルベーストラフィックの基本図を示す。
【図４】図４ａ〜４ｄは、本発明の実施例による通信制御を介したシステム状態の進捗を示す。
【図５】図５は、本発明によるネットワーク・オン・チップを供えた電子装置の実施例のブロック図を示す。
【発明を実施するための形態】
【００１８】
図１は、本発明によるシステム・オン・チップの実施例のアーキテクチャのブロック図を示す。システム・オン・チップは、インターコネクトとして供するＩＰ通信ユニットＩＰＣＵにより互いに通信する複数のＩＰ（Ｉｎｔｅｌｌｅｃｔｕａｌ  Ｐｒｏｐｅｒｔｙ）ブロックＩＰを有する。通信ユニットＩＰＣＵは、単一の同質的なインターコネクト（ルータやバス及びブリッジなど）として実現されるか、又は複数の非同質的なインターコネクト（物理的には、スイッチ、バス、ルータ、ブリッジ、高速又は低速など、論理的には、データ、制御中断、デバッグ及び電力管理インターコネクトなど）を有するかもしれない。ＩＰ通信コントローラＩＰＣＣは、ＩＰブロックＩＰの間のトラフィックをＩＰ通信ユニットＩＰＣＵを介し制御する。ＩＰ通信コントローラＩＰＣＣは、中央コントローラ又は分散コントローラとして実現可能である。本発明によるシステム・オン・チップは、単一のダイ又はチップ上に実装されるか、又はＦＰＧＡ及びエミュレータを含む複数のダイ又はチップに拡張されるかもしれない。さらに、通信ユニット（インターコネクト）は、プロトタイプ化又は他の目的のため、ダイ間、チップ間、ボード間及びボード・ツー・（パーソナル）コンピュータインターコネクトを含むかもしれない。プロトタイプ化の場合、ＩＰブロックのいくつかはシミュレート又はエミュレートされ、又はＦＰＧＡ、エミュレータ又は（パーソナル）コンピュータ上に実装されるかもしれない。
【００１９】
ＩＰブロックＩＰは、処理ユニットとして実現され、プロセッサ、コプロセッサ、ＤＭＡコントローラ、メモリ、メモリコントローラなどを構成するかもしれない。
【００２０】
システム・オン・チップはさらに、複数のイベントモニタＥＭと、少なくとも１つのモニタコントローラＭＣとを有する。イベントモニタＥＭは、システム・オン・チップのＩＰブロック間の通信（データトラフィック、制御トラフィックなど）においてイベントを検出するのに供する。モニタコントローラＭＣは、イベントモニタＥＭによるイベントの検出に従って、ＩＰ通信ユニットＩＰＣＵを制御するよう構成される。イベントは、例えば、より高いレベルのトランザクション（リード／ライトインタラプト）又は同期イベント、システムコンフィギュレーションイベントなどにおけるクロックサイクル又はクロックサイクルセット毎の（低）ビットレベ、ワードなど各種抽象化レベルで規定されるかもしれない。イベントモニタＥＭは、所定の及び／又はプログラマブルなイベントが発生したか、及び／又はそれらが所定の及び／又はプログラマブルな順序で発生したか、それらがＩＰブロックＩＰからＩＰ通信ユニットＩＰＣＵに又はＩＰ通信ユニットＩＰＣＵ（インターコネクト）内を通過しているか検出するのに供する。さらに、イベントモニタＥＭは、ネットワーク・オン・チップバッファ充填若しくはアンダーフロー若しくはオーバフロー、パケットの欠落、特定の値を有するローカル若しくはエンド・ツー・エンドフロー制御、特定の値を有するパケット、リクエスト若しくはレスポンスメッセージのヘッダ若しくはペイロードなど、通信ユニットＩＰＣＵ（インターコネクトとして）に関するイベントを検出するかもしれない。特定の値に加えて、イベントモニタは、値の範囲、特定の値（又はそれらの範囲）の出現頻度をモニタし、複数の観察若しくはイベントを１つの複合的又は合成されたイベントに合成すると共に、上記可能性のすべての組み合わせであるかもしれない。好ましくは、イベントモニタＥＭは、インターコネクト及びそれのインタフェースとしてＩＰ通信ユニットＩＰＣＵ内の戦略的位置に配置される。このため、イベントモニタＥＭは、バスシステムのバスワイヤ、ルータ若しくはネットワークインタフェース又はネットワーク内のリンクに接続可能である。インタフェースは、ＩＰブロックを備えたインタフェース、Ｉ／ＯブロックＤＩＯ、ＩＰ通信コントローラＩＰＣＣ、内部若しくは外部メモリ及び／若しくはそれらのコントローラ／インタフェース並びに／又は外部インタフェースを含むかもしれない。
【００２１】
さらに、モニタ通信ユニットＭＣＵ及びイベントモニタＥＭのための専用の通信又はモニタインターコネクトを構成するモニタ通信ユニットＭＣＵ又はモニタインターコネクトが設けられる。あるいは、ＩＰ通信ユニットＩＰＣＵは、この目的のため利用可能である。
【００２２】
ＩＰ通信ユニットＩＰＣＵは、モニタコントローラＭＣが、例えば、デバッグモード、ＩＰ通信トラフィックの中断、オン・チップ若しくはオフ・チップメモリ上のＩＰブロック及び／又はＩＰ通信の各状態を開始するため、ＩＰ通信ユニットＩＰＣＵと通信する。モニタコントローラＭＣは、ＩＰ通信ユニットＩＰＣＵによりＩＰ通信ユニットＩＰＣＵと共に、イベントモニタＥＭ及びＩＰブロックＩＰに、検出対象となるイベントと対応するレスポンスに関する詳細をアップロードする。これは、例えば、メモリマップされたコンポーネントとしてイベントモニタＥＭを定義することによって、又はそれらをモニタリング／デバッグ管理プロトコル（電力管理プロトコルなど）によりアドレッシングすることによって実行可能である。さらに又はあるいは、専用のモニタ通信ユニットＭＣＵが利用されるかもしれない。
【００２３】
モニタコントローラＭＣは、イベントモニタＥＭを介し、ＩＰ通信ユニットを介し又はＪＴＡＧやＴＡＮなどの専用のテストバスを介しプログラム可能である。モニタコントローラは、イベントコントローラＭＣをメモリマップされたコンポーネントとして規定することによって、又はそれらをモニタリング／デバッグ管理プロトコル（電力管理プロトコルなど）によりアドレッシングすることによって、アドレッシング及びプログラム可能である。
【００２４】
ＩＰブロックＩＰに接続されるイベントモニタＥＭＩＰはまた、それらがモニタコントローラＭＣを介し制御可能となるように、モニタ通信ユニットＭＣＵに接続されてもよい。ＩＰブロックのためのこれらイベントモニタＥＭＩＰは、ＩＰブロックの外部に構成されてもよく、又はＩＰブロックの内部に実現されてもよい。さらに、これらのユニットは、何れか既存のモニタ手段を利用してもよい。このため、ＩＰ通信ユニットの観察と制御は、ＩＰブロックＩＰに拡張可能であり、電子システムの設計、検証及びデバッグに関する機会を拡大する。
【００２５】
図２ａ及び２ｂは、ネットワーク及び複数のバスとしての通信ユニットの各コンポーネントのブロック図を示す。図２ａでは、通信ユニットＩＰＣＵは、ネットワークベースインターコネクトとして実現される。ネットワークは、複数のネットワークインタフェースＮＩ（ＩＰブロックが接続される）、複数のルータＲ及び複数のチャネルを有する。図２ｂでは、通信ユニットはバスベースインターコネクトとして実現される。さらに、バスは複数のバスアダプタＢＡ、複数のバスＢ、ブリッジＢＲと共に、さらなるバスアダプタＢＡ（ＩＰブロックが接続される）を有する。
【００２６】
図３は、本発明の実施例によるトランザクションベース及びサイクルベーストラフィックの基本図を示す。トランザクションベースのビューはＴＢによりマークされ、サイクルベースのビューはＣＢによりマークされる。ＩＰ通信ユニットがネットワークベースインターコネクトとして実現される場合、データトラフィックは、典型的にはパケットに分割される。ＩＰ通信ユニットがバスベースインターコネクトとして実現される場合、データトラフィックはクロックサイクル毎にビット又はワードに分割される。しかしながら、両方のケースでは、データトラフィックは時間コヒーレントなトランザクションに再構成される必要がある。トランザクションコヒーレントなビューは、関連するすべての観察点が明確な状態にあるシステムの状態により定義される（リクエストが送信されたが、レスポンスが受信されない、リクエストが送信されたが、レスポンスが保留となっているなど）。これが成り立つ時点は存在しないかもしれず、図３によると、時間／トランザクションコヒーレントビューは、異なる時点におけるローカルビューをグローバルなコヒーレントビューに組み合わせる。複数のトランザクションが同時にアクティブとなり、分割又はパイプライン化される可能性があるため、ネットワークのパケット又はバスのビット／ワードの時間コヒーレントビューへの再構成は複雑なものとなりうる。さらに、トランザクションは、互いに相互関連しているかもしれない。従って、ビット／ワード又はパケットのトランザクションへの再構成が求められる場合、ローカルでオンチップな再構成が、オフチップ再構成より望ましいかもしれない。
【００２７】
図４ａ〜４ｄは、本発明の実施例による通信制御を介したシステム状態の進行を示す。特に、図３の図の異なるシナリオが示される。図４ａでは、データトラフィックのトランザクションレベルの停止が示される。図４ｂは、インタフェースＩＮにおける単一ステップの停止を示す。図４ｃは、インタフェースＩ２における３ステップの停止を示す。図４ｄは、インタフェースＩ１における２ステップの停止を示す。他の好ましい停止方法は、すべてのインタフェースにおいてＮステップである。このため、イベント又はイベントシーケンスが発生した場合、ＩＰ通信ユニットを介した通信を停止することができる。
【００２８】
さらなる実施例によると、システムデバッグ処理が実現される場合、ＩＰ通信ユニットＩＰＣＵを介したデータ通信は、所定のイベントがイベントモニタＥＭにより検出されると中断され、それはトランザクション切断点などに対応するかもしれない。従って、ＩＰブロックＩＰ、ＩＰ通信ユニットＩＰＣＵ及び／又はイベントモニタＥＭの各トランザクション状態が、さらなる解析のためバックグランドメモリにダンプ又は格納されるかもしれない。特に、バックグランドメモリにオンチップ又はオフチップにダンプ又は格納されるべきトランザクション状態は、例えば、モニタコントローラなどにより選択可能である。ここで、実際のアクティブなプロセス又はトランザクションに関するコヒーレントビューが生成され、メモリに格納可能である。さらに、トランザクションダンプは、モニタ通信ユニットＭＣＵ及び／又はＩＰ通信ユニットＩＰＣＵを介し実行可能である。モニタ通信ユニットＭＣＵは低〜中の帯域幅を有し、ＩＰ通信ユニットＩＰＣＵは高帯域幅を有するかもしれない。
【００２９】
好ましくは、イベントモニタＥＭ、ＩＰブロックＩＰ及び／又はＩＰ通信ユニットノードは、新たなトランザクション切断点がイベントモニタにロード又は更新され、トランザクションがＩＰブロックにアップロードできるように構成可能である。さらに、所定のイベントがイベントモニタＥＭにより検出された場合、ＩＰ通信データトラフィックは、図４ａ〜４ｄに示されるように、ステップ単位又は選択的に制御可能である。
【００３０】
さらなる実施例によると、システムパフォーマンスのモニタリング及び／又はローカル若しくはグローバル最適化のため、上述したイベントモニタＥＭは、発生したトランザクションシーケンスをモニタし、これらモニタされたトランザクションシーケンスが予想通りに発生したか、又は所定のトランザクションシーケンスが検出されたか判断する。これらが予想通りに発生しない場合、トランザクションシーケンスはシステムデバッグ中に訂正可能であり、又はシステムのパフォーマンス解析中に最適化可能である。イベントモニタＥＭによって、特定のトランザクションの発生がまた計数できる。さらに、イベントモニタＥＭは、通信ユニットの実際のスループットをモニタするかもしれない。従って、イベントモニタＥＭによって、シリコンによる実際の電子装置又は電子回路が設計要求を満たしているか判断することができる。満たしていない場合、システムパフォーマンスは、例えば、通信の優先順位付けを調整することによって最適化可能である。これは、ネットワーク・オン・チップにおける保証されたスループットの通信とベストエフォートな通信を相互に交換することによって実行可能である。あるいは、ネットワーク・オン・チップ内からネットワーク・オン・チップへのベストエフォートトラフィックの許可は、規制可能である。ＩＰ通信ユニットＩＰＣＵは、各種優先順位においてトランザクションを書き出すのに利用される。各種優先順位は、ネットワーク又はバス全体を要求する上位の優先順位から、システム動作を中断することなくメモリにダンプされる非介入的なトランザクションなどのための低優先順位まで含むかもしれない。
【００３１】
好ましくは、イベントモニタＥＭは、トランザクションレベルなどの特定の抽象化レベルに基づきイベントを認識する。さらに、検出されたイベントは、バス、ルータ、ネットワークインタフェースなどの通信コンポーネントの所定の又はプログラマブルなイベントと比較されるかもしれない。さらに、検出されたイベントは、計算コンポーネントの所定の又はプログラマブルなイベントと比較されるべきである。さらに、検出対象となる所定の又はプログラマブルなイベントは、ローカルに格納可能である。検出されると、タイムスタンプが検出されたイベントと関連付け可能である。さらに、イベントの出現回数が、それに係るタイムスタンプと共に検出される。
【００３２】
上記課題を達成するため、モニタコントローラＭＣは、好ましくは、データトラフィックを停止し（図４ａ〜４ｄに示されるように）、データトラフィックを再スタートするため、ＩＰ通信コントローラＩＰＣＣの動作を制御し、これによりＩＰ通信ユニットＩＰＣＵの動作を制御するため、ＩＰ通信コントローラＩＰＣＣに接続されるかもしれない。データトラフィックのステップ単位の再スタートは、システムの一部又はすべてに関係するかもしれない。これは、例えば、ＩＰブロックＩＰ、ＩＰ通信ユニットＩＰＣＵ及び／又はイベントモニタＥＭにおいてトランザクションをリフレッシュ及び／又は変更した後に実行可能である。さらに、モニタコントローラＭＣは、優先順位及び／又は非侵入性の各レベルにおけるＩＰブロック、ＩＰ通信ユニットＩＰＣＵ及びイベントモニタＥＭからのトランザクションの読み出しを制御する。
【００３３】
上述されるように、イベントモニタＥＭとモニタコントローラＭＣとの間の通信は、専用のモニタ通信ユニットＭＣＵ又はＩＰ通信ユニットＩＰＣＵを介し実行される。専用のモニタ通信ユニットＭＣＵは、ＤＴＬ、ＡＨＢ又はＪＴＡＥなどのネットワーク又はバスとして実現可能である。
【００３４】
図５は、第２実施例によるシステム・オン・チップのブロック図を示す。ここで、インターコネクトは、ＩＰブロックＩＰ（ＩＰ１〜４）を接続するためのネットワーク・オン・チップＮとして実現される。ネットワークインタフェースＮＩが、ＩＰブロックＩＰの少なくとも１つに関連付けされる。ネットワーク・オン・チップＮはさらに、ネットワークコントローラＮＣにより制御される複数のルータＲを有してもよい。好ましくは、イベントモニタＥＭは、イベント又はトランザクションを検出するため、ＩＰブロックＩＰとの間のデータトラフィックを観察するようネットワークインタフェースＮＩに接続される。ネットワークインタフェースＮＩに隣接するイベントモニタＥＭの位置は、ネットワークインタフェースＮＩが確立されたネットワークパスのアクノリッジメントのリクエストを行うとき効果的である。さらに、ＩＰデータがパケット化され、ネットワークパッケージがネットワークインタフェースＮＩにおいて分解される。イベントモニタＥＭがＩＰブロックに直接接続される図１の実現形態と対照的に、第２実施例によるイベントモニタＥＭの個数を少なく維持することが可能である。さらに、イベントモニタＥＭは、イベントの検出のためネットワーク・オン・チップ上の通信トラフィックをモニタするため、ネットワーク・オン・チップにおいてルータＲに接続されてもよい。さらに、イベントモニタＥＭはまた、モニタコントローラＭＣに接続されてもよい。モニタコントローラＭＣは、必要に応じてネットワーク・オン・チップ上のデータトラフィックを停止するため、ＩＰ通信コントローラＩＰＣＣに対応するネットワークコントローラＮＣを制御するよう構成される。本実施例では、モニタ通信ユニットとＩＰ通信ユニットは、ネットワーク・オン・チップとして実装される。図５によると、インターコネクトＮは、イベントモニタＥＭとモニタコントローラＭＣとを有する。しかしながら、本発明によるインターコネクトＮの既知のインターコネクトＮに関する実際の貢献は、イベントモニタＥＭとモニタコントローラＭＣが図５の破線ボックスの外側に配置される構成により表されるであろう。
【００３５】
図示された例では、すべてのトランザクションは１つのパケットに収容されるかもしれない。すべてのパケットは、１つのパス又は接続を介し送信可能である。あるいは又はさらに、トランザクションは複数のパケットに分割又は伸張されるかもしれない。さらに、パケットはまた、異なるパスを介し移動するかもしれない。図示された例によると、プロセッサＩＰ１は、データがプロセッサＩＰ３によりリフレッシュされたとき、メモリＩＰ２からデータを読み取る必要がある。プロセッサＩＰ３によるリフレッシュは、ネットワークインタフェースＮＩ２に接続されるイベントモニタＥＭ２によりモニタ可能である。イベントモニタＥＭ２は、プロセッサＩＰ３がメモリＩＰ２のデータをリフレッシュする時点を決定するよう構成されてもよい。従って、イベントモニタＥＭ２が、プロセッサＩＰ３がメモリＩＰ２のデータをリフレッシュしたことを検出した場合、当該情報は、プロセッサＩＰ３による１つのライトアクションの後にプロセッサＩＰ１の２回のリードアクションが続く場合、すべてのネットワーク通信を停止するモニタコントローラＭＣに転送される。ネットワーク通信が停止された場合、選択されたネットワークインタフェース及びルータの各状態は、プロセッサＩＰ３がすでに新たなデータを送信したか、又はデータがネットワーク内に格納されているかモニタするのに必要とされ、さらなる解析のためダンプすることが可能である。
【００３６】
ネットワークインタフェースとルータとの決定された状態の解析は、Ｉ／Ｏユニットとして供するＩＰブロックＩＰ４へのネットワークパスをセットアップすることによって解析されるかもしれない。Ｉ／ＯユニットＩＰ４へのネットワークパスは、オフチップ解析のため決定された状態を転送するのに供する。状態のビットレベルの転送の代わりにトランザクションレベルでの状態ダンプが、オフチップ解析に転送されるデータ量を減少されることに留意すべきである。
【００３７】
プロセッサＩＰ３内でデータ生成問題が発生した場合、適切な値がメモリＩＰ２にアップロード可能であり、システムの動作は連続的又はステップ単位モードにより継続されるかもしれない。システムが停止した場合、ユーザは、プロセッサＩＰ３が新たなデータをすでに送信したか、又はデータ（パケット）がネットワークの何れかにストールされたかモニタするため、選択されたネットワークインタフェースＮＩ及びルータ（にあるパケット）の各状態を解析することが可能である。ハードウェア設計と共にソフトウェアでは、これらの状態は設計データベースから解析可能であるが、実際のシリコンの解析のため、ユーザは、解析のため状態をオフチップにダンプするため、（ＩＯブロック）ＩＰ４などへのネットワークパスをセットアップする必要がある。現在のビットレベルの代わりに、トランザクションレベルによるシリコン状態ダンプは、シフトアウトされるデータ量を減少させ、ソフトウェア及びハードウェア設計データベースとの比較を容易にする。
【００３８】
本発明が図面及び上記説明により詳細に図示及び説明されたが、このような図示及び説明は、例示的なものであり限定的なものとみなされるべきでなく、本発明は開示された実施例に限定されるものでない。
【００３９】
開示された実施例の他の変形が、図面、開示及び添付された請求項を参照することによって、請求された発明を実践する当業者により理解及び実行可能である。
【００４０】
請求項において、“有する”という用語は他の要素又はステップを排除するものでなく、“ある”という不定冠詞は複数を排除するものでない。単一のユニットが、請求項に記載されたいくつかのアイテムの機能を実現するかもしれない。ある手段が互いに異なる従属項に記載されるという事実は、これらの手段の組み合わせが効果的に利用可能でないこと示すものでない。請求項の参照符号は、その範囲を限定するものとして解釈されるべきでない。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の処理ユニットと、
前記処理ユニットの間の通信を可能にするよう前記処理ユニットを接続するインターコネクトと、
前記処理ユニットの間の通信においてイベントを検出する少なくとも１つのイベントモニタと、
少なくとも１つのイベントモニタにより検出された１以上のイベントに従って、所定の又はプログラマブル処理及び／又はアクションの所定の又はプログラマブルシーケンスを実行するよう前記インターコネクトを制御するコントローラユニットと、
を有する電子装置。
【請求項２】
前記コントローラユニットは、前記インターコネクトを介し前記処理ユニットの間の通信を制御するインターコネクトコントローラとモニタコントローラとを有する、請求項１記載の電子装置。
【請求項３】
前記モニタコントローラは、前記イベントモニタにおいて、前記処理ユニットにおいて及び／又は前記インターコネクトコントローラ若しくは前記インターコネクトにおいて直接的に設定を更新するよう構成される、請求項２記載の電子装置。
【請求項４】
イベントモニタは、前記処理ユニット、前記インターコネクト及びＩ／Ｏインタフェース又はモニタインタフェースの少なくとも１つに関連付けされる、請求項１記載の電子装置。
【請求項５】
前記イベントモニタ、前記モニタコントローラ、前記インターコネクトコントローラ及び／又は前記インターコネクトは、トランザクションに対して動作する、請求項３又は４記載の電子装置。
【請求項６】
前記イベントは、所定の及び／又はプログラマブルイベントの所定の又はプログラマブルシーケンスを含む、請求項１記載の電子装置。
【請求項７】
前記所定の又はプログラマブル処理は、制御指向及び／又はデータ指向処理とすることができ、
前記制御指向処理は、停止、シングルステップ、マルチステップ、継続及びリセット処理を含み、
前記データ指向処理は、前記処理ユニットの状態及び／又はインターコネクト状態の入出力を含む、請求項１記載の電子装置。
【請求項８】
前記制御指向処理の単位は、クロックサイクルレベル、ハンドシェイク、リクエスト／レスポンス、トランザクション又はトランザクショングループ単位とすることができる、請求項７記載の電子装置。
【請求項９】
前記モニタコントローラは、前記処理ユニット、前記インターコネクト、前記イベントモニタ及び／又は前記コントローラユニットの状態を入出力するよう構成される、請求項２記載の電子装置。
【請求項１０】
前記イベントモニタ及び前記コントローラユニットを接続するモニタ通信ユニットをさらに有する、請求項１乃至９何れか一項記載の電子装置。
【請求項１１】
前記コントローラユニットは、インターコネクトコントローラ及び／又はモニタコントローラを有する、請求項１乃至１０何れか一項記載の電子装置。
【請求項１２】
複数の処理ユニットと、前記処理ユニットの間の通信を可能にするよう前記処理ユニットを接続するインターコネクトとを有する電子装置における通信制御方法であって、
前記処理ユニットの間の通信においてイベントを検出するステップと、
前記検出するステップにおいて検出されるイベントの１つに従って、所定の又はプログラマブル処理及び／又はアクションの所定の又はプログラマブルシーケンスを実行するよう前記インターコネクトを制御するステップと、
を有する方法。
【国際調査報告】
2010500807.tif 000012
2010500807.tif 000013
2010500807.tif 000014