Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4637154B2 - トラヒックコントロール方法及び装置 - Google Patents
[go: Go Back, main page]

JP4637154B2 - トラヒックコントロール方法及び装置 - Google Patents

トラヒックコントロール方法及び装置 Download PDF

Info

Publication number
JP4637154B2
JP4637154B2 JP2007275598A JP2007275598A JP4637154B2 JP 4637154 B2 JP4637154 B2 JP 4637154B2 JP 2007275598 A JP2007275598 A JP 2007275598A JP 2007275598 A JP2007275598 A JP 2007275598A JP 4637154 B2 JP4637154 B2 JP 4637154B2
Authority
JP
Japan
Prior art keywords
value
input
counter
quotient
input port
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2007275598A
Other languages
English (en)
Other versions
JP2009105669A (ja
Inventor
享邦 西田
健治 川合
恵一 小池
勝一 大山
裕之 野内
幸三 山脇
謙一 小山
博敬 大畑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Electronics Corp
Nippon Telegraph and Telephone West Corp
Nippon Telegraph and Telephone East Corp
NTT Inc
NTT Inc USA
Original Assignee
NTT Electronics Corp
Nippon Telegraph and Telephone Corp
Nippon Telegraph and Telephone West Corp
Nippon Telegraph and Telephone East Corp
NTT Inc USA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Electronics Corp, Nippon Telegraph and Telephone Corp, Nippon Telegraph and Telephone West Corp, Nippon Telegraph and Telephone East Corp, NTT Inc USA filed Critical NTT Electronics Corp
Priority to JP2007275598A priority Critical patent/JP4637154B2/ja
Publication of JP2009105669A publication Critical patent/JP2009105669A/ja
Application granted granted Critical
Publication of JP4637154B2 publication Critical patent/JP4637154B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、WFQ(Weight Fair Queuing)回路を用いたトラヒックコントロール装置に関する。
データ通信以外に音声電話やTV電話など、多様な通信サービスがインターネットを介して提供されている。このような多様化に伴い、柔軟性と高速性を両立するために、各キュー、スケジューラ、そしてシェーパを、セレクタを用いて接続し、送信要求と要求受理信号のハンドシェークを用いたQoS(Quality of Service)方式が提案されてきた(例えば、特許文献1、特許文献2参照)。さらに、このQoS方式に用いるスケジューリングモジュールが提案されている(例えば、特許文献3参照)。この方式では、各入力に指定された重みをクロックサイクル毎に時分割、あるいは、加算値を変更して各入力の要求フレーム長との比較を行うカウンタに加算し、値が正かつ送信要求がある入力をラウンドロビンで選択して後段への送信要求信号として用いている。
特開2005−311409号公報 特開2005−323230号公報 特開2007−110515号公報
しかしながら、上述した従来技術では、送信要求を受けていない場合かつ入力カウンタが正でありかつ、送信受理信号を受け取ったあるいは、delayが0になった場合そのカウンタに蓄積されていた値を総カウンタに戻さなければならないといったように処理が複雑であり、加えて、各入力は最大フレームサイズの負数分のレジスタを持たなければならず、さらには、それらがすべて総カウンタに戻った場合のレジスタを持たなければならない。そのため、回路規模は大きくなってしまう。また、重みの範囲が大きくなった場合(たとえば、1:15→1:255)、方式的に正確なカウンタヘの加算ができなくなる。これは、Ethernet(登録商標)フレームの最小フレーム長は、64Byte(バイト)であり、一度の加算によって、ある入力には1しか加算しないのに、ある入力には255が一度に加算されるために、255が加算された入力からバースト的に3フレーム(255/64=3.98)送出される可能性があることによる。
そこで、本発明は、このような事情を考慮してなされたものであり、その目的は、算術演算を行うことで、各動作ステップ数の削減および、固定化を行い、高速かつ小型のQoS回路、特にキュー制御を行う重み付け公平制御(WFQ:Weight Fair Queuing)回路を提供することにある。
前記課題を解決するために、本発明は、複数の入力ポートからの入力を後段に出力するトラヒックコントロール装置におけるトラヒックコントロール方法であって、前記トラヒックコントロール装置は、複数の入力ポートそれぞれに対応した商カウンタの値及び余りカウンタの値を記憶する記憶手段を備えており、前記商カウンタのうち最小値である商カウンタを選択し、選択された商カウンタに対応した入力ポートからの送信要求を後段回路に送信する出力過程と、選択された商カウンタ以外の前記商カウンタの値を、前記選択された商カウンタの値を減算した値に更新する更新過程と、前記選択された商カウンタに対応した入力ポートからの入力のフレーム長と、当該入力ポートに対応した余りカウンタの値とを加算した値を、当該入力ポートに対応した所定の重みの値で除算し、除算した結果の商により前記選択された商カウンタの値を更新し、除算した結果の余りにより当該入力ポートに対応した余りカウンタの値を更新する演算過程とを有することを特徴とする。
また、本発明は、上述するトラヒックコントロール方法であって、前記演算過程において、前記選択された商カウンタに対応した入力ポートからの入力のフレーム長と、当該入力ポートに対応した余りカウンタの値とを加算する代わりに、当該入力ポートの入力のフレーム長を、所定分、あるいは、重みのとりうる最大値分だけ左ビットシフトし、当該入力ポートに対応した余りカウンタの値と連結する、ことを特徴とする。
また、本発明は、上述するトラヒックコントロール方法であって、前記記憶手段は、各入力ポートに対応し、送信要求が送信された順序に応じて値が変更されるラウンドロビンカウンタをさらに記憶し、前記出力過程において、最小値を有する前記商カウンタが複数ある場合、前記ラウンドロビンカウンタの値により、送信要求を送信する入力ポートを選択する、ことを特徴とする。
また、本発明は、複数の入力ポートからの入力を後段に出力するトラヒックコントロール装置であって、複数の入力ポートそれぞれに対応した商カウンタの値及び余りカウンタの値を記憶する記憶手段と、前記商カウンタのうち最小値である商カウンタを選択し、選択された商カウンタに対応した入力ポートからの送信要求を後段回路に送信する制御手段と、選択された商カウンタ以外の前記商カウンタの値を、前記選択された商カウンタの値を減算した値に更新するとともに、当該選択された商カウンタに対応した入力ポートからの入力のフレーム長と、当該入力ポートに対応した余りカウンタの値とを加算した値を、当該入力ポートに対応した所定の重みの値で除算し、除算した結果の商により前記選択された商カウンタの値を更新し、除算した結果の余りにより当該入力ポートに対応した余りカウンタの値を更新する演算手段と、を備えることを特徴とする。
WFQ回路等のトラヒックコントロール装置においては、カウンタから重み値を繰り返し減算する処理、後段回路に送信要求をした入力についてはそのフレーム長をカウンタに加算する処理など、各種の演算処理が必要となるが、本発明によれば、重み値の繰り返し減算を不要にするとともに、フレーム長をカウンタに加算する処理には固定小数点を用いてその演算処理を簡易化すること等、により、WFQ回路に必要な各種の演算処理を高速化し、また、回路規模を小さくすることが可能となる。
以下、図面を用いて本発明の一実施形態を説明する。
まず始めに、本発明の一実施形態によるトラヒックコントロール装置としてのWFQ(Weight Fair Queuing)回路の基本動作を、図1に示す概要動作フローに基づいて説明する。
同図において、WFQ回路は、対応して設置されている入力カウンタが0以下かつ前段回路から送信要求を受信している入力ポートを選択し(ステップS11)、後段回路に、この選択した送信要求を出力する(ステップS12)。続いてWFQ回路は、後段回路に送信要求を出力した入カポートに対応して設置されている入力カウンタに、後段回路に送信要求を出力したフレームのフレーム長を加算する(ステップS13)。WFQ回路は、各入力カウンタから、入力ポート毎に予め設定された重み値を所定の周期(例えば、システムクロック毎)で減算する(ステップS14)。
WFQ回路が後段回路から受理信号を受信すると(ステップS15)、前段回路に受理信号を出力する(ステップS16)。WFQ回路は、待ち制御を行うカウンタであるWaitCntに、待ちの上限値であるJudgeWaitの値を設定する(ステップS17)。WaitCntの設定後、WFQ回路は、WaitCntの値が0になるまで、WaitCntの値を所定の周期(例えば、システムクロック毎)で1ずつ減算する(ステップS18、S19)。そして、WaitCntの値が0になったときに、次に後段回路へ送信すべき要求を決定するために、ステップS11に戻り、選択された入力ポートからの送信要求を待つことになる。入力カウンタは後段回路に送信要求を出力した時点で、ステップS13においてフレーム長が加算されている。また、このようにすることで、重み値を制御することにより、後段回路への送信要求の送出タイミングを適切に制御することが可能となる。
以上のWFQ回路の動作を数式で表現し、それに基づき、本発明の基本原理を説明する。
各入力ポートi(iは入カポートの番号)の入力カウンタをcnt[i]、重み値をweight[i]、送信要求を出力すべきであると選択された入力ポートにおける入力のフレーム長をflenとすると、各入力カウンタcnt[i]の値は、所定の周期で重み値により減算されることから以下の(式1)のようになる。なお、以下の式において、「=」は、右辺演算後の結果を左辺に格納することを意味する。
cnt[i]=cnt[i]−weight[i] ただし、CNT[i]>0 …(式1)
上記の(式1)の両辺をweight[i]で除算すると、以下の(式2)のようになる。
cnt[i]/weight[i]=cnt[i]/weight[i]−1 …(式2)
ここで、cnt[i]/weight[i]をCNT[i]とおくと、(式2)は、以下の(式3)のようになる。
CNT[i]=CNT[i]−1 …(式3)
この場合、最も最初にcnt[i]が0以下となるのは、明らかに、|CNT[i]|(CNT[i]の絶対値)が最も小さい入力である。このことから、(式1)のように、weight[i]を減算し続け、値が0以下になる入力ポートを選択する場合に比べ、送信要求が入力されている入力ポートiのCNT[i]の大きさを比較するだけで、送信要求の送出を行う入カポートの選択が可能となり、演算処理の高速化を図ることができる。
なお、各入力ポートiのcnt[i]は、ある入力ポートiのcnt[i]が0以下となるまで、cnt[i]からweight[i]を減算し続け、cnt[i]の値が更新される。
そこで、すべての入力ポートiのCNT[i]の中の最小値をCNTminとすると、このCNTminを各入力ポートに対応するCNT[i]から減ずることで、ある入力ポートのcnt[i]が0以下となるまで、各入力ポートのcnt[i]からweight[i]を減算し続けるのと同じになる。
すなわち、以下の(式4)の演算を行うことにより、各入力ポートiに対応するCNT[i]を更新することができ、cnt[i]が0以下となるまでweight[i]を減算し続ける場合に比べ、処理が簡単化され、演算処理の高速化を図ることができる。
CNT[i]=CNT[i]−CNTmin …(式4)
また、後段回路に送信要求送出する時、cnt[i]にフレーム長flenを加算する必要がある。すなわち、以下の(式5)のようになる。
CNT[i]=(cnt[i]+flen)/weight[i]
=CNT[i]+flen/weight[i] …(式5)
(式5)において、flen/weight[i]の演算を、浮動小数点で行うと、浮動小数点の除算は計算コストが高くなる。従って、固定小数点で行ったほうがハードウェア化、処理の高速化の面から好ましい。しかしながら、固定小数点のため割り切れない場合が存在し、flen/weight[i]の余りR[i]が累積的な誤差を生む。そこで、余りを次の計算時、フレーム長flenに加算するようにすることで、累積誤差を0にできる。具体的には、除算を行う前のCNT[i]の値をCNT’[i]とし、除算を行ったことによる商をQ[i]、余りをR[i]とすると、flen=Q[i]×weight[i]+R[i]であることから、以下の(式6)のようになる。
CNT[i]
=CNT’[i]+flen/weight[i]
=CNT’[i]+(flen−R[i])/weight[i]+R[i]/weight[i]
=CNT’[i]+Q[i]+R[i]/weight[i] …(式6)
そして、その次に除算機会を得たときには、同様に以下のようになる。
CNT[i]
=CNT’[i]+flen/weight[i]
=CNT”[i]+Q’[i]+R’[i]/weight[i]+flen/weight[i]
=CNT”[i]+Q’[i]+(flen+R’[i]−R[i])/weight[i]+R[i]/weight[i]
=CNT”[i]+Q’[i]+Q[i]+R[i]/weight[i] …(式7)
ここで、CNT”[i]は除算2回前のCNT[i]の値、Q’、R’はそれぞれ前回除算を行ったときの商と余りである。Rは、0≦R<weight[i]を満たすので、累積誤差はweight[i]に収まる。図5は、除算累積誤差を説明するための図であり、たとえば同図に示すようなフレーム長のフレームが1行目のものから順に入力され、当該フレーム長に対して演算を行う場合、本方式を使用すると、余りを計算に入れ込んだ固定小数点演算累積値の欄に示すように、浮動小数点演算の累積結果との差は小数点以下のみとなるが、余りの足しこみを行わない場合、余りを計算に入れ込まない固定小数点演算累積値の欄に示すように誤差は次々と累積されていく。
また、除数の最大値m(weight[i]のとりえる最大値)分だけ、CNT[i]、flenをmビット左シフトして除算を行うことで、加算の必要はなくなり、ビット結合だけで処理することが可能となり、演算時間をさらに短縮できる。
つまり、上記(式5)と、Q[i]=(flen−R[i])/weight[i]であることから、以下の(式8)のようになる。
CNT[i]=CNT’[i]+flen/weight[i]
=CNT’[i]+Q[i]+R[i]/weight[i] …(式8)
しかし、実際には、R[i]/weight[i]は小数点以下の値となるため、(式8)は以下の(式9)のようになる。
CNT[i]=CNT’[i]+Q[i] …(式9)
また、(式8)の両辺を2^m倍(「^」は、べき乗を表す)すると、以下の(式10)のようになる。なお、「<<m」は、mビットだけ左シフトすることを示す。
CNT[i]<<m
=CNT’[i]<<m+(flen<<m)/weight[i] …(式10)
(式8)を用いて、(式10)を変形すると、以下の(式11)のようになる。なお、R’[i]は前回の入力フレームiが送信要求として選択されたときに行われた除算の余りである。
CNT[i]<<m
=CNT’[i]<<m+(flen<<m)/weight[i]
=(CNT”[i]<<m+Q’[i]+R’[i]/weight[i])+(flen<<m)/weight[i]
=CNT”[i]<<m+Q’[i]+(flen<<m+R’[i])/weight[i] …(式11)
(式11)に、(式9)を代入すると、以下の(式12)になる。
CNT[i]<<m=CNT’[i]+(flen<<m+R’[i])/weight[i] …(式12)
1≦weight[i]≦2^mならば、0≦R’[i]<2^mである。また、flen≧1であるので、flen<<m≧2^mである。そのため、flen<<m+R’[i]は、flenとR’[i]のビット結合となる。
以上のように、入力カウンタcnt[i]の値を用いるのではなく、cnt[i]をweight[i]で除したCNT[i]及びその最小値CNTminを用いることで、送信要求の送出を行う入力の選択や、重み値による減算による更新処理を簡単に行うことが可能となり、演算時間の高速化を図ることができる。また、後段回路にフレームを送出したときのフレーム長を加算してCNT[i]の値を更新する演算においても、上述したように、固定小数点を用いた場合の余りによる誤差の累積を適切に処理することで、簡単な処理によりCNT[i]の値を更新することができ、演算処理を高速化することができる。
なお、上記においては、重みのとりうる最大値分ビットシフトを行っているが、適当な、予め決められた所定分、ビットシフトを行うことでもよい。
図2は、上述の基本原理に基づいて構成した、本発明の一実施形態によるWFQ回路100の構成例である。また、図3は、図2のWFQ回路100の動作フローを示した図である。以下、図2、図3に基づいて、本発明の実施の形態について詳細に説明する。
まず、図2を用いて、本発明の一実施の形態によるWFQ回路100の構成について説明する。図2の構成例では、入力ポートの数が4(i=0〜3)である場合について示しているが、4以上あるいは4以下の場合であってもよい。
入力iフレーム長記憶手段101−i(i=0〜3)は、前段回路から入力ポートiに入力されたフレームのフレーム長であるflen[i]を格納する手段である。入力i重み記憶手段−i(i=0〜3)は、入力ポートiの入力に対する重み値であるweight[i]を格納する手段である。入力i商記憶手段103−i(i=0〜3)は、商カウンタ、すなわち、入力ポートiの入力に対する、上述したCNT[i]の商を格納する手段、入力i余り記憶手段104−i(i=0〜3)は、余りカウンタ、すなわち、CNT[i]の余りを格納する手段である。入力iラウンドロビンカウンタ記憶手段105−i(i=0〜3)は、入カポートiの入力に対応するラウンドロビンカウンタを格納する手段であり、演算回路106(演算手段)は、上述した各種の演算を実行する演算回路、制御回路107(制御手段)は、WFQ回路100の全体を制御する制御回路である。図2に示す制御回路107内の記憶手段に格納されているWaitCntは、待ち制御を行うためのカウンタであり、制御回路107内の記憶手段に格納されているJudgeWaitは、WaitCntの上限値として設定される値である。
なお、以下、入力iフレーム長記憶手段101−0〜3を総称して入力iフレーム長記憶手段101、入力i重み記憶手段−0〜3を総称して入力i重み記憶手段、入力i商記憶手段103−0〜3を総称して入力i商記憶手段103、入力i余り記憶手段104−0〜3を総称して入力i余り記憶手段104、入力iラウンドロビンカウンタ記憶手段105−0〜3を総称して入力iラウンドロビンカウンタ記憶手段105と記載する。入力iフレーム長記憶手段101、入力i重み記憶手段、入力i商記憶手段103、入力i余り記憶手段104、入力iラウンドロビンカウンタ記憶手段105は、例えばレジスタである。
次に、図3を用いて、図2に示すWFQ回路の動作について説明する。
制御回路107は、自身の備える記憶手段に記憶するJudgeWaitに、所定の値を設定する(ステップS201)。さらに制御回路107は、各入力i重み記憶手段102に、各入力ポートiの所定の重み値weight[i]を設定し(ステップS202)、各入力i商記憶手段103、各入力i余り記憶手段104を0クリアする(ステップS203)。
続いて、制御回路107は、いずれかの入力ポートiに前段回路から送信要求があるかを判断する(ステップS204)。どの入力ポートiにも前段回路から送信要求がない場合には(ステップS204:NO)、ステップS204からの処理を再度実行する。
一方、いずれかの入力ポートiに前段回路から送信要求がある場合(ステップS204:YES)、制御回路107は、上述の基本原理で説明した各入力ポートiのCNT[i]を比較し、CNT[i]が最も小さい入力を選択するとともに、その選択したCNT[i]から最小値であるCNTminを求める。具体的には、CNT[i]の値は、入力i商記憶手段103に格納されているため、各入力i商記憶手段103内の設定内容を用いて、CNT[i]の値が最小の入力を選択する。CNT[i]の値が最小の入力ポートiを入力ポートjとし、入力ポートjからの入力を入力jとすると、最小値であるCNTminは、入力j商記憶手段103−jに格納されている値となる(ステップS205)。ただし、最小値比較時に、比較対象の入力に送信要求が来ていない入力に対しては、比較を行わない。
制御回路107が、後段回路に、入力jに対する送信要求を送出すると(ステップS206)、以下のステップS208〜S210の処理を入力数の分だけ繰り返す(ステップS207)。
すなわち、演算回路106は、上述の基本原理の(式4)で説明したCNT[i]=CNT[i]−CNTminを演算する。具体的には、CNTminは、上述したように、入力j商記憶手段103−jに格納されており、各入力iのCNT[i]は、入力i商記憶手段103−i(iはj以外)に格納されているため、これらを用いて、上記の(式4)の減算処理を行う(ステップS208)。
そして、ステップS207による演算結果が負の場合、負になった入力kに対応した商を格納する入力k商記憶手段103−kと、当該入力kに対応した余りを格納する入力k余り記憶手段104−kとに、値として「0」を設定する(ステップS209、S210)。このようにすることにより、CNT[i]が負になることがなくなり、以後の処理を簡単にすることができる。
次に、上述の基本原理で説明したように、(式5)に基づき、送信要求を行った入力jに対するフレーム長の加算に伴うCNT[i]の更新を行う(ステップS211)。すなわち、演算処理の高速化のため、固定小数点を用いた場合は以下のようになる。
演算回路106は、入力jフレーム長記憶手段101−jに格納されている入力jのフレーム長の値(flen)に、入力j余り記憶手段104−j内に格納されている入力jの余りの値を加算し、その加算結果を入力j重み記憶手段−jに格納されている値であるweight[j]で除算する。演算回路106は、除算結果の商を入力j商記憶手段103−jに、余りを入力j余り記憶手段104−jに格納することにより、送信要求を行った入力jのCNT[j]の値を更新する。あるいは、上述した基本原理の(式13)に基づき、フレーム長を左シフトして、入力jの余りとビット結合し、weight[j]で除算するようにしてもよい。
一方、上述したステップS206の実行後、制御回路107は、後段回路から受理信号の受信を待つ。後段からの受理信号を受信すると(ステップS213)、制御回路107は、WaitCntに、ステップS201において設定したJudgeWaitの値を設定する(ステップS214)。制御回路107は、選択された入力jに接続される前段回路へ受理信号を送信する(ステップS215)。
WaitCntは、制御回路107により、所定の周期(例えばシステムクロック毎)で減算される(ステップS216)。
上述したステップS216の実行後、制御回路107は、WaitCntの値が0かを判定し、0になるまで繰り返し減算を行う(ステップS216、S217)。このように、WaitCntの現在を行って0になった場合(ステップS217:YES)、WaitCntの減算を停止する(ステップS218)。
上述したステップS211の後に、WaitCntの値が0になった場合(ステップS212:YES)、ステップS204に戻り、CNT[i]が最小の入力の選択を行う。
なお、ステップS204において、CNT[i]の最小値を求める際に、同じ値が存在したり、同時に0以下になる入力が存在する場合は、WFQの基本動作として、該当する入力をラウンドして選択する必要がある。すなわち順繰りに、tmp=入力0ラウンドロビンカウンタ、入力0ラウンドロビンカウンタ=入力1ラウンドロビンカウンタ、入力1ラウンドロビンカウンタ=入力2ラウンドロビンカウンタ、入力2ラウンドロビンカウンタ=入力3ラウンドロビンカウンタ、入力3ラウンドロビンカウンタ=tmp(入力0ラウンドロビンカウンタの元の値)とし、各入力ポートに対応するラウンドロビンカウンタを1つずつずらす。あるいは、いままでの送信履歴から、最も送信を行っていない入力を選択するようにしてもよい。その際の選択処理は、以下に述べるように、各入力iに対応して設けられている入力iラウンドロビンカウンタ記憶手段105−i内に記憶されている入力iラウンドロビンカウンタを用いて行うのが効果的である。
すなわち、例えば入力ポート数を4とし、入力2が送信要求ポートとして選択された場合、入力2ラウンドロビンカウンタより大きい値をもつ各入力iラウンドロビンカウンタは1デクリメント(減算)を行い、入力2ラウンドロビンカウンタ=3とする。このようにすることで、最近送信した順に入力iラウンドロビンカウンタは、3,2,1,0という値を持つことになる。
上記においては、CNT[i]を比較して最も小さい入力を選択しているが、入力iラウンドロビンカウンタをさらに用いて比較を行うこともできる。つまり、入力選択時の比較に用いる値をcmp[i]とするならば、CNT[i]の値に同じものがある場合であっても、以下のように容易に選択可能となる。なお、入力数が4の場合を想定しており、よって、入力iラウンドロビンカウンタの2bit(0〜3の値)を用いている。また、「|」はビット結合を表す。
cmp[i](18bit)
=CNT[i](16bit)|入力iラウンドロビンカウンタ(2bit) …(式13)
さらに入力要求がある場合、request[i]=0、入力要求がない場合、request[i]=1とし、以下の式で算出される値(cmp[i])を用いて入力選択時の最小値選択を行う。
cmp[i](19bit)
=request[i](1bit)|CNT[i](16bit)|入力iラウンドロビンカウンタ(2bit) …(式14)
上記のcmp[i]を用いることにより、入力要求があるかどうかの判断を入力選択時に行わなくてもすむようになる。つまり、上式において算出されたcmp[i]のうち最小値をもつcmp[i]を選択し、その選択したcmp[i]の最小値をCMP_MINとすると、CMP_MINのMSB(Most Significant Bit:最上位ビット)が1である場合、request[i]が0であった入力がなかった、すなわち、どの入力にも送信要求はなかったということがわかる。また、送信要求が存在していれば、少なくともCMP_MINのMSBは0になり、選択するポートiを決定するために最小値のcmp[i]を求める際には、MSBが0である、すなわち、入力要求があるポートからのみ選択が行われるため、比較のたびに送信要求があるかどうか判断する必要がなくなる。
図4は、上述したWFQを用いて、各レジスタ値がどのように変化するかの一例を入力数3のWFQを用いて説明する。なお、シフト量(weight[i]の最大値)m=5であり、時刻0の初期状態において入力はないものとする。また、各入力ポートiの重みは、weight[0]=3、weight[1]=2、weight[3]=1であるとする。
時刻1において、制御回路107は、入力0の送信要求(フレーム長1000)と、入力1の送信要求(フレーム長64)を受信する。これにより、flen[0]=1000、flen[1]=64が格納される。そして、この時刻0において入力があった入力0と入力1のうち、cnt[i]がもっとも小さいのは入力0なので(cnt[0]=1000、cnt[1]=2000)、入力0が選択される。そして、(flen[0]<<m+R[0])/weight[0]=(1000<<5+2)/3=10667 余り1となるため、cnt[0]=10667、R[0]=1のように更新される。
また、他の入力のcnt[i](i=1,2)からは、cnt[0]の値であった1000が減算されるが、入力2は減算により負になるので、cnt[2]は0となる。また、ラウンドロビン値は、最も最近選択されたポートに対応したものが最も大きな値になるので、round[0]が3から3となる。そして、他の各入力のround[i](i=1,2)のうち、3以上の値を持つものをデクリメントする必要があるが、送信したものが最も大きな値である3であったためデクリメントは行わない。
次に、時刻2において、入力2の送信要求(フレーム長100)を受信する。現在入力があるcnt[i]、すなわち、入力1と入力2のcnt[i]を比較すると(cnt[1]=1000、cnt[2]=0)、cnt[2]が最も小さいので、cnt[2]が選択され、入力2以外の各入力のcnt[i](i=0,1)から、cnt[2]の値である0が減算される。(flen[2]<<m+R[2])/weight[2]=(100<<5+0)/1=3200 余り0であるので、cnt[2]=3200となり、R[2]には0が加算されるため0のままとなる。選択された入力2のラウンドロビン値round[2]は、2から最も大きな値の3に変化し、他の入力のround[i]で2以上のものは、デクリメントされるため、入力0のround[0]は3から2に変化する。
続いて、時刻3において、現在入力があるのは入力1のみであるので、入力1以外の各入力のcnt[i](i=0,2)から、cnt[1]の値である1024が減算される。(flen[1]<<m+R[1])/weight[1]=(100<<5+0)/1=1024 余り0であるので、cnt[1]=1024となり、R[1]には0が加算されるため1のままとなる。選択された入力2のラウンドロビン値round[2]は、1から最も大きな値の3に変化し、他の入力のround[i]で1以上のものは、デクリメントされるため、入力0のround[0]は2から1に、入力2のround[2]は3から2に変化する。
時刻4以降も、同様の処理を繰り返すことによりWFQ処理が行われる。
以上、本発明の実施の形態について説明したが、トラヒックコントロール装置の各手段は、専用のハードウェア(例えば、ワイヤードロジック等)により実現されるが、メモリおよびCPU(中央処理装置)により構成され、各部の機能を実現するためのプログラムをメモリからロードして実行することによりその機能を実現させるものであってもよい。また、メモリインタフェース回路の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、メモリインタフェース回路の各部に必要な処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
本発明の一実施の形態によるWFQ回路の基本動作フローを示す図である。 同実施形態によるWFQ回路の構成例を示すブロック図である。 同実施形態によるWFQ回路の動作フローを示す図である。 同実施形態によるWFQ回路の動作を説明するための図である。 除算累積誤差を説明するための図である。
符号の説明
100…WFQ回路
101−0…入力0フレーム長記憶手段
101−1…入力1フレーム長記憶手段
101−2…入力2フレーム長記憶手段
101−3…入力3フレーム長記憶手段
102−0…入力0重み記憶手段
102−1…入力1重み記憶手段
102−2…入力2重み記憶手段
102−3…入力3重み記憶手段
103−0…入力0商記憶手段
103−1…入力1商記憶手段
103−2…入力2商記憶手段
103−3…入力3商記憶手段
104−0…入力0余り記憶手段
104−1…入力1余り記憶手段
104−2…入力2余り記憶手段
104−3…入力3余り記憶手段
105−0…入力0ラウンドロビンカウンタ記憶手段
105−1…入力1ラウンドロビンカウンタ記憶手段
105−2…入力2ラウンドロビンカウンタ記憶手段
105−3…入力3ラウンドロビンカウンタ記憶手段
106…演算回路
107…制御回路

Claims (4)

  1. 複数の入力ポートからの入力を後段に出力するトラヒックコントロール装置におけるトラヒックコントロール方法であって、
    前記トラヒックコントロール装置は、複数の入力ポートそれぞれに対応した商カウンタの値及び余りカウンタの値を記憶する記憶手段を備えており、
    前記商カウンタのうち最小値である商カウンタを選択し、選択された商カウンタに対応した入力ポートからの送信要求を後段回路に送信する出力過程と、
    選択された商カウンタ以外の前記商カウンタの値を、前記選択された商カウンタの値を減算した値に更新する更新過程と、
    前記選択された商カウンタに対応した入力ポートからの入力のフレーム長と、当該入力ポートに対応した余りカウンタの値とを加算した値を、当該入力ポートに対応した所定の重みの値で除算し、除算した結果の商により前記選択された商カウンタの値を更新し、除算した結果の余りにより当該入力ポートに対応した余りカウンタの値を更新する演算過程と
    を有することを特徴とするトラヒックコントロール方法。
  2. 前記演算過程において、前記選択された商カウンタに対応した入力ポートからの入力のフレーム長と、当該入力ポートに対応した余りカウンタの値とを加算する代わりに、当該入力ポートの入力のフレーム長を、所定分、あるいは、重みのとりうる最大値分だけ左ビットシフトし、当該入力ポートに対応した余りカウンタの値と連結する、
    ことを特徴とする請求項1に記載のトラヒックコントロール方法。
  3. 前記記憶手段は、各入力ポートに対応し、送信要求が送信された順序に応じて値が変更されるラウンドロビンカウンタをさらに記憶し、
    前記出力過程において、最小値を有する前記商カウンタが複数ある場合、前記ラウンドロビンカウンタの値により、送信要求を送信する入力ポートを選択する、
    ことを特徴とする請求項1または請求項2に記載のトラヒックコントロール方法。
  4. 複数の入力ポートからの入力を後段に出力するトラヒックコントロール装置であって、
    複数の入力ポートそれぞれに対応した商カウンタの値及び余りカウンタの値を記憶する記憶手段と、
    前記商カウンタのうち最小値である商カウンタを選択し、選択された商カウンタに対応した入力ポートからの送信要求を後段回路に送信する制御手段と、
    選択された商カウンタ以外の前記商カウンタの値を、前記選択された商カウンタの値を減算した値に更新するとともに、当該選択された商カウンタに対応した入力ポートからの入力のフレーム長と、当該入力ポートに対応した余りカウンタの値とを加算した値を、当該入力ポートに対応した所定の重みの値で除算し、除算した結果の商により前記選択された商カウンタの値を更新し、除算した結果の余りにより当該入力ポートに対応した余りカウンタの値を更新する演算手段と、
    を備えることを特徴とするトラヒックコントロール装置。
JP2007275598A 2007-10-23 2007-10-23 トラヒックコントロール方法及び装置 Active JP4637154B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007275598A JP4637154B2 (ja) 2007-10-23 2007-10-23 トラヒックコントロール方法及び装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007275598A JP4637154B2 (ja) 2007-10-23 2007-10-23 トラヒックコントロール方法及び装置

Publications (2)

Publication Number Publication Date
JP2009105669A JP2009105669A (ja) 2009-05-14
JP4637154B2 true JP4637154B2 (ja) 2011-02-23

Family

ID=40706940

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007275598A Active JP4637154B2 (ja) 2007-10-23 2007-10-23 トラヒックコントロール方法及び装置

Country Status (1)

Country Link
JP (1) JP4637154B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4806716B2 (ja) * 2009-06-17 2011-11-02 日本電信電話株式会社 通信品質制御装置、及び通信品質制御方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3705353B2 (ja) * 2001-05-22 2005-10-12 日本電気株式会社 パケットスケジューリング装置及び方法
JP3904922B2 (ja) * 2001-12-28 2007-04-11 株式会社日立製作所 トラヒックシェーパーおよび集線装置
JP4588558B2 (ja) * 2005-06-29 2010-12-01 三菱電機株式会社 パケット読み出し制御装置

Also Published As

Publication number Publication date
JP2009105669A (ja) 2009-05-14

Similar Documents

Publication Publication Date Title
US12175359B2 (en) Machine learning hardware having reduced precision parameter components for efficient parameter update
Chung et al. A high-performance elliptic curve cryptographic processor over GF (p) with SPA resistance
US12217158B2 (en) Neural network circuitry having floating point format with asymmetric range
US6363112B1 (en) Parallel processing decision feedback equalizer
US9928035B2 (en) Multiply-and-accumulate unit in carry-save adder format and application in a feedback loop equalizer
CN115081020A (zh) 隐私算法构建方法、装置、电子设备和可读存储介质
JP4637154B2 (ja) トラヒックコントロール方法及び装置
US20030026347A1 (en) Path metric normalization
WO2011051769A2 (en) Method and system for determining a quotient value
WO2019167859A1 (ja) 見積り装置および見積り方法
CN120743221A (zh) 一种概率符号生成方法、概率符号的运算方法及设备
US11029921B2 (en) Performing processing using hardware counters in a computer system
RU2666303C1 (ru) Способ и устройство для вычисления хэш-функции
US20020095450A1 (en) Method and device for computing the number of bits set to one in an arbitrary length word
KR20080050226A (ko) 모듈러 곱셈 장치 및 설계 방법
US20160036677A1 (en) Monitoring device usage
JP7724878B2 (ja) モジュラ算術演算を加速する方法、システム、プログラム
JP3912958B2 (ja) データ駆動型処理装置およびデータ駆動型処理装置におけるデータ処理方法
CN115801791A (zh) 一种实现负载均衡的方法和负载均衡器
JP4601657B2 (ja) トラヒックシェーピング装置および方法
JPH09282287A (ja) 通信処理システム
JP4806716B2 (ja) 通信品質制御装置、及び通信品質制御方法
CN114006862A (zh) 报文转发方法、装置和设备及计算机存储介质
CN111488380A (zh) 一种实时判断流数据分布不对称性的方法
CN104115457B (zh) 时延计时设备、管理多个时延的方法及延迟多个数据包的装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101022

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101026

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101122

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131203

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4637154

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250