(57)【特許請求の範囲】
【請求項１】
複数のセルを格納しているセルバッファと、
前記セルバッファに対して読み出しアドレスを出力し、前記セルバッファ上の前記読み出しアドレスに格納されている前記セルを読み出す、読み出し制御部と、
前記セルバッファに格納されている前記セルのうち、廃棄処理対象にある前記セルの前記セルバッファ上のアドレスである廃棄アドレスを記憶している廃棄アドレス記憶部と、
前記読み出し制御部によって前記セルバッファから読み出された前記セルのうち、前記廃棄アドレスと一致する前記読み出しアドレスに格納されていた前記セルを廃棄する廃棄処理部と
を備える、セルバッファ制御装置。
【請求項２】
前記セルバッファに対して書き込みアドレスを出力し、前記セルバッファ上の前記書き込みアドレスに前記セルを書き込む、書き込み制御部と、
前記書き込み制御部によって出力された前記書き込みアドレスを記憶している書き込みアドレス記憶部と
を更に備え、
前記廃棄アドレス記憶部は、前記書き込みアドレス記憶部によって記憶されている前記書き込みアドレスのうち、前記廃棄処理対象にある前記セルが書き込まれている前記書き込みアドレスを、前記廃棄アドレスとして記憶している、請求項１記載のセルバッファ制御装置。
【請求項３】
複数のセルを格納しているセルバッファと、
前記セルバッファに対して読み出しアドレスを出力し、前記セルバッファ上の前記読み出しアドレスに格納されている前記セルを読み出す、読み出し制御部と、
前記セルバッファに格納されている前記セルのうち、廃棄処理対象にある前記セルの前記セルバッファ上のアドレスである廃棄アドレスを記憶している廃棄アドレス記憶部と、
前記セルバッファに対して書き込みアドレスを出力し、前記セルバッファ上の前記書き込みアドレスに前記セルを書き込む、書き込み制御部と、
前記書き込み制御部によって出力された前記書き込みアドレスを記憶している書き込みアドレス記憶部と
を備え、
前記廃棄アドレス記憶部は、前記書き込みアドレス記憶部によって記憶されている前記書き込みアドレスのうち、前記廃棄処理対象にある前記セルが書き込まれている前記書き込みアドレスを、前記廃棄アドレスとして記憶し、
前記読み出し制御部は、前記セルバッファ上の前記廃棄アドレスと一致する前記読み出しアドレスに格納されている前記セルを読み出さない、セルバッファ制御装置。
【請求項４】
（ａ）複数のセルを格納しているセルバッファに読み出しアドレスを出力する工程と、
（ｂ）前記工程（ａ）の後に、前記セルバッファ上の前記読み出しアドレスに格納されている前記セルを読み出す工程と、
（ｃ）前記セルバッファに格納されている前記セルのうち、廃棄処理対象にある前記セルの前記セルバッファ上のアドレスである廃棄アドレスを記憶する工程と、
（ｄ）前記工程（ｂ），（ｃ）の後に、前記廃棄アドレスと一致する前記読み出しアドレスに格納されていた前記セルを廃棄する工程と
を備える、セルバッファ制御方法。
【請求項５】
（ｅ）前記セルバッファに対して書き込みアドレスを出力する工程と、
（ｆ）前記工程（ｅ）の後に、前記セルバッファ上の前記書き込みアドレスに前記セルを書き込む工程と、
（ｇ）前記工程（ｃ）の前であって、前記工程（ｅ）の後に、前記セルバッファに対して出力された前記書き込みアドレスを記憶する工程と
を更に備え、
前記工程（ｃ）において、記憶された前記書き込みアドレスのうち、前記廃棄処理対象にある前記セルが書き込まれている前記書き込みアドレスを、前記廃棄アドレスとして記憶する、請求項４に記載のセルバッファ制御方法。
【請求項６】
（ａ）複数のセルを格納しているセルバッファに読み出しアドレスを出力する工程と、
（ｂ）前記工程（ａ）の後に、前記セルバッファ上の前記読み出しアドレスに格納されている前記セルを読み出す工程と、
（ｃ）前記セルバッファに格納されている前記セルのうち、廃棄処理対象にある前記セルの前記セルバッファ上のアドレスである廃棄アドレスを記憶する工程と、
（ｄ）前記セルバッファに対して書き込みアドレスを出力する工程と、
（ｅ）前記工程（ｄ）の後に、前記セルバッファ上の前記書き込みアドレスに前記セルを書き込む工程と、
（ｆ）前記工程（ｃ）の前であって、前記工程（ｄ）の後に、前記セルバッファに対して出力された前記書き込みアドレスを記憶する工程と
を備え、
前記工程（ｃ）において、記憶された前記書き込みアドレスのうち、前記廃棄処理対象にある前記セルが書き込まれている前記書き込みアドレスを、前記廃棄アドレスとして記憶し、
前記工程（ｂ）は前記工程（ｃ）の後に実行され、
前記工程（ｂ）において、前記セルバッファ上の前記廃棄アドレスと一致する前記読み出しアドレスに格納されている前記セルを読み出さない、セルバッファ制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、セルバッファ制御装置およびセルバッファ制御方法に関するもので、特にＡＴＭ（Ａｓｙｎｃｈｒｏｎｏｕｓ,Ｔｒａｎｓｆｅｒ,Ｍｏｄｅ：非同期転送モード）ネットワークにおいて用いられるセルバッファに対してセル廃棄を行うセルバッファ制御装置および、セル廃棄を行うためのセルバッファ制御方法に関する。
【０００２】
【従来の技術】
図１７は、従来のセルバッファ制御装置の構成を示すブロック図であって、図１７に示すセルバッファ制御装置は、例えば、一つの入力ポートから一つの出力ポートへ接続（コネクション）するいくつかの仮想チャネルにて構成されているＡＴＭ通信装置に用いられるセルバッファ制御装置である。
【０００３】
図１７に示すように、従来のセルバッファ制御装置は、入力されたＡＴＭセルである入力セルｓ１０１をコネクション（仮想チャネル）ごとに蓄積するセルバッファ１００を有する。なお、セルバッファ１００はコネクション毎に分割されたＦＩＦＯ（ファーストインファーストアウト）メモリである。更に、従来のセルバッファ制御装置は、入力セルｓ１０１のヘッダ部よりセル種別とコネクション番号との抽出を行うセル識別部１０３と、セルバッファ１００への書き込みアドレスを決定する書き込み制御部１０８と、セルバッファ１００への読み出しアドレスを決定する読み出し制御部１０９と、セル廃棄管理部１２１とを有する。また、従来のセルバッファ制御装置は、セルバッファ１００のバッファフルを検出するバッファフル検出部１２２と、受信中のパケットの先頭セルがセルバッファ１００から出力されていないかどうかを検出するパケット先頭セル出力検出部１２３とを有している。
【０００４】
つぎに、従来のセルバッファ制御装置の動作について図１７を用いて簡単に説明する。入力セルｓ１０１はセル識別部１０３及びセルバッファ１００に入力される。セル識別部１０３では入力セルｓ１０１のヘッダ部の情報により、ユーザセル（通信に使用される通常のセル）の判定、ＥＯＰ（Ｅｎｄ  Ｏｆ  Ｐａｃｋｅｔ）セル（パケットの最終セルであって、パケットの区切りを示すセル）の判定、及びコネクション番号の抽出が行われる。これらの判定及び抽出の結果である情報ｓ１０３は書き込み制御部１０８、読み出し制御部１０９及びセル廃棄管理部１２１に入力される。そして、情報ｓ１０３のコネクション番号を基に、書き込み制御部１０８はセルバッファ１００の書き込みアドレスを生成して、セルバッファ１００に書き込みアドレスｓ１０４を、バッファフル検出部１２２に書き込みアドレスｓ１０８を出力する。また、読み出し制御部１０９は、情報ｓ１０３のコネクション番号を基に、セルバッファ１００の読み出しアドレスを生成して、セルバッファ１００に読み出しアドレスｓ１０５を、バッファフル検出部１２２に読み出しアドレスｓ１０７を出力する。なお書き込み制御部１０８は、そのほかに、書き込みを行ったパケットにおける先頭セルの書き込みアドレスを、パケット先頭アドレスｓ１０６として、パケット先頭セル出力検出部１２３に出力する。
【０００５】
バッファフル検出部１２２では、書き込み制御部１０８及び読み出し制御部１０９からの出力アドレス値（書き込みアドレスｓ１０８、読み出しアドレスｓ１０７）を比較することによってセルバッファ１００の状態（書き込みセル数、空きセル数等）を検出して、セル廃棄管理部１２１に通知する。また、パケット先頭セル出力検出部１２３は、受信中のパケットの先頭セルがセルバッファ１００から出力されていないかどうかをパケット先頭アドレスｓ１０６と読み出しアドレスｓ１０７とを比較することにより検出して、セル廃棄管理部１２１に通知する。
【０００６】
セル廃棄管理部１２１は情報ｓ１０３のセル情報と、バッファフル検出部１２２からのバッファフル情報、及びパケット先頭セル出力検出部１２３からのパケット先頭セルの通過情報を基に、入力セルｓ１０１に対してセル廃棄を実行するか、または入力セルｓ１０１をセルバッファ１００に書き込むかを示す廃棄フラグｓ１０９を生成・管理し、書き込み制御部１０８へ出力する。
【０００７】
図１８は図１７に示す従来のセルバッファ制御装置におけるセル廃棄処理を示すフローチャートである。図１８を用いて、従来のセルバッファ制御装置におけるセル廃棄処理について簡単に説明する。入力セルｓ１０１がユーザセルでない場合、入力セルｓ１０１に対して廃棄処理が実施される（ステップＳＴ１００，ＳＴ１２１）。そして、入力セルｓ１０１がユーザセルである場合であって、かつＥＯＰセルでない場合、セルバッファ１００の状態によって入力セルｓ１０１のセルバッファ１００への書き込みか、入力セルｓ１０１の廃棄処理かが実施される（ステップＳＴ１００，ＳＴ１０２〜ＳＴ１０７）。また、入力セルｓ１０１がユーザセルである場合であって、かつ入力セルｓ１０１がＥＯＰセルの場合は、セル廃棄情報を示すセル廃棄フラグｓ１０９の状態と、セルバッファ１００の状態とによって、入力セルｓ１０１のセルバッファ１００への書き込みか、セル廃棄処理かを実行する（ステップＳＴ１００，ステップＳＴ１０３，ステップＳＴ１０８〜ＳＴ１２０）。
【０００８】
なお、従来のセルバッファ制御装置におけるセル廃棄処理には、書き込みが行われているパケットの先頭セルがセルバッファ１００内にあるか、セルバッファ１００から出力されているかによって、ＥＰＤ（アーリーパケット廃棄）処理とＰＰＤ（部分パケット廃棄）処理とがある。上述の従来のセルバッファ制御装置におけるＥＰＤ処理とは、あるパケットのＥＯＰセル入力時に、当該パケットに属する入力セルｓ１０１に対して既にセル廃棄処理が実行されており、かつ当該パケットの先頭セルがセルバッファ１００の中にある場合に、セルバッファ１００に滞留している当該パケットのすべての入力セルｓ１０１を廃棄する処理のことである。また、ＰＰＤ処理とは、あるパケットのＥＯＰセル入力時に、当該パケット属する入力セルｓ１０１に対して既にセル廃棄処理が実行されており、かつ当該パケットの先頭がセルバッファ１００から出力されていた場合に、セルバッファ１００に滞留している当該パケットのすべてのセルを廃棄し、その後に入力されたＥＯＰセルをタギングして、セルバッファ１００に書き込む処理のことである。そして、上述の従来のセルバッファ制御装置については、例えば特開２００１−５７５５６号公報に開示されている。
【０００９】
【発明が解決しようとする課題】
上述の従来のセルバッファ制御装置におけるセル廃棄処理は、セルバッファ１００にパケット単位でＡＴＭセルが入力される場合を想定している。言い換えれば、あるパケットのＥＯＰセルが書き込まれた場合、次に書き込まれるセルは必ず別パケットの先頭セルが書き込まれることを想定している。そのため、例えば、複数の種類のパケットが任意のタイミングで多重化された入力セルｓ１０１をセルバッファ１０１に書き込む場合においては、あるパケットの先頭セルからＥＯＰセルまでの間に、異なった種類のパケットのセルが複数存在することがあるため、従来のセル廃棄処理方法では、セルバッファ１００内において、廃棄処理対象にあるパケットに属するセルのみを廃棄することができなかった。
【００１０】
通常、ＡＴＭネットワークにおいて、パケットの種類は仮想チャネルあるいは仮想パスの種類に対応しているため、従来のようなセル廃棄処理方法で、セルバッファ１０１内の廃棄処理対象にあるセルのみを確実に廃棄するためには、セルバッファ１００の前段で、仮想チャネルあるいは仮想パスごとに入力セルｓ１０１を振り分けるデマルティプレクサが必要であって、さらにセルバッファ１００を仮想チャネルあるいは仮想パスごとに設ける必要があった。そのため、上述の従来のセルバッファ制御装置のように、セルバッファ制御装置を実現する際に必要となるメモリや信号処理回路の回路規模が増大し、セルバッファ制御装置全体のコスト上昇をもたらすといった問題があった。
【００１１】
そこで、この発明は上述のような問題を解決するためになされたものであり、装置全体の回路規模を縮小しつつ、異なる種類のパケットが任意のタイミングで多重化された入力セルに対しても適切にセル廃棄処理が行えるセルバッファ制御装置及びセルバッファ制御方法を提供することを目的とする。
【００１２】
【課題を解決するための手段】
この発明のうち請求項１に記載のセルバッファ制御装置は、複数のセルを格納しているセルバッファと、前記セルバッファに対して読み出しアドレスを出力し、前記セルバッファ上の前記読み出しアドレスに格納されている前記セルを読み出す、読み出し制御部と、前記セルバッファに格納されている前記セルのうち、廃棄処理対象にある前記セルの前記セルバッファ上のアドレスである廃棄アドレスを記憶している廃棄アドレス記憶部と、前記読み出し制御部によって前記セルバッファから読み出された前記セルのうち、前記廃棄アドレスと一致する前記読み出しアドレスに格納されていた前記セルを廃棄する廃棄処理部とを備えるものである。
【００１３】
また、この発明のうち請求項２に記載のセルバッファ制御装置は、請求項１に記載のセルバッファ制御装置であって、前記セルバッファに対して書き込みアドレスを出力し、前記セルバッファ上の前記書き込みアドレスに前記セルを書き込む、書き込み制御部と、前記書き込み制御部によって出力された前記書き込みアドレスを記憶している書き込みアドレス記憶部とを更に備え、前記廃棄アドレス記憶部は、前記書き込みアドレス記憶部によって記憶されている前記書き込みアドレスのうち、前記廃棄処理対象にある前記セルが書き込まれている前記書き込みアドレスを、前記廃棄アドレスとして記憶しているものである。
【００１５】
また、この発明のうち請求項３に記載のセルバッファ制御装置は、複数のセルを格納しているセルバッファと、前記セルバッファに対して読み出しアドレスを出力し、前記セルバッファ上の前記読み出しアドレスに格納されている前記セルを読み出す、読み出し制御部と、前記セルバッファに格納されている前記セルのうち、廃棄処理対象にある前記セルの前記セルバッファ上のアドレスである廃棄アドレスを記憶している廃棄アドレス記憶部と、前記セルバッファに対して書き込みアドレスを出力し、前記セルバッファ上の前記書き込みアドレスに前記セルを書き込む、書き込み制御部と、前記書き込み制御部によって出力された前記書き込みアドレスを記憶している書き込みアドレス記憶部とを備え、前記廃棄アドレス記憶部は、前記書き込みアドレス記憶部によって記憶されている前記書き込みアドレスのうち、前記廃棄処理対象にある前記セルが書き込まれている前記書き込みアドレスを、前記廃棄アドレスとして記憶し、前記読み出し制御部は、前記セルバッファ上の前記廃棄アドレスと一致する前記読み出しアドレスに格納されている前記セルを読み出さないものである。
【００１６】
この発明のうち請求項４に記載のセルバッファ制御方法は、（ａ）複数のセルを格納しているセルバッファに読み出しアドレスを出力する工程と、（ｂ）前記工程（ａ）の後に、前記セルバッファ上の前記読み出しアドレスに格納されている前記セルを読み出す工程と、（ｃ）前記セルバッファに格納されている前記セルのうち、廃棄処理対象にある前記セルの前記セルバッファ上のアドレスである廃棄アドレスを記憶する工程と、（ｄ）前記工程（ｂ），（ｃ）の後に、前記廃棄アドレスと一致する前記読み出しアドレスに格納されていた前記セルを廃棄する工程とを備えるものである。
【００１７】
また、この発明のうち請求項５に記載のセルバッファ制御方法は、請求項４に記載のセルバッファ制御方法であって、（ｅ）前記セルバッファに対して書き込みアドレスを出力する工程と、（ｆ）前記工程（ｅ）の後に、前記セルバッファ上の前記書き込みアドレスに前記セルを書き込む工程と、（ｇ）前記工程（ｃ）の前であって、前記工程（ｅ）の後に、前記セルバッファに対して出力された前記書き込みアドレスを記憶する工程とを更に備え、前記工程（ｃ）において、記憶された前記書き込みアドレスのうち、前記廃棄処理対象にある前記セルが書き込まれている前記書き込みアドレスを、前記廃棄アドレスとして記憶するものである。
【００１９】
また、この発明のうち請求項６に記載のセルバッファ制御方法は、（ａ）複数のセルを格納しているセルバッファに読み出しアドレスを出力する工程と、（ｂ）前記工程（ａ）の後に、前記セルバッファ上の前記読み出しアドレスに格納されている前記セルを読み出す工程と、（ｃ）前記セルバッファに格納されている前記セルのうち、廃棄処理対象にある前記セルの前記セルバッファ上のアドレスである廃棄アドレスを記憶する工程と、（ｄ）前記セルバッファに対して書き込みアドレスを出力する工程と、（ｅ）前記工程（ｄ）の後に、前記セルバッファ上の前記書き込みアドレスに前記セルを書き込む工程と、（ｆ）前記工程（ｃ）の前であって、前記工程（ｄ）の後に、前記セルバッファに対して出力された前記書き込みアドレスを記憶する工程とを備え、前記工程（ｃ）において、記憶された前記書き込みアドレスのうち、前記廃棄処理対象にある前記セルが書き込まれている前記書き込みアドレスを、前記廃棄アドレスとして記憶し、前記工程（ｂ）は前記工程（ｃ）の後に実行され、前記工程（ｂ）において、前記セルバッファ上の前記廃棄アドレスと一致する前記読み出しアドレスに格納されている前記セルを読み出さないものである。
【００２０】
【発明の実施の形態】
実施の形態１．
図１は、本発明の実施の形態１に係るセルバッファ制御装置の構成を示すブロック図であって、図１に示すセルバッファ制御装置は、例えば、ＡＴＭ通信装置に用いられるセルバッファ制御装置である。図１に示すように、本実施の形態１に係るセルバッファ制御装置は、セルバッファ１と、セルヘッダ判別部２と、書き込みセル廃棄制御部３と、書き込み制御部８と、読み出し制御部９と、オーバーフロー検出部１０と、エントリテーブル処理部２０と、書き込みアドレス記憶部２１と、廃棄アドレス記憶部２２と、廃棄処理部２３とを備えている。
【００２１】
装置の外部から入力されるＡＴＭセルである入力セルｓ１は、例えばＦＩＦＯメモリであるセルバッファ１と、セルヘッダ判別部２に入力される。セルヘッダ判別部２は、入力された入力セルｓ１のヘッダ部からヘッダ情報ｓ２を抽出し、書き込みセル廃棄制御部３とエントリテーブル処理部２０に出力する。なお、ヘッダ情報ｓ２には、ユーザセル／非ユーザセルの識別情報（以後、「ユーザセル／非ユ−ザセル情報」と呼ぶ）、ＥＯＰセルの識別情報（以後、「ＥＯＰセル情報」と呼ぶ）、及び仮想チャネル識別子（ＶＣＩ：ｖｉｒｔｕａｌ,ｃｈａｎｎｅｌ,ｉｄｅｎｔｉｆｉｅｒ）と仮想パス識別子（ＶＰＩ：ｖｉｒｔｕａｌ,ｐａｔｈ,ｉｄｅｎｔｉｆｉｅｒ）とから構成されているコネクション情報を含んでいる。また、例えば、ＶＣＩは１６ビット、ＶＰＩは１２ビットで構成されている。
【００２２】
エントリテーブル処理部２０はエントリテーブルを有しており、ヘッダ情報ｓ２のうち、ユーザセル／非ユーザセル情報及びコネクション情報を用いて、入力セルｓ１がユーザセルの場合のみ、コネクション情報をエントリテーブルに記録したり、コネクション情報に関するエントリテーブルでの検索を行う。図２は本実施の形態１に係るエントリテーブル処理部２０のエントリテーブルを示す図である。図２に示すように、エントリテーブルとは、入力セルｓ１から抽出したコネクション情報５０及びＥＰＤフラグ５１が記録されるテーブルである。ここで、ＥＰＤフラグ５１とは、セル廃棄処理の状況を示すフラグであって、詳細については後述する。
【００２３】
エントリテーブル処理部２０は、異なるコネクション情報５０を持つセルが到着するごとに新規コネクション情報５０としてエントリしていく。具体的には、ユーザーセルである入力セルｓ１がはじめて到達した場合は、エントリＮｏ．１としてそのコネクション情報５０をエントリテーブルに記録する。そして、エントリＮｏ．１のコネクション情報５０とは異なるコネクション情報５０を持つ入力セルｓ１が到着すると、エントリＮｏ．２として、そのコネクション情報５０をエントリテーブルに記録する。以後同様に、エントリされているコネクション情報５０とは異なるコネクション情報５０を持つ入力セルｓ１が到達するたびに、エントリナンバーをインクリメントして、コネクション情報５０をエントリテーブルに記録していく。つまり、入力セルｓ１には対応するエントリナンバーが存在する。なお、図中ではエントリＮｏ．１〜エントリＮｏ．ｎまでコネクション情報５０がエントリされており、各コネクション情報５０に対応したＥＰＤフラグ５１がエントリテーブルに記録されている。
【００２４】
ここで、コネクション情報５０はＡＴＭセルのヘッダにあるＶＰＩとＶＣＩとから構成されているが、通常一つのパケットを構成する各セルに関しては同一のＶＰＩ／ＶＣＩの値を取るため、エントリテーブル処理部２０で行われるエントリは、入力セルｓ１におけるパケット種別を登録することになり、エントリナンバーは入力セルｓ１が属するパケットの種別を示している。そのため、エントリテーブルに記録されているコネクション情報５０の種類は、パケットの種類に対応しており、当該コネクション情報５０に対応したＥＰＤフラグ５１とは、当該コネクション情報５０を持つ入力セルｓ１が属するパケットが廃棄処理対象であるかどうかを示すフラグである。
【００２５】
また、エントリテーブル処理部２０は、入力セルｓ１のコネクション情報５０がエントリされているコネクション情報５０に一致した場合、あるいは新規にコネクション情報５０をエントリした場合に、書き込みセル廃棄制御部３に対してエントリ一致情報ｓ３を送出する。エントリ一致情報ｓ３には、コネクション情報５０が一致したという情報あるいは新規にコネクション情報５０をエントリしたという情報と、一致したエントリナンバーあるいは新規のエントリナンバーと、ＥＰＤフラグ５１とが含まれている。
【００２６】
書き込みセル廃棄制御部３は、セルヘッダ判別部２からの入力セルｓ１のヘッダ情報ｓ２、エントリテーブル処理部２０からのエントリ一致情報ｓ３、及びオーバーフロー検出部１０からのオーバーフローフラグｓ５をもとに、入力セルｓ１をセルバッファ１に書き込むかどうかの判別を行い、書き込み制御部８のセルバッファ１への書き込み動作を制御する。セルバッファ１に入力セルｓ１を書き込むと判断した場合、書き込みセル廃棄制御部３は書き込み制御部８に対して、書き込みを指示する。具体的には、書き込み許可／禁止命令ｓ６＝“１”を出力する。また、セルバッファ１に対する入力セルｓ１の書き込みを禁止し、入力セルｓ１を廃棄すると判断した場合には、書き込みセル廃棄制御部３は書き込み制御部８に対して、書き込み禁止を指示する。具体的には、書き込み許可／禁止命令ｓ６＝“０”を出力する。
【００２７】
また、書き込みセル廃棄制御部３は、セルバッファ１への入力セルｓ１の書き込みの判別結果を基に、エントリテーブル処理部２０に対して、エントリの追加あるいは削除、及びエントリ毎のＥＰＤフラグ５１の更新を指示するエントリ更新フラグｓ１４を出力する。エントリテーブル処理部２０では、このエントリ更新フラグｓ１４を基に、エントリの追加あるいは削除、及びＥＰＤフラグ５１の更新を行う。さらに、書き込みセル廃棄制御部３は、エントリ一致情報ｓ３から得られるエントリナンバーの情報を含むエントリナンバー情報ｓ２３を書き込みアドレス記憶部２１に出力する。そして、入力セルｓ１を廃棄すると判断した場合には、書き込みアドレス記憶部２１に記憶されている、廃棄処理対象である当該入力セルｓ１のエントリナンバーに対応したすべての書き込みアドレスｓ７の情報を、廃棄アドレス記憶部２２に転送する転送命令ｓ１３を書き込みアドレス記憶部２１に出力する。
【００２８】
書き込み制御部８は、書き込み許可／禁止命令ｓ６＝“１”のとき、セルバッファ１への書き込みアドレスｓ７を生成し、セルバッファ１に書き込みアドレスｓ７を出力し、セルバッファ１上の当該書き込みアドレスｓ７に入力セルｓ１を書き込む。また、書き込み制御部８はセルバッファ１へ書き込みアドレスｓ７を出力するとともに、当該書き込みアドレスｓ７をオーバーフロー検出部１０と書き込みアドレス記憶部２１とに出力する。さらに、書き込み制御部８はセルバッファ１へ書き込みアドレスｓ７を出力するとともに、書き込みアドレス記憶部２１がエントリナンバーごとに書き込みアドレスｓ７を記憶するための記憶許可信号ｓ４を書き込みアドレス記憶部２１に出力する。また、書き込み許可／禁止命令ｓ６＝“０”のとき、書き込み制御部８は書き込みアドレスｓ７の更新（インクリメント）を行わず、セルバッファ１への入力セルｓ１の書き込みを停止する。
【００２９】
読み出し制御部９は、書き込みアドレスｓ７を基準にセルバッファ１への読み出しアドレスを生成する。そして、生成した読み出しアドレスを読み出しアドレスｓ９としてセルバッファ１に出力し、セルバッファ１上の当該読み出しアドレスｓ９に格納されている入力セルｓ１を読み出す。また、書き込みアドレス記憶部２１にも読み出しアドレスｓ９として出力し、オーバーフロー検出部１０には読み出しアドレスｓ８として出力し、廃棄アドレス記憶部２２には読み出しアドレスｓ１０として出力する。なお、本実施の形態１に係るセルバッファ制御装置では、読み出しアドレスｓ８，ｓ９，ｓ１０は互いに同じ値である。
【００３０】
ここで、セルバッファ１への入力セルｓ１の書き込み処理及び読み出し処理について説明する。セルバッファ１は例えばＦＩＦＯメモリであり、通常のＲＡＭ（ｒａｎｄｏｍ,ａｃｃｅｓｓ,ｍｅｍｏｒｙ）と同様、記憶領域に対してアドレス値を持ち、しかもデータ書き込み制御とデータ読み出し制御とを独立して行うことができる。書き込み制御部８は、セルバッファ１に対して書き込み処理を行う度に書き込みアドレスｓ７をインクリメントする。読み出し制御部９は、書き込みアドレスｓ７を基準に内部の読み出しアドレスをカウントアップすることにより、書き込みが完了したアドレスに対して読み出しを行い、書き込みアドレスｓ７と同様に、読み出し処理を行う毎に内部の読み出しアドレスをインクリメントし、入力セルｓ１を書き込まれた順番に読み出す。
【００３１】
オーバーフロー検出部１０は、入力された書き込みアドレスｓ７と読み出しアドレスｓ８とのアドレス値を比較し、セルバッファ１のオーバーフローを検出する。具体的には、書き込みアドレスｓ７と読み出しアドレスｓ８とのアドレス値の差は、入力セルｓ１が書き込まれているアドレス量を示すため、当該アドレス値の差がセルバッファ１の記憶領域全体のアドレス量と一致した場合に、書き込みセル廃棄制御部３にオーバーフローフラグｓ５を出力する。また、セルバッファ１のバッファ容量にしきい値を設けて、所定のバッファ容量までしか入力セルｓ１を書き込まない場合には、当該しきい値に対応したアドレス量に、書き込みアドレスｓ７と読み出しアドレスｓ８とのアドレス値の差が一致するとき、書き込みセル廃棄制御部３にオーバーフローフラグｓ５を出力する。
【００３２】
また、オーバーフロー検出部１０は、書き込みアドレスｓ７と読み出しアドレスｓ８とを比較し、セルバッファ１のアンダーフローも検出する。具体的には、書き込みアドレスｓ７と読み出しアドレスｓ８とのアドレス値の差は、入力セルｓ１が書き込まれているアドレス量を示すため、当該アドレス値の差が“０”の場合には読み出し制御部９に対してアンダーフローフラグｓ１５＝“１”を出力して、セルバッファ１に対する読み出し処理を禁止し、当該アドレス値の差が“０”でない場合には、アンダーフローフラグｓ１５＝“０”を出力して、セルバッファ１に対する読み出し処理を許可する。
【００３３】
読み出し制御部９は、オーバーフロー検出部１０からアンダーフローフラグｓ１５＝“０”を受け取ると、セルバッファ１に入力セルｓ１が書き込まれていると判断して読み出しを行う。また、オーバーフロー検出部１０からアンダーフローフラグｓ１５＝“１”を受け取ると、セルバッファ１に入力セルｓ１が書き込まれていないと判断してセルバッファ１からの読み出しを停止する。
【００３４】
書き込みアドレス記憶部２１は、書き込み制御部８から出力された書き込みアドレスｓ７を記憶している。具体的には、書き込みアドレス記憶部２１はアドレス記憶レジスタを備えており、書き込みアドレスｓ７を、当該書き込みアドレスｓ７に記憶される入力セルｓ１のエントリナンバーごとに、アドレス記憶レジスタに記録し、アドレス記憶レジスタが当該書き込みアドレスを記憶している。図３は本実施の形態１に係る書き込みアドレス記憶部２１の構成を示す図である。図３に示すように、書き込み制御部８からの書き込みアドレスｓ７と記憶許可信号ｓ４とは選択処理部６１ａに入力され、書き込みセル廃棄制御部３からのエントリナンバー情報ｓ２３は選択処理部６１ａ，６１ｂに入力され、書き込みセル廃棄制御部３からの転送命令ｓ１３は選択処理部６１ｂに入力される。
【００３５】
選択処理部６１ａは、記憶許可信号ｓ４が入力されると、エントリナンバー情報ｓ２３をもとに、書き込みアドレスｓ７をエントリナンバーごとにアドレス記憶レジスタ６２に記録する。そして、アドレス記憶レジスタ６２は記録された書き込みアドレスｓ７を記憶保持する。
【００３６】
図３では、例えばアドレス記憶レジスタ６２にはエントリＮｏ．１〜エントリＮｏ．ｎまでの、当該エントリナンバーに対応した書き込みアドレスＳ７が記憶されている。具体的には、エントリＮｏ．１として１０個のアドレスＡＤＤ１〜ＡＤＤ１０が記憶されている。また、エントリＮｏ．２として３個のアドレスＡＤＤ１１〜ＡＤＤ１３が、エントリＮｏ．３として４個のアドレスＡＤＤ１４〜ＡＤＤ１７が記憶されており、エントリＮｏ．ｎには２個のアドレスＡＤＤｍ−１，ＡＤＤｍが記録されている。なお、アドレスＡＤＤ１〜ＡＤＤｍは書き込みアドレスｓ７を示している。また、入力セルｓ１が構成するパケットには、例えばｎ個のパケット１ａ〜ｎａがあり、図３ではエントリＮｏ．１〜Ｎｏ．ｎまでには、パケット１ａ〜ｎａまでが一対一で対応している。そのため、アドレス記憶レジスタ６２には、パケットごとに書き込みアドレスｓ７が記憶されていると言える。
【００３７】
選択処理部６１ｂは、転送命令ｓ１３を受け取ると、そのときに入力されているエントリナンバー情報ｓ２３に含まれているエントリナンバーに対応するすべての書き込みアドレスｓ７を読み出し、廃棄アドレス情報ｓ１１として廃棄アドレス記憶部２２に出力する。例えば、図３において、転送命令ｓ１３を受け取った際に入力されたエントリナンバー情報ｓ２３に含まれいているエントリナンバーが、エントリＮｏ．２であったとき、アドレスＡＤＤ１１〜ＡＤＤ１３を廃棄アドレス情報ｓ１１として出力する。
【００３８】
また、図３中には示していないが、読み出し制御部９からの読み出しアドレスｓ９も書き込みアドレス記憶部２１に入力される。書き込みアドレス記憶部２１は、セルバッファ１の入力セルｓ１の書き込み状態と書き込みアドレス記憶部２１の書き込みアドレスｓ７の記憶状態とを同期させるために、セルバッファ１から読み出された入力セルｓ１に関しては、読み出された当該入力セルｓ１が書き込まれていた書き込みアドレスｓ７をアドレス記憶レジスタ６２から削除する。
【００３９】
廃棄アドレス記憶部２２は、書き込みアドレス記憶部２１から送られてきた廃棄アドレス情報ｓ１１に含まれている書き込みアドレスｓ７を保持する。廃棄アドレス情報ｓ１１に含まれている書き込みアドレスｓ７は、セルバッファ１に格納されている入力セルｓ１のうち、廃棄処理対象にある入力セルｓ１のセルバッファ１上の書き込みアドレスｓ７であるため、言い換えれば、廃棄アドレス記憶部２２は、セルバッファ１に書き込まれた入力セルｓ１のうち、廃棄処理対象にある入力セルｓ１の書き込みアドレスｓ７を記憶している。以後、廃棄アドレス記憶部２２に入力される、廃棄処理対象にある入力セルｓ１のセルバッファ１上の書き込みアドレスｓ７を「廃棄アドレスｓ５７」と呼ぶ。
【００４０】
廃棄アドレス記憶部２２は、記憶している廃棄アドレスｓ５７と、読み出し制御部９からの読み出しアドレスｓ１０とを比較し、記憶している廃棄アドレスｓ５７中に読み出しアドレスｓ１０と一致するアドレスがある場合、つまりセルバッファ１上の読み出しアドレスｓ１０に格納されている入力セルｓ１が廃棄処理対象にある場合、廃棄アドレス記憶部２２は廃棄処理部２３に対し、廃棄制御信号ｓ１２＝“１”を出力して、読み出された入力セルｓ１の廃棄を指示する。なお、廃棄アドレスｓ５７中に読み出しアドレスｓ１０と一致するアドレスがない場合、つまりセルバッファ１上の読み出しアドレスｓ１０に格納されている入力セルｓ１が廃棄処理対処でない場合、廃棄処理部２３に対して廃棄制御信号ｓ１２＝“０”を出力し、読み出された入力セルｓ１を廃棄しないことを指示する。
【００４１】
廃棄処理部２３には、セルバッファ１から読み出された入力セルｓ１が入力されている。そして、廃棄処理部２３は、廃棄制御信号ｓ１２＝“１”の場合、セルバッファ１から読み出された入力セルｓ１に対して廃棄処理を行う。つまり、廃棄処理部２３は、読み出し制御部９によってセルバッファ１から読み出されたセルのうち、廃棄アドレスｓ５７と一致する読み出しアドレスｓ１０に格納されていたセルを廃棄する。具体的には、廃棄処理部２３の出力を完全に停止させたり、廃棄処理部２３の後段にある所定回路で無効なセルとして取り扱われるセルを出力しても良い。そして、廃棄制御信号ｓ１２＝“０”の場合、廃棄処理部２３はセルバッファ１から読み出された入力セルｓ１をそのまま通過させる。
【００４２】
次に、本実施の形態１に係るセルバッファ制御装置でのセル廃棄処理について詳細に説明する。その前にセルバッファ１に入力される入力セルｓ１について説明する。図４，５は入力セルｓ１の構造を示す図である。図４，５に示す入力セルｓ１は例えば２種類のパケットａ，ｂで構成されており、多重処理部３２でのパケットａとパケットｂとの多重化の結果が異なったため、図４に示す入力セルｓ１と図５に示す入力セルｓ１とでは異なった構造となっている。
【００４３】
パケットａは例えばセルＡ〜セルＺまでで構成されており、セルＡが先頭セルで、セルＺがＥＯＰセルである。また、パケットｂは例えばセル▲１▼〜セル▲９▼までで構成されており、セル▲１▼が先頭セルであって、セル▲９▼がＥＯＰセルである。図４に示すように、本実施の形態１に係るセルバッファ制御装置の前段にある多重処理部３２によってパケットａとパケットｂとは多重化され、その結果、入力セルｓ１は、例えば、パケットａとパケットｂとが交互に並んだ構造を成す場合がある。また、図５に示すように、多重処理部３２によってパケットａとパケットｂとが任意のタイミングで多重化された結果、例えば、各パケットａ，ｂを構成するセルが混在して並んだ構造を成す場合がある。言い換えれば、入力セルｓ１は、あるパケットの先頭セルと当該パケットのＥＯＰセルの間に、異なった種類のパケットのセルが入り込んだ構造を成す場合がある。
【００４４】
次に、図５に示す入力セルｓ１のように、複数のパケットのそれぞれを構成するセルが混在して並んでいる入力セルｓ１に対するセル廃棄処理について説明する。図６は本実施の形態１に係るセルバッファ制御装置においてセル廃棄処理を行う入力セルｓ１の構造を示す図である。図６に示すように、入力セルｓ１はパケットａとパケットｂとで構成されている。パケットａはセルＡ〜セルＺまでで構成されており、先頭セルがセルＡであって、ＥＯＰセルがセルＺである。また、パケットｂはセル▲１▼〜セル▲９▼までで構成されており、先頭セルがセル▲１▼であって、ＥＯＰセルがセル▲９▼である。パケットａとパケットｂとは、本実施の形態１に係るセルバッファ制御装置の前段にある多重処理部３２によって多重化され、その結果、図６に示すように、入力セルｓ１は各パケットａ，ｂを構成するセルが混在して並んだ構造を成している。なお、図中の「Ｆｉｒｓｔ」と「Ｅｎｄ」とは、入力セルｓ１がセルバッファ１に入力される順番を示しており、パケットａのセルＡからセルバッファ１に入力される。
【００４５】
図７〜１４は、図６に示す入力セルｓ１に対するセル廃棄処理の工程を示す図である。本実施の形態１では、例えば、セルバッファ１の容量に対して所定のしきい値を設け、当該しきい値を超えて入力される入力セルｓ１に対してはセル廃棄処理を行うものとする。図７〜１４に示す一点鎖線３４は、そのしきい値を示している。なお、図６に示すセルＡ〜セルＺ及びセル▲１▼〜セル▲９▼はすべてユーザーセルであるものとする。また、図７〜１４では、左側より入力セルｓ１を書き込み、右側より書き込まれた順番に入力セルｓ１を読み出すセルバッファ１を示している。
【００４６】
図７を参照して、まずパケットａに属するセルＡがセルヘッダ判別部２に入力されると、セルヘッダ判別部２はセルＡのヘッダ部からヘッダ情報ｓ２を抽出し、書き込みセル廃棄制御部３とエントリテーブル処理部２０に出力する。エントリテーブル処理部２０は、受け取ったヘッダ情報ｓ２のコネクション情報５０を参照し、エントリＮｏ．１として当該コネクション情報５０をエントリする。そして、書き込みセル廃棄制御部３にエントリ一致情報ｓ３を出力する。なお、セルＡのコネクション情報５０ははじめてエントリされたため、エントリテーブル内のＥＰＤフラグ５１＝“０”である。なお、ＥＰＤフラグ５１＝“０”とは、当該ＥＰＤフラグ５１に対応するエントリナンバーが示すパケットに属するセルが廃棄処理対象でないことを示しており、ＥＰＤフラグ５１＝“１”とは、当該ＥＰＤフラグ５１に対応するエントリナンバーが示すパケットに属するセルが廃棄処理対象であることを示している。
【００４７】
書き込みセル廃棄制御部３は、書き込み許可／禁止命令ｓ６＝“１”を出力し、同時に受け取ったエントリ一致情報ｓ３から得られるエントリナンバーを書き込みアドレス記憶部２１へ出力する。書き込み許可／禁止命令ｓ６＝“１”を受け取った書き込み制御部８は、書き込みアドレスｓ７を生成し、セルバッファ１へ出力して、セルＡのセルバッファ１への書き込みを行い、同時に、オーバーフロー検出部１０と書き込みアドレス記憶部２１とに、生成した書き込みアドレスｓ７を出力する。さらに、書き込み制御部８は、セルバッファ１へ書き込みアドレスｓ７を出力するとともに記憶許可信号ｓ４を書き込みアドレス記憶部２１に出力する。記憶許可信号ｓ４と、エントリナンバー情報ｓ２３と、書き込みアドレスｓ７とを受け取った書き込みアドレス記憶部２１は、エントリナンバーごと、言い換えればパケットごとに書き込みアドレスｓ７を記憶する。
【００４８】
そして図７を参照して、パケットａに属するセルＢが本実施の形態１に係るセルバッファ制御装置に入力されると、エントリテーブル処理部２０は、受け取ったヘッダ情報ｓ２のコネクション情報５０が既にエントリされていないかどうかエントリテーブルで検索する。セルＢが属するパケットａは既にエントリ済みであるため、新たにエントリすること無く、エントリ一致情報ｓ３を書き込みセル廃棄制御部３へ出力する。なお、パケットａに関しては、依然廃棄処理対象でないため、パケットａに対応するＥＰＤフラグは零である。以後同様にして、セルＢがセルバッファ１へ書き込まれる。セルＣ〜セルＧに関しても、セルＢと同様にセルバッファ１に書き込まれる。なお、セルＢ〜セルＧのセルバッファ１上の書き込みアドレスｓ７は、書き込みアドレス記憶部２１に記憶されている。
【００４９】
次に図８を参照して、パケットｂに属するセル▲１▼が本実施の形態１に係るセルバッファ制御装置に入力されると、エントリテーブル処理部２０は、受け取ったヘッダ情報ｓ２のコネクション情報５０が既にエントリされていないかどうかエントリテーブルで検索する。セル▲１▼が属するパケットｂはまだエントリされていないため、セル▲１▼のコネクション情報５０をエントリＮｏ．２としてエントリする。そして、エントリ一致情報ｓ３を書き込みセル廃棄制御部３へ出力する。なお、パケットｂに関しては、はじめてエントリされたため、パケットｂに対応するＥＰＤフラグは零である。以後同様にセル▲１▼がセルバッファ１に書き込まれる。セルＨ，セルＩ及びセル▲２▼に関しても、同様にしてセルバッファ１に書き込まれる。なお、セルＨ，セルＩ及びセル▲２▼のセルバッファ１上の書き込みアドレスｓ７は、書き込みアドレス記憶部２１にパケットごとに記憶されている。
【００５０】
ここで、セル▲２▼がセルバッファ１に書き込まれる際には、オーバーフロー検出部１０が以下の動作を行う。すなわち、これまでに読み出し処理が行われていないため、オーバーフロー検出部１０に入力される書き込みアドレスｓ７と読み出しアドレスｓ８とのアドレス値の差は、セルバッファ１の容量に対して設けたしきい値に対応したアドレス量と一致し、そのため、オーバーフロー検出部１０は書き込みセル廃棄制御部３にオーバーフローフラグｓ５を出力する。
【００５１】
次に、セル▲３▼が本実施の形態１に係るセルバッファ制御装置に入力されると、エントリテーブル処理部２０は、受け取ったヘッダ情報ｓ２のコネクション情報５０が既にエントリされていないかどうかエントリテーブルで検索する。セル▲３▼が属するパケットｂは既にエントリ済みであるため、新たにエントリすること無く、エントリ一致情報ｓ３を書き込みセル廃棄制御部３へ出力する。書き込みセル廃棄制御部３は、オーバーフロー検出部１０からオーバーフローフラグｓ５を受け取っているため、書き込み制御部８に書き込み許可／禁止命令ｓ６＝“０”を出力する。そして、書き込み許可／禁止命令ｓ６＝“０”を受け取った書き込み制御部８はセル▲３▼をセルバッファ１に書き込まず、その結果セル▲３▼は廃棄される。また、書き込みセル廃棄制御部３はエントリテーブル処理部２０に対してエントリ更新フラグｓ１４を出力し、エントリＮｏ．２、つまりパケットｂに対応するＥＰＤフラグを“１”に変更する。その結果、パケットｂが廃棄処理対象となり、今後、入力されてくるパケットｂに属するセルは廃棄処理対象となる。また、セルバッファ１に格納されているセルのうち、パケットｂに属するセルも廃棄処理対象となる。図８で言えば、セル▲１▼とセル▲２▼とが廃棄処理対象となる。
【００５２】
また、書き込みセル廃棄制御部３は、書き込みアドレス記憶部２１に転送命令ｓ１３を出力する。転送命令ｓ１３を受け取った書き込みアドレス記憶部２１は、記憶している書き込みアドレスｓ７のうち、入力されているエントリナンバー情報ｓ２３に含まれているエントリナンバー、この場合ではエントリＮｏ．２に対応するすべての書き込みアドレスｓ７を、廃棄アドレス情報ｓ１１として廃棄アドレス記憶部２２に出力する。本実施の形態１では、廃棄アドレス情報ｓ１１に含まれる書き込みアドレスｓ７は、セル▲１▼とセル▲２▼のセルバッファ１上の書き込みアドレスｓ７である。
【００５３】
そして、廃棄アドレス記憶部２２は受け取った書き込みアドレスｓ７を記憶している。言い換えれば、廃棄アドレス記憶部２２は、書き込みアドレス記憶部２１によって記憶されている書き込みアドレスｓ７のうち、廃棄処理対象にあるセルが書き込まれている書き込みアドレスｓ７、つまり廃棄アドレスｓ５７を記憶している。
【００５４】
次に図９を参照して、セル▲３▼が廃棄された後に、セルバッファ１に対して読み出し処理が行われる。具体的には、読み出し制御部９は、セルＡが書き込まれた書き込みアドレスｓ７と同じ値の読み出しアドレスを生成し、読み出しアドレスｓ９としてセルバッファ１に出力し、セルバッファ１上の当該読み出しアドレスｓ９に格納されているセルＡを読み出す。同様にして、読み出し制御部９はセルＢ，セルＣをこの順で読み出す。このように、セルＡ〜セルＣが読み出されることによって、セルバッファ１はオーバーフロー状態から解放される。
【００５５】
次に図１０に示すように、セルＪとセルＫとがこの順で本実施の形態１に係るセルバッファ制御装置に入力されると、セルＪとセルＫとはパケットａに属するため廃棄処理対象ではなく、セルバッファ１に書き込まれる。そして、セル▲４▼が入力されると、書き込みセル廃棄制御部３は受け取ったエントリ一致情報ｓ３のＥＰＤフラグ５１を参照する。セル▲４▼は廃棄処理対象であるパケットｂに属するため、エントリ一致情報ｓ３のＥＰＤフラグ５１は“１”となっている。そのため、書き込みセル廃棄制御部３は書き込み制御部８に書き込み許可／禁止命令ｓ６＝“０”を出力する。そして、セル▲４▼は廃棄される。
【００５６】
次に図１１を参照して、セルＬが本実施の形態１に係るセルバッファ制御装置に入力されると、セルＬはパケットａに属するため廃棄処理対象ではなく、セルバッファ１に書き込まれる。セルＬが書き込まれると、セルバッファ１はしきい値まで入力セルｓ１が格納されているため、オーバーフロー検出部１０はオーバーフローフラグｓ５を書き込みセル廃棄制御部３に出力する。
【００５７】
そして、次にセルＭが入力されると、書き込みセル廃棄制御部３はオーバーフロー検出部１０からオーバーフローフラグｓ５を受け取っているため、セルＭは廃棄される。また、書き込みセル廃棄制御部３はエントリテーブル処理部２０に対してエントリ更新フラグｓ１４を出力し、エントリＮｏ．１、つまりセルＭが属するパケットａに対応するＥＰＤフラグ５１を“１”に変更する。その結果、パケットａも廃棄処理対象となり、今後、入力されてくるパケットａに属するセルは廃棄処理対象となる。また、セルバッファ１に格納されているパケットａに属するセルも廃棄処理対象となる。図１１で言えば、セルＤ〜セルＬが廃棄処理対象となる。
【００５８】
また、書き込みセル廃棄制御部３は、書き込みアドレス記憶部２１に転送命令ｓ１３を出力する。転送命令ｓ１３を受け取った書き込みアドレス記憶部２１は、入力されているエントリナンバー情報ｓ２３に含まれているエントリナンバー、この場合ではエントリＮｏ．１に対応するすべての書き込みアドレスｓ７を、廃棄アドレス情報ｓ１１として廃棄アドレス記憶部２２に出力する。この場合の廃棄アドレス情報ｓ１１に含まれる書き込みアドレスｓ７は、セルＤ〜セルＬのセルバッファ１上の書き込みアドレスｓ７である。
【００５９】
そして、廃棄アドレス記憶部２２は受け取った書き込みアドレスｓ７を記憶する。このとき、廃棄アドレス記憶部２２には、パケットａに属するセルＤ〜セルＬのセルバッファ１上の書き込みアドレスｓ７と、パケットｂに属するセル▲１▼及びセル▲２▼のセルバッファ１上の書き込みアドレスｓ７とを記憶している。つまり、セルバッファ１に格納されている全てのセルの書き込みアドレスｓ７が記憶されている。
【００６０】
次に図１２に示すように、セル▲５▼、セルＮ〜セルＺがこの順で本実施の形態１に係るセルバッファ制御装置に入力されると、セル▲５▼は廃棄処理対象であるパケットｂに属し、セルＮ〜セルＺは廃棄処理対象であるパケットａに属するため、セル▲５▼とセルＮ〜セルＺは廃棄される。ここで、セルＺはパケットａのＥＯＰセルである。書き込みセル廃棄制御部３は入力されたヘッダ情報ｓ２からセルＺがＥＯＰセルであることを認識し、セルＺが属するパケットａに対応するＥＰＤフラグ５１の値を変更するために、エントリテーブル処理部２０に対してエントリ更新フラグｓ１４を出力する。エントリ更新フラグｓ１４を受け取ったエントリテーブル処理部２０は、パケットａに対応するＥＰＤフラグ５１、言い換えればエントリＮｏ．１にエントリされているコネクション情報５０に対応するＥＰＤフラグ５１を“１”から“０”に変更する。その結果、パケットａがセル廃棄処理対象ではなくなり、今後入力されるパケットａに属するセルをセルバッファ１に書き込むことが可能となる。但し、セルバッファ１に格納されているパケットａに属するセルは依然廃棄処理対象にある。
【００６１】
次に図１３示すように、セル▲５▼とセルＮ〜セルＺとの廃棄後、セルバッファ１に対して読み出し処理が行われる。具体的には、読み出し制御部９は、セルＤが書き込まれた書き込みアドレスｓ７と同じ値の読み出しアドレスを生成し、読み出しアドレスｓ９としてセルバッファ１に出力し、セルバッファ１上の当該読み出しアドレスｓ９に格納されているセルＤを読み出す。このとき、読み出し制御部９は、生成した読み出しアドレスを読み出しアドレスｓ１０として廃棄アドレス記憶部２２に出力する。読み出しアドレスｓ１０を受け取った廃棄アドレス記憶部２２は、記憶している廃棄アドレスｓ５７と読み出しアドレスｓ１０とを比較する。記憶している廃棄アドレスｓ５７中には、セルＤが書き込まれている書き込みアドレスｓ７を含んでいるため、廃棄アドレス記憶部２２は廃棄処理部２３に対して廃棄制御信号ｓ１２＝“１”を出力する。
【００６２】
廃棄制御信号ｓ１２＝“１”を受け取った廃棄処理部２３は、セルバッファ１から読み出されたセルＤに対して廃棄処理を行う。同様にして、セルＥ〜セルＧ、セル▲１▼、セルＨがこの順で読み出され、その全てが廃棄処理部２３で廃棄される。次に図１４に示すように、セルＩ、セル▲２▼、セルＦ〜セルＬがこの順に読み出され、同様に廃棄処理部２３で廃棄される。そして、セルＡとセルＢとがこの順で本実施の形態１に係るセルバッファ制御装置に入力されると、セルＡとセルＢとが属するパケットａは廃棄処理対象ではなくなっているため、セルＡとセルＢとはセルバッファ１に書き込まれる。以後、入力セルｓ１に対して上述の処理を続けることによって、図６に示すような、複数のパケットのそれぞれを構成するセルが混在して並んでいる入力セルｓ１に対してでも、パケット単位でセル廃棄処理を行うことができる。
【００６３】
上述のように、本実施の形態１に係るセルバッファ制御装置によれば、セルバッファ１に格納されている入力セルｓ１のうち、廃棄処理対象にある入力セルｓ１のセルバッファ１上のアドレスである廃棄アドレスｓ５７を記憶しているため、セルバッファ１内の廃棄処理対象にある入力セルｓ１を読み出した後に、当該入力セルｓ１に対して廃棄処理を実行することができる。そのため、異なる種類のパケットが任意のタイミングで多重化された入力セルｓ１に対しても適切にセル廃棄処理を行うことができる。
【００６４】
また、上述の従来のセルバッファ制御装置のように、パケットごとにセルバッファ１を設けることなく、また前段にデマルティプレクサを設けることなく、本実施の形態１に係るセルバッファ制御装置ではセル廃棄処理を行うことができる。通常、セルバッファ制御装置において、セルバッファ１を構成するメモリの回路規模が装置全体の回路規模に占める割合が大きいため、上述の内容を言い換えれば、本実施の形態１に係るセルバッファ制御装置は、従来のセルバッファ制御装置よりも回路規模を縮小しつつ、パケット単位でセル廃棄処理を行うことができる。
【００６５】
実施の形態２．
図１５は本発明の実施の形態２に係るセルバッファ制御装置の構成を示すブロック図である。本実施の形態２に係るセルバッファ制御装置は、上述の実施の形態１に係るセルバッファ制御装置において、構成としては、廃棄処理部２３の代わりにアドレス可変指示部４０を備えている。
【００６６】
上述の実施の形態１においては、セルバッファ１に格納されている入力セルｓ１のうち、廃棄処理対象にある入力セルｓ１に対してセル廃棄処理を行うために、セルバッファ１から廃棄処理対象にある入力セルｓ１を読み出していた。本実施の形態２では、上述の実施の形態１における廃棄処理部２３で行っていたセル廃棄処理を、読み出し制御部９のアドレス生成方法を工夫することで実行している。以下に、本実施の形態２に係るセルバッファ制御装置のセル廃棄処理方法について説明するが、ここでは実施の形態１に係るセルバッファ制御装置のセル廃棄処理方法と異なる点のみを説明する。
【００６７】
図１５を参照して、読み出し制御部９は読み出しアドレスｓ９をセルバッファ１に出力するまえに、つまり、セルバッファ１から入力セルｓ１を読み出す前に、廃棄アドレス記憶部２２に読み出しアドレスｓ１０を、オーバーフロー検出部１０に読み出しアドレスｓ８を出力する。廃棄アドレス記憶部２２は受け取った読み出しアドレスｓ１０と、記憶している廃棄アドレスｓ５７とを比較し、廃棄アドレスｓ５７の中で、読み出しアドレスｓ１０と一致するアドレスがある場合には、アドレス可変指示部４０に対して、廃棄フラグｓ１７＝“１”を出力する。また、一致しない場合には廃棄フラグｓ１７＝“０”を出力する。
【００６８】
アドレス可変指示部４０には読み出し制御部９からの読み出しアドレスｓ９と、アンダーフローフラグｓ１５とが入力される。そして、アドレス可変指示部４０は、廃棄フラグｓ１７、読み出しアドレスｓ９、及びアンダーフローフラグｓ１５をもとに、制御信号ｓ１６を読み出し制御部８に出力する。読み出し制御部８は受け取った制御信号ｓ１６をもとに、セルバッファ１に読み出しアドレスｓ９を出力するかどうかを決定する。言い変えれば、読み出し制御部８は受け取った制御信号ｓ１６をもとに、セルバッファ１から入力セルｓ１を読み出すかどうかを決定する。
【００６９】
なお、本実施の形態２においては、オーバーフロー検出部１０に入力されている読み出しアドレスｓ８と、廃棄アドレス記憶部２２に入力されている読み出しアドレスｓ１０とは、読み出し制御部９が内部処理用に使用している読み出しアドレスをそのまま出力したものであって、読み出しアドレスｓ８，ｓ１０は互いに同じ値をとる。一方、セルバッファ１などに入力されている読み出しアドレスｓ９は、セルバッファ１から入力セルｓ１を読み出すために使用される読み出しアドレスであって、読み出し制御部９が内部処理用に使用している読み出しアドレスをもとに生成している読み出しアドレスである。そのため、読み出しアドレスｓ９は、読み出しアドレスｓ１８，ｓ１０とは異なる値をとる場合がある。以後、読み出し制御部９が内部処理用に使用している読み出しアドレスを「内部読み出しアドレス」と呼ぶ。
【００７０】
図１６はアドレス可変指示部４０での処理を示すフローチャートであって、アドレス可変指示部４０が行う処理については図１６を参照して詳細に説明する。図１６に示すように、ステップＳＴ８０では、アドレス可変指示部４０は、読み出し制御部９から送られてくる読み出しアドレスｓ９の変化をもとに、セルバッファ１からの入力セルｓ１の読み出しが発生したかどうかを判断し、入力セルｓ１の読み出しが行われるたびに、オーバーフロー検出部１０からのアンダーフローフラグｓ１５の値を判別する。
【００７１】
アンダーフローフラグｓ１５＝“０”のとき、ステップＳＴ８１にて、アドレス可変指示部４０は廃棄アドレス記憶部２２からの廃棄フラグｓ１７の値を判別する。ステップＳＴ８１にて、廃棄フラグｓ１７＝“１”と判別した場合、読み出しアドレスｓ１０に書き込まれている入力セルｓ１、つまり内部読み出しアドレスに書き込まれている入力セルｓ１は廃棄処理対象であることから、ステップＳＴ８２にて、アドレス可変指示部４０は読み出し制御部９に対して制御信号ｓ１６＝“１”を出力する。
【００７２】
制御信号ｓ１６＝“１”を受け取った読み出し制御部９は、セルバッファ１に対して読み出しアドレスｓ９を出力せずに、内部読み出しアドレスを１セル分インクリメントする。つまり、読み出しアドレスｓ８，ｓ１０が１セル分インクリメントされることになる。その結果、読み出し制御部９によって、セルバッファ１上の廃棄アドレスｓ５７と一致する読み出しアドレスｓ１０に格納されている入力セルｓ１は読み出されなくなる。
【００７３】
ステップＳＴ８０において、アンダーフローフラグｓ１５＝“０”のときで、ステップＳＴ８１において、廃棄フラグｓ１７＝“０”の場合、読み出しアドレスｓ１０に書き込まれている入力セルｓ１は廃棄処理対象外であることから、ステップＳＴ８４にて、アドレス可変指示部４０は読み出し制御部９に対して制御信号ｓ１６＝“０”を出力する。制御信号Ｓ１６＝“０”を受け取った読み出し制御部９は、現在の内部読み出しアドレスを読み出しアドレスｓ９としてセルバッファ１へ出力し、廃棄処理対象でない入力セルｓ１の読み出しを行う。このとき、内部読み出しアドレスは入力セルｓ１の読み出しが行われた後にインクリメントされる。
【００７４】
よって、例えばセルバッファ１に入力セルｓ１が書き込まれているが、書き込まれている入力セルｓ１がすべて廃棄処理対象となっている場合、図１６の処理において、常に廃棄フラグｓ１７＝“１”となるため、アドレス可変指示部４０はステップＳＴ８０からステップＳＴ８３までの処理を繰り返す。その結果、セルバッファ１へは読み出しアドレスｓ９が出力されない状態で、内部読み出しアドレス、つまり読み出しアドレスｓ８，ｓ１０はインクリメントを続け、セルバッファ１への書き込みアドレスｓ７＝読み出しアドレスｓ８という関係に陥ると、アンダーフローフラグｓ１５＝“１”となり、以後、新たに入力セルｓ１が書き込まれるまでステップＳＴ８０を繰り返し実行する。
【００７５】
上述のような処理をアドレス可変指示部４０が行うことによって、セルバッファ１に格納されている入力セルｓ１のうち、廃棄処理対象でない入力セルｓ１だけがセルバッファ１から読み出される。言い換えれば、セルバッファ１に格納されている入力セルｓ１のうち、廃棄処理対象にある入力セルｓ１はセルバッファ１から読み出されず、結果的に廃棄処理が行われる。
【００７６】
上述のように、本実施の形態２に係るセルバッファ制御装置によれば、セルバッファ１に格納されている入力セルｓ１のうち、廃棄処理対象にある入力セルｓ１のセルバッファ１上のアドレスである廃棄アドレスｓ５７を記憶しているため、セルバッファ１内の廃棄処理対象にある入力セルｓ１を読み出さないことによって、当該入力セルｓ１に対して廃棄処理を実行することができる。そのため、異なる種類のパケットが任意のタイミングで多重化された入力セルｓ１に対しても適切にセル廃棄処理を行うことができる。
【００７７】
また、上述の従来のセルバッファ制御装置のように、パケットごとにセルバッファ１を設けることなく、また前段にデマルティプレクサを設けることなく、セル廃棄処理を行うことができる。通常、セルバッファ制御装置において、セルバッファ１を構成するメモリの回路規模が装置全体の回路規模に占める割合が大きいため、上述の内容を言い換えれば、本実施の形態２に係るセルバッファ制御装置は、従来のセルバッファ制御装置よりも回路規模を縮小しつつ、パケット単位でセルバッファ廃棄処理を行うことができる。
【００７８】
なお、上述の実施の形態１及び本実施の形態２では、セルバッファ１にＦＩＦＯメモリを用いた場合について説明したが、ＦＩＦＯメモリの代わりにＲＡＭや他の記録再生可能な記憶素子を用いても同様の効果を得ることができる。
【００７９】
また、上述の実施の形態１及び本実施の形態２では、書き込み制御部８からの書き込みアドレスｓ７と読み出し制御部９からの読み出しアドレスｓ８とを用いてオーバーフロー検出部１０でセルバッファ１のオーバーフローとアンダーフローを検出していたが、他の方法を用いてセルバッファ１のオーバーフローとアンダーフローを検出してもよい。例えば、セルバッファ１で蓄積されているセル数をカウントするカウンタを設け、入力セルｓ１の書き込み処理が発生した場合は、当該カウンタのカウント値を＋１カウントアップし、入力セルｓ１の読み出し処理が発生した場合は−１カウントダウンし、セルバッファ１で蓄積しているセル数を常時演算することによって、セルバッファ１のオーバーフローとアンダーフローとを検出することができる。
【００８０】
【発明の効果】
この発明のうち請求項１に係るセルバッファ制御装置及び請求項４に係るセルバッファ制御方法によれば、セルバッファ内の廃棄処理対象にあるセルのセルバッファ上のアドレスである廃棄アドレスを記憶しており、セルバッファから読み出されたセルのうち、廃棄アドレスと一致する読み出しアドレスに格納されていたセルを廃棄するため、複数のパケットが多重化された結果、各パケットを構成するセルが混在してセルバッファに格納されていても、セルバッファ内の廃棄処理対象にあるセルを確実に廃棄することができる。
【００８１】
また、この発明のうち請求項２に係るセルバッファ制御装置及び請求項５に係るセルバッファ制御方法によれば、書き込みアドレスを出力して、セルバッファ上の当該書き込みアドレスにセルを書き込み、廃棄処理対象にあるセルが書き込まれている書き込みアドレスを、廃棄アドレスとして記憶しているため、新たにセルバッファに書き込まれたセルに対してもセル廃棄処理を行うことができる。
【００８３】
また、この発明のうち請求項３に係るセルバッファ制御装置及び請求項６に係るセルバッファ制御方法によれば、セルバッファ上の、廃棄アドレスと一致する読み出しアドレスに格納されているセルを読み出さないため、複数のパケットが多重化された結果、各パケットを構成するセルが混在してセルバッファに格納されていても、セルバッファからは廃棄処理対象にあるセルは読み出されない。更に、書き込みアドレスを出力して、セルバッファ上の当該書き込みアドレスにセルを書き込み、廃棄処理対象にあるセルが書き込まれている書き込みアドレスを、廃棄アドレスとして記憶しているため、新たにセルバッファに書き込まれたセルに対してもセル廃棄処理を行うことができる。
【図面の簡単な説明】
【図１】  本発明の実施の形態１に係るセルバッファ制御装置の構成を示すブロック図である。
【図２】  本発明の実施の形態１に係るエントリテーブル処理部２０のエントリテーブルを示す図である。
【図３】  本発明の実施の形態１に係る書き込みアドレス記憶部２１の構成を示す図である。
【図４】  本発明の実施の形態１における入力セルｓ１の構造を示す図である。
【図５】  本発明の実施の形態１における入力セルｓ１の構造を示す図である。
【図６】  本発明の実施の形態１における入力セルｓ１の構造を示す図である。
【図７】  本発明の実施の形態１における入力セルｓ１に対するセル廃棄処理の工程を示す図である。
【図８】  本発明の実施の形態１における入力セルｓ１に対するセル廃棄処理の工程を示す図である。
【図９】  本発明の実施の形態１における入力セルｓ１に対するセル廃棄処理の工程を示す図である。
【図１０】  本発明の実施の形態１における入力セルｓ１に対するセル廃棄処理の工程を示す図である。
【図１１】  本発明の実施の形態１における入力セルｓ１に対するセル廃棄処理の工程を示す図である。
【図１２】  本発明の実施の形態１における入力セルｓ１に対するセル廃棄処理の工程を示す図である。
【図１３】  本発明の実施の形態１における入力セルｓ１に対するセル廃棄処理の工程を示す図である。
【図１４】  本発明の実施の形態１における入力セルｓ１に対するセル廃棄処理の工程を示す図である。
【図１５】  本発明の実施の形態２に係るセルバッファ制御装置の構成を示すブロック図である。
【図１６】  本発明の実施の形態２に係るアドレス可変指示部４０での処理を示すフローチャートである。
【図１７】  従来のセルバッファ制御装置の構成を示すブロック図である。
【図１８】  従来のセルバッファ制御装置におけるセル廃棄処理を示すフローチャートである。
【符号の説明】
１  セルバッファ、８  書き込み制御部、９  読み出し制御部、２１  書き込みアドレス記憶部、２２  廃棄アドレス記憶部。
【図１】
0003682009.tif 000002
【図２】
0003682009.tif 000003
【図３】
0003682009.tif 000004
【図４】
0003682009.tif 000005
【図５】
0003682009.tif 000006
【図６】
0003682009.tif 000007
【図７】
0003682009.tif 000008
【図８】
0003682009.tif 000009
【図９】
0003682009.tif 000010
【図１０】
0003682009.tif 000011
【図１１】
0003682009.tif 000012
【図１２】
0003682009.tif 000013
【図１３】
0003682009.tif 000014
【図１４】
0003682009.tif 000015
【図１５】
0003682009.tif 000016
【図１６】
0003682009.tif 000017
【図１７】
0003682009.tif 000018
【図１８】
0003682009.tif 000019