JP3584878B2 - Packet memory management device and memory management method - Google Patents

Packet memory management device and memory management method Download PDF

Info

Publication number
JP3584878B2
JP3584878B2 JP2000376745A JP2000376745A JP3584878B2 JP 3584878 B2 JP3584878 B2 JP 3584878B2 JP 2000376745 A JP2000376745 A JP 2000376745A JP 2000376745 A JP2000376745 A JP 2000376745A JP 3584878 B2 JP3584878 B2 JP 3584878B2
Authority
JP
Japan
Prior art keywords
cluster
packet
address
secondary cluster
packet memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2000376745A
Other languages
Japanese (ja)
Other versions
JP2002185505A (en
Inventor
佳明 塩田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2000376745A priority Critical patent/JP3584878B2/en
Publication of JP2002185505A publication Critical patent/JP2002185505A/en
Application granted granted Critical
Publication of JP3584878B2 publication Critical patent/JP3584878B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Memory System (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

【0001】
【発明の属する技術分野】
本発明はパケット交換機等において用いられるパケットメモリ管理装置に関し、特に転送パフォーマンスを損なわずにメモリ空間の無駄遣いを防止したパケットメモリ管理装置およびメモリ管理方法に関する。
【0002】
【従来の技術】
パケット交換機やパケットルータは、回線から受信したパケットを一旦メモリに格納し、行き先の決定や、パケットの加工を行なう。処理の終了したパケットはメモリ(パケットバッファ)から読み出されて適切な宛先に送信される。このような処理は、パケット交換機やパケットルータ等の主に回線入力部や回線出力部で必要とされる。
【0003】
また、パケット交換機やパケットルータが扱うパケットデータは、固定長または可変長であり、通信プロトコルによって異なっている。例えばATM(非同期通信モード)では固定長のパケットを使用し、IP(インターネットプロトコル)は可変長のパケットを使用する。
【0004】
ここで、パケットを一時的に格納するパケットバッファの管理手法として、固定長パケットを扱う場合にはメモリエリアをその固定長のパケットの長さに合わせて等分して管理する方法が知られている。等分されたひとつひとつのメモリエリアをクラスタと呼ぶ。
【0005】
この方法では、とあるパケットデータはメモリエリアの連続したアドレス空間に格納されるが、連続していることからデータの書き込み時、読み出し時にバースト転送が可能となる。この、バースト転送とは、アドレス空間上の連続した区間へのアクセスの際、先頭のアドレスを指定するのみで、サイクルごとに連続した区間にアクセスできるデータ転送の手法であり、高速なアクセスが可能となる。連続していない区間群へのアクセスの場合には、区間ごとに先頭アドレスを指定する必要がある。
【0006】
一方、可変長のパケットを格納する場合のメモリ管理方法として、これまで主として二種類の方法が知られている。第一の方法は、図7の模式説明図に示すように、使用する通信プロトコルで規定された最大パケット長の単位でパケットメモリエリアを等分してクラスタを決め、このクラスタ単位でメモリを管理し、各クラスタにそれぞれ1個のパケットを順次格納する方法である。この方法の場合、パケットデータのアドレス空間上での連続性は保証されて、バースト転送が可能である。しかし、格納するパケットの長さがクラスタに対して短い場合には、メモリエリアを無駄遣いすることになるという問題がある。この傾向は、クラスタのサイズが長くなればなるほど、パケット長が短くなればなるほど顕著になる。
【0007】
第二の方法は、図8の模式説明図に示すように、サイズの短いクラスタでメモリエリアを等分してこのクラスタ単位でメモリを管理し、1つのクラスタ長を超える長さを持つパケットデータについては複数のクラスタに分割して格納する方法である。ここでクラスタ間は、ポインタによるリンクリストで接続される。
【0008】
この方法は、前述の方法に比べてパケットの格納に関してはメモリエリアを効率的に使用できる。然しながら、データが複数クラスタに分散配置されることから、データのバースト転送はクラスタ単位に制限され、転送のパフォーマンスに影響を与えるという問題がある。
【0009】
なお、異なるパケットサイズのパケットをメモリ効率よく扱うための提案が、特開平8−139752号公報に開示されている。この公報の開示する「バッファ管理装置」は、一定のバッファ回路(前述のメモリに相当)のパケットを管理するバッファテーブルとして、ショートパケットを管理するための第1のバッファテーブルと、ロングパケットを管理するための第2のバッファテーブルとを備え、ショートパケットのバッファ回路への格納には第1のバッファテーブルを用いて格納し、ロングパケットのバッファ回路への格納には第2のバッファテーブルを用いて格納するようにしている。これにより、サイズの異なるパケットが与えられた場合でも、バッファ回路上にサイズが異なるため未使用となってしまう空きエリア(歯抜け)が発生せず、限られたバッファ回路を効率的に使用できる。
【0010】
また、米国特許第6,088,745 号に開示のデータ伝送システムは、プロトコルや長さ等のパケットの性質に応じた異なるバッファポインタリスト群を用いてバッファを管理することで、サイズの異なるパケットが与えられた場合でも、連続した一定長バッファに格納するようになっている。これによりバッファメモリの効率的な使用と格納パケットデータの連続性確保が併せ達成されている。
【0011】
【発明が解決しようとする課題】
本発明の目的も、可変長のパケットを格納する際のメモリ空間での連続性を保証して良好な転送パフォーマンスが得られ、同時にメモリ空間の無駄遣いも防止したパケットメモリ管理装置及びメモリ管理方法を提供することである。
【0012】
【課題を解決するための手段】
課題解決のため、本発明ではパケットメモリ管理装置を、入力するパケットの長さ毎に対応づけてグループ化され、パケット長に応じたグループ毎に決まった等長の複数のサブクラスタに分割して管理される多数の固定長クラスタに分割されたパケットメモリと、入力したパケットをその長さに応じて決まる前記クラスタの前記サブクラスタに連続的に格納するとともに格納されたパケットを必要に応じて取り出すパケット処理部とを備えた構成とする。各パケットを適した長さのサブクラスタに格納することによりパケットメモリを効率的に使用でき、また連続的に格納することで良好な転送パフォーマンスが得られる。
【0013】
更に、前記パケットメモリの空きクラスタを指示するアドレスを記憶するための一次クラスタテーブルを管理する一次クラスタテーブル制御部と、前記パケットメモリの使用中クラスタを指示するアドレス並びに使用中クラスタ内の使用サブクラスタを指示するアドレスを記憶するための二次クラスタテーブルを管理する二次クラスタテーブル制御部と、前記二次クラスタテーブルの空き領域のアドレスを記憶するための二次クラスタ管理テーブルを管理する二次クラスタ管理部と、入力されたパケットを一時記憶するとともに記憶されたパケットをその長さに応じて分類し、前記一次クラスタテーブル制御部および前記二次クラスタテーブル制御部ならびに前記二次クラスタ管理部からの情報に基づいて、前記分類された入力パケットを分類結果に応じて前記パケットメモリの所定サブクラスタに連続して書き込むパケット一時格納部とを備えた構成とする。これにより適切なパケットメモリ管理が行える。
【0014】
前記一次クラスタテーブルの要素は、パケットメモリ2上の未使用クラスタの先頭アドレスを示すフィールド7aと次の要素へのポインタ7bから構成されて各要素がリンクリストで接続されており、前記二次クラスタテーブルは、複数個の二次クラスタに等分され、個々の二次クラスタは前記パケットメモリ中の特定クラスタの先頭アドレスを示すフィールドと当該クラスタ中の全てのサブクラスタにパケットが書き込まれていない場合に次にパケットを書き込むべきアドレスを示すカレントサブクラスタアドレスフィールドとクラスタ中の転送待ちのパケットの数を示す転送待ちパケット数フィールドから構成され、前記二次クラスタ管理テーブルの要素は、二次クラスタテーブル上の未使用二次クラスタの先頭アドレスを示すフィールドと次の要素へのポインタから構成され、リンクリストで接続されている構成とすることにより、所望の動作を達成できる。
【0015】
前記グループ化の分類数は、パケット通信のプロトコルやトラヒックの傾向に対応して決めるようにしても良く、より効率的なパケットメモリ管理が行える。
【0016】
また、本発明方法は、パケットメモリをグループ毎に決まった等しい長さのクラスタに分割するとともに個々のクラスタを指示するアドレスを一次クラスタテーブルに記憶する過程と、前記パケットメモリの使用中クラスタを指示するアドレス並びに使用中クラスタ内の使用サブクラスタを指示するアドレスを二次クラスタテーブルに記憶する過程と、前記二次クラスタテーブルの空き領域のアドレスを二次クラスタ管理テーブルに記憶する過程と、入力されたパケットを一時記憶するとともに記憶されたパケットをその長さに応じてグループ化する過程と、当該パケットを、前記一次クラスタテーブルおよび前記二次クラスタテーブルの情報に基づいてパケットメモリをグループ毎に決まった等しい長さに分割したサブクラスタに、連続的に格納するとともに前記一次クラスタテーブルおよび前記二次クラスタテーブル並びに二次クラスタ管理テーブルの内容を調整する過程と、前記各クラスタに格納されたパケットを取り出すとともに前記一次クラスタテーブルおよび前記二次クラスタテーブル並びに二次クラスタ管理テーブルの内容を調整する過程とを含み構成される。パケットメモリの効率的使用と、良好な転送パフォーマンスが達成できる。
【0017】
前記一次クラスタテーブルの個々の要素は、パケットメモリ2上の未使用クラスタの先頭アドレスを示すフィールド7aと次の要素へのポインタ7bからなり各要素がリンクリストで接続されており、前記二次クラスタテーブルは、複数個の二次クラスタに等分され、個々の二次クラスタは前記パケットメモリ中の特定クラスタの先頭アドレスを示すフィールドと当該クラスタ中の全てのサブクラスタにパケットが書き込まれていない場合に次にパケットを書き込むべきアドレスを示すカレントサブクラスタアドレスフィールドとクラスタ中の転送待ちのパケットの数を示す転送待ちパケット数フィールドからなり、前記二次クラスタ管理テーブルの要素は、二次クラスタテーブル上の未使用二次クラスタの先頭アドレスを示すフィールドと次の要素へのポインタからなりリンクリストで接続された構成とすることができる。
【0018】
【発明の実施の形態】
〔実施例〕以下、実施例を挙げ図面を参照して本発明を詳細に説明する。図1は、本発明の一実施例であるパケットメモリ管理装置の構成を示すブロック図である。
【0019】
図1のパケットメモリ管理装置100 は、入力回線に接続されたパケット一時格納部1、これに後続するパケットメモリ2、及びFIFO;6、前記パケットメモリ及びFIFO;6に接続されたパケット処理部10、前記パケット一時格納部1及びFIFO;6並びにパケット処理部10に接続された二次クラスタテーブル制御部4、この二次クラスタテーブル制御部4と接続された一時クラスタテーブル制御部3及び二次クラスタ管理部5並びに二次クラスタテーブル8、前記一時クラスタテーブル制御部3と接続された一時クラスタテーブル7、前記二次クラスタ管理部5と接続された二次クラスタ管理テーブル9とにより構成されている。
【0020】
パケット一時格納部1は回線方向から受信するパケットを、パケットデータの全てを受信するまで一時的に蓄えるとともに、二次クラスタテーブル制御部4と通信を行なってパケットを書き込むアドレスを取得し、パケットメモリ2にパケットデータを書き込む。パケットメモリ2は書き込まれたパケットをFIFO;6によって読み出されるまで格納する。一次クラスタテーブル制御部3は、論理的に複数個のクラスタに等分したパケットメモリ2中の空きクラスタを、一次クラスタテーブル7を用いて制御、管理する。
【0021】
二次クラスタテーブル制御部4は、パケット一時格納部1が受信したパケットの長さから、パケットが属するグループを決定し、必要であれば一次クラスタテーブル制御部3と通信を行って当該パケットを書き込むべきパケットメモリ2中のアドレスを決定し、パケット一時格納部1に通知するとともに、二次クラスタテーブル8上の情報を更新する。必要であれば二次クラスタ管理部5との通信を行う。
【0022】
二次クラスタテーブル8は、二次クラスタテーブル制御部4と連携して使用中のクラスタの情報の管理を行う。二次クラスタ管理部5は、二次クラスタ管理テーブル9を用いて二次クラスタテーブル8上の空き二次クラスタの管理を行う。
【0023】
図2は、本発明の実施例におけるパケットメモリ2の論理的構成を示す説明図である。パケットメモリ2は論理的に複数個の等長のクラスタに分割されて制御・管理が行われる。個々のクラスタはさらに、それぞれ複数個のサブクラスタに等分されて制御・管理される。1個のサブクラスタには1個のパケットが格納される。1個のクラスタ中のサブクラスタの数(従ってサブクラスタの長さ)は、全クラスタで一定ではなくクラスタのグループ毎によって異ならせてある。
【0024】
図3は、グループとサブクラスタ分割の例を示し、サブクラスタの数が特定のグループによって異なる様子を説明する図である。例えば、グループAのクラスタは、3つのサブクラスタに等分されており、グループBのクラスタは2つのサブクラスタに等分されている。受信したパケットは、適宜どれかのグループに属するクラスタに対応付けられそのサブクラスタに格納される。どのグループに対応するかは、パケットの長さによって決定される。
【0025】
具体的には、例えば64バイト以下のパケットはグループA、65〜128バイトのパケットはグループBというふうに対応付けていき、当該装置での処理が想定される最長のパケットが属するグループまでをあらかじめ決定しておく。
【0026】
なお、1個のクラスタの全体長については、装置が扱うなかで最長のパケットが属するグループのパケットを複数格納できる長さに設定しておくことで、最長よりもやや短いパケットが属するグループも長さの等しい1種類のクラスタに効率的に格納することができ好適である。
【0027】
次に、図4は、本発明の実施例における一次クラスタテーブル7の構成を示す説明図である。一次クラスタテーブル7は、パケットメモリ2中の空きクラスタ領域の管理を行う。一次クラスタテーブル7の各要素は、パケットメモリ2上の未使用クラスタの先頭アドレスを示すフィールド7aと次の要素へのポインタ7bから構成され、リンクリストで接続される。
【0028】
図5は、本発明の実施例における二次クラスタテーブル8の構成を示す説明図である。二次クラスタテーブル8は、使用中のクラスタを管理するために用いられる。二次クラスタテーブル8は論理的に複数個の二次クラスタに等分されている。個々の二次クラスタはパケットメモリ2中の特定クラスタの先頭アドレスを示すフィールド8a、当該クラスタ中の全てのサブクラスタにパケットが書き込まれていない場合に次にパケットを書き込むべきアドレスを示すカレントサブクラスタアドレスフィールド8b、およびクラスタ中の転送待ちのパケットの数を示す転送待ちパケット数フィールド8cから構成される。
【0029】
図6は、本発明の実施例における二次クラスタ管理テーブル9の構成を示す説明図である。二次クラスタ管理テーブル9は、二次クラスタテーブル8の空き領域の管理を行う。各要素は、二次クラスタテーブル8上の未使用二次クラスタの先頭アドレスを示すフィールド9aと次の要素へのポインタ9bから構成され、リンクリストで接続される。
【0030】
続いて、図1の本実施例装置の動作について、前掲各図を参照して説明する。パケット一時格納部1は、回線方向からパケットの受信を開始すると、そのパケットデータの全てを受信するまでパケットデータを保持しながら待機する。パケットの受信が完了すると、パケット一時格納部1は、二次クラスタテーブル制御部4へ受信したパケットの長さを通知する。二次クラスタテーブル制御部4は、パケットの長さから、そのパケットが属するグループを決定する。
【0031】
装置の稼働初期状態で、初めてパケットを受信した場合には、二次クラスタテーブル制御部4は、一次クラスタテーブル制御部3に未使用クラスタ情報を要求するとともに二次クラスタ管理部5へ二次クラスタを要求する。一次クラスタテーブル制御部3は一次クラスタテーブル7からクラスタをハントし(指定し)、二次クラスタテーブル制御部4へ送信する。二次クラスタ管理部5は、二次クラスタをハントし、二次クラスタテーブル制御部4へ送信する。
【0032】
続いて二次クラスタテーブル制御部4は、取得した二次クラスタにクラスタ先頭アドレス、クラスタ先頭アドレス+1サブクラス(グループに応じて決定する)のアドレスを書き込むとともに、転送待ちパケットフィールドに1を書き込む。併行して、パケット一時格納部1にパケットを書き込むサブクラスタの先頭アドレス(初期状態ではクラスタの先頭アドレス)と、二次クラスタの先頭アドレスを通知する。
【0033】
この時点では、被指定クラスタにはまだパケットが書き込まれていないサブクラスタが複数存在するが(正確には、また1パケットも書き込まれていない)、二次クラスタテーブル制御部4は、このようなまだパケットの書き込みが可能なクラスタに対し、対応する二次クラスタの先頭アドレスをグループ数分だけ保持する。同一グループで同時に保持される二次クラスタの先頭アドレスはひとつである。これにより、次に受信するパケットを、どのサブクラスタに書き込むべきかをすぐに判定することができる。
【0034】
同一クラスタ中の全てのサブクラスタにパケットデータが書き込まれると、該当する二次クラスタの先頭アドレスは破棄される。なお、同一クラスタ中の全てのサブクラスタにパケットデータが書き込まれると、該当する二次クラスタ中のカレントサブクラスタアドレスフィールドには、書き込みが終了したことを示す値(ここではオール1とする)が書き込まれる。
【0035】
二次クラスタテーブル制御部4から、受信し保持しているパケットを書き込むべきクラスタのアドレスを取得したパケット一時格納部1は、そのアドレスにパケットを書き込む。この際、パケット一時格納部1は、二次クラスタテーブル制御部4から取得した二次クラスタ先頭アドレスと、自身が保持していたパケット長情報とをパケットの先頭に付加して書き込む。続いてパケット処理部10にパケットの受信を通知する。
【0036】
パケット処理部10は、パケットメモリ2から該当パケットのプロトコルヘッダを読み出してパケットの行き先を決定し、パケットが格納されたサブクラスタの先頭アドレスをFIFO;6に登録する。
【0037】
FIFO;6は、登録されたパケットをパケットメモリ2からパケット長情報に書かれた長さのパケットデータを読み出してパケットとして指定の行き先へ送信する。この際、パケットの先頭に追加されていた二次クラスタ先頭アドレスについては、行き先には送信せず、二次クラスタテーブル制御部4に送信する。
【0038】
二次クラスタテーブル制御部4は、受信した二次クラスタ先頭アドレスをキーとして二次クラスタテーブル8の該当二次クラスタにアクセスし、転送待ちパケット数フィールドの値をデクリメントする。この際、転送待ちパケット数フィールドの値が0となり、かつカレントサブクラスタアドレスの値がオール1である場合には、該当クラスタは一次クラスタテーブル制御部3へ返却される(空きである旨通知される)。同時に二次クラスタも二次クラスタ管理部5に返却される。
【0039】
なお、場合によっては、ひとつのクラスタの全てのサブクラスタにパケットデータが書き込まれる前に、そのクラスタからパケットが送信され、その結果として二次クラスタ中の転送待ちパケット数フィールドの値が0となる場合があるが、この場合にはクラスタは返却されない。
【0040】
上述説明中のグループの個数については、通信のプロトコルやトラヒックの傾向に適合させて適切な数に決めておくことで、より効率的にメモリエリアを利用できる。
【0041】
【発明の効果】
本発明によればパケットメモリを固定長のクラスタに等分し、さらに各クラスタをパケット長に合わせて複数のサブクラスタに等分し、長さによってパケットを複数のグループに分類し、同一グループに属するパケットを同一のクラスタ中のサブクラスタに格納するので、パケットデータがメモリに効率的に格納されると同時に、データがメモリ空間上の連続した位置に格納される結果、転送パフォーマンスが良く、且つメモリ空間の無駄遣いを防止したパケットメモリ管理が行えるとの効果がある。
【図面の簡単な説明】
【図1】本発明の一実施例であるパケットメモリ管理装置の構成を示すブロック図である。
【図2】実施例におけるパケットメモリ2の論理的構成を示す説明図である。
【図3】実施例に係るグループとサブクラスタ分割の説明図である。
【図4】実施例に係る一次クラスタテーブルの構成を示す説明図である。
【図5】実施例に係る二次クラスタテーブルの構成を示す説明図である。
【図6】実施例に係る二次クラスタ管理テーブルの構成を示す説明図である。
【図7】従来のパケットメモリ管理例を示す模式説明図である。
【図8】従来のパケットメモリ管理例を示す模式説明図である。
【符号の説明】
1…パケット一時格納部
2…パケットメモリ
3…一次クラスタテーブル制御部
4…二次クラスタテーブル制御部
5…二次クラスタ管理部
6…FIFO
7…一次クラスタテーブル
8…二次クラスタテーブル
9…二次クラスタ管理テーブル
10…パケット処理部
100 …パケットメモリ管理装置
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a packet memory management device used in a packet switch and the like, and more particularly, to a packet memory management device and a memory management method that prevent waste of memory space without impairing transfer performance.
[0002]
[Prior art]
A packet switch or a packet router temporarily stores a packet received from a line in a memory, determines a destination, and processes the packet. The processed packet is read from the memory (packet buffer) and transmitted to an appropriate destination. Such processing is required mainly at a line input unit and a line output unit such as a packet switch and a packet router.
[0003]
The packet data handled by the packet switch and the packet router is fixed length or variable length, and differs depending on the communication protocol. For example, ATM (Asynchronous Communication Mode) uses fixed-length packets, and IP (Internet Protocol) uses variable-length packets.
[0004]
Here, as a method of managing a packet buffer for temporarily storing a packet, a method of managing a memory area by equally dividing a memory area in accordance with the length of the fixed-length packet when handling a fixed-length packet is known. I have. Each equally divided memory area is called a cluster.
[0005]
According to this method, certain packet data is stored in a continuous address space of the memory area, but since it is continuous, burst transfer can be performed at the time of writing and reading data. This burst transfer is a data transfer method that allows access to consecutive sections in each cycle only by specifying the first address when accessing consecutive sections in the address space, enabling high-speed access It becomes. When accessing a group of sections that are not continuous, it is necessary to specify a start address for each section.
[0006]
On the other hand, as a memory management method for storing variable-length packets, two types of methods have been known so far. In the first method, as shown in the schematic explanatory diagram of FIG. 7, a cluster is determined by equally dividing a packet memory area in units of a maximum packet length specified by a communication protocol to be used, and a memory is managed in units of the cluster. In this method, one packet is sequentially stored in each cluster. In this method, continuity of the packet data in the address space is guaranteed, and burst transfer is possible. However, when the length of the stored packet is shorter than the cluster, there is a problem that the memory area is wasted. This tendency becomes more conspicuous as the size of the cluster increases and as the packet length decreases.
[0007]
In the second method, as shown in the schematic diagram of FIG. 8, the memory area is equally divided into short clusters, and the memory is managed in units of clusters. Is a method of dividing into a plurality of clusters and storing them. Here, the clusters are connected by a link list using a pointer.
[0008]
This method can use the memory area more efficiently for storing the packet than the above-described method. However, since data is distributed in a plurality of clusters, burst transfer of data is limited in units of clusters, which has a problem that transfer performance is affected.
[0009]
Note that a proposal for efficiently handling packets of different packet sizes is disclosed in Japanese Patent Application Laid-Open No. 8-1399752. The “buffer management device” disclosed in this publication includes a first buffer table for managing short packets and a long buffer for managing packets of a fixed buffer circuit (corresponding to the aforementioned memory). And a second buffer table for storing short packets in the buffer circuit using the first buffer table, and storing long packets in the buffer circuit using the second buffer table. And store it. As a result, even when packets having different sizes are given, no empty area (missing) which is unused due to the different size on the buffer circuit does not occur, and the limited buffer circuit can be used efficiently. .
[0010]
The data transmission system disclosed in U.S. Pat. No. 6,088,745 manages buffers using different buffer pointer lists according to the characteristics of the packet such as the protocol and the length, so that packets of different sizes can be managed. Is given, the data is stored in a continuous buffer having a constant length. This achieves both efficient use of the buffer memory and continuity of the stored packet data.
[0011]
[Problems to be solved by the invention]
It is another object of the present invention to provide a packet memory management device and a memory management method which ensure continuity in a memory space when storing variable-length packets to obtain good transfer performance, and at the same time prevent waste of the memory space. To provide.
[0012]
[Means for Solving the Problems]
In order to solve the problem, the present invention divides the packet memory management device into a plurality of equal-length sub-clusters that are grouped in correspondence with the length of input packets and are determined for each group according to the packet length. A packet memory divided into a number of fixed-length clusters to be managed, and input packets continuously stored in the sub-clusters of the cluster determined according to the length, and the stored packets are extracted as necessary. And a packet processing unit. Storing each packet in a subcluster of an appropriate length allows the packet memory to be used efficiently, and storing it continuously provides good transfer performance.
[0013]
A primary cluster table controller for managing a primary cluster table for storing an address indicating a free cluster in the packet memory; an address indicating a used cluster of the packet memory; and a used subcluster in the used cluster. Cluster table control unit for managing a secondary cluster table for storing an address designating a secondary cluster table, and a secondary cluster for managing a secondary cluster management table for storing an address of a free area of the secondary cluster table The management unit, temporarily stores the input packet and classifies the stored packet according to its length, from the primary cluster table control unit and the secondary cluster table control unit and from the secondary cluster management unit. Based on the information, the classified input packet is separated. Configuration to which a temporary storage unit packets written continuously in a predetermined sub cluster of the packet memory in accordance with the result. Thereby, appropriate packet memory management can be performed.
[0014]
The element of the primary cluster table is composed of a field 7a indicating the head address of an unused cluster on the packet memory 2 and a pointer 7b to the next element, and each element is connected by a link list. The table is equally divided into a plurality of secondary clusters, and each secondary cluster has a field indicating the start address of a specific cluster in the packet memory and a case where a packet is not written in all subclusters in the cluster. The secondary cluster management table includes a current sub-cluster address field indicating an address to which a packet is to be written next, and a transfer waiting packet number field indicating the number of packets waiting to be transferred in the cluster. Field indicating the top address of the unused secondary cluster above And consists pointer to the next element, by a configuration that is connected in a linked list, you can achieve the desired operation.
[0015]
The number of groups for the grouping may be determined according to the protocol of packet communication or the tendency of traffic, so that more efficient packet memory management can be performed.
[0016]
In addition, the method of the present invention includes a step of dividing the packet memory into clusters of equal length determined for each group and storing an address indicating each cluster in a primary cluster table, and indicating a cluster in use of the packet memory. A step of storing, in a secondary cluster table, an address to be used and an address indicating a used sub-cluster in a used cluster; and a step of storing an address of a free area of the secondary cluster table in a secondary cluster management table. Temporarily storing the stored packets and grouping the stored packets according to their lengths; and determining the packet memory for each group based on the information in the primary cluster table and the secondary cluster table. Subclusters of equal length Storing and adjusting the contents of the primary cluster table, the secondary cluster table, and the secondary cluster management table; extracting the packets stored in each of the clusters; and extracting the packets from the primary cluster table, the secondary cluster table, and the secondary cluster table. Adjusting the contents of the next cluster management table. Efficient use of packet memory and good transfer performance can be achieved.
[0017]
Each element of the primary cluster table comprises a field 7a indicating the head address of an unused cluster on the packet memory 2 and a pointer 7b to the next element, and each element is connected by a link list. The table is equally divided into a plurality of secondary clusters, and each secondary cluster has a field indicating the start address of a specific cluster in the packet memory and a case where a packet is not written in all subclusters in the cluster. A current subcluster address field indicating an address to which a packet is to be written next, and a transfer waiting packet number field indicating the number of packets waiting to be transferred in the cluster. The elements of the secondary cluster management table are defined in the secondary cluster table. Field indicating the start address of the unused secondary cluster of Can be pointers to elements become connected to each other by a linked list.
[0018]
BEST MODE FOR CARRYING OUT THE INVENTION
[Embodiments] The present invention will be described in detail below with reference to the drawings and embodiments. FIG. 1 is a block diagram showing a configuration of a packet memory management device according to one embodiment of the present invention.
[0019]
The packet memory management device 100 shown in FIG. 1 includes a packet temporary storage unit 1 connected to an input line, a packet memory 2 and a subsequent FIFO memory 6, and a packet processing unit 10 connected to the packet memory and FIFO; , The packet temporary storage unit 1 and the FIFO; 6 and the secondary cluster table control unit 4 connected to the packet processing unit 10, the temporary cluster table control unit 3 and the secondary cluster connected to the secondary cluster table control unit 4. It comprises a management unit 5 and a secondary cluster table 8, a temporary cluster table 7 connected to the temporary cluster table control unit 3, and a secondary cluster management table 9 connected to the secondary cluster management unit 5.
[0020]
The packet temporary storage unit 1 temporarily stores a packet received from the line direction until all the packet data is received, and communicates with the secondary cluster table control unit 4 to obtain an address to which the packet is to be written. 2 is written in the packet data. The packet memory 2 stores the written packet until it is read out by the FIFO; The primary cluster table control unit 3 controls and manages free clusters in the packet memory 2 logically divided into a plurality of clusters by using the primary cluster table 7.
[0021]
The secondary cluster table control unit 4 determines the group to which the packet belongs from the length of the packet received by the packet temporary storage unit 1, and if necessary, communicates with the primary cluster table control unit 3 to write the packet. The address in the packet memory 2 to be determined is determined, notified to the packet temporary storage unit 1, and the information on the secondary cluster table 8 is updated. Communication with the secondary cluster management unit 5 is performed if necessary.
[0022]
The secondary cluster table 8 manages information of the cluster in use in cooperation with the secondary cluster table control unit 4. The secondary cluster management unit 5 manages an empty secondary cluster on the secondary cluster table 8 using the secondary cluster management table 9.
[0023]
FIG. 2 is an explanatory diagram showing a logical configuration of the packet memory 2 according to the embodiment of the present invention. The packet memory 2 is logically divided into a plurality of equal-length clusters for control and management. Each cluster is further divided into a plurality of sub-clusters and controlled and managed. One packet is stored in one subcluster. The number of sub-clusters in one cluster (therefore, the length of the sub-cluster) is not constant in all the clusters, but is different for each cluster group.
[0024]
FIG. 3 is a diagram illustrating an example of group and sub-cluster division, illustrating how the number of sub-clusters differs depending on a specific group. For example, the cluster of group A is equally divided into three sub-clusters, and the cluster of group B is equally divided into two sub-clusters. The received packet is appropriately associated with a cluster belonging to one of the groups and stored in the sub-cluster. Which group it corresponds to is determined by the length of the packet.
[0025]
Specifically, for example, a packet of 64 bytes or less is associated with a group A, and a packet of 65 to 128 bytes is associated with a group B. Decide.
[0026]
Note that the entire length of one cluster is set to a length that can store a plurality of packets of the group to which the longest packet belongs in the device, so that the group to which a packet that is slightly shorter than the longest belongs also has a long length. This is preferable because it can be efficiently stored in one type of cluster having the same size.
[0027]
Next, FIG. 4 is an explanatory diagram showing the configuration of the primary cluster table 7 in the embodiment of the present invention. The primary cluster table 7 manages a free cluster area in the packet memory 2. Each element of the primary cluster table 7 includes a field 7a indicating the head address of an unused cluster on the packet memory 2 and a pointer 7b to the next element, and is connected by a link list.
[0028]
FIG. 5 is an explanatory diagram showing the configuration of the secondary cluster table 8 in the embodiment of the present invention. The secondary cluster table 8 is used for managing a cluster in use. The secondary cluster table 8 is logically equally divided into a plurality of secondary clusters. Each of the secondary clusters has a field 8a indicating the head address of a specific cluster in the packet memory 2, and a current subcluster indicating an address to which a packet should be written next when no packet has been written in all subclusters in the cluster. It comprises an address field 8b and a transfer waiting packet number field 8c indicating the number of packets waiting to be transferred in the cluster.
[0029]
FIG. 6 is an explanatory diagram showing the configuration of the secondary cluster management table 9 in the embodiment of the present invention. The secondary cluster management table 9 manages the free area of the secondary cluster table 8. Each element is composed of a field 9a indicating the head address of an unused secondary cluster on the secondary cluster table 8 and a pointer 9b to the next element, and is connected by a link list.
[0030]
Next, the operation of the apparatus of this embodiment shown in FIG. 1 will be described with reference to the above-mentioned respective drawings. When packet reception is started from the line direction, the packet temporary storage unit 1 waits while holding the packet data until all the packet data is received. When the reception of the packet is completed, the temporary packet storage unit 1 notifies the secondary cluster table control unit 4 of the length of the received packet. The secondary cluster table control unit 4 determines the group to which the packet belongs from the length of the packet.
[0031]
When a packet is received for the first time in the initial operation state of the device, the secondary cluster table control unit 4 requests the unused cluster information from the primary cluster table control unit 3 and sends the secondary cluster management unit 5 the secondary cluster information. Request. The primary cluster table control unit 3 hunts (designates) a cluster from the primary cluster table 7 and transmits it to the secondary cluster table control unit 4. The secondary cluster management unit 5 hunts the secondary cluster and sends it to the secondary cluster table control unit 4.
[0032]
Subsequently, the secondary cluster table control unit 4 writes the cluster start address, the cluster start address + 1, and the address of the subclass (determined according to the group) in the obtained secondary cluster, and writes 1 in the transfer waiting packet field. At the same time, the start address of the sub-cluster (in the initial state, the start address of the cluster) and the start address of the secondary cluster to which the packet is written in the packet temporary storage unit 1 are notified.
[0033]
At this point, there are a plurality of sub-clusters in which packets have not yet been written in the designated cluster (accurately, no packet has been written yet), but the secondary cluster table control unit 4 For a cluster to which a packet can be written, the start address of the corresponding secondary cluster is held for the number of groups. The start address of the secondary cluster held simultaneously in the same group is one. As a result, it is possible to immediately determine to which sub-cluster the packet to be received next should be written.
[0034]
When the packet data is written in all the sub-clusters in the same cluster, the head address of the corresponding secondary cluster is discarded. When the packet data is written to all the sub-clusters in the same cluster, a value indicating that the writing has been completed (here, all 1s) is set in the current sub-cluster address field in the corresponding secondary cluster. Written.
[0035]
The packet temporary storage unit 1 that has obtained the address of the cluster to which the received and held packet is to be written from the secondary cluster table control unit 4 writes the packet to that address. At this time, the packet temporary storage unit 1 writes the secondary cluster head address acquired from the secondary cluster table control unit 4 and the packet length information held by itself, at the head of the packet. Subsequently, the packet processing unit 10 is notified of the reception of the packet.
[0036]
The packet processing unit 10 reads the protocol header of the packet from the packet memory 2 to determine the destination of the packet, and registers the start address of the subcluster in which the packet is stored in the FIFO;
[0037]
The FIFO 6 reads the registered packet from the packet memory 2 and reads out the packet data having the length described in the packet length information, and transmits the packet to the designated destination as a packet. At this time, the secondary cluster head address added to the head of the packet is not transmitted to the destination but is transmitted to the secondary cluster table control unit 4.
[0038]
The secondary cluster table control unit 4 accesses the corresponding secondary cluster of the secondary cluster table 8 using the received secondary cluster head address as a key, and decrements the value of the transfer waiting packet number field. At this time, if the value of the transfer waiting packet number field is 0 and the value of the current sub-cluster address is all 1, the corresponding cluster is returned to the primary cluster table control unit 3 (notified that it is empty). ). At the same time, the secondary cluster is also returned to the secondary cluster management unit 5.
[0039]
In some cases, before the packet data is written to all the sub-clusters of one cluster, the packet is transmitted from that cluster, and as a result, the value of the transfer queue packet number field in the secondary cluster becomes 0. In some cases, the cluster is not returned.
[0040]
The memory area can be used more efficiently by determining the number of groups in the above description to an appropriate number in accordance with the communication protocol and the tendency of traffic.
[0041]
【The invention's effect】
According to the present invention, the packet memory is equally divided into fixed-length clusters, each cluster is further equally divided into a plurality of subclusters according to the packet length, and the packets are classified into a plurality of groups according to the length, and are divided into the same group. Since the belonging packet is stored in the sub-cluster in the same cluster, the packet data is efficiently stored in the memory, and at the same time, the data is stored in a continuous position in the memory space. This has the effect that packet memory management can be performed while preventing waste of memory space.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a configuration of a packet memory management device according to an embodiment of the present invention.
FIG. 2 is an explanatory diagram showing a logical configuration of a packet memory 2 in the embodiment.
FIG. 3 is an explanatory diagram of group and sub-cluster division according to the embodiment.
FIG. 4 is an explanatory diagram illustrating a configuration of a primary cluster table according to the embodiment;
FIG. 5 is an explanatory diagram illustrating a configuration of a secondary cluster table according to the embodiment;
FIG. 6 is an explanatory diagram illustrating a configuration of a secondary cluster management table according to the embodiment;
FIG. 7 is a schematic explanatory view showing a conventional packet memory management example.
FIG. 8 is a schematic explanatory view showing a conventional example of packet memory management.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1 ... Packet temporary storage part 2 ... Packet memory 3 ... Primary cluster table control part 4 ... Secondary cluster table control part 5 ... Secondary cluster management part 6 ... FIFO
7 Primary cluster table 8 Secondary cluster table 9 Secondary cluster management table 10 Packet processing unit 100 Packet memory management device

Claims (5)

パケット交換に用いるパケットメモリ管理装置であって、
入力するパケットの長さ毎に対応づけてグループ化され、パケット長に応じたグループ毎に決まった等長の複数のサブクラスタに分割して管理される多数の固定長クラスタに分割されたパケットメモリと、
入力したパケットをその長さに応じて決まる前記クラスタの前記サブクラスタに連続的に格納するとともに格納されたパケットを必要に応じて取り出すパケット処理部と、
前記パケットメモリの空きクラスタを指示するアドレスを記憶するための一次クラスタテーブルを管理する一次クラスタテーブル制御部と、
前記パケットメモリの使用中クラスタを指示するアドレス並びに使用中クラスタ内の使用サブクラスタを指示するアドレスを記憶するための二次クラスタテーブルを管理する二次クラスタテーブル制御部と、
前記二次クラスタテーブルの空き領域のアドレスを記憶するための二次クラスタ管理テーブルを管理する二次クラスタ管理部と、
入力されたパケットを一時記憶するとともに記憶されたパケットをその長さに応じて分類し、前記一次クラスタテーブル制御部および前記二次クラスタテーブル制御部ならびに前記二次クラスタ管理部からの情報に基づいて、前記分類された入力パケットを分類結果に応じて前記パケットメモリの所定サブクラスタに連続して書き込むパケット一時格納部と、
を含み構成されたことを特徴とするパケットメモリ管理装置。
A packet memory management device used for packet switching,
Packet memory divided into a number of fixed-length clusters that are grouped according to the length of the input packet and that are divided into a plurality of equal-length subclusters that are determined for each group according to the packet length and managed When,
A packet processing unit that continuously stores the input packet in the sub-cluster of the cluster determined according to the length thereof and extracts the stored packet as needed;
A primary cluster table control unit that manages a primary cluster table for storing an address indicating an empty cluster in the packet memory;
A secondary cluster table control unit that manages a secondary cluster table for storing an address indicating a used cluster of the packet memory and an address indicating a used sub-cluster in the used cluster;
A secondary cluster management unit that manages a secondary cluster management table for storing addresses of free areas of the secondary cluster table;
While temporarily storing the input packet and classifying the stored packet according to its length, based on information from the primary cluster table control unit and the secondary cluster table control unit and the secondary cluster management unit A packet temporary storage unit that continuously writes the classified input packet to a predetermined sub-cluster of the packet memory according to the classification result;
A packet memory management device comprising:
前記一次クラスタテーブルの要素は、パケットメモリ2上の未使用クラスタの先頭アドレスを示すフィールド7aと次の要素へのポインタ7bから構成されて各要素がリンクリストで接続されており、
前記二次クラスタテーブルは、複数個の二次クラスタに等分され、個々の二次クラスタは前記パケットメモリ中の特定クラスタの先頭アドレスを示すフィールドと当該クラスタ中の全てのサブクラスタにパケットが書き込まれていない場合に次にパケットを書き込むべきアドレスを示すカレントサブクラスタアドレスフィールドとクラスタ中の転送待ちのパケットの数を示す転送待ちパケット数フィールドから構成され、
前記二次クラスタ管理テーブルの要素は、二次クラスタテーブル上の未使用二次クラスタの先頭アドレスを示すフィールドと次の要素へのポインタから構成され、リンクリストで接続されている、ことを特徴とする請求項に記載のパケットメモリ管理装置。
The elements of the primary cluster table are composed of a field 7a indicating a head address of an unused cluster on the packet memory 2 and a pointer 7b to the next element, and each element is connected by a link list.
The secondary cluster table is equally divided into a plurality of secondary clusters, and each secondary cluster is written with a field indicating the start address of a specific cluster in the packet memory and all subclusters in the cluster. If it is not, a current sub-cluster address field indicating the address to which the packet is to be written next, and a transfer waiting packet number field indicating the number of packets waiting to be transferred in the cluster,
The element of the secondary cluster management table is composed of a field indicating a head address of an unused secondary cluster on the secondary cluster table and a pointer to the next element, and is connected by a link list. The packet memory management device according to claim 1 .
前記グループ化の分類数は、パケット通信のプロトコルやトラヒックの傾向に対応して決められていることを特徴とする請求項1または2に記載のパケットメモリ管理装置。 3. The packet memory management device according to claim 1, wherein the number of groups for the grouping is determined according to a protocol of packet communication and a tendency of traffic. パケット交換に用いるパケットメモリ管理装置のパケットメモリ管理方法であって、
パケットメモリをグループ毎に決まった等しい長さのクラスタに分割するとともに個々のクラスタを指示するアドレスを一次クラスタテーブルに記憶する過程と、
前記パケットメモリの使用中クラスタを指示するアドレス並びに使用中クラスタ内の使用サブクラスタを指示するアドレスを二次クラスタテーブルに記憶する過程と、
前記二次クラスタテーブルの空き領域のアドレスを二次クラスタ管理テーブルに記憶する過程と、
入力されたパケットを一時記憶するとともに記憶されたパケットをその長さに応じてグループ化する過程と、
当該パケットを、前記一次クラスタテーブルおよび前記二次クラスタテーブルの情報に基づいてパケットメモリをグループ毎に決まった等しい長さに分割したサブクラスタに、連続的に格納するとともに前記一次クラスタテーブルおよび前記二次クラスタテーブル並びに二次クラスタ管理テーブルの内容を調整する過程と、
前記各クラスタに格納されたパケットを取り出すとともに前記一次クラスタテーブルおよび前記二次クラスタテーブル並びに二次クラスタ管理テーブルの内容を調整する過程と、を含み構成されたことを特徴とするパケットメモリ管理方法。
A packet memory management method of a packet memory management device used for packet switching,
Dividing the packet memory into clusters of equal length determined for each group and storing addresses indicating individual clusters in a primary cluster table;
Storing an address indicating a used cluster of the packet memory and an address indicating a used sub-cluster in the used cluster in a secondary cluster table;
Storing the address of the free area of the secondary cluster table in a secondary cluster management table;
Temporarily storing the input packets and grouping the stored packets according to their length;
The packets are continuously stored in sub-clusters obtained by dividing the packet memory into equal lengths determined for each group based on the information in the primary cluster table and the secondary cluster table, and the primary cluster table and the secondary cluster are stored. Adjusting the contents of the secondary cluster table and the secondary cluster management table;
Extracting a packet stored in each of the clusters and adjusting the contents of the primary cluster table, the secondary cluster table, and the secondary cluster management table.
前記一次クラスタテーブルの個々の要素は、パケットメモリ2上の未使用クラスタの先頭アドレスを示すフィールド7aと次の要素へのポインタ7bからなり各要素がリンクリストで接続されており、
前記二次クラスタテーブルは、複数個の二次クラスタに等分され、個々の二次クラスタは前記パケットメモリ中の特定クラスタの先頭アドレスを示すフィールドと当該クラスタ中の全てのサブクラスタにパケットが書き込まれていない場合に次にパケットを書き込むべきアドレスを示すカレントサブクラスタアドレスフィールドとクラスタ中の転送待ちのパケットの数を示す転送待ちパケット数フィールドからなり、
前記二次クラスタ管理テーブルの要素は、二次クラスタテーブル上の未使用二次クラスタの先頭アドレスを示すフィールドと次の要素へのポインタからなりリンクリストで接続されている、ことを特徴とする請求項に記載のパケットメモリ管理方法。
Each element of the primary cluster table includes a field 7a indicating a head address of an unused cluster on the packet memory 2 and a pointer 7b to the next element, and each element is connected by a link list.
The secondary cluster table is equally divided into a plurality of secondary clusters, and each secondary cluster is written with a field indicating the start address of a specific cluster in the packet memory and all subclusters in the cluster. If not, it consists of a current sub-cluster address field indicating the address to which the packet should be written next, and a transfer waiting packet number field indicating the number of packets waiting to be transferred in the cluster.
The element of the secondary cluster management table is composed of a field indicating a head address of an unused secondary cluster on the secondary cluster table and a pointer to the next element, and is connected by a link list. Item 5. The packet memory management method according to Item 4 .
JP2000376745A 2000-12-12 2000-12-12 Packet memory management device and memory management method Expired - Fee Related JP3584878B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000376745A JP3584878B2 (en) 2000-12-12 2000-12-12 Packet memory management device and memory management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000376745A JP3584878B2 (en) 2000-12-12 2000-12-12 Packet memory management device and memory management method

Publications (2)

Publication Number Publication Date
JP2002185505A JP2002185505A (en) 2002-06-28
JP3584878B2 true JP3584878B2 (en) 2004-11-04

Family

ID=18845566

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000376745A Expired - Fee Related JP3584878B2 (en) 2000-12-12 2000-12-12 Packet memory management device and memory management method

Country Status (1)

Country Link
JP (1) JP3584878B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100528967B1 (en) 2002-12-18 2005-11-15 한국전자통신연구원 Apparatus and method for controlling memory allocation for variable sized packets
CN100358320C (en) * 2003-12-24 2007-12-26 华为技术有限公司 A data packet storage management method and apparatus

Also Published As

Publication number Publication date
JP2002185505A (en) 2002-06-28

Similar Documents

Publication Publication Date Title
US5923660A (en) Switching ethernet controller
JP4078445B2 (en) Method and apparatus for sending multiple copies by duplicating a data identifier
EP1782602B1 (en) Apparatus and method for supporting connection establishment in an offload of network protocol processing
US5761427A (en) Method and apparatus for updating host memory in an adapter to minimize host CPU overhead in servicing an interrupt
US6487212B1 (en) Queuing structure and method for prioritization of frames in a network switch
JP4603102B2 (en) Method and apparatus for selectively discarding packets related to blocked output queues in a network switch
US7400638B2 (en) Apparatus and methods for managing packets in a broadband data stream
US11483244B2 (en) Packet buffer spill-over in network devices
EP1045558B1 (en) Very wide memory TDM switching system
US7352766B2 (en) High-speed memory having a modular structure
US7126959B2 (en) High-speed packet memory
JPWO2004066570A1 (en) Network switch device and network switch method
US8223788B1 (en) Method and system for queuing descriptors
US6601116B1 (en) Network switch having descriptor cache and method thereof
JP3765931B2 (en) Buffer control method and buffer control apparatus
US6850999B1 (en) Coherency coverage of data across multiple packets varying in sizes
US5940404A (en) Method and apparatus for enhanced scatter mode allowing user data to be page aligned
JP3584878B2 (en) Packet memory management device and memory management method
US5930261A (en) Bus protocol
US7069397B2 (en) Stream based memory manager with function specific hardware logic for accessing data as a stream in memory
WO2019095942A1 (en) Data transmission method and communication device
JPH07111507A (en) Data reception system and communication controller
JP2000299686A (en) Scheduling device
JP3044653B2 (en) Gateway device
KR100441883B1 (en) Apparatus and method for Ingress control of packet switch system

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040310

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040316

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040517

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040713

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040726

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070813

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080813

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080813

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090813

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090813

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100813

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110813

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110813

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120813

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130813

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees