(57)【特許請求の範囲】
【請求項１】
パケット処理装置であって，  
複数の入力回線処理部と，
複数の出力回線処理部と，
それぞれ，上記複数の出力回線処理部に対応して設けられた複数のキューバッファを有するとともに，上記複数の入力回線処理部に接続される複数の入力バッファ部と，
上記複数の入力バッファ部と，上記複数の出力回線処理部とに接続されるクロスバスイッチと，
上記複数の入力バッファ部の全てのキューバッファの中から，何れのキューバッファに対して，上記クロスバスイッチへパケットを送出する権利を付与するかのアービトレーションを行うアービタと，
上記複数の入力バッファ部の全てのキューバッファに対して，それらのキューバッファから上記クロスバスイッチにパケットが送出される時間間隔に関する情報と，それらのキューバッファのキュー長に関する情報とに基づき，上記クロスバスイッチへパケットを送出する権利の取得に関する優先度情報を求める手段とを有し，
さらに、上記優先度情報は下記の数式で定義されたものであり、
Ｌ＝(１／ln((Ｍ−ａ・ｔ)・e/（ｂ・ｓ）))×１５
（但し、Ｍはタイムアウト、ｔは送出間隔、ｓは現在のセグメント数、ａは送出間隔係数、ｂはキュー長係数、eは自然対数の底を表す）
上記アービタは，上記複数の入力バッファ部の全てのキューバッファに対して求められた上記優先度情報に基づき，上記アービトレーションを行うパケット処理装置。
【請求項２】
請求項１に記載のパケット処理装置であって，
上記全てのキューバッファの各キューバッファ対応に，そのキューバッファからパケットが上記クロスバスイッチに送出される時間間隔を測定する手段と，
上記複数の入力バッファ部の各キューバッファ対応に，そのキューバッファのキュー長を測定する手段とを更に有するパケット処理装置。
【請求項３】
請求項１又は請求項２の何れかに記載のパケット処置装置であって，
上記全てのキューババッファの各キューバッファからパケットがあふれ出ないようにするため，上記優先度情報は，送出間隔係数ａの値を１よりも大きな値にすることで上記時間間隔に関する情報よりも上記キュー長に関する情報にウエイトを置いて求められるパケット処理装置。
【請求項４】
請求項１又は請求項２の何れかに記載のパケット処理装置であって，
上記全てのキューババッファの各キューバッファにパケットが滞留する時間を短くするために，上記優先度情報は，キュー長係数ｂの値を１よりも大きな値にすることで上記キュー長に関する情報よりも，上記時間間隔に関する情報にウエイトを置いて求められるパケット処理装置。
【請求項５】
請求項１又は請求項２の何れかに記載のパケット処理装置であって、
入力回線毎及び出力回線毎に上記各キューバッファ間で上記数式で定義された優先度情報を比較し、該比較の結果に基づいて優先度情報を再評価して縮退させ、
上記アービタは上記縮退させた優先度情報に基づいて上記アービトレーションを行うことを特徴とするパケット処理装置。
【請求項６】
請求項５に記載のパケット処理装置であって、
上記比較の結果入力回線及び出力回線について共に勝ち残った場合の再評価結果は、上記比較の結果入力回線及び出力回線について共に負けた場合の再評価の結果よりも優先度が高いことを特徴とするパケット処理装置。
【請求項７】
請求項５に記載のパケット処理装置であって、
出力回線についての上記比較結果が同じならば、上記比較の結果入力回線について勝ち残ったキューバッファが１つの場合の再評価結果は、入力回線についての比較の結果勝ち残ったキューバッファが２つ以上の場合の再評価結果よりも優先度が高いことを特徴とするパケット処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は，入力バッファ型クロスバスイッチのパケット処理装置に関し，特に，当該パケット処理装置のアービタ方式に関する。
【０００２】
【従来の技術】
入力回線毎に単一ＦＩＦＯを持つ入力バッファ型クロスバスイッチのパケット処理装置が知られている。このパケット処理装置では，複数の入力回線から入力された複数のパケットが特定の出力方路に集中すると，ＨＯＬ(Ｈｅａｄ Ｏｆ Ｌｉｎｅ)ブロッキングが発生する。このため，スループットが５８．６％までしか上がらないことは良く知られている。そこで，入力バッファ部に，出力方路毎にＶｏＱ(Ｖｉｒｔｕａｌ Ｏｕｔｐｕｔ Ｑｕｅｕｅ)を設けるものが知られている。
【０００３】
また，可変長パケットのスイッチング方式として，可変長パケットをある一定の固定長の短いセルに分割し，１セル単位でアービトレーションを行なうものと，特開２０００−２３２４８２号公報に示されているように，可変長パケットをある一定の大きな固定長の入れ物に複数個詰めこみ，この入れ物単位でアービトレーションを行なうものとがある。このように，一回のアービトレーション処理でスイッチへ送出されるデータは，固定長の短いセルである場合，固定長の長い入れ物である場合があるが，本明細書では，一回のアービトレーション処理でスイッチに送出されるデータを１セグメントと呼ぶことにする。
【０００４】
ＶｏＱを持つ入出力バッファ型クロスバスイッチでは，クロスバスイッチ部に通常バッファリング要素を持たないため，複数のＶｏＱからの出力が競合しないように，アービトレーション機能を設ける必要がある。アービトレーションの良し悪しは，スイッチのスループットに大きな影響を与える。
【０００５】
従来のアービトレーションの方法として，次の３つの方法が提案されている。第１に，ＶｏＱのパケットの有無を見てラウンドロビンで送出キューを選択する方法。この方法については，若山浩ニ  他，“大容量パケットスイッチ構成法に関する一検討”，信学技報ＩＮ９８−１０２，及び特開２０００−７８１４８号公報に開示されている。第２に，時間をパラメーターとして見て，送出キューを選択する方法。この方法については，須藤俊之  他，“入力バッファスイッチのスケジューリングの一検討と試作”，信学技報ＳＳＥ９９−１１８に開示されている。第３に，キュー長を見て送出キューを選択する方法。この方法については，大場義洋，“キュー長を用いた重み付け公平パケットスケジューリングアルゴリズムの提案および性能評価”，信学技報ＳＳＥ９６−５６に開示されている。
【０００６】
【発明が解決しようとする課題】
上記の従来の技術では，スイッチに不均衡負荷が掛かった時に生じる問題点を図１６を用いて説明する。図１６は，４×４スイッチの入力ポート３０の概念図である。３１−１,−２,−３,−４はそれぞれの出力方路行きのＶｏＱである。各ＶｏＱ内の四角形はセグメントを表している。３１−１には他のキューと比べて高負荷なトラヒックが掛かっており，３１−４には他のキューと比べて低負荷なトラヒックが掛かっている。
【０００７】
ＶｏＱのパケットの有無を見てラウンドロビンで送出キューを選択する方法では，不均衡負荷下の状態において，ラウンドロビンにより公平に全ＶｏＱからパケットが読み出されるため，低負荷キューは高負荷キューの影響を全く受けることなくパケットを送出することが出来る。一方，高負荷なトラヒックが掛かっているＶｏＱは，キュー長が伸びるため，遅延時間が他のＶｏＱに比べ大きくなる。そのため，高負荷キューのバッファＶｏＱ１がオーバーフローを起こし，図に示すように，セグメント３２Ａが廃棄される可能性がある。
【０００８】
アービトレーションでＶｏＱにＧｒａｎｔ（送出権）を与える一つのパラメーターとしてパケットの送出間隔を用いる方式でも，同じような現象がおこる。高負荷が掛かっているＶｏＱではキュー長が長くなる。キュー長が長くなると，パケットのＶｏＱでの待ち時間が長くなる。そのため，待ち時間の長いパケットを有するＶｏＱから優先的にパケットを送出する方式を採用すると，パケットは高負荷キューから優先的に送出されることになる。しかし，すべてのパケットについて待ち時間を管理するとなると，大量のカウンタが必要となり，実現は非常に困難にである。このため，多くの場合パケットがキューの先頭に到着した時から待ち時間をカウントする方式を採用している。これは，一アービトレーション周期毎にパケットが送出されなかったらその都度カウンターを１づつ増やし，パケットが送出されたらそのＶｏＱのカウンターを０に戻すことである。この方式だと，高負荷が掛かっているＶｏＱでも，一度パケットを送出してしまうと，カウンターが０に戻されるため，他の低負荷キューと同じ条件になる。このため，結局は不均衡負荷下において高負荷キューの遅延時間が大きくなり，バッファのオーバーフロー，パケットの廃棄を引き起こす可能性がある。
【０００９】
キュー長を見てアービトレーションを行なう方法では，同じような不均衡負荷が掛かった時には高負荷キューから効率良くパケットが読み出される。そのため，高負荷キューの遅延時間は小さくなり，バッファのオーバーフローも防ぐことが出来る。しかし，３１−４の低負荷キューに送出権が巡ってこなくなる現象（この現象はｓｔａｒｖａｔｉｏｎと呼ばれる）が発生するなどの問題がある。
【００１０】
したがって，従来のアービタでは遅延に厳しい音声パケットや，廃棄に厳しい重要なデータパケットなどの品質劣化が起こる可能性がある。
【００１１】
【課題を解決するための手段】
本発明のパケット処理装置は，ＶｏＱのパケット送出間隔と，キュー長とに基づき，クロスバスイッチに対するパケットの送出権を何れのＶｏＱに与えるかを決定する。
【００１２】
本発明のパケット処理装置の一実施例においては，入力回線毎に，パケッ各ＶｏＱに貯まっているセグメントの量を管理するキュー情報管理部と，各ＶｏＱのセグメントの送出間隔を管理する送出間隔管理部と，それら二つの情報から各ＶｏＱにレベルを割り振るアービタリクエスト（ＡＲＢ−ＲＥＱ）生成部とを設ける。アービタは，各ＶｏＱに割り振られたレベルに基づき，何れのＶｏＱにＧｒａｎｔを与えるかを決定する。また，一実施例においては，セグメントの送出間隔を，ＶｏＱのキュー長に優先させて，ＶｏＱのレベルを設定する手段，または，これとは逆に，ＶｏＱのキュー長を，セグメントの送出間隔に優先させて，ＶｏＱのレベルを設定する手段を設ける。
【００１３】
【発明の実施の形態】
図１は，本発明のパケット処理装置の一実施例を示す図である。本実施例のパケット処理装置では，ＶｏＱ１１とクロスバスイッチ１９とを結ぶ主信号線と異なる別線１８により，ＡＲＢ−ＲＥＱ情報をアービタに送る。
【００１４】
入力回線処理部１６−ｉ（ｉ＝１，・・・，ｎ）は，入力回線１０３−ｉから入力されたパケットのパケットヘッダーを解析することにより，そのパケットの宛先情報を抽出する。入力バッファ１０−ｉは，出力方路対応にｎ個のＶｏＱキュー１１−ｉを有している。入力回線処理部１６は，ＶｏＱ制御部１２に，その抽出した宛先情報を渡す。ＶｏＱ制御部１２は，そのパケットを，宛先情報に応じた出力方路に対応するＶｏＱに書き込むように，入力バッファ１０に指示を与える。このようにして，パケットは指示されたＶｏＱ１１に書き込まれる。
【００１５】
ＶｏＱ制御部１２は，ＶｏＱ１１毎に，滞留しているセグメントの量と，送出間隔との情報を管理する。ＡＲＢ−ＲＥＱ生成部１３は，それらの情報に基づき，各ＶｏＱにレベルを割り振る。各ＶｏＱのレベルは，信号線１８により，アービトレーション周期でアービタ１４に集められる。アービタ１４は，その情報から，どのＶｏＱにＧｒａｎｔを与えるかを決定する。Ｇｒａｎｔ情報は，信号線１５により，ＡＲＢ−ＡＣＫとして，各ＶｏＱ制御部１２−ｉ（ｉ＝１，・・・，ｎ）に伝えられ，同時にアービタは，そのアービトレーション結果をクロスバスイッチ１９内の経路構成に反映する。ＶｏＱ制御部１２は，そのＡＲＢ−ＡＣＫ情報に基づき，入力バッファ１０に対して，どのＶｏＱからセグメントを送出するかを伝える。入力バッファ１０より送出されたセグメントは，クロスバスイッチ１９によりスイッチングされ，出力回線処理部１７に送信される。出力回線処理部１７は，クロスバスイッチ１９から受信したセグメントからパケットを再構成し，それを出力回線１０４に送出する。
【００１６】
図２を参照して，ＶｏＱ制御部１２とＡＲＢ−ＲＥＱ生成部１３の構成を詳述する。入力回線処理部１６内のパケットヘッダー解析部４０１で処理されたパケットヘッダーは，ＶｏＱ制御部１２のライトアドレス（ＷＡ）生成部４０３に送られる。ＷＡ生成部４０３では入力されたパケットをどのＶｏＱ１１に書きこむかを管理する。ＷＡ生成部４０３は，ＷＡ制御信号線４１２により，メモリアドレス情報を入力バッファ１０に送信し，パケットを，その宛先に対応したＶｏＱ１１にパケットを書きこむよう指示を与える。同時に，ＷＡ生成部４０３は，キュー長管理部４０５と送出間隔管理部４０６に対しても，入力バッファ１０に書き込まれたパケットの情報を伝える。キュー長管理部４０５は，入力バッファ１０内の複数のＶｏＱ対応に，キュー長カウンタ４１０を有している。図２に示す例では，入力バッファ１０に４つのＶｏＱがある場合を示しているため，キュー長管理部は，４つのキュー長カウンタ４１０を有している。キュー長管理部４０５は，現在のキュー長に対して，今回入ってきたパケットのセグメント長分だけキュー長カウンター４１０の数値をインクリメントする。送出間隔管理部４０６は，入力バッファ１０内の複数のＶｏＱ対応に，送出間隔カウンター４１１を有している。送出間隔管理部４０６は，パケットが入力されたＶｏＱに，パケットが滞留している場合には何もしない。そうでない場合には，送出間隔管理部４０６は，一アービトレーション周期毎に数値を１ずつインクリメントするように，そのＶｏＱに対応する送出間隔カウンター４１１に指示を与え，送出間隔時間を管理する。言い換えれば，送出間隔カウンター４１１が示すデータは，どの位の時間，対応するＶｏＱからパケットが送出されていないかを示すものである。
【００１７】
リードアドレス（ＲＡ）生成部４０４は，信号線１５により送信されてきたＡＲＢ−ＡＣＫ情報に基づき，信号線４１３により，入力バッファに対して，どのＶｏＱからセルを送出するかを伝える。同時に，リードアドレス（ＲＡ）生成部４０４は，キュー長管理部４０５と送出間隔管理部４０６にも入力バッファ１０から読み出されるパケットの情報を伝える。キュー長管理部４０５は，クロスバスイッチ１９にパケットを送出したＶｏＱに対応するキュー長カウンター４１０をディクリメントする。また，送出間隔管理部４０６は，そのＶｏＱに対応する送出間隔カウンター４１１の値を０に戻す。
【００１８】
キュー長管理部４０５と送出間隔管理部４０６とにおける情報は，信号線４１４により，ＡＲＢ−ＲＥＱ生成部１３に送信される。ＡＲＢ−ＲＥＱ生成部１３は，入力バッファ１０内の各キュー対応に，ＡＲＢ−ＲＥＱ生成パート４０９を有する。各ＡＲＢ−ＲＥＱ生成パート４０９−１〜−４は，ＡＲＢ−ＲＥＱ生成部１３から受信した情報に基づき，対応するキューのレベル付けを行う。レベル付けを行う際は，レベル付与マトリクス４１６を参照する。レベル付与マトリクス４１６はマイコン２０により，そのノードに入力されるトラヒック特性に合わせたアービタにユーザがチューニングすることが可能である。これらのレベルは，信号線１８により，アービタ１４に送信される。
【００１９】
図３は，レベル付与マトリクス４１６の一実施例を示す図である。レベル付与マトリクスは，横軸にセグメント送出間隔７１，縦軸にＶｏＱに滞留しているセグメント数７２をとっており，送出間隔時間が長くなるにつれ，そして，ＶｏＱに滞留しているセグメント数が増えるにつれＶｏＱに付与されるレベルが大きくなるように作られている。レベル付与マトリクスは，キュー長(ＶｏＱに貯まっているセグメント量)とセグメント送出間隔の二つのファクターから算出されるが，ＶｏＱに入ってきたパケットが要求遅延時間以内に送出されるようにレベル付けを行うことも可能である。要求遅延時間とは，そのスイッチ内で許される最大の遅延時間のことである。
【００２０】
高負荷の掛かっているＶｏＱは他の低負荷のＶｏＱに比べ，パケットの遅延時間が大きくなる傾向にある。そのため，キューにたまっているセグメント数が多いＶｏＱには大きなレベルを付け，優先的にＧｒａｎｔが与えられるようにする。良い刈れば，このレベルは，Ｇｒａｎｔ取得に関する優先度情報を表すものである。また，低負荷キューからも要求遅延時間内にはパケットを送出できるようにするため，送出間隔が長くなると，ＶｏＱレベルが増加するようにしている。
【００２１】
ＶｏＱレベルＬは，例えば，次式により求める。
【００２２】
【数１】
0004186421.tif 000002
【００２３】
ここで，Ｍ：タイムアウト，ｔ：送出間隔，ｓ：現在のセグメント数，ａ：送出間隔係数，ｂ：キュー長係数である。
【００２４】
（Ｍ−ａ・ｔ）／ｂ・ｓ≦１となった時にＶｏＱレベルは最大値を取る。ＶｏＱレベルが最大値になった時，そのＶｏＱは，送出権を得る可能性が高い状態になったことを意味する。
【００２５】
Ｍは，スイッチの要求遅延時間と一アービトレーション時間から決まる値であり，レベル付与マトリクスのセグメント送出間隔７１の最大値と，ＶｏＱに滞留するセグメント数７２の最大値とを決める値となる。スイッチに求められている要求遅延時間をＴ，一アービトレーション時間をｔa，スイッチの入力ポート数をｎとすると，Ｍは次式により求めることが出来る。
【００２６】
【数２】
0004186421.tif 000003
【００２７】
要求遅延時間Ｔの間に何回アービトレーションが出来るかはＴ／ｔaで求めることが出来る。全ＶｏＱのレベルが同時に最大値になっていると仮定すると，送出権が与えられるまでに，最大ｎアービトレーション時間待たされるＶｏＱが現れる。したがって，パケットがそのＶｏＱに滞在する時間がＴ／ｔａ−ｎになる時に，ＶｏＱレベルが最大値をとるようにそのレベルを設定すると，一つしかセグメントが存在しないＶｏＱであっても，要求遅延時間以内にセグメントを送出することが出来るようになる。図３に示したレベル付与マトリクスからもわかるように，一つしかセグメントがないＶｏＱにおいても，送出間隔が大きくなるにつれてＶｏＱレベルは上がっていくので，必ずしも最大遅延量の要求時間までセグメントが送出されないことにはならない。
【００２８】
図３に示したレベル付与マトリクスは，タイムアウトＭ＝２０，ａ＝１，ｂ＝１に設定したものである。送出間隔係数ａ，キュー長係数ｂを変化させることで，送出間隔重視のアービトレーションやキュー長重視のアービトレーションに変えることが出来る。例えば，音声など遅延に厳しいデータを多く処理しなければならない場所に，本実施例のパケット処理装置を使用する時には，低負荷キューに遅延に厳しいデータがキューイングされた時，低負荷キューの遅延時間を出来る限り抑える設定に変更する。具体的には，送出間隔係数ａの値を１よりも大きな値にすることで，セグメントがあまり貯まっていないＶｏＱ付与されるレベルについても，短い送出間隔で大きなレベルを取るように設定することが出来る。図４は送出間隔係数ａの値を２に設定した時のレベル付与マトリクスの状態を表している。図３のレベル付与マトリクスと比較すると，ＶｏＱレベルは，セグメントの送出間隔が小さい時から大きな値となっている。このため，低負荷キューからも短い遅延時間でセグメントを送出することが出来る。
【００２９】
逆に，遅延時間よりも，パケットの廃棄に厳しいデータを多く処理しなければならない場合に，本実施例のパケット処理装置を使用する場合，低負荷キューの遅延時間は若干延びるが，高負荷がかかり出したキューから優先的にセグメントを送出してバッファのオーバーフローを防止するようにする方が良い。このためには，キュー長係数ｂの値を１よりも大きな値にすることで，キュー長の変化に敏感に反応するＶｏＱレベル付けを行えば良い。高負荷が掛かり出すとキュー長は長くなりだす。図５はキュー長係数を２に設定した時のレベル付与マトリクスの状態を表している。図３のレベル付与マトリクスと比較すると，ＶｏＱにあるセグメント数が少ない所でも大きなレベルを取っている。そのため，キュー長が長くなりだしたＶｏＱに対して，早めに大きなレベルを与え送出権を与えやすくすることでバッファのオーバーフローを事前に防ぐことが出来る。また，全く送出間隔を考えず，キュー長のみを見てアービトレーションを行いたい時には，送出間隔係数ａの値を０に設定することで対応可能となる。
【００３０】
数１により算出されるＶｏＱレベルは，すべて四捨五入され整数としてレベル付与マトリクスに表されている。また，Ｍ−ａ・ｔ＜ｂ・ｓやＭ≦ａ・ｔとなった時は０＜Ｌ≦１５以外の値を取る。しかし，こういう状況になる時には，すでにＶｏＱレベルが最大のレベル１５を超えていることを表しているので，この数式により０＜Ｌ≦１５以外の数値が与えられたＶｏＱに対しては，レベル１５を与える。
【００３１】
各ＡＲＢ―ＲＥＱ生成部からＶｏＱ毎のレベル情報がアービタ１４に集められる。
【００３２】
図６は，アービタ１４の一実施例を示す図である。全ＶｏＱレベル収集部１２１において，全ＶｏＱのレベル情報が集められる。
【００３３】
図７は，ある時点における，Ｒｅｑｕｅｓｔのあった全ＶｏＱからのの状態を表している。マトリクスの列は出力回線番号１３１を表しており，行は入力回線番号１３２を表している。例えば，入力回線番号が１で出力回線番号が１の欄には，図１の入力バッファ１０−１における，出力回線処理部１７−１に送信されるパケットがキューイングされるＶｏＱ１１−１−１に付与されたレベルが格納される。また，マトリクス中の○１３３はＶｏＱレベルが同じであり，空白部は“○”よりも小さなレベルが付けられているとする。
【００３４】
このような状態で，ＶｏＱに最も効率良くＧｒａｎｔを与えるには，入力回線番号２で出力回線番号４のＶｏＱと，入力回線番号４で出力回線番号２のＶｏＱにＧｒａｎｔを与える必要がある。このアービトレーションによれば，少なくとも２つのＶｏＱに送出権を与えることが出来る。一方，マトリクスの入力回線番号２で出力回線番号２のＶｏＱに送出権を与えてしまうと，入力回線番号２で出力回線番号４のＶｏＱと，入力回線番号４で出力回線番号２のＶｏＱには送出権を与えることが出来ない。したがって，この回のアービトレーションでは最上位レベルのＶｏＱに１つしかＧｒａｎｔを与えることができなくなってしまう。効率良くＧｒａｎｔをＶｏＱに与えるために，入力別勝ち抜き処理部１２２−１は，同一入力回線番号に属するＶｏＱごとに，図８に示す勝ち抜き戦５１を行ない，その中でＶｏＱレベルの一番高い (その入力回線番号の中では一番送出要請が高い) ＶｏＱを選択する。
【００３５】
図８において，数字は，同一の入力回線番号に属するＶｏＱのレベルを表している。図８は，一番レベルが高いＶｏＱが勝ち抜く様子を示している。図８では同じレベルのＶｏＱが２つ存在しているが，こういう時はどちらか一方を勝ち残らせるのではなく同一レベルのＶｏＱはすべて勝ち残らせるようにする。これは，図７を用いて説明したように，効率良くＧｒａｎｔを与えるためである。
【００３６】
同様にして，出力別勝ち抜き処理部１２２−２は，同一出力回線番号に属するＶｏＱ毎に，その中でＶｏＱレベルの一番高い（その入力回線番号の中では一番送出要請が高い）ＶｏＱを選択する。
【００３７】
勝ち抜き戦の結果，入力方向と出力方向において図９の勝敗組み合わせ１４１が考えられる。レベル再評価部１２４は，各ＶｏＱのレベル情報を，図１０に示すレベル再評価表６１に則り，０〜３の４レベルに縮退させ，再評価を行う。
【００３８】
０〜３の４レベルに再評価されたＶｏＱは，同一レベルＶｏＱ選択部１２５において，レベル３のＶｏＱから順にピックアップされる。ここでピックアップされたＶｏＱはＧｒａｎｔ付与部１２６でラウンドロビン選択によってＧｒａｎｔが与えられる。
【００３９】
Ｇｒａｎｔの与えられたＶｏＱと同一入力回線番号又は同一出力回線番号に存在するＶｏＱからは，このアービトレーション周期において，これ以上Ｇｒａｎｔを与えることは出来ないので，送出権剥奪部１２７において，送出権を奪う。
【００４０】
送出権を剥奪されたＶｏＱの情報は，信号線１２３により，全ＶｏＱレベル収集部１２１に通知される。その情報から，まだ送出権の剥奪されていないＶｏＱの間だけで再度勝ち抜き戦を行ないレベルの再評価をする。その後，先程の説明と同様に同一レベルＶｏＱ選択部１２５によってレベル３のＶｏＱがピックアップされ，Ｇｒａｎｔ付与部によって，ラウンドロビン選択でＧｒａｎｔを与える。この反復作業を繰り返すことにより，最適の入力回線と出力回線との組み合わせを作り出すことが出来る。
【００４１】
上記の工程でＧｒａｎｔを得たＶｏＱと同一入力回線番号又は同一出力回線番号に存在するＶｏＱからはこの回のアービトレーションではこれ以上Ｇｒａｎｔを与えることは出来ないので，送出権剥奪部１２７は，そのＶｏＱから送出権を奪う。送出権を剥奪されたＶｏＱの情報は，信号線１２９により，同一レベル選択部１２５に通知される。同一レベルＶｏＱ選択部１２５は，まだ送出権のあるレベル２のＶｏＱをピックアップし，Ｇｒａｎｔ付与部によって，ラウンドロビン選択でＧｒａｎｔを与える。
【００４２】
その後，レベル２のＶｏＱにＧｒａｎｔを与えたのと同じ工程により，まだ送出権のあるレベル１のＶｏＱにＧｒａｎｔが与えられる。その次に送出権があるレベル０のＶｏＱにもＧｒａｎｔが与えられる。
【００４３】
Ｇｒａｎｔ情報はＡＲＢ−ＡＣＫ生成部１２８によりＡＲＢ−ＡＣＫ情報に変えられ，信号線１８により入力バッファ管理部１２のＲＡ生成部４０４に送られる。ＲＡ生成部４０４は，ＡＲＢ−ＡＣＫ情報に基づき，セグメントを送出可能なＶｏＱ１１に対して，信号線４１３により，セグメントを送出するよう指示を送る。それと同時に，キュー長管理部４０５と送出間隔管理部４０６にも，どのＶｏＱからセグメントを送出すべきかを通知する。キュー長管理部４０５ではＧｒａｎｔの出たＶｏＱのセグメント数を管理しているキュー長カウンタ４１０の値を１減らす。送出間隔管理部４０６ではＧｒａｎｔの出たＶｏＱの送出間隔を管理している送出間隔カウンタ４１１の値を０に戻す。
【００４４】
図１１は，上述したアービタ１４における一連の処理を，フローチャートで表したものである。各入力バッファから集められたＶｏＱレベルは入力別，出力別で勝ち抜き戦が行なわれ８１，各ＶｏＱの送出要請の強い順にレベル３〜０までのレベルで再評価され直す８２−１〜−４。  まず，レベル３のＶｏＱを同一レベル選択部１２５でピックアップ８３し，それらの物にラウンドロビンでＧｒａｎｔを与える８３−１（このラウンドロビンは公平さを保たせるため，ポインターを持った２ＤＲＲ（高城衛  他，“パケットの優先度を考慮した出力ポート別入力キュー付きパケットスイッチの改良”  信学技報ＳＳＥ９７−１３）等を採用すれば良い）。Ｇｒａｎｔの与えられたＶｏＱと同じ入力，出力にあるＶｏＱからは同じアービトレーション周期に同時にセグメントを送出することは出来ないので，ＶｏＱの送出権を剥奪８３−２する。
【００４５】
本実施例では，アービタの性能を高めるため，次にレベル２の物にＧｒａｎｔを与えるのではなく，Ｇｒａｎｔの出ていないＶｏＱのレベルを再評価前の０〜１５までのレベルに一旦戻し，もう一度勝ち抜き戦を行ない，レベルの再評価を行なう８４。この行程を繰り返すほど，アービトレーションで選ばれるキューの組み合わせは最適な物に近づいていく。
【００４６】
再再評価の結果，レベル３の付いたＶｏＱにＧｒａｎｔを与え８３−１，Ｇｒａｎｔを得たＶｏＱと同じ入出力にあるＶｏＱの送出権を削除８３−２する。
【００４７】
続いて，レベル２のＶｏＱ８５にＧｒａｎｔを与え８５−１，Ｇｒａｎｔを得たＶｏＱと同じ入出力にあるＶｏＱＶｏＱの送出権を削除８５−２する。
【００４８】
続いて，レベル１のＶｏＱ８６にＧｒａｎｔを与え８６−１，Ｇｒａｎｔを得たＶｏＱと同じ入出力にあるＶｏＱの送出権を削除８６−２する。
【００４９】
最後に，レベル０のＶｏＱにもＧｒａｎｔを与える８７。これで，全入力，出力の組み合わせにＧｒａｎｔを与え終り，アービトレーションの一工程は終了する。
【００５０】
図１２は，図１１のフローチャートに従い行った，４×４スイッチのアービトレーションを示す図である。マトリクス２１は，アービタ１４の全ＶｏＱレベル収集部１２１に集められた，ＡＲＢ−ＲＥＱ生成部１３でレベル付けされた全ＶｏＱのＶｏＱレベルを視覚的に分かりやすく表したものである。マトリクスの行は入力回線番号を表しており，列は出力回線番号を表している。例えば，マトリクス２１において，入力回線番号３で，出力回線番号１のＶｏＱレベルは１０であることがこのマトリクスから分かる。
【００５１】
入力回線毎，及び出力回線毎に上述の勝ち抜き戦が行われ，その後，図１０を用いて説明した再評価が行われる。マトリクス２２は，その結果を示す。
【００５２】
マトリクス２３は，マトリクス２２の中からレベル３のＶｏＱを選び出し，それにＧｒａｎｔを与えたことを示している。Ｇｒａｎｔが与えられたＶｏＱと同じ入力回線番号又は出力回線番号に属するＶｏＱに対しては，同一アービトレーション周期において，Ｇｒａｎｔを与えることが出来ないので，それらから送出権を剥奪する。マトリクス２４中の“×”は，送出権を剥奪したことを示している。
【００５３】
次に，まだＧｒａｎｔの出ていないＶｏＱのレベルを，ＡＲＢ−ＲＥＱ生成部で作られたＶｏＱレベルに変換し直す。マトリクス２５は，その変換後のマトリクスを示している。再び勝ち抜き戦，レベルの再評価を行なう。マトリクス２６は，その結果を示している。マトリクス２６において，レベル３のＶｏＱに対してＧｒａｎｔが与えられる。ここでは，入力回線番号２で出力回線番号３のＶｏＱに送出権が与えられる。マトリクス２７は，それに送出権が与えられたことを示している。Ｇｒａｎｔが与えられたＶｏＱと同じ入力回線番号，出力回線番号に属するＶｏＱから，送出権を剥奪する。マトリクス２８は，それらから送出権を剥奪したことを示している。次にレベル２のＶｏＱに送出権を与える。マトリクス２９は，それに送出権を与えたことを示している。図６で説明した例では，上記工程により，すべての入出力の組み合わせにＧｒａｎｔを与えたので一連のアービトレーション処理が終了する。これ以外の例では，レベル１及びレベル０のＶｏＱにＧｒａｎｔを与える処理が必要になる場合もある。この場合に，図１１に示すフローに従い，Ｇｒａｎｔを与える処理が行われる。
【００５４】
図１３は，本発明のパケット処理装置の他の実施例を示す。本実施例では，別線ではなくセグメントのヘッダ部分にＡＲＢ−ＲＥＱ情報を付与しインチャンネルでこれをアービタに送る。
【００５５】
図１に示したパケット処理装置との違いは，信号線１１８により，一旦，ＡＲＢ−ＲＥＱ情報をＡＲＢ−ＲＥＱ付与部１１１に送り，セグメント１１３のヘッダ部分にＡＲＢ−ＲＥＱ情報１１４を付与してアービタ１４に送る方式を採用している点，およびアービタ１４がクロスバスイッチ１９内に内蔵されている点である。図１の実施例と同様，ＡＲＢ−ＲＥＱ情報はアービタ１４に集められ，ＡＲＢ−ＲＥＱ情報からどのＶｏＱにＧｒａｎｔを与えるかを決定する。その後，Ｇｒａｎｔ情報はＡＲＢ−ＡＣＫとして，信号線１２９により，アービタからスイッチング済みセグメント１１５のヘッダー１１６に付与され。Ｇｒａｎｔ情報は，ＡＲＢ−ＡＣＫ回収部１１２において集められて，信号線１１９により，ＶｏＱ制御部１２に送られる。ＶｏＱ制御部１２は，どのＶｏＱからセグメントを送出するかを１０の入力バッファに指示する。
【００５６】
この方式の利点は，アービタ用に信号線を用意する必要がないため，信号線数を削減することができ，ハードウエアの作りをシンプルに出来る点である。
【００５７】
図１４と図１５は，本発明のキュー情報管理アービタと，キューのパケットの有無のみを見てラウンドロビンを行うアービトレーション方式(若山浩ニ  他，“大容量パケットスイッチ構成法に関する一検討”信学技報ＩＮ９８−１０２参照)とを同じ条件の下で，シミュレーションを行なった時の結果である。シミュレーションの条件は入力回線数４出力回線数４の４×４の入出力バッファ型クロスバスイッチを想定している。
【００５８】
図１４はユニフォームトラヒックをかけた時の，従来方式アービタと本願において提案される方式のアービタとの平均遅延時間の分布グラフである。縦軸９２にはＤｅｌａｙ（Ｓｅｇｍｅｎｔ），横軸９１にはＬｏａｄ  Ｒａｔｅ（％）をとっている。回線負荷が高くなるにつれ従来方式アービタの遅延量は大きくなるのに対し，提案方式アービタでは遅延時間の増加を抑えることが出来ている。
【００５９】
ユニフォームトラヒックであっても，回線負荷が高くなると，多少トラヒック状態に偏りが生じてしまい，そのためキュー長，パケット送出間隔を見ている提案方式アービタの方がパケットの有無のみを見ている従来方式アービタよりも遅延時間を抑えられる。
【００６０】
図１５は４入力回線のうち，一つの入力回線に他よりも負荷の高いトラヒックをかけた時の高負荷キューと，低負荷キューの遅延分布をシミュレーションした時の結果である。縦軸１０２にＰｒｏｂａｂｉｌｉｔｙ（Ｄｅｌａｙ  ｔｉｍｅ＞ｄ），横軸１０１にＤｅｌａｙ（ｓｅｇｍｅｎｔ）を取っている。
【００６１】
菱形のプロットが高負荷のトラヒックが掛かっている入力ポートの遅延分布で，三角のプロットが低負荷のトラヒックが掛かっている入力ポートの遅延分布をあらわしている。
【００６２】
高負荷キューの遅延分布を見ると，提案方式アービタは従来方式アービタに比べ，遅延時間をかなり抑えることが出来ていることが分かる。高負荷の掛かっているＶｏＱのキュー長は他のＶｏＱに比べ大きくなっている。キュー長を見てアービトレーションを行なう提案方式では，高負荷キューに多くＧｒａｎｔを出すことが出来るため，高負荷キューの遅延時間を大きく抑えることが出来る。
【００６３】
一方その影響で低負荷キューにインパクトを与えることになるが，本発明では，送出間隔も見ているため，低負荷キューに与える影響も抑えることが出来る。
【００６４】
【発明の効果】
キュ−長を管理しているため，不均衡負荷が掛かった時でも効率良いスイッチングを行なうことを可能とし，高負荷キューの遅延時間を効果的に抑え，かつ低負荷キューにもその影響をほとんど与えることなくパケットを送出することを可能とする。
低負荷キューでもユーザが設定したタイムアウト時間になるとＶｏＱ送出要請リクエストは最大レベルを取ることになる。このため，次処理の勝ち抜き戦で，入力方向，出力方向でともに勝ち残りやすくなり，レベルの再評価を行なった際にも最高レベルになる可能性が高い。よって，そのＶｏＱはセグメントの送出権を獲得しやすくなる。従って低負荷キューのｓｔａｒｖａｔｉｏｎを防ぐことが出来る。
【００６５】
本発明を用いることで，均衡負荷にも不均衡負荷にも対応可能なアービタを提供することが出来る。
【図面の簡単な説明】
【図１】本発明のパケット処理装置の一実施例を説明するためのブロック図である。
【図２】図１のＶｏＱ制御部１２とＡＲＢ−ＲＥＱ生成部１３の構成例を示すブロック図である。
【図３】図１のＡＲＢ−ＲＥＱ生成部でＶｏＱにレベルを割り振るレベル付与マトリクスの一例である。
【図４】図１のＡＲＢ−ＲＥＱ生成部でＶｏＱにレベルを割り振るレベル付与マトリクスの一例（送出間隔重視）である。
【図５】図１のＡＲＢ−ＲＥＱ生成部でＶｏＱにレベルを割り振るレベル付与マトリクスの一例（キュー長重視）である。
【図６】図１のアービタ１４の一構成例を示すブロック図である。
【図７】本発明におけるＶｏＱレベルマトリクスの概念を説明するための図である。
【図８】本発明における勝ち抜き戦の概念を説明するための図である。
【図９】本発明の入力別，出力別勝ち抜き戦の勝敗全組み合わせを表す図である。
【図１０】本発明のレベル再評価表の概念を説明するための図である。
【図１１】図１のアービタ１４が実行するアルゴリズムを説明するためのフローチャートである。
【図１２】図１のアービタ１４の処理を説明するための図である。
【図１３】本発明のパケット処理装置の他の実施例の全体構成を表すブロック図である。
【図１４】本発明によるアービタと，従来方式アービタの９９％遅延を示すグラフである。
【図１５】不均衡負荷を加えた場合の，本発明によるアービタと従来方式アービタのキュー長分布を示すグラフである。
【図１６】高負荷キューのオーバーフロー，低負荷キューのｓｔａｒｖａｔｉｏｎの概念を説明するための図である。
【符号の説明】
１０・・・入力バッファ，１１・・・ＶｏＱ，１２・・・ＶｏＱ制御部，１３・・・ＡＲＢ−ＲＥＱ生成部，１４・・・アービタ，１５・・・ＡＲＢ−ＡＣＫ信号線，１９・・・クロスバスイッチ。
【図１】
0004186421.tif 000004
【図２】
0004186421.tif 000005
【図３】
0004186421.tif 000006
【図４】
0004186421.tif 000007
【図５】
0004186421.tif 000008
【図６】
0004186421.tif 000009
【図７】
0004186421.tif 000010
【図８】
0004186421.tif 000011
【図９】
0004186421.tif 000012
【図１０】
0004186421.tif 000013
【図１１】
0004186421.tif 000014
【図１２】
0004186421.tif 000015
【図１３】
0004186421.tif 000016
【図１４】
0004186421.tif 000017
【図１５】
0004186421.tif 000018
【図１６】
0004186421.tif 000019