(57)【要約】  【課題】  相互接続ファブリックにおいてユニキャスト・トラフィック及びマルチキャスト・トラフィックをスケジューリングする方法、装置、及びコンピュータ・プログラムを提供する。  【解決手段】  この方法は、以下のステップを各タイム・スロット内に実行する。まず、マルチキャスト接続スケジューリング（６１）と、ユニキャスト接続スケジューリング（６２）とが個別に実行される。次に、前記ユニキャスト接続スケジュールと前記マルチキャスト接続スケジュールとがマージ・スケジュール（６３）にマージされ、スケジューリングされた接続を前記マージ・スケジュールに組み込むことができない場合には、スケジューリングされた前記接続が後続のタイム・スロット（６６、６３）で前記マージ・スケジュールに組み込まれる。  【選択図】  図３
2009508428.tif 000002
【特許請求の範囲】
【請求項１】
相互接続ファブリックにおいてユニキャスト接続要求及びマルチキャスト接続要求をスケジューリングする方法であって、
マルチキャスト接続スケジュール（６１）と、ユニキャスト接続スケジュール（６２）とを個別に作成するステップと、
前記ユニキャスト接続スケジュール（６２）と、前記マルチキャスト接続スケジュール（６１）とをマージ・スケジュール（６３）にマージするステップと、
を各タイム・スロット内に実行し、前記マルチキャスト接続スケジュール（６１）又は前記ユニキャスト接続スケジュール（６２）においてスケジューリングされた接続を前記マージ・スケジュール（６３）に組み込むことができない場合には、スケジューリングされた前記接続が後続のタイム・スロット（６６、６３）で前記マージ・スケジュールに組み込まれる、方法。
【請求項２】
前記マルチキャスト接続スケジュール（６１）においてスケジューリングされた接続が、すべて前記マージ・スケジュール（６３）に組み込まれ、
前記ユニキャスト接続スケジュール（６２）においてスケジューリングされた接続のうち、前記マルチキャスト接続スケジュール（６１）においてスケジューリングされた前記接続と競合しないようにスケジューリングされた接続が、前記マージ・スケジュール（６３）に組み込まれる、
請求項１に記載の方法。
【請求項３】
前記ユニキャスト接続スケジュールは、ｉＳＬＩＰ、ＰＩＭ、又はＤＲＲＭによって決定される、
請求項１又は２に記載の方法。
【請求項４】
前記マルチキャスト接続スケジュールは、ＴＡＴＲＡ、ＷＢＡ、又はｍＲＲＭを利用して決定される、
請求項１、２、又は３に記載の方法。
【請求項５】
ユニキャスト接続要求は、様々なキュー（ＶＯＱ１．１〜ＶＯＱ１．Ｎ）にバッファされる、
請求項１乃至４のいずれか一項に記載の方法。
【請求項６】
マルチキャスト接続要求は、別個のマルチキャストキュー（ＭＣＱ１〜ＭＣＱＮ）にバッファされる、
請求項１乃至５のいずれか一項に記載の方法。
【請求項７】
前記マージ・スケジュールに組み込むことができないようにスケジューリングされた前記接続は、その時点でまだスケジューリングされていない接続を介して優先的に処理され、更新されたマージ・スケジュールに最初に組み込まれる、
請求項１乃至６のいずれか一項に記載の方法。
【請求項８】
ユニキャスト・トラフィック及びマルチキャスト・トラフィックをスケジューリングする装置であって、
ユニキャスト接続をスケジューリングしてユニキャスト接続スケジュール（６２）を作成するユニキャスト・スケジューラ（１１）と、
マルチキャスト接続をスケジューリングしてマルチキャスト接続スケジュール（６１）を作成するマルチキャスト・スケジューラ（１２）と、
前記ユニキャスト接続スケジュール（６２）と前記マルチキャスト接続スケジュール（６１）をマージするマージ・ユニット（１３）と、
前記マージ・ユニット（１３）によって制御される相互接続ファブリック（１）と、
を備える装置。
【請求項９】
前記相互接続ファブリック（１）は、入力キュークロスバー・スイッチを備える、
請求項８に記載の装置。
【請求項１０】
前記ユニキャスト・スケジューラ（１１）及び前記マルチキャスト・スケジューラ（１２）の前にフィルタ（１４）が配置され、前記フィルタ（１４）は、ユニキャスト接続要求及びマルチキャスト接続要求を、前記マージ・ユニット（１３）からフィードバックされたサービスされていない接続に基づいてフィルタリングするように動作することが可能である、
請求項８又は９に記載の装置。
【請求項１１】
ユニキャスト・トラフィック及びマルチキャスト・トラフィックをスケジューリングするコンピューティング装置の処理ユニットにそれ自体がロードされたときに、
マルチキャスト接続スケジューリング（６１）と、ユニキャスト接続スケジューリング（６２）とを個別に実行するステップと、
前記ユニキャスト接続スケジュール（６２）と、前記マルチキャスト接続スケジュール（６１）とをマージ・スケジュール（６３）にマージするステップと、
を各タイム・スロット内に実行するコンピュータ読み取り可能なプログラム・コードを含むコンピュータ・プログラムであって、接続を前記マージ・スケジュール（６３）に組み込むことができない場合には、前記接続が後続のタイム・スロット（６６、６３）で前記マージ・スケジュールに組み込まれる、コンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にコンピュータ・ネットワークに関するものであり、特に、相互接続ファブリックにおいてユニキャスト・トラフィック及びマルチキャスト・トラフィックをスケジューリングする方法及び装置に関するものである。本方法及び装置は、コンピューティング・アプリケーションの通信で使用されるルータやスイッチのようなネットワーク装置で使用することができる。
【背景技術】
【０００２】
パケット交換ネットワークでは通常、ユニキャスト・トラフィックとマルチキャスト・トラフィックの２つのタイプのデータ・トラフィックが存在する。ユニキャスト・トラフィックでは、ポイント・ツー・ポイント接続が確立され、単一の送信元から単一の宛先にデータが送られる一方、マルチキャスト・トラフィックでは、ポイント・ツー・マルチポイント接続が確立され、単一の送信元から複数の宛先にデータ・パケットが送られ、各宛先は送信されたデータ・パケットと同一のコピーを受信する。通常、スイッチング装置は両方のトラフィック・タイプをサポートするため、着信マルチキャスト・パケットの複数のコピーを作成すること、及びコピーされた各パケットを出力リンク上に送信することができなければならない。
【０００３】
今日のインターネット・トラフィックの殆どの部分はユニキャスト・トラフィックで構成される。しかしながら、オーディオ／ビデオ会議、ラジオやＴＶのようなマルチメディア・コンテンツ配信、リモート・コラボレーション等の通信アプリケーション、ならびに並列コンピュータにおけるコレクティブ処理又はスヌープ・ベースのキャッシュ・コヒーレンシ等のコンピューティング・アプリケーションでは、マルチキャスト・トラフィックの効率的なサポートが不可欠となる。スイッチング装置は、２つのトラフィック・タイプが混在する状況でも高い性能を実現できることが理想的である。
【特許文献１】米国特許第６４７７１６９号
【非特許文献１】Ｍ．Ａｎｄｒｅｗｓ、Ｓ．Ｋｈａｎｎａ、及びＫ．Ｋｕｍａｒａｎの「Ｉｎｔｅｇｒａｔｅｄ  Ｓｃｈｅｄｕｌｉｎｇ  ｏｆ  Ｕｎｉｃａｓｔ  ａｎｄ  Ｍｕｌｔｉｃａｓｔ  Ｔｒａｆｆｉｃ  ｉｎ  ａｎ  Ｉｎｐｕｔ−Ｑｕｅｕｅｄ  Ｓｗｉｔｃｈ」、Ｐｒｏｃ．  ｏｆ  ＩＥＥＥ  ＩＮＦＯＣＯＭ  ’９９、ｖｏｌ．３（１９９９年３月）、１１４４〜１１５１頁
【非特許文献２】Ｎ．ＭｃＫｅｏｗｎの「Ｔｈｅ  ｉＳＬＩＰ  Ｓｃｈｅｄｕｌｉｎｇ  Ａｌｇｏｒｉｔｈｍ  ｆｏｒ  Ｉｎｐｕｔ−Ｑｕｅｕｅｄ  Ｓｗｉｔｃｈｅｓ」、ＩＥＥＥ／ＡＣＭ  Ｔｒａｎｓ．  Ｎｅｔｗｏｒｋｉｎｇ、ｖｏｌ．７、ｎｏ．２（１９９９年４月）、１８８〜２０１頁
【非特許文献３】Ｈ．Ｃｈａｏ及びＪ．Ｐａｒｋの「Ｃｅｎｔｒａｌｉｚｅｄ  ｃｏｎｔｅｎｔｉｏｎ  ｒｅｓｏｌｕｔｉｏｎ  ｓｃｈｅｍｅｓ  ｆｏｒ  ａ  ｌａｒｇｅ−ｃａｐａｃｉｔｙ  ｏｐｔｉｃａｌ  ＡＴＭ  ｓｗｉｔｃｈ」、ｉｎ  Ｐｒｏｃ．  ＩＥＥＥ  ＡＴＭ  Ｗｏｒｋｓｈｏｐ、Ｆａｉｒｆａｘ、ＶＡ（１９９８年５月）、１１〜１６頁
【非特許文献４】Ｒｏｄｅｈｅｆｆｅｒ，Ｔ．Ｌ．及びＪ．Ｂ．Ｓａｘｅの「Ａｎ  Ｅｆｆｉｃｉｅｎｔ  Ｍａｔｃｈｉｎｇ  Ａｌｇｏｒｉｔｈｍ  ｆｏｒ  ａ  Ｈｉｇｈ−Ｔｈｒｏｕｇｈｐｕｔ，  Ｌｏｗ−Ｌａｔｅｎｃｙ  Ｄａｔａ  Ｓｗｉｔｃｈ」、Ｃｏｍｐａｑ／Ｄｉｇｉｔａｌ  ＳＲＣ  Ｒｅｓｅａｒｃｈ  Ｒｅｐｏｒｔ  ｎｏ．１６２（１９９８年１１月５日）
【非特許文献５】Ｎ．ＭｃＫｅｏｗｎ及びＢ．Ｐｒａｂｈａｋａｒの「Ｓｃｈｅｄｕｌｉｎｇ  ｍｕｌｔｉｃａｓｔ  ｃｅｌｌｓ  ｉｎ  ａｎ  ｉｎｐｕｔ  ｑｕｅｕｅｄ  ｓｗｉｔｃｈ」、ｉｎ  Ｐｒｏｃ．  ＩＥＥＥ  ＩＮＦＯＣＯＭ  ’９６、Ｓａｎ  Ｆｒａｎｃｉｓｃｏ、ＣＡ、ｖｏｌ．１（１９９６年３月）、２７１〜２７８頁
【非特許文献６】Ｂ．Ｐｒａｂｈａｋａｒ、Ｎ．ＭｃＫｅｏｗｎ、及びＲ．Ａｈｕｊａの「Ｍｕｌｔｉｃａｓｔ  ｓｃｈｅｄｕｌｉｎｇ  ｆｏｒ  ｉｎｐｕｔ−ｑｕｅｕｅｄ  ｓｗｉｔｃｈｅｓ」、ＩＥＥＥ  Ｊ．  Ｓｅｌ．  Ａｒｅａｓ  ｉｎ  Ｃｏｍｍｕｎ．、ｖｏｌ．  １５、ｎｏ．  ５（１９９７年６月）、８５５〜８６６頁
【非特許文献７】Ｎｉｃｋ  ＭｃＫｅｏｗｎ及びＢａｌａｊｉ  Ｐｒａｂｈａｋａｒの「Ｓｃｈｅｄｕｌｉｎｇ  Ｍｕｌｔｉｃａｓｔ  Ｃｅｌｌｓ  ｉｎ  ａｎ  Ｉｎｐｕｔ−Ｑｕｅｕｅｄ  Ｓｗｉｔｃｈ」、Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ＩＥＥＥ  Ｉｎｆｏｃｏｍ  ’９６、Ｓａｎ  Ｆｒａｎｃｉｓｃｏ、Ｖｏｌ  １（１９９６年３月）、２７１〜２７８頁
【発明の開示】
【発明が解決しようとする課題】
【０００４】
Ｍ．Ａｎｄｒｅｗｓ、Ｓ．Ｋｈａｎｎａ、及びＫ．Ｋｕｍａｒａｎの「Ｉｎｔｅｇｒａｔｅｄ  Ｓｃｈｅｄｕｌｉｎｇ  ｏｆ  Ｕｎｉｃａｓｔ  ａｎｄ  Ｍｕｌｔｉｃａｓｔ  Ｔｒａｆｆｉｃ  ｉｎ  ａｎ  Ｉｎｐｕｔ−Ｑｕｅｕｅｄ  Ｓｗｉｔｃｈ」、Ｐｒｏｃ．  ｏｆ  ＩＥＥＥ  ＩＮＦＯＣＯＭ  ’９９、ｖｏｌ．３（１９９９年３月）、１１４４〜１１５１頁では、各トラフィック・タイプ毎に１つずつ、合わせて２つのスケジューラが使用されている。この文献に記載のスキームは、まずマルチキャストをスケジューリングし、その後ユニキャスト用の残りの資源を使用することから成る。このスキームは順次実行型である。このスキームの欠点は、公平でない点、即ち、マルチキャスト・トラフィックによってユニキャスト・トラフィックが長時間停止（ｓｔａｒｖｉｎｇ）するのを防止することができない点である。すべての出力（ブロードキャスト）に宛てられたマルチキャスト・パケットを単一の入力でスイッチにロードした場合には、ユニキャスト・パケットの流れが完全にブロックされてしまう。ネットワーク・ノードはユーザ毎の最小サービス量を保証することができなくなり、サービス拒否攻撃に対して脆弱になる可能性がある。
【０００５】
Ａｎｇｌｅ等の米国特許第６４７７１６９号には、スイッチング装置向けの他のマルチキャスト及びユニキャスト・スケジューリング方法が記載されている。該実施形態では、ユーザは、マルチキャスト・トラフィックのスケジューリング頻度を決定するマルチキャスト・スケジューリング周波数を構成する必要がある。当該周波数がゼロにセットされた場合には、マルチキャスト・トラフィックはどのようなサービスも受けられない。当該周波数がゼロよりも大きい値にセットされた場合には、マルチキャスト・トラフィックは定期的な間隔でスケジューリングされる。当該周波数に基づいて、任意の所与のタイム・スロットでマルチキャスト・トラフィックをスケジューリングすべきか否かが判定される。現在のタイム・スロットでマルチキャストのスケジューリングを行うべきでない場合は、ユニキャスト・スケジューリング・サイクルだけが実行される。現在のタイム・スロットでマルチキャストのスケジューリングを行うべき場合は、ユニキャスト・スケジューリング・サイクル及びマルチキャスト・スケジューリング・サイクルが並行して実行される。その場合には、ユニキャスト・スケジューリングでそれ以前のマルチキャスト結果が考慮に入れられ、可能であれば既存のマルチキャスト・スケジュールがユニキャストで拡張（ｅｎｌａｒｇｅ）される。これと並行して新しいマルチキャスト・スケジュールが計算される。このスキームの重要な特徴は、ユニキャスト・スケジューラ及びマルチキャスト・スケジューラが並行して使用されることであるが、後に使用すべきマルチキャスト・スケジュールの穴をユニキャストで埋めながらマルチキャスト・スケジュールを「準備（ｐｒｅｐａｒｅ）」する場合が多い。つまり、該実施形態では通常ユニキャスト・トラフィックのスケジューリングだけが行われる。その一方で、マルチキャスト・スケジュールの計算は、事前定義されたタイム・スロットで行われる。マルチキャスト・スケジュールの準備が整ったときは、次のタイム・スロットでマルチキャスト・スケジュールがユニキャスト・スケジューラに渡され、ユニキャスト・スケジューラは、その時点で使用可能な入出力だけを考慮に入れたスケジューリング・サイクルを実行することによって、マルチキャスト・スケジュールを拡張しようと試みる。このスキームでは、事前計算されたマルチキャスト・スケジュールにユニキャスト・エッジを加えることで統合が実現されるため、ユニキャストとマルチキャストの競合が回避される。ユニキャスト・スケジューラ及びマルチキャスト・スケジューラは、その時々に並行して実行され、即ち、各スケジューラは直列計算を高速化するためにパイプライン形式で実行される。ユニキャスト・スケジューラにとってはどの出力が空いているかに関する情報がなおも必要となるので、計算されたマルチキャスト・スケジュールは後続のタイム・スロットで使用されることになる。それらの出力を同じタイム・スロットで使用しようとする場合は、マルチキャストを先に行った後にユニキャストを行う直列スキームに戻る。該実施形態では、ユーザはスケジューリング周波数を手動で構成しなければならない。当該周波数は、マルチキャストによって受けることが可能となる最大サービス量を直接決定するものである。実際のトラフィック・パターンがプログラムされた所期の値と一致しない場合には、マルチキャストによって十分なサービスが受けられず、上記周波数を再プログラムしなければならない。一般に、トラフィック状態は予測が極めて困難であり、変動が大きくなり得ることから、マルチキャスト・スケジューリング周波数の周波数変更が必要となる可能性がある。この周波数変更が行われなければマルチキャスト性能は低下する。第２に、マルチキャスト・スケジューリング周波数によってはマルチキャスト・トラフィックのレイテンシー・ペナルティが発生する。レイテンシー・ペナルティは、マルチキャスト周波数カウンタによってマルチキャスト・スケジューリング・サイクルがトリガされる次のタイム・スロットで、マルチキャスト・スケジュールの発行が遅れることに起因する。したがって、当該周波数が低い場合はレイテンシーが非常に高くなる。いずれにせよ、不必要なレイテンシーの発生は、特に、並行計算アプリケーションにとって望ましいものではない。第３に、マルチキャスト・スケジューリング周波数が提供されるマルチキャスト・トラフィックの実際の値に対応しない値にプログラムされた場合には、不公平な結果をもたらす恐れがある。特に、当該周波数を低く設定しすぎると、使用可能帯域幅の不公平な部分がユニキャストによって使用される恐れがある。
【課題を解決するための手段】
【０００６】
本発明の一目的は、ユニキャスト・トラフィック及びマルチキャスト・トラフィックの公平かつ効率的なスケジュールを提供し、ユニキャスト・トラフィック及びマルチキャスト・トラフィックのレイテンシーが低い、相互接続ファブリックにおいてユニキャスト・トラフィック及びマルチキャスト・トラフィックをスケジューリングする方法、装置、及びコンピュータ・プログラムを提供することである。
【０００７】
本発明の一態様によれば、上記目的は、相互接続ファブリックにおいてユニキャスト・トラフィック及びマルチキャスト・トラフィックをスケジューリングする、独立請求項１、８、及び１１に記載の特徴を有する方法、装置、及びコンピュータ・プログラムによって達成される。
【０００８】
本発明に係る相互接続ファブリックにおいてユニキャスト・トラフィック及びマルチキャスト・トラフィックをスケジューリングする前記方法は、以下のステップを各タイム・スロット内に実行する。マルチキャスト接続スケジューリングと、ユニキャスト接続スケジューリングとが個別に実行される。次に、前記ユニキャスト接続スケジュールと、前記マルチキャスト接続スケジュールとがマージ・スケジュールにマージされ、スケジューリングされた接続を前記マージ・スケジュールに組み込むことができない場合には、スケジューリングされた前記接続が後続のタイム・スロットで前記マージ・スケジュールに組み込まれる。
【０００９】
本発明に係るユニキャスト・トラフィック及びマルチキャスト・トラフィックをスケジューリングする装置は、ユニキャスト接続のスケジューリング専用に使用されるユニキャスト・スケジューラと、マルチキャスト接続のスケジューリング専用に使用されるマルチキャスト・スケジューラと、前記ユニキャスト接続スケジュールと前記マルチキャスト接続スケジュールをマージするマージ・ユニットと、前記マージ・ユニットによって制御される相互接続ファブリックと、を備える。
【００１０】
前記コンピュータ・プログラムは、ユニキャスト・トラフィック及びマルチキャスト・トラフィックをスケジューリングするコンピューティング装置の処理ユニットにそれ自体がロードされたときに以下の処理を各タイム・スロット内に実行する、コンピュータ読み取り可能なプログラム・コードを含む。マルチキャスト接続スケジューリングと、ユニキャスト接続スケジューリングとが個別に実行される。更に、前記ユニキャスト接続スケジューリングと、前記マルチキャスト接続スケジューリングとがマージ・スケジュールにマージされ、スケジューリングされた接続を前記マージ・スケジュールに組み込むことができない場合には、スケジューリングされた前記接続が後続のタイム・スロットで前記マージ・スケジュールに組み込まれる。
【００１１】
本発明の他の有利な改良は、添付の特許請求範囲に示される特徴を読めば明らかとなるだろう。
【００１２】
本発明の方法では好ましいことに、前記マルチキャスト接続スケジューリングにおいてスケジューリングされた接続が、すべて前記マージ・スケジュールに組み込まれ、前記ユニキャスト接続スケジュールにおいてスケジューリングされた接続のうち、前記マルチキャスト接続スケジュールにおいてスケジューリングされた前記接続と競合しないようにスケジューリングされた接続が、前記マージ・スケジュールに組み込まれる。これは、前記ユニキャスト・スケジュールと前記マージ・スケジュールをマージする容易かつ効果的なルールである。
【００１３】
本発明に係る方法の一実施形態において、前記ユニキャスト接続スケジュールは、ｉＳＬＩＰ、デュアル・ラウンド・ロビン・マッチング（ＤＲＲＭ）、又は並列反復マッチング（ＰＩＭ）を利用して決定される。
【００１４】
本発明に係る方法の他の一実施形態において、前記マルチキャスト接続スケジュールは、ＴＡＴＲＡ又は重みベース・アルゴリズム（ＷＢＡ）を利用して決定される。
【００１５】
更に、本発明に係る方法では、ユニキャスト・セルを様々なキューにバッファすることができる。これによって、先頭行ブロッキングを回避することができる。また、前記ユニキャスト・セルの転送も高速化されることになる。
【００１６】
これに加えて、本発明に係る方法では、マルチキャスト・セルを１つ又は複数の別個のマルチキャスト・セルキューにバッファすることができる。
【００１７】
最後に、本発明に係る方法の他の一実施形態では、前記マージ・スケジュールに組み込むことができないようにスケジューリングされた前記接続は、その時点でまだスケジューリングされていない接続を介して優先的に処理（ｆａｖｏｒ）され、更新されたマージ・スケジュールに最初に組み込まれる。これによって、スケジューリングされた前記接続は、その時点でまだスケジューリングされていない前記接続よりも高い優先順位を獲得し、スケジューリングされた前記接続が待機中のキューにあまり長い時間残らないようにすることが保証される。
【００１８】
本発明に係る装置の他の一実施形態において、前記相互接続ファブリックは、入力キュークロスバー・スイッチへの入力キュー（ｉｎｐｕｔ  ｑｕｅｕｅｄ  ｃｒｏｓｓｂａｒ  ｓｗｉｔｃｈ）である。
【００１９】
本発明の別の態様において、前記装置は、前記ユニキャスト・スケジューラ及び前記マルチキャスト・スケジューラの前に配置されたフィルタを備えることができ、前記フィルタは、ユニキャスト要求及びマルチキャスト要求を、前記マージ・ユニットからフィードバックされた情報に基づいてフィルタリングするように動作することが可能である。
【００２０】
本発明及び本発明の諸実施形態は、現時点で好ましいとされる本発明の例示的な諸実施形態の以下の詳細な説明を添付図面と併せて参照すれば、より十分な理解が得られるだろう。
【発明を実施するための最良の形態】
【００２１】
図１に示されるスイッチング装置は、Ｎ個のライン・カード３．１〜３．Ｎと、Ｎ個の入力Ｉ１〜ＩＮ及びＮ個の出力Ｏ１〜ＯＮを有するクロスバー・スイッチ１と、集中スケジューラ又はアービトレーション・ユニット１０とを含む、入力キューアーキテクチャに基づくものである。ライン・カード３．１〜３．Ｎは、スイッチとそれ自体の環境との間のインターフェイスを形成し、入力リンク７上のパケットを受信し、各パケットをそれぞれクロスバー１の入力Ｉ１〜ＩＮに送信する。ライン・カード３．１〜３．Ｎは、出力ポートＯ１〜ＯＮに送信されるのを待つ着信パケットのキューＱ１〜ＱＮも維持する。ライン・カードに到着したユニキャスト・パケットは、それぞれの宛先に応じて別個の仮想出力キュー（ｖｉｒｔｕａｌ  ｏｕｔｐｕｔ  ｑｕｅｕｅ）ＶＯＱに格納される。一方、マルチキャスト・パケットは通常単一のマルチキャストキュー（ｍｕｌｔｉｃａｓｔ  ｑｕｅｕｅ）ＭＣＱに格納されるが、異なるキュー構造を用いることも可能である。つまり、図１に示されるように、クロスバー・スイッチ１の各入力Ｉでは各出力Ｏ毎に別個の先入れ先出し（ＦＩＦＯ）キューが維持される。例えば、クロスバー・スイッチ１の１番目の入力Ｉ１は、仮想出力キューＶＯＱ１．１〜ＶＯＱ１．Ｎと呼ばれるＮ個のＦＩＦＯキューと、マルチキャストキューＭＣＱ１とに結合され、クロスバー・スイッチ１の２番目の入力Ｉ２は、仮想出力キューＶＯＱ２．１〜ＶＯＱ２．Ｎと呼ばれるＮ個のＦＩＦＯキューと、マルチキャストキューＭＣＱ２とに結合される。転送決定（ｆｏｒｗａｒｄｉｎｇ  ｄｅｃｉｓｉｏｎ）がなされた後、ライン・カード３．１〜３．Ｎのうちの１つから到着したセルは、それ自体の出力元ポート（単数又は複数）に対応する仮想出力キュー又はマルチキャストキューに入れられる。
【００２２】
一般に、時間は等しい継続時間のスロットに分割され、これをタイム・スロットと呼ぶ。タイム・スロットの継続時間は、セルと呼ばれる固定サイズのデータ単位をスイッチング・ファブリック、即ちクロスバー・スイッチ１を介して送信するのに要する時間と等価である。着信データ・パケットは、入力部で複数のセルに区分され、出力部で再組み立てされる。
【００２３】
クロスバー・スイッチは、スイッチを構築するのに使用される相互接続ファブリック又はスイッチング・ファブリックである。クロスバー・スイッチは、クロス・ポイント・スイッチと呼ばれることもある。クロスバー・スイッチは、スイッチ入力とスイッチ出力との間の切り換えに関する特性行列（ｃｈａｒａｃｔｅｒｉｓｔｉｃ  ｍａｔｒｉｘ）を有する。スイッチがＭ個の入力とＮ個の出力とを有する場合、クロスバーはＭ×Ｎのクロス・ポイントを含む行列を有することになり、又は「バー（ｂａｒ）」が「交差（ｃｒｏｓｓ）」する地点に配置されることになる。
【００２４】
クロスバー・スイッチ１は、Ｎ個の入力Ｉ１〜ＩＮとＮ個の出力Ｏ１〜ＯＮとを相互接続することが可能な回路である。各タイム・スロット毎の入出力接続の可能な組合せは、各入力Ｉから発信可能な最大パケット数が１つ、各出力Ｏに到着可能な最大パケット数も１つとされる制約によって制限される。しかしながら、入力Ｉから発信されたセルを複数の出力Ｏで受信することはできる。したがって、クロスバー・スイッチ１を用いると、複数の出力Ｏに対するパケットのレプリケーションを単一のタイム・スロットで行うことが可能となるため、マルチキャスト・トラフィックのナチュラル・サポートが実現される。
【００２５】
集中スケジューラ１０の入力１５及び１６は、それぞれ制御チャネル５．１〜５．Ｎを介して入力Ｉ１〜ＩＮに接続され、集中スケジューラ１０の出力１７は、クロスバー・スイッチ１の制御入力に接続されている。集中スケジューラ１０は、各タイム・スロット毎の仮想出力キューＶＯＱ１．１〜ＶＯＱＮ．Ｎの状況及びマルチキャストキューＭＣＱ１〜ＭＣＱＮの状況を検査し、上述の制約を受けるクロスバー・スイッチ１の構成を計算する。この動作は、各ノードが１つの入力と１つの出力とを表す２部グラフのノード間で一致するスケジュールを発見することと等価である。図２（ａ）及び（ｂ）には、４つの入力Ｉ１〜Ｉ４と４つの出力Ｏ１〜Ｏ４とを有する２部グラフの一例が示されている。入力ノードと出力ノードとを接続するラインはエッジと呼ばれ、クロスバー・スイッチ１によって形成される入出力接続に対応している。ユニキャスト・スケジュールは、図２（ａ）に示されるような１対１の接続を排他的に含み、マルチキャスト・スケジュールは、図２（ｂ）に示されるような１対多の接続を含むこともできる。
【００２６】
図３に示される本発明の一実施形態において、集中スケジューラ１０は、要求フィルタ１４と、ユニキャスト・スケジューリング用の第１のスケジューラ１１と、マルチキャスト・スケジューリング用の第２のスケジューラ１２と、統合ブロックとも呼ばれるマージ・ユニット（ｍｅｒｇｉｎｇ  ｕｎｉｔ）１３とを備える。ユニキャスト・スケジューラ１１及びマルチキャスト・スケジューラ１２は、ユニキャスト・スケジュールとマルチキャスト・スケジュールとを個別に計算するのに使用され、また、それらを並行して計算するのにも使用される。これらのスケジュールは後続のマージ・ユニット１３を利用して、マージ・スケジュール（ｍｅｒｇｅｄ  ｓｃｈｅｄｕｌｅ）と呼ばれる単一の統合スケジュールに組み合わせられる。対応するスケジューラ１１又は１２によってそれらが選択されたとしても、現在のタイム・スロット中にはサービスが受けられないようにスケジュールされている接続は、後続のタイム・スロットでサービスを受けることになる。この目的で、マージ・ユニット１３は、サービスを受けていない接続又はそれらの接続に関する情報を要求フィルタ１４にフィードバックする。
【００２７】
各タイム・スロットの開始時点で、集中スケジューラ１０はユニキャストキューの状況及びマルチキャストキューの状況に関する情報又は要求を、制御リンク６．１〜６．Ｎ上のライン・カード３．１〜３．Ｎから受信する。各制御リンク６．１〜６．Ｎはそれぞれ、制御チャネル・インターフェイス（ＣＣＩ）５．１〜５．Ｎで終端されている。制御チャネル・インターフェイス５．１〜５．Ｎは、それぞれと接続されているライン・カードのキュー毎の状況情報、即ち、保留状態のユニキャスト要求及びマルチキャスト要求を継続的に追跡する。当該状況情報によって、ユニキャスト用の制御リンク１５及びマルチキャスト用の制御リンク１６を介してスケジューラ１０に通信される要求が決定される。それらの要求は、要求フィルタ１４内の特定のアルゴリズムに従って操作されるが、この操作については後で詳細に説明する。ユニキャスト要求及びマルチキャスト要求は、フィルタリング後にそれぞれリンク２０及び１９上の各スケジューラ１１及び１２に送信される。スケジューラ１１及び１２はいずれも、それぞれのアルゴリズムを並行して実行する。ユニキャスト・スケジューラ１１は、空でない（ｎｏｎ−ｅｍｐｔｙ）仮想出力キューＶＯＱに関する入力から要求を受け取り、クロスバー・スイッチ１の入力Ｉと出力Ｏとの間の１対１のスケジュール、即ちユニキャスト・スケジュールを作成する。マルチキャスト・スケジューラ１２は、マルチキャストキューの先頭行にあるセルのファンアウトを検査し、マルチキャスト・スケジュールを作成する。ファンアウト分割は、マルチキャスト・セルがそれ自体の宛先のサブセットにだけ送信される部分的なサービスを受けることが可能なタイム・スロット中に許可される。ユニキャスト・スケジュール及びマルチキャスト・スケジュールはそれぞれ、リンク２１及び２２上でマージ・ユニット１３に転送される。２つのスケジューラ１１及び１２が並行して実行されるときも独立して実行されるときも、各スケジューラが作成するスケジュールは一般に重複することになる。即ち、各スケジュールは競合するエッジを有する可能性がある。クロスバー・スイッチ１の構成に一貫性を与えるために、マージ・ユニット１３は、後述の統合ポリシーに従って２つの独立したスケジュールを単一の統合スケジュールに組み合わせ、リンク１７を使用して、許可（ｇｒａｎｔ）を含む情報を制御チャネル・インターフェイス５．１〜５．Ｎ及びクロスバー・スイッチ１に返す。制御チャネル・インターフェイス５．１〜５．Ｎは、集中スケジューラ１０の一部とすることもライン・カード３．１〜３．Ｎの一部とすることもでき、マージ後のスケジュールに従ってそれぞれの状況情報を更新し、対応する許可をライン・カード３．１〜３．Ｎに発行する。スケジューラ１１及び１２によって選択されたパケットのうちの一部しか現在のタイム・スロット中にサービスすることができない状況も発生し得る。マージ・ユニット１３によってサービスが取り消されたセルは、後続のタイム・スロットでサービスされる。統合スケジュールから除外されたエッジ・セットを「残余（ｒｅｍａｉｎｄｅｒ）」と呼ぶ。それらのセルに関する情報は、リンク１８上でマージ・ユニット１３から要求フィルタ１４にフィードバックされる。
【００２８】
本発明の一実施形態において、各接続要求は次の２地点で競合を経験する。まず、同じトラフィック・タイプに属する他の接続と競合し、次に、他のトラフィック・タイプに属する接続と競合する。両方の競合で勝つ機会がすべての接続に与えられる場合には、公平性が保証される。スケジューラ１１及び１２によって選択された各接続は、マージ・ユニット１３によって統合スケジュールから除外された場合には、サービスされないままとなる。スケジューラ１１及び１２はそれぞれに許可されたサービスが実際に取り消されたことを認識し、その結果、公平性はもはや保証されないことになる。このような問題の解決策は、後続のタイム・スロットであっても残余の一部を構成するすべてのエッジが実際にサービスを受けられるように保証することである。
【００２９】
本発明の方法及び装置の利点は、２つのトラフィック・タイプが混在する状況でより高い性能が実現されることである。更に、トラフィック・パターンに適応可能である点、及び米国特許第６４７７１６９号に記載されるようなユニキャスト・スケジューリング周波数やマルチキャスト・スケジューリング周波数等のスケジューリング・パラメータの手動設定が必要ない点も有利であり、レイテンシーも大幅に低下することとなる。他の利点としては、公平であること、即ち、システム内のすべてのパケットが有限時間内にサービスを受けることが保証されることが挙げられる。別の利点としては、スケジューラが順番に実行されるのではなく並行して実行される故に、順次スキームに対して最小タイム・スロット継続時間が短くなることが挙げられる。更に、アルゴリズムに依存しないこと、即ち、システム設計者が各自のニーズに最も合うユニキャスト及びマルチキャスト・スケジューリング・アルゴリズムを選択することが可能となることも挙げられる。また、本発明は、選択されたキューアーキテクチャに依存するものでもなく、各機能を複数のチップにより容易な形で分散させることが可能となる。
【００３０】
ユニキャスト・トラフィックをスケジューリングし、ユニキャスト・スケジューラ１１に実装することが可能なアルゴリズムとしては、例えばｉＳＬＩＰ、ＤＲＲＭ（Ｄｕａｌ  Ｒｏｕｎｄ  Ｒｏｂｉｎ  Ｍａｔｃｈｉｎｇ：デュアル・ラウンド・ロビン・マッチング）、及びＰＩＭ（Ｐａｒａｌｌｅｌ  Ｉｔｅｒａｔｉｖｅ  Ｍａｔｃｈｉｎｇ：並列反復マッチング）がある。
【００３１】
以下では、ユニキャスト・トラフィック・スケジューリングについてｉＳＬＩＰアルゴリズムを用いて説明する。ｉＳＬＩＰは、反復アルゴリズムである。入力Ｉ１〜ＩＮと出力Ｏ１〜ＯＮとを突き合わせながら、各タイム・スロット中に複数の反復が実行されることによってクロスバー構成が選択される。ｉＳＬＩＰアルゴリズムは、優先順位が循環する（ｒｏｔａｔｉｎｇ  ｐｒｉｏｒｉｔｙ）（ラウンド・ロビン型の）アービトレーションを使用してアクティブ状態の各入力及び出力を順番にスケジューリングする。ｉＳＬＩＰはハードウェアの形で容易に実装することができ、高速動作が可能である。ｉＳＬＩＰは、それぞれ３つのステップから成る複数の反復で、無競合マッチ（ｃｏｎｆｌｉｃｔ−ｆｒｅｅ  ｍａｔｃｈ）に速やかに収束するよう試みる。当初からすべての入力と出力のマッチングが行われるわけではなく、１回の反復が終了した時点でマッチしなかった入力及び出力だけが、次回のマッチング対象とされる。各反復の３つのステップは、各出力及び入力に対して並行して実行される。各反復の３つのステップは以下のとおりである。
【００３２】
（ステップ１：要求）
マッチしなかった各入力Ｉは、マッチしなかった出力Ｏのうち、各入力Ｉがそれらに関するキューセルを有するすべての出力Ｏに要求を送信する。
【００３３】
（ステップ２：許可）
出力Ｏは、何らかの要求を受信した場合には、固定されたラウンド・ロビン・スケジュールで次に登場する最も優先順位の高い要素から選択を開始する。出力Ｏは、各入力Ｉにそれぞれの要求が許可されたかどうかを通知する。
【００３４】
（ステップ３：受付け）
入力Ｉは、許可を受信した場合には、固定されたラウンド・ロビン・スケジュールで次に登場する最も優先順位の高い要素から受付けを開始する。ラウンド・ロビン・スケジュール内の最も優先順位の高い要素を指すポインタは、Ｎを法として、受け付けられた出力の１つ上の位置まで増分される。対応する出力で最も優先順位の高い要素を指すポインタは、Ｎを法として、許可された入力の１つの上の位置まで増分される。各ポインタは最初の反復が行われた後にのみ更新される。
【００３５】
マッチしなかった入力と出力だけを各反復で考慮に入れることにより、先行する反復の間にマッチしなかった入力と出力の突き合わせが行われる。
【００３６】
ｉＳＬＩＰアルゴリズムの詳細情報は、Ｎ．ＭｃＫｅｏｗｎの「Ｔｈｅ  ｉＳＬＩＰ  Ｓｃｈｅｄｕｌｉｎｇ  Ａｌｇｏｒｉｔｈｍ  ｆｏｒ  Ｉｎｐｕｔ−Ｑｕｅｕｅｄ  Ｓｗｉｔｃｈｅｓ」、ＩＥＥＥ／ＡＣＭ  Ｔｒａｎｓ．  Ｎｅｔｗｏｒｋｉｎｇ、ｖｏｌ．７、ｎｏ．２（１９９９年４月）、１８８〜２０１頁で確認することができる。
【００３７】
ＤＲＲＭアルゴリズムの詳細情報は、Ｈ．Ｃｈａｏ及びＪ．Ｐａｒｋの「Ｃｅｎｔｒａｌｉｚｅｄ  ｃｏｎｔｅｎｔｉｏｎ  ｒｅｓｏｌｕｔｉｏｎ  ｓｃｈｅｍｅｓ  ｆｏｒ  ａ  ｌａｒｇｅ−ｃａｐａｃｉｔｙ  ｏｐｔｉｃａｌ  ＡＴＭ  ｓｗｉｔｃｈ」、ｉｎ  Ｐｒｏｃ．  ＩＥＥＥ  ＡＴＭ  Ｗｏｒｋｓｈｏｐ、Ｆａｉｒｆａｘ、ＶＡ（１９９８年５月）、１１〜１６頁で確認することができる。
【００３８】
ＰＩＭアルゴリズムの詳細情報は、Ｒｏｄｅｈｅｆｆｅｒ，Ｔ．Ｌ．及びＪ．Ｂ．Ｓａｘｅの「Ａｎ  Ｅｆｆｉｃｉｅｎｔ  Ｍａｔｃｈｉｎｇ  Ａｌｇｏｒｉｔｈｍ  ｆｏｒ  ａ  Ｈｉｇｈ−Ｔｈｒｏｕｇｈｐｕｔ，  Ｌｏｗ−Ｌａｔｅｎｃｙ  Ｄａｔａ  Ｓｗｉｔｃｈ」、Ｃｏｍｐａｑ／Ｄｉｇｉｔａｌ  ＳＲＣ  Ｒｅｓｅａｒｃｈ  Ｒｅｐｏｒｔ  ｎｏ．１６２（１９９８年１１月５日）で確認することができる。
【００３９】
マルチキャスト・トラフィックをスケジューリングし、マルチキャスト・スケジューラ１２に実装することが可能なアルゴリズムとしては、例えばＴＡＴＲＡ、及び重みベース・アルゴリズム（Ｗｅｉｇｈｔ  Ｂａｓｅｄ  Ａｌｇｏｒｉｔｈｍ：ＷＢＡ）がある。各アルゴリズムはそれぞれ、Ｎ．ＭｃＫｅｏｗｎ及びＢ．Ｐｒａｂｈａｋａｒの「Ｓｃｈｅｄｕｌｉｎｇ  ｍｕｌｔｉｃａｓｔ  ｃｅｌｌｓ  ｉｎ  ａｎ  ｉｎｐｕｔ  ｑｕｅｕｅｄ  ｓｗｉｔｃｈ」、ｉｎ  Ｐｒｏｃ．  ＩＥＥＥ  ＩＮＦＯＣＯＭ  ’９６、Ｓａｎ  Ｆｒａｎｃｉｓｃｏ、ＣＡ、ｖｏｌ．１（１９９６年３月）、２７１〜２７８頁、及びＢ．Ｐｒａｂｈａｋａｒ、Ｎ．ＭｃＫｅｏｗｎ、及びＲ．Ａｈｕｊａの「Ｍｕｌｔｉｃａｓｔ  ｓｃｈｅｄｕｌｉｎｇ  ｆｏｒ  ｉｎｐｕｔ−ｑｕｅｕｅｄ  ｓｗｉｔｃｈｅｓ」、ＩＥＥＥ  Ｊ．  Ｓｅｌ．  Ａｒｅａｓ  ｉｎ  Ｃｏｍｍｕｎ．、ｖｏｌ．  １５、ｎｏ．  ５（１９９７年６月）、８５５〜８６６頁に記載されている。
【００４０】
ユニキャスト・トラフィックとマルチキャスト・トラフィックが入力で競合している場合に、マルチキャストの方が勝ったときには１つのエッジだけが失われることになるが、マルチキャストの方が負けたときには複数のエッジが除去される可能性があることに留意していただきたい。したがって、好ましい一実施形態において、マージ・ユニット１３は、以下のアルゴリズムを使用してユニキャスト・スケジューラ１１及びマルチキャスト・スケジューラ１２によって選択されたパケットのうち、どのパケットが現在のタイム・スロット中にサービスを受けるべきか判定する。
１．マルチキャスト・スケジューラによって選択されたすべてのパケットをサービスする。
２．ユニキャスト・スケジューラによって選択されたユニキャスト・パケットのうち、マルチキャスト・スケジュールと競合しないユニキャスト・パケット、即ち、それ自体のサービスがクロスバー制約に違反しないユニキャスト・パケットをサービスする。
【００４１】
したがって、上述のアルゴリズムが実行された場合、残余は常にユニキャスト・エッジだけを含むことになる。
【００４２】
つまり、統合スケジュールは、すべてのマルチキャスト・エッジと、それらのマルチキャスト・エッジと重複しないユニキャスト・エッジとを含むことになる。追加することができないユニキャスト・エッジは、現在のタイム・スロット中にサービスを受けることができず「残余」を構成するユニキャスト・パケットに相当する。図４（ａ）乃至（ｄ）には、マージ・ユニット１３の動作の一例が示されている。図４（ａ）には、マルチキャスト・スケジューラ１２によって実施されるマルチキャスト・スケジュールが示されている。図４（ｂ）には、ユニキャスト・スケジューラ１１によって実施されるユニキャスト・スケジュールが示されている。いずれのスケジュールもマージ・ユニット１３によってマージされ、その結果が図４（ｃ）の２部グラフに示されている。図４（ｄ）には、単一のタイム・スロット中にマージすることができなかったスケジュールの残余が示されている。
【００４３】
各タイム・スロットの開始時点で、要求フィルタ１４は、残余内のエッジによってカバーされる入力及び出力に関する情報をマージ・ユニット１３から受信する。次のタイム・スロットで、要求フィルタ１４は、それらの資源が関与するすべてのユニキャスト要求及びマルチキャスト要求を破棄し、その結果、それらの要求がスケジューラ１１及び１２によって考慮されないように保証する。
【００４４】
各タイム・スロットの終了時点で、マージ・ユニット１３は、現在の統合スケジュール内のエッジ及び先行するタイム・スロット中に発生した残余内のエッジに関する許可をライン・カード３．１〜３．Ｎに発行する。マージ・ユニット１３は、新しい残余（空であってもよい）を発生させ、当該残余を要求フィルタ１４にフィードバックする。換言すれば、現在のタイム・スロット中にサービスを受けることができないユニキャスト・パケットは、直後のタイム・スロットでサービスされることになる。したがって、資源は要求フィルタ１４によって予約されているため空いていることになる。
【００４５】
図６には、上述のトラフィック・スケジューリング６０の動作が示されている。要約すると、ステップ６１及びステップ６２で、マルチキャスト・セル・スケジューリング及びユニキャスト・セル・スケジューリングが個別に実行される。ステップ６３で、ユニキャスト・セル・スケジュールとマルチキャスト・セル・スケジュールが１つのマージ・スケジュールにマージされる。スケジューリングされた接続をマージ・スケジュールに組み込むことができない場合には、スケジューリングされた当該接続がバッファに入れられ（ステップ６６）、後続のタイム・スロットでマージ・スケジュールに組み込まれる。ステップ６７では、１つのタイム・スロット内にマージ・スケジュールに組み込むことができないようにスケジューリングされた接続、即ち、残余としてバッファに入れられたスケジューリング済みの接続に関する情報が、フィルタリングを実行するフィルタにフィードバックされる。このフィルタ・アルゴリズムでは、その時点でまだスケジューリングされていないマルチキャスト要求又はユニキャスト要求を介して、ステップ６６で残余としてバッファに入れられたスケジューリング済みの接続が優先的に処理され、まず、バッファに入れられているスケジューリング済みの接続に対応する要求を、マルチキャスト又はユニキャストあるいはその両方のスケジューリング・ステップ６１及び６２に送信する。これによって、更新されたマージ・スケジュールでは、ステップ６６でバッファに入れられた接続が優先的に選択される。
【００４６】
（他の実施形態）
各タイム・スロットでスイッチ資源が残余の放電（ｄｉｓｃｈａｒｇｅ）に使用されるため、場合によってはマルチキャスト性能が制限される可能性がある。最終的にはマージの際に選択されなかったすべてのエッジをサービスすることが不可欠であるが、必ずしも直ちにこれを行う必要はない。互いに交差しない残余（ｄｉｓｊｏｉｎｔ  ｒｅｍａｉｎｄｅｒ）の特性を利用して、連続するタイム・スロット中に発生した残余を蓄積し、最良の条件が揃った時点で個々のエッジをサービスすることが可能である。残余サービス・ポリシーによって各タイム・スロット毎にどのエッジをサービスすべきかが特定され、対応するマルチキャスト要求がフィルタリングされる。これとは対照的に、ユニキャスト要求では、互いに交差しない残余が常に得られるように、蓄積されたすべてのエッジを使用してフィルタリングが行われる。良好なポリシーを用いれば、サービスが残余内のエッジに速やかに提供されるとともに、マルチキャスト・セルの流れを妨げる要因が最小限に抑えられる。
【００４７】
スイッチング装置の性能は、各タイム・スロット毎に残余内のどのセルがサービスを受けるかをより注意深く選択することによって改善することができる。つまり、より複雑なアルゴリズムを要求フィルタ１４に実装すること、及びより多くの情報を要求フィルタ１４に提供することが、性能の改善につながる。
【００４８】
図５に示される実施形態では、以下の条件に当てはまる場合にだけ、残余ユニキャスト・セルがサービス対象として選択される。
（条件１）そのセルの宛先が、マルチキャストによって要求された出力以外の出力に該当する場合、又は
（条件２）そのセルの発信元が、マルチキャストによって要求された入力以外の入力に該当する場合、又は
（条件３）そのセルの発信元が、先行するタイム・スロットでマルチキャスト・セルのサービスを完了させた入力に該当する場合。
【００４９】
条件１及び２に関する情報は、ライン１５及び１６上の要求から演繹することができ、条件３に関する情報は、ライン・カード３．１〜３．Ｎ上で維持することができる。
【００５０】
最初の２つのルール又は条件は統合を改善するためのものであり、例えば、通常であればアイドル状態となる資源を使用することができる場合には、これを採用することが望ましい。この場合、残余エッジをサービスするコストは、１つの出力（１つ目のルール）又は１つの入力（２つ目のルール）をマルチキャストのために使用できない状態にすることである。
【００５１】
３つ目のルールを用いた場合、マージ・ユニット１３は、他のいくつかのセルと競合しているセルを優先的に処理する傾向がある。一般に、先頭行に移行した直後のセルは、それぞれのファンアウトが飽和状態となり、通常はファンアウトが大きいため、多数の競合を発生させる可能性がある。それらのセルはあまり考慮に入れられない可能性が高く、したがって、それらのセルのスケジューリングが延期された場合には、スケジュールの品質に相当大きな影響を与えることになる。３つ目のルールは、公平性を改善することが可能である。例えば、マルチキャスト・スケジューラ１２は、任意の入力の先頭行のセルが有限時間内にサービスされることを保証し、その結果、各入力を残余エッジのサービスに使用することができるようになる。ＴＡＴＲＡ、ＷＢＡ、ｍＲＲＭ等のアルゴリズムは、少なくとも１つのマルチキャスト・セルが各タイム・スロット毎に完全に放電されることを保証する。ｍＲＲＭアルゴリズムについては、Ｎｉｃｋ  ＭｃＫｅｏｗｎ及びＢａｌａｊｉ  Ｐｒａｂｈａｋａｒの「Ｓｃｈｅｄｕｌｉｎｇ  Ｍｕｌｔｉｃａｓｔ  Ｃｅｌｌｓ  ｉｎ  ａｎ  Ｉｎｐｕｔ−Ｑｕｅｕｅｄ  Ｓｗｉｔｃｈ」、Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ＩＥＥＥ  Ｉｎｆｏｃｏｍ  ’９６、Ｓａｎ  Ｆｒａｎｃｉｓｃｏ、Ｖｏｌ  １（１９９６年３月）、２７１〜２７８頁に記載されている。
【００５２】
要求フィルタ１４は、サービス対象として選択された各セル毎に対応するマルチキャスト要求を破棄し、マージ・ユニット１３に許可を発行するよう通知する。ユニキャスト要求は常に、残余内のすべてのエッジを考慮に入れた上でフィルタリングされる。
【００５３】
フィードバック・ループ１８及び要求フィルタ１４は、競合の解消に直接寄与するわけではなく、適応性、性能向上、及び公平性の実現を支援するものであり、これらを用いることにより、例えば残余内のユニキャスト・エッジを容易に破棄することができるようになる。
【００５４】
図５に示される実施形態は、２つの追加的な通信チャネル２３及び２４を備える。チャネル２３は、残余の許可を発行すべきことをマージ・ユニット１３に知らせる。チャネル２４は、条件３をどの入力に適用すべきかを要求フィルタ１４に知らせる。
【００５５】
（先頭行ＨＯＬブロッキングの解消）
クロスバー・スイッチの単純な一実施形態では、各入力で待機状態にあるすべてのセルが単一のＦＩＦＯキューに格納される。あるセルがＦＩＦＯキューの先頭に達したときは、当該セルは、集中スケジューラによって考慮に入れられる。当該セルは、同一の出力が宛先となっているが現時点で他の入力のＨＯＬに所在するセルを有する、それ自体の出力と競合することになる。次にどのセルを出力すべきか決定することは、集中スケジューラのジョブである。最終的には各セルが選択され、クロスバー・スイッチを介して各セルの出力に送達されることになる。この種のＦＩＦＯキューを用いると、各セルは、異なる出力が宛先となる他の先行セルが原因で待機状態となる可能性がある。この現象は、ＨＯＬブロッキングと呼ばれる。集中スケジューラから「見える」のはＦＩＦＯキューの先頭に所在するセルだけであることから、異なる出力に送達する必要がある後続のパケットがＨＯＬセルによってブロックされることになる。良性のトラフィック・パターンが存在する場合でさえ、スループットは、ＨＯＬブロッキングによって固定長又は可変長のパケットにおける集約帯域幅の６０％にまで制限されてしまう。トラフィックがバースト性である場合、又はいくつかの出力ポートが優先的に処理される場合は、スループットが更に悪化する恐れもある。そのような問題を緩和するために、仮想出力キュー（ＶＯＱ）を実装することができる。図１に示されるように、各入力では出力毎に別個のＦＩＦＯキューが維持される。転送決定がなされた後、到着セルは、それ自体の出力元ポートに対応するキューに入れられる。各タイム・スロットの開始時点で、集中スケジューリング・アルゴリズムは、すべての入力キューの内容を検査し、入力と出力の間の無競合マッチを発見する。理論上は、スケジューリング・アルゴリズムを用い、ＶＯＱを使用した場合には、クロスバー・スイッチのスループットをＦＩＦＯキューを用いた場合の６０％から完全な１００％に増加させることができる。これは、ＨＯＬブロッキングが完全に解消されたことにより、異なる出力を宛先とする先行セルが原因で待機状態となるセルが存在しなくなるためである。
【００５６】
この文脈において、入力キューとは、パケットがスイッチング装置の入力においてバッファに入れられることを指し、集中スケジューラは、スイッチング・ファブリックへのアクセス競合を解決するものを指す。本アーキテクチャを用いると、スイッチング・ファブリック及びメモリが入力リンクと同一のデータ転送速度で動作することが可能となり、そのため、データ・パスのスケーラビリティが向上することになる。
【００５７】
本発明は以下の利点を有する。各タイム・スロット毎に統合が実行されるので、性能を改善することができる。更に、先に指摘したとおりレイテンシーも低下する。また、トラフィック・パターン変動への自動適応化が更に促進される。これに加えて公平性も改善される。最後に、本発明は、トラフィック・タイプに関わらず接続が長時間停止するのを防止すると同時に、ユニキャスト・トラフィックとマルチキャスト・トラフィックのスケジューリング問題をも解決する。
【００５８】
以上、新規性ある方法及び装置の好ましい一実施形態を図示し本明細書に記載してきたが、これらの方法及び装置には、本発明の趣旨又は添付の特許請求範囲から逸脱しない限り様々な変更及び修正を施すことができることに留意していただきたい。
【図面の簡単な説明】
【００５９】
【図１】ネットワーク用の入力キュースイッチのブロック図である。
【図２】（ａ）は、ユニキャスト・スケジューリング用の２部グラフの一例を示す図である。（ｂ）は、マルチキャスト・スケジューリング用の２部グラフの一例を示す図である。
【図３】スケジューラの第１の実施形態のブロック図である。
【図４】（ａ）は、マージ前のユニキャスト・トラフィック及びマルチキャスト・トラフィックに関する２部グラフの一例を示す図である。（ｂ）は、マージ前のユニキャスト・トラフィック及びマルチキャスト・トラフィックに関する２部グラフの一例を示す図である。（ｃ）は、マージ後のユニキャスト・トラフィック及びマルチキャスト・トラフィックに関する２部グラフの一例を示す図である。（ｄ）は、マージ後のユニキャスト・トラフィック及びマルチキャスト・トラフィックに関する２部グラフの一例を示す図である。
【図５】スケジューラの第２の実施形態のブロック図である。
【図６】一実施形態に係る全体のトラフィック・スケジューリングを示すフロー図である。
【図１】
2009508428.tif 000003
【図２】
2009508428.tif 000004
【図３】
2009508428.tif 000005
【図４】
2009508428.tif 000006
【図５】
2009508428.tif 000007
【図６】
2009508428.tif 000008
【国際調査報告】
2009508428.tif 000009
2009508428.tif 000010