(57)【要約】  複数の処理モジュール（ＩＰ１〜ＩＰ５）と、これら複数の処理モジュール（ＩＰ１〜ＩＰ５）を結合して、処理モジュール（ＩＰ１〜ＩＰ５）間で少なくとも１つの第１の通信（ＣＩＩ）を可能にする相互接続手段（Ｎ）と、少なくとも１つの第２の通信（ＣＩ）に基づいて、相互接続手段（Ｎ）を経て複数の処理モジュール（ＩＰ１〜ＩＰ５）のうち１つと通信する、少なくとも１つの第１のモジュール（Ｄ１〜Ｄ５；ＮＩ１〜ＮＩ７）と、を有する電子デバイスを提供する。第１の（ＣＩＩ）通信に対して非侵害的な第２の通信（ＣＩ）を確立する。
2008520119.tif 000002
【特許請求の範囲】
【請求項１】
−  複数の処理モジュール（ＩＰ１〜ＩＰ５）と、
−  これら複数の処理モジュール（ＩＰ１〜ＩＰ５）を結合して、処理モジュール間で少なくとも１つの第１の通信（ＣＩＩ）を可能にする相互接続手段（Ｎ）と、
−  少なくとも１つの第２の通信（ＣＩ）に基づいて、相互接続手段（Ｎ）を経て複数の処理モジュール（ＩＰ１〜ＩＰ５）のうち１つと通信する、少なくとも１つの第１のモジュール（Ｄ１〜Ｄ５；ＮＩ１〜ＮＩ７）とを具え、
第１の通信（ＣＩＩ）に対して非侵害的な第２の通信（ＣＩ）を確立するようにした電子デバイス。
【請求項２】
−  第１のモジュール（Ｄ１〜Ｄ５；ＮＩ１〜ＮＩ７）によって実際のデータが処理モジュール（ＩＰ１〜ＩＰ５）の１つに転送されない場合に、前記第２の通信（ＣＩ）にダミーデータを挿入するようにした、請求項１に記載の電子デバイス。
【請求項３】
通信資源を第２の通信（ＣＩ）用に予約して、第１の通信（ＣＩＩ）が前記通信資源を再使用しないようにした、請求項１または２に記載の電子デバイス。
【請求項４】
−  前記第２の通信用の通信資源が、予約タイムスロットを構築する場合に、少なくとも１つの第１のモジュール（Ｄ１〜Ｄ５；ＮＩ１〜ＮＩ７）によるダミーデータの転送を停止して、前記第１の通信による未使用のタイムスロットの再使用を禁止するようにした、請求項３に記載の電子デバイス。
【請求項５】
前記相互接続手段（Ｎ）が、
−  ネットワーク（Ｎ）と、
−  前記処理モジュール（ＩＰ１〜ＩＰ５）の１つと前記ネットワーク（Ｎ）との間で、各々を結合させる複数のネットワークインタフェース（ＮＩ１〜ＮＩ７）とを具えている、請求項１〜４の何れか１項に記載の電子デバイスであって、
前記ネットワーク（Ｎ）は複数のルータ（Ｒ１〜Ｒ５）を具え、
前記第１および第２の通信は、ネットワーク（Ｎ）を経るコネクションパス（ＣＩ，ＣＩＩ）を使用するコネクションに基づくようにし、前記コネクションパスの各々は、要求される数のタイムスロットに対して少なくとも１つのネットワークリンク（Ｌ）を使用するようにし、
保証された通信資源を少なくとも１つの第２の通信（ＣＩ）に割り当てるために、予約されている旨のマークを第２の通信（ＣＩ）に関連するタイムスロットに付すことにより、第１および第２の通信（ＣＩＩ，ＣＩ）用にタイムスロットを割り当てる、少なくとも１つのタイムスロット割り当てユニット（ＳＡ）を具えるようにした電子デバイス。
【請求項６】
請求項１〜５の何れか１項に記載の電子デバイスを少なくとも１つ具えているデータ処理システム。
【請求項７】
相互接続手段（Ｎ）によって結合される複数の処理モジュールを有し、これら処理モジュール間で、少なくとも１つの第１の通信（ＣＩＩ）を可能にする、電子デバイス内の通信資源を割り当てる方法であって、
−  第１のモジュール（Ｄ１〜Ｄ５；ＮＩ１〜ＮＩ７）によって、少なくとも１つの第２の通信（ＣＩ）に基づいて、相互接続手段（Ｎ）を経て複数の処理モジュール（ＩＰ１〜ＩＰ５）の１つと通信するステップを具え、
第１の通信（ＣＩＩ）に対して非侵害的な第２の通信（ＣＩ）を確立する、通信資源割り当て方法。
【請求項８】
−  第１のモジュール（Ｄ１〜Ｄ５；ＮＩ１〜ＮＩ７）によって実際のデータが処理モジュール（ＩＰ１〜ＩＰ５）の１つに転送されない場合に、第２の通信（ＣＩ）にダミーデータを挿入する、請求項７に記載の通信資源割り当て方法。
【請求項９】
前記通信資源を前記第２の通信（ＣＩ）用に予約して、第１の通信（ＣＩＩ）が前記通信資源を再使用しないようにする、請求項７または８に記載の通信資源割り当て方法。
【請求項１０】
−  前記第２の通信用の通信資源が、予約タイムスロットを構築する場合に、少なくとも１つの第１のモジュール（Ｄ１〜Ｄ５；ＮＩ１〜ＮＩ７）によるダミーデータの転送を停止して、前記第１の通信による未使用のタイムスロットの再使用を禁止する、請求項９に記載の通信資源割り当て方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の処理モジュールと、これら複数の処理モジュールを結合する相互接続手段とを有している電子デバイスに関すると共に、このような電子デバイス内の通信資源割り当て方法にも関する。
【背景技術】
【０００２】
システムオンシリコンは、新機能を実装し、かつ既存の機能を向上させる必要性がかなり増えていることにより、複雑度が増しつつある。これは、集積回路に一体化し得るコンポーネントの密度を高めることによって可能である。同時に、回路を動作させるクロックの速度もまた増大する傾向にある。コンポーネントの密度が増大することとあいまって、クロック速度がより速くなると、同じクロックドメイン内で同期して動作することができる領域が低減することになる。これは、モジュラー法にとって必要なことである。このような方法による処理システムは、複数の相対的に独立した複雑なモジュールを具える。従来の処理システムでは、そのシステムのモジュールは、通常はバスを経て互いに通信する。しかしながら、このような通信方法は、モジュールの数が増すにつれて、次の理由により、もはや実用に供し得なくなる。すなわち、モジュールの数が増えると、バスの負荷が高くなり過ぎ、そして１つのデバイスしかデータをバスに送信することができないので、バスは通信のボトルネックを構成することになる。
【０００３】
通信ネットワークは、これらの不都合な点を克服する効果的な策を成す。ネットワークオンチップ（ＮｏＣ）は、極めて複雑なチップの相互接続問題に対する解決策として、最近かなりの注目を浴びている。その理由は２つある。第１に、ＮｏＣは、グローバルな配線を構築し、かつ管理するので、新規なディープサブミクロン技法における電気的な問題を解決する助けになる。さらに、ＮｏＣは、配線を共有し、配線数を低減させて、配線の利用率を増大させる。ＮｏＣはまた、エネルギー効率および信頼度を高めることができ、バスに比べてスケーラブルである。第２に、ＮｏＣはまた、計算処理を通信から分離し、これは、１０億トランジスタのチップの設計管理において極めて重要である。ＮｏＣがこの分離を達成できるのは、プロトコルスタックを用いて慣例的に設計されるからであり、これにより、通信サービスの利用をサービスの実施から切り離す、良好に規定されたインタフェースが提供される。
【０００４】
オンチップの相互接続としてネットワークを導入することにより、例えばバスまたはスイッチのような直接の相互接続に比べると、通信は根本的に変化する。これは、ネットワークのマルチホップ性によるからであり、この場合、通信モジュールは直結されるのではなく、１つ以上のネットワークノードによって遠隔離間される。これは、モジュールを直結する一般的な既存の相互接続（即ちバス）とは対照的である。この変化の意味合いは、（集中型から分配型に変えなくてはならない）アービトレーション、およびＩＰ（インテレクチャルプロパティ）ブロックによるか、またはネットワークによって扱わなくてはならない（例えば順序付け、またはフロー制御のような）通信特性にある。
【０００５】
これらのトピックのほとんどは、既に、ローカルおよびワイドエリアネットワーク（コンピュータネットワーク）の分野において、および並列マシーンの相互接続ネットワーク用の相互接続として研究の対象になっている。双方ともオンチップネットワークに非常に関連があり、それらの分野での成果の多くは、チップについても適用可能である。しかしながら、ＮｏＣの前提はオフチップネットワークとは異なり、したがってネットワークの設計選択の大部分を見直さなくてはならない。オンチップネットワークは、異なる設計選択の原因となる、種々の特性（例えば厳格なリンク同期）および制約（例えば高いメモリコスト）を有しており、それは最終的にネットワークのサービスに影響を及ぼす。
【０００６】
ＮｏＣは、主に制約および同期の点において、オフチップネットワークとは異なる。概して、資源の制約は、オフチップよりもオンチップの方が厳格である。記憶資源（即ちメモリ）および計算資源は比較的高価であるのに、地点間のリンクの数は、オフチップよりもオンチップの方が多い。記憶資源が高価なのは、ＲＡＭのような汎用のオンチップメモリは大きな面積を占めるからである。ネットワークコンポーネントに比較的小さなサイズでメモリを分配するのは、メモリのオーバヘッド領域が支配的になるため、さらに不都合である。
【０００７】
オフチップネットワークは、典型的にはパケット交換を用いて、ベストエフォートＢＥサービスを提供する。各ネットワークのノードでは競合が発生し、待ち時間を保証するのが非常に困難である。転送速度に基づく交換またはデッドラインに基づくパケット交換のようなスキームを用いることで、スループット保証、即ち保証されたスループット（Guaranteed-throughput：ＧＴ）を提供することもできるが、バッファリングコストが高くなる。このような時間に関連する保証を提供する変形例として、全ての回路をネットワークコネクションのために用いる、時分割多重アクセス（ＴＤＭＡ）回路を使用するやり方がある。こうした回路は、比較的低いメモリおよび計算コストで、保証を提供する。ネットワークアーキテクチャによって、ベストエフォートＢＥ通信がいかなる残余保証帯域幅も使用できるようにする場合に、ネットワーク資源の利用率は増大する。
【０００８】
ネットワークオンチップ（ＮｏＣ）は、典型的には、複数のルータおよびネットワークインタフェースで構成される。ルータはネットワークのノードとして作用し、これを用いて、ソースネットワークインタフェースから転送先のネットワークインタフェースに、静的に（即ちルートは予め定められ変化しない）または動的に（即ち、ホットスポットを回避するために、ＮｏＣの負荷に応じてルートが変化し得る）、データを転送先への正しいパスに経路指定することによって、データを転送する。ルータは、時間保証するように（例えば、転送速度に基づくか、デッドラインに基づくか、またはＴＤＭＡ方式のパイプライン回路を用いて）実現することもできる。ルータのアーキテクチャについての更なる詳細は、Edwin Rijpkema、Kees Goossens、およびPaul Wielageによる“In PROGRESS”(2001年10月)におけるA router architecture for networks on siliconに記載されている。
【０００９】
ネットワークインタフェースはＩＰ（インテレクチャルプロパティ）ブロックに接続されて、このＩＰブロックは、任意の種類のデータ処理ユニットを表すことができ、またはメモリ、ブリッジ等とすることもできる。特に、ネットワークインタフェースは、ＩＰブロックとネットワークとの間の通信インタフェースを構成する。インタフェースは、通常は、既存のバスインタフェースと互換性がある。したがって、ネットワークインタフェースは、データのシーケンシャル化（与えられた命令、フラグ、アドレスおよびデータを、固定幅（例えば３２ビット）の信号グループに適合させる）およびパケット化（ネットワークによって内部的に必要とされるパケットヘッダおよびトレーラを加える）を処理するように設計される。ネットワークインタフェースはまた、パケットスケジューリングを行うこともでき、これにはタイミング保証およびアドミッション制御を含めることができる。
【００１０】
オンチップシステムは、それらの相互接続通信用にタイミング保証を必要とすることがよくある。したがって、スループット、待ち時間、ジッタが保証されるクラスの通信が提供される。コネクションは、種々のトラフィッククラスを識別し、かつこれらのクラスに諸特性を関連付けるのに用いられる。
【００１１】
時間関連保証（即ち、スループット、待ち時間およびジッタ）を提供するコスト効率の良い方法は、ＴＤＭＡ（時分割多重アクセス）方式でパイプライン回路を用いる方法であり、これなら、厳格な同期を取らなければならないシステムオンチップ（ＳｏＣ）における、転送速度に基づくスキームおよびデッドラインに基づくスキームに比べてバッファスペースが少なくて済むため有利である。
【００１２】
各タイムスロットで、データアイテムは、あるネットワークコンポーネントから次のネットワークコンポーネントに、すなわちルータ間で、またはルータとネットワークインタフェースとの間で移送される。したがって、出力ポートにて、あるスロットが予約されている時は、マスタモジュールとスレーブモジュールとの間のパスに沿う次の出力ポートにおいて、次のスロットを予約し、以下同様にスロットを予約しなくてはならない。
【００１３】
タイミング保証付きの多数のコネクションを設定する際には、衝突がない（すなわち、２以上のコネクションにスロットが割り当てられない）ように、スロットの割り当てを行わなくてはならない。所定のネットワークトポロジ、即ち所定数のルータとネットワークインタフェース、およびＩＰブロック間の一組のコネクションに対する最適なスロット割り当てを見出すタスクは、包括的な計算時間を要する最適な解決策を見つける必要があるので、計算上かなりの問題（ＮＰ完全）がある。
【発明の開示】
【発明が解決しようとする課題】
【００１４】
本発明の目的は、電子デバイス、および通信資源の割り当てを改善した通信資源の割り当て方法を提供することにある。
【課題を解決するための手段】
【００１５】
この目的は、請求項１に記載の電子デバイス、および請求項７に記載の通信資源割り当て方法によって達成される。
【００１６】
したがって、複数の処理モジュールと、これら複数の処理モジュールを結合して、処理モジュール間で少なくとも１つの第１の通信を可能にする相互接続手段と、少なくとも１つの第２の通信に基づいて、前記相互接続手段を経て複数の処理モジュールのうち１つと通信する、少なくとも１つの第１のモジュールと、を有する電子デバイスを提供する。第１の通信に対して非侵害的である第２の通信を確立する。
【００１７】
したがって、第１の通信の動作は、第２の通信の有無、すなわち第２の通信においてデータが転送されるか否かに関らず、影響を受けない。
【００１８】
本発明の一態様では、第１のモジュールによって実際のデータが処理ユニットの１つに転送されない場合に、第２の通信にダミーデータを挿入する。したがって、このダミーデータが実際のデータの代わりをするので、実際のデータの場所が第１の通信により再使用されることはなく、第１の通信の動作は変わらない。
【００１９】
本発明の他の態様では、通信資源を第２の通信用に予約して、第１の通信が通信資源を再使用しないようにする。故に、第１の通信が通信資源を再使用することは阻止され、第１の通信の動作は、追加のまたはダミーのデータを送信しなくとも、変わらない。
【００２０】
本発明の更に他の態様では、第２の通信用の資源が、予約タイムスロットを構築する場合に、少なくとも１つの第１のモジュールによるダミーデータの転送を停止して、第１の通信による未使用のタイムスロットの再使用を禁止する。
【００２１】
本発明の更に他の態様では、前記相互接続手段が、ネットワーク、および前記処理モジュールの１つと前記ネットワークとの間で各々を結合させる複数のネットワークインタフェースとを具えるようにする。前記ネットワークは複数のルータを具えている。第１および第２の通信は、ネットワークを経るコネクションパスを使用するコネクションに基づいており、前記コネクションパスの各々は、要求される数のタイムスロット用に少なくとも１つのネットワークリンクを使用する。保証された通信資源を少なくとも１つの第２の通信に割り当てるために、予約されている旨のマークを第２の通信に関連するタイムスロットに付すことにより、第１および第２の通信用にタイムスロットを割り当てる、少なくとも１つのタイムスロット割り当てユニットを提供する。従って、本発明の原理は、通信をタイムスロットにより行うネットワークオンチップに適用することができる。
【００２２】
本発明はまた、相互接続手段によって結合される複数の処理モジュールを有し、これら処理モジュール間で、少なくとも１つの第１の通信を可能にする、電子デバイス内の通信資源を割り当てる方法にも関する。第１のモジュールによって、少なくとも１つの第２の通信に基づいて、相互接続手段を経て複数の処理モジュールの１つと通信を行う。第１の通信に対して非侵害的な第２の通信を確立するようにする。
【００２３】
本発明の他の態様は、従属請求項にて規定した通りのものである。
【００２４】
本発明は、非侵害的な通信、即ち、通信の有無が他の通信の動作に影響を与えないような通信を提供するという考えに基づいている。これは、システムの通信に影響を及ぼしてはならないアプリケーションのデバッキングまたは監視にとって、特に重要である。非侵害的な通信は、実際のデータが目下転送されていない場合に、ダミーデータを挿入することによって提供することができる。それに代えて、またはそれに追加して、未使用の通信資源（通常、第２の通信に関連する）を、第２の通信が独占的に使用するために予約することができる。
【００２５】
以下、本発明を、図面を参照して詳細に説明する。
【発明を実施するための最良の形態】
【００２６】
以下の実施例は、システムオンチップ、すなわち、同一のダイ、多数のダイ（例えばシステムインパッケージ）上の、または何らかの種類の相互接続を経て互いに通信する多数のチップ上の複数のモジュールに関する。この相互接続は、ネットワークオンチップＮｏＣとして実現される。ネットワークオンチップは、配線、バス、時分割多重経路、スイッチ、および／またはルータを、ネットワーク内に含めることができる。前記ネットワークのトランスポート層では、モジュール間の通信は、コネクションを通じて行われる。コネクションは、第１のモジュールと少なくとも１つの第２のモジュールとの間で、各々が一組の接続特性を有している一組のチャネルと見なされる。第１のモジュールと単一の第２のモジュールとの間の接続用のコネクションは、２つのチャネル、すなわち第１のモジュールから第２のモジュールへのチャネル、つまり要求チャネルと、第２から第１のモジュールへのチャネル、つまり応答チャネルとを有している。したがって、コネクション、またはネットワークを通るコネクションのパス、即ち、コネクションパスは、少なくとも１つのチャネルを有している。換言すれば、チャネルは、１つのチャネルしか使用しない場合には、コネクションのコネクションパスに相当する。上述したように２つのチャネルを用いる場合には、一方のチャネルが、例えばマスタからスレーブへのコネクションパスを提供し、また第２のチャネルは、スレーブからマスタへのコネクションパスを提供する。したがって、典型的なコネクションに対するコネクションパスは２つのチャネルを具えることになる。コネクションの特性には、順序付け（正しい順序でのデータ伝送）、フロー制御（コネクション用にリモートバッファを予約し、データ発生器が発生したデータ用のスペースを利用できることが保証される場合にのみ、データ発生器にデータの送出を許可する）、スループット（スループットの下限を保証する）、待ち時間（待ち時間の上限を保証する）、紛失（データの欠落）、転送終了、トランザクションの完了、データの正確度、優先順位またはデータ送出等を含めることができる。
【００２７】
図１は、本発明によるネットワークオンチップアーキテクチャのブロック図である。ここに示すシステムは、いくつかの、いわゆるインテレクチャルプロパティブロックＩＰ１〜ＩＰ５（計算要素、メモリまたは相互接続モジュールを内部的に含むことができるサブシステム）を具えており、これらは、それぞれネットワークインタフェースＮＩを経てネットワークＮに各々接続されている。ネットワークＮは複数のルータＲ１〜Ｒ５を具え、これらはそれぞれのネットワークリンクを経て隣接するルータに接続されている。
【００２８】
ネットワークインタフェースＮＩ１〜ＮＩ５は、ＩＰブロックＩＰ１〜ＩＰ５とネットワークＮとの間のインタフェースとして使用される。ネットワークインタフェースＮＩ１〜ＮＩ５は、それぞれのＩＰブロックＩＰ１〜ＩＰ５およびネットワークＮの通信を管理するように構成されるので、ＩＰブロックＩＰ１〜ＩＰ５は、ネットワークＮまたは他のＩＰブロックとの通信に対処する必要なく、それら専用の動作を実行することができる。ＩＰブロックＩＰ１〜ＩＰ５は、マスタ、すなわち要求を発するものとして機能することも、またはスレーブ、すなわちマスタから要求を受信して、これに応じて要求を処理するものとして機能することもできる。
【００２９】
図２は、図１のネットワークオンチップにおけるコネクションおよび基本的なスロット割り当てのブロック図を示している。特に、ＩＰブロックＩＰ４とＩＰ２との間のコネクションを示してある。このコネクションは、ＩＰブロックＩＰ４に関連するネットワークインタフェースＮＩ４、２つのルータＲ４，Ｒ２、およびＩＰブロックＩＰ２に関連するネットワークインタフェースＮＩ２によって実現される。ネットワークインタフェースＮＩ４は、タイムスロット割り当てユニットＳＡを具えている。また、ネットワークインタフェースＮＩ２ならびにルータＲ２およびＲ４もまた、タイムスロット割り当てユニットＳＡを具えるようにもできる。第１のリンクＬ１は、ネットワークインタフェースＮＩ４とルータＲ４との間にあり、第２のリンクＬ２は、２つのルータＲ４とＲ２との間にあり、そして第３のリンクＬ３は、ルータＲ２とネットワークインタフェースＮＩ２との間にある。それぞれのネットワークコンポーネントの出力ポートに対する３つのスロットテーブルＳＴ１〜ＳＴ３も示してある。これらのスロットテーブルは、ネットワークインタフェースおよびルータのような、ネットワーク要素の出力側、すなわちデータ生成側に実装するのが好適である。要求される各スロットに対しては、コネクションパスに沿うリンクの各スロットテーブルにおいて１つのスロットを予約する。これらのスロットは全てフリーでなければならず、即ち、他のチャネルによって予約されてはならない。データは、スロットｓ＝１から開始して、１つのネットワークコンポーネントから他の各スロットへと進むので、コネクションに沿う次のスロットは、スロットｓ＝２にて、それからスロットｓ＝３にて予約しなくてはならない。
【００３０】
タイムスロット割り当てユニットＳＡによって行われるスロット割り当て決定のための入力となるのは、ネットワークコンポーネントのような、それらの相互接続を伴うネットワークのトポロジ、およびスロットテーブルのサイズ、ならびにコネクション組である。全てのコネクションに対して、そのパスおよびその帯域幅、待ち時間、ジッタおよび／またはスロット要件が与えられる。１つのコネクションは、少なくとも２つのチャネルまたは接続パス（マスタからスレーブへの要求チャネル、およびスレーブからマスタへの応答チャネル）から成る。これらのチャネルの各々は、個々のパス上に設定され、種々の帯域幅、待ち時間、ジッタおよび／またはスロット要件を有する、異なるリンクを構築することができる。時間に関連した保証を提供するためには、リンク用のスロットを予約しなくてはならない。ＴＤＭＡによって、異なるコネクションには異なるスロットを予約することができる。この場合、コネクション用のデータは、連続するスロットにて、コネクションに沿う連続するリンクにわたって転送される。
【００３１】
図３は、図１のアーキテクチャによるコネクションを実現するブロック図を示す。ここでは、２つのネットワークインタフェースＮＩ１，ＮＩ２および２つのルータＲ１，Ｒ２、ならびにネットワークインタフェースＮＩ１とルータＲ１との間、ルータＲ１とルータＲ２との間、そしてルータＲ２とネットワークインタフェースＮＩ２との間の３つのリンクＬ１〜Ｌ３をそれぞれ示している。ＩＰブロックは図示していない。ラベルを付したリンクＬ１〜Ｌ３の各々に対するスロットテーブルＳＴ１〜ＳＴ３を示してある。これらのリンクは双方向性であり、したがって、各リンクに対して、２方向の各々に対するスロットテーブルがある。スロットテーブルＳＴ１〜ＳＴ３は、一方向についてのみ示してある。さらに、３つのコネクションｃ１〜ｃ３を記してある。上記３つのスロットテーブルＳＴ１〜ＳＴ３に加えて、さらに別のスロットテーブルＳＴ４〜ＳＴ６も示してある。これで、３つのコネクションｃ１〜ｃ３に関連する全てのスロットテーブルＳＴ１〜ＳＴ６を示してある。第１のコネクションｃ１は、ネットワークインタフェースＮＩ１からルータＲ１およびＲ２を経てネットワークインタフェースＮＩ２まで延在する。第２のコネクションｃ２は、ネットワークインタフェースＮＩ１からルータＲ１まで延在し、それから、スロットテーブルＳＴ４を用いるさらに別のネットワークコンポーネント（図示せず）まで延在する。第３のコネクションｃ３は、図示してないネットワークコンポーネントから派生して、ルータＲ１からルータＲ２まで、さらにスロットテーブルＳＴ６を用いる図示してないネットワークコンポーネントまで通じている。コネクションｃ１は、それが用いる３つのリンクＬ１〜Ｌ３（ＮＩ１からＲ１へ、Ｒ１からＲ２へ、およびＲ２からＮＩ２へ）の各々において１つのスロットを予約する。これらのリンクのスロットは、連続的（それぞれ、スロット２、スロット３そしてスロット４）でなければならない。ルータの観点からすると、あるタイムスロットにおいて、ルータは、これらのリンクＬ１〜Ｌ３を予約しているコネクションｃ１〜ｃ３にて、入力リンクからデータを受信する。このデータはルータに格納される。同時に、ルータは、それが前のスロットで受信したデータを出力リンクに送信する。このモデルでは、データが最大で１つのスロットに対してルータに格納されるので、コネクションのスロットを連続して予約しなくてはならない。
【００３２】
スロット割り当て問題に対する可能な一般化または変形例として、データは、２つ以上のスロットの持続期間中に、ルータにバッファリングするようにすることができる。このようにすれば、スロット割り当てが一層フレキシブルになり、これにより多めのバッファリングを要し、かつ潜在的に長めの待ち時間を要することになるが、リンクの利用効率を高めることができる。
【００３３】
スロットは、リンク上で衝突がないように予約しなければならない。つまり、同じリンクの同じスロットを予約する２つのコネクションは存在しないようにする。従って、ｃ１は、ＮＩ１とＲ１との間のリンク用のスロット２を予約する。したがって、ｃ２は、同じリンク用にスロット２を使用することはできない。
【００３４】
図４は、第１、第２、および第３のリンクＬ１〜Ｌ３の各々に対して、どのコネクションにどのスロットを予約させるのかを特定するテーブルを実現することによる、第１実施例の簡単なスロットテーブルの具体化を示すブロック図である。特に、３つのリンクＬ１〜Ｌ３に対して３つのコネクションｃ１〜ｃ３が要求する３つのスロットテーブルＳＴ１〜ＳＴ３のみを示してある。このテーブルを格納するのに好適な場所は、そのリンクに対するデータを生成するルータ／ネットワークインタフェース内、即ち出力ポートであり、その理由は、ルータ／ネットワークインタフェースは、そのリンクのためのデータを生成するためには、いつ、あるリンクが予約されるのか、または予約されてないのかを知る必要があるからである。スロットテーブルをネットワークインタフェースのみに格納し、ルータからはテーブルを省略するようにして、コストを節減するようにすることも可能である。また、テーブルは、タイムスロット割り当てユニットＳＡの一部とすることもできる。
【００３５】
図５は、第２実施例による、より効率的なスロット割り当てのエンコーディングを示すブロック図である。ここでもまた、３つのリンクＬ１〜Ｌ３に対して３つのコネクションｃ１〜ｃ３が要求する３つのスロットテーブルＳＴ１〜ＳＴ３のみを示してある。あるスロットがどのコネクションに属するかについての情報は、ネットワークインタフェースＮＩ、特にタイムスロット割り当てユニットＳＡに格納し、一方、ルータのスロットテーブルＳＴ１〜ＳＴ３には、あるスロットがリンク用に予約されているか否かのマークを付すだけにする。ルータは、データを、あるネットワーク要素から他へ、最終的には正しい出力端へと、パケットヘッダ（行き先アドレスまたは行き先へのパスを含む）に基づいて移送するだけであるので、スロットに関連するコネクションを知る必要はない。
【００３６】
図６は、上述した図４および図５のエンコーディングの可能な変形例である第３実施例のブロック図である。ここでは、ルータそのものに、（パケットヘッダの代わりに）経路指定情報を格納する。出力ポートのスロットテーブルＳＴ１〜ＳＴ３における、スロットは、どこから入力データを摂取するのかを指示する。このようにすることで、ルータのスロットテーブルは大きくなるが、パケットヘッダを省略して、スループットを増大させ、かつネットワークがマルチキャストコネクションを容易にサポートするようにできる。
【００３７】
図７は、図１のネットワークＮの一部、対応するスロット予約テーブルＳＲ、およびスロットの実際の使用を示すスロットテーブルＡＵを示している。ここでは、各々が４つのエントリＳ１〜Ｓ４を有するスロットテーブルＳを具える４つのルータＲ１、Ｒ２、Ｒ３およびＲ４を示してある。本実施例では、１つ以上のデバッグネットワークインタフェースＤＮＩと、マスタネットワークインタフェースＭＮＩおよびマスタＩＰ（例えばトランザクションバリデータのようなハードウェアデバッグＩＰブロックまたはＣＰＵが実行するデバッグソフトウェア）、即ちデバッグのトラフィックが向けられるネットワークインタフェースとの間のデバッグコネクションを示している。デバッグコネクションはまた、スレーブネットワークインタフェースおよびスレーブＩＰ（例えば埋め込み型またはオフチップメモリ）に向けることもできる。上述したように、各コネクションは、連続するルータＲ１〜Ｒ４にて多くのスロットを予約する。好適には保証されたスループットＧＴコネクションとするデバッグコネクションは、ルータＲ３からルータＲ２経由でルータＲ１まで進行する。各ルータＲ１、Ｒ２およびＲ３のスロットテーブルＳにて、このデバッグトラフィックｄ用の１つのスロットを予約する。多めのスロットを利用できる場合には、これらのスロットを、他のルータからのデバッグトラフィックまたは通常のデータトラフィックのような他のトラフィックが使用するようにできる。ここでは、デバッグコネクションのみを示して、他の全てのスロットは空にしてある。スロットが空であるので、それらをベストエフォート型ＢＥコネクション用に用いることができる。ルータＲ４は、ベストエフォート型コネクションＢＥに関連している。したがって、ルータＲ４は、ルータＲ２およびＲ１を経て、データパケット、即ちベストエフォート型パケットを送信しようとする。しかしながら、予約スロットテーブルＳＲにてデバッグコネクション用に予約されるスロットは、例に示したデバックパケット（図７の実際の使用スロットテーブルＡＵで「ｄ」のマークを付した）によって使用されているので、ルータＲ４はそのＢＥパケットを第２のルータＲ２に送信することはできない。
【００３８】
図７のスロット予約テーブルＳＲには、ルータＲ１〜Ｒ４のスロットテーブルのスロットＳ１〜Ｓ４の予約状況を記してある。原則として、３つの異なるスロット、即ち、予約済でないスロットＮＲ、ＧＴ再使用可能スロットＧＴＲ、およびＧＴ再使用不可能スロットＧＴＮＲの予約が生じ得る。ＧＴＮＲスロットの予約は、以下説明する全てのスキームにおいて必要というわけではなく、より単純および／またはより安価な実施の場合には省略することもでき、以下この場合について示す。ルータＲ３、Ｒ２およびＲ１のスロットテーブルのスロットＳ１、Ｓ２およびＳ３は全て、ＧＴ再使用可能なＧＴＲとして予約され、即ち、コネクションによって要求されない場合には、それらを再使用することができる。他の全てのスロットは、予約済でないスロットＮＲとして予約される。図７のスロットテーブルＡＵは、ルータＲ１〜Ｒ４のスロットＳ１〜Ｓ４の実際の使用例を示しており、スロット予約テーブルＳＲに示す予約状況に従っている。ここでは、３つの異なるデータパケット、即ち、ユーザＢＥパケットＢＥ、真のデバッグパケットｄおよびダミーのデバッグパケットｄｄを、スロットに割り当てることができる。ダミーパケットｄｄは、以下説明する全てのスキームにおいて必要というわけではなく、より単純および／またはより安価な実施の場合には省略することもでき、以下この場合について示す。図７のスロットテーブルＡＵに示すように、ルータＲ３にて、１つのスロットＳ１が、デバッグトラフィックｄによって用いられる。次のルータＲ２では、スロットテーブルのスロットＳ２が、ルータＲ３から発生するデバッグトラフィックによって用いられる。次のルータＲ１では、第３のスロットＳ３が、ルータＲ２からのデバッグトラフィックによって用いられる。
【００３９】
図８は、図１のネットワークの一部を示すブロック図である。図８のネットワークＮの一部の構成は、図７のネットワークＮの一部の構成に対応する。スロット予約テーブルＳＲにはスロットの予約状況を記してあり、スロットテーブルＡＵにはスロットの実際の使用状況を記してある。しかしながら、ここでは、第３のルータＲ３から第１のルータＲ１まで、真のまたは実際のデバッグトラフィックは存在しない。したがって、図８のスロットテーブルで、以前第３のルータからデバッグトラフィック用に要求されたスロットは、ここでは使用されず（未使用）、例えば、第４のルータＲ４から発生するような、ベストエフォート型ユーザトラフィックによって再使用することができる。したがって、このベストエフォート型トラフィック用の実際のスロットの使用を、図８のスロットテーブルＡＵに示してあり、それらには「ＢＥ」というマークを付してある。ルータＲ３からのデバッグトラフィックが存在しない場合、システム全体は、デバッグトラフィックが存在する場合とは異なる動作をする。しかしながら、このような状況は、特にデバッグトラフィックにとっては好ましくない。これは、デバッグトラフィックは、ネットワークを含む１つ以上のチップ上のシステムにおけるエラーを見つけるために特別に始動させるものであり、現在のトラフィックおよびネットワークオンチップのコンポーネント（ネットワークインタフェースおよびルータ）およびＩＰモジュールは、エラーを見つけるために監視されるものであるからである。
【００４０】
図９は、図１のネットワークの一部を示すブロック図である。本ブロック図は、図８のブロック図に基づいている。ここでは、未使用のタイムスロットを満たすために、ダミーのパケットを導入している。スロット割り当ては、少なくとも何らかの種類のデバッグトラフィックが常に存在するように実行される。Ｒ３、Ｒ２およびＲ１の間のコネクションは、ＧＲ再使用可能なＧＴＲとしてマークを付してあるので、スロットテーブルＳＲの予約されたスロットを使用するため、およびデバッグトラフィックをネットワークオンチップＮｏＣに残存するトラフィックについて非侵害的なものとして維持するために、真のデバッグデータパケットの代わりにダミーのパケットｄｄを送信する。ダミーデータは、デバッグモジュールまたはネットワークインタフェースによって、挿入することができる。
【００４１】
ここでは、ルータＲ１、Ｒ２およびＲ３の間で、デバッグコネクションは真のデバッグデータ（ｄ）を含まず、代わりにダミーパケットを含むので、以前このようなデバッグコネクションによって使用されていたスロットテーブルＡＵのスロットは、ここでは「ｄｄ」のマークを付してある。したがって、真のデバッグパケット（ｄ）の代わりに送信されるダミーデバッグパケット（ｄｄ）に、またはデバッグパケットが全くない状態に対応して、第３のルータＲ３のスロットテーブルＡＵの第１のスロットＳ１、第２のルータＲ２のスロットテーブルＡＵの第２のスロットＳ２、および第１のルータＲ１のスロットテーブルＡＵの第３のスロットＳ３には、それぞれ「ｄｄ」というマークを付してあり、したがって、第４のルータＲ４からの任意のベストエフォート型ＢＥトラフィックは、第４のルータＲ４の第１のスロットＳ１、第２のルータＲ２のスロットテーブルの第３のスロットＳ３、および第１のルータＲ１のスロットテーブルの第４のスロットＳ４に組み入れることしかできない。故に、図７で説明した真のデバッグトラフィックが存在する状況と、図９で説明したダミーデバッグトラフィックが存在する状況との間で、ユーザデータの作用には観測可能な差はない。
【００４２】
デバッグコネクションは、実際のデバッグデータ、またはダミーのデバッグデータを含むことができる。ダミーパケットが存在することで、任意のベストエフォート型コネクションが、実際の真のデバッグトラフィックの有無にかかわらず確実に同じように動作するようになるので、ネットワークオンチップ環境の実際のパフォーマンスおよび機能を観察し、かつ分析することができる。なお、ダミーデバッグパケットを発信する際には、デバッグを非侵害的なものとするという目的は達成されているため、ＧＴＮＲ（ＧＴ再使用不可能スロット）のスロットテーブルにマークを付すことは省略することができる。
【００４３】
図１０は、図１のネットワークの一部を示すブロック図である。図７〜９の実施例とは対照的に、デバッグコネクションをＧＴ再使用不可能ＧＴＮＲとしてマークを付してあり、即ち、それぞれルータＲ３、Ｒ２およびＲ１のスロットテーブルＳＲにて、スロットＳ１〜Ｓ３には、ＧＴＮＲというマークを付してある。これらのスロットは再使用できないので、デバッグトラフィックが存在しない場合、ベストエフォート型トラフィックは、次のスロットを待たなければならない。実際の使用スロットテーブルＡＵに示すように、スロットテーブルＳＲでＧＴＮＲとマークを付したスロットに対応するスロットＳ１〜Ｓ３では、情報は送信されず、次のスロットでベストエフォート型トラフィックが送信される。結果は、図８に示した実施例と同じになる。この場合は、ＧＴＮＲタイプのスロットを予約するので、ダミーパケットを送信する必要はない。
【００４４】
追加のマーカを使用しているのは、特定のスロットは、再使用不可能な保証されたスループットのコネクションに関連することを示している。このような追加のマーカを使用して、ルータのデータラインのスイッチングを低減させ、任意のダミーパケットを送信する代わりにデータラインを一定に維持することができるので、特に有利である。スイッチング動作を低減させれば、消費電力を低減することにもなる。
【００４５】
しかしながら、追加のマーカが、既に存在するワードに適合しない場合には、追加のビットをスロットテーブルに組み込まなければならない。Ｎ−ルータは、使用するエンコーディングに応じて、２ｌｏｇＮビットの代わりに、例えば（２ｌｏｇＮ）＋１または２ｌｏｇ（Ｎ＋１）ビットを必要とする。
【００４６】
上述した実施例はデバッグトラフィックに関連しているが、本発明の原理は、デバッギングの監視、パフォーマンス解析の監視、資源管理、ネットワーク管理、または機能的データの転送のような、非侵害的なトラフィックを含み得るデバッグトラフィックに限定されるものではない。
【００４７】
非侵害的なトラフィックは、保証された容量を確保するため、または通常のトラフィックによっては再使用不可能として予約した容量にマークを付すためにダミーデータを送信することによって達成することができる。
【００４８】
図１１は、第３実施例のネットワークオンチップを示すブロック図である。図１１のネットワークオンチップのアーキテクチャは、ほぼ図１のアーキテクチャに対応している。したがって、関連するネットワークインタフェースＮＩ１〜ＮＩ５を各々有する５つのＩＰブロックＩＰ１〜ＩＰ５を示してある。ネットワークＮは５つのルータＲ１〜Ｒ５を具えている。さらに、いくつかのデバッグモジュールＤ１〜Ｄ５を記してある。これらのデバッグモジュールＤ１〜Ｄ５は、ネットワークＮの内部または外部に配置することができる。さらに、追加のネットワークインタフェースＮＩ６およびＮＩ７も具えている。デバッグモジュールの目的は、種々のソースになり得るもの（ＩＰモジュールのみならずルータおよびネットワークインタフェースおよびネットワークリンクのようなネットワークコンポーネント）から、デバック情報（ハードウェアおよびソフトウェアからのプログラマブルレジスタ、イベントおよび割り込みをサンプリングしたパケットのような）を収集することにある。図１１の破線は、図示したデバッグモジュールが、それらのデバック情報をどこから得るかということの例を示している。例えば、デバッグモジュールＤ４およびＤ５は、それらの情報をＩＰブロックＩＰ４およびＩＰ５からそれぞれ得る。また、デバッグモジュールＤ２およびＤ３は、それらのデバック情報をルータＲ２およびＲ３からそれぞれ得る。デバッグモジュールＤ１は、そのデバック情報をネットワークインタフェースＮＩ３から得る。さらに、デバッグモジュールは、（上述のようにして）得たデバック情報を、デバッグコネクションを用いて送信することができる。デバッグコネクションは、他のＩＰと共有するＮＩまたはデバッグモジュール（ＮＩ）によって実現することができる。デバッグモジュール専用のＮＩの例はＮＩ６およびＮＩ７であり、他のＩＰブロックと共有するＮＩの例はＮＩ２、ＮＩ３、ＮＩ５である。デバッグコネクションが用いられないときは、これらを通常の機能的なコネクションとして用いることができるため、ＮＩをＩＰブロックと共有するのが有利である。デバッグモジュールは、ハードウェア（ＨＤＭ）またはソフトウェア（ＳＤＭ）によって実現することができる。
【００４９】
特に、２つのコネクションＣＩ，ＣＩＩを図１１に示す。第１のコネクションＣＩはデバッグコネクションに対応し、第２のコネクションＣＩＩはＢＥコネクションに対応する。
【００５０】
本発明は、ネットワークオンチップ内のモニタリングおよびデバッグの問題に向けられるものである。いかなるモニタリング／デバッグのトラフィックも非侵害的であるべきである。しかしながら、本発明の範囲は、バス、スイッチ、単一ダイのネットワーク、多数ダイ（システムインパッケージ）、およびマルチチップを含む、いかなる相互接続にも向けられるものである。これは、保証のないＮｏＣ（または任意の相互接続）を用いて行うことができ、どちらも常に、デバック情報またはダミー情報（これは決定的なアービトレーション等を有することに依存し、即ち、ダミーデバッグパケットは、例えばアービタに対する真のデバッグパケットと同じにしなければならない）を送信することができる。さらに、ＢＥトラフィックによって（例えば、予約されていないスロットＮＲ、予約され再使用可能なスロットＧＴＲ、および予約され再使用不可能なスロットＧＴＮＲを有することによって）、未使用のＧＴ容量（例えばスロット）を再使用させずに、保証（例えば保証されたスループット、しかしながら他の保証も可能である）を伴ってＮｏＣ（または任意の相互接続）を用いるようにすることもできる。さらに、ＮｏＣ（または任意の相互接続）を、ＢＥトラフィックによって、未使用のＧＴ容量（例えばスロット）の再使用ができる保証を伴って使用することができ、どちらも常に、デバック情報またはダミーデバッグ情報を送信することができる。上記の組合せもまた可能である。
【００５１】
上述した本発明の原理は、既存のネットワークオンチップのアーキテクチャおよびインフラストラクチャでサポートすることができるので、ネットワークオンチップの特定のルータおよびネットワークインタフェースに追加のハードウェアは不要である。システムの動作に及ぼす影響を容認できる場合には、非侵害的なコネクションのためにデバッグ用に予約した帯域幅を、他のベストエフォート型または保証型のスループットコネクション用に再使用することもできる。
【００５２】
上述したタイムスロットの割り当ては、シングルチップのネットワークのみならず、いくつかの別個の集積回路またはマルチチップネットワークを具えている任意のデータ処理デバイスにも適用できる。
【００５３】
複数の処理モジュール（ＩＰ１〜ＩＰ５）と、これら複数の処理モジュール（ＩＰ１〜ＩＰ５）を結合して、処理モジュール（ＩＰ１〜ＩＰ５）間で少なくとも１つの第１の通信を可能にする相互接続手段（Ｎ）と、少なくとも１つの第２の通信に基づいて、相互接続手段（Ｎ）を経て複数の処理モジュール（ＩＰ１〜ＩＰ５）のうち１つと通信する、少なくとも１つの第１のモジュール（Ｄ１〜Ｄ５）と、少なくとも１つの第２の通信に保証された通信特性を割り当てるために、相互接続手段（Ｎ）を介して通信する第１および第２の通信用にタイムスロットを割り当てる、少なくとも１つのタイムスロット割り当てユニット（ＳＡ）と、を有する電子デバイスを提供する。第１のモジュール（Ｄ１〜Ｄ５）は、複数の処理モジュール（ＩＰ１〜ＩＰ５）のうち１つに実際のデータが通信されない場合には、ダミーデータを転送するように設定する。
【００５４】
さらに、保証通信特性が、未使用のタイムスロットの再使用を禁止する場合には、少なくとも１つの第１のモジュール（Ｄ１〜Ｄ５）によるダミーデータの転送は停止させる。
【００５５】
上記実施例では、相互接続としてネットワークオンチップを説明したが、本発明の原理は、バスまたはスイッチのような他の相互接続に適用することもできる。さらに、上記実施例では、時分割多重アクセス（ＴＤＭＡ）に基づく通信を説明したが、転送速度に基づく通信、またはそれぞれの通信またはコネクションの間で利用できる帯域幅を分割する他の考えられる態様のような、他の通信も可能である。
【００５６】
なお、上述した実施例は、本発明を説明するものであって制限するものではなく、当業者であれば、請求の範囲から逸脱することなく多くの変形例を設計することが可能である。「具える」という語は、請求項に列記されている以外の要素またはステップの存在を除外するものではない。いくつかの手段を列挙している装置の請求項において、これらの手段のいくつかは、単一かつ同じ品目のハードウェアによって実施することもできる。ある手段が相互に異なる従属請求項にて繰り返し記載されていたとしても、それによって、これら手段の組合せを有利に用いることができないということを意味するものではない。さらに、請求項における参照符号は、請求の範囲を限定するものとして解釈されるべきものではない。
【図面の簡単な説明】
【００５７】
【図１】本発明によるネットワークオンチップの基本構成を示すブロック図である。
【図２】図１のネットワークにおけるコネクションのための基本的なスロット割り当てを示すブロック図である。
【図３】図１のネットワークで更に詳細にスロット割り当てを示すブロック図である。
【図４】第１実施例による、より詳細なスロット割り当てを示すブロック図である。
【図５】第２実施例による、より詳細なスロット割り当てを示すブロック図である。
【図６】第３実施例による、より詳細なスロット割り当てを示すブロック図である。
【図７】関連するスロットテーブルを有する図１のネットワークＮの一部を示すブロック図である。
【図８】関連するスロットテーブルを有する図１のネットワークＮの一部を示すブロック図である。
【図９】関連するスロットテーブルを有する図１のネットワークＮの一部を示すブロック図である。
【図１０】関連するスロットテーブルを有する図１のネットワークＮの一部を示すブロック図である。
【図１１】第３実施例によるネットワークオンチップの基本構成を示すブロック図である。
【図１】
2008520119.tif 000003
【図２】
2008520119.tif 000004
【図３】
2008520119.tif 000005
【図４】
2008520119.tif 000006
【図５】
2008520119.tif 000007
【図６】
2008520119.tif 000008
【図７】
2008520119.tif 000009
【図８】
2008520119.tif 000010
【図９】
2008520119.tif 000011
【図１０】
2008520119.tif 000012
【図１１】
2008520119.tif 000013
【国際調査報告】
2008520119.tif 000014
2008520119.tif 000015
2008520119.tif 000016