(57)【要約】  複数の第１の共有されたリソースＳＲ１−ＳＲ４と、それぞれが前記複数の第１の共有されたリソースＳＲ１−ＳＲ４の少なくとも１つについて調停を実行するための複数の調停ユニットＡＡＵ１−ＡＡＵ４と、を有する電子装置が提供される。前記調停ユニットＡＡＵ１−ＡＡＵ４間の通信は非同期に実行され、前記第１の共有されたリソース間のデータ通信は非同期に実行される。各前記調停ユニットＡＡＵ１−ＡＡＵ４は、第１のグローバルな時間の基準を実装するため、少なくとも１つの隣接する調停ユニットＡＡＵ１−ＡＡＵ４に第１のトークンＴを送信し、少なくとも１つの隣接する調停ユニットＡＡＵ１−ＡＡＵ４から第２のトークンＴを受信するように構成される。
2008532169.tif 000002
【特許請求の範囲】
【請求項１】
複数の第１の共有されたリソースと、
それぞれが前記複数の第１の共有されたリソースの少なくとも１つについて調停を実行するための複数の調停ユニットと、
を有する電子装置であって、前記調停ユニット間の通信は非同期に実行され、前記第１の共有されたリソース間のデータ通信は非同期に実行され、
各前記調停ユニットは、第１のグローバルな時間の基準を実装するため、少なくとも１つの隣接する調停ユニットに第１のトークンを送信し、少なくとも１つの隣接する調停ユニットから第２のトークンを受信するように構成された、電子装置。
【請求項２】
前記調停ユニットは、全ての前記第１の共有されたリソースについて必要とされるエンド・ツー・エンドのサービスの品質を提供するために、グローバルな調停方式を実装するため、前記第１及び第２のトークンを送信するように構成された、請求項１に記載の電子装置。
【請求項３】
複数のポートと、
前記複数のポートを結合するための第１の共有されたリソースである非同期相互接続手段と、
を更に有し、前記相互接続手段は、それぞれが第２の共有されたリソースである複数の相互接続ユニットと、複数の調停ユニットと、を有し、前記複数の調停ユニットのそれぞれは、複数の前記第２の共有されたリソースの少なくとも１つについて調停を実行し、前記相互接続手段内の第２のグローバルな時間の基準を実装するため、少なくとも１つの隣接する調停ユニットへ第１のトークンを送信し、少なくとも１つの隣接する調停ユニットから第２のトークンを受信する、請求項１に記載の電子装置。
【請求項４】
前記調停ユニットは、前記複数のポート間で要求されるエンド・ツー・エンドのサービスの品質を提供するためグローバルな調停方式を実装するように動作する、請求項３に記載の電子装置。
【請求項５】
前記第１の共有されたリソースの少なくとも１つは通信リソース、記憶リソース及び／又は計算リソースである、請求項１に記載の電子装置。
【請求項６】
前記調停ユニットは、時分割多重アクセス方式、レート制御された調停、又はデッドライン調停に基づいて動作する、請求項１に記載の電子装置。
【請求項７】
前記調停ユニット又は前記第１及び／又は第２の共有されたリソースはＤ型ポートを有する、請求項１又は３に記載の電子装置。
【請求項８】
前記調停ユニット又は前記第１及び／又は第２の共有されたリソースはＰ型ポートを有する、請求項１又は３に記載の電子装置。
【請求項９】
前記調停ユニット又は前記第１及び／又は第２の共有されたリソースはＳ型ポートを有する、請求項１又は３に記載の電子装置。
【請求項１０】
前記相互接続ユニットは第２の共有されたリソースであり、ネットワークインタフェース、ルータ、ブリッジ及び／又はバスを有する、請求項３に記載の電子装置。
【請求項１１】
前記第１の共有されたリソースの少なくとも１つは、ネットワークインタフェース、ルータ、ブリッジ及び／又はバスを有する、請求項１に記載の電子装置。
【請求項１２】
前記第１の共有されたリソースの１つはメモリであり、前記調停ユニットはメモリコントローラである、請求項１に記載の電子装置。
【請求項１３】
前記第１の共有されたリソースの１つは計算ユニットであり、前記調停ユニットはハードウェア又はソフトウェアのマルチスレッド用のタスクスケジューラである、請求項１に記載の電子装置。
【請求項１４】
前記第１のグローバルな時間の基準と前記第２のグローバルな時間の基準とは同一である、請求項３に記載の電子装置。
【請求項１５】
前記第２のグローバルな時間の基準は、前記第１のグローバルな時間の基準の倍数又は約数である、請求項３に記載の電子装置。
【請求項１６】
前記第１及び第２のトークンは、ゼロでない増分に基づく論理時間の経過を示し、前記増分は静的であるか又は動的に変化する、請求項１又は３に記載の電子装置。
【請求項１７】
前記データ通信は同期通信と組み合わせられる、請求項１又は３に記載の電子装置。
【請求項１８】
複数の共有されたリソースを持つ電子装置内で共有されたリソースを調停するための方法であって、前記方法は、
複数の第１の共有されたリソースの少なくとも１つについて複数の調停を実行するステップを有し、
前記調停間の通信は非同期に実行され、前記共有されたリソース間のデータ通信は非同期に実行され、
各前記調停するステップは、第１のグローバルな時間の基準を実装するため、少なくとも１つの隣接する調停に第１のトークンを送信するステップと、少なくとも１つの隣接する調停から第２のトークンを受信するステップと、を有する方法。
【請求項１９】
電子装置における複数の第１の共有されたリソースの少なくとも１つについて複数の調停を実行するための調停ユニット間で時間の基準を通信するためのトークンの使用であって、前記調停ユニット間の通信は非同期に実行され、前記共有されたリソース間のデータ通信は非同期に実行される、トークンの使用。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、共有されたリソースを調停するための電子装置及び方法に関する。
【背景技術】
【０００２】
マルチホップ相互接続を持つ新規なシステムオンチップ（ＳｏＣ）アーキテクチャのうち、１以上のダイ（「システムインパッケージ」）又はチップ上のルータ（又はスイッチ）及びネットワークインタフェースＮＩ（又はアダプタ）から成るネットワークオンチップ（ＮＯＣ）が、スケーラブルな相互接続基盤であることが分かっている。しかしながら、提案されるアーキテクチャのうち、保証されたスループット、待ち時間又はジッタのような、保証されたサービス（即ちサービスの品質（Quality of Service、ＱｏＳ））を提供するものは一部のみである。
【０００３】
斯かるアーキテクチャの一例は、E. Rijpkema、K. Goossens及びP. Wielageによる「A router architecture for networks on silicon」（「2nd Workshop on Embedded Systems」、Proceedings of Progress 2001、オランダ国Veldhoven、2001年10月）に記載されたような、無衝突ルーティング又は分散ＴＤＭＡを伴うAetherealアーキテクチャである。更なる例は、M. Millberg、E. Nilsson、R. Thid及びA. Jantschによる「Guaranteed bandwidth using looped containers in temporally disjoint networks within the Nostrum networks on chip」（「Automation and Test in Europe Conference and Exhibition (DATE)」、Proc. Design、2004年）に示されるような、コンテナを用いたホットポテト型ルーティングを用いるNostrumアーキテクチャである。J. Liang、S. Swaminathan及びR. Tessierによる「aSOC: A scalable, single-chip communications architecture」（「Int'l Conference on Parallel Architectures and Compilation Techniques」、Proc.、2000年）は、分散ＴＤＭＡに対する変形を用いたａＳＯＣを記載している。
【０００４】
しかしながら、これらのネットワークオンチップＮＯＣは、パケット注入をスケジューリングすることにより、ネットワークオンチップＮＯＣにおけるパケットの衝突を回避するために、グローバルな同期の基準（notion）を必要とする。一般に、これらネットワークオンチップは、（１００％同期的に又はメソクロナス（mesochronously）的に、１つのグローバルなクロックを用いて）同期した態様で実装されてきた。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
時間に関連するＱｏＳ（スループット、待ち時間、ジッタ）のない多くの他のネットワークオンチップＮＯＣが報告されている。それ故、これらはグローバルな同期の基準を必要とせず、それにより実装が同期的であっても非同期的であっても良い。例は、P. Guerrierによる「Un Reseau D'Interconnexion pour Systemes Integres」（PhD thesis、Universite Paris VI、2000年3月）による同期ＳＰＩＮアーキテクチャ、Felicijanによる非同期ルータ、Arteris社の非同期ＮＯＣ（www.arteris.net）、Sonics社のSilicon Backplane（www.sonicsinc.com）である。同期型の実装（例えばＳＰＩＮ及びSonics）は、グローバルな調停（arbitration）方式を容易に実装することができる。非同期方式（Arteris、Felicijan）は、グローバルな調停方式を利用しない。
【０００６】
ＱｏＳ、即ち保証されたスループット及び保証された待ち時間の実装のため、ネットワークオンチップのようなマルチホップ相互接続については、エンド・ツー・エンド（end-to-end）型の調停が必要とされる。これらマルチホップ相互接続は複数の調停器を必要とし、マスタとスレーブとの間、即ち要求者と応答者との間の全ての調停器が、エンド・ツー・エンド型の調停を可能とするために協働する必要がある。換言すれば、マスタとスレーブとの間において、グローバルな時間の基準が必要とされる。斯かるグローバルな時間の基準は、同期クロックを有するシステムオンチップＳＯＣ内で容易に実装されることができる。しかしながら、システムオンチップは、１００％同期して実装されることはできない。このことは、ＧＡＬＳ（globally asynchronous, locally synchronous）設計の手法に導いてきた。Jens Muttersbachによる「Globally-asynchronous locally-synchronous architecture for VLSI systems」（Series in Microelectronics、Volume 120、Hartung - Gorre Verlag Konstanz、2001年）において、ＧＡＬＳアーキテクチャの基本概念が記載されている。
【０００７】
図２３は、先行技術による、種々の相互接続の表現を示す。図２３ａにおいて、相互接続ＩＭにより接続された３つのＩＰブロックを持つシステムオンチップが示されている。図２３ｂにおいて、ネットワークオンチップＮＯＣのようなマルチホップ相互接続が示されている。ＩＰモジュールは、複数のルータＲ及びネットワークインタフェースＮＩを有するネットワークＮに結合されている。図２３ｃにおいて、複数のバスＢを持つマルチホップ相互接続が示されている。該相互接続は２つのバスＢを有し、ＩＰブロックＩＰに結合されている。
【０００８】
ＧＡＬＳ構築ブロックの一般的なアーキテクチャが、図２４に示されている。該アーキテクチャは、ローカル同期モジュールＬＳＭ（アイランド（island））の周囲の非同期ラッパ（wrapper）ＡＷからなる。ラッパＡＷは、モジュールＬＳＭの環境への通信を可能とし、同期モジュールＬＳＭ用のローカルなクロックを生成する。ネットワークオンチップＮＯＣの環境において、ルータノードＲ及びネットワークインタフェースＮＩ並びにＩＰブロック／クラスタは、斯かるラッピングされたモジュールＡＷにより実装される。クロックのローカルな生成は、環境との通信が進行中である場合又は要求される場合に、次のクロックサイクルを遅延させることを可能とする。ポートコントローラＩＰＣＵ及びＯＰＣＵは、ＧＡＬＳシステム中のブロックの特定のポートにおける全てのデータ転送を管理するために備えられる。このことはモジュールＬＳＭにより可能とされ、データ送信とローカルクロックの位相とを同期させるように働く。データを高速に且つ効率的に送信するため、ポートコントローラＩＰＣＵ及びＯＰＣＵは、ローカルのクロック信号とは独立に動作する必要がある。このことは、これらコントローラを、非同期有限状態機械として実装することにより達成される。
【０００９】
モジュール間通信についての多様な要求をカバーするため、ポートコントローラの２つのファミリ、即ちポール型ポート及びデマンド型ポートが有用である。ポール型（Ｐ型）ポートは、専ら準安定を防ぐためにクロック伸張のための要求を発行し、かくしてデータの正確さを確実にする。クロックは、可能な限り影響を受けない。デマンド型（Ｄ型）ポートもまた転送チャネル上でのデータの完全性を保証するが、クロックゲーティングに類似する特徴を加える。これがイネーブルとされるとすぐに、ローカルクロックを停止させ、要求された転送が起こるとすぐに解放する。
【００１０】
更に、入出力変形型におけるポート型の実装が図２４に示されている。これらのポートコントローラは、２つのハンドシェーク対を持つ。一方はコントローラとクロック発生器との間にあり、他方はコントローラと対応するモジュールとの間にある。これらは、４位相ハンドシェーク（レベル信号）を利用する。更に、ポートイネーブルラインは、２位相プロトコル（遷移信号）を利用する。Ｔａは、ポートコントローラからＬＳモジュールへの確認応答信号である。該信号のレベルは、データ語の転送が発生したか否かを示す。
【００１１】
図２５において、図２４の一時停止可能なクロック発生器のブロック図が示されている。一時停止可能なクロック発生器ＰＣＧは、ＧＡＬＳモジュールの重要な構成要素である。ここでは、テスト及びデバッグのための方法のない実装を示す。
【００１２】
図２６は、先行技術による、２つのローカルに同期したアイランド（ＬＳＭ１、ＬＳＭ２）の間の単一方向チャネルの実装を示す。上述したようなハンドシェークプロトコルが仮定される。ポートコントローラＰＣＵ間の接続は、ハンドシェーク信号Ａｐ及びＲｐを介して確立される。ハンドシェーク確認応答信号Ａｐにより制御されるデータラインdata1及びdata2上のラッチＬは、通信モジュールＬＳＭ１及びＬＳＭ２を可能な限り分離する。転送チャネルにメモリを追加することは、受信側のクロックがデータを未だサンプリングしていなくても送信者が動作を再開することを可能とする。
【００１３】
図２７は、Ｄ出力からＰ入力へのデータ転送の波形を示す。最初に、Ｄ出力がイネーブルにされ、自身のクロックを停止し、Ｒｐ＋を発行する。このとき、受信ポートは未だイネーブルにされていない。このことが起こるとすぐに、該受信ポートがペンディング中のハンドシェークを検出し、自身のクロックを停止し、ハンドシェークに対して確認応答する。外部のハンドシェークが処理された後、両方のポート及び対応するモジュールＬＳＭが、自身の動作を再開し得る。
【００１４】
網掛けされたエリアは、データラッチＬの透過位相（Ａｐ＝１）を示すものである。ラッチＬが開いたとき受信クロックは非アクティブであり（Ａｉ２＝１）、その後ラッチの伝播遅延よりもかなり長い間非アクティブのままである。このことは、データライン上のイベントが受信側フリップフロップに安全に到達し、準安定が生じないことを確実にする。送信側クロックを停止したまま保つ（Ａｉ１＝１）ことは、ラッチが透過的である間data1が安定に保たれることを保証する。
【００１５】
図２８は、従来の非同期のシステムオンチップのブロック図を示す。３つの非同期回路ＡＣ１乃至ＡＣ３が示されている。非同期回路ＡＣ１乃至ＡＣ３のそれぞれは、自身の入力部の少なくとも１つにおいてデータが実際に存在するときにのみ起動される。従って、非同期回路ＡＣ１乃至ＡＣ３は時間の基準を持たないか、又は単にそれぞれの自身のローカルな時間の基準を持つ。
【００１６】
図２９は、３つの非同期回路ＡＣ１乃至ＡＣ３を持つ従来の非同期システムの実行追跡図を示す。ここで、非同期回路ＡＣ１乃至ＡＣ３は、時間の基準なく、個別にまた独立にトリガーされる。ｔ１において、回路ＡＣ１用の入力が第１の回路ＡＣ１に到達する。ｔ２において、第２の回路ＡＣ２用の入力が第１の回路ＡＣ１から到着する。ｔ３において、第３の回路ＡＣ３用の入力が第２の回路ＡＣ２から到着する。
【００１７】
本発明の目的は、グローバルな同期クロックの非存在下でＱｏＳを実装するための電子装置及び対応する方法を提供することにある。
【課題を解決するための手段】
【００１８】
本目的は、請求項１による電子装置、請求項１８による共有されたリソースを調停するための方法、及び請求項１９による調停ユニット間で時間の基準を通信するためのトークンの使用により達成される。
【００１９】
それ故、複数の第１の共有されたリソースと、それぞれが前記複数の第１の共有されたリソースの少なくとも１つについて調停を実行するための複数の調停ユニットと、を有する電子装置が提供される。前記調停ユニット間の通信は非同期に実行され、前記第１の共有されたリソース間のデータ通信は非同期に実行される。各前記調停ユニットは、第１のグローバルな時間の基準を実装するため、少なくとも１つの隣接する調停ユニットに第１のトークンを送信し、少なくとも１つの隣接する調停ユニットから第２のトークンを受信するように構成される。
【００２０】
それ故、提案されるグローバルな調停方式は、調停ユニットの数においてスケーラブルであり、スケーラブルではない調停ユニット間の同期通信の使用に比して有利である。
【００２１】
本発明の一態様によれば、前記電子装置は更に、複数のポートと、前記複数のポートを結合するための第１の共有されたリソースである非同期相互接続手段と、有する。前記相互接続手段は、それぞれが第２の共有されたリソースである複数の相互接続ユニットと、複数の調停ユニットと、を有し、前記複数の調停ユニットのそれぞれは、複数の前記第２の共有されたリソースの少なくとも１つについて調停を実行し、前記相互接続手段内の第２のグローバルな時間の基準を実装するため、少なくとも１つの隣接する相互接続構成要素へ第１のトークンを送信し、少なくとも１つの隣接する相互接続構成要素から第２のトークンを受信する。従って、非同期相互接続内で、及びそれ故ポート間で、ＱｏＳの実装を可能とする相互接続においてグローバルな時間の基準が実現される。
【００２２】
本発明は更に、複数の共有されたリソースを持つ電子装置内で共有されたリソースを調停するための方法に関する。前記方法は、複数の第１の共有されたリソースの少なくとも１つについて、複数の調停が実行される。前記調停間の通信は、非同期に実行される。前記共有されたリソース間のデータ通信は、非同期に実行される。各前記調停するステップは、第１のグローバルな時間の基準を実装するため、少なくとも１つの隣接する調停に第１のトークンを送信するステップと、少なくとも１つの隣接する調停から第２のトークンを受信するステップと、を有する。
【００２３】
本発明は更に、電子装置における複数の第１の共有されたリソースの少なくとも１つについて複数の調停を実行するための調停ユニット間で時間の基準を通信するためのトークンの使用に関する。前記調停ユニット間の通信は、非同期に実行される。第１の共有されたリソース間のデータ通信は、非同期に実行される。このことは、トークンは通常単にデータを通信し、時間を通信しないため、有利である。
【００２４】
本発明は、分散されたグローバルな調停方式（例えばメモリコントローラ及びネットワークオンチップＮＯＣ調停方式、タイルベース方式における通信支援及びネットワークオンチップＮＯＣ調停方式）の非同期実装を提供するという発想に基づく。分散された態様において非同期で実装されることができる、グローバルな同期の基準（又は調停方式）が提供される。本発明はまた、レート制御された方式（例えば仮想回路キュー又は出力キュー）及びデッドラインベース方式のようなグローバルな同期の基準を必要とする他の調停方式を持つネットワークオンチップＮＯＣ（又はより一般的には、階層型／ブリッジされたバスのような通信基盤）に適用されることができる。根本的に、基本的な発想は、ネットワークオンチップＮＯＣが、同期の論理的な単位（又は時間ステップ若しくはデータフロー射出）毎にトークンを交換する構成要素（例えばルータ、ネットワークインタフェース）から構成されることにより、グローバルな同期の基準（又はグローバルなスケジュール）を実装することができる点である。
【００２５】
本発明は主に、（ａ）ネットワークオンチップＮＯＣの同期レートの倍数又は約数でＩＰブロックを結合する非同期ネットワークオンチップＮＯＣ（即ち要求駆動型）、（ｂ）ネットワークオンチップＮＯＣの同期レートの倍数又は約数で動作しないＩＰブロックを結合する非同期ネットワークオンチップＮＯＣ（即ちデータ駆動型）、及び（ｃ）ネットワークオンチップＮＯＣの同期レートの倍数又は約数で動作しないＩＰブロックを結合する非同期ネットワークオンチップＮＯＣ（即ちイベント駆動型）、のケースに向けられたものである。
【００２６】
本発明の更なる態様は、従属請求項に記載される。
【００２７】
本発明のこれらの及び他の態様は、以下に説明される実施例を参照しながら、及び添付図面に関連して説明され明らかとなるであろう。
【発明を実施するための最良の形態】
【００２８】
ＱｏＳ（とりわけ有限の待ち時間）を提供する本方法は、E. Rijpkema、K. Goossens及びP. Wielageによる「A router architecture for networks on silicon」（「2nd Workshop on Embedded Systems」、Proceedings of Progress 2001、オランダ国Veldhoven、2001年10月）に記載されたような、無衝突ルーティングの背景にあるデータフローモデルに存する。E. Rijpkema、K. G. W. Goossens、A. Radulescu、J. Dielissen、J. van Meerbergen、P. Wielage及びE. Waterlanderによる「Trade offs in the design of a router with both guaranteed and best-effort services for networks on chip」（「Automation and Test in Europe Conference and Exibition (DATE)、Proc. Design、350-355頁、2003年3月」により説明されているように、同期の論理単位はフリット（flit）であっても良い。本方式は、引用された論文において説明されているように、同期ベースで実装されても良いが、本発明により非同期実装のために実装されても良い。
【００２９】
図１は、本発明の第１の実施例による非同期システムのブロック図を示す。本システムは、幾つかの共有されたリソースＳＲ１乃至ＳＲ４及び幾つかの調停ユニットＡＡＵ１乃至ＡＡＵ４を有する。調停器間の通信、即ち調停器と調停器との間の通信は、非同期に実行される。共有されたリソースＳＲ１乃至ＳＲ４は、これらリソース間でデータを通信しても良い。調停ユニットＡＡＵ１乃至ＡＡＵ４のそれぞれは、自身の入力部にトークンＴが存在するときに起動する。従って、非同期の調停器ＡＡＵ１乃至ＡＡＵ３は、グローバルで且つ共有された時間の基準を持つ。結果として、調停ユニットＡＡＵは、該調停ユニットに関連する共有されたリソースを調停（断続線を参照）することができる。とりわけ、調停ユニットＡＡＵ１は共有されたリソースＳＲ１に関連し、該共有されたリソースＳＲ１を調停する。調停ユニットＡＡＵ２は共有されたリソースＳＲ２に関連し、該共有されたリソースＳＲ２を調停する。調停ユニットＡＡＵ３は共有されたリソースＳＲ３及びＳＲ５に関連し、該共有されたリソースＳＲ３及びＳＲ５を調停する。調停ユニットＡＡＵ４は共有されたリソースＳＲ４に関連し、該共有されたリソースＳＲ４を調停する。調停ユニットＡＡＵ１乃至ＡＡＵ４の調停は、グローバルに同期された態様で、即ち協調した態様で実行される。共有されたリソースＳＲ１乃至ＳＲ４は、これらリソース間でデータを通信しても良い。調停ユニットＡＡＵ１乃至ＡＡＵ４は単に、グローバルな時間の基準を実装するため、隣接する調停ユニットと通信する。それ故、提案されるグローバルな調停方式は、調停ユニットの数においてスケーラブルであり、このことは、スケーラブルでない調停ユニット間の同期通信の使用に比して有利である。
【００３０】
グローバルな時間の基準とは、（ことによると全ての）調停ユニットが、（全ての）他の調停ユニットの状況又は状態を知っている状況を示す。それ故、或る調停ユニットがステップ３にある場合、他の全ての調停ユニットもステップ３にあることとなる。
【００３１】
図２（ａ）及び２（ｂ）は、第１の実施例による幾つかのＩＰブロックを結合するマルチホップ相互接続ＩＭのブロック図を示す。相互接続ＩＭは、幾つかのルータＲと、該ルータをＩＰブロックＩＰに接続させるための相互接続構成要素又は相互接続ノードとしてのネットワークインタフェースＮＩとを有する。
【００３２】
ルータＲ（又は他のネットワークオンチップＮＯＣの構成要素）の非同期の実装は、起動／リセット時に、最初に、全ての出力部、即ち図２ａに示されたような他のネットワークオンチップＮＯＣ構成要素への各リンクにおけるトークンＴの生成に帰着し、次いで（永久に又はリセットまで）全ての入力部からトークンを読み出し、図２ｂに示されるようにトークンを処理し、全ての出力部においてトークンＴを生成する。このようにして、全てのルータが、例えば同一のＴＤＭＡスロットにおいて、横並びで進行する。このことは、ローカルである傾向がある隣接するものへの非同期のハンドシェークのみを用いたグローバルな調停方式を実装する効果を持つ。トークンを生成し消費することは、要求駆動（要求−確認応答）型のインタラクション（ハンドシェーク）に対応する。
【００３３】
この概念は、レート制御された及びデッドラインベースのグローバルな調停方式にも利用されることができる。トークンＴは、データを含むか、又は空であることに留意されたい。データがない場合であっても、これらトークンは同期の基準を維持するために送信される必要がある。
【００３４】
非同期相互接続ＩＭのためのＱｏＳの実装が、ここで説明される。ネットワークオンチップＮＯＣ構成要素は、最も低速な構成要素と同じように低速に進み、全体としてネットワークオンチップＮＯＣの同期レートを構成する。１秒ごとの繰り返しの回数は、「実クロック速度」に関連する。例えば、同期ステップは３個のクロックサイクルに対応しても良い。同期レートがネットワークオンチップＮＯＣにおいて内部的に、即ち最も低速な構成要素によって生成され、（完全に同期的なネットワークオンチップＮＯＣにおけるように）外部の既知のクロックにより課せられるものではないという事実は、問題となるものではなく、ＱｏＳの概念を無効化するものではない。なぜなら、該ネットワーク内の全ての非同期の構成要素が、考慮される動作の特定の目標周波数で設計されるからである。
【００３５】
説明のための例として、目標周波数は、１６６Ｍ同期／秒、即ち１６６メガフリット／秒であっても良い。ここでフリットとは、それぞれが３２ビットの３個のワードであっても良い。例えば２０％のような適切なマージンをとる（即ち「オーバ・デザイニング」）ことにより、構成要素は２００Ｍ同期／秒即ち２００Ｍフリット／秒で動作するが、最も低速な構成要素は意図された１６６Ｍ同期／秒即ち５００Ｍワード／秒よりも確実に高速に動作し、少なくとも１６６Ｍ同期／秒即ち５００Ｍワード／秒の保証されたスループットに導き、潜在的により高速に動作するネットワークオンチップＮＯＣに導く。実際のマージンは、チップの処理の正確さ、ワーストケースの動作条件等に依存するものとなるであろう。この論法は同期及び非同期のモジュール／ＩＣについて等しく受け入れられる。
【００３６】
図３乃至ｄは、第２の実施例による、ルータＲ及び、相互接続としてのネットワークインタフェースＮＩ、並びにそれぞれのネットワークインタフェースＮＩに結合されたＩＰブロックＩＰを持つネットワークオンチップを示す。ＩＰブロックは、種々のトークンレートを利用して、倍数のレート（又は約数のレート）で動作し得る。従って、ネットワークオンチップＮＯＣの同期レートの倍数又は約数で動作するＩＰブロックＩＰとの非同期マルチホップ相互接続ＩＭのＱｏＳが示されている。図３ａにおいて、ＩＰブロックＩＰは相互接続の倍のレートで動作し、それ故、ルータＲ及びネットワークインタフェースＮＩが単に単一のトークンＴを生成する間に、２つの動作トークンＴを生成する。
【００３７】
両方のケースにおいて、本方法は、ネットワークオンチップＮＯＣの周波数の倍数又は約数で動作するＩＰブロックにのみ適用可能である。更に、同期の場合には、ネットワークオンチップＮＯＣに接続された全てのＩＰブロックのために動作する単一の同期クロックを持つことはもはや実現可能ではない。
【００３８】
同期の場合には、ＩＰ及びネットワークオンチップＮＯＣ（１つのクロックで動作する）のための複数の独立したクロックの使用は、データの同期、即ち或る（ＩＰの）クロックドメインから他のもの（ネットワークオンチップＮＯＣのもの）への交差又はその逆のための直列の２つのフリップフロップの利用に依存する。このことは、データ駆動型同期と呼ばれる。斯かる方法は動作するが最適ではない。なぜなら、他のクロックドメインからサンプリングデータが来たときにエラーが発生し得るからである。該状態は、両方の周波数が増大するにつれて更に悪化する。
【００３９】
非同期の場合には、同期の論理的な基準により動作するＩＰ及びネットワークオンチップＮＯＣのための複数の独立したクロックの同期は、要求駆動型同期、データ同期又はイベント駆動型同期により解決されることができる。第１の方法は、全てのクロック比、可変クロック等に対処することはできない。第２の方法は、不正確なデータの可能性を導く。第３の方法は、どちらの問題も持たない。
【００４０】
データ駆動型の同期の場合においては、他のモジュールへの通信ラインの全てにおける全てのモジュールが、クロックを進めるときにラインをサンプリングする。このことは、二重フリップフロップ方式により為され得る。不正確なデータサンプルという潜在的な問題が導かれる。とりわけ、２つのフリップフロップを利用してサンプリングされたビットが不正確である可能性がある。より多くのフリップフロップを利用することにより、増大される待ち時間と引き換えに、この可能性は低減させられる。ここで、本システム上の全てのデータ駆動型ポート／リンクについて該エラーの可能性が存在し、エラーが互いを相殺しない即ち互いを補償しないという意味で、これらの可能性が合算されることに留意されたい。
【００４１】
要求駆動型の同期が図２及び図３に示され、ネットワークオンチップＮＯＣモジュール（ＮＩ及びルータ）間の実施例を構成する。送信されるデータにおいてエラーは発生しない。
【００４２】
図４は、第２の実施例による、３つのＩＰブロックＩＰを結合するためのネットワークオンチップＮＯＣのブロック図を示す。該ネットワークオンチップは、３つのルータＲと共に、３つのネットワークインタフェースＮＩを有する。ルータＲ及びネットワークインタフェースＮＩは、Ｄ型ポートＤを介して通信する。
【００４３】
図５は、ＩＰブロックＩＰ、ネットワークインタフェースＮＩ及びルータＲのブロック図を示す。ＩＰブロックＩＰとネットワークインタフェースＮＩとの間のインタフェースは適切なクロック方式に基づいて実装され、ネットワークインタフェースＮＩとルータＲとの間のインタフェースは要求駆動型の同期に基づいて実装される。ＩＰブロックＩＰからネットワークインタフェースＮＩへの通信は、ＩＰブロックからの要求信号ip2ni_valid、及びネットワークインタフェースからの応答信号ip2ni_ack、並びに要求データreqdataにより実装される。ネットワークインタフェースＮＩからＩＰブロックＩＰへの通信は、ネットワークインタフェースＮＩからの要求信号ni2ip_valid、及びＩＰブロックＩＰからの応答信号ni2ip_ack、並びに応答データrespdataにより実装される。更に、ネットワークインタフェースＮＩからルータＲへの通信は、ネットワークインタフェースＮＩからの要求信号ni2r_valid、及びルータＲからの応答信号r2ni_ack、並びにni2r_dataにより実装される。ルータＲからネットワークインタフェースＮＩへの通信は、ルータからの要求信号r2ni_valid、及びネットワークインタフェースからの応答信号r2ni_ack、並びにデータr2ni_dataにより実装される。
【００４４】
ネットワークインタフェースＮＩは、相互排斥ユニットｍｕｔｅｘに接続された排他的ＯＲユニットＸＯＲを有し、該相互排斥ユニットｍｕｔｅｘはトグルユニットＴＵに接続されている。トグルユニットＴＵの出力部は論理ユニットＬＵに接続され、応答信号ip2ni_ackを構成する。遅延ライン及びインバータＤＬＩを持つフィードバックループは、相互排斥ユニットｍｕｔｅｘに結合されている。２入力相互排斥要素ｍｕｔｅｘは、標準的な非同期構築ブロックである。
【００４５】
ネットワークインタフェースＮＩの応答部は、遅延及びインバータＤＬＩのない対応する態様で構成される。
【００４６】
基本的に、ＩＰからの外部イベントがＮＩに到達したときにはいつでも、状態要素が該情報（ＩＰが通信したもの）を保存するためにトグルされ、それにより該情報が論理ブロックにより利用されることができる。該イベントは次いで、ＩＰブロックＩＰへの信号ip2ni_ackにより確認応答される。ＩＰブロックに対する確認応答はクリティカルパス上にあり、可能な限り迅速である必要がある。この理由のため、トグル要素ＴＵは、潜在的に非常に低速なＩＰブロックからのいずれのインタラクションをも必要とすることなく、即座に、（相互排斥要素へと向かう）要求ラインをローにする。ＩＰブロックは次いで、都合の良いときに確認応答に応答する。論理ユニットＬＵは、例えば要求データを読み出すために、要求ラインip2ni_validがハイであるという情報を利用する。
【００４７】
図６は、図５によるＩＰブロックＩＰ、ネットワークインタフェースＮＩ及びルータＲのブロック図を示す。しかしながら、図６によれば、同期ＮＩコアＮＳＮＩが再利用されても良い。図６の他の構成は、図５の構成に対応する。換言すれば、非同期のネットワークインタフェースが実装されるべき場合には、このことは同期ネットワークインタフェースの典型的な構造を利用することにより達成され、斯かる典型的な構造の上端においてＩＰブロックＩＰへの通信を可能とするための一種の内部シェルを提供する。
【００４８】
上述の動作は通常、ＮＩの内部的に生成されたクロックを全く停止させないことは留意されるべきである。
【００４９】
図７は、図４の２つの隣接するルータのより詳細なブロック図を示す。ルータＲ間のインタフェースは、要求駆動型の同期に基づいて実装される。ルータ間の通信は、要求信号valid及び応答信号ack並びに要求データdataにより実装される。
【００５０】
前記ルータは相互排斥ユニットｍｕｔｅｘに接続された排他的ＯＲユニットＸＯＲを有し、該相互排斥ユニットｍｕｔｅｘはトグルユニットＴＵに接続されている。トグルユニットＴＵの出力部は、同期ルータコアＮＳＲに接続されている。遅延ライン及びインバータＤＬＩを持つフィードバックループは、相互排斥ユニットｍｕｔｅｘに結合されている。２入力相互排斥要素ｍｕｔｅｘは、標準的な非同期構築ブロックである。
【００５１】
図８は、図４の２つの隣接するルータの更に詳細なブロック図を示す。該ルータは、通常の同期ルータコアＮＳＲ及び一時停止可能なクロック発生器ＰＣＧを有する。
【００５２】
図９は、第２の実施例による図４のルータＲのブロック図を示す。ルータＲは、ルータＲを隣接するルータＲ、及びことによると隣接するネットワークインタフェースＮＩへと結合させる、要求駆動型のインタフェースを有するであろう。ルータＲは、入力ポート制御ユニットＩＰＣＵ及び出力ポート制御ユニットＯＰＣＵを持つコアとして、通常の同期ルータＮＳＲを有する。入力ポート制御ユニットＩＰＣＵ及び出力ポート制御ユニットＯＰＣＵは、Ｄ型ポートとして実装される。２つのポート制御ユニットＩＰＣＵ及びＯＰＣＵは、一時停止可能なクロック発生器ＰＣＧに結合される。ルータＲと隣接するルータとの間の通信は、ルータＲの入力側においてハンドシェーク信号ＡＰ１及びＲＰ１を介して実行され、ルータは入力データdata1を受信する。ルータＲの出力側においては、隣接するルータＲへの通信はハンドシェーク信号ＡＰ２及びＲＰ２を介して実行され、data2が後続するルータへと転送される。
【００５３】
図１０の上部において、ネットワークオンチップの一部のブロック図が示される。図１０は、第２の実施例によるネットワークオンチップの一部を示す。ここで、マスタＩＰブロックＭＩＰ（マスタとして動作する）、マスタネットワークインタフェースｍＮＩ、１以上のルータＲ、スレーブネットワークインタフェース、及びスレーブＩＰブロックＳＩＰ（スレーブとして動作する）が示されている。これらのユニットは、論理的に同期した、即ち同一のクロックドメイン中にある又は固定されたレートで同期している、リンクＬ１、Ｌ２、Ｌ３及びＬ４により接続される。換言すれば、ＩＰブロックＭＩＰ及びＳＩＰ並びに相互接続ｍＮＩ、Ｒ及びｓＮＩは、論理的に同期している。いずれの時間に関連するＱｏＳも、マスタＩＰブロックＭＩＰからスレーブＩＰブロックＳＩＰへと達することができる。
【００５４】
図１０は、該図の下部において、ネットワークオンチップの同一の部分を示すが、ここでは相互接続ＩＭ、マスタネットワークインタフェースｍＮＩ、ルータＲ及びスレーブネットワークインタフェースｓＮＩのみが論理的に同期している。いずれの時間に関連するＱｏＳもが、マスタネットワークインタフェースｍＮＩからスレーブネットワークインタフェースｓＮＩへと達する。即ち、リンクＬ１とＬ４とが同期していないため、マスタＩＰブロックＭＩＰからスレーブＩＰブロックＳＩＰまでは達しない。データ駆動型同期を可能とするためにこれらリンクＬ１及びＬ４を通る通信のためのデータがサンプリングされる必要があるか、又はイベント駆動型同期を可能とするためにそれぞれのクロックが同期される必要がある。
【００５５】
ここで、ネットワークオンチップＮＯＣ（同期又は非同期）とＩＰブロックとの間のインタラクションが考慮される。ネットワークオンチップＮＯＣにより実装されるようなＱｏＳ（例えば保証された待ち時間）は、マスタｍＮＩからスレーブｍＮＩまでのみ亘る。マスタ（又はスレーブ）及びネットワークオンチップＮＯＣ（即ち（マスタ（又はスレーブ）ＮＩ）が同期して動作する場合、即ち同一の又は導出されたクロックドメインにある場合（即ちクロックドメインの交差がない場合）、ＱｏＳの保証はマスタからスレーブまで達する。同様に、ネットワークオンチップＮＯＣが非同期である場合、マスタ（又はスレーブ）は全ての（固定された倍数）時間ステップをマスタ（又はスレーブ）ＮＩと同期させ、ＱｏＳはマスタＭＩＰからスレーブＳＩＰへと達する。従って、このことは非同期（マルチレートＳＤＦ）状態、即ち要求駆動型同期に対応することとなる。
【００５６】
図１１において、第３の実施例によるネットワークオンチップの一部のブロック図が示される。単に本発明を説明するため、１つのＩＰブロックＩＰ、１つのネットワークインタフェースＮＩ、及び単に１つのルータＲが示されている。ＩＰブロックＩＰとネットワークインタフェースとの間の通信は、ＩＰブロックＩＰ及びネットワークインタフェースＮＩにおけるＤ型ポートＤを用いてＤ型インタフェースを介して実行される。ネットワークインタフェースＮＩと関連するルータＲとの間の通信もまた、Ｄ型ポートＤを用いてＤ型インタフェースに基づいて実行される。このことは、ルータ間通信にも当てはまる。従って、ネットワークオンチップＮＯＣとＩＰブロックＩＰとの間の要求駆動型通信が示される。ここでＩＰブロックは、ネットワークオンチップのレートと同一または倍数若しくは約数のレートで処理を実行する。
【００５７】
図１２において、ＩＰブロックＩＰ及びネットワークインタフェースＮＩのより詳細なブロック図が示される。ＩＰブロックＩＰは、通常の同期ＩＰコアＮＳＩＰを有する。入力ポート制御ユニットＩＰＣＵ及び出力ポート制御ユニットＯＰＣＵは、通常同期ＩＰユニットＮＳＩＰに結合されている。これらユニットは共に、Ｄ型ポートとして実装される。これらポート制御ユニットは、一時停止可能なクロック発生器ＰＣＧに結合される。ネットワークインタフェースＮＩは、入力ポート制御ユニットＩＰＣＵ及び出力ポート制御ユニットＯＰＣＵを伴う、通常同期ネットワークインタフェースコアＮＳＮＩを有する。これらポート制御ユニットは共に、一時停止可能なクロック発生器ＰＣＧに結合される。ＩＰブロックからネットワークインタフェースＮＩへの通信はハンドシェーク信号ＡＰ１及びＲＰ１を介して処理され、データdata1がＩＰブロックＩＰからネットワークインタフェースＮＩへと転送される。ネットワークインタフェースからＩＰブロックへの通信は第２のハンドシェーク信号ＡＰ２及びＲＰ２を介して処理され、データdata2がネットワークインタフェースＮＩからＩＰブロックＩＰへと転送される。従って、要求駆動型インタフェースが、ＩＰブロックＩＰとネットワークインタフェースＮＩとの間に実装される。
【００５８】
図１３は、図１１のネットワークインタフェースのより詳細なブロック図を示す。該ネットワークインタフェースは、Ｄ型ポートとして実装されるルータ及びＩＰの両方に対する要求駆動型インタフェースを有する。
【００５９】
図１４は、第４の実施例によるネットワークオンチップのブロック図部分を示す。該ネットワークオンチップの基本構造は、図１１による構造に対応する。しかしながら、ＩＰブロックＩＰとネットワークインタフェースＮＩとの間のインタフェースは、Ｐ型インタフェースである。それ故、ＩＰブロックは２つのＰ型ポートを有し、ネットワークインタフェースＮＩもまた２つのＰ型ポートを有する。ネットワークインタフェースとルータとの間の通信及びルータ間通信は、Ｄ型ルータを用いたＤ型インタフェースに基づく。
【００６０】
図１５は、第４の実施例による図１４によるＩＰブロックＩＰ及びネットワークインタフェースのより詳細なブロック図を示す。図１５のＩＰブロック及びネットワークインタフェースの基本構造は、図１２によるネットワークインタフェース及びＩＰブロックの構造に対応する。しかしながら、Ｐ型ポート制御ユニットとしてポート制御ユニットＯＰＣＵ及びＩＰＣＵが実装され、これによりＰ型インタフェースがＩＰブロックとネットワークインタフェースとの間に実装される。従って、ＩＰブロックＩＰとネットワークインタフェースＮＩとの間にイベント駆動型インタフェースが実装される。ＩＰブロックからネットワークインタフェースへの通信は第１のハンドシェーク信号ＡＰ１及びＲＰ１並びにdata1を介して制御され、ネットワークインタフェースからＩＰブロックへの通信は第２のハンドシェーク信号ＡＰ２及びＲＰ２並びにネットワークインタフェースＮＩからＩＰブロックＩＰへ転送されるdata2を介して制御される。
【００６１】
図１６は、図１４のネットワークインタフェースのより詳細なブロック図を示す。ネットワークインタフェースは、それぞれがＰ型ポート及びＤ型ポートとして実装された、１つのイベント駆動型インタフェース（ＩＰへの通信用）及び要求駆動型インタフェース（ルータへの通信用）を有する。
【００６２】
図１７は、第５の実施例によるＩＰブロックに結合されたネットワークオンチップの一部のブロック図を示す。該ネットワークオンチップ及びＩＰブロックの構造は、図１１及び図１４の構造に対応する。ネットワークインタフェースＮＩとルータとの間の通信及びルータ間通信は、Ｄ型ポートを用いたＤ型インタフェースに基づく。しかしながら、ＩＰブロックとネットワークインタフェースとの間の通信はデータ駆動型インタフェースを用いて実行され、ＩＰブロックはＳ型ポートを有し、ネットワークインタフェースはＰ型ポートを有する。ここで、ＩＰブロックはネットワークオンチップのレートとは独立したレートで動作しても良い。
【００６３】
図１８は、図１７のＩＰブロックＩＰ及びネットワークインタフェースＮＩのより詳細なブロック図を示す。図１８のＩＰブロック及びネットワークインタフェースの基本構造は、図１２及び図１６の基本構造に対応する。しかしながら、ＩＰブロックはＳ型ポート制御ユニットＯＰＣＵ及びＩＰＣＵを有し、ネットワークインタフェースはＰ型ポート制御ユニットＩＰＣＵ及びＯＰＣＵを有する。
【００６４】
図１９は、図１７のネットワークインタフェースのより詳細なブロック図を示す。該ネットワークインタフェースは、それぞれがＳ型ポート及びＰ型ポートとして実装された、１つの要求駆動型インタフェース及び要求駆動型インタフェースを有する。
【００６５】
図２０は、第７の実施例による、２つのローカルに同期したアイランド（ＬＳＭ１、ＬＳＭ２）間の単一方向チャネルの実装のブロック図を示す。出力ポート制御ユニットＯＰＣＵと入力ポート制御ユニットＩＰＣＵとの間の接続は、ハンドシェーク信号Ａｐ及びＲｐを介して確立される。ハンドシェーク確認応答信号Ａｐにより制御されるデータラインdata1及びdata2上のラッチＬは、通信モジュールＬＳＭ１とＬＳＭ２とを可能な限り分離する。
【００６６】
ここで、停止されることができないクロックで動作するローカルに同期したアイランドＬＳＭ１及びＬＳＭ２用の出力及び入力ポートコントローラＯＰＣＵ及びＩＰＣＵのために、Ｓ型ポートが利用される。斯かるクロックは一般に、外部的に生成されたクロックである。斯かるローカルに同期したアイランドＬＳＭ１及びＬＳＭ２は、一時停止可能なクロック発生器ＰＣＧを持たない。ローカルに同期したアイランドＬＳＭ１及びＬＳＭ２は、（Ｅｎ信号をトグルすることにより）Ｓ型ポートがデータ通信を実行することを可能とすることができる。信号Ｔａがトグルするとき、データ通信が実行されている。Ｓ型ポートはいずれのクロックとも干渉しないため、Ｓ型ポートの実装は基本的に、自由に動作するＰ型ポートである。信号ＴａをＬＳＭクロック信号と同期させるため、フリップフロップＦＦが利用される。それ故、Ｐ及びＤ型ポートにより利用されるクロック同期の代わりに、データ同期が利用される。
【００６７】
図２１は、イベント駆動型の同期のためのタイミング信号の表現を示す。図２１に示されるクロックＣは、遅延ライン及びインバータＤＬＩにより生成される。イベントＥ１がクロックのエッジよりも十分前に到達した場合、クロックＣは遅延されない。なぜなら、準安定を回避するため、相互排斥ユニットｍｕｔｅｘが該イベント及び離れたクロックエッジを受信するからである（イベントは最小の（一定の）時間内で発生する）。入力されるイベントＥ２がクロックエッジ近くで到達する場合にのみ（同時に、制限内で）、相互排斥要素が、何が最初に到達したか（又は厳密な一致の場合には何が最初に通過を許可されたか）を調停する必要がある。このことは（準安定のため）幾分かの時間を要し得、それ故クロックを遅延（ＥＤ）させ得る（即ち図１４の第２のイベント）。このことは稀にしか起こらない。クロックが遅延された瞬間同士の間の時間は計算されることができ、ＩＰ及びＮＩのクロック速度に依存する（速くなるほど減少する）。
【００６８】
応答経路は同様の態様で動作する。要求及び応答経路は、ＮＩが一時停止可能（ただし短い時間の間のみ）であること（即ちローカルクロックが停止させられ得ること）を確実にするために、このように実装される。ＮＩのみが停止させられ、結合されたいずれのルータのクロックも停止させられず、要求駆動型のハンドシェークのみが僅かに長く費やしても良いことは留意されたい。短い時間の間停止させられたＮＩが高速なルータに接続されている場合（例えば処理の変形又は温度差によって）、ＮＩの瞬間的な失速は、ルータによって補償され得る。このようにして、分散非同期ネットワークオンチップＮＯＣは、失速したＮＩによる全ての遅延流入が補償されることができないグローバルなクロックの同期ネットワークよりも、一時停止に対して優れた対応をすることができる。このことは待ち時間にのみ影響を与えスループットには影響を与えず、スループットは常に最も低速のフィードバックループへと減少させられる。
【００６９】
このとき、上述したデータ駆動型同期の場合に比べて、エラーのような入力されてくるイベントによるクロックの遅延を考慮すると、これらのエラーは合算されない。即ち、複数のＮＩが同時に遅延された場合、これら遅延の合計ではなく、これらの遅延のうち最も大きい遅延によってのみ、ネットワークオンチップＮＯＣ全体が遅延される。このことは、データ駆動型方式に対するイベント駆動型同期方式の利点である。
【００７０】
ＮＩ速度を例えば５％大きくすると、単一のクロック期間についての平均故障間隔は減少させられる。なぜなら、相互排斥要素ｍｕｔｅｘが安定化するために５％の付加的な時間が利用可能となるからである。複数の（例えば３個の）連続するクロック期間が考慮される場合、ＮＩが１クロック期間の後に低速になり過ぎる確率よりも、ＮＩが３クロック期間の後に低速になり過ぎる確率のほうが低い。なぜなら、１つの遅延イベントが３クロック期間で発生する場合、５％ではなく３×５％の安定化のためのたるみ（slack）を持つからである。３つの期間の間に２つの遅延イベントがある場合にも同様である（それぞれ１．５×５％のたるみを持つ）。３つの遅延イベントについて、付加的なたるみは利用可能ではない。このことは、データ駆動型方式に対するイベント駆動型同期方式の利点である。
【００７１】
従って、ネットワークオンチップＮＯＣの物理的な（タイミング及びクロック）側面は緩和される。即ち、ネットワークオンチップＮＯＣのためのグローバルなクロックが必要とされない。ネットワークオンチップＮＯＣは、構成要素の数という点で、即ち性能という点で、よりスケーラブルである。ＩＰ及びネットワークオンチップＮＯＣは、（イベント駆動型ＩＰＮＯＣ同期については）不正確なデータの虞なく、一方で失われた時間デッドラインの点で先験的に既知の平均故障間隔を伴い、任意の独立した速度で動作することができる。
【００７２】
一方で、非同期回路のテストは、同期回路についてのテストよりも困難となる。標準的なハードウェアバックエンドフロー（合成、タイミング確認等）は、非同期設計ではなく同期設計に、より適合される。
【００７３】
図２２は、第６の実施例による、幾つかのＩＰブロックを結合するネットワークオンチップを示す。ネットワークインタフェースとルータとの間の通信及びルータ間通信は、Ｄ型ポートを用いたＤ型インタフェースに基づく。即ち、ネットワークオンチップの構成要素間のインタフェースは、要求駆動型である。それぞれのＩＰブロックと関連するネットワークインタフェースとの間のインタフェースは、第３（左）、第４（中）及び第５（右）の実施例によるインタフェースを呈する。従って、第３、第４及び第５の実施例によるインタフェースが、単一のネットワークオンチップにおいても適用されることができる。
【００７４】
第５の実施例による導入されたＧＡＬＳ技術に基づくネットワークオンチップＮＯＣにおいて、ＮＯＣとＩＰとの間に要求駆動型通信を実装するため、ＮＩとＩＰとの間のチャネルの両側においてＤ型ポートが利用される。全てのチャネルがＤ型のポートを利用するため、全てのブロックの整合のとれた進行が保証される。Ｄ型ポートは１００％決定論的であるため、結果の性能もまた決定論的である。
【００７５】
ＱｏＳを提供するための他の方法（一般的なネットワークからの）が文献から知られている（特にH. Zhangによる「Service disciplines for guaranteed performance service in packet-switching networks」（IEEEのProceeding、83(10):1374-96、1995年10月）に記載されたようなレート制御された方式、及びJ. Rexfordによる「Tailoring Router Architectures to Performance Requirements in Cut-Through Networks」（PhD論文、University of Michigan、Department of Computer Science and Engineering、1999年）に記載されたようなデッドラインベースの方式）が、これらの方式を実装したネットワークオンチップＮＯＣは報告されていない。これらの方法はまた、グローバルな同期の基準に依存している。
【００７６】
上述の実施例は本発明を限定するものではなく説明するものであって、当業者は添付する請求項の範囲から逸脱することなく多くの代替実施例を設計することが可能であろうことは留意されるべきである。請求項において、括弧に挟まれたいずれの参照記号も、請求の範囲を限定するものとして解釈されるべきではない。「有する（comprising）」なる語は、請求項に記載されたもの以外の要素又はステップの存在を除外するものではない。要素に先行する「１つの（a又はan）」なる語は、複数の斯かる要素の存在を除外するものではない。幾つかの手段を列記した装置請求項において、これら手段の幾つかは同一のハードウェアのアイテムによって実施化されても良い。特定の手段が相互に異なる従属請求項に列挙されているという単なる事実は、これら手段の組み合わせが有利に利用されることができないことを示すものではない。
【００７７】
更に、請求項におけるいずれの参照記号も、請求の範囲を限定するものと解釈されるべきではない。
【図面の簡単な説明】
【００７８】
【図１】本発明の第１の実施例による非同期システムのブロック図を示す。
【図２（ａ）】第１の実施例による幾つかのＩＰブロックを結合するマルチホップ相互接続のブロック図を示す。
【図２（ｂ）】第１の実施例による幾つかのＩＰブロックを結合するマルチホップ相互接続のブロック図を示す。
【図３（ａ）】ＩＰブロックと共に、ルータＲ及び相互接続としてのネットワークインタフェースＮＩを持つネットワークオンチップを示す。
【図３（ｂ）】ＩＰブロックと共に、ルータＲ及び相互接続としてのネットワークインタフェースＮＩを持つネットワークオンチップを示す。
【図３（ｃ）】ＩＰブロックと共に、ルータＲ及び相互接続としてのネットワークインタフェースＮＩを持つネットワークオンチップを示す。
【図３（ｄ）】ＩＰブロックと共に、ルータＲ及び相互接続としてのネットワークインタフェースＮＩを持つネットワークオンチップを示す。
【図４】第２の実施例による、３つのＩＰブロックＩＰを結合するためのネットワークオンチップＮＯＣのブロック図を示す。
【図５】ＩＰブロックＩＰ、ネットワークインタフェースＮＩ及びルータＲのブロック図を示す。
【図６】図５によるＩＰブロックＩＰ、ネットワークインタフェースＮＩ及びルータＲのブロック図を示す。
【図７】図４の２つの隣接するルータのより詳細なブロック図を示す。
【図８】図４の２つの隣接するルータの更に詳細なブロック図を示す。
【図９】第２の実施例による図４のルータＲのブロック図を示す。
【図１０】ネットワークオンチップの一部のブロック図を示す。
【図１１】第３の実施例によるネットワークオンチップの一部のブロック図を示す。
【図１２】ＩＰブロックＩＰ及びネットワークインタフェースＮＩのより詳細なブロック図を示す。
【図１３】図４のネットワークインタフェースのより詳細なブロック図を示す。
【図１４】第４の実施例によるネットワークオンチップのブロック図部分を示す。
【図１５】第４の実施例による図１４によるＩＰブロックＩＰ及びネットワークインタフェースのより詳細なブロック図を示す。
【図１６】図１４のネットワークインタフェースのより詳細なブロック図を示す。
【図１７】第５の実施例によるＩＰブロックに結合されたネットワークオンチップの一部のブロック図を示す。
【図１８】図１７のＩＰブロックＩＰ及びネットワークインタフェースＮＩのより詳細なブロック図を示す。
【図１９】図１７のネットワークインタフェースのより詳細なブロック図を示す。
【図２０】第７の実施例による、２つのローカルに同期したアイランド（ＬＳＭ１、ＬＳＭ２）間の単一方向チャネルの実装のブロック図を示す。
【図２１】イベント駆動型の同期のためのタイミング信号の表現を示す。
【図２２】第６の実施例による、幾つかのＩＰブロックを結合するネットワークオンチップを示す。
【図２３】先行技術による種々の相互接続の表現を示す。
【図２４】ＧＡＬＳ構築ブロックの一般的なアーキテクチャを示す。
【図２５】図２４の一時停止可能なクロック発生器のブロック図を示す。
【図２６】先行技術による、２つのローカルに同期したアイランド間の単一方向チャネルの実装を示す。
【図２７】Ｄ出力からＰ入力へのデータ転送の波形を示す。
【図２８】従来の非同期のシステムオンチップのブロック図を示す。
【図２９】３つの非同期回路を持つ従来の非同期システムの実行追跡図を示す。
【図１】
2008532169.tif 000003
【図２ａ】
2008532169.tif 000004
【図２ｂ】
2008532169.tif 000005
【図３ａ】
2008532169.tif 000006
【図３ｂ】
2008532169.tif 000007
【図３ｃ】
2008532169.tif 000008
【図３ｄ】
2008532169.tif 000009
【図４】
2008532169.tif 000010
【図５】
2008532169.tif 000011
【図６】
2008532169.tif 000012
【図７】
2008532169.tif 000013
【図８】
2008532169.tif 000014
【図９】
2008532169.tif 000015
【図１０】
2008532169.tif 000016
【図１１】
2008532169.tif 000017
【図１２】
2008532169.tif 000018
【図１３】
2008532169.tif 000019
【図１４】
2008532169.tif 000020
【図１５】
2008532169.tif 000021
【図１６】
2008532169.tif 000022
【図１７】
2008532169.tif 000023
【図１８】
2008532169.tif 000024
【図１９】
2008532169.tif 000025
【図２０】
2008532169.tif 000026
【図２１】
2008532169.tif 000027
【図２２】
2008532169.tif 000028
【図２３】
2008532169.tif 000029
【図２４】
2008532169.tif 000030
【図２５】
2008532169.tif 000031
【図２６】
2008532169.tif 000032
【図２７】
2008532169.tif 000033
【図２８】
2008532169.tif 000034
【図２９】
2008532169.tif 000035
【国際調査報告】
2008532169.tif 000036
2008532169.tif 000037
2008532169.tif 000038