(57)【要約】  調停待ち時間を低減するための方法及びシステムは、事前の調停を行わずに、ルーティング構造の計画的調停と組み合わせて、投機的送信（ＳＴＸ）を用いる。パケットは、発信元位置からルーティング構造に計画的調停を介して送信されると共に投機的調停を介しても送信され、ルーティング構造の事前に予約されていない出力を、投機的に伝送されたパケットに、衝突が生じないように割り当てる。
2009516478.tif 000002
【特許請求の範囲】
【請求項１】
計画的調停を用いて又は用いずに、ルーティング構造の複数の入力から複数の出力にデータパケットを送信する方法であって、
前記計画的調停の結果が存在する場合に、該計画的調停の結果に従って少なくとも１つのデータパケットを送信する工程と、
前記計画的調停の結果が存在しない場合に、
投機的に送信するデータパケットを選択する工程と、
前記選択されたデータパケットの出力識別子を含む投機的要求を発行することと、前記選択されたパケットを前記ルーティング構造に送信することとを同時に行う工程と
を備えることを特徴とする送信方法。
【請求項２】
前記選択されたデータパケットを格納し、該格納されたパケットに対する応答又は許可が受信されるまで該パケットを格納する工程を更に備えることを特徴とする請求項１記載の方法。
【請求項３】
前記ルーティング構造がバッファリングされないことを特徴とする請求項１記載の方法。
【請求項４】
各タイムスロットについて、前記計画的調停の結果に従って、前記ルーティング構造の前記入力を前記出力にマッチングさせる工程と、
前記マッチングされた入力及び出力が前記ルーティング構造に適用されるタイムスロットにおいて、マッチングされていない各出力に対し、発行された前記投機的要求が存在すれば、１つの該投機的要求を選択ポリシーに従って選択する工程と、
各勝ち抜いた投機的要求に対する入力対出力マッピングを、前記ルーティング構造に適用される現在の前記計画的調停の結果に追加する工程と
を更に備えることを特徴とする請求項１記載の方法。
【請求項５】
各前記勝ち抜いた選択された投機的要求に対応する応答を返す工程を備えることを特徴とする請求項４記載の方法。
【請求項６】
前記投機的に発行された要求が他の要求を抑えて決定されると、前記投機的に発行されたデータパケットの到着と同期して、前記ルーティング構造に発行される送信許可の送信が、前記構造のスイッチ状態が前記ルーティング構造を通る前記データパケットの通過を妨げないように丁度良い時に設定されるよう行われることを特徴とする請求項１記載の方法。
【請求項７】
複数の位置間の情報単位の流れを管理するシステムにおいて、
複数の発信元位置から複数の宛先位置に情報単位を送信するためのスイッチング構造への複数のアクセス要求を受信する複数の入力であって、前記要求が、計画的調停によるアクセス許可の要求と、計画的調停による許可がない投機的アクセスの要求とを含み、各前記要求が、関連付けられた情報単位を転送すべき宛先位置の標識を含む、前記複数の入力と、
前記計画的調停によるアクセス許可の要求のグループ又はサブグループに対する、前記スイッチング構造のリソースの衝突が生じない割り当てを決定するアービターと、
前記決定がなされたグループが前記スイッチング構造に次に適用されるべきものである時に、前記投機的アクセスの要求を受信し、前記決定された割り当てに基づき前記受信した要求を許可又は拒否する投機的要求アービターと
を備えることを特徴とするシステム。
【請求項８】
前記受信された投機的アクセス要求の許可された１つと関連付けられた情報単位が、前記スイッチング構造を通過して、前記グループ又はサブグループのために予約されていない出力に送られることを特徴とする請求項７記載のシステム。
【請求項９】
前記スイッチング構造が、前記情報単位を格納するためのバッファ回路を含まないことを特徴とする請求項７記載のシステム。
【請求項１０】
前記スイッチング構造の前記複数の入力の各々が、前記スイッチング構造の個々の出力に同時に接続可能であることを特徴とする請求項７記載のシステム。
【発明の詳細な説明】
【優先権の主張】
【０００１】
本願は、２００５年１１月１４日に出願された「相互接続の待ち時間を低減するための方法及びシステム(METHOD AND SYSTEM TO REDUCE INTERCONNECT LATENCY)」という名称の米国特許仮出願第６０／７３６，７７９号による優先権を主張する。
【技術分野】
【０００２】
本発明はパケットスイッチングの分野に関し、具体的には、特にコンピュータ相互接続ネットワークに適用性を有する、入力キューイングを伴うパケットスイッチングアーキテクチャの分野に関する。
【背景技術】
【０００３】
本発明は、ＤＯＥ／ＮＮＳＡより与えられた契約番号Ｗ−７４０５−ＥＮＧ４８の下、米国政府の支援を受けてなされたものである。米国政府は本発明に一定の権利を有する。
【０００４】
伝送技術並びに通信及び計算の並列処理の進歩により、情報データの転送に利用可能な帯域幅の限界が高まり続けている。例えば、波長分割多重（ＷＤＭ）や高密度ＷＤＭ（ＤＷＤＭ）等といった進歩により、単一のファイバ上に多数のチャネルを多重化することで、利用可能な帯域幅が非常に増加する。個々のチャネルは、光キャリア（ＯＣ−ｘ）速度ＯＣ−４８（２．５Ｇｂ／秒）、ＯＣ−１９２（１０Ｇｂ／秒）、又はＯＣ−７６８（４０Ｇｂ／秒）で動作する。最新のＤＷＤＭ技術を用いれば、単一のファイバで、５テラビット／秒を超えるデータを搬送可能である。
【０００５】
同時に、そのような進歩によって提供されるますますの高速化と、入手可能なスイッチがスイッチング可能な速度とのギャップが広がっている。光スイッチは、自由区間を通したルーティング、長い距離にわたる最小限の信号減衰、並びに、光学領域から電気領域への及び電気領域から光学領域への変換をなくす等といった、理論的な長所を提供するが、現在の全光学型のスイッチは、比較的動作が遅いか、又は非常に高価である。更に、情報の光ストレージは非常に面倒であり、しばしば実用的でない。この光スイッチングの短所が克服されるまでは、パケットスイッチング方式では、電気的なスイッチが主要な役割を果たし続けるであろう。
【０００６】
ボードの相互接続には、バックプレーンスイッチ、より一般的にはルーティング構造を用いるのが一般的である。ネットワーキングシステムでは、これらのボードはラインカードと呼ばれ、コンピューティング及びストレージにおいては、これらはしばしばアダプタやブレードと呼ばれる。電気通信交換器、マルチサービス・プロビジョニング・プラットホーム、アド／ドロップマルチプレクサ、デジタル交差接続、ストレージスイッチ、ルータ、大企業規模スイッチ、埋め込みプラットフォーム、マルチプロセッサシステム及びブレードサーバ等の広範囲のシステムが、バックプレーンを用いてボードを接続している。
【０００７】
発信元から宛先に相互接続システムを介して情報データが伝送される際には、情報はまず、複数のデータパケットに分割されることが多い。一般的に、各データパケットはヘッダー部、ペイロード部及び最後尾部を含み、更により小さい単位に分割される。データパケットは、他の発信元から発信された他のデータパケットと同時に、ルーティング構造を介してスイッチングされる。並列コンピュータ、インターネットルータ、Ｓ（ｔ）ＡＮネットワーク、非対称転送モード（ＡＴＭ）ネットワーク、及び特に光ネットワークの相互接続に用いられるものを含む現在の多くのパケットスイッチシステムは、入力キューイング構成を用いており、各ラインカードの出力毎にソートされたキュー（しばしば仮想出力キューイング（ＶＯＱ）と呼ばれるこのような構成は、ＦＩＦＯキューの使用に特有の行頭ブロッキングを解消する）、クロスバールーティング構造、並びに、スイッチングリソースの割り当て及びキュー間の調停を行う中央集中型スケジューラ（例えば、アービター又は調停部）を含む。
【０００８】
図１は、ＶＯＱアーキテクチャを用いた従来のスイッチング構成を示す。図１の構成では、個々のラインカード１０２のＮ個のデータリンク２ａ１〜２ａＮの各々からデータパケット（例えば、セル、フレーム又はデータグラム）が受信される。データパケットは、ルーティング構造１０６（Ｎ×Ｎクロスバーとして示されている）の各出力３１〜３Ｎ毎に、マルチプレクサ１０５ａを介して、Ｎ個のバッファグループ１２１のＮ個のバッファの１つにソートされる。即ち、各入力ラインカード１０２では、各出力３１〜３Ｎに対して個別のキューが維持され、その結果、ルーティング構造１０６の入力側ではＮ２個のＶＯＱが生じる。ルータ構造１０６の同じ出力を求めるデータパケット間の競争を管理し、入力を出力にマッチさせるためのアービター１０７が設けられている。アービター１０７は、制御パス１０８、１０９に沿って各ラインカードと通信し、制御パス１１２に沿ってルーティング構造１０６にスイッチング構成を提供する。アービター１０７は、物理的にルーティング構造１０６の近くに位置するのが一般的である。
【０００９】
アービター１０７は、バッファグループ１２１の各バッファで待機しているパケットに、衝突が生じないように入力ポート及び出力ポートを割り当てることを含む処理を行う。これらの処理は、割り当て及び調停を含む。割り当ては、最多で１つの出力リソースへの出力に対して、各バッファグループ１２１から最多で１つのパケットが選択されるように、ルーティング構造１０６の入力２ｂ１〜２ｂＮと出力３１〜３Ｎとの間のマッチングを決定する。調停は、単一の各出力リソース３１〜３Ｎに対する複数の要求を解決し、これらの出力の１つを１グループの要求者の１つに割り当てる。図１の従来の構成では、アービター１０７は、制御パス１０８上でラインカード１０２からのスイッチアクセス要求を受信する。アービター１０７は、受信した要求及び適切なマッチングアルゴリズムに基づいてマッチングを計算し、多くのタイムスロットの各々において、入力２ｂ１〜２ｂＮのどれに、どの出力へのデータパケットの転送を許可するかを決定する。アクセスを勝ち得た（即ち、アクセスを許可された）各ラインカード１０２には、制御パス１０９に沿って、特定のタイムスロット又はスイッチングサイクルにおける指定された出力へのパケット等のデータ単位の送信が許可されたことをそのラインカード１０２に知らせる制御メッセージが送信される。そのタイムスロットの間に、アービター１０７は、計算したスイッチング構成をルーティング構造１０６に送信し、勝ち抜いた各ラインカード１０２は、そのバッファグループ１２１内のキューから一単位のデータパケットをデマルチプレクサ１０５ｂを介して放出し、そのデータ単位を２ｂ１〜２ｂＮのいずれかの対応する入力に沿ってルーティング構造１０６に伝送する。次に、各データパケットは、ルーティング構造１０６を介して、アービター１０７によって構成されたパスに沿って、出力３１〜３Ｎのうちの要求された１つへと伝送される。
【００１０】
図面からわかるように、このような入力キューイングシステムには、ラインカードからアービターへの制御情報の流れ（例えば要求）とラインカードに戻る制御情報の流れ（例えば許可）を含む制御パスと、入力ラインカードからクロスバーを介して出力ラインカードに至るデータパケットの流れを含むデータパスとの、２つの基本的な通信パスが存在する。
【００１１】
尚、図１に示されている従来のパケットスイッチング構成は、一方向通信パスのみを有するルーティング構造６を示すものであるが、この一般的な概念は、双方向データ及び制御パスも含む。例えば、図１に示されている各データリンク２ｂ１〜２ｂＮ及び個々の出力３１〜３Ｎは、各バッファグループ１２１と関連付けられたラインカードが入力（ingress）バッファ及び出力（egress）バッファの両方を含むような、双方向リンクとして表わされ得る。この場合には、ラインカード１０２は、ルーティング構造を用いてデータパケットを伝送するための発信元位置及び宛先位置の両方とみなすことができる。同様に、要求、許可、及びリンク２ａ１〜２ａＮも、双方向リンクとして表わされ得る。
【００１２】
容量の増加と共に、パケットスイッチの物理的なサイズも増加している。同時に、ライン速度は増加しても、パケットサイズはほぼ一定のままであるので、単一のパケット又はセルの持続時間（Ｔ＝Ｌ／Ｂ。ここで、Ｌはビット単位のパケット長であり、Ｂはビット／秒単位のリンク速度である）は短くなっている。これらの傾向は、パケット時間で測定されるスイッチ内のラウンドトリップ（ＲＴ）が、かなり跳ね上がることを直接暗示するものである。中央集中型の調停が行われる入力キューイング型スイッチでは、最小通過待ち時間は（１）アービターに要求を提出して対応する許可が到着するまで待機する待ち時間（アービターへの及びアービターからの飛行時間（time-of-flight）及び調停のための時間を含む）と、（２）シリアル化/逆シリアル化（ＳｅｒＤｅｓ）、伝送、及びスイッチを介してパケットを送信するための飛行時間の待ち時間との２つの待ち時間からなるので、この影響は２倍になる。ざっと述べれば、これらの待ち時間は最小でも２・（ＲＴ）パケット時間となり、これは、類似のスイッチ（バッファ付きルーティング構造を有するものを除く）の２倍である。
【００１３】
これらの待ち時間が問題となったのは最近であるので、これまでほとんど注目されていなかった。実際上の好ましい解決法は、入力キュー（一般的にＶＯＱ式に組織される）を有するラインカード等のボードを、ルーティング構造（例えば、クロスバー及びアービターを含むスイッチコア）の物理的に近くに配置することであった。しかし、現在のパッケージ化及び電力の制約により、スイッチコアの近くに多数のラインカードを配置することはできない。その結果、従来の構成では、単にルーティング構造に配置されるラインカードの数を増やすだけでは、より多くの帯域幅を求める増大し続ける要求に対処できない。
【００１４】
特許文献１では、ルーティング構造からラインカードを物理的に分けることにより、ラインカードの数を増やすことで、合計システム帯域幅を増やす試みがなされている。バッファリング及び処理の大半は、物理的に遠隔のラインカード上で実施される。図２Ａは、この手法によるシステムを示す。
【００１５】
図２に示されるように、このシステムは、スイッチコア２１０と、スイッチコア２１０から物理的に離れた位置に設けられた複数のラインカード２０２とを含む。各ラインカード２０２は、入力ＶＯＱバッファグループ（キュー）２２１及び出力バッファ２２２を含む。スイッチコア２１０は、複数のポートモジュール２８０（即ち、「スイッチポート」）と、並列スライス自己ルーティングクロスバー型構造モジュール２０６と、中央集中型アービターモジュール２０７とを含む。データパケットは、ラインカード２０２とスイッチポート２８０との間のデータリンク２３１、及びスイッチポート２８０とクロスバー型ルーティング構造２０６との間のデータリンク２０３に沿って送受信される。各ラインカード２０２は、順方向パスを伝送されているパケットを格納するバッファグループ２２１と、リターンパスのパケットを格納する出力バッファ２２２とを含む。制御メッセージは、ラインカード２０２とスイッチポート２８０との間の制御パス２３２、及びスイッチポート２８０とアービターモジュール２０７との間の制御リンク２０４に沿って送受信される。アービター２０７は、各タイムスロットに対する適切な構成を決定し、その構成を構成リンク２１２に沿ってルーティング構造２０７に供給する。ＶＯＱ２２１とアービター２０７との間のＲＴを最小限にするために、スイッチコア２１０の各入力ポートにつき、ＶＯＱを有する小型バッファ２８１がスイッチコア２１０の近くに配置されている。これは、ラインカード２０２とスイッチポート２８０との間の損失の無い通信を可能にするラインカード対スイッチ（ＬＣＳ）プロトコルを用いて達成される。
【００１６】
特許文献１の手法の主な短所は、スイッチポート２８０で必要なのは、少量、即ち、１回のＲＴをカバーするのに十分な数のパケットのバッファリングのみであるにも関わらず、ラインカード２０２及びスイッチポート２８０の両方がバッファを含むことである。これらのバッファ付きスイッチポートは、コスト、カードスペース、電力、及び待ち時間（例えば、追加のＳｅｒＤｅｓ及びバッファリング）を増加させる。これらはまた、ラインカード２０２に既に存在する機能性を二重にするものである。
【００１７】
たとえ特許文献１に記載されている手法を用いても、スイッチポート２８０とアービターモジュール２０７との間のラウンドトリップ時間を１セル時間より短くするのは実際上困難である。更に、（ラインカードからスイッチコアまでの長い距離をカバーするための）ラインカードからスイッチコアへの光リンク及び光ルーティング構造を備えるスイッチ構造の具体的なケースでは、光バッファは現在のところ実用的でないか又は経済的に実現可能ではないため、スイッチポート２８０は、更に、電気的／ＣＭＯＳチップでのバッファリングのための電気から光への及び光から電気への変換を要する。このような変換回路の追加は、システムのコスト及び複雑さをかなり高めることになる。
【００１８】
非特許文献１に示されている相互接続ネットワークの待ち時間を低減するための別の手法は、「先読み投機（speculation with lookahead）」を含むものである。非特許文献１に記載されているように、ルータのマッチングアービターは、先読み投機を用いて、入力ＶＯＱのキューを最初の要素（行頭、即ちＨｏＬ）よりも深く調べ、一部のスイッチリソースに、それらの後続のパケットに許可が与えられるという期待（希望）を前もって割り当てる。この手法は、ルータが何らかのマッチング及び設定タスクを並列して行えるようにすることにより、パイプラインのステージ数をできるだけ少なくすることを試みるものである。先読み投機は、キューに加えられて入力ＶＯＱ内に存在するパケット及び既に送信要求がなされアービターが直ちに対応できないパケットには利点があるが、検討されるべき送信要求がまだアービターに受信されていないパケット、及び／又は、入力ＶＯＱに到着したばかりのパケットの伝送速度を高めることはない。
【００１９】
更に、先読み投機は、主にアービターのアルゴリズムにおける待ち時間に対処するものであり、通常はこれより大きい送信器からスイッチ構造までの伝送時間の待ち時間には対処しない。本願より前の、内部スイッチの速度増加及び軽いスイッチ負荷に頼って、スイッチのリソースをより多く投機的に割り当てる、二重及び三重の投機的実行の概念（例えば、非特許文献１の３１７頁を参照）は、ほとんどの適用例で失敗している。従来の厳密な非ブロッキングスイッチ構造の多くのものでは、内部構造が複数の連続したスイッチングステージに内部的に区分されている。二重及び三重の投機的実行では、これらのステージは投機的な負荷に対して増分的に設定される（割り当てられる）。これらの手法では、速度増加が極端又は負荷が軽い場合にのみ投機的実行を行い、多ステージ構造の全体を通る送信を許可することに通常は成功する。負荷が増大すると、この投機的割り当ての手法は、良好に調停された要求に割り当てた方がよいリソースを無駄に予約するため、性能を損なう。
【００２０】
更に、上述のシステムの全てには、依然として、ラインカードが出力リソースに対する要求を提出してから許可が到着するまで待たなければならない最初のＲＴ待ち時間の問題がある。
【００２１】
従って、当該技術分野には、相互接続システムのルーティング構造に関連する待ち時間を低減するための、より効率的で、さほど複雑ではなく、低コストの方法の必要性が残っている。
【特許文献１】米国特許第６６４７０１９号明細書
【非特許文献１】W. J. Dally et al., “Principles and Practices of Interconnection Networks,” Morgan Kaufman, 2004, pp. 316-318
【発明の開示】
【発明が解決しようとする課題】
【００２２】
従って、本発明は、関連技術の限界及び欠点に起因する短所や問題の１つ以上を実質的に取り除く方法及び装置の提供を目的とするものである。
【課題を解決するための手段】
【００２３】
本発明は、ルーティング構造を用いるシステムにおいて計画的調停によって生じる全体的な待ち時間を低減する、情報単位を伝送するためのシステム及び方法を含む。この方法は、計画的調停を行って又は行わずに複数の発信元からルーティング構造の複数の入力にデータパケットが送信され、入力パケットを指定されたルーティング構造の出力にスイッチングする、スイッチング構造を含むシステムに特に適している。
【００２４】
本発明の１つの態様において、１つの方法は、計画的調停の結果が存在する場合には、事前の調停（即ち、計画的調停）の結果に従って、少なくとも１つのデータパケットを送信し、計画的調停の結果が存在しない場合には、投機的に送信するデータパケットを選択する工程を含む。この方法は、選択されたデータパケットの出力識別子を含む投機的要求を発行することと、選択されたパケットをルーティング構造に送信することとを同時に行う工程も含む。
【００２５】
本発明の別の態様において、計画的（事前の）調停を行って又は行わずに、ルーティング構造の複数の入力から複数の出力にデータパケットを送信するシステムは、事前調停の結果が存在する場合に、計画的調停の結果に従って、少なくとも１つのデータパケットを送信する機構と、計画的調停の結果が存在しない場合に、投機的に送信するデータパケットを選択し、選択されたデータパケットの出力識別子を含む投機的要求を発行することと、選択されたパケットをルーティング構造に送信することとを同時に行う機構とを含む。
【００２６】
本発明の別の態様は、複数の位置間の情報単位の流れを管理するシステムを含む。このシステムは、複数の発信元位置から複数の宛先位置に情報単位を送信するためのスイッチング構造への複数のアクセス要求を受信する複数の入力を含む。このアクセス要求は、計画的調停によるアクセス許可の要求と、計画的調停による許可がない投機的アクセスの要求とを含む。各要求は、関連付けられた情報単位を転送すべき宛先位置の標識も含む。システムは、計画的調停によるアクセス許可の要求のグループ又はサブグループに対する、スイッチング構造のリソースの衝突が生じない割り当てを決定するアービターを含む。システムは、決定がなされたグループがスイッチング構造に次に適用されるべきものである時に、投機的アクセスの要求を受信し、決定された割り当てに基づき受信した投機的要求を許可又は拒否する投機的アービターを含む。
【００２７】
本発明の更に別の態様は、最終的に許可が拒否された場合には無駄になる事前割り当て又はスイッチングリソースの予約を必要とせずに、入力キューに到着したばかりのデータパケットの伝送速度の増加を容易にするものである。
【００２８】
本発明の別の態様は、パケットの発信元とルーティング構造との間のラウンドトリップ伝送の量を低減することにより、平均的な待ち時間を低減することを含む。例えば、１つのパケットの投機的送信が成功すると、ルーティング構造を通してパケットを送るために必要な少なくとも１つのラウンドトリップ（即ち、要求の送信から許可を受信するまで）が省かれる。
【００２９】
本発明の更なる態様及び長所は、以下の記載で述べられ、その一部はその記載から自明であり、或いは本発明の実施から分かり得るものである。本発明の態様及び長所は、本願明細書及び特許請求の範囲並びに添付の図面において特に指摘されるシステム及び方法によって実現され達成される。
【００３０】
上述の概括的な説明及び以下の詳細な説明は例示的なものに過ぎず、特許請求される本発明を限定するものではないことを理解されたい。
【発明を実施するための最良の形態】
【００３１】
本発明の更なる理解を提供するために含まれ、本願明細書に組み込まれてその一部を構成する添付の図面は、本発明の原理を記載と共に説明する役割を果たす本発明の例示的な実施形態を示す。
【００３２】
以下、本発明の上記態様及び他の態様を、添付の図面に示されている例に関連してより詳細に述べる。
【００３３】
関連技術に関して上述したように、中央集中型調停構成は高い最大スループットを達成するが、特に低〜中程度の使用率では、調停待ち時間の不利益を招く。本発明は、投機的送信（ＳＴＸ）と呼ぶ新規な種類の投機的実行を用いて、そのような待ち時間に対処する。本願明細書に記載するＳＴＸの概念は、ＡＬＯＨＡ及びイーサネットの背後の基本的な概念に関係するものであり、その概念では、事前の調停なしに（即ち、所与の伝送の成功を見越して）パケットがシェアードメディアを介して伝送される。しかし本発明では、調停待ち時間を解消するために、この概念をスイッチドメディアの文脈に適用する。投機的送信のみを用いてパケットスイッチを動作させると、頻繁なパケット衝突が生じ、その結果、中〜高程度の使用率では壊滅的な性能悪化を生じるので、本発明は、投機的送信と調停とを組み合わせて、両方の概念の長所、即ち、高い最大スループットと、低〜中程度の使用率における低い待ち時間とを得る。
【００３４】
本発明は、ルーティング構造（ファブリック）の近くに追加のバッファ・ステージを実装せずに、ルーティング構造の調停と組み合わせて、事前の調停を行わずにＳＴＸを用いて、調停待ち時間を低減する。更に、本発明は、パケット持続時間より（遥かに）大きいラウンドトリップに効果的に対処できるような、投機的処理の非常に深いパイプライン化を可能にする。本発明は、スイッチング構造における調停によって生じる平均的な待ち時間を実質的に低減又は解消することにより、全体的な待ち時間を５０％又はそれより低く減少させることができる。
【００３５】
しばしば無駄になるスイッチリソースの事前割り当てを含む従来技術の投機的実行方式とは対照的に、本願明細書で説明するルーティング構造の効率的な非ブロッキング型の単一ステージ送信の性質は、そのようなリソースの事前割り当てを行わない。換言すれば、構造（ファブリック）リソースは実際には投機的に設定されないので、本発明は、スイッチング構造に単一ステージセレクタを実装することにより、スイッチリソースの無駄を回避する。
【００３６】
本発明は、ＳＴＸ選択ポリシー、衝突、再送、順序が乱れた配信、再シーケンス化、二重配信、再送及び再シーケンス化のウィンドウサイズ決定に関係する問題に対処する。しかし、本発明の任意の特定の適用例に関するスイッチング構造に関係する他の問題及び特殊性も、当業者には容易にわかることを理解されたい。
【００３７】
図３は、本発明による例示的なシステムを示す。図３に示されるように、このシステムは、Ｎ個のラインカード３０２に接続されたＮ個の双方向全二重型入力/出力データリンク３０１を備える。ペイロード情報を有するデータパケット及び要求されたパケットの宛先を示す情報を含むヘッダーは、データリンク３０１を介して送受信される。各ラインカード３０２は、双方向全二重型構造内データリンク３０３を介してスイッチコア３１０に接続されている。スイッチコア３１０は、Ｎ個の入力ポート及びＮ個の出力ポートを有するクロスバーとして例示されているルーティング構造３０６を有する。各ラインカード３０２は、ラインカード３０２とアービター３０７との間で制御メッセージ（例えば、要求及び許可を含む）をやりとりする専用双方向制御リンク３０４で、中央集中型割り当て／調停部３０７にも接続されている。アービター３０７は、構成リンク３１２を介してクロスバー３０６に接続される。各ラインカード２は、入力バッファ部３２１及び出力バッファ部３２２を更に有する。以下、アービター３０７、入力バッファ部３２１及び出力バッファ部３２２の構成及び機能を、図４〜図７を参照して更に詳細に述べる。
【００３８】
本発明は、他のタイプのルーティング構造と共に用いられてもよい。しかし、本発明は、クロスバーに基づくスイッチに特に適している。従って、好ましい例を示す目的で、図３に示されているシステムを、クロスバーに基づくスイッチを含むスイッチコアに関連して説明するが、当業者には、本発明が多くのスイッチング構造アーキテクチャに適用可能であることがわかるであろう。
【００３９】
クロスバー型スイッチの特性は、常に、１つの入力は１つの出力のみに接続可能であり、１つの出力は１つの入力のみに接続可能なことである。即ち、スイッチの入力と出力とは一対一でマッチングする。待ち時間及びスループットに関する良好な性能を得るために、マッチングは、一般的に、中央集中型割り当て／調停部によって計算される。更に、割り当て／調停部は、スイッチの１つの出力リソースをめぐる競争を解決する。図３に示されている例示的なシステムでは、アービター３０７は、これらの割り当て及び調停機能を実行する。図３では、アービター３０７は単一のユニットとして示されているが、割り当て及び調停機能は、プログラム命令と連動して動作する２つ以上のハードウェア装置及び／又は１つ以上のハードウェア装置によって実行されてもよいことを理解されたい。
【００４０】
アービター３０７は、ラインカード３０２からの出力リソース要求を受信する。要求は、その要求を発信したラインカード３０２が特定の出力ポートへのパケットの伝送を望んでいることを示す出力ポート識別子を含む。アービター３０７は、受信した要求に基づき、入力ポートと出力ポートとの適切な一対一マッチングを計算する。これは、二部グラフマッチング問題に相当する。アービター３０７は、計算されたマッチングに基づき、対応する許可をラインカード３０２に返す。許可は、この許可を受信したラインカード３０２が特定の出力ポートにパケットを伝送できることを意味する出力ポート識別子を含む。オプションとして、特定の要求に対して使用可能な出力リソースが無い場合には、アービター３０７は、拒否された要求に対応する応答を返してもよい。ラインカード３０２が許可を受信すると、ラインカード３０２は、入力バッファ部３２１の対応するＶＯＱから１つのパケットを取り出し、そのパケットをデータリンク３０３上でクロスバー３０６に送信する。クロスバー３０６は、アービター３０７によって計算され構成リンク３１２を介して適用された構成（即ち、マッチング）に従って、着信したパケットをデータリンク３０３にルーティングする。
【００４１】
図４は、入力バッファ部３２１をより詳細に示す図である。入力バッファ部３２１は、入力デマルチプレクサ４１０、各出力に対して１つずつ対応する複数の仮想出力キュー（ＶＯＱ）４１１、各出力に対して１つずつ対応する複数の再送（ＲＴＸ）キュー４１２、各ＶＯＱ４１１に対して１つずつ対応する複数のデマルチプレクサ４１３（これらのデマルチプレクサは、実際には、ルーティング機能に加えて複製機能も有する）、各ＶＯＱ４１１に対して１つずつ対応する複数のマルチプレクサ４１４、出力マルチプレクサ４１５、及び制御部４１６を含む。
【００４２】
動作においては、パケットは、入力バッファ部３２１に接続された入力データリンク３０１上で到着し、デマルチプレクサ４１０は、着信したパケットを、それぞれの宛先（出力ポート）に従って、対応するＶＯＱ４１１にルーティングする。パケットの到着は、制御部４１６にも伝えられる。制御部４１６は、アービター部３０７に要求を送信し、アービター部３０７から制御チャネル３０４を介して許可を受信する。高信頼性配信方式のためにシーケンス番号が必要な場合には、制御部４１６は、同じ出力を宛先とする後続のパケットに後続のシーケンス番号を割り当てる。計画的調停要求及び投機的要求、並びに許可及び応答は全て、出力識別子を含む。投機的要求、許可及び応答は、更に、シーケンス番号を含み得る。例えば、特定のタイプの高信頼性配信（ＲＤ）方法（その一部については後述する）は、計画的調停の結果として伝送されたデータパケット及び投機的に伝送されたデータパケットの各々がシーケンス番号を有することを必要とし得る。
【００４３】
このシステムは、２つの送信モード、即ち、調停送信（即ち、計画的調停によって生じる送信）及び投機的送信（ＳＴＸ）を有する。計画的調停送信モードは従来技術で公知である。例えば、ミンケンバーグら（C. Minkenberg et al.），ＩＰ．ｃｏｍ，２００４年６月３日，記事番号ＩＰＣＯＭ００００２８８１５Ｄを参照されたい（その全内容をここに参照して組み込む）。本発明は、投機的送信モード及び、計画的調停送信モードと投機的送信モードとの間の相互作用に対応する。これは、計画的調停要求及びそれに対応する許可と、投機的要求及びそれに対応する肯定的及び否定的応答とを区別することによって達成される。
【００４４】
図４に戻ると、好ましい実施形態において、ラインカード３０２は、所与のタイムスロットにおける計画的調停送信に対するいかなる許可も受信していない場合にのみ、投機的送信を行う資格がある。許可が受信されていない時は、制御部４１６は、所与のポリシーに従って、空ではないＶＯＱ４１１を選択し、そこから、投機的送信のために１つのパケットが取り出される。このポリシーは、例えば、ランダム、ラウンド・ロビン、最も早く到着したセルを優先（ＯＣＦ：oldest cell first）、最も遅く到着したセルを優先（ＹＣＦ：youngest cell first）等であり得る。好ましい実施形態では、ポリシーは、待ち時間のゲインが最大になるよう選択される。例えば、最も遅く到着したセルを優先等といった、より新しい到着を優先するポリシーでは、待ち時間のゲインが最大になる傾向がある。
【００４５】
選択されたパケットは、マルチプレクサ４１３を介して再送バッファ４１２に格納され、マルチプレクサ４１３、４１４、４１５を介してデータリンク３０３上をクロスバー３０６に向かって伝送される。同時に、制御部４１６は、制御リンク３０４を介してアービター３０７に、出力識別子を含む対応する投機的送信要求を送信する。パケットを再送バッファ４１２に格納する目的は、投機的送信が失敗した場合にパケットの再送を可能にするためである。ラインカード３０２は、許可を求める計画的調停要求と投機的要求とを同時に発行してもよい。好ましい実施形態では、再送キュー４１２に格納されたパケットは、既に一旦投機的に送信されているので、投機的送信の資格はない。即ち、潜在的な待ち時間の利点が既に失われている可能性が高いので、失敗したＳＴＸパケットを投機的に再送信することには利点はほとんど又は全くない。
【００４６】
ラインカード３０２が、所与のタイムスロットにおける所与の出力に対する計画的調停による許可を受信した場合には、このラインカード３０２は、現在のタイムスロットにおいて、この出力にパケットを送信する資格がある。制御部は、まず、対応する再送キュー４１２の使用率をチェックする。対応する再送キュー４１２が空でない場合には、この再送キュー４１２から１つのパケットが取り出され、マルチプレクサ４１４及び４１５を介して、データリンク３０３上をクロスバー３０６へと再送される。再送キュー４１２が空である場合には、制御部は、対応するＶＯＱ４１１の使用率をチェックする。再送キュー４１１が空でない場合には、このＶＯＱ４１１から１つのパケットが取り出され、マルチプレクサ４１３、４１４及び４１５を介して、データリンク３０３上をクロスバー３０６へと伝送される。許可が到着した場合には、ＲＴＸキュー４１２内で待機しているパケットは、通常、対応するＶＯＱ４１１内のパケットよりも優先されることを理解されたい。これは、失敗したＳＴＸパケットが迅速にその宛先に配信されることを確実にするためである。しかし、優先順位は、キュー４１１内に待機又は到着しているデータの性質（例えば、スピーチやビデオ等の待ち時間に敏感な着信データ）等といった他の要因にも依存し得る。投機的動作モードのせいで、空のＶＯＱ４１１に対して許可が到着することがあり得る。このような許可は、無駄になると見なされる。好ましい実施形態では、ラインカード３０２は、無駄になる許可を受信した任意のタイムスロットにおいて、投機的パケットを送信する資格がある。
【００４７】
以下に説明する本発明の例示的な実施形態では、ラインカード３０２が応答を受信した場合に、ラインカード３０２は、応答に含まれるシーケンス番号を有するパケットが、同じく応答に含まれる出力識別子によって示される再送キュー４１２内に存在するか否かをチェックする。このパケットが存在しない場合には、応答は無視される。このパケットが存在する場合には、本発明の特定の適用例（例えば、高信頼性配信方式を統合した適用例（「高信頼性配信」の節を参照））に応じたアクションがとられる。例えば、選択的再試行（ＳＲ：Selective Retry）を用いる例示的な実施形態では、応答されたパケット（存在する場合）は、再送キュー４１２内のどの位置からも取り出される。別の例示的な実施形態（例えば、Ｇｏ−Ｂａｃｋ−Ｎ（ＧＢＮ）、ストップ・アンド・ウェイト（Ｓ＆Ｗ））では、応答されたパケットは、それが再送キュー（ＧＢＮ）又はＶＯＱ（Ｓ＆Ｗ）の先頭にある場合にのみ取り出される。
【００４８】
出力で再シーケンス化を行わない場合
図５は、再シーケンス化が行われない、ラインカード３０２の出力バッファ部３２２ａの例を示す。バッファ部３２２ａは、ストップ・アンド・ウェイトやＧｏ−Ｂａｃｋ−Ｎ（後述する）等の再シーケンス化を必要としないＲＤ方式と共に用いられ得る。出力バッファ部３２２ａは、エンキュー部５２１と、出力キュー５２６と、デキュー部５２７と、制御部５２８とを含む。
【００４９】
動作においては、パケットは、データリンク３０３に沿って出力バッファ部３２２ａに到着する。制御部５２８は、パケットのヘッダーを調べ、エンキュー部５２１が、そのパケットを出力キュー５２６に格納すべきか又は落とすべきかを決定する。ストップ・アンド・ウェイト又はＧｏ−Ｂａｃｋ−ＮのＲＤ方式が用いられる場合には、パケットは正しい順序でのみ受け入れられる。しかし、たとえストップ・アンド・ウェイトを用いても、二重配信は生じ得るものであり、一方、ＧＢＮを用いても、二重配信や順序が乱れた配信が生じ得るものであることを理解されたい。従って、制御部５２８は、各入力に対する次の期待されるシーケンス番号を維持する。制御部５２８は、受信したパケットのシーケンス番号が、対応する入力に対する次の期待されるシーケンス番号と等しいか否かをチェックする（例えば、最新の良好に受信したパケットのシーケンス番号＋１）。肯定された場合（即ち、期待されるシーケンス番号と受信したシーケンス番号が等しい場合）には、そのパケットは、出力キュー５２６に加えられる。否定された場合には、そのパケットは、二重配信（例えば、シーケンス番号が低すぎる）又は順序が乱れた配信（例えば、シーケンス番号が高すぎる）であるために落とされる。
【００５０】
デキュー部５２７は、出力キュー５２６にパケットが存在する場合には、出力キュー５２６からパケットを取り出し、そのパケットを外部のデータリンク３０１上で伝送する。
【００５１】
出力で再シーケンス化を行う場合
図６ａは、ラインカード３０２の出力バッファ部３２２ｂの別の例示的な実施形態を示す。この実施形態は、選択的再試行（ＳＲ）等といった、再シーケンス化を必要とするＲＤ方式と共に用いられるべきである。出力バッファ部３２２ｂは、デマルチプレクサ６２１と、デマルチプレクサ６２２と、各入力に対して１つずつ対応する複数の再シーケンス化（ＲＳＱ）キュー６２３と、マルチプレクサ６２４と、マルチプレクサ６２５と、出力キュー６２６と、デキュー部６２７と、制御部６２８とを有する。
【００５２】
動作においては、出力バッファ部３２２ｂは、データリンク３０３上のパケットを受信する。制御部６２８は、到着しているパケットが順序通りであるか否か（即ち、そのシーケンス番号が、対応する入力に対する次の期待されるシーケンス番号と等しいか否か）をチェックする。肯定された場合には、そのパケットは、デマルチプレクサ６２１及びマルチプレクサ６２５を介してルーティングされ、直接、出力キュー６２６に加えられ、期待される次のシーケンス番号が増分される。次の期待される番号の値は、選択された特定のタイプのシーケンス化方式によって異なることを理解されたい。例えば、以下に説明する例示的な一実施形態では、パケットのシーケンス番号は、期待される順序の次のパケット毎に１ずつ増分される整数を用いてつけられる。当然ながら、再シーケンス化は、シーケンス順に数が減分される方式、及び／又は、パケットのシーケンス番号が１以外の値で増分若しくは減分される方式等といった、他の多くのシーケンス化方式の任意のものを用いて行われ得る。パケットの順序が乱れて到着した場合（例えば、そのシーケンス番号が、対応する入力に対する次の期待されるシーケンス番号より大きい場合）には、そのパケットは、デマルチプレクサ６２１及びデマルチプレクサ６２２を介して、その入力に対応する再シーケンス化キュー６２３にルーティングされる。従って、再シーケンス化キュー６２５は、順序が乱れて到着した全てのパケットを格納する。これらのパケットは、先行する全てのパケットが正しく受信された場合にのみ、出力キュー６２６に進むことが可能である。そのパケットが二重配信である場合（例えば、そのシーケンス番号が、対応する入力に対する次の期待されるシーケンス番号より小さい場合）には、そのパケットは落とされる。再シーケンス化キュー内の二重配信されたパケットは、このポリシーに従って落とされるのではなく、既に格納されている同じパケットに単に上書きされる。
【００５３】
順序通りのパケットが到着すると常に、制御部６２８は、この順序通りの到着によって、対応する再シーケンス化キュー６２３からのパケットの取り出しが可能になるか否かをチェックする。肯定された場合には、このようなパケットの１つ以上が再シーケンス化キュー６２３から取り出され、マルチプレクサ６２４及びマルチプレクサ６２５を介してルーティングされ、出力キュー６２６に加えられると共に、対応する入力に対する次の期待されるシーケンス番号が更新される。
【００５４】
図６ｂは、出力バッファ部３２２ｂにおける再シーケンス化の例を示す。データリンク３０１及び特定の入力ラインカード３０２に対して、シーケンス番号３までを含む全てのパケットが正しく受信されている。更に、５、６及び８の番号のパケットが正しく受信されているが、これらは順序が乱れている。従って、パケット５、６及び８は、データリンク３０１に対する再シーケンス化キュー６２３に格納される。次に、パケット４が到着し、これは次の期待されるシーケンス番号に対応するので、直ちに出力キュー６２６へとルーティングされる。更に、パケット８を除くパケット５及び６が、この時点で再シーケンス化バッファ６２３から取り出し可能となり、出力キュー６２６に加えられる。これが完了したら、データリンク３０１に対する次の期待されるシーケンス番号は７となる。
【００５５】
デキュー部６２７は、出力キュー６２６にパケットが存在すれば、出力キュー６２６からパケットを取り出し、そのパケットを外部のデータリンク３０１上で伝送する。
【００５６】
図７は、例示的なアービター部３０７を模式的に示す図である。アービター部３０７は、各入力制御リンク３０４ａに対して１つずつ対応する複数の制御メッセージ受信部７６１と、マッチング部７６２と、各入力に対して１つずつ対応する複数のマッチング遅延ライン７６３と、投機的要求調停部７６４と、各出力制御リンク３０４ｂに対して１つずつ対応する複数の制御メッセージ送信部７６５とを含む。
【００５７】
図７に示されるように、アービター部３０７は、制御リンク３０４ａから制御メッセージを受信する。制御メッセージ受信部７６１は、着信した制御メッセージをデコードする。デコードされた計画的調停要求はマッチング部７６２に送られ、デコードされた投機的要求は投機的要求調停部７６４に送られる。マッチング部７６２は、ＰＩＭ、ｉ−ＳＬＩＰ（N. McKeown, “Scheduling Algorithms for Input-Queued Switches,” PhD. Thesis, University of California at Berkeley, 1995を参照）、又はデュアル・ラウンド・ロビン・マッチング（ＤＲＲＭ）アルゴリズム等といった適切な公知のマッチングアルゴリズムに従って、入力と出力との間の一対一マッチングを計算する。このようなアルゴリズムは当業者に周知であるので、その詳細な説明は簡潔のために省略する。新たに計算されたマッチングは、制御メッセージ送信部７６５及びマッチング遅延ライン７６３に送られる。遅延ライン７６３は、クロスバーの構成設定を対応するパケットの到着と同期させるために、マッチングを所定の時間だけ遅延させる。実際には、この遅延はラウンドトリップ時間と等しい。ラウンドトリップ時間とは、許可がラインカードまで伝わるのにかかる時間と、パケットがクロスバーまで伝わるのにかかる時間（シリアル化及び逆シリアル化遅延、伝送遅延、並びに飛行時間を含む）とを加え、これから、構成情報をルーティング構造に送りそれに従ってルーティング構造を構成するのにかかる時間を差し引いた時間である。
【００５８】
投機的要求調停部７６４は、クロスバーに適用されるべき計画的調停送信要求の現在のマッチングと現在の投機的要求とを入力として受信する。投機的要求調停部７６４は、現在のマッチングで既にマッチングが決定している出力に対応する全ての投機的要求を拒否する。即ち、高い最大スループットを確保するために、計画的調停送信は常に投機的送信よりも優先して行われる。少なくとも１つの投機的要求がきていてマッチングが未決定の各出力に対して、投機的要求調停部７６４は、何らかのポリシー（例えば、ラウンド・ロビン）に従って、許可を与えるものを選択し、他の全てのものを拒否する。投機的要求調停部７６４は、成功した各投機的送信要求に対応する応答（ＡＣＫ）を、その要求を送信した入力に対応する制御メッセージ送信部７６５に送信する。オプションとして、投機的要求調停部７６４は、拒否された各投機的送信要求に対応する否定的な応答（ＮＡＫ）を送信する。成功した投機的送信要求はマッチングに加えられ、その結果がクロスバー構成リンク３１２を介してクロスバーに適用される。
【００５９】
各制御メッセージ送信部７６５は、対応するラインカード３０２に対する制御メッセージをアセンブルし、その制御メッセージを、制御リンク３０４ｂを介してラインカード３０２に送信する。制御メッセージは、調停による新たな許可（存在する場合）及び成功した投機的送信（存在する場合）に関する応答を含み得る。
【００６０】
一般的に、投機的送信を使用すると、飛行中の投機的パケットがシーケンスから外れるため、出力バッファ部３２２に到着するパケットの順序の乱れが生じ得る。衝突によって１つ以上のパケットが失われることもあり得る。従って、具体的なＲＤ方式によっては、出力バッファ部３２２は、シーケンスチェック及び／又は再シーケンス化を行う必要があり得る。
【００６１】
高信頼性配信
ＳＴＸ動作モードでは、投機的調停によって送信されたパケットが、他の投機的パケットや計画的調停によって送信されたパケットと衝突し得る。衝突が生じた場合には、１つ以上のパケットが落とされなければならず、その結果、たとえ誤差が無い場合でも、損失の多いスイッチング処理となる。信頼性が高く、正しく、各単一のコピーが順序通りに届く配信を確実にするために、更なる対策をとることができる。例えば、本発明は、システムの信頼性を高めるために、多くの高信頼性配信（ＲＤ）方式と統合され得る。一般的に、このような方式は、受信側が特定のパケットを正しく受信したことを示す応答（ＡＣＫ）が受信されるまで、パケットを送信側に格納しておくことによって行われる。再送は、一般的に、タイムアウトによって暗示的に又は否定的な応答（ＮＡＫ）によって明示的にトリガされる。具体的な実装例によっては、特定のパケットを識別するためのシーケンス番号が必要となるか、それに加えて／又は、出力に、正しいパケット順を復元するための再シーケンス化バッファが必要となる。
【００６２】
例えば、投機的送信の存在下でも信頼性の高い順序通りの配信を強化するために、計画的調停と組み合わせたＳＴＸ調停を、公知のストップ・アンド・ウェイト（Ｓ＆Ｗ）、Ｇｏ−Ｂａｃｋ−Ｎ（ＧＢＮ）、及び選択的再試行（ＳＲ）ＲＤ方式と統合してもよい。以下、これらの例示的な方式を説明する。
【００６３】
ストップ・アンド・ウェイト
ストップ・アンド・ウェイト（Ｓ＆Ｗ）の場合には、任意の所与の時間に、各入力において、１つの出力につき１つの未応答パケットのみが未解決であることが許される。この入力−出力ペアに対する次のパケットは、対応する出力に関する許可が入力に到着した場合、又は、対応する応答が到着した場合にのみ送信できる。この場合には、パケット、投機的送信要求及び応答は、二重配信の検出を可能にする標識（例えば、１ビットのシーケンス番号）を有する。例えば、出力バッファ部は、シーケンス番号をチェックすることができ（例えば、順序が正しいシーケンス番号は交互にならなければならない）、ＯＫである場合（即ち、順序が正しい場合）には、そのパケットをキューに加え、そうでない場合には、そのパケットを落とす。例えば図５は、再シーケンス化なしで実装された出力バッファ部３２２ａを示す。
【００６４】
Ｓ＆Ｗは実装が簡単で、間接経費が低い。例えば、応答又は許可されるまで、パケットはＶＯＱの行頭に留まることでできるので、別個のＲＴＸキューを物理的に実装する必要がない。しかし、投機的送信はパイプライン化できないので、ラウンドトリップ時間が１パケット時間より大きい場合には、期待される待ち時間の改善は低くなる。これは、トラフィックがバーストしている場合には、特に不利益となり得る。
【００６５】
Ｇｏ−Ｂａｃｋ−Ｎ
Ｇｏ−Ｂａｃｋ−Ｎ（ＧＢＮ）の場合には、任意の所与の時間に、各入力において、１つの出力につき所定の最大数のパケットが未応答であることが許される。この数は、再送キュー４１２の最大許容長によって異なる。ＧＢＮでは、出力バッファ部は、例えば、図５の出力バッファ部３２２ａに従って、再シーケンス化なしで実装可能である。しかし、パケットは正しい順序である場合にのみ受け入れられるので、上述のシーケンスチェックが必要である。即ち、順序が乱れたパケットは全て落とされる。更に、応答も、順序通りである場合にのみ受け入れられる。例えば、ＡＣＫが到着すると、入力バッファ部３２１は、このＡＣＫが、対応する再送キュー４１２の行頭パケットに対応するか否かをチェックする。シーケンス番号が一致し、且つ、同じＶＯＱ４１１に対する最新の先行する成功した送信が少なくとも１ＲＴ前に生じている場合には、そのパケットは良好に配信されているので、そのパケットはキューから取り出されて落とされる。シーケンス番号が一致しない場合には、そのＡＣＫは無視される。最新の成功した送信（計画的調停又は投機的調停から生じたパケット送信であり得る）に関するこの付加的な条件は、成功した投機的送信であっても、その前の投機的送信の失敗の結果、順序が乱れた到着となり、後で出力バッファ３２２ａで落とされ得るという、生じ得るシナリオに対処するために必要である。この場合には、ＡＣＫは誤検出となる。
【００６６】
これは、（パイプライン化された）ＳＴＸ要求シーケンスの最初のものが失敗すると、対応するＡＣＫシーケンス中にギャップが生じ、失敗したパケットが良好に配信されるまで、全ての後続のＡＣＫが無視されなければならないことを意味する。その結果、ＡＣＫが欠けている場合には、ＲＴＸキュー内の全てのパケットを再送しなければならず、それゆえ、Ｇｏ−Ｂａｃｋ−Ｎと呼ばれる。新たなＳＴＸ要求は、ＲＴＸキューが一杯でない場合にのみ発行可能である。
【００６７】
ＧＢＮは、Ｓ＆Ｗよりも実装が複雑である。この複雑さは、部分的には、ＲＴＸキューが先入れ先出し（ＦＩＦＯ）構成を有することから生じている。余計にかかる間接経費としては、パケット、ＳＴＸ要求及び応答のシーケンス番号が長いことが含まれ得る。入力バッファも、異なる方法で実装され得る（例えば、シフトレジスタＲＴＸキューと付加的なＮＡＫキュー）。
【００６８】
一方、ラウンドトリップが大きいシステムでは、Ｓ＆ＷよりもＧＢＮの使用が適している場合もある。例えば、ＧＢＮでは、多くのパケットを立て続けに投機的に送信することが可能であり、これはＳ＆Ｗ方式ではできない。
【００６９】
選択的再試行
選択的再試行（ＳＲ）では、任意の所与の時間に、各入力において、１つの出力につき所定の最大数のパケットが未応答であることが許される。この数は、再送キュー４１２の最大許容長及び再シーケンス化キュー６２３の最大許容長によって異なる。出力バッファ部は、例えば、図６ａ及び図６ｂに示されている出力バッファ部３２２ｂに従って実装され得るものであり、これは、上述のように、順序が乱れたパケットの受け入れ及び再シーケンス化が可能である。入力バッファ部３２１も、いかなる順序の応答も受け入れる。これは、失敗したＳＴＸパケットのみが再送されることを意味し、それゆえ、ＧＢＮのようにＲＴＸキュー全体を再送するのとは異なり、選択的再試行と呼ばれる。
【００７０】
ＳＲは、出力バッファ部３２２における複数の再シーケンス化キューの複雑さが加わるため、ＧＢＮよりも実装がかなり複雑である。更に、ＳＲにおけるＲＴＸキューは、パケットをキューの行頭のみでなくキュー内の任意の地点から取り出せるため、ランダムアクセス構成を必要とする。
【００７１】
再送及び再シーケンス化バッファのサイズ決定
一般的に、待ち時間の低減に関して最大の利益を得るには、再送バッファのサイズを、少なくとも完全な１回のラウンドトリップに相当するパケットを投機的に順序通りに送信可能なように決定するのが有益である。この場合には、投機的送信で、リンクを１００％の率で使用することができる。
【００７２】
最適な利益を達成するために、好ましい実施形態では、各再シーケンス化キュー（ＲＳＱ）のサイズは、ＲＳＱバッファに対応するＲＴＸキューと少なくとも等しい数のパケットを格納可能なように決定される。例えば、ＲＳＱ６２３のサイズは、ＲＴＸキュー、例えば、ＲＳＱ６２３に対応するＲＴＸキュー４１２の行頭パケットのシーケンス番号とＲＳＱ６２３に対応するＲＴＸキュー４１２の最後尾パケットのシーケンス番号との差分に基づいて決定され得る。
【００７３】
非対称ルーティング構造における投機的実行
本発明の上述の例は、一般的に、「正方形」のクロスバー状ルーティング構造（即ち、同じ数の入力及び出力を有する構造）を示すものである。ラインカード等のボードは、１つの構造入力及び１つの構造出力に接続されるのが一般的であるが、本発明は、入力よりも出力の数が多いことを特徴とするスイッチ構造でも実装され得る。例えば、出力の数が入力の数のＫ倍（Ｋは１よりも大きい整数）であるとすると、丁度Ｋ個のルーティング構造出力を、各出力ラインカードに割り当てることができる。これにより、各出力ラインカードが、各タイムスロットにおいてＫ個までのパケットを受け取ることが可能になる。
【００７４】
図８は、非対称ルーティング構造を含む例示的なシステムを示す。図８に示されるように、このシステムは、スイッチコア８１０と、Ｎ個のラインカード８０２のうちの１つの入力バッファ８２１の各出力間に各々が設けられたＮ個の入力データリンク８０３ａ１〜８０３ａＮと、ルーティング構造８０６と各出力バッファ８２２との間に設けられたデータリンク８０３ｂ１〜８０３ｂＫとを有する。従って、スイッチコア８１０のルーティング構造８０６からの出力には、全部でＮ・Ｋ個のデータリンク８０３ｂｘ（ｘは１〜ｋ）が存在する。スイッチコア８１０とラインカード８０２との間には、上述のものと同様の制御リンクが存在するが、簡潔のために制御リンクは図示しない。
【００７５】
スイッチコア８１０は、ルーティング構造８０６と、アービター８０７とを含む。アービター８０７は、入力ポートと出力ポートとの適切なマッチングを提供するために、計画的調停及び／又は投機的調停の要求のグループ又はサブグループに対する衝突が生じないスイッチング構造リソースの割り当てを決定する。構成リンク８１２は、アービター８０７によって決定されたスイッチング構成をルーティング構造８０６に提供する。上述したように、各出力８２２には、ルーティング構造からの出力が、ラインカード８０２からの入力数のＫ倍の数だけ設けられている。例えば、Ｋ＝２の非対称を実装するシステムでは、出力バッファ８２２は、スイッチング構造の入力の任意の１つからのパケットを受信可能な、１つの更なるデータリンク（スイッチング構造からの出力）を有する。任意の時間又はサイクルに受信するデータパケットの増加に対処するために、出力バッファ８２２のキューのサイズは、負荷及び／又は様々な制約に従って決定される。また、出力バッファ８２２は、書き込み帯域幅のＫ倍を有するのが好ましい。
【００７６】
図８の例示的なシステムでは、ペイロード情報を有するデータパケット及び要求されたパケットの宛先を示す情報を含むヘッダーは、Ｎ個の双方向全二重型入力／出力データリンク８０１を介して送受信される。受信されたデータパケットは、入力バッファ８２１から取り出され、データリンク８０３ａ１〜８０３ａＮを介してルーティング構造８０６の入力に伝送される。各ラインカード８０２は、残りのＮ−１個のラインカードからもＫ個までの出力を受信できるので、本発明の非対称の例のルーティング構造８０６は、例えば、Ｎ個のラインカード８０２の各々によって計画的調停及び／又は投機的調停によって送信された１つのパケットを、他の任意のラインカード８０２の出力バッファ８２２に出力する８０３ｂｘデータラインの１つとマッチングさせることができる。このように、各ラインカード８２０は、他のＮ−１個のラインカード８０２から送信された、計画的調停、投機的調停、又はそれらの組み合わせによって送信されたパケットを含み得るＫ個までのパケットを受信できる。
【００７７】
この特徴は、任意のタイムスロットに、複数の計画的調停送信、複数の投機的送信、又は両者の組み合わせが各出力に受け入れられるのを可能にするために、有益に用いられ得る。本発明の一実施形態では、例えば、この特徴を利用して、投機的送信方式の大きな長所とすることができる。例えば、所与のタイムスロットに、計画的調停送信が存在しない場合には、各出力８２２は、Ｋ個までの投機的送信を受け入れることができる。１つの計画的調停送信が存在する場合には、各出力８２２は、Ｋ−１個までの投機的送信を受け入れることができる。この例では、計画的調停送信は、依然として、入力と出力との間に一対一マッチングを構成し、投機的調停送信は、残りの全ての構造出力の帯域幅を利用することができる。このようにして、投機的送信がかなり高い成功の確率を有することを確実でき、かなり高い待ち時間の低減（負荷によって異なる）が達成される。
【００７８】
既存の一対一マッチングアルゴリズムは、本発明の非対称の例を実装するために、ほとんど又は全く修正を必要としない。しかし、伝送されるパケットの複数のタイプ及び／又は伝送されるパケットの多くのタイプの各々に関して、ルーティング構造の入力と出力とをマッチングさせるために、多くの方式が用いられ得ることを理解されたい。
【００７９】
１つのタイムスロットにおいて１つの出力につきＫ個までの投機的要求／応答を扱うには、図７の投機的要求調停部７６４を修正しなければならない。まず、各出力に対して、応答可能な投機的要求の最大数を決定しなければならない。現在のマッチングにおいて既にマッチングが決定されている全ての出力については、この最大数はＫ−１である。他の全ての出力については、この最大数はＫである。次に、投機的要求調停部７６４は、出力毎に受信した投機的要求からの選択を行い、決定された最大数までの勝者を選び、他の全てのものは拒否する。この選択は、公正のためにラウンド・ロビン方式で行われるのが好ましいが、他の方法で行われてもよい。
【００８０】
本発明は、待ち時間がシステム全体の計算性能に直接影響し、低い待ち時間が望ましい又は必要な、高性能計算システム、クラスタ及びＩＯネットワークを含む並列計算用途等の相互接続ネットワークに適用性を有する。本発明は、電気的に制御される電気的スイッチ、電気的に制御される光スイッチ、及び光学的に制御される光スイッチを含むルーティング構造と共に用いられ得る。
【００８１】
本発明の理解を容易にするために、本発明の多くの態様を、相互接続システムの要素によって行われるアクションのシーケンスに関して説明した。各例示的な実施形態において、様々なアクションは、特殊な回路（例えば、特殊な機能を行うために相互に接続されたディスクリート論理ゲート）によって、１つ以上のプロセッサによって実行されるプログラム命令によって、又は両者の組み合わせによって行われることも可能であることが認識されよう。更に、本発明は、本願明細書に記載した技術をプロセッサに実行させる適切なコンピュータ命令のセットを含む、固体メモリ、磁気ディスク、光ディスク又は搬送波（例えば、無線周波数、可聴周波数又は光周波数の搬送波）等といった、任意の形態のコンピュータ読取り可能キャリア内で具現化されることも考えられる。従って、本発明の様々な態様は、多くの異なる形態で具現化され得るものであり、そのような全ての形態は、本発明の範囲に含まれることが意図される。
【００８２】
上述の例では、ボード（例えば、ラインカード）は、所与のタイムスロットに対する許可を受信していない場合にのみ、投機的送信を行う資格がある。しかし、１つのタイムスロットに複数のパケットを送信できるような、クロスバーへのリンクの有効容量が外部のリンクの有効容量を超える適用例では、空いている容量を、同じタイムスロットに投機的及び許可された送信を行うために用いることも可能である。
【００８３】
本発明を、特定の実施形態を参照して説明した。しかし、本発明の精神及び範囲を逸脱することなく本発明において様々な変更及び修正がなされ得ることは当業者には自明である。従って、本発明のそのような変更が、添付の請求項の範囲及びその均等物の範囲内である限りにおいて、本発明は、それらの変更をも包含することが意図される。
【図面の簡単な説明】
【００８４】
【図１】仮想出力バッファリングを含む従来のシステムの高レベルの概要を示す図。
【図２】ラインカード対スイッチ（ＬＣＳ）プロトコルを用いる最適化されていない従来のシステムを示す図。
【図３】本発明による例示的なシステムを示す図。
【図４】本発明の一例による入力バッファ部を示す図。
【図５】本発明によるラインカードの出力バッファ部の一例を示す図。
【図６ａ】本発明によるラインカードの出力バッファ部の別の例を示す図。
【図６ｂ】図６ａに示されている出力バッファのより詳細な例を示す図。
【図７】本発明による例示的なアービター部を模式的に示す図。
【図８】本発明による別の例示的なシステムを示す図。
【符号の説明】
【００８５】
３０１    データリンク
３０２    ラインカード
３０３    データリンク
３０４    制御チャネル
３０６    クロスバー（ルーティング構造）
３０７    アービター
３１０    スイッチコア
３１２    構成リンク
３２１    入力バッファ部
３２２    出力バッファ部
４１０    入力デマルチプレクサ
４１１    仮想出力キュー（ＶＯＱ）
４１２    再送（ＲＴＸ）キュー
４１３    デマルチプレクサ
４１４    マルチプレクサ
４１５    出力マルチプレクサ
４１６    制御部
【図１】
2009516478.tif 000003
【図２】
2009516478.tif 000004
【図３】
2009516478.tif 000005
【図４】
2009516478.tif 000006
【図５】
2009516478.tif 000007
【図６ａ】
2009516478.tif 000008
【図６ｂ】
2009516478.tif 000009
【図７】
2009516478.tif 000010
【図８】
2009516478.tif 000011
【国際調査報告】
2009516478.tif 000012
2009516478.tif 000013