JP2004253960A - Data transfer apparatus - Google Patents

Data transfer apparatus Download PDF

Info

Publication number
JP2004253960A
JP2004253960A JP2003040827A JP2003040827A JP2004253960A JP 2004253960 A JP2004253960 A JP 2004253960A JP 2003040827 A JP2003040827 A JP 2003040827A JP 2003040827 A JP2003040827 A JP 2003040827A JP 2004253960 A JP2004253960 A JP 2004253960A
Authority
JP
Japan
Prior art keywords
unit
data
packet
buffer
counter
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.)
Granted
Application number
JP2003040827A
Other languages
Japanese (ja)
Other versions
JP4086676B2 (en
Inventor
Yosuke Kikuchi
陽介 菊池
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.)
NEC Engineering Ltd
Original Assignee
NEC Engineering Ltd
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 NEC Engineering Ltd filed Critical NEC Engineering Ltd
Priority to JP2003040827A priority Critical patent/JP4086676B2/en
Publication of JP2004253960A publication Critical patent/JP2004253960A/en
Application granted granted Critical
Publication of JP4086676B2 publication Critical patent/JP4086676B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To improve the transmission efficiency for transfer of data from a plurality of input transmission lines to one output transmission line by shortening the transfer standby time even when the number of input transmission lines increases, and when a packet having a long packet length is inputted. <P>SOLUTION: A data transfer apparatus has a plurality of input ports P1 to Pn, a plurality of buffer parts 211 to 21n which store packet data inputted to the plurality of input ports, weighting parts 231 to 23n, and 241 to 24n which set weighting values of data transfer among the plurality of input ports according to units of read processes of the buffer parts, a scheduling part 31 which determines priority order for reading processes for packet data stored in the buffer parts and multiplexes packet data according to the priority order, and an output port P20 which outputs the data sent out of the scheduling part 31 to the outside. <P>COPYRIGHT: (C)2004,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、データ転送装置に関し、特に、複数の入力ポートに入力されたパケットデータを多重させて出力するデータ転送装置に関する。
【0002】
【従来の技術】
複数の入力ポートから入力されたパケットデータを、バッファに格納した後、多重して出力するデータ転送装置のスケジューリング方式の代表的な例として、ラウンドロビン方式がある。ラウンドロビン方式によるデータ転送では、初期条件として決められた優先度順位(以下、「基本優先度順位」と呼ぶ)に従い、バッファに格納されたデータを送出する順位を決定する。特に、各ポート間に対しての優先比率(以下、「重み付け」と呼ぶ)を付けたい場合には、前述のラウンドロビン方式に各ポート間の重み付けを設定した重み付けラウンドロビン方式が使用される。
【0003】
この重み付けラウンドロビン方式によるデータ転送では、基本優先度順位に併せ、重み付け値によってデータ送出順位を決定することにより、ポート毎のデータ転送速度や、データ送出量を調整する。図10は、上記重み付けラウンドロビン方式を使用したデータ転送装置の構成例である。以下、同図を参照しながら、上記データ転送装置の構成要素及び動作について説明する。
【0004】
初期設定として、重み付け値は、重み記憶部741〜74nに、パケット数単位で設定されている。さらに、重み付けカウンタ部731〜73nは、上記重み付け値をカウンタの初期値としてセットする。そして、複数のポートP21〜P2nからパケットが入力されると、パケットは、入力インターフェース部701〜70nを介し、一度各ポート処理部711〜71nのバッファ部721〜72nへ格納される。次に、各バッファ部721〜72nは、パケットが格納されていることを通知するためのデータ待機信号851〜85nを、スケジューリング部751の優先順位スケジューリング部771へ発出すると、優先順位スケジューリング部771において、各ポート処理部711〜71nに入力されているパケットを順番に送出させるためのスケジューリング処理が行われる。優先順位スケジューリング部771は、スケジューリング処理により決定した順番に、出力要求信号861をバッファ部721〜72nへ送出し、パケットを多重部781へ送出させる。
【0005】
一例として、ポート処理部711に出力要求信号861が送出されると、重み付けカウンタ部731では、バッファ部721からパケットデータが送出される毎にカウントダウン処理を行う。その後、カウンタ値が“0”になると、ポート処理部711からのデータ送出を停止させるため、転送禁止信号841を優先順位スケジューリング部771へ送出する。また、バッファ部721から送出されたパケットは、多重部781において、他のポート処理部712〜71nからのパケットと多重され、出力インターフェース部791から、ポートP30へ出力される。
【0006】
このデータ転送装置では、以上の動作を繰り返すことによりデータ転送を行う。また、優先順位スケジューリング部771は、以下の要領でスケジューリング処理を行う。
▲1▼.初期条件として決められている基本優先度順位に従い、パケット送出の順位を決定する。ここでは、ポート間の重み付けを考慮する必要はない。例えば、ポート処理部711、ポート処理部712、ポート処理部713・・・ポート処理部71nの順にパケットを送出し、以後、他の例でも断りのない限り、各ポート処理部の基本優先順位は、ポート処理部711、ポート処理部712、ポート処理部713・・・ポート処理部71nの順とする。
▲2▼.ポート処理部711〜71nからのデータ待機信号が入力されていない場合には、▲1▼による順番をスキップする。
▲3▼.ポート処理部711〜71nからの転送禁止信号が入力されている場合には、順位をスキップする。
▲4▼.▲1▼〜▲3▼により、全ポートについて処理が終了した場合には、基本優先度順位の先頭の順位に戻り、同じ処理を繰り返す。
【0007】
上記のスケジューリング処理に従い、優先順位スケジューリング部771は、出力要求信号861を送出する。また、すべてのポート処理部711〜71nから、転送禁止信号841が優先順位スケジューリング部771に入力されると、カウントクリア発生部761は、カウントクリア信号をすべてのポート処理部711〜71nへ送出し、再び、各重み付けカウンタ部731〜73nのカウンタ値を初期値へ戻す。この方式では、前述したように、重み付け値の大きい(カウンタ初期値が大きい)ポートが、その値に従い、優先的に多くのデータを転送する。
【0008】
従来、以上のような重み付けラウンドロビン方式でデータ転送を行う場合には、入力データが可変長データであると、入力データを固定長に分割し、各々の固定長データに対して重み付けを行い、入力データのスケジューリングを行う方式が存在する。以下、この方式を従来方式1という。
【0009】
一方、特許文献1に記載されているように、1回の転送許可による伝送保障データ容量を制御することで入力データのスケジューリングを行う方式がある。以下、この方式を従来方式2という。
【0010】
従来方式1の例を図11に示す。この方式では、入力ポートからのパケットデータをバッファ部721〜725へ入力する前に、分割部901〜905において、可変長パケットから、ある固定長の長さのデータへ分割して各バッファ部721〜725へ格納する。ここで、各ポートに設置する重み付け値は、その分割された固定長の数の単位で設定する。そして、この固定長データを、重み付けラウンドロビン方式に従ってデータ転送する。
【0011】
図11に示す状態から、データ転送を続けた場合の状態を図12に示す。
【0012】
入力インターフェース部701〜705から送出されたパケットは、分割部901〜905において分割され、バッファ部721〜725へ格納される。そして、ポート処理部711〜715の順に基本優先順位が決まっているため、パケットデータ11、21、31、41の順にデータ送出を行う。ここで、パケットデータ51の順番では、重み付けカウンタ値が、“0”であるため、送出の順番をスキップし、次のパケットデータ12を送出させる。以上の動作をパケットデータがなくなるまで繰り返すことにより、データを転送する。
【0013】
この方法の利点は、入力されるデータが可変長であっても、パケット長の大きさに関わらず、固定長の単位、すなわち、データの容量単位で重み付けを行い、データ転送が可能となることである。これによって、可変長のパケットデータのままデータ転送を行い、データ長が大きく異なるパケットを転送しようとした場合、各ポートの重み付け値が同じであり、同じパケット数を送出したとしても、重み付けカウンタのカウントの単位がパケット単位であるため、ポート毎の転送容量に数倍の開きが生ずる状態を防ぐことができる。すなわち、図13に示すように、ポート処理部711、712において可変長パケットを分割せずに、重み付けデータ転送を行い、その結果、転送速度に開きが生じた状態となることを防止することができる。
【0014】
次に、従来方式2の例を図14に示す。この方式では、固定長やパケット単位で重み付けを制御するのではなく、1回の転送許可による伝送保障データ容量(例えば10バイト/1回)を設け、それにより転送データ容量を制御する。この方式では、スケジューリング部751がバッファ部721〜725からデータを送出させる際に、伝送保証データ容量を超えるまではパケットを送出させ続ける。そして、伝送保証データ容量を超えた時、送出途中のパケットを送出し終わることを確認すると、次のポートの制御に移行する。この方式は、入力データが可変長であっても、入力データを分割することなく、データ容量単位の重み付けに従ってスケジューリングできるという特徴がある。
【0015】
図14に示す状態から、データ転送を続けた場合の状態を図15に示す。
【0016】
ポート処理部711のように、伝送保証データ容量よりも、送出待機中のデータ長が長い、または同じパケット11を送出する場合には、パケット11をすべて送出後、次のポートの処理へ移行する。ポート処理部712のように、伝送保証データ容量よりも、送出待機中のデータ長が小さい場合には、パケット21に続き、パケット22を送出後、次のポートの処理に移行する。ポート処理部713、714は、ポート処理部712と同様の処理を行い、ポート処理部715は、ポート処理部711と同様の処理を行う。
【0017】
【特許文献1】
特開2002−217961号公報
【0018】
【発明が解決しようとする課題】
従来方式1のデータ転送において、データ転送前の状態の例を図16に、転送後の状態の例を図17に示す。
【0019】
従来方式1では、固定長に分割することにより、スケジューリング処理を行うが、図17のポート処理部712の重み付けカウンタに示すように、1つのパケットの転送中に、重み付けカウンタのカウンタ値が“0”になる場合がある。この時、すべてのポート処理部711〜715のカウンタが“0”になるまで、バッファ部722のデータ送出は止められてしまうため、同図に示すように、パケットが分割されたままの状態が継続し、先に送出されたデータから、残りの後半のデータが送出されるまでのデータ送出待機時間が大きく開くことになる。
【0020】
そして、このデータ転送回路の後段では、パケットデータの転送後の状態を監視する回路が設置されることが多いため、この転送待機時間が長くなると、監視回路において、パケット長誤りや、ストップビット欠落エラー等の誤判定がなされ、不必要な警報を発生させてしまうおそれある。また、この方式では、分割処理を行う回路及び組み立て処理を行う回路を構築する必要があるため、全体の回路規模が大きくなってしまうという問題があった。
【0021】
一方、従来方式2のデータ転送において、転送前の状態の例を図18に、その後(転送途中)の状態の例を図19に示す。
【0022】
従来方式2では、伝送保障データ容量を設置することにより、転送データ容量を制御する。データ転送の単位は、パケットデータ1個分である。そのため、1つのポートに割り当てられる時間が比較的長くなる。そのため、図19のポート処理部714、715に示すように、データ長の長いパケットが入力されると、各バッファ部721〜725に格納されたパケットを送出するまでのデータ送出待機時間が長くなる。送出待機時間が長くなると、バッファ部721〜725からの送出処理が行われないが、入力インターフェース部701〜705からは新しいデータが次々と入力されるため、図20に示すような転送処理時間に対するバッファ部の内容量の関係になる。従って、いずれ、バッファ部のオーバーフローが発生してしまう可能性がある。
【0023】
また、入力ポート数が増加した場合でも、同様に、各バッファ部に格納されたパケットを送出するまでの送出待機時間が入力ポート数に比例して長くなる。パケットの送出待機時間が長くなると、バッファ部からの送出処理が行われないが、入力インターフェース部からは新しいデータが次々と入力されるため、いずれ、バッファ部のオーバーフローが発生するおそれがある。
【0024】
以上のようなバッファオーバーフローが発生すると、データ転送装置では、廃棄処理や再送要求処理等の処理が発生してしまうため、伝送路全体の伝送効率が低下することとなる。
【0025】
そこで、本発明は、上記従来のデータ転送装置における問題点に鑑みてなされたものであって、複数の入力伝送路から1つの出力伝送路へデータを転送する際に、入力伝送路数が多くなった場合、パケット長の長いパケットが入力された場合、及びパケットを分割した場合でも、転送待機時間を短くすることによって、不必要な警報の発生を防止するとともに、バッファオーバーフローの発生を抑制して伝送効率を上昇させ、高速処理に対応することができ、簡単な構成を有するデータ転送装置を提供することを目的とする。
【0026】
【課題を解決するための手段】
上記目標を達成するため、本発明は、データ転送装置であって、複数の入力ポートと、該複数の入力ポートの各々に入力されたパケットデータを格納する複数のバッファ部と、前記複数の入力ポート間のデータ転送における重み付け値を、前記バッファ部の読み出し処理の単位に基づいて設定する重み付け部と、前記バッファ部に格納されているパケットデータに対して読み出し処理を行うための優先順位を決定し、該優先順位に従って前記パケットデータを多重させるスケジューリング部と、該スケジューリング部から送出されたデータを外部に出力する出力ポートとを備えたことを特徴とする。
【0027】
本発明は、各入力ポート間の重み付け値をバッファ部の読み出し処理の単位(バッファリード単位)で設置することを特徴としている。例えば、バッファ部へのリード処理n回分等を重み付け値とする。ここで、1回のリード処理で読み出し可能なデータ容量は、バッファ部の種類等で様々で、小容量であるため、データ転送時の最小の容量に対して重み付けを行うこととなる。
【0028】
すなわち、本発明では、各ポートのバッファ部が1回の送出権利で送出できるデータ容量を前記バッファリード単位の1回分とする。従って、各ポートに対して、決められた優先度順位で、1回ずつバッファ部へ読み出し処理を行うことを繰り返すことによって、データ転送を行う。これにより、各ポートのデータ送出待機時間は平均化される。従って、入力ポートの数の増加や、データ長の長いパケットデータが数多く入力された場合でも、各ポートの送出待機時間は、ポート数に比例し、一定の待機時間になる。
【0029】
この時の転送時間に対するバッファ部内容量の関係を図9に示す。従来方式の場合の図20と比較しても判るように、バッファオーバーフローを発生しにくい状態を実現している。但し、各バッファ部にデータが格納されていない場合には、その平均以下の待機時間となり、また、後述するが、重み付けカウンタが“0”を示しているとき、すなわち、重み付けによる転送停止状態の時は例外である。
【0030】
以上のように、本発明では、データ転送単位としてバッファリード単位を使用することにより、1回の読み出し処理でのデータ容量が小さく、その単位で読み出し順位を決定するため、各入力ポート間でのデータ送出待機時間は、固定時間となる。また、重み付けの設定も簡易となる。
【0031】
これによって、データ長の長いパケットデータが入力された場合でも、データ送出待機時間に影響を与えないため、データ送出待機時間の増加によるバッファオーバーフローを抑制することができる。また、ポート数が増加した場合でも、データ送出待機時間は平均的であり、一つのポートに偏った時間で占有されることがないため、データ送出待機時間の増加によるバッファオーバーフローを抑制することができる。
【0032】
以上により、データ転送装置全体の伝送効率を向上させて高速処理に対応することができ、簡易な構成を有するデータ転送装置を提供することが可能となる。
【0033】
上記データ転送装置において、前記複数のバッファ部から出力される出力データから前記バッファ部に格納されたパケットのパケット長データを認識するパケット長認識部と、該パケット長認識部によって認識されたパケット長データに基づき、前記バッファ部から出力されたパケットの容量をカウントするパケットカウンタ部と、前記重み付け部によって設定された重み付け値に基づき、前記バッファ部からの出力データをカウントする重み付けカウンタ部とを備え、前記パケットカウンタ部及び前記重み付けカウンタ部のカウンタ値がともに”0”となったときにのみ、該バッファ部からのデータの出力を行わないようにすることができる。
【0034】
これにより、重み付けカウンタ値が“0”になった場合でも、パケット長カウンタ値が“0”にならなければ、転送禁止信号を送出しない、すなわち、重み付けカウントが“0”になり、さらに、その時に送出している可変長のパケットデータを全部送出し終わったときに、転送禁止信号を送出し、データの送出処理を停止させる。従って、本発明では、パケットを分割した単位での重み付け転送を行うにあたって、従来方式1にあるようなパケットが分割されたままの状態が継続することがなく、分割された状態でのデータ送出待機が長時間継続することを防止することができる。
【0035】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照しながら説明する。
【0036】
図1は、本発明にかかるデータ転送装置の全体構成を示し、このデータ転送装置は、各入力ポートP1〜Pnから入力されたパケットデータの入力インターフェース制御を行なう入力インターフェース部11〜1nと、入力インターフェース部11〜1nから入力されたパケットデータを格納して出力するための制御を行う複数のポート処理部21〜2nと、各ポート処理部21〜2nに格納されているパケットデータに対し、読み出し処理を行うための優先度順位を決定し、その決定した優先度順位に従って、各ポート処理部21〜2nからパケットデータを読み出し、そのパケットデータを多重させ、出力インターフェース部41へ送出するスケジューリング部31と、スケジューリング部31から送出されたデータを出力ポートP20へ出力する出力インターフェース部41とで構成される。
【0037】
入力インターフェース部11〜1nは、各入力ポートP1〜Pnからパケットの入力があると、各々対応するポート制御部21〜2nのバッファ部211〜21nに該パケットデータを書き込む。
【0038】
複数のポート処理部21〜2nは、各々同機能、同構成を備えている。そこで、一例として、ポート処理部21の構成を図2を参照しながら説明する。
【0039】
バッファ部211は、各入力インターフェース部11からの書き込み制御信号521を受信すると、書き込み処理を行い、入力パケットデータ511を格納する。また、バッファ部211は、スケジューリング部31から入力される読み出し制御信号により、読み出し処理を行い、格納されているデータは、スケジューリング部31へ送出される。
【0040】
バッファ監視部221は、入力インターフェース部11からのバッファ部211への書き込み制御信号521を監視し、バッファ部211の容量の監視を行う。バッファ部211内にデータが蓄積されている場合には、スケジューリング部31へ、データの送出命令を要求する読み出し要求信号551を発出する。また、バッファ監視部221は、バッファ部211への読み出し制御信号611を監視し、書き込み制御信号521との関係から、バッファ部211の内容量を監視する。さらに、バッファ監視部221は、バッファ部211内に書き込むための領域がなくなった場合には、スケジューリング部31へ、バッファ部211への書き込みが不可になったことを知らせるバッファフル信号631を送出する。
【0041】
重み付け記憶部231には、重み付け値が、バッファリード単位(バッファ部211の読み出し処理の単位)で格納され、重み付けカウンタ部241は、重み付け記憶部231から重み付け値571を入手し、カウンタの初期値とする。そして、重み付けカウンタ部241は、バッファ部211へ送出された読み出し制御信号611をカウンタの入力信号とし、カウントダウン処理を行う。同時に、重み付けカウンタ部241は、転送禁止信号発生部271へ、重みカウントフラグ561を、カウント中(例えば“High”)の論理として送出する。重み付けカウンタ部241は、カウンタ値が“0”になると、重み付け値のカウントが終了したことを伝えるため、転送禁止信号発生部271へ重みカウントフラグ561をカウント終了(例えば“Low”)の論理で送出する。また、重み付けカウンタ部241は、カウンタ値が“0”になると、“0”の状態を保持し、スケジューリング部31からカウントクリア信号531を受信すると、再びカウンタを初期値へ戻し、カウントダウン処理を繰り返す。
【0042】
パケット長認識部261は、バッファ部211から出力される出力データ601からパケットに関する情報を読み取る。パケットデータは、図3に示すように、パケットの先頭部にパケット長に関する情報が含まれているため、図2に示したパケット長認識部261は、パケットのスタートビットを監視し、そのパケットデータに含まれるパケット長データを記憶する。また、パケット長認識部261は、スタートビットを認識すると、パケットカウンタ部251へカウント開始を伝えるカウント開始トリガ621を与える。
【0043】
パケットカウンタ部251は、パケット長認識部261から、カウント開始トリガ621を受信すると、パケット長認識部261に格納されているパケット長データ591を初期値とし、バッファ部211へ送出された読み出し制御信号611をカウンタの入力信号として、カウントダウン処理を開始する。同時に、パケットカウンタ部251は、転送禁止信号発生部271へパケット送信フラグ581を、カウント中(例えば“High”)の論理として送出する。パケットカウンタ部251は、カウンタ値が“0”になると、1つのパケットの送信を終了したことを伝えるため、転送禁止信号発生部271へパケット送信フラグ581をカウント終了(例えば“Low”)の論理で送出する。また、パケットカウンタ部251は、カウンタ値が“0”になると、“0”の状態を保持し、再びパケット長認識部261からカウント開始トリガを受信すると、新たにパケット長認識部261に格納されているパケット長データ591を初期値とし、カウントダウン処理を繰り返す。
【0044】
転送禁止信号発生部271は、重み付けカウンタ部241からの重みカウントフラグ561が、カウント終了の論理、かつ、パケットカウンタ部251からのパケット送信フラグ581がカウント終了の論理であった場合には、スケジューリング部31へ転送禁止信号541を送出する。
【0045】
次に、スケジューリング部31について図4を参照しながら説明する。
【0046】
読み出し制御部313は、優先順位スケジューリング部312から、複数のポート処理部21〜2nのうち、1つポート処理部(例えば、ポート処理部21)に対しての読み出し指示信号641を受信すると、その指示されたポート処理部21のバッファ部211に対して、読み出し制御信号611を送出することにより、バッファ部211に格納されているデータの読み出し処理を行う。読み出し制御部313は、この処理を繰り返すことにより、読み出した各バッファ部211〜21nからの出力データ601〜60nについて多重処理を行い、1本の多重出力データ651として出力インターフェース部41へ転送する。
【0047】
優先順位スケジューリング部312は、各ポート処理部21〜2nからの読み出し要求信号551〜55nが一つでも受信されていれば、データを転送するための優先度順位を決定するスケジューリング処理を行う。優先順位スケジューリング部312における優先度順位の決定方法は、以下の通りである。
▲1▼.初期条件として決められている基本優先度順位に従う。ここでは、ポート間の重み付けを考慮する必要はない。例えば、ポート処理部21、ポート処理部22、ポート処理部23・・・ポート処理部2nの順にパケットを送出する。
▲2▼.ポート処理部21〜2nからの読み出し要求信号が入力されていない場合には、順位をスキップする。
▲3▼.ポート処理部21〜2nからの転送禁止信号が入力されている場合には、順位をスキップする。
▲4▼.▲1▼〜▲3▼により、全ポートについて処理が終了した場合には、基本優先度順位の先頭の順位に戻り、同じ処理を繰り返す。
【0048】
上記方法により、優先順位スケジューリング部312は、決定した順位に従い、読み出し制御部313へ、読み出し処理を実行させるための読み出し指示信号641を送出する。
【0049】
カウントクリア信号発生部311は、すべてのポート処理部21〜2nからの転送禁止信号541〜54nを受信すると、各ポート処理部21〜2nの重み付けカウンタを初期値に戻すため、カウントクリア信号531〜53nを送出する。また、カウントクリア信号発生部311は、各ポート処理部21〜2nからの、バッファフル信号631〜63nを一つでも受信すると、バッファオーバーフローの抑制のため、カウントクリア信号531〜53nを送出する。
【0050】
図1に示すように、出力インターフェース部41は、スケジューリング部31から送出されたパケットデータを、出力ポートP20へ出力する出力制御処理を行う。
【0051】
次に、上記構成を有する本発明にかかるデータ転送装置の動作について図5乃至図8を参照しながら説明する。
【0052】
データ転送装置の初期状態を図5に示す。初期設定として、各ポート処理部21〜25の重み付けカウンタ部241〜245には、重み付け値がバッファリード単位で読み込まれ、カウンタの初期値として設定されている。尚、動作の説明を簡易にするため、重み付け値は低い値を設定している。また、パケットカウンタ部251〜255の値の初期値は“0”である。また、図5に示した状態は、入力インターフェース部11〜15にパケットデータが入力され、そのデータが各々のポート処理部21〜25へ書き込まれ、スケジューリング部31からの読み出し処理を待機している状態である。
【0053】
この時、各ポート処理部21〜2n(ポート処理部24を除く)から、読み出し要求信号がスケジューリング部31へ発出されているため、スケジューリング部31により、スケジューリング処理が行われる。図5の状態から、ポート処理部21〜2n(ポート処理部24を除く)よりデータ転送を始めた場合のデータ転送後(すべての転送終了ではない)の状態を図6に示す。
【0054】
スケジューリング部31では、基本優先度順位に従い、ポート処理部21、22、23、24、25、21・・・の順にデータの読み出し処理を行うことにより、データ転送を行う。従って、図6に示すように、実際の読み出し順位は、パケットデータ11、21、31となる。ここで、ポート処理部24のバッファ部214では、パケットデータが格納されていないため、ポート処理部224からスケジューリング部31に対して読み出し要求信号を送出していない。従って、読み出し順位はスキップされ、次のパケットデータ51の転送が行われる。
【0055】
また、ポート処理部22のように、バッファ部212に格納されていたすべてのパケットデータ21、22、23の読み出し処理が終わると、スケジューリング部31への読み出し要求信号の送出が停止されるため、その後、パケットデータ33、53、14の順にデータの読み出しが行われ、次に、ポート処理部22に順番が回ったときに、読み出し順位をスキップされる。以上のように、パケットデータが格納されていないポート処理部はスキップされ、データ転送が行われる。
【0056】
さらに、重み付けカウンタ部241〜245は、パケットデータがスケジューリング部31から読み出し制御されると、カウンタのカウントダウン処理を行う。図5のポート処理部21を例に挙げると、初期値“10”から読み出し制御される(すなわち、データ転送される)毎に、カウントダウン処理が行われるため、図6に示すように、パケットデータ11、12、13、14がポート処理部21から送出後の、カウンタの値は“6”となる。
【0057】
また、パケットカウンタ部251〜255は、パケットデータがバッファ部211〜215から送出されると、パケット長情報を読み込み、それをバッファリード単位でカウンタの初期値とするため、パケットカウンタ部251〜255のカウンタの示す値は、パケット1個分に対する残りのパケット容量となる。
【0058】
図5のポート処理部21を例に挙げると、パケットデータ11が送出されると、パケットカウンタ部251のカウンタの初期値として“4”が取り込まれ、同時にカウントダウン処理を開始するため“3”の値になる。その後バッファリード単位で送出する毎に、カウントダウン処理を実施するため、ポート処理部21からパケットデータ11、12、13を送出した後は“1”となる。
【0059】
次に、重み付けカウンタ部241〜245のカウンタが“0”になった場合、及び、パケットカウンタ部251〜255のカウンタが“0”になった場合の動作を、データ転送前の状態を示す図7、及びデータ転送後の状態を示す図8を参照しながら説明する。
【0060】
図7において、ポート処理部21は、重み付けカウント部241のカウンタ値が“1”以上で、パケットカウント部251のカウンタ値が“0”であり、パケットデータがバッファ部211に格納されていない状態である。このように、パケットデータが格納されていない場合には、両カウンタの値に関わらず、スケジューリング部31からは、データ転送の順位がスキップされる。
【0061】
ポート処理部22は、重み付けカウント部242のカウンタ値が“1”以上で、パケットカウント部252のカウンタ値も“1”以上である。この場合には、重み付けカウント部242のカウンタが、“0”になっていないため、スケジューリング部31から、基本優先順位でデータ転送が行われ、データ転送の順位のスキップは行われない。
【0062】
ポート処理部24は、重み付けカウント部244のカウンタ値が“1”以上で、パケットカウント部254のカウンタ値が“0”である。この場合には、ポート処理部22と同様に、重み付けカウント部244のカウンタが、“0”になっていないため、スケジューリング部31から、基本優先順位でデータ転送が行われ、データ転送の順位のスキップは行われない。
【0063】
ポート処理部25は、重み付けカウント部245のカウンタ値が“0”で、パケットカウント部255のカウンタ値も“0”である。この場合には、スケジューリング部31からのデータ転送順位はスキップされ、データ転送は行われない。
【0064】
ポート処理部23は、重み付けカウント部243のカウンタ値が“0”で、パケットカウント部253のカウンタ値が“1”以上である。図7に示すように、パケットカウント部253のカウンタ値が“3”を示している、すなわち、まだパケット1個分を転送している途中であるため、重み付けカウント部243のカウンタ値が“0”であっても、スケジューリング部31は、パケットデータ31、32、33に関しては、データ転送の基本優先順位をスキップすることはない。しかし、パケットデータ33の送出後に、パケットカウント部253のカウンタ値が“0”になり、かつ、重み付けカウント部243のカウンタ値は“0”であるため、パケット34以降は、スケジューリング部31から、データ転送の順位がスキップされ、データ転送が行われず、図8のポート処理部23の状態となる。
【0065】
以上のように、データ転送を停止させるのは、図8のポート処理部23、25に示すような、重み付けカウント部243、245のカウンタ値が“0”で、パケットカウント部253、255のカウンタ値も“0”の状態になった時のみである。すなわち、図7のポート処理部23のように、重み付けカウント部243のカウンタ値が“0”であっても、パケットカウント部253のカウンタ値が“1”以上であれば、パケット1個分の転送が終わるまでは、データ転送を停止しない。これにより、パケットデータが分割されたままの状態が継続するような状態は発生しない。
【0066】
本装置では、以上の動作を繰り返し、すべての重み付けカウンタ241〜245のカウンタ値が“0”になると、すべての重み付けカウンタ241〜245のカウンタ値を初期値に戻し、データ転送を続ける。
【0067】
【発明の効果】
以上説明したように、本発明によれば、複数の入力伝送路から1つの出力伝送路へデータを転送する際に、入力伝送路数が多くなった場合等であっても、転送待機時間を短縮して不必要な警報の発生を防止するとともに、バッファオーバーフローの発生を抑制して伝送効率を上昇させ、高速処理に対応可能で、簡単な構成を備えたデータ転送装置を提供することができる。
【図面の簡単な説明】
【図1】本発明にかかるデータ転送装置の全体構成図である。
【図2】図1のデータ転送装置のポート処理部を示す構成図である。
【図3】図1のデータ転送装置で転送するパケットの一例を示す図である。
【図4】図1のデータ転送装置のスケジューリング部を示す構成図である。
【図5】図1のデータ転送装置の動作説明図である。
【図6】図1のデータ転送装置の動作説明図である。
【図7】図1のデータ転送装置の動作説明図である。
【図8】図1のデータ転送装置の動作説明図である。
【図9】本発明にかかるデータ転送装置における転送処理時間に対するバッファ部の容量の関係を示すグラフである。
【図10】従来のデータ転送装置の一例(従来方式1)を示す全体構成図である。
【図11】図10のデータ転送装置の動作説明図である。
【図12】図10のデータ転送装置の動作説明図である。
【図13】パケットを分割せずにデータ転送を行った場合の不具合を説明するための図である。
【図14】従来のデータ転送装置のもう一つの例(従来方式2)を示す動作説明図である。
【図15】従来方式2の動作説明図である。
【図16】従来方式1の問題点を説明するための動作説明図である。
【図17】従来方式1の問題点を説明するための動作説明図である。
【図18】従来方式2の問題点を説明するための動作説明図である。
【図19】従来方式2の問題点を説明するための動作説明図である。
【図20】従来方式2にかかるデータ転送装置における転送処理時間に対するバッファ部の容量の関係を示すグラフである。
【符号の説明】
11〜1n 入力インターフェース部
21〜2n ポート処理部
211〜21n バッファ部
221〜22n バッファ監視部
231〜23n 重み付け記憶部
241〜24n 重み付けカウンタ部
251〜25n パケットカウンタ部
261〜26n パケット長認識部
271〜27n 転送禁止信号発生部
31 スケジューリング部
311 カウントクリア信号発生部
312 優先順位スケジューリング部
313 読み出し制御部
41 出力インターフェース部
511〜51n 入力パケットデータ
521〜52n 書き込み制御信号
531〜53n カウントクリア信号
542〜54n 転送禁止信号
551〜55n 読み出し要求信号
561〜56n 重みカウントフラグ
571〜57n 重み付け値
581〜58n パケット送信フラグ
601〜60n 出力データ
611〜61n 読み出し制御信号
621〜62n カウント開始トリガ
631〜63n バッファフル信号
641〜64n 読み出し指示信号
P1〜Pn 入力ポート
P20 出力ポート
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a data transfer device, and more particularly, to a data transfer device that multiplexes and outputs packet data input to a plurality of input ports.
[0002]
[Prior art]
A typical example of a scheduling method of a data transfer device that stores packet data input from a plurality of input ports in a buffer and then multiplexes and outputs the data is a round robin method. In the data transfer by the round robin method, the order of transmitting the data stored in the buffer is determined according to the priority order determined as an initial condition (hereinafter, referred to as “basic priority order”). In particular, when it is desired to assign a priority ratio (hereinafter, referred to as "weighting") to each port, a weighted round-robin method in which weighting between each port is set in the round robin method described above is used.
[0003]
In the data transfer by the weighted round robin method, the data transmission order and the data transmission amount for each port are adjusted by determining the data transmission order based on the weighting value in addition to the basic priority order. FIG. 10 shows an example of the configuration of a data transfer device using the weighted round robin method. Hereinafter, the components and operation of the data transfer device will be described with reference to FIG.
[0004]
As an initial setting, the weight values are set in the weight storage units 741 to 74n in units of the number of packets. Further, the weighting counters 731 to 73n set the weighting values as initial values of the counter. When a packet is input from the plurality of ports P21 to P2n, the packet is temporarily stored in the buffer units 721 to 72n of the port processing units 711 to 71n via the input interface units 701 to 70n. Next, each of the buffer units 721 to 72n issues data standby signals 851 to 85n for notifying that a packet is stored to the priority scheduling unit 771 of the scheduling unit 751. Then, a scheduling process for sequentially transmitting packets input to the port processing units 711 to 71n is performed. The priority scheduling unit 771 sends the output request signals 861 to the buffers 721 to 72n in the order determined by the scheduling process, and sends the packets to the multiplexing unit 781.
[0005]
For example, when the output request signal 861 is sent to the port processing unit 711, the weighting counter unit 731 performs a countdown process every time packet data is sent from the buffer unit 721. Thereafter, when the counter value becomes “0”, a transfer prohibition signal 841 is transmitted to the priority scheduling unit 771 in order to stop data transmission from the port processing unit 711. The packet transmitted from the buffer unit 721 is multiplexed in the multiplexing unit 781 with the packets from the other port processing units 712 to 71n, and output from the output interface unit 791 to the port P30.
[0006]
In this data transfer device, data transfer is performed by repeating the above operations. The priority scheduling unit 771 performs a scheduling process in the following manner.
▲ 1 ▼. The order of packet transmission is determined according to the basic priority order determined as the initial condition. Here, it is not necessary to consider the weight between ports. For example, packets are transmitted in the order of the port processing unit 711, the port processing unit 712, the port processing unit 713,..., The port processing unit 71n, and thereafter, unless otherwise noted, the basic priority of each port processing unit is , A port processing unit 711, a port processing unit 712, a port processing unit 713,..., A port processing unit 71n.
▲ 2 ▼. When the data standby signals from the port processing units 711 to 71n are not input, the order according to (1) is skipped.
(3). When the transfer prohibition signals are input from the port processors 711 to 71n, the order is skipped.
▲ 4 ▼. When the processing is completed for all the ports according to (1) to (3), the processing returns to the top of the basic priority order, and the same processing is repeated.
[0007]
According to the above scheduling process, the priority scheduling unit 771 sends out the output request signal 861. When the transfer prohibition signal 841 is input to the priority scheduling unit 771 from all the port processing units 711 to 71n, the count clear generation unit 761 sends the count clear signal to all the port processing units 711 to 71n. Then, the counter values of the weighting counters 731 to 73n are returned to the initial values again. In this method, as described above, a port having a large weight value (a large counter initial value) transfers a large amount of data preferentially according to the value.
[0008]
Conventionally, when performing data transfer in the above-mentioned weighted round robin method, if the input data is variable-length data, the input data is divided into fixed lengths, and weighting is performed on each fixed-length data. There is a method for scheduling input data. Hereinafter, this method is referred to as conventional method 1.
[0009]
On the other hand, as described in Patent Literature 1, there is a method of scheduling input data by controlling a transmission guarantee data capacity by one transfer permission. Hereinafter, this method is referred to as conventional method 2.
[0010]
FIG. 11 shows an example of the conventional method 1. In this method, before inputting the packet data from the input port to the buffer units 721 to 725, the dividing units 901 to 905 divide the variable-length packet into data of a fixed length, and To 725. Here, the weight value set for each port is set in units of the number of the divided fixed length. Then, the fixed-length data is transferred according to the weighted round robin method.
[0011]
FIG. 12 shows a state where data transfer is continued from the state shown in FIG.
[0012]
Packets transmitted from the input interface units 701 to 705 are divided by division units 901 to 905 and stored in buffer units 721 to 725. Since the basic priorities are determined in the order of the port processing units 711 to 715, data transmission is performed in the order of the packet data 11, 21, 31, and 41. Here, in the order of the packet data 51, the weighting counter value is “0”, so that the transmission order is skipped and the next packet data 12 is transmitted. Data is transferred by repeating the above operations until there is no more packet data.
[0013]
The advantage of this method is that even if the input data is of variable length, regardless of the size of the packet length, weighting is performed in fixed length units, that is, data capacity units, and data transfer is possible. It is. With this, when data transfer is performed with variable-length packet data and packets with greatly different data lengths are to be transferred, the weighting value of each port is the same, and even if the same number of packets is transmitted, the weighting counter of the weighting counter is used. Since the count unit is a packet unit, it is possible to prevent a state in which the transfer capacity of each port is several times larger. That is, as shown in FIG. 13, it is possible to prevent the port processing units 711 and 712 from performing weighted data transfer without dividing the variable-length packets, thereby preventing the transfer speed from becoming an open state. it can.
[0014]
Next, an example of the conventional method 2 is shown in FIG. In this system, weighting is not controlled on a fixed length or packet basis, but a transmission guarantee data capacity (for example, 10 bytes / one time) is provided by permitting one transfer, thereby controlling the transfer data capacity. In this method, when the scheduling unit 751 sends data from the buffer units 721 to 725, it keeps sending packets until it exceeds the transmission guaranteed data capacity. Then, when it is confirmed that the transmission of the halfway-transmitted packet is completed when the transmission guarantee data capacity is exceeded, the control shifts to the control of the next port. This method has a feature that even if input data has a variable length, scheduling can be performed according to weighting in units of data capacity without dividing the input data.
[0015]
FIG. 15 shows a state where data transfer is continued from the state shown in FIG.
[0016]
When the length of the data waiting for transmission is longer than the transmission guarantee data capacity or the same packet 11 is transmitted as in the port processing unit 711, the process proceeds to the processing of the next port after transmitting all the packets 11. . When the data length during transmission standby is smaller than the transmission guarantee data capacity as in the port processing unit 712, after transmitting the packet 22 following the packet 21, the processing shifts to the processing of the next port. The port processing units 713 and 714 perform the same processing as the port processing unit 712, and the port processing unit 715 performs the same processing as the port processing unit 711.
[0017]
[Patent Document 1]
JP-A-2002-217961
[0018]
[Problems to be solved by the invention]
FIG. 16 shows an example of a state before data transfer and FIG. 17 shows an example of a state after data transfer in the data transfer of the conventional method 1.
[0019]
In the conventional method 1, the scheduling process is performed by dividing into a fixed length. However, as shown in the weighting counter of the port processing unit 712 in FIG. 17, the counter value of the weighting counter becomes “0” during the transfer of one packet. ". At this time, the transmission of data from the buffer unit 722 is stopped until the counters of all the port processing units 711 to 715 become “0”. Therefore, as shown in FIG. The data transmission standby time from the previously transmitted data to the transmission of the remaining second half data is greatly increased.
[0020]
Since a circuit for monitoring the state after the transfer of the packet data is often installed at the subsequent stage of the data transfer circuit, if the transfer standby time becomes longer, a packet length error or a stop bit is lost in the monitor circuit. There is a possibility that an erroneous determination such as an error is made and an unnecessary alarm is generated. Further, in this method, it is necessary to construct a circuit for performing the dividing process and a circuit for performing the assembling process, so that there is a problem that the entire circuit scale becomes large.
[0021]
On the other hand, in the data transfer of the conventional method 2, an example of a state before the transfer is shown in FIG. 18, and an example of a state after the transfer (during the transfer) is shown in FIG.
[0022]
In the conventional method 2, the transfer data capacity is controlled by setting the transmission guarantee data capacity. The unit of data transfer is one packet data. Therefore, the time allocated to one port becomes relatively long. Therefore, as shown in the port processing units 714 and 715 in FIG. 19, when a packet having a long data length is input, the data transmission waiting time until the packet stored in each of the buffer units 721 to 725 is transmitted becomes long. . If the transmission waiting time is long, the transmission processing from the buffer units 721 to 725 is not performed, but new data is successively input from the input interface units 701 to 705, so that the transmission processing time as shown in FIG. It becomes the relation of the internal capacity of the buffer unit. Therefore, there is a possibility that the buffer section will eventually overflow.
[0023]
Similarly, even when the number of input ports increases, the transmission standby time before transmitting the packets stored in each buffer unit increases in proportion to the number of input ports. If the transmission waiting time of the packet becomes longer, the transmission process from the buffer unit is not performed, but since new data is input one after another from the input interface unit, there is a possibility that the buffer unit will eventually overflow.
[0024]
When the buffer overflow as described above occurs, the data transfer apparatus performs processing such as discard processing and retransmission request processing, so that the transmission efficiency of the entire transmission path is reduced.
[0025]
Therefore, the present invention has been made in view of the above-mentioned problems in the conventional data transfer device, and when transferring data from a plurality of input transmission lines to one output transmission line, the number of input transmission lines is large. In the event that a packet with a long packet length is input, or when a packet is divided, by reducing the transfer standby time, unnecessary alarms are prevented and buffer overflows are suppressed. It is an object of the present invention to provide a data transfer device which can increase transmission efficiency, cope with high-speed processing, and has a simple configuration.
[0026]
[Means for Solving the Problems]
In order to achieve the above object, the present invention provides a data transfer device, comprising: a plurality of input ports; a plurality of buffer units for storing packet data input to each of the plurality of input ports; A weighting unit that sets a weight value in data transfer between ports based on a unit of read processing of the buffer unit, and determines a priority order for performing read processing on packet data stored in the buffer unit. And a scheduling unit for multiplexing the packet data according to the priority order, and an output port for outputting data transmitted from the scheduling unit to the outside.
[0027]
The present invention is characterized in that a weight value between input ports is set in a unit of a read process of a buffer unit (a unit of a buffer read). For example, n times of read processing to the buffer unit and the like are set as weighting values. Here, the data capacity that can be read in one read process varies depending on the type of the buffer unit and the like and is small, so that the minimum capacity at the time of data transfer is weighted.
[0028]
That is, according to the present invention, the data capacity that can be transmitted by the buffer unit of each port with one transmission right is one buffer read unit. Therefore, data transfer is performed by repeating the process of reading out to the buffer unit once for each port in the determined priority order. Thereby, the data transmission standby time of each port is averaged. Therefore, even when the number of input ports increases or when a lot of packet data having a long data length is input, the transmission standby time of each port becomes a constant standby time in proportion to the number of ports.
[0029]
FIG. 9 shows the relationship between the transfer time and the capacity in the buffer unit at this time. As can be seen from comparison with FIG. 20 in the case of the conventional method, a state in which buffer overflow is unlikely to occur is realized. However, when data is not stored in each buffer unit, the standby time becomes equal to or shorter than the average, and when the weight counter indicates “0”, that is, when the transfer is stopped by weighting, as will be described later. Time is the exception.
[0030]
As described above, in the present invention, by using the buffer read unit as the data transfer unit, the data capacity in one read process is small, and the read order is determined in that unit. The data transmission standby time is a fixed time. Also, the setting of the weighting is simplified.
[0031]
As a result, even when packet data having a long data length is input, the data transmission standby time is not affected, so that a buffer overflow due to an increase in the data transmission standby time can be suppressed. Even when the number of ports increases, the data transmission standby time is average and is not occupied by a single port, so that buffer overflow due to an increase in the data transmission standby time can be suppressed. it can.
[0032]
As described above, the transmission efficiency of the entire data transfer device can be improved to cope with high-speed processing, and a data transfer device having a simple configuration can be provided.
[0033]
In the data transfer device, a packet length recognition unit that recognizes packet length data of a packet stored in the buffer unit from output data output from the plurality of buffer units, and a packet length recognized by the packet length recognition unit. A packet counter unit that counts the capacity of the packet output from the buffer unit based on data; and a weight counter unit that counts output data from the buffer unit based on a weight value set by the weighting unit. Only when the counter values of the packet counter unit and the weighting counter unit both become "0", data can be prevented from being output from the buffer unit.
[0034]
As a result, even when the weight counter value becomes "0", if the packet length counter value does not become "0", the transfer prohibition signal is not transmitted, that is, the weight count becomes "0". When the transmission of all variable-length packet data transmitted to the CPU has been completed, a transfer prohibition signal is transmitted to stop the data transmission processing. Therefore, in the present invention, when performing weighted transfer in units of packet division, the state in which the packet is divided as in the conventional method 1 does not continue, and the data transmission standby in the divided state is not performed. Can be prevented from continuing for a long time.
[0035]
BEST MODE FOR CARRYING OUT THE INVENTION
Next, embodiments of the present invention will be described with reference to the drawings.
[0036]
FIG. 1 shows the overall configuration of a data transfer device according to the present invention. The data transfer device includes input interface units 11 to 1n for controlling input interfaces of packet data input from input ports P1 to Pn, A plurality of port processors 21 to 2n for performing control for storing and outputting the packet data input from the interface units 11 to 1n, and read out the packet data stored in each of the port processors 21 to 2n. Scheduling unit 31 that determines a priority order for performing processing, reads out packet data from each of port processing units 21 to 2n according to the determined priority order, multiplexes the packet data, and sends out the multiplexed packet data to output interface unit 41. And the data transmitted from the scheduling unit 31 to the output port P20. Composed of the output interface section 41 for outputting.
[0037]
When a packet is input from each of the input ports P1 to Pn, the input interface units 11 to 1n writes the packet data to the buffer units 211 to 21n of the corresponding port control units 21 to 2n.
[0038]
The plurality of port processors 21 to 2n have the same function and the same configuration. Thus, as an example, the configuration of the port processing unit 21 will be described with reference to FIG.
[0039]
Upon receiving the write control signal 521 from each input interface unit 11, the buffer unit 211 performs a write process and stores the input packet data 511. Further, the buffer unit 211 performs a read process according to a read control signal input from the scheduling unit 31, and the stored data is sent to the scheduling unit 31.
[0040]
The buffer monitoring unit 221 monitors the write control signal 521 from the input interface unit 11 to the buffer unit 211, and monitors the capacity of the buffer unit 211. When data is stored in the buffer unit 211, a read request signal 551 for requesting a data transmission instruction is issued to the scheduling unit 31. Further, the buffer monitoring unit 221 monitors the read control signal 611 to the buffer unit 211 and monitors the internal capacity of the buffer unit 211 based on the relationship with the write control signal 521. Further, when there is no more area for writing in the buffer unit 211, the buffer monitoring unit 221 sends a buffer full signal 631 to the scheduling unit 31 to inform that the writing to the buffer unit 211 is disabled. .
[0041]
The weight storage unit 231 stores the weight values in buffer read units (units of the reading process of the buffer unit 211), and the weight counter unit 241 obtains the weight values 571 from the weight storage unit 231 and sets the initial value of the counter. And Then, the weighting counter unit 241 performs a countdown process using the read control signal 611 sent to the buffer unit 211 as an input signal of the counter. At the same time, the weight counter 241 sends the weight count flag 561 to the transfer prohibition signal generator 271 as the logic of counting (for example, “High”). When the counter value becomes “0”, the weighting counter unit 241 informs the transfer prohibition signal generating unit 271 of the weight count flag 561 with the logic of counting end (for example, “Low”) to notify that the counting of the weighting value has ended. Send out. When the counter value becomes “0”, the weighting counter unit 241 holds the state of “0”, and upon receiving the count clear signal 531 from the scheduling unit 31, returns the counter to the initial value again and repeats the countdown process. .
[0042]
The packet length recognition unit 261 reads information about a packet from the output data 601 output from the buffer unit 211. As shown in FIG. 3, the packet data includes information on the packet length at the beginning of the packet. Therefore, the packet length recognition unit 261 shown in FIG. 2 monitors the start bit of the packet, Is stored. When recognizing the start bit, the packet length recognizing unit 261 gives a count start trigger 621 for notifying the packet counter unit 251 of the start of counting.
[0043]
Upon receiving the count start trigger 621 from the packet length recognizing unit 261, the packet counter unit 251 sets the packet length data 591 stored in the packet length recognizing unit 261 as an initial value and sends the read control signal The countdown process is started using 611 as the input signal of the counter. At the same time, the packet counter unit 251 sends the packet transmission flag 581 to the transfer prohibition signal generation unit 271 as logic during counting (for example, “High”). When the counter value becomes “0”, the packet counter 251 informs the transfer prohibition signal generator 271 of the completion of counting the packet transmission flag 581 (eg, “Low”) in order to notify that transmission of one packet has been completed. To send. When the counter value becomes “0”, the packet counter unit 251 holds the state of “0”, and when receiving the count start trigger from the packet length recognition unit 261 again, the packet counter unit 251 newly stores the count start trigger in the packet length recognition unit 261. The packet length data 591 is used as an initial value, and the countdown process is repeated.
[0044]
If the weight count flag 561 from the weight counter 241 has the logic of counting end and the packet transmission flag 581 from the packet counter 251 has the logic of counting end, the transfer prohibition signal generator 271 The transfer prohibition signal 541 is transmitted to the unit 31.
[0045]
Next, the scheduling unit 31 will be described with reference to FIG.
[0046]
When the read control unit 313 receives a read instruction signal 641 to one port processing unit (for example, the port processing unit 21) among the plurality of port processing units 21 to 2n from the priority order scheduling unit 312, By sending the read control signal 611 to the buffer unit 211 of the port processing unit 21 instructed, the data stored in the buffer unit 211 is read. The read control unit 313 repeats this process, performs multiplexing processing on the read output data 601 to 60n from the buffer units 211 to 21n, and transfers the multiplexed data to the output interface unit 41 as one multiplexed output data 651.
[0047]
If at least one of the read request signals 551 to 55n from each of the port processing units 21 to 2n is received, the priority scheduling unit 312 performs a scheduling process for determining a priority order for transferring data. The method of determining the priority order in the priority order scheduling unit 312 is as follows.
▲ 1 ▼. Follow the basic priority order determined as the initial condition. Here, it is not necessary to consider the weight between ports. For example, the packets are transmitted in the order of port processing unit 21, port processing unit 22, port processing unit 23,... Port processing unit 2n.
▲ 2 ▼. If no read request signal has been input from the port processors 21 to 2n, the order is skipped.
(3). When a transfer prohibition signal is input from the port processors 21 to 2n, the order is skipped.
▲ 4 ▼. When the processing is completed for all the ports according to (1) to (3), the processing returns to the top of the basic priority order, and the same processing is repeated.
[0048]
According to the above-described method, the priority order scheduling unit 312 sends a read instruction signal 641 for causing the read control unit 313 to execute a read process according to the determined order.
[0049]
When receiving the transfer prohibition signals 541 to 54n from all the port processors 21 to 2n, the count clear signal generator 311 returns the count counters of the port processors 21 to 2n to the initial values. Send 53n. When receiving at least one of the buffer full signals 631 to 63n from each of the port processors 21 to 2n, the count clear signal generator 311 sends out the count clear signals 531 to 53n to suppress buffer overflow.
[0050]
As shown in FIG. 1, the output interface unit 41 performs an output control process of outputting the packet data transmitted from the scheduling unit 31 to the output port P20.
[0051]
Next, the operation of the data transfer apparatus according to the present invention having the above configuration will be described with reference to FIGS.
[0052]
FIG. 5 shows an initial state of the data transfer device. As an initial setting, the weighting values are read into the weighting counter units 241 to 245 of the respective port processing units 21 to 25 in buffer read units, and are set as initial values of the counters. In order to simplify the description of the operation, the weighting value is set to a low value. The initial values of the values of the packet counters 251 to 255 are “0”. In the state illustrated in FIG. 5, packet data is input to the input interface units 11 to 15, the data is written into the respective port processing units 21 to 25, and the process of reading from the scheduling unit 31 is awaited. State.
[0053]
At this time, since a read request signal is issued from each of the port processors 21 to 2n (excluding the port processor 24) to the scheduling unit 31, the scheduling unit 31 performs the scheduling process. FIG. 6 shows a state after data transfer (not all transfer ends) when data transfer is started from the port processing units 21 to 2n (excluding the port processing unit 24) from the state of FIG.
[0054]
The scheduling unit 31 performs data transfer by performing data reading processing in the order of the port processing units 21, 22, 23, 24, 25, 21,... In accordance with the basic priority order. Therefore, as shown in FIG. 6, the actual reading order is the packet data 11, 21, 31. Here, in the buffer unit 214 of the port processing unit 24, since no packet data is stored, the port processing unit 224 does not send a read request signal to the scheduling unit 31. Therefore, the reading order is skipped, and the next packet data 51 is transferred.
[0055]
Further, as in the port processing unit 22, when the read processing of all the packet data 21, 22, and 23 stored in the buffer unit 212 is completed, the transmission of the read request signal to the scheduling unit 31 is stopped. Thereafter, the data is read out in the order of the packet data 33, 53, and 14, and when the order is next turned to the port processing unit 22, the reading order is skipped. As described above, the port processing unit in which no packet data is stored is skipped, and data transfer is performed.
[0056]
Further, the weighting counter units 241 to 245 perform a countdown process of the counter when the packet data is read out from the scheduling unit 31 and controlled. Taking the port processing unit 21 of FIG. 5 as an example, the countdown process is performed every time read control is performed from the initial value “10” (that is, data transfer is performed). After the ports 11, 12, 13, and 14 have been transmitted from the port processing unit 21, the counter value becomes "6".
[0057]
When the packet data is sent from the buffer units 211 to 215, the packet counter units 251 to 255 read the packet length information and use it as the initial value of the counter in buffer read units. Is the remaining packet capacity for one packet.
[0058]
Taking the port processing unit 21 of FIG. 5 as an example, when the packet data 11 is transmitted, “4” is fetched as the initial value of the counter of the packet counter unit 251, and “3” is set to start the countdown process at the same time. Value. Thereafter, each time the packet data is transmitted in buffer read units, the countdown processing is performed, so that after the packet data 11, 12, and 13 are transmitted from the port processing unit 21, the value becomes "1".
[0059]
Next, the operation performed when the counters of the weighting counters 241 to 245 become “0” and the counters of the packet counters 251 to 255 become “0” are illustrated before the data transfer. 7, and a state after data transfer will be described with reference to FIG.
[0060]
In FIG. 7, the port processing unit 21 is in a state where the counter value of the weight counting unit 241 is “1” or more, the counter value of the packet counting unit 251 is “0”, and the packet data is not stored in the buffer unit 211. It is. As described above, when no packet data is stored, the order of data transfer is skipped from the scheduling unit 31 regardless of the values of both counters.
[0061]
In the port processing unit 22, the counter value of the weight counting unit 242 is "1" or more, and the counter value of the packet counting unit 252 is also "1" or more. In this case, since the counter of the weighting counting unit 242 is not “0”, data transfer is performed from the scheduling unit 31 in the basic priority order, and the data transfer order is not skipped.
[0062]
In the port processing unit 24, the counter value of the weight counting unit 244 is “1” or more, and the counter value of the packet counting unit 254 is “0”. In this case, as in the case of the port processing unit 22, the counter of the weighting counting unit 244 is not "0", so that the data transfer is performed from the scheduling unit 31 in the basic priority order. No skip is performed.
[0063]
In the port processing unit 25, the counter value of the weight counting unit 245 is “0”, and the counter value of the packet counting unit 255 is also “0”. In this case, the data transfer order from the scheduling unit 31 is skipped, and no data transfer is performed.
[0064]
In the port processing unit 23, the counter value of the weight counting unit 243 is “0”, and the counter value of the packet counting unit 253 is “1” or more. As shown in FIG. 7, the counter value of the packet counting unit 253 indicates “3”, that is, since one packet is still being transferred, the counter value of the weighting counting unit 243 is “0”. ", The scheduling unit 31 does not skip the basic priority of data transfer for the packet data 31, 32, and 33. However, after the transmission of the packet data 33, the counter value of the packet counting unit 253 becomes “0” and the counter value of the weighting counting unit 243 is “0”. The order of data transfer is skipped, data transfer is not performed, and the state of the port processing unit 23 in FIG. 8 is set.
[0065]
As described above, the data transfer is stopped because the counter values of the weighting counters 243 and 245 are “0” and the counters of the packet counters 253 and 255 as shown in the port processors 23 and 25 in FIG. Only when the value is "0". That is, as in the port processing unit 23 of FIG. 7, even if the counter value of the weight counting unit 243 is “0”, if the counter value of the packet counting unit 253 is “1” or more, one packet Until the transfer is completed, the data transfer is not stopped. As a result, a state in which the state in which the packet data is divided continues does not occur.
[0066]
In this apparatus, the above operation is repeated, and when the counter values of all the weighting counters 241 to 245 become “0”, the counter values of all the weighting counters 241 to 245 are returned to the initial values, and the data transfer is continued.
[0067]
【The invention's effect】
As described above, according to the present invention, when data is transferred from a plurality of input transmission paths to one output transmission path, the transfer standby time is reduced even if the number of input transmission paths increases. It is possible to provide a data transfer device which can be shortened to prevent generation of unnecessary alarms, suppress occurrence of buffer overflow, increase transmission efficiency, support high-speed processing, and have a simple configuration. .
[Brief description of the drawings]
FIG. 1 is an overall configuration diagram of a data transfer device according to the present invention.
FIG. 2 is a configuration diagram illustrating a port processing unit of the data transfer device of FIG. 1;
FIG. 3 is a diagram illustrating an example of a packet transferred by the data transfer device of FIG. 1;
FIG. 4 is a configuration diagram illustrating a scheduling unit of the data transfer device of FIG. 1;
FIG. 5 is an operation explanatory diagram of the data transfer device of FIG. 1;
FIG. 6 is an operation explanatory diagram of the data transfer device of FIG. 1;
FIG. 7 is an operation explanatory diagram of the data transfer device of FIG. 1;
FIG. 8 is an operation explanatory diagram of the data transfer device of FIG. 1;
FIG. 9 is a graph showing the relationship between the transfer processing time and the capacity of the buffer unit in the data transfer device according to the present invention.
FIG. 10 is an overall configuration diagram showing an example (conventional method 1) of a conventional data transfer device.
FIG. 11 is a diagram illustrating the operation of the data transfer device of FIG. 10;
FIG. 12 is an operation explanatory diagram of the data transfer device of FIG. 10;
FIG. 13 is a diagram for explaining a problem when data transfer is performed without dividing a packet.
FIG. 14 is an operation explanatory diagram showing another example (conventional method 2) of the conventional data transfer device.
FIG. 15 is an operation explanatory diagram of the conventional method 2.
FIG. 16 is an operation explanatory diagram for explaining a problem of the conventional method 1.
FIG. 17 is an operation explanatory diagram for describing a problem of the conventional method 1.
FIG. 18 is an operation explanatory diagram for explaining a problem of the conventional method 2.
FIG. 19 is an operation explanatory diagram for explaining a problem of the conventional method 2.
FIG. 20 is a graph showing a relationship between a transfer processing time and a capacity of a buffer unit in a data transfer device according to Conventional Method 2.
[Explanation of symbols]
11-1n input interface
21 to 2n port processing unit
211-21n buffer unit
221-22n buffer monitoring unit
231 to 23n weighting storage unit
241 to 24n weighting counter section
251 to 25n packet counter
261 to 26n Packet length recognition unit
271 to 27n transfer prohibition signal generator
31 Scheduling unit
311 Count clear signal generator
312 Priority scheduling unit
313 Read control unit
41 Output interface
511-51n Input packet data
521 to 52n Write control signal
531 to 53n count clear signal
542-54n transfer inhibit signal
551-55n read request signal
561 to 56n Weight count flag
571-57n Weight value
581-58n Packet transmission flag
601-60n output data
611-61n read control signal
621-62n count start trigger
631-63n buffer full signal
641 to 64n read instruction signal
P1 to Pn input port
P20 output port

Claims (2)

複数の入力ポートと、
該複数の入力ポートの各々に入力されたパケットデータを格納する複数のバッファ部と、
前記複数の入力ポート間のデータ転送における重み付け値を、前記バッファ部の読み出し処理の単位に基づいて設定する重み付け部と、
前記バッファ部に格納されているパケットデータに対して読み出し処理を行うための優先順位を決定し、該優先順位に従って前記パケットデータを多重させるスケジューリング部と、
該スケジューリング部から送出されたデータを外部に出力する出力ポートとを備えたことを特徴とするデータ転送装置。
Multiple input ports,
A plurality of buffer units for storing packet data input to each of the plurality of input ports;
A weighting unit that sets a weight value in data transfer between the plurality of input ports based on a unit of read processing of the buffer unit;
A scheduling unit that determines a priority order for performing read processing on the packet data stored in the buffer unit, and multiplexes the packet data according to the priority order;
An output port for outputting data transmitted from the scheduling unit to the outside.
前記複数のバッファ部から出力される出力データから前記バッファ部に格納されたパケットのパケット長データを認識するパケット長認識部と、
該パケット長認識部によって認識されたパケット長データに基づき、前記バッファ部から出力されたパケットの容量をカウントするパケットカウンタ部と、
前記重み付け部によって設定された重み付け値に基づき、前記バッファ部からの出力データをカウントする重み付けカウンタ部とを備え、
前記パケットカウンタ部及び前記重み付けカウンタ部のカウンタ値がともに”0”となったときにのみ、該バッファ部からのデータの出力を行わないようにすることを特徴とする請求項1記載のデータ転送装置。
A packet length recognition unit that recognizes packet length data of a packet stored in the buffer unit from output data output from the plurality of buffer units;
A packet counter unit that counts the capacity of the packet output from the buffer unit based on the packet length data recognized by the packet length recognition unit;
A weight counter unit that counts output data from the buffer unit based on a weight value set by the weight unit.
2. The data transfer according to claim 1, wherein data output from the buffer unit is not performed only when the counter values of the packet counter unit and the weighting counter unit both become "0". apparatus.
JP2003040827A 2003-02-19 2003-02-19 Data transfer device Expired - Fee Related JP4086676B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003040827A JP4086676B2 (en) 2003-02-19 2003-02-19 Data transfer device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003040827A JP4086676B2 (en) 2003-02-19 2003-02-19 Data transfer device

Publications (2)

Publication Number Publication Date
JP2004253960A true JP2004253960A (en) 2004-09-09
JP4086676B2 JP4086676B2 (en) 2008-05-14

Family

ID=33024568

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003040827A Expired - Fee Related JP4086676B2 (en) 2003-02-19 2003-02-19 Data transfer device

Country Status (1)

Country Link
JP (1) JP4086676B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007194879A (en) * 2006-01-19 2007-08-02 Fujitsu Ltd Drr band distributing method and apparatus
JP2007288491A (en) * 2006-04-17 2007-11-01 Nippon Telegr & Teleph Corp <Ntt> Dividing circuit of frame, and transmission system and method using dividing circuit
JP2013065065A (en) * 2011-09-15 2013-04-11 Ricoh Co Ltd Access control device, image forming device, and access control method

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007194879A (en) * 2006-01-19 2007-08-02 Fujitsu Ltd Drr band distributing method and apparatus
JP4724004B2 (en) * 2006-01-19 2011-07-13 富士通株式会社 DRR band distribution method and apparatus
JP2007288491A (en) * 2006-04-17 2007-11-01 Nippon Telegr & Teleph Corp <Ntt> Dividing circuit of frame, and transmission system and method using dividing circuit
JP2013065065A (en) * 2011-09-15 2013-04-11 Ricoh Co Ltd Access control device, image forming device, and access control method

Also Published As

Publication number Publication date
JP4086676B2 (en) 2008-05-14

Similar Documents

Publication Publication Date Title
US8225026B2 (en) Data packet access control apparatus and method thereof
US8615629B2 (en) Access scheduler
US20050172091A1 (en) Method and an apparatus for interleaving read data return in a packetized interconnect to memory
KR100638067B1 (en) High performance communication controller
CN112084136B (en) Queue cache management method, system, storage medium, computer device and application
US7957392B2 (en) Method and apparatus for high-performance bonding resequencing
US7634622B1 (en) Packet processor that generates packet-start offsets to immediately store incoming streamed packets using parallel, staggered round-robin arbitration to interleaved banks of memory
JP2007079789A (en) Computer system and event processing method
US9031077B2 (en) Systems, methods, and computer program products providing a data unit sequencing queue
CN114500401B (en) Resource scheduling method and system for coping with burst traffic
EP1508100A2 (en) Inter-chip processor control plane
EP2568388B1 (en) Processor to message-based network interface using speculative techniques
CN116955247B (en) Cache descriptor management device and method, medium and chip thereof
JP2004253960A (en) Data transfer apparatus
CN116107635A (en) Command distributor, command distribution method, scheduler, chip, board card and device
US8645597B2 (en) Memory block reclaiming judging apparatus and memory block managing system
JP6127872B2 (en) Arithmetic processing device and control method of arithmetic processing device
JP5772132B2 (en) Data transfer apparatus, data transfer method, and information processing apparatus
JP5428653B2 (en) Memory access processing apparatus and method
US20200379798A1 (en) Apparatus for transmitting packets using timer interrupt service routine
JP5631850B2 (en) Switch device
JP2011049983A (en) Frame output method and frame output apparatus
CN118550452A (en) DDR-based multi-channel cache queue scheduler and method
WO2008004301A1 (en) Data transfer unit, processing unit, and data transfer method
JP2004086797A (en) Processor system equipped with common memory

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051102

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070827

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070904

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071030

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: 20080212

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080219

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

Free format text: PAYMENT UNTIL: 20110228

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees