(57)【特許請求の範囲】
【請求項１】
ＶＣ（仮想チャネル）多重されたＡＴＭ（非同期転送モード）セルを受信し、ＶＣ毎にセルのままパケットを組立て、パケット単位で出力するパケットバッファ装置において、
受信したパケットをセル単位に格納する複数のセルバッファを有するパケットバッファメモリと、
該パケットバッファメモリのセルバッファ対応に、バッファ管理情報を保持するバッファ管理メモリと、
ＶＣ毎に前記パケットバッファメモリへのパケットの先頭セルから最終セルまでの格納の途中のパケット組立中キューを形成する組立中ポインタと、
前記先頭セルを解析して、新たなヘッダセルを作成するヘッダ解析・作成手段を有し、
前記受信したパケットの先頭セルに対応して，前記パケットバッファメモリに，リンクする２つのセルバッファを確保し，該確保された２つのセルバッファの２番目のセルバッファから前記受信したパケットを格納し，１番目と２番目のセルバッファ番号を前記ヘッダ解析・作成手段に転送し，
前記ヘッダ解析・作成手段は、前記２番目のセルバッファより受信ヘッダセルを読み出し，作成された新たなヘッダセルを前記確保された１番目のセルバッファに前記パケット組立中キューの先頭セルとして書き込みを行うことを特徴とするパケットバッファ装置。
【請求項２】
請求項１において、
さらに、前記パケットバッファメモリへのパケットの先頭セルから最終セルまでの格納によりパケットが組み立てられ、且つ前記新たなヘッダセルの書込の完了を検知したことにより、前記組立中ポインタで形成されるパケット組立中キューを出力待ちキューに繋ぐ様に制御するシーケンス制御部を有することを特徴とするパケットバッファ装置。
【請求項３】
請求項１において、
前記新たなヘッダセルの先頭セルとしての書き込みは、前記ヘッダセルの付加、該ヘッダセルとの置換又は、先頭セルの無変換処理を含むことを特徴とするパケットバッファ装置。
【請求項４】
請求項２において、
前記ヘッダ解析・作成手段は、作成された新たなヘッダセルを前記パケット組立中キューの先頭セルとして書き込みを完了した情報と、付属情報を出力し、
前記シーケンス制御部は、前記付属情報を参照して、前記組立中ポインタで形成されるパケット組立中キューを、出力待ちキューに繋ぐことなく廃棄するように制御することを特徴とするパケットバッファ装置。
【請求項５】
請求項１において，
前記新たなヘッダセルの内容をパケットの後続するセルのヘッダへコピーして出力することを特徴とするパケットバッファ装置。
【発明の詳細な説明】
技術分野
本発明は、パケットバッファ装置に関する。特に、複数のＡＴＭ（非同期転送モード）セルをパケット化して、送受信するシステムにおいて、ＶＣ（仮想チャネル）多重されたセルをＶＣ単位でセルのままパケットに組み立て出力するパケットバッファ装置に関する。
背景技術
セルをパケット化して送受信するシステムの一例として、図１６に示すシステムが想定される。さらに、特開平９−３４８１６号公報に類似システムが開示されている。ＩＰプロトコルでユーザ間が接続されたＬＡＮネットワーク１００と、大規模ＩＰネットワーク２００とがカプセル化装置２０１で接続されている。
ＬＡＮネットワーク１００は、ＩＰパケットをＡＴＭ（非同期転送モード）セル化（ＩＰオーバＡＴＭ）し、ＬＬＣ（Logical Link Control：論理リンク制御）及び，ＳＮＡＰ（Subnetwork Access Point）を付加して、カプセル化している。
一方、大規模ＩＰネットワーク２００は、カプセル化装置２０１において、このカプセル化されたＩＰパケットに独自の網内ヘッダを付加してカプセル化して網内転送用としている。また、大規模ＩＰネットワーク２００からは、ＬＡＮネットワーク１００のユーザに転送する際は、カプセル化装置２０１において、網内ヘッダを削除している。
図１７は、ＡＡＬ（ATM Adaptation Layer：高位レイヤから来るユーザのアプリケーションデータを整数倍に調製、分割するレイヤをいう）タイプ５のＡＴＭセルフォーマットであり、５バイトのヘッダと、４８バイトのペイロードを有する。５バイトのヘッダ部分には、仮想チャネル識別（ＶＣＩ）及び、パケットを構成するセルの最終セル表示フラグＰＴ０を有している。
ユーザ１０２から、ＩＰパケットが図１７に示すセルフォーマットで出力される。このＡＴＭセルのＩＰパケットは、図１８に示すようにカプセル化されている。
すなわち、１フレーム最大６５５３５オクテッドとなるようにＡＴ２０．Ｍセルをパケット化し、図１８（Ａ）に示すように、これにパケット長が４８バイトの整数倍となるように、１〜４７バイトのＰＡＤが挿入される。さらに、８バイトのトレイラが付加される。８バイトのトレイラには、ユーザ情報、フレーム長情報、ＣＲＣチェック情報が含まれる。
また、ＩＰパケットのフレームには、カプセル化の為に３バイトの上記ＬＬＣ，５バイトの上記ＳＮＡＰを有している。図１６の集積装置１０１で、複数の仮想チャネルに対し、カプセル化されたＩＰパケットのＡＴＭセルがＶＣ多重化される。
このＶＣ多重化されたＡＴＭセルから、ＶＣ毎にパケット分離することは、ＡＴＭセルのヘッダのＶＣＩを参照し、更に、最終セルフラグＰＴ０を検知することにより可能である。
カプセル化装置２０１は、ユーザ１０２からのパケットセルに対し、ＡＡＬ５で終端し、送出方路を識別してＶＣを付け替え、図１８（Ｂ）に示すように、大規模ＩＰネットワーク２００内の独自の網内ヘッダを付加する。そして、コネクションサーバ２０２に送出する機能を有する。
一方、カプセル化装置２０１は、大規模ＩＰネットワーク２００にあるコネクションサーバ２０２からのパケットを、ＡＡＬ５で終端する。さらに、網内で付けられた独自のヘッダを削除し、送出先ユーザ１０２を識別して、ＶＣを付け替え該当のユーザに向けて送出する機能を有する。ここで大規模ＩＰネットワーク内の複数ルートから同一ユーザへ同時にパケットを受信した場合、異なったパケットが送出先対応の同一ＶＣを付与されて送出され混在消失するのを防ぐため、セルをパケット化してから送出する。
なお、ＬＡＮネットワーク１００内の、ユーザからユーザへのパケットセルに対しては、網内の独自のヘッダの付加／削除は行われない。
したがって、上記のようなカプセル化装置２０１の機能の実現のために、セル単位でパケット化して蓄積するバッファ機能が必要である。
図１９は、かかるバッファ機能を実現するパケットバッファ装置の一構成例のブロック図である。図１９に示す構成のパケットバッファ装置では、受信されたパケットをパケットバッファメモリ２１０に格納退避する。ソフトウェア又はファームウェアにより、パケットのヘッダを読み出し、解析して新たなヘッダを付加してパケットを送出している。
すなわち、図１９において、受信されたパケットは、パケットバッファメモリ２１０に一旦格納される。パケットバッファメモリ２１０との間で、ＤＭＡ回路２１１通して順次転送されるパケットをセル分解・組立部（ＣＬＡＤ：Cell Assembly & Disassembly）２１２で、所定のヘッダ読取、ヘッダ解析を行う。網内用ヘッダを作成後に、当該ヘッダの付加によりカプセル化してパケットの送出を行う。
このようなセル分解・組立部２１２における処理は、ヘッダ解析・作成ソフトウェア又は、ファームウェア２１３に従い、マイクロプロセッサ２１４により実行制御される。
ここで、マイクロプロセッサ２１４によるソフトウェア又は、ファームウェア２１３の制御によってセル分解・組立部２１２の処理を実行する場合は、処理時間の短縮が難しく高速多重回線を扱う場合、ヘッダの付加処理が回線収容能力のネックとなる。
したがって、近年の回線の高速化、大容量化に対応して、パケットヘッダの解析・作成をハードウェアにより高速化させる必要が生じている。しかし、パケットのヘッダの解析、付加をパケットの流れに同期させて処理する場合、ヘッダの解析、付加処理を一定期間内で行う必要がある。
そこで処理時間が一定でない場合は、最大の処理遅延に対応出来る様にある程度のパケット量をバッファする機能が必要である。
発明の概要
したがって、本発明の目的は、パケットの組立とパケットヘッダの解析、付加を行うことが同時に可能であるパケットバッファ装置を提供することにある。
さらに、本発明の目的は、パケット組立で使用するバッファ及び、パケット組立に要する時間をパケットのヘッダ解析・付加処理に効率的に使用するパケットバッファ装置を提供することにある。
上記本発明の課題を達成するパケットバッファ装置は、ＶＣ（仮想チャネル）多重されたＡＴＭ（非同期転送モード）セルを受信し、ＶＣ毎にセルのままパケットを組立て、パケット単位で出力するパケットバッファ装置を対象とする。
構成として、受信したパケットをセル単位に格納する複数のセルバッファを有するパケットバッファメモリと、このパケットバッファメモリのセルバッファ対応に、バッファ管理情報を保持するバッファ管理メモリと、ＶＣ毎に該パケットバッファメモリへのパケットの先頭セルから最終セルまでの格納の途中のパケット組立中キューを形成する組立中ポインタと、前記先頭セルを解析して、新たなヘッダセルを作成するヘッダ解析・作成手段を有する。そして、前記ヘッダ解析・作成手段は、作成された新たなヘッダセルを該パケット組立中キューの先頭セルとして書き込みを行うことを特徴とする。
また、一の態様として、前記パケットバッファメモリへのパケットの先頭セルから最終セルまでの格納によりパケットが組み立てられ、且つ前記新たなヘッダセルの書込の完了を検知し、前記組立中ポインタで形成されるパケット組立中キューを出力待ちキューに繋ぐ様に制御するシーケンス制御部を有する。
さらに、一の態様として、前記新たなヘッダセルの先頭セルとして書き込みは、該ヘッダセルの付加、ヘッダセルとの置換又は、先頭セルの無変換処理を含む。
さらにまた、一の態様として、前記パケットバッファメモリは、パケットの先頭セルを受信した時、先頭セルに対応して、リンクする２つのセルバッファを確保し、この該確保された２つのセルバッファの２番目のセルバッファから、受信するパケットのセルを格納することを特徴とする。
また、一の態様として、前記ヘッダ解析・作成手段は、作成された新たなヘッダセルを前記パケット組立中キューの先頭セルとして書き込みを完了した情報と、付属情報を出力し、前記シーケンス制御部は、前記付属情報を参照して廃棄指示である場合、前記組立中ポインタで形成されるパケット組立中キューを、出力待ちキューに繋ぐことなく廃棄するように制御する。
さらに、前記新たなヘッダセルの内容をパケットの後続するセルのヘッダにコピーして出力することを特徴とする。
本発明の更なる課題及び、特徴は以下の図面を参照して説明される実施の形態から明らかになる。
【図面の簡単な説明】
図１は、本発明に従うパケットバッファ装置の実施例の構成を説明する図である。
図２は、バッファ制御部３の動作を説明する図である。
図３は、バッファ制御部のビット変換回路の実施例ブロック図である。
図４は、図３の実施例回路に対応するタイムチャート図である。
図５は、バッファ管理部の動作を説明する図である。
図６は、バッファ管理メモリの内容を説明する図である。
図７は、バッファ管理のためのバッファ間のリンクを説明する図である。
図８は、ヘッダ書込完了の通知を説明する図である。
図９は、ヘッダ書込完付属情報を説明する図である。
図１０は、ヘッダのコピー機能を行う回路の実施例である。
図１１は、バッファ管理部のパケット組立処理の実施例フロー図である。
図１２は、バッファ管理部のヘッダ書込完監視の実施例フロー図である。
図１３は、バッファ管理部のパケット組立処理の他の実施例フロー図である。
図１４は、バッファ管理部のヘッダ書込完監視の他の実施例フロー図である。
図１５は、バッファ管理部のパケット送出処理の実施例フロー図である。
図１６は、セルをパケット化して送受信するシステムの一例を説明する図である。
図１７は、ＡＡＬ５ＡＴＭセルフォーマットを示す図である。
図１８は、ＩＰオーバＡＴＭ及び、網内ヘッダによるカプセル化を説明する図である。
図１９は、従来のパケットバッファ装置を説明する図である。
発明を実施するための最良の形態
以下本発明の実施の形態を図面に従い説明する。なお、図において、同一又は、類似のものには同一の参照番号又は、参照記号を付して説明する。
図１は、本発明に従うパケットバッファ装置の実施例の構成を説明する図である。かかるパケットバッファ装置の機能として、ＬＡＮネットワーク１００（図１６参照）のユーザ側から送られるＶＣ多重化セルを受信し、これをＶＣ（仮想チャネル）毎に組み換えてパケットを組立てる。
さらに、これに大規模ＩＰネットワーク２００の網内の独自のヘッダを付加してカプセル化して出力する機能を有する。
反対に、大規模ＩＰネットワーク２００から送られるカプセル化されたパケットから独自のヘッダを削除してネットワーク１００のユーザ側に送り出す機能を有する。
図１において、セル監視部１は、ＶＣ多重化されたＩＰパケットをネットワーク１００から受信し、若しくは、ネットワーク２００から網内用ヘッダの付いたパケットを受信する。
受信されたパケットから、セル監視部１において、ＶＣ（仮想チャネル）毎に、パケットの先頭セルと最終のセル情報が抽出される。この先頭セルと最終のセルは、先に説明したように、ペイロードタイプ（ＰＴ）がＰＴ０が“１”時、パケットの最終セルを表す。従って最終セルの次に現れる該当のＶＣのセルが先頭セルとなる関係から検知可能である。
セル監視部１を通過したセルは、同期信号とともに、バッファ制御部３に入力される。さらに、抽出された先頭セルと最終のセル及び、ＶＣ（仮想チャネル）情報が、同期信号とともに、バッファ管理部４に入力される。パケットバッファメモリ２は、セル単位でパケットを格納するメモリである。
バッファ制御部３は、受信パケットのパケットバッファメモリ２への受信パケットのセル単位での書込及び、送信パケットのパケットバッファメモリ２から送信パケットのセル単位での読出を制御する。
この時、バッファ制御部３は、同期信号を基にタイミング作成部３０で作成されるタイミング信号に従い、メモリ制御部３１によりセル単位での書込み、読み出しを制御する。
この時のセル単位での書き込み、読み出しを行うアドレスは、バッファ管理部４から送られ、アドレス保持回路３２に保持されている。
さらに、バッファ制御部３は、ヘッダ解析・作成部７から送られるヘッダセルのパケットバッファメモリ２への書込、ヘッダ解析・作成部７へのヘッダセルの読出を、同様にメモリ制御部３１により制御する。
この時のヘッダセルの書き込み、読み出しを行うアドレスは、ヘッダ解析・作成部７から送られ、別のアドレス保持回路３３に保持されている。
ここで、バッファ制御部３では受信セルの書込みと、送信セルの読み出し及び、ヘッダセルの書込みとヘッダセルの読み出しが同時に発生する場合の考慮が必要である。
そのために、バッファ制御部３の動作を説明する図２におけるセルの書込み、読み出しタイムチャートにより示されるように、バッファ制御部３は、上記受信セルの書込みと、送信セルの読み出し及び、ヘツダセルの書込みとヘッダセルの読み出し動作を、１セル時間内に行う。これによりアクセス時間を保証している。
すなわち、図２において、１セル通過時間内に、実施例として、パケットバッファメモリ２に受信したセルの書込み（１）、ヘッダセルの書込み（２）、パケットバッファメモリ２からのセルの読み出し（３）及び、ヘッダセルの読み出し（４）を行う。
さらに、図１の、バッファ制御部３の特徴として、第１〜第４のビット幅変換回路３４〜３７を有し、それぞれ８ビット並列で転送されるセルデータに対し、８←→６４ビット変換を行う。
図３に、８←→６４ビット幅変換回路３４〜３７の構成例を示す。それぞれ８ビット並列データのシフトレジスタを８列分有して構成される。ビット幅変換回路３４、３５は、セル監視部１から入力される８ビット並列の受信セル及び、ヘッダ解析・作成部７から送られる８ビット並列のヘッダセルを６４ビットにそれぞれ変換して、パケットバッファメモリ２に書き込む。
反対に、ビット幅変換回路３６、３７は、パケットバッファメモリ２から読み出される６４ビット並列の送信セル及び、ヘッダセルを８ビット並列に変換し、それぞれトレイラ付加回路６及び、ヘッダ解析・作成部７に送る。
図２のタイムチャートにおいて、８→６４ビット幅変換回路３４、３５は、それぞれ、８ビット並列のデータセル及び、ヘッドセルを６４ビット並列に変換するビット幅変換処理と、書込み処理を１セル通過期間内で行う。
同様に、６４→８ビット幅変換回路３６、３７は、それぞれ、６４ビット並列のデータセル及び、ヘッドセルの読み出し動作と、８ビット並列に変換するビット幅変換処理を１セル通過期間内で行う。
このように、パケットバッファメモリ２へ書込み、読み出しを６４ビット幅で行うことにより、アクセス回数を減らすことが可能である。この様子を図３の実施例回路に対応する図４のタイムチャートを参照して更に説明する。
本実施例では、パケットバッファメモリ２に、シンクロナスＤＲＡＭを用いて、受信１セル分の書込み・送信１セル分の読み出し及び、１セル分のヘッダ書込み・１セル分のヘッダ読出を、それぞれ６４ビットずつ７回の書込、読出しで行っている。
また各々のセルの同期信号（セルＴＯＰ）は、図４に示されるようにずらせばよい。しかし、外部条件で各々のセルＴＯＰ▲１▼〜▲４▼の位相が決められている場合では、ビット変換回路３４〜３７内で必要な位相をずらすことにより実現可能である。
なお、パケットバッファメモリ２にシンクロナスＤＲＡＭ以外のメモリを使用した場合でも、同様にビット変換とセルＴＯＰの調整により、アクセス回数の削減が可能である。
一方、図１において、バッファ管理部４は、先に説明したように、セル監視部１から、同期信号とともに、ＶＣ（仮想チャネル）毎のパケットの先頭セル及び、最終セル及び、ＶＣ情報をシーケンス制御部４０で受信する。
バッファ管理部４は、パケットの先頭セルを受信する度に、ヘッダ付加用のバッファＮｏ．及び、ヘッダ読取り用のバッファＮｏ．をバッファ５に格納する。なお、バッファ５としてＦＩＦＯメモリを用い、先頭セルの格納されるパケットバッファメモリ２のバッファＮｏ．を順次書き込むことによりキューが形成される。
ヘッダ解析・作成部７は、バッファ５にバッファＮｏ．が格納されていることを識別し、バッファＮｏ．を取り出す。このバッファＮｏ．がヘッダ読取り用である場合は、バッファ制御部３のヘッダ読出し書込みアドレス保持回路３３に対し、パケットバッファメモリ２の該当のバッファＮｏ．からヘッダセルを読取ることを要求する。これにより、バッファ制御部３のメモリ制御部３１の制御によりヘッダセルが読み出される。
一方、ヘッダ解析・作成部７は、バッファ５に格納されるバッファＮｏ．が受信ヘッダセルに対し、新ヘッダを作成し付加するためである時、バッファＮｏ．を付加してバッファ制御部３を通してパケットバッファメモリ２に書き込む。
さらに、ヘッダ解析・作成部７は、ヘッダをパケットバッファメモリ２に書き込むと同時に、ヘッダ書込み完了通知及び付属情報をバッファ管理部４の書込み完了付属情報の受信回路４３に通知する。
ここで、バッファ管理部４の詳細を、図５の動作フローを参照して説明する。シーケンス制御部４０は、バッファ管理部４の全体動作を制御する。ＶＣ（仮想チャネル）毎のパケットの先頭セル、及び最終セル情報から、セル書込読出指示回路４１を通して、アドレス保持回路３２にセルデータを書き込む先の、パケットバッファメモリ２の空きバッファエリアのアドレスを送る。
したがって、メモリ制御部３１の制御の下に、パケットバッファメモリ２にセル単位でセルデータが書き込まれる。
ここで、バッファ管理部４は、バッファ管理メモリ４４を有し、バッファ管理メモリ４４は、パケットバッファメモリ２にセルバッファ単位に付与されたバッファＮｏ．（＝１〜ｎ）と、１対１に対応してバッファ管理情報を格納する複数の管理エリアを有する。
１つのバッファ管理エリアに記憶されるバッファ管理情報４４０は、１つのセルに対しての、バッファリンク情報４４０ａ，（ヘッダ書込完了フラグ＋付属情報）４４０ｂ及び、ヘッダ書込待ち制御情報４４０ｃを有する。
その詳細が、図６に示される。バッファリンク情報４４０ａは、パケットバッファメモリ２の次のバッファＮｏ．を記録する。これにより、パケットバッファメモリ２にセル単位に記憶される、受信した１つのパケットの先頭セルから最終セルまでをリンクすることが出来る。
かかるリンクの様子を図７に示す。図７（Ａ）は、パケットバッファメモリ２の記憶内容である。バッファＮｏ．（０），（ａ），（ｂ），（ｃ）は、１つのＩＰパケットに含まれるセルに対して確保されたエリアであり、バッファＮｏ．（ｄ），（ｅ），（ｆ）は、別のＩＰパケットに含まれるセルに対して確保されたエリアである。
図７（Ｂ）は、対応するバッファ管理メモリ４４の内容であり、パケットバッファメモリ２のセル単位に対応するアドレス位置に、次のセルの記憶されるバッファ管理メモリ４４上のリンク位置（ポインタ）が記録されている。
例えば、パケットバッファメモリ２のバッファＮｏ．（０）に記憶されるセルに対応して、バッファ管理メモリ４４には、次のリンクされるバッファＮｏ．（ａ）が記録されている。さらに、パケットバッファメモリ２のバッファＮｏ．（ａ）に記憶されるセルに対応して、バッファ管理メモリ４４には、次のリンクされるバッファＮｏ．（ｂ）が記録されている。
この様にして、図７（Ｃ）に示す様に、パケット毎に先頭ポインタ値から最終ポインタ値までのリンク［バッファＮｏ．（０），（ａ），（ｂ），（ｃ）のリンク及び、バッファＮｏ．（ｄ），（ｅ），（ｆ）のリンク］が可能である。このリンクに従って、パケットバッファメモリ２からパケットに含まれるセルの順次の読み出しが可能である。
図５、図６に戻り説明すると、バッファ管理メモリ４４に記憶されるバッファ管理情報の内、ヘッダ書き込み待ち制御情報４４０ｃは、ＶＣ（仮想チャネル）の入れ換えによりパケット組立が完了し、且つヘッダ書込待ちの時に、一旦退避格納されるパケット組立済情報である。そして、ヘッダ書込完了フラグと、ヘッダ書込付属情報４４０ｂを有する。
ここでパケット組立が完了するとは、先に説明した様に、１のパケットの先頭セルから最終セルまで全てのセルデータがパケットバッファメモリ２に格納され、且つ、バッファ管理メモリ４４のバッファリンク情報により、先頭セルから最終セルまでリンクされた状態を意味する。
ヘッダ書込完了フラグは、後に図８に従い説明される様に、ヘッダ解析・作成部７の制御により、１つのパケットに付与される新たな先頭セル（ヘッダセル）がパケットバッファメモリ２に書込まれた時点でオンとされる。
さらに、ヘッダ書込付属情報として、ヘッダ書込完了時点における付属情報が格納される。ここで、ヘッダ書込完了の時点における付属情報は、ヘッダ付加種別及び、パケット廃棄指示がある。
また、バッファ管理メモリ４４に記憶されるバッファ管理情報４４０の内、ヘッダ書込待ち制御情報４４０ｃは、ヘッダ書込待ちフラグ、パケット内セル数及び、最終セルのバッファＮｏ．等の情報を有する。
ヘッダ書込待ちフラグは、パケットの組立が完了し、且つヘッダ書込が未了の時にオンとされる。パケット内セル数は、組立完了済のパケット内のセル数を示す。最終バッファＮｏ．は、図７（Ｃ）で説明したような、組立済パケットのバッファリンクの最終セルのバッファＮｏ．を示す。
図５において、パケットバッファメモリ２のそれぞれのセルバッファは、その使用状態で、空きバッファキューＩＢＱ、組立て中キューＵＣＱ、出力待ちキューＯＷＱを形成する。
各キューの状態は、バッファ管理部４のそれぞれ空きバッファポインタ４５、組立て中ポインタ４６、出力待ちポインタ４７で制御される。各ポインタ間は、先頭及び、最後尾ポインタでリンクを繋いでいる。先頭のバッファＮｏ．及び、最後尾のバッファＮｏ．を格納し、キュー間でセルバッファの移動があるたびにポインタの更新を行う。
ここで、ＶＣ毎に組立中キューが必要であるため、ＶＣ数が多くなる場合、組立て中ポインタ４６はそのＶＣ数に対応する多数個が必要である。したがって、組立て中ポインタ４６は、スタティックＲＡＭを用いて構成することが有利である。一方、空きバッファポインタ４５及び、出力待ちポインタ４７は、それぞれ１つのキューを形成するので、簡単なレジスタを用意すれば足りる。
シーケンス制御部４０は、ここで、パケットの組立てが完了した時即ち、パケットの先頭セルから最終セルまでパケットバッファメモリ２に書き込まれた時、バッファ管理メモリ４４のバッファ管理情報４４０中のエリア４４０ｂにおいて、ヘッダ解析作成部７より新たなヘッダが書き込まれているときヘッダ書込み完了フラグがオンとされている。したがって、シーケンス制御部４０は、ヘッダ書込み完了フラグを参照して、ヘッダの書込みが完了したか否かをチェックする。
そして、ヘッダの書込みが完了していた場合のみ、組立済のパケット（組立て中キューＵＣＱ内のセル）を出力待ちキューＯＷＱに繋ぎ、組立中キューＵＣＱを開放する。これは、出力待ちキューＯＷＱのポインタ４７と、組立中ポインタ４６を更新することにより可能である。
パケットの組立てが完了した場合であって、ヘッダの書込みが今だ完了していない場合は、組立て済のパケットの先頭セルのバッファＮｏ．に対応するバッファ管理メモリ４４のヘッダ書込み待ち制御情報エリア４４０ｃのヘッダ書込み待ちフラグがオンとされる。
さらに、最終セルバッファＮｏ．及び、パケット内セル数をヘッダ書込み待ち制御情報エリア４４０ｃに格納する。これにより、パケット毎に書込み待ちキューＷＷＱとして待避される。そして、組立て中キューＵＣＱは、次パケット受信用に開放可能となる。
また、ヘッダ解析・作成部７から受信回路４３へのヘッダ書込み完了通知時に、付属情報としてヘッダ付加種別及び、パケット廃棄指示が、図６に示すバッファ管理メモリ４４のバッファ管理情報エリア４４０ｂに書き込まれる。
したがって、シーケンス制御部４０がバッファ管理情報エリア４４０ｂを参照してパケット組立て完了、且つヘッダの書込み完了を識別した時、付属情報のパケット廃棄指示がオンしていた場合、パケットを出力待ちキューＯＷＱに繋げずに廃棄し、使用バッファを空きバッファＩＢＱに繋げる。
ここで、パケットが廃棄される場合とは、例えば、転送先アドレスが読みとれなかった場合等である。
図８に、上記のヘッダ書込み完了通知の処理概要図を示す。今、ヘッダ解析・作成部７において、バッファ制御部３を通して、パケットバッファメモリ２のセルバッファＮｏ．ｂからヘッダを読み出し解析する。大規模ＩＰネットワーク２００に転送すべきパケットである場合、大規模ＩＰネットワーク２００内転送用の新ヘッダをセルバッファＮｏ．ａに書き込む。
さらに、この時、ヘッダ解析・作成部７は、バッファ管理部４のヘッダ書込み完了及び付属情報の受信回路４３を通して、バッファ管理メモリ４４のバッファ管理情報エリア４４０ｂの書込み完了フラグをオンにする。同時に付属情報を設定する。
このように設定されたバッファ管理情報エリア４４０ｂを参照して、パケットが組立て完了し、且つヘッダ書込み完了後、廃棄指示でない場合、出力待ちキューＯＷＱに繋がれ、順に送信される。
ここで、セル送出処理において、シーケンス制御部４０は、パケットの先頭を監視し、パケットの先頭セル送信時に、図６に示す付属情報のヘッダ付加種別を読み取る。図９（Ａ）に改めて示す様に、ヘッダ書込完了時の付属情報は、パケットの廃棄と、ヘッダの付加種別がある。
ヘッダの付加種別として、更にヘッダ解析・作成部７により書かれたヘッダを受信ヘッダの上に被せて送出（種別：付加）するか［図９（Ｂ）▲１▼］、受信ヘッダに置き換えて送出（種別：置換）するか［図９（Ｂ）▲２▼］、あるいはまたは受信ヘッダをそのまま送出（種別：無変換）するか［図９（Ｂ）▲３▼］を判定される。
図９（Ｂ）において、ＲＨは受信パケットのヘッダセルであり、ＳＨはヘッダ解析・作成部７により送信パケットに付加されたヘッダセルである。また、Ｅはパケットの最終セルを示す。
ここで、図９（Ｂ）に示される様に、受信パケットに対して、送信パケットが受信パケットのヘッダセルＲＨと、付加されたヘッダセルＳＨを有する場合［図９（Ｂ）▲１▼］がある。
したがって、かかるケースに対応するべく、シーケンス制御部４０が、パケットの先頭セルを受信した時、パケットバッファメモリ２に先頭セル（ヘッダセル）書込用として、リンクする２つのバッファＮｏ．エリアを確保する。パケットを受信した時には、２つ目のめのバッファＮｏ．エリアから格納していく。
一方、ヘッダ解析・作成部７は、図８において先に説明したように、受信ヘッダセルに対し、新ヘッダを作成し、セルバッファＮｏ．を付加してバッファ制御部３を通してパケットバメモリ２に書き込む。さらに、ヘッダ解析・作成部７は、ヘッダを書き込むと同時にヘッダ書込み完了通知及び付属情報をバッファ管理部４の書込み完了付属情報の受信回路４３に通知する。
ここで、ヘッダ解析・作成部７より作成された新ヘッダに付加されるセルのＡＴＭヘッダ内部のＶＰ１，ＶＣ１，ＰＴ（Payload Type），ＣＬＰ（Cell Loss Priority）を、同一パケットの後続のセルに対しても搭載する必要がある。
このために実施例として、パケットバッファ２からのセル出力時に、パケット内の後続セルにこれらの情報をコピーする。これにより新たなパケットヘッダの付加と共に、パケットのＶＣ変換が可能である。
図１０は、かかるコピー機能を行う回路の実施例である。図１０において、バッファ制御部３から出力されるパケットのＡＴＭセル列は、図１０のＡに示す如くである。このＡＴＭセルの先頭セル列には、新らしいヘッダが付加されている。これに後続するセルは、旧のヘッダが付けられたままである。
そこで、セルヘッダコピー回路８が用意される。バッファ８０と、先頭セルのヘッダを抽出保持する回路８１を有する。回路８１により抽出保持された先頭セルのヘッダをタイミング回路８３からのタイミング信号に同期して、後続するセルのヘッダに上書きする。
これにより、コピー回路８の出力は、図１０のＢに示す如くに先頭セルの新しいヘッダを後続するセルに対しても付加することが可能である。なお、ＡＴＭヘッダのコピー範囲を予め定めて置くことにより必要な情報のみを残すことが可能である。
回路８の出力は、さらに、回路６において、セル長及び、ＣＲＣ演算結果が付加され、カピセル化されて送り出される。
次に、図１１乃至図１５の動作のフローにより更に、本発明の上記のバッファ管理の実施例動作を順に説明する。
図１１は、パケット組立処理フローであり、シーケンス制御部４０により、セルを受信し、ＶＣ毎にパケットの先頭セルから最終セルまでリンクしながらパケットバッファメモリ２に格納することによりパケットの組立を行う（ステップＳ１）。
したがって、最終セルまで受信し、パケットの組立が完了したかを判断し（ステップＳ２）、パケットの組立が完了している場合は、更に、新たなヘッダが書込済か否かを判断する（ステップＳ３）。
ヘッダが書込済である場合は、組立中キューＵＣＱにある組立済パケットを出力待ちキューＯＷＱに繋ぐ（ステップＳ４）。一方、ヘッダの書込が未了である場合は、バッファ管理メモリ４４のエリア４４０ｃのヘッダ書込待ちフラグをオンとする。そして、組立済情報（セル数及び、最終セルバッファＮｏ．）を先頭セルバッファＮｏ．対応のバッファ管理メモリ４４上に格納する（ステップＳ５）。
図１２は、ヘッダ書込完了監視フローである。シーケンス制御部４０は、ヘッダ解析・作成部７から書込完了付属情報の受信回路４３へのヘッダ書込完了通知が送られたか否かを判断する（ステップＳ５）。
ヘッダ書込通知有りの場合は、指定のセルバッファＮｏ．対応のバッファ管理メモリ４４上のバッファ管理情報エリア４４０ｂにヘッダ書込完了フラグをオンし、付属情報を書き込む（ステップＳ６）。
ついで、ヘッダの書込待ち中キューＷＷＱか否かを判断する（ステップＳ７）。書込待ち中キューＷＷＱであれば、書込完通知のあったセルバッファＮｏ．を組立済先頭ポインタに設定し、ヘッダ書込待ち制御情報内の最後尾バッファを組立済最後尾ポインタに設定する。ついで、組立て済パケットを出力待ちキューＯＷＱに繋ぐ（ステップＳ８）。
図１３は、図１１に対応するパケット組立フローの他の例である。ステップＳ３のヘッダ書込済か否かの判断で、ヘッダ書込済である場合、更にヘッダ書込完付属情報が廃棄指示されているか否か（ステップＳ３０）の判断が追加されている。
廃棄指示されている場合は、組立て中キューＵＣＱにある組立済パケットを組立中キューＵＣＱ内のセルを空きバッファＩＢＱにリンクして廃棄する（ステップＳ３１）。
また、図１４は、図１２に対応するヘッダ書込完監視フローの他の例である。書込待ち中か否かの判断（ステップＳ６）において、書込待ち中であれば、図１３におけると同様に、ヘッダ書込完付属情報が廃棄指示されているか否か（ステップＳ７０）の判断が追加されている。
廃棄指示されている場合は、書込完通知のバッファＮｏ．を組立て済先頭ポインタに設定する。さらに、ヘッダ書込待ちエリア内の最後尾バッファを組立て済最後尾ポインタとして組立済パケットを廃棄する。
これにより、組立中キューＵＣＱを空きバッファＩＢＱにリンクする（ステップＳ７１）。
図１５は、パケット送出処理フローである。シーケンス制御部４０は、出力待ちキューＯＷＱにセルがあるか否かを判断する（ステップＳ１０）。出力待ちキューＯＷＱにセルがある場合は、パケット送出中か否かを判断する（ステップＳ１１）。
ここでパケット送出中か否かの判断は、シーケンス制御部４０内に備えられる、図示しないレジスタにより示されるパケット送出中はオンとされるフラグ情報に基づき行われる。
このフラグ情報からパケット送出中であれば、セル送出をバッファ制御部３に指示する（ステップＳ１２）。次いで、出力待ちキューの先頭ポインタを次のリンクバッファＮｏ．とする。そして、送出セルバッファＮｏ．を空きキューＩＢＱにリンクする（ステップＳ１３）。
該当パケットの最終セルであるかを判断し（ステップＳ１４）、最終セルである場合は、上記のパケット送出中フラグをオフとする（ステップＳ１５）。
一方、ステップＳ１１において、パケット送出中でないと判断されると、先頭セルを受信して、バッファ管理メモリ４４からヘッダ付属を読み取る（ステップＳ１６）。ヘッダ付加処理対象か否か（即ち、大規模ネットワーク２００に向けたパケットであるか否か）を判断し（ステップＳ１７）、ヘッダ付加処理対象であれば、セル送出をバッファ制御部３に指示する（ステップＳ１８）。
次いで、出力待ちキューの先頭ポインタを次のリンクバッファＮｏ．とする。そして、送出セルバッファＮｏ．を空きキューＩＢＱにリンクする（ステップＳ１９）。さらに、パケット送出中フラグをオンとする（ステップＳ２０）。
ステップＳ１７において、ヘッダ付加処理対象（即ち、大規模ネットワーク２００からＬＡＮネットワーク１００上のユーザに向けたパネルであるか否か）でなければ、ヘッダ置換対象か（即ち、大規模ネットワーク２００からＬＡＮネットワーク１００上のユーザに向けたパケットであるか否か）を判断する（ステップＳ２１）。
ヘッダ置換対象であれば、セル送出をバッファ制御部３に指示する（ステップＳ２２）。次いで、出力待ちキューの先頭ポインタを次の次のリンクバッファＮｏ．とする。そして、送出セルバッファＮｏ．及び、次リンクバッファＮｏ．を空きバッファキューＩＢＱにリンクする（ステップＳ２３）。結果として、旧ヘッダが廃棄される（ステップＳ２４）。そして、パケット送出中フラグをオンとする（ステップＳ２５）。
さらに、ステップ２１において、ヘッダ置換対象でなければ、そのまま、出力待ちキューより次のリンクのバッファＮｏ．を取り出し、セル読出をバッファ制御部３に指示する（ステップ２６）。
次いで、出力待ちキューの先頭ポインタを次のリンクバッファＮｏ．とする。そして、廃棄セルバッファＮｏ．及び、送出セルバッファＮｏ．を空きバッファキューＩＢＱにリンクする（ステップＳ２７）。そして、パケット送出中フラグをオンとする（ステップＳ２８）。
産業上の利用可能性
以上実施の形態を図面に従い説明したように、本発明は、パケットの組立と並列にパケットのヘッダ解析、送信ヘッダの作成処理を可能とする。また受信ヘッダの読取り及び、送信ヘッダの付加も、パケットの組立て処理に影響を与えることなく行える。
このため、パケット組立用のバッファとヘッダ処理用のバッファが完全に共用でき、ハードの削減に効果がある。
また、ヘッダ解析作成部との情報送受は、ハード処理による高速動作が可能であり、ヘッダ解析付加処理が高速処理を要求する場合では十分な高速動作が保証される。また、ヘッダの解析、作成処理が、一時的に輻輳しても、パケットバッファメモリでパケットを保留することが可能であり、パケット種別によりヘッダ解析・作成処理時間が大きく異なる場合、効果的にヘッダの付加処理が行える。
また、ヘッダア書込み通知の手段によりパケットの廃棄、パケットの通過（無処理指示等）も可能である。またＡＴＭヘッダのコピーも可能であり、ヘッダ付加と同時にパケットの処理指示が、簡単なハードウェアで可能となる。
以上説明したように、本発明によれば、パケットをＡＴＭセルでＶＣ多重で受信し、セルのままパケット化して送信するパケットバッファにおいて、同時にパケットのヘッダ付加置換を高速でかつバッファを共有して実現可能となる。高速回線のパケットヘッダ付加を行うシステムに対して処理の高速化、ハード量の削減に大いに効果がある。
【図１】
0003654837.tif 000002
【図２】
0003654837.tif 000003
【図３】
0003654837.tif 000004
【図４】
0003654837.tif 000005
【図５】
0003654837.tif 000006
【図６】
0003654837.tif 000007
【図７】
0003654837.tif 000008
【図８】
0003654837.tif 000009
【図９】
0003654837.tif 000010
【図１０】
0003654837.tif 000011
【図１１】
0003654837.tif 000012
【図１２】
0003654837.tif 000013
【図１３】
0003654837.tif 000014
【図１４】
0003654837.tif 000015
【図１５】
0003654837.tif 000016
【図１６】
0003654837.tif 000017
【図１７】
0003654837.tif 000018
【図１８】
0003654837.tif 000019
【図１９】
0003654837.tif 000020