(57)【要約】  本発明は、複数の処理モジュール２１、２３、Ｍ、Ｓ；ＩＰと、処理モジュール２１、２３、Ｍ、Ｓ；ＩＰを結合するように構成されたネットワークＮｏＣとを有する集積回路であって、処理モジュール２１、２３、Ｍ、Ｓ；ＩＰは、関連する処理モジュールにより供給されたデータをネットワークＮｏＣに送信し、前記関連する処理モジュール宛てのデータをネットワークＮｏＣから受信するように構成された関連するネットワークインタフェースＮＩを含み、処理モジュール２１、２３、Ｍ、Ｓ；ＩＰ間のデータ伝送は、時間スロットを用いた時分割多重アクセス（ＴＤＭＡ）に基づき、各ネットワークインタフェースＮＩは、時間スロットの接続Ｃ１−Ｃ４への割り当てを保存するためのスロットテーブルを含み、複数の接続Ｃ１−Ｃ４が、第１の処理モジュール２１、Ｍ、ＩＰと第２の処理モジュール２３、Ｓ、ＩＰとの間に備えられ、前記第１の処理モジュールと第２の処理モジュールとの間の前記複数の接続に割り当てられた時間スロットの少なくとも一部の共有が提供される、集積回路に関する。本発明は、斯かる接続の待ち時間を削減するため、第１の処理モジュールと第２の処理モジュールとの間の複数の接続に割り当てられた、時間スロットの全て又は一部を共通して利用するという発想を利用する。２つの処理モジュール間の複数の接続に割り当てられたスロットを共有することにより、スロットテーブルの１周期の間にスロットの大きなプールが形成される。かくして、データのバーストにアクセスするための待ち時間が削減され得る。
2008536391.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理モジュールと、前記処理モジュールを結合するように構成されたネットワークとを有する集積回路であって、
前記処理モジュールは、関連する処理モジュールにより供給されたデータを前記ネットワークに送信し、前記関連する処理モジュール宛てのデータを前記ネットワークから受信するように構成された関連するネットワークインタフェースを含み、
前記処理モジュール間のデータ伝送は、時間スロットを用いた時分割多重アクセスに基づき、
各前記ネットワークインタフェースは、前記時間スロットの接続への割り当てを保存するためのスロットテーブルを含み、
複数の前記接続が、第１の処理モジュールと第２の処理モジュールとの間に備えられ、
前記第１の処理モジュールと第２の処理モジュールとの間の前記複数の接続に割り当てられた時間スロットの少なくとも一部の共有が提供される、集積回路。
【請求項２】
前記処理モジュール間のデータ伝送は、前記接続を利用することによりコンテンション・フリー型の伝送に基づく、請求項１に記載の集積回路。
【請求項３】
前記第１の処理モジュールと前記第２の処理モジュールとの間の前記複数の接続に割り当てられた全ての時間スロットが共有される、請求項１又は２に記載の集積回路。
【請求項４】
前記複数の接続の共有されたスロットはプールにおいて結合され、前記プールにおける全ての共有されたスロットが、前記複数の接続のデータ伝送に共通して利用される、請求項１乃至３のいずれか一項に記載の集積回路。
【請求項５】
前記ネットワークインタフェースに含まれたプールスケジューラを含み、前記プールスケジューラは、前記複数の接続を利用して、前記第１の処理モジュールと前記第２の処理モジュールとの間のデータの伝送を制御するように構成された、請求項１乃至４のいずれか一項に記載の集積回路。
【請求項６】
前記複数の接続の各接続に、所定の時間内の予算及び／又は優先度が割り当てられ、前記複数の接続を介した前記第１の処理モジュールと前記第２の処理モジュールとの間のデータの伝送は、前記割り当てられた予算及び／又は優先度に依存して実行される、請求項１乃至５のいずれか一項に記載の集積回路。
【請求項７】
前記プールスケジューラは、前記接続の複数の要求の調停を実行するように構成され、前記調停は、ラウンドロビンに基づいて又は前記複数の接続に付与された優先度に基づいて実行される、請求項１乃至６のいずれか一項に記載の集積回路。
【請求項８】
前記第１の処理モジュールと第３の処理モジュールとの間に複数の接続から成る第２のセットが存在し、前記第１の処理モジュールと前記第３の処理モジュールとの間の複数の接続から成る前記第２のセットに割り当てられた時間スロットの少なくとも一部の共有が提供され、前記第１の処理モジュールと前記第３の処理モジュールとの間のデータの伝送を制御するために、前記第１の処理モジュールに関連するネットワークインタフェースに第２のプールスケジューラが備えられた、請求項１乃至７のいずれか一項に記載の集積回路。
【請求項９】
複数の処理モジュールと、前記処理モジュールを結合するように構成されたネットワークと、それぞれが前記処理モジュールの１つと前記ネットワークとの間に結合された複数のネットワークインタフェースとを持つ集積回路におけるデータ伝送のための時間スロットを割り当てるための方法であって、
時間スロットを用いた時分割多重アクセスに基づいて、前記処理モジュール間で通信するステップと、
前記時間スロットの接続への割り当てを含むスロットテーブルを各前記ネットワークインタフェースに保存するステップと、
第１の処理モジュールと第２の処理モジュールとの間に複数の接続を備えるステップと、
前記第１の処理モジュールと第２の処理モジュールとの間の前記複数の接続に割り当てられた時間スロットの少なくとも一部を共有するステップと、
を有する方法。
【請求項１０】
複数の処理モジュールと、前記処理モジュールを結合するように構成されたネットワークと、
関連する処理モジュールにより供給されたデータを前記ネットワークに送信し、前記関連する処理モジュール宛てのデータを前記ネットワークから受信するように構成された、前記処理モジュールに関連するネットワークインタフェースと、
を有するデータ処理システムであって、
前記処理モジュール間のデータ伝送は、時間スロットを用いた時分割多重アクセス、及び接続の利用による伝送に基づき、
各前記ネットワークインタフェースは、前記時間スロットの接続への割り当てを保存するためのスロットテーブルを含み、
複数の前記接続が、第１の処理モジュールと第２の処理モジュールとの間に備えられ、
前記第１の処理モジュールと第２の処理モジュールとの間の前記複数の接続に割り当てられた時間スロットの少なくとも一部の共有が提供される、データ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の処理モジュールと処理モジュールを結合するためのネットワークとを持つ集積回路、斯かる集積回路における時間スロット割り当てのための方法、及びデータ処理システムに関する。
【背景技術】
【０００２】
システムオンシリコン（Systems on silicon）は、新たな機能の実装及び既存の機能の改善に対する増大するニーズのため、恒常的に複雑さの増大を呈している。このことは、コンポーネントが集積回路に集積され得る密度の増大によって可能とされている。同時に、回路が動作するクロック速度も増大する傾向にある。より高いクロック速度とコンポーネントの増大した密度とを組み合わせることが、同一のクロックドメイン内で同期して動作することができる領域を削減させた。このことは、モジュール式手法に対するニーズを生み出した。斯かる手法によれば、処理システムは複数の比較的独立した複雑なモジュールを有する。従来の処理システムにおいては、モジュールは通常バスを介して互いと通信する。しかしながら以下の理由により、モジュールの数が増大するにつれて、この通信の手法はもはや実用的ではなくなる。多数のモジュールは高いバス負荷を示す。更に、バスは１つのモジュールのみが該バスにデータを送信することを可能とするため、通信ボトルネックを呈する。
【０００３】
通信ネットワークは、これらの欠点を克服するための効果的な方法を形成する。
【０００４】
ネットワークオンチップ（Network on chip、ＮｏＣ）は近年、非常に複雑なチップにおける相互接続の問題に対する解決策として、大きな関心を集めてきている。その理由は２つある。第１に、ＮｏＣは新たなディープサブミクロン（deep-submicron）技術における電気的な問題を解決することを支援する。なぜなら、ＮｏＣはグローバルな配線を構成し管理するからである。同時に、ＮｏＣの概念は配線を共有し、配線の数の削減を可能とし、配線の利用を増大させる。ＮｏＣはまた、バスに比べてエネルギー効率が高く且つ信頼性が高く、更にスケーラブルである。第２に、ＮｏＣはまた、通信から計算を切り離す。このことは、無数のトランジスタを持つチップの設計を管理する際に重要である。ＮｏＣは伝統的にプロトコルスタックを利用して設計され、サービスの実装から通信サービスの利用を分離する、明確なインタフェースを提供するため、前記切り離しを実現する。
【０００５】
チップ上の相互接続としてネットワークを導入することは、バス又はスイッチのような直接的な相互接続に比べて、通信を急激に変化させる。このことは、通信モジュールが直接接続されないが、１以上のネットワークノードによりリモート的に分離される、ネットワークのマルチホップ特性による。このことは、モジュールが直接接続される、普及している既存の相互接続（即ちバス）と対照的である。当該変化の意味は、知的財産ブロック（ＩＰ）か又はネットワークのいずれかによって取り扱われるべき、調停（arbitration）（集中から分散へ変化する必要がある）及び通信プロパティ（例えば順序付け又はフロー制御）に存する。
【０００６】
これらのトピックの殆どは既に、ローカルエリアネットワーク及びワイドエリアネットワーク（コンピュータネットワーク）の分野における研究の対象となっており、並列プロセッサネットワークのための相互接続としての研究の対象ともなっている。いずれも、オンチップ型ネットワークに非常に関連が高く、これらの分野における結果の多くがチップ上でも適用可能である。しかしながら、ＮｏＣの前提はオフチップ（off chip）型ネットワークとは異なり、それ故ネットワーク設計の選択の殆どが再評価される必要がある。オンチップ型ネットワークは異なる特性（例えばより厳密なリンク同期）及びリソース制約（例えばより高いメモリのコスト）を持ち、異なる設計の選択へと導き、最終的にはネットワークサービスに影響を与える。記憶装置（即ちメモリ）及び計算リソースは比較的高価であり、ポイント・ツー・ポイント（point-to-point）リンクの数は、オフチップ型よりもオンチップ型のほうが多い。ＲＡＭのような汎用のオンチップ型メモリは大きな面積を占有するため、記憶装置は高価である。比較的小さなサイズでネットワークのコンポーネントに分散されたメモリを持つことは、更に不利である。なぜなら、この場合メモリにおけるオーバヘッド面積が支配的になるからである。
【０００７】
オフチップ型ネットワークは典型的にパケット切り換えを利用し、ベストエフォート（best-effort）型のサービスを提供する。かくして、送信されるデータ間の競合が各ネットワークノードにおいて発生し得、待ち時間保証を提供することが非常に困難になる。スループット保証は、レートベースの切り換え又はデッドラインベースのパケット切り換えのような方式を用いて依然として提供され得るが、バッファリングのコストが高い。
【０００８】
斯かる時間に関連する保証を提供するための代替案は、時分割多重アクセス（ＴＤＭＡ）回路を利用することである。
【０００９】
ネットワークオンチップ（ＮｏＣ）は典型的に、複数のルータとネットワークインタフェースとから成る。ルータはネットワークノードとして機能し、静的に（即ち経路が予め決定され変化しない）又は動的に（即ちホットスポット（hot spot）を回避するために経路が例えばＮｏＣ負荷に依存して変化し得る）適切な経路上を宛先へとデータをルーティングすることにより、送信元のネットワークインタフェースから宛先のネットワークインタフェースへとデータを送信するために利用される。ルータはまた時間保証を実装しても良い（例えばレートベース、デッドラインベース、又はＴＤＭＡ方式におけるパイプライン回路を利用して）。ＮｏＣについての知られた例は「AEthereal」である。
【００１０】
ネットワークインタフェースは、ＩＰブロックとも呼ばれる処理モジュールに接続される。該処理モジュールは、いずれの種類のデータ処理ユニット、メモリ、ブリッジ、圧縮器等を表しても良い。とりわけ、ネットワークインタフェースは、処理モジュールとネットワークとの間の通信インタフェースを構成する。該インタフェースは通常、既存のバスインタフェースと互換性がある。従って、ネットワークインタフェースは、データのシーケンシャル化（提供されたコマンド、フラグ、アドレス及びデータを固定幅（例えば３２ビット）信号群にフィッティングする）及びパケット化（ネットワークにより内部的に必要とされるパケットヘッダ及びトレーラを追加する）を取り扱うように設計される。ネットワークインタフェースはまたパケットスケジューリングを実装しても良く、該パケットスケジューリングはタイミング保証及び許可制御を含んでも良い。
【００１１】
ＮｏＣは、処理モジュール間でデータを転送するための種々のサービスを処理モジュールに提供する。
【００１２】
ＮｏＣは、ベストエフォート型（ＢＥ）又はスループット保証型（ＧＴ）サービスによって動作させられても良い。ベストエフォート型（ＢＥ）サービスにおいては、待ち時間又はスループットについての保証はない。データは、スロットの予約なくルータを通して転送される。従って、この種のデータはルータにおいて競合に直面し、保証を提供することは可能ではない。反対に、ＧＴサービスは、処理モジュール間でデータを送信するための待ち時間及びスループットについての正確な値を導出することを可能とする。
【００１３】
オンチップ型のシステムはしばしば、該システムの相互接続通信のためのタイミング保証を必要とする。時間に関連する保証（即ちスループット、待ち時間及びジッタ（jitter））を提供するコスト効率の良い方法は、ＴＤＭＡ（Time Division Multiple Access）方式でパイプライン回路を利用することである。このことは、厳密な同期を持つシステムオンチップ（ＳｏＣ）におけるレートベース及びデッドラインベースの方式に比べて、バッファ空間をあまり必要としないため、有利である。それ故、グローバルな時間の基準（notion）（即ち、ネットワークのコンポーネント間即ちルータ及びネットワークインタフェース間の同期の基準）に基づいて、スループット、待ち時間及びジッタが保証された通信のクラス（class）が提供される。ここで、基本的な時間の単位はスロット又は時間スロットと呼ばれる。全てのネットワークコンポーネントは通常、該ネットワークコンポーネントの各出力ポートについて等しいサイズのスロットテーブルを有する。ここで時間スロットは種々の接続のために予約される。スロットテーブルは、同期して進行する（即ち、全てが同じ時間に同じスロット中にある）。接続は、種々のトラフィッククラスを識別し、これらクラスにプロパティを関連付けるために利用される。各スロットにおいて、データアイテムは、或るネットワークコンポーネントから次のコンポーネントへと、即ちルータ間またはルータとネットワークインタフェースとの間を移動させられる。それ故、スロットが出力ポートにおいて予約されている場合、マスタモジュールとスレーブモジュールとの間の経路に沿った次の出力ポートにおいて、次のスロットが予約される等の必要がある。幾つかの処理モジュール間でタイミング保証を伴って複数の接続がセットアップされた場合、衝突が無いように（即ち１つよりも多い接続に割り当てわれるスロットが無いように）スロット割り当てが実行される必要がある。スロットは、データが他のいずれのデータとも競合する必要がないように予約される必要がある。このことは、コンテンション・フリー（contention free）型のルーティングとも呼ばれる。
【００１４】
所与のネットワークトポロジ（即ち所与の数のルータ及びネットワークインタフェース並びに処理モジュール間の接続のセット）について最適なスロット割り当てを見出すタスクは、最適な解を見出すこと（網羅的な計算時間を必要とする）を含むため、計算的に非常に困難な問題である。
【００１５】
ＧＴサービスを実装するためには、スロットテーブルが利用される。スロットテーブルは、上述したように、ネットワークインタフェース及びルータを含むネットワークのコンポーネントに保存される。スロットテーブルは、時分割多重（ＴＤＭＡ）方式で、同一のリンク又は配線の共有を可能とする。
【００１６】
処理モジュール間のデータの送信のための重要な特徴は、待ち時間である。ネットワーキングにおける待ち時間の一般的な定義は、データパケットが送信元から宛先へと移動するために要する時間の量として要約され得る。待ち時間及び帯域幅は合わせて、ネットワークの速度及び容量を定義する。データにアクセスするための待ち時間は、斯かるスロットテーブルのサイズ、該テーブルにおける所与の接続に対するスロットの割り当て、及びバーストサイズに依存する。バーストサイズとは、１つの要求において質問／送信され得るデータの量である。２つの処理モジュール間の接続に対して割り当てられたスロットの数が、データのバーストを送信するために必要とされるスロットの数よりも少ない場合、データにアクセスするための待ち時間は劇的に増大する。斯かる場合には、データのバーストを完全に送信するためには、スロットテーブルの１つよりも多い周期が必要とされる。該接続に割り当てられていないスロットについての待機時間もまた、待ち時間に加算される。
【００１７】
第２の特徴は、上述したように、帯域幅である。処理モジュール間の接続は、所定の帯域幅を持つ。異なる帯域幅を持つ２つの処理モジュール間に、１つよりも多い接続を持つことが可能である。２つの処理モジュールが通信のための変化する帯域幅要求の複数の接続を該処理モジュール間で持つような斯かるシステムにおいては、最も低いスループットを持つ接続が、所与のバーストが完了するための最も長い待ち時間を持つ。低いスループット接続についての該待ち時間は、時に許容可能でなくなる。例えば、オーディオストリームは２００Ｋバイト／秒を必要とし、ビデオストリームの送信は２０Ｍバイト／秒を必要とする。低いスループット接続において増大する待ち時間は、例えば望ましくない品質の出力に帰着し得る。
【発明の開示】
【発明が解決しようとする課題】
【００１８】
待ち時間を削減するための第１の方法は、未割り当てのスロットを割り当てることである。しかしながら、特定の条件下においては、未割り当てのスロットの数は非常に少なくなり得、従ってこの方法では低いスループット接続についての待ち時間の削減を提供できない。
【００１９】
それ故、本発明の目的は、ネットワークオンチップ環境において改善されたスロット割り当てを持つ装置及び方法を提供することにある。
【課題を解決するための手段】
【００２０】
本目的は、請求項１に記載の集積回路及び請求項９に記載の時間スロット割り当てのための方法により達成される。
【００２１】
データのバーストを転送するための待ち時間を削減するため、第１の処理モジュールと第２の処理モジュールとの間の複数の接続に割り当てられた時間スロットの少なくとも一部を共有することが提案される。本発明は、斯かる接続の待ち時間を削減するため、第１の処理モジュールと第２の処理モジュールとの間の複数の接続に割り当てられた、共有スロットを共通して利用するという発想を利用する。本発明によるスロットの共有は、２つの処理モジュール間の複数の接続を再利用する。このことは、送信元の処理モジュール及び宛先の処理モジュールが、該複数の接続に対して同一である必要があることを意味する。
【００２２】
２つの処理モジュール間の複数の接続に割り当てられたスロットを共有することにより、スロットテーブルの１周期の間にスロットの大きなプールが形成される。かくして、データのバーストにアクセスするための待ち時間が削減され得る。スロットの共有は、各接続に割り当てられるスループットが同一のままとなるように実行される。共有されたスロットを利用することにより、より少ないスロットテーブルの周期の間に、通常低いスループット接続を持つデータのバーストを送信することが可能となる。このことは減少された信号発信の労力に帰着するであろう。なぜなら、バーストの各部分に対して、幾つかのヘッダが割り当てられる代わりに、１つのヘッダのみが必要となるからである。ヘッダは帯域幅をもカバーするため、該帯域幅は節約される。
【００２３】
しかしながら、主な利点の１つは、本発明の方法及び集積回路を利用することにより、待ち時間の制御が可能となる点である。従って、ユーザが待ち時間に影響を与えることができる。
【００２４】
本発明の他の態様及び利点は、従属請求項において定義される。
【００２５】
本発明の第１の好適な実施例においては、データの転送が、ピア・ツー・ピア（peer-to-peer）接続に基づくコンテンション・フリー型の伝送に基づいて実行される。１つの接続は幾つかのプロパティを持っても良く、接続に割り当てられた時間スロットを伝送するための少なくとも１つのチャネルを有する。接続を利用することにより、保証が提供され得る。
【００２６】
本発明の更なる好適な実施例においては、複数の接続に割り当てられた全てのスロットが共有される。
【００２７】
本発明の更なる好適な実施例においては、前記複数の接続の共有されたスロットはプールにおいて結合され、前記プールにおける全ての共有されたスロットが、２つの関与する処理モジュール間の前記複数の接続のデータ伝送に共通して利用される。割り当てのために利用可能なスロットの量が増大するため、待ち時間は減少する。通常の環境下においては、接続は完全には利用されない。従って、複数の接続のそれぞれがデータを伝送するために利用されないという状況もある。２つの処理モジュール間の複数の接続の全て又は一部のスロットをプールすることにより、未使用の接続の容量がビジーな接続により利用される。このことは、殆どの接続についての待ち時間を低減する。多くの数のスロットを割り当てられた複数の接続の接続についてのみ、最悪の場合に待ち時間の増大があり得る。しかしながら平均的には、２つの処理モジュール間の複数の接続内の各接続について、待ち時間は同一のままとなる。
【００２８】
本発明の更なる所定の実施例においては、プールスケジューラが提供される。プールスケジューラは、ネットワークインタフェースに含められる。プールスケジューラは、複数の接続を利用して、第１の処理モジュールと第２の処理モジュールとの間のデータの伝送を制御する。該複数の接続のデータ伝送の制御の種類を選択することにより、待ち時間が制御され得る。プールスケジューラは、自身の制御又は調停方式に依存して、該複数の接続のどのデータが最初に伝送されるかを決定する。とりわけ、接続の全てのキューがデータで満たされている場合、プールスケジューラはどのキューが最初に使用されるかを決定又は調停する。
【００２９】
本発明の更なる所定の実施例においては、複数の接続のそれぞれに予算（budget）が割り当てられる。とりわけ、該予算は所定の時間の間割り当てられる。従って、どの期間において（例えば何周期のスロットテーブルにおいて）、データのバーストが送信されるべきかが定義され得る。予算割り当ては、プーリングなしで単純なスロットスケジューラによって約束されるスループット保証を維持するために利用されることに留意されたい。複数の接続を介した第１の処理モジュールと第２の処理モジュールとの間のデータの伝送は、割り当てられた予算に依存して実行される。割り当てられた予算を接続が使ってしまった場合、該接続は当該予算期間の間はそれ以上使用されない。該予算割り当てはプールテーブルに保存され、プールスケジューラが該プールテーブル内の情報にアクセスし、どの接続が最初に使用されるかを調停する。プール内の１つよりも多い接続が送信される準備ができたデータを持ち且つ幾分かの予算が未使用のままである場合には、要求を解決するために調停方式が利用される。調停の２つの例、即ちラウンドロビン型及び優先度型がある。各要求がその場その場でスケジューリングされる（例えば、全ての要求者に対して公平であるように特定の順序で）手法は、ランドロビン型調停と呼ばれる。優先度型の調停においては、各要求は何らかの優先度（高い／低い）を持ち、複数の要求が存在する場合には、最も高い優先度を持つ要求が選択される。該優先度もまた、プールテーブルに保存される。プールスケジューラは、該優先度に依存して、複数の接続のどのデータが最初に送信されるかを決定する。例えば、従来の方式において最も少ない数の割り当てられたスロットを持つ接続に、最も高い優先度を割り当てることが実用的であり得る。このことは、多くのプールされたスロットを同時に利用することによるデータの伝送を可能とする。従って、該接続のデータバーストは、スロットテーブルの１つの周期の間に送信される。ＮｏＣを設定する間に、特定の接続について優先度が定義されても良い。このことは、待ち時間を制御するための更なる可能性を提供する。
【００３０】
更なる実施例においては、第１の処理モジュールが、第２の処理モジュールとの複数の接続から成る第１のセットと、第３の処理モジュールとの複数の接続から成る第２のセットとを含むことが可能である。この場合においても、複数の接続から成る第２のセットのスロットは、第２のプールにおいて共有される。第３の複数の接続へのデータ伝送のスケジューリングを処理するために、第１の処理モジュールと第３の処理モジュールとの間のデータの伝送を制御するため、第１の処理モジュールに関連するネットワークインタフェースにおいて、更なるプールスケジューラが備えられる。
【００３１】
本発明はまた、複数の処理モジュールと、前記処理モジュールを結合するように構成されたネットワークと、それぞれが前記処理モジュールの１つと前記ネットワークとの間に結合された複数のネットワークインタフェースとを持つ集積回路におけるデータ伝送のための時間スロットを割り当てるための方法であって、時間スロットを用いた時分割多重アクセスに基づいて、前記処理モジュール間で通信するステップと、前記時間スロットの接続への割り当てを含むスロットテーブルを各前記ネットワークインタフェースに保存するステップと、第１の処理モジュールと第２の処理モジュールとの間に複数の接続を備えるステップと、前記第１の処理モジュールと第２の処理モジュールとの間の前記複数の接続に割り当てられた時間スロットの少なくとも一部を共有するステップと、を有する方法に関する。
【００３２】
本発明は更に、複数の処理モジュールと、前記処理モジュールを結合するように構成されたネットワークと、関連する処理モジュールにより供給されたデータを前記ネットワークに送信し、前記関連する処理モジュール宛てのデータを前記ネットワークから受信するように構成された、前記処理モジュールに関連するネットワークインタフェースと、を有するデータ処理システムであって、前記処理モジュール間のデータ伝送は、時間スロットを用いた時分割多重アクセスに基づき、各前記ネットワークインタフェースは、前記時間スロットの接続への割り当てを保存するためのスロットテーブルを含み、複数の前記接続が、第１の処理モジュールと第２の処理モジュールとの間に備えられ、前記第１の処理モジュールと第２の処理モジュールとの間の前記複数の接続に割り当てられた時間スロットの少なくとも一部の共有が提供される、データ処理システムに関する。
【００３３】
従って、時間スロットの割り当ては、マルチチップ型ネットワーク又は幾つかの別個の集積回路を持つシステム若しくはネットワークにおいても、実行され得る。
【発明を実施するための最良の形態】
【００３４】
本発明の好適な実施例は、以下の模式的な図面を参照しながら、例としてのみ、以下に詳細に説明される。
【００３５】
図面は単に説明の目的のために提供されるものであり、必ずしも本発明の実用的な例を定縮尺で示すものではない。
【００３６】
以下、本発明の種々の実施例が説明される。
【００３７】
本発明は幅広い用途に適用可能であるが、ＮｏＣ、特にAEthereal設計に焦点を当てて説明される。本発明を適用するための更なる分野は、時間スロット及びスロットテーブルを利用することにより保証されたサービスを提供する各ＮｏＣであり得る。
【００３８】
以下、ＮｏＣの一般的なアーキテクチャが、図１Ａ、１Ｂ、２Ａ及び２Ｂを参照しながら説明される。
【００３９】
本実施例は、システムオンチップＳｏＣに関し、即ち同一のチップ上の複数の処理モジュールが何らかの種類の相互接続を介して互いと通信する。該相互接続は、ネットワークオンチップＮｏＣとして実施化される。ネットワークオンチップＮｏＣは、配線、バス、時分割多重、スイッチ及び／又はルータをネットワーク内に含んでも良い。
【００４０】
図１Ａ及び１Ｂは、本発明によるネットワークオンチップを持つ集積回路についての例を示す。本システムは、知的財産ブロックＩＰとも呼ばれる、幾つかの処理モジュールを有する。処理モジュールＩＰは、計算素子、メモリ又は内部的に相互接続モジュールを含んでも良いサブシステムとして実現されても良い。処理モジュールＩＰはそれぞれ、ネットワークインタフェースＮＩを介してネットワークＮｏＣに接続される。ネットワークＮｏＣは、それぞれのリンクＬ１、Ｌ２及びＬ３を介して隣接するルータＲと接続された複数のルータＲを有する。ネットワークインタフェースＮＩは、処理モジュールＩＰとネットワークＮｏＣとの間のインタフェースとして利用される。ネットワークインタフェースＮＩは、それぞれの処理モジュールＩＰ及びネットワークＮｏＣの通信を管理するために備えられ、それにより処理モジュールＩＰは、ネットワークＮｏＣ又は他の処理モジュールＩＰとの通信に対処する必要なく、自身の専用の動作を実行することができる。処理モジュールＩＰは、マスタＭとして動作しても良いし（即ち要求を開始する）、又はスレーブＳとして動作しても良い（即ちマスタＭからの要求を受信してそれに従って該要求を処理する）。
【００４１】
ネットワークＮｏＣのトランスポート層において、処理モジュールＩＰ間の通信が接続ＣＮを介して実行される。接続ＣＮは、第１の処理モジュールＩＰと少なくとも１つの第２の処理モジュールＩＰとの間の、それぞれが接続プロパティのセットを持つチャネルのセットとみなされる。第１の処理モジュールＩＰと単一の第２の処理モジュールＩＰとの間の接続については、該接続は図２Ｂに示すように２つのチャネル、即ち一方は第１の処理モジュールから第２の処理モジュールへのチャネル（即ち要求又は転送チャネル）と、第２の処理モジュールから第１の処理モジュールへの第２のチャネル（即ち応答又は反転チャネル）とを有しても良い。転送又は要求チャネルは、マスタＩＰからスレーブＩＰへのデータ及びメッセージのために予約され、反転又は応答チャネルは、スレーブＩＰからマスタＩＰへのデータ及びメッセージのために予約される。応答が必要とされない場合には、該接続は１つのチャネルのみを有しても良い。図示されていないが、該接続が１つのマスタＩＰとＮ個のスレーブＩＰとを含むことも可能である。この場合には、２＊Ｎ個のチャネルが備えられる。それ故、接続ＣＮ又はネットワークを通した接続の経路は、少なくとも１つのチャネルを有する。換言すれば、１つのチャネルのみが利用される場合には、チャネルは接続の接続経路に対応する。上述したように２つのチャネルが利用される場合には、一方のチャネルが例えばマスタＩＰからスレーブＩＰへの接続経路を提供し、第２のチャネルがスレーブＩＰからマスタＩＰへの接続経路を提供する。従って、典型的な接続ＣＮについては、接続経路は２つのチャネルを有することとなる。接続プロパティは、順序付け（順次のデータ伝送）、フロー制御（リモートのバッファが接続のために予約され、生成されるデータのための空間が利用可能でることが保証された場合にのみ、データ生成器がデータを送信することを可能とされる）、スループット（スループットにおける下限が保証される）、待ち時間（待ち時間の上限が保証される）、損失の多さ（データの脱落）、伝送の終了、トランザクションの完了、データの正確さ、優先度又はデータ配信を含んでも良い。
【００４２】
図２Ａは、単一の接続及びネットワークオンチップにおけるそれぞれの基本的なスロット割り当てのブロック図を示す。説明を簡単にするため、接続の１つのチャネル（例えば転送チャネル）のみが示されている。とりわけ、マスタＭとスレーブＳとの間の接続が示されている。該接続は、マスタＭに関連するネットワークインタフェースＮＩ、２つのルータ、及びスレーブＳに関連するネットワークインタフェースＮＩにより実現される。マスタＭに関連するネットワークインタフェースＮＩは、時間スロット割り当てユニットＳＡを有する。代替として、スレーブＳに関連するネットワークインタフェースＮＩが時間スロット割り当てユニットＳＡを有しても良い。第１のリンクＬ１がマスタＭに関連するネットワークインタフェースＮＩと第１のルータＲとの間に存在し、第２のリンクＬ２が２つのルータＲ間に存在し、第３のリンクＬ３が、ルータとスレーブＳに関連するネットワークインタフェースＮＩとの間に存在する。それぞれのネットワークコンポーネントの出力ポートについての３つのスロットテーブルＳＴ１乃至ＳＴ３もまた示されている。これらのスロットテーブルは好ましくは、ネットワークインタフェース及びルータのようなネットワーク構成要素のチャネルの出力側、即ちデータ生成側に実装される。各要求されたスロットについて、接続経路に沿ったリンクの各スロットテーブルに１つのスロットが予約される。３つのスロットの全てがフリーであること即ち他のチャネルにより予約されていないことが必要である。データは或るネットワークコンポーネントから他の各スロットへと進行するため、スロットｓ＝１から開始して、接続に沿った次のスロットはスロットｓ＝２において予約され、次いでスロットｓ＝３において予約される必要がある。
【００４３】
時間スロット割り当てユニットＳＡにより実行されるスロット割り当て決定のための入力は、相互接続、スロットテーブルのサイズ、及び接続のセットを伴うネットワークコンポーネントのような、ネットワークトポロジである。全ての接続について、経路、帯域幅、待ち時間、ジッタ及び／又はスロット要件が与えられる。１つの接続は、少なくとも２つのチャネル又は接続経路から成る。これらチャネルのそれぞれは個々の経路において設定され、異なる帯域幅、待ち時間、ジッタ及び／又はスロット要件を持つ異なるリンクを有しても良い。時間に関連した保証を提供するため、スロットはリンクに対して予約される必要がある。異なるスロットは、ＴＤＭＡにより異なる接続に対して予約されることができる。接続のためのデータは次いで、連続するスロットにおいて、接続に沿った連続するリンクを介して転送される。
【００４４】
以下、本発明がより詳細に説明される。図３Ａは、先行技術によるＮｏＣを含む集積回路の簡略化されたセクションを示す。２つの処理モジュール２１及び２３がある。一方の処理モジュール２１は、データを保存するためのメモリとして実現される。第２の処理モジュール２３は、データを圧縮又は符号化するための圧縮器である。処理モジュール２１及び２３はそれぞれ、ネットワークインタフェースＮＩを含む。ネットワークインタフェースＮＩは、４つの接続Ｃ１、Ｃ２、Ｃ３及びＣ４について転送及び反転チャネルのためのスロット割り当てを示す、スロット割り当てテーブル２５．１及び２６．２を含む。それぞれのチャネルについて、１つのスロットテーブル２５．１又は２６．２のみがある。２５．２及び２６．２は、接続Ｃ１乃至Ｃ４についての両方のチャネルについて受信側におけるスロット割り当てを示す。圧縮器２３は、メモリ２１からのデータ伝送を要求する。図２Ａに関して上述したように、メモリ２１はスレーブとして及びマスタとして動作し得る。メモリ２１がスレーブとして動作する場合、メモリ２１は、４つの異なる接続Ｃ１乃至Ｃ４を利用して、圧縮器２３からデータを受信する。第１のスロット割り当てテーブル２５．１は、圧縮器２３のＮＩにおける出力側において必要とされる。ここで、図示されるように、メモリ２１における受信側２５．２においては、スロットは１つシフトされる。反転方向において、メモリ２１は、スロット割り当てテーブル２６．２を利用して、圧縮器２３にデータを送信する。ここで、スロットは更に１スロットだけシフトされる。圧縮器２３における受信側において２６．１において示されるように、接続Ｃ１乃至Ｃ４のためのスロットは、１スロットだけ延期される。２つの処理モジュール２１と２３との間の接続Ｃ１乃至Ｃ４のそれぞれは、幾つかのスロットを割り当てられている。接続Ｃ１及びＣ２は、それぞれ１つのスロットのみを割り当てられる。それ故、これら接続は低いスループットの接続と示される。接続Ｃ３は、スロットテーブル２５．１及び２６．２において２つのスロットを割り当てられる。接続Ｃ４は、４つのスロットを割り当てられる。従って、これら２つの処理モジュール２１と２３との間に、スループット要件を持つ複数の接続Ｃ１乃至Ｃ４がある。
【００４５】
スロットテーブルのサイズは２０である。１つのスロットは３つのワード（ワードは例えば３２ビット）を持ち、第１のワードは、例えば経路のようなネットワーク特有の情報から成っても良いヘッダＨを送信するために利用されても良い。１つのスロットを利用して２つのワードのデータが転送され得ることが仮定される場合、１６個のワードのバーストの転送は、８個のスロットを必要とする。
【００４６】
各接続について１６個のデータ単位即ちワードのバーストを転送するための待ち時間が、表１に示される。表１は、１６個のワードのバーストを転送するための最大待ち時間が、接続Ｃ１及びＣ２については８周期、即ち１６０フリット（即ちスロットサイクル）であることを示している。斯かる長い待ち時間は、処理モジュールにとって許容可能なものではない。例えば、オーディオデコーダ又はオーディオサンプルレート変換器は、短い待ち時間を必要とし得る。
【表１】
2008536391.tif 000003
【００４７】
ワードはデータの単位である。スロットテーブル（例えば２５．１）は、それぞれの処理モジュール２１と図１Ａ又は１Ｂにおいて示されたような他の処理モジュールＩＰとの間の他の接続に割り当てられた更なるスロットＳ１及びＳ１０乃至Ｓ２０を含む。同様のことはスロットテーブル２６．２にも当てはまるが、ここではスロットの位置が２スロットだけシフトされている。
【００４８】
低いスループットの接続Ｃ１及びＣ２についての長い待ち時間は、許容可能ではない。ＮｏＣが５００ＭＨｚで動作するとすると、このことはサイクル毎に２ｎｓを意味し、１つのスロット／フリットは３つのワードを持つため、３サイクル即ち６ｎｓが必要とされる。１６０フリットは１６０ｘ６ｎｓ＝９６０ｎｓである。所与のバーストサイズについてデータを転送するための待ち時間は、所与の接続のために割り当てられたスロットの数に強く依存する。それ故、低いスループットの接続Ｃ１及びＣ２は、長い待ち時間を被る。
【００４９】
このことは、ＴＤＭＡベースの方式における一般的な問題である。該問題を解決するため、本発明は、２つの処理モジュール２１と２３との間の複数の接続のために割り当てられたスロットを共有することにより、待ち時間を低減させることを提案する。２つの処理モジュール２１と２３との間の複数の接続のスロットを共有することは、データ伝送のための増大されたスロットの量をもたらす。スロットテーブルの１周期の間、スロットの大きなプールＰ１が存在し、かくしてバーストへのアクセスのための待ち時間が低減される。
【００５０】
提案される本発明は、図３Ｂ及び図４に関連して、より詳細に説明される。各接続に割り当てられたスループットがスループットの保証を保つため同一のままであり、待ち時間に対する適切な制御が達成されるように、前記共有が実行される。
【００５１】
図３Ｂに示されるように、２つの処理モジュール２１と２３との間の接続に割り当てられたスロットは、Ｐ１と示される。
【００５２】
このことは、特定の時間内の接続の間で共有されたスロットの過度の／不足した利用を制御するための予算割り当て方式の一種により達成される。このことは、接続の保証されたスループット特性を保つ。
【００５３】
上述したように、プールの中の各接続についての待ち時間を制御するため、例えばラウンドロビンや優先度型のような、多くのスケジューリング戦略が利用され得る。
【００５４】
結果を達成するため、接続のプールＰ１のなかでの予算割り当て及び調停のための回路が必要される。データのスループットを保証するため、データの少なくとも１つの完全なバーストの供給が必要とされるが、このことは実際にはバースト的なトラフィックにおいては通常のことである。
【００５５】
表２は、８周期の所定の時間予算を利用した効果を示す。該表はまた、ラウンドロビン型及び優先度型の調停メカニズムの例の利用も示す。
【表２】
2008536391.tif 000004
【００５６】
表２は、接続Ｃ１乃至Ｃ４についての最大待ち時間が、８周期から、ラウンドロビン型の調停の場合には４周期へと、優先度方式の例の場合には５周期へと、減少されることを示している。低いスループットの接続Ｃ１及びＣ２については、最悪の待ち時間が２乃至４のファクタで低減される。高いスループットの接続Ｃ４については、最悪の待ち時間が、２周期から、ラウンドロビン型の場合には４周期へと、優先度型の調停の場合には５周期へと、増大する。
【００５７】
ラウンドロビン型の調停については、例えば全ての要求キューに対して公平であるように特定の順序で、各要求がその場その場でスケジューリングされる。公平とは、同じ要求が再び処理される前に、全ての他の要求が考慮されることを意味する。このことは、短い例で説明される：Ｎ個の要求が存在し、１からＮの周期的な順序が仮定される。全ての要求が存在すると仮定すると、要求Ｎは、Ｎより前の全ての要求（即ち１乃至Ｎ−１）が処理された後にのみ、処理される。このことは、要求を処理するための待ち時間についての上限を提供し、該上限はＮ−１である。
【００５８】
表２は、４つの接続について、ラウンドロビン型の調停が、送信のためにスロットテーブルの４周期に帰着することを示している。この時間は、３個の要求を処理するために最悪の場合スロットテーブルの３（４−１）スロットテーブル周期の待ち時間を含み、現在の要求を処理するために１スロットテーブル周期の時間が必要とされる。
【００５９】
しかしながら、留意すべき重要な点は、待ち時間は依然として限られたものであり、予算期間に亘る平均待ち時間は以前と同じ、即ち２周期であるという点である。本発明による手法の重要な点は、該手法が所与の接続の待ち時間に対する制御を可能とする点である。
【００６０】
本発明において提示される手法は、種々の異なる接続をスロットの共有されるプールへ関連付ける処理を必要とする。このことは、プールテーブル５６により実装されることができる。斯かるプールテーブル５６は、ネットワークインタフェースＮＩにおけるプールＰ１ごとに実施化されても良い。
【００６１】
プールテーブル５６の例が表３に示される。
【表３】
2008536391.tif 000005
【００６２】
調停メカニズムは、ネットワークインタフェースＮＩにおけるスケジューラ４１の一部として実装されても良い。プールスケジューラ４６が調停を実行する。
【００６３】
更に、接続に対するバーストの関係を識別するため、パケットのヘッダにおいて送信された情報（例えばリモート接続／キューＩＤ）は、調停の結果に基づいて導出されるべきである。
【００６４】
以下、プールに関与する接続のためにＧＴサービスを提供するスケジューラ４１の疑似コードが説明される。
プールスケジューリングを含むＧＴスケジューラの疑似コード：
GT_Scheduler()
{
//各フリットサイクル毎に以下を実行する
switch(sel){
case cur_slot is part of a pool1:
pool scheduler1;
break;
case cur_slot is part of a pool2:
pool scheduler2;
break;
default:
slot scheduler;
break;
}
}
該コードの説明は図６に示される。プールに関与する接続のためのスケジューリングは、以下に説明される：
connection //接続のために必要とされる付加的な情報
{
id; //接続識別子
burst_size; //所与の接続についてのバーストサイズ
budget; //当該プール内の割り当てられた予算
priority; //優先度ベースの調停／スケジューリングが利用される場合の任意の優先度
}
cur_connection[Num_pools]; //型接続の現在の接続
data_sent[Num_pools]; //cur_connectionについて現在までに送信されたデータ
sched_queue_ipool_scheduler1(req_i)
{
if(cur_slot is part of the pool)
{
//スループット分散を同一に保つための管理
data_sent[cur_slot]++;
if(data_sent[cur_slot]==cur_connection[cur_slot].burst_size)
{
cur_connection[cur_slot].budget--;
data_sent[cur_slot]=0;
cur_connection[cur_slot]=ChooseNewConnection(req_i);
}
}
}
該コードの説明は図７に示される。
sched_queue_iChooseNewConnection(req_i)
{
該関数の挙動は、例えばラウンドロビンや優先度型といった、
選択された調停／スケジューリング方式に依存する。
}
該コードの説明は図８に示される。
【００６５】
図４は、ネットワークインタフェースＮＩのコンポーネントを示す。しかしながら、ＮＩの送信方向のみが示されている。データパケットを受信するための部分は示されていない。ネットワークインタフェースＮＩは、入力キューＢｉを含むフロー制御手段、リモート空間レジスタ４６、要求生成器４５、ルーティング情報レジスタ４７、クレジットカウンタ４９、スロットテーブル５４、スロットスケジューラ５５、プールテーブル５６、プールスケジューラ５７、スケジューリング多重化器５３、ヘッダユニット４８、ヘッダ挿入ユニット５２、パケット長ユニット５１及び出力多重化器５０を有する。
【００６６】
ＮＩは、送信側の処理モジュール２１及び２３から、入力ポート４２においてデータを受信する。ＮＩは、図５に示される例のようなデータシーケンスの形で、パッケージ化されたデータを出力部４３においてルータへと出力する。接続に属するデータは、キューＢｉ４４に供給される。明確さのため、１つのキュー４４のみが示されている。しかしながら、特定の接続Ｃ１乃至ＣＮに属する各データが、１つの接続にのみ関連する単一のキューＢｉに入力される。このことは、処理モジュールＩＰにより利用される接続Ｃ１乃至ＣＮと同じだけキューｉがあることを意味する。キューにおける最初のデータは、要求生成器４５によって監視される。要求生成器４５は、利用される必要があるデータサービスの種類を検出する。要求生成器４５は、キューの充填度、及びリモート空間レジスタ４６に保存された利用可能なリモートの空間に基づいて、キューＢｉに対してデータを送信させる要求req_iを生成する。次のキューを選択するため、全てのキューｉについての要求req_iが、プールスケジューラ５７及びスロットスケジューラ５５へと供給される。このことは、スロットテーブル５４からの情報に基づいてスロットスケジューラ５５によって、及びプールテーブル５６からの情報に基づいてプールスケジューラ５７によって、実行されることができる。プールスケジューラ５７は、データが、共有されたスロットを持つ接続Ｃ１乃至Ｃ４に属するか否かを検出する。スロットスケジューラ５５は、スロットの共有されたプールＰ１の一部ではないデータに属する要求req_iを検出する。キューの１つがスケジューラ５５及び５７の一方において選択されるとすぐに、スケジューリング多重化器５３へと供給される。多重化は、スロット割り当てテーブル５４に基づく。スロット割り当てテーブル５４におけるスロット位置に依存して、スケジューリングされたキューsched_queue_iは、schedul_selコマンドによりスケジューリングされ、スケジューリング多重化器５３により出力される。スケジューリング多重化器５３により出力された後、ヘッダ挿入ユニット５２が、付加的な冗長ヘッダＨが挿入される必要があるか否かを決定する。現在のスロットが連続における先頭である場合には、ヘッダが必要であるため、ヘッダＨが挿入される。追加ヘッダ挿入のための条件が満たされる場合には、冗長又は追加ヘッダＨが挿入される。斯かる条件は、パケット長及び／又は送信されるべきクレジットが閾値を超えていることであっても良い。
【００６７】
複数の接続Ｃ１乃至Ｃ４の特性は、プールテーブル５６に保存される。プールテーブルの例は、上述の表３に示されている。プールスケジューラ５７において利用されるスケジューリング方式（予算、ラウンドロビン及び／又は優先度）に依存して、キューにおけるデータがスケジューリングされる。ここで、最も大きな予算を持つデータが最初にスケジューリングされる。プールスケジューラ５７が優先度に応じて動作する場合、最も高い優先度を持つデータが最初にスケジューリングされる。２つの処理モジュール２１と２３との間の複数の接続の１つに属さないデータは通常、スロットスケジューラ５５によりスケジューリングされる。
【００６８】
多重化器５３は、スケジューリングされたキュー／接続ＩＤ（sched_queue_i）を、ヘッダ挿入ユニット５２、及びパケット長を増大させるユニット５１へと転送する。アドレスのようなルーティング情報は、設定可能なルーティング情報レジスタ４７に保存される。クレジットカウンタ４９は、データが出力キューにおいて消費されたときに増加し、新たなヘッダＨが該ヘッダＨに組み込まれたクレジット値と共に送信されたときに減少する。ルーティング情報レジスタ４７からのルーティング情報は、クレジットカウンタ４９の値と共に、ヘッダユニット４８へと転送され、ヘッダＨの一部を形成する。ヘッダユニット４８はクレジット値及びルーティング情報を受信し、ヘッダデータを出力多重化器５０へと出力する。出力多重化器５０は、選択されたキューにより供給されたデータと、ヘッダユニット４８から供給されたヘッダ情報hdrとを多重化する。データパッケージが送出されたときに、パケット長がリセットされる。
【００６９】
単純な例を説明するため、複数のプールスケジューラは省略された。しかしながら、１つの処理モジュールは、別の処理モジュールに対する複数の多重の接続を持っても良い。従って、処理モジュール２１と２３との間に４つの接続Ｃ１乃至Ｃ４があることもあり得る。更に、図１Ｂに示されるように、処理モジュール２１から第３の処理モジュール２４への複数の接続Ｃ５及びＣ６から成る第２のセットがあっても良い。斯かる場合においては、接続Ｃ５及びＣ６について第３の処理モジュール２４へと供給されたデータを検出及びスケジューリングする更なるプールスケジューラがある。
【００７０】
プールスケジューラ５７に組み込まれた該調停又はスケジューリングのメカニズムは、ネットワークインタフェースＮＩの制御の複雑さを増大させるが、一方で本発明はデータを転送するための待ち時間の削減を提供する。更に本発明は、所与のシステムにおける接続の待ち時間の制御を提供する。プールテーブル５６、及びプールスケジューラ５７において利用されるスケジューリング方式のプログラミングもが、チップの製造の後においても可能である。種々の接続の待ち時間はより均等に分散され、特定のＩＰ待ち時間に容易に合致する利点を提供する。
【００７１】
複数の接続Ｃ１乃至Ｃ４について割り当てられたスロットＳ１乃至ＳＮが、図５に示すように連続的である場合、１つのスロットＳＮにおいて送信され得るデータの平均量又はペイロードＰは増大する。なぜなら、送信されるヘッダＨが少なくなるからである。図５に示されるように、プールされたスロットＳＮの前に１つのヘッダＨのみがある。従って、データバーストが共有されたスロットを利用して一度に送信される場合、データシーケンスの１つのワード又はデータ単位のみが、ヘッダＨのために利用される。スロットにおける他のすべてのデータ単位は、ペイロードデータをスケジューリングするために利用される。従って１つのヘッダＨのみが必要とされる。共有されるスロットを利用することなく該バーストが送信される場合、データの全体の量が完全に送信されるまでに、スロットテーブルの１周期よりも長い時間が掛かる。加えて、接続がスロットを割り当てられる度に、重要な帯域幅を必要とするデータに新たなヘッダが結合される必要がある。
【００７２】
ＧＴサービスにおいては、以前のスロットが接続のために割り当てられていない全てのスロットについてヘッダが送信されることに留意されたい。実際にこのことは、バーストを送信するために必要とされる周期の数が減少するにつれて、更なる待ち時間の削減に導き得る。
【００７３】
以下、上述した疑似コードが、図６乃至８を参照しながら更に詳細に説明される。
【００７４】
図６は、図４におけるスケジューリング多重化器５３における選択処理を示す。スロットスケジューラ５５又はプールスケジューラ５７によりスケジューリングされるキューが、スケジューリング多重化器５３に供給される。スロットテーブル５４に保存されたスロットテーブル値に依存して、スケジューリング多重化器５３において、スケジュールされたキュー／接続ＩＤが選択される。スロットテーブル値は、キュー／接続ＩＤ及びスケジューラのタイプを含む。スケジューラのタイプに依存して、それぞれのキュー／接続ＩＤが選択される。図６に示される例においては、更なるプールスケジューラ２が含まれる。従って図６は、図１Ｂに示されたような複数の接続から成る２つのセットを取り扱うために必要なネットワークインタフェースＮＩのコンポーネントを示す。接続Ｃ５乃至Ｃ６は、第２のプールスケジューラ２により制御される。
【００７５】
図７は、プールスケジューラ５７により実行される調停メカニズムを表す。本フロー図において、１つのプールスケジューラ５７に関する処理のみが示されている。複数の要求１乃至Ｎに属する複数の垂直方向のフローがあり、各フローは１つの要求req_iについての処理を表す。最初の決定７１において、要求req_iが当該プールに属しているか否かがプールスケジューラ５７によって決定される。否であれば、該要求は無視される（７２）。肯定であれば、それぞれの接続について予算が利用可能であるか否かがステップ７３においてチェックされる。予算は、プールテーブル５６に保存されている。該接続のための予算が残っていれば、プールスケジューラは利用される調停方式に従って該要求を調停する。幾つかの要求を調停するためのとり得る方式は、所定の時間の間、処理される公平な機会を各要求に与えるラウンドロビンである。調停方式はまた、最も高い優先度を持つ接続が最初に処理されるような、接続に割り当てられた優先度を利用しても良い。ステップ７４における調停の後、ステップ７６において、選択された要求がスケジューリング多重化器５３に送信される。更に、ステップ７５において予算及びバースト値が更新される。
【００７６】
図８は、要求がＧＴサービスに属するか又はＢＥサービスに属するかの決定を示す。スロットテーブル５４に保存されたスロットテーブル値に基づいて、対象となる要求が保証されたスループットのサービスを必要とするか又はベストエフォート型のサービスを必要とするかが決定される。ＧＴサービスの場合、接続ＩＤ番号がスロットテーブル５４から導出される（８２）。要求がベストエフォート型（ＢＥ）サービスを必要とする場合、該要求はベストエフォート型スケジューラに転送される（８３）。図４に示されたネットワークインタフェースＮＩは、ベストエフォート型スケジューラを示していない。
【００７７】
このように本発明は、２つの処理モジュール間の複数の接続についての待ち時間を低減することを可能とする。唯一の欠点は、ネットワークインタフェースの制御部分の複雑さの僅かな増大である。
【００７８】
本発明は複数の同期されたＴＤＭＡに関連して説明されたが、本発明は単一のＴＤＭＡシステムにも適用可能である。一般に、接続に基づき保証を提供する相互接続構造に適用可能である。
【００７９】
上述の実施例は本発明を限定するものではなく説明するものであって、当業者は添付する請求項の範囲から逸脱することなく多くの代替実施例を設計することが可能であろうことは留意されるべきである。請求項において、括弧に挟まれたいずれの参照記号も、請求の範囲を限定するものとして解釈されるべきではない。「有する（comprise）」なる語は、請求項に記載されたもの以外の要素又はステップの存在を除外するものではない。要素に先行する「１つの（a又はan）」なる語は、複数の斯かる要素の存在を除外するものではない。幾つかの手段を列記した装置請求項において、これら手段の幾つかは同一のハードウェアのアイテムによって実施化されても良い。特定の手段が相互に異なる従属請求項に列挙されているという単なる事実は、これら手段の組み合わせが有利に利用されることができないことを示すものではない。更に、請求項におけるいずれの参照記号も、請求の範囲を限定するものとして解釈されるべきではない。
【図面の簡単な説明】
【００８０】
【図１（Ａ）】本発明によるネットワークオンチップの基本構造を示す。
【図１（Ｂ）】ＮｏＣを介した２つのＩＰブロック間のデータの伝送を示す。
【図２（Ａ）】ＮｏＣにおける接続のための基本的なスロット割り当てを示す。
【図２（Ｂ）】マスタとスレーブとの間の接続を示す。
【図３（Ａ）】先行技術による２つのＩＰブロック間のスロット割り当ての模式的な図を示す。
【図３（Ｂ）】本発明による共有されたスロット割り当ての例を示す。
【図４】本発明によるプールスケジューラを持つネットワークインタフェースを示す。
【図５】本発明によるスロットのシーケンスを示す。
【図６】スケジューラの選択のフロー図を示す。
【図７】キュー又は接続を選択するためのフロー図を示す。
【図８】サービスの種類を選択するためのフロー図を示す。
【図１（Ａ）】
2008536391.tif 000006
【図１（Ｂ）】
2008536391.tif 000007
【図２（Ａ）】
2008536391.tif 000008
【図２（Ｂ）】
2008536391.tif 000009
【図３（Ａ）】
2008536391.tif 000010
【図３（Ｂ）】
2008536391.tif 000011
【図４】
2008536391.tif 000012
【図５】
2008536391.tif 000013
【図６】
2008536391.tif 000014
【図７】
2008536391.tif 000015
【図８】
2008536391.tif 000016
【国際調査報告】
2008536391.tif 000017
2008536391.tif 000018
2008536391.tif 000019