(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-14
(45)【発行日】2024-03-25
(54)【発明の名称】プロセッサコア間での改善されたデータ転送のための方法および装置
(51)【国際特許分類】
H04L 45/122 20220101AFI20240315BHJP
H04L 47/43 20220101ALI20240315BHJP
【FI】
H04L45/122
H04L47/43
(21)【出願番号】P 2021556205
(86)(22)【出願日】2019-12-12
(86)【国際出願番号】 US2019065967
(87)【国際公開番号】W WO2020123796
(87)【国際公開日】2020-06-18
【審査請求日】2022-12-02
(32)【優先日】2018-12-12
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】504041206
【氏名又は名称】インテラクティック ホールディングス リミテッド ライアビリティー カンパニー
(73)【特許権者】
【識別番号】521258289
【氏名又は名称】コーク エス.リード
(73)【特許権者】
【識別番号】521258290
【氏名又は名称】デイビッド マーフィー
(73)【特許権者】
【識別番号】521258304
【氏名又は名称】ロナルド アール.デニー
(73)【特許権者】
【識別番号】521258315
【氏名又は名称】マイケル アール.アイヴス
(73)【特許権者】
【識別番号】521258326
【氏名又は名称】リード デヴァニー
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】コーク エス.リード
(72)【発明者】
【氏名】デイビッド マーフィー
(72)【発明者】
【氏名】ロナルド アール.デニー
(72)【発明者】
【氏名】マイケル アール.アイヴス
(72)【発明者】
【氏名】リード デヴァニー
【審査官】大石 博見
(56)【参考文献】
【文献】米国特許出願公開第2018/0241694(US,A1)
【文献】米国特許出願公開第2014/0341077(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 45/122
H04L 47/43
(57)【特許請求の範囲】
【請求項1】
ネットワークを通ってデータパケットを通信するように構成された相互接続装置であって、前記データパケットは、データパケットを受信するためにターゲット処理コアを識別するアドレスサブパケットを含む複数のサブパケット内に配置され、前記相互接続装置は、
・チップ上のData Vortexスイッチと、
・前記Data Vortexスイッチと同じチップ上の処理コアのアレイと、を含み、前記Data Vortexスイッチは外部のソースからデータを受け取り、及び前記処理コアのアレイは前記Data Vortexスイッチからデータを受信することを特徴とする、相互接続装置。
【請求項2】
前記処理コアのアレイは、前記ターゲット
処理コア及び送信コアを含み、前記送信コアは、前記ターゲット
処理コアのロケーションのアドレスが付されたアドレスヘッダと、前記ターゲット
処理コアに送られるデータを伴うペイロードと、を含むデータパケットを形成することにより、前記ターゲット
処理コアにデータパケットを送ることができることを特徴とする、請求項1に記載の相互接続装置。
【請求項3】
前記送信コアからのデータパケットは、前記送信コアから前記Data Vortexスイッチに送られ、前記Data Vortexスイッチは、前記アドレスヘッダに基づいて前記データパケットを前記ターゲット
処理コアに向けてルーティングすることを特徴とする請求項2に記載の相互接続装置。
【請求項4】
前記Data Vortexスイッチに送られた前記データパケットは、前記Data Vortexスイッチ内で再構成されず、ワームホール様式で前記Data Vortexスイッチを通過することを特徴とする、請求項3に記載の相互接続装置。
【請求項5】
前記アドレスヘッダに含まれるビットはフリット内に含まれ、バス幅のデータパス内の前記Data Vortexスイッチを通過することを特徴とする、請求項4に記載の相互接続装置。
【請求項6】
前記Data Vortexスイッチは、前記Data Vortexスイッチと同じチップの上の処理コアアレイ上の2つ以上の処理コアのコアとコアとの接続、または前記Data Vortexスイッチと異なるチップの上の処理コアアレイ上の2つまたはそれ以上の処理コアのコアとコアとの接続に使用されることを特徴とする請求項5に記載の相互接続装置。
【請求項7】
送信側処理コアから前記Data Vortexスイッチに送られたデータパケットは、前記ターゲット
処理コアの宛先により1つまたは2つのパスを通過し、
(i)前記Data Vortexスイッチと同じチップのアレイ中の送信側処理コアが同じチップの同じアレイ中のターゲット処理コアにデータパケットを送った場合、前記データパケットは、前記Data Vortexスイッチへのパスで送られ、前記送信側処理コアと同じアレイ中の前記ターゲット処理コアに向けて反転する、
(ii)チップ上の送信側処理コアが異なるチップ上の異なるアレイ中のターゲット処理コアにデータパケットを送った場合、前記
データパケットは、前記送信側処理コアから前記ターゲット処理コアを含むチップ上の前記Data Vortexスイッチまでのパスで送られ、前記Data Vortexスイッチは、前記データパケットを前記ターゲット処理コアに送ることを特徴とする、請求項6に記載の相互接続装置。
【請求項8】
単一の処理チップにおける前記処理コアの数を、K>Nである1からKの処理コアと通信する処理チップ上のアレイ内の1からNの処理コアの範囲とすることができることを特徴とする、請求項7に記載の相互接続装置。
【請求項9】
ネットワークを通ってデータパケットを通信するように構成された相互接続装置であって、前記データパケットは、データパケットを受信するためにターゲット処理コアを特定するアドレスサブパケットを含む複数のサブパケット内に配置され、前記相互接続装置は、
・それぞれがData Vortexスイッチ及び処理コアのアレイを含む複数のチップと、
・各Data Vortexスイッチ及び前記複数のチップの各々の上の処理コアの各アレイと通信するマスタData Vortexスイッチと、を含み、前記マスタData Vortexスイッチは、各Data Vortexスイッチまたは処理コアの各アレイの間でデータパケットを通信することを特徴とする、相互接続装置。
【請求項10】
前記複数のチップのいずれか1つに含まれる前記処理コアのアレイのいずれか1つの中の送信側処理コアは、前記ターゲット処理コアのロケーションを特定するヘッダと、送られる日付を含むペイロードとを有する前記送信側処理コアのコアパケットを形成することにより、前記複数のチップの他の1つの処理コアのアレイに含まれるターゲット処理コアにデータパケットを送るができることを特徴とする、請求項9に記載の相互接続装置。
【請求項11】
前記データパケットは、前記送信側処理コアから前記マスタData Vortexスイッチへ、前記マスタData Vortexスイッチからターゲット処理コアを含むチップ上の前記Data Vortexスイッチへ、及び前記ターゲット処理コアを含む前記チップ上の前記Data Vortexスイッチから前記ターゲット処理コアへ送られることを特徴とする、請求項10に記載の相互接続装置。
【請求項12】
前記データパケットは、前記送信側処理コアから前記マスタData Vortexスイッチへ、及び、前記マスタData Vortexスイッチから前記ターゲット処理コアへ送られることを特徴とする、請求項10に記載の相互接続装置。
【請求項13】
前記データパケットは、前記送信側処理コアから前記送信側処理コアと同じチップ上の前記Data Vortexスイッチへ送られ、及び、前記送信側処理コアと同じチップ上の前記Data Vortexスイッチから、前記データパケットを前記ターゲット処理コアと同じチップ上の前記Data Vortexスイッチへ送られ、または直接前記ターゲット処理コアへ送ることができる前記マスタData Vortexスイッチへ送られることを特徴とする、請求項10に記載の相互接続装置。
【請求項14】
前記データパケットは、前記送信側処理コアから前記送信側処理コアと同じ処理コア上の前記Data Vortexスイッチへ、当該Data Vortexスイッチから前記ターゲット処理コアへ直接送られることを特徴とする、請求項10に記載の相互接続装置。
【請求項15】
各チップ上の前記マスタData Vortexスイッチおよび前記Data Vortexスイッチのいずれも
は、パケットの異なるグループが前記スイッチに入るときに、グローバルに設定およびリセットすることを必要としない、ことを特徴とする請求項10に記載の相互接続装置。
【請求項16】
ネットワーク内でデータパケットを通信する方法であって、
データパケットを受信するためのターゲット処理コアを特定するアドレスサブパケットを含む、複数のサブパケット内にデータパケットを配置すること、
Data Vortexスイッチ及び処理コアのアレイを同じチップに置くことと、
外部ソースからのデータを前記Data Vortexスイッチにおいて受信することおよび前記Data Vortexスイッチからのデータを前記処理コアのアレイにおいて受信することと、を含むことを特徴とするデータパケットを通信する方法。
【請求項17】
ターゲットコアのアドレスを含むヘッダと、前記ターゲットコアに送られるデータを含むペイロードとを有する送信コアにおけるデータパケットの形成をさらに含むことを特徴とする、請求項16に記載のデータパケットを通信する方法。
【請求項18】
ネットワーク内でデータパケットを通信する方法であって、
データパケットを受信するためのターゲット処理コアを識別するアドレスサブパケットを含む、複数のサブパケット内に前記データパケットを配置することと、
Data Vortexスイッチ及び処理コアのアレイの両方を複数のチップ上に置くことと、を含み、
・前記複数の各チップ上の前記Data Vortexスイッチおよび処理コアのアレイの両方を、マスタData Vortexスイッチに接続し、前記マスタData Vortexスイッチは、各Data Vortexスイッチまたは処理コアの各アレイとの間でデータパケット通信をすることを特徴とする、データパケットを通信する方法。
【請求項19】
前記複数のチップのいずれか1つに含まれる前記処理コアのアレイのいずれか1つに含まれる送信側処理コアから、前記複数のチップの他の1つに含まれる処理コアのアレイに含まれる
ターゲット処理コアにデータパケットを送ることと、前記
ターゲット処理コアのロケーションを識別するヘッダと、送られるデータを含むペイロードとを有する前記送信側処理コア用のデータパケットを形成することと、をさらに含むことを特徴とする、請求項18に記載のデータパケットを通信する方法。
【請求項20】
前記データパケットを、前記送信側処理コアから前記マスタData Vortexスイッチに送り、及び、前記ターゲット処理コアを含むチップ上の前記マスタData Vortexスイッチと、前記ターゲット処理コアを含むチップ上の前記Data Vortexスイッチとから前記ターゲット処理コアへ送ることをさらに含むことを特徴とする、請求項19に記載のデータパケットを通信する方法。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、プロセッサコア間での改善されたデータ転送のための方法および装置に関する。
【背景技術】
【0002】
関連特許の相互参照
本出願は、「Data Transfer Between The Cores In A Microprocessor」と題された、2018年12月12日に出願された米国仮特許出願第62/778,354号明細書の優先権を主張し、その全体が参照により本明細書に組み込まれている。開示されているシステムおよび動作方法は、以下の特許において開示されている主題にも関連し、以下の特許は、それらの全体が参照により本明細書に組み込まれている:(1)Coke S.Reedを発明者として指定する、「A Multiple Level Minimum Logic Network」と題された米国特許第5,996,020号明細書、(2)John Hesseを発明者として指定する、「A Scalable Low Latency Switch for Usage in an Interconnect Structure」と題された米国特許第6,289,021号明細書、(3)John Hesseを発明者として指定する、「Multiple Path Wormhole Interconnect」と題された米国特許第6,754,207号明細書、Coke S.ReedおよびDavis Murphyを発明者として指定する、「Parallel Data Switch」と題された米国特許第9,954,797号明細書。
【0003】
大規模なコンピューティングおよび通信システムの構成要素は、相互接続線によって接続されたスイッチチップの接続構造を用いて構成され得る。スイッチチップポート数を増加させることは、チップ間ホップの数を減少させ、より低いレイテンシ、および、より低いコストにつながる。これらのシステムにおいて必要とされるものは、ポート数が大きく、短いパケットを取り扱うことも可能なスイッチチップである。
【0004】
今日のマルチコアプロセッサにおいて、データは、メッシュを使用してコア間で転送される。コアは、メッシュ構造に配置されたタイルである。これらの技法は、チップ上でコア同士を接続する際に使用されてきたが、第1のプロセッサ上のコアから第2のプロセッサ上のコアへデータを転送する際に効果的ではない。メッシュ構造に起因する困難さに加えて、チップ間でデータを搬送するクロスバースイッチを通過する長いパケットの使用は、マルチチップ用途においてさらなる困難さをもたらす。長いパケットは、低い帯域幅、高いレイテンシ、限定されたスケーラビリティ、および高い輻輳を引き起こす。ここで特許請求される本発明の目的は、プロセッサコンピューティングコア間で情報を交換するための高帯域幅かつ低レイテンシの方法および装置を提供することである。これは、Data Vortex(登録商標)スイッチと処理コアのアレイとを同じチップ上に搭載することによって達成される。
【発明の概要】
【0005】
相互接続装置の実施形態は、高いクロックレートでも改善された信号完全性、増加された帯域幅、および、より低いレイテンシを可能にする。コアアレイのための相互接続装置において、送信側処理コアは、そのヘッダが受信側コアのロケーションを示し、そのペイロードが送信ターゲットのデータであるパケットを形成することによって、受信側コアへデータを送ることができる。パケットは、本明細書において、および本明細書に組み込まれている特許において説明されるData Vortexスイッチへ。Data Vortexスイッチは、処理コアのアレイと同じチップ上にあり、受信側処理コアを含む処理コアアレイへパケットをルーティングすることによって、まず、受信側コアへパケットをルーティングする。Data Vortexスイッチは、次いで、プロセッサコアアレイ内の受信側プロセッサコアへパケットをルーティングする。Data Vortexスイッチはクロスバースイッチではないので、パケットの異なるグループがスイッチに入る際に、Data Vortexスイッチをグローバルに設定およびリセットする必要はない。Data Vortexスイッチを処理コアのアレイと同じチップ上に搭載することは、必要とされる電力を低減し、レイテンシを低減する。
【図面の簡単な説明】
【0006】
装置と動作の方法との両方に関する本発明の実施形態は、以下の説明および添付の図面を参照することによって、最もよく理解され得る。
【
図1】複数のサブパケットフリットを含むパケットのフォーマットの実施形態を例示するデータ構造図である。
【
図2A】ノードアレイと、接続線と、FIFOとを含む、参照されている米国特許第6,289,021号明細書および第6,754,207号明細書の実施形態において説明されているスイッチのハイレベル図を描いた概略ブロック図である。
【
図2B】ノードアレイ相互接続を含む、本明細書において開示されているシステムの実施形態におけるスイッチのハイレベル図を示す概略ブロック図である。
【
図3A】参照されている米国特許第6,289,021号明細書および第6,754,207号明細書において説明されているような、単純なスイッチノードのペアを例示する概略ブロック図である。
【
図3B】参照されている米国特許第6,289,021号明細書および第6,754,207号明細書において説明されているスイッチの「フラットレイテンシ」または「ダブルダウン」バージョンにおいて説明されているような、ノードの接続されたペアを示す概略ブロック図である。
【
図4】1ティック遅延論理素子と、1ティック遅延FIFO素子と、バスを組み合わせるための多重化デバイスとを含む、開示されているシステム(LDMモジュールと本明細書において称される)の実施形態におけるノードのためのビルディングブロックを描いた概略ブロック図である。
【
図5】開示されているシステムの実施形態による、4つの相互接続されたLDMモジュールを示すブロック図である。
【
図6】開示されているシステムの実施形態において使用されるスイッチングノードを例示するブロック図である。
【
図7】開示されているシステムのスイッチングノードの実施形態において論理素子へ送られる制御信号の送信元およびタイミングを示すブロック図である。
【
図8】本明細書において開示されているシステムの実施形態のスイッチングノードの論理素子において使用される制御レジスタを例示するブロック図である。
【
図9A】様々なレベルの相互接続構造上のノードの相互接続を例示する概略的なブロック図である。
【
図9B】様々なレベルの相互接続構造上のノードの相互接続を例示する概略的なブロック図である。
【
図9C】様々なレベルの相互接続構造上のノードの相互接続を例示する概略的なブロック図である。
【
図10】説明されている相互接続構造におけるメッセージ通信のタイミングを例示するタイミング図である。
【
図11】ヘッダとペイロードとを含むメッセージパケットのフォーマットを例示する図示表現である。
【
図12】2つの構成要素を含むチップのブロック図である。第1の構成要素は、Data Vortexスイッチであり、第2の構成要素は、処理コアのアレイである。Data Vortexスイッチは、データパケットを受信し、それらをコアアレイ内の適当なコアへルーティングする。
【
図13】
図12のチップと、処理コアのアレイ内のコアからData Vortexスイッチへパケットを転送する接続とから成る図である。これは、処理コアのアレイ内の第1の処理コアが、処理コアのアレイ内の第2の処理コアへデータを送るためのメカニズムを提供する。
【
図14】各々がData Vortexスイッチと処理コアのアレイとを同じチップ上に有する、4プロセッサコアアレイを示す図である。各プロセッサコアアレイからのパケットの転送は、マスタData Vortexスイッチを通じて指示される。
【発明を実施するための形態】
【0007】
本明細書において開示されるデバイス、システム、および方法は、多数のオブジェクト、例えば、ルータ内のラインカード、パラレルコンピュータ内のネットワークインターフェースカード、または他の通信システムおよびデバイスを接続する際に非常に効果的なネットワーク相互接続システムを説明する。説明されるネットワーク相互接続システムは、非常に低いレイテンシだけでなく、非常に高い帯域も有する。
【0008】
コンピューティングおよび通信システムは、ポート数が多く、短いパケットを取り扱うことも可能なスイッチチップを用いて構成される場合に、最も高い性能を実現する。組み込まれている米国特許第5,996,020号明細書および第6,289,021号明細書において説明されているData Vortexスイッチチップは、ポート数が非常に多く、短いメッセージパケットを送信する能力を有する。
【0009】
本明細書において開示されているシステムおよび方法は、以下の2つの基本的な改善点を含む、複数の向上点うちの1つまたは複数によって実現される、組み込まれている米国特許第6,289,021号明細書および第6,754,207号明細書に対するいくつかの改善点を含む:1)ノード間のパラレルデータ線において、発明者らによって、帯域幅が増加され、最初のビットインから最後のビットアウトまでのレイテンシが低減され、2)各レベルにおいて1ビット長のパラレルFIFOを含むスイッチを通じてデータパスをセットアップするロジックによって、帯域幅はさらに増加され、レイテンシはさらに低減され、組み込まれている米国特許第6,289,021号明細書および第6,754,207号明細書において可能であったよりもはるかに高速のクロックの使用を可能にする。
【0010】
組み込まれている米国特許第6,289,021号明細書は、チップ上に配置されるのに適切なスイッチを説明している。そのシステムにおいて、(パケットの形態の)データは、1ビット幅のデータパスをワームホール様式でスイッチを通過する。パケットは、ヘッダとペイロードとを含む。ヘッダの第1のビットは、メッセージの存在を示す状態ビット(ほとんどの実施形態において1の値に設定される)である。単純な構成において、残りのヘッダビットは、ターゲット出力ポートのバイナリアドレスを表す。スイッチのトポロジーは、リングの豊富に接続されたセットを含む。(2N×2N)スイッチは、異なるレベルでのリング間の接続を有する、(N+1)レベルに配置されたリングを含む。パケットは、レベルNにおいてスイッチに入り、レベル0においてスイッチを出る。レベルNでスイッチに入るメッセージパケットのヘッダは、1つの状態ビットと、N個のターゲットアドレスビットとを有する。レベルNのノードにおけるロジックは、1)状態ビット、2)ヘッダ内のアドレスの第1のビット、3)レベルN-1のノードから送られる制御信号、および4)(基本的な実施形態において)レベルNのノードからの制御信号に基づいてルーティング決定を行う。ヘッダ内のアドレスの第1のビットは、レベルNのロジックによって使用される。レベルNノードのロジックが、レベルN-1のノードへパケットを向かわせる場合、アドレスの第1のビットは廃棄される。これは、いくつかの理由で行われる。1)第1のアドレスビットは、より低いレベルでの決定をルーティングするために必要とされない。2)このビットの廃棄は、レベルN-1のメッセージパケットがレベルNのパケットよりも前に進むことを可能にし、その結果、次に来るパケットに基づいて、N-1レベルノードは、レベルNノードへ制御信号を送ることができ、したがって、レベルN-1ノードがレベルNトラフィックを指揮することを可能にする。3)第1のヘッダビットの廃棄は、残りのヘッダビットの最上位ビットがレベルN-1でパケットをルーティングするために必要なビットであることを保証する。このプロセスは、レベルKのパケットが1つの状態ビットと後続するK個のアドレスビットとを有するように、スイッチの全体にわたって続く。
【0011】
この設計の結果は、レベル間を直接カットするデータパスが確立され得ることである。システムのタイミングは、同じリング上の2つのロジックノード間を状態ビットが移動するためには2つのクロックティックが必要とされるが、異なるレベルの2つのノード(レベルKリングのノードは、レベルKノードと称される)間を状態ビットが移動するためには1つのティックのみが必要とされる、というものである。したがって、スイッチを通るパケットのパスが、N個の下方へのステップ(異なるレベルのリング間のステップ)および与えられたレベルにおけるリング上の2つのノード間のJ個のステップを含む場合、第1のペイロードビットが出力レベル0に到達する前に、(N+2J+1)個のティックが必要とされる。状態ビットがレベル0にある場合1ビットFIFO遅延素子の各々において1つのデータビットがある状態で、2J個の1ティック遅延が、異なるレベルに存在する。異なるレベルにおけるノード上で複数のトランジスタを通じて情報を通過させることは、システムのクロックレートを必然的に限定する。実際に、パケットが各ステップを伝わる場合、第1のペイロードビットがレベルN、すなわち、トップエントリーレベルにある間に、状態ビットはレベルOに到達する。
【0012】
対照的に、本明細書において説明されるシステムの場合、パケットの各ビットは、各レベルで少なくとも1つの単一ティックFIFOを通過し、有利には、各ノードにおいて信号が再構築されることを可能にし、本明細書において説明されているシステムが、組み込まれている米国特許第6,289,021号明細書において説明されているシステムよりも高いクロックレートで動作することを可能にする。
【0013】
組み込まれている米国特許第5,996,020号明細書、第6,289,021号明細書、および第6,754,207号明細書において説明されているスイッチングシステムは、高い帯域幅と共に低いレイテンシを提供し、短いパケットもサポートする。組み込まれている米国特許第5,996,020号明細書、第6,289,021号明細書、および第6,754,207号明細書におけるスイッチのトポロジーは、リングの豊富に相互接続されたセットを含む。
図2Aは、組み込まれている米国特許第6,289,021号明細書および第6,754,207号明細書において説明されているスイッチの実施形態のハイレベルブロック図である。
図2Aに例示される構造全体が、単一のチップ上に収まる。相互接続線210、212、214、216および218は、ビットシリアルである。パケットが単一のリングに収まるという仕様は、FIFO素子220の包含を必要とする。パケットがFIFO220を通過する確率を減少させるために、全てのパケットが、線202を通じて単一の入力ノードアレイへ挿入される。
図2Aに例示されるスイッチは、
図3Aに例示される単純なノードを使用して、または、
図3Bに例示される「ダブルダウン」もしくは「フラットレイテンシ」ノードを使用することによって、構築され得る。
【0014】
まず、
図3Aに例示される単純なスイッチUを考慮されたい。米国特許第6,289,021号明細書および第6,754,207号明細書のスイッチの動作の1つの態様は、データパケットの第1のビットが、特定のパケットエントリ時間においてのみスイッチノードUに入ることができるというものである。与えられたパケットエントリ時間Tにおいては、1つ以上のパケットがスイッチノードUに入ることができない。これが当てはまるのは、組み込まれている米国特許第5,996,020号明細書、第6,289,021号明細書および第6,754,207号明細書において説明されている制御線の新規な使用が理由である。
【0015】
レベルN-Kにおける
図3AのスイッチノードUごとに、K長のポリビットPBU=(b
0,b
1,b
2,...,b
K-1)があり、それにより、Uに入る各パケットPKは、そのバイナリ表現がリーディングビット(b
0,b
1,b
2,...,b
K-1)を有するターゲット送信先を有する。線306を通ってスイッチノードUを出る各パケットは、そのバイナリ表現がリーディングビット(b
0,b
1,b
2,...,b
K-1,1)を有するターゲット送信先を有する。次に、Lに入る各パケットPKが、ポリビットPB
L=PB
Uを有し、その結果、Lに入る各パケットPKが、そのバイナリ表現がリーディングビット(b
0,b
1,b
2,...,b
K-1)を有するターゲット送信先を有するような、レベルKのスイッチノードLを考慮されたい。線316を通ってスイッチノードLを出る各パケットは、そのバイナリ表現がリーディングビット(b
0,b
1,b
2,...,b
K-1,0)を有するターゲット送信先を有する。
【0016】
パケットPKがUに入り、PKのターゲットアドレスがリーディングビット(b0,b1,b2,...,bK-1,1)を有し、制御線310が非使用状態を示す場合、PKは、線306を通ってUを出ることになる。そうでない場合、PKは、線304を通ってUを出るはずである。パケットPKがLに入り、PKのターゲットアドレスがリーディングビット(bo,b,,bz,...,bK-1,0)を有し、制御線320が非使用状態を示す場合、PKは、線316を通ってLを出ることになる。そうでない場合、PKは、線314を通ってLを出るはずである。
【0017】
図3Bに例示される「ダブルダウン」スイッチ380は、付加的なロジックと、相互接続線342および344とを使用して、ノードUとノードLとを組み合わせる。ダブルダウンスイッチDD380は、レベルN-KでスイッチDDに入る各パケットが、そのターゲットアドレスがK個のリーディングビットPB
DD=(b
0,b
1,b
2,...,b
K-1)を有するように配置される。スイッチDDは、線326を通ってDDのノードUを出る各パケットが、リーディングビット(b
0,b
1,b
2,...,b
K-1,1)を有するターゲットアドレスを有し、線336を通ってDDのノードLを出る各パケットが、リーディングビット(b
0,b
1,b
2,...,b
K-1,1)を有するターゲットアドレスを有するように、ネットワーク内に配置される。
【0018】
パケットPKTがノードUに入る場合、スイッチDDは、以下のように動作する。
1)パケットPKTが、線328を通ってDDのノードUに入り、PKTのターゲットのリーディングアドレスビットが(b0,b1,b2,...,bK-1,1)である場合、a)線330上にビジー信号がないとき、Uのロジックは、パケットPKTを線326に向かわせ、または、b)線330上にビジー信号があるとき、Uのロジックは、線324を通ってネットワーク内の別のダブルダウンスイッチへパケットPKTを向かわせる。いずれの場合にも、Uのロジックは、線326が使用中であることを示すために、ノードLへ線344上でビジー信号を送る。
2)パケットPKTが、線328を通ってDDのノードUに入り、PKTのターゲットのリーディングアドレスビットが、(b0,b1,b2,...,bK-1,0)である場合、a)線344上にビジー信号がないとき、Uのロジックは、線342を通ってパケットPKTをノードLへ向かわせ、その結果、Lのロジックは、PKTを線336へ送ることができ、または、b)線344上にビジー信号があるとき、Uのロジックは、線324を通ってネットワーク内の別のダブルダウンスイッチへパケットPKTを向かわせる。線330上にビジー信号がある場合のみ、線326が使用中であることを示すために、Uのロジックは、線344上でノードLへビジー信号を送る。
【0019】
ノードLに入るパケットは、同様に振る舞う。したがって、パケットPKTが、スイッチDDのノードLに入る場合、イベントの以下のセットが発生する。
1)パケットPKTが、線338を通ってDDのノードLに入り、リードが、PKTのターゲットのリーディングアドレスビットが(b0,b1,b2,...,bK-1,0)である場合、a)線348上にビジー信号がないとき、Lのロジックは、パケットPKTを線336へ向かわせ、または、b)線348上にビジー信号があるとき、Lのロジックは、線334を通ってネットワーク内の別のダブルダウンスイッチへパケットPKTを向かわせる。いずれの場合にも、Lのロジックは、線336が使用中であることを示すために、ノードUへ線344上でビジー信号を送る。
2)パケットPKTが、線338を通ってDDのノードLに入り、PKTのターゲットのリーディングアドレスビットが(b0,b1,b2,...,bK-1,1)である場合、a)線344上にビジー信号がないとき、Lのロジックは、線342を通ってパケットPKTをノードUへ向かわせ、その結果、Uのロジックは、PKTを線326へ送ることができ、または、b)線344上にビジー信号があるとき、Lのロジックは、線334を通ってネットワーク内の別のダブルダウンスイッチへパケットPKTを向かわせる。線348上にビジー信号がある場合のみ、線336が使用中であることを示すために、Lのロジックは、ノードUへ線344上でビジー信号を送る。
【0020】
ここで開示されているシステムにおいて説明されているスイッチングシステムは、組み込まれている米国特許第6,289,021号明細書および第6,754,207号明細書において説明されているスイッチングシステムに対する重要な改善点を表す。主な改善点は、以下を含む。
1)組み込まれている米国特許第6,289,021号明細書および第6,754,207号明細書において構築されるシステムにおいて可能であったよりも高い帯域幅を可能にする、システムを通じたパラレルデータパスの追加、
2)各ロジックノードにおいてFIFOを有するデータパスの生成を同時に可能にし、FIFOが高いクロックレートを使用する能力を含むという利点を有する、変形されたタイミングシステム、3)異なるレベルのノード間でパケットフリットが移動するために1つのティックのみを採用し、同じレベルのノード間でパケットフリットが移動するために2つのティックを採用するタイミングシステム。有利には、
図2AのFIFO線214が除去される。
【0021】
図1は、パケットのレイアウトを例示する。パケットは、フリットと称されるQ個のサブパケットに分解される。フリットの各々は、R個のビットを有する。フリットは、R幅のバスを通って進むように設計される。第1のフリットF
0 102は、ヘッダフリットである。それは、状態ビットH
0と、N個のルーティングビットH
1、H
2、...、H
Nと、他の情報、例えば誤り訂正ビットまたはQOSを搬送するために使用され得る付加的なビット(
図1では0に設定される)とから成る。状態ビットH
0は、パケットの存在を示すために、1に設定される。N個のルーティングビットは、ターゲットのバイナリアドレスを表す。したがって、N個のルーティングビットを有するスイッチが、基数2
Nのスイッチにおいて使用される。レベルKのロジックLは、制御ビットと共にビットH
Kを使用して、F
0をルーティングする。
【0022】
図2Aは、組み込まれている米国特許第6,289,021号明細書および第6,754,207号明細書において提示されているスイッチのハイレベルブロック図を表す。
図2Bは、全てのヘッダビットが、スイッチを通ってパケットをルーティングするために使用され得る、本特許のスイッチのハイレベルブロック図を表す。参照される米国特許第6,289,021号明細書および第6,754,207号明細書において、ならびに本開示においても、ノードアレイは、行と列とに配置される。基数2
NスイッチにおけるノードアレイNA(U、V)は、列VにおいてレベルUに2
N個のスイッチングノードを含む。米国特許第6,289,021号明細書および第6,754,207号明細書において、ならびに本システムにおいても、例示的な実施形態では、基数2
Nのスイッチは、エントリーレベルNから出口レベル0までに(N+1)行(またはレベル)のノードアレイを有する。スイッチは、いくつかの数M個の列を有する(ただし、列の数は設計パラメータである)。開示されているシステムにおいて導入されるシステムには、重要な新規の改善点がある。開示されているシステムにおいて、ノードアレイ間の線は、特許第6,289,021号明細書および特許第6,754,207号明細書において使用される単一ビット幅の線を置換するバスを含む。ノードアレイ内のノードは、より低いレイテンシ、および、より高い帯域幅を可能にする、特有の新しい設計を有する。また、組み込まれている米国特許第6,289,021号明細書および第6,754,207号において、システムは、パケット全体がレベルOの与えられたリング上に収まることができるように、十分な長さのFIFOシフトレジスタ220を含む。2つのパケットが、レベル1のリング上に収まることができ、一般的に、2
R個のパケットは、レベルRのリング上に収まることができる。パラレルバスの幅は、十分な数のアクティブなノードを有することを可能にすることになり、したがって、ノードの行の能動素子にメッセージ全体が収まることを可能にするので、このFIFOは、本開示の技術を使用して、スイッチにおいて除去されることが可能である。
図2Bを参照すると、各データ搬送線は、
図1に例示されるようなR長のサブパケットの長さに等しい幅を有するバスを含むことができる。R長のサブパケットは、フリットと称され得る。バスはノードを接続し、各ノードは、1ティック論理素子と、後続する1ティック遅延素子と、後続するマルチプレクサ(LDMモジュール)とを含むモジュールである。2つのフリットが、LDMモジュールに収まる。したがって、Q個のフリットを含むパケットは、
図2Bのノードアレイの単一の行上のQ/2個のLDMモジュール内に収まることができる。1つの例示的な実施形態において、トップレベル(レベルN)は、単一のリング上にLDMモジュールを含む。レベルN-1のLDMモジュールは、2つのリング上に配置される。ボトムノードアレイは、R幅のバスによって接続されたM個のノードを各リングが含む、2
N個のリングを含む。ノードおよびバスをノードアレイ状に配置することは、リング構造を可能にする。レベル0の各リングは、Q個のフリットから成るパケット全体を保持するのに十分な長さでなければならない。レベル0の各リングは、単一のターゲットアドレスへパケットを配信する。複数の出力ポート238は、単一のレベル0リングから接続することができる。単一のリングからのこれらの出力の各々は、データを同じターゲット出力へ配信する。データは、入力バス222を通って構造内へ入力される。単純な実施形態において、図示されるように、所与のレベルWの各ロジックノードは、関連付けられたリング上の次のロジックノードへパケットを転送するために接続され、レベルW-1の2つのロジックノードのうちの1つへパケットを転送するようにも配置される。(米国特許第6,289,021号明細書および第6,754,297号明細書において図示されるような)本構成において、レベルW-1の論理素子は、レベルW-1の論理素子へデータを転送するための、レベルWのロジックノードに対する優先度を有する。本明細書において提示される例示的な例において、各レベルは、同じ数のロジックノードを含む。
【0023】
組み込まれている米国特許第6,289,021号明細書および第6,754,207号明細書の実施形態において、与えられたパケットがFIFO220に入る確率を最小限にするために、全てのパケットは、ノードアレイNA(N、0)に入る(ただし、Nは、アレイのレベルを表し、0は、ノードアレイのエントリ角度を表す)。FIFO220の除去は、本開示の実施形態が複数の角度におけるパケットの挿入を提供することを可能にする。複数の挿入角度は、任意の与えられた角度で挿入されるパケットの数を低減し、それによって、輻輳を低減する。本発明において、パケットの第1のフリットF0は、システム内の異なるノードについては異なる、特定されたエントリ時間においてのみノードに入ることができる。
【0024】
ここで開示されているスイッチの実施形態は、
図3Bに例示される接続に対応する接続を有する。したがって、
図2Bに例示されるような、開示されているシステムのための配線パターントポロジーは、
図2Aに例示され、組み込まれている米国特許第5,996,020号明細書、第6,289,021号明細書、および第6,754,207号明細書において説明されている配線パターントポロジーと同じにすることができる。
【0025】
図4を参照すると、論理素子402と、遅延素子404と、多重化素子406とを含む、個別のスイッチングモジュール400のブロック図が示されている。ロジック、遅延およびマルチプレクサ(mux)を備えるモジュールは、LDMモジュールと称される。LDMモジュールは、
図2Bに例示されるノードアレイ内のスイッチングノードの構築に使用される構成要素である。論理素子402へのパケット入力のタイミングは、開示されているシステムの高速パラレルスイッチの正確な動作にとって重要である。各論理素子402は、パケットのちょうど1つのフリットを保持することが可能である。さらに、各遅延デバイス404も、ちょうど1つのパケットフリットを保持することが可能である。時間ステップの終了において、論理素子402は、パケットの1つのフリットを含んでもよく、または含まなくてもよい。同様に、時間ステップの終了において、遅延デバイス404も、パケットの1つのフリットを含んでもよく、または含まなくてもよい。遅延デバイスが、パケットPの1つのフリットF
Lを含んでおり、F
Lが、パケットの最後のフリットではない(すなわち、L<Q)場合、論理デバイスは、パケットのフリットF
L+1を含む。L≠Oであり、かつ、F
Lが論理ユニットまたは遅延ユニット内にある場合、時間T
SにおけるフリットF
Lのロケーションは、時間T
S-1におけるフリットF
(L-1)のロケーションに等しい。このように、パケットは、スイッチを通ってワームホール様式で進む。
【0026】
例示的な実施形態において、LDMモジュールは、パケットのタイミングを同期させるように構成されたロジックと、遅延と、マルチプレクサデバイスとを備える。
【0027】
図4と共に
図5を参照して、LDMモジュールの基本動作およびタイミングが説明される。論理素子L
1を備えるLDMモジュールは、ノードアレイNA(W、Z)内にあり、論理素子L
2は、NA(W、Z+1)内にあり、L3は、NA(W-1、Z)内にあり、論理素子L
4は、NA(W-1、Z+1)内にある。
【0028】
L1についての各パケット挿入時間において、論理ユニットL1は、1に設定された状態ビットH0をチェックすることによってフリット到達をチェックする。論理ユニットL1についてのフリット到達時間TSにおいて、H0が0に設定されていることをロジックが感知した場合、論理ユニットは、この時間スロット内にパケットが到達しないと識別し、次の第1のフリットパケット到達時間までアクションを起こさない。(クロックまたはカウンタによって識別されるような)L1についての第1のフリット到達時間において、論理ユニットが、F0における状態ビットスロットH0において1を感知した場合、論理ユニットは、それが有効なパケットPKTの第1のフリットを含んでいると確認し、以下のように進める。
A.1)F0のビットHWに基づいて、パスがL4からPKTのターゲット出力まで存在するかどうかをL1が決定し、および、2)L1が線412を自由に使用することができることをL3からの制御信号が示す場合、L1は、時間TS+1においてM3を通ってL4に到達するようにPKTの第1のフリットF0を送る。
B.上記条件1)および2)の一方または両方が満たされない場合、L1は、PKTの第1のフリットF0を時間TS+1においてD1に到達し、続いて、時間TS+2(第1のフリットがL4に到達した後の1つの時間のユニット)においてL2に到達するように、D1に送る。
【0029】
ルーティングビットH
Wおよび制御信号の使用の詳細な議論は、
図6、
図7、および
図8の議論に含まれる。同じ列内の異なるレベルの論理ユニットへの第1のフリット到達のタイミングは、スイッチングシステムの適当な動作にとって重要である。第1のフリットは、第1のフリットがNA(W、Z+1)内の論理素子に到達する1つの時間ユニット前に、NA(W-1、Z+1)内の論理素子に到達するので、レベルW-1で生成される制御信号は、レベルWのパケットのルーティングを制御するために十分な時間を利用可能である。
【0030】
パケットPKTの最初のフリットF0が、時間ステップTSにおいて論理ユニットLに到達するとすれば、PKTの次のフリットF1は、時間ステップTS+1においてLに到達することになる。これは、PKTの最後のフリットFQ-1が時間TS+Q-1に論理ユニットLに到達するまで続く。同様に、パケットPKTの最初のフリットF0の到達が、時間ステップTS+1において遅延ユニットDに到達するとすれば、PKTの次のフリットF1は、時間ステップTS+2においてDに到達することになる。これは、PKTの最後のフリットFQ-1が時間TS+qにDに到達するまで続く。パケットのフリットが、論理ユニットまたは遅延ユニットに到達するたびに、フリットの信号が再生成される。各ティックにおけるこの信号再生成は、より高いチップクロックレートを可能にする。単純な「シングルダウン」実施形態において、LDMモジュールは、スイッチにおけるノードとして使用され得る。
【0031】
図6を参照すると、開示されているシステムの実施形態のスイッチにおいて使用されるスイッチングノードが示されている。スイッチングノードは、2つのLDMモジュール610および620と、2×2クロスバー602とを含む。
図6に表されるスイッチングノードは、ノードアレイNA(W、Z)にあると仮定する。LDMモジュールには、2つのタイプ、すなわち、1)信号を線608へ送ることによってクロスバー602を制御することができるタイプaLDMモジュール620と、2)クロスバー602を制御することができないタイプβモジュール610とがある。レベルWが0またはNのいずれとも等しくない興味深い場合を想定されたい。タイプaモジュール620についてのパケット入力時間のセットは、タイプβモジュール610についてのパケット入力時間のセットと等しい。
【0032】
図7を参照すると、概略ブロック図は、高いクロックレートでも改善された信号完全性、増加された帯域幅、および、より低いレイテンシを可能にする相互接続装置の実施形態を例示している。
例示的な相互接続装置は、複数の論理ユニットと、論理ユニットLA624、LC724、およびLD710を含む三つ子状に配置されたものと考慮され得る論理ユニットの選択された構成において複数の論理ユニットを結合する複数のバスとを備える。論理ユニットLA624およびLC724は、論理ユニットLD710へデータを送るように配置される。論理ユニットLC724は、論理ユニットLD710へデータを送るための、論理ユニットLA624に対する優先度を有する。サブパケットへ分割されるパケットPKT、論理ユニットLA624におけるパケットPKTのサブパケット、およびターゲットを特定するパケットのいずれかについて、(A)論理ユニットLC724は、論理ユニットLD710へパケットPKTのサブパケットを送り、論理ユニットLA624は、論理ユニットLD710へパケットPKTのサブパケットを送らない。(B)論理ユニットLC724は、論理ユニットLD710へデータのサブパケットを送らず、論理ユニットLA624は、論理ユニットLD710へパケットPKTのサブパケットを送るか、または、(C)論理ユニットLC724は、論理ユニットLD710へデータのサブパケットを送らず、論理ユニットLA624は、論理ユニットLD710へパケットPKTのサブパケットを送らない。
【0033】
例示的な相互接続構造において、論理ユニット、遅延ユニット、およびマルチプレクサユニットは、パケット全体を保持するには不十分なメモリを有して構成されることが可能であり、したがって、バス幅の先入れ先出し(FIFO)バッファのみを有する。したがって、パケットは、バス幅のデータパス上で通信される。
【0034】
論理ノードは、パケットを再構成しない。パケットPKTの、フリットと呼ばれる第1のサブパケットは、与えられた時間T
1に論理ノードLAに到達する。時間T
2において、PKTの第1のフリットは、次の下流の論理ユニットまたは遅延ユニットに到達する。また、時間T
2において、PKTの第2のフリットが、論理ユニットLA624に到達する。実際には、パケットは、スイッチにおいて再構成されず、それは、一度に1つのフリットずつ離れる。詳細として、R個のビット(
図1を参照)から形成されるフリットは、ワームホール様式でスイッチを通って進み、R倍の速さで動作する連続的な相互接続に接続されたSER-DES(シリアライザ-デシリアライザ)モジュールを通って出る。
【0035】
1)パスが、論理ユニットLD710からPKTについてのターゲット出力ポートまで存在し、かつ、2)論理ユニットLD710へ送るための、論理ユニットLA624よりも高い優先度を有する論理素子LCによって、論理ユニットLA624が論理ユニットLD710へ進むことをブロックされないのであれば、論理ユニットLA624は、PKTを論理ユニットLD710へ送ることになる。
図7を参照すると、論理ユニットLC724のみが、論理ユニットLD710へ送るための、論理ユニットLA624よりも高い優先度を有するのに対して、論理ユニットLBおよびLEの両方は、論理ユニットLFへ送るための、論理ユニットLA624よりも高い優先度を有する。例において、PKTのフリットは、論理ユニットLA624にある。論理ユニットLA624は、ヘッダ情報および次に来る制御ビットに基づいて、PKTの第1のフリットをルーティングする。論理ユニットLA624は、それが第1のフリットを送ったのと同じ素子へ、PKTの第2のフリットを送る。いずれの場合にも、論理ユニットLA624は、パケットを保持することができず、フリットが時間T
1に到達した場合、それは時間T
2において転送される。
【0036】
相互接続構造は、時間ステップのシーケンスにおいてパケットおよびサブパケットを転送する。パケットPKTのフリットのシーケンスが、瞬間的な動作時間中に論理ユニットLA624に入る状態で。したがって、データ通信動作は、瞬時に動作すると考慮され得る。例示的な実施形態において、パケットPKTの第1のフリット、またはサブパケットは、ターゲットまでのスイッチを通ったルーティング情報を含む。
【0037】
論理ユニットLC724は、論理ユニットLA624へ送られる制御信号を使用して、論理ユニットLD710へパケットを送るための、論理ユニットLA624に対する優先度を課す。
【0038】
論理ユニットは、パケットヘッダ情報に基づいて、および他の論理ユニットからの制御信号にさらに基づいて、パケットをルーティングする。
【0039】
相互接続構造は、1ティック先入れ先出し(FIFO)バッファをさらに備えることができる。論理ユニットに入るフリット(サブパケット)は、論理ユニットにおいて1ティックFIFOを通過し、各論理ユニットにおいて信号を再生成する。
【0040】
いくつかの実施形態において、相互接続構造は、論理ユニットLD710を含む複数の論理ユニットへパケットを送るように配置された論理ユニットLA624について、ケース1またはケース2のいずれかが成立するように動作することができる。ケース1において、論理ユニットLA624は、LDがパケットPKTを受信するのに最も適当な論理ユニットであると決定し、論理ユニットLC724が、論理ユニットLD710へパケットを送り、論理ユニットLA624が、LDとは異なる論理ユニットLGへPKTを送る、または、論理ユニットLD710へパケットを送るための、論理ユニットLA624よりも高い優先度を有する論理ユニットが、論理ユニットLD710へパケットを送らず、論理ユニットLA624が、論理ユニットLD710へパケットPKTを送る、のいずれかである。ケース2において、論理ユニットLA624は、論理ユニットLD710へパケットPKTを送ることは許容不可能であると決定し、論理ユニットLA624は、論理ユニットLD710とは異なる論理ユニットLGに、または論理ユニットLD710とは異なる論理ユニットLF720へ、パケットPKTを送る。
【0041】
時間TSにおいてパケットPKTの第1のサブパケットを受信する論理ユニットLA624について、論理ユニットLA624が、論理ユニットLD710へパケットPKTの第1のサブパケットを送る場合、論理ユニットLD710は、時間TS+1にパケットPKTの第1のサブパケットを受信する。論理ユニットLA624が、論理ユニットLGへパケットPKTの第1のサブパケットを送る場合、第1のサブパケットは、遅延ユニットDAを通過し、時間TS+2に論理ユニットLGに到達する。論理ユニットLC724が、論理ユニットLD710へパケットの第1のサブパケットQKTを送り、パケットの第1のサブパケットQKTが、論理ユニットLD710へパケットPKTが進むことをブロックする場合、サブパケットQKTは、時間TS+1には論理ユニットLD710に到達する。
【0042】
いくつかの実施形態において、論理ユニットLD710がパケットPKTを受信するのに最も適当な論理ユニットであると論理ユニットLA624が決定した場合、論理ユニットLD710は、パケットPKT内のルーティング情報に基づいて、その決定に達する。論理ユニットLD710へパケットPKTを送ることが許容可能ではないと論理ユニットLA624が決定した場合、論理ユニットLD710は、パケットPKT内のルーティング情報に基づいて、その決定に達する。
【0043】
図6および
図3Bと共に
図7を参照して、高速パラレルデータパススイッチングノード600を管理するデータ線および制御線が説明される。パケットは、レベルWのまたはレベルW+1の別の論理素子から、線704上で論理素子LAに到達する。論理素子LAについての与えられたパケット入力時間T
Sにおいて、以下の条件のうちのちょうど1つが満たされる。
1)第1のフリットF
0が、論理ユニットLAに到達しない。
2)ちょうど1つの第1のフリットが、レベルWの論理素子から論理ユニットLAに到達するが、第1のフリットF
0は、レベルW+1の論理素子から論理ユニットLAに到達しない。
3)ちょうど1つの第1のフリットが、レベルW+1のノードから論理ユニットLAに到達するが、第1のフリットF
0は、レベルWのノードから論理ユニットLAに到達しない。
【0044】
同様に、パケットは、レベルW+1の論理素子から、またはレベルWの論理素子から、論理素子LBに到達する。論理ノードLBパケット入力時間TSにおいて、第1のフリットは論理素子LBに到達せず、または、ちょうど1つの第1のフリットが論理素子LBに到達する。重要なことは、パケットPKTの第1のフリットF0が、時間TSにおいて論理素子LAに到達するとすれば、PKTの次のフリットF1は、時間TS+1においてLに到達し、PKTの他のフリットが後続し、その結果、PKTの最後のフリットFQ-1が時間TS+Q-1にLAに到達する。同様に、PKTのフリットFC(ただしC<Q)が時間TDにおいて遅延素子DELにあるとすれば、PKTのフリットFc+1は、時間TD+1に遅延素子DELにある。したがって、各論理素子および各遅延素子において、信号が再構築される。米国特許第6,289,021号明細書および第6,754,207号明細書に示されていない、ここで開示されているシステムのこの特徴は、スイッチチップクロックが、米国特許第6,289,021号明細書および第6,754,207号明細書において図示されているシステム内のクロックよりも速く動作することを可能にする。
【0045】
図6と共に
図7を継続して参照すると、ノード600が、N+1レベルスイッチのレベルWにある。tiをN-Wと定義する。ノード600に対応して、ノード600の論理ユニットLAまたは論理ユニットLBに入る各パケットが、そのリーディングビットがBSであるターゲットアドレスを有するように、Δ長のバイナリシーケンスBS=(b
0,b
1,...b
Δ-1)が存在する。パケットPKTがスイッチ内のレベルに下へ移動するごとに、PKTのターゲットアドレスの付加的なビットが設定される。論理素子LDに入る各パケットは、そのバイナリアドレスがリーディングビット(b
0,b
1,...b
Δ-1,1)を有するターゲットを有する。論理素子LFに入る各パケットは、そのバイナリアドレスがリーディングビット(b
0,b
1,...b
Δ-1,0)を有するターゲットを有する。バス622は、LAおよびLBをレベルW-1のノード内の論理素子LD710に接続し、その結果、F
0のビットH
Wが1に等しく、かつ、他の制御線条件(以下で議論される)が満たされれば、論理ユニットLAまたは論理ユニットLB内に第1のフリットF
0を有するパケットPは、LDを通ってそのターゲット出力へ進行することができる。バス612は、論理ユニットLAおよび論理ユニットLBをレベルW-1のノード内の論理素子LF720に接続し、その結果、F
0のビットH
Wが0に等しく、かつ、他の制御線条件(以下で議論される)が満たされれば、論理ユニットLAまたは論理ユニットLB内に第1のフリットF
0を有するパケットPKTは、論理素子LFを通ってそのターゲット出力へ進行することができる。
【0046】
論理素子LC724は、レベルW-1のLDMモジュール722内に存在し、論理素子LCは、遅延ユニットDCを通って論理素子LD710へデータを送るように配置される。また、論理素子LE714は、論理素子LE714が、遅延ユニットDEを通ってLF720へデータを送ることができるように、レベルW-1上に存在する。TSが、論理素子LA624およびLB614についてのパケット到達時間であると仮定されたい。そうすると、TS+1は、論理ユニットLFにおけるパケット到達時間である。論理素子LEからLFへ進むパケットPKTは、時間TSにおいてDEにその第1のフリットF0を持たなければならず、したがって、時間TS-1においてその第1のフリットをLEに持たなければならない。同様に、LCからLDへ進むパケットPKTは、時間TS-1においてその第1のフリットをLCに到達させなければならない。したがって、TS-1は、論理素子LCと論理素子LEとの両方についてのパケット到達時間である。
【0047】
スイッチにおける静的バッファの欠如は、競合するメッセージが論理素子LDまたはLFへ進むための優先度スキームにより補償され得る。優先度スキームは、レベルW-1のパケットに最も高い優先度を与え、クロスバー602のバー設定(パケットが、同じパス上を水平に進む場合)に、そのスイッチのクロス設定(パケットが、代替的なパスへ対角線上に進む場合)よりも優先度を与える。したがって、時間TS+1においてLD710に入るパケットの第1のフリットF0についての優先度スキームは、以下の通りである。
1)その第1のフリットF0が時間TにDC内にあるパケットは、論理ユニットLDへ進むための優先度1を有し、そのようなパケットは常に、時間TS+1に論理ユニットLDに到達することになる。
2)その第1のフリットF0が時間TSに論理ユニットLA624内にあり、かつ、そのF0ビットHWが1であるパケットは、優先度2を有し、時間TS+1に論理ユニットLDに到達する優先度1のパケットが無ければ、バー状態に設定されたスイッチ602を通って進んで、時間TS+1に論理ユニットLDに到達することになる。および
3)その第1のフリットF0が時間TSに論理ユニットLB614内にあり、かつ、そのF0ビットHWが1であるパケットは、優先度3を有し、優先度1または優先度2のパケットが時間TS+1に論理ユニットLDに到達しなければ、クロス状態に設定されたスイッチ602通って進んで、時間TS+1に論理ユニットLDに到達することになる。
【0048】
優先度スキームは、線732および線622が情報を同時に搬送することが全くできないことを保証する。したがって、それらの2本の線からの信号は、マルチプレクサMCにおいて忠実性の損失なしに連結され得る。マルチプレクサMCに対してティックを指定する必要がないことに留意されたい。同様の状況は、マルチプレクサMEに対して存在する。
【0049】
同様に、時間TS+1にLF720に入るパケットの第1のフリットF0についての優先度スキームは、以下の通りである。
1)その第1のフリットF0が時間TSに遅延DE内にあるパケットは、論理LFへ進むための優先度1を有し、そのようなパケットは常に、時間TS+1に論理LFに到達することになる。
2)その第1のフリットF0が時間TSに論理LB614内にあり、かつ、そのF0ビットHWが0であるパケットは、優先度2を有し、時間TS+1に論理LFに到達する優先度1のパケットが無ければ、バー状態に設定されたスイッチ602を通って進んで、時間TS+1に論理LFに到達することになる。および
3)その第1のフリットFaが時間TSに論理LA624内にあり、かつ、そのF0ビットHWが0であるパケットは、優先度3を有し、時間TS+1にLFに到達する優先度1または2のパケットが無ければ、クロス状態に設定されたスイッチ602を通って進んで、時間TS+1に論理LFに到達することになる。
【0050】
図7および
図8と共に、
図6を参照されたい。整数Wは、
図7において、論理素子LA、LB、LG、およびLHがスイッチのレベルWにあり、論理素子LC、LD、LE、およびLFがスイッチのレベルW-1にあるように整数を表す。優先度スキームは、LDMモジュール内の論理ユニットまたは遅延ユニットからの制御パケットによって設定される、論理ユニット制御レジスタCRおよびCLによって強制される。パラレルダブルダウンスイッチ内の論理素子の各々は、2つの制御レジスタCR(遠隔制御)およびCL(局所制御)を含み、各制御レジスタは2ビットを含み、したがって、各レジスタが整数0、1、2、または3のうちの任意の1つのバイナリ表現を記憶することを可能にする。T
Sは、論理素子LAおよびLBにおけるパケット時間到達であり、T
S+1は、LDおよびLFにおける到達時間であり、T
S+2は、LGおよびLHにおける到達時間である。T
Sは、DCおよびDEにおける到達時間であり、T
S-1は、LCおよびLEにおける到達時間である。時間T
S-1に先立って、LAおよびLB内のレジスタCRおよびCLは、0に設定される。LA内のレジスタCRは、LCからの線728上の制御信号によって、0とは異なる値に設定される。LB内のレジスタCRは、LEからの線718上の制御信号によって、0とは異なる値に設定される。LB内のレジスタCLは、LAからの線604上の制御信号によって、0とは異なる値に設定される。LA内のレジスタCLは、LBからの線606上の制御信号によって、0とは異なる値に設定される。LDMモジュール620は、LAから線608へ信号を送ることによって、クロスバースイッチ602をバー状態またはクロス状態に設定することができる。LDMモジュール620を制御するクロスバーは、タイプaLDMモジュールと称される。LDMモジュール610は、クロスバー602を制御するための手段を有さず、タイプαLDMモジュールと称される。クロスバーは、3つの状態を有しており、状態0は、クロスバーがデータを受信する準備ができていないことを示し、状態1は、クロスバーがバー状態にあり、データを受信する準備ができていることを示し、状態2は、クロスバーがクロス状態内にあり、データを受信する準備ができていることを示す。クロスバーが状態0にある間に、パケットフリットがクロスバーに到達する場合、クロスバー状態が1または2に設定されるまで、フリットは、フリット幅のバッファ内に記憶されることになる。パケットの最後のフリットがクロスバーを出るときに記録をつけるロジックがある。クロスバーの状態は、所与のパケットのフリットがそれを通過する間、一定のままである。最後のフリットがクロスバーを出るときに、クロスバーは状態0にされる。
【0051】
例示的な実施形態において、論理素子LA内の制御レジスタの機能性は、以下のように定義され得る。
1)CR=1は、論理素子LOが論理素子LCからのパケットによってブロックされることを示す。
2)CR=2は、論理素子LOがブロックされず、論理素子LAからパケットを受信することができることを示す。
3)CL=1は、論理素子LBが、バー状態にあるクロスバーを通って論理素子LFへパケットを送っていることを示す。
4)CL=2は、論理素子LFがブロックされず、論理素子LAからパケットを受信することができることを示す。および
5)CL=3は、論理素子LFが、論理素子LEからのパケットによってブロックされることを示す。
【0052】
例示的な実施形態において、論理素子LB内の制御レジスタの機能性は、以下のように定義され得る。
1)CR=1は、論理素子LFが論理素子LEからのパケットによってブロックされることを示す。
2)CR=2は、論理素子LFがブロックされず、論理素子LBからパケットを受信することができることを示す。
3)CL=1は、論理素子LAが、バー状態にあるクロスバーを通って論理素子LOへパケットを送っていることを示す。
4)CL=2は、論理素子LOがブロックされず、論理素子LBからパケットを受信することができることを示す。および
5)CL=3は、論理素子LOが論理素子LCからのパケットによってブロックされることを示す。
【0053】
図6、
図7、および
図8に例示されるスイッチは、以下のように動作することができる。
【0054】
第1のアクションにおいて、パケット到達時間TSにおいて、またはパケット到達時間TSの前に、CRレジスタは、論理素子LCからの線728上の信号によって、および論理素子LEからの線718上の信号によって設定される。
【0055】
第2のアクションにおいて、パケット到達時間TSにおいて、論理ユニットLAは、以下のように進む。
1)ケース1:パケットPKTAの第1のフリットが、線704上で論理素子LAに到達し、PKTAのヘッダビットHWは、論理素子LDがPKTAのターゲット出力へのパス上にあることを示す1に設定され、論理素子LAレジスタCR=2は、論理素子LDが時間TS+1に論理素子LCからパケットを受信しないであろうことを示す。この場合に、論理素子LAは、信号を線608へ送って、クロスバーをバー状態に設定する。次いで、論理素子LAは、パケットPKTAの第1のフリットをクロスバーを通して送って、時間TS+1に論理素子LDに到達させる。次いで、論理素子LAは、信号を線604を通して送って、論理素子LBのCLレジスタを1に設定する。
2)ケース2:ケース1の条件は発生せず、論理素子LAのCRレジスタは、論理素子LCがパケットを時間TS+1に論理素子LOに到達するように送っていないことを示す2に設定される。この場合に、論理素子LAは、信号を線604を通して送り、論理素子LBのCLレジスタを2に設定する。
3)ケース3:ケース1の条件は発生せず、論理素子LAのCRレジスタは、論理素子LCがパケットを時間TS+1に論理素子LOに到達するように送っていることを示す1に設定される。この場合に、論理素子LAは、信号を線604を通して送り、論理素子LBのCLレジスタを3に設定する。
【0056】
第3のアクションにおいて、パケット到達時間TSにおいては、論理ユニットLBは、以下のように進む。
1)ケース1:パケットPKTsの第1のフリットが、線702上で論理素子LBに到達し、PKTsのヘッダビットHWは0に設定され、論理素子LBレジスタCR=2は、論理素子LFが時間TS+1に論理素子LEからパケットを受信しないであろうことを示す。この場合に、論理素子LBは、クロスバーがバー状態に設定された後に、PKT8の第1のフリットをクロスバーへ送って、クロスバーを通って進ませて、時間TS+1に論理素子LFに到達させる。次いで、論理素子LBは、制御信号を線604を通して送って、論理素子LAのCLレジスタを1に設定する。
2)ケース2:ケース1の条件は発生せず、論理素子LB内のCRレジスタは、論理素子LEがパケットを時間TS+1に論理素子LFに到達するように送っていないことを示す2に設定される。この場合に、論理素子LBは、信号を線606を通して送って、論理素子LAのCLレジスタを2に設定する。
3)ケース3:ケース1の条件は発生せず、論理素子LB内のCRレジスタは、論理素子LEがパケットを時間TS+1に論理素子LFに到達するように送っていることを示す3に設定される。この場合に、論理素子LBは、信号を線606を通して送って、論理素子LAのCLレジスタを3に設定する。
【0057】
第4のアクションにおいて、論理素子LAが、クロスバーをバー状態に既に設定済みである場合、論理素子LAは、それ以上のアクションを行わない。論理素子LAが、クロスバーをバー状態に設定済みでない場合、CLレジスタが非ゼロ値に設定された後に、論理素子LAは、そのCLレジスタを調査する。CLレジスタが1を含む場合、論理素子LAは、クロスバーをバー状態に設定する。CLレジスタが1とは異なる数を含む場合、論理素子LAは、クロスバーをクロス状態に設定する。
【0058】
第5のアクションにおいて、この時点で、論理素子LAにおけるロジックは、クロスバーの状態の情報を有しており、論理素子LAは、以下のように進む。
1)ケース1:時間TSに論理素子LAにパケットフリットはなく、論理素子LAにさらなるアクションが必要とされないことを示す。
2)ケース2:パケットPKTAの第1のフリットは、時間TSに論理素子LAに到達した。クロスバーはバー状態にあり、パケットPKTAの第1のフリットは、上述されたようにクロスバーを通って送られ、論理素子LAにさらなるアクションが必要とされないことを示す。
3)ケース3:パケットPKTAの第1のフリットは、時間TSに論理素子LAに到達した。クロスバーはバー状態にあり、パケットPKTAの第1のフリットは、上述されたような第2のアクションにおいてクロスバーを通って送られず、パケットPKTAの第1のフリットは遅延ユニットDAへ送られるべきであることを示す。したがって、論理素子LAは、PKTAの第1のフリットを遅延ユニットDAへ送る。
4)ケース4:パケットPKTAの第1のフリットは、時間TSに論理素子LAに到達した。クロスバーはクロス状態にあり、PKTAのヘッダビットHWは0に設定され、論理素子LAのレジスタCLは2に設定され、次いで、PKTAの第1のフリットは、クロスバーを通って送られて、時間TS+1に論理素子LFに到達することになる。
5)ケース5:パケットPKTAの第1のフリットは、時間TSに論理素子LAに到達した。クロスバーはクロス状態にあるが、ケース4の条件は発生しない。次いで、PKTAの第1のフリットは、遅延ユニットDAへ送られることになる。
【0059】
第5のアクションと同時に実行され得る第6のアクションにおいて、論理素子LBのCLレジスタが1に設定されるか、またはLBが論理素子LAのCLレジスタを1に設定する場合、論理素子LAにおけるロジックは、クロスバーがバー状態に設定されているという情報を有する。これらの条件のどちらも満たされない場合、論理素子LAは、クロスバーがクロス状態に設定されていることを認識する。論理素子LBは、以下のように進む。
1)ケース1:時間TSに論理素子LB内にパケットフリットが無く、論理素子LBにさらなるアクションが必要とされないことを示す。
2)ケース2:パケットPKTBの第1のフリットは、時間TSに論理素子LBに到達した。クロスバーはバー状態にあり、パケットPKTBの第1のフリットは、上述されたようにクロスバーを通って送られ、論理素子LBにさらなるアクションが必要とされないことを示す。
3)ケース3:パケットPKTBの第1のフリットは、時間TSに論理素子LBに到達した。クロスバーはバー状態にあり、パケットPKTBの第1のフリットは、上述されたような第2のアクションにおいてクロスバーを通って送られず、パケットPKTBの第1のフリットが遅延ユニットDBへ送られるべきであることを示す。
4)ケース4:パケットPKTBの第1のフリットは、時間TSに論理素子LBに到達した。クロスバーはクロス状態にあり、PKTBのヘッダビットHWは1に設定され、論理素子LBのレジスタCLは2に設定され、次いで、PKTBの第1のフリットは、時間TS+1に論理素子LDに到達するようにクロスバーを通って送られることになる。
5)ケース5:パケットPKTBの第1のフリットは、時間TSに論理素子LBに到達した。クロスバーはクロス状態にあるが、ケース4の条件は発生しない。PKTAの第1のフリットは、遅延ユニットDBへ送られることになる。
【0060】
例示的な例において、クロス状態よりもバー状態が優先される。別の例では、クロス状態が優先されることが可能である。また別の例では、論理素子LBよりも論理素子LAが優先されること、または論理素子LAよりも論理素子LBが優先されることが可能である。
【0061】
マルチプレクサ素子は、ノード間の相互接続パスの量を低減することによって、構造コンパクト性および性能を改善する。異なる実施形態において、マルチプレクサは省略されてもよい。
図7を参照すると、MC738および相互接続線734は、相互接続線732を論理ユニットLDの第1の入力に接続すること、および相互接続線622を論理ユニットLDの第2の入力に接続することによって、除去され得ることに注意されたい。別の簡略化された実施形態において、単一のLDMモジュールは、スイッチのノードとしての役割を果たすことができる。この場合に、ノードスイッチングノード内のクロスバーは省略され得る。別のより複雑な実施形態において、スイッチングノードは、複数のLDMモジュールと、スイッチとを含むことができ、ただし、LDMモジュールの数Nは、1または2に等しくなく、スイッチは基数Nである。
【0062】
本明細書において開示される構造およびシステムは、以下の有利な特性、すなわち、1)高いクロックレートでも改善された信号完全性、2)増加された帯域幅、および、3)より低いレイテンシのうちの1つまたは複数を含む、参照される米国特許第5,996,020号明細書、第6,289,021号明細書、および第6,754,207号明細書において説明されるシステムに対する著しい改善点を含む。
【0063】
改善点は、1)バス幅のデータパス、2)スイッチを通してデータをルーティングするのに十分なヘッダビットが全てフリットF0内に含まれている、および、3)信号がLDMモジュールの各論理ユニットおよび各遅延ユニットにおいてはクリーンアップされる、のうちの1つまたは複数を含む。
【0064】
図9A、
図9Bおよび
図9Cは、相互接続構造の様々なレベルのノードの相互接続を示す概略的なブロック図である。
図9Aは、最も外側のレベルJのリングRのノードARJ920、ならびにノードA
RJ920からノードB
RJ922、デバイスC924、ノードD
RJ926、ノードE
R(J-1)928、ノードF
R(J-1)930およびデバイスG932への相互接続を示す。
図9Bは、レベルJのリングRのノードA
RT940、ならびにノードA
RT940からノードB
RT942、ノードC
R(T+1)944、ノードD
RT946、ノードE
R(T-1)948、ノードF
R(T-1)950およびノードG
R(T+1)952への相互接続を示す。
図9Cは、最も内側のレベル0のリングRのノードA
R0960、ならびにノードA
R0960からノードB
R0962、ノードC
R1964、ノードD
R0966、デバイスE968およびノードG
R1972への相互接続を示す。
【0065】
図9A、
図9Bおよび
図9Cは、相互接続構造のトポロジーを示す。理解を容易にするために、構造は、3次元r、Θおよびzの同心円筒の集まりとして考慮され得る。各ノードまたはデバイスは、指定されたロケーション(r、Θ、z)を有し、これは3次元の円筒座標内の位置(r、2π、Θ/K、z)に関連し、ただし、半径rは、0からJの円筒番号を特定する整数であり、角度Θは、0からK-1の円筒の円形断面のまわりのノードの間隔を特定する整数であり、高さzは、Oから2
J-1のZ軸に沿った距離を特定するバイナリ整数である。z次元におけるノード間の相互接続は、バイナリデジットの操作として最も簡単に説明されるので、高さzは、バイナリ数として表現される。したがって、相互接続構造は、2つの設計パラメータJおよびKに関して定義され得る。
【0066】
図9A、
図9Bおよび
図9Cにおいて、相互接続は、メッセージデータフローの方向を示す矢印付きの実線、および制御メッセージフローの方向を示す矢印付きの破線により示される。要約すると、ノードA、BおよびD、ならびにノードまたはデバイスC、E、F、Gについて、
1)Aは、レベルt=rにあり、
2)BおよびCは、Aへデータを送り、
3)DおよびEは、Aからデータを受信し、
4)Fは、Aへ制御信号を送り、
5)Gは、Aから制御信号を受信し、
6)BおよびDは、レベルTにあり、
7)Bは、Aの直前にあり、
8)Dは、Aの直後にあり、および
9)C、E、FおよびGは、レベルTにない。
【0067】
様々なノードおよびデバイスの3次元の円筒表記における位置は、以下の通りである。
1)Aは、ノードN(r、Θ、z)に配置され、
2)Bは、ノードN(r、Θ-1、HT(z))に配置され、
3)Cは、ノードN(r+1、Θ-1、z)に配置され、または相互接続構造の外部にあり、
4)Dは、ノードN(r、Θ+1、hT(z))に配置され、
5)Eは、ノードN(r-1、Θ+1、z)に配置され、または相互接続構造の外部にあり、デバイスFと同じであり、
6)Fは、ノードN(r-1、Θ、HT-1(z))に配置され、または相互接続構造の外部にあり、デバイスEと同じであり、
7)Gは、ノードN(r+1、Θ、hT(z))に配置され、または相互接続構造の外部にある。
【0068】
Θ+1およびΘ-1という項は、それぞれ係数Kの加算および減算を指すことに留意されたい。
【0069】
この表記において、(Θ-1) mod Kは、Θが0に等しい場合にはKに等しく、そうでない場合にはΘ-1に等しい。レベルrでのzからHr(z)への変換は、z=[zJ-1,zJ-2,...,zr,zr-1,...,z2,z1,z0]について、zr-1からz0]の下位zビットの順序をz=[zJ-1,zJ-2,...,zr,z0,z1、z2,...,zr-1]という形式へ反転させ、1(係数2r)を減算し、下位zビットを逆に反転させることによって説明される。同様に、(Θ+1) mod Kは、ΘがK-1に等しい場合には0に等しく、そうでない場合にはΘ+1に等しい。レベルrでのzからhr(z)への変換は、z=[zJ-1,zJ-2,...,zr,zr-1,...,z2,z1,z0]について、Zr.1からzo]の下位zビットの順序をz=[zJ-1,zJ-2,...,zr,z0,z1、z2,...,zr-1]という形式へ反転させ、1(係数2r)を加算し、下位zビットを逆に反転させることによって説明される。
【0070】
図9A、
図9Bおよび
図9Cに図示されるシステムの1つの実施形態によれば、相互接続構造は、送信元レベルから送信先レベルまでのレベルの階層を含む構造において配置された複数のノード、レベルの断面に広がる複数のノード、断面スパン内の複数のノードを含むことができる。ノードのレベルは、構造内のノードの位置によって完全に決定されることが可能であり、複数の相互接続線は、構造内のノードを結合する。レベルLのノードNについて、(1)複数のメッセージ入力相互接続線が、先行するレベルL+1のノードに結合され、(2)複数のメッセージ入力相互接続線が、レベルLのノードに結合され、(3)複数のメッセージ出力相互接続線が、レベルLのノードに結合され、(4)複数のメッセージ出力相互接続線が、後続のレベルL-1のノードに結合され、(5)制御入力相互接続線は、レベルL-1のノードのメッセージ出力相互接続線に結合され、(6)スイッチは、制御入力相互接続線上のメッセージを受信し、メッセージに従って、後続のレベルL-1ノードに結合された複数のメッセージ出力相互接続線上、またはレベルLに結合された複数のメッセージ出力相互接続線上にバッファリングせずに、メッセージを選択的に送信するように結合される。
【0071】
図9A、
図9Bおよび
図9Cに図示されたシステムの別の実施形態によれば、相互接続構造は、複数のノードと、ノードを結合する複数の相互接続線とを含むことができる。複数のノードのうちのノードXは、ノードXとは異なるノードAに結合された複数のメッセージ入力相互接続線を含むことができ、複数のメッセージ入力相互接続線は、ノードAおよびノードXとは異なるノードBに結合される。ノードXは、相反するメッセージ間の優先関係を決定するためにノードAとノードBとの間で通信される制御信号と共に、ノードAからのメッセージ入力およびノードBからのメッセージ入力を受け入れる。制御信号は、ノードAからノードXへのメッセージの送信と、ノードBからノードXへのメッセージの送信との間の優先関係を課すことができる。
【0072】
図9A、
図9Bおよび
図9Cに図示されるシステムのさらなる実施形態によれば、相互接続構造は、階層的なマルチレベル構造においてノードを選択的に結合する相互接続構造において、複数のノードと、複数の相互接続線とを含むことができる。階層的なマルチレベル構造は、最も低い送信先レベルL
0から、最も低い送信先レベルL
0から最も離れた最も高いレベルL
Jまで配置された、レベルの階層において、複数のJ+iレベルを含むように配置され得る。ノードのレベルは、複数の離散した時間ステップにおいてメッセージMを送信する相互接続構造を有する構造内のノードの位置によって完全に決定され得る。時間ステップにおいて移動するメッセージM、および時間ステップにおいて3つの手法のうちの1つにおいてメッセージMを移動させるための相互接続を有する相互接続構造は、以下を含む。(1)メッセージMは、相互接続構造の外部のデバイスから、相互接続構造内のノードに入る。(2)メッセージMは、指定された出力バッファへ向かって相互接続構造を出る。(3)メッセージMは、レベルL
KのノードUから、同じレベルL
Kの異なるノードVへ移動し、またはノードUからレベルLのノードWへ移動する。ただし、レベルL
iがレベルL
Kよりも送信先レベルL
0に近くなるように、kはiよりも大きい。
【0073】
図9A、
図9Bおよび
図9Cに図示されるシステムの他の実施形態によれば、相互接続構造は、複数のノードと、階層的なマルチレベル構造内のノードを選択的に結合する複数の相互接続線とを含むことができ、ノードのレベルは、データが送信元レベルから送信先レベルへ一方的にのみ移動する、またはマルチレベル構造のレベルに沿って横方向に移動する構造内のノードの位置によって完全に決定される。データメッセージは、送信元ノードから、指定された送信先ノードへ、マルチレベル構造を通って送信され得る。複数のレベルのうちのレベルは、ノードの1つまたは複数のグループを含むことができる。データメッセージは、送信先ノードへの途中にある、ノードの1つまたは複数のグループのうちのグループへ送信され得る。1つまたは複数のグループのうちのグループは、複数のノードを含むことができる。ノードがブロックされない場合、データメッセージは、送信先レベルに向かってグループの複数のノードのうちのノードNへ一方的に送信されることが可能であり、そうでなく、ノードがブロックされる場合、データメッセージは、横方向に送信される。
【0074】
図9A、
図9Bおよび
図9Cに図示されるシステムのさらなる実施形態によれば、相互接続構造は、複数のノードと、複数のノードにおける通信デバイスを相互接続する複数の相互接続線Lとを含むことができる。ノードは、受信メッセージと送信メッセージとを含む、離散した時間ステップのシーケンスにおけるメッセージを通信する通信デバイスを含むことができる。複数のノードのうちのノードNは、以下を含むことができる。(1)デバイスUからノードNへメッセージを送信するための複数の相互接続線LUNへの接続と、(2)デバイスVからノードNへメッセージを送信するための複数の相互接続線LVNへの接続と、(3)デバイスUが、ノードNへのメッセージの送信においてデバイスVに対して優位となるように、ノードNならびにデバイスUおよびVに関連する優先順位関係PN(U、V)を有するネットワークであって、その結果、時間ステップtにおいて複数の相互接続線LUNを介してノードNへ向けられる、デバイスUにおけるメッセージMU、および同様に時間ステップtにおいて複数の相互接続線LVNを介してノードNへ向けられる、デバイスVにおけるメッセージMV。メッセージMUは、ノードNへ成功裡に送られ、ノードVは、制御信号を使用して、メッセージMVをどこへ送るべきかを決定する。
【0075】
図9A、
図9Bおよび
図9Cに図示されるシステムのまたさらなる実施形態によれば、相互接続構造は、複数のノードNと、複数のノードNを所定のパターンで接続する複数の相互接続線Lとを含むことができる。相互接続線は、メッセージMおよび制御信号Cを搬送する。メッセージMおよび制御信号Cは、離散した時間ステップtにおいて複数のノードのうちのノードによって受信されることが可能であり、メッセージMは、直後の離散した時間ステップt+1において複数のノードのうちの後続のノードへ移動されることが可能である。複数のノードNを接続する複数の相互接続線Lは、(1)メッセージMAを受信するためのメッセージ入力相互接続を有するノードNA、(2)制御信号CAを受信するための制御入力相互接続、(3)ノードNDへの直接的なメッセージ出力相互接続、(4)ノードNEへの直接的なメッセージ出力相互接続、(5)デバイスGへの直接的な制御出力相互接続を含むことができる。メッセージMAがノードNDへ送られるか、またはノードNEへ送られるかを決定するための制御ロジックは、(1)制御信号CA、(2)複数の相互接続線L内のノードNAのロケーション、および、(3)メッセージMAに含まれるルーティング情報に基づくことができる。
【0076】
また別の実施形態において、相互接続構造は、複数のノードNと、複数のノードNを所定のパターンで接続する複数の相互接続線Lとを備えることができる。複数のノードNを接続する複数の相互接続線Lは、メッセージMAを受信するための直接的なメッセージ入力相互接続と、メッセージMAを受信するのに最も所望する、選択されたノードNPを含む、複数のノードへメッセージMAを送信するための複数の直接的なメッセージ出力相互接続とを有するノードNAを含むことができる。選択されたノードNPは、メッセージMAのヘッダ内のルーティング情報、および複数の相互接続線L内のノードNAの位置によってのみ、決定されることが可能である。選択されたノードNPは、選択されたノードNPへメッセージを送るための優先度を有する優先度ノードNBを含む複数のノードからメッセージMPを受信するための複数の直接的なメッセージ入力相互接続を有する。優先度ノードNBは、複数の相互接続線L内のノードNBの位置によって決定されることが可能であり、その結果、(1)ノードNAがノードNBと同じである場合、メッセージMAは、メッセージMPであり、ノードNAからノードNPへ送られ、(2)ノードNAがノードNBと同じでなく、ノードNBがメッセージMBをノードNPへ向ける場合、メッセージMBは、ノードNBからノードNPへ送られる。
【0077】
付加的な実施形態において、相互接続構造は、複数の出力ポートPを同時に含む複数のメッセージMを搬送することができるネットワークと、複数のノードNであって、個々のノードNは、複数の直接的なメッセージ入力相互接続と、複数の直接的なメッセージ出力相互接続とを含む、複数のノードNと、複数の相互接続線とを備えることができる。個々のノードNは、メッセージMを複数の出力ポートPのうちの所定の出力ポートへ渡す。所定の出力ポートPは、メッセージMによって指定される。複数の相互接続線は、最も低い送信先レベルLOから、最も低い送信先レベルLOから最も離れた最も高いレベルLJまで配置された、レベルの階層において、複数のJ+1レベルを含むように配置された階層的なマルチレベル構造内のノードを選択的に結合する相互接続構造において構成されることが可能であり、出力ポートPは、最も低い送信先レベルLOにおけるノードへ接続されている。ノードのレベルは、構造内のノードの位置によって完全に決定され得る。ネットワークは、複数のノードNのうちのノードNAを含むことができ、制御信号は、ノードNAの所定の出力ポートについての競合を除去するために、ノードNAへ送られることを許されるメッセージの数を限定するように動作し、その結果、メッセージMは、ノードNAの直接的なメッセージ出力接続を通じて、ノードNAのレベル以下のレベルLであるノードNHへ送られ、ノードNHは、メッセージMの指定された所定の出力ポートPへのパス上にある。
【0078】
図9A、
図9Bおよび
図9Cに図示されるシステムの実施形態によれば、相互接続構造は、階層的なマルチレベル構造内のノードを選択的に結合する相互接続構造において、複数のノードと、複数の相互接続線と含むことができる。マルチレベル構造は、最も低い送信先レベルL
0から最も高いレベルL
Jまで配置された、レベルの階層において、複数のJ+1レベルを含むように配置されることが可能であり、Jは、0より大きい整数であり、ノードのレベルは、構造内のノードの位置によって完全に決定され、相互接続構造は、複数の入力ポートを通ってソートされずに相互接続構造に入る複数のマルチビットメッセージを送信する。複数のメッセージの個々のメッセージMは、自己ルーティングとすることができる。個々のメッセージMは、メッセージMによって指定される出力ポートを通ってメッセージMが相互接続構造を出るのに十分な3つの手法を含む、複数の手法において移動する。3つの手法は、以下である。(1)メッセージMは、相互接続構造の外部のデバイスから相互接続構造内のノードに入り、メッセージMは、1つまたは複数の指定された出力ポートを指定する。(2)メッセージMは、指定された出力ポートへバッファリングせずに、相互接続構造内のノードを通って移動する。(3)メッセージMは、同じレベルL
kの異なるノードVへバッファリングせずに、相互接続構造のレベルL
kのノードUを通って移動するか、またはレベルL
kよりも送信先レベルL0に対して階層内で近いレベルL
iのノードWへバッファリングせずに、相互接続構造のレベルL
kのノードUを通って移動する。
【0079】
図9A、
図9Bおよび
図9Cに図示されるシステムのさらに他の実施形態によれば、相互接続構造は、構造内のノードを選択的に結合する相互接続構造において、複数のノードと、複数の相互接続線とを含むことができる。相互接続構造は、複数の入力ポートを通ってソートされずに相互接続構造に入る複数のマルチビットメッセージを送信する。複数のメッセージの個々のメッセージMは、自己ルーティングとすることができる。相互接続構造は、(1)ノードNAからの第1のデータ入力相互接続、およびノードNAとは異なるノードNFからの第2のデータ入力相互接続を有するノードNEと、(2)ノードNEへメッセージを送るために競合を解決するための制御信号を搬送するための、ノードNAとノードNFとの間の制御相互接続とを含むことができる。制御信号は、メッセージが通信されるノードNEとは各々異なる、ノードNAまたはノードNFから供給され得る。
【0080】
図9A、
図9Bおよび
図9Cに図示されるシステムのさらに他の実施形態によれば、相互接続構造は、階層的なマルチレベル構造内のノードを選択的に結合する相互接続構造において、複数のノードと、複数の相互接続線とを含むことができる。マルチレベル構造は、最も低い送信先レベルL0から最も高いレベルL
Jまで配置された、レベルの階層において、複数のJ+1レベルを含むように配置されることが可能であり、Jは、0よりも大きい整数である。相互接続構造は、複数の入力ポートを通してソートされていない複数のマルチビットメッセージを受信し、マルチビットメッセージを送信する。複数のメッセージの個々のメッセージMは、自己ルーティングとすることができ、メッセージの複数のビットの一部のみが、2つのノード間で送信中であるワームホールルーティングを使用して、ノードを通って移動する。マルチビットメッセージは、複数のノードにわたって及ぶ。個々のメッセージMは、メッセージMにより指定される出力ポートを通ってメッセージMが相互接続構造を出るのに十分な4つの手法を含む、複数の手法において移動する。4つの手法は、以下である。(1)メッセージMは、相互接続構造の外部のデバイスから相互接続構造内のノードに入り、メッセージMは、1つまたは複数の指定された出力ポートを指定する。(2)メッセージMは、指定された出力ポートへバッファリングせずに、相互接続構造内のノードを通って移動する。(3)メッセージMは、同じレベルL
kの異なるノードへバッファリングせずに、相互接続構造のレベルL
kのノードを通って移動する。(4)メッセージMは、レベルL
kよりも送信先レベルLoに対して階層内で近いレベルL
iのノードへバッファリングせずに、相互接続構造のレベルLkのノードを通って移動する。
【0081】
図9A、
図9Bおよび
図9Cに図示されるシステムのさらに他の実施形態によれば、相互接続構造は、構造内のノードを選択的に結合する相互接続構造において、複数のノードと、複数の相互接続線とを含むことができる。相互接続構造は、複数の入力ポートを通してソートされていない複数のマルチビットメッセージを受信し、マルチビットメッセージを送信する。複数のメッセージの個々のメッセージMは、自己ルーティングとすることができ、メッセージの複数のビットの一部のみが、2つのノード間で送信中であるワームホールルーティングを使用して、ノードを通って移動することができ、マルチビットメッセージは、複数のノードにわたって及ぶ。相互接続構造は、ノードN
Aからの第1のデータ入力相互接続、およびノードN
Fからの第2のデータ入力相互接続を有するノードN
Eと、ノードN
Eへメッセージを送るために競合を解決する、ノードN
AとノードN
Fとの間の制御相互接続とを含むことができる。
【0082】
図9A、
図9Bおよび
図9Cに図示されるシステムのさらに他の実施形態によれば、相互接続構造は、各ノードが複数の入力ポートおよび複数の出力ポートを有する複数のノードと、複数のノードに関連付けられたロジックと、複数のノードに含まれ、出力ポートopxを有するノードXとを含むことができる。ノードXは、入力端子IPXのセットを有することができ、ノードXに関連付けられたロジックは、セットIPXの入力端子に入るメッセージを出力ポートopxへ送ることができる。メッセージM
Pが入力ポートセットIPXの入力ポートpに到達し、出力ポートopxからメッセージMPのターゲットへパスが存在する場合、入力ポートセットIPXに到達するメッセージのうちの1つは、出力ポートopxがノードXを通って進んでいないメッセージによってブロックされない限り、出力ポートopxへ送られることになるように、ノードXに関連付けられたロジックは動作可能とすることができる。
【0083】
また、さらなる実施形態において、相互接続構造は、別個のノードFW、FBおよびFXを含む複数の相互接続されたノードと、ノードFWを通ってメッセージSWのセットを送ることを含めて、複数のノードを通って複数のメッセージを送るための手段と、メッセージセットSW内のメッセージの一部をノードFWを通ってノードFXへルーティングすることを含めて、メッセージセットSW内のメッセージをノードFWを通ってルーティングすることに関する情報Iを送るための手段とを備えることができる。相互接続構造は、ノードFBを通ってメッセージをルーティングするために情報Iを使用するための、ノードFSに関連付けられた手段をさらに備えることができる。
【0084】
他の実施形態において、相互接続構造は、ノードX、ノードセットT、ならびにノードYおよびZを含むノードセットSを含む複数のノードと、ノードを接続する複数の相互接続パスと、複数のノードに結合された複数の出力ポートと、出力ポートへのノードを通ったデータのフローを制御するロジックとを備えることができる。ロジックは、データフローを以下のように制御する。(1)ノードXは、セットS内の任意のノードへデータを送ることができる。(2)ノードセットTは、ノードXを通って流れるようにロジックによって他の方法で制御されるデータを代替的に通過させることができるノードを含む。(3)ノードXを通過するデータにアクセスすることができる任意の出力ポートは、ノードYを通過するデータにもアクセスすることができる。(4)複数の出力ポートは、ノードXを通過するデータにアクセスすることができるが、ノードZを通過するデータにアクセスすることができない出力ポートOを含む。(5)ロジックは、セットT内のノードからアクセス可能な出力ポートの数が、ノードXからアクセス可能な出力ポートの数よりも小さくなるように、ノードXを通るデータのフローを制御して、セットT内のノードを通って送られるデータメッセージの数を最大化する。
【0085】
図10を参照すると、タイミング図は、説明される相互接続構造におけるメッセージ通信のタイミングを例示している。相互接続構造の様々な実施形態において、メッセージ通信の制御は、ノードにおけるメッセージ到達のタイミングによって決定される。
図11に示されるパケット1100などのメッセージパケットは、ヘッダ1110とペイロード1120とを含む。ヘッダ1110は、バイナリ形式でターゲットリングを指定する一連のビット1112を含む。角度Θ
1および高さzにおける送信元デバイスCU(Θ
1、z
1)が、角度Θ
2および高さz
2における送信先デバイスCU(Θ
2、z
2)へメッセージパケットMを送る場合、ヘッダ1110のビット1112は、高さz
2のバイナリ表現に設定される。
【0086】
相互接続構造全体にサービス提供するグローバルクロックは、積分時間係数Kを維持し、ただし、ここでも、Kは、円筒高さzにおけるノードnの数を指定する。αの持続時間がβの持続時間を越え、以下の5つの条件が満たされるように、2つの定数αおよびβが存在する。第1に、メッセージMが、レベルTのノードN(T、Θ+1、hT(z))を、同様にレベルTのノードN(T、Θ、z)を出た後に出るための時間の量が、αである。第2に、メッセージMが、レベルT-1のノードN(T-1、Θ+1、z)を、レベルTのノードN(T、Θ、z)を出た後に出るための時間の量が、α-βである。第3に、メッセージが、デバイスCUからノードN(r、Θ、z)へ進むための時間の量が、α-βである。第4に、メッセージMが、持続時間aの間にノードN(r、Θ、z)からノードN(r、Θ+1、hr(z))へ移動する場合、メッセージMは、制御コードをノードN(r、0、z)からノードN(r+1、Θ、hr(z))へも送られるようにして、外側のレベルr+1上のメッセージをそらす。メッセージMがノードN(r、Θ、z)に入ってから、制御ビットがノードN(r+1、Θ、hr+1(z))に到達するまでに経過する時間が、持続時間βである。前述の第4の条件は、メッセージMがノードN(J、Θ、z)から最も外側のレベルJのノードN(J、Θ+1、hJ(z))へ移動する場合にも適用可能であり、その結果、メッセージMは、制御コードがノードN(J、Θ、z)からネットワークの外部のデバイスDへ送られるようにし、それにより、Dは、N(J、Θ+1、hJ(z))へデータを送る。1つの実施形態においてD=CU(Θ+1、hJ(z))である。メッセージMがノードN(r、Θ、z)に入ってから、制御ビットがデバイスCU(Θ、z)に到達するまでに経過する時間が、持続時間13である。第5に、グローバルクロックは、αの速さでタイミングパルスを生成する。
【0087】
送信元デバイスCU(Θ1、z1)が、メッセージパケットMを送信先デバイスCU(Θ2、z2)へ送る場合、メッセージパケットMは、デバイスCU(Θ1、z1)のデータ出力端子から、最も外側のレベルJのノードN(J、Θ1、z1)のデータ入力端子へ送られる。メッセージパケットおよび制御ビットは、nα+Lβという形式を有するときにレベルTのノードN(T、Θ、z)に入り、ただし、nは正の整数である。デバイスCU(Θ1、z1)からのメッセージMは、時間t0-βにおいてノードN(J、Θ1、z1)のデータ入力端子へ送られ、ノードN(J、Θ1、z1)が、レベルJ上を横断するメッセージに由来する制御ビットによってブロックされない限り、時間t0にノードN(J、Θ1、z1)のデータ入力端子へ挿入される。時間t0は、(Θ2-Θ1)a+βという形式を有する。同様に、ノードN(J、Θ1、z1)のデータ入力端子が、デバイスCU(Θ1、z1)からのメッセージパケットを受信可能となる、(Θ2-Θ1)α+Jβという形式の時間がある。
【0088】
ノードN(T、Θ、z)は、メッセージパケットMのターゲットアドレスおよび他のノードからのタイミング信号に基づいてメッセージのルーティングを制御するロジックを含む。ノードN(T、Θ、z)の第1のロジックスイッチ(図示せず)は、メッセージパケットMが次のレベルT-1のノードN(T-1、Θ+1、z)へ進むべきかどうか、またはノードN(T-1、Θ+1、z)がブロックされるかどうかを決定する。ノードN(T-1、Θ、HT-1(z))から送られる単一ビットのブロッキング制御コードが、時間t0にノードN(T、Θ、z)に到達するかどうかに応じて、ノードN(T、Θ、z)の第1のロジックスイッチが設定される。例えば、いくつかの実施形態において、第1のロジックスイッチは、ノードN(T-1、Θ+1、z)がブロックされる場合には、ロジック1値をとり、そうでない場合には、ロジック0値をとる。ノードN(T、Θ、z)の第2のロジックスイッチ(図示せず)は、メッセージパケットMが次のレベルT-1のノードN(T-1、Θ+1、z)へ進むべきかどうか、またはメッセージパケットMのヘッダの送信先デバイスCU(Θ2、z2)にアクセスするための好適なパス内にノードN(T-1、Θ+1、z)がないかどうかを決定する。メッセージパケットMのヘッダは、送信先高さz2(z2(J),z2(J-1),...,z2(T),...,z2(1),z2(0))のバイナリ表現を含む。レベルTのノードN(T、Θ、z)は、高さ指定z(zJ,zJ-1,...,zT,...,z1,z0)のうちの単一ビットの指定zTを含む。この実施形態において、第1のロジックスイッチがロジック0値を有し、指定高さのビット指定z2(T)が高さ指定zrに等しい場合、メッセージパケットMは、ノードN(T-1、Θ+1、z)において次のレベルへ進み、送信先高さビットz2(T)は、メッセージパケットMのヘッダから取り去られる。そうでない場合、メッセージパケットMは、ノードN(T、Θ+1、hT(z))へと同じレベルT上を横断する。メッセージパケットMがノードN(T-1、Θ+1、z)へ進む場合、メッセージパケットMは、時間(zz-21+1)a+(J-1)13に等しい時間t0+(α-β)に到達する。メッセージパケットMがノードN(T、Θ+1、hT(z))へ横断する場合、メッセージパケットMは、ある時間から+aに到達し、これは時間(z2-z1+1)α+Jβに等しい。メッセージパケットMが、ノードN(r、Θ、z)からノードN(T、Θ+1、hT(z))へ送られるにつれて、単一ビットの制御コードは、ノードN(T+1、Θ、hT(z))(または、時間t0+βに到達するデバイスCU(Θ、z)へ送られる。このタイミングスキームは、相互接続構造の全体にわたって継続され、メッセージパケットが進められたり、そらされたりする間の同期性を維持する。
【0089】
メッセージパケットMは、指定された送信先高さz2においてレベルゼロに到達する。さらに、メッセージパケットMは、時間ゼロ係数K(高さzにおけるノードの数)においてターゲットとされた送信先デバイスCU(Θ2、z2)に到達する。ターゲットとされた送信先デバイスCU(Θ2、z2)が、メッセージパケットMを受け入れる準備ができている場合、入力ポートは、パケットを受け入れるために時間ゼロ係数Kにおいて起動される。有利には、全てのルーティング制御動作が、2つのマルチビット値を全く比較せずに、2つのビットを比較することによって達成される。さらに有利には、メッセージパケットがノードからデバイスへ進む際の相互接続構造の出口ポイントにおいて、比較ロジックが存在しない。デバイスがメッセージを受け入れる準備ができている場合、メッセージは、クロック制御されるゲートを介してデバイスに入る。
【0090】
図10および
図11を参照すると、相互接続構造の実施形態は、3つの次元のトポロジーに配置された複数のノードと、ノードNからターゲット送信先へメッセージを送信するための手段と、を含むことができる。ノードNからターゲット送信先へメッセージを送信するための手段は、第2の次元および第3の次元におけるターゲット送信先への途中にあり、第1の次元の送信先レベルに向かって1レベル前進するノードが別のメッセージによってブロックされるかどうかを決定するための手段と、途中のノードがブロックされない場合、メッセージを第1の次元の送信先レベルに向かって1レベル進めるための手段と、そうでない場合、第2の次元および第3の次元におけるメッセージを第1の次元における一定のレベルに沿って移動させるための手段とを備えることができる。ノードNからターゲット送信先へメッセージを送信するための手段は、複数のレベルを記述するための第1の次元、レベルの断面に広がる複数のノードを記述するための第2の次元、レベルの断面内の複数のノードを記述するための第3の次元を特定するための手段と、途中のノードのレベルのノードから、第1の次元のノードNへ制御信号を送るための手段であって、制御信号は、途中のノードがブロックされるかどうかを特定する、手段と、積分時間係数をレベルの断面内のノードの数に維持するために、タイミング間隔を特定するグローバルクロックを使用して、メッセージの送信のタイミングを取るための手段と、第2の次元および第3の次元におけるメッセージを移動させるための第1の時間間隔aを設定するための手段とをさらに備えることができる。ノードNからターゲット送信先へメッセージを送信するための手段は、メッセージを送信先レベルへ1レベル進めるための第2の時間間隔α-βを設定するための手段であって、グローバルクロックは、第2の時間間隔に等しいグローバル時間間隔を特定し、第1の時間間隔は、グローバル時間間隔よりも小さい、手段と、途中のノードのレベルのノードからノードNへ制御信号を送るための第3の時間間隔を設定するための手段であって、第3の時間間隔は、βに等しい、手段とをさらに備えることができる。
【0091】
図12において、単一のチップ1200は、2つの構成要素を含む。第1の構成要素は、先行する全ての図において説明されたようなData Vortexスイッチ1220であり、第2の構成要素は、処理コアのアレイ1240である。
図13を参照されたい。Data Vortexスイッチは、外部の送信元からのデータを線1210上で受信する。処理コアのアレイ1240の処理コア1250は、Data Vortexスイッチからのデータを線1230上で受信することができる。処理コアのアレイ1240内の送信側処理コア1250は、そのヘッダが、受信側コアのロケーションを示し、そのペイロードが、送信対象のデータを示すパケットを形成することによって、処理コアのアレイ内の受信側コアへデータを送ることができる。
図13において、このパケットは、線1310へ送られ、Data Vortexスイッチ1220に入る。Data Vortexスイッチは、パケットを線1230上で受信側コアへルーティングする。処理コアのアレイ1240内のコアは、出力線1260上で、
図13に図示されていないアドレスへもパケットを送ることができる。
【0092】
4つのプロセッサコアアレイ1240を描写する
図14を参照されたい。一般に、任意の数のプロセッサコアアレイが存在し得る。反対に、今日のクロスバーまたはメッシュトポロジーには、それらのトポロジーの終点の限定された数を前提として、プロセッサコアアレイの上限がある。
【0093】
処理コアのアレイ1240内の送信側処理コアは、そのヘッダが、受信側コアのロケーションを示し、そのペイロードが、送信対象のデータを示すパケットを形成することによって、処理コアのアレイのうちの1つにおける受信側コアへデータを送ることができる。このパケットは、線1450へ送られ、Data Vortexスイッチ1410に入る。Data Vortexスイッチ1410は、受信側処理コアを含む処理コアアレイへパケットをルーティングすることによって、まず受信側コアへパケットをルーティングする。Data Vortexスイッチ1220は、プロセッサコアアレイ1240内の受信側処理コアへパケットをルーティングする。Data Vortexスイッチ1410および1220は、クロスバーではないので、パケットの異なるグループがスイッチに入る際に、スイッチはグローバルに設定およびリセットされる必要はない。今日の技術においては、クロスバースイッチにおける入力の数が増加するにつれて、スイッチを設定するための時間は、入力の数の関数として増加する。他の技術におけるこの設定問題は、長いパケットを引き起こす。パケットは、単に有利に出入りするだけなので、Data Vortexスイッチを設定することはない。
【0094】
展開させる必要のあるData Vortexスイッチ1410の数は、プロセッサコアの総数および送信線の帯域幅に依存する。
【0095】
与えられた処理コアアレイ1240内の処理コアが、その同じアレイ内の別の処理コアへパケットPKTを送る場合、送られるパケットは、Data Vortexスイッチ1410を通過し、ただし、それは、システムを通過する他のパケットと共に進む。パケットのこのシャフリングは、Data Vortexスイッチによって可能にされる他のハードウェアシステムにおいて効果的であることが証明されているランダム性を提供する。これは、クロスバーまたはメッシュを使用してプロセッサコアを接続するチップおよびシステムと異なって、きめ細かな並列処理が存在するため、有利である。きめ細かな並列処理は、輻輳を回避する、短いパケット移動(キャッシュ線以下)を可能にするこれは、小さなデータパケットを必要とする用途にとって理想的である。
【0096】
シリコン基板1400上に多数のチップ1200が存在し得るということは、重要な事実である。これらのチップ間を進むパケットがSerDesモジュールを通過する必要はない。今日のハードウェアにおいて、SerDesモジュールを通って進むデータパケットは、著しいレイテンシを追加する。チップ1200のエッジにSerDesモジュールは存在しないので、シリコン基板1400上のチップ1200間を進むパケットは、このレイテンシの影響を受けない。
【0097】
モジュール1200がプリント回路基板1400上に配置される場合、線1450を使用してData Vortexスイッチ1410を通り、次いで線1440を通って1つのモジュール1200から進むパケットは、各チップ境界上でSerDesモジュールを通って進まなければならない。この実装において、パケットが、SerDesモジュールによって引き起こされるレイテンシの影響を受けるとしても、システムは、増加された数のコア、より短いパケット長さ、およびData Vortexスイッチによって可能にされたきめ細かな並列処理から、依然として利益を得る。
【0098】
複数のプロセッサコアアレイ1240は、より大きい総数の処理コアを可能にし、コアの各々がより大きいサイズとなることを可能にする。クロスバーを使用する今日の技術においては、コアの数が大きくなるにつれて、パケットサイズが大きくなる。
図12、
図13および
図14において説明されたようなData Vortexを使用すると、コアの数が大きくなっても、パケットサイズは同じままである。
【0099】
図14の他の実施形態において、プロセッサコアアレイに隣接するメモリコントローラは、Data Vortexスイッチ1410を通じてアクセスされる。
【0100】
同じモジュール(例えば、シリコン基板)上にData Vortexネットワークおよびプロセッサアレイを配置することには、多数の利点がある。そうすることは、Data Vortexパスからシリアライザ/デシリアライザブロック(「SerDes」)を除去し、したがって、必要とされる電力とレイテンシとを低減する。今日のData Vortex対応システムは、コモディティネットワークオンチップによっても遅くされる。同じモジュール上にData Vortexネットワークを有することは、それらの従来のネットワークオンチップ(NoC:network-on-chips)を置換し、システム全体がData Vortexトポロジーの利点の全てから利益を得ることを可能にする(すなわち、エコシステム全体にわたる輻輳のない、小さいパケット移動)。したがって、非Data Vortex NoCは、コア間データパスから除去されることが可能であり、したがって、汎用マイクロプロセッサから出て進むパケットが、それらがオフチップData Vortexネットワークを通過するにつれてばらばらに壊れてしまう先行技術と比較して、パケットは、小さいままであることが可能である。これは、現在のData Vortex対応システムと比較して、より一貫したコア間レイテンシ、またはコア/メモリ間レイテンシも提供する。次に上のレベル(基板間)上で、オンモジュールData Vortexネットワークは、システム全体にわたる共通のソケット間およびコア間アーキテクチャを提供し、同じシステム内の異なるトポロジーの必要性を除去する。これは全て、コア、ソケット、およびサーバにわたる共通のプログラミングモデルを可能にし、それをエンドユーザにとってより簡単なものにする。
【0101】
ここで使用され得る、「実質的に」「本質的に」、または「およそ」という用語は、対応する用語に対して業界で受け入れられている可変性に関連する。そのような業界で受け入れられている可変性は、1パーセント未満から20パーセントまでに及び、材料、形状、サイズ、機能性、値、プロセスのバリエーション等に対応するが、これらに限定されない。ここで使用され得るような「結合される」という用語、直接結合と、別の構成要素または素子を介した間接的な結合とを含み、ただし、間接的な結合の場合、介在する構成要素または素子は、動作を変形しない。例えば、推論によって1つの素子が別の素子に結合される、推論される結合は、「結合される」と同じように、2つの素子間の直接的な結合および間接的な結合を含む。
【0102】
例示的な絵図は、製造プロセスにおける構造およびプロセスアクションを図示している。特定の例は、特定の構造およびプロセス行為を例示するが、多くの代替的実装が、可能であり、単純な設計選択によって一般に作製される。製造アクションは、機能、目的、標準への準拠、レガシー構造等の考慮に基づいて、ここにおける特定の説明とは異なる順序で実行されてもよい。
【0103】
本開示は、様々な実施形態を説明しているが、これらの実施形態は例示的なものであり、特許請求の範囲の範囲を限定しないものとして理解されるべきである。説明される実施形態の多くのバリエーション、変形、追加および改善が可能である。例えば、当業者は、本明細書において開示されている構造および方法を提供するのに必要なステップを容易に実装し、プロセスパラメータ、材料、形状、および寸法は例としてのみ与えられていることを理解するであろう。パラメータ、材料、および寸法は、変形だけでなく、所望の構造を達成するためにも変更されることが可能であり、それは特許請求の範囲の範囲内である。