(57)【要約】  複数の処理モジュール（ＩＰ１〜ＩＰ５）を結合し処理モジュール（ＩＰ１〜ＩＰ５）間で通信を行なえるようにするための相互接続手段（Ｎ）を備える電子デバイスが実現される。電子デバイスは、さらに、相互接続手段（Ｎ）を複数の処理モジュール（ＩＰ１〜ＩＰ５）のうちの１つに結合するための複数のネットワーク・インターフェイス（ＮＩ）を備える。さらに、少なくとも１つのタイム・スロット割り当てユニット（ＳＡ）が、タイム・スロットを相互接続手段（Ｎ）のチャネルに割り当てるために用意される。タイム・スロット割り当てユニット（ＳＡ）は、複数のエントリを持つ複数のスロット・テーブル（Ｔ０〜Ｔ４）を備える。それぞれのエントリは、相互接続手段（Ｎ）の利用可能帯域幅の一部分に対応する。複数のスロット・テーブル（Ｔ０〜Ｔ４）のうちの第１のスロット・テーブルは、複数のスロット・テーブル（Ｔ０〜Ｔ４）のうちの第２のスロット・テーブルに関係する複数のエントリのうちの少なくとも１つの第１のエントリを含む。
2008543151.tif 000002
【特許請求の範囲】
【請求項１】
電子デバイスであって、
複数の処理モジュールを結合して前記処理モジュール間で通信を行なえるようにするための相互接続手段と、
前記相互接続手段を前記複数の処理モジュールのうちの１つに結合するための複数のネットワーク・インターフェイスと、
タイム・スロットを前記相互接続手段のチャネルに割り当てるための少なくとも１つのタイム・スロット割り当てユニットであって、複数のスロット・テーブルを備え、それぞれのテーブルは複数のエントリを含み、それぞれのエントリは前記相互接続手段の前記利用可能な帯域幅の一部に対応する、少なくとも１つのタイム・スロット割り当てユニットと、を備え、
前記複数のスロット・テーブルのうちの第１のスロット・テーブルは、前記複数のスロット・テーブルのうちの第２のスロット・テーブルに関係する前記複数のエントリのうちの少なくとも１つの第１のエントリを含む電子デバイス。
【請求項２】
前記第１のスロット・テーブルの前記複数のエントリのうちの前記第１のエントリは、前記第２のスロット・テーブル内のすべてのエントリが前記第１のエントリに関連付けられている帯域幅の前記一部分において割り当てられるように前記第２のスロット・テーブルに関係する請求項１に記載の電子デバイス。
【請求項３】
前記タイム・スロット割り当てユニットの少なくとも１つは、前記複数のネットワーク・インターフェイスのうちの少なくとも１つの中に配列される請求項１または２に記載の電子デバイス。
【請求項４】
前記相互接続手段は、複数のルータを備え、前記複数のタイム・スロット割り当てユニットのうちの少なくとも１つは、前記複数のルータのうちの少なくとも１つの中に配列される請求項１に記載の電子デバイス。
【請求項５】
前記複数のスロット・テーブルは、循環シフト・メモリとして実装される請求項２に記載の電子デバイス。
【請求項６】
前記複数のスロット・テーブルのうちの少なくとも１つは、前記スロット・テーブル内のエントリが第２のスロット・テーブルに関係する第１のエントリまたは終端タイム・スロットである第２のエントリに対応するかどうかを示す追加のビットを含む請求項２に記載の電子デバイス。
【請求項７】
前記スロット・テーブルは、前記スロット・テーブルを互いに積み上げることによりメモリ内に配列される請求項１または２に記載の電子デバイス。
【請求項８】
処理モジュール間の通信を可能にするために相互接続手段に結合された複数のネットワーク・インターフェイスを備える電子デバイス内で通信リソースを割り当てる方法であって、
複数のスロット・テーブルを使用して前記相互接続手段のチャネルにタイム・スロット
割り当てることを含み、それぞれのスロット・テーブルは複数のエントリを含み、それぞれのエントリは前記相互接続手段の前記利用可能な帯域幅の一部分に対応し、前記複数の
スロット・テーブルのうちの１つの前記複数のエントリのうちの１つは、前記複数のスロット・テーブルのうちの第２のスロット・テーブルに関係する方法。
【請求項９】
データ処理システムであって、
複数の処理モジュールと、
請求項１から７のいずれかに記載の電子デバイスと、を備えるデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の処理モジュールおよび複数の処理モジュールを結合するための相互接続手段を備える電子デバイスに関するとともに、そのような電子デバイス内の通信リソース割り当ての方法にも関する。
【背景技術】
【０００２】
システム・オン・シリコンは、新しい機能の実装および既存の機能の改良の必要性が一段と高まっていることで複雑性が継続的に増大することを示している。これは、集積回路にコンポ-ネントが集積されうる密度を高めることにより可能になる。それと同時に、回
路が動作するクロック速度も高くなる傾向がある。コンポーネントの密度の増大と相まって、クロック速度が高くなるほど、同じクロック・ドメイン内で同期して動作しうる領域が縮小された。このことからモジュール方式の必要性が生じた。このような方式により、処理システムは、複数の比較的独立した複合モジュールを備える。従来の処理システムでは、システム・モジュールは、通常、バスを介して互いに通信し合う。しかし、モジュールの数が増えるにつれ、この通信様式は、以降の理由から、もはや実用的ではなくなっている。一方で、モジュール数の増大は、バスに過度に高い負荷をかけ、バスは、１つのデバイスしかデータをバスに送り出せないことから通信のボトルネックとなる。
【０００３】
通信ネットワークは、これらの欠陥を解消する効果的な手段を形成する。ネットワーク・オン・チップ（ＮｏＣ）は、近年、非常に複雑なチップにおける相互接続の問題に対する解決方法としてかなりの注目を集めている。理由は２つある。第１に、ＮｏＣは、グローバル・ワイヤを構造化し、管理するので、新しい深サブミクロン技術における電気的問題を解決するのに役立つ。それと同時に、配線を共有することで、線の本数を減らし、利用度を高める。ＮｏＣは、エネルギー効率および信頼性が高い可能性もあり、バスに比較して拡張性がある。第２に、ＮｏＣでは、さらに、計算を通信から切り離すが、これは、１０億ものトランジスタ・チップの設計を管理するうえで本質的である。ＮｏＣは、従来からプロトコル・スタックを使用して設計されているため、このような切り離しを実現しており、通信サービス使用をサービス実装から分離する明確に定義されたインターフェイスを形成する。
【０００４】
ネットワークをオンチップ相互接続として導入すると、バスまたはスイッチなどの直接相互接続と比較したときに、通信を根本的に変える。これは、通信モジュールが直接的に接続されないが、１つまたは複数のネットワーク・ノードにより遠隔分離される、ネットワークのマルチホップ性によるものである。これは、モジュールが直接的に接続される広く使用されている既存の相互接続（つまり、バス）とは対照的である。この変化の意味はアービトレーション（集中型から分散型に変化しなければならない）および通信特性（例えば、順序付け、またはフロー制御）にあり、知的所有権ブロック（ＩＰ）またはネットワークのいずれかにより取り扱われなければならない。
【０００５】
ネットワーク・オン・チップ（ＮｏＣ）は、典型的には、複数のルータおよびネットワーク・インターフェイスからなる。ルータは、ネットワーク・ノードとしての機能を果たし、静的（つまり、経路は予め決定されており、変化しない）にまたは動的（つまり、経路は、例えばホットスポットを回避するためＮｏＣ負荷に応じて変化しうる）に、データを正しい経路で送信先に送ることにより、データを送信元ネットワーク・インターフェイスから送信先ネットワーク・インターフェイスにトランスポートするために使用される。ルータは、さらに、時間保証も実装できる（例えば、転送速度に基づくか、期限に基づくか、またはＴＤＭＡ方式でパイプライン化された回路を使用する）。ルータのアーキテクチャに関する詳細は、エドウィン・リィジプケマ［Edwin Rijpkema］、キース・グセンス［Kees Goossens］、ポール・ウィリッジ［Paul Wielage］著、「シリコン上のネットワーク用ルータ・アーキテクチャ［A router architecture for networks on silicon］」、２００１年１０月プログレス記載（In PROGRESS, October 2001）に見られる。
【０００６】
ネットワーク・インターフェイスは、何らかの種類のデータ処理ユニットを表していてもよいし、またはメモリ、ブリッジなどであってもよい、ＩＰブロック（知的所有権）に接続される。特に、ネットワーク・インターフェイスは、ＩＰブロックとネットワークとの間の通信インターフェイスとなる。インターフェイスは、通常、既存のバス・インターフェイスと互換性を有する。したがって、ネットワーク・インターフェイスは、データ・シーケンシャル化（与えられたコマンド、フラグ、アドレス、およびデータを固定幅（例えば、３２ビット）信号群に収める）とパケット化（ネットワークにより内部的に必要とされるパケット・ヘッダおよびトレーラを追加する）を取り扱うように設計される。ネットワーク・インターフェイスは、タイミング保証およびアドミッション制御を含むことができる、パケット・スケジューリングも実装することができる。
【０００７】
オンチップ・システムでは、その相互接続通信にタイミング保証を必要とすることが多い。したがって、スループット、待ち時間、およびジッタが保証される、あるクラスの通信が行われる。異なるトラフィック・クラスを識別し、特性をそれらのクラスに関連付けるために、接続が使用される。
【０００８】
時間関係の保証（つまり、スループット、待ち時間、およびジッタ）を行う費用効果の高い方法は、厳しい同期条件を有するシステム・オン・チップ（ＳｏＣ）上の転送速度に基づく、また期限に基づく方式と比べて少ないバッファ領域で済むため有利である、ＴＤＭＡ（時分割多元接続）方式によりパイプライン化された回路を使用することである。
【０００９】
典型的には、ネットワーク・インターフェイスは、エントリが循環的に読み取られるスロット・テーブルを備える。エントリがチャネルに対し予約されている場合、そのチャネルに対するデータは、ネットワークに入ることが許される。スロット・テーブル内のエントリの割り当ては、データ要素が衝突しないように実行される、つまり、非衝突経路指定方式が適用される。
【００１０】
それぞれのスロットにおいて、データ項目は、１つのネットワーク・コンポーネントから次のネットワーク・コンポーネントへ、つまり、ルータ間で、またはルータとネットワーク・インターフェイスとの間で移動される。したがって、スロットが出力ポートで予約されている場合、マスター・モジュールとスレーブ・モジュールとの間の経路にそって続く出力ポート上で以降のスロットが予約され、さらに次のスロット、というように予約されていかなければならない。
【００１１】
タイミング保証のある複数の接続が設定された場合、スロット割り当ては、衝突が生じないように（つまり、複数の接続に割り当てられたスロットがないように）実行されなければならない。与えられたネットワーク・トポロジ、つまり与えられた数のルータおよびネットワーク・インターフェイス、およびＩＰブロック間の一組の接続に対する最適なスロット割り当てを見つける作業は、相当な計算時間を必要とする最適解を見つけることを伴うので非常に計算量の多い問題である。
【００１２】
図６は従来技術によるネットワーク・オン・チップの一部のブロック図を示している。ここで３つのネットワーク・インターフェイスＮＩ１〜ＮＩ３と２つのルータＲ１，Ｒ２が示されている。ネットワーク・インターフェイスＮＩ１〜ＮＩ３は２つのルータＲ１，Ｒ２に接続される。システムは７つのチャネルを備え、そのうち４つのチャネルａ，ｂ，ｃおよびｄは、第１のネットワーク・インターフェイスＮＩ１から第３のネットワーク・インターフェイスＮＩ３に至り、３つのチャネルｋ、ｌおよびｍは、第２のネットワーク・インターフェイスＮＩ２から第３のネットワーク・インターフェイスＮＩ３に至る。
【００１３】
ネットワーク・インターフェイスとルータとの間のリンクＬ１〜Ｌ４のそれぞれは、２つのスロット・テーブルに関連付けられる。スロット・テーブルＳＴ１１，ＳＴ２１，ＳＴ３１およびＳＴ４１はそれぞれ、９つのスロットを備えるが、スロット・テーブルＳＴ１２，ＳＴ２２，ＳＴ３２およびＳＴ４２はそれぞれ、１６個のスロットを備える。
【００１４】
チャネルに対するリンク容量の一部分に関する帯域幅要件は、Ｂａ＝５／１６、およびＢｂ＝Ｂｃ＝Ｂｄ＝Ｂｋ＝Ｂｌ＝Ｂｍ＝１／１６であると仮定される。第２のルータＲ２から第３のネットワーク・インターフェイスＮＩ３へのリンクＬ２は、７つの接続すべてに対応できる必要があるので、ネットワーク・インターフェイスおよびルータに関連付けられたスロット・テーブルＳＴ２１，ＳＴ２２内に少なくとも７つのスロットが必要である。
【００１５】
スロット・テーブルＳＴ１〜ＳＴ３２がそれぞれＳ個のスロットを含む場合、それらのスロットのうちの６つのスロットは６つのチャネルｂ〜ｍに対し予約される必要がある。したがって、チャネルＡについて残されたスロットの数はＳ−６であり、チャネルａについて予約されている帯域幅の一部分は、Ｓ−６／Ｓであり、これは、５／１６の帯域幅という指定された要件よりも大きいかまたは等しい値であるべきである。したがって、Ｓは少なくとも９でなければならない。Ｓ個のスロットを持つスロット・テーブル内のｓ個のスロットの予約の結果、リンクの全帯域幅容量のｓ／Ｓである一部分が得られる。
【００１６】
９つのスロット・テーブルが選択された場合、スロットの最低量が割り当てられることができる。利用可能な帯域幅の一部はすべてのスロットが占有されるため無駄になるが、リンク帯域幅の１１／１６のみが実際に必要である、つまり、帯域幅の無駄は、３０％を超える。しかし、１６個のスロットを持つスロット・テーブルが選択された場合、帯域幅の無駄は回避されるが、スロット・テーブルが大きいほどスロット・テーブルに関してコストが高くなる。
【発明の開示】
【発明が解決しようとする課題】
【００１７】
本発明の目的は、通信リソースが改善され、費用効果の高い割り当てを伴う通信リソース割り当て電子デバイスおよび方法を実現することである。
【課題を解決するための手段】
【００１８】
この目的は、請求項１に記載の電子デバイスおよび請求項８に記載の通信リソース割り当て方法により解決される。
【００１９】
したがって、複数の処理モジュールを結合して処理モジュール間で通信を行えるようにするための相互接続手段を備える電子デバイスが実現される。電子デバイスは、さらに、相互接続手段を複数の処理モジュールのうちの１つに結合するための複数のネットワーク・インターフェイスを備える。さらに、少なくとも１つのタイム・スロット割り当てユニットが、タイム・スロットを相互接続手段のチャネルに割り当てるために用意される。タイム・スロット割り当てユニットは、複数のエントリを持つ複数のスロット・テーブルを備える。それぞれのエントリは、相互接続手段の利用可能帯域幅の一部分に対応する。複数のスロット・テーブルのうちの第１のスロット・テーブルは、複数のスロット・テーブルのうちの第２のスロット・テーブルに関係する複数のエントリのうちの少なくとも１つの第１のエントリを含む。
【００２０】
スロット・テーブルに階層を導入することにより、さまざまな量の帯域幅が、タイム・スロットに割り当てられうる。それに応じて、帯域幅の無駄が、著しく低減されうる。
【００２１】
本発明の一態様によれば、第１のエントリにより参照される第２のスロット・テーブルのすべてのエントリは、第１のエントリに関連付けられている帯域幅の一部分に割り当てられる。
【００２２】
本発明のさらなる態様によれば、タイム・スロット割り当てユニットは、効率的なタイム・スロット割り当て機構を形成するようにネットワーク・インターフェイス内に配列されうる。
【００２３】
本発明のさらなる態様によれば、相互接続手段は、複数のルータを備える。これらのルータのうちの少なくとも１つは、タイム・スロット割り当て機構をさらに改善するためにタイム・スロット割り当てユニットを備える。
【００２４】
本発明は、システム・オン・チップ内に配列されたスロット・テーブル内に階層を導入するアイデアに関係する。これは、異なる量の帯域幅がスロット・テーブル内のスロットに割り当てられるか、または関連付けられうるようにスロット・テーブルを入れ子にすることにより実行されうる。したがって、チャネルの必要な帯域幅は、異なる帯域幅を持つスロットを使用することにより割り当てられうる。
【００２５】
本発明の他の態様は、従属請求項において定義される。
【発明を実施するための最良の形態】
【００２６】
次に、本発明は、図面を参照しつつさらに詳しく説明される。
【００２７】
以降の実施形態は、システム・オン・チップに関係する、つまり、同じダイ、複数のダイ上（例えば、パッケージ内のシステム）、または、複数のチップ上の複数のモジュールが、ある種の相互接続を介して互いに通信し合う。相互接続は、ネットワーク・オン・チップＮｏＣとして具現化される。ネットワーク・オン・チップは、配線、バス、時分割多重化、スイッチ、および／またはルータをネットワーク内に備えることができる。前記ネットワークのトランスポート層におけるモジュール間の通信は接続を介して実行される。接続は、一組のチャネルとして考えられ、それぞれのチャネルは第１のモジュールと少なくとも１つの第２のモジュールとの間の一組の接続特性を有する。第１のモジュールと単一の第２のモジュールとの間の接続のために、接続は、２つのチャネル、つまり、第１のモジュールから第２のモジュールへのチャネル、つまり要求チャネルと、第２のモジュールから第１のモジュールへの第２のチャネル、つまり、応答チャネルとを備えることができる。したがって、ネットワークを介した接続または接続の経路、つまり、接続経路は、少なくとも１つのチャネルを備える。言い換えると、チャネルは、ただ１つのチャネルが使用される場合にその接続の接続経路に対応する。上述のように２つのチャネルが使用される場合、一方のチャネルは、例えば、マスターからスレーブへの接続経路を実現し、第２のチャネルは、スレーブからマスターへの接続経路を実現する。したがって、典型的な接続に関して、接続経路は２つのチャネルを備えることになる。接続特性は、順序付け（データ・トランスポートを順序正しくする）、フロー制御（リモート・バッファが接続用に予約され、データ・プロデューサは、生成されたデータ用に領域が利用可能であることが保証される場合に限りデータを送信することが許される）、スループット（スループットに対する下限が保証される）、待ち時間（待ち時間に対する上限が保証される）、損失［lossiness］（データの消失）、伝送終了、トランザクション完了、データ正確さ、優先度、またはデータ配送を含むことができる。
【００２８】
図１は、本発明によるネットワーク・オン・チップの一般的アーキテクチャのブロック図を示している。システムは、それぞれネットワーク・インターフェイスＮＩを介してネットワークＮに接続されている複数のいわゆる知的所有権ブロックＩＰ、ＩＰ１〜ＩＰ５（計算要素、メモリ、または相互接続モジュールを内部的に備えることができるサブシステム）を備える。ネットワークＮは、それぞれのネットワーク・リンクを介して隣接するルータに接続される、複数のルータＲ１〜Ｒ５を備える。
【００２９】
ネットワーク・インターフェイスＮＩ１〜ＮＩ５は、ＩＰブロックＩＰ１〜ＩＰ５とネットワークＮとの間のインターフェイスとして使用される。ネットワーク・インターフェイスＮＩ１〜ＮＩ５は、それぞれのＩＰブロックＩＰ１〜ＩＰ５とネットワークＮの通信を管理するために用意され、これにより、ＩＰブロックＩＰ１〜ＩＰ5は、ネットワークＮまたは他のＩＰブロックとの通信に関わらなくてもそれ専用動作を実行することができる。ＩＰブロックＩＰ１〜ＩＰ５は、マスターとして動作する、つまり要求を開始することができるか、またはスレーブとして動作する、つまりマスターから要求を受け取り、要求をそれに応じて処理することができる。
【００３０】
図２は、図１によるネットワーク・オン・チップ内の接続および基本スロット割り当てのブロック図を示す。特に、ＩＰブロックＩＰ4とＩＰ２との間の接続が示されている。この接続は、ＩＰブロックＩＰ４に関連付けられているネットワーク・インターフェイスＮＩ４、２つのルータＲ２、Ｒ２、およびＩＰブロックＩＰ２に関連付けられているネットワーク・インターフェイスＮＩ２により実現される。ネットワーク・インターフェイスＮＩ４は、タイム・スロット割り当てユニットＳＡを備える。代替えとして、またはそれに加えて、ネットワーク・インターフェイスＮＩ２、およびルータＲ２とＲ４は、また、タイム・スロット割り当てユニットＳＡを備えることができる。第１のリンクＬ１は、ネットワーク・インターフェイスＮＩ４とルータＲ４との間に存在し、第２のリンクＬ２は２つのルータＲ４、Ｒ２の間に存在し、第３のリンクＬ３は、ルータＲ２とネットワーク・インターフェイスＮＩ２との間に存在する。それぞれのネットワーク・コンポーネントの出力ポートに対する３つのスロット・テーブルＳＴ１〜ＳＴ３も示されている。これらのスロット・テーブルは、好ましくは、ネットワーク・インターフェイスとルータに似たネットワーク要素の出力側、例えばデータ出力側に実装される。それぞれの要求されたスロットについて、１つのスロットが接続経路上のリンクのそれぞれのスロット・テーブル内で予約される。これらすべてのスロットは、空いていなければならない、つまり、他のチャネルにより予約されていてはならない。データは一方のネットワーク・コンポーネントからスロットｓ＝１から始まる他のそれぞれのスロットへ進むので、接続にそった次の
スロットは、スロットｓ＝２で予約され、次いでスロットｓ＝３で予約されなければならない。
【００３１】
タイム・スロット割り当てユニットＳＡにより実行されるスロット割り当て決定に対する入力は、相互接続を有するネットワーク・コンポーネントに似たネットワーク・トポロジ、スロット・テーブル・サイズ、および接続集合である。すべての接続について、その経路とその帯域幅、待ち時間、ジッタ、および/またはスロット要件が与えられる。接続は、少なくとも２つのチャネルまたは接続経路（マスターからスレーブへの要求チャネルと、スレーブからマスターへの応答チャネル）からなる。連結するこれらのチャネルはそれぞれ、個別の経路上で設定され、異なる帯域幅、待ち時間、ジッタ、および／またはスロット要件を有する異なるリンクを備えることができる。時間関係の保証を与えるため、リンクに対しスロットが予約されなければならない。異なるスロットは、ＴＤＭＡを使って異なる接続に対し予約されうる。次いで、接続に関するデータが連続するスロットにおける接続に従って連続するリンク上で転送される。
【００３２】
図３は、第１の実施形態によるスロット・テーブルの基本表現を示している。ここで、スロット・テーブル・ユニットＳＴＵは、スロット割り当てユニットＳＡ内に配列されることができ、入れ子になった、または交互に配置された２つのスロット・テーブルＴ１、Ｔ２を備える。２つのスロット・テーブルＴ１、Ｔ２は、それぞれ４つのスロットを備える。ｉ１は、ｉ１＝０，１，２，３として第１のスロット・テーブルＴ１内のもＩ１ＴＨスロットＴ１（ｉ１）を示す。ｉ２は、第２のスロット・テーブルＴ２内のスロットを示す。
【００３３】
スロット・テーブルＴ１、Ｔ２内のスロットは、いずれも、終端スロットまたは入れ子になった他のスロット・テーブルに関係する。第１のスロット・テーブルＴ１のスロット（最高レベルにある）は、循環的に横断される、つまり、第１のスロット・テーブルＴ１内のスロットのそれぞれは、同じ長さの時間としたがって帯域幅に関連付けられる。スロットが終端スロットに対応する場合、対応するチャネル（またはチャネルを指すチャネル・エントリ）（スロットに関連付けられる）は、ネットワークにアクセスすることができる。しかし、現在のスロットがスロット・テーブル（ここでは、第２のスロット・テーブルＴ２）に関連付けられている場合、第２のスロット・テーブルＴ２のスロットは、第１のスロット・テーブルＴ１（上で入れ子構造に入っている）が１サイクル完了する毎に循環的に横断される。したがって、入れ子の深さがｎであるスロット・テーブル内のスロットは、入れ子の深さｎ−１で単一スロットの帯域幅を分割する。
【００３４】
第１のスロット・テーブルＴ１は、スロットのそれぞれが利用可能な全リンク帯域幅の１／４を占める、４つのスロットを含む。終端スロットＴ１（１）、Ｔ２（２）、およびＴ１（３）（それら自体に関係する）は、チャネルａ、ｂ、およびcに割り当てられるまたは関連付けられる、つまり、これらのチャネルのそれぞれが、利用可能な全リンク帯域幅の１／４を有する。スロットＴ１（０）は、第２のスロット・テーブルＴ２に関連付けられる、つまり、スロット・テーブルは、第２のスロット・テーブルＴ２に対し入れ子にされる。したがって、スロット・テーブルＴ２全体は利用可能なリンク帯域幅の１／４を有し、したがって、ｉ２＝０，１，２，３に対するスロットＴ２（ｉ２）のそれぞれが、利用可能な第２のスロット・テーブルＴ２全体の帯域幅の１／４を有する。そのためチャネルｄ、ｆ、およびｇはそれぞれ、利用可能なリンク帯域幅の１／１６を有する。
【００３５】
時間の関数としてのリンク帯域幅の割り当ては、チャネルに割り当てられた以降の可能なシーケンスにより示される。
時間：  ０  １  ２  ３  ４  ５  ６  ７  ８  ９  10  11  12  13  14  15  …
チャネル：  ｄ  ａ  ｂ  ｃ  ｅ  ａ  ｂ  ｃ  ｆ  ａ  ｂ  ｃ  ｇ  ａ  ｂ  ｃ  …
【００３６】
第２のスロット・テーブルＴ２は、第１のエントリＴ１（０）および第２のテーブルＴ２（チャネルｄが選択される）の第１のエントリＴ２（０）について参照される。次に、チャネルａ、ｂ、およびcが順次選択される。第１のスロット・テーブルＴ１の第２のサイクルにおいて次回、第２のスロット・テーブルＴ２は、再び第１のテーブルＴ１の第１のエントリ（Ｔ１（０））から参照される。次いで、アービターは、第２のエントリＴ２（１）、つまり、第２のテーブルＴ２のチャネルｅを選択する。
【００３７】
したがって、スロット・テーブル・ユニットＳＴＵ（入れ子になったテーブルにより構成される）は、単一のスロット・テーブルと同じ動作をする。したがって、スロット割り当ては、入れ子になったスロット・テーブルなしのスロット・テーブル・ユニットの場合と同様に実行されることができ、その際に、スロットの位置に関する付加的制約条件のみが存在する。例えば、スロットが帯域幅の１／１６を割り当てられるべきである場合、スロット０、４、８、または１２は、上述のように折り畳まれたスロット・テーブル内に必要である。さらに、リンク帯域幅の１／４を持つスロットが必要な場合、スロットは、スロット・テーブル内に周期的に（周期４で）割り当てられる必要がある。
【００３８】
それに加えて、または代替えとして、同じ低いレベルのスロット・テーブルへの複数のスロット点が可能である。これらのスロットは、同じテーブル内に、または同じレベルにすらある必要はない。
【００３９】
図４は、第２の実施形態によるスロット・テーブル・ユニットの表現を示す。スロット・テーブル・ユニットＳＴＵは、入れ子方式で相互接続されている、５つのスロット・テーブルＴ０、Ｔ１、Ｔ２、Ｔ３、およびＴ４を備える。言い換えると、入れ子構造は、スロット・テーブル毎に物理メモリとともに固定される。メモリＭは、アドレスａｄｄｒによりアドレス指定され、チャネルはＭ（ａｄｄｒ）により示される。メモリのサイズは、「ｓｉｚｅ」で表される。スロット・テーブルのそれぞれは、そのテーブルが親スロット・テーブルから入れ子にされたアドレスを示すポインタ「ｐａｒｅｎｔ  ｔｏ−ａｄｄｒ」を含む。
【００４０】
図４の左側に、５つのスロット・テーブルＴ０〜Ｔ４の論理表現が論理的入れ子構造とともに示されている。図４の右側に、入れ子構造を実装するスロット・テーブル・ユニットＳＴＵのアーキテクチャが示されている。スロット・テーブルのそれぞれは、２つの入力、つまり、active_inとaddr_in、さらに３つの出力、つまりactive_out、addr_out、およびchannel_idを含む。Active_in/active_outは、入れ子構造を示すが、addr_in/addr_outは、スロット・テーブル内のアドレスに対応する。出力channel_idは、それぞれのチャネルのＩＤに対応する。第１のスロット・テーブルＴ０内のスロットＴ０（０）は第２のスロット・テーブルＴ１に関連付けられる。第１のスロット・テーブルＴ１のスロットＴ０（１）は第３のスロット・テーブルＴ２に関連付けられる。スロットＴ２（０）は第４のスロット・テーブルＴ３に関連付けられる。スロットＴ２（２）は、第５のスロット・テーブルＴ４に関連付けられる。
【００４１】
テーブルは、その親スロット・テーブルがアクティブである場合に、また親スロット・テーブルが入れ子になったスロット・テーブルを指しているときに、アクティブになる。出力channel_ID＝０は、スロット・テーブル内のスロットがさらなる入れ子になっているスロット・テーブルに関連付けられることを示すことができる。好ましくは、ルート・テーブルからリーブ・テーブルまでの、ただし必ずしもリーブ・テーブルまで達するわけではないアクティブ・スロット・テーブルの単一の経路が存在する。経路内の最後のスロット・テーブルを除くアクティブ・スロット・テーブルは、ゼロの出力channel_IDを含む。したがって、出力channel_IDがゼロに等しくない１つのアクティブ・スロット・テーブルは、常に存在する。
【００４２】
第２の実施形態によりスロット・テーブル・ユニットを実装する擬似コードが以降に示
されている。
SlotTable（parent_addr）:
IN active_in
IN addr_in
OUT active_out
OUT addr_out
OUT channel_id
addr_out=0;
foreach（slot_tick）
active_out <=active_in（addr_in = parent_addr）;
channel_id <=M（addr）* active_out;
addr_out = addr_out ＋ active_out（mod size）;
【００４３】
スロット・テーブル・ユニットへの入力は、addr_inにおけるactive_inであり、出力はactive_out、addr_out、およびchannel_idである。さらに、addr_outは、ゼロに設定される。Active_outがactive_in以下であり、addr_inがparent_addrに対応し、channel_idがM（addr）* active_out以下である場合、addr_outは、mod sizeのaddr_out＋active_outに対応する。
【００４４】
メモリ・サイズが小さい、小さなプログラミング粒度が要求される場合、それぞれのスット・テーブルに対する専用のランダム・アクセス・メモリの使用は、最適解とならな第２の実施形態に基づいていてもよい第3の実施形態によれば、スロット・テーブル・ニットは、循環シフト・メモリを使用して実装される。したがって、シフト・メモリの容は、１つの場所についてシフトされる。シフト・メモリからシフトアウトされるデーは、メモリの他端にシフトインされる。このようなシフト・メモリを使用することで、ンダム・アクセス・メモリに必要なアドレス指定論理回路が回避されうる。したがって、第３の実施形態によるスロット・テーブル・ユニットのアーキテクチャは、第２の実施態によるスロット・テーブル・ユニットのアーキテクチャに対応する。第３の実施形態よるスロット・テーブル・ユニットは、以降の疑似コードにより実装されうる。
SlotTable（parent_addr）:
IN active_in
IN addr_in
OUT active_out
OUT addr_out
OUT channel_id
addr_out=0
foreach（slot_tick）
active_out <= active_in and（addr_in = parent_addr）;
channel_id <=  M(0）＋ active_out;
M <= shift (M)
addr_out = addr_out ＋ active_out（mod size）;
【００４５】
出力addr_outは、まだ存在しているけれどもメモリのアドレス指定には使用されず、比較のためスロット・テーブル内で使用される。シフト・メモリ内のデータをシフトする代わりに、これは、増分アドレス指定専用のメモリによっても実装されうる。
【００４６】
第２または第３の実施形態に基づいていてもよい第4の実施形態によれば、メモリは、加ビットを使用して実装されうる。このような付加的または追加のビットは、スロット・テーブル内のスロットがリーブもしくは終端スロットまたは他のスロット・テーブルヘのポインタであるかどうかを示すことができる。このようなスロット・テーブル内の他のビットは、付加的ビットの値に応じてchannel_IDまたはスロット・テーブルＩＤに対応しうる。次いで、スロット・テーブルＩＤは、比較すべき子テーブルまたは入れ子になったテーブルにおいて使用されることができる。したがって、このような方式は、同じ子テーブルを参照する複数のスロットを許容する。
【００４７】
図５は、第５の実施形態によるスロット・テーブル・ユニットの表現を示す。第５の実施形態は、第２の実施形態に基づいているが、その一方で単一のランダム・アクセス・メモリのみが使用される。接続ＩＤを含むスロット・テーブル毎の異なる物理メモリは、スロット・テーブル内の現在のスロットが入れ子になっているか（０）または入れ子になっていないか（１）を表すベクトルＶ指標によりスロット・テーブル内において置き換えられる。状態、つまりブロック内部のベクトルＶのローカル・アドレスは、図４の第２の実施形態における状態に対応する。単一メモリは、スロット・テーブルＴ０〜Ｔ４をメモリ内で積み上げることにより達成される。これは、図６の左側に示されている。スロット・テーブルＴ０〜Ｔ４内のそれぞれのエントリは、０から１７までのアドレスaddrに対応する。値cumulative_table_sizeは、現在のテーブルの前の単一メモリ内に埋め込まれているスロット・テーブルのサイズの合計に対応する。スロット・テーブルＴ０〜Ｔ４に対するその値は、それぞれ０、４、８、１１、および１４に対応する。「the_address」の値が１である唯一のスロット・テーブルは、ローカル出力アドレスaddr_outが１である第３のスロット・テーブルである。したがって、アドレスaddrは９に等しい。このアドレスは、７の接続ＩＤに対応する。
【００４８】
スロット・テーブル・ユニットは、以下の疑似コードにより実装されうる。
AddressUnit（parent_addr）:
IN active_in
IN addr_in
OUT active_out
OUT addr_out
OUT the_address
Addr_out=0;
foreach（slot_tick）
active_out <= active_in and（addr_in = parent_addr）;the_address <= (cumulative_table_size＋addr_out)* (v(addr_out) and active_out）;
addr_out = addr_out ＋ active_out（mod size）;
【００４９】
「ｏｒ」演算の出力アドレスaddr_outは、単一メモリに対するアドレスに対応する。
【００５０】
第２から第５までの実施形態によるスロット・テーブル・ユニットは、高速な転送速度でも新しい接続ＩＤが容易に計算可能なようにアドレスの高速計算を可能にするので有利である固定構造に基づく。
【００５１】
本発明の第６の実施形態によれば、スロット・テーブル・ユニットは、スロット・テーブルの入れ子のプログラム可能な構造に基づく。例えば、メモリが１６個の場所を有する場合、そのようなメモリは、８つのスロットからなるテーブル２つ、４つのスロットからなるテーブル４つなどに分割されるとよい。スロット・テーブル・ユニットの構造がプログラムされるべきである場合、単一メモリをアドレス指定する順序でアドレスの計算を行なうことは、現在ではさらに困難である。
【００５２】
cumulative_cable_sizeの値は、ハードワイヤまたはハードコードされており、これらのユニット間の相互接続は、固定される。第１の再インデックス付けは、テーブル１を指し、第２の再インデックス付けは、テーブル２を指し、というようになる。好ましくは、テーブルへの柔軟なポインタはない。ポインタは、ハードワイヤされる。
【００５３】
通常、必要なアドレスの計算は１クロック・サイクル以内に実行されなくてもよいが、複数クロック・サイクルにわたりうるスロットの持続時間以内に実行されなければならない。
【００５４】
スロット・テーブル・ユニットの上述の原理は、特にネットワーク・オン・チップ・インフラストラクチャを有するシステム・オン・チップに適用されることが可能である。さまざまな帯域幅要件を有し、低コストで実装される必要のあるシステム・オン・チップは上記の実施形態によりスロット・テーブル・ユニットを大いに活用することができる。このようなシステムの一例は、モバイル・デバイス内のオーディオ／ビデオ処理である。
【００５５】
上記の実施形態では、ネットワーク・オン・チップは、相互接続として説明されているが、本発明の原理は、バスまたはスイッチのような他の相互接続にも適用されうる。さらに、上記の実施形態では、通信は、時分割多元接続（ＴＤＭＡ）に基づいて説明されているが、転送速度に基づく通信またはそれぞれの通信もしくは接続に利用可能な帯域幅を分割する可能な他の通信など、他の通信も可能である。
【００５６】
本発明は、入れ子になったスロット・テーブルの実現に関係する。入れ子になったスロット・テーブルでは、テーブル・エントリは、スロットであるか、または次のもしくは続くスロット・テーブルを参照してもよい。入れ子になったテーブルのうちの１つの中の割り当てられたエントリの帯域幅は、そのようなエントリの入れ子深さに依存する。したがって、必要な中くらいの数のスロットのみで細かい粒度が得られようにすることができ、これにより、帯域幅は、同じスロット・テーブル・コストに関して節約されうるか、またはスロット・テーブル・コストは、同じ大きさの割り当てられた帯域幅について低減されうる。
【００５７】
上述の実施形態は、本発明を制限するのではなく例示しているのであり、当業者であれば、付属の請求項の範囲から逸脱することなく多くの代替え実施形態を設計することができることに留意するべきである。請求項ではかっこ内に入っている参照記号は、請求項を制限するものとして解釈すべきではない。「含む、備える」という言葉を使用しても、請求項内に示されている要素またはステップ以外の要素またはステップの存在を除外しない。原文で、要素の前に「ａ（１つ、ある）」という単語があっても、複数のそのような要素の存在を除外しない。複数の手段を列挙しているデバイス請求項において、これらの手段のうちのいくつかは、同一のハードウェア品により具現化されうる。いくつかの尺度が相互に異なる従属請求項において参照されている単なる事実は、これらの尺度の組み合わせが有利に使用されえないことを示さない。
【００５８】
さらに、請求項内の参照記号は、請求項を制限するものとして解釈すべきではない。
【図面の簡単な説明】
【００５９】
【図１】本発明によるネットワーク・オン・チップの基本構造のブロック図を示す図である。
【図２】図１によるネットワーク内の接続のための基本スロット割り当てのブロック図を示す図である。
【図３】第１の実施形態によるスロット・テーブルの基本表現を示す図である。
【図４】第２の実施形態によるスロット・テーブル・ユニットの表現を示す図である。
【図５】第３の実施形態によるスロット・テーブル・ユニットの表現を示す図である。
【図６】従来技術によるネットワーク・オン・チップの一部のブロック図である。
【図１】
2008543151.tif 000003
【図２】
2008543151.tif 000004
【図３】
2008543151.tif 000005
【図４】
2008543151.tif 000006
【図５】
2008543151.tif 000007
【図６】
2008543151.tif 000008
【国際調査報告】
2008543151.tif 000009
2008543151.tif 000010
2008543151.tif 000011
2008543151.tif 000012
2008543151.tif 000013