(57)【要約】【課題】【解決手段】レートウェイトを有するマルチレートマルチキャストパケットを、各入力ポートがｒ２個の入力キューを有するｒ１個の入力ポート、各出力ポートがｒ１個の出力キューを有するｒ２個の出力ポート、及びｓ個のサブネットワークを用いて少なくとも2007528636.tif 000021のスピードアップを有する相互接続ネットワークを含む相互接続ネットワークを介してスケジューリングするためのシステムであって、各サブネットワークは、全体で少なくともｒ１個の第１内部リンクのため各入力ポートに接続される少なくとも１つの第１内部リンクを含み、各サブネットワークはさらに、全体で少なくともｒ２個の第２内部リンクのため各出力ポートに接続される少なくとも１つの第２内部リンクを含むシステムは、本発明により、パケットのレートウェイトに応じて、ｒ１≦ｒ２であるときは、多くともｒ２回のスイッチングにおけるスイッチングすべき各スイッチング時において多くともｒ１個のパケットを、ｒ２≦ｒ１であるときは、多くともｒ１回のスイッチングにおけるスイッチングすべき各スイッチング時において、多くともｒ２個のパケットを、決定論的方式で且つパケットのセグメント化と再組立の必要がなくスケジューリングすることにより、厳密なノンブロッキング方式で作動する。スケジューリングは、各マルチキャストパケットが、２つを超えない相互接続ネットワークを介し、２回を超えないスイッチング回数で、ファンアウト分割されるように実行される。このシステムは、１００％スループット、作業節約的、公正、及びさらに決定論的方式で作動し、それにより、出力ポートは決して輻輳しない。このシステムは、調停に１度だけ繰り返しを、相互接続ネットワークにおける数学的に最小限のスピードアップを用いて、実行される。このシステムは、順序付けの問題、相互接続ネットワークにおけるパケットの内部ブロッキングを決して伴わないので、真にカットスルー且つファンアウトされる方式で作動する。一実施例において、スピードアップは、１つのみのサブネットワークを用い、サブネットワークを介して３のスピードアップを用いて実施される。別の実施例において、システムは、相互接続ネットワークにおける少なくとも2007528636.tif 000022のスピードアップを用いて、再配置可能なノンブロッキング方式で作動する。入力ポートの数ｒ１が出力ポートのｒ２数に等しく、ｒ１＝ｒ２＝ｒであるときは、少なくとも2007528636.tif 000023のスピードアップを有する相互接続ネットワークは、パケットのレートウェイトに応じて、多くともｒ回のスイッチングにおけるスイッチングすべき各スイッチング時において、多くともｒ個のパケットをスイッチングすることにより、本発明にしたがって厳密にノンブロッキングな決定論的方式で作動する。また、相互接続ネットワークにおける少なくとも2007528636.tif 000024のスピードアップを用いて、このシステムは、Ｊ再配置可能なノンブロッキング且つ決定論的方式で作動する。このシステムは、マルチレートマルチキャストパケットのため、入力ポートから出力ポートまで、エンドツーエンド保証帯域幅及びレイテンシを提供する。すべての実施例において、相互接続ネットワークは、クロスバーネットワーク、共有メモリネ���トワーク、クロスネットワーク、ハイパーキューブネットワーク、又は任意の内部ノンブロッキング相互接続ネットワーク又はネットワークのネットワークでもよい。【選択図】図１Ｈ
2007528636.tif 000002
【特許請求の範囲】
【請求項１】
複数の入力ポートと複数の出力ポートとを有する相互接続ネットワークを介して、各パケットが指定出力ポートとレートウェイトとを有するマルチレートマルチキャストパケットをスケジューリングするシステムであって、
前記各入力ポートにおける複数の入力キューであって、前記マルチレートマルチキャストパケットを有する入力キューと、
前記各入力ポートが、前記指定出力ポートに対し、多くとも前記各入力ポートにおける入力キューの数と同数の前記マルチレートマルチキャストパケットのサービスを要求する手段と、
前記各出力ポートが、複数の要求を許可するための手段と、
前記各入力ポートが、多くとも前記入力キューと同数の許可を承認するための手段と、
多くとも入力キューの数と同数の前記マルチレートマルチキャストパケットを、承認された許可を有する前記各入力ポートから、前記承認された許可に関連付けられる前記各出力ポート対して、前記入力ポート内の前記各マルチキャストパケットを、多くとも２回ファンアウト分割することによりスケジューリングする手段とを含むことを特徴とするシステム。
【請求項２】
前記各出力ポートにあり、前記相互接続ネットワークを通じて前記マルチレートマルチキャストパケットを受信する複数の出力キューと、
前記各出力ポートが、多くとも前記出力キューと同数の要求を許可する手段と、
多くとも入力キューの数と同数の前記マルチレートマルチキャストパケットを、承認された許可およびを出力キューの数と同数の前記マルチレートマルチキャストパケット有する前記各入力ポートから、前記承認された許可に関連付けられる前記各出力ポート対して、前記入力ポート内の前記各マルチキャストパケットを、多くとも２回ファンアウト分割することによりスケジューリングする手段とをさらに含むことを特徴とする、請求項１に記載のシステム。
【請求項３】
前記相互接続ネットワークは、ノンブロッキング相互接続ネットワークであることを特徴とする、請求項１に記載のシステム。
【請求項４】
前記ノンブロッキング相互接続ネットワークは、少なくとも３のスピードアップを含むことを特徴とする、請求項３に記載のシステム。
【請求項５】
前記スピードアップは、
並列性の手段、即ち、前記相互接続ネットワークを、少なくとも３回物理的に複製し、前記各入力ポート、および前記各出力ポートからの別個のリンクにより接続する手段、または、
前記入力ポートと前記相互接続ネットワークとの間、および前記出力ポートと前記相互接続ネットワークとの間のリンク帯域幅において、また前記相互接続ネットワークのクロック速度においても、少なくとも３のスピードアップをする手段により実現することを特徴とする、請求項４に記載のシステム。
【請求項６】
さらに、前記ノンブロッキング相互接続ネットワークを介して、マルチレートマルチキャストパケットの経路を、別のマルチレートマルチキャストパケットのため既に選択された経路を決して変更しないことにより、常に選択可能であることを特徴とする請求項４に記載のシステムであって、
以後、前記相互接続ネットワークを「厳密なノンブロッキングネットワーク」と称する、前記システム。
【請求項７】
前記ノンブロッキング相互接続ネットワークは、少なくとも２のスピードアップを含むことを特徴とする、請求項３に記載のシステム。
【請求項８】
前記スピードアップを、
並列性の手段、即ち、前記相互接続ネットワークを、少なくとも２回物理的に複製し、前記各入力ポート、および前記各出力ポートからの別個のリンクにより接続する手段、または、
前記入力ポートと前記相互接続ネットワークとの間、および前記出力ポートと前記相互接続ネットワークとの間のリンク帯域幅において、また前記相互接続ネットワークのクロック速度においても、少なくとも２のスピードアップをする手段により実現することを特徴とする、請求項７に記載のシステム。
【請求項９】
さらに、前記ノンブロッキング相互接続ネットワークを介して、マルチレートマルチキャストパケットの経路を、必要なときは、別のマルチレートマルチキャストパケットのため既に選択した経路を変更することにより、常に選択可能であることを特徴とする、請求項７に記載のシステムであって、
以後、前記相互接続ネットワークを「再配置可能なノンブロッキングネットワーク」と称する、前記システム。
【請求項１０】
既にスケジューリングされた前記パケットのスケジュールを保持する前記スケジューリング手段に結合されたメモリを、さらに含むことを特徴とする、請求項１に記載のシステム。
【請求項１１】
既にスケジューリングされた前記パケットのスケジュールを保持する前記スケジューリング手段に結合されたメモリを、さらに含むことを特徴とする、請求項２に記載のシステム。
【請求項１２】
調停、即ち、前記入力ポートによる前記サービスの要求と、前記出力ポートによる前記要求の許可と、前記入力ポートによる前記許可の承認とを、１度の繰り返しのみで実行することを特徴とする、請求項１に記載のシステム。
【請求項１３】
調停、即ち、前記入力ポートによる前記サービスの要求と、前記出力ポートによる前記要求の許可と、前記入力ポートによる前記許可の承認とを、１度の繰り返しのみで実行することを特徴とする、請求項２に記載のシステム。
【請求項１４】
前記パケットは、実質的に同一サイズであることを特徴とする、請求項１に記載のシステム。
【請求項１５】
前記入力ポートにおいて行頭ブロッキングが、ユニキャストパケットおよびマルチキャストパケットの双方に関して完全に削除されることを特徴とする、請求項１に記載のシステム。
【請求項１６】
前記入力ポートにある前記入力キューのいくつかは、ユニキャストパケットのみを含むことを特徴とする、請求項１に記載のシステム。
【請求項１７】
前記入力ポートにある前記入力キューのいくつかは、ユニキャストパケットのみを含むことを特徴とする、請求項２に記載のシステム。
【請求項１８】
前記スケジューリング手段は、スイッチング時に多くとも１個のパケットを、承認された許可を有する前記各入力キューから、前記承認された許可に関連付けられる前記各出力キュー対して、スケジューリングすることを特徴とする、請求項１に記載のシステム。
【請求項１９】
前記スケジューリング手段は、スイッチング時に多くとも１個のパケットを、承認された許可および多くとも１個のパケットを有する前記各入力キューから、前記承認された許可に関連付けられる前記各出力キュー対して、スケジューリングすることを特徴とする、請求項２に記載のシステム。
【請求項２０】
前記各出力ポートは、前記パケットが少なくとも１つある限り、スイッチング時に少なくとも１個のパケットを、それを宛先とする前記入力キューのいずれか１つから受信するよう作動することを特徴とする、請求項１に記載のシステムであって、
以後、前記システムは「作業節約システム」と称する、前記システム。
【請求項２１】
前記各出力ポートは、前記パケットが少なくとも１つある限り、スイッチング時に少なくとも１個のパケットを、それを宛先とする前記入力キューのいずれか１つから受信するよう作動することを特徴とする、請求項２に記載のシステムであって、
以後、前記システムは「作業節約システム」と称する、前記システム。
【請求項２２】
前記各出力ポートは、
２つ以上のパケットがそれを宛先としていても、前記相互接続ネットワークにおける前記スピードアップに関係なく、スイッチング時に多くとも１個のパケットを受信するよう作動可能であり、
それにより、前記スピードアップは、前記相互接続ネットワークを決定論的方式で作動させることのみに利用され、前記出力ポートは決して輻輳しないことを特徴とする、請求項１に記載のシステム。
【請求項２３】
前記各出力ポートは、
２つ以上のパケットがそれを宛先としていても、前記相互接続ネットワークにおける前記スピードアップに関係なく、スイッチング時に多くとも１個のパケットを受信するよう作動可能であり、
それにより、前記スピードアップは、前記相互接続ネットワークを決定論的方式で作動させることのみに利用され、前記出力ポートは決して輻輳しないことを特徴とする、請求項２に記載のシステム。
【請求項２４】
前記入力キューの１つからのパケットは、
それらが前記相互接続ネットワークを介して同一経路で前記入力ポートに受信されるのと同一順序で、宛先出力ポートに対し常に決定論的にスイッチングされ、決してパケット順序付けの問題が生じないように作動し、
それにより、スイッチング回数は設計時における変数となり、複数のバイトが各スイッチング時にスイッチングされるようにスイッチング回数を選択する余地を与えることを特徴とする、請求項１に記載のシステムシステム。
【請求項２５】
前記入力キューのうち１つからのパケットは、
それらが前記相互接続ネットワークを介して前記入力ポートに受信されるのと同一順序で、宛先出力ポート内の前記出力キューの１つに対し、常に決定論的にスイッチングされ、前記入力ポート内の前記パケットのセグメント化も、前記出力ポート内の前記パケットの再組立も必要とせず、決してパケット順序付けの問題が生じないように作動し、
それにより、スイッチング回数は設計時における変数となり、複数のバイトが各スイッチング時にスイッチングされるようにスイッチング回数を選択する余地を与えることを特徴とする、請求項２に記載のシステムシステム。
【請求項２６】
前記各入力キューの行頭にある前記調停承認パケットは、前記各入力ポートにある入力キューの前記の数と同数のスイッチング回数を超えては保持されないよう作動することを特徴とする、請求項１に記載のシステムであって、
以後、前記システムは「公正なシステム」と称する、前記システム。
【請求項２７】
前記各入力キューの行頭にある前記調停承認パケットは、前記各入力ポートにある入力キューの前記の数と同数のスイッチング回数を超えては保持されないよう作動することを特徴とする、請求項２に記載のシステムであって、
以後、前記システムは「公正なシステム」と称する、前記システム。
【請求項２８】
前記相互接続ネットワークは、クロスバーネットワーク、共有メモリネットワーク、ハイパーキューブネットワーク、又は任意の内部ノンブロッキング相互接続ネットワーク、又はネットワークのネットワークであることを特徴とする、請求項１に記載のシステム。
【請求項２９】
前記システムは、１００％スループットで作動することを特徴とする、請求項１に記載のシステム。
【請求項３０】
前記システムは、１００％スループットで作動することを特徴とする、請求項２に記載のシステム。
【請求項３１】
前記レートウェイトに基づいて、いずれの入力ポートからも、任意の数の出力ポートまでのエンドツーエンド保証帯域幅を提供することを特徴とする、請求項１に記載のシステム。
【請求項３２】
前記レートウェイトに基づいて、いずれの入力ポートからも、任意の数の出力ポートまでのエンドツーエンド保証帯域幅を提供することを特徴とする、請求項２に記載のシステム。
【請求項３３】
複数の入力ポートから任意の出力ポートまでのパケットの保証レイテンシを提供することを特徴とする、請求項１に記載のシステム。
【請求項３４】
複数の入力ポートから任意の出力ポートまでのパケットの保証レイテンシを提供することを特徴とする、請求項２に記載のシステム。
【請求項３５】
前記システムは、前記相互接続ネットワーク内にバッファを必要とせず、従ってカットスルーアーキテクチャであることを特徴とする、請求項１に記載のシステム。
【請求項３６】
前記システムは、前記相互接続ネットワーク内にバッファを必要とせず、従ってカットスルーアーキテクチャであることを特徴とする、請求項２に記載のシステム。
【請求項３７】
複数の入力ポートと複数の出力ポートとを有する相互接続ネットワークを介し、マルチレートマルチキャストパケットをスケジューリングする前記方法であって、前記各入力ポートは、複数のキューを含み、前記パケットは、それぞれ少なくとも１つの指定出力ポートとレートウェイトとを有する前記方法において、
多くとも前記各入力ポートにおける入力キューの数と同数の前記マルチレートマルチキャストパケットのための前記指定出力ポートから前記各入力ポートに対してサービスを要求するステップと、
前記各出力ポートに対して、複数の要求を許可するステップと、
多くとも前記入力キューの数と同数の許可を、前記各入力ポートに対して承認するステップと、
多くとも入力キューの数と同数の前記マルチレートマルチキャストパケットを、承認された許可を有する前記入力ポートから、前記承認された許可に関連付けられる前記各出力ポート対して、前記入力ポート内の前記各マルチキャストパケットを、多くとも２回ファンアウト分割することによりスケジューリングするステップと、の各ステップを含むことを特徴とする方法。
【請求項３８】
前記各出力ポートに複数の出力キューを備え；
前記各出力ポートが多くとも前記出力キューの数と同数の要求を許可するステップと、
多くとも入力キューの数と同数の前記マルチレートマルチキャストパケットを、承認された許可および出力キューの数と同数の前記マルチキャストパケットを有する前記入力ポートから、前記承認された許可に関連付けられる前記各出力ポート対して、前記入力ポート内の前記各マルチキャストパケットを、多くとも２回ファンアウト分割することによりスケジューリングするステップと、の各ステップをさらに含むことを特徴とする、請求項３７に記載の方法。
【請求項３９】
調停、即ち、前記入力ポートによる前記サービスの要求と、前記出力ポートによる前記要求の許可と、入力ポートによる前記許可の承認とは、１度の繰り返しのみで実行されることを特徴とする、請求項３７に記載の方法。
【請求項４０】
調停、即ち、前記入力ポートによる前記サービスの要求と、前記出力ポートによる前記要求の許可と、入力ポートによる前記許可の承認とは、１度の繰り返しのみで実行されることを特徴とする、請求項３８に記載の方法。
【請求項４１】
前記パケットは、実質的に同一サイズであることを特徴とする、請求項３７に記載の方法。
【請求項４２】
前記入力ポートにおいて行頭ブロッキングが完全に削除されることを特徴とする、請求項３７に記載の方法。
【請求項４３】
前記入力ポートにある前記入力キューのいくつかは、ユニキャストパケットのみを含むことを特徴とする、請求項３７に記載の方法。
【請求項４４】
前記入力ポートにある前記入力キューのいくつかは、ユニキャストパケットのみを含むことを特徴とする、請求項３８に記載の方法。
【請求項４５】
前記スケジューリングは、スイッチング時に多くとも１個のパケットを、承認された許可を有する前記各入力キューから、前記承認された許可に関連付けられる前記各出力ポート対してスケジューリングすることを特徴とする、請求項３７に記載の方法。
【請求項４６】
前記スケジューリングは、スイッチング時に多くとも１個のパケットを、承認された許可と多くとも１個のパケットを有する前記各入力キューから、前記承認された許可に関連付けられる前記各出力キュー対してスケジューリングすることを特徴とする、請求項３８に記載のシステム。
【請求項４７】
前記各出力ポートは、少なくとも前記１個のパケットがある限り、スイッチング時に少なくとも１個のパケットを、その出力ポートを宛先とする前記入力キューのいずれか１つから受信するように作動することを特徴とする、請求項３７に記載の方法。
【請求項４８】
前記各出力ポートは、少なくとも前記１個のパケットがある限り、スイッチング時に少なくとも１個のパケットを、その出力ポートを宛先とする前記入力キューのいずれか１つから受信するように作動することを特徴とする、請求項３８に記載の方法。
【請求項４９】
前記各出力ポートは、２つ以上のパケットがそれを宛先としていても、前記相互接続ネットワークにおける前記スピードアップに関係なく、スイッチング時に多くとも１個のパケットを受信するよう作動可能であり、
それにより、相互接続ネットワークにおけるスピードアップは、前記相互接続ネットワークを決定論的方式で作動させることのみに利用され、前記出力ポートは決して輻輳しないことを特徴とする、請求項３７に記載の方法。
【請求項５０】
前記各出力ポートは、２つ以上のパケットがそれを宛先としていても、前記相互接続ネットワークにおける前記スピードアップに関係なく、スイッチング時に多くとも１個のパケットを受信するよう作動可能であり、
それにより、前記スピードアップは、前記相互接続ネットワークを決定論的方式で作動させることのみに利用され、前記出力ポートは決して輻輳しないことを特徴とする、請求項３８に記載の方法。
【請求項５１】
前記入力キューの１つからのパケットは、
それらが前記相互接続ネットワークを介して同一経路で前記入力ポートに受信されるのと同一順序で、宛先出力ポートに対し常に決定論的にスイッチングされ、決してパケット順序付けの問題が生じないよう作動し、
それにより、スイッチング回数は設計時における変数となり、複数のバイトが各スイッチング時にスイッチングされるようにスイッチング回数を選択する余地を与えることを特徴とする、請求項３７に記載の方法。
【請求項５２】
前記入力キューのうち１つからのパケットは、
それらが前記相互接続ネットワークを介して前記入力ポートに受信されるのと同一順序で、宛先出力ポート内の前記出力キューの１つに対し、常に決定論的にスイッチングされ、前記入力ポート内の前記パケットのセグメント化も、前記出力ポート内の前記パケットの再組立も必要とせず、決してパケット順序付けの問題が生じないように作動し、
それにより、スイッチング回数は設計時における変数となり、複数のバイトが各スイッチング時にスイッチングされるようにスイッチング回数を選択する余地を与えることを特徴とする、請求項３８に記載の方法。
【請求項５３】
前記各入力キューの行頭にある前記パケットは、前記各入力ポートにある入力キューの前記の数と同数のスイッチング回数を超えては保持されないよう作動することを特徴とする、請求項３７に記載の方法。
【請求項５４】
前記各入力キューの行頭にある前記パケットは、前記各入力ポートにある入力キューの前記の数と同数のスイッチング回数を超えては保持されないよう作動することを特徴とする、請求項３８に記載方法。
【請求項５５】
前記方法は、１００％スループットでスケジューリングすることを特徴とする、請求項３７に記載の方法。
【請求項５６】
前記方法は、１００％スループットでスケジューリングすることを特徴とする、特徴とする請求項３８に記載の方法。
【請求項５７】
前記レートウェイトに基づいて、いずれの入力ポートからも、任意の数の出力ポートまでのエンドツーエンド保証帯域幅を提供することを特徴とする、請求項３７に記載の方法。
【請求項５８】
前記レートウェイトに基づいて、いずれの入力ポートからも、任意の数の出力ポートまでのエンドツーエンド保証帯域幅を提供することを特徴とする、請求項３８に記載の方法。
【請求項５９】
複数の入力ポートから任意の出力ポートまでのパケットの保証レイテンシを提供することを特徴とする、請求項３７に記載の方法。
【請求項６０】
複数の入力ポートから任意の出力ポートまでのパケットの保証レイテンシを提供することを特徴とする、請求項３８に記載の方法。
【請求項６１】
マルチレートマルチキャストパケットを、相互接続ネットワークを介して、スケジューリングするシステムであって、
前記各パケットが指定出力ポートとレートウェイトとを有するｒ１個の入力ポートおよびｒ２個の出力ポートと、
前記ｒ１個の各入力ポートにある、前記パケットを含むｒ２個の入力キューと、
ｓ≧１個のサブネットワークを含む前記相互接続ネットワークであって、各サブネットワークは、全体でｒ１個の第１内部リンクのために各入力ポートに接続される、少なくとも１つのリンク（以後、「第１内部リンク」と称する）を備え、各サブネットワークはさらに、全体でｒ２個の第２内部リンクのために各出力ポートに接続される、少なくとも１つのリンク（以後、「第２内部リンク」と称する）を備えた前記相互接続ネットワークと、
前記各入力ポートが、その各入力ポートからの、多くともｒ２個の前記マルチレートマルチキャストパケットに対し、前記指定出力ポートからのサービスを要求する手段と、
前記各出力ポートが、複数の要求を許可する手段と、
前記各入力ポートが、多くともｒ２個のパケットの許可を承認する手段と、
多くともｒ１個の承認された許可を有する前記マルチレートマルチキャストパケットを、多くともｒ２回のスイッチングにおけるスイッチングすべき各スイッチング時において、前記承認された許可に関連付けられる前記各出力ポートに対し、前記入力ポート内の前記各マルチキャストパケットを、多くとも２回ファンアウト分割することによりスケジューリングする手段と、を備えたことを特徴とするシステム。
【請求項６２】
前記ｒ２個の各出力ポートにあるｒ１個の出力キューであって、前記相互接続ネットワークを介してマルチレートマルチキャストパケットを受信する前記出力キューと、
ｓ≧１個のサブネットワークを備え、各サブネットワークは、各入力ポートに対し全体で少なくともｒ１個の第１内部リンクのための接続される少なくとも１つのリンク（以後、「第１内部リンク」と称する）を備え、各サブネットワークはさらに、各出力ポートに対し全体で少なくともｒ２個の第２内部リンクのために接続される少なくとも１つのリンク（以後、「第２内部リンク」と称する）を備えた前記相互接続ネットワークと、
前記各出力ポートが、多くともｒ１個のパケットを許可する手段と、
ｒ１≦ｒ２であるときは、多くともｒ１個の承認された許可を有する前記マルチレートマルチキャストパケットを、多くともｒ２回のスイッチングにおけるスイッチングすべき各スイッチング時において、ｒ２≦ｒ１であるときは、多くともｒ２個の承認された許可を有する前記マルチレートマルチキャストパケットを、多くともｒ１回のスイッチングにおけるスイッチングすべき各スイッチング時において、前記承認された許可に関連付けられる前記各出力ポートに対し、前記入力ポート内の前記各マルチキャストパケットを、多くとも２回ファンアウト分割することによりスケジューリングする手段と、をさらに備えたことを特徴とする、請求項６１に記載のシステム。
【請求項６３】
前記相互接続ネットワークは、ノンブロッキング相互接続ネットワークであることを特徴とする、請求項６１に記載のシステム。
【請求項６４】
サブネットワークは、
2007528636.tif 000019
個であり、
さらに、前記ノンブロッキング相互接続ネットワークを介して、別のマルチレートマルチキャストパケットに対して、既に選択された経路を決して変更しないことにより、マルチレートマルチキャストパケットに対し、経路が常に選択可能である
ことを特徴とする、請求項６３に記載のシステムであって、
以後、前記相互接続ネットワークは「厳密なノンブロッキングネットワーク」と称する、前記システム。
【請求項６５】
サブネットワークは、ｓ≧１個であり、
前記第１内部リンクと前記第２内部リンクとの双方が、前記入力キューにおいて受信される各パケットのピークレートより、少なくとも３倍速く作動することと、
前記サブネットワークが、前記入力キューにおいて受信される各パケットのピークレートより、少なくとも３倍速く作動することと、
さらに、前記ノンブロッキング相互接続ネットワークを介して、別のマルチレートマルチキャストパケットに対して、既に選択された経路を決して変更しないことにより、マルチレートマルチキャストパケットに対し、経路が常に選択可能である請求項６３に記載のシステムであって、
以後、前記相互接続ネットワークは「厳密なノンブロッキングネットワーク」と称する、前記システム。
【請求項６６】
サブネットワークは、
2007528636.tif 000020
個であり、
さらに、前記ノンブロッキング相互接続ネットワークを介して、別のマルチレートマルチキャストパケットに対して既に選択された経路を、必要であれば変更することにより、マルチレートマルチキャストパケットに対し経路が常に選択可能である請求項６３に記載のシステムであって、
以後、前記相互接続ネットワークは「再配置可能なノンブロッキングネットワーク」と称する、前記システム。
【請求項６７】
サブネットワークは、ｓ≧１個であり、
前記第１内部リンクと前記第２内部リンクとの双方が、前記入力キューにおいて受信される各パケットのピークレートより、少なくとも２倍速く作動することと、
前記サブネットワークが、前記入力キューにおいて受信される各パケットのピークレートより、少なくとも２倍速く作動することと、
さらに、前記ノンブロッキングな相互接続ネットワークを介して、別のマルチレートマルチキャストパケットのため既に選択された経路を、必要であれば変更することにより、マルチレートマルチキャストパケットに対し経路が常に選択可能であることを特徴とする、請求項６３に記載のシステムであって、
以後、前記相互接続ネットワークは「厳密なノンブロッキングネットワーク」と称する、前記システム。
【請求項６８】
前記スケジューリングの手段に結合されるメモリをさらに含み、既にスケジューリングされた前記パケットを保持することを特徴とする、請求項６１に記載のシステム。
【請求項６９】
前記スケジューリングの手段に結合されるメモリをさらに含み、既にスケジューリングされた前記パケットを保持することを特徴とする、請求項６２に記載のシステム。
【請求項７０】
調停、即ち、前記入力ポートによるサービスの要求と、前記出力ポートによる要求の許可と、前記入力ポートによる許可の承認とは、１度の繰り返しのみで実行されることを特徴とする、請求項６１に記載のシステム。
【請求項７１】
調停、即ち、前記入力ポートによるサービスの要求と、前記出力ポートによる要求の許可と、前記入力ポートによる許可の承認とは、１度の繰り返しのみで実行されることを特徴とする、請求項６２に記載のシステム。
【請求項７２】
ｒ１＝ｒ２＝ｒであり、
前記スケジューリングのための手段が、多くともｒ個のパケットを、多くともｒ回のスイッチングにおけるスイッチングすべき各スイッチング時において、許可を承認されて前記許可に結合する前記各出力ポートに対してスケジューリングすることを特徴とする、請求項６１に記載のシステム。
【請求項７３】
ｒ１＝ｒ２＝ｒであり、
前記スケジューリングの手段が、多くともｒ個の承認された許可を有するパケットを、多くともｒ回のスイッチングにおけるスイッチングすべき各スイッチング時において、前記承認された許可に関連付けられる前記各出力ポートに対し、スケジューリングすることを特徴とする、請求項６２に記載のシステム。
【請求項７４】
前記パケットは、実質的に同一サイズであることを特徴とする、請求項６１に記載のシステム。
【請求項７５】
前記入力ポートにおいて行頭ブロッキングが完全に削除されることを特徴とする、請求項６１に記載のシステム。
【請求項７６】
前記入力ポートにある前記入力キューのいくつかは、ユニキャストパケットのみを含むことを特徴とする、請求項６１に記載のシステム。
【請求項７７】
前記入力ポートにある前記入力キューのいくつかは、ユニキャストパケットのみを含むことを特徴とする、請求項６２に記載のシステム。
【請求項７８】
前記スケジューリング手段は、スイッチング時に多くとも１個のパケットを、承認された許可を有する前記各入力キューから、前記承認された許可に関連付けられる前記各出力キューに対しスケジューリングすることを特徴とする、請求項６１に記載のシステム。
【請求項７９】
前記スケジューリング手段は、スイッチング時に多くとも１個のパケットを、承認された許可および多くとも１個のパケットを有する前記各入力キューから、前記承認された許可に関連付けられる前記各出力キューに対しスケジューリングすることを特徴とする、請求項６２に記載のシステム。
【請求項８０】
前記各出力ポートは、少なくとも前記１個のパケットがある限り、スイッチング時に少なくとも１個のパケットを、それを宛先とする前記入力キューのいずれか１つから受信するように作動することを特徴とする、請求項６１に記載のシステムであって、
以後、前記システムは「作業節約システム」と称する、前記システム。
【請求項８１】
前記各出力ポートは、少なくとも前記１個のパケットがある限り、スイッチング時に少なくとも１個のパケットを、それを宛先とする前記入力キューのいずれか１つから受信するように作動することを特徴とする、請求項６２に記載のシステムであって、
以後、前記システムは「作業節約システム」と称する、前記システム。
【請求項８２】
前記各出力ポートは、
スイッチング時に、２つ以上のパケットがそれを宛先としていても、前記相互接続ネットワークにおける前記スピードアップに関係なく、多くとも１個のパケットを受信するように作動し、
それにより、前記スピードアップは、前記相互接続ネットワークを決定論的方式で作動させることのみに利用され、前記出力ポートは決して輻輳しないことを特徴とする、請求項６１に記載のシステム。
【請求項８３】
前記各出力ポートは、
スイッチング時に、２つ以上のパケットがそれを宛先としていても、前記相互接続ネットワークにおける前記スピードアップに関係なく、多くとも１個のパケットを受信するように作動し、
それにより、前記スピードアップは、前記相互接続ネットワークを決定論的方式で作動させることのみに利用され、前記出力ポートは決して輻輳しないことを特徴とする、請求項６２に記載のシステム。
【請求項８４】
前記入力キューの１つからのパケットは、
それらが前記相互接続ネットワークを介して同一経路で前記入力ポートに受信されるのと同一順序で、宛先出力ポートに対し常に決定論的にスイッチングされ、決してパケット順序付けの問題が生じないよう作動し、
それにより、スイッチング回数は設計時における変数となり、複数のバイトが各スイッチング時にスイッチングされるようにスイッチング回数を選択する余地を与えることを特徴とする、請求項６１に記載のシステム。
【請求項８５】
前記入力キューのうち１つからのパケットは、
それらが前記相互接続ネットワークを通じて前記入力ポートに受信されるのと同一順序で、宛先出力ポート内の前記出力キューの１つに対し、常に決定論的にスイッチングされ、前記入力ポート内の前記パケットのセグメント化も、前記出力ポート内の前記パケットの再組立も必要とせず、決してパケット順序付けの問題が生じないように作動し、
それにより、スイッチング回数は設計時における変数となり、複数のバイトが各スイッチング時にスイッチングされるようにスイッチング回数を選択する余地を与えることを特徴とする、請求項６２に記載のシステム。
【請求項８６】
前記各入力キューの行頭にある前記パケットは、前記各入力ポートにある入力キューの前記の数と同数のスイッチング回数を超えては保持されないよう作動することを特徴とする、請求項６１に記載のシステムであって、
以後、前記システムは「公正なシステム」と称する、前記システム。
【請求項８７】
前記各入力キューの行頭にある前記パケットは、前記各入力ポートにある入力キューの前記の数と同数のスイッチング回数を超えては保持されないよう作動することを特徴とする、請求項６２に記載のシステムであって、
以後、前記システムは「公正なシステム」と称する、前記システム。
【請求項８８】
前記相互接続ネットワークは、クロスバーネットワーク、共有メモリネットワーク、ハイパーキューブネットワーク、又は任意の内部ノンブロッキング相互接続ネットワーク、又はネットワークのネットワークであることを特徴とする、請求項６１に記載のシステム。
【請求項８９】
前記システムは、１００％スループットで作動することを特徴とする、請求項６１に記載のシステム。
【請求項９０】
前記システムは、１００％スループットで作動することを特徴とする、請求項６２に記載のシステム。
【請求項９１】
前記レートウェイトに基づいて、いずれの入力ポートからも、任意の数の出力ポートまでのエンドツーエンド保証帯域幅を提供することを特徴とする、請求項６１に記載のシステム。
【請求項９２】
前記レートウェイトに基づいて、いずれの入力ポートからも、任意の数の出力ポートまでのエンドツーエンド保証帯域幅を提供することを特徴とする、請求項６２に記載のシステム。
【請求項９３】
複数の入力ポートから任意の出力ポートまでのパケットの保証レイテンシを提供することを特徴とする、請求項６１に記載のシステム。
【請求項９４】
複数の入力ポートから任意の出力ポートまでのパケットの保証レイテンシを提供することを特徴とする、請求項６２に記載のシステム。
【請求項９５】
前記相互接続ネットワーク内にバッファを必要とせず、従ってカットスルーアーキテクチャであることを特徴とする、請求項６１に記載のシステム。
【請求項９６】
前記相互接続ネットワーク内にバッファを必要とせず、従ってカットスルーアーキテクチャであることを特徴とする、請求項６２に記載のシステム。
【請求項９７】
相互接続ネットワークを介したマルチレートマルチキャストパケットのスケジューリングの方法であって、
前記各パケットが少なくとも１つの宛先出力ポートとレートウェイトとを有するｒ１個の入力ポートおよびｒ２個の出力ポートと、
前記ｒ１個の各入力ポートにある、前記パケットを備えたｒ２個の入力キューと、
ｓ≧１個のサブネットワークを備えた前記相互接続ネットワークであって、各サブネットワークは、各入力ポート対し全体で少なくともｒ１個の第１内部リンクのため接続される、少なくとも１つのリンク（以後、「第１内部リンク」と称する）を備え、各サブネットワークはさらに、各出力ポートに対し全体で少なくともｒ２個の第２内部リンクのため接続される、少なくとも１つのリンク（以後、「第２内部リンク」と称する）を備えた相互接続ネットワークとを有し、
前記方法は、前記各入力ポートに対する、前記指定出力ポートからの、多くともｒ２個の前記マルチレートマルチキャストパケットのサービスを要求するステップと、
前記各出力ポートに対する、複数の要求を許可するステップと、
前記各入力ポートに対する、多くともｒ２個のパケットに許可を承認するステップと、
多くともｒ１個の承認された許可を有する前記マルチレートマルチキャストパケットを、多くともｒ２回のスイッチングにおけるスイッチングすべき各スイッチング時において、前記承認された許可に関連付けられる前記各出力ポートに対し、前記入力ポート内の前記各マルチキャストパケットを、多くとも２回ファンアウト分割することによりスケジュールするステップと、の各ステップを含むことを特徴とする方法。
【請求項９８】
ｒ２個の前記各出力ポートにあるｒ１個の出力キューであって、前記相互接続ネットワークを介してマルチレートマルチキャストパケットを受信する前記出力キューと、
ｓ≧１個のサブネットワークを備えた前記相互接続ネットワークであって、各サブネットワークは、各入力ポート対し全体で少なくともｒ１個の第１内部リンクのため接続される、少なくとも１つのリンク（以後、「第１内部リンク」と称する）を備え、各サブネットワークはさらに、各出力ポートに対し全体で少なくともｒ２個の第２内部リンクのため接続される、少なくとも１つのリンク（以後、「第２内部リンク」と称する）を備えた相互接続ネットワークと、
前記各出力ポートに対し、多くともｒ１個のパケットを許可するステップと、
ｒ１≦ｒ２であるときは多くともｒ１個の、承認された許可を有する前記マルチレートマルチキャストパケットを、多くともｒ２回のスイッチングにおけるスイッチングすべき各スイッチング時において、ｒ２≦ｒ１であるときは多くともｒ２個の、承認された許可を有する前記マルチレートマルチキャストパケットを、多くともｒ１回のスイッチングにおけるスイッチングすべき各スイッチング時において、前記承認された許可に関連付けられる前記出力ポートに対し、前記入力ポート内の前記各マルチキャストパケットを、多くとも２倍にファンアウト分割することにより、スケジュールするステップと、の各ステップをさらに備えたことを特徴とする請求項９７に記載の方法。
【請求項９９】
調停、即ち、前記入力ポートによる前記サービスの要求と、前記出力ポートによる前記要求の許可と、前記入力ポートによる前記許可の承認とを、１度の繰り返しのみで実行することを特徴とする、請求項９７に記載の方法。
【請求項１００】
調停、即ち、前記入力ポートによる前記サービスの要求と、前記出力ポートによる前記要求の許可と、前記入力ポートによる前記許可の承認とを、１度の繰り返しのみで実行することを特徴とする、請求項９８に記載の方法。
【請求項１０１】
ｒ１＝ｒ２＝ｒであり、
前記スケジューリングは、承認された許可を有する多くともｒ個のパケットを、多くともｒ回のスイッチングにおけるスイッチングすべき各スイッチング時において、前記承認された許可に関連付けられる前記各出力ポート対してスケジューリングすることを特徴とする、請求項９７に記載の方法。
【請求項１０２】
ｒ１＝ｒ２＝ｒであり、
前記スケジューリングは、承認された許可を有する多くともｒ個のパケットを、多くともｒ回のスイッチングにおけるスイッチングすべき各スイッチング時において、前記承認された許可に関連付けられる前記各出力ポート対してスケジューリングすることを特徴とする、請求項９８に記載の方法。
【請求項１０３】
前記パケットは、実質的に同一サイズであることを特徴とする、請求項９７に記載の方法。
【請求項１０４】
前記入力ポートにおける行頭ブロッキングは、ユニキャストパケットおよびマルチキャストパケットの双方について完全に削除されることを特徴とする、請求項９７に記載の方法。
【請求項１０５】
前記入力ポートにある前記入力キューのいくつかは、ユニキャストパケットのみを含むことを特徴とする、請求項９７に記載の方法。
【請求項１０６】
前記入力ポートにある前記入力キューのいくつかは、ユニキャストパケットのみを含むことを特徴とする、請求項９８に記載の方法。
【請求項１０７】
前記スケジューリングは、スイッチング時に多くとも１個のパケットを、承認された許可を有する前記各入力キューから、前記承認された許可に関連付けられる前記各出力キュー対して、スケジューリングすることを特徴とする、請求項９７に記載の方法。
【請求項１０８】
前記スケジューリングは、スイッチング時に多くとも１個のパケットを、承認された許可および多くとも１個のパケットを有する前記各入力キューから、前記承認された許可に関連付けられる前記各出力キュー対して、スケジューリングすることを特徴とする、請求項９８に記載の方法。
【請求項１０９】
前記各出力ポートは、少なくとも１つの前記パケットがある限り、スイッチング時に少なくとも１個のパケットを、それを宛先とする前記入力キューのいずれか１つから受信するように作動することを特徴とする、請求項９７に記載の方法。
【請求項１１０】
前記各出力ポートは、少なくとも１つの前記パケットがある限り、スイッチング時に少なくとも１個のパケットを、それを宛先とする前記入力キューのいずれか１つから受信するように作動することを特徴とする、請求項９８に記載の方法。
【請求項１１１】
前記各出力ポートは、
スイッチング時に、２つ以上のパケットがそれを宛先としていても、前記相互接続ネットワークにおける前記スピードアップに関係なく、多くとも１個のパケットを受信するように作動し、
それにより、相互接続ネットワークにおける前記スピードアップは、前記相互接続ネットワークを決定論的方式で作動させることのみに利用し、前記出力ポートは決して輻輳しないことを特徴とする、請求項９７に記載の方法。
【請求項１１２】
前記各出力ポートは、
スイッチング時に、２つ以上のパケットがそれを宛先としていても、前記相互接続ネットワークにおける前記スピードアップに関係なく、多くとも１個のパケットを受信するように作動し、
それにより、前記スピードアップは、前記相互接続ネットワークを決定論的方式で作動させることのみに利用し、前記出力ポートは決して輻輳しないことを特徴とする、請求項９８に記載の方法。
【請求項１１３】
前記入力キューの１つからのパケットは、
それらが前記相互接続ネットワークを介して同一経路で前記入力ポートに受信されるのと同一順序で、宛先出力ポートに対し常に決定論的にスイッチングされ、決してパケット順序付けの問題が生じないよう作動し、
それにより、スイッチング回数は設計時における変数となり、複数のバイトが各スイッチング時にスイッチングされるようにスイッチング回数を選択する余地を与えることを特徴とする、ことを特徴とする請求項９７に記載の方法。
【請求項１１４】
前記入力キューのうち１つからのパケットは、それらが前記相互接続ネットワークを介して前記入力ポートに受信されるのと同一順序で、宛先出力ポート内の前記出力キューの１つに対し、常に決定論的にスイッチングされ、前記入力ポート内の前記パケットのセグメント化も、前記出力ポート内の前記パケットの再組立も必要とせず、決してパケット順序付けの問題が生じないように作動し、
それにより、スイッチング回数は設計時における変数となり、複数のバイトが各スイッチング時にスイッチングされるようにスイッチング回数を選択する余地を与えることを特徴とする、請求項９８に記載の方法。
【請求項１１５】
前記各入力キューの行頭にある前記パケットは、前記各入力ポートにある前記入力キューの数と同数のスイッチング回数を超えては保持されないよう作動することを特徴とする、請求項９７に記載の方法。
【請求項１１６】
前記各入力キューの行頭にある前記パケットは、前記各入力ポートにある前記入力キューの数と同数のスイッチング回数を超えては保持されないよう作動することを特徴とする、請求項９８に記載の方法。
【請求項１１７】
前記方法は、前記パケットを１００％スループットでスケジューリングすることを特徴とする、請求項９７に記載の方法。
【請求項１１８】
前記方法は、前記パケットを１００％スループットでスケジューリングすることを特徴とする、請求項９８に記載の方法。
【請求項１１９】
前記レートウェイトに基づいて、いずれの入力ポートからも、任意の数の出力ポートまでのエンドツーエンド保証帯域幅を提供することを特徴とする、請求項９７に記載の方法。
【請求項１２０】
前記レートウェイトに基づいて、いずれの入力ポートからも、任意の数の出力ポートまでのエンドツーエンド保証帯域幅を提供することを特徴とする、請求項９８に記載の方法。
【請求項１２１】
複数の入力ポートから任意の出力ポートまでのパケットの保証レイテンシを提供するように作動することを特徴とする、請求項９７に記載の方法。
【請求項１２２】
複数の入力ポートから任意の出力ポートまでのパケットの保証レイテンシを提供するように作動することを特徴とする、請求項９８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願に対する相互参照
本出願は、２００３年１１月３０日提出の米国仮特許出願番号６０／５１５，９８５号に関連するものであり、優先権を主張する。本出願は現出願と同一出願人に譲渡され、同時に提出するVenkat Kondaによる「NONBLOCKING AND DETERMINISTIC MULTIRATE MULTICAST PACKET SCHEDULING」と題する関連米国特許出願整理番号Ｖ−００１０号に対するＰＣＴ出願であって、その全体は参照することにより組込まれる。本出願は、現出願と同一出願人に譲渡された２００１年９月２７日提出のVenkat Kondaによる「REARRANGEABLY NON-BLOCKING MULTICAST MULTI-STAGE NETWOARKS」と題する関連連米国特許出願番号０９／９６７，８１５号、及び２００３年９月６日提出の、その一部継続出願のＰＣＴ出願番号ＰＣＴ／ＵＳ０３／２７９７１号に関連し、その全体は参照することにより組込まれる。本出願は、現出願と同一出願人に譲渡された２００１年９月２７日提出のVenkat Kondaによる「STRICTLY NON-BLOCKING MULTICAST MULTI-STAGE NETWORKS」と題する関連米国特許出願番号０９／９６７，１０６号、及び２００３年９月６日提出の、その一部継続出願のＰＣＴ出願番号ＰＣＴ／ＵＳ０３／２７９７２号に関連し、その全体は参照することにより組込まれる。
【０００２】
本出願は、２００３年９月６日提出の関連米国仮特許出願番号６０／５００，７９０号及びその米国特許出願番号１０／９３３，８９９号並びに２００４年９月５日提出のそのＰＣＴ出願番号０４／２９０４３号に関連し、その全体は参照することにより組込まれる。本出願は、２００３年９月６日提出の関連米国仮特許出願番号６０／５００，７８９号及びその米国特許出願番号１０／９３３，９００号並びに２００４年９月５日提出のそのＰＣＴ出願番号０４／２９０２７号に関連し、その全体は参照することにより組込まれる。
【０００３】
本出願は、２００３年１０月３０日提出の関連米国仮特許出願番号６０／５１６，０５７号及びその米国特許出願整理番号Ｖ−０００５号並びに同時提出のそのＰＣＴ出願整理番号Ｓ−０００５号に関連し、その全体は参照することにより組込まれる。本出願は、２００３年１０月３０日提出の関連米国仮特許出願番号６０／５１６，２６５号及びその米国特許出願整理番号Ｖ−０００６号並びに同時提出のそのＰＣＴ出願整理番号Ｓ−０００６号に関連し、その全体は参照することにより組込まれる。本出願は、２００３年１０月３０日提出の関連米国仮特許出願番号６０／５１６，１６３号及びその米国特許出願整理番号Ｖ−０００９号並びに同時提出のそのＰＣＴ出願整理番号Ｓ−０００９号に関連し、その全体は参照することにより組込まれる。
【背景技術】
【０００４】
今日のＡＴＭスイッチ及びＩＰルータは典型的に、様々な型の相互接続ネットワークを採用して、入力ポート（「イングレスポート」とも言う）からのパケットを所望の出力ポート（「エグレスポート」とも言う）にスイッチングする。相互接続ネットワークを介してパケットをスイッチングするには、それらを入力ポート又は出力ポート、あるいは入力ポートと出力ポートの双方においてキューイングされる。パケットは１つ又は複数の出力ポートを宛先としてよい。１つの出力ポートのみを宛先とするパケットをユニキャストパケットと呼び、１つを超える出力ポートを宛先とするパケットをマルチキャストパケットと呼び、出力ポート全部を宛先とするパケットをブロードキャストパケットと呼ぶ。
【０００５】
出力キュー（ＯＱ）スイッチは、出力ポートにおいてのみキューを採用する。出力キュースイッチにおいては、入力ポートにおいてパケットを受信すると即座に宛先出力ポートキューにスイッチングする。パケットは、即座に出力ポートキューに転送されるので、ｒ＊ｒ の出力キュースイッチにおいては、相互接続ネットワークはｒ のスピードアップを必要とする。入力キュー（ＩＱ）スイッチは、入力ポートにおいてのみキューを採用する。入力キュースイッチは、相互接続ネットワークにおいて、１のみのスピードアップを必要とする。あるいは、ＩＱスイッチにおいては、スピードアップを必要としない。しかしながら、入力キュースイッチは、行頭（ＨＯＬ）ブロッキングを除去しない。これは、入力キューの行頭にあるパケットの宛先出力ポートがスイッチング時に使用中であるとき、キュー内の次のパケットの宛先ポートが空いていても、これも遮断してしまうことを意味する。
【０００６】
入出力複合キュー（ＣＩＯＱ）スイッチは、その入力ポートと出力ポートの双方においてキューを採用する。これらのスイッチは、相互接続ネットワークにおいて１とｒとの間のスピードアップを採用することにより、ＯＱおよびＩＱスイッチ双方は、最良の結果を達成する。仮想出力キュー（ＶＯＱ）スイッチと呼ばれる別の型のスイッチは、各入力ポートに、各出力ポートのうち１つを宛先とするパケットにそれぞれ対応するｒ 個のキューを持つ設計となっている。ＶＯＱスイッチは、ＨＯＬブロッキングを除去する。
【０００７】
ＶＯＱスイッチは、近年非常に注目を集めている。「The iSLIP Scheduling Algorithm for Input-Queued Switches」と題するNick Mckeownの論文、IEEE/ACM Transactions on Networking、１９９９年４月、７巻２号は、本発明の背景としてここに参照し組込まれる。この論文には、１８８頁から１９０頁の序章において、クロスバーを基礎とする相互接続ネットワークのための数多くのスケジューリングアルゴリズムが記述されている。
【０００８】
背景として参照してここに組込まれるNick Mckeownに付与された「Combined Unicast and Multicast Scheduling」と題する米国特許６，２１２，１８２号は、各入力ポートにおいてｒ 個のユニキャストキューと１つのマルチキャストキューを用いるＶＯＱスイッチング技術について記述している。各スイッチング時において、１度の繰り返し調停をおこなって、１個のパケットを各出力ポートにスイッチする。
【０００９】
背景として参照してここに組込まれるPrabhakar他に付与された「Switching System and Methods of Operation of Switching System」と題する米国特許６，３５１，４６６号には、各入力ポートにｒ 個のユニキャストキューと各出力ポートに１つのマルチキャストキューを有する、クロスバー相互接続ネットワークにおけるＶＯＱスイッチング技術が、パケットレイテンシの正確な制御を含む出力キュースイッチであるかのように実行する、少なくとも４のスピードアップが必要であると記述されている。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、従来技術のスイッチファブリックには、多くの問題が伴う。第１に、マルチキャストパケットのためのＨＯＬブロッキングが除去されない。第２に、相互接続における数学的最小限のスピードアップが未知である。第３に、相互接続ネットワークにおけるスピードアップの使用は、出力ポートを氾濫させ、これが出力ポートにおける不必要なパケット輻輳、及びパケットをエグレスポート外に送信するための速度減少を招く。第４に、任意にファンアウトされるマルチキャストパケットは、出力ポートに対してノンブロッキング方式ではスケジューリングできない。第５に、各スイッチング時において、パケット調停が繰り返し実行され、スイッチング時間、費用及び電力コストが高くつく。最後に第６として、現行技術は、スケジューリングを貪欲で非決定論的方式で実行するので、それにより入力ポートと出力ポートにおいてセグメント化と再組立を必要とする
【課題を解決するための手段】
【００１１】
各入力ポートにレートウェイトを有するマルチレートマルチキャストパケットを含む、複数の入力ポート、複数の出力ポート、及び複数の入力キューを有する相互接続ネットワークを介してマルチレートマルチキャストパケットをスケジューリングするシステムは、本発明に従って、パケットのレートウェイトに相当する多くとも入力キューと同数のパケットを、各入力ポートから各出力ポートに対しスケジューリングすることにより、ノンブロッキング方式で作動する。スケジューリングは、各マルチキャストパケットが、２つ以下の相互接続ネットワークと２回以下のスイッチング回数を介してファンアウト分割されるように実行される。システムは、１００％スループットで、作業節減、規則的であるが決定論的に作動し、それにより出力ポートを輻輳させることは決してない。このシステムは、相互接続ネットワークにおいて数学的に最小限のスピードアップを用い、調停を１度だけの繰り返しで実行する。このシステムは、相互接続ネットワークにおけるパケットの順序付け問題、パケットの内部バッファリングが決して無く、したがって、真にカットスルーで分散的な方式で作動する。別の実施例においては、各出力ポートも複数の出力キューを含み、各パケットは、パケットのレートウェイトに相当する宛先出力ポート内の出力キューへ、パケットのサイズに違いがあっても、決定論的方式でパケットのセグメント化及び順序付けの必要なしに転送される。一実施例においては、スケジューリングは、相互接続ネットワークにおいて少なくとも３のスピードアップを用いて、厳密なノンブロッキング方式で実行される。別の実施例においては、スケジューリングは、相互接続ネットワークにおいて少なくとも２のスピードアップを用いて、再配置可能なノンブロッキング方式で実行される。このシステムは、マルチレートマルチキャストパケットのため、入力ポートから出力ポートまで、エンドツーエンドの保証帯域幅とレイテンシを提供する。すべての実施例において、相互接続ネットワークは、クロスバーネットワーク、共有メモリネットワーク、クロスネットワーク、ハイパーキューブネットワーク、又はあらゆる内部ノンブロッキング相互接続ネットワーク又はネットワークのネットワークであってよい。
【発明を実施するための最良の形態】
【００１２】
本発明は、入力ポートに到着するマルチレートユニキャスト及びマルチレートの任意ファンアウトマルチキャストパケットを含むスイッチファブリックにおける、通信の性質に無関係なノンブロッキングで決定論的スケジューリングの設計及び操作に関連する。具体的には、本発明は、パケットスケジューリングシステムにおける以下の問題に関する。１）パケットの、厳密に再配列可能なノンブロッキングスケジューリング、２）入力ポートから出力ポートへ（必要な場合は、出力ポート内の特定の出力キューへ）マルチレートパケットをレートウェイトに基づいて、決定論的に、即ち、出力ポートを輻輳させることなくスケジューリングすること、３）パケットのセグメント化と再配列（ＳＡＲ）の実施を必要としないこと、４）調停は、１度の繰り返しだけで行われること、５）相互接続ネットワークにおいて、数学的に最小限のスピードアップを使用すること、及び６）パケットのサイズが可変な場合であっても、１００％スループットで作動すること。
【００１３】
入力ポートにあるパケットが２つ以上の出力ポートを宛先としている場合、１対多数のパケット転送を必要とするので、そのパケットをマルチキャストパケットと呼ぶ。入力ポートにあるパケットが唯１つの出力ポートを宛先としている場合、１対１のパケット転送を必要とするので、そのパケットをユニキャストパケットと呼ぶ。入力ポートにあるパケットがすべての出力ポートを宛先としている場合、１対全部のパケット転送を必要とするので、そのパケットをブロードキャストパケットと呼ぶ。一般的に、マルチキャストパケットは、２つ以上の出力ポートを宛先とすることを意味するので、ユニキャスト及びフロードキャストパケットを含む。相互接続ネットワークを介して転送される１組のマルチキャストパケットは、マルチキャスト割当と呼ばれる。スイッチファブリックにおけるマルチキャストパケット割当は、入力ポートにおいて利用可能な任意のパケットが、任意の利用可能な出力ポートに常に転送することができる場合は、ノンブロッキングである。
【００１４】
ここに記述する型のスイッチファブリックは、出力ポートにおいて仮想出力キュー（ＶＯＱ）を採用する。一実施例において、各入力ポートにおいて受信されるパケットは、存在する出力ポートと同数のキューの中に配置される。各キューは、出力ポートの１つのみを宛先とするパケットを保持する。したがって、ユニキャストパケットは、その宛先出力ポートに対応する対応入力キューの中に置かれ、マルチキャストパケットは、その宛先出力ポートの１つに対応する対応入力キューのいずれか１つの中に置かれる。しかしながら、各入力キューの中にあるパケットは、パケットのレートを示すパケットのレートウェイトにより、任意に異なるレートでデータを運ぶ。入力キューにおけるパケットのレートウェイトは、正の整数を用いて示す。例えば、入力キューにおいて、２のレートウェイトを有するパケットは、別の入力キュー内のレートウェイト１のパケットより２倍速いレートで出力ポートにスイッチングされる。スイッチファブリックは、出力ポートに出力キューがあることも、ないこともある。出力キューがある場合は、一実施例において、存在する入力ポートと同数のキューが各出力ポートに存在する。パケットは、レートウェイトに関係なく、各出力キューが１つの入力ポートのみからスイッチングされたパケットを保持するよう、出力キューにスイッチングされる。
【００１５】
ここに記述するタイプのスイッチファブリックの一定のものにおいては、すべての入力ポート内の各入力キューは、マルチレートの任意ファンアウトマルチキャストパケットを有すると、入力キューにおけるパケットのレートウェイトにしたがって、出力ポートにおいて異なる帯域幅を割り当てる。本発明は、このようなマルチレートの任意ファンアウトマルチキャストパケットのためのノンブロッキングで決定論的スイッチファブリックに関する。一定レートのユニキャストパケットを有し、すべての入力ポートの中に各入力キューを持つノンブロッキングで決定論的スイッチファブリックが、出力ポートにおいて同等の帯域幅を割り当てることは、上記参照して組込まれた米国特許出願、弁理士整理番号Ｖ−０００５号及びＰＣＴ出願、弁理士整理番号Ｓ−０００５号に詳細な記述がある。
【００１６】
一定レートのマルチキャストパケットを有し、すべての入力ポート内に各入力キューを持つノンブロッキングで決定論的スイッチファブリックが、出力ポートにおいて同一の帯域幅を割り当てることは、上記参照して組込まれた米国特許出願、弁理士整理番号Ｖ−０００６号及びそのＰＣＴ出願、弁理士整理番号Ｓ−０００６号に詳細な記述がある。マルチレートユニキャストパケットを有し、各入力キューを持つノンブロッキングで決定論的スイッチファブリックが、出力ポートにおいて異なる帯域幅を割り当てることは、上記参照して組込まれた米国特許出願、弁理士整理番号Ｖ−０００９号及びそのＰＣＴ出願、弁理士整理番号Ｓ−０００９号に詳細な記述がある。
【００１７】
図１Ａを参照すると、模範的なスイッチファブリック１０は、４つの入力ポート１５１−１５４を含む入力ステージ１１０と、３つの４×４クロスバーネットワーク１３１−１３３を含む相互接続ネットワークの中間ステージ１３０を経由して、４つの出力ポート１９１−１９４を含む出力ステージ１２０から成る。各入力ポート１５１−１５４は、それぞれ入口リンク１４１−１４４を介してマルチレートマルチキャストパケットを受信する。各出力ポート１９１−１９４は、それぞれ出口リンク２０１−２０４を介してマルチレートマルチキャストパケットを送信する。各クロスバーネットワーク１３１−１３３は、８つのリンク（以下「第１内部リンク」と言う）ＦＬ１−ＦＬ８を介して、４つの入力ポート１５１−１５４にそれぞれ接続され、さらに８つのリンク（以下「第２内部リンク」と言う）ＳＬ１−ＳＬ８を介して、４つの出力ポート１９１−１９４にそれぞれ接続されている。図１Ａのスイッチファブリック１０においては、入口リンク１４１−１４４、第１内部リンクＦＬ１−ＦＬ８、第２内部リンクＳＬ１−ＳＬ８、及び出口リンク２０１−２０４のそれぞれは、同一レートで作動する。
【００１８】
各入力ポート１５１−１５４において、入口リンク１４１−１４４を介して受信されるマルチレートマルチキャストパケットは、出力ポート１９１−１９４を宛先とするパケットが、各入力ポート１５１−１５４においてそれぞれ入力キュー１７１−１７４の中に置かれるように、存在する出力ポートと同数の入力キュー１７１−１７４（４個）に、それらマルチレートマルチキャストパケットの宛先出力ポートに応じてソートされる。一実施例においては、図１Ａのスイッチファブリック１０に示すように、マルチレートマルチキャストパケットを入力キューに置く前に、優先順位キュー１６１−１６４の中に置いてもよい。各優先順位キュー１６１−１６４は、「１−ｆ」の優先順位に対応するマルチレートマルチキャストパケットを保持するｆ 個のキューを含む。例えば、出力ポート１９１を宛先とするパケットは、パケット「１−ｆ」の優先順位に基づいて、優先順位キュー１６１の中に置き、最高優先順位のパケットは、次の最優先順位パケットを置く前に、最初に入力キュー１７１の中に置く。優先順位キュー１６１−１６４の使用は、スイッチファブリック１０の作動には関係しないので、図１Ａのスイッチファブリック１０は、別の実施例においては優先順位キュー１６１−１６４無しで実施することもできる。（優先順位キューの使用は、本発明に記述するすべての実施例に無関係なので、すべての実施例は、優先順位キュー無しで、ノンブロッキングで決定論的方式で実施することもできる。）
【００１９】
このネットワークは、入力ステージ１１０、出力ステージ１２０及び中間ステージ１３０に結合されて、入力ポート５１−１５４から出力ポート１９１−１９４へパケットをスイッチングするスケジューラも含む。スケジューラはメモリの中に、中間ステージ１３０内の相互接続ネットワークを通る経路のため利用可能な宛先のリストを保存している。
【００２０】
一実施例においては、図１Ａに示すように、各出力ポート１９１−１９４は、存在する入力ポート（４個）と同数の出力キュー１８１−１８４を含み、入力ポート１５１−１５４からスイッチングされるパケットが、各出力ポート１９１−１９４において、それぞれ出力キュー１８１−１８４内に置かれるようになっている。図１Ａのスイッチファブリック１０における４つの入力ポート１５１−１５４内の各入力キュー１７１−１７４は、入力ポート１５１内の入力キュー１７１の中にＡ１−Ａ４、および入力ポート１６４内の第４の入力キュー１７４の中にＰ１−Ｐ４の４個のパケットが、出力ポートに対してスイッチングされる態勢の整った模範的な状態を示す。４つの入力ポート１５１−１５４における１６個のすべての入力キュー内の行頭パケットは、それぞれＡ１−Ｐ１で指定される。
【００２１】
表１は、図１Ａのスイッチファブリック１０における、出力キュー割当に対する模範入力キューを示す。入力ポート１５１内の入力キュー１７１内のＩ｛１，１｝で示すユニキャストパケットは、Ｏ｛１，１｝で示される出力ポート１９１内の出力キュー１８１に対して割当てられ、スイッチングされる。入力ポート１５１内の入力キュー１７２内のＩ｛１，２｝で示されるユニキャストパケットは、Ｏ｛１，２｝で示される出力ポート１９２内の出力キュー１８１に対してスイッチングされ割当てられる。同様に、残りの１６個の入力キュー内のパケットは、表１に示すように、残りの１６個の出力キューに割り当てられる。任意に与えられた入力キューからのマルチレートユニキャストパケットは、表１に示すように、常に同一指定出力キューにスイッチングされる。別の実施例においては、入力キューから出力キューへの割当は、表１と異なるが、本発明に従うと、各出力ポート内の出力キューに対しパケットをスイッチングするのに割当てられる各入力ポート内の入力キューは、１つのみであり、その逆も真である。
【００２２】
【表１】
2007528636.tif 000003
【００２３】
マルチキャスト割当を特徴付けるには、ｘ，ｙ∈｛１−４｝であるときＩ｛ｘ，ｙ｝について、ＯＰ⊂｛１，２，３，４｝が入力キューＩ｛ｘ，ｙ｝のマルチキャストパケットが宛先とする出力ポートのサブセットを示すとき、Ｉ｛ｘ、ｙ｝＝ＯＰとする。一実施例において、入力キューＩ｛ｘ、ａ｝＝ＯＰ｛ａ，ｂ，ｃ，ｄ｝からのマルチキャストパケットは、４つの出力ポートａ、ｂ、ｃ、及びｄ内の出力キューＯ｛ａ，ｘ｝、Ｏ｛ｂ，ｘ｝、Ｏ｛ｃ，ｘ｝、及びＯ｛ｄ，ｘ｝に対してスイッチングされる。例えば、入力キューＩ｛１、１｝＝ＯＰ｛１，２｝内のマルチキャストパケットは、出力キューＯ｛１，１｝とＯ｛２，１｝に対してスイッチングされる。同様に、入力キューＩ｛１、１｝＝ＯＰ｛１，２，３，４｝内のマルチキャストパケットは、出力キューＯ｛１，１｝、Ｏ｛２，１｝、Ｏ｛３，１｝、及びＯ｛４，１｝に対して交換される。
【００２４】
入口リンク１４１においてＯＰ⊂｛１，２，３，４｝で受信するマルチキャストパケットは、入力キューＩ｛１，１｝、Ｉ｛２，１｝、Ｉ｛３，１｝、及びＩ｛１，４｝の任意の１つに置かれる。それは、パケットの宛先出力ポートは、すべての出力ポート１９１−１９４であるからである。しかしながら、出願者は、一旦マルチキャストパケットが、例えば入力キューＩ｛１，１｝に、置かれると、続く残りの同一のソースと宛先アドレスを持つパケットは、入口リンク１４１により受信されたパケットの順序を維持するように、同一入力キューに置かれることに注目する。例えば、マルチキャストパケットが、入力キューＩ｛１，２｝＝ＯＰ｛１，２，３，４｝に置かれることもあるが、そのときは、出力キューＯ｛１，１｝、Ｏ｛２，１｝、Ｏ｛３，１｝、及びＯ｛４，１｝に対しスイッチングされる。したがって、どの入力キューに置かれるかに関わりなく、宛先出力ポート内の同一出力キューに対してスイッチングされる。マルチレートユニキャストパケットと全く同様に、与えられた任意の入力キューからのマルチレートユニキャストパケットは、常に同一指定出力キューに対してスイッチングされる。
【００２５】
表２は、図１Ａのスイッチファブリック１０において、入力ポートの入力キューにより、入力リンク１４１−１４４を介して受信されるマルチレートマルチキャストパケット要求の模範的セットを示す。入力キューＩ｛１，１｝におけるマルチキャストパケットは、レートウェイト２の出力キューＯ｛１，１｝、及びＯ｛４，１｝を宛先としてスイッチングされる。入力キューＩ｛１，３｝におけるマルチキャストパケットは、レートウェイト１の出力キューＯ｛１，１｝、及びＯ｛３，１｝を宛先としてスイッチングされる。同様に、残りの１６個の入力キューのうち、出力キューに対して割当てられたマルチレートパケットを有する入力キューのみを、表２に示す。すべての入力ポート１５１−１５４の各入力キュー１７１−１７４からのパケットのレートウェイトを、図１Ａに示すように２１１−２１４で表示する。
【００２６】
出願者は、図１Ａのスイッチファブリック１０は４×４ポートであるため、各入力ポート内のすべての入力キューのレートウェイトの合計は４を超えることが出来ないことを承知している。各入力ポート内の４つのすべての入力キューが、各出力ポートに等しい帯域幅を割り振る場合は、各入力キューのレートウェイトは１である。入力キューの１つが、１より大きいレートウェイトを有する場合、それは同一入力ポート内の別の入力キューの犠牲で成り立っている。それは、各入口リンクは、各スイッチング時に１つのみのパケットしか受信できないからである。したがって、各入力ポート内のすべての入力キューのレートウェイトの合計は、図１Ａのスイッチファブリック１０においては４（出力ポートの数）を超えることが出来ない。しかしながら、入力キューが、表２に示すようなマルチレートユニキャストパケットを含む場合は、入力ポートの競合が生じる。（出願者は、入力ポートの競合は、マルチキャストプロパティのため生じるのであって、パケットのマルチレートプロパティのためではないことに注目する）。各出力ポートは４回のスイッチングで（以下「ファブリックスイッチングサイクル」と言う）多くとも４個のパケットを受信することができるので、各入力ポートの入力キュー内の、受信した異なるファンアウトのすべてのマルチキャストパケットは、出力ポートにスイッチングすることができず、入力ポートの競合が生じる。したがって、そのうちの少ほんの数個のみが、選択され出力ポートにスイッチングされる。
【００２７】
【表２】
2007528636.tif 000004
【００２８】
図１Ｂは、本発明にかかる、調停及びスケジューリング方法を、中間ステージ１３０に３個の４×４クロスバーネットワーク１３１−１３３を用いて、即ち、３のスピードアップにより、図１Ａのスイッチファブリック１０を厳密なノンブロッキングな決定論的方式で作動させる一実施例により示す。厳密なノンブロッキングな決定論的スイッチングの実施に当たって使用される具体的な方法は、本開示の観点から当業者には明らかな多くの異なる方法の中の任意の方法でよい。このような調停及びスケジューリング方法の１つを、図１Ｂを参照して以下に記述する。
【００２９】
図１Ｂの方法４０の調停部分は（詳細は後述）、３つのステップからなる。即ち、入力ポートによる要求の生成、出力ポートによる許可の発行、及び入力ポートによる許可の承認である。ファブリックスイッチングサイクル毎に出力ポートは、出力ポートを輻輳状態にすることなく、最大４個のパケットを受信することができるので、マルチキャストパケットをそのファンアウト回数だけカウントし、最大４個のパケットを入力ポートからスイッチングすることができる。従って、１回のファブリックスイッチングサイクルにおいて、調停を実行して、各入力ポートからスイッチングすべき最大４個のパケットを選択する。表３は、表２に示すパケットの入力競合を解消した後、出力ポートに対してスイッチングされる各入力ポートからの４個のパケットを示す。入力ポート競合を解消するのに使用される特定の調停基準は、多くとも４個のパケットがファブリックスイッチングサイクル毎に各入力ポートからスイッチングされるように、マルチキャストパケットが選択される限り、本発明には関係がない。
【００３０】
表３に示すように、入力ポート１５１からは、連続する２つパケットがファブリックスイッチングサイクル毎に、Ｉ｛１，１｝から出力ポート１９１、及び１９４に対し、即ちレートウェイト２でスイッチングされる。明らかに、ファブリックスイッチングサイクル毎に入力ポート１５１からスイッチングされるパケットの総数は、マルチキャストパケットをそのファンアウトと同じ回数をカウントすると４個である。表２に示すＩ｛１，２｝及びＩ｛１，３｝からのパケットは、出力ポートにスイッチングされない。これらは、入力ポート競合の解消中の調停において選択されなかったからである。同様に、残りの入力ポートにおいても、表３に示すように、４個のパケットのみが選択され、これらは、ファブリックスイッチングサイクル毎に、出力ポートにスイッチングされる。
【００３１】
【表３】
2007528636.tif 000005
【００３２】
【表４】
2007528636.tif 000006
【００３３】
表４は、表３の入力ポートにおいて生成されたパケット要求に対応する、出力ポートにより受信されるパケット要求を示す。マルチレートパケットは、出力ポートにおいて予約過多を生じることがある。出力ポートの予約過多がある場合、出力ポート競合が生じる。表５は、パケットプロパティとポート競合の可能性との関係を示す。パケットのマルチキャストプロパティにより、入力ポート競合が生じ、パケットのマルチレート性により、出力ポート競合が生じる。表５に示すように、入力キュー内のユニレートユニキャストパケットは、入力ポート競合も出力ポート競合も生じない。入力キュー内のユニレートマルチキャストパケットは、入力ポート競合を生じるが、出力ポート競合は生じない。入力キュー内のマルチレートユニキャストパケットは、出力ポート競合を生じるが、入力ポート競合は生じない。入力キュー内のマルチレートマルチキャストパケットは、入力ポートと出入力ポート双方に競合を生じる。（マルチレートユニキャストパケットに関しては、前回スイッチング時に、エグレスポートの予約過多のため、未処理のトラフィックがあるときは、入力ポート競合が生じることがあることにも注目しなければならない。）
【００３４】
【表５】
2007528636.tif 000007
【００３５】
図１Ａのスイッチファブリック１０において、１つの入口リンクは、各スイッチング時に多くとも１個のパケットを受信し、１つの出口リンクは、各スイッチング時に多くとも１個のパケットを送信する。また、本発明に基づき、ノンブロッキングスイッチングのためだけに、中間ステージにおいてスピードアップを使用することにより、各スイッチング時に、各入力ポートは、それはマルチキャストパケットでもよいが、多くとも１個のパケットを、指定出力ポートに対してスイッチングし、各出力ポートは、多くとも１個のパケットを入力ポートから受信する。したがって、図１Ａの４×４スイッチファブリック１０においては、各ファブリックスイッチングサイクルに、１つの出力ポートは、多くとも４個のパケットを受信する。したがって、入力ポートから受信し、各出力ポートによるスイッチングの許可が可能なすべての要求のレートウェイトの合計は、１回のファブリックスイッチングサイクルにおいて、多くとも４である。
【００３６】
代わりに、すべてのパケット要求のレートウェイトの合計が１つの出力ポートにおいて４より多いとき、それは、出力ポートが予約過多であることを意味する。出願者は、出力ポートが１回のファブリックスイッチングサイクルにおいて受信することのできる４つのすべてのパケットの外に、入力ポート内の同じ入力キューから、２つ以上のパケットを受信することがある、即ち、その入力キューからパケットのレートウェイトが、１を超える場合があることも注意する。
【００３７】
表４に示すように、各出力ポート１９１−１９４において要求されるすべての出力キューのレートウェイトの合計は、それぞれ７、３、３、及び３である。明らかに、出力ポート１９１は予約過多である。出力ポート１９２−１９４は、予約過多ではなく、すべての要求をそれぞれの入力ポートに対して許可する。１つの出力ポートにおいて予約過多がある場合は、多くとも４つの要求が、出力ポート競合解消基準に基づいて許可される。一実施例においては、表６に示すように、出力ポート１９１は、入力ポート１５１、１５３，及び１５４に対して許可を発行して、すべての要求のレートウェイトの合計を４に制限する。第１調停ステップにおいて、各入力ポートは、すべての要求の合計が多くとも４になる要求を生成するので、各入力ポートにおけるすべての許可のレートウェイトの合計は、決して４を超えることはない。したがって、出力ポートが発行する許可は、表６に示すように、直接入力ポートによる承認となる。出力ポートがスイッチングを許可しない入力キュー、例えば表２のＩ｛１，３｝及びＩ｛１，４｝は、パケットを出力ポートにスイッチングすることが出来ない。また、表７は、図１Ａのスイッチファブリック１０における、入力ポートによるパケット承認の受信を示す。
【００３８】
【表６】
2007528636.tif 000008
【００３９】
表３及び表６において使用する入力ポート競合及び出力ポート競合の解消策は、入力ポートから出力ポートへの特定の帯域幅割当目標に基づくことに注意しなければならない。しかしながら、この目標は、スイッチファブリックを１００％スループットで活用する目標と対立する。１００％スループットで活用するには、別の実施例において、調停を１回より多い繰り返しが必要となる。何れの基準を使用して入力ポート競合及び出力ポート競合を解消するにしても、図１Ａのスイッチファブリック１０は常に、本発明にかかるノンブロッキングな決定論的方式で作動する。
【００４０】
【表７】
2007528636.tif 000009
【００４１】
本発明により、１６個の入力キューから、承認許可を有するすべての行頭パケットが、４回のスイッチングによりノンブロッキング方式で、中間ステージ１３０の相互接続ネットワークを経由して、入力ポートから出力ポートへスイッチングされる。各スイッチング時に、多くとも１個のパケット、それはマルチキャストパケットでもよいが、各入力ポートから各出力ポートに多くとも１個のパケットがスイッチングされる。１より大きいレートウェイトを有する各パケット要求は、レートウェイトと等しい別個の要求があるが、同一のスイッチング入力キューからスイッチングされ、同一のスイッチング出力キューにスイッチングされるように扱われる。ここで、出願者は、図１Ａのスイッチファブリック１０において１６個の入力キューから出力ポート１９１−１９４に対してスイッチングすることを承認されたパケットの決定論的でノンブロッキングなスケジューリングの問題は、図１Ｃに示す３ステージクロスネットワーク１４のノンブロッキングなスケジューリングに関係するという重要な見方をしている。
【００４２】
図１Ｃを参照すると、中間ステージ１３０を経由して入力ステージ１１０と出力ステージ１２０との間の通信要求を満足する１１個のスイッチの時間−空間−時間（ＴＳＴ）構成で作動する、模範的な対称３ステージクロスネットワーク１４が示されている。この場合、入力ステージ１１０は、４個の４×３スイッチＩＳ１−ＩＳ４を含み、出力ステージ１２０は、４個の３×４スイッチＯＳ１−ＯＳ４を含み、中間ステージ１３０は、３個の４×４スイッチＭＳ１−ＭＳ３を含む。入力ステージ１１０の各スイッチに対する入口リンクの数、及び出力ステージ１２０の各スイッチに対する出口リンクの数をｎで表示し、入力ステージ１１０及び出力ステージ１２０のスイッチの数をｒで表示する。３個の各中間スイッチＭＳ１−ＭＳ３は、ｒ個のリンク（例えば、各入力スイッチＩＳ１−ＩＳ４から中間スイッチＭＳ１に対し接続されるリンクＦＬ１−ＦＬ４）を介してｒ個の各入力スイッチに接続され、ｒ個の第２内部リンク（例えば、中間スイッチＭＳ１から各出力スイッチＯＳ１−ＯＳ４に対して接続されるリンクＳＬ１−ＳＬ４）を介して、各出力スイッチに接続される。このネットワークは、１６個の入口リンク、即ちＩ｛１，１｝−Ｉ｛４，４｝及び１６個の出口リンク、即ちＯ｛１，１｝−Ｏ｛４，４｝を有する。図１Ａのスイッチファブリック１０と全く同様に、図１Ｃの３ステージクロスネットワーク１４においては、１６個のすべての入力リンクが、表１に示すように１６個の出力リンクに割当てられる。図１Ｃのネットワーク１４は、第１ステージにおける各接続要求を多くとも２回、中間ステージ１３０におけるスイッチの数が
2007528636.tif 000010
個に等しいとき、中間ステージにおいては必要とする回数だけ、ファンアウトすることにより、マルチキャスト接続要求のため厳密なノンブロッキング方式で作動することができる（本発明の背景として参照して組込まれる、Venkat Kondaにより現出願と同一出願人に譲渡された２００１年９月２７日提出の「STRICTLY NON-BLOCKING MULTICAST MULTI-STAGE NETWORKS」と題する関連米国特許出願番号０９／９６７，１０６号、及び２００３年９月６日提出の、その一部継続ＰＣＴ出願番号ＰＣＴ／ＵＳ０３／２７９７２号を参照）。
【００４３】
本発明にしたがって、中間ステージ１３０に３個の４×４クロスバーネットワーク１３１−１３３を有する、即ち、３のスピードアップを有する一実施例において、図１Ａのスイッチファブリック１０は、入力ポートにおける各パケット要求を、多くとも２回及び、中間ステージ相互接続ネットワークにおいては、必要とする回数だけファンアウトすることにより、厳密ノンブロッキング方法で作動する。厳密なノンブロッキングで決定論的なスイッチングを実施するに当たって使用する具体的な方法は、本開示の観点で当業者には明らかな多数の異なる方法のうちいずれでもよい。このようなスケジューリング方法の１つは、図１Ｂの調停及びスケジューリング方法のスケジューリング部分である。
【００４４】
【表８】
2007528636.tif 000011
【００４５】
表８は、表７の承認に関する４回の各スイッチング時における、図１Ｂの調停及びスケジューリング方法のスケジューリング部分を使用した一実施例によるパケットのスケジューリングを示す。図１Ｄ〜図１Ｈは、各スイッチング後の図１Ａのスイッチファブリック１０の状態を示す。図１Ｄは、パケットＡ１、Ｋ１及びＭ１が、出力キューにスイッチングされる１回目のスイッチング後の図１Ａのスイッチファブリック１０の状態を示す。入力ポート１５１からのレートウェイト２を有するマルチキャストパケットＡ１は、出力ポート１９１と１９４を宛先とする。本発明により、マルチキャストパケットは、多くとも２つの相互接続ネットワーク１３１−１３３を介して、４回のスイッチングのいずれかにおいてファンアウトされる。例えば、図１Ｄに示すように、入力ポート１５１からのパケットＡ１は、クロスバーネットワーク１３１を経由して、１回目のスイッチングで、出力ポート１９４の出力キュー１８１の中にスイッチングされる。（パケットＡ１は、後述するように、図１Ｅに示す２回目のスイッチングで、クロスバースイッチ１３１を介して、出力ポート１９１の出力キュー１８１に対してスイッチングされる）。従って、マルチキャストパケットＥ１は、２つのクロスバーネットワークのみ、即ち１回目のスイッチングにおけるクロスバーネットワーク１３１、および２回目のスイッチングにおけるクロスバーネットワーク１３１を介して、ファンアウトされる。その上、パケットＡ１は、レートウェイト２を有するマルチレートなので、パケットＡ２も、最初の４回のスイッチング時に出力ポート９１及び１９４に対してスイッチングされる。（パケットＡ２は、中間スイッチ１３２を介して、そこから出力ポート１９１及び１９４へ、４回目のスイッチングでファンアウトされる。パケットＡ１およびパケットＡ２は、別個にスケジューリングされ、それらが同一経路を行き来することはなく、同一の中間スイッチを介してファンアウトされる必要もないことに注意しなければならない）。
【００４６】
本発明により、入力ポートからのマルチキャストは、中間ステージにある多くとも２つのクロスバーネットワークを介して、おそらくは２回のスイッチングでファンアウトされ、中間ステージ（クロスバー）ネットワークからのマルチキャストパケットは、必要な数の出力ポートに対してファンアウトされる。また、マルチキャストパケットが宛先出力ポートに対して、２回の別にスケジューリングされたスイッチングにおいてスイッチングされる場合、１回目のスイッチング後、そのマルチキャストパケットは、２回目にスケジューリングされたスイッチングで、残りの出力ポートに対してスイッチングされるまで、入力キューの行頭に保たれるままである。したがって、図１Ｄにおいて、パケットＡ１は、まだ入力ポート１５１の入力キュー１７１の行頭にある。
【００４７】
図１Ｄにおいて、入力ポート１５３からの、レートウェイト１を有するユニキャストパケットＫ１は、クロスバーネットワーク１３１を経由して出力ポート１９３の出力キュー１８３にスイッチングされる。入力ポート１５４からの、レートウェイト１を有する（出力ポート１９１−１９４を宛先とする）マルチキャストパケットＭ１は、クロスバーネットワーク１３２を介してファンアウトされ、クロスバーネットワーク１３２から、出力ポート１９２の出力キュー１８４及び出力ポート１９４の出力キュー１８４にファンアウトされる。パケットＭ１は、後述するように、２回目のスイッチングで、出力ポート１９３−１９４にスイッチングされる。マルチキャストパケットＭ１も、まだ入力ポート１５４の入力キュー１７１の行頭に残されている。出願者は、すべての出力ポートは、各スイッチング時において、多くとも１個のパケットを受信するが、マルチキャストパケットがスイッチングされる場合は、すべての入力ポートは、各スイッチング時において、多くとも１個のパケットをスイッチングするわけではないないことを承知している。
【００４８】
図１Ｅは、パケットＡ１、Ｊ１及びＭ１が出力キューにスイッチングされる２回目のスイッチングの後の、図１Ａのスイッチファブリック１０の状態を示す。入力ポート１５１からのマルチキャストパケットＡ１は、クロスバーネットワーク１３１を経由して出力ポート１９１の出力キュー１８１にスイッチングされる。マルチキャストパケットＡ１は、すべての宛先出力ポートにスイッチングし尽くされるので、行頭から削除され、したがってパケットＡ２が入力ポート１５１の入力キュー１７１の行頭になる。入力ポート１５３からのユニキャストパケットＪ１は、クロスバーネットワーク１３３を経由して出力ポート１９２の出力キュー１８３にスイッチングされる。入力ポート１５３からのマルチキャストパケットＭ１は、クロスバーネットワーク１３２を介してファンアウトされ、そこから出力ポート１９３の出力キュー１８４、及び出力ポート１９４の出力キュー１８４にファンアウトされる。マルチキャストパケットＭ１は、すべての宛先出力ポートにスイッチングし尽くされるので、行頭から削除され、したがってパケットＭ２が、入力ポート１５４のキュー１７１の行頭になる。ここでも、２回目のスイッチングで、各入力ポートからパケット１つだけがスイッチングされ、各出力ポートはパケット１つだけを受信する。ここでも、２回目のスイッチングにおけるすべての出力ポートは、多くとも１個のパケットを受信する。
【００４９】
図１Ｆは、パケットＧ１及びＩ１が出力キューにスイッチングされる３回目のスイッチング後の、図１Ａのスイッチファブリック１０の状態を示す。入力ポート１５２からのユニキャストパケットＧ１は、クロスバーネットワーク１３１を経由して、出力ポート１９３の出力キュー１８２にファンアウトされる。入力ポート１５３からのユニキャストパケットＩ１は、クロスバーネットワーク１３２を経由して、出力ポート１９１の出力キュー１８３にスイッチングされる。ここでも、３回目のスイッチングにおけるすべての出力ポートは、多くとも１個のパケットを受信する。
【００５０】
図１Ｇは、パケットＡ２及びＪ２が出力キューにスイッチングされる、４回目のスイッチング後の、図１Ａのスイッチファブリック１０の状態を示す。入力ポート１５１の入力キュー１７１からのパケットは、２のレートウェイトを有するので、入力ポート１５１からのマルチキャストマルチレートパケットＡ２は、クロスバーネットワーク１３２内にファンアウトされ、そこから出力ポート１９１の出力キュー１８１及び出力ポート１９４の出力キュー１８１にファンアウトされる。マルチキャストパケットＡ２は、すべての宛先にスイッチングし尽くされるので、入力ポート１５１のキュー１７１の行頭から削除される。入力ポート１５３の入力キュー１７２からのパケットはレートウェイト２を有するので、入力ポート１５３からのマルチキャストパケットＪ２は、クロスバーネットワーク１３１を経由して、出力ポート１９２の出力キュー１８３の中にスイッチングされる。ここでも、４回目のスイッチングにおけるすべての出力ポートは、多くとも１個のパケットを受信する。
【００５１】
図１Ｈは、パケットＡ３、Ｋ２，及びＭ２が出力キューにスイッチングされる４回目のスイッチング後の、図１Ａのスイッチファブリック１０の状態を示す。入力ポート１５１からの、レートウェイト２を有するマルチキャストパケットＡ３は、出力ポート１９１及び１９４を宛先とする。図１Ｄにおけるのと全く同様に、入力ポート１５１からのパケットＡ３は、クロスバーネットワーク１３１を経由して、５回目のスイッチングで、出力ポート１９４の出力キュー１８１にスイッチングされる。（パケットＡ３は、パケットＡ１がスイッチングし尽くされるのと全く同様に、後のスイッチングにおいて、出力ポート１９１の出力キュー１８１に対しスイッチングされる）。パケットＡ３は、レートウェイト２を有するマルチレートなので、パケットＡ３も、同一ファブリックスイッチングサイクルの中で、出力ポート１９１及び１９４に対しスイッチングされる。パケットＡ３は、まだ宛先ポートすべてに対してスイッチングされていないので、入力ポート１５１の入力キュー１７１の行頭に残されている。入力ポート１５３からの、レートウェイト１を有するユニキャストパケットＫ２は、クロスバーネットワーク１３３を経由して、出力ポート１９３の出力キュー１８３の中にスイッチングされる。
【００５２】
入力ポート１５４からの（出力ポート１９１−１９４を宛先とする）レートウェイト１を有するマルチキャストパケットＭ２は、クロスバーネットワーク１３２を介してファンアウトされ、クロスバーネットワーク１３２から出力ポート１９２の出力キュー１８４及び出力ポート１９４の出力キュー１８４の中にファンアウトされる。パケットＭ２は、パケットＭ１と全く同様に、後で同一ファブリックスイッチングサイクルの中で、出力ポート１９１−１９４に対しスイッチングされる。したがって、マルチキャストパケットＭ２も、まだ入力ポート１５４のキュー１７１の行頭にある。出願者は、すべての出力ポートは、各スイッチング時において、多くとも１個のパケットを受信するが、マルチキャストパケットがスイッチングされる場合は、すべての入力ポートが各スイッチング時において、多くとも１個のパケットをスイッチングするわけではないことを承知している。したがって、図１Ｂの調停及びスケジューリング方法４０は、第１ファブリックスイッチングサイクルのためのスケジュールを実行した後、再スケジューリングを行う必要はない。したがって、いずれかの特定の入力キューから宛先出力キューに対するパケットは、同一経路に沿ってスイッチングされ、入力ポートがそれを受信した通りの順序で移動するので、パケット順序付けの問題は決して生じない。
【００５３】
４回のスイッチングにおいては、最大１６個のマルチキャストパケットが出力ポートにスイッチングされるので、このスイッチは、本発明に基づき、ノンブロッキングで、１００％スループットで作動する。図１Ａのスイッチファブリック１０は、各出力ポートが、それを宛先とする入力キューのいずれか１つから少なくとも１個のパケットがある限り、スイッチング時に、少なくとも１個のパケットを受信するように作動するので、以後、このスイッチファブリックを「作業節約システム」と呼ぶ。スイッチファブリックがノンブロッキングであるとき、スイッチファブリックがそのままで作業節約的であることに気付くのは容易である。本発明により、図１Ａのスイッチファブリック１０は、各入力キューの行頭にあるパケットが、各入力ポートにある入力キュー（４個）の数に等しいスイッチング回数を超えては保持たれないよう作動する。以後このスイッチファブリックを「公正システム」と呼ぶ。仮想出力キューを使用するので、行頭ブロッキングも、ユニキャスト及びマルチキャスト双方のパケットに関して削除される。
【００５４】
本発明により、図１Ｂの調停及びスケジューリング方法４０を用いて、図１Ａのスイッチファブリック１０は、各出力ポートは、相互接続ネットワークにおける３のスピードアップを用いて、スイッチング時に３個のパケットをスイッチングすることが可能であっても、スイッチング時に、多くとも１個のパケットを受信するように作動する。しかもスピードアップは、相互接続ネットワークをノンブロッキング方式で、決して出力ポートを輻輳させないように作動させることのみに厳密に使用される。したがって、図１Ａのスイッチファブリック１０において、パケットをスイッチングする図１Ｂの調停及びスケジューリング方法４０は、決定論的である。各入口リンク１４１−１４４は、パケットを、各出口リンク２０１−２０４が送信するのと同一レート、即ち各スイッチング時に１個のパケットを受信する。各スイッチング時において、１個のパケットのみが、各入力ポート１５１−１５４から決定論的にスイッチングされ、１個のパケットのみが、各出力ポート１９１−１９４の中にスイッチングされるので、図１Ａのパケットファブリック１０は、決して出力ポートを輻輳させない。
【００５５】
本発明に基づく決定論的スイッチングの重要な利点は、スイッチファブリックが予約過多であるときであっても、入力ポートからパケットを高くともピークレートでスイッチングされることである。これは、出力ポートにおいてパケットは高くてもピークレートで受信されることをも意味する。それは、出力ポートにおいてトラフィック管理が不要であり、パケットは、出力ポートから決定論的に送信されることを意味する。従って、トラフィック管理は、図１Ａのスイッチファブリック１０内の入力ポートにおいてのみ必要である。
【００５６】
図１Ａのスイッチファブリック１０の別の重要な特徴は、特定の入力キューに属するすべてのパケットが、宛先出力ポートの同一出力キューに対してスイッチングされることである。出願者は、出力キューによる３つの重要な利点に注目する。１）スイッチングにおいて、１バイト又は数バイトが入力ポートから出力ポートに対しスイッチングされる。あるいは、スイッチファブリックのスイッチング回数は可変なので、スイッチファブリックの設計段階では、これは柔軟性のあるパラメータである。２）したがって、パケットＡ１−Ｐ１が任意に長く可変のサイズであっても、入力キュー内の各パケットは、宛先出力ポート内の同一出力キューに対してスイッチングされるので、スイッチング時に完全なパケットをスイッチングする必要はない。また、出力キューの第２の利点は、長いパケットを入力ポートにおいて物理的にセグメント化し、出力ポートにおいて再組立する必要がないことである。物理的にパケットをセグメント化することなく、パケットは、出力キューに対して論理的にセグメント毎にスイッチングされる（パケットセグメントのサイズは、スイッチングの回数により決定される）。各パケットにおけるパケットセグメントも、同一経路を介して、入力キューから宛先出力キューへスイッチングされる。３）出力キューの第３の利点は、パケット及びパケットセグメントが、入力ポートに受信されるのと同一の順序でスイッチングされるので、パケット順序付けの問題が決して生じないことである。
【００５７】
図１Ｉは、長いパケットをスイッチングするスイッチファブリック１６を示す。表１は、図１Ａのスイッチファブリック１０におけると全く同様の方法で、図１Ｉのスイッチファブリック１６における入力キューの出力キューに対する割当の模範例を示す。１６個のすべての入力キュー内のユニキャストパケットは、表１に示すように、１６個の出力キューに対し割当てられる。与えられた任意の入力キューからのマルチキャストパケットは、図１Ａのスイッチファブリック１０において記述したように、常に同一指定出力キューに対してスイッチングされる。
【００５８】
表２は、図１Ａのスイッチファブリック１０と全く同様に、図１Ｉのスイッチファブリック１６おいて受信される、入力ポートの入力キューからのマルチレートマルチキャストパケット要求の模範的セットを示す。表７は、表２における要求に関し、図１Ｂの調停及びスケジューリング方法４０の調停部分を実行した後スイッチングされるようスケジューリングされたパケットを示す。入力キューＩ｛１，１｝内のマルチレートパケット｛Ａ１−Ａ４｝は、レートウェイト２を有する出力キューＯ｛１，１｝、及びＯ｛４，１｝に対し、スイッチングされるよう割当てられる。入力キューＩ｛１，３｝及びＩ｛１，４｝からのパケットは、出力ポートに対しスイッチングされない。これらは、図１Ｂの調停及びスケジューリング方法４０の調停部分において、スイッチングされるよう承認されていないからである。同様に、残りの１６個の入力キューの中で、出力キューに割当てられたマルチレートパケットを有する入力キューのみを、表７に示す。全入力ポート１５１−１５４の各入力キュー１７１−１７４からのパケットのレートウェイトは、図１Ｉに示すように２１１−２１４で表す。
【００５９】
これらの長いパケットはそれぞれ、等しいサイズの４個のパケットセグメントから成る。例えば、パケット｛Ａ１−Ａ４｝は、４個のパケットセグメント、即ちＡ１、Ａ２、Ａ３、及びＡ４から成る。パケットが、パケットセグメントのサイズの完全な４の倍数でないときは、４番目のパケットセグメントはサイズが短いことになる。しかしながら、４個のパケットセグメントの何れも最大パケットセグメントサイズより大きくない。パケットセグメントのサイズは、スイッチング回数により定まる。即ち、各スイッチング時において、いずれかの入力ポートからいずれかの出力ポートに対して、１個のパケットセグメントのみがスイッチングされる。長いパケットサイズを除けば、図１Ｉのスイッチファブリック１６の図は、図１Ａのスイッチファブリック１０の図と同様である。
【００６０】
図１Ｂの調停及びスケジューリング方法４０も、中間ステージにおける３のスピードアップを用いて、図１Ｉのスイッチファブリック１６を、ノンブロッキングな決定論的方式で作動させる。図１Ａのスイッチファブリック１０の場合に実行されるのと全く同様の方法で、図１Ｂの方法４０の調停部分は、３つのステップを備える。即ち、入力ポートによる要求の生成、出力ポートによる許可の発行、及び入力ポートによる許可の承認である。図１Ｂの調停及びスケジューリング方法４０のスケジューリング部分を用いた、一実施例においける、表２は、入力ポートにより受信される調停要求、表３は、入力ポートにより生成される調停要求、表４は、出力ポートにより受信される調停要求、表６は、出力ポートにより発行される調停許可、表７は、入力ポートにより生成される承認、表８は、計算したスケジュールを、それぞれ示す。
【００６１】
図１Ｊ‐図１Ｍは、各ファブリックスイッチングサイクルの後の、図１Ｉのスイッチファブリック１６の状態を示す。図１Ｊは、その間に承認パケット要求の中のすべての行頭パケットセグメントを、所望のレートウェイトにしたがって、出力キューにスイッチングする、第１ファブリックスイッチングサイクル後の、図１Ｉのスイッチファブリック１６の状態を示す。これらのパケットセグメントは、図１Ｄ−１Ｇに示すように、図１Ａのスイッチファブリック１０において承認パケット要求を出力キューにスイッチングするように、図１Ｂの調停及びスケジューリング方法４０を使用して、全く同様の方法で出力キューに、スイッチングされる。図１Ｋは、その間に行頭パケットセグメントの次のすべてのセットを、出力キューにスイッチングする、第２ファブリックスイッチングサイクル後の、図１Ｉのスイッチファブリック１６の状態を示す。図１Ｌは、その間にすべての行頭パケットセグメントを、出力キューにスイッチングする第３ファブリックスイッチングサイクル後の、図１Ｉのスイッチファブリック１６の状態を示す。図１Ｍは、その間にすべての行頭パケットセグメントを、出力キューにスイッチングする第４ファブリックスイッチングサイクル後の、図１Ｉのスイッチファブリック１６の状態を示す。
【００６２】
第１、第２、第３及び第４の各ファブリックスイッチングサイクルにおいて、パケットセグメントは、図１Ｄ−１Ｇに示すように、図１Ａのスイッチファブリック１０において、パケットが出力キューにしてスイッチングされるのと全く同様の方法で、出力キューにスイッチングされる。明らかに、すべてのパケットセグメントは、各入力ポートで受信されるのと同一の順序でスイッチングされる。したがって、パケット順序付けの問題はない。パケットはまた、１００％スループットで、作業節約的、及び公正な方法でスイッチングされる。
【００６３】
図１Ｊ−１Ｍにおいては、パケットは、論理的にセグメント化され出力ポートにスイッチングされる。一実施例において、タグビット「１」も各パケットセグメントの特定の指定ビット位置に詰め込んで、そのパケットセグメントがそれぞれのパケット内の最初のパケットセグメントであることを表示する。「１」のタグビットを読み取ることにより、出力ポートは、承認パケットのパケットセグメントＡ１−Ｐ１が、新規パケット内の最初のパケットであることを認識する。同様に、各パケットセグメントは、「０」のタグビットを詰め込まれる最後のパケットセグメントを除いて、指定ビット位置に「１」のタグビットが詰め込まれる。（例えば、図１Ｉのスイッチファブリック１６内のパケットセグメントにおいて、パケットセグメントＡ１−Ｐ１、Ａ２−Ｐ２及びＡ３−Ｐ３には「１」のタグビットが詰め込まれる一方で、パケットセグメントＡ４−Ｐ４には「０」のタグビットが詰め込まれる）。タグビットが「０」であると検出されると、出力ポートは、次は新規パケットのパケットセグメント、又は新規パケットであると予測する。パケットの中にパケットセグメントが１つしかない場合、入力ポートにより「０」のタグビットが表示される。出力ポートは、「０」の指定タグビットのパケットセグメントを２個続けて受信すると、２個目のパケットセグメントは、新規パケットの唯一のパケットセグメントであると判定する。
【００６４】
図１Ｉのスイッチファブリック１６において、パケットは４セグメント分の長さである。しかしながら、一般的にパケットの長さは、任意である。加えて、同一キュー内の異なるセグメントは、異なるサイズである可能性がある。いずれの場合にも、図１Ｂの調停及びスケジューリング方法４０は、スイッチファブリックをノンブロッキング方式で作動させ、パケットは１００％スループット、作業節約的、及び公正な方法でスイッチングされる。また、入力ポート内のパケットを物理的にセグメント化し、出力ポート内に再組立する必要もない。スイッチファブリックのスイッチング回数も柔軟な設計パラメータであって、各スイッチング時において、パケットをバイト毎、又は数バイト毎にスイッチングするように設定される。
【００６５】
図１Ｂは、図１Ａのスケジューラにより遂行される、一実施例における、図１Ｂの調停及びスケジューリング方法４０の高レベルフローチャートである。この実施例によると、レートウェイトを有する多くともｒ 個の要求が、アクト４１において各入力ポートから生成される。各入力ポートが、レートウェイトが１のｒ個のユニキャストパケット要求を有するとき、各入力キューからの１つの要求に伴って、各入力ポートから多くともｒ個の要求がある。第２に、ユニキャストパケット要求が、１つ以上の入力キューから１より大きいレートウェイトを有するときは、生成される要求の数は、ｒより小さくなる。しかしながら、各入力ポートからの生成されるすべての要求のレートウェイトの合計は、多くともｒ である。出願者は、マルチレートユニキャストパケットは、入力ポート競合を生じないことを承知している。
【００６６】
第３に、レートウェイト１のマルチキャストパケットがあるときは、１回のファブリックスイッチングサイクルにおいて、各出力ポートは、多くともｒ個のパケットしか受信できないので、各入力ポートからのｒ個の要求を満足することは出来ない。このように、マルチキャストパケットは、入力ポートにおいてレートウェイト１であっても、入力ポート競合を生じる。しかしながら、各入力ポートは、１回のファブリックスイッチングサイクルにおいて、多くともｒ個のパケットだけスイッチングすることができる。したがって、１つの入力ポートからの１つマルチキャストパケット要求は、同一入力ポートの別の入力キューからの別のパケット要求の犠牲の上に成り立つ。そこで、各入力ポートからのｒ個のマルチキャスト要求は、ｒ個の異なる出力ポートに対して成されることを承知している必要がある。第４に、マルチレートマルチキャストパケットは、パケットのマルチキャストプロパティのため、入力ポート競合を引き起こすが、１つの入力キューからの複数のパケットは、パケットのマルチレートプロパティのため、１回のファブリックスイッチングサイクルにおいてスイッチングする必要がある。
【００６７】
そのため、アクト４１において、調停方針を用いることにより、すべての要求のパケットの合計が、ｒ個以下になるように、即ち、マルチキャストパケットを、そのファンアウトの回数だけカウントし、各マルチレートパケットを、そのレートウェイト倍だけカウントすることにより、各入力ポートの中にマルチレートマルチキャスト要求のセットが生成される。一実施例において、この調停方針は優先順位スキームに基づいてもよい。しかしながら、アクト４１において入力ポート競合を解消するのに使用される選択方針のタイプは、本発明には無関係である。
【００６８】
アクト４２において、各出力ポートは、各要求が関連付けられる出力キューに対応する、多くともｒ個の許可を発行する。出力ポートは、許可されるすべての要求のレートウェイトの合計が、多くともｒになるように、要求を許可する。しかしながら、１つの出力ポートは、レートウェイトの合計がｒを超える要求を受信することがある。その場合、その出力ポートは、予約過多となるので、出力ポート競合が生じる。ここでも、出願者は、パケットのマルチレートプロパティが出力ポート競合を引き起こすのであって、パケットのマルチキャストプロパティは、出力ポート競合を引き起こさないことを承知している。選択方針を用いて、レートウェイトの合計が多くともｒとなるように、許可が選択される。一実施例においては、これは優先順位スキームに基づいてもよい。しかしながら、予約過多を制御するのに使用される選択方針のタイプは、本発明には無関係である。アクト４３において、各入力ポートは、発行される許可のすべてを承認するが、それは、入力ポートに対して発行される許可すべてのレートウェイトとファンアウトの合計が、多くともｒであるからである。
【００６９】
アクト４４においては、多くともｒ２個のすべての要求が、以前にスケジューリングされたパケットの経路を再配置することなく、スケジューリングされる。一実施例においては、１より大きいレートウェイトを有する各要求は、宛先出力ポートの同一出力キューを有するレートウェイト１の、その数の別個の要求と考えられる。本発明にしたがうと、ｒ２個のすべての要求は、厳密なノンブロッキング方式で、中間ステージ１３０において少なくとも３のスピードアップを用いてスケジューリングされる。要求の生成、許可の発行、及び承認の生成の調停は、１度だけの繰り返しで実行されることに注目しなければならない。アクト４４の後、制御はアクト４５に戻る。アクト４５においては、入力ポートに、新規で異なる要求があるか否かを点検する。答が「ノー」であれば、制御はアクト４５に戻る。新規の要求はあるが、それらが、出力キュー要求に対し同一の入力キューを有する点で異ならないときは、同一スケジュールを用いて、次の多くともｒ２個の要求をスイッチングする。入力ポートからの新規で異なる要求があるとき、制御はアクト４５からアクト４１に移り、アクト４１−４５は、ループで実施される。
【００７０】
図１Ｃのネットワーク１４は、中間ステージ１３０におけるスイッチが
2007528636.tif 000012
個であるとき、マルチキャスト接続要求のため再配置可能なノンブロッキング方式で作動させることができる。（本発明に対する背景として参照して組込まれる、Venkat Kondaにより現出願と同一出願人に譲渡され、２００１年９月２７日提出の「REARRANGEABLY NON-BLOCKING MULTICAST MULTI-STAGE NETWORKS」と題する関連の米国特許出願番号０９／９６７，８１５号、及び２００３年９月６日提出の、その一部継続ＰＣＴ出願番号ＰＣＴ／ＵＳ０３／２７９７１号を参照）。同様に、本発明にかかる、入力キューの中にマルチレートマルチキャストパケットを有し、中間ステージ１３０に２個のみ４×４クロスバーネットワーク１３１を用いる、即ち、２のスピードアップを有する別の実施例において、図１Ｎのスイッチファブリック１８は、再配置可能なノンブロッキング方式で作動する。
【００７１】
厳密なノンブロッキングネットワークにおいては、すべての入力キューの行頭にあるパケットを１度にスケジューリングするので、パケットのための入力キューから宛先出力キューへのネットワークを介した経路を、以前にスケジューリングしたパケットの経路を阻害することなくスケジューリングすることが常に可能であり、１つより多いこのような経路を利用することができるときは、残りのパケットのスケジューリングを懸念することなく、任意の経路を選択することができる。再配置可能なノンブロッキングネットワークにおいては、すべての入力キューの行頭にあるパケットは、１度にスケジューリングされるので、パケットのための入力キューから宛先出力キューへの経路のスケジューリングは、必要に応じて以前にスケジューリングしたパケットの経路を再配置する、スケジューラの再配置能力の結果として、満足されることが保証されている。本発明により、図１Ｎのスイッチファブリック１８は、再配置可能なノンブロッキング方式で作動する一方、図１Ａのスイッチファブリック１０は、厳密なノンブロッキング方式で作動する。
【００７２】
図２Ａを参照すると、スイッチファブリック２０は、出力キューを有しない以外は、図２Ａのスイッチファブリック２０の図は、図１Ａのスイッチファブリック１０の図と全く同様である。本発明により、スイッチファブリック２０は、入力ポート及び出力ポートにＳＡＲを必要とすることを除いて、図１Ａのスイッチファブリック１０について開示したあらゆる側面において、同様に厳密にノンブロッキングな決定論的方式で作動する。パケットは、スイッチング時に判定された通りに、入力ポートにおいてセグメント化する必要があり、別個に再組立の必要がある出力ポートにスイッチングされる。しかしながら、図１Ｂの調停及びスケジューリング方法４０は、図２Ａのスイッチファブリック２０において、パケットをスイッチングするためにも使用される。ここでも、スケジューリングは、すべての承認パケット要求について同時に実行され、図１Ａのスイッチファブリック１０の場合と同様に、出力ポートには仮想的に１６個の出力キューあると推定して、多くとも１６個のパケットが、レートウェイトにしたがって、４回のスイッチングでスイッチングされる。しかしながら、そのスイッチングの間に、パケットは、図１Ａのスイッチファブリック１０における出力キューと異なり、宛先出力ポート内にスイッチングされる。図２Ｂ−２Ｆは、表２に示すパケット要求をスケジューリングすることにより、ファブリックスイッチングサイクルにおける各スイッチング後の、図２Ａのスイッチファブリック２０の状態を示す。図１Ｂの調停及びスケジューリング方法を用い、図１Ａのスイッチファブリック１０において記述したのと同じステップにしたがって、各スイッチング時においてスケジューリングされるパケットを表８に示す。
【００７３】
図２Ｂは、その間にパケットＡ１、Ｋ１、及びＭ１が出力キューにスイッチングされる１回目のスイッチング後の、図２Ａのスイッチファブリック２０の状態を示す。入力ポート１５１からのマルチキャストパケットＡ１は、クロスバーネットワーク１３１を経由して、１回目のスイッチングにおいて、出力ポート１９４の中にスイッチングされる。（パケットＡ１は、後述するように、図２Ｃに示す２回目のスイッチングにおいてクロスバースイッチ１３１を介して、出力ポート１９１にスイッチングされる）。そのようにして、マルチキャストパケットＥ１は、クロスバーネットワーク２つのみ、即ち１回目のスイッチングにおけるクロスバーネットワーク１３１、および２回目のスイッチングにおけるクロスバーネットワーク１３１を介してファンアウトされる。さらに、パケットＡ１は、レートウェイト２を有するマルチレートなので、パケットＡ２も、最初の４回のスイッチングで、出力ポート９１及び１９４にてスイッチングされる。（パケットＡ２は、中間スイッチ１３２を介し、そこから出力ポート１９１及び１９４に、４回目のスイッチングにおいてファンアウトされる。パケットＡ１とパケットＡ２は、別個にスケジューリングされ、それらは同一経路を行き来しないし、同一中間スイッチを介してファンアウトされる必要もないことに注意しなければならない）。
【００７４】
本発明により、入力ポートからのマルチキャストは、中間ステージにおいて、多くとも２つのクロスバーネットワークを介して、おそらくは２回のスイッチングでファンアウトされ、中間ステージ（クロスバー）ネットワークからのマルチキャストパケットは、必要な数の出力ポートにファンアウトされる。マルチキャストパケットが、宛先出力ポートに異なるスケジューリングの２回のスイッチングにおいてスイッチングされるときも、１回目のスイッチング後、そのマルチキャストパケットは、２回目のスイッチングに残りの出力ポートにスイッチングされるまで、入力キューの行頭に保たれるままである。したがって、図２Ｂにおいて、パケットＡ１は、まだ入力ポート１５１の入力キュー１７１の行頭にある。
【００７５】
図２Ｂにおいて、入力ポート１５３からの、レートウェイト１を有するユニキャストパケットＫ１は、クロスバーネットワーク１３３を経由して出力ポート１９３の中にスイッチングされる。入力ポート１５４からの、レートウェイト１を有する（出力ポート１９１−１９４を宛先とする）マルチキャストパケットＭ１は、クロスバーネットワーク１３２を介してファンアウトされ、クロスバーネットワーク１３２から出力ポート１９２及び出力ポート１９４内にファンアウトされる。パケットＭ１は、後述するように、２回目のスイッチングで出力ポート１９３−１９４にスイッチングされる。マルチキャストパケットＭ１も、まだ入力ポート１５４の入力キュー１７１の行頭にある。出願者は、マルチキャストパケットがスイッチングされると、すべての入力ポートが各スイッチング時において、多くとも１個のパケットをスイッチングするわけではないが、すべての出力ポートは、各スイッチング時において多くとも１個のパケットを受信することを承知している。
【００７６】
図２Ｃは、その間にパケットＡ１、Ｊ１及びＭ１が出力キューにスイッチングされる２回目のスイッチング後の、図２Ａのスイッチファブリック２０の状態を示す。入力ポート１５１からのマルチキャストパケットＡ１は、クロスバーネットワーク１３１を経由して出力ポート１９１の中にスイッチングされる。マルチキャストパケットＡ１は、すべての宛先出力ポートにスイッチングし尽くされるので、行頭から削除され、したがってパケットＡ２は、入力ポート１５１の入力キュー１７１の行頭にある。入力ポート１５３からの、ユニキャストパケットＪ１は、クロスバーネットワーク１３３を経由して出力ポート１９２の中にスイッチングされる。入力ポート１５３からの、マルチキャストパケットＭ１は、クロスバーネットワーク１３２を介してファンアウトされ、そこから出力ポート１９３及び出力ポート１９４の中にファンアウトされる。マルチキャストパケットＭ１は、すべての宛先出力ポートにスイッチングし尽くされるので、行頭から削除され、したがってパケットＭ２は、入力ポート１５４の入力キュー１７１の行頭にある。ここでも、２回目のスイッチングにおいて、各入力ポートからパケット１つのみがスイッチングされ、各出力ポートは、パケット１つのみを受信する。さらにここでも、すべての出力ポートは、２回目のスイッチングにおいて、多くとも１個のパケットを受信する。
【００７７】
図２Ｄは、その間にパケットＧ１及びＩ１が出力キューにスイッチングされる３回目のスイッチング後の、図２Ａのスイッチファブリック２０の状態を示す。入力ポート１５２からのユニキャストパケットＧ１は、クロスバーネットワーク１３１を経由して出力ポート１９３内にファンアウトされる。入力ポート１５３からのユニキャストパケットＩ１は、クロスバーネットワーク１３２を経由して出力ポート１９１内にスイッチングされる。ここでも、すべての出力ポートは、３回目のスイッチングにおいて、多くとも１個のパケットを受信する。
【００７８】
図２Ｅは、その間にパケットＡ２及びＪ２が、出力キューにスイッチングされる４回目のスイッチング後の、図２Ａのスイッチファブリック２０の状態を示す。入力ポート１５１の入力キュー１７１からのパケットは、レートウェイト２を有するので、入力ポート１５１からのマルチキャストマルチレートパケットＡ２は、クロスバーネットワーク１３２の中にファンアウトされ、そこから出力ポート１９１の及び出力ポート１９４の中にファンアウトされる。マルチキャストパケットＡ２は、すべての宛先にスイッチングし尽くされるので、それは入力ポート１５１の入力キュー１７１の行頭から削除される。入力ポート１５３の入力キュー１７２からのパケットは、レートウェイト２を有するので、入力ポート１５３からのマルチレートユニキャストパケットＪ２は、クロスバーネットワーク１３１を経由して出力ポート１９２の中にスイッチングされる。ここでも、すべての出力ポートは、４回目のスイッチングにおいて、多くとも１個のパケットを受信する。
【００７９】
図２Ｆは、その間にパケットＡ３、Ｋ２，及びＭ２が出力キューにスイッチングされる５回目のスイッチング後の、図２Ａのスイッチファブリック２０の状態を示す。入力ポート１５１からの、レートウェイト２を有するマルチキャストパケットＡ３は、出力ポート１９１及び１９４を宛先としている。図２Ｂと全く同様に、入力ポート１５１からのパケットＡ３は、クロスバーネットワーク１３１を経由して、５回目のスイッチングにおいて、出力ポート１９４内にスイッチングされる。（パケットＡ３は、パケットＡ１がスイッチングし尽くされるのと全く同様に、後のスイッチング時に、出力ポート１９１にスイッチングされる）。パケットＡ３は、レートウェイト２を有するマルチレートなので、パケットＡ３も、同一のファブリックスイッチングサイクルの中で出力ポート１９１及び１９４にスイッチングされる。パケットＡ３は、まだすべての宛先出力ポートにスイッチングされていないので、入力ポート１５１の入力キュー１７１の行頭に残されている。入力ポート１５３からの、レートウェイト１を有するユニキャストパケットＫ２は、クロスバーネットワーク１３３を経由して、出力ポート１９３内にスイッチングされる。
【００８０】
入力ポート１５４からの（出力ポート１９１−１９４を宛先とする）レートウェイト１を有するマルチキャストパケットＭ２は、クロスバーネットワーク１３２を介してファンアウトされ、クロスバーネットワーク１３２から出力ポート１９２及び出力ポート１９４の中にファンアウトされる。パケットＭ２は、パケットＭ１と全く同様に、後で同一ファブリックスイッチングサイクルの中で出力ポート１９１−１９４にスイッチングされる。したがって、マルチキャストパケットＭ２は、まだ入力ポート１５４の入力キュー１７１の行頭にある。出願者は、マルチキャストパケットがスイッチングされるときは、すべての入力ポートが、各スイッチング時において、多くとも１個のパケットをスイッチングするわけではないが、すべての出力ポートは、各スイッチング時において、多くとも１個のパケットを受信することを承知している。したがって、図１Ｂの調停及びスケジューリング方法４０は、１回目のファブリックスイッチングサイクルのためのスケジュールの実行後に、再スケジューリングをおこなう必要はない。したがって、いずれかの特定の入力キューから宛先出力ポートへのパケットは、同一経路に沿ってスイッチングされ、入力ポートがそれらを受信した通りの順序で移動するので、パケット並べ換えの問題は決して生じない。
【００８１】
図１Ｂの調停及びスケジューリング方法４０は、図２Ａのスイッチファブリック２０も、厳密なノンブロッキング方式で作動させ、パケットは１００％スループット、作業節約的、及び公正な方法でスイッチングされる。このスイッチファブリックのスイッチング回数も、柔軟な設計パラメータであって、各スイッチング時において、パケットをバイト毎、又は数バイト毎にスイッチングするように設定にすることができる。しかしながら、スイッチファブリック２０はＳＡＲを必要とし、それは、パケットは入力ポートにおいて物理的にセグメント化し、出力ポートにおいて再組立する必要があることを意味する。それにも拘わらず、スイッチファブリック２０においては、パケット及びパケットセグメントは、出力ポートへ、入力ポートに受信されるのと同一順序でスイッチングされる。事実、ＳＡＲを除いて、図１Ｂの調停及びスケジューリング方法４０は、スイッチファブリック２０を、あらゆる側面において図１Ａのスイッチファブリック１０と同様の方法で作動させる。
【００８２】
スイッチファブリックのノンブロッキングな作動のための、中間ステージにおける３のスピードアップは、２つの方法で実現される。１）並列性  及び  ２）スイッチング速度の３倍化である。並列性は、中間ステージにおいて３つの相互接続ネットワークを、例えば図１Ａのスイッチファブリック１０に示すように、並行して使用することにより実現される。スイッチング速度の３倍化は、相互接続ネットワーク、第１及び第２内部リンクを、入力ポート及び出力ポートにおける各クロックに関し、２倍のクロックレートで作動させることより実現される。第１のクロックにおいては、単一相互接続ネットワークを、３つの並列相互接続ネットワークを用いて実施するのと同等のスイッチファブリックの第１相互接続ネットワークとして、例えば、図１Ａのスイッチファブリック１０における相互接続ネットワーク１３１として、スイッチングのため作動させる。同様に、第２のクロックにおいては、単一相互接続ネットワークは、第２相互接続ネットワークとして、例えば、図１Ａのスイッチファブリック１０における相互接続ネットワーク１３２として作動させる。また第３のクロックにおいては、単一相互接続ネットワークを第２相互接続ネットワークとして、例えば、図１Ａのスイッチファブリック１０における相互接続ネットワーク１３３として作動させる。したがって、この実施においては、相互接続ネットワークのクロックにおいて、及び第１、第２、及び第３内部リンクにおいて、３倍のレートが必要である。図１Ｂの調停及びスケジューリング方法４０は、並列性又は３倍のレートによりスピードアップを実行して、双方のスイッチファブリックを、本発明において記述するようなあらゆる側面において、ノンブロッキングな決定論的方式で作動させる。
【００８３】
図３Ａを参照すると、中間ステージ１３０のクロスバー相互接続ネットワーク１つのみにおけるクロック速度の３のスピードアップ及び第１および第２の内部リンクにおける３のスピードアップを用いて３のスピードアップを備えている点を除いて、図１Ａのスイッチファブリック１０の図と同様のスイッチファブリック３０を示す。図１Ａのネットワークの別の実施例においては、中間ステージにある各相互接続ネットワークは、共有メモリネットワークである。図３Ｂは、スイッチファブリック５０を示すが、これは、中間ステージ１３０において３つの共有メモリ相互接続ネットワークにより、３のスピードアップを備えている点を除いて、図１Ａのスイッチファブリック１０と同様である。図３Ｃは、スイッチファブリック６０を示すが、これは、中間ステージ１３０にあるただ１つの共有メモリ相互接続ネットワークのクロック速度の３のスピードアップと、第１および第２の内部リンクにおける３のスピードアップにより、３のスピードアップを備える点を除いて、図３Ａのスイッチファブリック３０と同様である。
【００８４】
同様に、図３Ｄは、スイッチファブリック７０を示すが、それは、中間ステージ１３０に、３つのハイパーキューブ相互接続ネットワークを用いて、３のスピードアップを備える点を除いて、図１Ａのスイッチファブリック１０と同様である。図３Ｅは、中間ステージ１３０のハイパーキューブに基づくただ１つの相互接続ネットワークのクロック速度と、第１および第２の内部リンクにおける３のスピードアップを用いて、３のスピードアップを備える点を除いて、図３Ａのスイッチファブリック３０と同様のスイッチファブリック６０を示す。
【００８５】
図１Ａの１０、図１Ｉの１６、図１Ｎの１８、図２Ａの２０、図３Ａの３０、図３Ｂの５０、図３Ｃの６０、図３Ｄの７０、及び図３Ｅの８０の各スイッチファブリックにおいて、入力ポート１１０と出力ポート１２０の数を、各ステージに一般的に変数ｒを用いて表示する。中間ステージにおけるスピードアップをｓで表示する。中間ステージにおけるスピードアップは、並列性、即ち、（図４Ａ、図４Ｂ、図４Ｃ、及び図４Ｅに示すように）３つの相互接続ネットワークを用いるか、又は（図４Ｂ、図４Ｄ、及び図４Ｆに示すように）１つの相互接続ネットワークにおける２倍のスイッチングレートを用いることにより実現される。各入力ポート１５１−｛１５０＋ｒ｝のサイズは、一般的にｒ＊ｓ（各入力ポートがｒ個の入力キューを有し、ｓ個の第１内部リンク有するｓ個の相互接続ネットワークに接続されることを意味する）を用いて表示し、各出力スイッチ１９１−｛１９０＋ｒ｝のサイズは、一般的にｓ＊ｒ（各出力ポートがｒ 個の出力キューを有し、ｓ個の第２内部リンクを有するｓ個の相互接続ネットワークに接続されることを意味する）を用いて表示する。同様に、中間ステージ１３０にある各相互接続ネットワークのサイズは、ｒ＊ｒ と表示する。ここに記述する相互接続ネットワークは、クロスバーネットワーク、共有メモリネットワーク、又はサブネットワークのネットワークのいずれでもよく、その各々は順にクロスバー又は共有メモリネットワーク、又は３ステージクロスネットワーク、又はハイパーキューブ、又は任意の内部ノンブロッキング相互接続ネットワーク又はネットワークのネットワークである。３ステージスイッチファブリックは、Ｖ（ｓ，ｒ）の表示を用いて表す。
【００８６】
存在する出力キュー１８１−｛１８０＋ｒ｝と同数の入力のキュー１７１−｛１７０＋ｒ｝が存在する必要はないが、対称ネットワークにおいては、これらは同数である。ｓ 個の各中間ステージ相互接続ネットワーク１３１−１３２は、ｒ個の第１内部リンクを介してｒ 個の各入力ポートに接続され、ｒ個の第２内部リンクを介して各出力ポートに接続される。各第１内部リンクＦＬ１−ＦＬｒ及び第２内部リンクＳＬ１−ＳＬｒは、新規パケットにより利用可能であるか、又は別のパケットが既に取得しているときは利用不能であるか、のいずれかである。
【００８７】
図１Ａのスイッチファブリック１０は、図４Ａの一般的対称スイッチファブリックの一例であって、中間ステージ１３０において３つクロスバー相互接続ネットワークを使用することにより、３のスピードアップをもたらす。図４Ｂを参照して、１つのみの中間ステージ１３０のクロスバー相互接続ネットワークにおけるクロック速度の３のスピードアップと、第１および第２の内部リンクにおける３のスピードアップを用いて、３のスピードアップを備える点を除いて、図４Ａのスイッチファブリックと同様の一般的対称スイッチファブリックを示す。
【００８８】
図４Ｃは、中間ステージ１３０に３つの共有メモリ相互接続ネットワークを用いることにより３のスピードアップを備える一般的対称スイッチファブリックを示す。図４Ｄは、中間ステージ１３０において１つのみの共有メモリ相互接続ネットワークのクロック速度の３のスピードアップと、第１および第２の内部リンクにおける３のスピードアップを用いて３のスピードアップを備える一般的対称スイッチファブリックを示す。
【００８９】
図４Ｅは、中間ステージ１３０に３つの３ステージクロス相互接続ネットワークを用いることにより、３のスピードアップを備える一般的対称スイッチファブリックを示す。図４Ｆは、中間ステージ１３０において１つのみの３ステージクロス相互接続ネットワークのクロック速度に３のスピードアップと第１および第２の内部リンクにおける３のスピードアップを用いることにより３のスピードアップを備える一般的対称スイッチファブリックを示す。
【００９０】
一般的に、中間ステージ１３０における相互接続ネットワークは、任意の相互接続ネットワークでよく、ハイパーキューブ、又はバッチャー−バンヤン相互接続ネットワーク、又は任意の内部ノンブロッキング相互接続ネットワーク又はネットワークのネットワークなどが挙げられる。一実施例において、相互接続ネットワーク１３１−１３３は、３つの異なるネットワーク型である。例えば、相互接続ネットワーク１３１はクロバーネットワーク、相互接続ネットワーク１３２は、共有メモリネットワーク、及び相互接続ネットワーク１３３は、ハイパーキューブネットワークでよい。本発明により、中間ステージに使用される相互接続ネットワークの型に関わりなく、中間ステージにおける少なくとも３のスピードアップは、図１Ｂの調停及びスケジューリング方法４０を用いて、スイッチファブリックを厳密なノンブロッキング方式で作動させる。また、中間ステージにおける少なくとも２のスピードアップは、スイッチファブリックを再配置可能なノンブロッキング方式で作動させる。
【００９１】
スイッチファブリックにおけるスピードアップは、相互接続ネットワークの内部スピードアップには関係しないことに注目しなければならない。例えば、クロスバーネットワーク及び共有メモリネットワークは、完全に接続される形態なので、いかなる追加の内部スピードアップをせずに、内部的にノンブロッキングである。例えば、クロスバーネットワーク又は共有メモリネットワークである図１Ａのスイッチファブリック１０又は図３Ｂのスイッチファブリック５０いずれかの相互接続ネットワーク１３１−１３３において、ノンブロッキング方式で作動するために、いずれの相互接続ネットワーク１３１−１３３にもスピードアップは必要でない。しかしながら、相互接続ネットワーク１３１−１３３が３ステージクロスネットワークであるときは、各３ステージクロスネットワークは、厳密なノンブロッキング方式で作動するためには、３の内部スピードアップを必要とする。中間ステージ相互接続ネットワーク１３１−１３３が３ステージクロスネットワークであるスイッチファブリックにおいては、３のスピードアップのスイッチファブリックは、１３１−１３３のような３つの異なる３ステージクロスネットワークの形で備えられる。加えて、各３ステージクロスネットワーク１３１−１３３も、それらが内部的に厳密にノンブロッキングであるためには、やはり付加的なのスピードアップを必要とする。明らかに、スイッチファブリックのスピードアップは、相互接続ネットワークの内部スピードアップとは異なる。
【００９２】
同様に、中間ステージ１３１−１３３における相互接続ネットワークがハイバーキューブネットワークである場合は、一実施例において、ノンブロッキングなネットワークにするためには、（２ｄノードを備える）ｄ−ランクハイパーキューブにおいて、ｄの内部スピードアップが必要である。本発明にしたがうと、図１Ｂの調停及びスケジューリング方法４０を使用し、中間ステージにおける少なくとも３のスピードアップにより厳密なノンブロッキング方式で作動させ、また中間ステージにおける少なくとも２のスピードアップを用いて再配置可能なノンブロッキング方式で作動させるためには、中間ステージ相互接続ネットワーク１３１−１３３は、内部的にノンブロッキングな任意の相互接続ネットワークでよい。
【００９３】
図４Ｇを参照すると、図３Ｄのスイッチファブリック７０及び図３Ｅのスイッチファブリック８０の、中間ステージ相互接続１３１−１３３の一実施例における４×４ポート（２ランク）ハイパーキューブに基づく相互接続ネットワークの詳細図を示す。４−ノードハイパーキューブメモリには４つのノード、即ち００、０１、１０、及び１１、がある。ノード００は、双方向リンクＡを用いてノード０１に接続される。ノード０１は、双方向リンクＢを用いてノード１１に接続される。ノード１１は、双方向リンクＣを用いてノード１０に接続される。ノード１０は、双方向リンクＤを用いてノード００に接続される。また、４つの各ノードは、スイッチファブリックの入力ポート及び出力ポートに接続される。ノード００は、第１内部リンクＦＬ１及び第２内部リンクＳＬ１に接続される。ノード０１は、第１内部リンクＦＬ２及び第２内部リンクＳＬ２に接続される。ノード１０は、第１内部リンクＦＬ３及び第２内部リンクＳＬ３に接続される。ノード１１は、第１内部リンクＦＬ４及び第２内部リンクＳＬ４に接続される。図４Ｇに示すハイパーキューブネットワーク１３１又は１３２が内部的にノンブロッキングであるためには、一実施例において、リンクＡ、Ｂ、Ｃ、及びＤを両方向に、スイッチファブリックの入口リンク（又は出口リンク）と同一速度か、又はハーパーキューブネットワークのスケジューリング構想により何らかの係数のスピードアップを用いて、作動させることが必要である。本発明にかかるとハイパーキューブについては内部的にノンブロッキング方式で作動すること、及びスイッチファブリックについては、図１Ｂの調停及びスケジューリングの方法４０を用いて少なくとも３のスピードアップを用いる厳密なノンブロッキング方式で作動すること、及び中間ステージにおける少なくとも２のスピードアップを用いて再配置可能なノンブロッキング方式で作動することが必要である。
【００９４】
図４Ａ−４Ｆは、対称スイッチファブリックの場合のように、同数の第１内部リンクと第２内部リンクを示しているが、本発明をここで、非対称スイッチファブリックに拡張する。一般に、レートウェイトを有するマルチレートマルチキャストパケットをスイッチングする（ｒ１＊ｒ２）非対称スイッチファブリックであって、各入力ポートがｒ２個の入力キューを有するｒ１個の入力ポート、各出力ポートがｒ１個の出力キューを有するｒ２個の出力ポート、及びｓ個のサブネットワークのある少なくとも
2007528636.tif 000013
のスピードアップを有する相互接続ネットワークを備え、各サブネットワークは、全体で少なくともｒ１個の第１内部リンクのため各入力ポートに接続される第１内部リンク少なくとも１つを備え、各サブネットワークはさらに全体で少なくともｒ２個の第２内部リンクのため各出力ポートに接続される少なくとも１つの第２内部リンクを備えた、対称スイッチファブリックは、本発明にしたがい、ｒ１≦ｒ２であるときは、多くともｒ２回のスイッチングにおけるスイッチングすべき各スイッチング時に、多くともｒ１個のパケットを、決定論的方式で、またパケットのセグメント化及び再組立を必要としないで、レートウェイトに応じてスケジューリングすることにより、厳密なノンブロッキング方式で作動する。別の実施例においては、このスイッチファブリックは、ｒ２≦ｒ１であるときは多くともｒ１回のスイッチングにおいてスイッチングすべき各スイッチング時に、多くともｒ２個のパケットを、決定論的方式で、またパケットのセグメント化及び再組立を必要とせず、レートウェイトに応じてスケジューリングすることにより、厳密なノンブロッキング方法で作動する。このスケジューリングは、各マルチキャストパケットが、２つを超えないサブネットワークを介し、２回を超えないスイッチングでファンアウト分割するように実行される。
【００９５】
このような、一般的な非対称スイッチファブリックを、Ｖ｛ｓ，ｒ１，ｒ２｝と表示する。一実施例においては、システムは調停について１度だけの繰り返しで、相互接続ネットワークにおける数学的に最低限のスピードアップを用いて実行する。このシステムは、１００％スループット、作業節約的，公正、さらに決定論的に作動し、それにより出力ポートを決して輻輳させない。図１Ｂの調停及びスケジューリング方法４０は、Ｖ｛ｓ，ｒ１，ｒ２｝スイッチファブリックにおけるパケットのスケジューリングにも使用される。
【００９６】
図１Ｂの調停及びスケジューリング方法４０は、一般的Ｖ｛ｓ，ｒ１，ｒ２｝スイッチファブリックをノンブロッキング方式で作動させ、パケットは１００％スループット、作業節約的，及び公正な方式でスイッチングされる。スイッチファブリックのスイッチング回数も、柔軟な設計パラメータであって、パケットを各スイッチング時に、バイト毎又は数バイト毎にスイッチングするよう設定することができる。また、本発明において記述した通りに、ＳＡＲの必要はない。出力キューのない実施例においては、パケットを入力ポートにおいて物理的にセグメント化し、出力ポートにおいて再組立する必要がある。
【００９７】
一実施例においては、レートウェイトを有するマルチレートマルチキャストパケットをスイッチングする非対称スイッチファブリックＶ｛ｓ，ｒ１，ｒ２｝は、ｒ１≦ｒ２であるときは多くともｒ２回のスイッチングにおいてスイッチングすべき各スイッチング時に、多くともｒ１個のパケットを、決定論的方式で、パケットのセグメント化および再組立を必要とせずに、レートウェイトに応じてスケジューリングすることにより、相互接続ネットワークにおいて少なくとも
2007528636.tif 000014
のスピードアップを用いて再配置可能でノンブロッキング方式で作動する。別の実施例においては、非対称スイッチファブリックＶ｛ｓ，ｒ１，ｒ２｝は、ｒ２≦ｒ１であるときは多くともｒ１回のスイッチングにおいてスイッチングすべき各スイッチング時に、多くともｒ２個のパケットを、決定論的方式で、パケットのセグメント化および再組立を必要とせずに、レートウェイトに応じてスケジューリングすることにより、相互接続ネットワークにおいて少なくとも
2007528636.tif 000015
のスピードアップを用いて再配置可能でノンブロッキング方式で作動する。このスケジューリングは、各マルチキャストパケットが、２つを超えないサブネットワークを介し、２回を超えないスイッチング回数でファンアウト分割されるように実行される。
【００９８】
同様に、レートウェイトを有するマルチレートマルチキャストパケットをスイッチングする非対称スイッチファブリックＶ｛ｓ，ｒ１，ｒ２｝であって、各入力ポートがｒ２個の入力キューを有するｒ１個の入力ポート、ｒ２個の出力ポート、及び少なくとも
2007528636.tif 000016
のスピードアップを有しｓ個のサブネットワーク持つ相互接続ネットワークを備え、各サブネットワークは、全体で少なくともｒ１個の第１内部リンクのための各入力ポートに接続される少なくとも１個の第１内部リンクを備え、各サブネットワークはさらに全体で少なくともｒ２個の第２内部リンクのための各出力ポートに接続される少なくとも１個の第２内部リンクを備えた、非対称スイッチファブリックは、多くともｒ２回のスイッチングにおけるスイッチングすべき各スイッチング時に、多くともｒ１個のパケットを、決定論的方式で、パケットのセグメント化及び再組立を必要として、レートウェイトに応じてスケジューリングすることにより、本発明にかかる、厳密にノンブロッキング方式で作動する。このスケジューリングは、各マルチキャストパケットが、２つを超えないサブネットワークを介し、２回を超えないスイッチング回数でファンアウト分割されるように実行される。図１Ｂの調停及びスケジューリング方法４０は、出力キューを使用せずにスイッチファブリックＶ｛ｓ，ｒ１，ｒ２｝においてパケットをスイッチングするのにも使用される。
【００９９】
レートウェイトを有するマルチレートマルチキャストパケットをスイッチングする非対称スイッチファブリックＶ｛ｓ，ｒ１，ｒ２｝であって、各入力ポートがｒ２個の入力キューを有するｒ１個の入力ポート、ｒ２個の出力ポート、及び
2007528636.tif 000017
のスピードアップを有しｓ個のサブネットワーク持つ相互接続ネットワークを備え、各サブネットワークは、全体で少なくともｒ１個の第１内部リンクのための各入力ポートに接続される少なくとも１つの第１内部リンクを備え、各サブネットワークはさらに全体で少なくともｒ２個の第２内部リンクのための各出力ポートに接続される少なくとも１つの第２内部リンクを備えた非対称スイッチファブリックは、多くともｒ２回のスイッチングにおけるスイッチングすべき各スイッチング時に、多くともｒ１個のパケットを、決定論的方式で、パケットのセグメント化及び再組立を必要として、ウェイトレートに応じてスケジューリングすることにより、本発明にかかる、再配置可能でノンブロッキング方式で作動する。このスケジューリングは、各マルチキャストパケットが、２つを超えないサブネットワークを介し、２回を超えないスイッチング回数でファンアウト分割されるように実行される。
【０１００】
出願者はここで、本発明において記述するすべてのスイッチファブリックは、入力ポート対出力ポートのレート及び保証レイテンシを提供することに注目する。エンドツーエンド保証帯域幅、即ち、所望のレートウェイトを持つ任意の入力ポートから任意出力ポートまでの保証帯域幅は、ユニキャスト及びマルチキャストパケットの入力キューの出力キューに対する割当に基づいて提供される。一定の保証レイテンシは、複数の入力ポートから任意の出力ポートへのパケットに提供される。各入力ポートは、宛先出力ポート内のその割当出力キューの中にパケットをスイッチングするので、１つの入力ポートからのパケットは、２番目の入力ポートから同一出力ポート内に別のパケットがスイッチングされるのを妨げないので、すべての入力ポートからのパケットの保証レイテンシは、強化される。スイッチファブリックのスイッチング回数は、各フローにおけるパケットのレイテンシ、及び各パケットのパケットセグメントのレイテンシも判定する。
【０１０１】
図５Ａは、図１Ｂの調停及びスケジューリング方法４０のアクト４４の実施を示す。アクト４４においては、ｒ２個のパケットのスケジューリングが実行される。アクト４４Ａにおいては、スケジューリングするパケットがさらに存在するか否かを点検する。さらにスケジューリングするパケットがあるとき、即ち、ｒ２個のすべてのパケットがスケジューリングされていないときは、制御は、４４Ｂ１に移る。アクト４４Ｂ１においては、ｒ回のスケジューリングのいずれかを介して中間ステージの３つの相互接続ネットワークのうち１つを通る経路が空いているか否かを点検する。答が「イエス」であるとき、制御は、アクト４４Ｃに移る。アクト４４Ｂ１における答が「ノー」であるとき、制御はアクト４４Ｂ２に移る。アクト４４Ｂ２においては、１回のスイッチング時又はｒ 回のスケジューリングのうち任意の２回のいずれかにおける経路２つと相互接続ネットワークを２つだけを、パケット要求のすべての宛先出力ポートまでの利用可能な経路を確保するように検索する。本発明によれば、パケット要求のすべての宛先出力ポートに対し空いた経路があるように、中間ステージ相互接続ネットワーク２つを見出すことは、常に可能である。次に、制御は４４Ｃに移る。パケットは、アクト４４Ｃにおいて選択された１つの経路又は２つの経路を介してスケジューリングされる。４４Ｄにおいては、同一スケジューリング時に別のパケットがこれらのリンクを選択しないよう、選択した第１及び第２内部リンクに選択済みの標識を付ける。次に、制御は４４Ａに戻り、こうして４４Ａ、４４Ｂ、４４Ｃ、及び４４Ｄはループで実行され、各パケットをスケジューリングする。
【０１０２】
図５Ｂは、図５Ａの方法４４の方法のアクト４４Ｂ、４４Ｃ、及び４４Ｄの１つの変形の低レベルフローチャートである。４４ＢＡ１に対する制御は、スケジューリングすべき新規パケットがあるとき、アクト４４Ａから移る。アクト４４ＢＡ１は、新規パケット要求にｃを割当て、インデックス変数ｉは、（１，１）を割当てられ、それぞれスケジューリング時１及び相互接続ネットワーク１を表す。次に、アクト４４ＢＡ２は、ｉは（ｒ，３）より大きいか否かを点検する。これは、ｒ回のスケジューリングすべてにおいて、３つの相互接続ネットワークすべてが点検されるか否かを意味する。答が「ノー」であるとき、制御はアクト４４ＢＡ４に移る。アクト４４ＢＡ４は、パケット要求ｃが、スケジューリング時ｉ．１（ここで、ｉ．１はタプルｉの第１要素、ｉ．２は第２要素を表す）において、相互接続ネットワークｉ．２に対する利用可能な第１内部リンクを有しないか否かを点検する。答が「ノー」であるときは、アクト４４ＢＡ５において、２つのセット、即ちOｉとＯkを生成し、ｉからの利用可能なリンクを有する宛先スイッチのセットと有しない宛先スイッチのセットをそれぞれ判定する。アクト４４ＢＡ６においては、Ｏｉはパケット要求ｃ の必要とする宛先出力ポートすべてを有するか否かを点検する。答が「イエス」であるときは、制御は４４Ｃ１に移り、ここでスケジューリング時ｉ．１時の相互接続ネットワークｉ．２を介して、パケット要求はスケジューリングされる。アクト４４Ｄ１は、ｉ への出入りに使用した第１及び第２内部リンクに利用不可の標識を付ける。アクト４４Ｄ１から、制御はアクト４４Ａに移る。
【０１０３】
アクト４４ＢＡ４における答が「イエス」であるときは、制御はアクト４４ＢＡ１３に移る。アクト４４ＢＡ１３においては、ｉ．２が３未満のときは、ｉ．２を１だけ増加させるようにタプルｉを調節して、同一スケジューリング時ｉ．１における次の相互接続ネットワークを点検する。ｉ．２が３に等しいときは、ｉ．１を１だけ増加させるようにタプルｉを調節して、次のスケジューリング及び相互接続ネットワーク１を点検する。次に、制御はアクト４４ＢＡ２に移る。本発明によれば、アクト４４ＢＡ２は、決してイエスの結果にならないので、アクト４４ＢＡ３には、決して到達しない。このように、アクト４４ＢＡ２、４４ＢＡ４、４４ＢＡ５、４４ＢＡ６、４４ＢＡ７、４４ＢＡ８、及び４４ＢＡ１３は、二重ネストループの外側ループを形成し、パケット要求ｃ をスケジューリングする。
【０１０４】
アクト４４ＢＡ６が「ノー」の結果になるときは、制御はアクト４４ＢＡ７に移る。アクト４４ＢＡ７においては、別のインデックス変数ｊに、それぞれスケジューリング回数１及び相互接続ネットワーク１を意味する（１，１）が割当てられる。次に、アクト４４ＢＡ８で、ｊは（ｒ，３）より大きいか否かを点検する。これは、ｒ回のスケジューリングすべてにおける３つのすべての相互接続ネットワークが点検されるか否かを意味する。答が「ノー」であるとき、制御はアクト４４ＢＡ９に移る。アクト４４ＢＡ９においては、ｉがｊに等しいか否か、即ち、ｉ．１はｊ．１に等しく且つ、ｉ．２もｊ．２に等しいか否かを点検する。アクト４４ＢＡ９が「ノー」の結果になるときは、制御はアクト４４ＢＡ１０に移る。アクト４４ＢＡ１０においては、Ｏjのセットが生成され、ｊからの利用可能なリンクを有するｃの宛先スイッチのセットを判定する。アクト４４ＢＡ１１においては、ＯkはＯjのサブセットであるか否かを点検する。答が「イエス」であるときは、パケット要求ｃが、タプルｉ及びｊで表示される２つの相互接続ネットワークを介してすべての宛先出力ポートまで、空いた経路を有することを意味する。その場合、アクト４４Ｃ２において、パケット要求は、パケット要求ｃの入力ポートにおいて２回ファンアウトすることにより、スケジューリング時ｉ．１の相互接続ネットワークｉ．２及びスケジューリングｊ．１の相互接続ネットワークｊ．２を介してスケジューリングされる。アクト４４Ｄ２は、使用したｉ及びｊ双方に出入する第１及び第２内部リンクに利用不可の標識を付ける。制御は、アクト４４Ｄ２からアクト４４Ａに移る。
【０１０５】
アクト４４ＢＡ１１が「ノー」の結果になるときは、制御はアクト４４ＢＡ１２に移る。また、アクト４４ＢＡ９が「ノー」の結果になるときは、制御はアクト４４ＢＡ１２に移る。アクト４４ＢＡ１２においては、ｊ．２が３未満のときは、ｊ．２を１だけ増加させるようにタプルｊを調節して、同一スケジューリング時ｊ．１における次の相互接続ネットワークを点検する。ｊ．２が３に等しいときは、ｊ．１を１だけ増加させるようにタプルｊ を調節して、次のスケジューリング及び相互接続ネットワーク１を点検する。次に制御は、アクト４４ＢＡ８に移る。また、アクト４４ＢＡ２が「イエス」の結果になるときは、制御はアクト４４ＢＡ１３に移る。このように、アクト４４ＢＡ８、４４ＢＡ９、４４ＢＡ１０、４４ＢＡ１１、及び４４ＢＡ１２は、二重ネストループの内側ループを形成し、パケット要求ｃをスケジューリングする。
【０１０６】
スケジューリング方法の疑似コード
ステップ１：  ｃ＝現在のパケット要求
ステップ２：  ｉ＝ 各スケジューリングにおける相互接続ネットワークｄｏ｛
ステップ３： もし（ｃ にはｉに対する利用可能リンクがない）継続；
ステップ４：          Ｏj＝ｉから利用可能なリンクを有するｃ のすべての宛先出力ポ
ートのセット
ステップ５：          Ｏk＝ｉから利用可能なリンクのないｃ のすべての宛先出力ポー
トのセット
ステップ６：    ｉｆ（Ｏj＝ｃ 必要とされるすべての宛先出力ポート）｛
ｉを介してｃ をスケジューリング；
使用したｉに出入りするすべてのパスに利用不可の標識を付ける
｝
ステップ７：  ｆｏｒ ｊ＝ 各スケジューリング時の各相互接続ネットワーク
実行｛
ステップ８：      ｉｆ（ｉ＝ｊ）｛
継続；
ステップ９：      ｝ｅｌｓｅ｛
Ｏj＝ｊから利用可能なリンクを有するｃ のすべての宛先出力ポ
ートのセット
ステップ１０：        ｉｆ（Ｏk ⊆Ｏj）｛
ｉとｊを介してｃ をスケジューリング；
使用したｉとｊに出入りするすべての経路に利用不可の標
識を付ける
｝
｝
｝
｝
【０１０７】
上記の方法は、図５Ａのスケジューリング方法４４のアクト４４Ｂ、４４Ｃ、及び４４Ｄの一実施例が、ｒ２個のパケット要求を、図４Ａ−４Ｆのスイッチファブリックの中間ステージ１３０において（３つの相互接続ネットワークを用いるか、又はクロック速度とリンク速度において３のスピードアップのいずれかを用いる）３のスピードアップを用いて、厳密なノンブロッキング方式でスケジューリングする疑似コードを示す。
【０１０８】
上記のステップ１は、現在のパケット要求に“ｃ”のラベルを付ける。ステップ２は、二重ネストループの外側ループを開始し、ｒ回のスケジューリングにおいてすべての相互接続ネットワークを通過する。ｃの入力スイッチに、ｉで表すスケジューリングの相互接続ネットワークへの利用可能なリンクが無いときは、ステップ３において、ｉとなるべき、同一スケジューリングにおける次の相互接続ネットワーク、又は次のスケジューリングにおける最初の相互接続ネットワークが選択される。ステップ４及び５は、ｉからの利用可能なリンクを有するｃの宛先出力ポートのセットと有さないｃの宛先出力ポートのセットをそれぞれ判定する。ステップ６においては、ｉで表すスケジューリングにおける相互接続ネットワークが、パケット要求ｃのすべての宛先出力ポートへの利用可能なリンクを有するときは、ｉで表すスケジューリングにおける相互接続ネットワークを介してパケット要求ｃを設定する。また、ｉで表すスケジューリングにおける相互接続ネットワークの出力ポートまで及び入力ポートからの使用したリンクすべてに、今後の要求のために利用不可の標識が付けられる。ステップ７は、内側ループを開始してスケジューリングにおけるすべての相互接続ネットワークを通過し、スケジューリングにおける第２相互接続ネットワークを検索し、ｉがｊと同一であるときは、ステップ８が、ｊとなるべき同一スケジューリング時の次の相互接続ネットワーク、又は次のスケジューリング時における最初の相互接続ネットワークの選択を継続する。ステップ９は、ｊからの利用可能なリンクを有するすべての宛先出力ポートのセットを判定する。そしてステップ１０において、ｉから利用不可のすべてのリンクが、ｊから利用可能であるときは、ｉ及びｊを介してパケット要求ｃはスケジューリングされる。ｉ及びｊから出力ポートへの、使用したすべての経路には、利用不可の標識が付けられる。これらのステップは、ｒ回の各スケジューリングにおいて、すべての相互接続ネットワークのすべてのペアについて繰り返される。ｒ回のスケジューリングのうち１回又は２回における１つ又は２つの相互接続ネットワークは、常に見出すことができ、それを介してｃをスケジューリングすることができる。このスケジューリング方法が実行するステップの数は、ｓ２＊ｒ２に比例し、その際ｍはネットワーク内の中間スイッチの数であり、したがってこのスケジューリング方法は、時間複雑度Ｏ（ｓ２＊ｒ２）の性質を持つことに気付くのは容易である。
【０１０９】
スイッチファブリックの厳密にノンブロッキングなスケジューリングにおいては、マルチレートパケット要求を入力キューから出力キューへスケジューリングするため、既にスケジューリングされたパケットの経路を妨げることなくその要求を満足する、相互接続ネットワークを介した経路を見出すことは常に可能であり、このような経路が２つ以上利用可能なときは、それらの中の任意の経路を、残りのパケット要求のスケジューリングについて心配することなく選択することができる。厳密なノンブロッキングネットワークにおいては、スイッチハードウエアのコストは上昇するが、パケットをスケジューリングするのに必要な時間は、再配置可能なノンブロッキングスイッチファブリックに比較して減少する。時間複雑度Ｏ（ｓ２＊ｒ２）の図５Ａのスケジューリング方法４４を用いる、中間ステージに３のスピードアップを使用する厳密なノンブロッキングスイッチファブリックの実施例を、図１Ａのスイッチファブリック１０及び図１Ｉのスイッチファブリック１６に示す。
【０１１０】
再配置可能なノンブロッキングスイッチファブリックにおいて、スイッチハードウエアのコストは、パケットをスイッチングするために必要な時間の増加を犠牲に、削減される。再配置可能なノンブロッキングスイッチファブリックにおけるスケジューリング時間は、新規パケットのスケジューリングに加えて、再配置を実施するため分断されたスケジューリング済みのパケットの経路を、再度スケジューリングする必要があるために、増加する。このため、新規パケットをスケジューリングするときは、スケジューリング済みパケットの再配置の必要性を最小限にするか、寧ろ削除するのが望ましい。再配置の必要性が除去されると、そのネットワークは、中間ステージ相互接続ネットワーク及びスケジュール方法次第で、厳密なノンブロッキングである。中間ステージにおいて２のスピードアップを用いる、再配置可能なノンブロッキングスイッチファブリックの一実施例を、図１Ｎのスイッチファブリック１８に示す。要求の生成、許可の発行、及び承認の生成の調停は、スイッチファブリックを厳密なノンブロッキング方式で作動させるか、又は再配置可能ノンブロッキング方式で作動させるかに関わりなく、たった１度の繰り返しで実行されることに注目しなければならない。
【０１１１】
本発明に記述する厳密なノンブロッキングスイッチファブリックは、Ｏ（ｓ２＊ｒ２）時間複雑度のスケジュール方法を必要とする。中間ステージ相互接続ネットワークにおけるスピードアップをさらに増加すると、スケジュール方法時間複雑度はＯ（ｓ＊ｒ）に減少する。線形スケジューリング時間複雑度を有する厳密なノンブロッキングスイッチファブリックは、上で参照して組込まれる「STRICTLY NON-BLOCKING MULTICAST LINEAR-TIME MULTI-STAGE NETWORKS」と題する,関連米国特許出願番号１０／９３３，８９９号、並びににそのＰＣＴ出願番号０４／２９０４３号、及び「STRICTLY NON-BLOCKING MULTICAST MULTI-SPLIT LINEAR-TIME MULTI-STAGE NETWORKS」と題する、関連米国特許出願番号１０／９３３，９００号並びにそのＰＣＴ出願番号０４／２９０２７号、に記述されている。出願者は、スイッチファブリックは、これら２つの関連米国特許の記述にあるように、中間ステージにおけるスピードアップを直接拡大することにより、またそれにより線形時間複雑度のスケジューリング方法を用いることにより、厳密なノンブロッキング方式で作動させることもできることに注目する。
【０１１２】
したがって、追加のスピードアップと、それによる線形時間複雑度のスケジューリング方法を用いて、図６Ａは、図１Ｂの調停及びスケジューリング方制御４４Ｂに移す。アクト４４Ｂ法４０のアクト４４の、一実施を示す。アクト４４においては、ｒ２個のパケットのスケジューリングが実行される。アクト４４においては、スケジューリングすべきさらなるパケットがあるか否かを点検する。スケジューリングすべきさらなるパケットがあるとき、即ち、ｒ２個のすべてのパケットがスケジューリングされていないとき、制御は４４Ｂに移る。アクト４４Ｂにおいては、中間ステージにおける３つの相互接続ネットワークのうち１つを介した空き経路を、ｒ回のスケジューリングを介して検索することにより選択する。パケットは選択された経路及び選択されたスケジューリング回数を介して、アクト４４Ｃにおいて、スケジューリングされる。４４Ｄにおいては、選択された第１内部リンク及び第２内部リンクに、選択済みの標識を付け、同一スケジューリング時に他のパケットがこれらのリンクを選択しないようにする。次に、制御はアクト４４Ａに戻り、このようにアクト４４Ａ、４４Ｂ、４４Ｃ、及び４４Ｄがループで遂行され、それぞれのパケットをスケジューリングする。
【０１１３】
図６Ｂは、図６Ａのアクト４４の一変形の低レベルのフローチャートを示す。アクト４４は、スケジューリングする新規パケットがあるとき、１は、新規パケット要求をｃに割当てる。アクト４４Ｂ２においては、スケジューリング回数１がインデックス変数ｉに割当てられる。次にアクト４４Ｂ３において、ｉがスケジューリング回数ｒより小さいか又は等しいかを点検する。答が「イエス」であるとき、制御は４４Ｂ４に移る。アクト４４Ｂ４において、別のインデックス変数ｊを相互接続ネットワーク１に設定する。アクト４４Ｂ５は、ｊは相互接続ネットワーク１−ｘの何れであるかを点検するが、ｘの値は関連米国仮特許申請において記述されている通りである。答が「イエス」であるとき、制御はアクト４４Ｂ６に移る。アクト４４Ｂ６は、パケット要求ｃ がスケジューリング時ｉにおいて相互接続ネットワークｊへの利用可能な第１内部リンクを全く有しないかを点検する。答が「ノー」であるとき、アクト４４Ｂ７が、スケジューリング時ｉにおいて相互接続ネットワークｊはパケット要求ｃの宛先出力ポートへの利用可能な第２内部リンクを全く有しないことを点検する。答が「ノー」であるとき、制御はアクト４４Ｃに移る。アクト４４Ｃにおいて、スケジューリング時ｉにおける相互接続ネットワークｊを介してパケット要求ｃをスケジューリングし、次に、アクト４４Ｄにおいて、スケジューリング時ｉにおける相互接続ネットワークｊに対応する第１及び第２の内部リンクに、使用済みの標識が付けられる。次に、制御は４４Ａに進む。アクト４４Ｂ６又はアクト４４Ｂ７の何れかにおいて「イエス」の結果となるとき、制御はアクト４４Ｂ９に移り、そこでｊを１だけ増加させてから制御はアクト４４Ｂ５に進む。アクト４４Ｂ５において「ノー」の結果となるとき、制御はアクト４４Ｂ１０に移る。アクト４４Ｂ１０は、ｉを１だけ増加してから、制御はアクト４４Ｂ３に移る。アクト４４Ｂ３が「ノー」の結果になることは決してなく、それはパケット要求ｃが、ｒ回のスケジューリングにおいて、スケジューリングされることが保証されることを意味する。アクト４４Ｂは２つのループを含む。内側ループは、アクト４４Ｂ５、４４Ｂ６、４４Ｂ７、及び４４Ｂ９を含む。外側ループは、アクト４４Ｂ３、４４Ｂ４、４４Ｂ５、４４Ｂ６、４４Ｂ７、４４Ｂ９、及び４４Ｂ１０を含む。アクト４４は、ｒ２個のパケット要求すべてがスケジューリングされるまで、すべてのパケット要求について繰り返される。
【０１１４】
以下の方法は、図６Ａのスケジューリング方法４４の一実施例のための、ｒ２個のパケット要求を、図４Ａ−４Ｆのスイッチファブリックにおける中間ステージ１３０に（３つの相互接続ネットワークを用いるか、又はクロック速度およびリンク速度において３のスピードアップいずれかを用いる）３のスピードアップを用いて、厳密なノンブロッキング方式でスケジューリングする疑似コードを示す。
【０１１５】
スケジューリング方法の疑似コード
ステップ1：  各パケット要求のスケジューリング  実行｛
ステップ２：  ｃ＝パケットスケジューリング要求；
ステップ３：  ｆｏｒ  ｉ＝ｓｈｅｄ＿ｔｉｍｅ＿１  ｔｏ  ｓｈｅｄ＿ｔｉｍｅ＿ｒ  ｄｏ｛
ステップ４：      ｆｏｒ  ｊ＝ｉｎｔｅｒ＿ｃｏｎｎ＿ｎｅｔ＿１  ｔｏｉｎｔｅｒ＿ｃｏｎｎ＿ｎｅｔ＿ｘ  ｄｏ｛
ステップ５：ｉｆ（ｃ にはｊへの利用可能な第１内部リンクがない）継続；
ステップ６：ｅｌｓｅｉｆ（ｊにはｃの宛先出力ポートへの利用可能な第２内部リンクが
ない）継続；
ステップ７：          ｅｌｓｅ｛
スケジューリング時１に相互接続ネットワークｊを介してｃ
をスケジューリング；
相互接続ネットワークｊに出入する使用済みリンクに利用不
可と標識；
｝
｝
｝
｝
【０１１６】
ステップ１は、各パケットをスケジュールするループを開始する。ステップ２は、現在のパケット要求に“ｃ”のラベルを付ける。ステップ３は、第２ループを開始し、ｒ回のスケジューリングすべてを通過する。ステップ４は、第３ループを開始して、ｘ個の相互接続ネットワークすべてを通過する。ステップ５において、パケット要求ｃの入力ポートが、スケジューリング時ｉにおいて利用可能な相互接続ネットワークｊへの第１内部リンクを有しないときは、制御はステップ４に移って、ｉとなるべき次の相互接続ネットワークを選択する。ステップ６は、パケット要求ｃの宛先出力ポートがスケジューリング時ｉにおいて利用可能な相互接続ネットワークｊへの第２内部リンクを有しないか否かを点検し、そうであるときは、制御はステップ４に移って、ｉとなるべき次の相互接続ネットワークを選択する。ステップ７においては、パケット要求ｃを、スケジューリング時ｉにおいて相互接続ネットワークｊを介して設定する。また、スケジューリング時ｉにおける相互接続ネットワークｊへの第１および第２内部リンクには、今後のパケット要求のため、利用不可の標識が付けられる。これらのステップは、ｒ回のすべてのスケジューリングにおいてｘ個のすべての相互接続ネットワークについて、利用可能な第１及び第２内部リンクが見出されるまで、繰り返される。本発明により、それを介してパケット要求ｃをスケジューリングすることのできる、ｒ回のうちの１回のスケジューリングにおける１つの相互接続ネットワークを、常に見出すことができる。このスケジューリング方法が実行するステップの数は、ｓ＊ｒに比例し、その際ｓはｘに等しいスピードアップ、ｒはスケジューリング回数の数であり、したがって、このスケジュール方法が、時間複雑度Ｏ（ｓ＊ｒ）の性質を持つことに気付くのは容易である。
【０１１７】
表９に、特定の一実施例において、上述の疑似コードのステップ１−８が図６Ｂに示す方法のフローチャートの実施方法を示す。
【０１１８】
【表９】
2007528636.tif 000018
【０１１９】
また、本発明により、スイッチファブリックがノンブロッキング方式で作動するため、中間ステージ１３０に必要なスピードアップの直接の拡張は、出力ポートにスイッチングされる前にパケットに付加された制御ビットの数に応じて比例的に調節される。例えば、（パケットを入力ポートから出力ポートにスイッチングするだけのため、これらの制御ビットを導入する場合に）入力ポートから出力ポートにスイッチングするパケット又はパケットセグメント毎に１％の付加制御ビットを追加すると、スイッチファブリックのため中間ステージ１３０において必要なスピードアップは、厳密なノンブロッキング方式で作動させるには、３．０１であり、再配置可能なノンブロッキング方式で作動させるには２．０１である。
【０１２０】
同様に、本発明によれば、パケットがセグメント化されて出力ポートにスイッチングされる場合、最後のパケットセグメントは、パケットセグメントと同一であることもないこともある。その代わり、パケットのサイズがパケットセグメントのサイズの完全な倍数でない場合、スイッチファブリックのスループットは１００％未満になる。最後のパケットセグメントが頻繁にパケットセグメントより小さい場合は、システムを１００％スループットで作動させるため、中間ステージにおけるスピードアップを比例的に増加する必要がある。
【０１２１】
本発明のノンブロッキングで決定論的スイッチファブリックは、任意に大きい数の入力キューに直接拡張することができる。即ち、宛先出力ポート内の１つより多い出力キューにスイッチングする１つより多い入力キューを各入力ポート内に備えることができ、すべての入力ポート内の異なるマルチレートマルチキャストフロー、又はマルチレートマルチキャストのマイクロフローのグループを保持する各入力キューが、レート及び保証レイテンシを有するフロー毎のＱｏＳを提供することができる。エンドツーエンド保証帯域幅、即ち、入力ポートの様々な入力キューにおける複数のマルチレートマルチキャストの、任意の宛先出力ポートへのフローを提供することができる。その上、保証された一定のレイテンシを、入力ポートにおける複数の入力キューから任意の宛先出力ポートへのパケットのフローに提供する。入力ポートにおける各入力キューは様々なフローを保持しているが、パケットを同一宛先出力ポートの中にスイッチングするので、１つの入力キューからの長いパケットは、同一入力ポートの第２の入力キューからの別の小さいパケットが同一宛先出力ポートの中にスイッチングされるのを妨げない。こうして、入力ポートからのパケットのフローのレイテンシ保証を強化する。ここでも、スイッチファブリックのスイッチング回数が、各フローにおけるパケットのレイテンシ及び各パケット内のパケットセグメントのレイテンシを判定する。
【０１２２】
入力キューから出力ポートの中に別個にスイッチングされるマルチレートマルチキャストのフローの数を増加させることにより、エンドツーエンド保証帯域幅、及びレイテンシを、細かい粒度のフローのため提供することができる。その上、多数の細かい粒度のフローにより、マルチキャストフローのレートウェイトをさらに粒度の細かいレートで提供することもできる。また、各フローを個別に形成することもでき、必要に応じて、予約過多の状況下では、予測して所望のフローからパケットの末尾廃棄（tail dropping）し、サービスプロバイダに、個々のフローに対しレートとレイテンシ保証とを提案する機会を与え、それにより追加の収入の機会を可能にする。
【０１２３】
ここに記述した実施例、実施、及び模範例に関する多数の変更及び翻案は、開示の観点から当業者には明らかであろう。
【０１２４】
本発明に記述する実施例は、パラレルコンピュータ、ビデオサーバ、負荷バランサ、及びグリッド計算アプリケーションの用途においても直接有用である。本発明に記述する実施例は、ハイブリッドスイッチ、及びルータにおいて、回路スイッチタイムスロットおよび、パケットスイッチパケット又はセルでスイッチングするのにも有用である。
【０１２５】
このような多数の変更及び翻案は、添付請求項に包含される。
【図面の簡単な説明】
【０１２６】
【図１Ａ】本発明にかかる、短いパケット及び、クロスバーに基づく相互接続ネットワークにおける３のスピードアップを含む入力及び出力マルチレートマルチキャストキューを有する模範的な４×４ポートのスイッチファブリックの図である。
【図１Ｂ】パケットを入力ポートから出力ポートにスイッチングするのに使用される、本発明にかかる、調停及びスケジューリング方法４０の高レベルフローチャートである。
【図１Ｃ】図１Ａのスケジューリングスイッチファブリック１０おける場合と同様の３ステージネットワークの図である。
【図１Ｄ】本発明にかかる連続する５回のスイッチング時における、ノンブロッキングで決定論的パケットスイッチング後の図１Ａのスイッチファブリック１０の状態を示す。
【図１Ｅ】本発明にかかる連続する５回のスイッチング時における、ノンブロッキングで決定論的パケットスイッチング後の図１Ａのスイッチファブリック１０の状態を示す。
【図１Ｆ】本発明にかかる連続する５回のスイッチング時における、ノンブロッキングで決定論的パケットスイッチング後の図１Ａのスイッチファブリック１０の状態を示す。
【図１Ｇ】本発明にかかる連続する５回のスイッチング時における、ノンブロッキングで決定論的パケットスイッチング後の図１Ａのスイッチファブリック１０の状態を示す。
【図１Ｈ】本発明にかかる連続する５回のスイッチング時における、ノンブロッキングで決定論的パケットスイッチング後の図１Ａのスイッチファブリック１０の状態を示す。
【図１Ｉ】本発明にかかる、長いパケット及び、クロスバーに基づく相互接続ネットワークにおける３のスピードアップを含む、入力及び出力マルチレートマルチキャストキューを有する模範的な４×４ポートのスイッチファブリックの図である。
【図１Ｊ】本発明にかかるパケットのセグメント化及び再組立の無いノンブロッキングで決定論的パケットスイッチング後の、連続する４回のファブリックスイッチングサイクル後における、図１Ｉのスイッチファブリック１６の状態を示す。
【図１Ｋ】本発明にかかるパケットのセグメント化及び再組立の無いノンブロッキングで決定論的パケットスイッチング後の、連続する４回のファブリックスイッチングサイクル後における、図１Ｉのスイッチファブリック１６の状態を示す。
【図１Ｌ】本発明にかかるパケットのセグメント化及び再組立の無いノンブロッキングで決定論的パケットスイッチング後の、連続する４回のファブリックスイッチングサイクル後における、図１Ｉのスイッチファブリック１６の状態を示す。
【図１Ｍ】本発明にかかるパケットのセグメント化及び再組立の無いノンブロッキングで決定論的パケットスイッチング後の、連続する４回のファブリックスイッチングサイクル後における、図１Ｉのスイッチファブリック１６の状態を示す。
【図１Ｎ】本発明にかかる、入力及び出力マルチレートマルチキャストキュー及び、クロスバーに基づく相互接続ネットワークにおける３のスピードアップを有する模範的な４×４ポートスイッチファブリックの図である。
【図２Ａ】本発明にかかる、入力マルチレートマルチキャストキュー、及びクロスバーに基づく相互接続ネットワークにおける３のスピードアップを有する模範的な４×４ポートのスイッチファブリックの図である。
【図２Ｂ】本発明にかかるノンブロッキングで決定論的パケットスイッチング後の、連続する５回のスイッチング時における図２Ａのスイッチファブリック２０の状態を示す。
【図２Ｃ】本発明にかかるノンブロッキングで決定論的パケットスイッチング後の、連続する５回のスイッチング時における図２Ａのスイッチファブリック２０の状態を示す。
【図２Ｄ】本発明にかかるノンブロッキングで決定論的パケットスイッチング後の、連続する５回のスイッチング時における図２Ａのスイッチファブリック２０の状態を示す。
【図２Ｅ】本発明にかかるノンブロッキングで決定論的パケットスイッチング後の、連続する５回のスイッチング時における図２Ａのスイッチファブリック２０の状態を示す。
【図２Ｆ】本発明にかかるノンブロッキングで決定論的パケットスイッチング後の、連続する５回のスイッチング時における図２Ａのスイッチファブリック２０の状態を示す。
【図３Ａ】本発明にかかる、入力及び出力マルチレートマルチキャストキュー及び、クロスバーに基づく相互接続ネットワークにおけるリンク速度とクロック速度が３のスピードアップを有する模範的な４×４ポートのスイッチファブリック図である。
【図３Ｂ】本発明にかかる、入力及び出力マルチレートマルチキャストキュー及び、共有メモリに基づく相互接続ネットワークにおける３のスピードアップを有する模範的な４×４ポートのスイッチファブリックの図である。
【図３Ｃ】本発明にかかる入力及び出力マルチレートマルチキャストキュー及び、共有メモリに基づく相互接続ネットワークにおけるリンク速度とクロック速度における３のスピードアップを有する模範的な４×４ポートスイッチファブリックの図である。
【図３Ｄ】本発明にかかる、入力及び出力マルチレートマルチキャストキュー及び、ハイパーキューブに基づく相互接続ネットワークにおける３のスピードアップを有する模範的な４×４ポートスイッチファブリックの図である。
【図３Ｅ】本発明にかかる、入力及び出力マルチレートマルチキャストキュー及び、ハイパーキューブに基づく相互接続ネットワークにおけるリンク速度およびクロック速度が３のスピードアップを有する模範的な４×４ポートスイッチファブリックの図である。
【図４Ａ】本発明にかかる、入力及び出力マルチレートマルチキャストキュー及び、クロスバーに基づく相互接続ネットワークにおける３のスピードアップを有する一般的ｒ＊ｒポートスイッチファブリックの図である。
【図４Ｂ】本発明にかかる、入力及び出力マルチレートマルチキャストキュー及び、クロスバーに基づく相互接続ネットワークにおいて、リンク速度とクロック速度が３のスピードアップを有する、一般的ｒ＊ｒポートスイッチファブリックの図である。
【図４Ｃ】本発明にかかる、入力及び出力マルチレートマルチキャストキュー及び、共有メモリに基づく相互接続ネットワークにける３のスピードアップを有する一般的ｒ＊ｒポートスイッチファブリックの図である。
【図４Ｄ】本発明にかかる、入力及び出力マルチレートマルチキャストキュー及び、共有メモリに基づく相互接続ネットワークにおいて、リンク速度とクロック速度が３のスピードアップを有する一般的ｒ＊ｒポートスイッチファブリックの図である。
【図４Ｅ】本発明にかかる、入力及び出力マルチレートマルチキャストキュー及び、３ステージクロスネットワークに基づく相互接続ネットワークにおける３のスピードアップを有する一般的ｒ＊ｒポートスイッチファブリックの図である。
【図４Ｆ】本発明にかかる、入力及び出力マルチレートマルチキャストキュー及び、３ステージクロスネットワークに基づく相互接続ネットワークにおける、リンク速度とクロック速度が３のスピードアップを有する一般的ｒ＊ｒポートスイッチファブリックの図である。
【図４Ｇ】図３Ｄのスイッチファブリック７０及び図３Ｅのスイッチファブリック８０における中間ステージ相互接続ネットワーク１３１−１３３の一実施例における４×４ポート（２−ランク）ハイパーキューブに基づく相互接続ネットワークの詳細図を示す。
【図５Ａ】図１Ｂの調停及びスケジューリング方法４０のアクト４４の中間レベル実施である。
【図５Ｂ】図５Ａのアクト４４の一変形の低レベルのフローチャートである。
【図６Ａ】線形時間複雑度スケジューリング方法を用いる図１Ｂの調停及びスケジューリング方法４０のアクト４４の中間レベルの実施である。
【図６Ｂ】図６Ａのアクト４４の一変形の低レベルのフローチャートである。
【図１Ａ】
2007528636.tif 000025
【図１Ｂ】
2007528636.tif 000026
【図１Ｃ】
2007528636.tif 000027
【図１Ｄ】
2007528636.tif 000028
【図１Ｅ】
2007528636.tif 000029
【図１Ｆ】
2007528636.tif 000030
【図１Ｇ】
2007528636.tif 000031
【図１Ｈ】
2007528636.tif 000032
【図１Ｉ】
2007528636.tif 000033
【図１Ｊ】
2007528636.tif 000034
【図１Ｋ】
2007528636.tif 000035
【図１Ｌ】
2007528636.tif 000036
【図１Ｍ】
2007528636.tif 000037
【図１Ｎ】
2007528636.tif 000038
【図２Ａ】
2007528636.tif 000039
【図２Ｂ】
2007528636.tif 000040
【図２Ｃ】
2007528636.tif 000041
【図２Ｄ】
2007528636.tif 000042
【図２Ｅ】
2007528636.tif 000043
【図２Ｆ】
2007528636.tif 000044
【図３Ａ】
2007528636.tif 000045
【図３Ｂ】
2007528636.tif 000046
【図３Ｃ】
2007528636.tif 000047
【図３Ｄ】
2007528636.tif 000048
【図３Ｅ】
2007528636.tif 000049
【図４Ａ】
2007528636.tif 000050
【図４Ｂ】
2007528636.tif 000051
【図４Ｃ】
2007528636.tif 000052
【図４Ｄ】
2007528636.tif 000053
【図４Ｅ】
2007528636.tif 000054
【図４Ｆ】
2007528636.tif 000055
【図４Ｇ】
2007528636.tif 000056
【図５Ａ】
2007528636.tif 000057
【図５Ｂ】
2007528636.tif 000058
【図６Ａ】
2007528636.tif 000059
【図６Ｂ】
2007528636.tif 000060