(57)【要約】  複数のモジュール（IP；A-D、M）を接続し、モジュール（IP；A-D、M）間の通信を可能にする相互接続手段（N）を有する電子装置が提供され、通信リソースは、利用可能な通信帯域を分割して共有するタイムスロットに基づく時分割多重アクセスに関する。電子装置は、複数のモジュール（IP；A-D、M）のうち少なくとも１つを相互接続手段（N）に結合する少なくとも１つのネットワークインタフェースを更に有する。ネットワークインタフェース（NI）は、少なくとも１つの更なるネットワークインタフェース（NI）に少なくとも１つの接続を確立するように適合される。少なくとも１つの接続は、少なくとも１つのチャネル（a-d）を有する。少なくとも１つのネットワークインタフェース（NI）は、少なくとも１つのチャネル（a-d）のタイムスロットを予約する少なくとも１つのスロットテーブル（ST1-ST11）を有する。タイムスロットは、同じネットワークインタフェース（NI）に関連するチャネル（a-d）間で共有される。
2009502080.tif 000002
【特許請求の範囲】
【請求項１】
複数のモジュールを接続し、前記モジュール間の通信を可能にする相互接続手段であり、通信リソースは、利用可能な通信帯域を分割して共有するタイムスロットに基づく時分割多重アクセスに関する相互接続手段と；
前記複数のモジュールのうち少なくとも１つを前記相互接続手段に結合する少なくとも１つのネットワークインタフェースであり、前記ネットワークインタフェースは、少なくとも１つの更なるネットワークインタフェースに少なくとも１つの接続を確立するように適合され、前記少なくとも１つの接続は、少なくとも１つのチャネルをそれぞれ有し、前記少なくとも１つのネットワークインタフェースは、前記少なくとも１つのチャネルのタイムスロットを予約する少なくとも１つのスロットテーブルを有する少なくとも１つのネットワークインタフェースと；
を有し、
タイムスロットは、同じネットワークインタフェースに関連するチャネル間で共有される電子装置。
【請求項２】
前記タイムスロットが同じネットワークインタフェースに関連するチャネル間で共有されるように、前記少なくとも１つのチャネルに予約されたタイムスロットを仲裁する少なくとも１つの仲裁ユニットを更に有する、請求項１に記載の電子装置。
【請求項３】
複数のチャネルが関連するネットワークインタフェースは、前記少なくとも１つの仲裁ユニットのうち１つを有する、請求項１又は２に記載の電子装置。
【請求項４】
前記相互接続手段は、複数のネットワークインタフェースと、前記ネットワークインタフェースの間でデータをルーティングする複数のルータとを有する、請求項３に記載の電子装置。
【請求項５】
第１のネットワークインタフェースは、少なくとも第１及び第２のチャネルで少なくとも第２及び第３のネットワークインタフェースからデータを受信し、
前記少なくとも第１及び第２のチャネルは、少なくとも１つのタイムスロットを共有する、請求項３に記載の電子装置。
【請求項６】
第１のネットワークインタフェースは、少なくとも第１及び第２のチャネルで少なくとも第２及び第３のネットワークインタフェースにデータを送信し、
前記少なくとも第１及び第２のチャネルは、少なくとも１つのタイムスロットを共有する、請求項３に記載の電子装置。
【請求項７】
前記第１のネットワークインタフェースは、遅延の後に、前記少なくとも第２及び第３のネットワークインタフェースから前記データを受信する、請求項６に記載の電子装置。
【請求項８】
前記少なくとも第２及び第３のネットワークインタフェースは、それぞれ第２及び第３の遅延の後に、前記第１のネットワークインタフェースからのデータに応答する、請求項７に記載の電子装置。
【請求項９】
前記第１のネットワークインタフェースからの要求に応答する遅延は、前記少なくとも１つの第２及び第３のネットワークインタフェース内のレジスタにプログラムされる、請求項７に記載の電子装置。
【請求項１０】
前記第１のネットワークインタフェースは、前記応答の遅延に関する情報を前記少なくとも１つの第２及び第３のネットワークインタフェースに転送するように適合される、請求項７に記載の電子装置。
【請求項１１】
前記第１のネットワークインタフェースは、前記少なくとも１つの第２及び第３のネットワークインタフェースの応答の遅延に関する情報をそれぞれの要求と共に転送するように適合される、請求項１０に記載の電子装置。
【請求項１２】
複数のモジュールを結合する相互接続手段と、前記複数のモジュールのうち少なくとも１つを結合する少なくとも１つのネットワークインタフェースとを有する電子装置内での通信リソース割り当て方法であって、
複数のモジュールを接続し、前記モジュール間の通信を可能にし、通信リソースは、利用可能な通信帯域を分割して共有するタイムスロットに基づく時分割多重アクセスに関するステップと、
前記複数のモジュールのうち少なくとも１つを前記相互接続手段に結合するステップと、
少なくとも１つのネットワークインタフェースに少なくとも１つの接続を確立し、前記少なくとも１つの接続は、少なくとも１つのチャネルを有するステップと、
少なくとも１つのチャネルについてネットワークインタフェースのスロットテーブルのタイムスロットを予約するステップと、
同じネットワークインタフェースに関連するチャネル間でタイムスロットを共有するステップと
を有する方法。
【請求項１３】
複数のモジュールを接続し、前記モジュール間の通信を可能にする相互接続手段であり、通信リソースは、利用可能な通信帯域を分割して共有するタイムスロットに基づく時分割多重アクセスに関する相互接続手段と；
前記複数のモジュールのうち少なくとも１つを前記相互接続手段に結合する少なくとも１つのネットワークインタフェースであり、前記ネットワークインタフェースは、少なくとも１つの更なるネットワークインタフェースに少なくとも１つの接続を確立するように適合され、前記少なくとも１つの接続は、少なくとも１つのチャネルをそれぞれ有し、前記少なくとも１つのネットワークインタフェースは、前記少なくとも１つのチャネルのタイムスロットを予約する少なくとも１つのスロットテーブルを有する少なくとも１つのネットワークインタフェースと；
を有し、
タイムスロットは、同じネットワークインタフェースに関連するチャネル間で共有されるデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子装置、通信リソース割り当て方法及びデータ処理システムに関する。
【背景技術】
【０００２】
システム・オン・シリコンは、新しい特徴と既存の機能の改善とを実装する更に高まる要求のため、絶え間ない複雑性の増加を示している。このことは、構成要素が集積回路に集積可能な密度の増加により可能になっている。同時に、回路が動作するクロック速度も増加する傾向にある。構成要素の密度の増加と共に高いクロック速度は、同じクロック領域内で同期して動作することができる領域を減少させている。このことは、モジュール手法の必要性を作った。このような手法によれば、処理システムは、複数の比較的独立した複雑なモジュールを有する。通常の処理システムでは、システムモジュールは、通常ではバスを介して相互に通信する。しかし、モジュールの数が増加すると、この通信方法は以下の理由でもはや実用的ではない。一方で、多数のモジュールが大きすぎるバス負荷を作り、唯一の装置がデータをバスに送信することができるため、バスが通信のボトルネックを作る。
【０００３】
通信ネットワークは、これらの欠点を克服する効果的な方法を形成している。ネットワーク・オン・チップ（NoC：network  on  chip）は、複雑性の高いチップでの相互接続問題への対策として、近年にかなりの注目を受けている。この理由は２つある。第１に、NoCは、グローバルな線を構成して管理するため、新しいディープサブミクロン（deep-submicron）技術での電気的問題を解決することに役立つ。同時に、線を共有し、その数を小さくして利用度を増加させる。NoCはまた、エネルギー効率が良く信頼性があり、バスに比べて拡張性がある。第２に、NoCはまた、通信から計算を分離する。このことは、無数のトランジスタのチップの設計を管理する際に不可欠である。NoCは、元々はプロトコルスタックを使用して設計されているため、この分離を実現する。プロトコルスタックは、サービス実装から通信サービスの使用を分離する明確なインタフェースを提供する。
【０００４】
NoCは、主に制約及び同期でオフチップネットワークと異なる。典型的には、リソース制約はオフチップよりオンチップの方が厳しい。記憶（すなわち、メモリ）及び計算リソースは、比較的高価であるが、ポイント・ツー・ポイント・リンクはオフチップよりオンチップの方が大きい。RAMのような汎用オンチップメモリは大きい領域を占有するため、記憶装置は高価である。メモリを比較的小さいサイズでネットワーク構成要素に分散させることは、メモリのオーバーヘッド領域が顕著になるため、更に悪くなる。
【０００５】
典型的には、ネットワーク・オン・チップ（NoC）は、複数のルータとネットワークインタフェースとを有する。ルータは特定のトポロジ（例えば、メッシュ、トーラス、肥大なツリー（fat-tree））で接続される。ルータはネットワークノードとしての役割を果たし、静的に（すなわち、ルートは予め決定されており変化しない）又は動的に（すなわち、ルートは、ホットスポットを回避するため、例えばNoCの負荷に応じて変化する可能性がある）データを正確なパスで宛先にルーティングすることにより、ソースネットワークインタフェースから宛先ネットワークインタフェースにデータを転送するために使用される。ルータはまた、時間保証（例えば、レート型、期限型、又はTDMA様式でのパイプライン回路の使用）を実装し得る。ネットワーク・オン・チップでの通信は、順にチャネルの上に構築される接続に基づく。チャネルは、ソースから宛先へのネットワークを通じた一方向のパスである。ルータのアーキテクチャの更なる詳細は、Edwin  Rijpkema,  Kees  Goossens及びPaul  Wielage
によるA  router  architecture  for  networks  on  silicon,  In  PROGRESS,  October  2001にあり、これが参照として取り込まれる。
【０００６】
典型的には、ネットワークインタフェースは、IPブロック（Intellectual  Property：知的財産）に接続される。IPブロックは、如何なる種類のデータ処理ユニットを表してもよく、メモリ、ブリッジ等でもよい。特に、ネットワークインタフェースは、IPブロックとネットワークとの間の通信インタフェースを構成する。通常では、ネットワークインタフェースは既存のバスインタフェースと互換性がある。従って、ネットワークインタフェースは、データのシーケンシャル化（固定幅（例えば32ビット）の信号グループでの提示コマンド、フラグ、アドレス及びデータの適合）及びパケット化（ネットワークにより内部で必要なパケットヘッダ及びトレーラの追加）を扱うように設計される。ネットワークインタフェースはまた、時間保証及び許可制御を有し得るパケットスケジューリングも実装し得る。
【０００７】
時間に関する保証（すなわち、スループット、待ち時間及びジッタ）を提供するコスト効率の良い方法は、TDMA（Time  Division  Multiple  Access）様式でのパイプライン回路を使用することである。TDMA様式でのパイプライン回路は、厳しい同期を有するシステム・オン・チップ（SoC：system  on  chip）でのレート型及び期限型の方式に比べて小さいバッファ空間を必要とするため、有利である。
【０００８】
各スロットで、データアイテムは１つのネットワーク構成要素から次のものに（すなわち、ルータ間で又はルータとネットワークインタフェースとの間で）移動される。従って、スロットが出力ポートで予約されるときに、次のスロットは、ソースと宛先モジュールとの間のパスに沿った次の出力ポートで予約されなければならず、以下同様である。
【０００９】
時間保証で複数の接続が設定されるときに、スロット割り当ては、衝突が存在しないように（すなわち、１つより多くの接続に割り当てられたスロットが存在しないように）実行されなければならない。所定のネットワークトポロジ（すなわち、所定数のルータ及びネットワークインタフェース）での最適なスロット割り当てと、IPブロック間で一式の接続とを見つけるタスクは、かなり計算集約的な問題である。
【００１０】
図５は、従来技術によるネットワーク・オン・チップの一部の基本的な図を示している。ここでは、関連のネットワークインタフェースNIA、NIBをそれぞれ備える第１及び第２のIPブロックIPA及びIPBが図示されている。更に、２つのルータRが図示されている。２つのIPブロックIPA、IPBはネットワークで通信する。２つのネットワークインタフェースNIA、NIBは、それぞれ４つのタイムスロット0-3を有するスロットテーブルST1、ST2をそれぞれ有する。第１のIPブロックIPAは、第１のネットワークインタフェースNIAに関連する第１のスロットテーブルST1で予約された２つのスロットを有するチャネルを必要とする。第２のIPブロックIPBは、第２のネットワークインタフェースNIBに割り当てられた第２のスロットテーブルST2で予約された唯一のスロットを有するチャネルbを必要とする。第１のチャネルaのパスは、黒い先頭部の矢印で示されており、第２のチャネルbのパスは白い先頭部の矢印で示されている。２つのスロットテーブルST1、ST2のスロットは、フリット（flit）がネットワーク内で競合しないように予約される。黒い先頭部の矢印及び白い先頭部の矢印の次に配置されている数は、特定のリンクでの各チャネルのスロットを表す。第１のチャネルaは、第１のスロットテーブルST1で予約されたスロット0及び2を有し、第２のチャネルbは、第２のスロットテーブルST2で予約されたスロット1を有する。
【００１１】
図６は、従来技術による複数のIPブロックを接続するネットワーク・オン・チップの基本的な図を示している。
【００１２】
一例として、ネットワークは、サイズ8のスロットテーブルを使用し、IPブロックMは、1/32のリンク帯域をそれぞれ必要とする他のIPブロックへの読み取りを実行する。MからA、B、C及びDへの４つの接続のそれぞれは、スロット（1/8のリンク帯域）を予約しなければならない。同時に、４つの接続は４つのスロット（すなわち1/2のリンク帯域）を予約するが、同時に1/8のリンク帯域しか使用しない。明らかに、これは利用可能な帯域及びネットワークリソースの最適でない使用である。
【発明の開示】
【発明が解決しようとする課題】
【００１３】
通信リソースの更に効率的な割り当てを有する電子装置及び通信リソース割り当て方法を提供することが本発明の目的である。
【課題を解決するための手段】
【００１４】
この目的は、請求項１に記載の電子装置、請求項１２に記載の通信リソース割り当て方法、及び請求項１３に記載のデータ処理システムにより解決される。
【００１５】
複数のモジュールを接続し、モジュール間の通信を可能にする相互接続手段を有する電子装置が提供され、通信リソースは、利用可能な通信帯域を分割して共有するタイムスロットに基づく時分割多重アクセスに関する。電子装置は、複数のモジュールのうち少なくとも１つを相互接続手段に結合する少なくとも１つのネットワークインタフェースを更に有する。ネットワークインタフェースは、少なくとも１つの更なるネットワークインタフェースに少なくとも１つの接続を確立するように適合される。少なくとも１つの接続は、少なくとも１つのチャネルを有する。少なくとも１つのネットワークインタフェースは、少なくとも１つのチャネルのタイムスロットを予約する少なくとも１つのスロットテーブルを有する。タイムスロットは、同じネットワークインタフェースに関連するチャネル間で共有される。
【００１６】
従って、チャネルが少なくとも１つのタイムスロットを共有するため、複数のチャネルが同じネットワークインタフェースに関する場合に、利用可能な帯域がより効率的に使用可能になる。
【００１７】
本発明の態様によれば、タイムスロットが同じネットワークインタフェースに関連するチャネル間で共有されるように、少なくとも１つのチャネルに予約されたタイムスロットを仲裁する少なくとも１つの仲裁ユニットが提供される。従って、仲裁器は、全てのチャネルが十分な帯域を取得するように、利用可能なタイムスロットがチャネル間で公正に共有されることを確保し得る。
【００１８】
本発明の更なる態様によれば、仲裁ユニットは、仲裁が共有のネットワークインタフェースにより実行及び制御され得るように、複数のチャネルが関連するネットワークインタフェースに構成される。
【００１９】
本発明の更なる態様によれば、第１のネットワークインタフェースは、少なくとも第１及び第２のチャネルで少なくとも第２及び第３のネットワークインタフェースからデータを受信し、少なくとも第１及び第２のチャネルは、少なくとも１つのタイムスロットを共有する。従って、第１のネットワークインタフェースは、第１及び第２のチャネルの宛先になる。
【００２０】
更に、本発明の更なる態様によれば、第１のネットワークインタフェースは、少なくとも第１及び第２のチャネルで少なくとも第２及び第３のネットワークインタフェースにデータを送信し、少なくとも第１及び第２のチャネルは、第１のネットワークインタフェースが第１及び第２のチャネルのソースになるように、少なくとも１つのタイムスロットを共有する。
【００２１】
本発明はまた、相互接続手段と少なくとも１つのネットワークインタフェースとを有する電子装置内での通信リソース割り当て方法に関する。複数のモジュールは相互接続手段により接続され、モジュール間の通信を可能にする。通信リソースは、利用可能な通信帯域を分割して共有するタイムスロットに基づく時分割多重アクセスに関する。複数のモジュールのうち少なくとも１つは、ネットワークインタフェースを用いて相互接続手段に結合される。少なくとも１つの更なるネットワークインタフェースに少なくとも１つの接続が確立される。少なくとも１つの接続は、少なくとも１つのチャネルを有する。タイムスロットは、少なくとも１つのタイムスロットで少なくとも１つのチャネルに予約される。タイムスロットは、同じネットワークインタフェースに関連するチャネル間で共有される。
【００２２】
本発明は、一式のチャネルの中のそれぞれのチャネルに通信リソースを割り当てる代わりに、いくつかの通信リソースが一式のチャネルについて共有されるという概念に関する。このことは、複数の異なるチャネルが単一のネットワークインタフェースに関連する場合に実行され得る。このことは、ネットワークインタフェースがソースネットワークインタフェース（すなわち、要求コマンドを発行して応答を受信すること（例えば読み取りトランザクション））としての役目を果たす場合、又は宛先ネットワーク（すなわち、要求コマンドを受信すること（例えば書き込みトランザクション））としての役目を果たす場合に生じてもよい。いくつかの通信リソースが一式のチャネルの間で共有される必要があるため、通信リソースが必要なそれぞれのチャネルに割り当てられることを確保するために仲裁器が提供され得る。しかし、複数のチャネルが相互排他的な方法で使用されることを、システム・オン・チップで動作するアプリケーションが確保する場合に、仲裁は必要ない。一式のチャネル内の異なるチャネルが共有される場合に、このことは特に有利である。特に、スロットテーブルで予約されたタイムスロットは、複数のチャネルが少なくとも１つのタイムスロットを共有するように、共有通信リソースとして使用されてもよい。
【発明を実施するための最良の形態】
【００２３】
添付図面を参照して、本発明について詳細に説明する。
【００２４】
以下の実施例は、システム・オン・チップ（すなわち、何らかの種類の相互接続を介して相互に通信する同じダイ上、複数のダイ（例えば、パッケージ内のシステム）上、又は複数の（異なるチップ）上の複数のモジュール）に関する。相互接続は、ネットワーク・オン・チップ（NOC：network  on  chip）として具現されてもよい。ネットワーク・オン・チップは、ネットワーク内で線、バス、時分割多重、スイッチ、及び／又はルータを有してもよい。このネットワークのトランスポートレイヤで、モジュール間の通信が接続上で実行される。接続は、第１のモジュールと少なくとも１つの第２のモジュールとの間での、一式の接続特性をそれぞれ有する一式のチャネルと考えられる。第１のモジュールと単一の第２のモジュールとの間の接続では、接続は２つのチャネル（すなわち、第１のモジュールから第２のモジュールへの１つ（すなわち、要求チャネル）及び第２のモジュールから第１のモジュールへの第２のチャネル（すなわち、応答チャネル））を有してもよい。従って、ネットワークを通じた接続又は接続のパス（すなわち、接続パス）は、少なくとも１つのチャネルを有する。換言すると、チャネルは、唯一のチャネルが使用される場合に、接続の接続パスに対応する。前述のように２つのチャネルが使用される場合、１つのチャネルは、例えばマスター（ソース）からスレーブ（宛先）への接続パスを提供してもよく、第２のチャネルは、スレーブからマスターへの接続パスを提供してもよい。従って、典型的な接続では、接続パスは２つのチャネルを有してもよい。接続特性は、順序付け（順番のデータ転送）、フロー制御（遠隔のバッファが接続に予約され、生成されたデータについて空間が利用可能であることを保証された場合にのみ、データ生成者はデータを送信することが許可される）、スループット（スループットでの下限が保証される）、待ち時間（待ち時間の上限が保証される）、損失（データの欠落）、送信の終了、トランザクションの完了、データの正確性、優先度、又はデータ配信を有してもよい。
【００２５】
図１は、本発明によるネットワーク・オン・チップの基本的なアーキテクチャのブロック図を示している。このシステムは、複数のいわゆる知的財産ブロックIP（IP1-IP5）（内部に相互接続モジュールを含んでもよく、それぞれネットワークインタフェースNIを介してそれぞれネットワークNに接続される複数のチップ上に構成されてもよい計算要素、メモリ又はサブシステム）を有する。ネットワークNは、複数のルータR1-R5を有する。複数のルータR1-R5は、それぞれのネットワークリンクを介して隣接のルータに接続される。
【００２６】
ネットワークインタフェースNI1-NI5は、IPブロックIP1-IP5とネットワークNとの間のインタフェースとして使用される。ネットワークインタフェースNI1-NI5は、各IPブロックIP1-IP5及びネットワークNの通信を管理するように提供され、これにより、IPブロックIP1-IP5は、ネットワークN又は他のIPブロックとの通信を処理する必要なく、自分の専用の動作を実行することができる。IPブロックIP1-IP5は、マスター（すなわち、要求の起動）として動作してもよく、スレーブ（すなわち、マスターからの要求を受信してそれに従って要求を処理すること）として動作してもよい。
【００２７】
競合のないルーティングでは、ネットワークで転送されるデータは、データ競合が生じないように投入される。ネットワークインタフェースNIにより実行されるデータの投入は、フリット（flit）（すなわち、最小の同期エンティティに関する固定サイズのサブパケット）に基づく。
【００２８】
図２ａは、第１の実施例による複数のIPブロックを接続するネットワーク・オン・チップの基本的な図を示している。ここでは、５つのIPブロックA、B、C、D及びMが図示されている。ネットワークインタフェースNIは、それぞれのIPブロックA-D、Mに関連する。更に、６個のルータR（R1-R6）が図示されている。図面の明瞭性を改善するために、６個のルータRの間のリンク及びルータRとネットワークインタフェースNIとの間のリンクは図示されていない。４つのチャネルa、b、c及びdが、それぞれIPブロックA、B、C及びD及びIPブロックMと通信するために必要になる。全てのチャネルa、b、c及びdはIPブロックMと他のIPブロックとの間に存在する。単一のスロットがそれぞれのチャネルに予約される。スロットテーブルST1-ST11は、ネットワークで一方向リンクのそれぞれに関連することが好ましい。スロットテーブルは各リンクに論理的に関連するという事実にもかかわらず、ある実装では、スロットテーブルは、物理的に全てのリンクに存在するとは限らない（例えば、ある実装は、ネットワークインタフェースのみにスロットテーブルを有してもよい）。各スロットテーブルST1-ST11は、４つのスロットSと、スロットテーブル回転rとを有する。全ての４つのチャネルa、b、c及びdは、IPブロックMに関連するネットワークインタフェースから、他のIPブロックA-DのネットワークインタフェースNIに伸びる。従って、４つのチャネルのそれぞれは、各スロットテーブルにスロットを必要とする。
【００２９】
各ネットワークインタフェースNIA-NIMは、スロットテーブルST1、ST3、ST5、ST7及びST11を有する。更に、ネットワークインタフェースは、スロットカウンタsと、スロットテーブル回転をカウントするカウンタrとを有する。タイムスロットテーブルのタイムスロットの割り当ては、チャネル毎にタイムスロットを予約する代わりに、一式のチャネルの間でタイムスロットを共有することにより実行されるため、かなりの量の帯域が節約可能である。タイムスロットを共有する一式のチャネルの帯域の実際の予約は、タイムスロットとスロットテーブル回転とを割り当てることにより実行される。例えば、図２ａでは、ネットワークインタフェースNIAは、r=0のスロットテーブル回転でスロットS=1を予約する<r=0,S=1>。従って、スロットS=1は、第１のスロットテーブル回転内で予約される。ネットワークインタフェースNIBのタイムスロットは、第２のスロットテーブル回転r=1を除いて、第１のタイムスロットS=0で予約される。ネットワークインタフェースNICのタイムスロットは、第２のスロットテーブル回転r=1でタイムスロットS=3で予約される。
【００３０】
従って、この実施例によるスロットテーブルは、４つのスロット（S=1,...,S=3）を有する。最も左のスロットはスロットS=0であり、最も右のスロットはスロットS=3である。最後のスロットS=3に到達すると、次のスロットは、第２のスロットテーブル回転（すなわちr=1）内での第１のスロットS=0である。この実施例では、４つのスロットテーブル回転（すなわち、r=0,...,r=3）が図示されている。
【００３１】
ネットワークインタフェースNIDは、第４のスロットテーブル回転r=3内でタイムスロットS=0を使用する。従って、ネットワークインタフェースNIMに関連するスロットテーブルST1内での結果は、データが常に同じスロット（すなわちS=3）で４つのスロットテーブル回転内で受信されるようになる。全ての４つのチャネルa-dがスロットS=3を使用する場合、チャネルa-dが続くスロットテーブル回転内でタイムスロットを占有するため、競合が生じず、帯域予約は十分になる。スロットテーブル回転の値は、データが共有のタイムスロットで転送されるときに衝突が存在しないように計算される。ネットワークインタフェースNIMが全ての４つのチャネルa-dの宛先になる場合に関する第１の実施例では、IPブロックA-Dからのデータは、固定の順序で到達する。順序は必ずしもa、b、c、dである必要はなく、如何なる順序も可能である点に留意すべきである。更に、一式の接続a、b、c、dに割り当てられる１つより多くのスロットが存在してもよい。
【００３２】
この実施例では、固定の順序が存在するため、帯域予約は絶対的な帯域予約である。４つのチャネルa-dの宛先になるネットワークインタフェースNIMでは、各チャネルの間で利用可能な帯域予約を仲裁する仲裁ユニットAUが存在する。このような仲裁ユニットAUはまた、他のネットワークインタフェースNIA-NIDのうち１つ又は全てに存在してもよい。
【００３３】
異なるチャネルのタイムスロットの特定の予約は、接続の構成中に実行され得る。接続に割り当てられる通信リソースの値は、実行時間中に変更されてもよい。タイムスロットの割り当ては、スロット割り当てユニットSA内で実行されることが好ましく、次に、スロット割り当てユニットSAは、各IPブロックにより実装されてもよい。
【００３４】
例えば、IPブロックMがブロッキング読み取り（blocking  read）を実行する場合、競合及び衝突を回避するために更なる手段（例えば、仲裁器）が取り込まれる必要はない。スロットが共有される場合に更なる手段が取り込まれる必要のない他の例は、複数のチャネルが相互排他的に使用されることをアプリケーション自体が確保する場合である。
【００３５】
しかし、競合又は衝突の可能性が存在する場合（例えば、パイプライン読み取りが許可されている場合、複数の応答が同時に到達する可能性がある）、IPブロックMに関連するネットワークインタフェースNIは、IPブロックが非ブロッキング読み取り（non-blocking  read）を発行した場合に、せいぜい１つの顕著な読み取りが存在することを確保しなければならない。
【００３６】
更に又は代替として、IPブロックMに関連するネットワークインタフェースは、それぞれIPブロックA、B、C及びDに関連するネットワークインタフェースに更なる制御情報を提供してもよい。この更なる制御情報は、いつデータをネットワーク・オン・チップに取り入れるかを決定するために、IPブロックA-Dに関連する各ネットワークインタフェースにより使用され得る。
【００３７】
図２ａでは、スロットテーブル内の１つのタイムスロットは、全体のチャネルに割り当てられる。従って、タイムスロット3は、IPブロックMに関連するネットワークインタフェースNIと第１のルータR1との間、及び第６のルータR6とIPブロックCに関連するNIとの間のリンクに関連する。タイムスロット2は、第１のルータR1とそれぞれ第２及び第４のルータR2、R4との間のリンクに関連する。タイムスロット1は、第４及び第５のルータR4、R5の間に関連し、第２のルータR2とIPブロックAに関連するネットワークインタフェースとの間のリンクに関連し、また、第２及び第３のルータR2、R3の間のリンクに関連する。タイムスロット0は、ルータR5とIPブロックDに関連するネットワークインタフェースNIとの間のリンクに関連し、第５及び第４のルータR5及びR4の間のリンクに関連し、また、第３のルータR3とIPブロックBに関連するネットワークインタフェースとの間のリンクに関連する。
【００３８】
しかし、複数のスロットがネットワーク・オン・チップの各リンクに割り当てられる場合、少なくとも２つの精度で衝突が回避可能である。衝突はスロットテーブルの回転内で回避可能である。これは、異なるタイムスロットに異なるチャネルを割り当てるために使用され得る（スロットは共有されない）。更に、衝突はスロットテーブルの回転上で回避可能である。従って、異なるチャネルは、異なるスロットテーブル回転で通信し得る（スロットは共有される）。
【００３９】
更に又は代替として、スロットが併せて割り当てられた一式のチャネルで送信されるデータの間での衝突は、スロットテーブルの回転内及び／又はスロットテーブルの回転上での衝突を回避することにより実現可能である。
【００４０】
図２ｂは、第２の実施例による複数のIPブロックを接続するネットワーク・オン・チップの基本的な図を示している。図２ｂによるネットワーク・オン・チップの構造は、図２ａに図示する構造に対応する。ルータ及びネットワークインタフェースの間の接続は、図面の明瞭性を高めるために図示しない。この実施例では、ソースとしてのネットワークインタフェースNIMでナローキャスト接続が存在する。従って、ネットワークインタフェースNIMは、予約スロットで要求をスケジューリングする。必要な仲裁は、例えば、（重み付き）ラウンドロビン、レート型、優先度型、ネスト型のスロットテーブル仲裁方式により、出力チャネルa-dの間で実行される。IPブロックA-Dからの応答チャネルでの何らかの衝突を回避するために、これらのIPブロックの応答は、固定の遅延の後にネットワークインタフェースNIMに到達するようにスケジューリングされる。この実施例では、固定の遅延は10タイムスロットである。これは、IPブロックA-Dに関連するネットワークインタフェース（すなわち、スレーブネットワークインタフェース）で遅延をプログラミングすることにより実行可能である。遅延は、何個のスロットテーブルの回転の後にネットワークインタフェースが要求された応答に対して送信するようにスケジュールされるかを指定するために使用される。
【００４１】
このことは、要求及び応答が送信されるときに更なる柔軟性が存在するため、特に有利である。他方、この方式は、複数のチャネルが１つの単一の宛先を有する収束した応答チャネルのみに動作する。
【００４２】
第２の実施例に従って要求される遅延は、ネットワークインタフェース内のレジスタにプログラムされてもよく、遅延はまた、ネットワークインタフェースNIMの要求の中に符号化されてもよい。
【００４３】
遅延は受信される要求に関係するため、第２の実施例に従って導入される遅延は、相対的な帯域予約である。
【００４４】
図３は、第３の実施例によるネットワーク・オン・チップのブロック図を示している。図３によるネットワーク・オン・チップの構成は、図２に示すネットワーク・オン・チップの構成に実質的に対応する。ここでは、４つのチャネルa-dの全てが、IPブロックMに関連するネットワークインタフェースNIMに関連する。一式の３つのタイムスロットが４つのチャネルa-dに割り当てられる（異なるチャネル数、タイムスロット数及びパスも同様に使用可能である点に留意すべきである）。
【００４５】
チャネルはNIj（j∈{A,B,C,D}）からNIMにデータを送信するため、NIj（j∈{A,B,C,D}）はソースNIと呼ばれ、NIMは宛先NIと呼ばれる。
【００４６】
従って、スロット割り当てはソースネットワークインタフェース毎に異なってもよい点に留意すべきである。一式のチャネルのタイムスロットを表す１つの方法は、宛先ネットワークインタフェースで、これらのチャネルについて一式の割り当てられたスロットを使用することである。このような一式の割り当てられたスロットは、宛先スロットセットと呼ばれ得る。一例として、図４によるチャネルセット{A,B,C,D}の宛先スロットセットは{6,8,9}である。リンクR1-NIMでは、チャネルa、b、c、dは同じスロット（6、8及び9）で割り当てられる。
【００４７】
図４は、一式のチャネルの衝突の回避を示すタイムチャートを示している。図３によれば、チャネルがIPブロックMに関連するネットワークインタフェースNIMの入力リンクにアクセスする時間を選択することにより、時間の共通の概念が使用される。図４から、１つより多くのチャネルがIPブロックMに関連するネットワークインタフェースの入力リンクにアクセスする時点は存在しないことが明らかである。換言すると、何らかの衝突が回避される。
【００４８】
チャネルa、b、c及びｄは、リンクについて同じ一式のスロットS=7、8及び9を共有する。第１のスロットテーブル回転（r=0）内でチャネルaはスロットS=6を使用し、チャネルbはスロットS=8、9を使用し、チャネルc及びdはスロットを使用しない。これは、スロットテーブル使用STUにも見られ得る。その後、チャネルa及びdはスロットを使用せず、チャネルbはスロット8及び9を使用し、チャネルcはスロットs=6を使用する。その後、チャネルaはスロット=8を使用し、チャネルcはスロットs=6、9を使用し、チャネルb及びdはスロットを使用しない。次のスロットテーブル回転の間に、チャネルa、b及びcはスロットを使用せず、チャネルdはスロットs=6、8を使用する。その後、チャネルa、b及びcはスロットを使用せず、チャネルdはスロットs=6、8及び9を使用する。
【００４９】
前記の更なる制御情報がIPブロックMに関連するネットワークインタフェースNIにより提供される場合、どの情報がソースのネットワークインタフェースにより必要になるか、誰がこのようなデータを提供しているかが決定されるべきである。特に、必要なデータは、図４に示すタイミングチャートを得るための情報に対応する。それぞれのソースネットワークインタフェースNIは、チャネル毎に使用されるスロットを提供されなければならない。これらのスロットは、チャネルスロットセットと呼ばれる。複数のチャネルに関連するネットワークインタフェースNIでは、複数のチャネルスロットセットが提供されなければならない。更に、チャネルスロットセットのスロットが使用されるタイミングを示す記述子が提供され得る。記述子は全体のチャネルスロットセットに提供されてもよく、個々のスロット毎に提供されてもよい。
【００５０】
記述子をチャネルスロットセットに関連付ける１つの方法について詳細に説明する。ここでは、記述子は<nフリット、nパケット、nトランザクション、又は00>の組に関連する。ここでは、nフリット、nパケット又はnトランザクションは、nのフリット、パケット又はトランザクションが各記述子のチャネルスロットセットを使用して送信されることを示す。00は、チャネルスロットセットが更なる通知まで使用されることを示す。
【００５１】
記述子は、チャネルスロットセットが適用され得るスロットテーブル回転の数のような更なる情報を有してもよい。更に、記述子は、チャネルスロットセットがスロットテーブル回転rのみに適用することを示す整数値kを含めてもよい。rはmod  d=kに対応し、除数dは、システム全体の定数に対応する、或いはチャネルセット毎にプログラムされる。
【００５２】
次に、第１の実施例の例について説明する。宛先ネットワークインタフェースNIは、一式の他のネットワークインタフェースNIに対して読み取り要求を発行する。他のネットワークインタフェースNI（すなわち、第１のネットワークインタフェースへのソースネットワークインタフェース）からのチャネルは、収束したチャネルセットと考えられ、これにより、第１のネットワークインタフェースは宛先ネットワークインタフェースNIに対応する。これは、ナローキャストサービスにより得られてもよい。
【００５３】
第１の実施例の第２の例は、複数のネットワークインタフェースが同じネットワークインタフェースにデータを書き込むことを要求する場合に関する。ここでは、タイムスロットが個々のチャネルではなく一式のチャネルに併せて割り当てられるため、第１の実施例に従って説明した割り当て方式が有利である。従って、通信リソースが節約され、通信の待ち時間が減少する。
【００５４】
前述の記述子は、宛先ネットワークインタフェースNIにより提供されることが好ましい。宛先ネットワークインタフェースNIは、ソースネットワークインタフェースNIに送信されるパケット又はメッセージにそれぞれの情報を埋め込んでもよい。代替として、専用のパケットが導入されてもよい。前述の第１の実施例では、情報は読み取り要求のメッセージで符号化されてもよい。第２の例では、書き込み要求は、宛先ネットワークインタフェースNIに送信され、宛先ネットワークインタフェースは、受信した要求の承認の情報を符号化してもよい。
【００５５】
更に又は代替として、更なるユニットが、必要な更なる情報を提供してもよい。例えば、これは、接続の管理の役目をするCPUと同様のリソースにより実行され得る。このようなリソースは、異なる使用又は異なるアプリケーションについて同じ宛先ネットワークインタフェースに通信する異なるソースネットワークインタフェースが存在する場合に、一式のチャネルにスロットを割り当ててもよい。ここでは、リソースを全ての場合に割り当てる代わりに、低いコストが提供され得る。
【００５６】
前述の割り当て方式は、相互接続としてネットワーク・オン・チップに基づくシステム・オン・チップに具現され得る。特に、スロットテーブル型の手法が保証サービスを提供することが可能になる。有利には、シリコンのコストが減少し、一式のチャネルが存在する場合には待ち時間も減少する。このことは、例えば２つのメモリに書き込むために共有メモリ通信を使用する何らかのシステム、又は複数の場所からデータを読み取るネットワークインタフェースを有するシステムでは、特に有利になり得る。
【００５７】
前述の実施例では、相互接続としてネットワーク・オン・チップについて説明したが、本発明の概念は、バス又はスイッチのような他の相互接続にも適用可能である。また、本発明の概念は、複数のチップに広がるネットワークにも適用可能である。更に、前述の実施例では、時分割多重アクセス（TDMA）に基づく通信について説明したが、レート型通信のように他の通信も可能であり、それぞれの通信又は接続の間で利用可能な帯域を分割することも可能である。
【００５８】
前述の実施例は本発明を限定するものではなく、例示するものであり、特許請求の範囲を逸脱することなく、当業者は多数の代替実施例を設計することができる点に留意すべきである。請求項において、括弧の間にある如何なる参照符号も請求項を限定するものとして解釈されるべきではない。“有する”という用語は、請求項に記載のもの以外の要素又はステップの存在を除外しない。単数の要素は、このような要素の複数の存在を除外しない。複数の手段を列挙した装置の請求項では、これらの手段のうち複数がハードウェアの同一のアイテムに具現され得る。特定の手段が相互に異なる従属項に記載されているという単なる事実は、これらの手段の組み合わせが有利に使用できないことを示すのではない。
【００５９】
更に、請求項の如何なる参照符号も、請求項の範囲を限定するものとして解釈されるべきではない。
【図面の簡単な説明】
【００６０】
【図１】本発明によるネットワーク・オン・チップのアーキテクチャのブロック図
【図２ａ】第１の実施例による複数のIPブロックを接続するネットワーク・オン・チップの基本的な図
【図２ｂ】第２の実施例による複数のIPブロックを接続するネットワーク・オン・チップの基本的な図
【図３】第３の実施例によるネットワーク・オン・チップのブロック図
【図４】一式のチャネルの衝突の回避を示すタイムチャート
【図５】従来技術によるネットワーク・オン・チップの一部の基本的な図
【図６】従来技術による複数のIPブロックを接続するネットワーク・オン・チップの基本的な図
【図１】
2009502080.tif 000003
【図２ａ】
2009502080.tif 000004
【図２ｂ】
2009502080.tif 000005
【図３】
2009502080.tif 000006
【図４】
2009502080.tif 000007
【図５】
2009502080.tif 000008
【図６】
2009502080.tif 000009
【国際調査報告】
2009502080.tif 000010
2009502080.tif 000011
2009502080.tif 000012
2009502080.tif 000013