JP4186421B2 - パケット処理装置 - Google Patents
パケット処理装置 Download PDFInfo
- Publication number
- JP4186421B2 JP4186421B2 JP2001047548A JP2001047548A JP4186421B2 JP 4186421 B2 JP4186421 B2 JP 4186421B2 JP 2001047548 A JP2001047548 A JP 2001047548A JP 2001047548 A JP2001047548 A JP 2001047548A JP 4186421 B2 JP4186421 B2 JP 4186421B2
- Authority
- JP
- Japan
- Prior art keywords
- queue
- voq
- packet
- input
- packet processing
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3045—Virtual queuing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/101—Packet switching elements characterised by the switching fabric construction using crossbar or matrix
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
- H04L49/254—Centralised controller, i.e. arbitration or scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/50—Overload detection or protection within a single switching element
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
【発明の属する技術分野】
本発明は,入力バッファ型クロスバスイッチのパケット処理装置に関し,特に,当該パケット処理装置のアービタ方式に関する。
【0002】
【従来の技術】
入力回線毎に単一FIFOを持つ入力バッファ型クロスバスイッチのパケット処理装置が知られている。このパケット処理装置では,複数の入力回線から入力された複数のパケットが特定の出力方路に集中すると,HOL(Head Of Line)ブロッキングが発生する。このため,スループットが58.6%までしか上がらないことは良く知られている。そこで,入力バッファ部に,出力方路毎にVoQ(Virtual Output Queue)を設けるものが知られている。
【0003】
また,可変長パケットのスイッチング方式として,可変長パケットをある一定の固定長の短いセルに分割し,1セル単位でアービトレーションを行なうものと,特開2000−232482号公報に示されているように,可変長パケットをある一定の大きな固定長の入れ物に複数個詰めこみ,この入れ物単位でアービトレーションを行なうものとがある。このように,一回のアービトレーション処理でスイッチへ送出されるデータは,固定長の短いセルである場合,固定長の長い入れ物である場合があるが,本明細書では,一回のアービトレーション処理でスイッチに送出されるデータを1セグメントと呼ぶことにする。
【0004】
VoQを持つ入出力バッファ型クロスバスイッチでは,クロスバスイッチ部に通常バッファリング要素を持たないため,複数のVoQからの出力が競合しないように,アービトレーション機能を設ける必要がある。アービトレーションの良し悪しは,スイッチのスループットに大きな影響を与える。
【0005】
従来のアービトレーションの方法として,次の3つの方法が提案されている。第1に,VoQのパケットの有無を見てラウンドロビンで送出キューを選択する方法。この方法については,若山浩ニ 他,“大容量パケットスイッチ構成法に関する一検討”,信学技報IN98−102,及び特開2000−78148号公報に開示されている。第2に,時間をパラメーターとして見て,送出キューを選択する方法。この方法については,須藤俊之 他,“入力バッファスイッチのスケジューリングの一検討と試作”,信学技報SSE99−118に開示されている。第3に,キュー長を見て送出キューを選択する方法。この方法については,大場義洋,“キュー長を用いた重み付け公平パケットスケジューリングアルゴリズムの提案および性能評価”,信学技報SSE96−56に開示されている。
【0006】
【発明が解決しようとする課題】
上記の従来の技術では,スイッチに不均衡負荷が掛かった時に生じる問題点を図16を用いて説明する。図16は,4×4スイッチの入力ポート30の概念図である。31−1,−2,−3,−4はそれぞれの出力方路行きのVoQである。各VoQ内の四角形はセグメントを表している。31−1には他のキューと比べて高負荷なトラヒックが掛かっており,31−4には他のキューと比べて低負荷なトラヒックが掛かっている。
【0007】
VoQのパケットの有無を見てラウンドロビンで送出キューを選択する方法では,不均衡負荷下の状態において,ラウンドロビンにより公平に全VoQからパケットが読み出されるため,低負荷キューは高負荷キューの影響を全く受けることなくパケットを送出することが出来る。一方,高負荷なトラヒックが掛かっているVoQは,キュー長が伸びるため,遅延時間が他のVoQに比べ大きくなる。そのため,高負荷キューのバッファVoQ1がオーバーフローを起こし,図に示すように,セグメント32Aが廃棄される可能性がある。
【0008】
アービトレーションでVoQにGrant(送出権)を与える一つのパラメーターとしてパケットの送出間隔を用いる方式でも,同じような現象がおこる。高負荷が掛かっているVoQではキュー長が長くなる。キュー長が長くなると,パケットのVoQでの待ち時間が長くなる。そのため,待ち時間の長いパケットを有するVoQから優先的にパケットを送出する方式を採用すると,パケットは高負荷キューから優先的に送出されることになる。しかし,すべてのパケットについて待ち時間を管理するとなると,大量のカウンタが必要となり,実現は非常に困難にである。このため,多くの場合パケットがキューの先頭に到着した時から待ち時間をカウントする方式を採用している。これは,一アービトレーション周期毎にパケットが送出されなかったらその都度カウンターを1づつ増やし,パケットが送出されたらそのVoQのカウンターを0に戻すことである。この方式だと,高負荷が掛かっているVoQでも,一度パケットを送出してしまうと,カウンターが0に戻されるため,他の低負荷キューと同じ条件になる。このため,結局は不均衡負荷下において高負荷キューの遅延時間が大きくなり,バッファのオーバーフロー,パケットの廃棄を引き起こす可能性がある。
【0009】
キュー長を見てアービトレーションを行なう方法では,同じような不均衡負荷が掛かった時には高負荷キューから効率良くパケットが読み出される。そのため,高負荷キューの遅延時間は小さくなり,バッファのオーバーフローも防ぐことが出来る。しかし,31−4の低負荷キューに送出権が巡ってこなくなる現象(この現象はstarvationと呼ばれる)が発生するなどの問題がある。
【0010】
したがって,従来のアービタでは遅延に厳しい音声パケットや,廃棄に厳しい重要なデータパケットなどの品質劣化が起こる可能性がある。
【0011】
【課題を解決するための手段】
本発明のパケット処理装置は,VoQのパケット送出間隔と,キュー長とに基づき,クロスバスイッチに対するパケットの送出権を何れのVoQに与えるかを決定する。
【0012】
本発明のパケット処理装置の一実施例においては,入力回線毎に,パケッ各VoQに貯まっているセグメントの量を管理するキュー情報管理部と,各VoQのセグメントの送出間隔を管理する送出間隔管理部と,それら二つの情報から各VoQにレベルを割り振るアービタリクエスト(ARB−REQ)生成部とを設ける。アービタは,各VoQに割り振られたレベルに基づき,何れのVoQにGrantを与えるかを決定する。また,一実施例においては,セグメントの送出間隔を,VoQのキュー長に優先させて,VoQのレベルを設定する手段,または,これとは逆に,VoQのキュー長を,セグメントの送出間隔に優先させて,VoQのレベルを設定する手段を設ける。
【0013】
【発明の実施の形態】
図1は,本発明のパケット処理装置の一実施例を示す図である。本実施例のパケット処理装置では,VoQ11とクロスバスイッチ19とを結ぶ主信号線と異なる別線18により,ARB−REQ情報をアービタに送る。
【0014】
入力回線処理部16−i(i=1,・・・,n)は,入力回線103−iから入力されたパケットのパケットヘッダーを解析することにより,そのパケットの宛先情報を抽出する。入力バッファ10−iは,出力方路対応にn個のVoQキュー11−iを有している。入力回線処理部16は,VoQ制御部12に,その抽出した宛先情報を渡す。VoQ制御部12は,そのパケットを,宛先情報に応じた出力方路に対応するVoQに書き込むように,入力バッファ10に指示を与える。このようにして,パケットは指示されたVoQ11に書き込まれる。
【0015】
VoQ制御部12は,VoQ11毎に,滞留しているセグメントの量と,送出間隔との情報を管理する。ARB−REQ生成部13は,それらの情報に基づき,各VoQにレベルを割り振る。各VoQのレベルは,信号線18により,アービトレーション周期でアービタ14に集められる。アービタ14は,その情報から,どのVoQにGrantを与えるかを決定する。Grant情報は,信号線15により,ARB−ACKとして,各VoQ制御部12−i(i=1,・・・,n)に伝えられ,同時にアービタは,そのアービトレーション結果をクロスバスイッチ19内の経路構成に反映する。VoQ制御部12は,そのARB−ACK情報に基づき,入力バッファ10に対して,どのVoQからセグメントを送出するかを伝える。入力バッファ10より送出されたセグメントは,クロスバスイッチ19によりスイッチングされ,出力回線処理部17に送信される。出力回線処理部17は,クロスバスイッチ19から受信したセグメントからパケットを再構成し,それを出力回線104に送出する。
【0016】
図2を参照して,VoQ制御部12とARB−REQ生成部13の構成を詳述する。入力回線処理部16内のパケットヘッダー解析部401で処理されたパケットヘッダーは,VoQ制御部12のライトアドレス(WA)生成部403に送られる。WA生成部403では入力されたパケットをどのVoQ11に書きこむかを管理する。WA生成部403は,WA制御信号線412により,メモリアドレス情報を入力バッファ10に送信し,パケットを,その宛先に対応したVoQ11にパケットを書きこむよう指示を与える。同時に,WA生成部403は,キュー長管理部405と送出間隔管理部406に対しても,入力バッファ10に書き込まれたパケットの情報を伝える。キュー長管理部405は,入力バッファ10内の複数のVoQ対応に,キュー長カウンタ410を有している。図2に示す例では,入力バッファ10に4つのVoQがある場合を示しているため,キュー長管理部は,4つのキュー長カウンタ410を有している。キュー長管理部405は,現在のキュー長に対して,今回入ってきたパケットのセグメント長分だけキュー長カウンター410の数値をインクリメントする。送出間隔管理部406は,入力バッファ10内の複数のVoQ対応に,送出間隔カウンター411を有している。送出間隔管理部406は,パケットが入力されたVoQに,パケットが滞留している場合には何もしない。そうでない場合には,送出間隔管理部406は,一アービトレーション周期毎に数値を1ずつインクリメントするように,そのVoQに対応する送出間隔カウンター411に指示を与え,送出間隔時間を管理する。言い換えれば,送出間隔カウンター411が示すデータは,どの位の時間,対応するVoQからパケットが送出されていないかを示すものである。
【0017】
リードアドレス(RA)生成部404は,信号線15により送信されてきたARB−ACK情報に基づき,信号線413により,入力バッファに対して,どのVoQからセルを送出するかを伝える。同時に,リードアドレス(RA)生成部404は,キュー長管理部405と送出間隔管理部406にも入力バッファ10から読み出されるパケットの情報を伝える。キュー長管理部405は,クロスバスイッチ19にパケットを送出したVoQに対応するキュー長カウンター410をディクリメントする。また,送出間隔管理部406は,そのVoQに対応する送出間隔カウンター411の値を0に戻す。
【0018】
キュー長管理部405と送出間隔管理部406とにおける情報は,信号線414により,ARB−REQ生成部13に送信される。ARB−REQ生成部13は,入力バッファ10内の各キュー対応に,ARB−REQ生成パート409を有する。各ARB−REQ生成パート409−1〜−4は,ARB−REQ生成部13から受信した情報に基づき,対応するキューのレベル付けを行う。レベル付けを行う際は,レベル付与マトリクス416を参照する。レベル付与マトリクス416はマイコン20により,そのノードに入力されるトラヒック特性に合わせたアービタにユーザがチューニングすることが可能である。これらのレベルは,信号線18により,アービタ14に送信される。
【0019】
図3は,レベル付与マトリクス416の一実施例を示す図である。レベル付与マトリクスは,横軸にセグメント送出間隔71,縦軸にVoQに滞留しているセグメント数72をとっており,送出間隔時間が長くなるにつれ,そして,VoQに滞留しているセグメント数が増えるにつれVoQに付与されるレベルが大きくなるように作られている。レベル付与マトリクスは,キュー長(VoQに貯まっているセグメント量)とセグメント送出間隔の二つのファクターから算出されるが,VoQに入ってきたパケットが要求遅延時間以内に送出されるようにレベル付けを行うことも可能である。要求遅延時間とは,そのスイッチ内で許される最大の遅延時間のことである。
【0020】
高負荷の掛かっているVoQは他の低負荷のVoQに比べ,パケットの遅延時間が大きくなる傾向にある。そのため,キューにたまっているセグメント数が多いVoQには大きなレベルを付け,優先的にGrantが与えられるようにする。良い刈れば,このレベルは,Grant取得に関する優先度情報を表すものである。また,低負荷キューからも要求遅延時間内にはパケットを送出できるようにするため,送出間隔が長くなると,VoQレベルが増加するようにしている。
【0021】
VoQレベルLは,例えば,次式により求める。
【0022】
【数1】
【0023】
ここで,M:タイムアウト,t:送出間隔,s:現在のセグメント数,a:送出間隔係数,b:キュー長係数である。
【0024】
(M−a・t)/b・s≦1となった時にVoQレベルは最大値を取る。VoQレベルが最大値になった時,そのVoQは,送出権を得る可能性が高い状態になったことを意味する。
【0025】
Mは,スイッチの要求遅延時間と一アービトレーション時間から決まる値であり,レベル付与マトリクスのセグメント送出間隔71の最大値と,VoQに滞留するセグメント数72の最大値とを決める値となる。スイッチに求められている要求遅延時間をT,一アービトレーション時間をta,スイッチの入力ポート数をnとすると,Mは次式により求めることが出来る。
【0026】
【数2】
【0027】
要求遅延時間Tの間に何回アービトレーションが出来るかはT/taで求めることが出来る。全VoQのレベルが同時に最大値になっていると仮定すると,送出権が与えられるまでに,最大nアービトレーション時間待たされるVoQが現れる。したがって,パケットがそのVoQに滞在する時間がT/ta−nになる時に,VoQレベルが最大値をとるようにそのレベルを設定すると,一つしかセグメントが存在しないVoQであっても,要求遅延時間以内にセグメントを送出することが出来るようになる。図3に示したレベル付与マトリクスからもわかるように,一つしかセグメントがないVoQにおいても,送出間隔が大きくなるにつれてVoQレベルは上がっていくので,必ずしも最大遅延量の要求時間までセグメントが送出されないことにはならない。
【0028】
図3に示したレベル付与マトリクスは,タイムアウトM=20,a=1,b=1に設定したものである。送出間隔係数a,キュー長係数bを変化させることで,送出間隔重視のアービトレーションやキュー長重視のアービトレーションに変えることが出来る。例えば,音声など遅延に厳しいデータを多く処理しなければならない場所に,本実施例のパケット処理装置を使用する時には,低負荷キューに遅延に厳しいデータがキューイングされた時,低負荷キューの遅延時間を出来る限り抑える設定に変更する。具体的には,送出間隔係数aの値を1よりも大きな値にすることで,セグメントがあまり貯まっていないVoQ付与されるレベルについても,短い送出間隔で大きなレベルを取るように設定することが出来る。図4は送出間隔係数aの値を2に設定した時のレベル付与マトリクスの状態を表している。図3のレベル付与マトリクスと比較すると,VoQレベルは,セグメントの送出間隔が小さい時から大きな値となっている。このため,低負荷キューからも短い遅延時間でセグメントを送出することが出来る。
【0029】
逆に,遅延時間よりも,パケットの廃棄に厳しいデータを多く処理しなければならない場合に,本実施例のパケット処理装置を使用する場合,低負荷キューの遅延時間は若干延びるが,高負荷がかかり出したキューから優先的にセグメントを送出してバッファのオーバーフローを防止するようにする方が良い。このためには,キュー長係数bの値を1よりも大きな値にすることで,キュー長の変化に敏感に反応するVoQレベル付けを行えば良い。高負荷が掛かり出すとキュー長は長くなりだす。図5はキュー長係数を2に設定した時のレベル付与マトリクスの状態を表している。図3のレベル付与マトリクスと比較すると,VoQにあるセグメント数が少ない所でも大きなレベルを取っている。そのため,キュー長が長くなりだしたVoQに対して,早めに大きなレベルを与え送出権を与えやすくすることでバッファのオーバーフローを事前に防ぐことが出来る。また,全く送出間隔を考えず,キュー長のみを見てアービトレーションを行いたい時には,送出間隔係数aの値を0に設定することで対応可能となる。
【0030】
数1により算出されるVoQレベルは,すべて四捨五入され整数としてレベル付与マトリクスに表されている。また,M−a・t<b・sやM≦a・tとなった時は0<L≦15以外の値を取る。しかし,こういう状況になる時には,すでにVoQレベルが最大のレベル15を超えていることを表しているので,この数式により0<L≦15以外の数値が与えられたVoQに対しては,レベル15を与える。
【0031】
各ARB―REQ生成部からVoQ毎のレベル情報がアービタ14に集められる。
【0032】
図6は,アービタ14の一実施例を示す図である。全VoQレベル収集部121において,全VoQのレベル情報が集められる。
【0033】
図7は,ある時点における,Requestのあった全VoQからのの状態を表している。マトリクスの列は出力回線番号131を表しており,行は入力回線番号132を表している。例えば,入力回線番号が1で出力回線番号が1の欄には,図1の入力バッファ10−1における,出力回線処理部17−1に送信されるパケットがキューイングされるVoQ11−1−1に付与されたレベルが格納される。また,マトリクス中の○133はVoQレベルが同じであり,空白部は“○”よりも小さなレベルが付けられているとする。
【0034】
このような状態で,VoQに最も効率良くGrantを与えるには,入力回線番号2で出力回線番号4のVoQと,入力回線番号4で出力回線番号2のVoQにGrantを与える必要がある。このアービトレーションによれば,少なくとも2つのVoQに送出権を与えることが出来る。一方,マトリクスの入力回線番号2で出力回線番号2のVoQに送出権を与えてしまうと,入力回線番号2で出力回線番号4のVoQと,入力回線番号4で出力回線番号2のVoQには送出権を与えることが出来ない。したがって,この回のアービトレーションでは最上位レベルのVoQに1つしかGrantを与えることができなくなってしまう。効率良くGrantをVoQに与えるために,入力別勝ち抜き処理部122−1は,同一入力回線番号に属するVoQごとに,図8に示す勝ち抜き戦51を行ない,その中でVoQレベルの一番高い (その入力回線番号の中では一番送出要請が高い) VoQを選択する。
【0035】
図8において,数字は,同一の入力回線番号に属するVoQのレベルを表している。図8は,一番レベルが高いVoQが勝ち抜く様子を示している。図8では同じレベルのVoQが2つ存在しているが,こういう時はどちらか一方を勝ち残らせるのではなく同一レベルのVoQはすべて勝ち残らせるようにする。これは,図7を用いて説明したように,効率良くGrantを与えるためである。
【0036】
同様にして,出力別勝ち抜き処理部122−2は,同一出力回線番号に属するVoQ毎に,その中でVoQレベルの一番高い(その入力回線番号の中では一番送出要請が高い)VoQを選択する。
【0037】
勝ち抜き戦の結果,入力方向と出力方向において図9の勝敗組み合わせ141が考えられる。レベル再評価部124は,各VoQのレベル情報を,図10に示すレベル再評価表61に則り,0〜3の4レベルに縮退させ,再評価を行う。
【0038】
0〜3の4レベルに再評価されたVoQは,同一レベルVoQ選択部125において,レベル3のVoQから順にピックアップされる。ここでピックアップされたVoQはGrant付与部126でラウンドロビン選択によってGrantが与えられる。
【0039】
Grantの与えられたVoQと同一入力回線番号又は同一出力回線番号に存在するVoQからは,このアービトレーション周期において,これ以上Grantを与えることは出来ないので,送出権剥奪部127において,送出権を奪う。
【0040】
送出権を剥奪されたVoQの情報は,信号線123により,全VoQレベル収集部121に通知される。その情報から,まだ送出権の剥奪されていないVoQの間だけで再度勝ち抜き戦を行ないレベルの再評価をする。その後,先程の説明と同様に同一レベルVoQ選択部125によってレベル3のVoQがピックアップされ,Grant付与部によって,ラウンドロビン選択でGrantを与える。この反復作業を繰り返すことにより,最適の入力回線と出力回線との組み合わせを作り出すことが出来る。
【0041】
上記の工程でGrantを得たVoQと同一入力回線番号又は同一出力回線番号に存在するVoQからはこの回のアービトレーションではこれ以上Grantを与えることは出来ないので,送出権剥奪部127は,そのVoQから送出権を奪う。送出権を剥奪されたVoQの情報は,信号線129により,同一レベル選択部125に通知される。同一レベルVoQ選択部125は,まだ送出権のあるレベル2のVoQをピックアップし,Grant付与部によって,ラウンドロビン選択でGrantを与える。
【0042】
その後,レベル2のVoQにGrantを与えたのと同じ工程により,まだ送出権のあるレベル1のVoQにGrantが与えられる。その次に送出権があるレベル0のVoQにもGrantが与えられる。
【0043】
Grant情報はARB−ACK生成部128によりARB−ACK情報に変えられ,信号線18により入力バッファ管理部12のRA生成部404に送られる。RA生成部404は,ARB−ACK情報に基づき,セグメントを送出可能なVoQ11に対して,信号線413により,セグメントを送出するよう指示を送る。それと同時に,キュー長管理部405と送出間隔管理部406にも,どのVoQからセグメントを送出すべきかを通知する。キュー長管理部405ではGrantの出たVoQのセグメント数を管理しているキュー長カウンタ410の値を1減らす。送出間隔管理部406ではGrantの出たVoQの送出間隔を管理している送出間隔カウンタ411の値を0に戻す。
【0044】
図11は,上述したアービタ14における一連の処理を,フローチャートで表したものである。各入力バッファから集められたVoQレベルは入力別,出力別で勝ち抜き戦が行なわれ81,各VoQの送出要請の強い順にレベル3〜0までのレベルで再評価され直す82−1〜−4。 まず,レベル3のVoQを同一レベル選択部125でピックアップ83し,それらの物にラウンドロビンでGrantを与える83−1(このラウンドロビンは公平さを保たせるため,ポインターを持った2DRR(高城衛 他,“パケットの優先度を考慮した出力ポート別入力キュー付きパケットスイッチの改良” 信学技報SSE97−13)等を採用すれば良い)。Grantの与えられたVoQと同じ入力,出力にあるVoQからは同じアービトレーション周期に同時にセグメントを送出することは出来ないので,VoQの送出権を剥奪83−2する。
【0045】
本実施例では,アービタの性能を高めるため,次にレベル2の物にGrantを与えるのではなく,Grantの出ていないVoQのレベルを再評価前の0〜15までのレベルに一旦戻し,もう一度勝ち抜き戦を行ない,レベルの再評価を行なう84。この行程を繰り返すほど,アービトレーションで選ばれるキューの組み合わせは最適な物に近づいていく。
【0046】
再再評価の結果,レベル3の付いたVoQにGrantを与え83−1,Grantを得たVoQと同じ入出力にあるVoQの送出権を削除83−2する。
【0047】
続いて,レベル2のVoQ85にGrantを与え85−1,Grantを得たVoQと同じ入出力にあるVoQVoQの送出権を削除85−2する。
【0048】
続いて,レベル1のVoQ86にGrantを与え86−1,Grantを得たVoQと同じ入出力にあるVoQの送出権を削除86−2する。
【0049】
最後に,レベル0のVoQにもGrantを与える87。これで,全入力,出力の組み合わせにGrantを与え終り,アービトレーションの一工程は終了する。
【0050】
図12は,図11のフローチャートに従い行った,4×4スイッチのアービトレーションを示す図である。マトリクス21は,アービタ14の全VoQレベル収集部121に集められた,ARB−REQ生成部13でレベル付けされた全VoQのVoQレベルを視覚的に分かりやすく表したものである。マトリクスの行は入力回線番号を表しており,列は出力回線番号を表している。例えば,マトリクス21において,入力回線番号3で,出力回線番号1のVoQレベルは10であることがこのマトリクスから分かる。
【0051】
入力回線毎,及び出力回線毎に上述の勝ち抜き戦が行われ,その後,図10を用いて説明した再評価が行われる。マトリクス22は,その結果を示す。
【0052】
マトリクス23は,マトリクス22の中からレベル3のVoQを選び出し,それにGrantを与えたことを示している。Grantが与えられたVoQと同じ入力回線番号又は出力回線番号に属するVoQに対しては,同一アービトレーション周期において,Grantを与えることが出来ないので,それらから送出権を剥奪する。マトリクス24中の“×”は,送出権を剥奪したことを示している。
【0053】
次に,まだGrantの出ていないVoQのレベルを,ARB−REQ生成部で作られたVoQレベルに変換し直す。マトリクス25は,その変換後のマトリクスを示している。再び勝ち抜き戦,レベルの再評価を行なう。マトリクス26は,その結果を示している。マトリクス26において,レベル3のVoQに対してGrantが与えられる。ここでは,入力回線番号2で出力回線番号3のVoQに送出権が与えられる。マトリクス27は,それに送出権が与えられたことを示している。Grantが与えられたVoQと同じ入力回線番号,出力回線番号に属するVoQから,送出権を剥奪する。マトリクス28は,それらから送出権を剥奪したことを示している。次にレベル2のVoQに送出権を与える。マトリクス29は,それに送出権を与えたことを示している。図6で説明した例では,上記工程により,すべての入出力の組み合わせにGrantを与えたので一連のアービトレーション処理が終了する。これ以外の例では,レベル1及びレベル0のVoQにGrantを与える処理が必要になる場合もある。この場合に,図11に示すフローに従い,Grantを与える処理が行われる。
【0054】
図13は,本発明のパケット処理装置の他の実施例を示す。本実施例では,別線ではなくセグメントのヘッダ部分にARB−REQ情報を付与しインチャンネルでこれをアービタに送る。
【0055】
図1に示したパケット処理装置との違いは,信号線118により,一旦,ARB−REQ情報をARB−REQ付与部111に送り,セグメント113のヘッダ部分にARB−REQ情報114を付与してアービタ14に送る方式を採用している点,およびアービタ14がクロスバスイッチ19内に内蔵されている点である。図1の実施例と同様,ARB−REQ情報はアービタ14に集められ,ARB−REQ情報からどのVoQにGrantを与えるかを決定する。その後,Grant情報はARB−ACKとして,信号線129により,アービタからスイッチング済みセグメント115のヘッダー116に付与され。Grant情報は,ARB−ACK回収部112において集められて,信号線119により,VoQ制御部12に送られる。VoQ制御部12は,どのVoQからセグメントを送出するかを10の入力バッファに指示する。
【0056】
この方式の利点は,アービタ用に信号線を用意する必要がないため,信号線数を削減することができ,ハードウエアの作りをシンプルに出来る点である。
【0057】
図14と図15は,本発明のキュー情報管理アービタと,キューのパケットの有無のみを見てラウンドロビンを行うアービトレーション方式(若山浩ニ 他,“大容量パケットスイッチ構成法に関する一検討”信学技報IN98−102参照)とを同じ条件の下で,シミュレーションを行なった時の結果である。シミュレーションの条件は入力回線数4出力回線数4の4×4の入出力バッファ型クロスバスイッチを想定している。
【0058】
図14はユニフォームトラヒックをかけた時の,従来方式アービタと本願において提案される方式のアービタとの平均遅延時間の分布グラフである。縦軸92にはDelay(Segment),横軸91にはLoad Rate(%)をとっている。回線負荷が高くなるにつれ従来方式アービタの遅延量は大きくなるのに対し,提案方式アービタでは遅延時間の増加を抑えることが出来ている。
【0059】
ユニフォームトラヒックであっても,回線負荷が高くなると,多少トラヒック状態に偏りが生じてしまい,そのためキュー長,パケット送出間隔を見ている提案方式アービタの方がパケットの有無のみを見ている従来方式アービタよりも遅延時間を抑えられる。
【0060】
図15は4入力回線のうち,一つの入力回線に他よりも負荷の高いトラヒックをかけた時の高負荷キューと,低負荷キューの遅延分布をシミュレーションした時の結果である。縦軸102にProbability(Delay time>d),横軸101にDelay(segment)を取っている。
【0061】
菱形のプロットが高負荷のトラヒックが掛かっている入力ポートの遅延分布で,三角のプロットが低負荷のトラヒックが掛かっている入力ポートの遅延分布をあらわしている。
【0062】
高負荷キューの遅延分布を見ると,提案方式アービタは従来方式アービタに比べ,遅延時間をかなり抑えることが出来ていることが分かる。高負荷の掛かっているVoQのキュー長は他のVoQに比べ大きくなっている。キュー長を見てアービトレーションを行なう提案方式では,高負荷キューに多くGrantを出すことが出来るため,高負荷キューの遅延時間を大きく抑えることが出来る。
【0063】
一方その影響で低負荷キューにインパクトを与えることになるが,本発明では,送出間隔も見ているため,低負荷キューに与える影響も抑えることが出来る。
【0064】
【発明の効果】
キュ−長を管理しているため,不均衡負荷が掛かった時でも効率良いスイッチングを行なうことを可能とし,高負荷キューの遅延時間を効果的に抑え,かつ低負荷キューにもその影響をほとんど与えることなくパケットを送出することを可能とする。
低負荷キューでもユーザが設定したタイムアウト時間になるとVoQ送出要請リクエストは最大レベルを取ることになる。このため,次処理の勝ち抜き戦で,入力方向,出力方向でともに勝ち残りやすくなり,レベルの再評価を行なった際にも最高レベルになる可能性が高い。よって,そのVoQはセグメントの送出権を獲得しやすくなる。従って低負荷キューのstarvationを防ぐことが出来る。
【0065】
本発明を用いることで,均衡負荷にも不均衡負荷にも対応可能なアービタを提供することが出来る。
【図面の簡単な説明】
【図1】本発明のパケット処理装置の一実施例を説明するためのブロック図である。
【図2】図1のVoQ制御部12とARB−REQ生成部13の構成例を示すブロック図である。
【図3】図1のARB−REQ生成部でVoQにレベルを割り振るレベル付与マトリクスの一例である。
【図4】図1のARB−REQ生成部でVoQにレベルを割り振るレベル付与マトリクスの一例(送出間隔重視)である。
【図5】図1のARB−REQ生成部でVoQにレベルを割り振るレベル付与マトリクスの一例(キュー長重視)である。
【図6】図1のアービタ14の一構成例を示すブロック図である。
【図7】本発明におけるVoQレベルマトリクスの概念を説明するための図である。
【図8】本発明における勝ち抜き戦の概念を説明するための図である。
【図9】本発明の入力別,出力別勝ち抜き戦の勝敗全組み合わせを表す図である。
【図10】本発明のレベル再評価表の概念を説明するための図である。
【図11】図1のアービタ14が実行するアルゴリズムを説明するためのフローチャートである。
【図12】図1のアービタ14の処理を説明するための図である。
【図13】本発明のパケット処理装置の他の実施例の全体構成を表すブロック図である。
【図14】本発明によるアービタと,従来方式アービタの99%遅延を示すグラフである。
【図15】不均衡負荷を加えた場合の,本発明によるアービタと従来方式アービタのキュー長分布を示すグラフである。
【図16】高負荷キューのオーバーフロー,低負荷キューのstarvationの概念を説明するための図である。
【符号の説明】
10・・・入力バッファ,11・・・VoQ,12・・・VoQ制御部,13・・・ARB−REQ生成部,14・・・アービタ,15・・・ARB−ACK信号線,19・・・クロスバスイッチ。
Claims (7)
- パケット処理装置であって,
複数の入力回線処理部と,
複数の出力回線処理部と,
それぞれ,上記複数の出力回線処理部に対応して設けられた複数のキューバッファを有するとともに,上記複数の入力回線処理部に接続される複数の入力バッファ部と,
上記複数の入力バッファ部と,上記複数の出力回線処理部とに接続されるクロスバスイッチと,
上記複数の入力バッファ部の全てのキューバッファの中から,何れのキューバッファに対して,上記クロスバスイッチへパケットを送出する権利を付与するかのアービトレーションを行うアービタと,
上記複数の入力バッファ部の全てのキューバッファに対して,それらのキューバッファから上記クロスバスイッチにパケットが送出される時間間隔に関する情報と,それらのキューバッファのキュー長に関する情報とに基づき,上記クロスバスイッチへパケットを送出する権利の取得に関する優先度情報を求める手段とを有し,
さらに、上記優先度情報は下記の数式で定義されたものであり、
L= ( 1/ ln(( M−a・t ) ・ e/ (b・s) )) ×15
(但し、Mはタイムアウト、tは送出間隔、sは現在のセグメント数、aは送出間隔係数、bはキュー長係数、 e は自然対数の底を表す)
上記アービタは,上記複数の入力バッファ部の全てのキューバッファに対して求められた上記優先度情報に基づき,上記アービトレーションを行うパケット処理装置。 - 請求項1に記載のパケット処理装置であって,
上記全てのキューバッファの各キューバッファ対応に,そのキューバッファからパケットが上記クロスバスイッチに送出される時間間隔を測定する手段と,
上記複数の入力バッファ部の各キューバッファ対応に,そのキューバッファのキュー長を測定する手段とを更に有するパケット処理装置。 - 請求項1又は請求項2の何れかに記載のパケット処置装置であって,
上記全てのキューババッファの各キューバッファからパケットがあふれ出ないようにするため,上記優先度情報は,送出間隔係数aの値を1よりも大きな値にすることで上記時間間隔に関する情報よりも上記キュー長に関する情報にウエイトを置いて求められるパケット処理装置。 - 請求項1又は請求項2の何れかに記載のパケット処理装置であって,
上記全てのキューババッファの各キューバッファにパケットが滞留する時間を短くするために,上記優先度情報は,キュー長係数bの値を1よりも大きな値にすることで上記キュー長に関する情報よりも,上記時間間隔に関する情報にウエイトを置いて求められるパケット処理装置。 - 請求項1又は請求項2の何れかに記載のパケット処理装置であって、
入力回線毎及び出力回線毎に上記各キューバッファ間で上記数式で定義された優先度情報を比較し、該比較の結果に基づいて優先度情報を再評価して縮退させ、
上記アービタは上記縮退させた優先度情報に基づいて上記アービトレーションを行うことを特徴とするパケット処理装置。 - 請求項5に記載のパケット処理装置であって、
上記比較の結果入力回線及び出力回線について共に勝ち残った場合の再評価結果は、上記比較の結果入力回線及び出力回線について共に負けた場合の再評価の結果よりも優先度 が高いことを特徴とするパケット処理装置。 - 請求項5に記載のパケット処理装置であって、
出力回線についての上記比較結果が同じならば、上記比較の結果入力回線について勝ち残ったキューバッファが1つの場合の再評価結果は、入力回線についての比較の結果勝ち残ったキューバッファが2つ以上の場合の再評価結果よりも優先度が高いことを特徴とするパケット処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001047548A JP4186421B2 (ja) | 2001-02-23 | 2001-02-23 | パケット処理装置 |
US10/042,351 US7120160B2 (en) | 2001-02-23 | 2002-01-11 | Packet switching system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001047548A JP4186421B2 (ja) | 2001-02-23 | 2001-02-23 | パケット処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002252629A JP2002252629A (ja) | 2002-09-06 |
JP4186421B2 true JP4186421B2 (ja) | 2008-11-26 |
Family
ID=18908955
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001047548A Expired - Fee Related JP4186421B2 (ja) | 2001-02-23 | 2001-02-23 | パケット処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7120160B2 (ja) |
JP (1) | JP4186421B2 (ja) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7349388B1 (en) * | 2002-01-03 | 2008-03-25 | International Business Machines Corporation | Buffered crossbar switch and its method of operation |
US20050163138A1 (en) * | 2002-05-30 | 2005-07-28 | Takeshi Kanazawa | Packet transfer circuit and packet transfer method |
IL152676A0 (en) * | 2002-11-06 | 2003-06-24 | Teracross Ltd | Method and apparatus for high performance single block scheduling in distributed systems |
US20050036502A1 (en) * | 2003-07-23 | 2005-02-17 | International Business Machines Corporation | System and method for handling multicast traffic in a shared buffer switch core collapsing ingress VOQ's |
US7706394B2 (en) * | 2003-07-23 | 2010-04-27 | International Business Machines Corporation | System and method for collapsing VOQ's of a packet switch fabric |
US7486683B2 (en) * | 2003-07-23 | 2009-02-03 | International Business Machines Corporation | Algorithm and system for selecting acknowledgments from an array of collapsed VOQ's |
US7606154B1 (en) * | 2004-04-01 | 2009-10-20 | Juniper Networks, Inc. | Fair bandwidth allocation based on configurable service classes |
US8265091B2 (en) * | 2004-08-18 | 2012-09-11 | Avaya Inc. | Traffic multiplexing using timestamping |
JP4058038B2 (ja) | 2004-12-22 | 2008-03-05 | 株式会社日立製作所 | 負荷監視装置および負荷監視方法 |
JP4453915B2 (ja) | 2005-03-18 | 2010-04-21 | 富士通株式会社 | クロスバー装置、制御方法及びプログラム |
US7764689B2 (en) * | 2005-09-16 | 2010-07-27 | Hewlett-Packard Development Company, L.P. | Method and apparatus for arbitrating data packets in a network system |
CN101621460B (zh) * | 2008-06-30 | 2011-11-30 | 中兴通讯股份有限公司 | 一种分组调度方法和装置 |
CN102546098B (zh) * | 2011-12-15 | 2015-01-21 | 福建星网锐捷网络有限公司 | 数据传输装置、方法及系统 |
CN103546337A (zh) * | 2013-09-25 | 2014-01-29 | 上海交通大学 | 分组和电路混合交换系统中的流量需求估计方法 |
CN108259355B (zh) * | 2014-12-30 | 2022-03-11 | 华为技术有限公司 | 一种报文转发方法和装置 |
JP6642196B2 (ja) | 2016-03-29 | 2020-02-05 | 富士通株式会社 | 解析プログラム、解析装置、及び解析方法 |
KR102269068B1 (ko) * | 2017-03-10 | 2021-06-24 | 한국전자통신연구원 | 스위칭을 위한 스케줄링 방법 및 스케줄러 |
WO2019200568A1 (zh) * | 2018-04-18 | 2019-10-24 | 华为技术有限公司 | 一种数据通信方法及装置 |
US10623523B2 (en) * | 2018-05-18 | 2020-04-14 | Oracle International Corporation | Distributed communication and task handling to facilitate operations of application system |
US11265269B2 (en) * | 2020-03-02 | 2022-03-01 | Arista Networks, Inc. | Networking system having multiple components with multiple loci of control |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA1320257C (en) * | 1989-04-20 | 1993-07-13 | Ernst August Munter | Method and apparatus for input-buffered asynchronous transfer mode switching |
US5901296A (en) * | 1996-12-06 | 1999-05-04 | International Business Machines Corporation | Distributed scheduling for the transfer of real time, loss sensitive and non-real time data over a bus |
US20050058149A1 (en) * | 1998-08-19 | 2005-03-17 | Howe Wayne Richard | Time-scheduled and time-reservation packet switching |
JP3506612B2 (ja) | 1998-08-31 | 2004-03-15 | 富士通株式会社 | スケジューリング制御装置 |
JP3246457B2 (ja) * | 1998-11-13 | 2002-01-15 | 日本電気株式会社 | 優先予約スケジューリング方式およびその方法 |
US6720968B1 (en) * | 1998-12-11 | 2004-04-13 | National Instruments Corporation | Video acquisition system including a virtual dual ported memory with adaptive bandwidth allocation |
JP3339463B2 (ja) * | 1999-05-13 | 2002-10-28 | 日本電気株式会社 | スイッチ及びその入力ポート |
US6891834B1 (en) * | 1999-09-09 | 2005-05-10 | Avici Systems | Apparatus and method for packet scheduling |
US6717945B1 (en) * | 2000-06-19 | 2004-04-06 | Northrop Grumman Corporation | Queue size arbitration method and apparatus to enhance performance of crossbar cell switch |
US6848017B2 (en) * | 2000-10-26 | 2005-01-25 | Emc Corporation | Method and apparatus for determining connections in a crossbar switch |
US6879561B1 (en) * | 2000-11-03 | 2005-04-12 | Nortel Networks Limited | Method and system for wireless packet scheduling with per packet QoS support and link adaptation |
US6914881B1 (en) * | 2000-11-28 | 2005-07-05 | Nortel Networks Ltd | Prioritized continuous-deficit round robin scheduling |
US20020075803A1 (en) * | 2000-12-18 | 2002-06-20 | John Zaharychuk | Method and apparatus for dynamic optimization of a multi-service access device |
-
2001
- 2001-02-23 JP JP2001047548A patent/JP4186421B2/ja not_active Expired - Fee Related
-
2002
- 2002-01-11 US US10/042,351 patent/US7120160B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US7120160B2 (en) | 2006-10-10 |
JP2002252629A (ja) | 2002-09-06 |
US20020154649A1 (en) | 2002-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4186421B2 (ja) | パケット処理装置 | |
Chao et al. | Centralized contention resolution schemes for a large-capacity optical ATM switch | |
JP4879382B2 (ja) | パケットスイッチ、スケジューリング装置、廃棄制御回路、マルチキャスト制御回路、およびQoS制御装置 | |
US7525978B1 (en) | Method and apparatus for scheduling in a packet buffering network | |
KR100213409B1 (ko) | 공유 버퍼 메모리에 입각한 패킷 스위칭 장치 | |
JP3347926B2 (ja) | メモリ割り付けを改善したパケット通信システム及び方法 | |
EP1262085B1 (en) | Packet switching | |
US6914881B1 (en) | Prioritized continuous-deficit round robin scheduling | |
US7492782B2 (en) | Scalable crossbar matrix switching apparatus and distributed scheduling method thereof | |
EP1654616A2 (en) | Method and apparatus for bandwidth guarantee and overload protection in a network switch | |
US6717945B1 (en) | Queue size arbitration method and apparatus to enhance performance of crossbar cell switch | |
JP2004527176A (ja) | 最適化されたスケーラブル・ネットワーク・スイッチ | |
WO2006091175A1 (en) | Method and apparatus for buffer management in shared memory packet processors | |
US8018958B1 (en) | System and method for fair shared de-queue and drop arbitration in a buffer | |
Sarkies | The bypass queue in fast packet switching | |
US6181678B1 (en) | Binary-tree data element sorting device and ATM spacer comprising such a device | |
US7304949B2 (en) | Scalable link-level flow-control for a switching device | |
US20240031304A1 (en) | Virtual channel starvation-free arbitration for switches | |
JP3820272B2 (ja) | 交換装置 | |
JP4118757B2 (ja) | 重み付け優先制御方法 | |
Mhamdi et al. | Practical scheduling algorithms for high-performance packet switches | |
Olesinski et al. | Scalable alternatives to virtual output queuing | |
JP4002210B2 (ja) | 入力・クロスポイントバッファ型スイッチおよびそのスケジューリング方法 | |
CA2237516C (en) | Atm cell spacer | |
JPH07297831A (ja) | 入力バッファ型atmスイッチ回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060308 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060418 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071203 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071225 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080225 |
|
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: 20080819 |
|
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: 20080901 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110919 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120919 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120919 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130919 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |