JP2008527853A - パケットおよび/またはセルをスケジュールするための方法および装置 - Google Patents
パケットおよび/またはセルをスケジュールするための方法および装置 Download PDFInfo
- Publication number
- JP2008527853A JP2008527853A JP2007550438A JP2007550438A JP2008527853A JP 2008527853 A JP2008527853 A JP 2008527853A JP 2007550438 A JP2007550438 A JP 2007550438A JP 2007550438 A JP2007550438 A JP 2007550438A JP 2008527853 A JP2008527853 A JP 2008527853A
- Authority
- JP
- Japan
- Prior art keywords
- input
- output
- switch units
- ports
- port
- 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.)
- Withdrawn
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
- H04L49/254—Centralised controller, i.e. arbitration or scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
- H04L49/1515—Non-blocking multistage, e.g. Clos
- H04L49/1523—Parallel switch fabric planes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3018—Input queuing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
少なくとも1つの入力待ち行列をそれぞれが有する複数の入力ポートと、複数のスイッチユニットと、複数の出力ポートとを含むスイッチデバイスのためにパケットまたはセルをスケジュールするシステムおよび方法。自分の少なくとも1つの待ち行列内にパケットまたはセルを有するそれぞれの入力ポートによって、対応するパケットまたはセルの送信先となる出力ポートのそれぞれへその対応するパケットまたはセルを出力したいという要求が作成され、その要求は、対応する入力ポートから対応する出力ポートへパケットまたはセルを転送する際に使用される複数のスイッチユニットのうちの特定の1つを識別し、複数のスイッチユニットのうちのその特定の1つは、第1の優先順位スキームに従って選択される。スイッチユニットごとに、出力ポートごとに、作成された要求へのアクセスが許可され、その許可は、第2の優先順位スキームに基づく。スイッチユニットごとに、入力ポートごとに、許可が受け入れられ、その受け入れは、第3の優先順位スキームに基づく。受け入れた許可において識別された対応するスイッチユニットを利用して、それらの受け入れた許可に基づいて、それぞれの入力ポートからそれぞれの出力ポートへパケットおよび/またはセルが出力される。
Description
本発明は、一般には、入力がバッファに格納されるスイッチにおけるパケットおよび/またはセルのスケジューリングに関し、より詳細には、パラレルスイッチングユニットを使用してパケットおよびセルをスイッチする装置および方法に関する。スイッチングパフォーマンスは、パラレルスイッチングユニットを使用したスイッチングシステムにおいて時間あたりにスケジュールされるパケットおよび/またはセルの数を増やすことによって改善される。
大規模なパケットスイッチおよびルータの設計に関して、単に出力をバッファに格納する戦略は、高いスイッチング効率を提供する一方で、スイッチ規模の増大に合わせて拡張することができないということが、当技術分野でよく知られている。この主な原因は、スイッチコアが、個々のスイッチポートよりも、ポート数倍だけ速く動作するという要件である。このため、大容量のスイッチは、一般に「入力がバッファに格納される」種類のものであり、入力および出力ポートモジュールは、クロスバーなどのスイッチユニットを介して相互接続されている。入力バッファの列の先頭(head−of−line(HOL))でブロックする現象を克服するために、それぞれの入力ポートにおけるバッファは、入力待ち行列のセットへと編成され、それぞれの入力待ち行列は、特定の出力ポートを宛先とするパケットの専用とされる。
一般的な、入力が待ち行列に入れられるスイッチは、N個の入力ポートおよびM個の出力ポートを有し、このNおよびMは整数値であり、それぞれの入力ポートは、出力ポートごとに1つの入力待ち行列を使用し、したがって、合計でN×M個の入力待ち行列が存在する。スケジューラは、マッチする入力/出力ペアのセットを識別し、それらの間でパケットまたはセルが、コンフリクトを伴わずにスイッチユニットを介して伝送される。このスイッチのスループット効率は、スケジューリングアルゴリズムの効率に依存する。このため、様々な形式の次善のヒューリスティックスに基づいた様々なスケジューリングアルゴリズムが、現在この業界で採用されている。
入力が待ち行列に入れられるスイッチにおいてトラフィックをスケジュールするための3つの広く知られているヒューリスティックアルゴリズムが、PIM(Parallel Iterative Matching)、RRM(Round−Robin Matching)、およびiSLIPである。これらのアルゴリズムのそれぞれは、入力/出力ペアのコンフリクトのないセットを選ぶようにすることによってマッチング効率を最大限に高めようと努め、通常は、マッチング効率を高めるために複数の連続した繰り返しが実行される。
PIM法は、要求、許可、および受け入れという3つのステップから構成されている。要求ステップでは、N×M個の入力待ち行列が、要求を出力ポートへ送信する。許可ステップでは、それぞれの出力ポートが、受信した要求の中から1つの要求をランダムに許可し、その結果をそれぞれの入力ポートへ通知する。入力ポートは、出力ポートから複数の許可を受信することができるが、ランダムに選択した1つの許可しか受け入れない。したがってPIM法は、第1の出力裁定段階(許可ステップ)においては、それぞれの出力ポートごとに候補入力をランダムに選択することによって機能する。そして第2の入力裁定段階(受け入れステップ)においては、このシステムは、同様のランダム化戦略を採用することによって、それぞれの入力ごとに選択できる複数の出力の間におけるコンフリクトを解消する。
RRM法は、PIM法と同様の順序の出力裁定段階および入力裁定段階で同じ目的を達成するが、それぞれの出力ポートおよび入力ポートに実装されているラウンドロビン裁定ポインタを使用して決定論的な方法で行われる点が異なる。
iSLIP法は、RRMと同様のやり方で機能するが、ただし出力ラウンドロビンポインタおよび入力ラウンドロビンポインタの移動が、首尾よくマッチすることを条件としており、一方でRRMの場合には、これは無条件である。典型的なiSLIP法は、Nicholas McKeownに発行された米国特許第5,500,858号に詳しく記載されている。
従来のスイッチデバイスでは、リソースの裁定に対処しなければならない。そのような従来のリソース裁定方法の1つが、Charles Thackerに発行された米国特許第5,267,235号に詳しく記載されており、それによれば、リクエスタとサーバとの間における高速の一対一の照合が実行され、これによってそれぞれのサーバは、好ましくはランダムなやり方で、1つの要求を選択する。
別のスケジューリングアルゴリズムが、Man Soo Hanらに発行された米国特許第6,633,568号に記載されており、それによれば、2次元のラウンドロビンスケジューリングアルゴリズムが記載されており、そこでは、入力がバッファに格納されるスイッチにおいて複数の選択が行われる。
さらに別のスケジューリングアルゴリズムが、Hiroshi Suzukiらに発行された米国特許第6,813,274号に記載されており、これは、入力ポートごとに1つの受け入れを可能にするだけの従来のスケジューリング方法に伴う問題を、入力ごとに複数の受け入れを可能にすることによって解決しようとしている。
これらの従来のスケジューリングアルゴリズムのそれぞれに関しては、複数の出力ポートが同一の入力ポートに対して許可を作成する際に、同期化の問題が存在する。これらのアルゴリズムは、複数の連続した繰り返しを実行することによってマッチング効率を最大限に高めようと試み、最悪の場合には、N×MのスイッチをカバーするためにこのアルゴリズムをN回繰り返さなければならない。さらに、これらの複数の繰り返しは、時間単位あたりのスケジューリングの決定の点でスイッチングパフォーマンスを低下させる。
本発明は、上述の問題のうちの1つまたは複数による影響を克服すること、あるいは少なくとも軽減することを対象としている。
本発明の少なくとも1つの態様によれば、少なくとも1つの入力待ち行列をそれぞれが有する複数の入力ポートと、複数のスイッチユニットと、複数の出力ポートとを含むスイッチ内でデータをスケジュールする方法が提供される。この方法は、a)入力ポートで待っているデータの送信先となる出力ポートのそれぞれへデータを出力したいという要求を入力ポートごとに作成するステップであって、その要求が、対応する入力ポートから対応する出力ポートへデータを転送する際に使用するための複数のスイッチユニットのうちの1つを識別し、複数のスイッチユニットのうちのその識別される1つが、第1の優先順位スキームに従って識別されるステップを含む。この方法はまた、b)識別されたスイッチユニットごとに、出力ポートごとに、ステップa)で作成された要求へのアクセスを許可するステップであって、その許可が、第2の優先順位スキームに基づくステップを含む。この方法は、c)スイッチユニットごとに、入力ポートごとに、許可を受け入れるステップであって、その受け入れが、第3の優先順位スキームに基づくステップをさらに含む。この方法はまた、d)受け入れた許可において識別された対応するスイッチユニットを利用して、それらの受け入れた許可に基づいて、それぞれの入力ポートからそれぞれの出力ポートへデータを出力するステップをさらに含む。
本発明の別の態様によれば、データをスケジュールするためのシステムが提供される。このシステムは、少なくとも1つの入力待ち行列をそれぞれが有する複数の入力ポートを含むスイッチを含む。このスイッチはまた、それらの複数の入力ポートへ通信可能に接続されている複数のスイッチユニットを含む。このスイッチは、それらの複数のスイッチユニットへ通信可能に接続されている複数の出力ポートをさらに含む。このスイッチはまた、a)入力ポートのうちのそれぞれの入力待ち行列内に格納されているデータをデータの送信先となる出力ポートのそれぞれへ出力したいという要求を入力ごとに作成するステップであって、その要求が、対応する入力ポートから対応する出力ポートへデータを転送する際に複数のスイッチユニットのうちのどれが使用されるかを識別することを含み、複数のスイッチユニットのうちのその識別される1つが、第1の優先順位スキームに従って識別されるステップと、b)識別されたスイッチユニットごとに、出力ポートごとに、作成された要求へのアクセスを許可するステップであって、その許可が、第2の優先順位スキームに基づくステップと、c)スイッチユニットごとに、入力ポートごとに、許可を受け入れるステップであって、その受け入れが、第3の優先順位スキームに基づくステップと、d)受け入れた許可において識別された対応するスイッチユニットを利用することによって、その受け入れた許可に基づいて、入力ポートのうちの対応する1つの対応する入力待ち行列から出力ポートのうちの対応する1つへデータを出力するようにその対応する入力ポートに指示するステップとを行うように構成されているスケジューラを含む。
本発明のさらに別の態様によれば、少なくとも1つの入力待ち行列をそれぞれが有する複数の入力ポートと、複数のスイッチユニットと、複数の出力ポートとを含むスイッチのためにパケットまたはセルをスケジュールする方法が提供される。この方法は、a)入力ポートで待っているデータの送信先となる出力ポートのそれぞれへデータを出力したいという要求を入力ポートごとに作成するステップであって、その要求が、対応する入力ポートから対応する出力ポートへパケットまたはセルを転送する際に使用するための複数のスイッチユニットのうちの1つを識別することを含み、複数のスイッチユニットのうちのその識別される1つが、第1の優先順位スキームに従って識別されるステップを含む。この方法はまた、b)前記スイッチユニットの少なくとも1つごとに、出力ポートごとに、ステップa)で作成された要求へのアクセスを許可するステップであって、その許可が、第2の優先順位スキームに基づくステップを含む。この方法は、c)前記スイッチユニットの少なくとも1つごとに、入力ポートごとに、許可を受け入れるステップであって、その受け入れが、第3の優先順位スキームに基づくステップをさらに含む。この方法はまた、d)受け入れた許可において識別された対応するスイッチユニットを利用して、それらの受け入れた許可に基づいて、それぞれの入力ポートからそれぞれの出力ポートへパケットおよび/またはセルを出力するステップをさらに含む。
本発明の別の態様によれば、パケットまたはセルをスケジュールするためのシステムが提供される。このシステムは、少なくとも1つの入力待ち行列をそれぞれが有する複数の入力ポートを含むスイッチを含む。このスイッチはまた、それらの複数の入力ポートへ通信可能に接続されている複数のスイッチユニットを含む。このスイッチは、それらの複数のスイッチユニットへ通信可能に接続されている複数の出力ポートをさらに含む。このスイッチシステムはまた、a)入力ユニットのうちの少なくとも1つによって作成された要求を受信するステップであって、その要求が、入力ポートの入力待ち行列内に格納されているデータを、データの送信先となる出力ポートのそれぞれへ出力するために作成されており、その要求が、対応する入力ポートから対応する出力ポートへパケットまたはセルを転送する際に複数のスイッチユニットのうちのどれが使用されるかを識別することを含み、複数のスイッチユニットのうちのその識別される1つが、第1の優先順位スキームに従って識別されるステップと、b)前記スイッチユニットの少なくとも1つごとに、出力ポートごとに、ステップa)で作成された要求へのアクセスを許可するステップであって、その許可が、第2の優先順位スキームに基づくステップと、c)前記スイッチユニットの少なくとも1つごとに、入力ポートごとに、許可を受け入れるステップであって、その受け入れが、第3の優先順位スキームに基づくステップと、d)受け入れた許可において識別された対応するスイッチユニットを利用して、それらの受け入れた許可に基づいて、それぞれの入力ポートからそれぞれの出力ポートへパケットおよび/またはセルを出力するステップとを行うように構成されているスケジューラをさらに含む。
本発明の前述の利点および特徴は、以降の詳細な説明および添付の図面を参照すれば、明らかになるであろう。
本実施形態は、それぞれの出力ポートがスケジューラの繰り返しごとに複数の許可を作成することができるようにすることによって、またそれぞれの入力ポートがスケジューラの繰り返しごとに複数の許可を受け入れることができるようにすることによってスイッチングパフォーマンスが改善される、パラレルスイッチングユニットを有するスイッチングシステムおよび方法を対象とする。これは、それぞれ出力ポートおよび入力ポートごとにスケジューラの繰り返しごとに単一の許可の作成および受け入れを可能にするだけのiSLIP、PIM、RRMなどの従来のスケジューリングアルゴリズムとは異なる。
従来のスケジューリングアルゴリズムと比較すると、本発明の少なくとも1つの実施形態による方法および装置は、複数のパラレルスイッチユニットのうちのどのパラレルスイッチユニットが要求されているかを要求ごとに指定するように要求ステップを変更し、出力ポートごとにパラレルスイッチユニットのそれぞれに対して最大で1つの許可を作成することができるように許可ステップを変更し、入力ポートごとにパラレルスイッチユニットのそれぞれに対して最大で1つの許可を受け入れることができるように受け入れステップを変更する。これは、それぞれの入力ポートおよび出力ポートがスケジューラの繰り返しごとに複数のパケットまたはセルをスイッチすることができるということを意味しており、これによって、時間単位あたりのパケットまたはセルのスケジューリングの決定の数が増える。これは、結果として、スケジューラのマッチング効率と、パラレルスイッチユニットを使用したスイッチングシステムのスイッチング能力とを高める。
さらに、本発明の少なくとも1つの実施形態による方法および装置は、スイッチングの決定ごとの時間が短縮されるため、パケットおよびセルタックススイッチングの非効率を低減することができる。またさらに、本発明の少なくとも1つの実施形態による方法および装置は、パケットの分解および再組み立てに訴えることなく、サイズが変動するパケット、およびサイズが一定のセルの双方をスイッチする機能を提供する。
図1は、本発明の少なくとも1つの実施形態によるスケジューリングの方法および装置を組み込んだ、N×M個のポートをスイッチする装置(NおよびMは整数値)を示している。N個の入力ポート100のそれぞれは、パケットおよび/またはセルを受信し、それらの出力ポートの宛先に従ってそれらを入力待ち行列180内に一時的に格納し、その宛先は、それぞれが出力リンク150を介してM個の出力ユニット140に接続されているM個の出力ポート150のうちの1つである。それぞれの入力ユニット110および出力ユニット140は、複数の(K個の)パラレルスイッチユニット120に接続されている。
入力ユニット110は、入力リンク160を介してスイッチユニット120に接続されており、出力ユニット140は、出力リンク170を介してスイッチユニット120に接続されている。入力ユニット#1は、K個のパラレルスイッチユニット120のそれぞれの上の入力#1に接続されており、入力ユニット#2は、K個のパラレルスイッチユニット120のそれぞれの上の入力#2に接続されており、...、入力ユニット#Nは、K個のパラレルスイッチユニット120のそれぞれの上の入力#Nに接続されている。同様に、出力ユニット#1は、K個のパラレルスイッチユニット120のそれぞれの上の出力#1に接続されており、出力ユニット#2は、K個のパラレルスイッチユニット120のそれぞれの上の出力#2に接続されており、...、出力ユニット#Nは、K個のパラレルスイッチユニット120のそれぞれの上の出力#Nに接続されている。これらのスイッチユニットは、後述のようにお互いに並行して機能することによって、お互いに機能的に異なる。スケジューラユニットを実際にセットアップする例示的な方法について、以降で説明する。
本発明の一実施形態のスケジューリング方法は、スケジューラユニット内に組み込まれることが好ましく、スケジューラユニットは、入力ユニット110、出力ユニット140、あるいはスイッチユニット120のいずれかの中に実装することができる。あるいはスケジューラユニットは、図1には具体的に示されていない別個のユニット内に組み込むこともできる。可能な一実装形態においては、スケジューラユニットは、スイッチユニット120のうちの1つの中に、あるいは別個のユニットとして組み込まれている。スケジューラユニットは、宛先の出力ポート150への最終的な転送の前に出力ユニット140へスイッチするために、スイッチユニット120の全体にわたって、入力待ち行列180からパケットおよび/またはセルのスケジューリングを実行する。
図2は、本発明の第1の実施形態によるスケジューリング方法によって実行されるステップを示すフローチャートである。最初のステップ200は、入力ポートに着信するパケットおよび/またはセルを入力待ち行列へと継続的にロードすることであり、それらの入力待ち行列から、特定の出力ポートを目指す要求を作成することができる。次のステップ210は、それぞれの入力待ち行列の一番前に存在するそれぞれのパケットまたはセルごとに特定の出力ポートへのアクセスを要求することである。次のステップ220は、それらの要求に対して出力ポートを許可することである。次のステップ230は、入力ポートが出力ポートからの許可を受け入れることである。次のステップ240は、入力から出力へのスイッチリンクの割り当ての決定を作成し、スイッチユニットを介してパケット/セルをそれらの宛先の出力ポートへ送信することである。そしてこのプロセスは繰り返され、ステップ210に戻って、別のセルやパケットをスケジュールする。
3つのステップのそれぞれは、第1の実施形態においては、スケジューラの繰り返しごとに1回実行され、このそれぞれのステップについて、以降で詳細に説明する。
ステップ1(要求ステップ):それぞれの入力ポートは、入力待ち行列内で待っている自分の所有するデータが目指すすべての出力ポートに対する要求を作成する。入力から出力ポートへのそれぞれの要求は、特定のスイッチユニットを指定し、それぞれの入力ポートは、出力ポートごとに輪番式の優先順位スキームを使用して、その出力ポートを目指す要求をパラレルスイッチユニットのうちのどの1つが行うかを選択する。
この輪番式の優先順位スキームは、最も高い優先順位を有するスイッチユニットを選択する。その後、最も高い優先順位の指定がインクリメントされ、これによって、最後の繰り返しの最も高い優先順位の要素が、次の繰り返しにおける最も低い優先順位の要素になる。要求の結果としてステップ2において許可が作成され、それが結果としてステップ3において受け入れられた場合にのみ、インクリメントステップが実行されることが好ましい。というのは、これによって、スケジューラによって実行されるスイッチユニットの選択の決定どうしの間に望ましい脱同期化効果が生じるためである。
第1の実施形態において実行される要求ステップと、従来のPIM法、iSLIP法、あるいはRRM法における要求ステップとの違いは、これらの従来の方法に関しては、任意の入力ポートによって作成されるすべての要求が、常に同じ単一のスイッチユニットを目指すが、その一方で第1の実施形態による方法においては、こうした要求が、複数のパラレルスイッチユニットのうちの1つを目指すということである。また第1の実施形態においては、出力ポートごとに要求ごとにパラレルスイッチユニットのうちのどの1つが要求されているかを識別するために、輪番式の優先順位スキームが使用される。第1の実施形態において利用される輪番式の優先順位スキームは、ラウンドロビン式の優先順位スキームや、それまでのスケジューリングの繰り返しにおいて入力ユニットと、スイッチユニットと、出力ユニットとの間で行われた割り当てを追跡把握する他の何らかのタイプの優先順位スキームとすることができる。例えばランダムな優先順位スキームについて、本発明の別の実施形態に関連して後のセクションで説明する。
ステップ2(許可ステップ):要求ステップの後に、スイッチユニットごとに出力ポートごとにアクセスが許可される。要求ステップ(ステップ1)に関して前述した輪番式の優先順位スキームと同様の輪番式の優先順位スキームをスイッチユニットごとに出力ポートごとに使用して、入力ポートからの要求が選択される。輪番式の優先順位スキームは、対応するスイッチユニットを明確に目指して作成された要求を考慮するだけである。対応してステップ3において許可が受け入れられた場合にのみ、インクリメントステップが実行されることが好ましい。というのは、これによって、スケジューラによって実行される許可の選択の決定どうしの間に望ましい脱同期化効果が生じるためである。
それぞれの入力ポートは、出力ポートごとに単一のスイッチユニットを要求することしかできないため、特定の出力ポートからの作成された許可はすべて、別々の入力ポートを目指すものである。
第1の実施形態において実行される許可ステップと、従来のPIM法、iSLIP法、あるいはRRM法における許可ステップとを比較した際の違いは、これらの従来の方法においては、それぞれの出力ポートが、単一の入力ポートのためのアクセスを許可するだけだが、その一方で第1の実施形態による方法においては、それぞれの出力ポートが、パラレルスイッチユニットのそれぞれに関して入力ポートのためのアクセスを許可することができるということである。すなわち、本発明の少なくとも1つの実施形態によれば、1つの出力ポートは、パラレルスイッチユニットの使用を通じて、複数の入力ポートへのアクセスを事実上許可することができる。
ステップ3(受け入れステップ):許可ステップの後、次のステップは、スイッチユニットごとに入力ポートごとに許可を受け入れることである。前述の輪番式の優先順位スキームと同様の輪番式の優先順位スキームをスイッチユニットごとに入力ポートごとに使用して、出力ポートからの許可が選択される。輪番式の優先順位スキームは、対応するスイッチユニットを明確に目指して作成された許可を考慮するだけである。受け入れの決定の後、優先順位は、受け入れられた優先順位要素よりも値1つ分だけインクリメントされる。
それぞれの出力ポートは、入力ポートごとに単一のスイッチユニットを許可することしかできないため、特定の入力ポートのために作成された受け入れの決定はすべて、別々の出力ポートを目指すものであるという点に留意されたい。
第1の実施形態の受け入れステップと、従来のPIM法、iSLIP法、あるいはRRM法における受け入れステップとを比較した際の違いは、これらの従来の方法においては、それぞれの入力ポートが、出力ポートからの単一の許可を受け入れるだけだが、その一方で第1の実施形態による方法においては、それぞれの入力ポートが、パラレルスイッチユニットのそれぞれに関して出力ポートからの許可を受け入れることができるということである。すなわち、本発明の少なくとも1つの実施形態によれば、1つの入力ポートは、パラレルスイッチユニットの使用を通じて、複数の出力ポートからの許可を事実上受け入れることができる。
ステップ3の後、最後の処理は、ステップ3での受け入れられた許可に従って、対応する入力および出力スイッチユニットリンクを割り当て、対応するパケットおよび/またはセルを、それらの対応する割り当てられたスイッチユニットを介してそれらの宛先の出力ポートへ送信することである。
スイッチング装置が、単一のスイッチユニットを実装しているだけである場合、すなわち、パラレルスイッチユニットがまったくない場合には、第1の実施形態による方法のオペレーションは、iSLIPスケジューラアルゴリズムのオペレーションに類似したものとなるが、ただし第1の実施形態の可能な一実装形態においては、セル(サイズが一定のパケット)のスイッチングに適用できるだけのiSLIPとは異なり、パケットの分解/再組み立てに訴えることなく、スケジューラを使用して、サイズが変動するパケットをスイッチすることができる。サイズが変動するパケット、およびサイズが一定のセルの双方をスイッチするための本発明の一実施形態の適用については、以降に記載されている。
以降の例は、本発明の様々な実施形態のオペレーションについてさらに説明する。
図4は、図2のスケジューリング方法の4つの繰り返しを示しており、これは、2つの入力ポートと、2つの出力ポートとを有するスイッチングシステムのために実行され、ここでは、aおよびbとラベル付けされた2つのパラレルスイッチユニットが、入力ポートを出力ポートに接続している。この例のシステムは、図1によって定義すると、N=2、M=2、およびK=2のシステムに相当する。要求ポインタ410、要求420、許可ポインタ430、許可440、受け入れポインタ450、および受け入れ460も、図4に示されている。
図4は、繰り返しごとに、図2のステップ210に対応する要求ステップと、図2の220に対応する許可ステップと、図2の230に対応する受け入れステップとを示している。4つの繰り返しのそれぞれのはじめに、それぞれの入力ユニット110は、システム内のあらゆる出力ユニット140を目指す(したがって、あらゆる出力ポートを目指す)入力待ち行列180内で待っているデータを有する。
図4に示されているスケジューリング方法に関する要求の作成は、スイッチユニットaおよびbのうちのどちらが要求されるかを選択するために(入力、出力)ポートの組合せごとに2つの値の輪番式の優先順位スキームを使用して実行される。許可の作成は、入力ポート1または2からの要求を選択するためにスイッチユニット(a、b)上の出力ポートごとに2つの値の輪番式の優先順位スキームを使用して実行される。受け入れの作成は、出力ポート1または2からの許可を選択するためにスイッチユニット(a、b)上の入力ポートごとに2つの値の輪番式の優先順位スキームを使用して実行される。
繰り返し1の最中の処理は、それぞれの入力が出力1および2へのアクセスを要求したことに伴って開始し、輪番式の優先順位スキームは、それぞれの要求ごとに、要求ポインタ410の値によって決定されるように、その要求がスイッチユニットaまたはbのどちらを目指して作成されるかを決定する。入力1は、スイッチユニットaを介して出力1を、またスイッチユニットaを介して出力2を要求する。入力2は、スイッチユニットaを介して出力1を、またスイッチユニットaを介して出力2を要求する。要求ポインタ410は、繰り返し1においては、すべてスイッチaを指している。
要求ステップの後には、許可ステップが続き、この許可ステップでは、スイッチユニットa、b上のそれぞれの出力が、入力ポートからの要求を選択し、輪番式の優先順位スキームは、スイッチユニットaおよびb上のそれぞれの出力ごとに、許可ポインタ430の値によって決定されるように、その許可が入力1または2のどちらを目指して作成されるかを決定する。出力2は、スイッチユニットaを介して入力1に対する許可を行い、出力1は、スイッチユニットaを介して入力1に対する許可を行う。
許可ステップの後には、受け入れステップが続き、この受け入れステップでは、スイッチユニットa、b上のそれぞれの入力が、出力ポートからの許可を選択し、輪番式の優先順位スキームは、スイッチユニットaおよびb上のそれぞれの入力ごとに、受け入れポインタ450の値によって決定されるように、その受け入れが出力1または2のどちらを目指して作成されるかを決定する。入力1は、スイッチユニットaを介して出力1からの許可を受け入れ、そして対応するセルやパケットが、スイッチユニットaを介してその宛先の出力ポートへ送信される。
次いで処理は、繰り返し2へと続く。繰り返し1における処理結果によって、(入力1、出力1)のための要求ポインタは、スイッチユニットaからbへとインクリメントされ、その一方で、ステップ3(図2のステップ230)において結果として受け入れに至らなかった他の要求ポインタは、繰り返し1のはじめと同じ値にとどまっている。スイッチユニットa上の出力1のための許可ポインタは、入力1から入力2へとインクリメントされ、その一方で、ステップ3(図2のステップ230)において結果として受け入れに至らなかった他の許可ポインタは、繰り返し1のはじめと同じ値にとどまっている。スイッチユニットa上の入力1のための受け入れポインタは、出力1から出力2へとインクリメントされ、その一方で、ステップ3(図2のステップ230)において結果として受け入れに至らなかった他の受け入れポインタは、繰り返し1のはじめと同じ値にとどまっている。
繰り返し2の要求ステップは、繰り返し1の要求ステップと同じだが、ただし、繰り返し1において実行された要求ポインタの更新のために、入力1は、スイッチユニットbを介して出力1を要求する。許可ステップにおいては、許可は、入力1および入力2の双方に対して作成され、入力1は、繰り返し1における要求ポインタおよび許可ポインタの更新のために、スイッチユニットaおよびbの双方を介して許可を受信し、それらの許可はすべて、やはり繰り返し1において生じたポインタの更新のために、受け入れステップにおいて受け入れられる。
図5は、要求ポインタの脱同期化の利点を示すために、本発明の第2の実施形態による次善のスケジューリング方法を示している。図4においては、要求ポインタは、対応する要求が同じ繰り返し内で受け入れられた場合に更新されるだけだが、図5においては、要求ポインタは、繰り返しごとに常に自動的に更新される。図4と図5を比較することによって、要求ポインタの脱同期化が、第1の実施形態の望ましい特徴である繰り返しごとのより高いマッチング効率につながるということを理解することができる。
第1の実施形態による方法においては、入力は、要求が最終的に許可されるまで、特定のスイッチユニットを介して出力ポートを要求し続けることになり、その結果、同じ出力ポートを要求する別々の入力ポートによってパラレルスイッチユニットのうちのどれが選択されるかに関して、望ましい脱同期化効果がもたらされるということが見て取れる。対応する作成された要求に対してパラレルスイッチユニットがより均等に分散していればいるほど、スケジューラの繰り返しごとにより多くのパラレルスイッチユニットをマッチさせることができるため、繰り返しごとのマッチング効率はよくなる。
ここまでは、第1の実施形態による本発明の全般的な方法について詳細に説明した。以降の考察では、本発明の実施形態を実装するための別のオプションおよびアプローチについて説明する。
図3は、本発明の第3の実施形態によるスケジューラユニットの可能な一実施形態を示すブロック図である。可能な一実装形態においては、図3に示されているブロックのそれぞれは、ソフトウェア内に実装され、あるいは、それらのブロックによって実行される機能のいくつかは、概要の設計によって、またはHDL(hardware description language)によってなど、ハードウェアによって実行することができ、プログラマブルロジックデバイス(例えば、フィールドプログラマブルゲートアレイ/CPLD)や特定用途向け集積回路内に実装することができる。第3の実施形態によるスケジューラは、前述あるいは後述の実施形態のうちのいずれによる方法を実行するようにも構成することができる。入力300ごとの入力待ち行列ごとの待ち行列ステータス310が、要求ブロック320へ転送され、この要求ブロック320は、図1に示されているシステムにおいて入力ポートごとに実装されている。それぞれの要求ブロック320は、許可ブロック340に接続されており、この許可ブロック340は、図1に示されているシステムにおいて出力ポートごとに実装されている。要求ブロック320から許可ブロック340へのそれぞれの接続は、パラレルスイッチユニットのうちの1つを目指す単一の要求330を伝送することができ、要求ブロック320は、スケジューラの繰り返しごとにそれぞれの許可ブロック340ごとに最大で合計1つの要求を作成することができる。
それぞれの許可ブロック340は、受け入れブロック360に接続されており、この受け入れブロック360は、図1に示されているシステムにおいて入力ポートごとに実装されている。許可ブロックから受け入れブロックへのそれぞれの接続は、パラレルスイッチユニットのうちの1つを目指す単一の許可350を伝送することができ、許可ブロック340は、スケジューラの繰り返しごとにそれぞれのパラレルスイッチユニットごとに最大で合計1つの許可を作成することができる。それぞれの受け入れブロック360は、応答ブロック380に接続されており、この応答ブロック380は、図1に示されているシステムにおいて入力ポートごとに実装されている。受け入れブロックから応答ブロックへのそれぞれの接続は、図1に示されているシステムにおけるパラレルスイッチユニットのそれぞれを目指す最大で1つの受け入れ370を伝送することができ、受け入れブロック360は、スケジューラの繰り返しごとにそれぞれのパラレルスイッチユニットごとに最大で合計1つの受け入れを作成することができる。
応答ブロック380は、図2に示されているステップ240の処理を実行し、この処理は、対応する入力待ち行列からの列の先頭(head−of−line(HOL))のパケット要素やセル要素の送信を開始するために入力待ち行列へと戻される応答コマンドを作成することによって、対応するパケットおよびセルを、入力待ち行列から、割り当てられたスイッチユニットを介して、それらの対応する宛先の出力ポートへと送信することをコントロールする。応答ブロックはまた、スイッチユニット可用性ブロック396に接続されており、このスイッチユニット可用性ブロック396は、すべてのスイッチユニットの入力リンクおよび出力リンク(図1の160および170)の割り当てステータスを保持する。入力リンクおよび出力リンクの割り当て後、割り当てられた入力リンクおよび出力リンクに関する可用性ステータスは、個々のパケットまたはセルの長さに従って更新される。好ましい実施形態においては、パケットおよびセルのサイズは、ステップ1、2、または3によっては使用されず、スイッチユニット可用性ブロック396によってのみ使用される。
セルおよびパケットのサイズが変動する場合には、図3のスイッチユニット割り当てブロック396は、本発明の第3の実施形態において行われるのと同様に、入力および出力リンクのステータスを、システム内の個々のリンクごとに、それぞれの送信される個々のパケットまたはセルの長さの関数として保持する。第3の実施形態の要求ステップにおいては、対応する入力リンクから出力リンクが利用可能であるスイッチユニットのみが、輪番式の優先順位スキームによるスイッチユニットの選択によって考慮される。それ以外の点では、他のステップはすべて、前述の第1の実施形態と同じである。
あるいは、パケットおよびセルがすべて同じサイズである場合(すなわち、サイズが一定のパケット/セルである)場合には、図3のスイッチユニット可用性ブロック396は必要ない。このような場合には、すべての入力リンクおよび出力リンクは、単に要求ステップ1のはじめに利用可能であるとみなされ、一式の割り当ての決定を作成するのに要する時間は、入力または出力リンク上のサイズが一定のセル/パケットユニットの送信時間とできるだけ近くなるように調整される。
図3に示されているスケジューラは、従来のiSLIPスケジューラとのいくつかの一般的な類似点を有するが、図3に示されているスケジューラとiSLIPスケジューラとの間における相違点のうちのいくつかについて、以降で詳細に説明する。iSLIPスケジューラアルゴリズムにおいては、要求と許可ブロックとの間におけるそれぞれの接続は、(利用可能なスイッチユニットが1つしかないために)特定のスイッチユニットを識別せず、要求が存在するか否かを示すだけである。また、iSLIPスケジューラアルゴリズムにおいては、許可と受け入れブロックとの間におけるそれぞれの接続は、(利用可能なスイッチユニットが1つしかないために)特定のスイッチユニットを識別せず、許可が存在するか否かを示すだけである。さらに、スケジューラの繰り返しごとに許可ブロックごとに作成される許可の数も、図3に示されているスケジューラに関しては、iSLIP法と比較して異なり、これは、iSLIPがスケジューラの繰り返しごとに単一の許可を作成する一方で、図3によるスケジューラがスケジューラの繰り返しごとにパラレルスイッチユニットごとに最大で1つの許可を作成するためである。この違いは、受け入れブロックと応答ブロックとの間における接続に関しても存在する。
図3に示されている第3の実施形態のスケジューラに代わるものとして、第4の実施形態においては、スケジューラは、スイッチユニットの選択を、要求ステップの一環として要求ブロック内で実行するのではなく、許可ステップの一環として許可ブロック内で実行する。第4の実施形態においては、(入力、出力)ポートの組合せごとに規定された輪番式の優先順位のスイッチユニットの要求ポインタは、要求ブロックによってではなく、許可ブロックによって保持され、更新される。第4の実施形態に関しては、スイッチユニットの可用性は、図3に示されているように要求ブロックへと流れるのではなく、許可ブロックへと流れる。
図6は、本発明の第5の実施形態によるスケジューリング方法を示すフローチャートであり、このスケジューリング方法は、スケジューラの割り当て決定期間ごとに複数の繰り返しを使用する。一般に、第5の実施形態による方法は、図2に示されているような第1の実施形態に関連して説明した方法と整合する。しかし図2の方法は、スケジューラの割り当て決定期間、すなわちスケジューラが割り当ての決定を作成する間のタイムスロット期間中に、要求ステップ、許可ステップ、および受け入れステップに対応する単一の繰り返しのみが実行されることを前提としている。図6の方法は、ステップ500においてテストを行って、タイムスロットの終わりに達したかどうか、あるいは終了のしきい値範囲内にあるかどうかを判定する。そうである場合には、ステップ510において、対応するパケットおよび/またはセルが、それらの対応する割り当てられたスイッチユニットを介してそれらの宛先の出力ポートへ送信される。そうでない場合には、ステップ520において、パラレルスイッチユニットの関与した入力リンクおよび出力リンクが隠され、新たな繰り返しが実行される。すなわち、ある要求が入力から出力へのスイッチパスを割り当てられた場合には、その要求は、次の繰り返しにおいては考慮されない。
本発明によるスケジューリング方法の第6の実施形態は、本発明の基本的な技術を、複数の優先順位レベルでの要求を含むように拡張する。第6の実施形態においては、それぞれの入力ユニットは、出力ポートごとに確立されたそれぞれの優先順位レベルごとの別個の入力待ち行列を保持する。つまり、P個の優先順位レベル(Pは整数値)を有するN×Mのスイッチに関しては、それぞれの入力ユニットは、P×M個の待ち行列を保持する。第6の実施形態において利用される優先順位付けの技術は、次のように規定することができる。
ステップ1(要求ステップ):それぞれの出力ポートへの要求は、1つの優先順位レベルを含むように拡張される。入力が、特定の出力ポートのための特定のスイッチユニットを目指す要求を作成すると、その要求の優先順位は、その特定の出力ポートに関連付けられている最も高い優先順位の空ではない入力待ち行列と等しくなるように設定される。
ステップ2(許可ステップ):出力ポートは、特定のスイッチユニットを目指す要求を受信すると、それらの要求の最も高い優先順位レベルを決定し、そしてその決定した優先順位レベルを有する受信した要求の中から1つの要求を許可する。出力ポートは、スイッチユニットごとに優先順位レベルごとに前と同じ輪番式の優先順位スキームを使用する。許可は、入力ポートへ渡される際、選択された優先順位レベルを含む。前と同様に、許可が、対応してステップ3(図2のステップ230)において受け入れられた場合にのみ、インクリメントステップが実行される。このオペレーションは、前と同様に、出力ポートごとにパラレルスイッチユニットのそれぞれに対して実行される。
ステップ3(受け入れステップ):入力ポートは、特定のスイッチユニットを目指す許可を受信すると、それらの許可の最も高い優先順位レベルを決定し、そしてその決定した優先順位レベルを有する受信した許可の中から1つの許可を受け入れる。入力ポートは、スイッチユニットごとに優先順位レベルごとに前と同じ輪番式の優先順位スキームを使用する。このオペレーションは、前と同様に、入力ポートごとにパラレルスイッチユニットのそれぞれに対して実行される。
本発明の第7の実施形態は、出力ポートごとにスイッチユニットごとに1つの輪番式の優先順位による許可メカニズムよりも少ない複数の輪番式の優先順位による許可メカニズムを実装する。すなわち第7の実施形態は、単一の輪番式の優先順位による許可メカニズムを使用して複数のスイッチユニットをカバーすることができるため、出力ポートごとにK個よりも少ない輪番式の優先順位による許可メカニズム(Kは、スイッチユニットの数)を使用する。したがって、出力ポートごとに2個からK個のうちの任意の数の輪番式の優先順位による許可メカニズムを実装することができる。
第7の実施形態においては、所与の出力ポートに関する輪番式の優先順位による要求の選択は、単一のスイッチユニットのみを目指す複数の要求の間で選択を行うこととは対照的に、パラレルスイッチユニットのセットを目指す複数の入力ポートからの要求の間で選択を行う。輪番式の優先順位による要求の選択によってカバーされるセット内のスイッチユニットの数は、実装形態に応じて、2個からパラレルスイッチユニットの数までの範囲内とすることができる。スケジューリングの繰り返しごとに出力ごとに作成できる許可の最大数は、出力ポートごとに実行される輪番式の優先順位による要求の選択の数に等しい。1つの出力ポートに関して実行される複数の輪番式の優先順位による要求の選択は、まったく同じ数のパラレルスイッチユニットをカバーする必要はない。輪番式の優先順位による要求の選択の結果として作成されるそれぞれの許可ごとに、その許可に関連付けられるスイッチユニットは、その選択された要求のスイッチユニットと同じになるように設定される。
本発明の第8の実施形態は、入力ポートごとにスイッチユニットごとに1つの輪番式の優先順位による受け入れメカニズムよりも少ない複数の輪番式の優先順位による受け入れメカニズムを実装する。すなわち第8の実施形態は、単一の輪番式の優先順位による受け入れメカニズムを使用して複数のスイッチユニットをカバーすることができるため、入力ポートごとにK個よりも少ない輪番式の優先順位による受け入れメカニズム(Kは、スイッチユニットの数)を使用する。したがって、入力ポートごとに2個からK個のうちの任意の数の輪番式の優先順位による受け入れメカニズムを実装することができる。
第8の実施形態においては、所与の入力ポートに関する輪番式の優先順位による許可の選択は、単一のスイッチユニットのみを目指す複数の許可の間で選択を行うこととは対照的に、パラレルスイッチユニットのセットを目指す複数の出力ポートからの許可の間で選択を行う。輪番式の優先順位による許可の選択によってカバーされるセット内のスイッチユニットの数は、実装形態に応じて、2個からパラレルスイッチユニットの数までの範囲内とすることができる。スケジューリングの繰り返しごとに入力ごとに作成できる受け入れの最大数は、入力ポートごとに実行される輪番式の優先順位による許可の選択の数に等しい。1つの入力ポートに関して実行される複数の輪番式の優先順位による許可の選択は、まったく同じ数のパラレルスイッチユニットをカバーする必要はない。輪番式の優先順位による許可の選択の結果として作成されるそれぞれの受け入れごとに、その受け入れに関連付けられるスイッチユニットは、その選択された許可のスイッチユニットと同じになるように設定される。
本発明の第9の実施形態は、出力ポートごとにスイッチユニットごとに1つの輪番式の優先順位による許可メカニズムよりも少ない複数(例えばR、このRは整数値)の輪番式の優先順位による許可メカニズムと、入力ポートごとにスイッチユニットごとに1つの輪番式の優先順位による許可メカニズムよりも少ない複数(例えばS、このSは整数値)の輪番式の優先順位による許可メカニズムとを実装する。第9の実施形態においては、特定の実装形態に応じて、SがRに等しくなるように設定することもでき、あるいはそれらが異なる値を有することもできる。
本発明の第10の実施形態は、ほとんどの点で第1の実施形態と同様であるが、輪番式の優先順位スキームの代わりに「ランダムな選択による」優先順位スキームを利用する。第10の実施形態では、ステップ1(要求ステップ)において、それぞれの入力ポートは、出力ポートを目指す要求をパラレルスイッチユニットのうちのどの1つが行うかを、あまねくすべてのパラレルスイッチユニットにわたってランダムに選択する。ステップ2(許可ステップ)においては、スイッチユニットごとのそれぞれの出力ポートは、あまねくすべての受信された要求にわたって1つの要求をランダムに選択する。ステップ3(受け入れステップ)においては、スイッチユニットごとのそれぞれの入力ポートは、あまねくすべての受信された許可にわたって1つの許可をランダムに選択する。この「ランダムな選択による」スキームは、本発明の他の実施形態に関連して説明した「輪番式の優先順位」スキームに代わるものとして、それらの他の実施形態と共に利用することもできる。
このように、本発明の様々な実施形態に従って装置および方法について説明した。本発明の趣旨および範囲から逸脱することなく、本明細書で説明され例示されている技術および構造に対して多くの修正形態および変形形態を作成することができる。したがって、本明細書に記載の方法および装置は、例示的なものにすぎず、本発明の範囲を限定するものではないということを理解されたい。本発明の実施形態のいずれによるスケジューリングの方法およびシステムも、2004年7月26日に出願された米国特許出願第10/898,540号(参照によって、その全体を本明細書に組み込む)に記載されているようなネットワーク相互接続クロスポイントアーキテクチャーおよび方法において利用することができる。
Claims (60)
- 少なくとも1つの入力待ち行列をそれぞれが有する複数の入力ポートと、複数のスイッチユニットと、複数の出力ポートとを含むスイッチを使用してデータをスケジュールする方法であって、
a)送信されるべきデータを格納している少なくとも1つの待ち行列を有するそれぞれの入力ポートによって、前記入力ポート内のデータの送信先となる前記出力ポートのそれぞれへデータを出力したいという要求を待ち行列ごとに作成するステップであって、前記要求が、対応する入力ポートから対応する出力ポートへデータを転送する際に使用するための前記複数のスイッチユニットのうちの1つを識別し、前記複数のスイッチユニットのうちの前記識別される1つが、第1の優先順位スキームに従って識別されるステップと、
b)ステップa)で識別されたスイッチユニットごとに、出力ポートごとに、アクセスを許可するステップであって、前記許可が、第2の優先順位スキームに基づくステップと、
c)ステップa)で識別されたスイッチユニットごとに、入力ポートごとに、許可を受け入れるステップであって、前記受け入れが、第3の優先順位スキームに基づくステップと、
d)ステップa)で識別された対応するスイッチユニットを利用して、前記受け入れた許可に基づいて、前記それぞれの入力ポートから前記それぞれの出力ポートへデータを出力するステップとを含む方法。 - 前記スイッチユニットのそれぞれが、N個の入力ポートおよびM個の出力ポートを有し、NおよびMが正の整数であり、前記スイッチユニットのそれぞれが、パケットまたはセルを前記N個の入力ポートのうちの任意の1つから前記M個の出力ポートのうちの任意の1つへスイッチすることができる請求項1に記載の方法。
- 前記スイッチユニットが、お互いに対して並列の関係で配置される請求項1に記載の方法。
- 前記第1、第2、および第3の優先順位スキームが、同じタイプの優先順位スキームである請求項1に記載の方法。
- 前記入力ポートどうしの間で選択を行うことによって、スイッチユニットごとに、出力ポートごとに1つの許可優先順位スキームが実施される請求項1に記載の方法。
- 前記出力ポートどうしの間で選択を行うことによって、スイッチユニットごとに、入力ポートごとに1つの受け入れ優先順位スキームが実施される請求項1に記載の方法。
- 前記スイッチユニットどうしの間で選択を行うことによって、出力ポートごとに、入力ポートごとに1つの要求優先順位スキームが実施される請求項1に記載の方法。
- 前記第1、第2、および第3の優先順位スキームのうちの少なくとも1つが、ラウンドロビン式の輪番式の優先順位スキームである請求項1に記載の方法。
- 転送される前記データが、サイズが変動するパケットである請求項1に記載の方法。
- 前記受け入れステップc)において前記それぞれの許可が受け入れられた後に、受け入れられた前記それぞれの許可において利用された前記スイッチユニットに、前記出力ステップd)において利用されなかった前記スイッチユニットより低い優先順位の値を割り当て、前記要求ステップa)に戻ることによって、前記方法が繰り返される請求項1に記載の方法。
- タイムスロットの終わりに達したときに、前記出力ステップd)が開始される請求項10に記載の方法。
- サイズが変動するパケットが、前記スイッチユニットのうちの1つを使用して前記入力ポートのうちの1つから前記出力ポートのうちの1つへスイッチされている間に、前記スイッチユニットのうちの前記1つに、受け入れ可能な最も低い優先順位の値よりも低い優先順位の値が割り当てられ、それによって、前記サイズが変動するパケットが前記出力ポートのうちの前記1つへ転送されるのが完了するまで、前記入力ポートのうちの前記1つからパケットまたはセルを転送することを求める次の要求において、前記スイッチユニットのうちの前記1つが利用できなくなる請求項9に記載の方法。
- 前記スイッチユニットのうちの前記1つが、前記サイズが変動するパケットを前記入力ポートのうちの前記1つから前記出力ポートのうちの前記1つへ転送している間に、前記入力ポートのうちの他の任意の入力ポートが、パケットまたはセルを転送するために前記スイッチユニットのうちの前記1つを利用することができる請求項12に記載の方法。
- 前記複数の入力ポートがN個に相当し、前記複数の出力ポートがM個に相当し、NがMに等しい請求項2に記載の方法。
- 前記複数の入力ポートがN個に相当し、前記複数の出力ポートがM個に相当し、NがMよりも大きい請求項2に記載の方法。
- 前記複数の入力ポートがN個に相当し、前記複数の出力ポートがM個に相当し、NがMよりも小さい請求項2に記載の方法。
- データをスケジュールするためのシステムであって、
少なくとも1つの入力待ち行列をそれぞれが有する複数の入力ポートと、
前記複数の入力ポートへ通信可能に接続されている複数のスイッチユニットと、
前記複数のスイッチユニットへ通信可能に接続されている複数の出力ポートと、
a)前記入力ポートのうちの少なくとも1つによって作成された要求を受信するステップであって、前記要求が、前記入力ポートの入力待ち行列内に格納されているデータを、前記入力ポート内のデータの送信先となる前記出力ポートのそれぞれへ出力するために、待ち行列ごとに作成され、前記要求が、対応する入力ポートから対応する出力ポートへデータを転送する際に前記複数のスイッチユニットのうちのどれが使用されるかを識別することを含み、前記複数のスイッチユニットのうちの前記識別されるスイッチユニットが、第1の優先順位スキームに従って識別されるステップと、
b)識別されたスイッチユニットごとに、出力ポートごとに、前記作成された要求へのアクセスを許可するステップであって、前記許可が、第2の優先順位スキームに基づくステップと、
c)識別されたスイッチユニットごとに、入力ポートごとに、許可を受け入れるステップであって、前記受け入れが、第3の優先順位スキームに基づくステップと、
d)前記受け入れた許可において識別された対応するスイッチユニットを利用することによって、前記受け入れた許可に基づいて、前記対応する入力ポートの対応する入力待ち行列から前記対応する出力ポートへ前記データを出力するように前記対応する入力ポートに指示するステップとを行うように構成されているスケジューラとを含むスイッチを含むシステム。 - 前記スイッチユニットのそれぞれが、クロスバー構造を有する請求項17に記載のシステム。
- 前記スイッチユニットが、お互いに対して並列の関係で配置される請求項17に記載のシステム。
- 前記第1、第2、および第3の優先順位スキームが、同じタイプの優先順位スキームである請求項17に記載のシステム。
- 前記入力ポートどうしの間で選択を行うことによって、スイッチユニットごとに、出力ポートごとに1つの許可優先順位スキームが実施される請求項17に記載のシステム。
- 前記出力ポートどうしの間で選択を行うことによって、スイッチユニットごとに、入力ポートごとに1つの受け入れ優先順位スキームが実施される請求項17に記載のシステム。
- 前記スイッチユニットどうしの間で選択を行うことによって、出力ポートごとに、入力ポートごとに1つの要求優先順位スキームが実施される請求項17に記載のシステム。
- 前記第1、第2、および第3の優先順位スキームのうちの少なくとも1つが、ラウンドロビン式の輪番式の優先順位スキームである請求項27に記載のシステム。
- 転送される前記データが、サイズが変動するパケットである請求項17に記載のシステム。
- サイズが変動するパケットが、前記スイッチユニットのうちの1つを使用して前記入力ポートのうちの1つから前記出力ポートのうちの1つへスイッチされている間に、前記スイッチユニットのうちの前記1つに、受け入れ可能な最も低い優先順位の値よりも低い優先順位の値が割り当てられ、それによって、前記サイズが変動するパケットが前記出力ポートのうちの前記1つへ転送されるのが完了するまで、前記入力ポートのうちの前記1つからパケットまたはセルを転送することを求める次の要求において、前記スイッチユニットのうちの前記1つが利用できなくなる請求項17に記載のシステム。
- 前記スイッチユニットのうちの前記1つが、前記サイズが変動するパケットを前記入力ポートのうちの前記1つから前記出力ポートのうちの前記1つへ転送している間に、前記入力ポートのうちの他の任意の入力ポートが、パケットまたはセルを転送するために前記スイッチユニットのうちの前記1つを利用することができる請求項26に記載のシステム。
- 前記複数の入力ポートがN個に相当し、前記複数の出力ポートがM個に相当し、NがMに等しい請求項17に記載のシステム。
- 前記複数の入力ポートがN個に相当し、前記複数の出力ポートがM個に相当し、NがMよりも大きい請求項17に記載のシステム。
- 前記複数の入力ポートがN個に相当し、前記複数の出力ポートがM個に相当し、NがMよりも小さい請求項17に記載のシステム。
- 少なくとも1つの入力待ち行列をそれぞれが有する複数の入力ポートと、複数のスイッチユニットと、複数の出力ポートとを含むスイッチを使用してデータをスケジュールする方法であって、
a)自分の少なくとも1つの待ち行列内にデータを有するそれぞれの入力ポートによって、データの送信先となる前記出力ポートのそれぞれへデータを出力したいという要求を作成するステップであって、前記要求が、対応する入力ポートから対応する出力ポートへデータを転送する際に使用される前記複数のスイッチユニットのうちの1つを識別し、前記複数のスイッチユニットのうちの前記識別される1つが、第1の優先順位スキームに従って識別されるステップと、
b)ステップa)で作成された前記要求に基づいて、ステップa)で識別された前記スイッチユニットの少なくとも1つごとに、出力ポートごとに、アクセスを許可するステップであって、前記許可が、第2の優先順位スキームに基づくステップと、
c)ステップa)で識別された前記スイッチユニットの少なくとも1つごとに、入力ポートごとに、許可を受け入れるステップであって、前記受け入れが、第3の優先順位スキームに基づくステップと、
d)前記ステップa)で識別された対応するスイッチユニットを利用して、前記受け入れた許可に基づいて、前記それぞれの入力ポートから前記それぞれの出力ポートへデータを出力するステップとを含む方法。 - 前記スイッチユニットのそれぞれが、N個の入力ポートおよびM個の出力ポートを有し、NおよびMが正の整数であり、前記スイッチユニットのそれぞれが、パケットまたはセルを前記N個の入力ポートのうちの任意の1つから前記M個の出力ポートのうちの任意の1つへスイッチすることができる請求項31に記載の方法。
- 前記スイッチユニットが、お互いに対して並列の関係で配置される請求項31に記載の方法。
- 前記第1、第2、および第3の優先順位スキームが、同じタイプの優先順位スキームである請求項31に記載の方法。
- 前記入力ポートどうしの間で選択を行うことによって、スイッチユニットごとに、出力ポートごとに1つの許可優先順位スキームが実施される請求項31に記載の方法。
- 前記出力ポートどうしの間で選択を行うことによって、スイッチユニットごとに、入力ポートごとに1つの受け入れ優先順位スキームが実施される請求項31に記載の方法。
- 前記スイッチユニットどうしの間で選択を行うことによって、出力ポートごとに、入力ポートごとに1つの要求優先順位スキームが実施される請求項31に記載の方法。
- 前記第1、第2、および第3の優先順位スキームのうちの少なくとも1つが、ラウンドロビン式の輪番式の優先順位スキームである請求項31に記載の方法。
- 転送される前記データが、サイズが変動するパケットである請求項31に記載の方法。
- 前記受け入れステップc)において前記それぞれの許可が受け入れられた後に、受け入れられた前記それぞれの許可において利用された前記スイッチユニットに、前記出力ステップd)において利用されなかった前記スイッチユニットより低い優先順位の値を割り当て、前記要求ステップa)に戻ることによって、前記方法が繰り返される請求項31に記載の方法。
- タイムスロットの終わりに達したときに、前記出力ステップd)が開始される請求項40に記載の方法。
- サイズが変動するパケットが、前記スイッチユニットのうちの1つを使用して前記入力ポートのうちの1つから前記出力ポートのうちの1つへスイッチされている間に、前記スイッチユニットのうちの前記1つに、受け入れ可能な最も低い優先順位の値よりも低い優先順位の値が割り当てられ、それによって、前記サイズが変動するパケットが前記出力ポートのうちの前記1つへ転送されるのが完了するまで、前記入力ポートのうちの前記1つからパケットまたはセルを転送することを求める次の要求において、前記スイッチユニットのうちの前記1つが利用できなくなる請求項39に記載の方法。
- 前記スイッチユニットのうちの前記1つが、前記サイズが変動するパケットを前記入力ポートのうちの前記1つから前記出力ポートのうちの前記1つへ転送している間に、前記入力ポートのうちの他の任意の入力ポートが、パケットまたはセルを転送するために前記スイッチユニットのうちの前記1つを利用することができる請求項42に記載の方法。
- 前記複数の入力ポートがN個に相当し、前記複数の出力ポートがM個に相当し、NがMに等しい請求項32に記載の方法。
- 前記複数の入力ポートがN個に相当し、前記複数の出力ポートがM個に相当し、NがMよりも大きい請求項32に記載の方法。
- 前記複数の入力ポートがN個に相当し、前記複数の出力ポートがM個に相当し、NがMよりも小さい請求項32に記載の方法。
- データをスケジュールするためのシステムであって、
少なくとも1つの入力待ち行列をそれぞれが有する複数の入力ポートと、
前記複数の入力ポートへ通信可能に接続されている複数のスイッチユニットと、
前記複数のスイッチユニットへ通信可能に接続されている複数の出力ポートと、
a)前記入力ポートのうちの少なくとも1つによって作成された要求を受信するステップであって、前記要求が、前記入力ポートの入力待ち行列内に格納されているデータを、前記入力ポート内のデータの送信先となる前記出力ポートのそれぞれへ出力するために、待ち行列ごとに作成され、前記要求が、対応する入力ポートから対応する出力ポートへデータを転送する際に前記複数のスイッチユニットのうちのどれが使用されるかを識別することを含み、前記複数のスイッチユニットのうちの前記識別されるスイッチユニットが、第1の優先順位スキームに従って識別されるステップと、
b)識別された前記スイッチユニットの少なくとも1つごとに、出力ポートごとに、ステップa)で作成された前記要求へのアクセスを許可するステップであって、前記許可が、第2の優先順位スキームに基づくステップと、
c)識別された前記スイッチユニットの少なくとも1つごとに、入力ポートごとに、許可を受け入れるステップであって、前記受け入れが、第3の優先順位スキームに基づくステップと、
d)前記受け入れた許可において識別された対応するスイッチユニットを利用して、前記受け入れた許可に基づいて、前記それぞれの入力ポートから前記それぞれの出力ポートへデータを出力するステップとを行うように構成されているスケジューラとを含むスイッチを含むシステム。 - 前記スイッチユニットのそれぞれが、クロスバー構造を有する請求項47に記載のシステム。
- 前記スイッチユニットが、お互いに対して並列の関係で配置される請求項47に記載のシステム。
- 前記第1、第2、および第3の優先順位スキームが、同じタイプの優先順位スキームである請求項47に記載のシステム。
- 前記入力ポートどうしの間で選択を行うことによって、スイッチユニットごとに、出力ポートごとに1つの許可優先順位スキームが実施される請求項47に記載のシステム。
- 前記出力ポートどうしの間で選択を行うことによって、スイッチユニットごとに、入力ポートごとに1つの受け入れ優先順位スキームが実施される請求項47に記載のシステム。
- 前記スイッチユニットどうしの間で選択を行うことによって、出力ポートごとに、入力ポートごとに1つの要求優先順位スキームが実施される請求項47に記載のシステム。
- 前記第1、第2、および第3の優先順位スキームのうちの少なくとも1つが、ラウンドロビン式の輪番式の優先順位スキームである請求項47に記載のシステム。
- 転送される前記データが、サイズが変動するパケットである請求項47に記載のシステム。
- サイズが変動するパケットが、前記スイッチユニットのうちの1つを使用して前記入力ポートのうちの1つから前記出力ポートのうちの1つへスイッチされている間に、前記スイッチユニットのうちの前記1つに、受け入れ可能な最も低い優先順位の値よりも低い優先順位の値が割り当てられ、それによって、前記サイズが変動するパケットが前記出力ポートのうちの前記1つへ転送されるのが完了するまで、前記入力ポートのうちの前記1つからパケットまたはセルを転送することを求める次の要求において、前記スイッチユニットのうちの前記1つが利用できなくなる請求項47に記載のシステム。
- 前記スイッチユニットのうちの前記1つが、前記サイズが変動するパケットを前記入力ポートのうちの前記1つから前記出力ポートのうちの前記1つへ転送している間に、前記入力ポートのうちの他の任意の入力ポートが、パケットまたはセルを転送するために前記スイッチユニットのうちの前記1つを利用することができる請求項56に記載のシステム。
- 前記複数の入力ポートがN個に相当し、前記複数の出力ポートがM個に相当し、NがMに等しい請求項47に記載のシステム。
- 前記複数の入力ポートがN個に相当し、前記複数の出力ポートがM個に相当し、NがMよりも大きい請求項47に記載のシステム。
- 前記複数の入力ポートがN個に相当し、前記複数の出力ポートがM個に相当し、NがMよりも小さい請求項47に記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/029,624 US7408947B2 (en) | 2005-01-06 | 2005-01-06 | Method and apparatus for scheduling packets and/or cells |
PCT/US2006/000206 WO2006074240A1 (en) | 2005-01-06 | 2006-01-05 | Method and apparatus for scheduling packets and/or cells |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008527853A true JP2008527853A (ja) | 2008-07-24 |
Family
ID=36295557
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007550438A Withdrawn JP2008527853A (ja) | 2005-01-06 | 2006-01-05 | パケットおよび/またはセルをスケジュールするための方法および装置 |
Country Status (5)
Country | Link |
---|---|
US (3) | US7408947B2 (ja) |
EP (1) | EP1836814A1 (ja) |
JP (1) | JP2008527853A (ja) |
CN (1) | CN101099355A (ja) |
WO (1) | WO2006074240A1 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070133585A1 (en) * | 2005-12-08 | 2007-06-14 | International Business Machines Corporation | Method and device for scheduling interconnections in an interconnecting fabric |
JP2007259073A (ja) * | 2006-03-23 | 2007-10-04 | Nec Corp | パケットスイッチにおけるスケジューリング装置 |
WO2009018481A1 (en) | 2007-07-31 | 2009-02-05 | Viasat, Inc. | Multi-level key manager |
US7961630B2 (en) * | 2007-09-27 | 2011-06-14 | Agilent Technologies, Inc. | Methods and apparatus for stimulating packet-based systems |
US9100313B1 (en) * | 2012-12-10 | 2015-08-04 | Cisco Technology, Inc. | Shared egress buffer in a multi-stage switch |
CN105847181B (zh) * | 2016-03-10 | 2019-04-30 | 浙江大学 | 一种应用于输入队列交换机分布式调度算法的预测方法 |
US9965211B2 (en) | 2016-09-08 | 2018-05-08 | Cisco Technology, Inc. | Dynamic packet buffers with consolidation of low utilized memory banks |
CN106997325A (zh) * | 2017-04-10 | 2017-08-01 | 广东浪潮大数据研究有限公司 | 一种可配置的多输入端调度系统及实现方法 |
CN108173787B (zh) * | 2017-11-30 | 2020-12-18 | 成都成电光信科技股份有限公司 | Fc交换机的数据传递路径选择方法、并行调度方法及装置 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US52235A (en) * | 1866-01-23 | whitlock | ||
US681324A (en) * | 1901-05-23 | 1901-08-27 | Hubbell Mfg Co | Detergent composition. |
US5267235A (en) | 1992-05-21 | 1993-11-30 | Digital Equipment Corporation | Method and apparatus for resource arbitration |
US5500858A (en) * | 1994-12-20 | 1996-03-19 | The Regents Of The University Of California | Method and apparatus for scheduling cells in an input-queued switch |
US6212182B1 (en) * | 1996-06-27 | 2001-04-03 | Cisco Technology, Inc. | Combined unicast and multicast scheduling |
GB9828144D0 (en) * | 1998-12-22 | 1999-02-17 | Power X Limited | Data switching apparatus |
US6993018B1 (en) * | 1999-08-03 | 2006-01-31 | Telefonaktiebolaget Lm Ericsson (Publ) | Priority signaling for cell switching |
KR100363890B1 (ko) * | 1999-10-14 | 2002-12-11 | 주식회사 케이티 | 입출력 버퍼형 스위치의 다중 선택형 2차원 라운드로빈 스케줄링 방법 |
CA2292828A1 (en) * | 1999-12-22 | 2001-06-22 | Nortel Networks Corporation | Method and apparatus for traffic flow control in data switches |
US6721372B1 (en) * | 2000-03-17 | 2004-04-13 | Lucent Technologies Inc. | Intelligent software controlled correction of frequency tracking for a local oscillator of a receiver of a wireless device |
US6813274B1 (en) * | 2000-03-21 | 2004-11-02 | Cisco Technology, Inc. | Network switch and method for data switching using a crossbar switch fabric with output port groups operating concurrently and independently |
US7016365B1 (en) * | 2000-03-31 | 2006-03-21 | Intel Corporation | Switching fabric including a plurality of crossbar sections |
US7161906B2 (en) * | 2000-12-15 | 2007-01-09 | Agere Systems Inc. | Three-stage switch fabric with input device features |
US7023840B2 (en) * | 2001-02-17 | 2006-04-04 | Alcatel | Multiserver scheduling system and method for a fast switching element |
US7203170B2 (en) * | 2001-05-01 | 2007-04-10 | Integrated Device Technology, Inc. | Network switch port with weighted random early discard |
EP1421750B1 (en) * | 2001-08-30 | 2007-01-17 | Tellabs Operations, Inc. | System and method for communicating data using a common switch fabric |
US7035273B1 (en) * | 2002-02-06 | 2006-04-25 | Marvell International Ltd. | Quality of service queueing system for a network switch |
US7209440B1 (en) * | 2002-05-07 | 2007-04-24 | Marvell International Ltd. | Method and apparatus for preventing blocking in a quality of service switch |
US7110415B1 (en) * | 2002-05-17 | 2006-09-19 | Marvell International Ltd. | Apparatus and method for dynamically limiting output queue size in a quality of service network |
-
2005
- 2005-01-06 US US11/029,624 patent/US7408947B2/en active Active
-
2006
- 2006-01-05 WO PCT/US2006/000206 patent/WO2006074240A1/en active Application Filing
- 2006-01-05 CN CNA2006800018206A patent/CN101099355A/zh active Pending
- 2006-01-05 JP JP2007550438A patent/JP2008527853A/ja not_active Withdrawn
- 2006-01-05 EP EP06717414A patent/EP1836814A1/en not_active Withdrawn
-
2008
- 2008-07-24 US US12/178,839 patent/US7738472B2/en active Active
-
2010
- 2010-05-20 US US12/784,370 patent/US7830903B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US7408947B2 (en) | 2008-08-05 |
US20100232449A1 (en) | 2010-09-16 |
US20090059942A1 (en) | 2009-03-05 |
US20060146706A1 (en) | 2006-07-06 |
WO2006074240A1 (en) | 2006-07-13 |
CN101099355A (zh) | 2008-01-02 |
EP1836814A1 (en) | 2007-09-26 |
US7830903B2 (en) | 2010-11-09 |
US7738472B2 (en) | 2010-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5500858A (en) | Method and apparatus for scheduling cells in an input-queued switch | |
US6813274B1 (en) | Network switch and method for data switching using a crossbar switch fabric with output port groups operating concurrently and independently | |
JP2008527853A (ja) | パケットおよび/またはセルをスケジュールするための方法および装置 | |
CA2328988C (en) | Method and apparatus for supplying requests to a scheduler in an input-buffered multiport switch | |
US5923644A (en) | Apparatus and method for processing multicast cells in an input-queued multicast switch | |
JP4381490B2 (ja) | マルチキャスト・パケット・アクセス調停方法 | |
AU746166B2 (en) | Fair and efficient cell scheduling in input-buffered multipoint switch | |
US6661788B2 (en) | Multicast scheduling for a network device | |
EP1193922B1 (en) | Pipelined scheduling method and scheduler | |
US7525978B1 (en) | Method and apparatus for scheduling in a packet buffering network | |
JP3936044B2 (ja) | アクセス調停方法 | |
EP1052804A2 (en) | Multicast and unicast scheduling for a network device | |
EP1052816A2 (en) | Backpressure mechanism for a network device | |
WO2003017594A1 (en) | Method and apparatus for weighted arbitration scheduling separately at the input ports and the output ports of a switch fabric | |
EP1052814A2 (en) | Multicast scheduling for a network device | |
CA2399186C (en) | Data transfer apparatus and data transfer method | |
EP1284070B1 (en) | Method and arbitration unit for digital switch | |
JP4568364B2 (ja) | 相互接続ファブリックにおいてユニキャスト・トラフィック及びマルチキャスト・トラフィックをスケジューリングする方法、装置、及びコンピュータ・プログラム(相互接続ファブリックにおいてユニキャスト・トラフィック及びマルチキャスト・トラフィックをスケジューリングする方法及び装置) | |
US7486687B2 (en) | Method and allocation device for allocating pending requests for data packet transmission at a number of inputs to a number of outputs of a packet switching device in successive time slots | |
US20030043813A1 (en) | Distribution of weightings between port control system and switch cards of a packet switching device | |
Gamvrili et al. | Multicast schedulers for ATM switches with multiple input queues | |
KR100416507B1 (ko) | 입력버퍼형 스위치의 공정한 스케줄링 방법 | |
Jeong et al. | Three-dimensional round-robin scheduler for advanced input queuing switches |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20090407 |