(57)【要約】      （修正有）【課題】記憶されたパケットの先入れ先出しバッファ内に記憶されたパケットを選択的かつ効率的に破棄することのできるパケット破棄方法を提供する。【解決手段】書き込まれた順にデータを読み出す先入れ先出しバッファは、つぎに読み出すパケットを破棄する前に、破棄するパケットの先頭アドレスを示す読み出しアドレス・データを、破棄するパケットの次のパケットの先頭アドレスを示すデータに書き換える読み出しデータ指示部１０９を備えている。つぎに読み出すパケットを破棄する前に、破棄するパケットの先頭アドレスを示す読み出しアドレス・データを、破棄するパケットの次のパケットの先頭アドレスを示すデータに書き換えることによって、選択的にパケットを破棄することができる。また、破棄するパケットの先頭アドレスを示す読み出しアドレス・データを書き換えるだけの処理によって効率的にパケットを破棄することができる。【選択図】図２
2011103554.tif 000002
【特許請求の範囲】
【請求項１】
書き込まれた順にデータを読み出す先入れ先出しバッファであって、つぎに読み出すパケットを破棄する前に、破棄するパケットの先頭アドレスを示す読み出しアドレス・データを、破棄するパケットの次のパケットの先頭アドレスを示すデータに書き換える読み出しデータ指示部を備えた先入れ先出しバッファ。
【請求項２】
前記破棄するパケットの先頭アドレスを示す読み出しアドレス・データに、前記破棄するパケットのヘッダに含まれるパケット・データ長を加算して、前記破棄するパケットの次のパケットの先頭アドレスを示すデータを得る加算器をさらに備えた請求項１に記載の先入れ先出しバッファ。
【請求項３】
ヘッダ情報の先頭にパケット・データ長のフィールドが位置しているパケットを取り扱う請求項１または２に記載の先入れ先出しバッファ。
【請求項４】
書き込まれた順にデータを読み出す先入れ先出しバッファにおいて、パケットを破棄する方法であって、つぎに読み出すパケットを破棄する前に、破棄するパケットの先頭アドレスを示す読み出しアドレス・データを、破棄するパケットの次のパケットの先頭アドレスを示すデータに書き換えることによってパケットを破棄するパケット破棄方法。
【請求項５】
前記破棄するパケットの先頭アドレスを示す読み出しアドレス・データに、前記破棄するパケットのヘッダに含まれるパケット・データ長を加算して、前記破棄するパケットの次のパケットの先頭アドレスを示すデータを得る請求項４に記載のパケット破棄方法。
【請求項６】
ヘッダ情報の先頭にパケット・データ長のフィールドが位置しているパケットを取り扱う請求項４または５に記載のパケット破棄方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを選択的に破棄することのできる先入れ先出し（ＦＩＦＯ First In First Out）バッファ及び先入れ先出しバッファのデータ破棄方法に関する。
【背景技術】
【０００２】
データ転送を行なうデータ転送システムにおいて、転送されるデータの単位をパケットと呼称する。データ転送システムの送受信端において、一般的にパケットを記憶するためのＦＩＦＯバッファが使用される。ＦＩＦＯバッファからのパケットの読み出しは、パケットが書き込まれた順に行なわれる。
【０００３】
データ転送システムを含むデータ処理システムにおいて、データ転送システムのＦＩＦＯバッファに保持されたパケットが処理中に不要となる場合がある。一例として、制御プロセッサが複数の演算プロセッサにデータを転送し、演算処理の単位時間であるスライス内に、複数の演算プロセッサに演算を行わせる際に、スライスの終了時点で演算の終了していないプロセッサの演算を打ち切る場合などが考えられる。
【０００４】
従来のＦＩＦＯバッファは、ＦＩＦＯバッファへ書き込むアドレス及びＦＩＦＯバッファから読み込むアドレスを全て初期化するリセット機能を備えている。ＦＩＦＯバッファのリセット機能を使用することで、ＦＩＦＯバッファに記憶されたパケットはすべて破棄される。
【０００５】
しかし、ＦＩＦＯバッファ内に破棄すべきでないパケットが含まれている可能性がある場合には上記のリセット機能を使用することはできない。このような場合に従来のシステムにおいては、ＦＩＦＯバッファからパケットを読み出した後に、破棄すべきと判断されたパケットをそのまま放置する方法が実施されていた（たとえば、特許文献１の第１３乃至第１９段落）。
【０００６】
しかし、上記の従来の方法では、ＦＩＦＯバッファ内のパケットを読み出す作業に相当の処理リサイクルを必要とする。このため、必要でないパケットを処理するために処理サイクルが消費され、結果としてシステムの効率が低下していた。
【０００７】
このように、記憶されたパケットを選択的に破棄することのできる機能を備えたＦＩＦＯバッファ及びＦＩＦＯバッファ内に記憶されたパケットを選択的かつ効率的に破棄することのできるパケット破棄方法は開発されていない。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平７−２６２１５１
【発明の概要】
【発明が解決しようとする課題】
【０００９】
したがって、記憶されたパケットを選択的に破棄することのできる機能を備えた先入れ先出しバッファ及び先入れ先出しバッファ内に記憶されたパケットを選択的かつ効率的に破棄することのできるパケット破棄方法に対するニーズがある。
【課題を解決するための手段】
【００１０】
本発明による、書き込まれた順にデータを読み出す先入れ先出しバッファは、つぎに読み出すパケットを破棄する前に、破棄するパケットの先頭アドレスを示す読み出しアドレス・データを、破棄するパケットの次のパケットの先頭アドレスを示すデータに書き換える読み出しデータ指示部を備えている。
【００１１】
本発明による、書き込まれた順にデータを読み出す先入れ先出しバッファにおいて、パケットを破棄する方法は、つぎに読み出すパケットを破棄する前に、破棄するパケットの先頭アドレスを示す読み出しアドレス・データを、破棄するパケットの次のパケットの先頭アドレスを示すデータに書き換えることによってパケットを破棄する。
【００１２】
本発明によれば、つぎに読み出すパケットを破棄する前に、破棄するパケットの先頭アドレスを示す読み出しアドレス・データを、破棄するパケットの次のパケットの先頭アドレスを示すデータに書き換えることによって、選択的にパケットを破棄することができる。また、破棄するパケットの先頭アドレスを示す読み出しアドレス・データを書き換えるだけの処理によって効率的にパケットを破棄することができる。
【００１３】
本発明の実施形態によれば、前記破棄するパケットの先頭アドレスを示す読み出しアドレス・データに、前記破棄するパケットのヘッダに含まれるパケット・データ長を加算して、前記破棄するパケットの次のパケットの先頭アドレスを示すデータを得る。
【００１４】
本実施形態によれば、前記破棄するパケットのヘッダに含まれるパケット・データ長を使用することにより、複雑な機構を必要とせずに、前記破棄するパケットの次のパケットの先頭アドレスを示すデータを得ることができる。
【００１５】
本発明の実施形態によれば、ヘッダ情報の先頭にパケット・データ長のフィールドが位置しているパケットを取り扱う。
【００１６】
本実施形態によれば、ヘッダ情報からパケット・データ長を取り出す際に都合がよい。
【図面の簡単な説明】
【００１７】
【図１】本発明の一実施形態によるデータを選択的に破棄することのできるＦＩＦＯバッファの入出力信号を示す図である。
【図２】本発明の一実施形態によるデータを選択的に破棄することのできるＦＩＦＯバッファの構成の一例を示す図である。
【図３】パケットのデータ構造を説明するための図である。
【図４】本発明の一実施形態によるパケット破棄方法を示す流れ図である。
【図５】ＦＩＦＯバッファに記憶されたパケットの状態を示す図である。
【図６】本発明の一実施形態によるデータを選択的に破棄することのできるＦＩＦＯバッファを使用したネットワークの全体構成を示す図である。
【図７】図６に示したネットワークに使用されるＦＩＦＯバッファを含むノードの構成を示す図である。
【図８】パケット破棄処理を説明するための図である。
【図９】制御回路による上述のパケット破棄方法を示す流れ図である。
【図１０】従来のＦＩＦＯバッファの入出力信号を示す図である。
【図１１】従来のＦＩＦＯバッファの構成の一例を示す図である。
【発明を実施するための形態】
【００１８】
図１は、本発明の一実施形態によるパケットを選択的に破棄することのできるＦＩＦＯ（先入れ先出し）バッファ１００の入出力信号を示す図である。ＦＩＦＯバッファ１００は、外部から受信データを受け取り、受け取ったデータを内部バスへ送る。ＦＩＦＯバッファ１００には、さらにリセット信号とパケット破棄信号が入力される。リセット信号を受け取ると、ＦＩＦＯバッファ１００は、従来のＦＩＦＯバッファと同様に、記憶している全てのパケットを破棄する。パケット破棄信号を受け取ると、ＦＩＦＯバッファ１００は、つぎに転送される予定のパケットを選択的に破棄する。
【００１９】
図１０は、従来のＦＩＦＯバッファ１５０の入出力信号を示す図である。従来のＦＩＦＯバッファ１５０において、パケット破棄信号は存在しない。
【００２０】
図２は、本発明の一実施形態によるデータを選択的に破棄することのできるＦＩＦＯバッファ１００の構成の一例を示す図である。ＦＩＦＯバッファ１００は、２ポートメモリ１０１と、書き込みデータレジスタ１０３と、書き込みアドレス指示部１０５と、読み出しデータレジスタ１０７と、読み出しアドレス指示部１０９と、加算器１１１と、を含む。
【００２１】
図１１は、従来のＦＩＦＯバッファ１５０の構成の一例を示す図である。ＦＩＦＯバッファ１５０は、２ポートメモリ１５１と、書き込みデータレジスタ１５３と、書き込みアドレス指示部１５５と、読み出しデータレジスタ１５７と、読み出しアドレス指示部１５９と、を含む。従来のＦＩＦＯバッファ１５０は、パケット破棄信号を取り扱わない。
【００２２】
図２に戻り、書き込みアドレス指示部１０５は、書き込み指令ｗｒ＿Ａを受け取ると、書き込みデータレジスタ１０３に書き込み指令を送り、書き込みデータレジスタ１０３は、書き込みデータレジスタ１０３の内容を、２ポートメモリ１０１のポートＡに送る。また、書き込みアドレス指示部１０５は、書き込み指令及びデータを書き込むべき２ポートメモリ１０１のアドレスを２ポートメモリ１０１のポートＡに送る。２ポートメモリ１０１は、受け取ったデータを、受け取ったアドレスに書き込む。書き込みアドレス指示部１０５は、記憶しているアドレスをインクリメントし、つぎにデータを書き込むべきアドレスを示すようにする。
【００２３】
読み出しアドレス指示部１０９は、読み出し指令ｒｄ＿Ｂを受け取ると、読み出し指令及びデータを読み込むべき２ポートメモリ１０１のアドレスを２ポートメモリ１０１のポートＢに送る。２ポートメモリ１０１は、受け取ったアドレスから読み込んだデータを、読み出しデータレジスタ１０７に送る。読み出しアドレス指示部１０９は、記憶しているアドレスをインクリメントし、つぎにデータを読み出すべきアドレスを示すようにする。
【００２４】
リセット信号を受け取ると、書き込みデータレジスタ１０３、書き込みアドレス指示部１０５、読み出しデータレジスタ１０７及び読み出しアドレス指示部１０９の全てのデータがクリアされる。この結果、２ポートメモリ１０１の全てのデータが破棄される。
【００２５】
パケット破棄信号を受け取ると、読み出しアドレス指示部１０９は、加算器１１１の出力を受け取る。加算器１１１の一方の入力端には、読み出しアドレス指示部１０９が保持する、つぎに読み出すパケットの先頭アドレスが接続される。加算器１１１の他方の入力端には、読み出しデータレジスタ１０７に記憶された、つぎに読み出すパケットのヘッダ情報のうちのパケット・データ長が接続される。したがって、加算器１１１の出力、すなわち、読み出しアドレス指示部１０９が加算器１１１から受け取るデータは、つぎに読み出す予定のパケットの、さらにその次のパケットの先頭アドレスを示すデータである。この状態で、読み出し指令ｒｄ＿Ｂを受け取ると、読み出しアドレス指示部１０９は、読み出し指令及び、つぎに読み出す予定のパケットの、さらにその次のパケットの先頭アドレスを示すデータを２ポートメモリ１０１に送る。この結果、つぎに読み出す予定であったパケットは破棄される。このように本実施形態によれば、１サイクルの処理によって、つぎに読み出す予定であったパケットの破棄が実行される。
【００２６】
図３は、パケットのデータ構造を説明するための図である。加算器１１１の入力端に、つぎに読み出すパケットのヘッダ情報のうちのパケット・データ長を接続するには、パケットのヘッダ情報の先頭にパケット・データ長のフィールドが位置しているのが好ましい。図３に示したデータ構造では、パケットのヘッダ情報の先頭位置の１６ビット（４８ビット目から６３ビット目）にパケット・データ長のフィールドが位置している。
【００２７】
図４は、本発明の一実施形態によるパケット破棄方法を示す流れ図である。
【００２８】
図４のステップＳ１０１０において、読み出しアドレス指示部１０９は、「パケット破棄信号」を受け取る。「パケット破棄信号」は、後で説明するように制御回路によって出力される。
【００２９】
図４のステップＳ１０２０において、読み出しアドレス指示部１０９は、２ポートメモリ１０１に、破棄の対象となる有効なエントリが存在するかどうか判断する。ここで、読み出しアドレス指示部１０９は、２ポートメモリ１０１が出力する、図２に示すＲｄ＿ｖａｌｉｄ信号によって破棄の対象となる有効なエントリが存在するかどうか判断してもよい。有効なエントリが、存在すれば、ステップＳ１０３０に進む。有効なエントリが存在しなければ、そのまま処理を終了する。
【００３０】
図４のステップＳ１０３０において、読み出しアドレス指示部１０９は、読み出しアドレス指示部１０９が保持する、つぎに読み出すパケットの先頭アドレスと、読み出しデータレジスタ１０７に記憶された、つぎに読み出すパケットのヘッダ情報のうちのパケット・データ長との和を加算器から受け取る。
【００３１】
図４のステップＳ１０４０において、読み出しアドレス指示部１０９は、加算器１１１の出力を、つぎに読み出すパケットの新たな先頭アドレスとして新たに記憶する。
【００３２】
図５は、２ポートメモリ１０１に記憶されたパケットの状態を示す図である。図５において、アドレスは、先頭が最も大きいものとする。図５において、２ポートメモリ１０１にはパケットｍからパケットｍ＋３まで４個のパケットが存在している。ポートＡの書き込みアドレスは、パケットｍ＋３の最後のアドレスの次のアドレスである。パケット破棄実行前のポートＢの読み出しアドレスは、パケットｍの先頭アドレスである。パケット破棄信号が出力され、読み出しアドレス指示部１０９がパケット破棄処理を実行すると、ポートＢの読み出しアドレスは、パケットｍの先頭アドレスにパケットｍのパケット・データ長を加算した値、すなわち、パケットｍ＋１の先頭アドレスとなる。
【００３３】
一般に、書き込みアドレス及び読み出しアドレスは、それぞれ、書き込みアドレス指示部１０５及び読み出しアドレス指示部１０９によってインクリメントされ、上限値（２ポートメモリ１０１の容量）に達するとゼロとされる。書き込みアドレスが読み出しアドレスに追いついた場合に、２ポートメモリ１０１は一杯となる。読み出しアドレスが書き込みアドレスに追いついた場合に、２ポートメモリ１０１は空となる。図２のＲｄ＿ｖａｌｉｄ信号は、書き込みアドレスが読み出しアドレスより大きい場合に出力され、２ポートメモリ１０１に有効なデータが存在することを示す。
【００３４】
つぎに、本発明の一実施形態によるデータを選択的に破棄することのできるＦＩＦＯバッファ１００を使用したデータ処理システムの構成の一例を示す。
【００３５】
図６は、本発明の一実施形態によるデータを選択的に破棄することのできるＦＩＦＯバッファを使用したネットワークの全体構成を示す図である。ネットワークは、スイッチ３０３ならびにスイッチ３０３に接続された、ノード０（３０１）、ノード１（３０５）、ノード２（３０７）、ノード３（３０９）及びノード４（３１１）を含む。ノード０（３０１）は、システムマスターとして機能する。ノード１（３０５）乃至ノード４（３１１）は、演算ノードとして機能する。スイッチ３０３は、上記の５個のノードの間でパケット・データを転送する機能を有する。
【００３６】
ノード０（３０１）は、各演算ノードに演算のためのパラメータを送信するとともに、システム全体の制御を行なう。一例として、ノード０（３０１）は、演算処理の基本単位時間であるスライスの始まりを示す同期信号のパケット・データ及び演算に必要なパラメータのパケット・データを各演算ノードに送信する。
【００３７】
演算ノード１（３０５）乃至ノード４（３１１）は、システムマスターであるノード０（３０１）から命令されたジョブを実行し、その結果をノード０（３０１）へ送り返す。ジョブの内容は、数値計算の実行、演算ノード１（３０５）乃至ノード４（３１１）に接続されている機器３１３乃至３１９からの計測情報、音声情報、画像情報などの収集、機器３１３乃至３１９の制御、機器３１３乃至３１９への音声情報、画像情報などの出力などである。一例として、演算ノード１（３０５）において、定期的に計測器から情報を収集し、ノード０（３０１）から送られるパラメータと組み合わせてモータ制御を行なってもよい。モータ制御の基本周期は、演算処理の基本単位時間であるスライスと同じ時間、たとえば、１ミリ秒に設定しておく。
【００３８】
ここで、各演算ノードは、スライス時間を超えて演算を継続できないものとする。すなわち、各演算ノードは、ノード０（３０１）からスライスの始まりを示す同期信号を受け取るごとに、継続中の処理があればそれを中止して新たな処理を開始する。たとえば、上記のモータ制御の場合には、新たな基本周期の処理を開始する。
【００３９】
図７は、図６に示したネットワークに使用されるＦＩＦＯバッファを含むノード１（３０５）の構成を示す図である。ノード１（３０５）は、デジタル受信インタフェース２０１、フレームデータ受信用ＦＩＦＯバッファ１００Ａ、制御データ受信用ＦＩＦＯバッファ１５０Ａ、内部演算器２０３、パケット管理部２０５、制御回路２０７、フレームデータ送信用ＦＩＦＯバッファ１５０Ｂ、制御データ送信用ＦＩＦＯバッファ１５０Ｃ及びデジタル送信インタフェース２０９を含む。デジタル受信インタフェース２０１及びデジタル送信インタフェース２０９は、ＬＶＤＳ（Low Voltage Differential Signaling）などの差動信号を用いた高速デジタル通信用インタフェースである。
【００４０】
以下において、フレームデータ受信用ＦＩＦＯバッファ１００Ａは、図２に示したパケット破棄機能を備えたものであるとして、ＦＩＦＯバッファ１００Ａの通常の処理及びパケット破棄処理について説明する。
【００４１】
図６のネットワークで説明した、同期信号は制御データとして扱われ、演算のためのパラメータ情報は、フレームデータとして扱われる。制御データ受信用ＦＩＦＯバッファ１５０Ａは、従来のＦＩＦＯバッファである。制御データ受信用ＦＩＦＯバッファ１５０Ａは、制御回路２０７から読み出し指令を受けて、受信制御データを制御回路２０７へ送る。制御回路２０７は、制御データ受信用ＦＩＦＯバッファ１５０Ａから制御データの受信を知らされて適切に読み出し指令を出力する。上述のとおり、フレームデータ受信用ＦＩＦＯバッファ１００Ａは、図２に示したパケット破棄機能を備えたものである。フレームデータ受信用ＦＩＦＯバッファ１００Ａは、制御回路２０７から読み出し指令を受けて、フレームデータ受信用ＦＩＦＯバッファ１００Ａに保持された受信フレームデータを内部演算器２０３へ送る。制御回路２０７は、フレームデータ受信用ＦＩＦＯバッファ１００Ａからフレームデータの受信を知らされ、また、内部演算器２０３からその処理状態を知らされて、適切に読み出し指令を出力する。
【００４２】
スライス中に受信する予定のパケットの個数は既知であるとして、パケット管理部２０５に予め設定しておく。パケット管理部２０５は、図示しないパケット・カウンタを備えており、パケット・カウンタは、通信チャネルのリセット時、たとえば、スライスの開始時にゼロに設定される。パケット・カウンタは、内部演算器２０３が受信したデータの情報を使用して読み出したパケットの数をカウントする。
【００４３】
図８は、パケット破棄処理を説明するための図である。図８の横軸は時間の経過を示す。スライスの開始を知らせる同期信号を含むパケットがＦＩＦＯバッファ１５０Ａに受信され、制御回路２０７に送られる。この時点の時刻はｔ１である。この時点で内部演算器２０３は、パケット（Ｓ１＋Ｍ−３）を処理中である。このときＦＩＦＯバッファ１００Ａの読み出しポインタは、パケット（Ｓ１＋Ｍ−３）の先頭アドレスの位置を指している。ここで、読み出しポインタとは、図５で説明した読み出しアドレスを示すデータを保持するレジスタである。
【００４４】
この状態で、たとえば、リセット信号によりＦＩＦＯバッファ１００Ａ内の全てのデータを破棄することはできない。その理由は以下のとおりである。第１に、時刻ｔ１でパケット（Ｓ１＋Ｍ−３）のデータを読み込んでいる最中である。第２に、時刻ｔ２においては、次のスライスで使用するパケット（Ｓ２＋０）がすでに受信されている。第３に一括してリセットを行なう時間の余裕が見当たらない。
【００４５】
そこで、制御回路２０７は、パケット（Ｓ１＋Ｍ−３）までを処理した後、後続のパケットを破棄するものとする。制御回路２０７は、時刻ｔ２までは通常のｒｄ＿ｂの読み出し信号を使用してデータを読み出す。制御回路２０７は、パケット管理部２０５からの情報に基づいて、未処理のパケット数が３個であることを認識する。本実施例で具体的に破棄すべき未処理のパケットは、（Ｓ１＋Ｍ−２）、（Ｓ１＋Ｍ−１）及び（Ｓ１＋Ｍ）の３個である。制御回路２０７は、時刻ｔ２において、通常の処理にしたがってｒｄ＿ｂの読み出し信号を出力する。この結果、ＦＩＦＯバッファ１００Ａの読み出しポインタは、パケット（Ｓ１＋Ｍ−２）の先頭アドレスの位置を指す。また、図２に示した読み出しデータレジスタ１０７には、パケット（Ｓ１＋Ｍ−２）の先頭データが保持される。この状態で、時刻ｔ３において、制御回路２０７は、第１のパケット破棄信号を出力する。すると、ＦＩＦＯバッファ１００Ａが図４に示した処理を行って、ＦＩＦＯバッファ１００Ａの読み出しポインタは、パケット（Ｓ１＋Ｍ−１）の先頭アドレスの位置を指す。また、図２に示した読み出しデータレジスタ１０７には、パケット（Ｓ１＋Ｍ−１）の先頭データが保持される。この状態で、時刻ｔ４において、制御回路２０７は、第２のパケット破棄信号を出力する。すると、ＦＩＦＯバッファ１００Ａが図４に示した処理を行って、ＦＩＦＯバッファ１００Ａの読み出しポインタは、パケット（Ｓ１＋Ｍ）の先頭アドレスの位置を指す。また、図２に示した読み出しデータレジスタ１０７には、パケット（Ｓ１＋Ｍ）の先頭データが保持される。この状態で、時刻ｔ５において、制御回路２０７は、第３のパケット破棄信号を出力する。すると、ＦＩＦＯバッファ１００Ａが図４に示した処理を行って、ＦＩＦＯバッファ１００Ａの読み出しポインタは、次のスライスの先頭のパケット（Ｓ２＋０）の先頭アドレスの位置を指す。また、図２に示した読み出しデータレジスタ１０７には、パケット（Ｓ２＋０）の先頭データが保持される。このように３個のパケット破棄信号を出力することにより、３個のパケット（Ｓ１＋Ｍ−２）、（Ｓ１＋Ｍ−１）及び（Ｓ１＋Ｍ）が破棄される。このように、１個のパケットを破棄するのに消費される処理サイクルは１であり、効率的にパケットを処理することができる。
【００４６】
図９は、制御回路による上述のパケット破棄方法を示す流れ図である。
【００４７】
図９のステップＳ２０１０において、制御回路２０７は、ＦＩＦＯバッファ１５０Ａから同期信号を受け取る。
【００４８】
図９のステップＳ２０２０において、制御回路２０７は、パケット管理部２０５から未処理のパケット数を受け取る。
【００４９】
図９のステップＳ２０３０において、制御回路２０７は、内部演算器からの情報を使用して仕掛かりのパケットの処理が終了したかどうか判断する。仕掛かりのパケットの処理が終了していれば、ステップＳ２０５０に進む。仕掛かりのパケットの処理が終了していなければ、ステップＳ２０４０に進む。
【００５０】
図９のステップＳ２０４０において、制御回路２０７は、所定時間待機した後、のステップＳ２０３０に進む。
【００５１】
図９のステップＳ２０５０において、制御回路２０７は、未処理のパケットの数のパケット破棄指令を出力する。
【００５２】
なお、図４のステップＳ１０２０において、読み出しアドレス指示部１０９は、２ポートメモリ１０１に、破棄の対象となる有効なエントリが存在するかどうか判断することを説明した。このステップに代えて、あるいはこのステップに加えて、図９のステップＳ２０１０とステップＳ２０１０との間で、制御回路２０７が、２ポートメモリ１０１に、破棄の対象となる有効なエントリが存在するかどうか判断し、存在する場合にはステップＳ２０２０に進み、存在しない場合には処理を終了するようにしてもよい。
【００５３】
上記の実施形態によれば、１サイクルの処理によって、ＦＩＦＯバッファのパケットを、選択的かつ効率的に破棄することができる。
【符号の説明】
【００５４】
１００…ＦＩＦＯバッファ、１０１…２ポートメモリ、１０３…書き込みデータレジスタ、１０５…書き込みアドレス指示部、１０７…読み出しデータレジスタ、１０９…読み出しアドレス指示部
【図１】
2011103554.tif 000003
【図２】
2011103554.tif 000004
【図３】
2011103554.tif 000005
【図４】
2011103554.tif 000006
【図５】
2011103554.tif 000007
【図６】
2011103554.tif 000008
【図７】
2011103554.tif 000009
【図８】
2011103554.tif 000010
【図９】
2011103554.tif 000011
【図１０】
2011103554.tif 000012
【図１１】
2011103554.tif 000013