(57)【要約】  集積回路は複数の機能ブロックと、機能ブロック間でデータパッケージを通信するための、複数の通信チャネルを介して相互接続された複数のネットワークステーションを有するデータ通信ネットワークとを有する。Ｎは２以上の整数として各データパッケージは、ネットワークステーションのルーティング情報を有するデータ要素を含むＮ個のデータ要素を有する。複数のネットワークステーションは複数のデータルータ及び複数のネットワークインターフェースを有し、各データルータはネットワークインターフェースを介して機能ブロックに結合され、当該データ通信ネットワークは、第１の通信チャネルを介して相互接続された第１のネットワークステーション及び第２のネットワークステーションを有し、且つＭは正の整数として第１の通信チャネルにＭ×Ｎサイクルの遅延を導入するＭ×Ｎ個のデータ格納素子を有する。低速通信チャネルへの１つ以上のデータパッケージ分の遅延の導入により、データ通信ネットワーク上でのデータ通信の最大クロック速度を高めることが容易になる。
2008538670.tif 000002
【特許請求の範囲】
【請求項１】
複数の機能ブロック；及び
機能ブロック間でデータパッケージを通信するための、複数の通信チャネルを介して相互接続された複数のネットワークステーションを有するデータ通信ネットワークであり、Ｎは２以上の整数として各データパッケージは、ネットワークステーションのルーティング情報を有するデータ要素を含むＮ個のデータ要素を有し、前記複数のネットワークステーションは複数のデータルータ及び複数のネットワークインターフェースを有し、各データルータはネットワークインターフェースを介して機能ブロックに結合されており、当該データ通信ネットワークは、第１の通信チャネルを介して相互接続された第１のネットワークステーション及び第２のネットワークステーションを有し、且つＭは正の整数として第１の通信チャネルにＭ×Ｎサイクルの遅延を導入するＭ×Ｎ個のデータ格納素子を有する、データ通信ネットワーク；
を有する集積回路。
【請求項２】
各通信チャネルは：
それぞれの第１のネットワークステーションの入力ポートとそれぞれの第２のネットワークステーションの出力ポートとの間の第１の副チャネル；及び
それぞれの第２のネットワークステーションの入力ポートとそれぞれの第１のネットワークステーションの出力ポートとの間の第２の副チャネルであり、これら２つのネットワークステーション間での双方向通信を可能にする第２の副チャネル；
を有する、請求項１に記載の集積回路。
【請求項３】
Ｍ×Ｎ個のデータ格納素子は、第１の通信チャネルの第１の副チャネル及び第２の副チャネルに分配されている、請求項２に記載の集積回路。
【請求項４】
第１のネットワークステーションはルーティング情報を第１サイクルで評価するように構成され、第２のネットワークステーションはルーティング情報を第２サイクルで評価するように構成され、第１サイクルと第２サイクルとの間の差はＡサイクルであり；且つ
第１の通信チャネルの第１の副チャネルはＡ個のデータ格納素子により実現されるＡサイクルの遅延を有し、第２の副チャネルはＢ個のデータ格納素子により実現されるＢサイクルの遅延を有し、Ａ及びＢはＡ＋Ｂ＝Ｍ×Ｎとなる正の整数である；
請求項３に記載の集積回路。
【請求項５】
ＣはＮを法とするＣがＡとなる正の整数として、ルーティング情報を第２サイクルで評価するように構成された更なるネットワークステーションから第１のネットワークステーションへの何れのネットワーク経路もＣ個の遅延要素を有し；且つ
ＤはＮを法とするＤがＢとなる正の整数として、第１のネットワークステーションから前記更なるネットワークステーションへの何れのネットワーク経路もＤ個の遅延要素を有する；
請求項４に記載の集積回路。
【請求項６】
Ｍ＝１である請求項１乃至５の何れかに記載の集積回路。
【請求項７】
第１の通信チャネルの第１の副チャネル及び第２の副チャネルの各々は、Ｍ×Ｎ／２個のデータ格納素子により導入される遅延を有する、請求項３に記載の集積回路。
【請求項８】
クロック信号発生器を更に有し、前記複数のネットワークステーション及びＭ×Ｎ個のデータ格納素子はクロック信号発生器に反応する、請求項１又は２に記載の集積回路。
【請求項９】
各ネットワークステーションは該ネットワークステーションの通信ポートに結合された第１の記憶素子及び第２の記憶素子を有し、第１の記憶素子は該通信ポートに関連する第１のサービスレベルを要求するデータパッケージからのルーティング情報を格納するように構成されており、且つ第２の記憶素子は該通信ポートに関連する第２のサービスレベルを要求するデータパッケージからのルーティング情報を格納するように構成されている、請求項１又は２に記載の集積回路。
【請求項１０】
複数の機能ブロック、並びに、機能ブロック間でデータパッケージを通信するための、複数の通信チャネルを介して相互接続された複数のネットワークステーションを有するデータ通信ネットワークであり、Ｎは２以上の整数として各データパッケージは、ネットワークステーションのルーティング情報を有するデータ要素を含むＮ個のデータ要素を有し、前記複数のネットワークステーションは複数のデータルータ及び複数のネットワークインターフェースを有し、各データルータはネットワークインターフェースを介して機能ブロックに結合されている、データ通信ネットワーク、を有する集積回路を設計する方法であって：
所定の遅延閾値を超えるデータ伝送遅延を有する、第１のネットワークステーションと第２のネットワークステーションとの間の第１の通信チャネルを特定する段階；及び
Ｍは正の整数として、第１の通信チャネルにＭ×Ｎサイクルの遅延を導入するように、データ通信ネットワークにＭ×Ｎ個のデータ格納素子を挿入する段階；
を有する方法。
【請求項１１】
各通信チャネルは、それぞれの第１のネットワークステーションの入力ポートとそれぞれの第２のネットワークステーションの出力ポートとの間の第１の副チャネル、及びそれぞれの第２のネットワークステーションの入力ポートとそれぞれの第１のネットワークステーションの出力ポートとの間の第２の副チャネルであり、これら２つのネットワークステーション間での双方向通信を可能にする第２の副チャネルを有し；且つ
第１のネットワークステーションはルーティング情報を第１サイクルで評価するように構成され、第２のネットワークステーションはルーティング情報を第２サイクルで評価するように構成され、第１サイクルと第２サイクルとの間の差はＡサイクルであり；
当該方法は更に：
Ａ及びＢはＡ＋Ｂ＝Ｍ×Ｎとなる正の整数として、第１の通信チャネルの第１の副チャネルにＡサイクルの遅延を導入するように、第１の副チャネルにＡ個のデータ格納素子を挿入する段階；及び
第１の通信チャネルの第２の副チャネルにＢサイクルの遅延を導入するように、第２の副チャネルにＢ個のデータ格納素子を挿入する段階；
を有する請求項１０に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ通信ネットワークを介して相互に接続された複数の機能ブロックを有する集積回路に関する。
【背景技術】
【０００２】
近年、大抵の集積回路（ＩＣ）は、ＩＣ上で典型的に多数の機能を実現する多数の機構を有する超大規模集積（ＶＬＳＩ）回路である。様々な機能が、例えばシステム・オン・チップ（ＳｏＣ）アーキテクチャ等、別個の機能ブロックに配置され得る。機能ブロックの相互接続は設計上の課題をもたらす。何故なら、最近のＩＣの高いクロック速度は多量のデータを処理することを促進するものであるが、このことは、ＩＣの相互接続は機能ブロック間で多量のデータを通信可能でなければならないことを意味するからである。
【０００３】
一方で柔軟性ある通信を容易にし、他方で必要な配線量を制限するため、ＩＣはネットワーク・オン・チップ（ＮｏＣ）とも呼ばれるデータ通信ネットワークを内蔵し得る。このようなネットワークは、典型的に、複数のネットワークステーションを有しており、各々のネットワークステーションは機能ブロックに関連付けられ、例えば配線といった通信チャネルを介して相互接続されている。これら複数のネットワークステーションは、複数のデータルータ及び複数のネットワークインターフェースを含んでおり、各々のデータルータはネットワークインターフェースを介して機能ブロックに結合されている。データはネットワーク上で、データとネットワークステーション用のルーティング命令とが混ざり合ったものを含むパッケージの形態で伝達されることができる。デュプレックス通信を促進しているネットワークにおいては、典型的に、双方向通信を容易にする少なくとも一対の通信副チャネルを介して一対のネットワークステーションが相互接続される。
【０００４】
ＩＣ上の例えば配線である通信チャネルに付随する問題は、ＩＣが動作可能なクロック速度が、最も遅い通信チャネル、すなわち、最大のデータ伝送遅延をもたらすチャネルによって決定されてしまうことである。この問題に関する解法は複数存在しており、例えば、幾つかの解法が提示されている非特許文献１が参照される。考え得る１つの解法は、最も遅いデータ通信チャネルに例えばラッチ等のデータ格納素子を導入することである。その結果、ＩＣのデータ通信部分のクロック速度は、最も遅い通信チャネルに沿った通信用の付加的なクロックサイクルを用いて高められることができる。
【０００５】
残念ながら、このような解法は、一体化されたネットワークを介して機能ブロック間でデータ通信しているＩＣには、特に、通信されるデータの性質がクロックサイクル毎に異なるときには、そのまま適用されることができない（このようなネットワークの一例は、非特許文献２参照）。このようなネットワークは、例えばデータルータ等のネットワークステーションは所定のクロックサイクル中にデータパケットに組み込まれたルーティングデータを受け取るという原則に基づいて動作する。ネットワークの残りの部分を高速化するために遅い通信チャネル上での該ルータへの通信を１クロックサイクルだけ遅らせることは、ルーティングデータが所定のクロックサイクルを外れて到着し、それによりネットワークの誤った挙動を生じさせる原因となり得る。
【非特許文献１】Carloni等、「Coping  with  latency  in  SoC  design」、IEEE  Micro  5、2002年、第22巻、p24-35
【非特許文献２】Rijpkema等、「Trade-offs  in  the  design  of  a  router  with  both  guaranteed  and  best-effort  services  for  network  on  chip」、IEE  Proc.Comput.Digit.Tech.2003、p1-9  （IEEプロシーディングス  オンライン番号20030830）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、集積回路のネットワークのデータ通信速度を高めることが可能な集積回路を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様に従って提供される集積回路は、複数の機能ブロック、並びに、機能ブロック間でデータパッケージを通信するための、複数の通信チャネルを介して相互接続された複数のネットワークステーションを有するデータ通信ネットワークであり、Ｎは２以上の整数として各データパッケージは、ネットワークステーションのルーティング情報を有するデータ要素を含むＮ個のデータ要素を有し、前記複数のネットワークステーションは複数のデータルータ及び複数のネットワークインターフェースを有し、各データルータはネットワークインターフェースを介して機能ブロックに結合されており、当該データ通信ネットワークは、第１の通信チャネルを介して相互接続された第１のネットワークステーション及び第２のネットワークステーションを有し、且つＭは正の整数として第１の通信チャネルにＭ×Ｎサイクルの遅延を導入するＭ×Ｎ個のデータ格納素子を有する、データ通信ネットワークを有する。
【０００８】
本発明は、ネットワークの正確な動作はネットワークステーション間の正確な周期性の維持に頼るものであるという認識に基づく。データパッケージはＮ個のデータ要素という一定の大きさを有するので、２つのネットワークステーション間での完全なパッケージの通信はＮクロックサイクル要し、あるいは非同期式のネットワーク実装の場合にはＮ回のハンドシェイクによるデータ伝送を要する。例えば宛先や要求されるサービスの種類（例えば、ベストエフォート型又は帯域保証型）といったルーティング情報は、データパッケージ内で一定の位置を有している。ルーティング情報は例えば最初のデータ要素（すなわち、ヘッダ）の位置を有しているが、その他のデータ要素がこの情報を含んでいてもよい。ネットワークステーションはルーティング情報が周期的に（すなわち、Ｎサイクル毎に）到着することを要求するので、（典型的に、ネットワーク内の最も遅いチャネルである）第１の通信チャネルへの上記周期に一致する遅延の導入により、すなわち、単一のデータ要素ではなくデータパッケージ全体を遅延させることにより、遅延されたデータパッケージは受信側ネットワークステーションによって適当な期間（例えば、クロックサイクル）中に受け取られる。
【０００９】
各通信チャネルは、それぞれの２つのネットワークステーション間での双方向通信を可能にするように、それぞれの第１のネットワークステーションの入力ポートとそれぞれの第２のネットワークステーションの出力ポートとの間の第１の副チャネル、及びそれぞれの第２のネットワークステーションの入力ポートとそれぞれの第１のネットワークステーションの出力ポートとの間の第２の副チャネルを有していてもよい。Ｍ×Ｎ個のデータ格納素子は、第１の通信チャネルのこれら副チャネルに分配されていてもよい。
【００１０】
好適な一実施形態において、第１のネットワークステーションはルーティング情報を第１サイクルで評価するように構成され、第２のネットワークステーションはルーティング情報を第２サイクルで評価するように構成され、第１サイクルと第２サイクルとの間の差はＡサイクルであり、且つ第１の通信チャネルの第１の副チャネルはＡ個のデータ格納素子により実現されるＡサイクルの遅延を有し、第２の副チャネルはＢ個のデータ格納素子により実現されるＢサイクルの遅延を有し、Ａ及びＢはＡ＋Ｂ＝Ｍ×Ｎとなる正の整数である。
【００１１】
ネットワーク内のネットワークステーションの１つのルーティング評価段階に位相シフトを導入することは、データ通信（副）チャネル内の遅延要素数をデータパッケージ内のデータ要素数より少なくすることが可能であり、故に、特定のデータ通信（副）チャネルの待ち時間（レイテンシ）が改善されるという利点を有する。欠点は、位相シフトされたネットワークステーションへの全ての通信が、適当な位相シフトを導入するために遅延を有する通信チャネルを介して伝わらなければならないことである。この制約は、しかしながら、ＣはＮを法とするＣがＡとなる正の整数として、ルーティング情報を第２サイクルで評価するように構成された更なるネットワークステーションから第１のネットワークステーションへの何れのネットワーク経路もＣ個の遅延要素を有し、且つＤはＮを法とするＤがＢとなる正の整数として、第１のネットワークステーションから前記更なるネットワークステーションへの何れのネットワーク経路もＤ個の遅延要素を有する、ことを確保することによって回避可能である。これにより、第１のネットワークステーションと、該第１のネットワークステーションとは異なるルータ情報評価位相で動作するその他の如何なるネットワークステーションとの間においても正確な位相関係が維持され、故に、ネットワークの最適な柔軟性が維持される。
【００１２】
代替的な一実施形態においては、第１の通信チャネルの副チャネルの各々は、Ｍ×Ｎ／２個のデータ格納素子により導入される遅延を有する。ここで、Ｍ×Ｎ／２は典型的にデータパッケージの大きさに相当する。結果として、双方向通信チャネルの双方の経路は同等の長さと同等の遅延特性とを有することになるので、双方の副チャネルのこの分配により、双方の通信方向でのネットワークの速度を高めることが可能になる。
【００１３】
好ましくは、必要な遅延要素数を最小化するためにＭ＝１であり、これは第１の通信チャネルに導入される遅延を最小化することになる。
【００１４】
同期式の実施形態においては、ＩＣはクロック信号発生器を更に有し、複数のネットワークステーション及びＭ×Ｎ個のデータ格納素子はクロック信号発生器に反応し、それにより、データルータとＭ×Ｎ個の格納素子との間でデータ衝突が発生しないことが確保される。
【００１５】
各ネットワークステーションは該ネットワークステーションの通信ポートに結合された第１の記憶素子及び第２の記憶素子を有していてもよく、第１の記憶素子は該通信ポートに関連する第１のサービスレベルを要求するデータパッケージからのルーティング情報を格納するように構成されており、且つ第２の記憶素子は該通信ポートに関連する第２のサービスレベルを要求するデータパッケージからのルーティング情報を格納するように構成されている。このような実施形態は、相異なるサービスレベルを要求するパッケージを交互に配置することを可能にする。
【００１６】
本発明の更なる一態様に従って、複数の機能ブロック、並びに、機能ブロック間でデータパッケージを通信するための、複数の通信チャネルを介して相互接続された複数のネットワークステーションを有するデータ通信ネットワークであり、Ｎは２以上の整数として各データパッケージは、ネットワークステーションのルーティング情報を有するデータ要素を含むＮ個のデータ要素を有し、前記複数のネットワークステーションは複数のデータルータ及び複数のネットワークインターフェースを有し、各データルータはネットワークインターフェースを介して機能ブロックに結合されている、データ通信ネットワーク、を有する集積回路を設計する方法が提供され；当該方法は、所定の遅延閾値を超えるデータ伝送遅延を有する、第１のネットワークステーションと第２のネットワークステーションとの間の第１の通信チャネルを特定する段階；及びＭは正の整数として、第１の通信チャネルにＭ×Ｎサイクルの遅延を導入するように、データ通信ネットワークにＭ×Ｎ個のデータ格納素子を挿入する段階を有する。この方法により、本発明に係る集積回路の設計が容易になる。
【００１７】
好適な一実施形態において、各通信チャネルは、それぞれの第１のネットワークステーションの入力ポートとそれぞれの第２のネットワークステーションの出力ポートとの間の第１の副チャネル、及びそれぞれの第２のネットワークステーションの入力ポートとそれぞれの第１のネットワークステーションの出力ポートとの間の第２の副チャネルであり、これら２つのネットワークステーション間での双方向通信を可能にする第２の副チャネルを有し；且つ第１のネットワークステーションはルーティング情報を第１サイクルで評価するように構成され、第２のネットワークステーションはルーティング情報を第２サイクルで評価するように構成され、第１サイクルと第２サイクルとの間の差はＡサイクルであり；当該方法は更に、Ａ及びＢはＡ＋Ｂ＝Ｍ×Ｎとなる正の整数として、第１の通信チャネルの第１の副チャネルにＡサイクルの遅延を導入するように、第１の副チャネルにＡ個のデータ格納素子を挿入する段階；及び第１の通信チャネルの第２の副チャネルにＢサイクルの遅延を導入するように、第２の副チャネルにＢ個のデータ格納素子を挿入する段階を有する。この方法により、本発明に係る集積回路の好適実施形態の設計が容易になる。
【発明を実施するための最良の形態】
【００１８】
添付図面を参照しながら、本発明について非限定的な実施例を用いて詳細に説明する。図は単なる概略的なものであって縮尺通りに描かれていないことは理解されるべきである。また、図面全体を通じて、同一又は類似の部分は同一の参照符号を用いて指し示すこととする。
【００１９】
図１は、本発明の一実施形態に従った集積回路（ＩＣ）10を示している。ＩＣ10は、データ通信ネットワーク100を介して相互接続された、例えば処理ユニットである４つの機能ブロック101−104を有している。データ通信ネットワーク100はデータルータ110、120、130、140を含んでおり、これらデータルータはそれぞれのネットワークインターフェース105−108を介して機能ブロック101−104にそれぞれ結合されている。データルータ110、120、130、140及びネットワークインターフェース105−108はデータ通信ネットワーク100のネットワークステーションを構成している。このようなデータルータ及びネットワークインターフェースの典型的な実施形態は、例えば、Radulescu等の「An  Efficient  On-chip  Network  Interface  Offering  Guaranteed  Services，Shared  Memory  Abstraction  and  Flexible  Network  Configuration」（Proc.of  Design，Automation  and  Test  Conference  in  Europe、2004年2月）及び上述の非特許文献２、並びにそれらの関連参照文献に記載されている。なお、これらの関連部分は参照することによりここに取り込まれる。
【００２０】
データ通信ネットワーク100のネットワークステーションは複数のデータ通信チャネル150を介して相互接続されている。通信チャネル150は例えばデータバスである１つ又は複数の配線を有し得る。データ通信ネットワーク100は機能ブロック101−104間でのデータストリームの柔軟性ある通信を可能にするように構成されている。典型的に、このようなデータストリームは、１つ又は複数のデータパッケージを有しており、各データパッケージはＮを２以上の整数としてＮ個のデータ要素を有している。パッケージ内のＮ個のデータ要素の少なくとも１つ（例えば最初のデータ要素）は、宛先のネットワークステーションのためのルーティング命令を有している。このようなデータパッケージはフロー命令ユニット（フリット）と呼ばれることもある。
【００２１】
データストリームは、例えば、完全なデータストリームが次の宛先に転送される前にデータルータに格納される格納・転送型ルーティングや、完全なデータストリームが受け取られる前にデータルータが格納データパッケージを次の宛先に送信することが可能なワームホール型（wormhole）ルーティング等の、既知の通信技術を用いてネットワーク100上で通信されてもよい。後者の技術はデータルータが必要とする記憶容量が小さいという利点を有するが、何れの技術も同等にふさわしいものであり、また、その他の技術も同様に用いられ得る。
【００２２】
図１に示されたデータネットワークは双方向（デュプレックス）ネットワークであり、すなわち、双方向での同時のデータ通信を可能にするものである。しかしながら、強調しておくが、本発明は片方向（シンプレックス）ネットワーク、すなわち、同時の双方向通信に対応していないネットワークにも等しく適用可能である。データネットワーク100上での双方向通信を容易にするため、各通信チャネル150は、例えばデータルータ120及び140といった隣接し合う２つのネットワークステーションそれぞれの入力と出力との間に、第１の副チャネル152及び第２の副チャネル154を有している。これにより、例えば帯域保証型及びベストエフォート型のサービスの時分割多重アクセス（ＴＤＭＡ）データ通信が容易にされる。この目的で、データ通信ネットワーク100内の各ネットワークステーションは複数の記憶装置を有している。各記憶装置は、データルータの入力ポート又は出力ポートである通信ポートに結合された、あるいは、より正確には該通信ポートを介して通信のサービスレベルに関連付けられた、例えばデータルータ120内のメモリ122といった、第１の記憶素子及び第２の記憶素子を有している。当然ながら、上記の複数の記憶装置は、単なる例として２つのデータルータ間の通信を用いて後述されるように、ネットワークステーションの各入力ポート又は出力ポートを追跡するために十分な記憶容量を有する単一の記憶装置として実装されてもよい。認識されるように、同一の技術は、本発明の教示を逸脱することなく、データルータとネットワークインターフェースとの間の通信、又はネットワークインターフェースと機能ブロックとの間の通信にも適用可能である。
【００２３】
典型的に、最初のデータパッケージのヘッダは該データパッケージの宛先、及び帯域保証型又はベストエフォート型サービスといった該データパッケージのサービスレベルについての情報を有する。サービスレベルはデータルータの宛先出力ポートの適当な記憶素子内のビットを設定することによりフラグを立てられる。同一のサービスレベルを有する後続のデータパッケージに対して、データルータはこれらのデータパッケージが進行中のデータストリームに属することを知っていることになる。何故なら、適当なビットが関連する記憶素子に記憶されているからである。データストリームの最後のデータパッケージは、このビットをデータルータにリセットさせる標識を含んでいる。このような機構により、単一の通信チャネル上の２つのデータストリームのデータパッケージを交互に配置することが可能になる。
【００２４】
図１において、データルータ120と140との間の通信チャネル150は、所定の遅延閾値を超えるデータ伝送遅延をもたらすネットワーク100内の通信チャネルとして特定されている。このような特定は、利用可能なタイミング挙動シミュレーションツールを用いて設計をＩＣ10の遅延挙動シミュレーションにかけることによって、ＩＣの設計段階で為されることができる。例えばデータルータ120及び140である２つのネットワークステーション間の通信チャネル150の遅延特性に従ってデータ通信ネットワーク100の例えばクロック速度といった通信速度を制限する必要がないように、この通信チャネル（以下では、低速通信チャネル150と呼ぶ）は、Ｎはデータパッケージの大きさに相当するとして、該通信チャネルへのＭ×Ｎサイクルの遅延を導入するＭ×Ｎ個のデータ格納素子を備えており、故に、単一のデータパッケージの遅延、すなわち、このデータパッケージを伝達するのに必要なクロックサイクル数、の低速通信チャネル150への導入という犠牲の下で、データネットワーク100の最大通信周波数を増大させることができる。
【００２５】
図１に示されたネットワーク100は、Ｎ＝３の大きさのデータパッケージを通信するように構成されている。その他のＮの値も同等に実現可能である。低速通信チャネル150の第１の副チャネル152はＮ＝３のデータ格納素子160を用いて延長されている。必要に応じて、低速通信チャネル150の第２の副チャネル154もまたＮ＝３のデータ格納素子160を用いて延長されており、この場合、Ｍ＝２である。第１の副チャネル152及び第２の副チャネル154は典型的に互いの近くにあり、これらそれぞれ遅延特性は一般に同等であるので、双方の副チャネルにデータ格納素子160を導入することが要求される。しかしながら、例えば、副チャネルが異なる長さを有するために、あるいは例えばウォーターフォール型クロッキングといった使用されるタイミング技術の性質のために、それぞれの副チャネルが異なる遅延特性を示す場合、１つの副チャネルのみへのＮ個の格納素子160の導入で十分であり、この場合、Ｍ＝１である。
【００２６】
認識されるように、副チャネル152及び154へのデータ格納素子160の物理的配置は単なる例であり、例えばデータルータ120又はデータルータ140といった関連するネットワークステーションにデータ格納素子160が一体化される実装も等しく実現可能である。認識されるように、同一の技術は、本発明の教示を逸脱することなく、データルータとネットワークインターフェースとの間の通信、又はネットワークインターフェースと機能ブロックとの間の通信にも適用可能である。例えば図３及び５に示される実施形態といったデータ通信ネットワーク100の他の実施形態にも同じことが言える。データ格納素子160はラッチ又はフリップフロップのパイプライン又はバッファであってもよく、同期式又は非同期式の格納素子を用いて実装されてもよい。図１において、データ格納素子160は、データルータ110、120、130、140及びネットワークインターフェース105−108を含むネットワークステーションと同一のクロック信号に応答している。
【００２７】
図２は、データルータ120の出力ポートをデータルータ140の入力ポートに相互接続する第１の副チャネル152上の、３つのデータ格納素子160により延長された低速チャネル150に沿った通信に関して、そのタイミング挙動を示している。クロックサイクルｔにて、ワームホール型ルーティングを用いるデータルータ120は、３データ要素の大きさを有する（太枠で示された）データパッケージの第１のデータ要素ｈを受け取る。このデータパッケージの後続のデータ要素ｄ１及びｄ２は、それぞれ、クロックサイクルｔ＋１及びｔ＋２にてデータルータ120によって受け取られる。データルータ110、120、130、140は全て、受け取ったデータパッケージの内容を周期的に評価する、すなわち、Nデータ要素の大きさを有するデータパッケージの場合にはＮクロックサイクル毎に評価するように構成されている。図１に示されたＩＣ10の実施形態においては、全てのデータルータ110、120、130、140はこの動作を同時に、すなわち、同一クロックサイクルにて実行する。このクロックサイクルは、クロックサイクルｔ、及びその後のＮ番目毎のクロックサイクル、すなわち、新たなデータパッケージのヘッダｈの到来が予期されるｔ＋３、ｔ＋６等々である。データルータによるこのような周期的な検査機構は、例えば、Ｎを法とするカウンタを用いて実現され得る。従って、データパッケージのヘッダは本質的に、このような評価クロックサイクル以外には何れのデータルータ110、120、130、140にも到来しない。
【００２８】
ワームホール型ルーティングの原理に従って、データルータ120はデータパッケージの完全な受信を受けて、すなわちクロックサイクルｔ＋３にて、低速通信チャネル150の第１の副チャネル152を介して該データパッケージの送信を開始する。強調しておくが、この時点では、遅延のない通信チャネルを介して送信されたデータは、送信されたのと同一のクロックサイクル内で宛先データルータに到着することになる。しかしながら、低速通信チャネル150の第１の副チャネル152内のＮ＝３のデータ格納素子160の存在により、第１のデータ格納素子160がｔ＋３にてヘッダｈを受け取って、ｔ＋４にてそれを第２のデータ格納素子160に渡し、第２のデータ格納素子160がｔ＋５にてそれを第３のデータ格納素子160に渡し、最終的に第３のデータ格納素子160が、データネットワーク150内のデータルータ110、120、130、140のヘッダ評価サイクルに一致するｔ＋６にて、それをデータルータ140に渡すことになる。これにより、データルータ140によるデータパッケージの正確なルーティングが確保される。
【００２９】
図３に示された本発明に従ったＩＣ10の実施形態においては、データルータ140はデータネットワーク100内のその他のデータルータ110、120、130よりＡクロックサイクルだけ遅く（あるいはＢサイクルだけ早く）データパッケージのヘッダを評価するように構成されている。ただし、Ｎはデータパッケージ内のデータ要素数に相当し、Ａ、ＢはＡ＋Ｂ＝Ｍ×Ｎとなる正の整数である。一般に、Ｎを法とするＡ、及びＮを法とするＢはゼロに等しくない。
【００３０】
図３においては、単なる例として、Ｍ＝１、Ｎ＝３、Ａ＝１、そしてＢ＝２である。言い換えれば、データルータ140はデータネットワーク100内のその他のデータルータに対して位相がシフトされたルーティング情報評価サイクルを有する。ルーティング情報が正確に読み取られることを確保するため、すなわち、この情報が適当なクロックサイクル中に何れかのデータルータに到着することを確保するため、考え得る２つの実現手法が選択され得る。第１の実現手法においては、位相シフトされたデータルータ140への通信及び該データルータ140からの通信の全てが低速通信チャネル150を通るように経路付けられる。その結果、低速通信チャネル150のみがその副チャネル152及び154へのＭ×Ｎ個のデータ格納素子の導入を必要とする。この実現手法の欠点は、データ通信ネットワーク100の柔軟性が低下することである。
【００３１】
好適な実現手法においては、第２のサイクル内にルーティング情報を評価するように構成された更なるネットワークステーションから第１のネットワークステーションへの如何なるネットワーク経路もＣ個の遅延要素を有する。ただし、ＣはＮを法とするＣがＡとなる正の整数である。そして、第１のネットワークステーションから上記の更なるネットワークステーションへの如何なるネットワーク経路もＤ個の遅延要素を有する。ただし、ＤはＮを法とするＤがＢとなる正の整数である。これにより、データ通信ネットワーク100全体にわたって、クロックサイクルとルーティング情報の評価との間の正しい位相関係が確実に維持される。例えば、図３においてはＣ＝Ａ且つＢ＝Ｄであり、データルータ130の出力ポートとデータルータ140の入力ポートとの間の副チャネル152にＣ個のデータ素子160が導入されており、データルータ130の入力ポートとデータルータ140の出力ポートとの間の副チャネル154にＤ個のデータ素子160が導入されている。
【００３２】
言い換えれば、互いに対して位相シフトされたルーティング情報サイクルをもたらす２つのネットワークステーション間の全通信チャネル150は、位相シフトに一致するサイクル数を実現するために適当な数のデータ格納素子160を組み込んでいるべきである。これが意味することは、図３においては、データルータ140の入力ポートに接続された全ての副チャネルは、データルータ140に向けられた通信にＡサイクルの遅延を導入するようにＡ個のデータ格納素子160を用いて延長され、データルータ140の出力ポートに接続された全ての副チャネルは、データルータ140を起源とする通信にＢサイクルの遅延を導入するようにＢ個のデータ格納素子160を用いて延長されるということである。Ａ＋Ｂ＝Ｍ×Ｎであるので、データルータ140が接続された各通信チャネル150はＭ×Ｎ個のデータ格納素子を組み込んでおり、それにより、隣接し合う２つのデータルータ間の通信ループに正確にＭ個のデータパッケージの遅延を導入することが確保される。
【００３３】
このことは図４にて更に詳細に説明される。図４においては、図３に示されたＩＣ10のネットワーク内で、データ要素ｈ、ｄ１及びｄ２から成るデータパッケージがデータルータ120からデータルータ140に送られ、そして送り戻されている。データルータ120及び140のルーティング情報評価クロックサイクルは該サイクルの先頭の太い縦線によって指し示されている。言い換えれば、データルータ120は受信データパッケージのルーティング情報をｔ、ｔ＋３、ｔ＋６等々にて評価し、データルータ140は受信データパッケージのルーティング情報をｔ＋１、ｔ＋４、ｔ＋７等々にて評価する。データルータ120はデータルータ140にデータ要素ｈをＴ＝ｔにて送信する。Ｔ＝ｔにて、データ要素ｈは第１の副チャネル152内のデータ格納素子160によって受け取られ、該データ格納素子160はデータ要素ｈを格納し、且つそれをデータルータ140にＴ＝ｔ＋１にて送信する。データルータ140は同一クロックサイクル中にデータ要素ｈを受信し、ヘッダｈに含まれるルーティング情報を評価する。
【００３４】
データルータ140がＴ＝ｔ＋２にてデータ要素ｄ１を、そしてＴ＝ｔ＋３にてデータ要素ｄ２を受信した後、すなわち、データルータ140が完全なデータパッケージを受信した後、データルータ140は該データパッケージの最初のデータ要素をデータルータ120に第２の副チャネル154を介して送信する。第２の副チャネル上の２つのデータ格納素子160の存在により、最初のデータ要素ｈはデータルータ120によってＴ＝ｔ＋６にて、すなわち、データルータ120がルーティング情報を評価するように計画されたサイクル中に受信され、その他の２つのデータ要素ｄ１及びｄ２は、それぞれ、後続のサイクルｔ＋７及びｔ＋８にて到着する。認識されるように、副チャネル152及び154のデータ格納素子160は位相シフト器として動作し、ルーティング情報が各データルータの位相ドメインにおける正しい時点にて評価されることを確保する。位相シフト技術の適用は、個々の副チャネル152、154に導入される遅延が完全なデータパッケージより小さくされ、それにより低速通信チャネル150の性能が図１に提示された解法と比較して向上され得るという利点を有する。
【００３５】
ここで、相異なる位相ドメインの数は、本発明の教示を逸脱することなく、更に増大され得ることは認識されるところである。繰り返し言っておくが、データ格納素子は典型的には２つのデータルータ間の通信チャネルに実装されるものの、例えばデータルータとネットワークインターフェースとの間といったその他の種類のネットワークステーション間のチャネルへの実装も等しく実現可能である。
【００３６】
図５は、例えばデータルータ120及び140間といった２つのネットワークステーション間の遅延を持たされた双方向通信チャネル150の、クロック歪み（skew）に対して堅牢な非同期実装を示している。しかしながら、クロック信号はデータルータ140まで、データルータ120までより長い配線上を進行しなければならないことにより、データルータ140は、データルータ120が受け取るクロック信号CLKに対して遅延ｔ１を有するクロック信号CLK_dを受け取る。完全なる同期のデータ通信ネットワーク100において、これは通信エラーを発生させ得る。何故なら、クロックサイクルｔにてデータルータ140によりデータルータ120、又はデータルータ120とデータルータ140との間の低速通信チャネル150上の第１の遅延要素に送信されたデータパッケージは、その宛先にサイクルｔではなくサイクルｔ＋１にて到着することがあり得るからである。これは、上述のように、ルーティング情報がデータルータ120にそのルーティング情報評価サイクルを外れて到着することを引き起こすことになり、ルーティングエラーによる情報の損失を生じさせる虞がある。
【００３７】
この虞は、データルータ120と140との間の第１の副チャネル152及び第２の副チャネル154のそれぞれに、Ｍ×Ｎ個のデータ格納素子160を非同期ＦＩＦＯバッファ520及び540として実装することによって抑制可能である。この実装は、少なくとも或る一定の制約内で、クロック歪みの影響を受けにくいものである。クロック歪みに対する非同期ＦＩＦＯバッファ520及び540の堅牢性を向上させるため、より詳細に後述するように、これらバッファはＭ×Ｎより僅かに大きい数のデータ格納素子160を含んでいてもよい。
【００３８】
非同期ＦＩＦＯバッファ520及び540はクロックCLKから独立した通信動作を有し、データはハンドシェイク式プロトコルに基づいてＦＩＦＯバッファ520及び540内を伝えられる。通常、このような動作は同期式の通信より速い。何故なら、同期通信は上述のように同期通信ネットワーク内の最も遅い経路によって支配されてしまうからである。
【００３９】
データルータ120からＦＩＦＯバッファ520へのデータパッケージの伝達は、ハンドシェイク有効化（validation）信号501によって開始され、大きさNを有するデータパッケージのデータ要素の同期データ通信502がそれに続く。この通信はクロック信号CLKに応答するデータルータ120によって管理される。データ要素が期間ｔ２をかけてＦＩＦＯバッファ520全体を伝わった後、ハンドシェイク要求503がデータルータ140に送信される。最初のハンドシェイク要求の受信により、データルータ140は初期化されるとともに、データ通信505を始動させるＦＩＦＯバッファ520への承認信号504を送信することによってデータ通信を受諾させられる。データルータ140はデータパッケージのデータストリームが完全に受信されるまで初期化された状態にある。データルータ120及び140のデータパッケージ受信期間は、クロック信号clk及びclk_dそれぞれの上方の太い横線によって指し示されている。データルータ140はデータパッケージを同期的に、すなわち、クロックサイクル当たり１つのデータ要素だけ受信し、ワームホール型ルーティング手法に従って要求信号503を受信してＮクロックサイクル後に、ハンドシェイク有効化信号506及びデータ通信507をＦＩＦＯバッファ540に送信することによって、ＦＩＦＯバッファ540にデータパッケージを同期的に送信する。データ要素がＦＩＦＯバッファ540全体を伝わるのにかかる時間である期間ｔ３後、ＦＩＦＯバッファ540はデータルータ120にハンドシェイク要求信号508を送信する。
【００４０】
重要なことに、データルータ120は既に初期化されているので、すなわち、データストリームをデータルータ140に伝達することに既に関与しているので、データルータ120は単に、縦破線で図示される該データルータ120のルーティング情報評価サイクルの先頭にて、このハンドシェイク要求への承認信号509を送信して通信510を可能にする。あるいは、データルータ120からデータルータ140へのデータストリームの伝送が、ＦＩＦＯバッファ540からデータルータ120へのハンドシェイク要求に先立って完了した場合、この要求はデータルータ120を初期化する。何れの場合も、データルータ120及び140をトリガーするクロック信号のクロック歪みに拘わらず、データルータ120の正しいタイムスロットにおけるルーティング情報の受信が確保される。データルータ120とデータルータ140との間のクロック歪みがかなりの大きさである場合、データルータ140はＦＩＦＯバッファ540が承認信号509を受け取る前にＦＩＦＯバッファ540に次のデータパッケージの最初のデータ要素を送信してもよい。このような場合、ＦＩＦＯバッファは該ＦＩＦＯバッファに格納されるデータの損失を回避するために、Ｍ×Ｎより多くのデータ要素を格納することができなければならない。これは、上書きを防止するものとしてＭ×Ｎ個のデータ格納素子に１つ以上のデータ格納素子を追加することによって実現可能である。
【００４１】
本発明に従ったデータ通信ネットワーク100を有するＩＣ10は、以下のように修正されたＩＣ設計方法を用いて設計可能である。周知のＩＣ設計ツールを用いて設計可能なＩＣ10の最初のバージョンを設計（周知のＩＣ設計ツールを用いて設計可能であるので、ここでは更には説明しない）した後、所定の遅延閾値を超えるデータ伝送遅延を有するネットワークステーションと第２のネットワークステーションとの間の第１の通信チャネルを特定する評価工程が実行される。そして、データ通信ネットワーク100の設計は、本発明の教示に従って、第１の通信チャネルにＭ×Ｎサイクルの遅延を導入するようにＭ×Ｎ個のデータ格納素子をネットワークに挿入するによって修正される。ただし、Ｍは正の整数である。これにより、データ通信ネットワーク100が動作可能な最大クロック速度を高めることが可能になる。この挿入工程は、図３及び４並びにそれらの詳細な説明にて述べられた位相シフトされたデータ通信ネットワーク100を作り出すために、第１の通信チャネル（150）の第１の副チャネル（152）にＡサイクルの遅延を導入するように該第１の副チャネルにＡ個のデータ格納素子を挿入することと、第１の通信チャネル（150）の第２の副チャネル（154）にＢサイクルの遅延を導入するように該第２の副チャネルにＢ個のデータ格納素子を挿入することとを有していてもよい。ただし、Ａ及びＢはＡ＋Ｂ＝Ｍ×Ｎとなる正の整数である。
【００４２】
なお、上述の実施形態は例示的なものであり本発明を限定するものではない。また、当業者は添付の特許請求の範囲を逸脱することなく数多くの代替実施形態を設計することが可能であろう。請求項において、括弧書きで示された如何なる参照符号も請求項を限定するものとして解釈されるべきではない。また、用語“有する”は請求項内に列挙されていない要素又は段階の存在を排除するものではなく、要素の前に置かれた用語“或る（ａ又はａｎ）”はその要素が複数存在することを排除するものではない。本発明は幾つかの区別可能な要素を有するハードウェアによって実施されてもよい。幾つかの手段を列挙する装置に係る請求項において、これらの手段の幾つかは１つ且つ同一のハードウェア品目によって具体化されてもよい。また、特定の手段などが相異なる従属請求項に記載されているという単なる事実は、これらの手段などの組み合わせが有利に使用され得ないことを指し示すものではない。
【図面の簡単な説明】
【００４３】
【図１】本発明に係るＩＣの一実施形態を示す図である。
【図２】図１のＩＣの遅延通信チャネルに沿ったタイミング挙動を示す図である。
【図３】本発明に係るＩＣの他の一実施形態を示す図である。
【図４】図３のＩＣの遅延通信チャネルに沿ったタイミング挙動を示す図である。
【図５】本発明に係るＩＣの更に他の一実施形態を、そのタイミング挙動を含めて示す図である。
【図１】
2008538670.tif 000003
【図２】
2008538670.tif 000004
【図３】
2008538670.tif 000005
【図４】
2008538670.tif 000006
【図５】
2008538670.tif 000007
【国際調査報告】
2008538670.tif 000008
2008538670.tif 000009