(57)【特許請求の範囲】
【請求項１】
入側の複数の仮想コネクションのそれぞれからセルによる論理多重の形で入力されるデータパケットを出側の複数の仮想コネクションの予め定められた１つにスイッチするデータパケット交換機であって、
入側のセルのセルデータに含まれるパケット長から、そのデータパケットを蓄積するに必要なバッファの量を計算する必要バッファ量演算回路と、
必要バッファ量を残バッファ量と比較する比較回路と、
比較の結果、必要バッファ量が残バッファ量を超えているとき、そのデータパケットに関連するセルデータを廃棄するデータ廃棄回路と、
セルデータを仮想コネクション別にバッファに蓄積してデータパケットに組み立てるデータパケット組み立て回路と、
セルデータに含まれるデータパケットの識別子から出側仮想コネクションを決定する出側仮想コネクション解決部と、
組み立てられたデータパケットに決定された出側仮想コネクションの識別子を付して送出するパケット送出回路とを具備するデータパケット交換機。
【請求項２】
比較回路の結果が確定するまでの時間より少なくない時間だけセルデータをバッファに蓄積することなく遅延させる遅延回路をさらに具備する請求項１記載のデータパケット交換機。
【請求項３】
比較回路の比較結果によりバッファに蓄積することになったデータパケットの必要バッファ量を残バッファ量から差し引くことにより、必要バッファ量を予め確保する残バッファ量演算回路をさらに具備する請求項２記載のデータパケット交換機。
【請求項４】
予め確保された必要バッファ量の値を仮想コネクションごとに保持する必要バッファ量保持テーブルと、
バッファに実際に蓄積されるセルデータの量を仮想コネクションごとにカウントするカウンタテーブルと、
バッファに実際に蓄積されるセルデータの量を予め確保された必要バッファ量と比較する第２の比較回路と、
バッファに実際に蓄積されるセルデータの量が予め確保された必要バッファ量を超えるとき、その仮想コネクションについて既に蓄積されたセルデータを廃棄する組み立て中パケット廃棄回路とをさらに具備する請求項３記載のデータパケット交換機。
【請求項５】
出側の複数の仮想コネクションのうちの予め定められた第１の仮想コネクションについて、データパケットにパケット長を付加するパケット長付加回路と、
出側の複数の仮想コネクションのうちの予め定められた第２の仮想コネクションについて、データパケットからパケット長を削除するパケット長削除回路とをさらに具備する請求項１〜４のいずれか１項記載のデータパケット交換機。
【請求項６】
入側の複数の仮想コネクションのそれぞれからセルによる論理多重の形で入力されるデータパケットを出側の複数の仮想コネクションの予め定められた１つにスイッチするデータパケット交換機であって、
入側のセルのセルデータを仮想コネクション別にバッファに蓄積するデータパケット組み立て回路と、
セルデータに含まれるデータパケットの識別子から出側仮想コネクションを決定する出側仮想コネクション解決部と、
出側仮想コネクションが決定されたデータパケットに関連するセルデータに、送出が完了するまで複数の相異なる送出識別番号のうちの使用されていない１つの送出識別番号を付与する送出識別番号管理回路と、
バッファに蓄積されたセルデータを、決定された出側仮想コネクションおよび付与された送出識別番号に基づいて取り出して送出することによって出側仮想コネクションごとに組み立てられたデータパケットを送出するパケット送出回路とを具備するデータパケット交換機。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はＩＰ（Internet Protocol ）パケット、フレームリレーのフレーム等のデータパケットを仮想コネクション間で交換するデータパケット交換機、より特定すれば、入側の仮想コネクションから到着したセルに分割して収容されているデータパケットの宛先アドレス等の識別子から出側の仮想コネクションを決定してセルの仮想コネクション識別子を入側のコネクション識別子から出側のコネクション識別子に変えて出力することによって、データパケットを仮想コネクション間で交換するデータパケット交換機に関する。
【０００２】
【従来の技術】
例えば、ＡＴＭ（Asynchronons Transfer Mode）を下位層としてＩＰパケットを伝送するＩＰｏｖｅｒＡＴＭにおいては、ノード間に多数のＡＴＭの仮想コネクションがメッシュ状に設定され、ノード−ユーザ間にもそれらとは別のＡＴＭ仮想コネクションが設定される。
【０００３】
各ノードに設置される従来のＩＰパケット交換機は、入側の仮想コネクションから到達したＡＴＭセルのセルデータをコネクション別に蓄積することによってＩＰパケットを組み立て、その宛先アドレスから出側の仮想コネクションを決定する。セルデータをバッファに蓄積する際にバッファに空きがないときはデータが廃棄される。バッファ内に蓄積中のパケットのうち、組み立てが完了し、かつ、出側の仮想コネクションが決定されたものがバッファから取り出され、出側の仮想コネクションの識別子が付されてセル化される。この後、ＡＴＭスイッチにより各方路へのセルの振り分けが行われる。
【０００４】
【発明が解決しようとする課題】
前述の従来の構成では、複数の入力コネクションでパケット組み立てが行なわれている最中に、バーストトラフィックの入力等によりバッファが輻輳した場合には、複数のコネクションで（輻輳による）セル廃棄が発生する。その結果として、組み立て中のパケットも廃棄されるため、途中までデータを蓄積していたデータバッファの部分が無駄に使用されたことになってしまう可能性がある。
【０００５】
また、従来の構成では、パケット組み立て後、再度セル化して送出するため、パケット長に依存した遅延を生じる。そのため、パケット交換機が多段に接続されたネットワークとして使用する場合、ネットワークとしての遅延時間が大きくなり、またその予想ができないという問題がある。
したがって本発明の第１の目的は、バッファ輻輳の場合にも、できるだけ無駄なく効率良くバッファを使用することのできるデータパケット交換機を提供することにある。
【０００６】
本発明の第２の目的は、装置内の遅延がパケット長によらず固定遅延であり、多段接続した場合でも、予測可能な小さな値となるデータパケット交換機を提供することにある。
【０００７】
【課題を解決するための手段】
前述の第１の目的は、入側の複数の仮想コネクションのそれぞれからセルによる論理多重の形で入力されるデータパケットを出側の複数の仮想コネクションの予め定められた１つにスイッチするデータパケット交換機であって、入側のセルのセルデータに含まれるパケット長から、そのデータパケットを蓄積するに必要なバッファの量を計算する必要バッファ量演算回路と、必要バッファ量を残バッファ量と比較する比較回路と、比較の結果、必要バッファ量が残バッファ量を超えているとき、そのデータパケットに関連するセルデータを廃棄するデータ廃棄回路と、セルデータを仮想コネクション別にバッファに蓄積してデータパケットに組み立てるデータパケット蓄積組み立て回路と、セルデータに含まれるデータパケットの識別子から出側仮想コネクションを決定する出側仮想コネクション解決部と、組み立てられたデータパケットに決定された出側仮想コネクションの識別子を付して送出するパケット送出回路とを具備するデータパケット交換機によって達成される。
【０００８】
前述の第２の目的は、入側の複数の仮想コネクションのそれぞれからセルによる論理多重の形で入力されるデータパケットを出側の複数の仮想コネクションの予め定められた１つにスイッチするデータパケット交換機であって、入側のセルのセルデータを仮想コネクション別にバッファに蓄積するデータパケット組み立て回路と、セルデータに含まれるデータパケットの識別子から出側仮想コネクションを決定する出側仮想コネクション解決部と、出側仮想コネクションが決定されたデータパケットに関連するセルデータに、送出が完了するまで複数の相異なる送出識別番号のうちの使用されていない１つの送出識別番号を付与する送出識別番号管理回路と、バッファに蓄積されたセルデータを、決定された出側仮想コネクションおよび付与された送出識別番号に基づいて取り出して送出することによって出側仮想コネクションごとに組み立てられたデータパケットを送出するパケット送出回路とを具備するデータパケット交換機によって達成される。
【０００９】
【発明の実施の形態】
本発明を説明する前に、従来のデータパケット交換機を図面を参照して説明する。図１は従来のデータパケット交換機の一例を示す。
図１に示したデータパケット交換機は、入力インターフェース１０、パケット蓄積／組み立て処理部１２、出力インターフェース１４およびコネクション解決部１６から構成される。パケット蓄積／組み立て処理部１２は、デセル化／コネクション認識回路１８、パケット蓄積／組み立て回路２０、コネクション解決待ち回路２２、パケット送出回路２４、セル化回路２６、コネクション解決情報インターフェース２８、データバッファ管理回路３０、およびデータバッファ３２を含んでいる。
【００１０】
入力インターフェース１０は回線からのＡＴＭセル入力を受信する。
デセル化／コネクション認識回路１８は、入力インターフェース１０からのＡＴＭセルをＡＴＭアダプテーションレイヤのタイプ５に従いデセル化し、デセル化後のセグメントデータ（セルデータ）に対しＡＴＭセルヘッダの仮想コネクション識別子に基づく入力識別情報を付加する。
【００１１】
パケット蓄積／組み立て回路２０はデータバッファ管理回路（後述）３０から空きデータバッファを割り当てられれば、セグメントデータに付された入力識別情報に基づき、入力コネクション毎にセグメントデータをデータバッファ３２に蓄積してパケット（ＡＴＭアダプテーションレイヤのＰＤＵ）の組み立てを行い、空きデータバッファを割り当てられなければ、セグメントデータを蓄積せず廃棄する。パケットの組み立てが完了すると、それに該当するパケットの出力識別情報が、コネクション解決部（後述）１６から通知されていれば、その情報とパケットの情報とがパケット送出回路（後述）２４に対して通知され、あるいは、それに該当するパケットの出力識別情報が通知されていなければ、出力側コネクションが解決されるまで当該パケットを退避させるために、出力側コネクション解決待ち回路（後述）２２に対して該パケットの情報が通知される。
【００１２】
コネクション解決情報インターフェース２８は、蓄積したパケットから出力側のＡＴＭ仮想コネクションを解決するために、パケットヘッダ内の宛先アドレス、あるいは、リンク識別子等の制御情報や、その解決結果（出力識別情報）をコネクション解決部（後述）１６との間でやり取りする。
コネクション解決待ち回路２２は、組み立て完了後のパケットの情報を、出力側コネクションが解決されるまで退避させ、解決後は、パケット送出回路（後述）２４に対して、コネクション解決部（後述）１６から通知された出力識別情報と共にパケットの情報を送出する。
【００１３】
パケット送出回路２４は、パケット組み立て完了、かつ、出力側ＡＴＭコネクション解決済となったデータパケットをパケット単位で送出するために、データバッファ３２内の対象データパケットを送信キューに登録／送出し、送出後には、該当データバッファをデータバッファ管理回路（後述）３０に解放する。
セル化回路２６は、その送出されたデータパケットを、再度、ＡＴＭアダプテーションレイヤのタイプ５に従い、セル化して、送出する。
【００１４】
データバッファ管理回路３０は、共通バッファ形式のデータバッファ３２の空き／使用状況の管理を行い、パケット蓄積／組み立て回路２０に対する空きデータバッファの割り当てや、パケット送出回路２４から解放されたデータ送出後のデータバッファを、空きデータバッファとして再管理する。
コネクション解決部１６は、パケット蓄積／組み立て処理部１２からの、宛先アドレス、あるいは、リンク識別子等の制御情報から、出力すべきＡＴＭ仮想コネクション識別子を解決（求め）してその結果をパケット蓄積／組み立て処理部１２に対して通知する。
【００１５】
出力インターフェース１４は、パケット蓄積／組み立て処理部１２から送出されるＡＴＭセルを、回線上に送出する。
上記の従来のデータパケット交換機の動作を説明する。複数のＡＴＭ仮想コネクションから入力される、ＡＴＭセルにより論理多重されたデータパケットは、デセル化／コネクション認識回路１８により、デセル化され、入力ＡＴＭ仮想コネクション識別子やパケットに対するセルの位置（先頭／中間／最終）といった入力識別情報を付加されて、後段のパケット蓄積／組み立て回路２０に入力される。
【００１６】
パケット蓄積／組み立て回路２０では、データバッファ管理回路３０と連携して空いているデータバッファ３２のセグメントに対し、セルデータを蓄積する。それと共に、付加されている入力識別情報から、そのセルデータがパケットヘッダ部（先頭セル）に相当すれば、該当する入力コネクションの状態を更新（アイドル→組み立て中）し、データバッファの先頭、および、最終ポインタとして、今回使用したバッファセグメントの情報（アドレス等）を、また、受信データセグメント数として、初期値“１”を、入力コネクション別のパケット組み立て管理テーブル２１に登録する。同時に、そのセルデータ（パケットヘッダ）内のあらかじめ決まった位置の宛先アドレス等の情報を、コネクション解決情報インターフェース回路２８を経由してコネクション解決部１６に渡す。
【００１７】
一方、データバッファ管理回路３０では、パケット蓄積／組み立て回路２０に、空きデータバッファセグメント情報を通知後（割り当て後）、当該バッファセグメントを空きバッファ管理情報から外す。この時、空いているデータバッファセグメントがなければ（輻輳状態であれば）、当然、パケット蓄積／組み立て回路２０に空きデータバッファが割り当てられないため、当該データは廃棄される。
【００１８】
コネクション解決部１６では、受け取った宛先アドレス等の情報から変換（解決）テーブルを検索し、出力側のＡＴＭ仮想コネクション識別子を解決して、その結果をコネクション解決情報インターフェース２８に通知する。出力側コネクション解決情報インターフェース２８は、受け取った情報を基に、該当するデータバッファ３２の制御エリアを更新（解決済状態）する。
【００１９】
次に、デセル化／コネクション認識回路１８から入力されたセルデータが中間セルに相当する場合には、パケット蓄積／組み立て回路２０は、先頭セルの場合と同じように、データバッファ管理回路３０から割り当てられた空きデータバッファセグメントに対して、データを蓄積する。それと共に、入力コネクション対応のパケット組み立て管理テーブル２１内のデータバッファ最終ポインタに、今回割り当てられたバッファセグメント情報を登録し、前回のバッファセグメントの制御エリア内の接続先バッファセグメントを、今回割り当てられたものに書き換える。また、同時に、パケット組み立て管理テーブル２１内の受信データセグメント数をカウントアップ（＋１）する。この時、先頭セルの場合と同様に、空いているデータバッファセグメントがなければ、パケット蓄積／組み立て回路２０において、そのセルデータは廃棄される。
【００２０】
更に、デセル化／コネクション認識回路１８から入力されたセルデータが最終セルに相当する場合には、パケット蓄積／組み立て回路２０は、前回と同様に、データバッファ管理回路３０から割り当てられた空きデータバッファセグメントに対して、セルデータを蓄積する。それと共に、入力コネクションの状態を更新（組み立て中→アイドル）し、パケット組み立て管理テーブル２１のデータバッファ最終ポインタに今回割り当てられたバッファセグメント情報を登録し、前回のバッファセグメントの制御エリア内の接続先バッファセグメントを、今回割り当てられたものに書き換える。また、中間セルの場合と同様に、パケット組み立て管理テーブル２１内の受信データセグメント数をカウントアップ（＋１）する。それと共に、先頭ポインタで示されるデータバッファセグメント３２の制御エリアに、パケット組み立て管理テーブル２１の情報をコピーする。この時、先頭セルの場合と同様に、空いているデータバッファセグメントがなければ、パケット蓄積／組み立て回路２０において、そのセルデータは廃棄される。更に、この時、先頭のデータバッファ３２の制御エリアに表示されている出力側コネクションが解決済状態であれば、その先頭ポインタ情報を、パケット送出回路２４に通知し、出力側コネクションが解決済状態でなければ、データバッファの先頭ポインタ情報を、出力側コネクション解決待ち回路２２に通知する。出力側コネクション解決待ち回路２２では、一定周期で、該当のデータバッファ３２の制御エリアを監視し、解決済になった場合には、その先頭ポインタ情報を、パケット送出回路２４に通知する。
【００２１】
パケット送出回路２４では、パケット蓄積／組み立て回路２０またはコネクション解決待ち回路２２から受け取った送出データパケットのデータバッファ先頭ポインタをキューイングしておき、そのキューイング情報とデータバッファセグメント毎の接続情報に従い、データをパケット単位で出力する。その際、データが送出されきったデータバッファセグメントについては、その情報がデータバッファ管理回路３０に通知され（バッファ解放され）、当該セグメントは空きバッファセグメントテーブルに再登録される。
【００２２】
パケット送出回路２４から送出されたデータパケットは、セル化回路２６により、ＡＴＭアダプテーションレイヤのタイプ５に従い、セル化され、送出される。また、その際、付加されている出力識別情報に従うＡＴＭ仮想コネクション識別子が付されて送出され、後段に設けられた、図示しないＡＴＭスイッチにより各方路へ振り分けられる。
【００２３】
前記の一連の動作により、複数のＡＴＭ仮想コネクションから入力される、ＡＴＭセルにより論理多重されたデータパケットは、複数コネクション同時に蓄積（組み立て）処理されパケットヘッダ内の宛先アドレス等により導かれる、出力側ＡＴＭ仮想コネクションに対して、再度、ＡＴＭセル化されて、送出される。前述のように、従来の構成では、論理多重された複数のＡＴＭ仮想コネクションからの入力データパケットをＡＴＭセルとして受信する毎に、空きデータバッファから、該当セルデータの分、１個だけを割り当てるため、当該パケット専用のバッファが用意されない。そのため、バッファ輻輳が生じた場合には、複数の組み立て中パケットについて空きバッファなしによるパケット廃棄が発生し、それまで蓄積している分のデータバッファが無駄になってしまう問題があった。
【００２４】
また、従来の構成では、パケット組み立て後の転送であったため、交換装置内での遅延がパケットの長さに依存する。そのため、交換装置を多段に接続した場合には、段数に比例して遅延時間の誤差が大きくなりすぎ、遅延時間が予想できなくなる問題があった。
図２は本発明の第１の実施例に係るデータパケット交換機の一部を示す。図１と同一の構成要素には同一の参照番号が付され、変形が加えられた構成要素には同じ参照番号に「’」が付されている。
【００２５】
図２において、本発明の第１の実施例では、デセル化／コネクション認識回路１８、パケット蓄積／組み立て回路２０’及びデータバッファ管理回路３０’の間に、データ遅延／廃棄指示回路３４、必要データバッファ面数監視／算出回路３６およびパケット受信可判定／バッファ面数確保回路３８が設けられる。図１に示された他の構成要素は図示が省略されている。
【００２６】
必要データバッファ面数監視／算出回路３６は、入力パケットのヘッダ部分に表示されているパケット長を監視し、パケット長からパケット組み立てに必要となるデータバッファ（セグメント）総数を算出する。
パケット受信可判定／バッファ面数確保回路３８は、回路３６による算出結果（必要データバッファ総数）とデータバッファの残りデータバッファ面数とを比較することによりパケット受信可／不可を判定し、受信可であれば、算出された必要データバッファ総数の分のデータバッファ面数を一度に確保する。
【００２７】
データ遅延／廃棄指示回路３４は、前記のバッファ面数の算出やバッファ面数の確保を行う間、データをバッファに蓄積しないようにデータを遅延させ、受信可であれば、データをバッファに蓄積し、受信不可であれば、そのデータ以降をパケット単位で廃棄するようにパケット蓄積／組み立て回路２０’へ指示する。図３はデータ遅延／廃棄指示回路３４の詳細な構成を示す。図４は必要データバッファ面数監視／算出回路３６、パケット受信可判定／バッファ面数確保回路３８、およびデータバッファ管理回路３０’の詳細な構成を示す。図５はパケット蓄積／組み立て回路２０’の詳細を示す。データバッファ管理回路３０’およびパケット蓄積／組み立て回路２０’については、本発明により追加された部分の詳細が示されている。図３〜図５を参照して本発明の第１の実施例の詳細を説明する。
【００２８】
図４の必要データバッファ面数監視／算出回路３６は、パケット長抽出レジスタ４０、必要バッファ面数演算回路４２および必要バッファ面数保持レジスタ４４を含んでいる。パケット受信可判定／バッファ面数確保回路３８は、比較回路４６、受信可判定フラグ４８および残バッファ数一括減算指示回路５０を含んでいる。データバッファ管理回路３０’内には、残バッファ数演算回路５２が設けられる。
【００２９】
図３のデータ遅延／廃棄指示回路３４は、データ遅延レジスタ５４、制御情報解析回路５６、制御情報追加回路５８、タイミング生成回路６０、およびパケット廃棄指示テーブル６２を含んでいる。
図５のパケット蓄積／組み立て回路２０’内には、輻輳監視抑止回路６４とデータ廃棄回路６６が設けられている。
【００３０】
複数のＡＴＭ仮想コネクションから入力される、ＡＴＭセルで論理多重されたデータパケットは、デセル化／コネクション認識回路１８によりデセル化され、入力ＡＴＭ仮想コネクション識別子やパケットに対するセルの位置（先頭／中間／最終）といった入力識別情報が付加されて、データ遅延／廃棄指示回路３４（図３）に入力される。なお、今後、入力識別情報は制御情報と称する。
【００３１】
データ遅延／廃棄指示回路３４では、ＡＴＭセルデータが入力された場合、バッファに格納されるまでに一定の処理時間を確保するため、一旦、データ遅延レジスタ５４にＡＴＭセルデータ、および、制御情報が蓄積される。タイミング生成回路６０は、各回路に対してタイミング信号を分配する。
また、同時に、制御情報解析回路５６により、制御情報を解析した結果、当該セルデータがパケットヘッダ部（先頭セル）のデータであれば、それの所定の位置にあるパケット長（注．ＩＰパケットの場合ＩＰヘッダに含まれる）データが、図４の必要データバッファ面数監視／算出回路３６内のパケット長抽出レジスタ４０に取り込まれる。必要データバッファ面数監視／算出回路３６では、その値を必要バッファ面数演算回路４２により４８バイト（セル内のペーロード長）で割ることで、必要バッファ面数（セグメント数）を算出し、その値を各回路に通知する。なお、データバッファでは、１セルデータが１バッファセグメントに相当する。
【００３２】
パケット受信可判定／バッファ面数確保回路３８では、この算出結果（必要バッファ面数）と、データバッファ管理回路３０’内の残バッファ面数表示レジスタ５３の値（残バッファ面数）とが比較回路４６で比較される。必要バッファ面数≦残バッファ面数であれば、パケット受信可能とみなされる。このとき、残バッファ数一括減算指示回路５０の制御により、データバッファ管理回路３０’内の残バッファ面数表示レジスタ５３の内容を、残バッファ数演算回路５２の出力で更新することによって、必要バッファ面数の分だけ一括して減算し、該パケット用にデータバッファを確保する。これは、あらかじめ残バッファ面数を減らすことで、パケット蓄積／組み立て回路２０’にセルデータが入力された際のデータバッファ輻輳監視判定において、他のパケットデータによる影響がないようにするためである。それと同時に、パケット受信可判定／バッファ面数確保回路３８は、データ遅延／廃棄指示回路３４に対して、“受信可”の通知を行う。必要バッファ面数＞残バッファ面数であれば、パケット受信不可とみなし、データ遅延／廃棄指示回路３４に対して、“受信不可”を通知する。
【００３３】
データ遅延／廃棄指示回路３４（図３）では、パケット受信可判定／バッファ面数確保回路３８からの通知に基づき、所定のタイミングでパケット廃棄指示テーブル６２の更新を行う。これによって、パケット廃棄指示テーブル６２には、各入力コネクションについて、バッファ確保済で受信可であるか受信不可でパケット廃棄かが設定される。制御情報追加回路５８はパケット廃棄指示テーブルの情報に基づき各セルデータの制御情報にバッファが確保済であるかデータ廃棄かの情報を付加（追加）して、セルデータと共に後段（パケット蓄積／組み立て回路２０’）に送出する。
【００３４】
ここで、従来であれば、パケット蓄積／組み立て回路２０は、データバッファ管理回路３０と連携して、セルデータが入力されるごとに、空きデータバッファの割り当てや状態（輻輳）監視を行っていた。
しかし、本発明では、前述のように、あらかじめパケットごとにデータバッファを確保するために、後続のセルデータが受信可能であれば、事前にデータバッファ管理回路３０’内の残バッファ面数表示レジスタ５３を必要バッファ面数の分だけ減算している。そのため、従来どおりに輻輳監視を行っていると状態に矛盾を生じる場合がある。
【００３５】
このため、パケット蓄積／組み立て回路２０’（図５）内の輻輳監視抑止回路６４はデータ遅延／廃棄指示回路３４からの前記制御情報を監視し、制御情報に、“バッファ確保済”が指示されていれば、当該セルデータに対する輻輳判定は実施しない。データの蓄積以降の動作については、前述の従来技術と同じとなる。
【００３６】
制御情報に、“データ廃棄”が指示されていれば、データ廃棄回路６６により、入力されるセルデータを、データバッファに蓄積せず廃棄する。
データ遅延／廃棄指示回路３４に入力されるＡＴＭセルデータが先頭セル以外の場合、パケット蓄積／組み立て回路２０’に対してセルデータと共に送出される制御情報には、前述の先頭セルの処理の際にパケット廃棄指示テーブル６２に登録された内容が、入力されたセルデータのコネクションに従い付加される。パケット廃棄指示テーブル６２内の情報は、パケットの先頭でのみ更新されるので、先頭セルで廃棄と判断されたデータパケットについては、以降に続くデータも、同様に廃棄され、パケット単位でのデータ廃棄が行われる。
【００３７】
以上のように、パケットの先頭を受信した際に、あらかじめ空きバッファから当該パケットに必要となる分だけのデータバッファ面数が確保され、パケット組み立て途中でバッファ輻輳によるパケット廃棄とはならないので、バッファの有効利用になる。
図６は本発明の第１の実施例の一変形を示す。図２と同一の構成要素には同一の参照番号が付されている。データ遅延／廃棄指示回路３４、データバッファ管理回路３０’およびパケット蓄積／組み立て回路２０’はそれぞれ３４’，３０''および２０''に変更され、データバッファ面数監視回路６８が新たに追加されている。新たに追加されたデータバッファ面数監視回路６８は、実際に入力されつつあるパケットの長さが予め確保されたバッファ面数を超えないか比較監視し、前者が後者を上回ったらそのパケットのデータの蓄積を停止するとともにそれまでのそのパケットの蓄積に使用されたデータバッファを解放することにより、パケットに表示されているパケット長よりも実際のパケット長が長い不正なパケットのための誤動作を防止する。
【００３８】
図７はデータ遅延／廃棄指示回路３４’、データバッファ管理回路３０''およびパケット蓄積／組み立て回路２０''の詳細な構成を示し、図８はデータバッファ面数監視回路６８の詳細な構成を示す。
データバッファ面数監視回路６８は、制御情報解析回路７０、制御情報追加回路７２、受信データセグメントカウンタテーブル７４、必要バッファ面数保持テーブル７６、比較回路７８および受信パケット長オーバー管理テーブル８０を含んでいる。
【００３９】
データ遅延／廃棄指示回路３４’内の、制御情報追加回路５８’（図７）には新たな機能が追加されている。パケット蓄積／組み立て回路２０''には、新たに組み立て中パケット廃棄回路８２が設けられ、データバッファ管理回路３０''内には新たに組み立て中パケットバッファ開放回路８４が設けられている。
前述と同様に、データ遅延／廃棄指示回路３４’にＡＴＭセルデータが入力されると、必要データバッファ面数監視／算出回路３６やパケット受信可判定／バッファ面数確保回路３８との連携動作により、セルデータと共に制御情報（バッファ確保済／パケット廃棄、等）がデータバッファ面数監視回路６８に送出される。
【００４０】
この時、データ遅延／廃棄指示回路３４’では、入力されたセルデータがパケットヘッダ部（先頭セル）のデータであれば、前述の動作の他に、更に、必要データバッファ面数管理／算出回路３６から通知された必要バッファ面数を、制御情報追加回路５８’により、制御情報に付加して、所定のタイミングでデータと共に後段のデータバッファ面数監視回路６８に送出する。
【００４１】
また、入力されたセルデータが先頭セル以外の場合には、この動作は行わない。
データバッファ面数監視回路６８（図８）では、セルデータと制御情報とが入力された場合に、それらを後段のパケット蓄積／組み立て回路２０''に送出する。それと共に、制御情報解析回路７０により、制御情報を解析し、当該セルデータがパケットヘッダ部（先頭セル）であれば、同制御情報に付加されている必要バッファ面数を、必要バッファ面数保持テーブル７６の入力コネクションに対応する部分に書き込む。それと同時に、受信データセグメントカウンタテーブル７４、および、受信パケット長オーバー管理テーブル８０の入力コネクションに対応する部分を“０”でクリアする。
【００４２】
入力されたセルデータが先頭セルデータ以外の場合には、データが入力される毎に受信データセグメントカウンタテーブル７４の入力コネクションに対応する値をカウントアップ（＋１）し、その値と、必要バッファ面数保持テーブル７６にその入力コネクションに対応して格納されている必要バッファ面数とを比較回路７８により比較し、前者（受信データセグメントカウンタ値）が、後者（必要バッファ面数）を上回った場合には、受信パケット長オーバー管理テーブル８０の入力コネクションに対応する部分に“受信パケット長オーバー”状態を書き込む。それと共に、制御情報追加回路７２により、制御情報に、“データ廃棄”指示と、その他に、“組み立て中パケット廃棄”指示と“該当入力コネクション識別子”とを追加（書き換え）し、後段に送出する。なお、比較結果が上回るまでは、制御情報追加回路７２は何もせず、そのまま制御情報を後段に送出する。また、制御情報追加回路７２では、制御情報（セルデータ）が入力された場合に、受信パケット長オーバー管理テーブル８０の入力コネクションに対応する値が、“受信パケット長オーバー”状態であれば、前記と同様に、制御情報に“データ廃棄”指示と“組み立て中パケット廃棄”指示と“該当入力コネクション識別子”とを追加し、送出する。これ以降（受信パケット長がオーバーして以降）に入力されるセルデータについては、先頭セルが入力されるまで（新たなパケットが入力されるまで）、制御情報に“データ廃棄”指示と“組み立て中パケット廃棄”指示と“該当入力コネクション識別子”とが追加されて、後段のパケット蓄積／組み立て回路２０''に送出される。また、パケット蓄積／組み立て回路２０''（図７）では、入力される制御情報に“データ廃棄”指示が付加されていれば、前述と同様に、該データを蓄積せず、廃棄する。
【００４３】
このため、仮に、その後も受信パケット長オーバーとなったデータが、入力され続けた場合でも、制御信号に“データ廃棄”指示が表示されているため、該データはデータバッファに蓄積されず廃棄される。
更に、制御情報に“組み立て中パケット廃棄”指示と“該当入力コネクション識別子”とが付加されている場合には、組み立て中パケット廃棄回路８２は、該当の入力コネクションに対応するパケット組み立て管理テーブル８３に登録されている入力コネクションが、“組み立て中”であれば、登録されている該当組み立て中パケット（データバッファ群）の先頭ポインタと最終ポインタを、そのまま、パケット組み立て管理テーブル８３から外し（クリアし）、該当情報をデータバッファ管理回路３０''に空きデータバッファ群として通知する。また、この時、その他の管理情報である入力コネクションの状態を更新（組み立て中→アイドル）にする。これにより、この後も、受信パケット長オーバーとなったデータが入力され続けた場合でも、パケット組み立て管理テーブル８３は更新されない。
【００４４】
データバッファ管理回路３０''では、組み立て中パケットバッファ開放回路８４が、通知されたデータバッファ群の先頭ポインタを、空きバッファ管理情報の最終ポインタに接続することで空きバッファ群を再構築する。このことにより、組み立て中データバッファ群が、空きデータバッファとして再利用されるため、対象の組み立て中パケットを、一括して廃棄したことになる。
【００４５】
以上の動作により、実際に蓄積されたデータバッファ面数が、あらかじめ確保された面数を越えない様にガードする。特に、パケットヘッダ部（例えば、ＩＰパケット）に表示されているパケット長については、ユーザインターフェースとして開放されているため、ユーザ側の誤設定（他に故障等）により、パケット長が小さく設定された場合でも、本装置が誤動作をしないように防止する。
【００４６】
これまでに説明したデータパケット交換機では、先頭にパケット長のデータが含まれているパケットについては予めバッファセグメントを確保することによりバッファの効率的な使用が達成されるが、例えばフレームリレーのフレームのように先頭にパケット長のデータが含まれないパケットについては従来通りのセル単位のバッファ輻輳制御にならざるを得ない。しかしながら、ネットワークの入り口 (例えばユーザノードインターフェース (ＵＮＩ）におけるユーザからのコネクション）においてパケットの先頭にパケット長のデータを付加し、ネットワークの出口（例えばＵＮＩにおけるユーザへ向かうコネクション）においてパケット長のデータを取り去るようにすれば、かなりの部分のバッファ輻輳制御を効率良く行うことができる。パケット長のデータを含まないパケットが入力される仮想コネクションとパケット長のデータを含まないパケットを送出する仮想コネクションがどれであるかは予め知ることができる。
【００４７】
図９はこの考えに基づく本発明の第１の実施例の第２の変形を示す。図６と同一の構成要素には同一の参照番号が付されている。パケット長非監視回路８６は、指定されたＡＴＭ仮想コネクションについては、セルデータ中のパケット長に基づくバッファの確保またはセルデータの蓄積前の廃棄の処理をバイパスしてセル単位のバッファ輻輳制御を行う。パケット長付加／削除回路８８は、指定されたＡＴＭ仮想コネクションについてパケットの先頭にパケット長を付加し、また、他の指定されたＡＴＭコネクションについて付加されたパケット長を削除する。なお、パケット長非監視回路８６は必ずしも必須ではないが、パケット長が付加されていないパケットが入力される仮想コネクションがどれかについては予め明らかであるので不正なパケットによる誤動作防止のために設けることが望ましい。
【００４８】
図１０はパケット長非監視回路８６の詳細を示す。パケット長非監視回路８６は、パケット長非監視指定テーブル９０、データ遅延レジスタ９２、制御情報解析回路９４、タイミング生成回路９６及びセレクタ９０を含んでいる。
デセル化／コネクション認識回路１８からセルデータがパケット長非監視回路８６へ入力されると、パケット長非監視回路８６では、制御情報解析回路９４により、解析した入力コネクションにより、あらかじめ監視／非監視情報を設定されたパケット長非監視指定テーブル９０を検索する。パケット長監視コネクションであれば、タイミング生成回路９６により、データ遅延／廃棄指示回路３４’、必要データバッファ面数監視／算出回路３６、パケット受信可判定／バッファ面数確保回路３８、および、データバッファ面数監視回路６８での処理で必要となるだけの時間を保証する。データバッファ面数監視回路６８が設けられていない場合にはデータ遅延／廃棄指示回路３４’から、あるいは、データバッファ面数監視回路６８が設けられている場合にはそれからのセルデータ、および、制御情報の入力をセレクタ９８により選択し、パケット蓄積／組み立て回路２０''に対して送出する。
【００４９】
また、パケット長非監視指定テーブル９０を検索した結果が、パケット長非監視コネクションであれば、デセル化／コネクション認識回路１８から入力されたセルデータ、および、制御情報を、データ遅延レジスタ９２により、パケット長監視コネクションの場合と同じ時間だけ遅延させた後、セレクタ９８により選択し、パケット蓄積／組み立て回路２０''に対して送出する。ここで、データ遅延レジスタ９２は、双方のデータ出力の位相タイミングを保証するために使用する。
【００５０】
これにより、指定した入力コネクションについては、パケット長に基づくバッファの確保およびセルデータの廃棄の処理を抑止することになる。
図１１はパケット長付加／削除回路８８の詳細を示す。パケット長付加／削除回路８８は、出力コネクション識別子抽出回路１００、パケット長付加／削除テーブル１０２、付加タイミング制御回路１０４、削除タイミング制御回路１０６、およびセレクタ１０８を含んでいる。
【００５１】
パケット送出回路２４から出力されるデータパケットについて、パケット長付加／削除回路８８内の出力コネクション識別子抽出回路１００により、出力側のコネクションが求められ、それを基に、あらかじめ設定されてあるパケット長付加／削除指定テーブル１０２の出力コネクションに対応した部分が検索される。“パケット長付加”指示情報が設定されていれば、付加タイミング制御回路１０４により、パケット送出回路２４からのデータパケット出力を一時停止し、その間、セレクタ１０８により、該当のデータパケットのバッファ制御エリアに表示されている受信パケット数を選択し、送出する。
【００５２】
また、検索した結果、“パケット長削除”指示情報が設定されていれば、削除タイミング制御回路１０６により、パケット長を削除する間だけ、セル化回路２６に供給するデータ送出クロックを停止することで、付加されているパケット長を削除する。
これらの動作により、ＵＮＩのパケットフォーマットとして、パケットヘッダ部にパケット長表示がないプロトコル種別（例えば、フレームリレー）の場合でも、ネットワーク内（装置内）転送の際には、パケットの先頭部分にパケット長が付加されるため、パケットの先頭セル受信時に該パケット専用のバッファをあらかじめ確保できるため、効率的なバッファの利用が実現可能となる。
【００５３】
これまでに説明した第１の実施例ではバッファの効率的な使用が達成されるものの、バッファ内でパケットが完全に組み上がってから出側の仮想コネクションへ送出されるため、パケットの長さに依存した遅延が発生する。
以下に説明する本発明の第２の実施例では、この点が改善され、出側コネクション解決後、パケットが完全に組み上がる前に送出が開始されるので、遅延時間はパケットの長さに依存しない。しかしながら、複数の入側仮想コネクションから同じ出側仮想コネクションへ向かう複数のパケットが同時に入力されたとき、それらがセルのレベルで互いに入り混じって出力されるのを防止するため、送出識別番号による制御を行う。
【００５４】
図１２は本発明の第２の実施例を示す。
送出識別番号管理回路１１０は出力側のＡＴＭ仮想コネクションが解決される度に、当該対象パケットに対して、仮想コネクション識別子とは別の、他で使用していない唯一の空き送出識別番号を割り当て、該パケットが全て送出完了となった場合に、当該送出識別番号を解放し、空き送出識別番号として再管理する。
【００５５】
パケット蓄積／組み立て回路２０''' は、出力側のＡＴＭ仮想コネクションの解決時に、パケットの組み上げが終わってなくても、出力側ＡＴＭ仮想コネクションと前記送出識別番号とを、送出データと共に、送出識別番号対応パケット送出回路１１２に対して送出する。
送出識別番号対応パケット送出回路１１２は、出力側のＡＴＭ仮想コネクション毎の転送状態を該送出識別番号により管理し、同一の出力側のＡＴＭ仮想コネクションへの出力については、送出識別番号ごとにパケットを送出し、或る送出識別番号のパケットが送出完了となるまでは、他の送出識別番号のパケット送出を待たせる。
【００５６】
図１３は、パケット蓄積／組み立て回路２０''' および送出識別番号管理回路１１０の詳細を示す。送出識別番号管理回路１１０は、空き送出識別番号管理キュー１１４および番号管理キュー制御回路１１６を含んでいる。
図１４は送出識別番号対応パケット送出回路の詳細を示す。送出識別番号対応パケット送出回路１１２は、送出制御回路１２２、出力側コネクション状態管理テーブル１２４、出力側コネクション空き待ち送出識別番号管理キュー１２６、送出識別番号対応状態管理テーブル１２８、およびデータ送出管理キュー１３０を含んでいる。
【００５７】
図１３において、パケット蓄積／組み立て回路２０''' にセルデータ入力されると、出力側のＡＴＭ仮想コネクションが解決されるまでは従来と同じ動作を行う。また、出力側ＡＴＭ仮想コネクションが解決された時には、コネクション解決情報インターフェース回路２８が、送出識別番号管理回路１１０に対して、空き送出識別番号を要求する。
【００５８】
送出識別番号管理回路１１０では、空き送出識別番号管理キュー制御回路１１６により、空き送出識別番号管理キュー１１４から、使用可能な送出識別番号を確保し、コネクション解決情報インターフェース回路２８に対して、確保した送出識別番号を通知する。その際、確保された該送出識別番号は、空き送出識別番号管理キュー１１４より外される。コネクション解決情報インターフェース回路２８では、その情報も付加して、該当するデータバッファ３２の制御エリアを更新（解決済状態）する。
【００５９】
パケット蓄積／組み立て回路２０''' では、出力側ＡＴＭ仮想コネクションが解決されるまでは、前述してあるように、従来と同じ動作である。但し、パケット（データセグメント）を受信する毎に、入力コネクション対応のパケット組み立て管理テーブル１１８と、それにより示されるデータバッファセグメントの制御エリアを参照することで、毎回、該当するパケットについて出力側ＡＴＭ仮想コネクションが解決済で、かつ、２セグメント以上蓄積されているかをＡＮＤ回路１２０において判断する。条件が一致した場合には、次データバッファセグメントの接続表示のために、１セグメント分を残し、送出識別番号対応パケット送出回路１１２に対してデータバッファ情報（ポインタ情報）や出力側のＡＴＭ仮想コネクション識別子や送出識別番号等の情報を渡しデータ送出依頼をする。
【００６０】
この時、以降に入力されるデータセグメントが適切に送出されるように、同様の情報（解決済状態／送出識別番号等）を残した１セグメントの制御エリアにもコピーする。同時に、パケット組み立て管理テーブル１１８内の先頭データバッファポインタを、残したデータセグメントの情報に更新しておく。
その後に入力されるデータセグメントに対しては、残した１セグメントの制御エリアを基に、上記と同様に必要情報を送出識別番号対応パケット送出回路１１２に通知すると共に、パケット組み立て管理テーブル１１８の内容や、該当のデータバッファセグメントの制御エリアを更新する。もし、入力されたデータセグメントが最終セル（パケットの最終部分）であれば、残していたデータセグメントも含めて、全ての情報を次段の送出識別番号対応パケット送出回路１１８に渡す。
【００６１】
仮に、パケット蓄積／組み立て回路２０''' において、パケット組み立てが完了（最終セル受信）時に、まだ、該当のデータバッファセグメントの制御エリアに、“解決済状態”が表示されていなければ、出力側のコネクションが解決途中のため、従来と同様に、該データバッファ情報を、出力側コネクション解決待ち回路２２（図１２）に通知する。その後、出力側コネクション解決待ち回路２２では、一定周期で、該当データバッファの制御エリアを監視し、もし、解決済になった場合には、該データバッファの先頭ポインタ情報等を、送出識別番号対応パケット送出回路１１２に通知する。
【００６２】
図１４において、送出識別番号対応パケット送出回路１１２内の送出制御回路１２２では、受信した情報から、まず、該当の出力側コネクションの状態を出力側コネクション状態管理テーブル１２４により判定し、空き状態であれば、該当のデータセグメントをデータ送出管理キュー１３０に接続する。もし、該当の出力側コネクションが使用中状態であれば、同テーブルに表示されている使用中の送出識別番号をチェックし、同一送出識別番号であれば、上記と同様に、該当のデータセグメントをデータ送出管理キュー１３０に接続する。
【００６３】
また、該当の出力側コネクションが使用中状態で、かつ、他の送出識別番号の使用であれば、送出識別番号対応状態管理テーブル１２８内の送出識別番号の状態をチェックし、待ちキュー登録済でなければ、該当の送出識別番号を出力側コネクション空き待ち送出識別番号管理キュー１２６に接続すると共に、送出識別番号対応状態管理テーブル１２８内の所定のエリアに該当のデータセグメントの情報を登録する。この時、既に、待ちキュー登録済であれば、送出識別番号対応状態管理テーブル１２８内の所定の位置のデータセグメントの情報（バッファ制御エリアも含め）を更新する。また、送出制御回路１２２では、決められた送出タイミングにより、データ送出管理キュー１３０の登録情報から該当するデータを送出する。この時、該当のデータセグメントが最終データ（最終パケット）であれば、使用していた送出識別番号を、送出識別番号管理回路１１０に対して開放する。それと共に、出力側コネクション状態管理テーブル１２４を参照して、もし、該当のコネクションに他の送出識別番号の待ちキューがある場合には、出力側コネクション空き待ち送出識別番号管理キュー１２６から次に送出すべき送出識別番号を得ると同時に、出力側コネクション状態管理テーブル１２４や送出識別番号対応状態管理テーブル１２８の内容を更新して、該当するデータセグメントを、データ送出管理キュー１３０に登録する。
【００６４】
送出識別番号管理回路１１０では、開放された送出識別番号を、空き送出識別番号管理キュー１１４（図１３）に再登録して、再利用可能なようにする。
これらの動作により、出力側のＡＴＭ仮想コネクションが空いていれば（他のデータパケット転送で使用されていなければ）、パケット組み立て完了を待たずに、該パケットを転送することが可能になり、パケットを組み立ててから転送する場合に比べて、装置内での遅延時間を少なくすることができる。更に、パケット組み立てを行わないため、以前に比べて、データバッファの効率的な利用が可能となる。
【００６５】
【発明の効果】
以上のように、本発明によれば、複数の組み立て中パケットがある状態で、バッファ輻輳（空きバッファなし）状態になった場合でも、無駄なくデータバッファを使い切るため、バッファの使用効率が良くなる。
また、装置内のデータ遅延が、出力側ＡＴＭ仮想コネクションの解決に要する時間だけに依存するため、遅延時間を小さく、かつ、明確に示すことができる。
【００６６】
更に、装置内で、パケット組み立てを行わないため、全体のデータバッファ量が以前に比べて、少なくてすむことにもなる。（データバッファの効率的な使用にもなる。）
【図面の簡単な説明】
【図１】従来のデータパケット交換機の一例を示すブロック図である。
【図２】本発明の第１の実施例に係るデータパケット交換機の一部を示すブロック図である。
【図３】図２のデータ遅延／演算指示回路の詳細な構成を示すブロック図である。
【図４】図２の必要データバッファ面数監視／算出回路、パケット受信可判定／バッファ面数確保回路、及びデータバッファ管理回路の詳細な構成を示すブロック図である。
【図５】図２のパケット蓄積／組み立て回路の詳細な構成を示すブロック図である。
【図６】図２のデータパケット交換機の一変形を示すブロック図である。
【図７】図６のデータ遅延／廃棄指示回路、データバッファ管理回路、及びパケット蓄積／組み立て回路の詳細な構成を示すブロック図である。
【図８】図６のデータバッファ面数監視回路の詳細な構成を示すブロック図である。
【図９】図２のデータパケット交換機の他の変形を示すブロック図である。
【図１０】図９のパケット長非監視回路の詳細な構成を示すブロック図である。
【図１１】図９のパケット長付加／削除回路の詳細を示すブロック図である。
【図１２】本発明の第２の実施例に係るデータパケット交換機の一部を示すブロック図である。
【図１３】図１２のパケット蓄積／組み立て回路および送出識別番号管理回路の詳細を示すブロック図である。
【図１４】図１２の送出識別番号対応パケット送出回路の詳細を示すブロック図である。
【符号の説明】
１８…デセル化／コネクション認識回路
２０…パケット蓄積／組み立て回路
３０…データバッファ管理回路
３４…データ遅延／廃棄指示回路
３６…必要データバッファ面数監視／算出回路
３８…パケット受信可判定／バッファ面数確保回路
【図１】
0003784195.tif 000002
【図２】
0003784195.tif 000003
【図３】
0003784195.tif 000004
【図４】
0003784195.tif 000005
【図５】
0003784195.tif 000006
【図６】
0003784195.tif 000007
【図７】
0003784195.tif 000008
【図８】
0003784195.tif 000009
【図９】
0003784195.tif 000010
【図１０】
0003784195.tif 000011
【図１１】
0003784195.tif 000012
【図１２】
0003784195.tif 000013
【図１３】
0003784195.tif 000014
【図１４】
0003784195.tif 000015