(57)【要約】  少なくとも１つの入力待ち行列をそれぞれが有する複数の入力ポートと、複数のスイッチユニットと、複数の出力ポートとを含むスイッチデバイスのためにパケットまたはセルをスケジュールするシステムおよび方法。自分の少なくとも１つの待ち行列内にパケットまたはセルを有するそれぞれの入力ポートによって、対応するパケットまたはセルの送信先となる出力ポートのそれぞれへその対応するパケットまたはセルを出力したいという要求が作成され、その要求は、対応する入力ポートから対応する出力ポートへパケットまたはセルを転送する際に使用される複数のスイッチユニットのうちの特定の１つを識別し、複数のスイッチユニットのうちのその特定の１つは、第１の優先順位スキームに従って選択される。スイッチユニットごとに、出力ポートごとに、作成された要求へのアクセスが許可され、その許可は、第２の優先順位スキームに基づく。スイッチユニットごとに、入力ポートごとに、許可が受け入れられ、その受け入れは、第３の優先順位スキームに基づく。受け入れた許可において識別された対応するスイッチユニットを利用して、それらの受け入れた許可に基づいて、それぞれの入力ポートからそれぞれの出力ポートへパケットおよび／またはセルが出力される。
2008527853.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つの入力待ち行列をそれぞれが有する複数の入力ポートと、複数のスイッチユニットと、複数の出力ポートとを含むスイッチを使用してデータをスケジュールする方法であって、
ａ）送信されるべきデータを格納している少なくとも１つの待ち行列を有するそれぞれの入力ポートによって、前記入力ポート内のデータの送信先となる前記出力ポートのそれぞれへデータを出力したいという要求を待ち行列ごとに作成するステップであって、前記要求が、対応する入力ポートから対応する出力ポートへデータを転送する際に使用するための前記複数のスイッチユニットのうちの１つを識別し、前記複数のスイッチユニットのうちの前記識別される１つが、第１の優先順位スキームに従って識別されるステップと、
ｂ）ステップａ）で識別されたスイッチユニットごとに、出力ポートごとに、アクセスを許可するステップであって、前記許可が、第２の優先順位スキームに基づくステップと、
ｃ）ステップａ）で識別されたスイッチユニットごとに、入力ポートごとに、許可を受け入れるステップであって、前記受け入れが、第３の優先順位スキームに基づくステップと、
ｄ）ステップａ）で識別された対応するスイッチユニットを利用して、前記受け入れた許可に基づいて、前記それぞれの入力ポートから前記それぞれの出力ポートへデータを出力するステップとを含む方法。
【請求項２】
前記スイッチユニットのそれぞれが、Ｎ個の入力ポートおよびＭ個の出力ポートを有し、ＮおよびＭが正の整数であり、前記スイッチユニットのそれぞれが、パケットまたはセルを前記Ｎ個の入力ポートのうちの任意の１つから前記Ｍ個の出力ポートのうちの任意の１つへスイッチすることができる請求項１に記載の方法。
【請求項３】
前記スイッチユニットが、お互いに対して並列の関係で配置される請求項１に記載の方法。
【請求項４】
前記第１、第２、および第３の優先順位スキームが、同じタイプの優先順位スキームである請求項１に記載の方法。
【請求項５】
前記入力ポートどうしの間で選択を行うことによって、スイッチユニットごとに、出力ポートごとに１つの許可優先順位スキームが実施される請求項１に記載の方法。
【請求項６】
前記出力ポートどうしの間で選択を行うことによって、スイッチユニットごとに、入力ポートごとに１つの受け入れ優先順位スキームが実施される請求項１に記載の方法。
【請求項７】
前記スイッチユニットどうしの間で選択を行うことによって、出力ポートごとに、入力ポートごとに１つの要求優先順位スキームが実施される請求項１に記載の方法。
【請求項８】
前記第１、第２、および第３の優先順位スキームのうちの少なくとも１つが、ラウンドロビン式の輪番式の優先順位スキームである請求項１に記載の方法。
【請求項９】
転送される前記データが、サイズが変動するパケットである請求項１に記載の方法。
【請求項１０】
前記受け入れステップｃ）において前記それぞれの許可が受け入れられた後に、受け入れられた前記それぞれの許可において利用された前記スイッチユニットに、前記出力ステップｄ）において利用されなかった前記スイッチユニットより低い優先順位の値を割り当て、前記要求ステップａ）に戻ることによって、前記方法が繰り返される請求項１に記載の方法。
【請求項１１】
タイムスロットの終わりに達したときに、前記出力ステップｄ）が開始される請求項１０に記載の方法。
【請求項１２】
サイズが変動するパケットが、前記スイッチユニットのうちの１つを使用して前記入力ポートのうちの１つから前記出力ポートのうちの１つへスイッチされている間に、前記スイッチユニットのうちの前記１つに、受け入れ可能な最も低い優先順位の値よりも低い優先順位の値が割り当てられ、それによって、前記サイズが変動するパケットが前記出力ポートのうちの前記１つへ転送されるのが完了するまで、前記入力ポートのうちの前記１つからパケットまたはセルを転送することを求める次の要求において、前記スイッチユニットのうちの前記１つが利用できなくなる請求項９に記載の方法。
【請求項１３】
前記スイッチユニットのうちの前記１つが、前記サイズが変動するパケットを前記入力ポートのうちの前記１つから前記出力ポートのうちの前記１つへ転送している間に、前記入力ポートのうちの他の任意の入力ポートが、パケットまたはセルを転送するために前記スイッチユニットのうちの前記１つを利用することができる請求項１２に記載の方法。
【請求項１４】
前記複数の入力ポートがＮ個に相当し、前記複数の出力ポートがＭ個に相当し、ＮがＭに等しい請求項２に記載の方法。
【請求項１５】
前記複数の入力ポートがＮ個に相当し、前記複数の出力ポートがＭ個に相当し、ＮがＭよりも大きい請求項２に記載の方法。
【請求項１６】
前記複数の入力ポートがＮ個に相当し、前記複数の出力ポートがＭ個に相当し、ＮがＭよりも小さい請求項２に記載の方法。
【請求項１７】
データをスケジュールするためのシステムであって、
少なくとも１つの入力待ち行列をそれぞれが有する複数の入力ポートと、
前記複数の入力ポートへ通信可能に接続されている複数のスイッチユニットと、
前記複数のスイッチユニットへ通信可能に接続されている複数の出力ポートと、
ａ）前記入力ポートのうちの少なくとも１つによって作成された要求を受信するステップであって、前記要求が、前記入力ポートの入力待ち行列内に格納されているデータを、前記入力ポート内のデータの送信先となる前記出力ポートのそれぞれへ出力するために、待ち行列ごとに作成され、前記要求が、対応する入力ポートから対応する出力ポートへデータを転送する際に前記複数のスイッチユニットのうちのどれが使用されるかを識別することを含み、前記複数のスイッチユニットのうちの前記識別されるスイッチユニットが、第１の優先順位スキームに従って識別されるステップと、
ｂ）識別されたスイッチユニットごとに、出力ポートごとに、前記作成された要求へのアクセスを許可するステップであって、前記許可が、第２の優先順位スキームに基づくステップと、
ｃ）識別されたスイッチユニットごとに、入力ポートごとに、許可を受け入れるステップであって、前記受け入れが、第３の優先順位スキームに基づくステップと、
ｄ）前記受け入れた許可において識別された対応するスイッチユニットを利用することによって、前記受け入れた許可に基づいて、前記対応する入力ポートの対応する入力待ち行列から前記対応する出力ポートへ前記データを出力するように前記対応する入力ポートに指示するステップとを行うように構成されているスケジューラとを含むスイッチを含むシステム。
【請求項１８】
前記スイッチユニットのそれぞれが、クロスバー構造を有する請求項１７に記載のシステム。
【請求項１９】
前記スイッチユニットが、お互いに対して並列の関係で配置される請求項１７に記載のシステム。
【請求項２０】
前記第１、第２、および第３の優先順位スキームが、同じタイプの優先順位スキームである請求項１７に記載のシステム。
【請求項２１】
前記入力ポートどうしの間で選択を行うことによって、スイッチユニットごとに、出力ポートごとに１つの許可優先順位スキームが実施される請求項１７に記載のシステム。
【請求項２２】
前記出力ポートどうしの間で選択を行うことによって、スイッチユニットごとに、入力ポートごとに１つの受け入れ優先順位スキームが実施される請求項１７に記載のシステム。
【請求項２３】
前記スイッチユニットどうしの間で選択を行うことによって、出力ポートごとに、入力ポートごとに１つの要求優先順位スキームが実施される請求項１７に記載のシステム。
【請求項２４】
前記第１、第２、および第３の優先順位スキームのうちの少なくとも１つが、ラウンドロビン式の輪番式の優先順位スキームである請求項２７に記載のシステム。
【請求項２５】
転送される前記データが、サイズが変動するパケットである請求項１７に記載のシステム。
【請求項２６】
サイズが変動するパケットが、前記スイッチユニットのうちの１つを使用して前記入力ポートのうちの１つから前記出力ポートのうちの１つへスイッチされている間に、前記スイッチユニットのうちの前記１つに、受け入れ可能な最も低い優先順位の値よりも低い優先順位の値が割り当てられ、それによって、前記サイズが変動するパケットが前記出力ポートのうちの前記１つへ転送されるのが完了するまで、前記入力ポートのうちの前記１つからパケットまたはセルを転送することを求める次の要求において、前記スイッチユニットのうちの前記１つが利用できなくなる請求項１７に記載のシステム。
【請求項２７】
前記スイッチユニットのうちの前記１つが、前記サイズが変動するパケットを前記入力ポートのうちの前記１つから前記出力ポートのうちの前記１つへ転送している間に、前記入力ポートのうちの他の任意の入力ポートが、パケットまたはセルを転送するために前記スイッチユニットのうちの前記１つを利用することができる請求項２６に記載のシステム。
【請求項２８】
前記複数の入力ポートがＮ個に相当し、前記複数の出力ポートがＭ個に相当し、ＮがＭに等しい請求項１７に記載のシステム。
【請求項２９】
前記複数の入力ポートがＮ個に相当し、前記複数の出力ポートがＭ個に相当し、ＮがＭよりも大きい請求項１７に記載のシステム。
【請求項３０】
前記複数の入力ポートがＮ個に相当し、前記複数の出力ポートがＭ個に相当し、ＮがＭよりも小さい請求項１７に記載のシステム。
【請求項３１】
少なくとも１つの入力待ち行列をそれぞれが有する複数の入力ポートと、複数のスイッチユニットと、複数の出力ポートとを含むスイッチを使用してデータをスケジュールする方法であって、
ａ）自分の少なくとも１つの待ち行列内にデータを有するそれぞれの入力ポートによって、データの送信先となる前記出力ポートのそれぞれへデータを出力したいという要求を作成するステップであって、前記要求が、対応する入力ポートから対応する出力ポートへデータを転送する際に使用される前記複数のスイッチユニットのうちの１つを識別し、前記複数のスイッチユニットのうちの前記識別される１つが、第１の優先順位スキームに従って識別されるステップと、
ｂ）ステップａ）で作成された前記要求に基づいて、ステップａ）で識別された前記スイッチユニットの少なくとも１つごとに、出力ポートごとに、アクセスを許可するステップであって、前記許可が、第２の優先順位スキームに基づくステップと、
ｃ）ステップａ）で識別された前記スイッチユニットの少なくとも１つごとに、入力ポートごとに、許可を受け入れるステップであって、前記受け入れが、第３の優先順位スキームに基づくステップと、
ｄ）前記ステップａ）で識別された対応するスイッチユニットを利用して、前記受け入れた許可に基づいて、前記それぞれの入力ポートから前記それぞれの出力ポートへデータを出力するステップとを含む方法。
【請求項３２】
前記スイッチユニットのそれぞれが、Ｎ個の入力ポートおよびＭ個の出力ポートを有し、ＮおよびＭが正の整数であり、前記スイッチユニットのそれぞれが、パケットまたはセルを前記Ｎ個の入力ポートのうちの任意の１つから前記Ｍ個の出力ポートのうちの任意の１つへスイッチすることができる請求項３１に記載の方法。
【請求項３３】
前記スイッチユニットが、お互いに対して並列の関係で配置される請求項３１に記載の方法。
【請求項３４】
前記第１、第２、および第３の優先順位スキームが、同じタイプの優先順位スキームである請求項３１に記載の方法。
【請求項３５】
前記入力ポートどうしの間で選択を行うことによって、スイッチユニットごとに、出力ポートごとに１つの許可優先順位スキームが実施される請求項３１に記載の方法。
【請求項３６】
前記出力ポートどうしの間で選択を行うことによって、スイッチユニットごとに、入力ポートごとに１つの受け入れ優先順位スキームが実施される請求項３１に記載の方法。
【請求項３７】
前記スイッチユニットどうしの間で選択を行うことによって、出力ポートごとに、入力ポートごとに１つの要求優先順位スキームが実施される請求項３１に記載の方法。
【請求項３８】
前記第１、第２、および第３の優先順位スキームのうちの少なくとも１つが、ラウンドロビン式の輪番式の優先順位スキームである請求項３１に記載の方法。
【請求項３９】
転送される前記データが、サイズが変動するパケットである請求項３１に記載の方法。
【請求項４０】
前記受け入れステップｃ）において前記それぞれの許可が受け入れられた後に、受け入れられた前記それぞれの許可において利用された前記スイッチユニットに、前記出力ステップｄ）において利用されなかった前記スイッチユニットより低い優先順位の値を割り当て、前記要求ステップａ）に戻ることによって、前記方法が繰り返される請求項３１に記載の方法。
【請求項４１】
タイムスロットの終わりに達したときに、前記出力ステップｄ）が開始される請求項４０に記載の方法。
【請求項４２】
サイズが変動するパケットが、前記スイッチユニットのうちの１つを使用して前記入力ポートのうちの１つから前記出力ポートのうちの１つへスイッチされている間に、前記スイッチユニットのうちの前記１つに、受け入れ可能な最も低い優先順位の値よりも低い優先順位の値が割り当てられ、それによって、前記サイズが変動するパケットが前記出力ポートのうちの前記１つへ転送されるのが完了するまで、前記入力ポートのうちの前記１つからパケットまたはセルを転送することを求める次の要求において、前記スイッチユニットのうちの前記１つが利用できなくなる請求項３９に記載の方法。
【請求項４３】
前記スイッチユニットのうちの前記１つが、前記サイズが変動するパケットを前記入力ポートのうちの前記１つから前記出力ポートのうちの前記１つへ転送している間に、前記入力ポートのうちの他の任意の入力ポートが、パケットまたはセルを転送するために前記スイッチユニットのうちの前記１つを利用することができる請求項４２に記載の方法。
【請求項４４】
前記複数の入力ポートがＮ個に相当し、前記複数の出力ポートがＭ個に相当し、ＮがＭに等しい請求項３２に記載の方法。
【請求項４５】
前記複数の入力ポートがＮ個に相当し、前記複数の出力ポートがＭ個に相当し、ＮがＭよりも大きい請求項３２に記載の方法。
【請求項４６】
前記複数の入力ポートがＮ個に相当し、前記複数の出力ポートがＭ個に相当し、ＮがＭよりも小さい請求項３２に記載の方法。
【請求項４７】
データをスケジュールするためのシステムであって、
少なくとも１つの入力待ち行列をそれぞれが有する複数の入力ポートと、
前記複数の入力ポートへ通信可能に接続されている複数のスイッチユニットと、
前記複数のスイッチユニットへ通信可能に接続されている複数の出力ポートと、
ａ）前記入力ポートのうちの少なくとも１つによって作成された要求を受信するステップであって、前記要求が、前記入力ポートの入力待ち行列内に格納されているデータを、前記入力ポート内のデータの送信先となる前記出力ポートのそれぞれへ出力するために、待ち行列ごとに作成され、前記要求が、対応する入力ポートから対応する出力ポートへデータを転送する際に前記複数のスイッチユニットのうちのどれが使用されるかを識別することを含み、前記複数のスイッチユニットのうちの前記識別されるスイッチユニットが、第１の優先順位スキームに従って識別されるステップと、
ｂ）識別された前記スイッチユニットの少なくとも１つごとに、出力ポートごとに、ステップａ）で作成された前記要求へのアクセスを許可するステップであって、前記許可が、第２の優先順位スキームに基づくステップと、
ｃ）識別された前記スイッチユニットの少なくとも１つごとに、入力ポートごとに、許可を受け入れるステップであって、前記受け入れが、第３の優先順位スキームに基づくステップと、
ｄ）前記受け入れた許可において識別された対応するスイッチユニットを利用して、前記受け入れた許可に基づいて、前記それぞれの入力ポートから前記それぞれの出力ポートへデータを出力するステップとを行うように構成されているスケジューラとを含むスイッチを含むシステム。
【請求項４８】
前記スイッチユニットのそれぞれが、クロスバー構造を有する請求項４７に記載のシステム。
【請求項４９】
前記スイッチユニットが、お互いに対して並列の関係で配置される請求項４７に記載のシステム。
【請求項５０】
前記第１、第２、および第３の優先順位スキームが、同じタイプの優先順位スキームである請求項４７に記載のシステム。
【請求項５１】
前記入力ポートどうしの間で選択を行うことによって、スイッチユニットごとに、出力ポートごとに１つの許可優先順位スキームが実施される請求項４７に記載のシステム。
【請求項５２】
前記出力ポートどうしの間で選択を行うことによって、スイッチユニットごとに、入力ポートごとに１つの受け入れ優先順位スキームが実施される請求項４７に記載のシステム。
【請求項５３】
前記スイッチユニットどうしの間で選択を行うことによって、出力ポートごとに、入力ポートごとに１つの要求優先順位スキームが実施される請求項４７に記載のシステム。
【請求項５４】
前記第１、第２、および第３の優先順位スキームのうちの少なくとも１つが、ラウンドロビン式の輪番式の優先順位スキームである請求項４７に記載のシステム。
【請求項５５】
転送される前記データが、サイズが変動するパケットである請求項４７に記載のシステム。
【請求項５６】
サイズが変動するパケットが、前記スイッチユニットのうちの１つを使用して前記入力ポートのうちの１つから前記出力ポートのうちの１つへスイッチされている間に、前記スイッチユニットのうちの前記１つに、受け入れ可能な最も低い優先順位の値よりも低い優先順位の値が割り当てられ、それによって、前記サイズが変動するパケットが前記出力ポートのうちの前記１つへ転送されるのが完了するまで、前記入力ポートのうちの前記１つからパケットまたはセルを転送することを求める次の要求において、前記スイッチユニットのうちの前記１つが利用できなくなる請求項４７に記載のシステム。
【請求項５７】
前記スイッチユニットのうちの前記１つが、前記サイズが変動するパケットを前記入力ポートのうちの前記１つから前記出力ポートのうちの前記１つへ転送している間に、前記入力ポートのうちの他の任意の入力ポートが、パケットまたはセルを転送するために前記スイッチユニットのうちの前記１つを利用することができる請求項５６に記載のシステム。
【請求項５８】
前記複数の入力ポートがＮ個に相当し、前記複数の出力ポートがＭ個に相当し、ＮがＭに等しい請求項４７に記載のシステム。
【請求項５９】
前記複数の入力ポートがＮ個に相当し、前記複数の出力ポートがＭ個に相当し、ＮがＭよりも大きい請求項４７に記載のシステム。
【請求項６０】
前記複数の入力ポートがＮ個に相当し、前記複数の出力ポートがＭ個に相当し、ＮがＭよりも小さい請求項４７に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般には、入力がバッファに格納されるスイッチにおけるパケットおよび／またはセルのスケジューリングに関し、より詳細には、パラレルスイッチングユニットを使用してパケットおよびセルをスイッチする装置および方法に関する。スイッチングパフォーマンスは、パラレルスイッチングユニットを使用したスイッチングシステムにおいて時間あたりにスケジュールされるパケットおよび／またはセルの数を増やすことによって改善される。
【背景技術】
【０００２】
大規模なパケットスイッチおよびルータの設計に関して、単に出力をバッファに格納する戦略は、高いスイッチング効率を提供する一方で、スイッチ規模の増大に合わせて拡張することができないということが、当技術分野でよく知られている。この主な原因は、スイッチコアが、個々のスイッチポートよりも、ポート数倍だけ速く動作するという要件である。このため、大容量のスイッチは、一般に「入力がバッファに格納される」種類のものであり、入力および出力ポートモジュールは、クロスバーなどのスイッチユニットを介して相互接続されている。入力バッファの列の先頭（ｈｅａｄ−ｏｆ−ｌｉｎｅ（ＨＯＬ））でブロックする現象を克服するために、それぞれの入力ポートにおけるバッファは、入力待ち行列のセットへと編成され、それぞれの入力待ち行列は、特定の出力ポートを宛先とするパケットの専用とされる。
【０００３】
一般的な、入力が待ち行列に入れられるスイッチは、Ｎ個の入力ポートおよびＭ個の出力ポートを有し、このＮおよびＭは整数値であり、それぞれの入力ポートは、出力ポートごとに１つの入力待ち行列を使用し、したがって、合計でＮ×Ｍ個の入力待ち行列が存在する。スケジューラは、マッチする入力／出力ペアのセットを識別し、それらの間でパケットまたはセルが、コンフリクトを伴わずにスイッチユニットを介して伝送される。このスイッチのスループット効率は、スケジューリングアルゴリズムの効率に依存する。このため、様々な形式の次善のヒューリスティックスに基づいた様々なスケジューリングアルゴリズムが、現在この業界で採用されている。
【０００４】
入力が待ち行列に入れられるスイッチにおいてトラフィックをスケジュールするための３つの広く知られているヒューリスティックアルゴリズムが、ＰＩＭ（Ｐａｒａｌｌｅｌ  Ｉｔｅｒａｔｉｖｅ  Ｍａｔｃｈｉｎｇ）、ＲＲＭ（Ｒｏｕｎｄ−Ｒｏｂｉｎ  Ｍａｔｃｈｉｎｇ）、およびｉＳＬＩＰである。これらのアルゴリズムのそれぞれは、入力／出力ペアのコンフリクトのないセットを選ぶようにすることによってマッチング効率を最大限に高めようと努め、通常は、マッチング効率を高めるために複数の連続した繰り返しが実行される。
【０００５】
ＰＩＭ法は、要求、許可、および受け入れという３つのステップから構成されている。要求ステップでは、Ｎ×Ｍ個の入力待ち行列が、要求を出力ポートへ送信する。許可ステップでは、それぞれの出力ポートが、受信した要求の中から１つの要求をランダムに許可し、その結果をそれぞれの入力ポートへ通知する。入力ポートは、出力ポートから複数の許可を受信することができるが、ランダムに選択した１つの許可しか受け入れない。したがってＰＩＭ法は、第１の出力裁定段階（許可ステップ）においては、それぞれの出力ポートごとに候補入力をランダムに選択することによって機能する。そして第２の入力裁定段階（受け入れステップ）においては、このシステムは、同様のランダム化戦略を採用することによって、それぞれの入力ごとに選択できる複数の出力の間におけるコンフリクトを解消する。
【０００６】
ＲＲＭ法は、ＰＩＭ法と同様の順序の出力裁定段階および入力裁定段階で同じ目的を達成するが、それぞれの出力ポートおよび入力ポートに実装されているラウンドロビン裁定ポインタを使用して決定論的な方法で行われる点が異なる。
【０００７】
ｉＳＬＩＰ法は、ＲＲＭと同様のやり方で機能するが、ただし出力ラウンドロビンポインタおよび入力ラウンドロビンポインタの移動が、首尾よくマッチすることを条件としており、一方でＲＲＭの場合には、これは無条件である。典型的なｉＳＬＩＰ法は、Ｎｉｃｈｏｌａｓ  ＭｃＫｅｏｗｎに発行された米国特許第５，５００，８５８号に詳しく記載されている。
【０００８】
従来のスイッチデバイスでは、リソースの裁定に対処しなければならない。そのような従来のリソース裁定方法の１つが、Ｃｈａｒｌｅｓ  Ｔｈａｃｋｅｒに発行された米国特許第５，２６７，２３５号に詳しく記載されており、それによれば、リクエスタとサーバとの間における高速の一対一の照合が実行され、これによってそれぞれのサーバは、好ましくはランダムなやり方で、１つの要求を選択する。
【０００９】
別のスケジューリングアルゴリズムが、Ｍａｎ  Ｓｏｏ  Ｈａｎらに発行された米国特許第６，６３３，５６８号に記載されており、それによれば、２次元のラウンドロビンスケジューリングアルゴリズムが記載されており、そこでは、入力がバッファに格納されるスイッチにおいて複数の選択が行われる。
【００１０】
さらに別のスケジューリングアルゴリズムが、Ｈｉｒｏｓｈｉ  Ｓｕｚｕｋｉらに発行された米国特許第６，８１３，２７４号に記載されており、これは、入力ポートごとに１つの受け入れを可能にするだけの従来のスケジューリング方法に伴う問題を、入力ごとに複数の受け入れを可能にすることによって解決しようとしている。
【００１１】
これらの従来のスケジューリングアルゴリズムのそれぞれに関しては、複数の出力ポートが同一の入力ポートに対して許可を作成する際に、同期化の問題が存在する。これらのアルゴリズムは、複数の連続した繰り返しを実行することによってマッチング効率を最大限に高めようと試み、最悪の場合には、Ｎ×ＭのスイッチをカバーするためにこのアルゴリズムをＮ回繰り返さなければならない。さらに、これらの複数の繰り返しは、時間単位あたりのスケジューリングの決定の点でスイッチングパフォーマンスを低下させる。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
本発明は、上述の問題のうちの１つまたは複数による影響を克服すること、あるいは少なくとも軽減することを対象としている。
【課題を解決するための手段】
【００１３】
本発明の少なくとも１つの態様によれば、少なくとも１つの入力待ち行列をそれぞれが有する複数の入力ポートと、複数のスイッチユニットと、複数の出力ポートとを含むスイッチ内でデータをスケジュールする方法が提供される。この方法は、ａ）入力ポートで待っているデータの送信先となる出力ポートのそれぞれへデータを出力したいという要求を入力ポートごとに作成するステップであって、その要求が、対応する入力ポートから対応する出力ポートへデータを転送する際に使用するための複数のスイッチユニットのうちの１つを識別し、複数のスイッチユニットのうちのその識別される１つが、第１の優先順位スキームに従って識別されるステップを含む。この方法はまた、ｂ）識別されたスイッチユニットごとに、出力ポートごとに、ステップａ）で作成された要求へのアクセスを許可するステップであって、その許可が、第２の優先順位スキームに基づくステップを含む。この方法は、ｃ）スイッチユニットごとに、入力ポートごとに、許可を受け入れるステップであって、その受け入れが、第３の優先順位スキームに基づくステップをさらに含む。この方法はまた、ｄ）受け入れた許可において識別された対応するスイッチユニットを利用して、それらの受け入れた許可に基づいて、それぞれの入力ポートからそれぞれの出力ポートへデータを出力するステップをさらに含む。
【００１４】
本発明の別の態様によれば、データをスケジュールするためのシステムが提供される。このシステムは、少なくとも１つの入力待ち行列をそれぞれが有する複数の入力ポートを含むスイッチを含む。このスイッチはまた、それらの複数の入力ポートへ通信可能に接続されている複数のスイッチユニットを含む。このスイッチは、それらの複数のスイッチユニットへ通信可能に接続されている複数の出力ポートをさらに含む。このスイッチはまた、ａ）入力ポートのうちのそれぞれの入力待ち行列内に格納されているデータをデータの送信先となる出力ポートのそれぞれへ出力したいという要求を入力ごとに作成するステップであって、その要求が、対応する入力ポートから対応する出力ポートへデータを転送する際に複数のスイッチユニットのうちのどれが使用されるかを識別することを含み、複数のスイッチユニットのうちのその識別される１つが、第１の優先順位スキームに従って識別されるステップと、ｂ）識別されたスイッチユニットごとに、出力ポートごとに、作成された要求へのアクセスを許可するステップであって、その許可が、第２の優先順位スキームに基づくステップと、ｃ）スイッチユニットごとに、入力ポートごとに、許可を受け入れるステップであって、その受け入れが、第３の優先順位スキームに基づくステップと、ｄ）受け入れた許可において識別された対応するスイッチユニットを利用することによって、その受け入れた許可に基づいて、入力ポートのうちの対応する１つの対応する入力待ち行列から出力ポートのうちの対応する１つへデータを出力するようにその対応する入力ポートに指示するステップとを行うように構成されているスケジューラを含む。
【００１５】
本発明のさらに別の態様によれば、少なくとも１つの入力待ち行列をそれぞれが有する複数の入力ポートと、複数のスイッチユニットと、複数の出力ポートとを含むスイッチのためにパケットまたはセルをスケジュールする方法が提供される。この方法は、ａ）入力ポートで待っているデータの送信先となる出力ポートのそれぞれへデータを出力したいという要求を入力ポートごとに作成するステップであって、その要求が、対応する入力ポートから対応する出力ポートへパケットまたはセルを転送する際に使用するための複数のスイッチユニットのうちの１つを識別することを含み、複数のスイッチユニットのうちのその識別される１つが、第１の優先順位スキームに従って識別されるステップを含む。この方法はまた、ｂ）前記スイッチユニットの少なくとも１つごとに、出力ポートごとに、ステップａ）で作成された要求へのアクセスを許可するステップであって、その許可が、第２の優先順位スキームに基づくステップを含む。この方法は、ｃ）前記スイッチユニットの少なくとも１つごとに、入力ポートごとに、許可を受け入れるステップであって、その受け入れが、第３の優先順位スキームに基づくステップをさらに含む。この方法はまた、ｄ）受け入れた許可において識別された対応するスイッチユニットを利用して、それらの受け入れた許可に基づいて、それぞれの入力ポートからそれぞれの出力ポートへパケットおよび／またはセルを出力するステップをさらに含む。
【００１６】
本発明の別の態様によれば、パケットまたはセルをスケジュールするためのシステムが提供される。このシステムは、少なくとも１つの入力待ち行列をそれぞれが有する複数の入力ポートを含むスイッチを含む。このスイッチはまた、それらの複数の入力ポートへ通信可能に接続されている複数のスイッチユニットを含む。このスイッチは、それらの複数のスイッチユニットへ通信可能に接続されている複数の出力ポートをさらに含む。このスイッチシステムはまた、ａ）入力ユニットのうちの少なくとも１つによって作成された要求を受信するステップであって、その要求が、入力ポートの入力待ち行列内に格納されているデータを、データの送信先となる出力ポートのそれぞれへ出力するために作成されており、その要求が、対応する入力ポートから対応する出力ポートへパケットまたはセルを転送する際に複数のスイッチユニットのうちのどれが使用されるかを識別することを含み、複数のスイッチユニットのうちのその識別される１つが、第１の優先順位スキームに従って識別されるステップと、ｂ）前記スイッチユニットの少なくとも１つごとに、出力ポートごとに、ステップａ）で作成された要求へのアクセスを許可するステップであって、その許可が、第２の優先順位スキームに基づくステップと、ｃ）前記スイッチユニットの少なくとも１つごとに、入力ポートごとに、許可を受け入れるステップであって、その受け入れが、第３の優先順位スキームに基づくステップと、ｄ）受け入れた許可において識別された対応するスイッチユニットを利用して、それらの受け入れた許可に基づいて、それぞれの入力ポートからそれぞれの出力ポートへパケットおよび／またはセルを出力するステップとを行うように構成されているスケジューラをさらに含む。
【００１７】
本発明の前述の利点および特徴は、以降の詳細な説明および添付の図面を参照すれば、明らかになるであろう。
【発明を実施するための最良の形態】
【００１８】
本実施形態は、それぞれの出力ポートがスケジューラの繰り返しごとに複数の許可を作成することができるようにすることによって、またそれぞれの入力ポートがスケジューラの繰り返しごとに複数の許可を受け入れることができるようにすることによってスイッチングパフォーマンスが改善される、パラレルスイッチングユニットを有するスイッチングシステムおよび方法を対象とする。これは、それぞれ出力ポートおよび入力ポートごとにスケジューラの繰り返しごとに単一の許可の作成および受け入れを可能にするだけのｉＳＬＩＰ、ＰＩＭ、ＲＲＭなどの従来のスケジューリングアルゴリズムとは異なる。
【００１９】
従来のスケジューリングアルゴリズムと比較すると、本発明の少なくとも１つの実施形態による方法および装置は、複数のパラレルスイッチユニットのうちのどのパラレルスイッチユニットが要求されているかを要求ごとに指定するように要求ステップを変更し、出力ポートごとにパラレルスイッチユニットのそれぞれに対して最大で１つの許可を作成することができるように許可ステップを変更し、入力ポートごとにパラレルスイッチユニットのそれぞれに対して最大で１つの許可を受け入れることができるように受け入れステップを変更する。これは、それぞれの入力ポートおよび出力ポートがスケジューラの繰り返しごとに複数のパケットまたはセルをスイッチすることができるということを意味しており、これによって、時間単位あたりのパケットまたはセルのスケジューリングの決定の数が増える。これは、結果として、スケジューラのマッチング効率と、パラレルスイッチユニットを使用したスイッチングシステムのスイッチング能力とを高める。
【００２０】
さらに、本発明の少なくとも１つの実施形態による方法および装置は、スイッチングの決定ごとの時間が短縮されるため、パケットおよびセルタックススイッチングの非効率を低減することができる。またさらに、本発明の少なくとも１つの実施形態による方法および装置は、パケットの分解および再組み立てに訴えることなく、サイズが変動するパケット、およびサイズが一定のセルの双方をスイッチする機能を提供する。
【００２１】
図１は、本発明の少なくとも１つの実施形態によるスケジューリングの方法および装置を組み込んだ、Ｎ×Ｍ個のポートをスイッチする装置（ＮおよびＭは整数値）を示している。Ｎ個の入力ポート１００のそれぞれは、パケットおよび／またはセルを受信し、それらの出力ポートの宛先に従ってそれらを入力待ち行列１８０内に一時的に格納し、その宛先は、それぞれが出力リンク１５０を介してＭ個の出力ユニット１４０に接続されているＭ個の出力ポート１５０のうちの１つである。それぞれの入力ユニット１１０および出力ユニット１４０は、複数の（Ｋ個の）パラレルスイッチユニット１２０に接続されている。
【００２２】
入力ユニット１１０は、入力リンク１６０を介してスイッチユニット１２０に接続されており、出力ユニット１４０は、出力リンク１７０を介してスイッチユニット１２０に接続されている。入力ユニット＃１は、Ｋ個のパラレルスイッチユニット１２０のそれぞれの上の入力＃１に接続されており、入力ユニット＃２は、Ｋ個のパラレルスイッチユニット１２０のそれぞれの上の入力＃２に接続されており、．．．、入力ユニット＃Ｎは、Ｋ個のパラレルスイッチユニット１２０のそれぞれの上の入力＃Ｎに接続されている。同様に、出力ユニット＃１は、Ｋ個のパラレルスイッチユニット１２０のそれぞれの上の出力＃１に接続されており、出力ユニット＃２は、Ｋ個のパラレルスイッチユニット１２０のそれぞれの上の出力＃２に接続されており、．．．、出力ユニット＃Ｎは、Ｋ個のパラレルスイッチユニット１２０のそれぞれの上の出力＃Ｎに接続されている。これらのスイッチユニットは、後述のようにお互いに並行して機能することによって、お互いに機能的に異なる。スケジューラユニットを実際にセットアップする例示的な方法について、以降で説明する。
【００２３】
本発明の一実施形態のスケジューリング方法は、スケジューラユニット内に組み込まれることが好ましく、スケジューラユニットは、入力ユニット１１０、出力ユニット１４０、あるいはスイッチユニット１２０のいずれかの中に実装することができる。あるいはスケジューラユニットは、図１には具体的に示されていない別個のユニット内に組み込むこともできる。可能な一実装形態においては、スケジューラユニットは、スイッチユニット１２０のうちの１つの中に、あるいは別個のユニットとして組み込まれている。スケジューラユニットは、宛先の出力ポート１５０への最終的な転送の前に出力ユニット１４０へスイッチするために、スイッチユニット１２０の全体にわたって、入力待ち行列１８０からパケットおよび／またはセルのスケジューリングを実行する。
【００２４】
図２は、本発明の第１の実施形態によるスケジューリング方法によって実行されるステップを示すフローチャートである。最初のステップ２００は、入力ポートに着信するパケットおよび／またはセルを入力待ち行列へと継続的にロードすることであり、それらの入力待ち行列から、特定の出力ポートを目指す要求を作成することができる。次のステップ２１０は、それぞれの入力待ち行列の一番前に存在するそれぞれのパケットまたはセルごとに特定の出力ポートへのアクセスを要求することである。次のステップ２２０は、それらの要求に対して出力ポートを許可することである。次のステップ２３０は、入力ポートが出力ポートからの許可を受け入れることである。次のステップ２４０は、入力から出力へのスイッチリンクの割り当ての決定を作成し、スイッチユニットを介してパケット／セルをそれらの宛先の出力ポートへ送信することである。そしてこのプロセスは繰り返され、ステップ２１０に戻って、別のセルやパケットをスケジュールする。
【００２５】
３つのステップのそれぞれは、第１の実施形態においては、スケジューラの繰り返しごとに１回実行され、このそれぞれのステップについて、以降で詳細に説明する。
【００２６】
ステップ１（要求ステップ）：それぞれの入力ポートは、入力待ち行列内で待っている自分の所有するデータが目指すすべての出力ポートに対する要求を作成する。入力から出力ポートへのそれぞれの要求は、特定のスイッチユニットを指定し、それぞれの入力ポートは、出力ポートごとに輪番式の優先順位スキームを使用して、その出力ポートを目指す要求をパラレルスイッチユニットのうちのどの１つが行うかを選択する。
【００２７】
この輪番式の優先順位スキームは、最も高い優先順位を有するスイッチユニットを選択する。その後、最も高い優先順位の指定がインクリメントされ、これによって、最後の繰り返しの最も高い優先順位の要素が、次の繰り返しにおける最も低い優先順位の要素になる。要求の結果としてステップ２において許可が作成され、それが結果としてステップ３において受け入れられた場合にのみ、インクリメントステップが実行されることが好ましい。というのは、これによって、スケジューラによって実行されるスイッチユニットの選択の決定どうしの間に望ましい脱同期化効果が生じるためである。
【００２８】
第１の実施形態において実行される要求ステップと、従来のＰＩＭ法、ｉＳＬＩＰ法、あるいはＲＲＭ法における要求ステップとの違いは、これらの従来の方法に関しては、任意の入力ポートによって作成されるすべての要求が、常に同じ単一のスイッチユニットを目指すが、その一方で第１の実施形態による方法においては、こうした要求が、複数のパラレルスイッチユニットのうちの１つを目指すということである。また第１の実施形態においては、出力ポートごとに要求ごとにパラレルスイッチユニットのうちのどの１つが要求されているかを識別するために、輪番式の優先順位スキームが使用される。第１の実施形態において利用される輪番式の優先順位スキームは、ラウンドロビン式の優先順位スキームや、それまでのスケジューリングの繰り返しにおいて入力ユニットと、スイッチユニットと、出力ユニットとの間で行われた割り当てを追跡把握する他の何らかのタイプの優先順位スキームとすることができる。例えばランダムな優先順位スキームについて、本発明の別の実施形態に関連して後のセクションで説明する。
【００２９】
ステップ２（許可ステップ）：要求ステップの後に、スイッチユニットごとに出力ポートごとにアクセスが許可される。要求ステップ（ステップ１）に関して前述した輪番式の優先順位スキームと同様の輪番式の優先順位スキームをスイッチユニットごとに出力ポートごとに使用して、入力ポートからの要求が選択される。輪番式の優先順位スキームは、対応するスイッチユニットを明確に目指して作成された要求を考慮するだけである。対応してステップ３において許可が受け入れられた場合にのみ、インクリメントステップが実行されることが好ましい。というのは、これによって、スケジューラによって実行される許可の選択の決定どうしの間に望ましい脱同期化効果が生じるためである。
【００３０】
それぞれの入力ポートは、出力ポートごとに単一のスイッチユニットを要求することしかできないため、特定の出力ポートからの作成された許可はすべて、別々の入力ポートを目指すものである。
【００３１】
第１の実施形態において実行される許可ステップと、従来のＰＩＭ法、ｉＳＬＩＰ法、あるいはＲＲＭ法における許可ステップとを比較した際の違いは、これらの従来の方法においては、それぞれの出力ポートが、単一の入力ポートのためのアクセスを許可するだけだが、その一方で第１の実施形態による方法においては、それぞれの出力ポートが、パラレルスイッチユニットのそれぞれに関して入力ポートのためのアクセスを許可することができるということである。すなわち、本発明の少なくとも１つの実施形態によれば、１つの出力ポートは、パラレルスイッチユニットの使用を通じて、複数の入力ポートへのアクセスを事実上許可することができる。
【００３２】
ステップ３（受け入れステップ）：許可ステップの後、次のステップは、スイッチユニットごとに入力ポートごとに許可を受け入れることである。前述の輪番式の優先順位スキームと同様の輪番式の優先順位スキームをスイッチユニットごとに入力ポートごとに使用して、出力ポートからの許可が選択される。輪番式の優先順位スキームは、対応するスイッチユニットを明確に目指して作成された許可を考慮するだけである。受け入れの決定の後、優先順位は、受け入れられた優先順位要素よりも値１つ分だけインクリメントされる。
【００３３】
それぞれの出力ポートは、入力ポートごとに単一のスイッチユニットを許可することしかできないため、特定の入力ポートのために作成された受け入れの決定はすべて、別々の出力ポートを目指すものであるという点に留意されたい。
【００３４】
第１の実施形態の受け入れステップと、従来のＰＩＭ法、ｉＳＬＩＰ法、あるいはＲＲＭ法における受け入れステップとを比較した際の違いは、これらの従来の方法においては、それぞれの入力ポートが、出力ポートからの単一の許可を受け入れるだけだが、その一方で第１の実施形態による方法においては、それぞれの入力ポートが、パラレルスイッチユニットのそれぞれに関して出力ポートからの許可を受け入れることができるということである。すなわち、本発明の少なくとも１つの実施形態によれば、１つの入力ポートは、パラレルスイッチユニットの使用を通じて、複数の出力ポートからの許可を事実上受け入れることができる。
【００３５】
ステップ３の後、最後の処理は、ステップ３での受け入れられた許可に従って、対応する入力および出力スイッチユニットリンクを割り当て、対応するパケットおよび／またはセルを、それらの対応する割り当てられたスイッチユニットを介してそれらの宛先の出力ポートへ送信することである。
【００３６】
スイッチング装置が、単一のスイッチユニットを実装しているだけである場合、すなわち、パラレルスイッチユニットがまったくない場合には、第１の実施形態による方法のオペレーションは、ｉＳＬＩＰスケジューラアルゴリズムのオペレーションに類似したものとなるが、ただし第１の実施形態の可能な一実装形態においては、セル（サイズが一定のパケット）のスイッチングに適用できるだけのｉＳＬＩＰとは異なり、パケットの分解／再組み立てに訴えることなく、スケジューラを使用して、サイズが変動するパケットをスイッチすることができる。サイズが変動するパケット、およびサイズが一定のセルの双方をスイッチするための本発明の一実施形態の適用については、以降に記載されている。
【００３７】
以降の例は、本発明の様々な実施形態のオペレーションについてさらに説明する。
【００３８】
図４は、図２のスケジューリング方法の４つの繰り返しを示しており、これは、２つの入力ポートと、２つの出力ポートとを有するスイッチングシステムのために実行され、ここでは、ａおよびｂとラベル付けされた２つのパラレルスイッチユニットが、入力ポートを出力ポートに接続している。この例のシステムは、図１によって定義すると、Ｎ＝２、Ｍ＝２、およびＫ＝２のシステムに相当する。要求ポインタ４１０、要求４２０、許可ポインタ４３０、許可４４０、受け入れポインタ４５０、および受け入れ４６０も、図４に示されている。
【００３９】
図４は、繰り返しごとに、図２のステップ２１０に対応する要求ステップと、図２の２２０に対応する許可ステップと、図２の２３０に対応する受け入れステップとを示している。４つの繰り返しのそれぞれのはじめに、それぞれの入力ユニット１１０は、システム内のあらゆる出力ユニット１４０を目指す（したがって、あらゆる出力ポートを目指す）入力待ち行列１８０内で待っているデータを有する。
【００４０】
図４に示されているスケジューリング方法に関する要求の作成は、スイッチユニットａおよびｂのうちのどちらが要求されるかを選択するために（入力、出力）ポートの組合せごとに２つの値の輪番式の優先順位スキームを使用して実行される。許可の作成は、入力ポート１または２からの要求を選択するためにスイッチユニット（ａ、ｂ）上の出力ポートごとに２つの値の輪番式の優先順位スキームを使用して実行される。受け入れの作成は、出力ポート１または２からの許可を選択するためにスイッチユニット（ａ、ｂ）上の入力ポートごとに２つの値の輪番式の優先順位スキームを使用して実行される。
【００４１】
繰り返し１の最中の処理は、それぞれの入力が出力１および２へのアクセスを要求したことに伴って開始し、輪番式の優先順位スキームは、それぞれの要求ごとに、要求ポインタ４１０の値によって決定されるように、その要求がスイッチユニットａまたはｂのどちらを目指して作成されるかを決定する。入力１は、スイッチユニットａを介して出力１を、またスイッチユニットａを介して出力２を要求する。入力２は、スイッチユニットａを介して出力１を、またスイッチユニットａを介して出力２を要求する。要求ポインタ４１０は、繰り返し１においては、すべてスイッチａを指している。
【００４２】
要求ステップの後には、許可ステップが続き、この許可ステップでは、スイッチユニットａ、ｂ上のそれぞれの出力が、入力ポートからの要求を選択し、輪番式の優先順位スキームは、スイッチユニットａおよびｂ上のそれぞれの出力ごとに、許可ポインタ４３０の値によって決定されるように、その許可が入力１または２のどちらを目指して作成されるかを決定する。出力２は、スイッチユニットａを介して入力１に対する許可を行い、出力１は、スイッチユニットａを介して入力１に対する許可を行う。
【００４３】
許可ステップの後には、受け入れステップが続き、この受け入れステップでは、スイッチユニットａ、ｂ上のそれぞれの入力が、出力ポートからの許可を選択し、輪番式の優先順位スキームは、スイッチユニットａおよびｂ上のそれぞれの入力ごとに、受け入れポインタ４５０の値によって決定されるように、その受け入れが出力１または２のどちらを目指して作成されるかを決定する。入力１は、スイッチユニットａを介して出力１からの許可を受け入れ、そして対応するセルやパケットが、スイッチユニットａを介してその宛先の出力ポートへ送信される。
【００４４】
次いで処理は、繰り返し２へと続く。繰り返し１における処理結果によって、（入力１、出力１）のための要求ポインタは、スイッチユニットａからｂへとインクリメントされ、その一方で、ステップ３（図２のステップ２３０）において結果として受け入れに至らなかった他の要求ポインタは、繰り返し１のはじめと同じ値にとどまっている。スイッチユニットａ上の出力１のための許可ポインタは、入力１から入力２へとインクリメントされ、その一方で、ステップ３（図２のステップ２３０）において結果として受け入れに至らなかった他の許可ポインタは、繰り返し１のはじめと同じ値にとどまっている。スイッチユニットａ上の入力１のための受け入れポインタは、出力１から出力２へとインクリメントされ、その一方で、ステップ３（図２のステップ２３０）において結果として受け入れに至らなかった他の受け入れポインタは、繰り返し１のはじめと同じ値にとどまっている。
【００４５】
繰り返し２の要求ステップは、繰り返し１の要求ステップと同じだが、ただし、繰り返し１において実行された要求ポインタの更新のために、入力１は、スイッチユニットｂを介して出力１を要求する。許可ステップにおいては、許可は、入力１および入力２の双方に対して作成され、入力１は、繰り返し１における要求ポインタおよび許可ポインタの更新のために、スイッチユニットａおよびｂの双方を介して許可を受信し、それらの許可はすべて、やはり繰り返し１において生じたポインタの更新のために、受け入れステップにおいて受け入れられる。
【００４６】
図５は、要求ポインタの脱同期化の利点を示すために、本発明の第２の実施形態による次善のスケジューリング方法を示している。図４においては、要求ポインタは、対応する要求が同じ繰り返し内で受け入れられた場合に更新されるだけだが、図５においては、要求ポインタは、繰り返しごとに常に自動的に更新される。図４と図５を比較することによって、要求ポインタの脱同期化が、第１の実施形態の望ましい特徴である繰り返しごとのより高いマッチング効率につながるということを理解することができる。
【００４７】
第１の実施形態による方法においては、入力は、要求が最終的に許可されるまで、特定のスイッチユニットを介して出力ポートを要求し続けることになり、その結果、同じ出力ポートを要求する別々の入力ポートによってパラレルスイッチユニットのうちのどれが選択されるかに関して、望ましい脱同期化効果がもたらされるということが見て取れる。対応する作成された要求に対してパラレルスイッチユニットがより均等に分散していればいるほど、スケジューラの繰り返しごとにより多くのパラレルスイッチユニットをマッチさせることができるため、繰り返しごとのマッチング効率はよくなる。
【００４８】
ここまでは、第１の実施形態による本発明の全般的な方法について詳細に説明した。以降の考察では、本発明の実施形態を実装するための別のオプションおよびアプローチについて説明する。
【００４９】
図３は、本発明の第３の実施形態によるスケジューラユニットの可能な一実施形態を示すブロック図である。可能な一実装形態においては、図３に示されているブロックのそれぞれは、ソフトウェア内に実装され、あるいは、それらのブロックによって実行される機能のいくつかは、概要の設計によって、またはＨＤＬ（ｈａｒｄｗａｒｅ  ｄｅｓｃｒｉｐｔｉｏｎ  ｌａｎｇｕａｇｅ）によってなど、ハードウェアによって実行することができ、プログラマブルロジックデバイス（例えば、フィールドプログラマブルゲートアレイ／ＣＰＬＤ）や特定用途向け集積回路内に実装することができる。第３の実施形態によるスケジューラは、前述あるいは後述の実施形態のうちのいずれによる方法を実行するようにも構成することができる。入力３００ごとの入力待ち行列ごとの待ち行列ステータス３１０が、要求ブロック３２０へ転送され、この要求ブロック３２０は、図１に示されているシステムにおいて入力ポートごとに実装されている。それぞれの要求ブロック３２０は、許可ブロック３４０に接続されており、この許可ブロック３４０は、図１に示されているシステムにおいて出力ポートごとに実装されている。要求ブロック３２０から許可ブロック３４０へのそれぞれの接続は、パラレルスイッチユニットのうちの１つを目指す単一の要求３３０を伝送することができ、要求ブロック３２０は、スケジューラの繰り返しごとにそれぞれの許可ブロック３４０ごとに最大で合計１つの要求を作成することができる。
【００５０】
それぞれの許可ブロック３４０は、受け入れブロック３６０に接続されており、この受け入れブロック３６０は、図１に示されているシステムにおいて入力ポートごとに実装されている。許可ブロックから受け入れブロックへのそれぞれの接続は、パラレルスイッチユニットのうちの１つを目指す単一の許可３５０を伝送することができ、許可ブロック３４０は、スケジューラの繰り返しごとにそれぞれのパラレルスイッチユニットごとに最大で合計１つの許可を作成することができる。それぞれの受け入れブロック３６０は、応答ブロック３８０に接続されており、この応答ブロック３８０は、図１に示されているシステムにおいて入力ポートごとに実装されている。受け入れブロックから応答ブロックへのそれぞれの接続は、図１に示されているシステムにおけるパラレルスイッチユニットのそれぞれを目指す最大で１つの受け入れ３７０を伝送することができ、受け入れブロック３６０は、スケジューラの繰り返しごとにそれぞれのパラレルスイッチユニットごとに最大で合計１つの受け入れを作成することができる。
【００５１】
応答ブロック３８０は、図２に示されているステップ２４０の処理を実行し、この処理は、対応する入力待ち行列からの列の先頭（ｈｅａｄ−ｏｆ−ｌｉｎｅ（ＨＯＬ））のパケット要素やセル要素の送信を開始するために入力待ち行列へと戻される応答コマンドを作成することによって、対応するパケットおよびセルを、入力待ち行列から、割り当てられたスイッチユニットを介して、それらの対応する宛先の出力ポートへと送信することをコントロールする。応答ブロックはまた、スイッチユニット可用性ブロック３９６に接続されており、このスイッチユニット可用性ブロック３９６は、すべてのスイッチユニットの入力リンクおよび出力リンク（図１の１６０および１７０）の割り当てステータスを保持する。入力リンクおよび出力リンクの割り当て後、割り当てられた入力リンクおよび出力リンクに関する可用性ステータスは、個々のパケットまたはセルの長さに従って更新される。好ましい実施形態においては、パケットおよびセルのサイズは、ステップ１、２、または３によっては使用されず、スイッチユニット可用性ブロック３９６によってのみ使用される。
【００５２】
セルおよびパケットのサイズが変動する場合には、図３のスイッチユニット割り当てブロック３９６は、本発明の第３の実施形態において行われるのと同様に、入力および出力リンクのステータスを、システム内の個々のリンクごとに、それぞれの送信される個々のパケットまたはセルの長さの関数として保持する。第３の実施形態の要求ステップにおいては、対応する入力リンクから出力リンクが利用可能であるスイッチユニットのみが、輪番式の優先順位スキームによるスイッチユニットの選択によって考慮される。それ以外の点では、他のステップはすべて、前述の第１の実施形態と同じである。
【００５３】
あるいは、パケットおよびセルがすべて同じサイズである場合（すなわち、サイズが一定のパケット／セルである）場合には、図３のスイッチユニット可用性ブロック３９６は必要ない。このような場合には、すべての入力リンクおよび出力リンクは、単に要求ステップ１のはじめに利用可能であるとみなされ、一式の割り当ての決定を作成するのに要する時間は、入力または出力リンク上のサイズが一定のセル／パケットユニットの送信時間とできるだけ近くなるように調整される。
【００５４】
図３に示されているスケジューラは、従来のｉＳＬＩＰスケジューラとのいくつかの一般的な類似点を有するが、図３に示されているスケジューラとｉＳＬＩＰスケジューラとの間における相違点のうちのいくつかについて、以降で詳細に説明する。ｉＳＬＩＰスケジューラアルゴリズムにおいては、要求と許可ブロックとの間におけるそれぞれの接続は、（利用可能なスイッチユニットが１つしかないために）特定のスイッチユニットを識別せず、要求が存在するか否かを示すだけである。また、ｉＳＬＩＰスケジューラアルゴリズムにおいては、許可と受け入れブロックとの間におけるそれぞれの接続は、（利用可能なスイッチユニットが１つしかないために）特定のスイッチユニットを識別せず、許可が存在するか否かを示すだけである。さらに、スケジューラの繰り返しごとに許可ブロックごとに作成される許可の数も、図３に示されているスケジューラに関しては、ｉＳＬＩＰ法と比較して異なり、これは、ｉＳＬＩＰがスケジューラの繰り返しごとに単一の許可を作成する一方で、図３によるスケジューラがスケジューラの繰り返しごとにパラレルスイッチユニットごとに最大で１つの許可を作成するためである。この違いは、受け入れブロックと応答ブロックとの間における接続に関しても存在する。
【００５５】
図３に示されている第３の実施形態のスケジューラに代わるものとして、第４の実施形態においては、スケジューラは、スイッチユニットの選択を、要求ステップの一環として要求ブロック内で実行するのではなく、許可ステップの一環として許可ブロック内で実行する。第４の実施形態においては、（入力、出力）ポートの組合せごとに規定された輪番式の優先順位のスイッチユニットの要求ポインタは、要求ブロックによってではなく、許可ブロックによって保持され、更新される。第４の実施形態に関しては、スイッチユニットの可用性は、図３に示されているように要求ブロックへと流れるのではなく、許可ブロックへと流れる。
【００５６】
図６は、本発明の第５の実施形態によるスケジューリング方法を示すフローチャートであり、このスケジューリング方法は、スケジューラの割り当て決定期間ごとに複数の繰り返しを使用する。一般に、第５の実施形態による方法は、図２に示されているような第１の実施形態に関連して説明した方法と整合する。しかし図２の方法は、スケジューラの割り当て決定期間、すなわちスケジューラが割り当ての決定を作成する間のタイムスロット期間中に、要求ステップ、許可ステップ、および受け入れステップに対応する単一の繰り返しのみが実行されることを前提としている。図６の方法は、ステップ５００においてテストを行って、タイムスロットの終わりに達したかどうか、あるいは終了のしきい値範囲内にあるかどうかを判定する。そうである場合には、ステップ５１０において、対応するパケットおよび／またはセルが、それらの対応する割り当てられたスイッチユニットを介してそれらの宛先の出力ポートへ送信される。そうでない場合には、ステップ５２０において、パラレルスイッチユニットの関与した入力リンクおよび出力リンクが隠され、新たな繰り返しが実行される。すなわち、ある要求が入力から出力へのスイッチパスを割り当てられた場合には、その要求は、次の繰り返しにおいては考慮されない。
【００５７】
本発明によるスケジューリング方法の第６の実施形態は、本発明の基本的な技術を、複数の優先順位レベルでの要求を含むように拡張する。第６の実施形態においては、それぞれの入力ユニットは、出力ポートごとに確立されたそれぞれの優先順位レベルごとの別個の入力待ち行列を保持する。つまり、Ｐ個の優先順位レベル（Ｐは整数値）を有するＮ×Ｍのスイッチに関しては、それぞれの入力ユニットは、Ｐ×Ｍ個の待ち行列を保持する。第６の実施形態において利用される優先順位付けの技術は、次のように規定することができる。
【００５８】
ステップ１（要求ステップ）：それぞれの出力ポートへの要求は、１つの優先順位レベルを含むように拡張される。入力が、特定の出力ポートのための特定のスイッチユニットを目指す要求を作成すると、その要求の優先順位は、その特定の出力ポートに関連付けられている最も高い優先順位の空ではない入力待ち行列と等しくなるように設定される。
【００５９】
ステップ２（許可ステップ）：出力ポートは、特定のスイッチユニットを目指す要求を受信すると、それらの要求の最も高い優先順位レベルを決定し、そしてその決定した優先順位レベルを有する受信した要求の中から１つの要求を許可する。出力ポートは、スイッチユニットごとに優先順位レベルごとに前と同じ輪番式の優先順位スキームを使用する。許可は、入力ポートへ渡される際、選択された優先順位レベルを含む。前と同様に、許可が、対応してステップ３（図２のステップ２３０）において受け入れられた場合にのみ、インクリメントステップが実行される。このオペレーションは、前と同様に、出力ポートごとにパラレルスイッチユニットのそれぞれに対して実行される。
【００６０】
ステップ３（受け入れステップ）：入力ポートは、特定のスイッチユニットを目指す許可を受信すると、それらの許可の最も高い優先順位レベルを決定し、そしてその決定した優先順位レベルを有する受信した許可の中から１つの許可を受け入れる。入力ポートは、スイッチユニットごとに優先順位レベルごとに前と同じ輪番式の優先順位スキームを使用する。このオペレーションは、前と同様に、入力ポートごとにパラレルスイッチユニットのそれぞれに対して実行される。
【００６１】
本発明の第７の実施形態は、出力ポートごとにスイッチユニットごとに１つの輪番式の優先順位による許可メカニズムよりも少ない複数の輪番式の優先順位による許可メカニズムを実装する。すなわち第７の実施形態は、単一の輪番式の優先順位による許可メカニズムを使用して複数のスイッチユニットをカバーすることができるため、出力ポートごとにＫ個よりも少ない輪番式の優先順位による許可メカニズム（Ｋは、スイッチユニットの数）を使用する。したがって、出力ポートごとに２個からＫ個のうちの任意の数の輪番式の優先順位による許可メカニズムを実装することができる。
【００６２】
第７の実施形態においては、所与の出力ポートに関する輪番式の優先順位による要求の選択は、単一のスイッチユニットのみを目指す複数の要求の間で選択を行うこととは対照的に、パラレルスイッチユニットのセットを目指す複数の入力ポートからの要求の間で選択を行う。輪番式の優先順位による要求の選択によってカバーされるセット内のスイッチユニットの数は、実装形態に応じて、２個からパラレルスイッチユニットの数までの範囲内とすることができる。スケジューリングの繰り返しごとに出力ごとに作成できる許可の最大数は、出力ポートごとに実行される輪番式の優先順位による要求の選択の数に等しい。１つの出力ポートに関して実行される複数の輪番式の優先順位による要求の選択は、まったく同じ数のパラレルスイッチユニットをカバーする必要はない。輪番式の優先順位による要求の選択の結果として作成されるそれぞれの許可ごとに、その許可に関連付けられるスイッチユニットは、その選択された要求のスイッチユニットと同じになるように設定される。
【００６３】
本発明の第８の実施形態は、入力ポートごとにスイッチユニットごとに１つの輪番式の優先順位による受け入れメカニズムよりも少ない複数の輪番式の優先順位による受け入れメカニズムを実装する。すなわち第８の実施形態は、単一の輪番式の優先順位による受け入れメカニズムを使用して複数のスイッチユニットをカバーすることができるため、入力ポートごとにＫ個よりも少ない輪番式の優先順位による受け入れメカニズム（Ｋは、スイッチユニットの数）を使用する。したがって、入力ポートごとに２個からＫ個のうちの任意の数の輪番式の優先順位による受け入れメカニズムを実装することができる。
【００６４】
第８の実施形態においては、所与の入力ポートに関する輪番式の優先順位による許可の選択は、単一のスイッチユニットのみを目指す複数の許可の間で選択を行うこととは対照的に、パラレルスイッチユニットのセットを目指す複数の出力ポートからの許可の間で選択を行う。輪番式の優先順位による許可の選択によってカバーされるセット内のスイッチユニットの数は、実装形態に応じて、２個からパラレルスイッチユニットの数までの範囲内とすることができる。スケジューリングの繰り返しごとに入力ごとに作成できる受け入れの最大数は、入力ポートごとに実行される輪番式の優先順位による許可の選択の数に等しい。１つの入力ポートに関して実行される複数の輪番式の優先順位による許可の選択は、まったく同じ数のパラレルスイッチユニットをカバーする必要はない。輪番式の優先順位による許可の選択の結果として作成されるそれぞれの受け入れごとに、その受け入れに関連付けられるスイッチユニットは、その選択された許可のスイッチユニットと同じになるように設定される。
【００６５】
本発明の第９の実施形態は、出力ポートごとにスイッチユニットごとに１つの輪番式の優先順位による許可メカニズムよりも少ない複数（例えばＲ、このＲは整数値）の輪番式の優先順位による許可メカニズムと、入力ポートごとにスイッチユニットごとに１つの輪番式の優先順位による許可メカニズムよりも少ない複数（例えばＳ、このＳは整数値）の輪番式の優先順位による許可メカニズムとを実装する。第９の実施形態においては、特定の実装形態に応じて、ＳがＲに等しくなるように設定することもでき、あるいはそれらが異なる値を有することもできる。
【００６６】
本発明の第１０の実施形態は、ほとんどの点で第１の実施形態と同様であるが、輪番式の優先順位スキームの代わりに「ランダムな選択による」優先順位スキームを利用する。第１０の実施形態では、ステップ１（要求ステップ）において、それぞれの入力ポートは、出力ポートを目指す要求をパラレルスイッチユニットのうちのどの１つが行うかを、あまねくすべてのパラレルスイッチユニットにわたってランダムに選択する。ステップ２（許可ステップ）においては、スイッチユニットごとのそれぞれの出力ポートは、あまねくすべての受信された要求にわたって１つの要求をランダムに選択する。ステップ３（受け入れステップ）においては、スイッチユニットごとのそれぞれの入力ポートは、あまねくすべての受信された許可にわたって１つの許可をランダムに選択する。この「ランダムな選択による」スキームは、本発明の他の実施形態に関連して説明した「輪番式の優先順位」スキームに代わるものとして、それらの他の実施形態と共に利用することもできる。
【００６７】
このように、本発明の様々な実施形態に従って装置および方法について説明した。本発明の趣旨および範囲から逸脱することなく、本明細書で説明され例示されている技術および構造に対して多くの修正形態および変形形態を作成することができる。したがって、本明細書に記載の方法および装置は、例示的なものにすぎず、本発明の範囲を限定するものではないということを理解されたい。本発明の実施形態のいずれによるスケジューリングの方法およびシステムも、２００４年７月２６日に出願された米国特許出願第１０／８９８，５４０号（参照によって、その全体を本明細書に組み込む）に記載されているようなネットワーク相互接続クロスポイントアーキテクチャーおよび方法において利用することができる。
【図面の簡単な説明】
【００６８】
【図１】本発明の第１の実施形態によるスイッチングシステムを示す図である。
【図２】本発明の一実施形態によるスケジューリング方法に含まれるステップを示す図である。
【図３】本発明の一実施形態によるスケジューリングデバイスを示すブロック図である。
【図４】本発明の一実施形態によるスケジューリングデバイスによって実行される処理の４つの繰り返しを示す図である。
【図５】本発明の別の実施形態によるスケジューリングデバイスによって実行される処理の４つの繰り返しを示す図である。
【図６】本発明の別の実施形態によるスケジューリング方法に含まれるステップを示す図である。
【図１】
2008527853.tif 000003
【図２】
2008527853.tif 000004
【図３】
2008527853.tif 000005
【図４】
2008527853.tif 000006
【図５】
2008527853.tif 000007
【図６】
2008527853.tif 000008
【国際調査報告】
2008527853.tif 000009
2008527853.tif 000010