JP2008536391A - 待ち時間の削減のためのネットワークオンチップ環境及び方法 - Google Patents
待ち時間の削減のためのネットワークオンチップ環境及び方法 Download PDFInfo
- Publication number
- JP2008536391A JP2008536391A JP2008504893A JP2008504893A JP2008536391A JP 2008536391 A JP2008536391 A JP 2008536391A JP 2008504893 A JP2008504893 A JP 2008504893A JP 2008504893 A JP2008504893 A JP 2008504893A JP 2008536391 A JP2008536391 A JP 2008536391A
- Authority
- JP
- Japan
- Prior art keywords
- processing module
- connections
- data
- network
- slot
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
- H04L49/254—Centralised controller, i.e. arbitration or scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7825—Globally asynchronous, locally synchronous, e.g. network on chip
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/40—Wormhole routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/109—Integrated on microchip, e.g. switch-on-chip
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/20—Support for services
- H04L49/205—Quality of Service based
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Time-Division Multiplex Systems (AREA)
Abstract
本発明は、複数の処理モジュール21、23、M、S;IPと、処理モジュール21、23、M、S;IPを結合するように構成されたネットワークNoCとを有する集積回路であって、処理モジュール21、23、M、S;IPは、関連する処理モジュールにより供給されたデータをネットワークNoCに送信し、前記関連する処理モジュール宛てのデータをネットワークNoCから受信するように構成された関連するネットワークインタフェースNIを含み、処理モジュール21、23、M、S;IP間のデータ伝送は、時間スロットを用いた時分割多重アクセス(TDMA)に基づき、各ネットワークインタフェースNIは、時間スロットの接続C1−C4への割り当てを保存するためのスロットテーブルを含み、複数の接続C1−C4が、第1の処理モジュール21、M、IPと第2の処理モジュール23、S、IPとの間に備えられ、前記第1の処理モジュールと第2の処理モジュールとの間の前記複数の接続に割り当てられた時間スロットの少なくとも一部の共有が提供される、集積回路に関する。本発明は、斯かる接続の待ち時間を削減するため、第1の処理モジュールと第2の処理モジュールとの間の複数の接続に割り当てられた、時間スロットの全て又は一部を共通して利用するという発想を利用する。2つの処理モジュール間の複数の接続に割り当てられたスロットを共有することにより、スロットテーブルの1周期の間にスロットの大きなプールが形成される。かくして、データのバーストにアクセスするための待ち時間が削減され得る。
Description
本発明は、複数の処理モジュールと処理モジュールを結合するためのネットワークとを持つ集積回路、斯かる集積回路における時間スロット割り当てのための方法、及びデータ処理システムに関する。
システムオンシリコン(Systems on silicon)は、新たな機能の実装及び既存の機能の改善に対する増大するニーズのため、恒常的に複雑さの増大を呈している。このことは、コンポーネントが集積回路に集積され得る密度の増大によって可能とされている。同時に、回路が動作するクロック速度も増大する傾向にある。より高いクロック速度とコンポーネントの増大した密度とを組み合わせることが、同一のクロックドメイン内で同期して動作することができる領域を削減させた。このことは、モジュール式手法に対するニーズを生み出した。斯かる手法によれば、処理システムは複数の比較的独立した複雑なモジュールを有する。従来の処理システムにおいては、モジュールは通常バスを介して互いと通信する。しかしながら以下の理由により、モジュールの数が増大するにつれて、この通信の手法はもはや実用的ではなくなる。多数のモジュールは高いバス負荷を示す。更に、バスは1つのモジュールのみが該バスにデータを送信することを可能とするため、通信ボトルネックを呈する。
通信ネットワークは、これらの欠点を克服するための効果的な方法を形成する。
ネットワークオンチップ(Network on chip、NoC)は近年、非常に複雑なチップにおける相互接続の問題に対する解決策として、大きな関心を集めてきている。その理由は2つある。第1に、NoCは新たなディープサブミクロン(deep-submicron)技術における電気的な問題を解決することを支援する。なぜなら、NoCはグローバルな配線を構成し管理するからである。同時に、NoCの概念は配線を共有し、配線の数の削減を可能とし、配線の利用を増大させる。NoCはまた、バスに比べてエネルギー効率が高く且つ信頼性が高く、更にスケーラブルである。第2に、NoCはまた、通信から計算を切り離す。このことは、無数のトランジスタを持つチップの設計を管理する際に重要である。NoCは伝統的にプロトコルスタックを利用して設計され、サービスの実装から通信サービスの利用を分離する、明確なインタフェースを提供するため、前記切り離しを実現する。
チップ上の相互接続としてネットワークを導入することは、バス又はスイッチのような直接的な相互接続に比べて、通信を急激に変化させる。このことは、通信モジュールが直接接続されないが、1以上のネットワークノードによりリモート的に分離される、ネットワークのマルチホップ特性による。このことは、モジュールが直接接続される、普及している既存の相互接続(即ちバス)と対照的である。当該変化の意味は、知的財産ブロック(IP)か又はネットワークのいずれかによって取り扱われるべき、調停(arbitration)(集中から分散へ変化する必要がある)及び通信プロパティ(例えば順序付け又はフロー制御)に存する。
これらのトピックの殆どは既に、ローカルエリアネットワーク及びワイドエリアネットワーク(コンピュータネットワーク)の分野における研究の対象となっており、並列プロセッサネットワークのための相互接続としての研究の対象ともなっている。いずれも、オンチップ型ネットワークに非常に関連が高く、これらの分野における結果の多くがチップ上でも適用可能である。しかしながら、NoCの前提はオフチップ(off chip)型ネットワークとは異なり、それ故ネットワーク設計の選択の殆どが再評価される必要がある。オンチップ型ネットワークは異なる特性(例えばより厳密なリンク同期)及びリソース制約(例えばより高いメモリのコスト)を持ち、異なる設計の選択へと導き、最終的にはネットワークサービスに影響を与える。記憶装置(即ちメモリ)及び計算リソースは比較的高価であり、ポイント・ツー・ポイント(point-to-point)リンクの数は、オフチップ型よりもオンチップ型のほうが多い。RAMのような汎用のオンチップ型メモリは大きな面積を占有するため、記憶装置は高価である。比較的小さなサイズでネットワークのコンポーネントに分散されたメモリを持つことは、更に不利である。なぜなら、この場合メモリにおけるオーバヘッド面積が支配的になるからである。
オフチップ型ネットワークは典型的にパケット切り換えを利用し、ベストエフォート(best-effort)型のサービスを提供する。かくして、送信されるデータ間の競合が各ネットワークノードにおいて発生し得、待ち時間保証を提供することが非常に困難になる。スループット保証は、レートベースの切り換え又はデッドラインベースのパケット切り換えのような方式を用いて依然として提供され得るが、バッファリングのコストが高い。
斯かる時間に関連する保証を提供するための代替案は、時分割多重アクセス(TDMA)回路を利用することである。
ネットワークオンチップ(NoC)は典型的に、複数のルータとネットワークインタフェースとから成る。ルータはネットワークノードとして機能し、静的に(即ち経路が予め決定され変化しない)又は動的に(即ちホットスポット(hot spot)を回避するために経路が例えばNoC負荷に依存して変化し得る)適切な経路上を宛先へとデータをルーティングすることにより、送信元のネットワークインタフェースから宛先のネットワークインタフェースへとデータを送信するために利用される。ルータはまた時間保証を実装しても良い(例えばレートベース、デッドラインベース、又はTDMA方式におけるパイプライン回路を利用して)。NoCについての知られた例は「AEthereal」である。
ネットワークインタフェースは、IPブロックとも呼ばれる処理モジュールに接続される。該処理モジュールは、いずれの種類のデータ処理ユニット、メモリ、ブリッジ、圧縮器等を表しても良い。とりわけ、ネットワークインタフェースは、処理モジュールとネットワークとの間の通信インタフェースを構成する。該インタフェースは通常、既存のバスインタフェースと互換性がある。従って、ネットワークインタフェースは、データのシーケンシャル化(提供されたコマンド、フラグ、アドレス及びデータを固定幅(例えば32ビット)信号群にフィッティングする)及びパケット化(ネットワークにより内部的に必要とされるパケットヘッダ及びトレーラを追加する)を取り扱うように設計される。ネットワークインタフェースはまたパケットスケジューリングを実装しても良く、該パケットスケジューリングはタイミング保証及び許可制御を含んでも良い。
NoCは、処理モジュール間でデータを転送するための種々のサービスを処理モジュールに提供する。
NoCは、ベストエフォート型(BE)又はスループット保証型(GT)サービスによって動作させられても良い。ベストエフォート型(BE)サービスにおいては、待ち時間又はスループットについての保証はない。データは、スロットの予約なくルータを通して転送される。従って、この種のデータはルータにおいて競合に直面し、保証を提供することは可能ではない。反対に、GTサービスは、処理モジュール間でデータを送信するための待ち時間及びスループットについての正確な値を導出することを可能とする。
オンチップ型のシステムはしばしば、該システムの相互接続通信のためのタイミング保証を必要とする。時間に関連する保証(即ちスループット、待ち時間及びジッタ(jitter))を提供するコスト効率の良い方法は、TDMA(Time Division Multiple Access)方式でパイプライン回路を利用することである。このことは、厳密な同期を持つシステムオンチップ(SoC)におけるレートベース及びデッドラインベースの方式に比べて、バッファ空間をあまり必要としないため、有利である。それ故、グローバルな時間の基準(notion)(即ち、ネットワークのコンポーネント間即ちルータ及びネットワークインタフェース間の同期の基準)に基づいて、スループット、待ち時間及びジッタが保証された通信のクラス(class)が提供される。ここで、基本的な時間の単位はスロット又は時間スロットと呼ばれる。全てのネットワークコンポーネントは通常、該ネットワークコンポーネントの各出力ポートについて等しいサイズのスロットテーブルを有する。ここで時間スロットは種々の接続のために予約される。スロットテーブルは、同期して進行する(即ち、全てが同じ時間に同じスロット中にある)。接続は、種々のトラフィッククラスを識別し、これらクラスにプロパティを関連付けるために利用される。各スロットにおいて、データアイテムは、或るネットワークコンポーネントから次のコンポーネントへと、即ちルータ間またはルータとネットワークインタフェースとの間を移動させられる。それ故、スロットが出力ポートにおいて予約されている場合、マスタモジュールとスレーブモジュールとの間の経路に沿った次の出力ポートにおいて、次のスロットが予約される等の必要がある。幾つかの処理モジュール間でタイミング保証を伴って複数の接続がセットアップされた場合、衝突が無いように(即ち1つよりも多い接続に割り当てわれるスロットが無いように)スロット割り当てが実行される必要がある。スロットは、データが他のいずれのデータとも競合する必要がないように予約される必要がある。このことは、コンテンション・フリー(contention free)型のルーティングとも呼ばれる。
所与のネットワークトポロジ(即ち所与の数のルータ及びネットワークインタフェース並びに処理モジュール間の接続のセット)について最適なスロット割り当てを見出すタスクは、最適な解を見出すこと(網羅的な計算時間を必要とする)を含むため、計算的に非常に困難な問題である。
GTサービスを実装するためには、スロットテーブルが利用される。スロットテーブルは、上述したように、ネットワークインタフェース及びルータを含むネットワークのコンポーネントに保存される。スロットテーブルは、時分割多重(TDMA)方式で、同一のリンク又は配線の共有を可能とする。
処理モジュール間のデータの送信のための重要な特徴は、待ち時間である。ネットワーキングにおける待ち時間の一般的な定義は、データパケットが送信元から宛先へと移動するために要する時間の量として要約され得る。待ち時間及び帯域幅は合わせて、ネットワークの速度及び容量を定義する。データにアクセスするための待ち時間は、斯かるスロットテーブルのサイズ、該テーブルにおける所与の接続に対するスロットの割り当て、及びバーストサイズに依存する。バーストサイズとは、1つの要求において質問/送信され得るデータの量である。2つの処理モジュール間の接続に対して割り当てられたスロットの数が、データのバーストを送信するために必要とされるスロットの数よりも少ない場合、データにアクセスするための待ち時間は劇的に増大する。斯かる場合には、データのバーストを完全に送信するためには、スロットテーブルの1つよりも多い周期が必要とされる。該接続に割り当てられていないスロットについての待機時間もまた、待ち時間に加算される。
第2の特徴は、上述したように、帯域幅である。処理モジュール間の接続は、所定の帯域幅を持つ。異なる帯域幅を持つ2つの処理モジュール間に、1つよりも多い接続を持つことが可能である。2つの処理モジュールが通信のための変化する帯域幅要求の複数の接続を該処理モジュール間で持つような斯かるシステムにおいては、最も低いスループットを持つ接続が、所与のバーストが完了するための最も長い待ち時間を持つ。低いスループット接続についての該待ち時間は、時に許容可能でなくなる。例えば、オーディオストリームは200Kバイト/秒を必要とし、ビデオストリームの送信は20Mバイト/秒を必要とする。低いスループット接続において増大する待ち時間は、例えば望ましくない品質の出力に帰着し得る。
待ち時間を削減するための第1の方法は、未割り当てのスロットを割り当てることである。しかしながら、特定の条件下においては、未割り当てのスロットの数は非常に少なくなり得、従ってこの方法では低いスループット接続についての待ち時間の削減を提供できない。
それ故、本発明の目的は、ネットワークオンチップ環境において改善されたスロット割り当てを持つ装置及び方法を提供することにある。
本目的は、請求項1に記載の集積回路及び請求項9に記載の時間スロット割り当てのための方法により達成される。
データのバーストを転送するための待ち時間を削減するため、第1の処理モジュールと第2の処理モジュールとの間の複数の接続に割り当てられた時間スロットの少なくとも一部を共有することが提案される。本発明は、斯かる接続の待ち時間を削減するため、第1の処理モジュールと第2の処理モジュールとの間の複数の接続に割り当てられた、共有スロットを共通して利用するという発想を利用する。本発明によるスロットの共有は、2つの処理モジュール間の複数の接続を再利用する。このことは、送信元の処理モジュール及び宛先の処理モジュールが、該複数の接続に対して同一である必要があることを意味する。
2つの処理モジュール間の複数の接続に割り当てられたスロットを共有することにより、スロットテーブルの1周期の間にスロットの大きなプールが形成される。かくして、データのバーストにアクセスするための待ち時間が削減され得る。スロットの共有は、各接続に割り当てられるスループットが同一のままとなるように実行される。共有されたスロットを利用することにより、より少ないスロットテーブルの周期の間に、通常低いスループット接続を持つデータのバーストを送信することが可能となる。このことは減少された信号発信の労力に帰着するであろう。なぜなら、バーストの各部分に対して、幾つかのヘッダが割り当てられる代わりに、1つのヘッダのみが必要となるからである。ヘッダは帯域幅をもカバーするため、該帯域幅は節約される。
しかしながら、主な利点の1つは、本発明の方法及び集積回路を利用することにより、待ち時間の制御が可能となる点である。従って、ユーザが待ち時間に影響を与えることができる。
本発明の他の態様及び利点は、従属請求項において定義される。
本発明の第1の好適な実施例においては、データの転送が、ピア・ツー・ピア(peer-to-peer)接続に基づくコンテンション・フリー型の伝送に基づいて実行される。1つの接続は幾つかのプロパティを持っても良く、接続に割り当てられた時間スロットを伝送するための少なくとも1つのチャネルを有する。接続を利用することにより、保証が提供され得る。
本発明の更なる好適な実施例においては、複数の接続に割り当てられた全てのスロットが共有される。
本発明の更なる好適な実施例においては、前記複数の接続の共有されたスロットはプールにおいて結合され、前記プールにおける全ての共有されたスロットが、2つの関与する処理モジュール間の前記複数の接続のデータ伝送に共通して利用される。割り当てのために利用可能なスロットの量が増大するため、待ち時間は減少する。通常の環境下においては、接続は完全には利用されない。従って、複数の接続のそれぞれがデータを伝送するために利用されないという状況もある。2つの処理モジュール間の複数の接続の全て又は一部のスロットをプールすることにより、未使用の接続の容量がビジーな接続により利用される。このことは、殆どの接続についての待ち時間を低減する。多くの数のスロットを割り当てられた複数の接続の接続についてのみ、最悪の場合に待ち時間の増大があり得る。しかしながら平均的には、2つの処理モジュール間の複数の接続内の各接続について、待ち時間は同一のままとなる。
本発明の更なる所定の実施例においては、プールスケジューラが提供される。プールスケジューラは、ネットワークインタフェースに含められる。プールスケジューラは、複数の接続を利用して、第1の処理モジュールと第2の処理モジュールとの間のデータの伝送を制御する。該複数の接続のデータ伝送の制御の種類を選択することにより、待ち時間が制御され得る。プールスケジューラは、自身の制御又は調停方式に依存して、該複数の接続のどのデータが最初に伝送されるかを決定する。とりわけ、接続の全てのキューがデータで満たされている場合、プールスケジューラはどのキューが最初に使用されるかを決定又は調停する。
本発明の更なる所定の実施例においては、複数の接続のそれぞれに予算(budget)が割り当てられる。とりわけ、該予算は所定の時間の間割り当てられる。従って、どの期間において(例えば何周期のスロットテーブルにおいて)、データのバーストが送信されるべきかが定義され得る。予算割り当ては、プーリングなしで単純なスロットスケジューラによって約束されるスループット保証を維持するために利用されることに留意されたい。複数の接続を介した第1の処理モジュールと第2の処理モジュールとの間のデータの伝送は、割り当てられた予算に依存して実行される。割り当てられた予算を接続が使ってしまった場合、該接続は当該予算期間の間はそれ以上使用されない。該予算割り当てはプールテーブルに保存され、プールスケジューラが該プールテーブル内の情報にアクセスし、どの接続が最初に使用されるかを調停する。プール内の1つよりも多い接続が送信される準備ができたデータを持ち且つ幾分かの予算が未使用のままである場合には、要求を解決するために調停方式が利用される。調停の2つの例、即ちラウンドロビン型及び優先度型がある。各要求がその場その場でスケジューリングされる(例えば、全ての要求者に対して公平であるように特定の順序で)手法は、ランドロビン型調停と呼ばれる。優先度型の調停においては、各要求は何らかの優先度(高い/低い)を持ち、複数の要求が存在する場合には、最も高い優先度を持つ要求が選択される。該優先度もまた、プールテーブルに保存される。プールスケジューラは、該優先度に依存して、複数の接続のどのデータが最初に送信されるかを決定する。例えば、従来の方式において最も少ない数の割り当てられたスロットを持つ接続に、最も高い優先度を割り当てることが実用的であり得る。このことは、多くのプールされたスロットを同時に利用することによるデータの伝送を可能とする。従って、該接続のデータバーストは、スロットテーブルの1つの周期の間に送信される。NoCを設定する間に、特定の接続について優先度が定義されても良い。このことは、待ち時間を制御するための更なる可能性を提供する。
更なる実施例においては、第1の処理モジュールが、第2の処理モジュールとの複数の接続から成る第1のセットと、第3の処理モジュールとの複数の接続から成る第2のセットとを含むことが可能である。この場合においても、複数の接続から成る第2のセットのスロットは、第2のプールにおいて共有される。第3の複数の接続へのデータ伝送のスケジューリングを処理するために、第1の処理モジュールと第3の処理モジュールとの間のデータの伝送を制御するため、第1の処理モジュールに関連するネットワークインタフェースにおいて、更なるプールスケジューラが備えられる。
本発明はまた、複数の処理モジュールと、前記処理モジュールを結合するように構成されたネットワークと、それぞれが前記処理モジュールの1つと前記ネットワークとの間に結合された複数のネットワークインタフェースとを持つ集積回路におけるデータ伝送のための時間スロットを割り当てるための方法であって、時間スロットを用いた時分割多重アクセスに基づいて、前記処理モジュール間で通信するステップと、前記時間スロットの接続への割り当てを含むスロットテーブルを各前記ネットワークインタフェースに保存するステップと、第1の処理モジュールと第2の処理モジュールとの間に複数の接続を備えるステップと、前記第1の処理モジュールと第2の処理モジュールとの間の前記複数の接続に割り当てられた時間スロットの少なくとも一部を共有するステップと、を有する方法に関する。
本発明は更に、複数の処理モジュールと、前記処理モジュールを結合するように構成されたネットワークと、関連する処理モジュールにより供給されたデータを前記ネットワークに送信し、前記関連する処理モジュール宛てのデータを前記ネットワークから受信するように構成された、前記処理モジュールに関連するネットワークインタフェースと、を有するデータ処理システムであって、前記処理モジュール間のデータ伝送は、時間スロットを用いた時分割多重アクセスに基づき、各前記ネットワークインタフェースは、前記時間スロットの接続への割り当てを保存するためのスロットテーブルを含み、複数の前記接続が、第1の処理モジュールと第2の処理モジュールとの間に備えられ、前記第1の処理モジュールと第2の処理モジュールとの間の前記複数の接続に割り当てられた時間スロットの少なくとも一部の共有が提供される、データ処理システムに関する。
従って、時間スロットの割り当ては、マルチチップ型ネットワーク又は幾つかの別個の集積回路を持つシステム若しくはネットワークにおいても、実行され得る。
本発明の好適な実施例は、以下の模式的な図面を参照しながら、例としてのみ、以下に詳細に説明される。
図面は単に説明の目的のために提供されるものであり、必ずしも本発明の実用的な例を定縮尺で示すものではない。
以下、本発明の種々の実施例が説明される。
本発明は幅広い用途に適用可能であるが、NoC、特にAEthereal設計に焦点を当てて説明される。本発明を適用するための更なる分野は、時間スロット及びスロットテーブルを利用することにより保証されたサービスを提供する各NoCであり得る。
以下、NoCの一般的なアーキテクチャが、図1A、1B、2A及び2Bを参照しながら説明される。
本実施例は、システムオンチップSoCに関し、即ち同一のチップ上の複数の処理モジュールが何らかの種類の相互接続を介して互いと通信する。該相互接続は、ネットワークオンチップNoCとして実施化される。ネットワークオンチップNoCは、配線、バス、時分割多重、スイッチ及び/又はルータをネットワーク内に含んでも良い。
図1A及び1Bは、本発明によるネットワークオンチップを持つ集積回路についての例を示す。本システムは、知的財産ブロックIPとも呼ばれる、幾つかの処理モジュールを有する。処理モジュールIPは、計算素子、メモリ又は内部的に相互接続モジュールを含んでも良いサブシステムとして実現されても良い。処理モジュールIPはそれぞれ、ネットワークインタフェースNIを介してネットワークNoCに接続される。ネットワークNoCは、それぞれのリンクL1、L2及びL3を介して隣接するルータRと接続された複数のルータRを有する。ネットワークインタフェースNIは、処理モジュールIPとネットワークNoCとの間のインタフェースとして利用される。ネットワークインタフェースNIは、それぞれの処理モジュールIP及びネットワークNoCの通信を管理するために備えられ、それにより処理モジュールIPは、ネットワークNoC又は他の処理モジュールIPとの通信に対処する必要なく、自身の専用の動作を実行することができる。処理モジュールIPは、マスタMとして動作しても良いし(即ち要求を開始する)、又はスレーブSとして動作しても良い(即ちマスタMからの要求を受信してそれに従って該要求を処理する)。
ネットワークNoCのトランスポート層において、処理モジュールIP間の通信が接続CNを介して実行される。接続CNは、第1の処理モジュールIPと少なくとも1つの第2の処理モジュールIPとの間の、それぞれが接続プロパティのセットを持つチャネルのセットとみなされる。第1の処理モジュールIPと単一の第2の処理モジュールIPとの間の接続については、該接続は図2Bに示すように2つのチャネル、即ち一方は第1の処理モジュールから第2の処理モジュールへのチャネル(即ち要求又は転送チャネル)と、第2の処理モジュールから第1の処理モジュールへの第2のチャネル(即ち応答又は反転チャネル)とを有しても良い。転送又は要求チャネルは、マスタIPからスレーブIPへのデータ及びメッセージのために予約され、反転又は応答チャネルは、スレーブIPからマスタIPへのデータ及びメッセージのために予約される。応答が必要とされない場合には、該接続は1つのチャネルのみを有しても良い。図示されていないが、該接続が1つのマスタIPとN個のスレーブIPとを含むことも可能である。この場合には、2*N個のチャネルが備えられる。それ故、接続CN又はネットワークを通した接続の経路は、少なくとも1つのチャネルを有する。換言すれば、1つのチャネルのみが利用される場合には、チャネルは接続の接続経路に対応する。上述したように2つのチャネルが利用される場合には、一方のチャネルが例えばマスタIPからスレーブIPへの接続経路を提供し、第2のチャネルがスレーブIPからマスタIPへの接続経路を提供する。従って、典型的な接続CNについては、接続経路は2つのチャネルを有することとなる。接続プロパティは、順序付け(順次のデータ伝送)、フロー制御(リモートのバッファが接続のために予約され、生成されるデータのための空間が利用可能でることが保証された場合にのみ、データ生成器がデータを送信することを可能とされる)、スループット(スループットにおける下限が保証される)、待ち時間(待ち時間の上限が保証される)、損失の多さ(データの脱落)、伝送の終了、トランザクションの完了、データの正確さ、優先度又はデータ配信を含んでも良い。
図2Aは、単一の接続及びネットワークオンチップにおけるそれぞれの基本的なスロット割り当てのブロック図を示す。説明を簡単にするため、接続の1つのチャネル(例えば転送チャネル)のみが示されている。とりわけ、マスタMとスレーブSとの間の接続が示されている。該接続は、マスタMに関連するネットワークインタフェースNI、2つのルータ、及びスレーブSに関連するネットワークインタフェースNIにより実現される。マスタMに関連するネットワークインタフェースNIは、時間スロット割り当てユニットSAを有する。代替として、スレーブSに関連するネットワークインタフェースNIが時間スロット割り当てユニットSAを有しても良い。第1のリンクL1がマスタMに関連するネットワークインタフェースNIと第1のルータRとの間に存在し、第2のリンクL2が2つのルータR間に存在し、第3のリンクL3が、ルータとスレーブSに関連するネットワークインタフェースNIとの間に存在する。それぞれのネットワークコンポーネントの出力ポートについての3つのスロットテーブルST1乃至ST3もまた示されている。これらのスロットテーブルは好ましくは、ネットワークインタフェース及びルータのようなネットワーク構成要素のチャネルの出力側、即ちデータ生成側に実装される。各要求されたスロットについて、接続経路に沿ったリンクの各スロットテーブルに1つのスロットが予約される。3つのスロットの全てがフリーであること即ち他のチャネルにより予約されていないことが必要である。データは或るネットワークコンポーネントから他の各スロットへと進行するため、スロットs=1から開始して、接続に沿った次のスロットはスロットs=2において予約され、次いでスロットs=3において予約される必要がある。
時間スロット割り当てユニットSAにより実行されるスロット割り当て決定のための入力は、相互接続、スロットテーブルのサイズ、及び接続のセットを伴うネットワークコンポーネントのような、ネットワークトポロジである。全ての接続について、経路、帯域幅、待ち時間、ジッタ及び/又はスロット要件が与えられる。1つの接続は、少なくとも2つのチャネル又は接続経路から成る。これらチャネルのそれぞれは個々の経路において設定され、異なる帯域幅、待ち時間、ジッタ及び/又はスロット要件を持つ異なるリンクを有しても良い。時間に関連した保証を提供するため、スロットはリンクに対して予約される必要がある。異なるスロットは、TDMAにより異なる接続に対して予約されることができる。接続のためのデータは次いで、連続するスロットにおいて、接続に沿った連続するリンクを介して転送される。
以下、本発明がより詳細に説明される。図3Aは、先行技術によるNoCを含む集積回路の簡略化されたセクションを示す。2つの処理モジュール21及び23がある。一方の処理モジュール21は、データを保存するためのメモリとして実現される。第2の処理モジュール23は、データを圧縮又は符号化するための圧縮器である。処理モジュール21及び23はそれぞれ、ネットワークインタフェースNIを含む。ネットワークインタフェースNIは、4つの接続C1、C2、C3及びC4について転送及び反転チャネルのためのスロット割り当てを示す、スロット割り当てテーブル25.1及び26.2を含む。それぞれのチャネルについて、1つのスロットテーブル25.1又は26.2のみがある。25.2及び26.2は、接続C1乃至C4についての両方のチャネルについて受信側におけるスロット割り当てを示す。圧縮器23は、メモリ21からのデータ伝送を要求する。図2Aに関して上述したように、メモリ21はスレーブとして及びマスタとして動作し得る。メモリ21がスレーブとして動作する場合、メモリ21は、4つの異なる接続C1乃至C4を利用して、圧縮器23からデータを受信する。第1のスロット割り当てテーブル25.1は、圧縮器23のNIにおける出力側において必要とされる。ここで、図示されるように、メモリ21における受信側25.2においては、スロットは1つシフトされる。反転方向において、メモリ21は、スロット割り当てテーブル26.2を利用して、圧縮器23にデータを送信する。ここで、スロットは更に1スロットだけシフトされる。圧縮器23における受信側において26.1において示されるように、接続C1乃至C4のためのスロットは、1スロットだけ延期される。2つの処理モジュール21と23との間の接続C1乃至C4のそれぞれは、幾つかのスロットを割り当てられている。接続C1及びC2は、それぞれ1つのスロットのみを割り当てられる。それ故、これら接続は低いスループットの接続と示される。接続C3は、スロットテーブル25.1及び26.2において2つのスロットを割り当てられる。接続C4は、4つのスロットを割り当てられる。従って、これら2つの処理モジュール21と23との間に、スループット要件を持つ複数の接続C1乃至C4がある。
スロットテーブルのサイズは20である。1つのスロットは3つのワード(ワードは例えば32ビット)を持ち、第1のワードは、例えば経路のようなネットワーク特有の情報から成っても良いヘッダHを送信するために利用されても良い。1つのスロットを利用して2つのワードのデータが転送され得ることが仮定される場合、16個のワードのバーストの転送は、8個のスロットを必要とする。
各接続について16個のデータ単位即ちワードのバーストを転送するための待ち時間が、表1に示される。表1は、16個のワードのバーストを転送するための最大待ち時間が、接続C1及びC2については8周期、即ち160フリット(即ちスロットサイクル)であることを示している。斯かる長い待ち時間は、処理モジュールにとって許容可能なものではない。例えば、オーディオデコーダ又はオーディオサンプルレート変換器は、短い待ち時間を必要とし得る。
ワードはデータの単位である。スロットテーブル(例えば25.1)は、それぞれの処理モジュール21と図1A又は1Bにおいて示されたような他の処理モジュールIPとの間の他の接続に割り当てられた更なるスロットS1及びS10乃至S20を含む。同様のことはスロットテーブル26.2にも当てはまるが、ここではスロットの位置が2スロットだけシフトされている。
低いスループットの接続C1及びC2についての長い待ち時間は、許容可能ではない。NoCが500MHzで動作するとすると、このことはサイクル毎に2nsを意味し、1つのスロット/フリットは3つのワードを持つため、3サイクル即ち6nsが必要とされる。160フリットは160x6ns=960nsである。所与のバーストサイズについてデータを転送するための待ち時間は、所与の接続のために割り当てられたスロットの数に強く依存する。それ故、低いスループットの接続C1及びC2は、長い待ち時間を被る。
このことは、TDMAベースの方式における一般的な問題である。該問題を解決するため、本発明は、2つの処理モジュール21と23との間の複数の接続のために割り当てられたスロットを共有することにより、待ち時間を低減させることを提案する。2つの処理モジュール21と23との間の複数の接続のスロットを共有することは、データ伝送のための増大されたスロットの量をもたらす。スロットテーブルの1周期の間、スロットの大きなプールP1が存在し、かくしてバーストへのアクセスのための待ち時間が低減される。
提案される本発明は、図3B及び図4に関連して、より詳細に説明される。各接続に割り当てられたスループットがスループットの保証を保つため同一のままであり、待ち時間に対する適切な制御が達成されるように、前記共有が実行される。
図3Bに示されるように、2つの処理モジュール21と23との間の接続に割り当てられたスロットは、P1と示される。
このことは、特定の時間内の接続の間で共有されたスロットの過度の/不足した利用を制御するための予算割り当て方式の一種により達成される。このことは、接続の保証されたスループット特性を保つ。
上述したように、プールの中の各接続についての待ち時間を制御するため、例えばラウンドロビンや優先度型のような、多くのスケジューリング戦略が利用され得る。
結果を達成するため、接続のプールP1のなかでの予算割り当て及び調停のための回路が必要される。データのスループットを保証するため、データの少なくとも1つの完全なバーストの供給が必要とされるが、このことは実際にはバースト的なトラフィックにおいては通常のことである。
表2は、接続C1乃至C4についての最大待ち時間が、8周期から、ラウンドロビン型の調停の場合には4周期へと、優先度方式の例の場合には5周期へと、減少されることを示している。低いスループットの接続C1及びC2については、最悪の待ち時間が2乃至4のファクタで低減される。高いスループットの接続C4については、最悪の待ち時間が、2周期から、ラウンドロビン型の場合には4周期へと、優先度型の調停の場合には5周期へと、増大する。
ラウンドロビン型の調停については、例えば全ての要求キューに対して公平であるように特定の順序で、各要求がその場その場でスケジューリングされる。公平とは、同じ要求が再び処理される前に、全ての他の要求が考慮されることを意味する。このことは、短い例で説明される:N個の要求が存在し、1からNの周期的な順序が仮定される。全ての要求が存在すると仮定すると、要求Nは、Nより前の全ての要求(即ち1乃至N−1)が処理された後にのみ、処理される。このことは、要求を処理するための待ち時間についての上限を提供し、該上限はN−1である。
表2は、4つの接続について、ラウンドロビン型の調停が、送信のためにスロットテーブルの4周期に帰着することを示している。この時間は、3個の要求を処理するために最悪の場合スロットテーブルの3(4−1)スロットテーブル周期の待ち時間を含み、現在の要求を処理するために1スロットテーブル周期の時間が必要とされる。
しかしながら、留意すべき重要な点は、待ち時間は依然として限られたものであり、予算期間に亘る平均待ち時間は以前と同じ、即ち2周期であるという点である。本発明による手法の重要な点は、該手法が所与の接続の待ち時間に対する制御を可能とする点である。
本発明において提示される手法は、種々の異なる接続をスロットの共有されるプールへ関連付ける処理を必要とする。このことは、プールテーブル56により実装されることができる。斯かるプールテーブル56は、ネットワークインタフェースNIにおけるプールP1ごとに実施化されても良い。
調停メカニズムは、ネットワークインタフェースNIにおけるスケジューラ41の一部として実装されても良い。プールスケジューラ46が調停を実行する。
更に、接続に対するバーストの関係を識別するため、パケットのヘッダにおいて送信された情報(例えばリモート接続/キューID)は、調停の結果に基づいて導出されるべきである。
以下、プールに関与する接続のためにGTサービスを提供するスケジューラ41の疑似コードが説明される。
プールスケジューリングを含むGTスケジューラの疑似コード:
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;
}
}
該コードの説明は図6に示される。プールに関与する接続のためのスケジューリングは、以下に説明される:
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);
}
}
}
該コードの説明は図7に示される。
sched_queue_iChooseNewConnection(req_i)
{
該関数の挙動は、例えばラウンドロビンや優先度型といった、
選択された調停/スケジューリング方式に依存する。
}
該コードの説明は図8に示される。
プールスケジューリングを含むGTスケジューラの疑似コード:
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;
}
}
該コードの説明は図6に示される。プールに関与する接続のためのスケジューリングは、以下に説明される:
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);
}
}
}
該コードの説明は図7に示される。
sched_queue_iChooseNewConnection(req_i)
{
該関数の挙動は、例えばラウンドロビンや優先度型といった、
選択された調停/スケジューリング方式に依存する。
}
該コードの説明は図8に示される。
図4は、ネットワークインタフェースNIのコンポーネントを示す。しかしながら、NIの送信方向のみが示されている。データパケットを受信するための部分は示されていない。ネットワークインタフェースNIは、入力キューBiを含むフロー制御手段、リモート空間レジスタ46、要求生成器45、ルーティング情報レジスタ47、クレジットカウンタ49、スロットテーブル54、スロットスケジューラ55、プールテーブル56、プールスケジューラ57、スケジューリング多重化器53、ヘッダユニット48、ヘッダ挿入ユニット52、パケット長ユニット51及び出力多重化器50を有する。
NIは、送信側の処理モジュール21及び23から、入力ポート42においてデータを受信する。NIは、図5に示される例のようなデータシーケンスの形で、パッケージ化されたデータを出力部43においてルータへと出力する。接続に属するデータは、キューBi44に供給される。明確さのため、1つのキュー44のみが示されている。しかしながら、特定の接続C1乃至CNに属する各データが、1つの接続にのみ関連する単一のキューBiに入力される。このことは、処理モジュールIPにより利用される接続C1乃至CNと同じだけキューiがあることを意味する。キューにおける最初のデータは、要求生成器45によって監視される。要求生成器45は、利用される必要があるデータサービスの種類を検出する。要求生成器45は、キューの充填度、及びリモート空間レジスタ46に保存された利用可能なリモートの空間に基づいて、キューBiに対してデータを送信させる要求req_iを生成する。次のキューを選択するため、全てのキューiについての要求req_iが、プールスケジューラ57及びスロットスケジューラ55へと供給される。このことは、スロットテーブル54からの情報に基づいてスロットスケジューラ55によって、及びプールテーブル56からの情報に基づいてプールスケジューラ57によって、実行されることができる。プールスケジューラ57は、データが、共有されたスロットを持つ接続C1乃至C4に属するか否かを検出する。スロットスケジューラ55は、スロットの共有されたプールP1の一部ではないデータに属する要求req_iを検出する。キューの1つがスケジューラ55及び57の一方において選択されるとすぐに、スケジューリング多重化器53へと供給される。多重化は、スロット割り当てテーブル54に基づく。スロット割り当てテーブル54におけるスロット位置に依存して、スケジューリングされたキューsched_queue_iは、schedul_selコマンドによりスケジューリングされ、スケジューリング多重化器53により出力される。スケジューリング多重化器53により出力された後、ヘッダ挿入ユニット52が、付加的な冗長ヘッダHが挿入される必要があるか否かを決定する。現在のスロットが連続における先頭である場合には、ヘッダが必要であるため、ヘッダHが挿入される。追加ヘッダ挿入のための条件が満たされる場合には、冗長又は追加ヘッダHが挿入される。斯かる条件は、パケット長及び/又は送信されるべきクレジットが閾値を超えていることであっても良い。
複数の接続C1乃至C4の特性は、プールテーブル56に保存される。プールテーブルの例は、上述の表3に示されている。プールスケジューラ57において利用されるスケジューリング方式(予算、ラウンドロビン及び/又は優先度)に依存して、キューにおけるデータがスケジューリングされる。ここで、最も大きな予算を持つデータが最初にスケジューリングされる。プールスケジューラ57が優先度に応じて動作する場合、最も高い優先度を持つデータが最初にスケジューリングされる。2つの処理モジュール21と23との間の複数の接続の1つに属さないデータは通常、スロットスケジューラ55によりスケジューリングされる。
多重化器53は、スケジューリングされたキュー/接続ID(sched_queue_i)を、ヘッダ挿入ユニット52、及びパケット長を増大させるユニット51へと転送する。アドレスのようなルーティング情報は、設定可能なルーティング情報レジスタ47に保存される。クレジットカウンタ49は、データが出力キューにおいて消費されたときに増加し、新たなヘッダHが該ヘッダHに組み込まれたクレジット値と共に送信されたときに減少する。ルーティング情報レジスタ47からのルーティング情報は、クレジットカウンタ49の値と共に、ヘッダユニット48へと転送され、ヘッダHの一部を形成する。ヘッダユニット48はクレジット値及びルーティング情報を受信し、ヘッダデータを出力多重化器50へと出力する。出力多重化器50は、選択されたキューにより供給されたデータと、ヘッダユニット48から供給されたヘッダ情報hdrとを多重化する。データパッケージが送出されたときに、パケット長がリセットされる。
単純な例を説明するため、複数のプールスケジューラは省略された。しかしながら、1つの処理モジュールは、別の処理モジュールに対する複数の多重の接続を持っても良い。従って、処理モジュール21と23との間に4つの接続C1乃至C4があることもあり得る。更に、図1Bに示されるように、処理モジュール21から第3の処理モジュール24への複数の接続C5及びC6から成る第2のセットがあっても良い。斯かる場合においては、接続C5及びC6について第3の処理モジュール24へと供給されたデータを検出及びスケジューリングする更なるプールスケジューラがある。
プールスケジューラ57に組み込まれた該調停又はスケジューリングのメカニズムは、ネットワークインタフェースNIの制御の複雑さを増大させるが、一方で本発明はデータを転送するための待ち時間の削減を提供する。更に本発明は、所与のシステムにおける接続の待ち時間の制御を提供する。プールテーブル56、及びプールスケジューラ57において利用されるスケジューリング方式のプログラミングもが、チップの製造の後においても可能である。種々の接続の待ち時間はより均等に分散され、特定のIP待ち時間に容易に合致する利点を提供する。
複数の接続C1乃至C4について割り当てられたスロットS1乃至SNが、図5に示すように連続的である場合、1つのスロットSNにおいて送信され得るデータの平均量又はペイロードPは増大する。なぜなら、送信されるヘッダHが少なくなるからである。図5に示されるように、プールされたスロットSNの前に1つのヘッダHのみがある。従って、データバーストが共有されたスロットを利用して一度に送信される場合、データシーケンスの1つのワード又はデータ単位のみが、ヘッダHのために利用される。スロットにおける他のすべてのデータ単位は、ペイロードデータをスケジューリングするために利用される。従って1つのヘッダHのみが必要とされる。共有されるスロットを利用することなく該バーストが送信される場合、データの全体の量が完全に送信されるまでに、スロットテーブルの1周期よりも長い時間が掛かる。加えて、接続がスロットを割り当てられる度に、重要な帯域幅を必要とするデータに新たなヘッダが結合される必要がある。
GTサービスにおいては、以前のスロットが接続のために割り当てられていない全てのスロットについてヘッダが送信されることに留意されたい。実際にこのことは、バーストを送信するために必要とされる周期の数が減少するにつれて、更なる待ち時間の削減に導き得る。
以下、上述した疑似コードが、図6乃至8を参照しながら更に詳細に説明される。
図6は、図4におけるスケジューリング多重化器53における選択処理を示す。スロットスケジューラ55又はプールスケジューラ57によりスケジューリングされるキューが、スケジューリング多重化器53に供給される。スロットテーブル54に保存されたスロットテーブル値に依存して、スケジューリング多重化器53において、スケジュールされたキュー/接続IDが選択される。スロットテーブル値は、キュー/接続ID及びスケジューラのタイプを含む。スケジューラのタイプに依存して、それぞれのキュー/接続IDが選択される。図6に示される例においては、更なるプールスケジューラ2が含まれる。従って図6は、図1Bに示されたような複数の接続から成る2つのセットを取り扱うために必要なネットワークインタフェースNIのコンポーネントを示す。接続C5乃至C6は、第2のプールスケジューラ2により制御される。
図7は、プールスケジューラ57により実行される調停メカニズムを表す。本フロー図において、1つのプールスケジューラ57に関する処理のみが示されている。複数の要求1乃至Nに属する複数の垂直方向のフローがあり、各フローは1つの要求req_iについての処理を表す。最初の決定71において、要求req_iが当該プールに属しているか否かがプールスケジューラ57によって決定される。否であれば、該要求は無視される(72)。肯定であれば、それぞれの接続について予算が利用可能であるか否かがステップ73においてチェックされる。予算は、プールテーブル56に保存されている。該接続のための予算が残っていれば、プールスケジューラは利用される調停方式に従って該要求を調停する。幾つかの要求を調停するためのとり得る方式は、所定の時間の間、処理される公平な機会を各要求に与えるラウンドロビンである。調停方式はまた、最も高い優先度を持つ接続が最初に処理されるような、接続に割り当てられた優先度を利用しても良い。ステップ74における調停の後、ステップ76において、選択された要求がスケジューリング多重化器53に送信される。更に、ステップ75において予算及びバースト値が更新される。
図8は、要求がGTサービスに属するか又はBEサービスに属するかの決定を示す。スロットテーブル54に保存されたスロットテーブル値に基づいて、対象となる要求が保証されたスループットのサービスを必要とするか又はベストエフォート型のサービスを必要とするかが決定される。GTサービスの場合、接続ID番号がスロットテーブル54から導出される(82)。要求がベストエフォート型(BE)サービスを必要とする場合、該要求はベストエフォート型スケジューラに転送される(83)。図4に示されたネットワークインタフェースNIは、ベストエフォート型スケジューラを示していない。
このように本発明は、2つの処理モジュール間の複数の接続についての待ち時間を低減することを可能とする。唯一の欠点は、ネットワークインタフェースの制御部分の複雑さの僅かな増大である。
本発明は複数の同期されたTDMAに関連して説明されたが、本発明は単一のTDMAシステムにも適用可能である。一般に、接続に基づき保証を提供する相互接続構造に適用可能である。
上述の実施例は本発明を限定するものではなく説明するものであって、当業者は添付する請求項の範囲から逸脱することなく多くの代替実施例を設計することが可能であろうことは留意されるべきである。請求項において、括弧に挟まれたいずれの参照記号も、請求の範囲を限定するものとして解釈されるべきではない。「有する(comprise)」なる語は、請求項に記載されたもの以外の要素又はステップの存在を除外するものではない。要素に先行する「1つの(a又はan)」なる語は、複数の斯かる要素の存在を除外するものではない。幾つかの手段を列記した装置請求項において、これら手段の幾つかは同一のハードウェアのアイテムによって実施化されても良い。特定の手段が相互に異なる従属請求項に列挙されているという単なる事実は、これら手段の組み合わせが有利に利用されることができないことを示すものではない。更に、請求項におけるいずれの参照記号も、請求の範囲を限定するものとして解釈されるべきではない。
Claims (10)
- 複数の処理モジュールと、前記処理モジュールを結合するように構成されたネットワークとを有する集積回路であって、
前記処理モジュールは、関連する処理モジュールにより供給されたデータを前記ネットワークに送信し、前記関連する処理モジュール宛てのデータを前記ネットワークから受信するように構成された関連するネットワークインタフェースを含み、
前記処理モジュール間のデータ伝送は、時間スロットを用いた時分割多重アクセスに基づき、
各前記ネットワークインタフェースは、前記時間スロットの接続への割り当てを保存するためのスロットテーブルを含み、
複数の前記接続が、第1の処理モジュールと第2の処理モジュールとの間に備えられ、
前記第1の処理モジュールと第2の処理モジュールとの間の前記複数の接続に割り当てられた時間スロットの少なくとも一部の共有が提供される、集積回路。 - 前記処理モジュール間のデータ伝送は、前記接続を利用することによりコンテンション・フリー型の伝送に基づく、請求項1に記載の集積回路。
- 前記第1の処理モジュールと前記第2の処理モジュールとの間の前記複数の接続に割り当てられた全ての時間スロットが共有される、請求項1又は2に記載の集積回路。
- 前記複数の接続の共有されたスロットはプールにおいて結合され、前記プールにおける全ての共有されたスロットが、前記複数の接続のデータ伝送に共通して利用される、請求項1乃至3のいずれか一項に記載の集積回路。
- 前記ネットワークインタフェースに含まれたプールスケジューラを含み、前記プールスケジューラは、前記複数の接続を利用して、前記第1の処理モジュールと前記第2の処理モジュールとの間のデータの伝送を制御するように構成された、請求項1乃至4のいずれか一項に記載の集積回路。
- 前記複数の接続の各接続に、所定の時間内の予算及び/又は優先度が割り当てられ、前記複数の接続を介した前記第1の処理モジュールと前記第2の処理モジュールとの間のデータの伝送は、前記割り当てられた予算及び/又は優先度に依存して実行される、請求項1乃至5のいずれか一項に記載の集積回路。
- 前記プールスケジューラは、前記接続の複数の要求の調停を実行するように構成され、前記調停は、ラウンドロビンに基づいて又は前記複数の接続に付与された優先度に基づいて実行される、請求項1乃至6のいずれか一項に記載の集積回路。
- 前記第1の処理モジュールと第3の処理モジュールとの間に複数の接続から成る第2のセットが存在し、前記第1の処理モジュールと前記第3の処理モジュールとの間の複数の接続から成る前記第2のセットに割り当てられた時間スロットの少なくとも一部の共有が提供され、前記第1の処理モジュールと前記第3の処理モジュールとの間のデータの伝送を制御するために、前記第1の処理モジュールに関連するネットワークインタフェースに第2のプールスケジューラが備えられた、請求項1乃至7のいずれか一項に記載の集積回路。
- 複数の処理モジュールと、前記処理モジュールを結合するように構成されたネットワークと、それぞれが前記処理モジュールの1つと前記ネットワークとの間に結合された複数のネットワークインタフェースとを持つ集積回路におけるデータ伝送のための時間スロットを割り当てるための方法であって、
時間スロットを用いた時分割多重アクセスに基づいて、前記処理モジュール間で通信するステップと、
前記時間スロットの接続への割り当てを含むスロットテーブルを各前記ネットワークインタフェースに保存するステップと、
第1の処理モジュールと第2の処理モジュールとの間に複数の接続を備えるステップと、
前記第1の処理モジュールと第2の処理モジュールとの間の前記複数の接続に割り当てられた時間スロットの少なくとも一部を共有するステップと、
を有する方法。 - 複数の処理モジュールと、前記処理モジュールを結合するように構成されたネットワークと、
関連する処理モジュールにより供給されたデータを前記ネットワークに送信し、前記関連する処理モジュール宛てのデータを前記ネットワークから受信するように構成された、前記処理モジュールに関連するネットワークインタフェースと、
を有するデータ処理システムであって、
前記処理モジュール間のデータ伝送は、時間スロットを用いた時分割多重アクセス、及び接続の利用による伝送に基づき、
各前記ネットワークインタフェースは、前記時間スロットの接続への割り当てを保存するためのスロットテーブルを含み、
複数の前記接続が、第1の処理モジュールと第2の処理モジュールとの間に備えられ、
前記第1の処理モジュールと第2の処理モジュールとの間の前記複数の接続に割り当てられた時間スロットの少なくとも一部の共有が提供される、データ処理システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP05102755 | 2005-04-07 | ||
PCT/IB2006/051013 WO2006106476A1 (en) | 2005-04-07 | 2006-04-04 | Network-on-chip environment and method for reduction of latency |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008536391A true JP2008536391A (ja) | 2008-09-04 |
Family
ID=36616997
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008504893A Withdrawn JP2008536391A (ja) | 2005-04-07 | 2006-04-04 | 待ち時間の削減のためのネットワークオンチップ環境及び方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20080205432A1 (ja) |
EP (1) | EP1869845A1 (ja) |
JP (1) | JP2008536391A (ja) |
WO (1) | WO2006106476A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011061775A (ja) * | 2009-09-04 | 2011-03-24 | Kalray | 入出力ノードオンチップネットワーク |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1947387B (zh) * | 2004-04-05 | 2010-04-14 | 皇家飞利浦电子股份有限公司 | 用于时隙分配的集成电路和方法 |
JP2009502080A (ja) * | 2005-07-19 | 2009-01-22 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 電子装置及び通信リソース割り当て方法 |
FR2902957B1 (fr) * | 2006-06-23 | 2008-09-12 | Arteris Sa | Systeme et procede de gestions de messages transmis dans un reseau d'interconnexions |
FR2904445B1 (fr) * | 2006-07-26 | 2008-10-10 | Arteris Sa | Systeme de gestion de messages transmis dans un reseau d'interconnexions sur puce |
KR100737943B1 (ko) * | 2006-09-13 | 2007-07-13 | 삼성전자주식회사 | 네트워크-온-칩 응답 신호 제어 장치 및 그 방법 |
WO2008038235A2 (en) * | 2006-09-27 | 2008-04-03 | Ecole Polytechnique Federale De Lausanne (Epfl) | Method to manage the load of peripheral elements within a multicore system |
EP1950932A1 (en) * | 2007-01-29 | 2008-07-30 | Stmicroelectronics Sa | System for transmitting data within a network between nodes of the network and flow control process for transmitting said data |
US8261025B2 (en) | 2007-11-12 | 2012-09-04 | International Business Machines Corporation | Software pipelining on a network on chip |
US8526422B2 (en) * | 2007-11-27 | 2013-09-03 | International Business Machines Corporation | Network on chip with partitions |
US8473667B2 (en) * | 2008-01-11 | 2013-06-25 | International Business Machines Corporation | Network on chip that maintains cache coherency with invalidation messages |
US7913010B2 (en) * | 2008-02-15 | 2011-03-22 | International Business Machines Corporation | Network on chip with a low latency, high bandwidth application messaging interconnect |
US8423715B2 (en) | 2008-05-01 | 2013-04-16 | International Business Machines Corporation | Memory management among levels of cache in a memory hierarchy |
US20090282211A1 (en) * | 2008-05-09 | 2009-11-12 | International Business Machines | Network On Chip With Partitions |
US8392664B2 (en) * | 2008-05-09 | 2013-03-05 | International Business Machines Corporation | Network on chip |
US8214845B2 (en) * | 2008-05-09 | 2012-07-03 | International Business Machines Corporation | Context switching in a network on chip by thread saving and restoring pointers to memory arrays containing valid message data |
US8494833B2 (en) * | 2008-05-09 | 2013-07-23 | International Business Machines Corporation | Emulating a computer run time environment |
US8040799B2 (en) * | 2008-05-15 | 2011-10-18 | International Business Machines Corporation | Network on chip with minimum guaranteed bandwidth for virtual communications channels |
US8230179B2 (en) * | 2008-05-15 | 2012-07-24 | International Business Machines Corporation | Administering non-cacheable memory load instructions |
US8438578B2 (en) * | 2008-06-09 | 2013-05-07 | International Business Machines Corporation | Network on chip with an I/O accelerator |
US8195884B2 (en) | 2008-09-18 | 2012-06-05 | International Business Machines Corporation | Network on chip with caching restrictions for pages of computer memory |
FR2951342B1 (fr) * | 2009-10-13 | 2017-01-27 | Arteris Inc | Reseau sur puce a latence nulle |
US8391281B2 (en) * | 2010-03-31 | 2013-03-05 | Toshiba America Research, Inc. | Router design for 3D network-on-chip |
JP2012146201A (ja) | 2011-01-13 | 2012-08-02 | Toshiba Corp | オンチップルータ及びそれを用いたマルチコアシステム |
US9686062B2 (en) * | 2011-03-04 | 2017-06-20 | Alcatel Lucent | Virtual aggregation of fragmented wireless spectrum |
US9496982B2 (en) | 2011-03-04 | 2016-11-15 | Alcatel Lucent | System and method providing resilient data transmission via spectral fragments |
US9030953B2 (en) | 2011-03-04 | 2015-05-12 | Alcatel Lucent | System and method providing resilient data transmission via spectral fragments |
WO2012140848A1 (ja) | 2011-04-13 | 2012-10-18 | パナソニック株式会社 | 制御装置 |
WO2014115207A1 (ja) * | 2013-01-25 | 2014-07-31 | パナソニック株式会社 | バスインタフェース装置、中継装置、およびそれらを備えたバスシステム |
US20150049758A1 (en) * | 2013-08-13 | 2015-02-19 | Utah State University | Hot carrier injection tolerant network on chip router architecture |
US10193827B2 (en) | 2013-08-13 | 2019-01-29 | Dean Michael Ancajas | Hot carrier injection tolerant network on chip router architecture |
EP3036649B1 (de) * | 2013-08-21 | 2018-08-01 | Siemens AG Österreich | Verfahren und schaltungsanordnung zur zeitlichen eingrenzung und trennung von zugriffen in einem ein-chip-system |
US10254369B2 (en) * | 2014-10-29 | 2019-04-09 | Heartvista, Inc. | Pipeline engine for specifying, visualizing, and analyzing MRI image reconstructions |
US9680765B2 (en) | 2014-12-17 | 2017-06-13 | Intel Corporation | Spatially divided circuit-switched channels for a network-on-chip |
US9979668B2 (en) * | 2014-12-22 | 2018-05-22 | Intel Corporation | Combined guaranteed throughput and best effort network-on-chip |
US10666578B2 (en) * | 2016-09-06 | 2020-05-26 | Taiwan Semiconductor Manufacturing Company Limited | Network-on-chip system and a method of generating the same |
US10983910B2 (en) * | 2018-02-22 | 2021-04-20 | Netspeed Systems, Inc. | Bandwidth weighting mechanism based network-on-chip (NoC) configuration |
CN115118677B (zh) * | 2022-06-24 | 2024-06-25 | 无锡中微亿芯有限公司 | 一种fpga中的片上网络的路由节点调度方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1035682A1 (en) * | 1999-03-06 | 2000-09-13 | Deutsche Thomson-Brandt Gmbh | Method and bus interface employing a memory in an integrated circuit for linking a bus with an application device |
US7032223B2 (en) * | 2000-03-01 | 2006-04-18 | Realtek Semiconductor Corp. | Transport convergence sub-system with shared resources for multiport xDSL system |
US7287649B2 (en) * | 2001-05-18 | 2007-10-30 | Broadcom Corporation | System on a chip for packet processing |
US20030167348A1 (en) * | 2001-07-02 | 2003-09-04 | Globespanvirata, Inc. | Communications system using rings architecture |
JP3698079B2 (ja) * | 2001-08-22 | 2005-09-21 | 日本電気株式会社 | データ転送方法、データ転送装置及びプログラム |
US7292580B2 (en) * | 2002-06-10 | 2007-11-06 | Lsi Corporation | Method and system for guaranteeing quality of service in a multi-plane cell switch |
US7277449B2 (en) * | 2002-07-29 | 2007-10-02 | Freescale Semiconductor, Inc. | On chip network |
WO2004034173A2 (en) * | 2002-10-08 | 2004-04-22 | Koninklijke Philips Electronics N.V. | Integrated circuit and method for exchanging data |
US7366202B2 (en) * | 2003-12-08 | 2008-04-29 | Colubris Networks, Inc. | System and method for interference mitigation for wireless communication |
CN1947387B (zh) * | 2004-04-05 | 2010-04-14 | 皇家飞利浦电子股份有限公司 | 用于时隙分配的集成电路和方法 |
-
2006
- 2006-04-04 WO PCT/IB2006/051013 patent/WO2006106476A1/en not_active Application Discontinuation
- 2006-04-04 US US11/910,750 patent/US20080205432A1/en not_active Abandoned
- 2006-04-04 EP EP06727813A patent/EP1869845A1/en not_active Withdrawn
- 2006-04-04 JP JP2008504893A patent/JP2008536391A/ja not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011061775A (ja) * | 2009-09-04 | 2011-03-24 | Kalray | 入出力ノードオンチップネットワーク |
Also Published As
Publication number | Publication date |
---|---|
US20080205432A1 (en) | 2008-08-28 |
EP1869845A1 (en) | 2007-12-26 |
WO2006106476A1 (en) | 2006-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008536391A (ja) | 待ち時間の削減のためのネットワークオンチップ環境及び方法 | |
US20080186998A1 (en) | Network-On-Chip Environment and Method for Reduction of Latency | |
US20080232387A1 (en) | Electronic Device and Method of Communication Resource Allocation | |
Feliciian et al. | An asynchronous on-chip network router with quality-of-service (QoS) support | |
US8014401B2 (en) | Electronic device and method of communication resource allocation | |
JP4791530B2 (ja) | 電子デバイス及びフロー制御方法 | |
JP4560409B2 (ja) | データを交換する集積回路および方法 | |
JP4995101B2 (ja) | 共有リソースへのアクセスを制御する方法及びシステム | |
JP4870671B2 (ja) | 集積回路及びタイムスロット割当て方法 | |
JP5552196B2 (ja) | 中継装置、中継装置の制御方法、およびコンピュータプログラム | |
JP2004242335A (ja) | 高速交換環境の不足ラウンドロビンスケジューリングをするシステム、方法及び論理 | |
JP2007500985A (ja) | 時分割多重化回路切り換えルータ | |
JP2008510337A (ja) | 集積回路において少なくとも1つのパケットにデータを割り当てる方法 | |
US20080123666A1 (en) | Electronic Device And Method Of Communication Resource Allocation | |
JP4408376B2 (ja) | 交換のためにメモリに書き込まれるパケットをキューイングするシステム、方法及び論理 | |
EP2499790A1 (en) | Integrated circuit arrangement for buffering service requests | |
Berejuck et al. | Evaluation of a connectionless technique for system-on-chip interconnection | |
Horchani et al. | Design of a NoC-router guaranteeing QoS based on virtual channels reservation | |
Horchani et al. | A SystemC QoS router design with virtual channels reservation in a wormhole-switched NoC | |
JP2004242336A (ja) | 高速交換環境でマルチキャスティングするシステム、方法及び論理 | |
Rijpkema et al. | Trade Offs in the Design of a Router with Both Guaranteed and Best-Effort Services for Networks on Chip (Extended Version) | |
Ferrer et al. | Quality of Service in NoC for Reconfigurable Space Applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20090707 |