(57)【特許請求の範囲】
【請求項１】
入力ポートと入力されるパケットの宛先で決まる出力ポートとの組み合わせに対応して設けられ、該パケットを保持するための複数のキュー部と、
前記複数のキュー部の前記入力ポートと前記出力ポートの組み合わせである入出力ポート対をグループ化し、複数の該入出力ポート対に対応するキュー部に対して、前記パケットの出力または出力優先順位を段階的に決定するスケジューラと、
を有し、
前記スケジューラは、
複数の前記入出力ポート対を複数のグループに分類するポートグルーピングを行うグルーピング部と、
前記複数のキュー部が保持するパケットに関する情報であるパケット情報に基づいて、前記グルーピング部が分類した複数のグループのうち、パケットを出力させるグループを選択するグループ間スケジューリングを行うグループ間スケジューラと、
前記ポートグルーピングで分類されたグループに対応し、自グループに関連する前記キュー部が保持するパケット情報に基づいて、該グループ内の前記入出力ポート対のうち、優先すべき入出力ポート対を選択するグループ内スケジューリングを行う複数のグループ内スケジューラと、を有し、
前記スケジューラは、前記ポートグルーピング、前記グループ間スケジューリングおよび前記グループ内スケジューリングを階層的に実行し、
前記複数のグループ内スケジューラのうち、前記グループ間スケジューラで選択されたグループに対応するグループ内スケジューラが、前記グループ内スケジューリングを実行する、パケット転送装置。
【請求項２】
入力ポートと入力されるパケットの宛先で決まる出力ポートとの組み合わせに対応して設けられ、該パケットを保持するための複数のキュー部と、
前記複数のキュー部の前記入力ポートと前記出力ポートの組み合わせである入出力ポート対をグループ化し、複数の該入出力ポート対に対応するキュー部に対して、前記パケットの出力または出力優先順位を段階的に決定するスケジューラと、
を有し、
前記スケジューラは、
複数の前記入出力ポート対を複数のグループに分類するポートグルーピングを行うグルーピング部と、
前記複数のキュー部が保持するパケットに関する情報であるパケット情報に基づいて、前記グルーピング部が分類した複数のグループのうち、パケットを出力させるグループを選択するグループ間スケジューリングを行うグループ間スケジューラと、
前記ポートグルーピングで分類されたグループに対応し、自グループに関連する前記キュー部が保持するパケット情報に基づいて、該グループ内の前記入出力ポート対のうち、優先すべき入出力ポート対を選択するグループ内スケジューリングを行う複数のグループ内スケジューラと、を有し、
前記スケジューラは、前記ポートグルーピング、前記グループ間スケジューリングおよび前記グループ内スケジューリングを階層的に実行し、
前記グループ間スケジューラは、前記複数のグループ内スケジューラの前記グループ内スケジューリングの結果に基づいて、前記グループ間スケジューリングを実行する、パケット転送装置。
【請求項３】
請求項１または２に記載のパケット転送装置において、
入力ポート毎に設けられ、入力されるパケットをカウントして、トラヒック量を算出するカウンタをさらに有し、
前記スケジューラは、
複数の前記カウンタから受信するトラヒック量に基づいて、前記グループ間スケジューリングおよび前記グループ内スケジューリングの繰り返し回数を決定する、パケット転送装置。
【請求項４】
請求項１から３のいずれか１項記載のパケット転送装置において、
前記グルーピング部は、
前記ポートグルーピングを実行する際、前回行った方法とは異なる分類方法でポートグルーピングを実行する、パケット転送装置。
【請求項５】
入力ポートと入力されるパケットの宛先で決まる出力ポートとの組み合わせに対応して、該パケットを保持するための複数のキュー部を備えたパケット転送装置が実行するパケットスケジューリング方法であって、
前記複数のキュー部の前記入力ポートと前記出力ポートの組み合わせである入出力ポート対をグループ化し、
複数の前記入出力ポート対に対応するキュー部に対して、前記パケットの出力または出力優先順位を段階的に決定するスケジューリングを行い、
前記グループ化およびスケジューリングでは、
複数の前記入出力ポート対を複数のグループに分類するポートグルーピングと、
前記複数のキュー部が保持するパケットに関する情報であるパケット情報に基づいて、前記ポートグルーピングで分類された複数のグループのうち、パケットを出力させるグループを選択するグループ間スケジューリングと、
前記ポートグルーピングで分類されたグループに対応し、該グループに関連する前記キュー部が保持するパケット情報に基づいて、該グループ内の前記入出力ポート対のうち、優先すべき入出力ポート対を選択するグループ内スケジューリングと、を階層的に行い、
複数の前記グループ内スケジューリングのうち、前記グループ間スケジューリングで選択されたグループに対応する前記グループ内スケジューリングを実行する、パケットスケジューリング方法。
【請求項６】
入力ポートと入力されるパケットの宛先で決まる出力ポートとの組み合わせに対応して、該パケットを保持するための複数のキュー部を備えたパケット転送装置が実行するパケットスケジューリング方法であって、
前記複数のキュー部の前記入力ポートと前記出力ポートの組み合わせである入出力ポート対をグループ化し、
複数の前記入出力ポート対に対応するキュー部に対して、前記パケットの出力または出力優先順位を段階的に決定するスケジューリングを行い、
前記グループ化およびスケジューリングでは、
複数の前記入出力ポート対を複数のグループに分類するポートグルーピングと、
前記複数のキュー部が保持するパケットに関する情報であるパケット情報に基づいて、前記ポートグルーピングで分類された複数のグループのうち、パケットを出力させるグループを選択するグループ間スケジューリングと、
前記ポートグルーピングで分類されたグループに対応し、該グループに関連する前記キュー部が保持するパケット情報に基づいて、該グループ内の前記入出力ポート対のうち、優先すべき入出力ポート対を選択するグループ内スケジューリングと、を階層的に行い、
前記グループ間スケジューリングを、複数の前記グループ内スケジューリングの結果に基づいて実行する、パケットスケジューリング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット転送装置およびパケットスケジューリング方法に関する。
【背景技術】
【０００２】
スイッチの前段にバッファを備えた入力バッファ型パケットスイッチは、ＨｏＬ（head- of- line）ブロッキングにより、スループットが制限されるという問題点がある。その解決策として、各入力ポートに出力ポート数分のキューを備えたＶＯＱ（仮想出力キューイング）バッファを設け、ＶＯＱバッファに保持されるパケットの出力順序をスケジューリングする方法がある。この方法において、パケットをより効率的に出力するためのスケジューリングアルゴリズムの検討が盛んに行われている。
【０００３】
ＶＯＱバッファのスケジューリングはポート数Ｎに対して、Ｎ2個のキューを考慮して行われる。
【０００４】
ＶＯＱバッファを備えた、従来のパケット転送装置の構成と動作を簡単に説明する。図２４は従来のパケット転送装置の構成例を示すブロック図である。
【０００５】
図２４（ａ）に示すように、パケット転送装置２００は、Ｎ個のＶＯＱバッファ２０１と、アドレステーブル１０２と、スケジューラ２０３と、スイッチ制御部１０４と、Ｎ×Ｎ  ｎｏｎ−ｂｌｏｃｋｉｎｇスイッチ（以下では、単にＮ×Ｎスイッチと称する）１０５とを有する。
【０００６】
Ｎ個のＶＯＱバッファ２０１は、それぞれ外部からパケットが入力される入力ポート＃１〜＃Ｎを備え、出力側がＮ×Ｎスイッチ１０５のＮ個の入力ポートと接続されている。Ｎ×Ｎスイッチ１０５は、外部にパケットを送出するために、Ｎ個の出力ポート＃１〜＃Ｎが設けられている。スケジューラ２０３の一構成例を図２４（ｂ）に示す。
【０００７】
ｉ番目（ｉは１からＮの任意の自然数）の入力ポートを有するＶＯＱバッファ２０１は、ヘッダプロセッサ１１１と、バッファ書込部１１２と、バッファメモリ１１３と、バッファ読出部１１４と、仮想出力キュー（ＶＯＱ）１１６と、ＶＯＱ管理部１１７とを有する。ＶＯＱ１１６によって、バッファメモリ１１３内に複数のキュー部が仮想的に構成される。
【０００８】
次に、図２４に示したパケット転送装置２００の動作を説明する。図２５は図２４に示したパケット転送装置の動作手順を示すフローチャート図である。
【０００９】
図２５に示すように、ヘッダプロセッサ１１１は、パケットが到着すると、到着パケットからヘッダの内容を読み出すヘッダ処理を行い（ステップ５０１）、アドレステーブル１０２を参照し、ヘッダ内のアドレスとポート番号の対応付けとテーブルの情報を更新する。アドレステーブルは更新された情報を保持する（ステップ５０２）。続いて、ヘッダプロセッサ１１１は、対応する出力ポート番号をアドレステーブル１０２から読み出すと、出力ポート番号をバッファ書込部１１２に通知し、到着パケットをバッファメモリ１１３に格納する（ステップ５０３）。
【００１０】
バッファ書込部１１２は、ヘッダプロセッサ１１１から出力ポート番号を受け取ると、宛先となる出力ポート毎にパケットを振り分け、新たにパケットが到着したことをＶＯＱ管理部１１７に通知する（ステップ５０４）。
【００１１】
ＶＯＱ管理部１１７は、出力ポート番号とポインタをＶＯＱ１１６に送信し、ＶＯＱ１１６の先頭パケットの有無を更新する（ステップ５０５）。ＶＯＱ１１６は、バッファメモリ１１３内のパケットを指すポインタを格納する（ステップ５０６）。ＶＯＱ管理部１１７は、ＶＯＱ１１６の状態をスケジューラ２０３に通知する。スケジューラ２０３は、各ＶＯＱバッファ２０１のＶＯＱ管理部１１７から通知される、ＶＯＱ１１６の状態に基づいてスケジューリングを行い、パケットを出力させる入出力ポート対を決定する（ステップ５０７）。
【００１２】
続いて、スケジューラ２０３は、ステップ５０７で決定したパケットの宛先となる出力ポート番号をＶＯＱ管理部１１７に通知し、出力対象となるパケットである出力パケットの入出力関係の情報をスイッチ制御部１０４に通知する。出力パケットの入出力関係の情報とは、どのＶＯＱバッファ２０１からＮ×Ｎスイッチ１０５に入力される出力パケットの宛先がどの出力ポートに対応しているかを示す情報である。
【００１３】
スイッチ制御部１０４は、出力パケットの入出力関係の情報をスケジューラ２０３から受け取ると、その情報に基づいて、出力パケットの方路切替をＮ×Ｎスイッチ１０５に設定する（ステップ５０９）。
【００１４】
一方、ＶＯＱ管理部１１７は、出力パケットの出力ポート番号の情報をスケジューラ２０３から受け取ると、その情報をＶＯＱ１１６とバッファ読出部１１４に通知し、バッファ読出部１１４に出力パケットの読み出しを指示する（ステップ５１０）。その後、ＶＯＱ管理部１１７は、ＶＯＱの先頭パケットの有無を更新する（ステップ５１１）。
【００１５】
バッファ読出部１１４は、出力パケットのアドレスにアクセスして、対象となる出力パケットをバッファメモリ１１３から読み出し、出力パケットをＮ×Ｎスイッチ１０５に転送する（ステップ５１２）。Ｎ×Ｎスイッチ１０５は、ステップ５０９の設定にしたがって、最大Ｎ個のパケットの方路を切り替えて外部に出力する（ステップ５１３）。
【００１６】
図２６は、図２４に示したパケット転送装置２００において、ポート数Ｎ＝４の場合の模式図である。図２６に示す構成の場合、スケジューラ２０３は、４2＝１６個のキューから入出力競合を回避しつつ、出力パケットを最大４個選ぶことになる。
【００１７】
パケットスイッチでは１パケットが通過する時間内にパケットスケジューリングが完了しなければならない。ポート数とともに計算量は増加する。また、ＩＦ速度とパケットサイズによって計算時間の上限が決まる。これらのことを考慮して、計算時間によって実現できるポート数の上限が決まる。
【００１８】
非特許文献１に開示されたＶＯＱバッファで最適解を求める場合、ポート数の増加にともなって計算量は膨大化する。このことが非特許文献２に開示されている。その計算量を抑制するために、様々なヒューリスティックアルゴリズムが考案されている。
【００１９】
その代表的な手法として、ｉＳＬＩＰが知られている（非特許文献３参照）。ｉＳＬＩＰでは、各入出力間でラウンドロビンを用いて出力パケットを決定する。Ｎ個の各ポートにおいて、それぞれ最大Ｎ回の比較演算を行うものである。ヒューリスティックアルゴリズムとして、別の例が非特許文献４に開示されている。
【先行技術文献】
【非特許文献】
【００２０】
【非特許文献１】Y. Tamir and G. Frazier, “High Performance Multi-Queue Buffers for VLSI Communication Switches,” Proc. 15th Ann. Symp. Computer Architecture, pp. 343-354, June 1988.
【非特許文献２】N. McKeown, A. Mekkittikul, V. Anantharam, and J. Walrand, "Achieving 100% Throughput in an Input-Queued Switch," IEEE Transactions on Communications, vol. 47, no. 8, pp. 1260-1267, Aug. 1999.
【非特許文献３】N. Mckeown, "The iSLIP scheduling algorithm for Input-Queued switches," IEEE/ACM Trans. Networking, vol. 7, pp. 188-201, April 1999.
【非特許文献４】T. E. Anderson, S. S. Owicki, J. B. Saxe and C. P. Thacker, "High speed switch scheduling for local area networks," ACM Trans. on Computer Systems, vol. 11, No. 4, pp. 319-352, Nov. 1993.
【発明の概要】
【発明が解決しようとする課題】
【００２１】
しかし、非特許文献３および非特許文献４に開示されたヒューリスティックアルゴリズムでさえ、計算量のオーダは、Ｏ（Ｎ2）である。ポート数を増やすと計算量がさらに増大し、制限時間内に計算が完了しない。この場合、スイッチの大規模化が不可能となる。低計算時間かつ高性能なスケジューリング方法の実現が求められている。
【００２２】
本発明は上述したような技術が有する問題点を解決するためになされたものであり、スイッチの大規模化を実現可能にしたパケット転送装置およびパケットスケジューリング方法を提供することを目的とする。
【課題を解決するための手段】
【００２３】
上記目的を達成するための本発明のパケット転送装置は、
入力ポートと入力されるパケットの宛先で決まる出力ポートとの組み合わせに対応して設けられ、該パケットを保持するための複数のキュー部と、
前記複数のキュー部の前記入力ポートと前記出力ポートの組み合わせである入出力ポート対をグループ化し、複数の該入出力ポート対に対応するキュー部に対して、前記パケットの出力または出力優先順位を段階的に決定するスケジューラと、
を有する構成である。
【００２４】
また、本発明のパケットスケジューリング方法は、
入力ポートと入力されるパケットの宛先で決まる出力ポートとの組み合わせに対応して、該パケットを保持するための複数のキュー部を備えたパケット転送装置が実行するパケットスケジューリング方法であって、
前記複数のキュー部の前記入力ポートと前記出力ポートの組み合わせである入出力ポート対をグループ化し、
複数の前記入出力ポート対に対応するキュー部に対して、前記パケットの出力または出力優先順位を段階的に決定するものである。
【発明の効果】
【００２５】
本発明によれば、パケットスケジューリングの時間を短縮でき、スイッチの大規模化を実現することができる。
【図面の簡単な説明】
【００２６】
【図１】本発明の一実施形態のパケット転送装置の構成を説明するためのブロック図である。
【図２】図１に示すパケット転送装置の動作を説明するための図である。
【図３Ａ】第１の実施形態のパケット転送装置の構成例を示すブロック図である。
【図３Ｂ】図３Ａに示したスケジューラの構成例を示すブロック図である。
【図４】第１の実施形態のパケット転送装置の動作手順を示すフローチャートである。
【図５】図３Ｂに示したスケジューラの動作手順を示すフローチャートである。
【図６】第１の実施形態のスケジューリング方法を説明するための図である。
【図７】第１の実施形態のスケジューリング方法を説明するための図である。
【図８】第１の実施形態のスケジューリング方法を説明するための図である。
【図９】スケジューリングの繰り返し処理を説明するための図である。
【図１０】スケジューリングの繰り返し処理を説明するための図である。
【図１１】スケジューリングの繰り返し処理を説明するための図である。
【図１２】繰り返し処理の際に別のグルーピングを行う場合を説明するための図である。
【図１３】繰り返し処理の際、図１２で説明した方法とは別のグルーピングを行う場合を説明するための図である。
【図１４】第１の実施形態におけるスケジューリング方法において、２段階計算のバリエーションを説明するための図である。
【図１５】実施例１のパケット転送装置の構成を模式的に示すブロック図である。
【図１６】図１５に示すパケット転送装置が実行するスケジューリング方法を説明するための図である。
【図１７】図１６に示したスケジューリングによる結果の一例を示す図である。
【図１８】実施例１において、トラヒック情報を用いてポートグルーピングを行う場合を説明するための図である。
【図１９】第２の実施形態のパケット転送装置におけるスケジューラの構成例を示すブロック図である。
【図２０】図１９に示したスケジューラの動作手順を示すフローチャートである。
【図２１】第２の実施形態のスケジューリングを説明するための図である。
【図２２】第２の実施形態のスケジューリングを説明するための図である。
【図２３】第２の実施形態におけるスケジューリング方法において、２段階計算のバリエーションを説明するための図である。
【図２４】従来のパケット転送装置の構成例を示すブロック図である。
【図２５】図２４に示したパケット転送装置の動作手順を示すフローチャート図である。
【図２６】図２４に示したパケット転送装置において、ポート数Ｎ＝４の場合の模式図である。
【発明を実施するための形態】
【００２７】
本発明の一実施形態のパケット転送装置について説明する。
【００２８】
図１は本発明の一実施形態のパケット転送装置の構成を説明するためのブロック図であり、図２は図１に示すパケット転送装置の動作を説明するための図である。
【００２９】
本実施形態のパケット転送装置は、Ｎ個のＶＯＱバッファ１０１と、スケジューラ１０３と、Ｎ×Ｎスイッチ１０５とを有する。ここでは、Ｎ＝４の場合で説明する。図１に示すスケジューラ１０３の動作を、図１および図２を参照して説明する。
【００３０】
スケジューラ１０３は、Ｎ個のＶＯＱバッファ１０１内のキュー部に対して、入力ポートと出力ポートの組み合わせを、次のようにグループ化する。
【００３１】
図１に示す例において、スケジューラ１０３は、入力ポート＃１、＃２を入力ポートグループ＃ｇ１とし、入力ポート＃３、＃４を入力ポートグループ＃ｇ２とする。また、出力ポート＃１、＃２を出力ポートグループ＃ｇ１とし、出力ポート＃３、＃４を出力ポートグループ＃ｇ２とする。
【００３２】
続いて、スケジューラ１０３は、入力ポートグループと出力ポートグループの組み合わせで各キュー部を、次のようにグループ化する。このグルーピングによるグループを「入力ポートグループ→出力ポートグループ」と表記すると、図１に示す例では、グループ「＃ｇ１→＃ｇ１」を実線の四角で示し、グループ「＃ｇ１→＃ｇ２」を一点鎖線の四角で示し、グループ「＃ｇ２→＃ｇ１」を破線の四角で示し、グループ「＃ｇ２→＃ｇ２」をドット模様でハッチングしている。
【００３３】
図２の上側はグループ間スケジューリングを説明するための図であり、図２の下側はグループ内スケジューリングを説明するための図である。
【００３４】
スケジューラ１０３は、上記のようにグループ化を行った後、各グループ内のパケット情報に基づいて、グループ間スケジューリングを実行することで、スケジューリングを実行させるグループを選択する。パケット情報は、例えば、キュー部がパケットを保持しているか否かの情報、またはキュー部が保持しているパケットの数の情報などである。図２の上側に示す図では、スケジューラ１０３が、グループ「＃ｇ１→＃ｇ２」および「＃ｇ２→＃ｇ１」を選択した場合を示す。
【００３５】
続いて、スケジューラ１０３は、グループ間スケジューリングで決定したグループについて、グループ内の各キュー部のパケット情報に基づいて、グループ内スケジューリングを実行する。入力ポート番号ｉと出力ポート番号ｊの組み合わせを入出力ポート対（ｉ，ｊ）と表記すると、図２の下側に示す図では、スケジューラ１０３が、グループ「＃ｇ１→＃ｇ２」において、入出力ポート対（１，４）のキュー部と入出力ポート対（２，３）のキュー部を選択し、グループ「＃ｇ２→＃ｇ１」において、入出力ポート対（３，１）のキュー部を選択した場合を示す。
【００３６】
ここでは、スケジューラ１０３がグループ間スケジューリングを実行した後に、グループ内スケジューリングを実行する場合で説明したが、グループ内スケジューリングを先に実行し、その後にグループ間スケジューリングを実行してもよい。
【００３７】
本実施形態のパケット転送装置では、ＮポートをＧグループに分割し、グループ間のスケジューリングとグループ内のスケジューリングという２段階のスケジューリングを行っている。このようにして、複数ポートを論理的に束ねた“ポートグループ”を導入し、スケジューリング問題を小分けにして探索範囲を限定することで、計算量の削減を図ることができる。
以下に、本発明のパケット転送装置の実施形態を詳しく説明する。
【００３８】
（第１の実施形態）
本実施形態のパケット転送装置の構成を説明する。なお、図２４を参照して説明した構成と同様な構成についての詳細な説明は省略する。
【００３９】
図３Ａは本実施形態のパケット転送装置の構成例を示すブロック図である。
【００４０】
図３Ａに示すように、本実施形態のパケット転送装置１００は、図２４を参照して説明したパケット転送装置２００と比べると、パケットカウンタ１１５が新たに設けられ、また、スケジューラ２０３の代わりにスケジューラ１０３が設けられている。
【００４１】
図３Ｂは図３Ａに示したスケジューラの構成例を示すブロック図である。
【００４２】
図３Ｂに示すように、スケジューラ１０３は、トラヒックテーブル３１と、入力ポートと出力ポートの組み合わせである入出力ポート対をグループ化するポートグループ化部３２と、グループ間のスケジューリングを行うＧ×Ｇスケジューラ３３と、グループ間スケジューリングの結果に基づいてグループ内スケジューリングを行う（Ｎ／Ｇ）×（Ｎ／Ｇ）スケジューラ３４−１〜３４−Ｇと、スケジューリングの繰り返し処理が必要か否かを判定する繰り返し判定部３５とを有する。
【００４３】
次に、本実施形態のパケット転送装置１００の動作を説明する。
【００４４】
図４は本実施形態のパケット転送装置の動作手順を示すフローチャートである。本実施形態では、図２５を参照して説明した動作と異なる点を詳しく説明し、同様な動作についての詳細な説明を省略する。
【００４５】
ヘッダプロセッサ１１１にパケットが入力されると、本実施形態では、ステップ５０１の前に、ヘッダプロセッサ１１１は、新たにパケットが到着したことをパケットカウンタ１１５に通知する（ステップＡ６０１）。パケットカウンタ１１５は、到着パケットをカウントする（ステップＡ６０２）。続いて、パケットカウンタ１１５は、カウントした到着パケットの数をスケジューラ１０３に通知する（ステップＡ６０３）。単位時間あたりの到着パケットの数はトラヒック量に対応する。トラヒック量は、トラヒック状況を示す情報の一種である。
【００４６】
スケジューラ１０３は、各ＶＯＱバッファ１０１のＶＯＱ管理部１１７からＶＯＱ１１６の状態の情報を受け取ると、ＶＯＱ１１６の状態の情報に基づいて、スケジューリングを段階的に行って、入力ポート毎に出力させるパケットを決定する（ステップＡ６０４）。スケジューラ１０３は、各ＶＯＱバッファ１０１のパケットカウンタ１１５から受信するトラヒック量の情報を保持する。なお、ＶＯＱ１１６の状態の情報は、（Ｎ／Ｇ）×（Ｎ／Ｇ）スケジューラ３４−１〜３４−Ｇにも通知される。
【００４７】
次に、ステップＡ６０４における、スケジューラ１０３の動作を詳しく説明する。図５は図３Ｂに示したスケジューラの動作手順を示すフローチャートである。
【００４８】
トラヒックテーブル３１は、各入力ポートのパケットの流入量を示すトラヒック量の情報をパケットカウンタ１１５から受け取ると、トラヒック量の情報を保存する（ステップ７０１）。図４を参照して説明したように、各ポートのＶＯＱ１１６の状態がＶＯＱ管理部１１７からポートグループ化部３２および（Ｎ／Ｇ）×（Ｎ／Ｇ）スケジューラ３４−１〜３４−Ｇに通知される。
【００４９】
ＶＯＱの状態の情報とは、バッファメモリ１１３内で、ＶＯＱバッファ１０１の入力ポートと入力されるパケットの宛先で決まる出力ポートとの組み合わせで特定されるキュー部（不図示）について、例えば、パケットがあるか否かの情報、および、パケット数の情報である。これらの情報をパケット情報と称する。
【００５０】
ポートグループ化部３２は、トラヒックテーブル３１にアクセスしてトラヒック量を監視するとともに、トラヒック量を繰り返し判定部３５に通知し（ステップ７０２）、各ポートのＶＯＱの状態の情報を受け取ると、ポートグルーピングを行う（ステップ７０３）。続いて、ポートグループ化部７０３は、グルーピング結果とグループ単位のパケット情報をＧ×Ｇスケジューラ３３に通知する（ステップ７０４）。
【００５１】
Ｇ×Ｇスケジューラ３３は、グルーピング結果およびグループ単位のパケット情報に基づいて、グループ間スケジューリングを行って（ステップ７０５）、スケジューリングを実行させる（Ｎ／Ｇ）×（Ｎ／Ｇ）スケジューラ３４−１〜３４−Ｇを決定する。そして、Ｇ×Ｇスケジューラ３３は、決定した（Ｎ／Ｇ）×（Ｎ／Ｇ）スケジューラ３４−１〜３４−Ｇに対してスケジューリングの実行を指示する（ステップ７０８）。
【００５２】
（Ｎ／Ｇ）×（Ｎ／Ｇ）スケジューラ３４−１〜３４−Ｇは、グルーピング結果およびグループ内のＶＯＱ単位のパケット情報に基づいて、グループ内スケジューリングを行う（ステップ７０７）。その後、（Ｎ／Ｇ）×（Ｎ／Ｇ）スケジューラ３４−１〜３４−Ｇは、グループ内スケジューリングの結果を繰り返し判定部３５に通知する（ステップ７０８）。繰り返し判定部３５は、（Ｎ／Ｇ）×（Ｎ／Ｇ）スケジューラ３４−１〜３４−Ｇからグループ内スケジューリングを受け取ると、それらの結果から、繰り返し処理を行う必要があるか否かを判定する（ステップ７０９）。ステップ７０９の判定の結果、再度、繰り返し処理を行う必要がない場合には、繰り返し判定部３５は、スケジューリング結果をスイッチ制御部１０４に通知する。
【００５３】
ステップ７０９の判定の結果、繰り返し判定部３５が再度、スケジューリングを行う必要があると判定すると、その結果をポートグループ化部３２に通知し、ステップ７０３の処理に戻る。例えば、繰り返し判定部３５がトラヒック量に応じて繰り返し回数を決定し、ポートグループ化部７０３は、繰り返し判定部３５からスケジューリングの指示を受け取ると、繰り返し判定部３５が決定した回数になるまで、スケジューラ１０３は、ステップ７０３〜ステップ７０９を実行する。ここでは、一例として、繰り返し判定部３５がトラヒック量に応じて繰り返し回数を決定する場合で説明したが、繰り返し判定部３５がトラヒック量に応じて決定するのは、繰り返し回数に限らず、繰り返し回数の上限値であってもよい。
【００５４】
なお、本実施形態では、Ｇ×Ｇスケジューラ３３がグループ間スケジューリングを行うことで、スケジューリングを実行させる（Ｎ／Ｇ）×（Ｎ／Ｇ）スケジューラ３４−１〜３４−Ｇを決定する場合を説明したが、Ｇ2個のグループ内スケジューラを予め準備し、Ｇ×Ｇスケジューラ３３は、グループ間スケジューリングの結果に基づいて決定したＧ個のグループ内スケジューラに対して、スケジューリングの実行を指示するようにしてもよい。
【００５５】
次に、図５に示したステップ７０３のポートグルーピングから７０７のグループ内スケジューリングまでの手順を、図６から図８を参照して詳しく説明する。
【００５６】
図６から図８は本実施形態のスケジューリング方法を説明するための図である。ここでは、Ｎ＝９の場合とする。
【００５７】
入力ポート番号ｉ（ｉは１〜９の任意の整数）を縦軸方向の座標にし、出力ポート番号ｊ（ｊは１〜９の任意の整数）を横軸方向の座標とすると、図６（ａ）に示すように、ＶＯＱ１１６によって、各キュー部が入力ポート番号ｉと出力ポート番号ｊの組み合わせである入出力ポート対（ｉ，ｊ）で特定される。各入出力ポート対に対応するキュー部の入出力ポート間のパケット情報をｐｉｊと表す。ここでは、パケット情報は、例えば、待ちパケットの数に対応する「キュー長」とする。
【００５８】
ポートグループ化部３２は、図６（ｂ）に示すように、９つの入力ポートを入力ポートグループＡ〜Ｃに分類し、１〜９つの出力ポートを出力ポートグループＡ〜Ｃに分類することで、図６（ａ）に示した８１個の入出力ポート対を９個にグループ化している。そして、ポートグループ化部３２は、グループ毎に各入出力ポート対のキュー長の和を算出する。この算出値が、グループ単位のパケット情報に相当する。
【００５９】
例えば、グループ「入力ポートグループＡ→出力ポートグループＢ」（以下では、入出力グループペアＡＢと表記する）の入出力ポート対のキュー長の和ｇＡＡは、ｇＡＡ＝ｐ１１＋ｐ１２＋ｐ１３＋ｐ２１＋・・・＋ｐ３３と算出される。入出力グループペアＡＢでは、ｇＡＢ＝ｐ１４＋ｐ１５＋ｐ１６＋ｐ２４＋・・・＋ｐ３６と算出される。
【００６０】
次に、図７（ａ）を参照して、グループ間スケジューリング方法を説明する。
【００６１】
Ｇ×Ｇスケジューラ３３は、図６で説明したグルーピング結果とグループ単位のパケット情報ｇＡＡ〜ｇＣＣをポートグループ化部３２から受け取ると、入出力ポート対が競合しないように、例えば、ｇＡＡ〜ｇＣＣの値を比べて値の大きい入出力グループペアを、優先順位の高いグループとして選択する。
【００６２】
図７（ａ）はグループ間スケジューリングで選択されたグループを示す図である。ハッチング部分は選択されなかった入出力グループペアを示し、枠で囲んだ部分が選択された入出力グループペアを示す。つまり、入出力グループペアＡＢ、入出力グループペアＢＡおよび入出力グループペアＣＣが選択された。ここでは、従来技術の３×３スケジューリング方法を適用することが可能であり、本方法では、探索範囲の限定を行っているので計算量の低減につながる。
【００６３】
次に、図７（ｂ）を参照して、グループ内スケジューリング方法を説明する。
【００６４】
入出力グループペアＡＢ、入出力グループペアＢＡおよび入出力グループペアＣＣのそれぞれの（Ｎ／Ｇ）×（Ｎ／Ｇ）スケジューラは、グループ内で入出力ポート対が競合しないように、例えば、ｐｉｊの値を比べて値の大きい入出力ポート対を選択して出力権を与える。
【００６５】
図７（ｂ）はグループ内スケジューリングで選択された入出力ポート対を示す図である。対象となる３つの入出力グループペアにおいて、丸印の部分が選択された入出力ポート対を示す。例えば、入出力グループペアＡＢでは、入出力ポート対（１，４）と、入出力ポート対（２，６）の２つが選択されている。ここでも、従来技術の３×３スケジューリング方法を適用することが可能である。
【００６６】
なお、各グループにおける入出力ポート対の選択方法としては、競合しない範囲で、ｐｉｊが予め決められた閾値以上となる入出力ポート対を選択してもよく、グループ内の入出力ポート対のｐｉｊの平均値を求め、ｐｉｊが平均値以上となる入出力ポート対を選択してもよく、ランダムでも、ラウンドロビンによる選択でもよい。
【００６７】
図８はスケジューリング結果を示す図である。図８に示す丸印部分の入出力ポート対に出力権が得られる。決定された入出力ポート対と競合する箇所をハッチングで示す。
【００６８】
このようにして、本実施形態では、ポート数をＮ、分割グループ数をＧとしたとき、グループ間でＧ×Ｇスケジューリングと、グループ内で（Ｎ／Ｇ）×（Ｎ／Ｇ）スケジューリングＧ回行っている。つまり、Ｎ×Ｎのスケジューリング問題を「Ｇ×Ｇのスケジューリング問題１つ」と「（Ｎ／Ｇ）×（Ｎ／Ｇ）のスケジューリング問題Ｇ個」に分割して解いている。全体としての性能は、２つのスケジューリングの性能をかけあわせになる。そのため、従来技術によるＮ×Ｎスケジューリングを分割して解くことにより計算量を削減し、計算時間を低減することが可能となる。
【００６９】
次に、図５に示したステップ７０９の判定結果で、繰り返し処理を行う場合を説明する。図９から図１１はスケジューリングの繰り返し処理を説明するための図である。
【００７０】
１回の「グループ間スケジューリング＋グループ内スケジューリング」では、計算量の低減が期待されるが、例外的に、入力ポートまたは出力ポートの一部にパケットが集中した場合など、探索範囲の限定により性能が低下してしまうおそれがある。例えば、図８に示した結果において、未決定の入出力ポート対（白四角部分のうち丸印のない部分）に待ちパケットがあった場合、入出力ポート対が競合していないにもかかわらず、パケットが出力されない場合がある。
【００７１】
図９（ａ）は前回のスケジューリング結果（図８）を示し、図９（ａ）に示すスケジューリング結果に対して、例えば、非特許文献３に開示されたｉＳＬＩＰにならって、スケジューラ１０３は、ステップ７０３〜７０７のスケジューリング処理を繰り返す。
【００７２】
ただし、何度も繰り返し処理を行ってしまうと、かえってパケットの送出が遅くなる場合もある。そこで、繰り返し処理の実行は、（１）予め設定しておいた回数だけ繰り返す、（２）出力決定パケット数が閾値を超えるまで繰り返す、（３）トラヒック量に応じて繰り返し回数を決める等の取り決めを、繰り返し判定部３５またはポートグループ化部３２に予め設定しておけばよい。（３）の場合、例えば、トラヒック量が多いほど、繰り返し回数を多くする。
【００７３】
図９（ｂ）は、前回のスケジューリング処理で選択されたグループを斜め線のハッチングで示し、選択された入出力ポート対に競合する入出力ポート対をドット模様のハッチングで示す。ポートグループ化部３２は、図９（ｂ）に示すグルーピング結果をＧ×Ｇスケジューラ３３に通知すると、Ｇ×Ｇスケジューラ３３は、入出力ポート対が競合しない、未選択の入出力グループペアに対してグループ間スケジューリングを行って、出力権を与える入出力グループペアを選択する。図１０（ａ）では、枠で囲んだ部分が選択された入出力グループペアを示し、入出力グループペアＡＣ、入出力グループペアＢＢおよび入出力グループペアＣＡが選択されたことを示す。
【００７４】
続いて、入出力グループペアＡＣ、入出力グループペアＢＢおよび入出力グループペアＣＡのそれぞれの（Ｎ／Ｇ）×（Ｎ／Ｇ）スケジューラは、前回選択された入出力ポート対を含め、グループ内で入出力ポート対が競合しないように、例えば、ｐｉｊの値を比べて値の大きい入出力ポート対を選択して出力権を与える。
【００７５】
図１０（ｂ）はグループ内スケジューリングで選択された入出力ポート対を示す図である。対象となる３つの入出力グループペアにおいて、丸印の部分が選択された入出力ポート対を示す。例えば、入出力グループペアＡＣでは、入出力ポート対（３，７）が選択されている。
【００７６】
図１１はスケジューリング結果を示す図である。図１１に示す丸印部分は、前回と繰り返し処理の両方のスケジューリングで、出力権が与えられた入出力ポート対である。決定された入出力ポート対と競合する箇所をハッチングで示す。図１１から、さらに選択可能な入出力ポート対が１つだけになっていることがわかる。
【００７７】
前回の繰り返し処理までのグループ間スケジューリングおよびグループ内スケジューリングの結果を考慮して、例えば、選択されたグループおよび選択された入出力ポート対は除いて、再度グループ間スケジューリングおよびグループ内スケジューリングを実行することで、性能改善を図ることかできる。また、計算量については、ステップ７０３〜７０７の１回の処理では、従来技術の方法に比べて大幅に計算量が減っており、多数の繰り返しを行っても、計算量が従来技術の方法を超える前に、従来技術の方法と同等の性能に到達することが可能である。
【００７８】
なお、繰り返し処理を実行する際、次のように行ってもよい。
【００７９】
図１２は繰り返し処理の際に別のグルーピングを行う場合を説明するための図である。
【００８０】
繰り返し処理を行う際に、ポートグループ化部３２は、グルーピングを実行する際に、グループ化対象の入出力ポート対に対して動的に再組換を行ってもよい。図１２に示す例では、図１２（ａ）に示した前回のスケジューリング結果に対して、図１２（ｂ）に示すように、ポートグループ化部３２は、入力ポートと出力ポートの順番をランダムにしてグルーピングを行っている。図１２（ｂ）では、前回選択された入出力ポート対の部分を丸印で示す。
【００８１】
解の探索範囲を変化しながら探索を行うべく、繰り返し処理毎にグループを組み換えることで、局所最適に陥ることを回避し、最適解への収束速度が向上する。その結果、必要繰り返し処理の削減が可能となる。
【００８２】
図１３は、繰り返し処理の際、図１２で説明した方法とは別のグルーピングを行う場合を説明するための図である。
【００８３】
１回のスケジューリング処理を実行した後の状態は、未決定ポートペアが散らばっている状態である。この状態で、例えば、固定的にポート番号の昇順にグルーピングする方法では、繰り返し処理の効率が低下するおそれがある。
【００８４】
繰り返し処理を行う際に、ポートグループ化部３２は、未決定の入出力ポート対のみに着目して動的にグルーピングを行ってもよい。図１３に示す例では、図１３（ａ）に示した前回のスケジューリング結果から、ポートグループ化部３２は、出力が未決定な入出力ポート対（図１３（ａ）に示す矢印で特定される箇所）を抽出し、図１３（ｂ）に示すように、抽出した入出力ポート対をグループ化対象とする、動的な再組換を行ってもよい。出力未決定の入出力ポート対をひとまとめにすることで、探索効率向上および、不要な計算の省略が可能となる。
【００８５】
次に、グループ間スケジューリングとグループ内スケジューリングに関する計算について、種々の２段階計算の方法を説明する。図１４は本実施形態におけるスケジューリング方法において、２段階計算のバリエーションを説明するための図である。
【００８６】
本実施形態のスケジューリング方法では、パケット出力までに、（１）グループ間スケジューリングと、（２）で決まった結果にしたがってグループ内スケジューリングを行う必要がある。
【００８７】
図１４の上側には、グループ間で計算した後、決定されたグループのグループ内についてシーケンシャルに計算した場合を示す。図１４の真中には、グループ間で計算した後、決定されたグループのグループ内についてパラレルに計算した場合を示す。図１４の下側には、グループ間、グループ内をパラレルに計算した後、両方の結果に基づいて、出力権を与える入出力ポート対を求める場合を示す。このように計算手順によって所要時間が異なることがわかる。
【実施例１】
【００８８】
本実施形態の実施例を説明する。本実施例では、図３Ａに示したＮ×Ｎスイッチ１０５のＮがＮ＝９の場合、つまり、９×９スイッチの場合である。
【００８９】
９×９スイッチにおいて、３ポート毎３グループに束ねた階層化スケジューリングを行う場合における例である。グルーピングはポート番号の昇順に同数ずつグループ化し、固定的に保持する方法とし、グループ間では、非特許文献２に開示されたＭＷＭを用いる。
【００９０】
図１５は本実施例のパケット転送装置の構成を模式的に示すブロック図である。図１６は図１５に示すパケット転送装置が実行するスケジューリング方法を説明するための図である。図１７は図１６に示したスケジューリングによる結果の一例を示す図である。
【００９１】
ポート１〜３をグループＡ、ポート４〜６をグループＢ、ポート７〜９をグループＣとする。入力ポート側のキュー情報は、対象となるキュー部にパケットが存在するかいなかとし、パケットが有れば「１」とし、パケットがなければ「０」とする。出力ポート側のパケット送出情報は、出力が決定した入出力ペアを「１」とし、それ以外を「０」とする。
【００９２】
図１５に示すように、ポートグループ化部３２は、入出力グループペア毎に入力パケットの和をとり、それをグループ情報とする。図１６（ａ）に示すように、ポートグループ化部３２は、グループペア毎に該当するキュー部の中でパケットが存在するキュー数を算出する。
【００９３】
Ｇ×Ｇスケジューラ３３は、入力Ａ〜Ｃ、出力Ａ〜Ｃ間で衝突を回避しつつ和を最大化する。図１６（ｂ）に示すように、グループ間の競合を回避しつつ（行列で重複なし）、数値の和を最大化するグループペアを選択する。
【００９４】
（Ｎ／Ｇ）×（Ｎ／Ｇ）スケジューラ３４−１〜３４−９に相当する「Ａ→Ａスケジューラ」〜「Ｃ→Ｃスケジューラ」のうち、Ｇ×Ｇスケジューラ３３が選択したグループペア内でスケジューリングを行う。このスケジューリング方法として、例えば、ｉＳＬＩＰを使用する。また、グループ内スケジューリングは並列処理を行ってもよい。図１７にスケジューリング結果を示す。
【００９５】
図１８は、本実施例において、トラヒック情報を用いてポートグルーピングを行う場合を説明するための図である。トラヒック量に対応したグルーピング方法の一例である。図１８（ａ）は、本実施例におけるスケジューラ１０３が、入力ポート毎に設けられたパケットカウンタ１１５からトラヒック量としてパケットのカウンタ値を受信する状態を模式的に示している。
【００９６】
図１８（ｂ）の上側は、所定の周波数において、直近の１００サイクル中に到着したパケット数を入力ポート毎に記述したトラヒックテーブルの一例である。
【００９７】
ポートグループ化部３２は、各入力ポートのパケットカウンタ１１５から通知されるカウント値を基に、入力ポート毎の流入トラヒック量を認識する。ポートグループ化部３２は、流入トラヒック量の降順に入力ポートをソートし、分割したいグループ数Ｇに振り分ける（図１８（ｂ）の下側参照）。
【００９８】
このようにして、流入トラヒックが多い入力ポートを分散させるグルーピングを行うことが可能となる。それとは逆に、流入トラヒックが多い入力ポートを一部のグループにまとめるグルーピングを行ってもよい。
【００９９】
本実施形態によれば、ＮポートをＮ／Ｇポート毎のＧグループに束ねることによる、計算量規模の削減効果は、Ｏ（Ｎ2）→Ｏ（Ｎ2／Ｇ）＋Ｏ（Ｇ2）となる。問題を分割・小規模化することで計算量が低減され、実現できるスイッチポート数を増加し得る。よって、大規模スイッチを実現し得る。
【０１００】
（第２の実施形態）
第１の実施形態では、スケジューラがグループ間スケジューリングの後にグループ内スケジューリングを行う場合であったが、本実施形態は、スケジューラがグループ内スケジューリングの後にグループ間スケジューリングを行う場合である。
【０１０１】
本実施形態のパケット転送装置の構成を説明する。なお、第１の実施形態と同様な構成についての詳細な説明を省略する。
【０１０２】
本実施形態のパケット転送装置は、図３Ｂに示したスケジューラの構成が第１の実施形態と異なっている。図１９は本実施形態のパケット転送装置におけるスケジューラの構成例を示すブロック図である。
【０１０３】
図３Ｂに示した構成と比較すると、図１９に示すように、本実施形態のスケジューラ１０３では、（Ｎ／Ｇ）×（Ｎ／Ｇ）スケジューラ３４−１〜３４−Ｇ2がポートグループ化部３２から通知されるグループ単位でスケジューリングを行い、それらの結果に基づいて、Ｇ×Ｇスケジューラ３３がグループ間スケジューリングを行う構成である。
【０１０４】
次に、本実施形態のパケット転送装置の動作を説明する。図２０は図１９に示したスケジューラの動作手順を示すフローチャートである。
【０１０５】
ここでは、第１の実施形態のパケット転送装置と異なる点を詳しく説明し、図５を参照して説明したのと同様な動作についての詳細な説明を省略する。
【０１０６】
ステップ７０３において、ポートグループ化部３２は、ポートグルーピングを実行した後、グルーピング結果およびＶＯＱ単位のパケット情報を（Ｎ／Ｇ）×（Ｎ／Ｇ）スケジューラ３４−１〜３４−Ｇ2に通知する（ステップＢ７０４）。（Ｎ／Ｇ）×（Ｎ／Ｇ）スケジューラ３４−１〜３４−Ｇは、グルーピング結果および自グループのＶＯＱ単位のパケット情報に基づいて、グループ内スケジューリングを行って（ステップＢ７０５）、スケジューリングの結果をＧ×Ｇスケジューラ３３に通知する（ステップＢ７０６）。
【０１０７】
Ｇ×Ｇスケジューラ３３は、（Ｎ／Ｇ）×（Ｎ／Ｇ）スケジューラ３４−１〜３４−Ｇ2からスケジューリングの結果を受け取ると、それらの結果に基づいて、グループ間スケジューリングを実行する（ステップＢ７０７）。グルーピング結果とスケジューリングによって選択されたＶＯＱのパケット情報がポートグループ化部３２からＧ×Ｇスケジューラ３３に通知される。その後、Ｇ×Ｇスケジューラ３３は、グループ間スケジューリングの結果を繰り返し判定部３５に通知する（ステップＢ７０８）。繰り返し判定部３５は、Ｇ×Ｇスケジューラ３３からグループ間スケジューリングの結果を受け取ると、その結果から再度、スケジューリングを行う必要があるか否かを判定する（ステップＢ７０９）。
【０１０８】
次に、図２０に示したステップ７０５のグループ内スケジューリングからステップＢ７０７のグループ間スケジューリングまでの手順を、図２１および図２２を参照して詳しく説明する。
【０１０９】
図２１および図２２は本実施形態のスケジューリングを説明するための図である。なお、ポートグルーピングの方法は第１の実施形態において、図６を参照して説明した内容と同様になるため、その詳細な説明を省略する。
【０１１０】
図２１（ａ）を参照して、グループ内スケジューリング方法を説明する。
【０１１１】
入出力グループペアＡＡ〜ＣＣの（Ｎ／Ｇ）×（Ｎ／Ｇ）スケジューラ３４−１〜３４−Ｇ2は、入出力グループペア内で入出力ポート対が競合しないように、例えば、ｐｉｊの値を比べて値の大きい入出力ポート対を、候補として選択する。
【０１１２】
図２１（ａ）はグループ内スケジューリングで選択された入出力ポート対を示す図である。各入出力グループペアにおいて、丸印の部分が選択された入出力ポート対を示す。例えば、入出力グループペアＡＡでは、入出力ポート対（１，１）と、入出力ポート対（２，３）の２つが選択されている。ここでは、従来技術の３×３スケジューリング方法を適用することが可能である。これにより、各グループ内における局所最適解が求まる。
【０１１３】
次に、図２１（ｂ）を参照して、グループ間スケジューリング方法を説明する。
【０１１４】
Ｇ×Ｇスケジューラ３３は、（Ｎ／Ｇ）×（Ｎ／Ｇ）スケジューラ３４−１〜３４−Ｇ2からグループ内スケジューリングの結果を受け取る。これらのスケジューリング結果には、図６で説明したグルーピング結果およびグループ内スケジューリングで選択された入出力ポート対のパケット情報が含まれている。Ｇ×Ｇスケジューラ３３は、（Ｎ／Ｇ）×（Ｎ／Ｇ）スケジューラ３４−１〜３４−Ｇ2で選択された入出力ポート対から、入出力ポート対が競合しないように、出力パケット数の最大化またはキュー長最悪値の改善など予め決められたポリシにしたがって出力権を与える入出力グループペアを選択する。その後、Ｇ×Ｇスケジューラ３３は、選択したグループペアから出力権を与える入出力ポート対を決定する。
【０１１５】
図２１（ｂ）はグループ間スケジューリングで選択されたグループを示す図である。ハッチング部分は選択されなかった入出力グループペアを示し、枠で囲んだ部分が選択された入出力グループペアを示す。つまり、入出力グループペアＡＢ、入出力グループペアＢＣおよび入出力グループペアＣＡが選択された。そして、図２１（ｂ）は、丸印の部分の入出力ポート対が出力権を得たことを示す。ここでも、従来技術の３×３スケジューリング方法を適用することが可能である。
【０１１６】
図２２はスケジューリング結果を示す図である。図２２に示す丸印部分の入出力ポート対に出力権が得られる。決定された入出力ポート対と競合する箇所をハッチングで示す。
【０１１７】
このようにして、本実施形態では、ポート数をＮ、分割グループ数をＧとしたとき、Ｎ×Ｎのスケジューリング問題を「（Ｎ／Ｇ）×（Ｎ／Ｇ）のスケジューリング問題Ｇ2個」と「Ｇ×Ｇのスケジューリング問題１つ」に分割して解いている。全体としての計算量は第１の実施形態よりも増加するが、従来技術の方法に比べて、各探索の計算量は低減しており、かつ探索範囲は限定されず性能低下のおそれはない。本実施形態の方法は、全体としての性能はグループ間スケジューリングの性能に大きく依存する。
【０１１８】
なお、本実施形態においても、第１の実施形態で説明した繰り返し処理を適用することが可能であり、その詳細な説明を省略する。
【０１１９】
次に、グループ間スケジューリングとグループ内スケジューリングに関する計算について、種々の２段階計算の方法を説明する。図２３は本実施形態におけるスケジューリング方法において、２段階計算のバリエーションを説明するための図である。
【０１２０】
図２３の上側には、グループ内計算をシーケンシャルにＧ2行った後、Ｇ2のグループ内計算の結果を基にグループ間を計算した場合を示す。図２３の下側には、Ｇ2のグループ内計算をパラレルに行った後、Ｇ2のグループ内計算の結果を基にグループ間を計算した場合を示す。
【０１２１】
本実施形態の方が第１の実施形態に比べて、計算量そのものは増えているが、Ｇ2個のスケジューリング問題を並列処理できれば所要時間自体の低減は可能である。
【０１２２】
なお、上述した第１および第２の実施形態において、以下のように行ってもよい。
【０１２３】
ポート→サブグループ→グループ等の多階層な集約を行い、グループ間スケジューリング→サブグループ間スケジューリング→サブグループ内スケジューリングというような多階層（Ｍ階層：Ｍは２以上の自然数）処理を行ってもよい。ポート数が１００００以上など、ポート数が膨大になった場合に、特に有効である。
【符号の説明】
【０１２４】
３１    トラヒックテーブル
３２    ポートグループ化部
３３    Ｇ×Ｇスケジューラ
３４−１〜３４−Ｇ2    （Ｎ／Ｇ）×（Ｎ／Ｇ）スケジューラ
３５    繰り返し判定部
１００    パケット転送装置
１０１    ＶＯＱバッファ
１０３    スケジューラ
１１３    バッファメモリ
１１５    パケットカウンタ
１１６    仮想出力キュー（ＶＯＱ）
１１７    ＶＯＱ管理部
【図１】
0005687644.tif 000002
【図２】
0005687644.tif 000003
【図３Ａ】
0005687644.tif 000004
【図３Ｂ】
0005687644.tif 000005
【図４】
0005687644.tif 000006
【図５】
0005687644.tif 000007
【図６】
0005687644.tif 000008
【図７】
0005687644.tif 000009
【図８】
0005687644.tif 000010
【図９】
0005687644.tif 000011
【図１０】
0005687644.tif 000012
【図１１】
0005687644.tif 000013
【図１２】
0005687644.tif 000014
【図１３】
0005687644.tif 000015
【図１４】
0005687644.tif 000016
【図１５】
0005687644.tif 000017
【図１６】
0005687644.tif 000018
【図１７】
0005687644.tif 000019
【図１８】
0005687644.tif 000020
【図１９】
0005687644.tif 000021
【図２０】
0005687644.tif 000022
【図２１】
0005687644.tif 000023
【図２２】
0005687644.tif 000024
【図２３】
0005687644.tif 000025
【図２４】
0005687644.tif 000026
【図２５】
0005687644.tif 000027
【図２６】
0005687644.tif 000028