(57)【要約】【課題】入力段での遅延を最低限に抑えつつも、中間段に均一にセルを分散させ、出力段での遅延を最小限に抑えるロードバランス型スイッチを実現する。【解決手段】ロードバランス型スイッチの各入力段１において、宛先出力段毎に各中間段へ送出したセルの個数をカウントし、宛先出力段毎に各中間段へのセルの送出個数が一定の範囲内に収まるように制御することで、セルを均等に分散する。【選択図】          図１１
2008017387.tif 000002
【特許請求の範囲】
【請求項１】
受信セルに対応する宛先出力段を判定する宛先判定部と、
前記宛先出力段に接続されている複数の中間段の各々とメッシュに接続され、前記宛先判定部から入力されたセルを前記宛先出力段毎に格納し、前記格納されたセルが送出可能であれば前記各中間段宛に送出するセル送出部と、
前記格納されたセルの中から送出可能なセルを選択し、前記セルを前記各中間段へ振り分ける場合、宛先出力段ｉ及び経由する中間段ｊ毎の送出カウンタｏｕｔ＿ｃｎｔ［ｉ］［ｊ］を管理し、前記各宛先出力段ｉ毎に、前記各中間段に送出される前記セルの個数が所定の範囲内に収まるように前記セルを振り分ける送出セル決定部と
を具備する
ロードバランス型スイッチ装置。
【請求項２】
請求項１に記載のロードバランス型スイッチ装置において、
前記送出セル決定部は、前記宛先出力段ｉ宛のセルを前記中間段ｊに対して送出可能かどうかを判定する場合、前記宛先出力段ｉ毎の前記各中間段への前記送出カウンタの最大値ｍａｘ＿ｃｎｔ［ｉ］と最小値ｍｉｎ＿ｃｎｔ［ｉ］を管理し、最大値ｍａｘ＿ｃｎｔ［ｉ］と最小値ｍｉｎ＿ｃｎｔ［ｉ］の差分が差分許容値よりも小さい値となっているか、若しくは、前記中間段ｊへの前記送出カウンタｏｕｔ＿ｃｎｔ［ｉ］［ｊ］の値が最大値ｍａｘ＿ｃｎｔ［ｉ］となっていない場合に、セルを送出可能と判定する
ロードバランス型スイッチ装置。
【請求項３】
請求項２に記載のロードバランス型スイッチ装置において、
前記送出セル決定部は、ｍａｘ＿ｃｎｔ、ｍｉｎ＿ｃｎｔ、ｏｕｔ＿ｃｎｔの各パラメータに関して、Ｋ  ＞  差分許容値となるＫの値を利用して、ｍｏｄｕｌｏ  Ｋ演算した値（各パラメータをＫで割った時の剰余）として管理する
ロードバランス型スイッチ装置。
【請求項４】
請求項３に記載のロードバランス型スイッチ装置において、
前記送出セル決定部は、前記宛先出力段ｉ毎に、ｍｏｄｕｌｏ  Ｋ演算された前記各中間段ｊへのカウント値（ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］）の分布をｃｎｔ＿ｎｕｍ［ｉ］［］にて管理する
ロードバランス型スイッチ装置。
【請求項５】
請求項４に記載のロードバランス型スイッチ装置において、
前記送出セル決定部は、ｍｉｎ＿ｃｎｔ［ｉ］の更新処理の際、ｍｉｎ＿ｃｎｔ［ｉ］値となっている中間段の個数が１個（＝ｃｎｔ＿ｎｕｍ［ｉ］［ｍｉｎ＿ｃｎｔ［ｉ］］＝＝１）で、且つ、セルを送出する前記中間段ｊへの送出カウントがｍｉｎ＿ｃｎｔ［ｉ］と一致する場合に、ｍｉｎ＿ｃｎｔ［ｉ］の更新を行う
ロードバランス型スイッチ装置。
【請求項６】
請求項１乃至５のいずれか一項に記載のロードバランス型スイッチ装置において、
前記セル送出部は、前記宛先検出部から入力されたセルを前記宛先出力段毎のＶＯＱ（Ｖｉｒｔｕａｌ  Ｏｕｔｐｕｔ  Ｑｕｅｕｅ）に格納し、
前記送出セル決定部は、前記ＶＯＱに蓄積されたセルの中から送出可能なセルを１つ選択する
ロードバランス型スイッチ装置。
【請求項７】
請求項６に記載のロードバランス型スイッチ装置において、
前記送出セル決定部は、前記宛先出力段ｉへの送出の際、前記ＶＯＱに蓄積しているセルが複数個の場合に、前記宛先出力段ｉへの複数のセルを連続して送出するように予約する
ロードバランス型スイッチ装置。
【請求項８】
請求項６又は７に記載のロードバランス型スイッチ装置において、
前記送出セル決定部は、前記ＶＯＱに蓄積されたセルの中から送出可能なセルを選択する際、前記宛先出力段ｉをランダムな順番でチェックする
ロードバランス型スイッチ装置。
【請求項９】
請求項６又は７に記載のロードバランス型スイッチ装置において、
前記送出セル決定部は、前記ＶＯＱに蓄積されたセルの中から送出可能なセルを選択する際、前記宛先出力段ｉをラウンドロビンの順番でチェックする
ロードバランス型スイッチ装置。
【請求項１０】
請求項６又は７に記載のロードバランス型スイッチ装置において、
前記送出セル決定部は、前記ＶＯＱに蓄積されたセルの中から送出可能なセルを選択する際、前記ＶＯＱに蓄積されているセルの宛先出力段を、前記受信セルの宛先出力段よりも優先してチェックする
ロードバランス型スイッチ装置。
【請求項１１】
請求項６に記載のロードバランス型スイッチ装置において、
前記送出セル決定部は、送出チェック対象の前記宛先出力段ｉに関して、前記ＶＯＱに複数のセルが存在し、ｍａｘ＿ｃｎｔ［ｉ］−ｍｉｎ＿ｃｎｔ［ｉ］の値が許容差分値よりも小さい場合に、複数のセルタイムスロットに対して連続して送出予約をする
ロードバランス型スイッチ装置。
【請求項１２】
請求項６に記載のロードバランス型スイッチ装置において、
前記送出セル決定部は、前記送出カウンタの値からは送出可能なセルが存在しない場合に、前記ＶＯＱ内に中間段の個数であるＫ個以上のセルが蓄積されている宛先出力段が存在する場合に、該宛先出力段のＫ個のセルを連続して送出する
ロードバランス型スイッチ装置。
【請求項１３】
請求項６に記載のロードバランス型スイッチ装置において、
前記送出セル決定部は、前記ＶＯＱ内に中間段の個数であるＫ個以上のセルが蓄積されている宛先出力段が存在する場合に、該宛先出力段のＫ個のセルを連続して送出し、該当するセルが存在しない時、前記送出カウンタの値に従ってセルを振り分ける
ロードバランス型スイッチ装置。
【請求項１４】
請求項６に記載のロードバランス型スイッチ装置において、
前記送出セル決定部は、前記ＶＯＱに蓄積されたセルの中から送出可能なセルを選択する際、チェック対象リストの先頭から順番にチェックし、送出するセルの宛先出力段を決定した際に、該宛先出力段をチェック対象リストから一端除去し、前記ＶＯＱにセルが残っている場合には、前記チェック対象リストの末尾に追加し直す
ロードバランス型スイッチ装置。
【請求項１５】
請求項１４に記載のロードバランス型スイッチ装置において、
前記送出セル決定部は、前記チェック対象リストの順番を決める優先度パラメータとして前記ＶＯＱの蓄積セル数を利用し、前記ＶＯＱの蓄積セル数が大きい宛先出力段のセルを優先してチェックする
ロードバランス型スイッチ装置。
【請求項１６】
請求項１４に記載のロードバランス型スイッチ装置において、
前記送出セル決定部は、前記チェック対象リストの順番を決める優先度パラメータとして最大カウントと最小カウントとの差分値（ｍａｘ＿ｃｎｔ［ｉ］−ｍｉｎ＿ｃｎｔ［ｉ］）を利用し、前記優先度パラメータが大きい宛先出力段のセルを優先してチェックする
ロードバランス型スイッチ装置。
【請求項１７】
請求項１６に記載のロードバランス型スイッチ装置において、
前記送出セル決定部は、前記差分値（ｍａｘ＿ｃｎｔ［ｉ］−ｍｉｎ＿ｃｎｔ［ｉ］）が同じ場合は、前記最小カウント値となっている中間段の個数（＝ｃｎｔ＿ｎｕｍ［ｉ］［  ｍｉｎ＿ｃｎｔ［ｉ］  ］）が小さい宛先出力段のセルを優先してチェックする
ロードバランス型スイッチ装置。
【請求項１８】
請求項１４に記載のロードバランス型スイッチ装置において、
前記送出セル決定部は、前記中間段ｊへのセル送出を行う際に、前記チェック対象リストの順番を決める優先度パラメータとしてｍａｘ＿ｃｎｔ［ｉ］−ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］の大きい宛先出力段のセルを優先してチェックする
ロードバランス型スイッチ装置。
【請求項１９】
請求項１８に記載のロードバランス型スイッチ装置において、
前記送出セル決定部は、ｍａｘ＿ｃｎｔ［ｉ］−ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］が同じ場合は、ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］よりも小さいカウント値（ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］＞ｏｕｔ＿ｃｎｔ［ｉ］［ｊ’］となるｊ’）となっている中間段の個数の少ない宛先出力段のセルを優先してチェックする
ロードバランス型スイッチ装置。
【請求項２０】
請求項１４乃至１９のいずれか一項に記載のロードバランス型スイッチ装置において、
前記送出セル決定部は、前記チェック対象リストの更新処理における複数セルタイムスロットの各々の処理の際、受信若しくは送信された前記宛先出力段ｉのセルのチェック順番を更新する
ロードバランス型スイッチ装置。
【請求項２１】
請求項１４乃至２０のいずれか一項に記載のロードバランス型スイッチ装置において、
前記送出セル決定部は、前記チェック対象リストの更新処理における複数セルタイムスロットの各々の処理の際、各セルタイムスロット毎に、前記チェック対象リストの並べ替えを行う
ロードバランス型スイッチ装置。
【請求項２２】
請求項１乃至５のいずれか一項に記載のロードバランス型スイッチ装置において、
前記セル送出部は、受信時に送出できなかったセルをＦＩＦＯに蓄積し、且つ、前記受信セルを個別に管理し、前記送出セル決定部が前記ＦＩＦＯの先頭若しくは前記受信セルのどちらかを指定して読み出し、
前記送出セル決定部は、前記ＦＩＦＯの先頭セルが送出可能であるかどうかを判定し、送出可能であれば前記ＦＩＦＯの先頭セルを送出し、送出不可であれば前記受信セルが送出可能かどうかを判定する
ロードバランス型スイッチ装置。
【請求項２３】
請求項１乃至２２のいずれか一項に記載のロードバランス型スイッチ装置において、
前記送出セル決定部は、宛先出力段毎にセルの伝送間隔を監視し、一定期間セルの伝送がない際に、該当する宛先出力段の前記送出カウンタの値をリセットする
ロードバランス型スイッチ装置。
【請求項２４】
請求項１乃至２３のいずれか一項に記載のロードバランス型スイッチ装置において、
前記送出セル決定部は、前記送出カウンタを利用した判定の結果、送出対象のセルが存在しない際に、所定の宛先出力段に対してセルを送出したものとしてカウンタ値の更新を行う
ロードバランス型スイッチ装置。
【請求項２５】
請求項２４に記載のロードバランス型スイッチ装置において、
前記送出セル決定部は、前記カウンタ値の更新を行う際、中身の無効な空きセルを送出する
ロードバランス型スイッチ装置。
【請求項２６】
受信セルに対応する宛先出力段を判定するステップと、
受信セルを前記宛先出力段毎に格納するステップと、
前記格納されたセルの中から送出可能なセルを選択し、前記セルを前記宛先出力段に接続されている複数の中間段の各々へ振り分ける場合、宛先出力段ｉ及び経由する中間段ｊ毎の送出カウンタｏｕｔ＿ｃｎｔ［ｉ］［ｊ］を管理し、前記各宛先出力段ｉ毎に、前記各中間段に送出される前記セルの個数が所定の範囲内に収まるように前記セルを振り分けるステップと、
前記振り分けたセルを前記各中間段に送出するステップと
を具備する
ロードバランス型スイッチ方法。
【請求項２７】
請求項２６に記載のロードバランス型スイッチ方法において、
前記宛先出力段ｉ宛のセルを前記中間段ｊに対して送出可能かどうかを判定する場合、前記宛先出力段ｉ毎の前記各中間段への前記送出カウンタの最大値ｍａｘ＿ｃｎｔ［ｉ］と最小値ｍｉｎ＿ｃｎｔ［ｉ］を管理し、最大値ｍａｘ＿ｃｎｔ［ｉ］と最小値ｍｉｎ＿ｃｎｔ［ｉ］の差分が差分許容値よりも小さい値となっているか、若しくは、前記中間段ｊへの前記送出カウンタｏｕｔ＿ｃｎｔ［ｉ］［ｊ］の値が最大値ｍａｘ＿ｃｎｔ［ｉ］となっていない場合に、セルを送出可能と判定するステップと
を更に具備する
ロードバランス型スイッチ方法。
【請求項２８】
請求項２７に記載のロードバランス型スイッチ方法において、
ｍａｘ＿ｃｎｔ、ｍｉｎ＿ｃｎｔ、ｏｕｔ＿ｃｎｔの各パラメータに関して、Ｋ  ＞  差分許容値となるＫの値を利用して、ｍｏｄｕｌｏ  Ｋ演算した値（各パラメータをＫで割った時の剰余）として管理するステップと
を更に具備する
ロードバランス型スイッチ方法。
【請求項２９】
請求項２８に記載のロードバランス型スイッチ方法において、
前記宛先出力段ｉ毎に、ｍｏｄｕｌｏ  Ｋ演算された前記各中間段ｊへのカウント値（ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］）の分布をｃｎｔ＿ｎｕｍ［ｉ］［］にて管理する
ステップと
を更に具備する
ロードバランス型スイッチ方法。
【請求項３０】
請求項２９に記載のロードバランス型スイッチ方法において、
ｍｉｎ＿ｃｎｔ［ｉ］の更新処理の際、ｍｉｎ＿ｃｎｔ［ｉ］値となっている中間段の個数が１個（＝ｃｎｔ＿ｎｕｍ［ｉ］［ｍｉｎ＿ｃｎｔ［ｉ］］＝＝１）で、且つ、セルを送出する前記中間段ｊへの送出カウントがｍｉｎ＿ｃｎｔ［ｉ］と一致する場合に、ｍｉｎ＿ｃｎｔ［ｉ］の更新を行う
ステップと
を更に具備する
ロードバランス型スイッチ方法。
【請求項３１】
請求項２６乃至３０のいずれか一項に記載のロードバランス型スイッチ方法において、
前記宛先検出部から入力されたセルを前記宛先出力段毎のＶＯＱ（Ｖｉｒｔｕａｌ  Ｏｕｔｐｕｔ  Ｑｕｅｕｅ）に格納するステップと、
前記ＶＯＱに蓄積されたセルの中から送出可能なセルを１つ選択するステップと
を更に具備する
ロードバランス型スイッチ方法。
【請求項３２】
請求項３１に記載のロードバランス型スイッチ方法において、
前記宛先出力段ｉへの送出の際、前記ＶＯＱに蓄積しているセルが複数個の場合に、前記宛先出力段ｉへの複数のセルを連続して送出するように予約するステップと
を更に具備する
ロードバランス型スイッチ方法。
【請求項３３】
請求項３１又は３２に記載のロードバランス型スイッチ方法において、
前記ＶＯＱに蓄積されたセルの中から送出可能なセルを選択する際、前記宛先出力段ｉをランダムな順番でチェックするステップと
を更に具備する
ロードバランス型スイッチ方法。
【請求項３４】
請求項３１又は３２に記載のロードバランス型スイッチ方法において、
前記ＶＯＱに蓄積されたセルの中から送出可能なセルを選択する際、前記宛先出力段ｉをラウンドロビンの順番でチェックするステップと
を更に具備する
ロードバランス型スイッチ方法。
【請求項３５】
請求項３１又は３２に記載のロードバランス型スイッチ方法において、
前記ＶＯＱに蓄積されたセルの中から送出可能なセルを選択する際、前記ＶＯＱに蓄積されているセルの宛先出力段を、前記受信セルの宛先出力段よりも優先してチェックするステップと
を更に具備する
ロードバランス型スイッチ方法。
【請求項３６】
請求項３１に記載のロードバランス型スイッチ方法において、
送出チェック対象の前記宛先出力段ｉに関して、前記ＶＯＱに複数のセルが存在し、ｍａｘ＿ｃｎｔ［ｉ］−ｍｉｎ＿ｃｎｔ［ｉ］の値が許容差分値よりも小さい場合に、複数のセルタイムスロットに対して連続して送出予約をするステップと
を更に具備する
ロードバランス型スイッチ方法。
【請求項３７】
請求項３１に記載のロードバランス型スイッチ方法において、
前記送出カウンタの値からは送出可能なセルが存在しない場合に、前記ＶＯＱ内に中間段の個数であるＫ個以上のセルが蓄積されている宛先出力段が存在する場合に、該宛先出力段のＫ個のセルを連続して送出するステップと
を更に具備する
ロードバランス型スイッチ方法。
【請求項３８】
請求項３１に記載のロードバランス型スイッチ方法において、
前記ＶＯＱ内に中間段の個数であるＫ個以上のセルが蓄積されている宛先出力段が存在する場合に、該宛先出力段のＫ個のセルを連続して送出し、該当するセルが存在しない時、前記送出カウンタの値に従ってセルを振り分けるステップと
を更に具備する
ロードバランス型スイッチ方法。
【請求項３９】
請求項３１に記載のロードバランス型スイッチ方法において、
前記ＶＯＱに蓄積されたセルの中から送出可能なセルを選択する際、チェック対象リストの先頭から順番にチェックするステップと、
送出するセルの宛先出力段を決定した際に、該宛先出力段をチェック対象リストから一端除去し、前記ＶＯＱにセルが残っている場合には、前記チェック対象リストの末尾に追加し直すステップと
を更に具備する
ロードバランス型スイッチ方法。
【請求項４０】
請求項３９に記載のロードバランス型スイッチ方法において、
前記チェック対象リストの順番を決める優先度パラメータとして前記ＶＯＱの蓄積セル数を利用し、前記ＶＯＱの蓄積セル数が大きい宛先出力段のセルを優先してチェックするステップと
を更に具備する
ロードバランス型スイッチ方法。
【請求項４１】
請求項３９に記載のロードバランス型スイッチ方法において、
前記チェック対象リストの順番を決める優先度パラメータとして最大カウントと最小カウントとの差分値（ｍａｘ＿ｃｎｔ［ｉ］−ｍｉｎ＿ｃｎｔ［ｉ］）を利用し、前記優先度パラメータが大きい宛先出力段のセルを優先してチェックするステップと
を更に具備する
ロードバランス型スイッチ方法。
【請求項４２】
請求項４１に記載のロードバランス型スイッチ方法において、
前記差分値（ｍａｘ＿ｃｎｔ［ｉ］−ｍｉｎ＿ｃｎｔ［ｉ］）が同じ場合は、前記最小カウント値となっている中間段の個数（＝ｃｎｔ＿ｎｕｍ［ｉ］［  ｍｉｎ＿ｃｎｔ［ｉ］  ］）が小さい宛先出力段のセルを優先してチェックするステップと
を更に具備する
ロードバランス型スイッチ方法。
【請求項４３】
請求項３９に記載のロードバランス型スイッチ方法において、
前記中間段ｊへのセル送出を行う際に、前記チェック対象リストの順番を決める優先度パラメータとしてｍａｘ＿ｃｎｔ［ｉ］−ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］の大きい宛先出力段のセルを優先してチェックするステップと
を更に具備する
ロードバランス型スイッチ方法。
【請求項４４】
請求項４３に記載のロードバランス型スイッチ方法において、
ｍａｘ＿ｃｎｔ［ｉ］−ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］が同じ場合は、ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］よりも小さいカウント値（ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］＞ｏｕｔ＿ｃｎｔ［ｉ］［ｊ’］となるｊ’）となっている中間段の個数の少ない宛先出力段のセルを優先してチェックするステップと
を更に具備する
ロードバランス型スイッチ方法。
【請求項４５】
請求項３９乃至４４のいずれか一項に記載のロードバランス型スイッチ方法において、
前記チェック対象リストの更新処理における複数セルタイムスロットの各々の処理の際、受信若しくは送信された前記宛先出力段ｉのセルのチェック順番を更新するステップと
を更に具備する
ロードバランス型スイッチ方法。
【請求項４６】
請求項３９乃至４５のいずれか一項に記載のロードバランス型スイッチ方法において、
前記チェック対象リストの更新処理における複数セルタイムスロットの各々の処理の際、各セルタイムスロット毎に、前記チェック対象リストの並べ替えを行うステップと
を更に具備する
ロードバランス型スイッチ方法。
【請求項４７】
請求項２６乃至３０のいずれか一項に記載のロードバランス型スイッチ方法において、
受信時に送出できなかったセルをＦＩＦＯに蓄積し、且つ、前記受信セルを個別に管理し、前記送出セル決定部が前記ＦＩＦＯの先頭若しくは前記受信セルのどちらかを指定して読み出すステップと、
前記ＦＩＦＯの先頭セルが送出可能であるかどうかを判定し、送出可能であれば前記ＦＩＦＯの先頭セルを送出し、送出不可であれば前記受信セルが送出可能かどうかを判定するステップと
を更に具備する
ロードバランス型スイッチ方法。
【請求項４８】
請求項２６乃至４７のいずれか一項に記載のロードバランス型スイッチ方法において、
宛先出力段毎にセルの伝送間隔を監視し、一定期間セルの伝送がない際に、該当する宛先出力段の前記送出カウンタの値をリセットするステップと
を更に具備する
ロードバランス型スイッチ方法。
【請求項４９】
請求項２６乃至４８のいずれか一項に記載のロードバランス型スイッチ方法において、
前記送出カウンタを利用した判定の結果、送出対象のセルが存在しない際に、所定の宛先出力段に対してセルを送出したものとしてカウンタ値の更新を行うステップと
を更に具備する
ロードバランス型スイッチ方法。
【請求項５０】
請求項４９に記載のロードバランス型スイッチ方法において、
前記カウンタ値の更新を行う際、中身の無効な空きセルを送出するステップと
を更に具備する
ロードバランス型スイッチ方法。
【請求項５１】
請求項２６乃至５０のいずれか一項に記載のロードバランス型スイッチ方法を、コンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スイッチ装置に関し、特に入力段・中間段・出力段にて構成されるロードバランス型スイッチ装置に関する。
【背景技術】
【０００２】
ロードバランス型スイッチ装置における一般的なスイッチ構成として、入力バッファ型スイッチ、出力バッファ型スイッチ、共有バッファ型スイッチがある。
【０００３】
図１は、入力バッファ型スイッチ構成を表すブロック図である。入力バッファ型スイッチでは、複数の入力ポートから入力される固定長セルの宛先ポートが同一であった場合の待ち合わせ用に入力ポート毎に固定長セルの蓄積用のバッファを配備している。このスイッチ構成の場合、ある入力ポートのバッファの先頭にある固定長セルが、出力されるまでバッファの２番目以降の固定長セルは出力ができないため、バッファの先頭に格納されている固定長セルが他入力ポートの固定長セルと宛先出力ポート競合により待たされた場合には、２番目の固定長セルの宛先ポートが競合していない場合でも出力できない状態（ＨＯＬブロッキング：Ｈｅａｄ  Ｏｆ  Ｌｉｎｅブロッキング）となってしまいスループットの低下を招く欠点がある。
【０００４】
これに対処するために、図２に示すように、各入力ポートのバッファを宛先出力ポート毎に配備（ＶＯＱ：Ｖｉｒｔｕａｌ  Ｏｕｔｐｕｔ  Ｑｕｅｕｅ）した入力バッファ型スイッチの形態もある。但し、どの入力ポートからどの出力ポートへ固定長セルを転送させるかを決定するスケジューリングを全経路（全入力ポート数×全出力ポート数）に対して行う必要があるために計算量の増加（Ｈ／Ｗ規模増加）を招き、多ポート収容を考慮すると実現が困難になるという欠点がある。
【０００５】
図３は、出力バッファ型スイッチ構成を表すブロック図である。出力バッファ型スイッチでは、全入力ポートから入力される固定長セルを多重処理して入力ポート速度のＮ倍（Ｎ：収容ポート数）の信号として各出力ポートまで出力される。出力ポートでは、複数の入力ポートからの固定長セルが一時期に集中して届く場合の待ち合わせ用に固定長セルの蓄積用のバッファを配備している。このスイッチ構成の場合、スイッチの内部処理速度として、インタフェース速度のＮ倍（Ｎ：入力ポート数）の処理速度が必要となり、ポート速度の高速化と多ポート収容を考えた場合実現が困難になるという欠点がある。
【０００６】
図４は、共有バッファ型スイッチ構成を表すブロック図である。共有バッファ型スイッチでは入力ポートと出力ポートの間に全ポート共通で使用するバッファを配備している。全入力ポートから入力される固定長セルを多重処理して入力ポート速度のＮ倍（Ｎ：入力ポート数）の信号として、バッファに書込みを行い、書込み速度と同じ速度で各出力ポートに出力する固定長セルの読出を行う。このスイッチ構成の場合、スイッチの内部処理速度として、インタフェース速度のＮ倍（Ｎ：入力ポート数）の処理速度が必要となり、ポート速度の高速化と多ポート収容を考えた場合実現が困難になるという欠点がある。
【０００７】
入力バッファ型スイッチの全入出力ポートを対象にしたスケジューラ処理をなくし、出力バッファ型スイッチや共有バッファ型スイッチのような収容ポート数増加に伴う内部処理速度の高速化を伴わないスイッチ構成として、ロードバランス型スイッチがある。なお、本ロードバランス型スイッチでは固定長のセルを単位としてスイッチング処理を行うものとする。ロードバランス型スイッチシステムへの入出力に可変長のパケットが入力されることも想定されるが、その場合、可変長パケットは、ロードバランス型スイッチへの入力時に固定長のセルに分割され、ロードバランス型スイッチからの出力時に固定長セルから可変長のパケットに結合され元に戻されるものとする。
【０００８】
図５にロードバランス型スイッチ１０の構成例を示す。ロードバランス型スイッチ１０は、Ｌ個の入力段１（１−１〜１−Ｌ）、Ｍ個の中間段２（２−１〜２−Ｍ）、Ｎ個の出力段３（３−１〜３−Ｎ）、メッシュ接続部４、メッシュ接続部５を備えている。
【０００９】
メッシュ接続部４はＬ個の入力段をＭ個の中間段とメッシュに接続し、メッシュ接続部５はＭ個の中間段をＮ個の出力段とメッシュに接続する機能を有する。メッシュ接続部４、メッシュ接続部５としては、実際に光ケーブルを用いて、物理的にメッシュ接続を実現する方法もあれば、クロスバスイッチなどのスイッチモジュールを利用して接続先を切り替えていくことにより、論理的にメッシュ接続を実現する方法もあり得る。
【００１０】
入力段１は、受信したセルに関して、どの中間段２に送出するかの判定を行い、メッシュ接続部４経由でセルの送出を行う。同様に中間段２は、入力段１から受信したセルに関して、どの出力段３に送出するかの判定を行い、メッシュ接続部５経由でセルの送出を行う。
【００１１】
入力段１は、受信したセルに関して、全ての中間段２へ均等に分散してセルを送出するため、入力段のセル受信レートをＲとすると、各入力段からＭ個の中間段に対してはＲ／Ｍの速度でセルを送出できれば良く、メッシュ接続部４は、各入力段１と各中間段２をＲ／Ｍの速度でメッシュ接続できれば良い。同様に、中間段２から出力段３へのセルの送出に関しては、入力段１が各中間段２に均等にセルを分散しているため、各中間段２からある出力段３には、同一の転送レートにてセルが入力されると考えられる。出力段３がＲ’の速度でセルを外部に送出する場合、メッシュ接続部５は、各中間段から出力段３に対してＲ’／Ｍの速度にてメッシュ接続を実現すれば良い。このように入力段と中間段のメッシュ接続及び出力段と中間段のメッシュ接続を、中間段の個数Ｍで割った転送レートで接続すれば良いことが、ロードバランス型スイッチ１０の特徴である。
【００１２】
このようにロードバランス型スイッチ１０では、入力段１と中間段２間をＲ／Ｍの速度でメッシュ接続を行い、中間段２と出力段３間をＲ’／Ｍの速度でメッシュ接続を行えば十分であるが、特性向上・その他の理由により、より高い速度で接続を行っても良い。
【００１３】
また、メッシュ接続部４が、各中間段２に対して１本の線にてセルを入力する場合には、Ｌ個の全入力段１からの入力が束ねられるためＲ／Ｍ×Ｌの転送レートが必要である。メッシュ接続部５が、各出力段３に対して１本の線にてセルを入力する場合には、Ｍ個の全中間段２からの入力が束ねられるためＲ’／Ｍ×Ｍ  ＝  Ｒ’の転送レートが必要となる。
【００１４】
入力段数Ｌ、中間段数Ｍ、出力段数Ｎは、独立に設定可能であるが、Ｌ＝Ｍ＝Ｎとなるのが一般的な構成である。また、各入力段への入力回線レートＲと各出力段への入力回線レートＲ’は、同一であるのが一般的な構成である。そのような構成では、図６に示すように、入力段、中間段、出力段の機能を１つの回線カード６（６−１，６−２，６−３）内に入れることが可能であり、回線カード間をメッシュに接続するメッシュ接続部７は、物理的に１つのメッシュ接続で実現することが可能である。なお、入力段、中間段、出力段の機能はそれぞれ、図５の入力段１、中間段２、出力段３に相当する。また、メッシュ接続部７は、図５のメッシュ接続部４及びメッシュ接続部５に相当する。
【００１５】
ロードバランス型スイッチ１０は、入力段１、中間段２、出力段３のそれぞれにおいて遅延が発生する。入力段１では、中間段２へのセルの分散処理を行う際の分散アルゴ
リズムに応じてセル送出待ちによる遅延が発生する。中間段２は、各出力段３に対して、Ｒ’／Ｍの速度でセルを送出する。ロードバランス型スイッチ１０に入力されるセルが、ある宛先ポートに偏った場合、すなわち、宛先ポートの送出レートＲ’よりも高いレートで入力される状況では、中間段のバッファにセルが蓄積され遅延が増大することになる。また、出力段３では、各中間段２からセルを受信するが、セルの受信順序が、入力段１が最初に外部から受信したセルの順序と一致していない場合がある。出力段３は、中間段２から受信したセルを正しい順番に並び替えるリオーダ（Ｒｅｏｒｄｅｒ）処理を行った後に、外部へセルを送出するため、リオーダ処理による遅延が発生する。
【００１６】
ロードバランス型スイッチ１０は、入力段１のセルの分散方法によっていくつかの方式が考えられるが、ここでは、２種類の分散方式に関し説明する。
【００１７】
従来例１は、Ｂａｓｉｃと呼ばれる方式である。Ｂａｓｉｃは、入力段１において受信したセルを機械的に中間段に分散する方式である。
図７に、従来例１のロードバランス型スイッチの動作例を示す。説明を簡易化するために中間段の個数Ｋ＝３とし、入力段１−１から各中間段２（２−１，２−２，２−３）への転送部分だけを記載する。入力段１−１に入力されたセルは、特に何も処理されずに、そのままメッシュ接続部４へ転送される。メッシュ接続部４は、各セルタイムスロットにおいて、入力段１−１から受信したセルを中間段２−１，２−２，２−３へ順番に送出する動作を周期的に繰り返すものとする。ここでは、入力段１−１に入力された受信セル１〜７を例に説明する。セル３と４の間、及びセル６と７の間にある斜線のセルは、受信セル間の空隙（何も受信していない状態）、又は空白（ＮＵＬＬ）のセルを示している。すなわち、斜線のセルは、有効なセルが存在していない状態を示している。まず、入力段１−１は、受信セル１〜７をそのままメッシュ接続部４へ転送する。メッシュ接続部４は、受信セル１を中間段２−１へ、受信セル２を中間段２−２へ、受信セル３を中間段２−３へ順番に送出する。この時、送出のタイミングは、セル毎にそれぞれ１０ｍｓｅｃ（ミリ秒）ずれる。以降、同様に、受信セルを中間段２−１，２−２，２−３へ順番に送出する動作を周期的に繰り返す。なお、受信セル３と４の間にある斜線のセルも、ここでは中間段２−１へ送出するセルとして扱う。斜線のセルが実際には存在しない場合、中間段２−１へ何も送出しなくても良い。残りのセルについても、受信セル４を中間段２−２へ、受信セル５を中間段２−３へ送出する。また、受信セル６を中間段２−１へ、受信セル６と７の間にある斜線のセルを中間段２−２へ、受信セル７を中間段２−３へ送出する。
【００１８】
従来例１では、入力段１が受信したセルは、直ぐに、中間段２へと送出されるため、分散アルゴリズムによるセル送出待ちによる遅延は０である。
【００１９】
従来例２は、Ｆｕｌｌ  Ｏｒｄｅｒｅｄ  Ｆｒａｍｅｓ  Ｆｉｒｓｔ（ＦＯＦＦ）と呼ばれる方式である。ＦＯＦＦは、各入力段１において、宛先の出力段毎のＶＯＱを用意し、宛先毎に各中間段へ順番にセルを送出する方式である。
【００２０】
図８に、従来例２のロードバランス型スイッチの動作例を示す。説明を簡易化するために中間段の個数Ｍ＝３とし、入力段１−１からメッシュ接続部４への転送部分だけを記載する。入力段は、宛先出力段毎のラウンドロビンポインタＰＴＲ（１）、ＰＴＲ（２）、ＰＴＲ（３）を有する。各ラウンドロビンポインタは、個別の宛先出力段に対して、次にどの中間段に送出するかを規定するポインタである。例えば、出力段３−１宛のセル１ａを中間段２−１宛に送出した場合、次の出力段３−１宛のセルであるセル１ｂは、必ず中間段２−２宛に送出する必要がある。ＦＯＦＦの場合、各宛先毎のラウンドロビンポインタにより厳密にどの中間段２へ送出するかが決まっているため、入力段にセルがたまっていてもセルを送出できないという状況が発生する可能性がある。なお、厳密なアルゴリズム定義としては、従来例２は、あるＶＯＱにセルがＮ個以上たまっている場合は、Ｎ個のセルを優先して中間段へ分散送出する。
【００２１】
上記の従来例２のロードバランス型スイッチの動作例について、以下に詳述する。
なお、入力段１−１は、３個のＶＯＱを有し、この３個のＶＯＱの各々に受信したセルが振り分けられて格納される。また、３個のＶＯＱの各々にラウンドロビンポインタが存在する。これらのラウンドロビンポインタをＰＴＲ（１）、ＰＴＲ（２）、ＰＴＲ（３）とする。中間段送出タイムスロット１，２，３はそれぞれ、中間段２−１，２−２，２−３を示している。
図８のセル１ａに注目すると、中間段送出タイムスロットが１であり、ＰＴＲ（１）又はＰＴＲ（３）が１（中間段２−１）を宛先の中間段として規定している。ここでは、ＰＴＲ（１）を有するＶＯＱのセルを中間段２−１に送出する。セル１ａと同じ出力段に送出されるセル１ｂは、中間段２−２宛に送出する必要があるため、ＰＴＲ（１）は１から２に切り換わる。このため、中間段送出タイムスロット２では、ＰＴＲ（１）は２，ＰＴＲ（２）は２，ＰＴＲ（３）は１となる。セル１ｂを送出するまでＰＴＲ（１）は２でなければならないため、ここでは、ＰＴＲ（２）を有するＶＯＱのセルを中間段２−２に送出する。セル２ａと同じ出力段に送出されるセル２ｂは、中間段２−３宛に送出する必要があるため、ＰＴＲ（２）は２から３に切り換わる。中間段送出タイムスロット３では、ＰＴＲ（１）は２，ＰＴＲ（２）は３，ＰＴＲ（３）は１となる。中間段送出タイムスロットが３の時、有効なセルが存在しないため何も送出しない。そして、再び、中間段送出タイムスロットは１となり、セル３ａを送出する。この時、ＰＴＲ（３）を有するＶＯＱのセルを中間段２−１に送出し、ＰＴＲ（３）は１から２に切り換わる。次に、セル１ｂを送出する。中間段送出タイムスロットが３であり、ＰＴＲ（１）が２であるため、ＰＴＲ（１）を有するＶＯＱのセルを中間段２−１に送出し、ＰＴＲ（１）は２から３に切り換わる。以降、同様の動作を繰り返す。
【００２２】
図９に、スイッチポート数（Ｌ＝Ｍ＝Ｎ）が４の場合の従来例１（Ｂａｓｉｃ）と従来例２（ＦＯＦＦ）のシミュレーション結果を示す。
【００２３】
Ｘ軸は、トラフィックロード（常時セルが入力される時を１００％とする）であり、Ｙ軸は、平均遅延量を示している。トラフィックは、ランダム生起、ランダム宛先のモデルである。ポート数が４の時は、トラフィックロードが７０％以下では従来例１が従来例２よりも遅延が小さいが、７０％以上では従来例２の方が、遅延量が小さくなる。トラフィックロードが７０％以下では、入力段で待ち合わせを行わない従来例１の遅延量が小さくなる。トラフィックロードが７０％以上になると従来例２の方の遅延が小さくなる理由は、従来例２では、入力段１が宛先出力段３毎に、各中間段２への送出セル数の差が１以下になるように厳密に均一分散するからである。すなわち、入力段１が各中間段２に対してセルを分散されることで、各中間段２から出力段３に到着するセル間の受信時間のばらつきを小さく抑える効果があるため、出力段でのリオーダ処理による遅延量が従来例１に比べて小さくなる。従来例１では、入力段１において、待ち合わせ処理無く遅延０でセルの送出を行うが、宛先毎の各中間段へのセルの送出個数に偏りが発生することがあるため、従来例２に比べると出力段３でのリオーダ処理による待ち合わせ時間が大きくなる。結果として、従来例１では、全体としての遅延特性が大きくなってしまう。
【００２４】
以上のことから、トラフィックロードが高い場合には、入力段が宛先毎に厳密にセルを分散することにより、全体としての遅延を小さく抑えることが可能なことが分かる。
【００２５】
図１０に、スイッチポート数（Ｌ＝Ｍ＝Ｎ）が１２８の場合の従来例１（Ｂａｓｉｃ）と従来例２（ＦＯＦＦ）のシミュレーション結果を示す。
【００２６】
スイッチポート数が４の場合と異なり、スイッチポート数が１２８の場合、従来例２は従来例１よりも平均遅延時間が大きくなってしまう。
【００２７】
これは、入力段１でセルを均等に分散することで出力段３でのリオーダ処理の待ち時間の削減量よりも、入力段１でセルを均等に分散するために待ちあわせている時間の方が大きいためである。従来例２では、入力段１において、各宛先出力段３毎のラウンドロビンポインタが、セルタイムスロットで規定されうる送出先の中間段の番号と一致しなければセルを送出することができない。よって、スイッチポート数が大きくなるほど、セルを送出できない可能性が高くなってしまうのが、遅延時間を増大させる原因となっている。スイッチポート数が４の時は、４セルタイムスロットに１回はセルを送出できるが、スイッチポー数が１２８になると、１２８セルタイムスロットに１回しか送出可能なセルタイムスロットが存在しない。
【００２８】
従来例１では、各中間段２に均等にセルが分散されないことにより、トラフィックロードが高い時の出力段３におけるリオーダ処理遅延時間が大きくなるという問題がある。また、出力段３での最大の遅延時間が規定できないため、リオーダ処理のアルゴリズムが複雑化するという問題がある。
【００２９】
従来例２では、各中間段２に対して均等にセルを分散させるために入力段１で待ちあわせを発生させる必要がある。特にスイッチポート数が大きくなると、この待ち合わせ時間の影響が大きく、全体としての遅延特性が劣化するという問題がある。その原因は、入力段１において、各宛先毎にラウンドロビンポインタで指定された１つの中間段２にしか送出できないために、その中間段２へ送出可能となるまでセル送出を待ち合わせしなければならないからである。
【００３０】
すなわち、従来例１（Ｂａｓｉｃ）はスイッチポート数が小さい時、従来例２（ＦＯＦＦ）はスイッチポート数が大きい時に性能が悪いという問題がある。
【００３１】
関連する技術として、特開２００２−１６４９１４号公報（特許文献１）にパケット交換装置が開示されている。
このパケット交換装置は、複数の受信手段と、複数の送信手段と、スイッチ手段とを備える。複数の受信手段は、入力ポート単位にパケットを受信する。複数の送信手段は、出力ポート単位にパケットを送信する。スイッチ手段は、受信手段から受け取ったパケットを所望の出力方路に対応する送信手段へ転送する。
前記各受信手段は、方路決定手段と、パケット蓄積手段とを備える。方路決定手段は、パケットの宛先アドレス情報に基づいて出力方路を決定する。パケット蓄積手段は、出力方路毎にパケットを蓄積する複数のバッファで構成され、スイッチ手段からの空き状況に応じて蓄積されたパケットを読み出す。
前記スイッチ手段は、受信手段数分の入力制御手段と、送信手段数分の出力制御手段とを備える。受信手段数分の入力制御手段は、各受信手段内の複数のバッファに個別に対応した複数の小容量バッファ（バッファの容量＞小容量バッファの容量）を備え、当該小容量バッファ内の空き状況を、対応する受信手段に対して個別に通知する。送信手段数分の出力制御手段は、前記各入力制御手段内の小容量バッファに蓄積されたパケットを受け取り、当該パケットを対応する出力方路の送信手段に対して個別に出力する。
【００３２】
また、特開平１０−１０７８４６号公報（特許文献２）にパケット処理装置が開示されている。
このパケット処理装置は、複数の回線対応部と、カウンタと、割合レジスタと、比較器と、セレクタとを具備する。複数の回線対応部は、通信回線上のデータを受け取り、また該通信回線上にデータを送出する。カウンタは、回線対応部単位に配置され、且つパケット宛先別に測定された送出パケット量の合計値を保持する。割合レジスタは、同一宛先を持つ複数の回線対応部の使用割合を保持する。比較器は、該割合レジスタとカウンタの各値を参照して、次に使用すべき回線対応部を決定する。セレクタは、該比較器の決定に従ってパケットの送出先を切り替える。また、このパケット処理装置は、同一宛先を持つ各通信回線の負荷に応じて、上記割合レジスタに使用割合を設定することにより、各通信回線の負荷に応じて複数の通信回線を切り替えてパケットを送出することを特徴とする。
【００３３】
【特許文献１】特開２００２−１６４９１４号公報
【特許文献２】特開平１０−１０７８４６号公報
【非特許文献１】「Ｉｓａａｃ  Ｋｅｓｌａｓｓｙ，  "Ｔｈｅ  Ｌｏａｄ−Ｂａｌａｎｃｅｄ  Ｒｏｕｔｅｒ，"  Ｐｈ．Ｄ．  Ｄｉｓｓｅｒｔａｔｉｏｎ，  Ｓｔａｎｆｏｒｄ  Ｕｎｉｖｅｒｓｉｔｙ，  Ｊｕｎｅ  ２００４」
【発明の開示】
【発明が解決しようとする課題】
【００３４】
本発明の目的は、入力段において可能な限り遅延を発生させずに受信セルを中間段宛に送出するロードバランス型スイッチ装置を提供することである。
本発明の他の目的は、入力段から中間段への宛先毎のセル送出個数を均等に分散することで出力段３でのリオーダ処理による遅延時間も削減し、スイッチ全体としての遅延時間を削減するロードバランス型スイッチ装置を提供することである。
【課題を解決するための手段】
【００３５】
以下に、［発明を実施するための最良の形態］で使用される番号を括弧付きで用いて、課題を解決するための手段を説明する。これらの番号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］との対応関係を明らかにするために付加されたものである。但し、それらの番号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００３６】
本発明のロードバランス型スイッチ装置（１０，１１）は、少なくとも１つの入力段（１，１０１，２０１）と、複数の中間段（２）と、複数の出力段（３）とを有する。前記少なくとも１つの入力段（１，１０１，２０１）は、受信セルに対応する宛先出力段を判定する宛先判定部（２１）と、前記宛先出力段に接続されている前記複数の中間段（２）の各々とメッシュに接続され、前記宛先判定部（２１）から入力されたセルを前記宛先出力段毎に格納し、前記格納されたセルが送出可能であれば前記各中間段（２）宛に送出するセル送出部（２２，１２２，２２２）と、前記格納されたセルの中から送出可能なセルを選択し、前記セルを前記各中間段（２）へ振り分ける場合、宛先出力段ｉ及び経由する中間段ｊ毎の送出カウンタｏｕｔ＿ｃｎｔ［ｉ］［ｊ］を管理し、前記各宛先出力段ｉ毎に、前記各中間段（２）に送出される前記セルの個数が所定の範囲内に収まるように前記セルを振り分ける送出セル決定部（２３，１２３，２２３）とを具備する。なお、セル送出部（２２，１２２，２２２）には、メッシュ接続部（４，７）が含まれていても良い。
【００３７】
前記送出セル決定部（２３，１２３，２２３）は、前記宛先出力段ｉ宛のセルを前記中間段ｊに対して送出可能かどうかを判定する場合、前記宛先出力段ｉ毎の前記各中間段（２）への前記送出カウンタの最大値ｍａｘ＿ｃｎｔ［ｉ］と最小値ｍｉｎ＿ｃｎｔ［ｉ］を管理し、最大値ｍａｘ＿ｃｎｔ［ｉ］と最小値ｍｉｎ＿ｃｎｔ［ｉ］の差分が差分許容値よりも小さい値となっているか、若しくは、前記中間段ｊへの前記送出カウンタｏｕｔ＿ｃｎｔ［ｉ］［ｊ］の値が最大値ｍａｘ＿ｃｎｔ［ｉ］となっていない場合に、セルを送出可能と判定する。
【００３８】
前記送出セル決定部（２３，１２３，２２３）は、ｍａｘ＿ｃｎｔ、ｍｉｎ＿ｃｎｔ、ｏｕｔ＿ｃｎｔの各パラメータに関して、Ｋ  ＞  差分許容値となるＫの値を利用して、ｍｏｄｕｌｏ  Ｋ演算した値（各パラメータをＫで割った時の剰余）として管理する。
【００３９】
前記送出セル決定部（２３，１２３，２２３）は、前記宛先出力段ｉ毎に、ｍｏｄｕｌｏ  Ｋ演算された前記各中間段ｊへのカウント値（ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］）の分布をｃｎｔ＿ｎｕｍ［ｉ］［］にて管理する。
【００４０】
前記送出セル決定部（２３，１２３，２２３）は、ｍｉｎ＿ｃｎｔ［ｉ］の更新処理の際、ｍｉｎ＿ｃｎｔ［ｉ］値となっている中間段（２）の個数が１個（＝ｃｎｔ＿ｎｕｍ［ｉ］［ｍｉｎ＿ｃｎｔ［ｉ］］＝＝１）で、且つ、セルを送出する前記中間段ｊへの送出カウントがｍｉｎ＿ｃｎｔ［ｉ］と一致する場合に、ｍｉｎ＿ｃｎｔ［ｉ］の更新を行う。
【００４１】
前記セル送出部（２２）は、前記宛先検出部から入力されたセルを前記宛先出力段毎のＶＯＱ（Ｖｉｒｔｕａｌ  Ｏｕｔｐｕｔ  Ｑｕｅｕｅ）に格納し、前記送出セル決定部（２３）は、前記ＶＯＱに蓄積されたセルの中から送出可能なセルを１つ選択する。
【００４２】
前記送出セル決定部（２３）は、前記宛先出力段ｉへの送出の際、前記ＶＯＱに蓄積しているセルが複数個の場合に、前記宛先出力段ｉへの複数のセルを連続して送出するように予約する。
【００４３】
前記送出セル決定部（２３）は、前記ＶＯＱに蓄積されたセルの中から送出可能なセルを選択する際、前記宛先出力段ｉをランダムな順番でチェックする。
【００４４】
前記送出セル決定部（２３）は、前記ＶＯＱに蓄積されたセルの中から送出可能なセルを選択する際、前記宛先出力段ｉをラウンドロビンの順番でチェックする。
【００４５】
前記送出セル決定部（２３）は、前記ＶＯＱに蓄積されたセルの中から送出可能なセルを選択する際、前記ＶＯＱに蓄積されているセルの宛先出力段を、前記受信セルの宛先出力段よりも優先してチェックする。
【００４６】
前記送出セル決定部（２３）は、送出チェック対象の前記宛先出力段ｉに関して、前記ＶＯＱに複数のセルが存在し、ｍａｘ＿ｃｎｔ［ｉ］−ｍｉｎ＿ｃｎｔ［ｉ］の値が許容差分値よりも小さい場合に、複数のセルタイムスロットに対して連続して送出予約をする。
【００４７】
前記送出セル決定部（２３）は、前記送出カウンタの値からは送出可能なセルが存在しない場合に、前記ＶＯＱ内に中間段（２）の個数であるＫ個以上のセルが蓄積されている宛先出力段が存在する場合に、該宛先出力段のＫ個のセルを連続して送出する。
【００４８】
前記送出セル決定部（２３）は、前記ＶＯＱ内に中間段（２）の個数であるＫ個以上のセルが蓄積されている宛先出力段が存在する場合に、該宛先出力段のＫ個のセルを連続して送出し、該当するセルが存在しない時、前記送出カウンタの値に従ってセルを振り分ける。
【００４９】
前記送出セル決定部（２３）は、前記ＶＯＱに蓄積されたセルの中から送出可能なセルを選択する際、チェック対象リストの先頭から順番にチェックし、送出するセルの宛先出力段を決定した際に、該宛先出力段をチェック対象リストから一端除去し、前記ＶＯＱにセルが残っている場合には、前記チェック対象リストの末尾に追加し直す。
【００５０】
前記送出セル決定部（２３）は、前記チェック対象リストの順番を決める優先度パラメータとして前記ＶＯＱの蓄積セル数を利用し、前記ＶＯＱの蓄積セル数が大きい宛先出力段のセルを優先してチェックする。
【００５１】
前記送出セル決定部（２３）は、前記チェック対象リストの順番を決める優先度パラメータとして最大カウントと最小カウントとの差分値（ｍａｘ＿ｃｎｔ［ｉ］−ｍｉｎ＿ｃｎｔ［ｉ］）を利用し、前記優先度パラメータが大きい宛先出力段のセルを優先してチェックする。
【００５２】
前記送出セル決定部（２３）は、前記差分値（ｍａｘ＿ｃｎｔ［ｉ］−ｍｉｎ＿ｃｎｔ［ｉ］）が同じ場合は、前記最小カウント値となっている中間段（２）の個数（＝ｃｎｔ＿ｎｕｍ［ｉ］［  ｍｉｎ＿ｃｎｔ［ｉ］  ］）が小さい宛先出力段のセルを優先してチェックする。
【００５３】
前記送出セル決定部（２３）は、前記中間段ｊへのセル送出を行う際に、前記チェック対象リストの順番を決める優先度パラメータとしてｍａｘ＿ｃｎｔ［ｉ］−ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］の大きい宛先出力段のセルを優先してチェックする。
【００５４】
前記送出セル決定部（２３）は、ｍａｘ＿ｃｎｔ［ｉ］−ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］が同じ場合は、ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］よりも小さいカウント値（ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］＞ｏｕｔ＿ｃｎｔ［ｉ］［ｊ’］となるｊ’）となっている中間段（２）の個数の少ない宛先出力段のセルを優先してチェックする。
【００５５】
前記送出セル決定部（２３）は、前記チェック対象リストの更新処理における複数セルタイムスロットの各々の処理の際、受信若しくは送信された前記宛先出力段ｉのセルのチェック順番を更新する。
【００５６】
前記送出セル決定部（２３）は、前記チェック対象リストの更新処理における複数セルタイムスロットの各々の処理の際、各セルタイムスロット毎に、前記チェック対象リストの並べ替えを行う。
【００５７】
前記セル送出部（１２２，２２２）は、受信時に送出できなかったセルをＦＩＦＯに蓄積し、且つ、前記受信セルを個別に管理し、前記送出セル決定部（１２３，２２３）が前記ＦＩＦＯの先頭若しくは前記受信セルのどちらかを指定して読み出す。前記送出セル決定部（１２３，２２３）は、前記ＦＩＦＯの先頭セルが送出可能であるかどうかを判定し、送出可能であれば前記ＦＩＦＯの先頭セルを送出し、送出不可であれば前記受信セルが送出可能かどうかを判定する。
【００５８】
前記送出セル決定部（１２３，２２３）は、宛先出力段毎にセルの伝送間隔を監視し、一定期間セルの伝送がない際に、該当する宛先出力段の前記送出カウンタの値をリセットする。
【００５９】
前記送出セル決定部（１２３，２２３）は、前記送出カウンタを利用した判定の結果、送出対象のセルが存在しない際に、所定の宛先出力段に対してセルを送出したものとしてカウンタ値の更新を行う。
【００６０】
前記送出セル決定部（１２３，２２３）は、前記カウンタ値の更新を行う際、中身の無効な空きセルを送出する。
【発明の効果】
【００６１】
ロードバランス型スイッチの各入力段において、宛先出力段毎に各中間段へ送出したセルの個数をカウントし、宛先出力段毎に各中間段へのセルの送出個数が一定の範囲内に収まるように制御することで、セルを均等に分散する。
各入力段では、各中間段へのセルの送出個数が一定の範囲内に収まっている状況においては、受信したセルを待ち合わせさせることなく、遅延０にて中間段に送出可能である。よって、送出可能な中間段が１箇所に限定されないため、入力段での遅延を削減しながら、中間段への均等な分散が実現可能である。
【発明を実施するための最良の形態】
【００６２】
以下に本発明の第１実施形態について添付図面を参照して説明する。
本発明のロードバランス型スイッチの基本構成は図５に示す通りである。本発明のロードバランス型スイッチは、入力段１の構成に特徴がある。なお、図６に示す構成を用いる場合、回線カード６の入力段機能が入力段１に相当する。
【００６３】
図１１に、本発明のロードバランス型スイッチにおける入力段１の構成例を示す。
入力段１は、宛先検出部２１と、ＶＯＱ部２２と、送出セル決定部２３と、管理メモリ２４を備えている。
【００６４】
入力段１に外部から入力されたセルは、宛先検出部２１にて、宛先の出力段を判定後、ＶＯＱ部２２と送出セル決定部２３に入力される。ＶＯＱ部２２では、宛先検出部２１から入力されたセルを宛先出力段毎のＶＯＱバッファに格納し、送出セル決定部からの読み出し要求があると、指定された宛先出力段に関してＶＯＱの先頭セルを読み出して、メッシュ接続部４宛に送出する。送出セル決定部２３は、宛先検出部２１から入力されるセル毎の宛先出力段情報からＶＯＱの蓄積セル数を管理し、各セルタイムスロットにおいてどのＶＯＱからセルを送出するかを決定する。送出セル決定部２３は、管理メモリ２４内に、宛先出力段ｉ毎のＶＯＱ蓄積セル数：ｖｏｑ＿ｃｎｔ［ｉ］と、セルが通過する中間段ｊ（ｊ＝１〜Ｋ：Ｋは中間段の個数）、出力段ｉ毎のセル送出カウンタ：ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］、また、宛先出力段ｉ毎の前記セル送出カウンタｏｕｔ＿ｃｎｔ［ｉ］［ｊ］の最小値：ｍｉｎ＿ｃｎｔ［ｉ］（ｏｕｔ＿ｃｎｔ［ｉ］［１］、ｏｕｔ＿ｃｎｔ［ｉ］［２］、・・・ｏｕｔ＿ｃｎｔ［ｉ］［Ｋ］の最小値）と最大値：ｍａｘ＿ｃｎｔ［ｉ］（ｏｕｔ＿ｃｎｔ［ｉ］［１］、ｏｕｔ＿ｃｎｔ［ｉ］［２］、・・・、ｏｕｔ＿ｃｎｔ［ｉ］［Ｋ］の最大値）を管理する。宛先出力段毎のＶＯＱ蓄積セル数は、宛先検出部２１からセルが入力されるとカウントアップされ、ＶＯＱから読み出し対象と判定されるとカウントダウンする。中間段・出力段毎のセル送出カウンタは、中間段と出力段で規定されるセルの転送経路毎の送出カウント数が管理されている。
【００６５】
この時、入力段１から中間段２に送出するセルは、大きさがある程度そろっていることが望ましいが、必ずしも固定長セルに限らなくても良い。例えば、可変長セルの場合、セル数ではなくセルの大きさ（データ長）をカウントするようにすることも可能である。ここでは、固定長セルでの実施の方が性能的には良い結果が出ると期待できるため、固定長セルの場合を例示しているに過ぎない。
【００６６】
図１２に、送出セル決定部２３のセル受信処理の動作フローチャートを示す。
（１）ステップＳ１０１
送出セル決定部２３は、宛先出力段ｉからセルを受信したことを認識する。
（２）ステップＳ１０２
送出セル決定部２３は、宛先出力段ｉからセルを受信したことを認識すると、該当宛先出力段ｉの蓄積セル数をインクリメント（ｖｏｑ＿ｃｎｔ［ｉ］＋＋）する。
【００６７】
図１３に、送出セル決定部２３の送出セル選択処理の動作フローチャートを示す。
（１）ステップＳ２０１
送出決定部２３は、ある宛先出力段ｉに関して、ＶＯＱ蓄積セルが存在し（ｖｏｑ＿ｃｎｔ［ｉ］  ＞  ０）、且つ、まだチェックしていない宛先出力段が存在するかどうかをチェックする。そのような出力段が存在しない時は処理を終了する。
（２）ステップＳ２０２
そのような出力段が存在する場合は、該当宛先出力段ｉのセルが現在の中間段セルタイムスロットにおいて送出可能かどうかを判定する。送出可能な場合は、該当セルの送出を行われるので処理を終了する。送出不可の場合は、再度、別の宛先出力段が存在するかどうかのチェックし、送出可能なセルが見つかるか、チェック対象のセルが無くなるかまで処理を繰り返す。
【００６８】
図１４に、セル送出可能判定処理内の処理（ステップＳ２０２）のフローチャートを示す。
（１）ステップＳ２０２−１
まず、カウンタ最大値とカウンタ最小値の差分（ｍａｘ＿ｃｎｔ［ｉ］  ?  ｍｉｎ＿ｃｎｔ［ｉ］）が許容差分値よりも小さいかどうかを判定する。差分値が許容差分値よりも小さければセルの送出が無条件で可能となる。
（２）ステップＳ２０２−２
それ以外の（差分値が許容差分値と一致する）場合は、更に、宛先出力段ｉと現在のタイムスロットでの送出先の中間段ｊに対応するカウンタｏｕｔ＿ｃｎｔ［ｉ］［ｊ］がカウンタの最大値ｍａｘ＿ｃｎｔ［ｉ］と一致するかどうかを調べる。ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］がｍａｘ＿ｃｎｔ［ｉ］と一致する時は、宛先出力段ｉ宛のセルを中間段ｊに送出すると許容差分値を超過することになるため、セルの送出は不可（Ｎｏ）と判定する。ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］がｍａｘ＿ｃｎｔ［ｉ］と一致しなければ、中間段ｊへのセル送出が可能（Ｙｅｓ）と判定する。
（３）ステップＳ２０２−３
宛先出力段ｉ宛のセルを中間段ｊに送出することが決まった場合は、ＶＯＱ蓄積セル数をディクリメント（ｖｏｑ＿ｃｎｔ［ｉ］−−）し、送出セルカウントをインクリメント（ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］＋＋）し、必要に応じて、ｍａｘ＿ｃｎｔ［ｉ］、ｍｉｎ＿ｃｎｔ［ｉ］の更新を行う。すなわち、ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］の値に応じて、ｍａｘ＿ｃｎｔ［ｉ］、ｍｉｎ＿ｃｎｔ［ｉ］の更新を行う。例えば、ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］が、その時点のｍａｘ＿ｃｎｔ［ｉ］よりも大きくなれば、ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］の値をｍａｘ＿ｃｎｔ［ｉ］とする（ｍａｘ＿ｃｎｔ［ｉ］＝ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］）。同様に、ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］が、その時点のｍｉｎ＿ｃｎｔ［ｉ］よりも小さくなれば、ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］の値をｍｉｎ＿ｃｎｔ［ｉ］とする（ｍｉｎ＿ｃｎｔ［ｉ］＝ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］）。
【００６９】
以上の制御により、宛先出力段毎に、各中間段へのセル送出数の差分が許容差分値以内に抑える均等な分散処理を実現できる。
【００７０】
なお、本フローチャートでは、各セルタイムスロットにおいて、そのセルタイムスロットで送出可能なセルの判定処理を行っているが、複数のセルがＶＯＱにたまっている状況では、複数のタイムスロット分の送出セルを決定しても良い。１セルタイムスロットに複数セルタイムスロットの送出予約を可能にすることで、セルタイムスロット毎にどのセルを送出するかを判定する処理時間に増減が発生する場合でも、該処理時間の平均時間が１セルタイムスロット時間に間にあえば、スループット１００％でセルの転送を実行することが可能である。また、同じ宛先に同時に複数のセルを連続的に送出することで、セルタイムスロットあたりの判定時間そのものを削減することも可能である。例えば、ある宛先出力段ｉに関して、ｍａｘ＿ｃｎｔ［ｉ］とｍｉｎ＿ｃｎｔ［ｉ］の差分が差分許容値よりも小さい場合には、連続してセルを送出している限りは、該差分が差分許容値よりも大きくなることはない。よって、一度の判定処理で、宛先出力段ｉに関してＶＯＱに蓄積されているセルの全てを連続して送出可能と判定できる。
【００７１】
本発明のロードバランス型スイッチの動作例を図１５に示す。スイッチポート数（Ｌ，Ｍ，Ｎ）は３である。
【００７２】
ある入力段からセルを送出可能な中間段がｊである中間段タイムスロットが、１，２，３，１，２，３の順番で変化していく。
【００７３】
セルタイムスロットの時刻ｔ＝１において、宛先出力段ｉ＝１宛のセルが到着したものとする。この時の中間段タイムスロットは１であり、セルの送出が可能であることから、ｏｕｔ＿ｃｎｔ［１］［１］＝１にインクリメントされ、ｍａｘ＿ｃｎｔ［１］が１に設定される。
【００７４】
ｔ＝２において、宛先出力段ｉ＝２宛のセルが到着する。この時の中間段セルタイムスロットは２であり、セルの送出が可能であることから、ｏｕｔ＿ｃｎｔ［２］［２］＝１にインクリメントされ、ｍａｘ＿ｃｎｔ［２］が１に設定される。
【００７５】
ｔ＝７において、宛先出力段ｉ＝１宛のセルが到着する。この時の中間段セルタイムスロットは１であるが、カウンタ値の差分ｍａｘ＿ｃｎｔ［１］−ｍｉｎ＿ｃｎｔ［１］＝２と差分許容値と一致しており、宛先出力段ｉ＝１に対する中間段ｊ＝１への送出カウンタｏｕｔ＿ｃｎｔ［１］［１］＝２がｍａｘ＿ｃｎｔ［１］＝２と一致しているため、セルの送出ができない。よって、受信セルは送出されずにＶＯＱに蓄積されｖｏｑ＿ｃｎｔ［１］＝１にインクリメントされる。
【００７６】
次のセルタイムスロットｔ＝８では、中間段セルタイムスロットが２となる。中間段ｊ＝２の送出カウンタの値はｏｕｔ＿ｃｎｔ［１］［２］＝０であるため、セルの送出が可能と判定される。
【００７７】
ｔ＝１４においては、宛先出力段ｉ＝３宛のセルが到着する。この時の中間段セルタイムスロットは２である。ｖｏｑ＿ｃｎｔ［３］［２］＝１であり、ｍａｘ＿ｃｎｔ［３］＝２よりも小さいため、受信したセルの送出が可能であるが、ｔ＝１３にて、ＶＯＱに蓄積された宛先出力段１宛のセルが送出選択されているため、受信した宛先出力段ｉ＝３宛のセルは送出されずにＶＯＱに蓄積される（ｖｏｑ＿ｃｎｔ［３］＝１）。
【００７８】
ｔ＝１４のように、宛先出力段ｉ１（この場合ｉ１＝１）宛のセルがＶＯＱに蓄積されている状態で、別の宛先出力段ｉ２（この場合ｉ２＝３）宛のセルが到着した場合、送出可能なセルが２個以上となる場合があり得る。複数のセルが選択可能な場合の選択の方法として以下のような方法が考えられる。
（ａ）「ランダムに選択」
ランダムに選択する理由は、ポート間の偏りを無くすためである。
（ｂ）「前回選択されたものを最低優先として、ラウンドロビンで選択」
前回、ポート２からセルが出力された場合は、次は、ポート３からラウンドロビン（３，１，２）でチェック処理を行う。
ラウンドロビンに選択肢する理由は、ランダムと同様、ポート間の偏りを無くすためであるが、より、簡易な実装が可能となる。
（ｃ）「上記の制御に加えて、受信したセルよりもＶＯＱに蓄積されているセルを優先する制御」
受信したセルよりもＶＯＱに蓄積されているセルを優先するのは、ＶＯＱに蓄積されたセルが、スイッチ内に残り続けることで該当セルの遅延が増大することを防止するためである。
【００７９】
他の選択方法に関しては、別の実施例にて説明する。
ここでは、セル送出判定方法について説明する。
本発明に関して、送出セル決定部２３が宛先出力段ｉのセルを中間段ｊに送出することを決定した際の管理メモリの更新処理（Ｓ２０２−３）の詳細な実施例１のフローチャートを図１６に示す。詳細な実施例１の送出セル決定部２３では、管理メモリ内で、前述のｖｏｑ＿ｃｎｔ［ｉ］、ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］、ｍａｘ＿ｃｎｔ［ｉ］、ｍｉｎ＿ｃｎｔ［ｉ］に加え、中間段への送出したセル個数の分布を意味するｃｎｔ＿ｎｕｍ［ｉ］［］を有する。例えば、ｃｎｔ＿ｎｕｍ［２］［３］＝５、ｃｎｔ＿ｎｕｍ［２］［４］＝３の時は、宛先出力段２宛の各中間段へのセル送出カウンタに関して、カウンタ値が３個の中間段が５箇所、カウンタ値が４個の中間段が３箇所存在することを意味する。
【００８０】
なお、ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］、ｍａｘ＿ｃｎｔ［ｉ］、ｍｉｎ＿ｃｎｔ［ｊ］は、セルの送出個数を意味するパラメータであるが、差分許容値を超えない分散制御を行うためのパラメータであり、実際に管理メモリに格納される値としてはＫ  ＞  差分最大許容量となるＫの値を用いてｍｏｄｕｌｏ  Ｋ演算した値が利用される。ｍｏｄｕｌｏ  Ｋ演算した値として、各パラメータをＫで割った時の剰余を用いる。例えば、Ｋ＝４の場合、カウンタ値４は０に変換され（４  ｍｏｄ  ４  ＝  ０）、カウンタ値１３は１に変換される（１３  ｍｏｄ  ４  ＝  １）。
【００８１】
送出セル決定部２３が宛先出力段ｉのセルを中間段ｊに送出する際の管理メモリ更新処理（Ｓ２０２−３）の動作を以下に示す。
（１）ステップＳ２０２−３−１
送出対象セルの宛先出力段ｉのＶＯＱセル蓄積数（ｖｏｑ＿ｃｎｔ［ｉ］）から１減算する。すなわち、送出対象セルの宛先出力段ｉのＶＯＱセル蓄積数をディクリメント（ｖｏｑ＿ｃｎｔ［ｉ］−−）する。
（２）ステップＳ２０２−３−２
次に、出力段ｉ、中間段ｊへのセル送出カウンタｏｕｔ＿ｃｎｔ［ｉ］［ｊ］が、カウンタ最大値ｍａｘ＿ｃｎｔ［ｉ］と一致しているかどうかをチェックする。
（３）ステップＳ２０２−３−３
一致している場合はｍａｘ＿ｃｎｔ［ｉ］に１を加算する。すなわち、カウンタ最大値をインクリメント（ｍａｘ＿ｃｎｔ［ｉ］＋＋）する。
（４）ステップＳ２０２−３−４
次に、出力段ｉ、中間段ｊへのセル送出カウンタｏｕｔ＿ｃｎｔ［ｉ］［ｊ］が、カウンタ最小値ｍｉｎ＿ｃｎｔ［ｉ］と一致し、且つ、宛先出力段ｉに関してカウンタ最小値となっているｏｕｔ＿ｃｎｔ［ｉ］［ｊ］が１つしかないかどうか確認する。
（５）ステップＳ２０２−３−５
出力段ｉ、中間段ｊへのセル送出カウンタｏｕｔ＿ｃｎｔ［ｉ］［ｊ］が、カウンタ最小値ｍｉｎ＿ｃｎｔ［ｉ］と一致し、且つ、宛先出力段ｉに関してカウンタ最小値となっているｏｕｔ＿ｃｎｔ［ｉ］［ｊ］が１つしかない場合は、カウンタ最小値を１減算する（ｍｉｎ＿ｃｎｔ［ｉ］−−）。
（６）ステップＳ２０２−３−６
最後に、カウンタ分布ｃｎｔ＿ｎｕｍ［ｉ］［］の更新を行う。
（７）ステップＳ２０２−３−７
送出カウンタｏｕｔ＿ｃｎｔ［ｉ］［ｊ］に１を加算する（ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］＋＋）。
【００８２】
本詳細な実施例１では、送出セルが決定した際の管理メモリの更新処理が、中間段の個数Ｍと無関係にＯ（１）で実現されるため、固定時間内での処理が可能となる。
【００８３】
図１７に、本詳細な実施例１での動作例を示す。
本動作例では、概念上のパラメータｍａｘ＿ｃｎｔ、ｍｉｎ＿ｃｎｔ、ｏｕｔ＿ｃｎｔの右に、実際に管理メモリ内で管理されるｍｏｄｕｌｅ  Ｋ演算されたパラメータであるｍａｘ＿ｃｎｔ、ｍｉｎ＿ｃｎｔ、ｏｕｔ＿ｃｎｔとｃｎｔ＿ｎｕｍの値の変化を示す。説明の簡易化のために、宛先出力段ｉ＝１のパラメータ変化だけを示している。
【００８４】
初期状態であるセル時刻ｔ＝０では、全ての送出カウンタｏｕｔ＿ｃｎｔ［１］［１］、ｏｕｔ＿ｃｎｔ［１］［２］、ｏｕｔ＿ｃｎｔ［１］［３］が０であるため、カウンタ分布は、０の分布がｃｎｔ＿ｎｕｍ［１］［０］＝３となり、それ以外の分布ｃｎｔ＿ｎｕｍ［１］［１］、ｃｎｔ＿ｎｕｍ［１］［２］、ｃｎｔ＿ｎｕｍ［１］［３］は０となる。
【００８５】
セル時刻ｔ＝１では、ｏｕｔ＿ｃｎｔ［１］［１］が０から１に変化することで、カウンタ分布は、ｃｎｔ＿ｎｕｍ［１］［０］が２にディクリメントされ、ｃｎｔ＿ｎｕｍ［１］［１］が１にインクリメントされる。
【００８６】
セル時刻ｔ＝２２では、概念上のｏｕｔ＿ｃｎｔ［１］［１］＝４であるが、管理メモリに登録される値は、ｍｏｄｕｌｅ  Ｋ（＝４）演算されるためｏｕｔ＿ｃｎｔ［１］［１］＝０となる。カウンタ分布は、ｍｏｄｕｌｏ  Ｋ演算された送出カウンタの分布を演算するため、ｃｎｔ＿ｎｕｍ［１］［０］＝１となる。
【００８７】
ここでは、ＶＯＱチェック順序決定方法について説明する。
本発明の詳細な実施例２では、送出セル決定部２３が、ＶＯＱ内のセルが送出可能かどうかをチェックする際に、どの順番でチェックするかの実施例に関して示す。送出セル決定部２３は、チェックする宛先出力段を決定するために、ＶＯＱにセルが蓄積されている宛先出力段に関して、どの順序でチェックするかチェック順番リストにより管理するものとする。
【００８８】
送出セル決定部２３は、チェック順番リストの先頭から順番にチェックを行い、送出可能セルを発見するまで処理を繰り返す。送出可能セルを発見し、該当ＶＯＱのセルが無くなる場合は、チェック順番リストから該当宛先出力段の番号を消去する。送出可能セルを発見したが、該当ＶＯＱのセルが残っている場合は、該当宛先出力段の番号をチェック番号リストの末尾に移動する。
【００８９】
また、ｖｏｑ＿ｃｎｔ［ｉ］＝０である宛先出力段ｉ宛のセルを受信した場合は、チェック順番リストに宛先出力段ｉを追加する。
【００９０】
図１８にチェック順番リストを用いる場合の動作例を示す。
ｔ＝０においては、出力段１宛のセルが送出され、ｖｏｑ＿ｃｎｔ［１］＝０となるため、チェック順番リストの先頭の宛先出力段ｉ＝１がリストから消去される。
【００９１】
ｔ＝１においては、出力段４宛のセルを新たに受信し、ｖｏｑ＿ｃｎｔ［４］＝１となるため、チェック順番リストの末尾にセルが追加される。
【００９２】
ｔ＝２においては、出力段２のセルが送出されるが、ｖｏｑ＿ｃｎｔ［２］＞０のままであるため、チェック順番リストの宛先舎出力段ｉ＝２が、リストの末尾に移動する。
【００９３】
このように、チェック順番リストを用いることで、送出セル決定部２３は、ＶＯＱに蓄積されているセルのみをチェック対象として高速にセル送出判定をすることが可能である。また、最も長くＶＯＱに蓄積されたままのセルほど優先して送出することが可能になる。また、チェック順番リストの最大長はＫであるため、最悪条件においてもＫ回に１回は送出するチャンスが回ってくることになる。
【００９４】
本発明の詳細な実施例３では、実施例２と同様に、送出セル決定部２３が、チェック順番リストを利用して、リストに登録された宛先出力段ｉの順番で、セルの送出が可能かどうかをチェックするが、チェック順番リストの順番を決定する際に、各宛先出力段毎の優先度パラメータを利用して、優先度パラメータの値が、高い順、若しくは、低い順にチェックするものとする。
【００９５】
優先度パラメータとしては、例えば、以下のようなものが考えられる。
（ａ）ＶＯＱのセル蓄積量の多い順。
（ｂ）最大カウントと最小カウントの差分値（ｍａｘ＿ｃｎｔ［ｉ］−ｍｉｎ＿ｃｎｔ［ｉ］）が大きい順。
（ｃ）上記に加えて、前記差分値が同一の場合は、最小カウント値となっている中間段ｃｎｔ＿ｎｕｍ［ｉ］［  ｍｉｎ＿ｃｎｔ［ｉ］  ］の小さい順。
【００９６】
実現パラメータ例
（ｍａｘ＿ｃｎｔ［ｉ］−ｍｉｎ＿ｃｎｔ［ｉ］）×Ｋ  ＋  （Ｋ−ｃｎｔ＿ｎｕｍ［ｉ］［ｍｉｎ＿ｃｎｔ［ｉ］］）の大きい順
【００９７】
上記のパラメータを利用することにより、セル送出に偏りが発生し送出できない可能性が高い宛先出力段ほど、優先してチェックされるようになるため、入力段で、セルが入力されてから送出されるまでの遅延時間の最大値を削減する効果がある。
【００９８】
また、優先度パラメータによる並び替えを毎セルタイムスロット実施する場合には、以下のような優先度パラメータが考えられる。
（ａ）ｍａｘ＿ｃｎｔ［ｉ］  −  ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］の大きい順。
（ｂ）上記に加えて、上記の値が同一の場合は、ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］よりも小さいカウント値（ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］＞ｏｕｔ＿ｃｎｔ［ｉ］［ｊ’］となるｊ’）となっている中間段の個数の少ない宛先出力段を優先する。
【００９９】
上記のパラメータを利用することにより、セル送出に偏りが発生し送出できない可能性が高く、且つ、今回中間段ｊにセルを送出することにより、偏りを改善できるセルを優先してチェックすることが可能である。
【０１００】
チェック順番リストの優先度パラメータに基づくセル送出処理の具体例について説明する。図１９に、優先度パラメータとしてＶＯＱのセル蓄積量の多い順の例を示す。すなわち、ここではＶＯＱ長を優先度パラメータとしている。
【０１０１】
最初に、宛先出力段１の優先度パラメータ（ＶＯＱ長）は５、宛先出力段３及び４の優先度パラメータは３、宛先出力段２の優先度パラメータは１であるものとする。
【０１０２】
ｔ＝０においては、セルの受信は無く、出力段１宛のセルが送出されるため、宛先出力段１の優先度パラメータが１減少する。
【０１０３】
ｔ＝１においては、出力段１宛のセルを受信し、宛先出力段１の次に優先度パラメータが大きい出力段４宛のセルが送出され、宛先出力段４の優先度パラメータが１減少する。
【０１０４】
ｔ＝２においては、宛先出力段４の優先度パラメータが１減少したことにより、宛先出力段３と宛先出力段４の順番が入れかわる。出力段１宛のセルは既に優先度パラメータが５（ＶＯＱ長＝５）であるため、出力段３宛のセルを受信する。また、宛先出力段４の次に優先度パラメータが大きい出力段２宛のセルが送出され、宛先出力段２の優先度パラメータが１減少する。この時、宛先出力段２の優先度パラメータは０になるため、宛先出力段２がリストから消去される。
【０１０５】
ｔ＝３においては、宛先出力段２がリストから消去されたことにより宛先出力段が１，３，４の３つになるため、出力段５宛のセルを新たに受信し、優先度パラメータが最も大きい出力段１宛のセルが送出される。
【０１０６】
ｔ＝４においては、優先度パラメータが最も小さい出力段５宛のセルを受信し、優先度パラメータが最も大きい出力段１宛のセルが送出される。
【０１０７】
ｔ＝５においては、出力段５宛のセルを受信し、宛先出力段５の優先度パラメータが宛先出力段４の優先度パラメータよりも大きくなるため順番が入れかわる。また、宛先出力段１の優先度パラメータが宛先出力段３の優先度パラメータよりも小さくなったため順番が入れかわるため、出力段３宛のセルが送出される。
【０１０８】
スイッチポート数（Ｌ＝Ｍ＝Ｎ）が４の場合の従来例１（Ｂａｓｉｃ）、従来例２（ＦＯＦＦ）、本発明のロードバランス型スイッチ（Ｎｅｗ）のシミュレーション結果を図２０に、スイッチポート数（Ｌ＝Ｍ＝Ｎ）が１２８の場合の従来例１（Ｂａｓｉｃ）、従来例２（ＦＯＦＦ）、本発明のロードバランス型スイッチ（Ｎｅｗ）のシミュレーション結果を図２１に示す。図２０，図２１を参照すると、本発明のロードバランス型スイッチ（Ｎｅｗ）では、従来例１（Ｂａｓｉｃ）及び従来例２（ＦＯＦＦ）と比較して、トラフィックロードが７０％以上になると平均遅延量が小さくなることがわかる。
【０１０９】
本発明のロードバランス型スイッチのカウンタ許容差分値は１である。
【０１１０】
本発明のロードバランス型スイッチでは、スイッチポート数が４と１２８の両方において高負荷状態での低遅延が実現できている。
【０１１１】
これは、本発明のロードバランス型スイッチにおいて、入力段では、送出セルに偏りが発生しない限りは、セルを待ち合わせなく送出することが可能であり、入力段での遅延を小さく抑えたまま、セルを各中間段に均等に分散することで、出力段での待ち合わせの遅延も削減することを可能にするからである。
【０１１２】
本発明のロードバランス型スイッチの他の実施例１に関して説明する。
ここでは、後段ＦＯＦＦ動作について説明する。
他の実施例１では、第１実施形態の中で、送出セル選択処理の動作が異なる。他の実施例１では、送出カウンタに従ってＶＯＱをチェックした結果送出可能なセルが存在しない場合に、ＶＯＱを再度チェックし、Ｍセル以上蓄積しているセルが存在する場合には、それからＭセル周期の間、指定された同一宛先出力段のＶＯＱからのセルの送出を行う。Ｍセルをまとめて出力処理を行うため、本処理を追加した結果、どこかの中間段への送出セル数に偏りが生じることは無い。
【０１１３】
図２２に、他の実施例１での送出セル選択処理の動作フローチャートを示す。
（１）ステップＳ３０１
送出可能なセルが存在するかどうか判定する。実施例１では、複数のセルを同時に送出予約することがあるため、各セルタイムスロットにおいて、既に、セルが予約状態になっている時は、送出判定は不要である。
（２）ステップＳ３０２
予約状態になっているセルが存在しなければ、本発明の第１実施形態と同様に、ＶＯＱの蓄積セルで送出可能なセルが存在しないかを、送出カウンタを利用してチェックする。この時、送出決定部２３は、ある宛先出力段ｉに関して、ＶＯＱ蓄積セルが存在する、すなわち、ｖｏｑ＿ｃｎｔ［ｉ］  ＞  ０で、且つ、まだチェックしていない宛先出力段が存在するかどうかをチェックする。そのような出力段が存在しない時は処理を終了する。この処理は、ステップＳ２０１と同じである。
（３）ステップＳ３０３
そのような出力段が存在する場合は、該当宛先出力段ｉのセルが現在の中間段セルタイムスロットにおいて送出可能かどうかを判定する。送出可能な場合は、該当セルの送出を行われるので処理を終了する。送出不可の場合は、再度、別の宛先出力段が存在するかどうかのチェックし、送出可能なセルが見つかるか、チェック対象のセルが無くなるかまで処理を繰り返す。この処理は、ステップＳ２０２と同じである。
（４）ステップＳ３０４
送出可能なセルが存在しない場合、ＶＯＱ蓄積セル数ｖｏｑ＿ｃｎｔ［ｉ］が中間段２の個数であるＭ以上となっている宛先出力段ｉが存在しないかをチェックする。
（５）ステップＳ３０５
ＶＯＱにＭセル以上蓄積された宛先出力段ｉが存在する場合、Ｍ個のセル送出を予約する。
【０１１４】
Ｓ３０４において、Ｍセル以上たまっている宛先出力段が複数存在する場合に、どのセルを利用するかに関しては、ランダムに選択する方法や、ラウンドロビンで選択する方法、最も蓄積する数の多い宛先出力段を選択する方法などが考えられる。
【０１１５】
他の実施例１では、第１実施形態においては、送出できないセルタイムスロットにおいても、ある出力段に関してＶＯＱにＮセル以上たまっている場合にはセルを送出可能となるため、その部分の入力段での遅延時間を削減できる効果がある。
【０１１６】
本発明のロードバランス型スイッチの他の実施例２に関して説明する。
ここでは、前段ＦＯＦＦ動作について説明する。
他の実施例２では、ＶＯＱ蓄積セル数がＭ以上の宛先出力段ｉが存在するかどうかをチェックし（Ｓ３０２）、存在する場合にはＭセル分を送出予約する処理（Ｓ３０３）を、送出セルカウンタを利用しての送出判定処理（Ｓ３０４，Ｓ３０５）より前に実施する。
【０１１７】
他の実施例２での送出セル選択処理の動作フローチャートを図２３に示す。
（１）ステップＳ３０１
送出可能なセルが存在するかどうか判定する。各セルタイムスロットにおいて、既に、セルが予約状態になっている時は、送出判定は不要である。
（２）ステップＳ３０４
送出可能なセルが存在しない場合、ＶＯＱ蓄積セル数ｖｏｑ＿ｃｎｔ［ｉ］が中間段２の個数であるＭ以上となっている宛先出力段ｉが存在しないかをチェックする。
（３）ステップＳ３０５
ＶＯＱにＭセル以上蓄積された宛先出力段ｉが存在する場合、Ｍ個のセル送出を予約する。
（４）ステップＳ３０２
予約状態になっているセルが存在しなければ、本発明の第１実施形態と同様に、ＶＯＱの蓄積セルで送出可能なセルが存在しないかを、送出カウンタを利用してチェックする。この時、送出決定部２３は、ある宛先出力段ｉに関して、ＶＯＱ蓄積セルが存在する、すなわち、ｖｏｑ＿ｃｎｔ［ｉ］  ＞  ０で、且つ、まだチェックしていない宛先出力段が存在するかどうかをチェックする。そのような出力段が存在しない時は処理を終了する。
（５）ステップＳ３０３
そのような出力段が存在する場合は、該当宛先出力段ｉのセルが現在の中間段セルタイムスロットにおいて送出可能かどうかを判定する。送出可能な場合は、該当セルの送出を行われるので処理を終了する。送出不可の場合は、再度、別の宛先出力段が存在するかどうかのチェックし、送出可能なセルが見つかるか、チェック対象のセルが無くなるかまで処理を繰り返す。
【０１１８】
Ｍセル以上たまっているセルを優先して出力することで、多く蓄積されているセルほど優先して送出されるため、最大の遅延時間を低減する効果が生まれる。
【０１１９】
本発明のロードバランス型スイッチの他の実施例３に関して説明する。
ここでは、カウンタリセット動作について説明する。
他の実施例３では、一定期間セルを受信（若しくは送信）しない状況において、カウンタの値（ｏｕｔ＿ｃｎｔ、ｍａｘ＿ｃｎｔ、ｍｉｎ＿ｃｎｔ）のリセットを行う。一定期間セルを受信していない状態では、送出したセルは、中間段２を経由して既に出力段３に到着しているものと想定される。よって、ある宛先出力段に関して中間段毎の送出カウンタの値にばらつきが発生していても、実際には、中間段にはセルが存在しないため、蓄積セル数に偏りが無いことが想定される。よって、偏った状態になっている各カウンタの値をリセットして偏りの無い状態にする。
【０１２０】
なお、カウンタのリセット制御は、宛先出力段に関係なく全体に対して行う方法も考えられるが、宛先出力段毎に、一定期間セルを受信（若しくは送信）していない宛先出力段だけをリセット制御することも考えられる。
【０１２１】
一定期間セルを受信（若しくは送信）していない出力段のカウンタをリセットすることで、カウンタの値が偏った状態のままになっていることを防止することで、カウンタの偏りによりセルが送出できない可能性を低減できるため、入力段での遅延時間を削減する効果が得られる。
【０１２２】
本発明のロードバランス型スイッチの他の実施例４に関して説明する。
ここでは、カウンタリセット動作について説明する。
他の実施例４では、セルの送出が行われないセルタイムスロットにおいて、空きセル（実際には中身の存在しないセルデータ）を挿入する。空きセルを挿入する意味は、偏りの発生している宛先出力段に関して、偏りを緩和するためである。よって、不必要に空きセルを挿入すべきでは無い。例えば、最大送出カウントと最小送出カウントの差分が差分許容値となっており、且つ、最小送出カウントとなっている中間段の個数がＫ／４以下となっており、且つ、送出予定の中間段ｊが最小送出カウントとなっている場合などである。本条件を式に表すと以下のようになる。
【０１２３】
ｍｉｎ＿ｃｎｔ［ｉ］  −  ｍａｘ＿ｃｎｔ［ｉ］  ＝＝  差分許容値  ＆＆
ｎｕｍ＿ｃｎｔ［ｉ］［  ｍｉｎ＿ｃｎｔ［ｉ］  ］  ＜  Ｋ／４  ＆＆
ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］  ＝＝  ｍｉｎ＿ｃｎｔ［ｉ］
【０１２４】
なお、空きセルの挿入に関しては、実際に空きセルを挿入する方法と、空きセルを挿入したことにしてカウンタの更新だけを行う方法の２種類が考えられる。
【０１２５】
以下に本発明の第２実施形態について説明する。
図２４に、本発明の第２実施形態におけるロードバランス型スイッチの入力段１０１の構成を示す。
【０１２６】
入力段１０１は、宛先検出部２１、ＦＩＦＯ部１２２、送出決定部１２３、管理メモリ２４から構成される。宛先検出部と管理メモリは、図１２の入力段１と同一であるが、ＶＯＱ部２２がＦＩＦＯ部１２２に置き換わっている。
【０１２７】
ＦＩＦＯ部１２２は、単一キューのみを有し、入力された受信セルの順序でセルを送出する。また、ＦＩＦＯ部１２２は、キューの先頭に蓄積されている先頭セルの宛先出力段の情報を、送出決定部１２３に通知する。
【０１２８】
送出決定部１２３は、ＦＩＦＯ部の先頭セルのみに対して送出判定を行い、送出可能かどうかだけをＦＩＦＯ部に通知する以外は、本発明の第１実施形態における送出決定部２３と同一である。
【０１２９】
送出決定部１２３の送出セル選択処理の処理フローチャートを図２５に示す。
（１）ステップＳ４０１
送出決定部１２３は、ＦＩＦＯ部１２２にＦＩＦＯにセルが蓄積しているかどうかをチェックする。ＦＩＦＯにセルが蓄積していない場合は、処理対象のセルが存在しないため、処理を終了する。
（２）ステップＳ４０２
ＦＩＦＯにセルが蓄積している場合は、該宛先出力段ｉのセルが送出可能かどうかの判定を行う。処理内容はＳ２０２と同一である。送出可能であればセル送出を要求するが、送出不可であればセル送出の要求は行わずに処理を終了する。
【０１３０】
本発明の第２実施形態では、ＶＯＱ部２２の代わりにＦＩＦＯ部１２２を用いることで、回路構成を単純化している。また、１セルタイムスロットあたり必ず１回しかセルの送出を判定しないためポート数によらず固定時間でセル送出を判定可能である。
【０１３１】
以下に本発明の第３実施形態について説明する。
本発明の第３実施形態におけるロードバランス型スイッチの入力段２０１の構成を図２６に示す。
【０１３２】
入力段２０１は、宛先検出部２１、ＦＩＦＯ部２２２、送出決定部２２３、管理メモリ２４から構成される。宛先検出部と管理メモリは、図１２の入力段１と同一であるが、ＶＯＱ部２２がＦＩＦＯ部２２２に置き換わっている。
【０１３３】
ＦＩＦＯ部２２２は、受信した際に送出できなかったセルを蓄積するための単一の待ち合わせ用ＦＩＦＯと受信したばかりのセルを別々に管理し、送出セル決定部２２３は、ＦＩＦＯの先頭セル若しくは受信したばかりのセルを選択して読み出すことが可能なものとする。
【０１３４】
図２７に、送出セル決定部２２３の送出セル選択処理のフローチャートを示す。
（１）ステップＳ５０１
送出セル決定部では、まず、ＦＩＦＯのセルが蓄積されているかどうかをチェックする。
（２）ステップＳ５０２
蓄積されている場合は、先頭セルが送出可能かどうかのチェックを行う。処理内容はＳ２−２と同一である。
（３）ステップＳ５０３
送出可能な場合は、先頭セルに対する送出要求を行い、処理を終了する。送出を行わなかった場合は、受信したばかりのセルが存在するかどうかをチェックする。
（４）ステップＳ５０４
受信したばかりのセルが存在する場合は、同一宛先出力段のセルがＦＩＦＯ内に存在しないかをチェックする。
（５）ステップＳ５０５
受信したばかりのセルが存在しない場合、該当セルが送出可能かどうかの判定処理を行う。処理内容はＳ２−２と同一である。送出可能と判定された場合は、受信セルの送出処理を行う。
【０１３５】
本発明の第３実施形態では、本発明の第２実施形態と同様、ＶＯＱ部２２の代わりにＦＩＦＯ部１２２を用いることで、回路構成を単純化している。また、１セルタイムスロットあたり最大２回しかセルの送出を判定しないためポート数によらず固定時間でセル送出を判定可能である。
【０１３６】
なお、図５に示す入力段１と中間段２の間にあるメッシュ接続部４がＶＯＱ部２２及びＦＩＦＯ部１２２の機能を有するようにすることが可能である。この場合、メッシュ接続部４は、入力段１の一部と考えることができる。本発明では、入力段から中間段へ送出するセルの振り分け処理に特徴があり、入力段と中間段の間にある装置、回路及び回線は、全て入力段の一部と考えることができるためである。また、同様に、図６のメッシュ接続部７についても、回線カード６の入力段機能のうち、ＶＯＱ部２２及びＦＩＦＯ部１２２に相当する機能を有するようにすることが可能である。
【０１３７】
最後に、本発明のロードバランス型スイッチ装置の特徴について詳述する。
本発明のロードバランス型スイッチ装置は、Ｌ個の入力段と、Ｍ個の中間段と、Ｎ個の出力段と、各入力段と中間段をメッシュに接続するメッシュ接続部と、各中間段と出力段をメッシュに接続するメッシュ接続部とを備えている。該入力段は、受信セルを各中間段へ振り分ける処理において、各宛先出力段ｉと経由する中間段ｊ毎の送出カウンタｏｕｔ＿ｃｎｔ［ｉ］［ｊ］を管理し、各宛先出力段毎に、各中間段に送出したセルの個数が、一定の範囲内に収まるようにセルの振り分け処理を行うことを特徴とする。
【０１３８】
各入力段の送出セル決定部は、宛先出力段ｉ宛のセルを中間段ｊに対して送出可能かどうかを判定する処理において、宛先出力段ｉ毎の各中間段への送出カウンタの最大値ｍａｘ＿ｃｎｔ［ｉ］と最小値ｍｉｎ＿ｃｎｔ［ｉ］を管理し、最大値と最小値の差分が差分許容値よりも小さい値となっているか、若しくは、中間段ｊへの送出カウンタｏｕｔ＿ｃｎｔ［ｉ］［ｊ］の値が最大値ｍａｘ＿ｃｎｔ［ｉ］となっていない場合に、セルを送出可能と判定することを特徴とする。
【０１３９】
ｍａｘ＿ｃｎｔ、ｍｉｎ＿ｃｎｔ、ｏｕｔ＿ｃｎｔの各パラメータに関して、Ｋ  ＞  差分許容値となるＫの値を利用して、ｍｏｄｕｌｏ  Ｋ演算した値（各パラメータをＫで割った時の剰余）として管理することを特徴とする。
【０１４０】
宛先出力段ｉ毎に、ｍｏｄｕｌｏ  Ｋ演算された各中間段ｊへのカウント値（ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］）の分布をｃｎｔ＿ｎｕｍ［ｉ］［］にて管理することを特徴とする。
【０１４１】
ｍｉｎ＿ｃｎｔ［ｉ］の更新処理において、ｍｉｎ＿ｃｎｔ［ｉ］値となっている中間段の個数が１個（＝ｃｎｔ＿ｎｕｍ［ｉ］［ｍｉｎ＿ｃｎｔ［ｉ］］＝＝１）で、且つ、セルを送出する中間段ｊへの送出カウントがｍｉｎ＿ｃｎｔ［ｉ］と一致する場合に、ｍｉｎ＿ｃｎｔ［ｉ］の更新を行うことを特徴とする。
【０１４２】
入力段は、宛先判定部、ＶＯＱ部、送出セル決定部、管理メモリより構成され、該送出セル決定部において、ＶＯＱ部に蓄積されたセルの中から送出可能なセルを１つ選択することを特徴とする。
【０１４３】
入力段は、宛先判定部、ＦＩＦＯ部、送出セル決定部、管理メモリより構成され、該送出セル決定部において、ＦＩＦＯ部の先頭に蓄積されたセルが送出可能であるかどうかを判定することを特徴とする。
【０１４４】
入力段は、宛先判定部、ＦＩＦＯ部、送出セル決定部、管理メモリより構成され、該ＦＩＦＯ部では、受信時に送出できなかったセルをＦＩＦＯに蓄積する機能と、受信したばかりのセルを別々に管理し、送出セル決定部がＦＩＦＯの先頭若しくは受信したばかりのセルのどちらかを指定して読み出す機能を有する。また、該送出セル決定部において、ＦＩＦＯの先頭セルが送出可能であるかどうかを判定し、送出可能であればＦＩＦＯの先頭セルを送出し、送出不可であれば受信したセルが送出可能かどうかを判定することを特徴とする。
【０１４５】
１セルタイムスロットにおいて、複数セルタイムスロットの送出予約を可能とする。
【０１４６】
ある宛先出力段ｉへの送出において、ＶＯＱに蓄積しているセルが複数個の場合に、同一宛先出力段ｉへの複数のセルを連続して送出するように予約することを特徴とする。
【０１４７】
送出チェック対象の宛先出力段ｉに関して、ＶＯＱに複数のセルが存在し、ｍａｘ＿ｃｎｔ［ｉ］−ｍｉｎ＿ｃｎｔ［ｉ］の値が許容差分値よりも小さい場合に、複数のセルタイムスロットに対して連続して送出予約をすることを特徴とする。
【０１４８】
ＶＯＱに蓄積されたセルの中から送出可能なセルを選択する処理において、宛先出力段ｉをランダムな順番でチェックすることを特徴とする。
【０１４９】
ＶＯＱに蓄積されたセルの中から送出可能なセルを選択する処理において、宛先出力段ｉをラウンドロビンの順番でチェックすることを特徴とする。
【０１５０】
ＶＯＱに蓄積されたセルの中から送出可能なセルを選択する処理において、ＶＯＱに蓄積されているセルの宛先出力段を、受信したばかりのセルの宛先出力段よりも優先してチェックすることを特徴とする。
【０１５１】
送出カウンタの値からは送出可能なセルが存在しない場合に、ＶＯＱ内に中間段の個数であるＫ個以上のセルが蓄積されている宛先出力段が存在する場合に、該宛先出力段のＫ個のセルを連続して送出することを特徴とする。
【０１５２】
ＶＯＱ内に中間段の個数であるＫ個以上のセルが蓄積されている宛先出力段が存在する場合に、該宛先出力段のＫ個のセルを連続して送出し、そのような、セルが存在しない時だけ、送出カウンタの値に従ってセルの振り分け処理を行うことを特徴とする。
【０１５３】
ＶＯＱに蓄積されたセルの中から送出可能なセルを選択する処理において、チェック対象のリストを用いて、リストの先頭から順番にチェックすることを特徴とする。
【０１５４】
ＶＯＱにセルが蓄積されている宛先出力段のみを、リスト内に入れておくことを特徴とする。
【０１５５】
送出するセルの宛先出力段を決定した際に、該宛先出力段を、リストから一端除去し、ＶＯＱにセルが残っている場合には、リストの末尾に追加し直すことを特徴とする。
【０１５６】
チェック対象のリストの順番を決める優先度パラメータを有することを特徴とする。
【０１５７】
優先度パラメータとして、ＶＯＱの蓄積セル数を利用し、ＶＯＱの蓄積セル数が大きい宛先出力段のセルを優先してチェックすることを特徴とする。
【０１５８】
優先度パラメータとして、最大カウントと最小カウントの差分値（ｍａｘ＿ｃｎｔ［ｉ］−ｍｉｎ＿ｃｎｔ［ｉ］）を利用し、優先度パラメータが大きい宛先出力段のセルを優先してチェックすることを特徴とする。
【０１５９】
優先度パラメータとして、最大カウントと最小カウントの差分値（ｍａｘ＿ｃｎｔ［ｉ］−ｍｉｎ＿ｃｎｔ［ｉ］）が大きい宛先出力段のセルを優先してチェックするが、最大カウントと最小カウントの差分値（ｍａｘ＿ｃｎｔ［ｉ］−ｍｉｎ＿ｃｎｔ［ｉ］）が同じ場合は、最小カウント値となっている中間段の個数（＝ｃｎｔ＿ｎｕｍ［ｉ］［  ｍｉｎ＿ｃｎｔ［ｉ］  ］が小さい宛先出力段のセルを優先してチェックすることを特徴とする。
【０１６０】
中間段ｊへのセル送出を行う際に、優先度パラメータとしてｍａｘ＿ｃｎｔ［ｉ］  −  ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］の大きい宛先出力段のセルを優先してチェックすることを特徴とする。
【０１６１】
中間段ｊへのセル送出を行う際に、優先度パラメータとしてｍａｘ＿ｃｎｔ［ｉ］  −  ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］の大きい宛先出力段のセルを優先してチェックするが、ｍａｘ＿ｃｎｔ［ｉ］  −  ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］が同じ場合は、ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］よりも小さいカウント値（ｏｕｔ＿ｃｎｔ［ｉ］［ｊ］＞ｏｕｔ＿ｃｎｔ［ｉ］［ｊ’］となるｊ’）となっている中間段の個数の少ない宛先出力段のセルを優先してチェックすることを特徴とする。
【０１６２】
チェック対象リストの更新処理における各セルタイムスロットの処理において、受信若しくは送信された宛先出力段ｉのセルのチェック順番のみを更新することを特徴とする。
【０１６３】
チェック対象リストの更新処理における各セルタイムスロットの処理において、各セルタイムスロット毎に、チェック対象リストの並べ替えを行うことを特徴する。
【０１６４】
一定期間セルを受信しない際に、送出カウンタの値をリセットする機能を有することを特徴とする。
【０１６５】
宛先出力段毎にセルの受信間隔を監視し、一定期間セルを受信しない際に、該当宛先出力段の送出カウンタの値をリセットする機能を有することを特徴とする。
【０１６６】
一定期間セルを送信しない際に、送出カウンタの値をリセットする機能を有することを特徴とする。
【０１６７】
宛先出力段毎にセルの送信間隔を監視し、一定期間セルを送信しない際に、該当宛先出力段の送出カウンタの値をリセットする機能を有することを特徴とする。
【０１６８】
送出カウンタを利用した判定の結果、送出対象のセルが存在しない際に、ある宛先出力段に対して、セルを送出したものとしてカウンタ値の更新を行うことを特徴とする。
【０１６９】
セルを送出したものとしてカウンタ値の更新を行う処理において、中身の無効な空きセルを送出することを特徴とする。
【０１７０】
以上のように、本発明では、入力段で、宛先出力段毎に、各中間段へ送出したセルの数をカウントし、中間段間での差分が差分許容量となるように制御する。差分が差分許容量を超えなければ、受信したセルは直ぐに中間段へ送出されるため、入力段での遅延を削減しつつも、中間段に対して均一な分散処理を実現することができる。
【図面の簡単な説明】
【０１７１】
【図１】図１は、入力バッファ型スイッチ構成を表すブロック図を示す図である。
【図２】図２は、ＶＯＱを利用した入力バッファ型スイッチ構成を表すブロック図を示す図である。
【図３】図３は、出力バッファ型スイッチ構成を表すブロック図を示す図である。
【図４】図４は、共有バッファ型スイッチ構成を表すブロック図を示す図である。
【図５】図５は、ロードバランス型スイッチの構成例を示す図である。
【図６】図６は、回線カードに入力段・中間段・出力段機能を有するロードバランス型スイッチの構成例を示す図である。
【図７】図７は、従来例１のロードバランス型スイッチの動作例を示す図である。
【図８】図８は、従来例２のロードバランス型スイッチの動作例を示す図である。
【図９】図９は、スイッチポート数（Ｌ＝Ｍ＝Ｎ）が４の場合の従来例１（Ｂａｓｉｃ）と従来例２（ＦＯＦＦ）のシミュレーション結果を示す図である。
【図１０】図１０は、スイッチポート数（Ｌ＝Ｍ＝Ｎ）が１２８の場合の従来例１（Ｂａｓｉｃ）と従来例２（ＦＯＦＦ）のシミュレーション結果を示す図である。
【図１１】図１１は、本発明のロードバランス型スイッチにおける入力段１の構成例を示す図である。
【図１２】図１２は、送出セル決定部のセル受信処理の動作フローチャートを示す図である。
【図１３】図１３は、送出セル決定部の送出セル選択処理の動作フローチャートを示す図である。
【図１４】図１４は、セル送出可能判定処理内の処理フローチャートを示す図である。
【図１５】図１５は、本発明のロードバランス型スイッチの動作例を示す図である。
【図１６】図１６は、送出セル決定部が宛先出力段ｉのセルを中間段ｊに送出することを決定した際の管理メモリの更新処理の詳細な実施例のフローチャートを示す図である。
【図１７】図１７は、本詳細な実施例での動作例を示す図である。
【図１８】図１８は、チェック順番リストを用いる場合の動作例を示す図である。
【図１９】図１９は、チェック順番リストの具体例を示す図である。
【図２０】図２０は、スイッチポート数（Ｌ＝Ｍ＝Ｎ）が４の場合の従来例１（Ｂａｓｉｃ）、従来例２（ＦＯＦＦ）、本発明のロードバランス型スイッチ（Ｎｅｗ）のシミュレーション結果を示す図である。
【図２１】図２１は、スイッチポート数（Ｌ＝Ｍ＝Ｎ）が１２８の場合の従来例１（Ｂａｓｉｃ）、従来例２（ＦＯＦＦ）、本発明のロードバランス型スイッチ（Ｎｅｗ）のシミュレーション結果を示す図である。
【図２２】図２２は、他の実施例１での送出セル選択処理の動作フローチャートを示す図である。
【図２３】図２３は、他の実施例２での送出セル選択処理の動作フローチャートを示す図である。
【図２４】図２４は、本発明の第２実施形態におけるロードバランス型スイッチの入力段１０１の構成を示す図である。
【図２５】図２５は、送出決定部の送出セル選択処理の処理フローチャートを示す図である。
【図２６】図２６は、本発明の第３実施形態におけるロードバランス型スイッチの入力段２０１の構成を示す図である。
【図２７】図２７は、送出セル決定部の送出セル選択処理のフローチャートを示す図である。
【符号の説明】
【０１７２】
１０  ロードバランス型スイッチ
１、１−１、１−２、１−３、１−Ｌ  入力段
２、２−１、２−２、２−３、２−Ｍ  中間段
３、３−１、３−２、３−３、４−Ｎ  出力段
４、５  メッシュ接続部
６、６−１、６−２、６−３、６−Ｎ  回線カード
７  回線カード間をメッシュに接続するメッシュ接続部
１１  入力段・中間段・出力段が回線カード内に入ったロードバランス型スイッチ
２１  宛先検出部
２２  ＶＯＱ部
２３  送出セル決定部
２４  管理メモリ部
１０１  入力段
１２２  ＦＩＦＯ部
１２３  送出セル決定部
２０１  入力段
２２２  ＦＩＦＯ部
２２３  送出セル決定部
【図１】
2008017387.tif 000003
【図２】
2008017387.tif 000004
【図３】
2008017387.tif 000005
【図４】
2008017387.tif 000006
【図５】
2008017387.tif 000007
【図６】
2008017387.tif 000008
【図７】
2008017387.tif 000009
【図８】
2008017387.tif 000010
【図９】
2008017387.tif 000011
【図１０】
2008017387.tif 000012
【図１１】
2008017387.tif 000013
【図１２】
2008017387.tif 000014
【図１３】
2008017387.tif 000015
【図１４】
2008017387.tif 000016
【図１５】
2008017387.tif 000017
【図１６】
2008017387.tif 000018
【図１７】
2008017387.tif 000019
【図１８】
2008017387.tif 000020
【図１９】
2008017387.tif 000021
【図２０】
2008017387.tif 000022
【図２１】
2008017387.tif 000023
【図２２】
2008017387.tif 000024
【図２３】
2008017387.tif 000025
【図２４】
2008017387.tif 000026
【図２５】
2008017387.tif 000027
【図２６】
2008017387.tif 000028
【図２７】
2008017387.tif 000029