JPWO2007099644A1 - クロスバスイッチ - Google Patents
クロスバスイッチ Download PDFInfo
- Publication number
- JPWO2007099644A1 JPWO2007099644A1 JP2008502630A JP2008502630A JPWO2007099644A1 JP WO2007099644 A1 JPWO2007099644 A1 JP WO2007099644A1 JP 2008502630 A JP2008502630 A JP 2008502630A JP 2008502630 A JP2008502630 A JP 2008502630A JP WO2007099644 A1 JPWO2007099644 A1 JP WO2007099644A1
- Authority
- JP
- Japan
- Prior art keywords
- data
- output
- input
- selector
- buffer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/101—Packet switching elements characterised by the switching fabric construction using crossbar or matrix
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
サーバ、ルータ、ストレージ装置などの内部において、高スループットを得るために、独立した調停器(アービタ)を持つ小規模セレクタをツリー状に多段に接続し、ステージ間にフリップフロップを配置したパイプラインセレクタ105を出力ポート数分用意し、パイプラインクロスバ104を構成する。調停要求はデータ内に埋め込み、前記調停器は、入力データに埋め込まれている調停要求と、必要であれば入力データの優先順位を抽出して勝者入力を決定する。また、入力データの滞留状況を監視し、滞留量が多い場合、もしくは滞留時間が長い場合に、優先的に滞留量の多い入力を選択する。
Description
本発明は、クロスバスイッチに関し、特に、ルータ、サーバ、ストレージ装置などにおいて、装置内部に有する複数の機能ブロックを動的に相互に接続するクロスバスイッチに適用して有効な技術に関する。
本発明者が検討した技術として、例えば、クロスバスイッチにおいては、以下の技術が考えられる。
ルータなどのネットワーク転送装置やサーバ装置、複数のディスクアレイを接続するストレージ装置などでは、装置内部の機能ブロック間でデータ交換を行うためにスイッチファブリックが利用される。
スイッチファブリックの構成方法には多種多様な方式があり、かつては単一のデータバスに複数の機能ブロックを接続するバス方式が用いられていた。しかしながら、単一バスの処理がシステムのボトルネックとなるため、近年の高速・大容量交換向けのスイッチファブリックでは、共通バッファ型スイッチ方式や、出力バッファ型スイッチ方式、入出力バッファ型クロスバスイッチ方式が利用されるようになっている。
共通バッファ型スイッチ方式とは、N個(Nは自然数)の入力ポートとN個の出力ポートを共通バッファ(単一のメモリ)に接続し、前記共通バッファに全入力を時分割で書き込み、また、読み出しを行い目的の出力ポートへ出力するスイッチ方式である。共通バッファ型スイッチ方式は、共通バッファ部にスイッチの全交換容量に比例した交換容量が要求されるため、入出力ポートの速度と回線数が上昇すると、メモリ性能が追いつかず、システムのボトルネックになりやすい。
また、出力バッファ型スイッチ方式は、N個の入力ポートとN個の出力ポートと出力ポート毎に独立した出力バッファと全入力ポートと全出力ポートを接続する共通バスにより構成される。全入力は時分割で共通バスに渡され、宛先情報によりフィルタリングされて宛先の出力ポートの持つ出力バッファにキューイングされ、出力される。出力バッファ型スイッチ方式は、共通バス部にスイッチの全交換容量に比例した交換容量が要求されるため、入出力ポートの速度と回線数が上昇すると、バス転送性能が追いつかず、システムのボトルネックになりやすい。
また、入出力バッファ型クロスバスイッチ方式は、N個の入力ポートとN個の出力ポート、入力ポート毎に独立した入力バッファ、出力ポート毎に独立した出力バッファ、全入力バッファと全出力バッファを接続するクロスバにより構成される。入出力バッファ型クロスバスイッチは、入力バッファ及び出力バッファのメモリアクセス速度が、スイッチの全交換容量に依存するのではなく、単一の入力速度、及び、単一の出力速度に依存するだけであるため、交換容量を容易に向上させやすい利点を持つ。
しかしながら、前述の入出力バッファ型クロスバスイッチは、HOL(Head Of Line)ブロッキングの問題があることが以前から知られており、入力ポート数を無限大とし、宛先が完全にランダムな入力を与えたとき、クロスバスイッチのスループットが約58.6%という理論限界値に制限される。この問題を克服するために、VOQ(Virtual Output Queue,仮想出力キューイング)と呼ばれる方式が入力バッファ用に提案されている(例えば、非特許文献1及び非特許文献2参照)。
VOQとは、スイッチの各入力に、スイッチの各出力に対応する独立した出力を行えるバッファを設け、空き出力宛のデータが、別の出力に対する競合により進めない先頭データによってサービスをブロックされる可能性がなくなるようにするというものである。この場合、N×Nクロスバスイッチは入力ごとにN個のキュー、すなわち、N2個のキューを有する。
VOQを備えるクロスバスイッチにおいて、スケジューラは重要な設計ポイントである。高性能のスケジューラの設計により、VOQ入力バッファ型スイッチは、100%のスループットが達成可能であることが示されている(例えば、非特許文献3参照)。
VOQの場合、スケジューラは、通常の先入力先出力(FIFO)入力バッファ型スイッチの場合よりも、入力から出力へデータを交換するのに、はるかに多くの選択肢を有する。VOQスケジューリングとは、この多くの選択肢の中から、できるだけ多くのデータを、公平に交換することである。
さらに、スケジューリング計算時間が通信装置のボトルネックとならないようにするために、スケジューリングは、通信装置のデータの交換時間に依存した、ある限られた時間内で行われなければならない。
上記のような制約条件を満たす近似解法として、VOQスケジューリングを行う手法が幾つか考えられている。例として、入力と出力間でRequest/Acknowledge(要求・確認)制御を行うSLIP方式(例えば、非特許文献4参照)、単純なラウンドロビン制御を用いる方式(例えば、非特許文献5参照)、各入力のスケジューリング情報をメッセージパッシングして、ラウンドロビンで次のポートに渡すRRGS(Round−Robin Greedy Scheduler)方式(例えば、特許文献1参照)等がある。
スケジューリングの後、データを交換するN×Nクロスバスイッチ(N入力N出力をN×Nと表現する)では、集中型のスケジューラがボトルネックとなるため、特許文献3に示されるように、クロスバのN×1のセレクタをN個に分解し、N×1セレクタごとに分散したスケジューラを利用する手法を用いてスケジューラの負荷を分散することが多い。
スイッチデバイスのスループットは、ポート数、データパスのビット幅、動作周波数の積で決まり、このうち、ポート数はLSIのパッケージのピン数により制限される。よって、データパスのビット幅と動作周波数を極大化するための手法が高スループット化には重要であり、多ビット幅のデータパスを高い動作周波数で制御することが高スループット化のために重要となる。パイプライン処理には粗粒度のパイプライン処理と細粒度のパイプライン処理がある。ここで、粗粒度処理とは、複数のマシンサイクルを単位時間として処理を進めること、細粒度処理とは、1マシンサイクルを単位時間として処理を進めることを意味する。
粗粒度のパイプライン処理として、例えば、特許文献2が挙げられる。特許文献2では、経路予約処理と情報転送処理に独立にタイムスロットを割り当て、数スロット先の転送を予約し、然るべきスロット時間に達したら予約をしておいてデータの転送を行う。すなわち、予約と転送を比較的長めの単位時間でオーバラップして行うことで粗粒度のパイプライン処理を実現している。この手法は、調停に比較的長い時間をかけることができ、スループットも向上させやすいが、調停実施からデータの転送までに時間がかかることからレイテンシが長い点がデメリットと考えられる。
細粒度のパイプライン処理として、例えば、特許文献3が挙げられる。特許文献3では、実施例の一つとしてN×1セレクタをORツリーで構成し、ORツリーの途中段にレジスタ(フリップフロップ)を挿入することで細粒度のパイプライン化を行っている。より具体的には、N×1セレクタの入力フリップフロップ(入力レジスタ)からデータが入力され、初段で全入力の調停結果から勝者を一つだけ選び、前記入力データとANDをとってフリップフロップ(MASKレジスタ)に記録する。次のステージでは前記MASKレジスタ群からの出力のORをとり、結果を当該ステージのフリップフロップ(ORレジスタ)に記録する。最終ステージでは前記ORレジスタ群の出力のORをとってフリップフロップ(出力レジスタ)に記録することで、出力データを通過させる。このため、ORツリーで構成されるパイプラインセレクタの中は常に一つの勝者データだけが進行する。この細粒度パイプライン型のセレクタは単純にデータパスだけをパイプライン化しており、最初に全入力の中から勝者を一つだけ選択する処理がボトルネックとなりうる。
細粒度のパイプライン処理の別の例として、特許文献4が挙げられる。特許文献4では、16×1セレクタを構成する際に、4×1セレクタを2段ツリー状に接続し、4×1セレクタ間にフリップフロップを挿入する実施例が示されている。特許文献3同様に初段ステージで唯一の勝者が選ばれ、パイプラインツリーの中を常に一つの勝者データだけが進行する。この細粒度パイプライン型のセレクタも、特許文献3と同様、単純にデータパスだけをパイプライン化しており、最初に全入力の中から勝者を一つだけ選択する処理がボトルネックとなりうる。
細粒度のパイプライン処理のさらに別の例として、特許文献5が挙げられる。特許文献5では、N×1セレクタを構成するために2進木構造を持つアービタをツリー状に接続し、葉の部分からの要求入力及びデータ入力を枝部分に配する要求セレクタで順次選択、進行させ、各枝にフリップフロップを配置することでパイプラインセレクタを実現する実施例を示している。
特開2000−174817号公報
特許第3473687号公報
特許第3206126号公報
米国特許第6636932号明細書
特開2004−140538号公報
タミール(Y.Tamir)、フラジール(G.Frazier)、「ハイ・パフォーマンス・マルチ・キュー・バッファーズ・フォー・ブイエルエスアイ・コミュニケーション・スイッチーズ(High Performance Multi−queue Buffers for VLSI Communication Switches)」、プロシーディングス・ オブ・15ス・アニュアル・シンポジウム・オン・コンピュータ・アーキテクチャ(Proceedings of 15th Ann. Symp. on Comp. Arch.)、1988年6月、 P.343−354
アンダーソン(T. Anderson)、オウィッキ( S. Owicki)、サクセ(J. Saxe)、タッカー(C. Thacker)、「ハイ・スピード・スイッチ・スケジューリング・フォー・ローカル・エリア・ネットワークス(High Speed Switch Scheduling for Local Area Networks)」、エイシーエム・トランザクションズ・オン・コンピュータシルテムズ(ACM Transactions on ComputerSystems)、1993年11月、P.319−352
メッキティクル(A. Mekkittikul)、マクケオウン(N. McKeown)、「ア・プラクティカル・スケジューリング・アルゴリズム・テュー・アーカイブ・100パーセント・スループット・イン・インプット・キューデュ・スイッチーズ(A Practical Scheduling Algorithm to Achieve 100% Throughput in Input−Queued Switches)」、プロシーディングス・オブ・インフォコム98(Proceedings of Infocom98)、1998年4月
マクケオウン(N. McKeown)、イザード(M. Izzard)、メッキティクル(A. Mekkittikul)、エレーシック(W. Ellersick)、ホーイッツ(M. Horowitz)、「ザ・タイニイ・テラ・ア・パケット・スイッチ・コア(The Tiny Tera:A Packet Switch Core)」、アイイーイーイー・マイクロ(IEEE Micro)、1997年2月、p.26−32
タミール(Y. Tamir)、チ(H. C. Chi)、「シメトリック・クロスバ・アービターズ・フォー・ブイエルエスアイ・コミュニケーション・スイッチーズ(Symmetric Crossbar Arbiters for VLSI Communication Switches)」、アイイーイーイー・トランザクションズ・オン・パラレル・アンド・ディステュリビューティド・システムズ(IEEE Transactions on Parallel and Distributed Systems)、1993年、第4巻、第1号、p.13−27
ところで、前記のようなクロスバスイッチの技術について、本発明者が検討した結果、以下のようなことが明らかとなった。
例えば、サーバ、ルータ、ストレージ装置などの内部において、高スループットでデータ交換を行うこと、及び、高スループットを維持すること、及び、重要度の高いデータを重要度の低いデータより低レイテンシで通過させること、以上が実現できるクロスバスイッチを提供することが課題である。ここでは、より具体的に問題を分解して課題を明確化する。
高スループットを得るために、特許文献3,4,5の実施例で示される細粒度のパイプラインクロスバスイッチ方式が挙げられる。小規模セレクタをツリー状に多段に接続し、ステージ間にフリップフロップを配置したパイプラインセレクタを出力ポート数分用意したパイプラインクロスバを用いて、他ビット幅データを高周波数で動作させることにより高スループットを得るスイッチ方式である。
ところが、特許文献3,4のパイプラインクロスバスイッチでは、データパスだけが細粒度パイプライン化されており、制御部は細粒度パイプライン化されていないため、粗粒度のパイプライン処理の場合と同様に、調停回路が複雑化して調停に時間がかかること、及び、調停からデータの転送までのレイテンシが大きくなってしまうことが課題である。
また、特許文献5では、制御部も含めて細粒度パイプライン化する実施例が記載されている。制御部のパイプライン化は短時間調停に有効であるが、特許文献5では、その手段が「各要求セレクタや、一部の要求セレクタにバッファを設けることでパイプライン動作する交換アービタが構築可能である。」という一文によって示されているのみであり、調停に敗北したデータの進行をステージの途中で停止する方法、もしくは、調停に敗北したデータを消去して再度投入しなおす方法に関して記載がなく、具体的な処理手段が不明瞭である。すなわち、細粒度パイプラインの制御において、調停後、途中ステージで敗北したデータの扱いに関して具体的な手段を提供することが課題である。
高スループットを維持するために、非特許文献1,2,3,4,5、特許文献1で示したように、空き出力ポート行きのデータが、別のポートに対する競合により進めない先頭データによって進行を停止させられる状況を防ぐためのバッファVOQ(Virtual Output Queue)が有効であるが、細粒度パイプラインクロスバスイッチと組み合わせて利用する場合、その読み出し制御が課題となる。
重要度の高いデータを低レイテンシで通過させるために、VC(Virtual Channel)と呼ぶ技術がスイッチデバイス間で利用可能である。VCとは、入力ポート毎に複数の入力バッファと、出力ポート毎に前記入力バッファと同数の出力バッファを設け、デバイス間の通信リンク(チャネル)をそれらのバッファで共有する技術である。また、スイッチデバイス内部のクロスバ調停(宛先調停)の際に優先度を考慮した調停を行う技術も利用可能である。
しかしながら、VCと優先度考慮のクロスバ調停(宛先調停)だけでは、重要度の高いデータがスイッチデバイス内部で重要度の低いデータの直後に続く場合に、重要度の高いデータがクロスバスイッチを即座に通過できず、レイテンシが伸びてしまう点が課題である。
本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
まず、高スループットを得るための細粒度パイプラインクロスバスイッチを実現するために、小規模セレクタをツリー状に多段に接続し、ステージ間にフリップフロップを配置したパイプラインセレクタを出力ポート数分用意してパイプラインクロスバを構成する。調停要求はデータ内に埋め込み、前記小規模セレクタ毎に独立した調停器(アービタ)を配置する。
前記調停器は、入力データに埋め込まれている調停要求と必要であれば入力データの優先順位を抽出して勝者入力を決定する。また、入力データの滞留状況を監視し、滞留量が多い場合、もしくは滞留時間が長い場合に優先的に滞留量の多い入力を選択するオプション機能を持つ。
パイプラインセレクタは、毎サイクルデータを受信し、調停と勝者入力データの転送を同時に行う。勝者入力データの転送は、2つの実現方法がある。
1つ目の実現方法によれば、フリップフロップの前方のステージが次のサイクルに利用可能である場合か、フリップフロップが何も記録していない場合に勝者入力データをフリップフロップに記録することで行う。すなわち、フリップフロップは、前記小規模セレクタの入力の勝者もしくは、フリップフロップの出力自身を入力とする。よって、パイプラインセレクタの各ステージには、勝者データが進行可能なステージまで進み、進めなくなった時点で待機することになる。
1つ目の実現方法によれば、フリップフロップの前方のステージが次のサイクルに利用可能であるか否かは、パイプラインクロスバの最終段では、出力バッファに書き込みスペースがある(利用可能)か否(利用不可能)かで判断する。パイプラインクロスバの途中ステージでは、出力に近い側のステージでの入力データの調停結果が勝利し、なお且つ進行可能である(利用可能)か否(利用不可能)かで判断する。
2つ目の実現方法によれば、フリップフロップには常に勝者入力データを記録する。そして、敗者データに対しては、敗者と判明した時点で後方ステージ(入力側のステージ)のフリップフロップのデータをクリアし、パイプラインセレクタへデータを供給するバッファのリードポインタを必要数分だけ巻き戻し次回のデータ入力時に正しい先頭データから読み出し可能にする。もしくは、パイプラインセレクタへデータを供給するバッファにおいて、クロスバ通過前の先頭データのリードポインタを記録しておき、敗者と判明した時点でリードポインタを記録した値に巻き戻し(置き換え)、次回のデータ入力時に正しい先頭データから読み出し可能にする。
2つ目の実現方法によれば、パイプラインセレクタの最終ステージの前方に配置される出力バッファがデータ受付不能である場合は、データのオーバランを見越し、前記出力バッファのエントリ数からパイプラインセレクタのステージ数を減じた値に達したところでパイプラインセレクタへの入力を停止することで出力バッファ溢れを回避する。
次に、高スループットを維持するために、VOQをパイプラインクロスバの入力毎に独立して設ける。前記VOQは、通常のFIFO(First In First Out)キュー制御とは異なり、VOQ読み出し直後に読み出しキャンセル要求をパイプラインクロスバから受けると、再度同じ値を読み出すようリードポインタを制御する。
最後に、重要度の高いデータを低レイテンシで通過させるために、入力ポート毎に複数の入力バッファと、出力ポート毎に前記入力バッファと同数の出力バッファを設けVCを構成し、さらに、入力バッファと出力バッファと同数のパイプラインクロスバを設ける。そして、スイッチデバイス内で重要度の高いデータと低いデータを異なる入力バッファ、パイプラインクロスバ、出力バッファで制御し、スイッチデバイスからの出力時に優先度の高いデータの属する出力バッファを優先する。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、以下のとおりである。
(1)本発明による細粒度パイプラインクロスバは、多ビット幅のデータパスを高い動作周波数で制御することが可能であるため、高スループットを実現できる。
(2)本発明による細粒度パイプラインクロスバは、調停回路をクロスバの各ステージに分散配置するため、個々の調停回路を簡易化でき、高速動作を実現できる。
(3)本発明による細粒度パイプラインクロスバは、調停と転送を同時に実現するため、調停から転送までに発生するレイテンシを極小化できる。
(4)本発明による細粒度パイプラインクロスバは、ステージ間のフリップフロップが、勝利入力データに加えフリップフロップの出力をフリップフロップの入力として循環させて持つため、調停に敗北したデータを、パイプラインクロスバ内で次の出力機会の待ち合わせを行うことができる。すなわち、あるデータがパイプラインクロスバを通過後、パイプラインクロスバに空き状態(パイプラインバブルと呼ぶ)を発生させずに次の出力要求データを通過させることが可能であり、スループットの低下を防ぐことができる。
(5)VOQによりHOLブロッキングによるスループット低下を防ぐとともに、本発明によるVOQの読み出し制御により、VOQにデータがあればパイプラインクロスバへ無条件でデータ入力し、パイプラインクロスバの初段ステージセレクタでの調停に敗北した場合か、前記調停に勝利しても前記セレクタに付随のフリップフロップがデータを受付不能状態にある場合に再度VOQから同一データの読み出しを行うことで、パイプラインクロスバのパイプラインバブル発生を抑止し、スループットの低下を防ぐことができる。
(6)VCと同数の本発明によるVOQを入力に持つ細粒度パイプラインクロスバにより、複数のスイッチデバイスを接続したときにスイッチデバイス群全体での入力から出力までの経路上に、仮想的な専用経路を実現し、重要データを非重要データに邪魔されることなく小さいレイテンシで転送することが可能になる。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
(実施の形態1)
図1に、本発明を適用した仮想経路付き細粒度パイプラインクロスバスイッチ100の一例の全体像を示す。
図1に、本発明を適用した仮想経路付き細粒度パイプラインクロスバスイッチ100の一例の全体像を示す。
図1の例では、2クラスのトラフィックを独立に扱うための2本のVCとして、入力ポート毎に2本のTCIQ(Traffic Class Input Queue)101A−1〜4,101B−1〜4、出力ポート毎に2本のTCOQ(Traffic Class Output Queue)102A−1〜4,102B−1〜4、入力にVOQ103{A,B}−{1〜4}{1〜4}を備える細粒度パイプラインクロスバ104A,104Bを各VC用に1面ずつ合計2面備えた構成であり、全体で4入力4出力のスイッチデバイスを実現している。
図2に、比較のために、代表的な従来の入出力バッファ型クロスバスイッチで4入力4出力スイッチを実現する例を示す。
入出力型クロスバスイッチ200は、入力ポート毎に1本の入力バッファ201−1〜4、出力ポート毎に出力バッファ202−1〜4、クロスバ204を搭載している。クロスバ204は、各出力バッファ202−1〜4に接続されたセレクタ205−1〜4により構成され、各セレクタが独立した出力調停器を備える。
図2の構成は、入力バッファのHOLブロッキングの問題が発生する。HOLブロッキングとは、空き出力ポート行きのデータの直前に、別のポート行きで競合により進めないデータが存在することによって、進行を停止させられる状態を指す。
図3に、異なる宛先データによるHOLブロッキングの例を示す。
図3は、3入力3出力の入力バッファ付きスイッチにおいて、入力バッファ201−1に出力1行きデータが4つ、入力バッファ201−2に出力2行きデータが4つ、入力バッファ201−3の先頭に入力2行きデータが1つ、その後ろに出力3行きデータが3つある状態を示している。
図3の各入力バッファ201−1〜3の先頭は出力1行きデータが1つ、出力2行きデータが2つあり、出力2行きデータが競合を起こしている。入力バッファ201−3は出力2行きの直後に出力3行きのデータがあり、先頭の出力2行きデータが競合を起こして出力できない状況にあるために、関係のない出力3行きのデータの出力が先頭の出力2行きデータが排出されるまで待機させられてしまい、結果的にスイッチデバイスのスループットが低下する。理論上、ポート数を無限大とし、宛先が完全にランダムなデータが入力されると、HOLブロッキングにより、スイッチデバイスのスループットは58.6%まで低下することが知られている。
図4に、低優先度データによるHOLブロッキングの例を示す。
図4は、3入力3出力の入力バッファ付きスイッチにおいて、入力バッファ201−1に出力1行きで優先度Bのデータが4つ、入力バッファ201−2に出力2行きで優先度Aのデータが1つ、入力バッファ201−3の先頭に入力1行きで優先度Cのデータが1つ、その後ろに出力1行きで優先度Aのデータが3つある状態を示している。なお、優先度は優先度Aが最も高く、次いで優先度Bが高く、優先度Cが最も低いものとする。
図4の各入力バッファ201−1〜3の先頭は出力1行きデータが2つ、出力2行きデータが1つあり、出力1行きデータが競合を起こしており、出力1には入力バッファ201−1の先頭にある優先度Bのデータが出力されている。ここで、入力バッファ201−3は先頭に出力1行きだが、優先度Cのデータがあるため、その直後にある出力1行き優先度Aのデータが出力できない状況にある。このために、重要度の高いデータが、重要度の低いデータにブロックされてしまう状況が発生する。
図5に、異なる宛先データによるHOLブロッキングの解消法の例を示す。
図5では、図3の異なる宛先パケットによるHOLブロッキングを回避するために、宛先ポート毎に独立したVOQ103−{1〜3(入力番号)}{1〜3(出力番号)}を導入する。VOQ103−{1〜3}{1〜3}により、図3の例でブロックされていた出力C行きのデータが、他出力行きデータ(図3の例では出力2行き)の競合状態によらず出力できるようになり、スループットの低下を回避できる。
図6に、低優先度データによるHOLブロッキングの解消法の例を示す。
図6では、図4の低優先度データによるHOLブロッキングを回避するために、トラフィッククラス(優先度)毎に独立したバッファTCIQ101{A,B,C(優先度)}−{1〜3(入力番号)}を導入する。TCIQ101{A,B,C}−{1〜3}により、図4の例でブロックされていた優先度の高いデータ(図4の例では入力バッファ201−3の出力1行き優先度A)が、優先度の低いデータ(図4の例では入力バッファ201−1の出力1行き優先度B)より先に出力できるようになり、優先度を遵守した転送が可能となる。
図7に、図3、図4で示した2種類のHOLブロッキングを同時に回避するための、TCIQ101{A,B,C(優先度)}−{1〜3(入力番号)}、VOQ103{A,B,C(優先度)} −{1〜3(入力番号)}{1〜3(出力番号)}を組み合わせる本発明の一実施の形態によるクロスバスイッチの構成例を示す。
図7の例では、クロスバスイッチ300は、3入力3出力で3種類の優先度を扱う。入力は、まずTCIQ101{A,B,C}−{1〜3}に接続する。TCIQ101{A,B,C}−{1〜3}は、優先度毎及び出力毎に用意するVOQ103{A,B,C}−{1〜3}{1〜3}に接続する。VOQ103{A,B,C} −{1〜3}{1〜3}は、優先度毎に独立したクロスバ204{A,B,C(優先度)}に接続する。各クロスバ204{A,B,C}の各出力は、独立したタイミングでデータを出力するため、出力ポート側にTCOQ102{A,B,C(優先度)}−{1〜3 (出力番号)}を配置し、クロスバ204{A,B,C}が同時にデータを出力してもデータが消失しないようにする。
図7において、TCIQ101{A,B,C}−{1〜3}とTCOQ102{A,B,C}−{1〜3}はペアになっており、クロスバスイッチ300、または出力にTCOQ102{A,B,C}−{1〜3}、または入力にTCIQ101{A,B,C}−{1〜3}を持つデバイスを複数接続する場合に、デバイス間でVC(Virtual Channel)を実現する。すなわち、優先度A,B,Cの3種類のデータで単独の回線を共有する。A>B>Cのように優先度に重みをつけ、共有する回線を優先度の高いデータを優先的に通過させるよう制御してもよいし、優先度を利用可能帯域として、共有する回線を割当て帯域に応じて利用するよう制御してもよい。制御位置は、TCOQ102{A,B,C}−{1〜3}直後のセレクタにおいて実施する。本発明では、クロスバ204{A,B,C}を優先度毎に独立させているため、クロスバスイッチ300内におけるHOLブロッキングを回避することでスループットの低下を防ぎ、正確な優先順位制御、または帯域制御が可能になる。
本発明では、スループットの低下を防ぐだけでなく、スループット自体を向上させるために細粒度パイプラインクロスバを導入する。図7のクロスバ204{A,B,C}を細粒度パイプラインクロスバに置き換え、4入力4出力、2種類の優先度を扱う例としたのが図1である。
ここで、図1の細粒度パイプラインクロスバ104の詳細な構成について説明する。パイプラインクロスバ104は4×4(4入力4出力)の構成であり、4×1のパイプラインセレクタ105が4個で構成される。パイプラインセレクタ105は、小規模な2×1セレクタをツリー状に配置し、2×1セレクタの出力部にフリップフロップ(FF)を配置した構成である。
図8に、8×8細粒度パイプラインクロスバの1出力分の構成、すなわち8×1細粒度パイプラインセレクタを示す。この細粒度パイプラインクロスバは、途中ステージでデータを停止させることのできないものである。
図8の細粒度パイプラインセレクタは、入力データを選択するための2×1セレクタ401、勝者データを記録するためのフリップフロップ403のペアを基本構成要素とし、前記基本構成要素をツリー状に接続することで実現する。図8の構成は、特許文献4に公開されているパイプラインクロスバと同等であり、セレクタの選択信号は細粒度パイプラインセレクタの外部から与える構成である。初段ステージで唯一の勝者が選ばれ、パイプラインセレクタの中を常に1つの勝者データだけが進行する。つまり、データパスだけが細粒度パイプライン化されており、制御部は細粒度パイプライン化されていないため、粗粒度のパイプライン処理の場合と同様に、調停回路が複雑であり、なお且つ、調停から実際の転送までのレイテンシが大きくなってしまう点が問題である。
図9に、本発明による細粒度パイプラインクロスバを構成するための細粒度パイプラインセレクタの例を示す。この細粒度パイプラインクロスバは、途中ステージでデータを停止させることのできるものである。
図9の細粒度パイプラインセレクタは、入力データを選択するための2×1セレクタ401、現サイクルの勝者データと前サイクルのフリップフロップ記録データを選択するための2×1セレクタ402、セレクタ402の出力を記録するフリップフロップ403、セレクタ401,402の選択信号を生成する制御部404を基本構成要素とし、前記基本構成要素をツリー状に接続することで実現する。
図10に、図9のパイプラインクロスバの構成要素(特に制御部404)の詳細を示す。
制御部404は、調停器(アービタ)405と、フリップフロップ403のデータを保持するための論理406と、入力データの滞留状況を伝達するための論理407とにより構成される。入力データは調停要求410を含み、調停器405は、入力データに埋め込まれている調停要求410を抽出し、公平な調停を実現するため、データ通過毎にラウンドロビン制御により勝者データを決定して選択信号411を生成し、セレクタ401の出力を選ぶ。また、調停器405は、入力データの滞留状況を監視するための信号420を利用し、滞留量が多い場合に優先的に滞留量の多い入力を選択するオプション機能を持つ。
ここで、データの単位について述べる。データの単位として、本文中では、パケットとセルとフリットという用語を用いる。
パケットとはルータなどの通信装置で利用される可変長のイーサフレーム等に装置内制御情報(例えば、スイッチファブリックの出力ポート番号や優先順位情報、整理番号等)を付加したデータである。セルとは、前記のパケットを固定長に区切り、装置内制御情報(パケットの場合の情報と同等の情報や、パケットに組み立てなおすときに必要となる整理番号や区切り情報等)を付加したデータである。なお、パケットはセルの整数倍とは限らないため、パケットの最後の端数部分にあたるデータにパディング(ゼロパディング)を行い、全てのセルサイズを固定化する。フリットとは、ハードウエアが1マシンサイクル(以下、「サイクル」と省略)で扱うことのできる分量に前記のセルを区切ったデータである。セルはフリットの整数倍である。
スイッチデバイスには、ハードウエアで扱いやすい固定長のセル単位で入力する。調停器405での調停単位はパケット、もしくはセル単位である。調停単位をセル単位とする場合は、複数のパケットのセルがスイッチデバイス内で交じり合った状態で最終端受信デバイスに到達するため、最終端受信デバイスにパケット毎にセルを収集し、組み立てる仕組みが必要となる。調停単位をパケットとする場合は、複数のパケットのセルがスイッチデバイス内で混じりあうことはないため、最終端受信デバイスは到着セルを順番どおり組み立てるだけでよい。以下、本実施の形態では、調停単位をパケットとして説明を行う。
また、図10のフリップフロップ403のデータを保持するための論理406は、前方ステージからのデータ保持要求430があり、なお且つフリップフロップ403のデータの有効ビットが有効である場合に、フリップフロップ403の値を再度フリップフロップ403に書き込むための保持信号432を生成し、セレクタ402を制御することで、データをパイプライン中に保持する動作を実現する。さらに、保持信号432が有効である場合か、または、調停結果信号411により当該入力データが調停に敗北している場合、後方ステージにデータ保持要求433を伝達する。
また、図10の入力データの滞留状況を伝達するための論理407は、後方ステージから入力データの滞留状況を監視するための信号420を受信し、前記信号420のいずれかが予め設定された閾値を超えている場合、すなわち入力側にあるVOQがほぼ満杯の状態であり、当該VOQの後続データの経路がビジー状態になっている可能性がある場合、次のサイクルに前方ステージへ、入力データの滞留状況を示す信号421を伝達する。
次に、図11に、本実施の形態による図10の基本構成要素をもつ図9の細粒度パイプラインクロスバをデータが通過する様子を例示する。
図11では、8入力8出力の細粒度パイプラインクロスバを構成する8×1パイプラインセレクタのうちの1つを示しており、前記8×1パイプラインセレクタの全入力にデータがあると仮定する。上から入力ポート1番、2番と続き、一番下を入力ポート8番とし、最初の左上の図では入力1番からのデータが優先されて通過している様子を示している。丸印で囲まれた数字がフリットを示しており、丸印をさらに枠で囲んだものがパケットを示す。入力1番のデータが通過している最中も、他の入力からのデータは、細粒度パイプラインセレクタ中を進行できるステージまで進み、待機状態になっており、入力1番が通過したあとに、自身が選択されると出力ポートに向かって進行を開始する。図11の例では、入力1番のあとに入力5番が、ついで入力3番、入力7番、入力2番、入力6番と続いて進行している様子を示している。
図11の例では、各基本構成要素のセレクタに付随の調停器は、ラウンドロビン制御に従い、パケットの最終フリットが通過後に異なる入力のパケットを選択している。
比較のために、図12に、従来の細粒度パイプラインクロスバをデータが通過する様子を例示する。図12も8×1パイプラインセレクタの全ての入力にデータがある状況を示している。この細粒度パイプラインクロスバは、図8の構成をとっており、途中ステージにデータを保持することができない。例えば、特許文献4に示される細粒度パイプラインクロスバが図8の構成に相当する。その制御方法は、まず、全入力の調停を実施して勝者となる入力を決定したのち、勝利パケットだけがパイプライン中を進行していくというものである。図12は、全入力をラウンドロビン制御により入力ポート番号の昇番順に選択している例である。
ここで、データの調停と転送の様子をパイプラインチャートにして示す。図13に、調停と転送がシーケンシャルに実施されている例を示す。
すなわち、まず入力の間で調停を行い、勝利データが決定したのちにデータ転送を開始する。この方法は、調停を実施している間にデータを転送できないため、転送スループットが低下する点が問題である。
図14に、調停と転送がオーバラップされて実施されている例を示す。
従来は、図14に示すように、データの調停と転送をある一定時間(本文中ではフェーズと呼ぶ)で区切り、フェーズk番目のデータ転送中にフェーズk+1番目の調停をオーバラップして行い、粗粒度のパイプライン処理を実現して入力にデータがある限り連続してデータ転送を行い、転送スループットを低下させないようにする。ただし、この方法は、あるデータだけに着目すると、調停フェーズと転送フェーズは順番に行われており、転送フェーズが始まるまでのレイテンシがあるため、調停から転送までのレイテンシが長い点が問題である。
そこで、本発明では、図9に示すデータ保持機能付き細粒度パイプラインクロスバを利用することにより、図15に示すように、データの調停と転送を同一フェーズで同時に行うことで、図14に示す調停から転送までのレイテンシが長い問題を解消する。なお、データが図9の細粒度パイプラインクロスバを通過するのにかかるレイテンシは、ステージ数に比例する。ステージ間で調停と転送の動作はオーバラップさせることで転送スループットを確保する。
本実施の形態では、基本構成要素の入力セレクタに2×1セレクタ401を利用した例を示したが、3×1セレクタ、もしくは4×1セレクタを基本構成要素として、同様の細粒度パイプラインクロスバを構成可能である。
次に、図1に戻り、本発明の仮想経路付き細粒度パイプラインクロスバスイッチ100の全体動作に関して説明する。入力データは、データ内に、2種類のトラフィッククラスA,B(AはBより優先度が高い)と出力ポート番号が記録されているものと仮定する。また、TCIQ101、VOQ103、TCOQ102は書き込みポートと読み出しポートを持つデュアルポートメモリで構成する。
細粒度パイプラインクロスバスイッチ100に、データが入力されると、データは、トラフィッククラスに一致するTCIQ101に振り分けられ、書き込まれる。TCIQ101は、フリット単位でデータを書き込み、エントリの管理はセル単位で行う。
TCIQ101にデータが入力されると、TCIQ101は読み出し動作に入る。
図16に、TCIQ101の読み出し動作とTCIQ101に接続されているVOQ103への書き込み動作に関するフローチャートを示す。
TCIQ101にデータ(フリット)があり、当該TCIQ101に接続される全てのVOQ103に空きエントリがある場合(ステップS1600)、データ(フリット)を読み出し、当該TCIQ101のリードポインタを進める動作(ステップS1601)を繰り返す。読み出したデータは、当該TCIQ101に接続される全てのVOQ103に伝送され、宛先ポート番号が一致するVOQ103にのみデータを書き込み、当該VOQ103のライトポインタを進める(ステップS1602→ステップS1603)。なお、出力先が複数指定されるマルチキャストの場合、複数のVOQ103に同時に書き込みが行われる。該当しないVOQ103には書き込みは行われない(ステップS1604)。
なお、制御は複雑になるが、ステップS1600において、目的の宛先VOQ103の空き状態だけを見て制御する方式もありうる。
次に、図17のフローチャートを用いてVOQ103からの読み出し動作を説明する。図17は、VOQ103の読み出し制御を示すフローチャートである。
VOQ103にデータが入力される(ステップS1700)と、当該VOQ103では書き込まれた順にデータの読み出しが行われ、VOQ103のリードポインタが進められる(ステップS1701)。前記の読み出しデータは、パイプラインクロスバ104の該当するパイプラインセレクタ105に入力されるが、パイプラインセレクタ105の初段ステージの調停に敗北するか、パイプラインセレクタ105の前方のパイプラインステージで敗北するか、TCOQ102が受け付け不能状態にあり、初段ステージのフリップフロップに記録できない場合、当該VOQ103のリードポインタの巻き戻しが行われ、当該読み出しデータの再読み出しが行われる(ステップS1702→ステップS1703→ステップS1701)。前記の読み出しデータがパイプラインセレクタ105の初段ステージで勝利し、初段ステージのフリップフロップに記録できる場合、続けて次のVOQ103の読み出し動作に入る(ステップS1702→ステップS1700)。
次に、図18のフローチャートを用いてパイプラインセレクタ105の動作を説明する。図18は、パイプラインクロスバのフリップフロップの保持内容制御を示すフローチャートである。
パイプラインセレクタ105にデータが入力されると、図10に示す基本構成要素単位で調停が行われる。ここで、フリップフロップ403に有効な保持データがあり、データ保持要求430がない場合、当該ステージにデータ入力があれば勝利データをフリップフロップ403に記録し(ステップS1801→ステップS1802→ステップS1803)、当該ステージにデータ入力がなければフリップフロップ403の少なくとも有効ビットをゼロクリアする(ステップS1801→ステップS1802→ステップS1805)。また、フリップフロップ403に有効な保持データがないか、もしくはデータ保持要求430がある場合、フリップフロップ403は現在の値を保持する(ステップS1801→ステップS1804)。
TCIQ101の先にあるVOQ103、パイプラインクロスバ104はトラフィッククラス毎に独立して存在するため、ある入力ポートからの低優先度データがパイプラインクロスバ104内で途中まで進んでいて、他の入力ポートからの時間的に後続の高優先度データがパイプラインクロスバ104内でブロックされてしまう状況を避けることができる。
パイプラインセレクタ105の中を、勝利したデータが次々と通過し、対応するTCOQ102に記録される。当該TCOQ102が一杯で書き込めない場合には、TCOQ102は対応するパイプラインセレクタ105に対し、図10中のデータ保持要求430相当の信号を渡し、当該TCOQ102が再度受付可能になるまでデータ入力を抑止する。なお、TCOQ102は、データを書き込むと自身のライトポインタを進め、データを読み出すと自身のリードポインタを進める。前記ライトポインタとリードポインタの差分が設定した閾値(例えば、ライトポインタとリードポインタの差分がTCOQ102のエントリ数と同じになった場合)に達すると、前記のデータ保持要求430相当の信号を有効にする。
TCOQ102にデータが溜まると、細粒度パイプラインクロスバスイッチ100から外部へデータを出力する。図1の例では、1つの出力ポートに対し、2つのTCOQ102が接続されているため、優先度の高いTCOQ102Aにデータがある場合は、常にTCOQ102Aからデータを出力する。TCOQ102Aが空の場合にTCOQ102Bからデータを出力する。前記の動作により、重要度の高いデータは重要度の低いデータより先に細粒度パイプラインクロスバスイッチ100を通過できるようになる。ただし、最悪の場合、TCOQ102Bのデータが異常に長い時間待機させられて、細粒度パイプラインクロスバスイッチ100を通過できない可能性がある。このため、タイマを設け、TCOQ102Bからの出力が抑止され始めたらタイマをスタートさせ、タイマが設定した閾値に達したときにTCOQ102Bのデータ出力を1パケット分有効にすることで、低優先度のデータの通過が異常に遅くなる事態を回避できる。
以上、本発明の実施の形態1による仮想経路付き細粒度パイプラインクロスバスイッチ100の構成、動作について詳細な説明を行った。上記仮想経路付き細粒度パイプラインクロスバスイッチ100の構成はあくまで一実施の形態に過ぎず、本発明の技術的思想および技術的範囲から離れることなく、様々な変形が可能である。
本発明の実施の形態1による仮想経路付き細粒度パイプラインクロスバスイッチを用いることで、大容量交換を実現しつつ重要度の高いデータを非重要なデータより小さい低いレイテンシで転送可能なスイッチデバイスを提供可能になる。
(実施の形態2)
本発明によれば、パイプラインクロスバを構成するパイプラインセレクタ内に分散型の軽量の調停器を配置しつつ、パイプライン中でデータ保持をしない、細粒度パイプラインクロスバを構成することも可能であり、この構成を実施の形態2として、実施の形態1との差分をもとに示す。
本発明によれば、パイプラインクロスバを構成するパイプラインセレクタ内に分散型の軽量の調停器を配置しつつ、パイプライン中でデータ保持をしない、細粒度パイプラインクロスバを構成することも可能であり、この構成を実施の形態2として、実施の形態1との差分をもとに示す。
図19に、本発明の実施の形態2における細粒度パイプラインクロスバを構成する細粒度パイプラインセレクタを示す。
図19の細粒度パイプラインセレクタは、入力データを選択するための2×1セレクタ401、セレクタ401の出力を記録するフリップフロップ403、セレクタ401、フリップフロップ403の制御信号を生成する制御部414を基本構成要素とし、前記基本構成要素をツリー状に接続することで実現する。
図20に、図19のパイプラインクロスバの構成要素(特に制御部414)の詳細を示す。
制御部414は、調停器(アービタ)405と、消去論理416と、入力データの滞留状況を伝達するための論理407とから構成される。入力データは調停要求410を含み、調停器405は、入力データに埋め込まれている調停要求410を抽出し、公平な調停を実現するため、データ通過毎にラウンドロビン制御により勝者データを決定して選択信号411を生成し、セレクタ401の出力を選ぶ。また、調停器405は、入力データの滞留状況を監視するための信号420を利用し、滞留量が多い場合に優先的に滞留量の多い入力を選択するオプション機能を持つ。
消去論理416は、調停器405から調停要求および調停結果を示す信号412を受け取り、巻き戻し要求生成論理480により、当該ステージで敗北した入力に対し消去要求信号463を生成し後方ステージへ伝達する。また、出力データの先に繋がれる前方ステージから消去要求信号460を受信した場合には、当該ステージのフリップフロップ403の値を信号462により消去しつつ、巻き戻し要求生成論理480が、入力データに接続される後方ステージすべてに消去要求信号463を伝達する。
さらに、消去論理416は加算器472を持ち、読み出しバッファ巻き戻し要求信号473を生成する。読み出しバッファ巻き戻し要求信号473は、後方ステージがパイプラインセレクタであれば、後方ステージの巻き戻し要求信号470に接続され、後方ステージが図1のVOQ103であればVOQ103の読み出し制御論理に接続される。
なお、消去要求信号460と巻き戻し要求信号470は、回路のディレイ悪化を避けるために消去論理416の内部で一旦フリップフロップ461,471にそれぞれ保持してから利用する。フリップフロップに保持しながら消去要求信号を伝達すると、消去要求信号がパイプラインセレクタ105の入口のVOQ103に伝達するまでに複数サイクルかかってしまう。しかしながら、スイッチ内の各セレクタ調停はパケット単位で行い、パケットは十分大きな数のフリットによって構成されており、消去要求信号がパイプラインセレクタ105の入口のVOQ103に伝達するまでにかかるサイクル数より、パケットを構成するフリットの数の方が一般に大きくなりやすいため、問題とはならない。なお、図20のフリップフロップ461,471は、巻き戻し要求生成論理480と加算器472の出力側に置く変形例も可能である。
加算器472は、デフォルトでは数値1(巻き戻し数1を意味する)を巻き戻し要求信号473として出力する。ただし、前方ステージから消去要求信号460がある場合は、前方ステージからの巻き戻し要求信号470に2を足した値を加算した値を巻き戻し要求信号473として出力する。1ではなく2を加算するのは、パイプラインを逆向きに巻き戻し要求が進行中にも、大元のVOQではデータ読み出しが続いているためである。
加算器472は、たかだかパイプラインセレクタ105のステージ数を表現できるまでの値を生成できればよく、図22の例では最大値5までを計算できればよい。一般に、2N入力のスイッチを2×1セレクタでパイプラインセレクタとして構成する場合、加算器472はたかだか2(N−1)+1 bitの計算ができればよいので、回路規模は非常に小さく高速動作が可能である。
消去要求信号463と巻き戻し要求信号473は、最後にVOQ103の読み出し制御論理に到達し、VOQ103のリードポインタ巻き戻しに利用する。VOQ103は最初の要求で巻き戻しを行い、以降の巻き戻し要求をうけつけないため、多重の巻き戻し要求による誤制御は発生しない。
具体例として、図22に、図20のパイプラインセレクタ構成要素を利用した8×1パイプラインセレクタの動作例を示す。
8個全ての入力にデータが入力されたと仮定する。サイクル1において、入力1,3,5,7が勝利し、入力2,4,6,8が敗北する。すると、入力2,4,6,8に対して消去要求信号463と巻き戻し要求信号473として「1」が伝達される。入力2,4,6,8のVOQは、リードポインタを1巻き戻し、以後、読み出し要求が発生するまで読み出し動作を停止する。
サイクル2において、サイクル1で勝利した入力1,3,5,7のうち、入力1,5が勝利し、入力3,7が敗北する。すると、入力3,7を伝達したパイプラインステージに対し、巻き戻し数1の要求が伝達され、さらに図20の加算器472により巻き戻し数1+2=3が生成されて、サイクル3に入力3,4,7,8のVOQに伝達される。このうち、入力4,8のVOQは既に読み出し待機状態に入っているので、巻き戻し数3の巻き戻し要求は無視する。入力3,7のVOQのみリードポインタを3巻戻す。
サイクル3において、サイクル2で勝利した入力1,5のうち、入力1が勝利し、入力5が敗北する。すると、入力5を伝達したパイプラインステージに対し、巻き戻し数1の要求が伝達され、さらに図20の加算器472により巻き戻し数1+2=3が生成されて、サイクル4において、さらに後方ステージの加算器472により巻き戻し数3+2=5が生成されて、サイクル5において、入力5,6,7,8のVOQに伝達される。このうち、入力6,7,8のVOQは既に読み出し待機状態に入っているので、巻き戻し数5の巻き戻し要求は無視する。入力5のVOQのみリードポインタを5巻戻す。
サイクル4以降、入力1のデータがパイプラインセレクタ内を次々と通過し始める。ここで、消去要求信号463が一旦セットされると解除されるまでセット値を維持する場合、最終段の巻き戻し要求生成論理480は、勝者の入力1のデータが通過を始めた時点で消去要求信号463を解除する。消去要求信号463の解除は、次々と後方ステージに伝達され、最後に全ての巻き戻し要求が解除され、次のデータ入力に備えられる。消去要求信号463が、事象が発生したときだけアサートされる信号の場合、前記の解除動作を実施する必要はない。
入力1のデータの末尾のフリットがパイプラインセレクタの初段ステージに到達したところ(図22の右上図の状態)で、次の全入力からのデータ受付が再開される。図22の下段では、入力5が勝利し通過していく様子を示している。
以上、全入力からデータが同時に入力される例を説明したが、データが異なるサイクルに入力されても全く同様の操作により、動作可能である。
なお、パイプラインセレクタの最終段は図1に示すTCOQ102に接続されている。TCOQ102が一杯で受付不能である場合は、その旨をTCOQフル信号でVOQ103に伝達する。TCOQフル信号は、パイプラインセレクタ通過中のデータのオーバランを考慮し、TCOQの総エントリ数からパイプラインセレクタのステージ数を減じた値を超えたときに有効にする。
図21に、以上のVOQの読み出し動作をフローチャートで示す。
VOQ103にデータがあり、TCOQ102が受け付け可能である場合、VOQ103からデータを読み出し、VOQ103のリードポインタを進める(ステップS2100→ステップS2101)。ステップS2102において、VOQ103の巻き戻し要求がない場合は、最初の状態に戻り次の動作に備える(ステップS2102→ステップS2100)。ステップS2102において、VOQの巻き戻し要求がある場合は、VOQ103のリードポインタを要求される分だけ巻き戻し、パイプラインセレクタ中で無効化(クリア)されてしまったデータを再度読み出せるようにして、次の読み出し要求があるまで待機する(ステップS2103→ステップS2104繰り返し)。次の読み出し要求があるとステップS2101に遷移し、以下同様の制御を続ける。
以上、実施の形態2の詳細を、実施の形態1との差分によって詳細な説明を行った。実施の形態2の仮想経路付き細粒度パイプラインクロスバスイッチ100の構成はあくまで一実施の形態に過ぎず、本発明の技術的思想および技術的範囲から離れることなく、様々な変形が可能である。
本実施の形態2のメリットは、実施の形態1と同様の高スループットのパイプラインクロスバを、より少ない軽量な論理で構成できる点である。また、従来のパイプラインクロスバと異なり、パイプラインセレクタ内の制御論理を分散配置しているために、制御論理が簡易化でき、高周波数動作に適している点もメリットである。
(実施の形態3)
実施の形態1、実施の形態2ではパイプラインクロスバをトラフィッククラスの分だけ搭載することで、トラフィッククラス間のデータフローがお互いに影響を与えることを回避し、スループットの低下を避けている。ところが、論理規模はトラフィッククラス数に比例して増加するため、論理規模の増加を削減したい場合には不向きである。そこで、実施の形態3として、パイプラインクロスバをトラフィッククラスより少ない面数用意し、複数のトラフィッククラス間で共用する方式について説明する。
実施の形態1、実施の形態2ではパイプラインクロスバをトラフィッククラスの分だけ搭載することで、トラフィッククラス間のデータフローがお互いに影響を与えることを回避し、スループットの低下を避けている。ところが、論理規模はトラフィッククラス数に比例して増加するため、論理規模の増加を削減したい場合には不向きである。そこで、実施の形態3として、パイプラインクロスバをトラフィッククラスより少ない面数用意し、複数のトラフィッククラス間で共用する方式について説明する。
論理規模を最小に抑える場合、VOQおよびパイプラインクロスバは1面分だけ用意する。
図23に、2レベルのトラフィッククラスを扱い、トラフィッククラス間でただひとつのパイプラインクロスバ104を共有する4×4スイッチ400の構成例を示す。
各ポートは2組のTCIQ101とTCOQ102を持ち、入力されたデータは、トラフィッククラスにより適切なTCIQ101に保持され、優先度の高いTCIQ101から優先してVOQ103に渡される。優先度の低いTCIQ101は、優先度の高いTCIQ101にデータがないときのみ、もしくは優先度の低いTCIQ101にデータが入った後、データを取り出せない時間が設定した閾値を越えたときにのみ、データがパケットの末尾に達するまで取り出しVOQ103に渡される。
パイプラインクロスバ104の中のパイプラインセレクタ105は、図19に示す実施の形態2と同様の構成である。その構成要素は図20に示すものと基本的には同一であるが、図20の調停器405が抽出する信号410が調停要求だけでなく、データのトラフィッククラスを含み、調停器405はトラフィッククラスを考慮して調停を行う点が異なる。トラフィッククラスを考慮した調停とは、優先度の高いトラフィッククラスを通常時、選択し続ける重み付きのラウンドロビンなどである。
パイプラインセレクタ105に、図9に示す途中ステージでデータの進行を停止・保持するパイプラインセレクタを用いないのは、途中ステージに優先度の低いデータが詰まっているときに、後続の他入力からの優先度の低いデータが優先度の低いデータに長時間、進行を妨げられうるからである。ただし、ある入力からの優先度の低いデータが、あるVOQ103に溜まってしまっている状況では、前記入力から後続の高優先度データが前記低優先度データと同じ宛先である(同じVOQ103に溜まる)場合には、高優先度データが低優先度データに進行を妨げられうる。低優先度データが消滅しても回復できる手段がスイッチ外部に設けられている場合は、設定した閾値時間が経過したのちに高優先度データの進行を邪魔している低優先度データを廃棄する手段をとることで高優先度データのスイッチ通過遅延が伸びることを防止できる。
トラフィッククラスを3以上用意するとき、細粒度パイプラインクロスバは2面用意する。そして、重要トラフィッククラスに細粒度パイプラインクロスバのうち1面を専用に割り当て、残りのトラフィッククラスでもうひとつの細粒度パイプラインクロスバで共有する。
以上、実施の形態3の詳細を、実施の形態1と実施の形態2との差分によって詳細な説明を行った。実施の形態3の仮想経路付き細粒度パイプラインクロスバスイッチ400の構成はあくまで一実施の形態に過ぎず、本発明の技術的思想および技術的範囲から離れることなく、様々な変形が可能である。
本実施の形態3のメリットは、論理規模を大きく増大させることなく、レイテンシ重視のデータと単に宛先に届けばよいレイテンシ非重視(ベストエフォート)のデータを効率よく分離できることである。
(実施の形態4)
実施の形態4では、図1において、VOQ103の読み出し制御、及び、パイプラインクロスバ104の制御、及び、TCOQ102の書き込み制御を、TCIQ101の読み書き制御、及び、VOQ103の書き込み制御、及び、TCOQ102の読み出し制御より速いクロックを利用して高速に行う例を示す。どこまで速いクロックにするかは利用するデバイスの半導体プロセスなどに依存する。
実施の形態4では、図1において、VOQ103の読み出し制御、及び、パイプラインクロスバ104の制御、及び、TCOQ102の書き込み制御を、TCIQ101の読み書き制御、及び、VOQ103の書き込み制御、及び、TCOQ102の読み出し制御より速いクロックを利用して高速に行う例を示す。どこまで速いクロックにするかは利用するデバイスの半導体プロセスなどに依存する。
実施の形態4は、パイプラインクロスバを構成するパイプラインセレクタ内の構成要素の前後のステージをフリップフロップで完全に分離している実施の形態2に特に適合させやすい。
本実施の形態4によると、パイプラインクロスバ104は実施の形態2に比較して、短い時間でVOQ103からの入力を消費できる。すなわち、複数の入力が同一の出力を目指して出力ポートの競合が発生する場合にも、出力調停に敗北した入力は、次回の出力機会待機時間を短縮することができるため、出力調停に敗北した入力のVOQ103が溢れる可能性が低減し、ひいては細粒度パイプラインクロスバスイッチ100のスループットの低下を回避できる。
別の言い方をすると、本実施の形態4によれば、図1の細粒度パイプラインクロスバスイッチ100の内部のパイプラインクロスバ104の見かけの交換容量を大きくできるため、細粒度パイプラインクロスバスイッチ100のスループット低下を防ぐことができる。
(実施の形態5)
実施の形態5は上述の実施の形態2を更に簡素化したハードウエアで実現するものである。以下、実施の形態2との差を中心に説明する。
実施の形態5は上述の実施の形態2を更に簡素化したハードウエアで実現するものである。以下、実施の形態2との差を中心に説明する。
本実施の形態5では、図20に示す2×1セレクタの制御部414内部において、フリップフロップ403の内容を消去する信号462と加算器472が不要である。代わりにパイプラインクロスバ104へデータを入力するVOQ103に、パイプラインクロスバ104通過前の先頭データの読出しポインタを記録する巻き戻しバッファを具備する。
この実施の形態5におけるVOQ103とパイプラインクロス場104の動作に関して説明する。各入力からのデータは、対応するVOQ103に記録され、同時にVOQ103中でのデータの先頭位置がVOQ103の前記巻き戻しバッファに記録される。前記データがパイプラインクロスバ104を通過する場合、宛先調停に敗北した時点で調停敗北信号(図20の信号463に相当)が当該VOQ103まで戻されるれる。
前記調停敗北信号を受信したVOQ103は、パイプラインクロスバ104へのデータ出力を停止し、現在の読出しポインタを前記巻き戻しバッファに記録されている読出しポインタで置き換える。宛先調停に勝利したデータがパイプラインクロスバ104を通過したのち、当該VOQ103は、前記の置き換えた読出しポインタからデータの読出しを再開する。
また、パイプラインクロスバ104中の図20に示すフリップフロップ403では、出力データ側から調停敗北信号460を受信しても、フリップフロップ403の内容を消去する必要は無い。これは、出力データ側の次のステージにあたるセレクタ401には宛先調停の勝者のデータが入力されるように固定され、敗北側の入力データは参照されることが無く、どのようにデータが載っていてみ影響を与えないためである。
以上、実施の形態2との差分を説明することで実施の形態5を説明した。この実施の形態5についても、仮想経路付き細粒度パイプラインクロスバスイッチ400の構成は一例に過ぎず、本発明の技術思想および技術的範囲から離れることなく、様々な変形が可能である。
本実施の形態5のメリットは、実施の形態2よりも論理規模を削減させながら実施の形態2と同様なデータ交換を行いえる点である。
以上、本発明者によってなされた発明をその実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
本発明により、大容量交換を実現しつつ重要度の高いデータを重要度の低いデータより小さいレイテンシで転送することが可能なスイッチファブリックを実現できる。前記スイッチファブリックを内包するルータなどのネットワーク転送装置やサーバ装置、複数のディスクアレイを接続するストレージ装置などに利用することが可能である。
Claims (14)
- 複数のデータ入力ポートから所望の1つまたは複数のデータ出力ポートへ同時に接続するクロスバスイッチであって、
入力データを優先度毎に分類する入力バッファを優先度数と同数持つ複数の入力ポートと、
前記入力ポート数と優先度数の積に等しい数の、優先度毎に分類されたデータを出力先ごとに分類する仮想出力キューと、
出力データを優先度毎に保持する出力バッファを優先度数と同数持つ複数の出力ポートと、
前記仮想出力キューからの出力を適切な前記出力バッファに伝達する、前記出力ポート数と同数の多入力1出力のセレクタで構成される優先度数と同数のクロスバとを具備し、
前記セレクタは、小規模セレクタと、フリップフロップと、前記小規模セレクタ及び前記フリップフロップを制御する制御部とを木状に配すことでパイプラインセレクタを構成し、
前記制御部は、
前記入力データに含まれる調停要求を抽出して出力調停を行い、勝者となる入力を決定する機能と、
次のステージが次のサイクルに利用可能であるか否かを示す情報を監視することで、前記次のサイクルに利用可能である場合か前記フリップフロップが何も記録していない場合に前記小規模セレクタの勝者データを前記フリップフロップに記録し、前記以外の場合に現在の前記フリップフロップの値を保持する機能とを持ち、
前記仮想出力キューは、有効なデータを保持している場合に常に読み出しを行い、現在の有効なデータ出力が、接続される前記小規模セレクタの前記フリップフロップに記録されなかった場合に再度同じデータを読み出す機能を持ち、
前記入力バッファは、接続するデバイスの前記出力バッファとの間で仮想チャネルを形成し、
前記出力バッファは、接続するデバイスの前記入力バッファとの間で仮想チャネルを形成することを特徴とするクロスバスイッチ。 - 複数のデータ入力ポートから所望の1つまたは複数のデータ出力ポートへ同時に接続するクロスバスイッチであって、
入力データを優先度毎に分類する入力バッファを優先度数と同数持つ複数の入力ポートと、
前記入力ポート数と優先度数の積に等しい数の、優先度毎に分類されたデータを出力先ごとに分類する仮想出力キューと、
出力データを優先度毎に保持する出力バッファを優先度数と同数持つ複数の出力ポートと、
前記仮想出力キューからの出力を適切な前記出力バッファに伝達する、前記出力ポート数と同数の多入力1出力のセレクタで構成される優先度数と同数のクロスバとを具備し、
前記セレクタは、小規模セレクタと、フリップフロップと、前記小規模セレクタ及び前記フリップフロップを制御する制御部とを木状に配すことでパイプラインセレクタを構成し、
前記制御部は、
前記入力データに含まれる調停要求を抽出して出力調停を行い、勝者となる入力を決定する機能と、
前記小規模セレクタの勝者データを前記フリップフロップに記録する機能と、
前記小規模セレクタの敗者データを提供した入力に対し敗者信号を生成する機能と、
出力データ側から前記敗者信号を受信した場合に前記フリップフロップの内容を消去する機能と、
前記敗者信号の発生したステージ数を考慮して前記敗者データを提供する入力バッファの巻き戻し要求数を決定して前記入力バッファまで伝達する機能とを持ち、
前記仮想出力キューは、前記出力バッファが受信不可でない場合に読み出しを行い、前記敗者信号を受信した場合に前記入力バッファの巻き戻し要求数分だけ読み出しポインタを巻き戻し、次の読み出し要求がある時に再度同じデータを読み出す機能を持ち、
前記入力バッファは、接続するデバイスの前記出力バッファとの間で仮想チャネルを形成し、
前記出力バッファは、接続するデバイスの前記入力バッファとの間で仮想チャネルを形成することを特徴とするクロスバスイッチ。 - 複数のデータ入力ポートから所望の1つまたは複数のデータ出力ポートへ同時に接続するクロスバスイッチであって、
入力データを優先度毎に分類する入力バッファを優先度数と同数持つ複数の入力ポートと、
前記入力ポート数と優先度数の積に等しい数の、優先度毎に分類されたデータを出力先ごとに分類する仮想出力キューと、
出力データを優先度毎に保持する出力バッファを優先度数と同数持つ複数の出力ポートと、
前記仮想出力キューからの出力を適切な前記出力バッファに伝達する、前記出力ポート数と同数の多入力1出力のセレクタで構成される優先度数と同数のクロスバとを具備し、
前記セレクタは、小規模セレクタと、フリップフロップと、前記小規模セレクタ及び前記フリップフロップを制御する制御部とを木状に配すことでパイプラインセレクタを構成し、
前記制御部は、
前記入力データに含まれる調停要求を抽出して出力調停を行い、勝者となる入力を決定する機能と、
前記小規模セレクタの勝者データを前記フリップフロップに記録する機能と、
前記小規模セレクタの敗者データを提供した入力に対し敗者信号を生成する機能と、
前記敗者信号を、前記敗者データを提供する入力バッファまで伝達する機能とを持ち、
前記仮想出力キューは、クロスバ通過前の先頭データ読出しポインタを記録する巻き戻しバッファを持ち、前記出力バッファが受信不可でない場合に読み出しを行い、前記敗者信号を受信した場合に前記入力バッファの巻き戻しバッファにある読出しポインタを巻き戻し、次の読み出し要求がある時に再度同じデータを読み出す機能を持ち、
前記入力バッファは、接続するデバイスの前記出力バッファとの間で仮想チャネルを形成し、
前記出力バッファは、接続するデバイスの前記入力バッファとの間で仮想チャネルを形成することを特徴とするクロスバスイッチ。 - 複数のデータ入力ポートから所望の1つまたは複数のデータ出力ポートへ同時に接続するクロスバスイッチであって、
入力データを出力先ごとに分類する仮想出力キューと、
出力ポート数個の多入力1出力のセレクタで構成されるデータ交換手段であるクロスバと、
出力データを保持する出力バッファとを具備し、
前記セレクタは、小規模セレクタと、フリップフロップと、前記小規模セレクタ及び前記フリップフロップを制御する制御部とを木状に配すことでパイプラインセレクタを構成し、
前記制御部は、
入力データに含まれる調停要求を抽出して出力調停を行い、勝者となる入力を決定する機能と、
次のステージが次のサイクルに利用可能であるか否かを示す情報を監視することで、次のサイクルに利用可能である場合か前記フリップフロップが何も記録していない場合に前記小規模セレクタの勝者データを前記フリップフロップに記録し、前記以外の場合に現在の前記フリップフロップの値を保持する機能とを持ち、
前記仮想出力キューは、有効なデータを保持している場合に常に読み出しを行い、現在の有効なデータ出力が、接続される前記小規模セレクタの前記フリップフロップに記録されなかった場合に再度同じデータを読み出す機能を持つことを特徴とするクロスバスイッチ。 - 複数のデータ入力ポートから所望の1つまたは複数のデータ出力ポートへ同時に接続するクロスバスイッチであって、
入力データを出力先ごとに分類する仮想出力キューと、
出力ポート数個の多入力1出力のセレクタで構成されるデータ交換手段であるクロスバと、
出力データを保持する出力バッファとを具備し、
前記セレクタは、小規模のセレクタと、フリップフロップと、前記小規模セレクタ及び前記フリップフロップを制御する制御部とを木状に配すことでパイプラインセレクタを構成し、
前記制御部は、
前記入力データに含まれる調停要求を抽出して出力調停を行い、勝者となる入力を決定する機能と、
前記小規模セレクタの勝者データを前記フリップフロップに記録する機能と、
前記小規模セレクタの敗者データを提供した入力に対し敗者信号を生成する機能と、
出力データ側から前記敗者信号を受信した場合に前記フリップフロップの内容を消去する機能と、
前記敗者信号の発生したステージ数を考慮して前記敗者データを提供する入力バッファの巻き戻し要求数を決定して前記入力バッファまで伝達する機能とを持ち、
前記仮想出力キューは、前記出力バッファが受信不可でない場合に読み出しを行い、前記敗者信号を受信した場合に前記入力バッファの巻き戻し要求数分だけ読み出しポインタを巻き戻し、次の読み出し要求がある時に再度同じデータを読み出す機能を持つことを特徴とするクロスバスイッチ。 - 複数のデータ入力ポートから所望の1つまたは複数のデータ出力ポートへ同時に接続するクロスバスイッチであって、
入力データを出力先ごとに分類する仮想出力キューと、
出力ポート数個の多入力1出力のセレクタで構成されるデータ交換手段であるクロスバと、
出力データを保持する出力バッファとを具備し、
前記セレクタは、小規模のセレクタと、フリップフロップと、前記小規模セレクタ及び前記フリップフロップを制御する制御部とを木状に配すことでパイプラインセレクタを構成し、
前記制御部は、
前記入力データに含まれる調停要求を抽出して出力調停を行い、勝者となる入力を決定する機能と、
前記小規模セレクタの勝者データを前記フリップフロップに記録する機能と、
前記小規模セレクタの敗者データを提供した入力に対し敗者信号を生成する機能と、
前記敗者信号を、前記敗者データを提供する入力バッファまで伝達する機能とを持ち、
前記仮想出力キューは、クロスバ通過前の先頭データの読出しポインタを記録する巻き戻しバッファを持ち、前記出力バッファが受信不可でない場合に読み出しを行い、前記敗者信号を受信した場合に前記入力バッファの巻き戻しバッファにある読出しポインタを巻き戻し、次の読み出し要求がある時に再度同じデータを読み出す機能を持つことを特徴とするクロスバスイッチ。 - 請求項1〜3のいずれか1項に記載のクロスバスイッチにおいて、
前記仮想出力キューが、前記入力ポート数のP倍個(Pは1以上優先度数未満の整数)であり、
前記クロスバの個数がP個であり、
複数の優先度を前記パイプラインクロスバで扱い、
前記小規模セレクタが出力調停をする際に、データ中の優先度情報を抽出し、優先度の高いデータを優先的に選択することを特徴とするクロスバスイッチ。 - 請求項1〜3のいずれか1項に記載のクロスバスイッチにおいて、
前記仮想出力キューの読み出し制御と、前記クロスバの制御と、出力バッファの書き込み制御とが、
前記入力バッファの読み書き制御と、前記仮想出力キューの書き込み制御と、前記出力バッファの読み出し制御とより高速に行われることを特徴とするクロスバスイッチ。 - 請求項1〜6のいずれか1項に記載のクロスバスイッチおいて、
前記パイプラインセレクタを構成する前記小規模セレクタの出力調停が行われる際に、ラウンドロビン制御が行われ、各入力に対し公平な帯域割当が実施されることを特徴とするクロスバスイッチ。 - 請求項1〜6のいずれか1項に記載のクロスバスイッチおいて、
前記パイプラインセレクタを構成する前記小規模セレクタの出力調停が行われる際に、ラウンドロビン制御が行われ、各入力に対し公平な帯域割当を実施するとともに、
前記仮想出力キューの利用量が設定した閾値を超えた1つもしくは複数の入力がある場合、前記状態にある入力が優先的に選択されることを特徴とするクロスバスイッチ。 - 請求項1〜6のいずれか1項に記載のクロスバスイッチおいて、
前記パイプラインセレクタを構成する前記小規模セレクタの出力調停が行われる際に、ラウンドロビン制御が行われ、各入力に対し公平な帯域割当を実施するとともに、
前記仮想出力キューが有効なデータを保持していながら出力できない状態が設定した時間を超えた1つもしくは複数の入力がある場合、前記状態にある入力が優先的に選択されることを特徴とするクロスバスイッチ。 - 請求項1〜6のいずれか1項に記載のクロスバスイッチおいて、
前記パイプラインセレクタを構成する前記小規模セレクタの出力調停を行われる際に、ラウンドロビン制御が行われ、各入力に対し公平な帯域割当を実施するとともに、
前記仮想出力キューが有効なデータを保持していながら出力できない状態が設定した時間を超えた1つもしくは複数の入力がある場合、前記状態にあるいずれかの入力が優先的に選択されることを特徴とするクロスバスイッチ。 - 請求項1〜6のいずれか1項に記載のクロスバスイッチおいて、
前記入力バッファに接続される全ての前記仮想出力キューに空きエントリがある場合にのみ、前記入力バッファから対応する前記仮想出力キューにデータが移動されることを特徴とするクロスバスイッチ。 - 請求項1〜6のいずれか1項に記載のクロスバスイッチおいて、
前記入力バッファから対応する前記仮想出力キューに空きエントリがある場合に、前記入力バッファから対応する前記仮想出力キューにデータが移動されることを特徴とするクロスバスイッチ。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2006/304152 WO2007099644A1 (ja) | 2006-03-03 | 2006-03-03 | クロスバスイッチ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2007099644A1 true JPWO2007099644A1 (ja) | 2009-07-16 |
JP4566261B2 JP4566261B2 (ja) | 2010-10-20 |
Family
ID=38458769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008502630A Expired - Fee Related JP4566261B2 (ja) | 2006-03-03 | 2006-03-03 | クロスバスイッチ |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP4566261B2 (ja) |
WO (1) | WO2007099644A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009251652A (ja) * | 2008-04-01 | 2009-10-29 | Mitsubishi Electric Corp | マルチコアシステム |
EP2613479B1 (en) | 2010-09-03 | 2015-09-30 | Panasonic Intellectual Property Management Co., Ltd. | Relay device |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0496446A (ja) * | 1990-08-10 | 1992-03-27 | Hitachi Ltd | Atmスイッチおよび多重化装置およびその制御方法 |
JPH04176229A (ja) * | 1990-11-09 | 1992-06-23 | Hitachi Ltd | Atmスイッチ、多重化装置およびその制御方法 |
JPH08237274A (ja) * | 1994-12-27 | 1996-09-13 | Toshiba Corp | Atmセルスイッチ及び共通バッファ型atmスイッチ |
JP2001339427A (ja) * | 2000-03-22 | 2001-12-07 | Fujitsu Ltd | パケットスイッチ、スケジューリング装置、廃棄制御回路、マルチキャスト制御回路、およびQoS制御装置 |
JP2002252628A (ja) * | 2001-02-23 | 2002-09-06 | Nippon Telegr & Teleph Corp <Ntt> | パケット出力調停装置 |
JP2004140538A (ja) * | 2002-10-17 | 2004-05-13 | Hitachi Ltd | 大容量化と低遅延化に対応したアービタおよびそれを用いたルータ |
-
2006
- 2006-03-03 WO PCT/JP2006/304152 patent/WO2007099644A1/ja active Application Filing
- 2006-03-03 JP JP2008502630A patent/JP4566261B2/ja not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0496446A (ja) * | 1990-08-10 | 1992-03-27 | Hitachi Ltd | Atmスイッチおよび多重化装置およびその制御方法 |
JPH04176229A (ja) * | 1990-11-09 | 1992-06-23 | Hitachi Ltd | Atmスイッチ、多重化装置およびその制御方法 |
JPH08237274A (ja) * | 1994-12-27 | 1996-09-13 | Toshiba Corp | Atmセルスイッチ及び共通バッファ型atmスイッチ |
JP2001339427A (ja) * | 2000-03-22 | 2001-12-07 | Fujitsu Ltd | パケットスイッチ、スケジューリング装置、廃棄制御回路、マルチキャスト制御回路、およびQoS制御装置 |
JP2002252628A (ja) * | 2001-02-23 | 2002-09-06 | Nippon Telegr & Teleph Corp <Ntt> | パケット出力調停装置 |
JP2004140538A (ja) * | 2002-10-17 | 2004-05-13 | Hitachi Ltd | 大容量化と低遅延化に対応したアービタおよびそれを用いたルータ |
Non-Patent Citations (1)
Title |
---|
JPN6010037352, 信学技報 SSE99−120 * |
Also Published As
Publication number | Publication date |
---|---|
JP4566261B2 (ja) | 2010-10-20 |
WO2007099644A1 (ja) | 2007-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6477169B1 (en) | Multicast and unicast scheduling for a network device | |
EP2898641B1 (en) | Ultra low latency network buffer storage | |
US6771596B1 (en) | Backpressure mechanism for a network device | |
EP3562110B1 (en) | Traffic management for high-bandwidth switching | |
US6661788B2 (en) | Multicast scheduling for a network device | |
US8995456B2 (en) | Space-space-memory (SSM) Clos-network packet switch | |
JP5036920B1 (ja) | 中継装置、中継装置の制御方法、およびプログラム | |
US6856622B1 (en) | Multicast cell scheduling protocol | |
US7742408B2 (en) | System and method for filtering packets in a switching environment | |
Gilabert et al. | Improved utilization of noc channel bandwidth by switch replication for cost-effective multi-processor systems-on-chip | |
Ouyang et al. | LOFT: A high performance network-on-chip providing quality-of-service support | |
US20100098104A1 (en) | Switching device | |
US6628646B1 (en) | Programmable multicast scheduling for a network device | |
US11483259B2 (en) | VOQ-based network switch architecture using multi-stage arbitration fabric scheduler | |
Lu et al. | Design of interlock-free combined allocators for networks-on-chip | |
Lu et al. | Exploring virtual-channel architecture in FPGA based networks-on-chip | |
JP4566261B2 (ja) | クロスバスイッチ | |
US20240031304A1 (en) | Virtual channel starvation-free arbitration for switches | |
US20070140260A1 (en) | System and method of single switch string hardware | |
Wang et al. | Efficient designs of optical LIFO buffer with switches and fiber delay lines | |
JP2009508428A (ja) | 相互接続ファブリックにおいてユニキャスト・トラフィック及びマルチキャスト・トラフィックをスケジューリングする方法、装置、及びコンピュータ・プログラム(相互接続ファブリックにおいてユニキャスト・トラフィック及びマルチキャスト・トラフィックをスケジューリングする方法及び装置) | |
JP2015069345A (ja) | 情報処理装置,データ転送装置,およびデータ転送方法 | |
US20140226675A1 (en) | Input buffered switching device including bypass logic | |
KR100527341B1 (ko) | 크로스바 방식의 방송스위치 | |
Jiang et al. | A high-throughput asynchronous multi-resource arbiter using a pipelined assignment approach |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100706 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100803 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130813 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |