(57)【要約】【課題】複数の入力伝送路から１つの出力伝送路へデータを転送する際に、入力伝送路数が多くなった場合や、パケット長の長いパケットが入力された場合等でも、転送待機時間を短縮し、伝送効率を向上させる。【解決手段】複数の入力ポートＰ１〜Ｐｎと、複数の入力ポートの各々に入力されたパケットデータを格納する複数のバッファ部２１１〜２１ｎと、複数の入力ポート間のデータ転送における重み付け値を、バッファ部の読み出し処理の単位に基づいて設定する重み付け部２３１〜２３ｎ、２４１〜２４ｎと、バッファ部に格納されているパケットデータに対して読み出し処理を行うための優先順位を決定し、優先順位に従ってパケットデータを多重させるスケジューリング部３１と、スケジューリング部３１から送出されたデータを外部に出力する出力ポートＰ２０とを備えたデータ転送装置。【選択図】  図１
2004253960.tif 000002
【特許請求の範囲】
【請求項１】
複数の入力ポートと、
該複数の入力ポートの各々に入力されたパケットデータを格納する複数のバッファ部と、
前記複数の入力ポート間のデータ転送における重み付け値を、前記バッファ部の読み出し処理の単位に基づいて設定する重み付け部と、
前記バッファ部に格納されているパケットデータに対して読み出し処理を行うための優先順位を決定し、該優先順位に従って前記パケットデータを多重させるスケジューリング部と、
該スケジューリング部から送出されたデータを外部に出力する出力ポートとを備えたことを特徴とするデータ転送装置。
【請求項２】
前記複数のバッファ部から出力される出力データから前記バッファ部に格納されたパケットのパケット長データを認識するパケット長認識部と、
該パケット長認識部によって認識されたパケット長データに基づき、前記バッファ部から出力されたパケットの容量をカウントするパケットカウンタ部と、
前記重み付け部によって設定された重み付け値に基づき、前記バッファ部からの出力データをカウントする重み付けカウンタ部とを備え、
前記パケットカウンタ部及び前記重み付けカウンタ部のカウンタ値がともに”０”となったときにのみ、該バッファ部からのデータの出力を行わないようにすることを特徴とする請求項１記載のデータ転送装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ転送装置に関し、特に、複数の入力ポートに入力されたパケットデータを多重させて出力するデータ転送装置に関する。
【０００２】
【従来の技術】
複数の入力ポートから入力されたパケットデータを、バッファに格納した後、多重して出力するデータ転送装置のスケジューリング方式の代表的な例として、ラウンドロビン方式がある。ラウンドロビン方式によるデータ転送では、初期条件として決められた優先度順位（以下、「基本優先度順位」と呼ぶ）に従い、バッファに格納されたデータを送出する順位を決定する。特に、各ポート間に対しての優先比率（以下、「重み付け」と呼ぶ）を付けたい場合には、前述のラウンドロビン方式に各ポート間の重み付けを設定した重み付けラウンドロビン方式が使用される。
【０００３】
この重み付けラウンドロビン方式によるデータ転送では、基本優先度順位に併せ、重み付け値によってデータ送出順位を決定することにより、ポート毎のデータ転送速度や、データ送出量を調整する。図１０は、上記重み付けラウンドロビン方式を使用したデータ転送装置の構成例である。以下、同図を参照しながら、上記データ転送装置の構成要素及び動作について説明する。
【０００４】
初期設定として、重み付け値は、重み記憶部７４１〜７４ｎに、パケット数単位で設定されている。さらに、重み付けカウンタ部７３１〜７３ｎは、上記重み付け値をカウンタの初期値としてセットする。そして、複数のポートＰ２１〜Ｐ２ｎからパケットが入力されると、パケットは、入力インターフェース部７０１〜７０ｎを介し、一度各ポート処理部７１１〜７１ｎのバッファ部７２１〜７２ｎへ格納される。次に、各バッファ部７２１〜７２ｎは、パケットが格納されていることを通知するためのデータ待機信号８５１〜８５ｎを、スケジューリング部７５１の優先順位スケジューリング部７７１へ発出すると、優先順位スケジューリング部７７１において、各ポート処理部７１１〜７１ｎに入力されているパケットを順番に送出させるためのスケジューリング処理が行われる。優先順位スケジューリング部７７１は、スケジューリング処理により決定した順番に、出力要求信号８６１をバッファ部７２１〜７２ｎへ送出し、パケットを多重部７８１へ送出させる。
【０００５】
一例として、ポート処理部７１１に出力要求信号８６１が送出されると、重み付けカウンタ部７３１では、バッファ部７２１からパケットデータが送出される毎にカウントダウン処理を行う。その後、カウンタ値が“０”になると、ポート処理部７１１からのデータ送出を停止させるため、転送禁止信号８４１を優先順位スケジューリング部７７１へ送出する。また、バッファ部７２１から送出されたパケットは、多重部７８１において、他のポート処理部７１２〜７１ｎからのパケットと多重され、出力インターフェース部７９１から、ポートＰ３０へ出力される。
【０００６】
このデータ転送装置では、以上の動作を繰り返すことによりデータ転送を行う。また、優先順位スケジューリング部７７１は、以下の要領でスケジューリング処理を行う。
▲１▼．初期条件として決められている基本優先度順位に従い、パケット送出の順位を決定する。ここでは、ポート間の重み付けを考慮する必要はない。例えば、ポート処理部７１１、ポート処理部７１２、ポート処理部７１３・・・ポート処理部７１ｎの順にパケットを送出し、以後、他の例でも断りのない限り、各ポート処理部の基本優先順位は、ポート処理部７１１、ポート処理部７１２、ポート処理部７１３・・・ポート処理部７１ｎの順とする。
▲２▼．ポート処理部７１１〜７１ｎからのデータ待機信号が入力されていない場合には、▲１▼による順番をスキップする。
▲３▼．ポート処理部７１１〜７１ｎからの転送禁止信号が入力されている場合には、順位をスキップする。
▲４▼．▲１▼〜▲３▼により、全ポートについて処理が終了した場合には、基本優先度順位の先頭の順位に戻り、同じ処理を繰り返す。
【０００７】
上記のスケジューリング処理に従い、優先順位スケジューリング部７７１は、出力要求信号８６１を送出する。また、すべてのポート処理部７１１〜７１ｎから、転送禁止信号８４１が優先順位スケジューリング部７７１に入力されると、カウントクリア発生部７６１は、カウントクリア信号をすべてのポート処理部７１１〜７１ｎへ送出し、再び、各重み付けカウンタ部７３１〜７３ｎのカウンタ値を初期値へ戻す。この方式では、前述したように、重み付け値の大きい（カウンタ初期値が大きい）ポートが、その値に従い、優先的に多くのデータを転送する。
【０００８】
従来、以上のような重み付けラウンドロビン方式でデータ転送を行う場合には、入力データが可変長データであると、入力データを固定長に分割し、各々の固定長データに対して重み付けを行い、入力データのスケジューリングを行う方式が存在する。以下、この方式を従来方式１という。
【０００９】
一方、特許文献１に記載されているように、１回の転送許可による伝送保障データ容量を制御することで入力データのスケジューリングを行う方式がある。以下、この方式を従来方式２という。
【００１０】
従来方式１の例を図１１に示す。この方式では、入力ポートからのパケットデータをバッファ部７２１〜７２５へ入力する前に、分割部９０１〜９０５において、可変長パケットから、ある固定長の長さのデータへ分割して各バッファ部７２１〜７２５へ格納する。ここで、各ポートに設置する重み付け値は、その分割された固定長の数の単位で設定する。そして、この固定長データを、重み付けラウンドロビン方式に従ってデータ転送する。
【００１１】
図１１に示す状態から、データ転送を続けた場合の状態を図１２に示す。
【００１２】
入力インターフェース部７０１〜７０５から送出されたパケットは、分割部９０１〜９０５において分割され、バッファ部７２１〜７２５へ格納される。そして、ポート処理部７１１〜７１５の順に基本優先順位が決まっているため、パケットデータ１１、２１、３１、４１の順にデータ送出を行う。ここで、パケットデータ５１の順番では、重み付けカウンタ値が、“０”であるため、送出の順番をスキップし、次のパケットデータ１２を送出させる。以上の動作をパケットデータがなくなるまで繰り返すことにより、データを転送する。
【００１３】
この方法の利点は、入力されるデータが可変長であっても、パケット長の大きさに関わらず、固定長の単位、すなわち、データの容量単位で重み付けを行い、データ転送が可能となることである。これによって、可変長のパケットデータのままデータ転送を行い、データ長が大きく異なるパケットを転送しようとした場合、各ポートの重み付け値が同じであり、同じパケット数を送出したとしても、重み付けカウンタのカウントの単位がパケット単位であるため、ポート毎の転送容量に数倍の開きが生ずる状態を防ぐことができる。すなわち、図１３に示すように、ポート処理部７１１、７１２において可変長パケットを分割せずに、重み付けデータ転送を行い、その結果、転送速度に開きが生じた状態となることを防止することができる。
【００１４】
次に、従来方式２の例を図１４に示す。この方式では、固定長やパケット単位で重み付けを制御するのではなく、１回の転送許可による伝送保障データ容量（例えば１０バイト／１回）を設け、それにより転送データ容量を制御する。この方式では、スケジューリング部７５１がバッファ部７２１〜７２５からデータを送出させる際に、伝送保証データ容量を超えるまではパケットを送出させ続ける。そして、伝送保証データ容量を超えた時、送出途中のパケットを送出し終わることを確認すると、次のポートの制御に移行する。この方式は、入力データが可変長であっても、入力データを分割することなく、データ容量単位の重み付けに従ってスケジューリングできるという特徴がある。
【００１５】
図１４に示す状態から、データ転送を続けた場合の状態を図１５に示す。
【００１６】
ポート処理部７１１のように、伝送保証データ容量よりも、送出待機中のデータ長が長い、または同じパケット１１を送出する場合には、パケット１１をすべて送出後、次のポートの処理へ移行する。ポート処理部７１２のように、伝送保証データ容量よりも、送出待機中のデータ長が小さい場合には、パケット２１に続き、パケット２２を送出後、次のポートの処理に移行する。ポート処理部７１３、７１４は、ポート処理部７１２と同様の処理を行い、ポート処理部７１５は、ポート処理部７１１と同様の処理を行う。
【００１７】
【特許文献１】
特開２００２−２１７９６１号公報
【００１８】
【発明が解決しようとする課題】
従来方式１のデータ転送において、データ転送前の状態の例を図１６に、転送後の状態の例を図１７に示す。
【００１９】
従来方式１では、固定長に分割することにより、スケジューリング処理を行うが、図１７のポート処理部７１２の重み付けカウンタに示すように、１つのパケットの転送中に、重み付けカウンタのカウンタ値が“０”になる場合がある。この時、すべてのポート処理部７１１〜７１５のカウンタが“０”になるまで、バッファ部７２２のデータ送出は止められてしまうため、同図に示すように、パケットが分割されたままの状態が継続し、先に送出されたデータから、残りの後半のデータが送出されるまでのデータ送出待機時間が大きく開くことになる。
【００２０】
そして、このデータ転送回路の後段では、パケットデータの転送後の状態を監視する回路が設置されることが多いため、この転送待機時間が長くなると、監視回路において、パケット長誤りや、ストップビット欠落エラー等の誤判定がなされ、不必要な警報を発生させてしまうおそれある。また、この方式では、分割処理を行う回路及び組み立て処理を行う回路を構築する必要があるため、全体の回路規模が大きくなってしまうという問題があった。
【００２１】
一方、従来方式２のデータ転送において、転送前の状態の例を図１８に、その後（転送途中）の状態の例を図１９に示す。
【００２２】
従来方式２では、伝送保障データ容量を設置することにより、転送データ容量を制御する。データ転送の単位は、パケットデータ１個分である。そのため、１つのポートに割り当てられる時間が比較的長くなる。そのため、図１９のポート処理部７１４、７１５に示すように、データ長の長いパケットが入力されると、各バッファ部７２１〜７２５に格納されたパケットを送出するまでのデータ送出待機時間が長くなる。送出待機時間が長くなると、バッファ部７２１〜７２５からの送出処理が行われないが、入力インターフェース部７０１〜７０５からは新しいデータが次々と入力されるため、図２０に示すような転送処理時間に対するバッファ部の内容量の関係になる。従って、いずれ、バッファ部のオーバーフローが発生してしまう可能性がある。
【００２３】
また、入力ポート数が増加した場合でも、同様に、各バッファ部に格納されたパケットを送出するまでの送出待機時間が入力ポート数に比例して長くなる。パケットの送出待機時間が長くなると、バッファ部からの送出処理が行われないが、入力インターフェース部からは新しいデータが次々と入力されるため、いずれ、バッファ部のオーバーフローが発生するおそれがある。
【００２４】
以上のようなバッファオーバーフローが発生すると、データ転送装置では、廃棄処理や再送要求処理等の処理が発生してしまうため、伝送路全体の伝送効率が低下することとなる。
【００２５】
そこで、本発明は、上記従来のデータ転送装置における問題点に鑑みてなされたものであって、複数の入力伝送路から１つの出力伝送路へデータを転送する際に、入力伝送路数が多くなった場合、パケット長の長いパケットが入力された場合、及びパケットを分割した場合でも、転送待機時間を短くすることによって、不必要な警報の発生を防止するとともに、バッファオーバーフローの発生を抑制して伝送効率を上昇させ、高速処理に対応することができ、簡単な構成を有するデータ転送装置を提供することを目的とする。
【００２６】
【課題を解決するための手段】
上記目標を達成するため、本発明は、データ転送装置であって、複数の入力ポートと、該複数の入力ポートの各々に入力されたパケットデータを格納する複数のバッファ部と、前記複数の入力ポート間のデータ転送における重み付け値を、前記バッファ部の読み出し処理の単位に基づいて設定する重み付け部と、前記バッファ部に格納されているパケットデータに対して読み出し処理を行うための優先順位を決定し、該優先順位に従って前記パケットデータを多重させるスケジューリング部と、該スケジューリング部から送出されたデータを外部に出力する出力ポートとを備えたことを特徴とする。
【００２７】
本発明は、各入力ポート間の重み付け値をバッファ部の読み出し処理の単位（バッファリード単位）で設置することを特徴としている。例えば、バッファ部へのリード処理ｎ回分等を重み付け値とする。ここで、１回のリード処理で読み出し可能なデータ容量は、バッファ部の種類等で様々で、小容量であるため、データ転送時の最小の容量に対して重み付けを行うこととなる。
【００２８】
すなわち、本発明では、各ポートのバッファ部が１回の送出権利で送出できるデータ容量を前記バッファリード単位の１回分とする。従って、各ポートに対して、決められた優先度順位で、１回ずつバッファ部へ読み出し処理を行うことを繰り返すことによって、データ転送を行う。これにより、各ポートのデータ送出待機時間は平均化される。従って、入力ポートの数の増加や、データ長の長いパケットデータが数多く入力された場合でも、各ポートの送出待機時間は、ポート数に比例し、一定の待機時間になる。
【００２９】
この時の転送時間に対するバッファ部内容量の関係を図９に示す。従来方式の場合の図２０と比較しても判るように、バッファオーバーフローを発生しにくい状態を実現している。但し、各バッファ部にデータが格納されていない場合には、その平均以下の待機時間となり、また、後述するが、重み付けカウンタが“０”を示しているとき、すなわち、重み付けによる転送停止状態の時は例外である。
【００３０】
以上のように、本発明では、データ転送単位としてバッファリード単位を使用することにより、１回の読み出し処理でのデータ容量が小さく、その単位で読み出し順位を決定するため、各入力ポート間でのデータ送出待機時間は、固定時間となる。また、重み付けの設定も簡易となる。
【００３１】
これによって、データ長の長いパケットデータが入力された場合でも、データ送出待機時間に影響を与えないため、データ送出待機時間の増加によるバッファオーバーフローを抑制することができる。また、ポート数が増加した場合でも、データ送出待機時間は平均的であり、一つのポートに偏った時間で占有されることがないため、データ送出待機時間の増加によるバッファオーバーフローを抑制することができる。
【００３２】
以上により、データ転送装置全体の伝送効率を向上させて高速処理に対応することができ、簡易な構成を有するデータ転送装置を提供することが可能となる。
【００３３】
上記データ転送装置において、前記複数のバッファ部から出力される出力データから前記バッファ部に格納されたパケットのパケット長データを認識するパケット長認識部と、該パケット長認識部によって認識されたパケット長データに基づき、前記バッファ部から出力されたパケットの容量をカウントするパケットカウンタ部と、前記重み付け部によって設定された重み付け値に基づき、前記バッファ部からの出力データをカウントする重み付けカウンタ部とを備え、前記パケットカウンタ部及び前記重み付けカウンタ部のカウンタ値がともに”０”となったときにのみ、該バッファ部からのデータの出力を行わないようにすることができる。
【００３４】
これにより、重み付けカウンタ値が“０”になった場合でも、パケット長カウンタ値が“０”にならなければ、転送禁止信号を送出しない、すなわち、重み付けカウントが“０”になり、さらに、その時に送出している可変長のパケットデータを全部送出し終わったときに、転送禁止信号を送出し、データの送出処理を停止させる。従って、本発明では、パケットを分割した単位での重み付け転送を行うにあたって、従来方式１にあるようなパケットが分割されたままの状態が継続することがなく、分割された状態でのデータ送出待機が長時間継続することを防止することができる。
【００３５】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照しながら説明する。
【００３６】
図１は、本発明にかかるデータ転送装置の全体構成を示し、このデータ転送装置は、各入力ポートＰ１〜Ｐｎから入力されたパケットデータの入力インターフェース制御を行なう入力インターフェース部１１〜１ｎと、入力インターフェース部１１〜１ｎから入力されたパケットデータを格納して出力するための制御を行う複数のポート処理部２１〜２ｎと、各ポート処理部２１〜２ｎに格納されているパケットデータに対し、読み出し処理を行うための優先度順位を決定し、その決定した優先度順位に従って、各ポート処理部２１〜２ｎからパケットデータを読み出し、そのパケットデータを多重させ、出力インターフェース部４１へ送出するスケジューリング部３１と、スケジューリング部３１から送出されたデータを出力ポートＰ２０へ出力する出力インターフェース部４１とで構成される。
【００３７】
入力インターフェース部１１〜１ｎは、各入力ポートＰ１〜Ｐｎからパケットの入力があると、各々対応するポート制御部２１〜２ｎのバッファ部２１１〜２１ｎに該パケットデータを書き込む。
【００３８】
複数のポート処理部２１〜２ｎは、各々同機能、同構成を備えている。そこで、一例として、ポート処理部２１の構成を図２を参照しながら説明する。
【００３９】
バッファ部２１１は、各入力インターフェース部１１からの書き込み制御信号５２１を受信すると、書き込み処理を行い、入力パケットデータ５１１を格納する。また、バッファ部２１１は、スケジューリング部３１から入力される読み出し制御信号により、読み出し処理を行い、格納されているデータは、スケジューリング部３１へ送出される。
【００４０】
バッファ監視部２２１は、入力インターフェース部１１からのバッファ部２１１への書き込み制御信号５２１を監視し、バッファ部２１１の容量の監視を行う。バッファ部２１１内にデータが蓄積されている場合には、スケジューリング部３１へ、データの送出命令を要求する読み出し要求信号５５１を発出する。また、バッファ監視部２２１は、バッファ部２１１への読み出し制御信号６１１を監視し、書き込み制御信号５２１との関係から、バッファ部２１１の内容量を監視する。さらに、バッファ監視部２２１は、バッファ部２１１内に書き込むための領域がなくなった場合には、スケジューリング部３１へ、バッファ部２１１への書き込みが不可になったことを知らせるバッファフル信号６３１を送出する。
【００４１】
重み付け記憶部２３１には、重み付け値が、バッファリード単位（バッファ部２１１の読み出し処理の単位）で格納され、重み付けカウンタ部２４１は、重み付け記憶部２３１から重み付け値５７１を入手し、カウンタの初期値とする。そして、重み付けカウンタ部２４１は、バッファ部２１１へ送出された読み出し制御信号６１１をカウンタの入力信号とし、カウントダウン処理を行う。同時に、重み付けカウンタ部２４１は、転送禁止信号発生部２７１へ、重みカウントフラグ５６１を、カウント中（例えば“Ｈｉｇｈ”）の論理として送出する。重み付けカウンタ部２４１は、カウンタ値が“０”になると、重み付け値のカウントが終了したことを伝えるため、転送禁止信号発生部２７１へ重みカウントフラグ５６１をカウント終了（例えば“Ｌｏｗ”）の論理で送出する。また、重み付けカウンタ部２４１は、カウンタ値が“０”になると、“０”の状態を保持し、スケジューリング部３１からカウントクリア信号５３１を受信すると、再びカウンタを初期値へ戻し、カウントダウン処理を繰り返す。
【００４２】
パケット長認識部２６１は、バッファ部２１１から出力される出力データ６０１からパケットに関する情報を読み取る。パケットデータは、図３に示すように、パケットの先頭部にパケット長に関する情報が含まれているため、図２に示したパケット長認識部２６１は、パケットのスタートビットを監視し、そのパケットデータに含まれるパケット長データを記憶する。また、パケット長認識部２６１は、スタートビットを認識すると、パケットカウンタ部２５１へカウント開始を伝えるカウント開始トリガ６２１を与える。
【００４３】
パケットカウンタ部２５１は、パケット長認識部２６１から、カウント開始トリガ６２１を受信すると、パケット長認識部２６１に格納されているパケット長データ５９１を初期値とし、バッファ部２１１へ送出された読み出し制御信号６１１をカウンタの入力信号として、カウントダウン処理を開始する。同時に、パケットカウンタ部２５１は、転送禁止信号発生部２７１へパケット送信フラグ５８１を、カウント中（例えば“Ｈｉｇｈ”）の論理として送出する。パケットカウンタ部２５１は、カウンタ値が“０”になると、１つのパケットの送信を終了したことを伝えるため、転送禁止信号発生部２７１へパケット送信フラグ５８１をカウント終了（例えば“Ｌｏｗ”）の論理で送出する。また、パケットカウンタ部２５１は、カウンタ値が“０”になると、“０”の状態を保持し、再びパケット長認識部２６１からカウント開始トリガを受信すると、新たにパケット長認識部２６１に格納されているパケット長データ５９１を初期値とし、カウントダウン処理を繰り返す。
【００４４】
転送禁止信号発生部２７１は、重み付けカウンタ部２４１からの重みカウントフラグ５６１が、カウント終了の論理、かつ、パケットカウンタ部２５１からのパケット送信フラグ５８１がカウント終了の論理であった場合には、スケジューリング部３１へ転送禁止信号５４１を送出する。
【００４５】
次に、スケジューリング部３１について図４を参照しながら説明する。
【００４６】
読み出し制御部３１３は、優先順位スケジューリング部３１２から、複数のポート処理部２１〜２ｎのうち、１つポート処理部（例えば、ポート処理部２１）に対しての読み出し指示信号６４１を受信すると、その指示されたポート処理部２１のバッファ部２１１に対して、読み出し制御信号６１１を送出することにより、バッファ部２１１に格納されているデータの読み出し処理を行う。読み出し制御部３１３は、この処理を繰り返すことにより、読み出した各バッファ部２１１〜２１ｎからの出力データ６０１〜６０ｎについて多重処理を行い、１本の多重出力データ６５１として出力インターフェース部４１へ転送する。
【００４７】
優先順位スケジューリング部３１２は、各ポート処理部２１〜２ｎからの読み出し要求信号５５１〜５５ｎが一つでも受信されていれば、データを転送するための優先度順位を決定するスケジューリング処理を行う。優先順位スケジューリング部３１２における優先度順位の決定方法は、以下の通りである。
▲１▼．初期条件として決められている基本優先度順位に従う。ここでは、ポート間の重み付けを考慮する必要はない。例えば、ポート処理部２１、ポート処理部２２、ポート処理部２３・・・ポート処理部２ｎの順にパケットを送出する。
▲２▼．ポート処理部２１〜２ｎからの読み出し要求信号が入力されていない場合には、順位をスキップする。
▲３▼．ポート処理部２１〜２ｎからの転送禁止信号が入力されている場合には、順位をスキップする。
▲４▼．▲１▼〜▲３▼により、全ポートについて処理が終了した場合には、基本優先度順位の先頭の順位に戻り、同じ処理を繰り返す。
【００４８】
上記方法により、優先順位スケジューリング部３１２は、決定した順位に従い、読み出し制御部３１３へ、読み出し処理を実行させるための読み出し指示信号６４１を送出する。
【００４９】
カウントクリア信号発生部３１１は、すべてのポート処理部２１〜２ｎからの転送禁止信号５４１〜５４ｎを受信すると、各ポート処理部２１〜２ｎの重み付けカウンタを初期値に戻すため、カウントクリア信号５３１〜５３ｎを送出する。また、カウントクリア信号発生部３１１は、各ポート処理部２１〜２ｎからの、バッファフル信号６３１〜６３ｎを一つでも受信すると、バッファオーバーフローの抑制のため、カウントクリア信号５３１〜５３ｎを送出する。
【００５０】
図１に示すように、出力インターフェース部４１は、スケジューリング部３１から送出されたパケットデータを、出力ポートＰ２０へ出力する出力制御処理を行う。
【００５１】
次に、上記構成を有する本発明にかかるデータ転送装置の動作について図５乃至図８を参照しながら説明する。
【００５２】
データ転送装置の初期状態を図５に示す。初期設定として、各ポート処理部２１〜２５の重み付けカウンタ部２４１〜２４５には、重み付け値がバッファリード単位で読み込まれ、カウンタの初期値として設定されている。尚、動作の説明を簡易にするため、重み付け値は低い値を設定している。また、パケットカウンタ部２５１〜２５５の値の初期値は“０”である。また、図５に示した状態は、入力インターフェース部１１〜１５にパケットデータが入力され、そのデータが各々のポート処理部２１〜２５へ書き込まれ、スケジューリング部３１からの読み出し処理を待機している状態である。
【００５３】
この時、各ポート処理部２１〜２ｎ（ポート処理部２４を除く）から、読み出し要求信号がスケジューリング部３１へ発出されているため、スケジューリング部３１により、スケジューリング処理が行われる。図５の状態から、ポート処理部２１〜２ｎ（ポート処理部２４を除く）よりデータ転送を始めた場合のデータ転送後（すべての転送終了ではない）の状態を図６に示す。
【００５４】
スケジューリング部３１では、基本優先度順位に従い、ポート処理部２１、２２、２３、２４、２５、２１・・・の順にデータの読み出し処理を行うことにより、データ転送を行う。従って、図６に示すように、実際の読み出し順位は、パケットデータ１１、２１、３１となる。ここで、ポート処理部２４のバッファ部２１４では、パケットデータが格納されていないため、ポート処理部２２４からスケジューリング部３１に対して読み出し要求信号を送出していない。従って、読み出し順位はスキップされ、次のパケットデータ５１の転送が行われる。
【００５５】
また、ポート処理部２２のように、バッファ部２１２に格納されていたすべてのパケットデータ２１、２２、２３の読み出し処理が終わると、スケジューリング部３１への読み出し要求信号の送出が停止されるため、その後、パケットデータ３３、５３、１４の順にデータの読み出しが行われ、次に、ポート処理部２２に順番が回ったときに、読み出し順位をスキップされる。以上のように、パケットデータが格納されていないポート処理部はスキップされ、データ転送が行われる。
【００５６】
さらに、重み付けカウンタ部２４１〜２４５は、パケットデータがスケジューリング部３１から読み出し制御されると、カウンタのカウントダウン処理を行う。図５のポート処理部２１を例に挙げると、初期値“１０”から読み出し制御される（すなわち、データ転送される）毎に、カウントダウン処理が行われるため、図６に示すように、パケットデータ１１、１２、１３、１４がポート処理部２１から送出後の、カウンタの値は“６”となる。
【００５７】
また、パケットカウンタ部２５１〜２５５は、パケットデータがバッファ部２１１〜２１５から送出されると、パケット長情報を読み込み、それをバッファリード単位でカウンタの初期値とするため、パケットカウンタ部２５１〜２５５のカウンタの示す値は、パケット１個分に対する残りのパケット容量となる。
【００５８】
図５のポート処理部２１を例に挙げると、パケットデータ１１が送出されると、パケットカウンタ部２５１のカウンタの初期値として“４”が取り込まれ、同時にカウントダウン処理を開始するため“３”の値になる。その後バッファリード単位で送出する毎に、カウントダウン処理を実施するため、ポート処理部２１からパケットデータ１１、１２、１３を送出した後は“１”となる。
【００５９】
次に、重み付けカウンタ部２４１〜２４５のカウンタが“０”になった場合、及び、パケットカウンタ部２５１〜２５５のカウンタが“０”になった場合の動作を、データ転送前の状態を示す図７、及びデータ転送後の状態を示す図８を参照しながら説明する。
【００６０】
図７において、ポート処理部２１は、重み付けカウント部２４１のカウンタ値が“１”以上で、パケットカウント部２５１のカウンタ値が“０”であり、パケットデータがバッファ部２１１に格納されていない状態である。このように、パケットデータが格納されていない場合には、両カウンタの値に関わらず、スケジューリング部３１からは、データ転送の順位がスキップされる。
【００６１】
ポート処理部２２は、重み付けカウント部２４２のカウンタ値が“１”以上で、パケットカウント部２５２のカウンタ値も“１”以上である。この場合には、重み付けカウント部２４２のカウンタが、“０”になっていないため、スケジューリング部３１から、基本優先順位でデータ転送が行われ、データ転送の順位のスキップは行われない。
【００６２】
ポート処理部２４は、重み付けカウント部２４４のカウンタ値が“１”以上で、パケットカウント部２５４のカウンタ値が“０”である。この場合には、ポート処理部２２と同様に、重み付けカウント部２４４のカウンタが、“０”になっていないため、スケジューリング部３１から、基本優先順位でデータ転送が行われ、データ転送の順位のスキップは行われない。
【００６３】
ポート処理部２５は、重み付けカウント部２４５のカウンタ値が“０”で、パケットカウント部２５５のカウンタ値も“０”である。この場合には、スケジューリング部３１からのデータ転送順位はスキップされ、データ転送は行われない。
【００６４】
ポート処理部２３は、重み付けカウント部２４３のカウンタ値が“０”で、パケットカウント部２５３のカウンタ値が“１”以上である。図７に示すように、パケットカウント部２５３のカウンタ値が“３”を示している、すなわち、まだパケット１個分を転送している途中であるため、重み付けカウント部２４３のカウンタ値が“０”であっても、スケジューリング部３１は、パケットデータ３１、３２、３３に関しては、データ転送の基本優先順位をスキップすることはない。しかし、パケットデータ３３の送出後に、パケットカウント部２５３のカウンタ値が“０”になり、かつ、重み付けカウント部２４３のカウンタ値は“０”であるため、パケット３４以降は、スケジューリング部３１から、データ転送の順位がスキップされ、データ転送が行われず、図８のポート処理部２３の状態となる。
【００６５】
以上のように、データ転送を停止させるのは、図８のポート処理部２３、２５に示すような、重み付けカウント部２４３、２４５のカウンタ値が“０”で、パケットカウント部２５３、２５５のカウンタ値も“０”の状態になった時のみである。すなわち、図７のポート処理部２３のように、重み付けカウント部２４３のカウンタ値が“０”であっても、パケットカウント部２５３のカウンタ値が“１”以上であれば、パケット１個分の転送が終わるまでは、データ転送を停止しない。これにより、パケットデータが分割されたままの状態が継続するような状態は発生しない。
【００６６】
本装置では、以上の動作を繰り返し、すべての重み付けカウンタ２４１〜２４５のカウンタ値が“０”になると、すべての重み付けカウンタ２４１〜２４５のカウンタ値を初期値に戻し、データ転送を続ける。
【００６７】
【発明の効果】
以上説明したように、本発明によれば、複数の入力伝送路から１つの出力伝送路へデータを転送する際に、入力伝送路数が多くなった場合等であっても、転送待機時間を短縮して不必要な警報の発生を防止するとともに、バッファオーバーフローの発生を抑制して伝送効率を上昇させ、高速処理に対応可能で、簡単な構成を備えたデータ転送装置を提供することができる。
【図面の簡単な説明】
【図１】本発明にかかるデータ転送装置の全体構成図である。
【図２】図１のデータ転送装置のポート処理部を示す構成図である。
【図３】図１のデータ転送装置で転送するパケットの一例を示す図である。
【図４】図１のデータ転送装置のスケジューリング部を示す構成図である。
【図５】図１のデータ転送装置の動作説明図である。
【図６】図１のデータ転送装置の動作説明図である。
【図７】図１のデータ転送装置の動作説明図である。
【図８】図１のデータ転送装置の動作説明図である。
【図９】本発明にかかるデータ転送装置における転送処理時間に対するバッファ部の容量の関係を示すグラフである。
【図１０】従来のデータ転送装置の一例（従来方式１）を示す全体構成図である。
【図１１】図１０のデータ転送装置の動作説明図である。
【図１２】図１０のデータ転送装置の動作説明図である。
【図１３】パケットを分割せずにデータ転送を行った場合の不具合を説明するための図である。
【図１４】従来のデータ転送装置のもう一つの例（従来方式２）を示す動作説明図である。
【図１５】従来方式２の動作説明図である。
【図１６】従来方式１の問題点を説明するための動作説明図である。
【図１７】従来方式１の問題点を説明するための動作説明図である。
【図１８】従来方式２の問題点を説明するための動作説明図である。
【図１９】従来方式２の問題点を説明するための動作説明図である。
【図２０】従来方式２にかかるデータ転送装置における転送処理時間に対するバッファ部の容量の関係を示すグラフである。
【符号の説明】
１１〜１ｎ            入力インターフェース部
２１〜２ｎ            ポート処理部
２１１〜２１ｎ    バッファ部
２２１〜２２ｎ    バッファ監視部
２３１〜２３ｎ    重み付け記憶部
２４１〜２４ｎ    重み付けカウンタ部
２５１〜２５ｎ    パケットカウンタ部
２６１〜２６ｎ    パケット長認識部
２７１〜２７ｎ    転送禁止信号発生部
３１        スケジューリング部
３１１    カウントクリア信号発生部
３１２    優先順位スケジューリング部
３１３    読み出し制御部
４１        出力インターフェース部
５１１〜５１ｎ    入力パケットデータ
５２１〜５２ｎ    書き込み制御信号
５３１〜５３ｎ    カウントクリア信号
５４２〜５４ｎ    転送禁止信号
５５１〜５５ｎ    読み出し要求信号
５６１〜５６ｎ    重みカウントフラグ
５７１〜５７ｎ    重み付け値
５８１〜５８ｎ    パケット送信フラグ
６０１〜６０ｎ    出力データ
６１１〜６１ｎ    読み出し制御信号
６２１〜６２ｎ    カウント開始トリガ
６３１〜６３ｎ    バッファフル信号
６４１〜６４ｎ    読み出し指示信号
Ｐ１〜Ｐｎ            入力ポート
Ｐ２０    出力ポート
【図１】
2004253960.tif 000003
【図２】
2004253960.tif 000004
【図３】
2004253960.tif 000005
【図４】
2004253960.tif 000006
【図５】
2004253960.tif 000007
【図６】
2004253960.tif 000008
【図７】
2004253960.tif 000009
【図８】
2004253960.tif 000010
【図９】
2004253960.tif 000011
【図１０】
2004253960.tif 000012
【図１１】
2004253960.tif 000013
【図１２】
2004253960.tif 000014
【図１３】
2004253960.tif 000015
【図１４】
2004253960.tif 000016
【図１５】
2004253960.tif 000017
【図１６】
2004253960.tif 000018
【図１７】
2004253960.tif 000019
【図１８】
2004253960.tif 000020
【図１９】
2004253960.tif 000021
【図２０】
2004253960.tif 000022