(57)【特許請求の範囲】
【請求項１】
集積回路の通信バス上にリング状のデイジーチェーン又は解放型のデイジーチェーン接続されたトランスポートユニット間でデータ及びタイミング情報を含む信号を送信する方法であって、
前記通信バス上のすべてのトランスポートユニットに対してグローバルユニットクロックサイクルを有するクロックトリガを生成するステップであって、それによって、前記トランスポートユニットそれぞれを起動して、自身のトランスポートユニットに隣接する後続トランスポートユニットへ、前記クロックトリガが生成された後に前記トランスポートユニットのそれぞれにおいて共通の時点で開始されるウェイブ-フロントで、前記信号の送信を開始する、ステップと、
前記トランスポートユニットのすべてにおいて、自身のトランスポートユニットに隣接する先行トランスポートユニットから前記信号として受信する前記データ及び前記タイミング情報に、タイミング調整を適用するステップであって、前記先行トランスポートユニットからの自身のトランスポートユニット宛ての前記データを取得すること、前記先行トランスポートユニットから前記後続トランスポートユニットへ前記通信バス上で前記データを変更することなく中継すること、及び前記通信バスへ新たなデータをロードすること、の少なくとも１を、調整されたタイミング情報を用いて、実行するステップと
を含むことを特徴とする方法。
【請求項２】
請求項１記載の方法において、該方法はさらに、１つのグローバルユニットクロックサイクルが完了するまで前記ウェイブ-フロントを伝播するステップと、その後、次のグローバルユニットクロックサイクルと共に前記ウェイブ-フロントを再開するステップとを含むことを特徴とする方法。
【請求項３】
請求項１記載の方法において、該方法はさらに、前記データが、意図されたトランスポートユニットに達するまで、前記ウェイブ-フロントを伝播するステップを含むことを特徴とする方法。
【請求項４】
請求項１記載の方法において、前記タイミング調整はパス遅延調整であることを特徴とする方法。
【請求項５】
請求項１記載の方法において、クロックトリガを生成するステップは、すべてのトランスポートユニットに対してグローバルユニットクロック信号を送信することによって実行されることを特徴とする方法。
【請求項６】
請求項１記載の方法において、クロックトリガを生成するステップは、前記トランスポートユニットに対してグローバルユニットクロック信号を送信し、１つのグローバルユニットクロック信号について複数のクロックトリガを生成することによって実行されることを特徴とする方法。
【請求項７】
請求項１記載の方法において、前記トランスポートユニットのそれぞれから送信される前記データのすべては、１つのグローバルユニットクロックサイクル内に前記後続トランスポートユニットのそれぞれに達するよう構成されていることを特徴とする方法。
【請求項８】
請求項１記載の方法において、前記通信バスは時分割多重化バスであることを特徴とする方法。
【請求項９】
請求項１記載の方法において、前記データに適用される前記タイミング調整は、前記タイミング情報に適用される前記タイミング調整とは異なっていることを特徴とする方法。
【請求項１０】
請求項１記載の方法において、別々のクロック信号がデータ中継オペレーション及びデータキャプチャオペレーションに使用されることを特徴とする方法。
【請求項１１】
請求項１記載の方法において、前記通信バスは双方向バスであることを特徴とする方法。
【請求項１２】
通信バス上にリング状のデイジーチェーン又は解放型デイジーチェーン接続された複数のトランスポートユニットの１つのトランスポートユニットであって、
自身のトランスポートユニットに隣接する先行トランスポートユニットから入力データを受信するデータ入力と、
前記先行トランスポートユニットからクロック信号を受信するクロック入力と、
前記複数のトランスポートユニットすべてに供給されるグローバルユニットクロック信号であって、グローバルユニットクロックサイクルを有するグローバルユニットクロック信号を受信するグローバルクロック入力と、
自身のトランスポートユニットに隣接する後続トランスポートユニットに出力データを提供するデータ出力手段と、
前記後続トランスポートユニットに出力クロック信号を提供するクロック出力手段と、
通信ポートと、
制御ロジックであって、
前記先行トランスポートユニットからのクロック信号及び前記グローバルユニットクロック信号に基づいて、中継クロック信号を提供し、該中継クロック信号は、前記出力データの前記提供を行うと共に前記出力クロック信号を生成するのに使用され、
前記先行トランスポートユニットからの前記入力データに含まれているデータであって、前記トランスポートユニットに宛てられたデータを受信し、
新たなデータを前記通信ポート上で受信し、
前記出力データとして、前記先行トランスポートユニットからの前記入力データ及び前記新たなデータの一方を選択し、
前記トランスポートユニットに宛てられた前記データを前記通信ポート上に提供し、
前記通信ポート上で命令を受信する
よう動作する制御ロジックと
を備えることを特徴とするトランスポートユニット。
【請求項１３】
請求項１２記載のトランスポートユニットにおいて、該ユニットはさらに、前記制御ロジックの制御の下で前記先行トランスポートユニットからの前記クロック信号に可変遅延を選択的に適用する遅延ユニットを備えることを特徴とするトランスポートユニット。
【請求項１４】
請求項１２記載のトランスポートユニットにおいて、該ユニットはさらに、前記制御ロジックの制御の下で前記先行トランスポートユニットからの前記入力データに可変遅延を選択的に適用する遅延ユニットを備えることを特徴とするトランスポートユニット。
【請求項１５】
請求項１２記載のトランスポートユニットにおいて、前記出力データ及び前記出力クロック信号は同時に提供されることを特徴とするトランスポートユニット。
【請求項１６】
請求項１２記載のトランスポートユニットにおいて、１つの前記グローバルユニットクロックサイクルの期間に、前記入力データが受信され、かつ前記出力データが提供されることを特徴とするトランスポートユニット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路の分野に関する。より詳細には、本発明は、集積回路の相互接続の設計に関する。
【背景技術】
【０００２】
高速オンチップ相互接続は、ネットワークスイッチファブリック、ストレージスイッチ、入出力仮想スイッチ、マルチコア中央処理装置相互接続、及び新しいネットワークオンチップ製品等の多種多様な用途に使用される。各用途は、その用途に固有の相互接続要件を有する。１つのタイプの相互接続の設計はポイントツーポイント（Ｐ２Ｐ）と呼ばれる。ポイントツーポイント相互接続の設計は、その最も基本的な形態では、接続する必要がある集積回路のあらゆる２つのポイント間に専用のワイヤを設ける。明らかに、ポイントツーポイント接続は、接続されるポイント数と比較して相対的に多くの相互接続を有する傾向がある。
【０００３】
このような基本的なポイントツーポイント接続の複雑さによって、通例、ポイントツーポイント（Ｐ２Ｐ）接続は、所与の集積回路設計で実施するのが法外な数となる。Ｎをポート（ポイント）の数とし、Ｗを任意の２つの所与のポート間の接続のビット幅とすると、これらの直接的ポイントツーポイント接続には、Ｎ＊（Ｎ−１）＊Ｗ本のワイヤが必要とされる。相互接続ワイヤの総数はＯ（Ｎ２）の特性を有する。たとえば、Ｎが１４であり、Ｗが１６０である１つのアーキテクチャでは、ポイントツーポイントアービトレーショントラフィックには、２９，１２０本の相互接続ワイヤが必要とされる。
【０００４】
この多数の相互接続されたワイヤによって、相互接続されたポート間の配線混雑も引き起こされる。この混雑に対応して、より多くの配線チャネル空間を可能にするためには、ポートをさらに離して配置しなければならず、したがって、相互接続の長さはより長くなる。
【０００５】
ワイヤが長くなるほど、相互接続が低速になるだけでなく、電力消費も多くなる。これは、ワイヤが長くなることに関連した２つの影響、すなわち、ワイヤの負荷が高くなること、及びタイミング要件を満たすために必要とされる中間バッファの数が追加されること、に起因するものである。ディープサブミクロンプロセスでワイヤ遅延対ゲート遅延の比が増加することは、さらなる問題点となる。トランジスタ機能部のサイズは縮小し続けているが、ワイヤの縮小はそれとうまくスケーリングするものではない。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
したがって、上述したような問題を少なくとも部分的に克服するシステムが必要とされている。
【課題を解決するための手段】
【０００７】
上記必要性及び他の必要性は、集積回路の通信バス上のトランスポートユニット間でデータ及びタイミング情報を含む信号を送信する方法であって、
前記バス上のすべてのトランスポートユニットのクロックトリガを生成するステップであって、それによって、前記トランスポートユニットの各先行トランスポートユニットを起動して、前記トランスポートユニットの隣接する後続トランスポートユニットへウェイブ-フロントで前記信号の送信を開始し、該ウェイブ-フロントは前記トランスポートユニットのそれぞれにおいて共通の時点で起動される、生成するステップと、すべてのトランスポートユニットが、自身が前記先行トランスポートユニットから前記信号で受信する前記データ及び前記タイミング情報の少なくとも一方にタイミング調整を適用するステップであって、（１）前記先行トランスポートユニットからの前記データをキャプチャすること、（２）前記先行トランスポートユニットから前記後続トランスポートユニットへ前記通信バス上で前記データを変更することなく中継すること、及び（３）前記通信バスへ新たなデータをロードすること、の少なくとも１つを、更新されたタイミング情報を用いて後続のウェイブ-フロントで行うことにより、適用するステップと、を備えている送信方法によって達成される。
【０００８】
本発明のさらなる利点は、詳細な説明を参照することにより、該詳細な説明を図と共に検討したときに明らかになる。これらの図は、細部をより明確に示すために一律の縮尺ではない。図面において、同様の参照番号はいくつかの図を通じて同様の要素を示す。
【図面の簡単な説明】
【０００９】
【図１Ａ】一方向デイジーチェーンループ相互接続トポロジの図である。
【図１Ｂ】双方向デイジーチェーンループ相互接続トポロジの図である。
【図２】本発明の一実施形態によるポートトランスポートユニットの機能ブロック図である。
【図３】図２のポートトランスポートユニットの代表的な信号タイミング図である。
【図４】Ａ〜Ｄは、本発明の一実施形態によるシステムクロックスナップショットに従った送信元ポートから宛先ポートへの送信中のデータを表す図である。
【図５】Ａ〜Ｄは、本発明の別の実施形態によるシステムクロックスナップショットに従った送信元ポートから宛先ポートへの送信中のデータを表す図である。
【発明を実施するための形態】
【００１０】
本発明による実施形態の基本構造は、接続されるポートのデイジーチェーンである。図１は、デイジーチェーンされた４つのポートの２つの例を示している。図１Ａは一方向ループのリング状デイジーチェーンを示している。図１Ｂは開放型デイジーチェーン構成を示している。この開放型デイジーチェーン構成において、該構成は双方向接続によって双方向ループにされている。ただし、図１Ａのチェーンフローは一方向であるが、追加のチェーン接続及びトランスポートユニットをトポロジに追加して双方向接続を構成することもできることに留意されたい。
【００１１】
本発明による本明細書で説明される設計の実施形態の基本形態は、ローカル超高周波クロックジェネレータの代わりにウェイブ-フロント遅延自己タイミングを有する、図１Ａに示す構成と同様のデイジーチェーンループ構成を有する自己タイミング型時分割多重化（ＴＤＭ）バスとして指定される。図１のトランスポートユニット間にあるような本明細書に示す通信ラインは、データ及び自己タイミング信号の２つのタイプの信号からなる。同期されたデータ及び自己タイミングクロックは、フローパスに沿って或るトランスポートユニットから次のトランスポートユニットへ送出される。データは自己タイミング型であり、ユニットに到着したときに自己タイミングクロックのうちの１つの遅延バージョンによってクロック制御されて、信頼性のある受信を提供する。ユニットに到着したデータを後続のユニットへ転送する必要がある場合、データ及び自己タイミングクロックは、転送オペレーションの前に再同期される。
【００１２】
トランスポートユニット
トランスポートユニットは、（１）送信と、（２）受信と、（３）データ及びクロックの再同期を伴う遅延との３つの主な機能を有する。これらの機能に加えて、トランスポートユニットは、ポートと通信すると共に、適切な時にＴＤＭバスへのデータのロード及びＴＤＭバスからのデータの取り出しも行う機能制御ブロックも有する。
【００１３】
図２はトランスポートユニットのブロック図を示している。トランスポートユニットは、クロック選択回路２１３及び２２７、データパスマルチプレクサ２１１、制御ロジックブロック２１５、中継データレジスタ２１２、新クロック生成ブロック２１４、３つの遅延ブロック２２８、２２９、２３０、並びに２つの選択的調整可能遅延ブロック２１８及び２１９から成る。グローバルユニットクロックである１つのシステムクロック入力信号２０８がある。このシステムクロック入力２０８はすべてのトランスポートユニットに供給される。図３は、４重の時間多重化を有するトランスポートユニット信号のいくつかについての信号タイミング図の一例を示している。
【００１４】
図３において、Ｄｐ０〜Ｄｐ３と、Ｄｐ２＿ｌａｓｔ、Ｄｐ３＿ｌａｓｔ、Ｄｐ０＿ｎｅｘｔと、Ｄｓｅｎｄと、Ｄｓｅｎｄ＿ｌａｓｔ、Ｄｓｅｎｄ＿ｎｅｘｔとを含む。Ｄｐ０〜Ｄｐ３はデータが送信されるときの昇順による前のポートからのデータである。Ｄｐ２＿ｌａｓｔは最後のグローバルユニットクロックサイクルからのＤｐ２であり、Ｄｐ３＿ｌａｓｔは最後のグローバルユニットクロックサイクルからのＤｐ３であり、Ｄｐ０＿ｎｅｘｔは次のグローバルユニットクロックサイクルのＤｐ０である。Ｄｓｅｎｄはこのトランスポートユニットから次のユニットへ送信されるデータである。Ｄｓｅｎｄ＿ｌａｓｔは最後のグローバルユニットクロックサイクルからのＤｓｅｎｄデータであり、Ｄｓｅｎｄ＿ｎｅｘｔは次のグローバルユニットクロックサイクルの次のグローバルユニットクロックサイクルのＤｓｅｎｄデータである。
【００１５】
２つの隣り合ったトランスポートユニット間には、データ及び自己タイミングクロックの２つのタイプの信号がある。信号２０２は次のユニットへのデータであり、信号２０２が次にユニットに到着したとき、この信号２０２は、前のユニットからのデータである信号２０１になる。同様に、次のユニットへのクロックである信号２０７は、この信号２０７が次のユニットに到着したとき、前のユニットからのクロックである信号２０４になる。データはマルチビットペイロードで供給される。自己タイミングクロックはＭ個のインスタンスを有する。ここで、Ｍはユニットが１つのグローバルユニットクロックサイクル内で行う中継の数である。クロックエッジは、信号２０８の立ち上がりエッジ又は立ち下がりエッジとして定義され、それらのいずれか一方を、トランスポートユニットのグローバルクロックイベントとして使用することができる。
【００１６】
１つのクロックサイクルは、選択されたタイプのクロックエッジ（立ち上がり又は立ち下がり）の２つの連続したものの間の時間として定義される。任意の所与の時刻においても、自己タイミングクロックのＭ個のインスタンスの中からの１つのみがアクティブである。自己タイミングクロックは、Ｍビット回転シフトレジスタを通じて、新クロック生成ブロックであるブロック２１４によって生成される。ブロック２１４内のシフトレジスタは、システムリセットイベント中に信号２３２を使用して２Ｍ−１にリセットされる。その後、ブロック２１４内のシフトレジスタは、中継クロック信号２０３のクロックエッジ毎にシフトを行う。２１４からのシフトレジスタ出力は信号２０７として送出される。
【００１７】
自己タイミングクロック選択回路２２７は、信号２０４の遅延バージョンである信号２２１から現在アクティブな自己タイミングクロックを選択するのに使用される。この選択は信号２３１の遅延バージョンにより行われる。信号２３１は制御ロジックブロック２１５によって送出される。選択された自己タイミングクロックは、その後、データクロックである信号２２５になる。データクロック２２５はブロック２１５へ送信される。ブロック２１５には、回転シフトレジスタがある。この回転シフトレジスタは、システムリセットイベント中に１にリセットされ、データクロック信号２２５によってクロック制御される。シフトレジスタ出力は信号２３１として送出される。この信号２３１の遅延バージョンは信号２２１とＡＮＤ処理され、その出力は次にＯＲ処理されて、自己タイミングクロック選択出力信号２２５が生成される。
【００１８】
シフトレジスタは、信号２２５のクロックエッジにおいて更新され、したがって、信号２２１は更新されるので、遅延ユニット２２８によって指定されるような異なる遅延量を使用することによって、信号２２５の「オン」時刻を調整することができる。その結果、信号２２１は、次のアクティブな自己タイミングクロックをキューにおいて選択する。該次のアクティブな自己タイミングクロックは、選択更新時には「オフ」であり、それによって、信号２２５をオフにする。信号２２５の「オフ」時刻は、選択されたアクティブなクロックのクロックエッジのタイミングによって決まる。この設計は、信号２２５によって駆動されるシフトレジスタの状態変化を観察することによって信号２２５の必要とされる「オン」時刻を自己追跡（self-track）する。ブロック２２８によって追加される遅延は、最小「オン」時刻信号２２５にマージンを追加し、その結果、信号２２５は、該信号２２５によって駆動されるフリップフロップからのロバスト動作要件を満たす。
【００１９】
信号２２５と信号２０８の遅延バージョンとは、信号２２６の遅延バージョンすなわちブロック２１５からの中継信号２２６のエンドの遅延バージョンにより、多重ブロック２１３により選択される。ブロック２１３の出力は、遅延クロック信号である信号２０３になる。遅延要素２２９は、グローバルユニットクロック信号２０８とブロック２１３の入力との間に追加されて、新たなデータがグローバルユニットクロック信号２０８のポート又はロジックコアから到来したときに、中継データレジスタ２１２における十分なセットアップ時間を可能にしている。図３は、これらの信号の遅延を示している。信号２０８の遅延バージョンが選択されたとき、信号２０３の「オン」タイムも、中継信号２２６のエンドの状態変化を通じて自己追跡される。中継信号２２６は、中継クロック信号２０３によって駆動される。遅延要素２３０は、回路をロバストにするために信号２０３の「オン」タイムにマージンを加算する。
【００２０】
制御ロジックブロック２１５は、トランスポートユニットのタイミング及びデータフローを制御する。制御ロジックブロック２１５は、適切な時に、選択信号２０５を多重ブロック２１１へ送信し、前のユニットからのデータである信号２０１の遅延バージョンである信号２２０及び送信されるデータである信号２０６の一方を選択し、選択された信号を内部データバス２０９に接続する。タイミングの一例が図３に示されている。信号２０６（送信すべきデータ）が選択される場合、新たなデータがバスにロードされ、そうでない場合、前のユニットからのデータが転送され、中継器２１２用に準備される。
【００２１】
バス２０９上のデータは、中継クロック信号２０３によって統制されるように、クロック制御されて、中継データレジスタ２１２内に入る。中継データレジスタ２１２の出力は、次のユニット信号２０２へのデータとなる。信号２０１を有する次のユニットにおける保持時間の違反を回避するために、トランスポートユニットの設計は、オプションとして、調整可能な遅延ブロック２１８を含む。この調整可能な遅延ブロック２１８は、適切な保持時間を保証するために、所与の設計における回路遅延が十分長くないときに挿入することができる。制御ロジック２１５は、このユニットに宛てられたデータが到着したときに、（データクロック２２５に同期された）適切な時に信号２２０からのデータの取得も行う。選択された自己タイミングクロックが早く来すぎて、十分なセットアップ時間を保証することができない場合に、データ取得の適切なセットアップ時間を保証するために、セレクタブロック２１３の前にオプションの調整可能な遅延ブロック２１９を信号２０４に適用することができる。
【００２２】
バスに配信されるロード（及びバスから取り出されるキャプチャ(取得)）のタイミングは、プログラミング可能とすることができ、又は該タイミングをハードウェアに組み込むことができる。制御ロジック２１５は、一組のカウンタすなわちシフトレジスタを含む。カウンタすなわちシフトレジスタは、グローバルユニットクロック２０８によりリセットされる。ロード及びキャプチャのタイミングは、一実施形態では、カウンタ状態と比較されるカウンタ値として表されるか、又はシフトレジスタの内容に従って検索される一組のレジスタビットとして表される。カウンタ／シフトレジスタのクロックは、中継クロック信号２０３である。
【００２３】
上記したメカニズムは、中継信号２２６のエンドを生成するためにも使用することもできる。信号２２６は、システムリセットの際にアサートされるようにリセットされる。図３は、信号２０８のクロックエッジの後の最初の中継クロックエッジ２０３においてデータをバスにどのようにロードするのかの一例を示している。データキャプチャは、４番目の中継クロックエッジ２０３においてイネーブルされ、４番目のデータクロックエッジ２２６においてキャプチャ(取得)される。最後に、中継信号２２６のエンドも４番目の中継クロックエッジ２０３において設定される。パイプラインアーキテクチャをこの設計に適用することができる。例えば、信号２０５を信号２０６よりも１ローカルクロック早く生成することができ、信号２０６をクロック制御して中継レジスタ２１２に入れることができる。図３はその一例を示している。
【００２４】
ブロック２１５は、送信データレジスタ２１６、受信データレジスタ２１７、及び制御レジスタ２２４の３つのレジスタセットも含む。送信レジスタ２１６は、バス上にロードされるデータを供給し、受信レジスタ２１７は、バスからキャプチャされるデータを記憶する１レベルのＦＩＦＯである。制御レジスタ２２４は制御情報を含む。制御レジスタ２２４は、大部分がコンフィギュレーションレジスタであり、たとえば、信号２２２及び２２３を駆動する調整可能な遅延設定、ロード及びキャプチャのタイミングを制御するフロー制御レジスタ等である。これらのレジスタは、対応するポートロジック素子、又はポート通信チャネル２１０を通じてそれらのレジスタと通信するホストによって設定され又は読み出される。また、制御ロジック２１０は、自身のトランスポートユニットに当てられた先行トランスポートユニットからのデータをポート通信チャネル２１０を介して出力するとともに、新たなデータをポート通信チャネル２１０を介して受信し、該新たなデータを後段トランスポートユニットへ出力データとして出力する。さらに、制御ロジック２１５は、ポート通信チャネル２１０を介して命令を受信する。
【００２５】
このセクションで先に説明したように、信号２０２がローカルクロック時にラッチされるとき、次のユニット信号２０７への新たなクロックがブロック２１４によって同時に生成される。データバスの全体的な幅が大きすぎる場合には、このセクションで説明したようなトランスポートユニットを、各コピーが限られたデータバス幅を有する複数のコピーとして実現することができる。
【００２６】
ウェイブ-フロント中継（Wave-Front Relay）
デイジーチェーンループに沿った各トランスポートユニットは、グローバルユニットクロックエッジにおいてデータ及び同期ビット（又は複数の同期ビット）の送信を開始する。各ユニットは、２つのポート間のワイヤ遅延を含めて、ループフロー方向に従った前のポートからデータ及びクロック、より一般的な用語を使用すると自己タイミング情報を受信する。各ユニットは、その後、調整可能な遅延を用いて、受信された同期ビットから中継クロックを回復して生成する。再生成されたローカル中継クロックは、その後、受信データのクロック制御を行い、同時に新たな同期ビットを生成して、リングの次のポートへ送信する。この設計によって、送信されるデータ及び同期ビットを次のポートへ中継することが可能になると共に、各トランスポートユニットにおいて再同期することが可能になる。この遅延プロセスはデータがその宛先に達するまで続く。いくつかの実施形態では、すべての中継プロセスは、１つのグローバルクロックサイクル内で終了される。上記プロセスは、その後、グローバルユニットクロックサイクル毎に繰り返される。
【００２７】
中継プロセスの一例が図４のＡ〜Ｄに示されている。ここで、
Ｎ＝ポイントツーポイント通信システムのポート数
Ｔ＝バス上のタイムスロット数
＝簡単にするためにこの実施形態では（Ｎ−１）
（ｓ，ｄ）＝送信元ポートｓから宛先ポートｄへのデータ
Ｆ（（ｓ，ｄ））＝送信元ポートと宛先ポートとの間の距離
＝（ｄ−１）ｍｏｄ（Ｎ）
ｔ∈（０，１，...，Ｔ−１）＝タイムスロット
である。
【００２８】
この例では、０〜８のラベルが付けられて番号付きの円として示された９つのトランスポートユニットがある。しかしながら、これよりも多くの数又は少ない数のトランスポートユニットが存在することもできることが理解されるであろう。サイクルを開始するために、すべてのポート（トランスポートユニット）が、時計方向に４ポート離れている相手方のポートへデータを同時に送信する。このステップは、データが３つの中継ステージの後の宛先ポートに到着したときに終了する。図４のＡでは、（システムクロックに同期された）ｔ＝０であり、データは送信元ポートから出発する。図４に示すように、各所与の時刻におけるデータは、（送信元ポート、宛先ポート）という表記を用いて２つのポート間の途中に示されている。図４のＢでは、ｔ＝１であり、データは送信中である。図４のＣでは、ｔ＝２であり、データはまだ送信中である。図４のＤでは、ｔ＝３であり、データは宛先ポートに到着する。
【００２９】
ポイントツーポイント（Ｐ２Ｐ）相互接続
上述したように、Ｗを或るポートから他の或るポートへ送信される情報のビット数とし、Ｗがポートのすべてにわたって同じであると仮定すると、Ｎ個のポート間のポイントツーポイント相互接続には、Ｎ＊（Ｎ−１）＊Ｗ本の接続が必要とされる。本明細書で提案されるＴＤＭバスを使用すると、必要とされるワイヤ相互接続数は大幅に削減される。この削減を達成する１つの方法は、Ｎ個のポートを相互に接続するＮ−１本の別々のデイジーチェーンを確立することである。各デイジーチェーンはＷ＋ｎビット幅である。ここで、ｎはデイジーチェーンごとに使用される同期ビット数である。各デイジーチェーンの機能は以下の表１に列挙されている。この実施形態では、各宛先ポートと各送信元ポートとの間の距離は、そのチェーンにおけるポートのすべてについて同じである。
【表１】
0005731391.tif 000002
【００３０】
直接的Ｐ２Ｐ接続を上回る接続数節減
上記と同じ仮定を使用すると、直接的ポイントツーポイント接続の接続数はＮ＊（Ｎ−１）＊Ｗ本である。ＴＤＭポイントツーポイント接続の接続数は、表１が示すように（Ｎ−１）＊（Ｗ＋ｎ）本として計算することができる。したがって、「ワイヤの節減」は、
（ＴＤＭバスを用いたＰ２Ｐ接続数）／（直接的Ｐ２Ｐ接続数）
＝（Ｗ＋ｎ）／（Ｗ×Ｎ）
≒１／Ｎ      （ただし、ｎ≪Ｗの場合）
として計算される。
【００３１】
相互接続の全接続長で測定される、直接的Ｐ２Ｐ接続を上回る削減はここでは計算されていない。その理由は、全接続長が実際のポートのロケーション及び配線計画に大きく依存するからである。ＴＤＭ  Ｐ２Ｐ接続の全接続長は、ポート対ポート配線距離ｌが定数であると仮定して、以下に与えられるように計算することができる。
全長Ｌ＝（Ｎ−１）２×（Ｗ＋ｎ）×ｌ
【００３２】
さらなる最適化によるＴＤＭバス数の削減
表１は、ＴＤＭバスを使用してＰ２Ｐ接続を確立する単純な方法を示しており、直接的Ｐ２Ｐ接続を比較して接続数が大幅に削減されることを示している。接続数は、バスタイムシェアリングによってさらに約半分に削減することができる。この実施形態では、送信元ポートから遠く離れたポート宛先を有するデータについて指定されたチェーンを、送信元ポートにより近いデータ宛先のチェーンとペアにすることができる。以下の表２は、１つのバスを共有するチェーンペアの２つの実施形態を示している。総チェーン数は、Ｎが奇数であるか偶数であるか及び使用されるペアリング方式に応じて、Ｎ−１本から、（Ｎ−１）／２とＮ／２＋１本との間のいずれかの本数に削減される。相互接続の総数を削減するために使用することができる本発明の範囲内に含まれる他のシェアリング方式があることが理解されるであろう。
【表２】
0005731391.tif 000003
【００３３】
図５は、図４について上記で提供したような用語の同じ定義を用いて、タイムシェアの実施形態内で中継プロセスがどのように機能するのかを示している。この例はＮ＝９を有し、ｆ＝３の第１のステップの宛先及びｆ＝１の第２のステップの宛先を有する。図５のＡでは、（システムクロックに同期された）ｔ＝０であり、データは送信元ポートから出発する。図５のＢでは、ｔ＝１であり、データは送信中である。図５のＣでは、ｔ＝２であり、データはｆ＝３の宛先ポートに到着する。ここで、データは、ｆ＝１について新しく計画される。図５のＤでは、ｔ＝３であり、データはｆ＝１の宛先ポートに到着する。
【００３４】
タイムシェアの実施を容易にするために、（図２に示すような）トランスポートユニット制御ブロック２１５に変更を行うことができる。たとえば、制御ロジックが単一のグローバルユニットクロックサイクル内で２回以上、適切なタイミングにおいてロード及びキャプチャを行うことができるように制御ロジックを変更することができる。それに応じて、レジスタ２１６及び２１７の容量を、選ばれたタイムシェア方式に従って増加させることができ、適切な順序で適切なストレージレジスタを用いてロード及びキャプチャを動作させることができる。
【００３５】
双方向ＴＤＭバスによるシステム性能の改善
いくつかの用途では、提案されたＴＤＭバスの最悪の場合の遅延が長くなりすぎて、相互接続の速度要件を満たすことができない恐れがある。この最悪の場合の遅延は、Ｎ−１個の中継ステージを通過する結果として生じる。多数の中継ステージを有するチェーンに双方向ＴＤＭバスを使用することによって、最悪の場合の中継ステージ数をＮ−１個から、Ｎが奇数であるときは（Ｎ−１）／２個に、Ｎが偶数であるときはＮ／２個に削減することができる。表３は、このような双方向ＴＤＭバスの一例を提供している。
【表３】
0005731391.tif 000004
【００３６】
前のセクションで説明したバスタイムシェアリング技法を双方向ＴＤＭバスにも適用して接続数を削減することができることが理解されるであろう。
【００３７】
ポートアーキテクチャ
次に図６を参照して、Ｎポートスイッチアーキテクチャの一部の一実施形態が示されている。この実施形態では、各ポート１００はＭ個のアービトレーション要求を取り扱うことができる。各アービトレーション要求は各ポート１００に進み、これらのポート１００の１つが図６に示されている。したがって、各ポート１００にはＭ＊Ｎ個のアービトレーション要求があり、Ｎ個のポート１００のすべての場合にはＭ＊Ｎ＊Ｎ個の総アービトレーション要求がある。Ｎ個のポート１００は、図１Ｂに示すような双方向デイジーチェーンとして接続することもできるし、図１Ａに示すような一方向デイジーチェーンループ又はリングで接続することもできる。図６に示す実施形態では、デイジーチェーンは、ポート０がポート１へ物理ワイヤを介してアービトレーション要求を送信し、ポート１がポート２へ送信し、以下同様に送信するような一方向リングとして構成される。ポート０はポートＮ−１からアービトレーション要求を直接受信する。
【００３８】
各ポート１００は、チップクロック１１０から受信する信号よりもＫ倍高い周波数で動作するクロックジェネレータ１０２を含む。ポート１００は、シフトレジスタからなるＭ個のバンク１０４も有する。これらのＭ個のバンクのそれぞれは、Ｎ個のシフトレジスタを有し、これらのＮ個のシフトレジスタは一時記憶に使用される。ポート１００はアービトレーション要求レジスタ１０６も含む。
【００３９】
各アービトレーション要求は、Ｎ個のシフトレジスタからなるバンク１０４の１つに関連付けられる。Ｎ個のシフトレジスタからなる適切なバンク１０４における各レジスタはＮ個のポート１００の１つから来る要求を記憶する。シフトレジスタからなる適切なバンク１０４内の或るレジスタから別のレジスタへアービトレーション要求をシフトすることによって、Ｎ個のシフトレジスタは、ポート１００のすべてからの対応するアービトレーション要求を含む。図６に示すように、信号ＡｒｂＲｅｑ０、ＡｒｂＲｅｑ１、…ＡｒｂＲｅｑＭ−１は、アービトレーションユニットから生成されるアービトレーション要求である。これらのアービトレーション要求は、アービトレーション用のＮ個のポート１００に進む。
【００４０】
ロードデータ（ＬＤ）信号がアサートされたとき、要求は、チップクロック１１０信号の立ち上がりエッジにおいて、シフトレジスタからなる適切なバンク１０４のＲｅｇ０内にロードされる。制御ブロック１０８は、Ｎ個のシフトレジスタからなるすべてのバンク１０４のレジスタＲｅｇ０にロードデータ信号を出力し、リング構造内へのアービトレーション要求のロードを起動する。ロードデータ信号はクロックジェネレータ１０２が無効にされるときにアサートされる。これはチップクロック１１０信号がローであるときに起こる。その後、ロードデータ信号はＮＣＬＫ信号の立ち上がりエッジ後にデアサートされる。
【００４１】
Ｒｑｔｉｎ０、Ｒｑｔｉｎ１、…、ＲｑｔｉｎＭ−１は、前のポート１００から受信されるＭ個のリング信号であり、Ｎ個のシフトレジスタからなるＭ個のバンク１０４のそれぞれのレジスタＲｅｇ０の入力に送られる。Ｒｅｇ０の出力（Ｒｑｔ０＿ｏｕｔ０、Ｒｑｔ１＿ｏｕｔ０、…ＲｑｔＭ−１＿ｏｕｔ０）は、リング又はチェーンの次のポート１００の入力Ｒｑｔｉｎ０、Ｒｑｔｉｎ１、…ＲｑｔｉｎＭ−１へ送られる。
【００４２】
ＡｒｂＲｅｑ０、ＡｒｂＲｅｑ１、…ＡｒｂＲｅｑＭ−１がレジスタ内にロードされた後、Ｒｑｔ０＿ｏｕｔ０信号、Ｒｑｔ１＿ｏｕｔ０信号、…ＲｑｔＭ−１＿ｏｕｔ０信号は、クロックジェネレータ１０２からの最初のクロック信号後の対応するポート１００のアービトレーション要求０を含む。クロックジェネレータ１０２は、チップクロック１１０信号の立ち上がりエッジで有効にされ、制御ユニット１０８の内部カウンタが所定のクロックサイクル数に達するまで引き続き有効にされる。クロックジェネレータ１０２が無効にされたとき、それ以上のクロック信号は生成されず、クロック信号ＮＣＬＫはチップクロック１１０信号の次の立ち上がりエッジまでローのままにされる。クロックジェネレータ１０２がチップクロック１１０のＮ倍の周波数（Ｋ＝Ｎ）を有するクロック信号を生成するとき、制御ユニット１０８の内部カウンタは、該カウンタがＮにカウントし、各ポート１００からのアービトレーション要求が所望のポート１００にシフトされたとき、クロックジェネレータ１０２を無効にする。
【００４３】
これは１つのチップクロック１１０サイクルのみで成し遂げられるので、オペレーションのレイテンシは１である。同様に、これは、制御ユニット１０８を変更することによってＫ＝Ｎ／２又はＫ＝Ｎ／４等であるときにも成し遂げることができる。唯一の相違は、アービトレーション要求が所望のポート１００に進むのに２つのチップクロック１１０サイクル又は４つのチップクロック１１０サイクルを要するということである。ＮＣＬＫ信号の立ち上がりエッジにおいて、各ポート１００は、Ｒｅｇ０において、リングの前のポート１００からのアービトレーション要求を受信する。これらのアービトレーション要求は、次のクロックサイクルでＮ個のシフトレジスタからなるバンク１０４のそれぞれのＲｅｇ１に進む。Ｒｅｑ１の出力は次のサイクルでＲｅｇ２に進み、以下同様に動作する。
【００４４】
Ｎ個のシフトレジスタからなるバンク１０４の出力は、アービトレーション要求レジスタ１０６に進み、チップクロック１１０信号の次の立ち上がりにおいてラッチされる。Ｎ個のシフトレジスタからなるバンク１０４はＭ個存在するので、アービトレーション要求レジスタからなるバンク１１０はＭ個存在する。アービトレーション要求レジスタからなるＭ個のバンク１１０の出力はアービトレーションユニットに進み、ポート１００間の接続を決定する。図７は、（Ｋ＝Ｎ）のときに、Ｎ個のシフトレジスタ０がチップクロックサイクルの終了時にＮ個のポート１００のいずれかからのアービトレーション要求０をどのように収容するのかについてのタイミング図を示している。ここで、下付き文字はポート１００の番号を示す。
【００４５】
要約
このように、本発明のさまざまな実施形態は、ウェイブ-フロント中継自己タイミング技法を使用したポイントツーポイントＴＤＭバス、トランスポートユニットの新しい設計、ＴＤＭバスタイムシェア技法、及び双方向ＴＤＭバスを新たに説明している。
【００４６】
本明細書で説明したＰ２Ｐ  ＴＤＭバスは、直接的リンクポイントツーポイントトポロジと比較して、ポート間に必要とされる接続数を大幅に削減する。具体的には、Ｐ２Ｐ  ＴＤＭバスはＯ（Ｎ）の接続を使用する一方、直接的Ｐ２ＰリンクバスはＯ（Ｎ２）の接続を必要とする。さらに、Ｐ２Ｐ  ＴＤＭバスは、Ｐ２Ｐ接続に必要とされる全体的な配線面積も大幅に削減する。Ｐ２Ｐ  ＴＤＭバスは、相互接続数を少なくすることと引き換えにワイヤの幅及びピッチを増加させることによってワイヤ遅延の影響を削減することができる。本明細書で説明したＰ２Ｐ  ＴＤＭバスは、ワイヤ負荷が削減されたことに起因して、相互接続の電力浪費も削減する。
【００４７】
本明細書で説明したウェイブ-フロント中継自己タイミング技法は、Ｐ２Ｐ  ＴＤＭバスに非常に効果的な技法である。グローバルユニットクロックサイクルごとに、接続されたＰ２Ｐネットワーク上のすべてのポートが、データ及び自己タイミング情報をチェーンの下流の次のポートへ送信することによって始動する。一方で、すべてのポートはチェーンにおける前のポートからデータ及び自己タイミング情報を受信する準備ができている。各ポートは、自己タイミング情報を使用して再同期を行い、その後、データを中継し、中継されたデータと共に新たな自己タイミング情報を生成し、チェーンの下流の次のポートへ送信する。各ポートは、入来する自己タイミング情報からクロック信号を抽出し、その際に、各ポートにおいて高速（倍数クロックレート（multiple clock rate））のクロックを用いる必要性を取り除く。
【００４８】
本明細書で説明したウェイブ-フロント中継自己タイミング技法は、ローカル高周波数クロックジェネレータによって課せられる整合要件も削減し、同期された中継に使用されるポートに沿ったあらゆるデータ／クロックの不整合の蓄積も取り除く。また、ウェイブ-フロント中継自己タイミング技法は、中継プロセスを１つのグローバルユニットクロックサイクルにのみ制限し、グローバルクロックエッジにおいて中継プロセスのすべてを再同期する。これによって、或る中継プロセスから次の中継プロセスへのパスの不整合の蓄積が防止される。加えて、ウェイブ-フロント中継自己タイミング技法は、中継遅延が通常ローカル高周波クロック周期よりも小さいので、デイジーチェーン性能を増加させる。
【００４９】
本設計のトランスポートユニットは、同期検出、ローカルクロック生成、データパスロード機能及びデータパスキャプチャ機能、並びにデータ／同期ビット（複数可）再同期を特徴とする。これらのすべてによって、ウェイブ-フロント中継自己タイミング技法は可能になる。さらに、本明細書で説明したようなトランスポートユニットの設計は、ユニットクロックと中継クロックの開始との間に遅延が追加されることを特徴とする。これによって、同じユニットクロックサイクルデータをバス上で使用することが可能になり、余分なクロックサイクルレイテンシーも余分な記憶も回避される。トランスポートユニットは、オプションの調整可能な遅延をデータパス及び同期パス上に含み、これによって、保持時間、及び中継を別々に調整するためのセットアップ時間が可能になる。加えて、トランスポートユニットは、データ中継及びデータキャプチャ用の別々のローカルクロックを有し、これによって、データキャプチャオペレーションが完了するのにより多くの時間が可能になり、したがって、ユニットクロックサイクルがトランスポート用にフルに使用されるように最大化される。これによっても、より高速の性能が可能になる。
【００５０】
上述したように、本明細書で説明したＴＤＭバスタイムシェア技法によって、Ｐ２Ｐ  ＴＤＭ相互接続数が約半分に削減される一方、双方向設計によってもＰ２Ｐ  ＴＤＭバスシステム性能が２倍になる。
【００５１】
代替的な実施形態では、Ｐ２Ｐ  ＴＤＭバスは、ブロードキャストの有無に関わらずクロスバーの用途用に単純化及び変更される。Ｐ２Ｐ  ＴＤＭバスは、マルチステージ相互接続用にカスケード又はブリッジすることもできる。レイテンシが高速システムで認められる場合、グローバルユニットクロック速度をマルチシステムクロックサイクルに低減することができ、スループット要件を満たすためにバスをそれに応じて広くすることができる。
【００５２】
本発明の好ましい実施形態の上記説明は、例示及び説明の目的で提示されたものである。網羅的であることも、開示したその正確な形態に本発明を限定することも意図されていない。上記教示に鑑み、自明の変更又は変形が可能である。実施形態は、本発明の原理及びその実用的な用途の最良の例示を提供し、それによって、当業者が、本発明をさまざまな実施形態でさまざまな変更と共に、検討した特定の使用に適するように利用することを可能にする目的で選ばれて説明されている。このようなすべての変更及び変形は、添付の特許請求の範囲が適正かつ合法的で公正に権利を有する範囲に従って解釈されたときに、添付の特許請求の範囲によって規定される本発明の範囲内にある。
【図１Ａ】
0005731391.tif 000005
【図１Ｂ】
0005731391.tif 000006
【図２】
0005731391.tif 000007
【図３】
0005731391.tif 000008
【図４Ａ】
0005731391.tif 000009
【図４Ｂ】
0005731391.tif 000010
【図４Ｃ】
0005731391.tif 000011
【図４Ｄ】
0005731391.tif 000012
【図５Ａ】
0005731391.tif 000013
【図５Ｂ】
0005731391.tif 000014
【図５Ｃ】
0005731391.tif 000015
【図５Ｄ】
0005731391.tif 000016
【図６】
0005731391.tif 000017
【図７】
0005731391.tif 000018