(57)【特許請求の範囲】
【請求項１】
インターネットプロトコルに従ったネートワーク内に設けられるノードにおけるパケットキューの管理に使用する平均キュー長演算処理装置管理であって、
一定周期毎に演算起動信号を出力する更新タイミング生成手段と、該更新タイミング生成手段から演算起動信号が入力されたとき、１未満の正の数を前周期の平均キュー長に乗じてアイドル状態のときの平均キュー長を演算する平均キュー演算手段とを備えたことを特徴とする平均キュー長演算処理装置。
【請求項２】
前記演算起動信号の周期及び前記正の数を、パケットキューの出力レートに応じて変化させることを特徴とする請求項１に記載の平均キュー長演算処理装置。
【請求項３】
複数のパケットキューに対して、前記更新タイミング生成手段及び平均キュー演算手段を巡回的に割り当て、該更新タイミング生成手段及び平均キュー演算手段を共用して複数の各パケットキューの各平均キュー長を算出することを特徴とする請求項１又は２に記載の平均キュー長演算処理装置。
【請求項４】
前記平均キュー演算手段は、前記正の数を前周期の平均キュー長に乗じた値とパケットキュー長に漸増時定数を乗じた値とを加算した値と等価な値を算出して、アイドル状態及び非アイドル状態のパケットキューの平均キュー長を算出することを特徴とする請求項１、２又は３に記載の平均キュー長演算処理装置。
【請求項５】
前記平均キュー演算手段は、今周期のパケットキュー長から前周期の平均キュー長を減じた値のビット値を所定のビット数右にシフトした値に、前周期の平均キュー長の値を加えて平均キュー長を算出する手段を備えたことを特徴とする請求項４に記載の平均キュー長演算処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、平均キュー長演算処理装置に関し、特に、インターネットプロトコル（ＩＰ）ネットワークノード等に使用される能動的キュー管理アルゴリズムであるＲＥＤ（Random Early Detection）アルゴリズムにおけるに平均キュー長演算処理をハードウェアにより実現する平均キュー長演算処理装置に関する。
【０００２】
近年、インターネット通信の利用者の急激な増加に伴い、インターネット通信網は定常的な輻輳状態にある。今後更なるインターネット通信の普及・発展には、ＱｏＳ（Quality Of Service）つまりサービス品質の維持・確保の観点から、輻輳を極力回避する手段を講ずることが必須であり、重要な技術的主題となっている。
【０００３】
【従来の技術】
現在、輻輳回避手段として最も期待されるパケットキュー管理アルゴリズムにＲＥＤ（Random Early Detection）アルゴリズムがある。ＲＥＤアルゴリズムは、平均キュー長を基に輻輳の前兆を感知し、輻輳に陥る前にパケットを能動的かつパケットキュー長に応じて所定の確率で廃棄し、輻輳の回避を図るアルゴリズムである。
【０００４】
ＲＥＤアルゴリズムは、伝統的なパケットキュー管理アルゴリズムであるテールドロップアルゴリズム（Ｔａｉｌ  Ｄｒｏｐ：パケットキューが溢れるまでパケットを受け入れ、パケットキューが溢れると新規到着パケットを廃棄するアルゴリズム）の問題点であるグローバル同期問題（ＴＣＰプロトコル等において一斉にパケット廃棄があるとネットワークが輻輳中であると判断して送信レートを一斉に下げるフィードバック制御に起因して、広い範囲で輻輳と非輻輳とが同期して発生し、フローのグローバルな集中と疎空の繰返しによるリンク利用率の低下をもたらす問題）、及びロックアウト現象（Ｌｏｃｋ−Ｏｕｔ：数個のコネクションがキュースペースを独占し、他のコネクションのパケットがキューに入力されるのを妨げる現象）を回避することが可能であり、今後、インターネットプロトコル（ＩＰ）ネットワークノードにおいて広く利用が拡大されるものと予想されている。
【０００５】
このＲＥＤアルゴリズムにおける平均キュー長演算において、エンキュー要求パケットが発生したとき、それまでパケットキューがアイドル状態であったとすると、平均キュー長ａｖｇは以下の式１により算出される。
ａｖｇ←ａｖｇ・（１−Ｗｑ）(time-qtime)/s  …（式１）
【０００６】
上記式１は平均キュー長ａｖｇの減衰式を表し、ここで、Ｗｑは０＜Ｗｑ＜１の重み係数で、平均キュー長ａｖｇを緩やかに変化させるローパスフィルタの時定数である。なお、ここで（１−Ｗｑ）を減衰時定数と称する。ｔｉｍｅはエンキュー要求パケットが発生した現在時刻、ｑｔｉｍｅはキューがアイドル状態へ遷移したときの時刻、ｓは最小パケットの転送時間である。
【０００７】
上記式１は、キューがアイドル状態の現時刻までの期間（ｔｉｍｅ−ｑｔｉｍｅ）に最小パケットが到着する個数（ｍ＝（ｔｉｍｅ−ｑｔｉｍｅ）／ｓ）に相当する回数（ｍ）だけ、平均キュー長ａｖｇを減衰させる演算を行うものである。従来、平均キュー長ａｖｇの演算は、エンキュー要求パケットが発生した時に上記式１による演算をソフトウェア処理によって行うのが一般的であった。
【０００８】
【発明が解決しようとする課題】
従来のソフトウェア処理によるＲＥＤアルゴリズムの実現手段でのスループットは、プロセッサの性能に依存するところが多く、低速ネットワークへの適用のみに留まっていた。しかしながら、近年のネートワーク高速化に対し、ソフトウェア処理による実現手段では処理速度に限度があり、高速化が困難であった。
【０００９】
本発明は、ネートワークの高速化に伴う処理速度向上に対応するため、ハードウェアによる回路構成によって平均キュー長演算処理を高速化すると共に、回路規模の増大を抑え、演算精度を向上し、小型化することができる平均キュー長演算処理装置を提供することを目的とする。
【００１０】
【課題を解決するための手段】
本発明の平均キュー長演算処理装置は、（１）インターネットプロトコルに従ったネートワーク内に設けられるノードにおけるパケットキューの管理に使用する平均キュー長演算処理装置管理であって、一定周期毎に演算起動信号を出力する更新タイミング生成手段と、該更新タイミング生成手段から演算起動信号が入力されたとき、１未満の正の数を前周期の平均キュー長に乗じてアイドル状態のときの平均キュー長を演算する平均キュー演算手段とを備えたことを特徴とする。
【００１１】
また、（２）前記演算起動信号の周期及び前記正の数を、パケットキューの出力レートに応じて変化させることを特徴とする。
また、（３）複数のパケットキューに対して、前記更新タイミング生成手段及び平均キュー演算手段を巡回的に割り当て、該更新タイミング生成手段及び平均キュー演算手段を共用して複数の各パケットキューの各平均キュー長を算出することを特徴とする。
【００１２】
また、（４）前記平均キュー演算手段は、前記正の数を前周期の平均キュー長に乗じた値とパケットキュー長に漸増時定数を乗じた値とを加算した値と等価な値を算出して、アイドル状態及び非アイドル状態のパケットキューの平均キュー長を算出することを特徴とする。
【００１３】
また、（５）前記平均キュー演算手段は、今周期のパケットキュー長から前周期の平均キュー長を減じた値のビット値を所定のビット数右にシフトした値に、前周期の平均キュー長の値を加えて平均キュー長を算出する手段を備えたことを特徴とする。
【００１４】
【発明の実施の形態】
【００１５】
図１に本発明の平均キュー長演算処理装置の構成を示す。同図に示すように、平均キュー長演算処理装置は、更新時刻記憶部１−１、評価タイミング生成部１−２、更新タイミング生成部１−３、平均キュー長演算部１−４、平均キュー長記憶部１−５、タイマ１−６を備える。
【００１６】
図１に示す平均キュー長演算処理装置の構成は、パケットキューがアイドル（空き）状態の期間において平均キュー長ａｖｇを周期的に演算して減衰させる処理回路の構成を示し、エンキュー要求パケットが到着した時に前述の式１による平均キュー長ａｖｇを演算するのではなく、最小パケット転送時間ｓ毎に下記の式２による平均キュー長ａｖｇを算出する処理回路の構成を示している。
ａｖｇ←ａｖｇ・（１−Ｗｑ）  …（式２）
【００１７】
なお、上記式２におけるＷｑは前述の式１における時定数Ｗｑと等価である。キューがアイドル状態に遷移した後、パケットが到来して再びキューがパケットに占有されるまでの期間の本発明による平均キュー長ａｖｇの算出処理動作を以下に説明する。
【００１８】
デキュー指示の発生によりキューがアイドル状態へ遷移すると、キューが空き状態であることを示すＥｍｐｔｙＦｌａｇ信号が更新時刻記憶部１−１へ送出される。更新時刻記憶部１−１は、ＥｍｐｔｙＦｌａｇ信号を受信した時点の、自走タイマであるタイマ１−６から得られる現在時刻ＴｉｍｅＮｏｗを、更新時刻として記憶する。
【００１９】
評価タイミング生成部１−２は、最小パケットの転送時間ｓ以下の一定周期で、更新タイミング生成部１−３に対してキューがアイドル状態へ遷移してからの経過時間の判定指示信号ＪｕｄｇｅＥｎを送出する。更新タイミング生成部１−３は、本発明の周期的演算処理を行うための根幹部であり、その詳細な機能ブロックを図２に示す。
【００２０】
図２に示すように、更新タイミング生成部１−３は、更新時刻記憶部１−１に保持されているキューがアイドル状態へ遷移した更新時刻（又は直前の更新時刻）ＴｉｍｅＯｌｄを読み出し、その更新時刻ＴｉｍｅＯｌｄ（ｂ）とタイマ１−６から得られる現在時刻ＴｉｍｅＮｏｗ（ａ）との差分（ａ−ｂ）から経過時間（ｃ）を減算部２−１により算出する。
【００２１】
次に比較部２−２により経過時間（ｃ）と所定の更新時間ＲｅｎｅｗＴｉｍｅ（ｄ）とを比較する。更新時間ＲｅｎｅｗＴｉｍｅ（ｄ）は最小パケット転送時間ｓである。経過時間（ｃ）が更新時間ＲｅｎｅｗＴｉｍｅ（ｄ）以上である場合には、更新時間経過を示す信号（ｅ）を論理積部２−３へ出力する。
【００２２】
論理積部２−３は、評価タイミング生成部１−２からの判定指示信号ＪｕｄｇｅＥｎ（ｆ）と更新時間経過を示す信号（ｅ）との論理積（ｅ・ｆ）の出力信号を、演算起動信号ＣａｌｃＥｎとして平均キュー長演算部１−４へ送出すると共に、更新起動信号ＲｅｎｅｗＥｎとして更新時刻記憶部１−１へを送出する。更新時刻記憶部１−１は、更新起動信号ＲｅｎｅｗＥｎを受信すると、現在の保持しているキューがアイドル状態へ遷移した更新時刻（又は直前の更新時刻）ＴｉｍｅＯｌｄ時刻を現在時刻ＴｉｍｅＮｏｗに更新する。
【００２３】
図１において、平均キュー長演算部１−４は、更新タイミング生成部１−３から演算起動信号ＣａｌｃＥｎを受信すると、平均キュー長記憶部１−５に保持されている前回算出した平均キュー長ＡｖｇＯｌｄを読み出し、その前回算出した平均キュー長ＡｖｇＯｌｄと時定数Ｗｑとを用いて、前述の式２による新平均キュー長ＡｖｇＮｅｗを算出する。算出された新平均キュー長ＡｖｇＮｅｗは、平均キュー長記憶部１−５へ送出され、更新される。この一連の処理をキューがアイドル状態の期間中に行う。
【００２４】
このように、キューがアイドル状態の期間の平均キュー長を、更新時間ＲｅｎｅｗＴｉｍｅ（＝ｓ）毎に周期的に演算することにより、タイマ１−６を含む時刻情報を記憶するメモリ等のビット長を、有限長かつ実現可能な予め定めた所定長以下のものとすることができる。
【００２５】
これに対し、従来のようにエンキュー要求パケットが発生した時点で前述の式１による平均キュー長演算を行う方式では、エンキュー要求パケットの発生時点が予測不可能であるため、エンキュー要求パケットの発生時刻までのキューのアイドル状態期間（ｔｉｍｅ−ｑｔｉｍｅ）を記録して演算する処理部のビット長を十分大きなものとしておかなけらばならなかったが、本発明によれば、それらのビット長を予め定められた有限長のものとすることができる。
【００２６】
次に、平均キュー長の算出における更新周期を可変にする実施形態について説明する。更新時間ＲｅｎｅｗＴｉｍｅを最小パケット転送時間ｓとすると、更新周期ｓはキューの出力レートに依存する。出力レートと更新周期ｓとの関係を式で表すと式３のようになる。
ｓ＝Ｐｍｉｎ×ｆｒｅｑ／Ｒａｔｅｏ  …（式３）
【００２７】
式３において、Ｐｍｉｎは最小パケットのビット長［ｂｉｔ］、ｆｒｅｑは動作クロック周波数［Ｈｚ］、Ｒａｔｅｏは出力レート［ｂｐｓ］を表す。出力レートＲａｔｅｏはキューに予め設定する帯域の値である。式３から明らかなように、出力レートＲａｔｅｏが高いほど更新周期ｓは短くなる（出力レートＲａｔｅｏが高いほどパケットの転送時間ｓは短い）。
【００２８】
つまり、出力レートＲａｔｅｏが高いときには、評価タイミング生成部１−２から経過時間判定指示信号ＪｕｄｇｅＥｎが出力される評価周期ｕより、本来の更新周期ｓが短くなることが起こり得る。この場合には、本来の更新周期ｓ毎にｍ回行うべき式２の平均キュー長の演算を、ｍ回未満しか実行することができず、実際の更新周期となる評価周期ｕの粗さに起因して演算精度の劣化が生ずる。そのため、本来の平均キュー長の減衰率よりも小さな減衰率になり、平均キュー長に誤差が生じる。
【００２９】
そこで、本来の更新周期ｓが評価周期ｕ未満となる場合においても、ローパスフィルタの時定数Ｗｑ及び実際の更新時間ＲｅｎｅｗＴｉｍｅ（更新周期ｓ）を補正して設定することにより、平均キュー長の演算精度の劣化を抑えるようにする。時定数Ｗｑ、本来の更新時間ｓ、補正設定するローパスフィルタの時定数Ｗｑ２と評価周期（実際の更新周期）ｕとの関係式を式４に記す。
ａｖｇ・（１−Ｗｑ）(time-qtime)/s
＝ａｖｇ・（１−Ｗｑ２）(time-qtime)/u  …（式４）
更に式４を整理すると式５のようになる。
ａｖｇ・（１−Ｗｑ）＝ａｖｇ・（１−Ｗｑ２）1/(u/s)   …（式５）
【００３０】
式５から、式２の時定数Ｗｑの代わりに時定数Ｗｑ２を用い、ｕ／ｓ倍の評価周期で平均キュー長ａｖｇの更新を行っても、同じ結果が得られることになる。式５において、評価周期ｕには本来の更新周期ｓ以上で且つ最小値を選択設定する。代替時定数Ｗｑ２は評価周期ｕにより以下の式６により定まる。
Ｗｑ２＝１−（１−Ｗｑ）u/s   …（式６）
【００３１】
図３は、更新時間ｓを更新周期ｕへ、ローパスフィルタの時定数ＷｑをＷｑ２へ補正設定することによる演算精度の向上をタイムチャートで示している。図の（ａ）は補正設定を行わなかった場合を示し、図の（ｂ）は補正設定を行った場合を示している。図の（ａ）では時定数Ｗｑを用いた場合、本来の更新時間ｓ毎に８回演算を行うべき平均キュー長の更新を、実際には更新時間ｕ毎に５回しか行うことができないため演算精度が劣化する。
【００３２】
これに対し、図の（ｂ）において、ｕ／ｓ倍の周期で補正した時定数Ｗｑ２を使用して平均キュー長を演算することにより、５回目の更新時に式２による演算を８回行ったことと同じ演算結果を得ることができる。このように、本来の更新周期ｓが評価周期ｕ未満となった場合においても、出力レートに応じて減衰時定数及び更新周期を変化させることにより、平均キュー長の演算精度の劣化を抑えることが可能となる。
【００３３】
次に、複数のキューを巡回的に評価し、平均キュー長を減衰演算する平均キュー長演算処理装置の実施形態について説明する。図４にこの実施形態の構成を示す。なお、この実施形態における巡回的演算処理の根幹をなす評価キュー選択部４−１の動作の詳細なタイムチェートを図５に示す。
【００３４】
この実施形態の構成は、図１に示した平均キュー長演算処理装置の構成に、評価キュー選択部４−１、キュー状態管理部４−２及びパラメータ記憶部４−３を追加したものである。更新時刻記憶部１−１、平均キュー長記憶部１−５、キュー状態管理部４−２及びパラメータ記憶部４−３は、平均キュー長演算対象のキューの個数と同数の情報記憶領域をそれぞれ備えるが、評価タイミング生成部１−２、更新タイミング生成部１−３、平均キュー長演算部１−４、タイマ１−６及び評価キュー選択部４−１は、平均キュー長演算対象の各キューに共通に使用される。
【００３５】
キュー状態管理部４−２は、キューが空き状態か否かの状態を管理し、キューが空き状態であることを示すＥｍｐｔｙＦｌａｇ信号又はキューが空きでないことを示すＮｏｔＥｍｐｔｙＦｌａｇ信号を受信すると、キュー識別番号ＱｕｅｕｅＮｏで指定されるキューに対して、そのキューの状態を２値（空きか否か）で記憶する。
【００３６】
更新時刻記憶部１−１は、キューが空き状態であることを示すＥｍｐｔｙＦｌａｇ信号を受信すると、キュー識別番号ＱｕｅｕｅＮｏにより指定される記憶領域に、その時点の自走タイマ１−６の値（現在時刻ＴｉｍｅＮｏｗ）を記憶する。
【００３７】
評価タイミング生成部１−２は、一定周期で評価キュー選択部４−１に対して評価対象キューの選択を要求する信号ＮｅｘｔＥｎを送出する（図５（ａ）参照）。評価キュー選択部４−１は、評価対象キューの選択要求信号ＮｅｘｔＥｎを受信すると、評価対象キューＱｕｅｕｅ＿ａを選択する。選択自体はフリーランカウンタを用いて行うことができる。
【００３８】
フリーランカウンタは、評価対象キューの選択要求信号ＮｅｘｔＥｎをカウントアップ信号としてカウントし、そのカウント値がキュー識別番号を表す。カウンタは１巡内に任意カウント値の出現が１回のみとする必要はなく、特定カウント値が２回以上出現するといった重み付けされたものであってもよい。
【００３９】
その後、評価キュー選択部４−１は、評価対象キューＱｕｅｕｅ＿ａを指定してそのキューの状態情報を得るために、キュー状態管理部４−２へ状態取得要求信号ＳｔＧｅｔＥｎを送出する（図５（ｂ），（ｃ）参照）。キュー状態管理部４−２は、状態取得要求信号ＳｔＧｅｔＥｎを受信すると、評価対象キューＱｕｅｕｅ＿ａのキュー状態情報Ｑｓｔａｔｅを評価キュー選択部４−１へ返送する（図５（ｄ）参照）。
【００４０】
評価キュー選択部４−１は、返送されたキュー状態情報Ｑｓｔａｔｅが空き状態を示していれば、更新タイミング生成部１−３へ経過時間の判定指示信号ＪｕｄｇｅＥｎ及び評価対象キュー識別番号Ｑｕｅｕｅ＿ｂ（＝Ｑｕｅｕｅ＿ａ）を送出する（図５（ｅ）参照）。キュー状態情報Ｑｓｔａｔｅが空き状態でないことを示していれば何も行わない。
【００４１】
更新タイミング生成部１−３は、更新時刻記憶部１−１から、評価対象キュー識別番号Ｑｕｅｕｅ＿ｄ（＝Ｑｕｅｕｅ＿ｂ）の指すキューがアイドル状態へ遷移した時刻（又は直前の更新時刻）ＴｉｍｅＯｌｄを読み出し、タイマ１−６から得た現在時刻ＴｉｍｅＮｏｗとの差分（ＴｉｍｅＮｏｗ−ＴｉｍｅＯｌｄ）から経過時間を算出する。
【００４２】
また、パラメータ記憶部４−３からキュー識別番号Ｑｕｅｕｅ＿ｃ（＝Ｑｕｅｕｅ＿ｂ）の指すキューの演算パラメタである更新時間ＲｅｎｅｗＴｉｍｅを読出し、また、ローパスフィルタの時定Ｗｑを平均キュー長演算部１−４へ送出させる。
【００４３】
経過時間が更新時間ＲｅｎｅｗＴｉｍｅ以上である場合には、平均キュー長演算部１−４へ演算起動信号ＣａｌｃＥｎ及びキュー識別番号Ｑｕｅｕｅ＿ｅ（＝Ｑｕｅｕｅ＿ｂ）を送出すると共に、更新時刻記憶部１−１へ更新起動時刻ＲｅｎｅｗＥｎを送出する。更新時刻記憶部１−１は、更新時間ＲｅｎｅｗＥｎを受信すると、キュー識別番号Ｑｕｅｕｅ＿ｄの指すキューの更新時刻を現在時刻ＴｉｍｅＮｏｗに更新する。
【００４４】
平均キュー長演算部１−４は、更新タイミング生成部１−３から演算起動信号ＣａｌｃＥｎを受信すると、平均キュー長記憶部１−５からキュー識別番号Ｑｕｅｕｅ＿ｆ（＝Ｑｕｅｕｅ＿ｅ）の指すキューの現在の平均キュー長ＡｖｇＯｌｄを読み出し、その平均キュー長ＡｖｇＯｌｄとパラメータ記憶部４−３から得た時定数Ｗｑとから新平均キュー長ＡｖｇＮｅｗを算出する。
【００４５】
算出された新平均キュー長ＡｖｇＮｅｗは、平均キュー長記憶部１−５へ送出され、キュー識別番号Ｑｕｅｕｅ＿ｆの指すキューに対して記憶される。この一連の処理を、複数キューに対して巡回的に行う。このように、複数キューの平均キュー長の減衰演算を巡回的に時分割処理することにより、各キュー個別の演算回路が不要となり、平均キュー長演算対象の各キューに平均キュー長演算部１−４等を共通に利用し、キューの個数の増加に対してハードウェア規模の増大を抑えて装置を構成することが可能となる。
【００４６】
次に、平均キュー長演算部１−４を、キューがアイドル状態と非アイドル状態の両方のときに共通に利用する平均キュー長演算処理装置の実施形態について説明する。エンキュー要求パケットが発生したとき、それまでキューが非アイドル状態であった場合、平均キュー長ａｖｇは式７により算出される。
ａｖｇ←ａｖｇ・（１−Ｗｑ）＋Ｌｑ・Ｗｑ＝ａｖｇ＋Ｗｑ・（Ｌｑ−ａｖｇ）
…（式７）
式７において、Ｗｑは前述のローパスフィルタの時定数、Ｌｑはキュー長を示す。ここで、（１−Ｗｑ）を減衰時定数と称したのに対してＷｑを漸増時定数と称する。
【００４７】
図６に非アイドル状態時とアイドル状態時とで共通に平均キュー長を演算するフローを示す。なお、図６におけるステップ６−２からステップ６−４の処理は、図１の構成における平均キュー長演算部１−４において行う演算処理であり、式７を３つの演算フェーズに分割して示したものである。
【００４８】
ステップ６−１の演算パラメータ選択にて選択された時定数Ｗｑが、平均キュー長演算部１−４の入力信号である。さらに、キュー長Ｌｑは、アイドル状態時では“０”であるため、平均キュー長演算部１−４へ入力する必要はないが、非アイドル状態時では“０”を超える値となるために、キュー長Ｌｑを平均キュー長演算部１−４へ入力する。
【００４９】
演算要求が発生した場合にこのフローは活性化される。演算要求はエンキュー要求パケット又は前述の更新周期毎にで発生する。処理ステップは演算パラメータ選択ステップ６−１と平均キュー長演算ステップ６−２〜６−４とに分かれる。演算パラメータ選択ステップ６−１では、アイドル時と非アイドル時とでローパスフィルタの時定数Ｗｑを選択決定する。Ｗｑ＿ｉｄｌｅ及びＷｑ＿ｎｏｒｍａｌは、それぞれアイドル時及び非アイドル時の時定数である。
【００５０】
平均キュー長演算ステップは、減算ステップ６−２、算術シフト演算ステップ６−３及び加算ステップ６−４から成る。減算ステップ６−２ではキュー長Ｌｑと平均キュー長ａｖｇの減算処理行い、その結果を一時変数ｔｍｐ１として保持する。この演算は式７における第２項の（Ｌｑ−ａｖｇ）の演算に相当する。アイドル時ではキュー長Ｌｑ＝０であるため、一時変数ｔｍｐ１は（−ａｖｇ）となる。
【００５１】
算術シフト演算ステップ６−３では、減算ステップ６−２で得られた第１の一時変数ｔｍｐ１をｎビット右シフトし、第２の一時変数ｔｍｐ２を得る。ここで、算術シフト演算ステップ６−３は、２-n・（Ｌｑ−ａｖｇ）を算出したことになり、これは式７における第２項のＷｑを２の負のべき乗（２-n）の値に近似して式７の第２項を算出したことに相当する。即ち、
Ｗｑ＝２-n  …（式８）
【００５２】
このＷｑを２の負のべき乗（２-n）に近似することにより、ｎビット右シフトという簡単な回路構成で高速演算が可能となる。加算ステップ６−４は、式７の第１項と第２項との和の演算に相当する。このステップにて最終的な平均キュー長ａｖｇを得る。このように、平均キュー長演算部１−４において、アイドル時と非アイドル時とで平均キュー長演算回路を個別に備えるのではなく、共通化して演算することによりハードウェア規模の増大を防ぐことができる。
【００５３】
【発明の効果】
以上説明したように、本発明によれば、パケットキューがアイドル状態の期間の平均キュー長を、所定の更新時間毎に周期的に演算することにより、タイマを含む時刻情報を記憶するメモリ等のビット長を、有限長かつ実現可能な予め定めた所定長以下のものとすることができ、演算精度を維持したままハードウェア規模の増大を抑えることが可能となる。
【００５４】
また、キューがアイドル状態期間の平均キュー長演算において、本来の更新周期が、実際の更新周期となる評価周期未満の場合であっても、平均キュー長演算における時定数及び更新周期を変化させることにより、平均キュー長の演算精度を向上させることができる。
【００５５】
また、平均キュー長演算対象の複数パケットキューに対して巡回的に各パケットキューのキュー長を評価し、平均キュー長を演算することにより、各パケットキュー個別の演算回路が不要となり、各パケットキューの平均キュー長演算に共通の演算回路を共用することで、パケットキューの個数が増加してもハードウェア規模の増大を回避することが可能となる。
【００５６】
また、平均キュー長演算部を、アイドル状態時及び非アイドル状態時の何れであっても、共通の演算式により平均キュー長を算出し得る構成とすることにより、アイドル状態時及び非アイドル状態時の平均キュー長演算部を共通化し、ハードウェア規模の縮小を図ることができる。
【図面の簡単な説明】
【図１】本発明の平均キュー長演算処理装置の構成を示す図である。
【図２】更新タイミング生成部の機能ブロックを示す図である。
【図３】更新時間及び時定数の補正設定による演算精度の向上を示すタイムチャートである。
【図４】複数のキューの各平均キュー長を演算する平均キュー長演算処理装置の構成を示す図である。
【図５】複数のキューの各平均キュー長を演算する平均キュー長演算処理動作のタイムチャートを示す図である。
【図６】非アイドル状態時とアイドル状態時とで共通に平均キュー長を演算するフローを示す図である。
【符号の説明】
１−１  更新時刻記憶部
１−２  評価タイミング生成部
１−３  更新タイミング生成部
１−４  平均キュー長演算部
１−５  平均キュー長記憶部
１−６  タイマ
【図１】
0003823291.tif 000002
【図２】
0003823291.tif 000003
【図３】
0003823291.tif 000004
【図４】
0003823291.tif 000005
【図５】
0003823291.tif 000006
【図６】
0003823291.tif 000007