Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP3791529B2 - Frame buffer management circuit and method - Google Patents
[go: Go Back, main page]

JP3791529B2 - Frame buffer management circuit and method - Google Patents

Frame buffer management circuit and method Download PDF

Info

Publication number
JP3791529B2
JP3791529B2 JP2004111024A JP2004111024A JP3791529B2 JP 3791529 B2 JP3791529 B2 JP 3791529B2 JP 2004111024 A JP2004111024 A JP 2004111024A JP 2004111024 A JP2004111024 A JP 2004111024A JP 3791529 B2 JP3791529 B2 JP 3791529B2
Authority
JP
Japan
Prior art keywords
frame
buffer
management
connection
memory block
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 - Lifetime
Application number
JP2004111024A
Other languages
Japanese (ja)
Other versions
JP2005295443A (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.)
NTT Inc
NTT Inc USA
Original Assignee
Nippon Telegraph and Telephone Corp
NTT Inc USA
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 Nippon Telegraph and Telephone Corp, NTT Inc USA filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2004111024A priority Critical patent/JP3791529B2/en
Publication of JP2005295443A publication Critical patent/JP2005295443A/en
Application granted granted Critical
Publication of JP3791529B2 publication Critical patent/JP3791529B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、Ethernet(登録商標)フレームなどを扱うスイッチにおいて、複数のコネクションを集線または多重する場合に、コネクション単位で優先制御や重み付きラウンドロビン(Weighted Round Robin)制御などによりフレームを読出すために、コネクションごとのバッファを備えるフレームバッファ管理方法および回路に関する。   The present invention reads a frame by priority control, weighted round robin control or the like on a connection-by-connection basis when a plurality of connections are concentrated or multiplexed in a switch that handles an Ethernet (registered trademark) frame or the like. In particular, the present invention relates to a frame buffer management method and circuit including a buffer for each connection.

ネットワーク上のスイッチにおいて複数のコネクションを集線または多重する場合、フレーム読出部において複数のコネクション間で共用する単一のFIFO(First In First Out)型バッファを使用すると、バッファ内の占有率や廃棄率に対して無関係に到着順でフレームを蓄積するため、帯域使用量および遅延時間の点でパワーユーザを収容するコネクションの方が有利になる。   When a plurality of connections are concentrated or multiplexed in a switch on the network, if a single FIFO (First In First Out) type buffer shared between multiple connections is used in the frame readout unit, the occupation rate and discard rate in the buffer However, since the frames are stored in the order of arrival regardless of the connection, the connection accommodating the power user is advantageous in terms of the bandwidth usage and the delay time.

コネクション間の帯域使用量および遅延時間の公平性を確保する手段としては、例えばコネクションごとに個別にFIFO型バッファを用いる手法がある。しかし、個別FIFO型バッファをメモリ占有方式で実装すると、メモリの使用効率が低くなるため、多くのメモリ容量を用意する必要がある。   As a means for ensuring the fairness of the amount of bandwidth used between connections and the delay time, for example, there is a method of using a FIFO buffer individually for each connection. However, if the individual FIFO type buffer is mounted by the memory occupation method, the use efficiency of the memory is lowered, so that it is necessary to prepare a large memory capacity.

多くのメモリを装置内に実装することは、実装面積やコストの点で不利である。そこで、バッファのためのメモリを必要に応じて動的に割当および開放を行うことにより、コネクション間でメモリを共用し使用効率を向上させる(例えば非特許文献1参照)。   Mounting many memories in a device is disadvantageous in terms of mounting area and cost. Therefore, by dynamically allocating and releasing the memory for the buffer as necessary, the memory is shared between the connections and the usage efficiency is improved (for example, see Non-Patent Document 1).

特開平11−32055号公報JP-A-11-32055

前記の方法では、共用するバッファ用メモリの管理にポインタチェーン(リンク)を用いている。ポインタチェーンは、バッファ用メモリをリンクによって接続するため、バッファ用メモリの管理が煩雑になって処理時間が増大する。スイッチが大容量化すると、1フレームに与えることができる処理時間は短くなるので、処理が間に合わなくなる可能性がある。   In the above method, a pointer chain (link) is used for managing the shared buffer memory. Since the pointer chain connects the buffer memory by a link, the management of the buffer memory becomes complicated and the processing time increases. When the capacity of the switch is increased, the processing time that can be given to one frame is shortened, and there is a possibility that the processing may not be in time.

また、バッファ用メモリのリンクのための情報を保持する必要があるので、リンク用のメモリ容量を別途確保することになる。リンク用のメモリをバッファ用メモリとは別のメモリチップとして配置すると、実装面積および実装ピン数が増大してしまう。   In addition, since it is necessary to hold information for linking the buffer memory, a memory capacity for linking is separately secured. If the link memory is arranged as a memory chip different from the buffer memory, the mounting area and the number of mounting pins increase.

さらに、前記の方法は、ATMセルなどの固定長フレームの収容を想定している。Ethernet(登録商標)フレームなどの可変長フレームを扱う場合、最大フレーム長に合わせてメモリブロックを用意すると、短フレームを格納する場合にメモリの使用効率が低下するので、フレーム長による影響を低減する必要がある。これらは実装時に制限となり得る。   Further, the above method assumes the accommodation of fixed-length frames such as ATM cells. When handling variable-length frames such as Ethernet (registered trademark) frames, if memory blocks are prepared according to the maximum frame length, the memory usage efficiency decreases when storing short frames, thus reducing the influence of the frame length. There is a need. These can be limitations at the time of implementation.

従って、本発明は、Ethernet(登録商標)フレームなどの可変長フレームに対して、帯域使用量および遅延時間の点で公平な読出しを実現し、メモリの使用効率を高くし、かつリンクによる管理よりも高速化することができるフレームバッファ管理回路を提供することを目的とする。   Therefore, the present invention realizes fair reading in terms of bandwidth usage and delay time for variable-length frames such as Ethernet (registered trademark) frames, increases the memory usage efficiency, and is managed by the link. An object of the present invention is to provide a frame buffer management circuit that can increase the speed.

本発明によれば、1以上のコネクションを収容し、コネクションごとにFIFO型のデータ構造を有し、全コネクション間で共用するメモリを動的に個別のコネクション用バッファとして割当および開放を行うフレームバッファ管理回路において、
入力されたフレームに対して、フレームヘッダ部に記録されている属性情報又は事前に与えられる設定値に基づいて、振分先のバッファを決定するフレーム振分手段と、
メモリブロックの集合として構成され、入力されたフレームの実体を格納するフレーム蓄積手段と、
コネクション用バッファを構成し、フレーム蓄積手段の一部であるメモリブロックをポインタにより指示および管理し、FIFO型のデータ構造を有するバッファ用メモリブロックアドレス管理手段と、
コネクション用バッファの先頭位置および後尾位置をポインタにより指示および管理するキュー管理手段と、
フレーム蓄積手段において使用していないメモリブロックをポインタにより指示および管理する空きメモリブロック管理手段と、
コネクション用バッファに収容するフレームの長さを保持するフレーム長管理手段と、
バッファのフレーム蓄積状態に関する情報に基づいて、操作対象となるフレームと蓄積または読出または廃棄のいずれかの操作を実行するかを判別する蓄積/読出/廃棄判別手段と、
フレーム蓄積手段からフレームを読出すフレーム読出手段と、
バッファにフレームを格納しきれなくなったときにフレームを廃棄するフレーム廃棄手段とを有することを特徴とする。
According to the present invention, a frame buffer that accommodates one or more connections, has a FIFO-type data structure for each connection, and dynamically allocates and releases memory shared among all connections as individual connection buffers. In the management circuit,
Frame distribution means for determining an allocation destination buffer for the input frame based on attribute information recorded in the frame header part or a setting value given in advance;
Frame accumulation means configured as a set of memory blocks and storing the entity of the input frame;
A buffer memory block address management means having a FIFO type data structure, comprising a connection buffer, instructing and managing a memory block which is a part of the frame storage means by a pointer;
A queue management means for indicating and managing the head position and the tail position of the connection buffer with a pointer;
Free memory block management means for indicating and managing memory blocks not used in the frame storage means by pointers;
Frame length management means for holding the length of the frame accommodated in the connection buffer;
Accumulation / reading / discarding discriminating means for discriminating whether to perform a storage, reading, or discarding operation from a frame to be operated based on information on the frame accumulation state of the buffer;
Frame reading means for reading a frame from the frame storage means;
Frame discarding means for discarding a frame when the frame cannot be stored in the buffer.

本発明のフレームバッファ管理回路における他の実施形態によれば、バッファの管理単位を単一コネクションの代わりに、コネクション群または方路またはこれらの組合わせとして扱うコネクショングループ情報管理手段を備えることも好ましい。   According to another embodiment of the frame buffer management circuit of the present invention, it is also preferable to provide connection group information management means for handling a buffer management unit as a connection group, a route, or a combination thereof instead of a single connection. .

また、本発明のフレームバッファ管理回路における他の実施形態によれば、各コネクションが1以上のQoSクラス又はポートごとにバッファを保持および管理するマルチバッファ管理手段を備え、マルチバッファ管理手段は、コネクション内に1以上のQoSクラスまたはポートを収容するバッファ用メモリブロック管理手段と、コネクション内に1以上のQoSクラスまたはポートを収容するキュー管理手段を備えることも好ましい。   According to another embodiment of the frame buffer management circuit of the present invention, each connection includes multi-buffer management means for holding and managing a buffer for each of one or more QoS classes or ports, and the multi-buffer management means includes a connection It is also preferable to provide buffer memory block management means for accommodating one or more QoS classes or ports in the inside, and queue management means for accommodating one or more QoS classes or ports in the connection.

更に、本発明のフレームバッファ管理回路における他の実施形態によれば、バッファ用メモリブロックアドレス管理手段を構成する1以上のブロックをグループ化し、グループごとにバッファ用メモリブロックアドレス管理手段の一部として割当および開放を行う、アドレスグループ管理手段を備えることも好ましい。   Furthermore, according to another embodiment of the frame buffer management circuit of the present invention, one or more blocks constituting the buffer memory block address management means are grouped, and each group is used as a part of the buffer memory block address management means. It is also preferable to provide address group management means for performing allocation and release.

更に、本発明のフレームバッファ管理回路における他の実施形態によれば、各コネクションのバッファ使用状況を監視するバッファ使用状況監視手段と、バッファ使用状況監視手段から取得した情報に基づいて、バッファ用メモリブロックアドレス管理手段で使用する最大キュー長を動的に決定する最大キュー長決定手段を備えることも好ましい。   Furthermore, according to another embodiment of the frame buffer management circuit of the present invention, the buffer usage monitoring means for monitoring the buffer usage status of each connection, and the buffer memory based on the information acquired from the buffer usage status monitoring means It is also preferable to provide a maximum queue length determining means for dynamically determining the maximum queue length used by the block address management means.

更に、本発明のフレームバッファ管理回路における他の実施形態によれば、フレームバッファに収容するフレームの長さを、フレーム長管理手段の代わりに、フレーム蓄積手段に含まれるメモリブロック内にフレームの実体と併せて記録する拡張型フレーム蓄積手段を備えることも好ましい。   Furthermore, according to another embodiment of the frame buffer management circuit of the present invention, the length of the frame accommodated in the frame buffer is set in the memory block included in the frame storage means instead of the frame length management means. It is also preferable to provide an extended frame storage means for recording together.

更に、本発明のフレームバッファ管理回路における他の実施形態によれば、優先的に廃棄するフレームを選択する優先廃棄フレーム選択手段を備えることも好ましい。   Furthermore, according to another embodiment of the frame buffer management circuit of the present invention, it is preferable that the frame buffer management circuit further comprises priority discard frame selection means for selecting a frame to be discarded preferentially.

また、本発明によれば、1以上のコネクションを収容し、コネクションごとにFIFO型のデータ構造を有し、全コネクション間で共用するメモリを動的に個別のコネクション用バッファとして割当および開放を行うフレームバッファ管理方法において、
入力されたフレームに対して、フレームヘッダ部に記録されている属性情報又は事前に与えられる設定値に基づいて、振分先のバッファを決定するフレーム振分ステップと、
メモリブロックの集合として構成され、入力されたフレームの実体を格納するフレーム蓄積ステップと、
コネクション用バッファを構成し、FIFO型のデータ構造であって、一部であるメモリブロックをポインタにより指示および管理するバッファ用メモリブロックアドレス管理ステップと、
コネクション用バッファの先頭位置および後尾位置をポインタにより指示および管理するキュー管理ステップと、
使用していないメモリブロックをポインタにより指示および管理する空きメモリブロック管理ステップと、
コネクション用バッファに収容するフレームの長さを保持するフレーム長管理ステップと、
バッファのフレーム蓄積状態に関する情報に基づいて、操作対象となるフレームと蓄積もしくは読出または廃棄のいずれかの操作を実行するかを判別する蓄積/読出/廃棄判別ステップと、
蓄積されたフレームを読出すフレーム読出ステップと、
バッファにフレームを格納しきれなくなったときにフレームを廃棄するフレーム廃棄ステップとを有することを特徴とする。
Further, according to the present invention, one or more connections are accommodated, each connection has a FIFO type data structure, and a memory shared between all connections is dynamically allocated and released as individual connection buffers. In the frame buffer management method,
A frame distribution step for determining an allocation destination buffer based on attribute information recorded in the frame header part or a setting value given in advance for the input frame;
A frame accumulating step configured as a set of memory blocks and storing the entity of the input frame;
A buffer memory block address management step that configures a connection buffer and is a FIFO type data structure, and indicates and manages a memory block that is a part by a pointer;
A queue management step for indicating and managing the start position and the end position of the connection buffer with pointers;
A free memory block management step for pointing and managing unused memory blocks with a pointer;
A frame length management step for holding the length of the frame accommodated in the connection buffer;
An accumulation / reading / discarding discrimination step for discriminating whether to perform an operation of accumulation, reading, or discarding from a frame to be operated based on information on a frame accumulation state of the buffer;
A frame reading step for reading the accumulated frames;
A frame discarding step for discarding the frame when the frame cannot be stored in the buffer.

本発明のフレームバッファ管理方法における他の実施形態によれば、バッファの管理単位を単一コネクションの代わりに、コネクション群もしくは方路またはこれらの組合わせとして扱うコネクショングループ情報管理ステップを有することも好ましい。   According to another embodiment of the frame buffer management method of the present invention, it is also preferable to have a connection group information management step in which a buffer management unit is handled as a connection group or a route or a combination thereof instead of a single connection. .

また、本発明のフレームバッファ管理方法における他の実施形態によれば、各コネクションが1以上のQoSクラス又はポートごとにバッファを保持および管理するマルチバッファ管理ステップを有し、マルチバッファ管理ステップは、コネクション内に1以上のQoSクラスまたはポートを収容するバッファ用メモリブロック管理ステップと、コネクション内に1以上のQoSクラスまたはポートを収容するキュー管理ステップとを備えることも好ましい。   According to another embodiment of the frame buffer management method of the present invention, each connection has a multi-buffer management step for holding and managing a buffer for each of one or more QoS classes or ports, and the multi-buffer management step includes: It is also preferable to include a buffer memory block management step for accommodating one or more QoS classes or ports in the connection, and a queue management step for accommodating one or more QoS classes or ports in the connection.

更に、本発明のフレームバッファ管理方法における他の実施形態によれば、バッファ用メモリブロックアドレス管理手段を構成する1以上のブロックをグループ化し、グループごとにバッファ用メモリブロックアドレス管理手段の一部として割当および開放を行う、アドレスグループ管理ステップを有することも好ましい。   Furthermore, according to another embodiment of the frame buffer management method of the present invention, one or more blocks constituting the buffer memory block address management means are grouped, and each group is used as a part of the buffer memory block address management means. It is also preferable to have an address group management step for assigning and releasing.

更に、本発明のフレームバッファ管理方法における他の実施形態によれば、各コネクションのバッファ使用状況を監視するバッファ使用状況監視ステップと、バッファ使用状況監視ステップから取得した情報に基づいて、バッファ用メモリブロックアドレス管理ステップで使用する最大キュー長を動的に決定する最大キュー長決定ステップを有することも好ましい。   Furthermore, according to another embodiment of the frame buffer management method of the present invention, a buffer usage monitoring step for monitoring the buffer usage status of each connection, and a buffer memory based on information acquired from the buffer usage status monitoring step It is also preferable to have a maximum queue length determination step that dynamically determines the maximum queue length used in the block address management step.

更に、本発明のフレームバッファ管理方法における他の実施形態によれば、フレームバッファに収容するフレームの長さを、フレーム長管理ステップの代わりに、蓄積されたメモリブロック内にフレームの実体と併せて記録する拡張型フレーム蓄積ステップを備えることも好ましい。   Furthermore, according to another embodiment of the frame buffer management method of the present invention, the length of the frame accommodated in the frame buffer is combined with the entity of the frame in the accumulated memory block instead of the frame length management step. It is also preferable to provide an extended frame storage step for recording.

更に、本発明のフレームバッファ管理方法における他の実施形態によれば、優先的に廃棄するフレームを選択する優先廃棄フレーム選択ステップを備えることも好ましい。   Furthermore, according to another embodiment of the frame buffer management method of the present invention, it is preferable to further comprise a priority discard frame selection step for selecting a frame to be discarded preferentially.

本発明のフレームバッファ管理回路によれば、論理的な個別FIFO型バッファを構成することで、Ethernet(登録商標)フレームなどの可変長フレームに対して、帯域使用量および遅延時間の点で公平な読出しを実現可能としながら、コネクション間でメモリを共用することによりメモリの使用効率を高くする。共用するメモリの使用率を監視して最大キュー長を制限することで、特定コネクションがメモリを占有することを防止する。個別FIFO型バッファの構成要素をキューによって管理することで、リンクによる管理よりも簡易化、高速化する。優先度に基づく廃棄操作を行うことで、優先度の高いフレームの廃棄を防止することが可能となる。   According to the frame buffer management circuit of the present invention, by configuring a logical individual FIFO buffer, it is fair in terms of bandwidth usage and delay time over variable length frames such as Ethernet (registered trademark) frames. While making reading possible, the memory usage efficiency is increased by sharing the memory between connections. By monitoring the usage rate of the shared memory and limiting the maximum queue length, it is possible to prevent a specific connection from occupying the memory. By managing the constituent elements of the individual FIFO type buffer by the queue, the management is simplified and speeded up than the management by the link. By performing the discard operation based on the priority, it is possible to prevent the discard of the frame having a high priority.

以下、図面を用いて、本発明の実施例について詳細に説明する。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.

<請求項1に係る発明に基づく実施例1>
実施例1は、論理的な個別FIFO型バッファを構成することで、帯域使用量および遅延時間の点で公平な読出しを実現可能としながら、コネクション間でメモリを共用することにより使用効率を高くし、かつ個別FIFO型バッファ管理をキューによって行うことで簡易化し、リンクによる管理よりも高速化することを特徴とする。
<Embodiment 1 based on the invention according to claim 1>
In the first embodiment, by configuring a logical individual FIFO type buffer, it is possible to achieve fair reading in terms of bandwidth usage and delay time, while increasing the use efficiency by sharing memory between connections. In addition, the individual FIFO buffer management is simplified by using a queue, and is faster than the management by a link.

図1は、フレームバッファ管理回路の構成図である。   FIG. 1 is a configuration diagram of a frame buffer management circuit.

フレームバッファ管理回路1は、フレーム振分部101、フレーム蓄積部102、蓄積/読出/廃棄判別部103、バッファ用メモリブロックアドレス管理部104、キュー管理部105、空きメモリブロック管理部106、フレーム長管理部107、フレーム読出部109及びフレーム廃棄部110から構成される。   The frame buffer management circuit 1 includes a frame distribution unit 101, a frame storage unit 102, a storage / read / discard determination unit 103, a buffer memory block address management unit 104, a queue management unit 105, a free memory block management unit 106, a frame length It comprises a management unit 107, a frame reading unit 109, and a frame discarding unit 110.

フレームバッファ管理回路1に入力されたフレームは、フレーム振分部101でヘッダ部に記載されるフレーム情報を読出し、フレーム蓄積部102に蓄積される。フレーム蓄積部102に蓄積されたフレームは、蓄積/読出/廃棄判別部103からの命令により、フレーム読出部109でフレーム出力されるか、またはフレーム廃棄部110でフレーム廃棄される。   The frame input to the frame buffer management circuit 1 is read out by the frame sorting unit 101 and the frame information described in the header is read out and stored in the frame storage unit 102. The frame stored in the frame storage unit 102 is output as a frame by the frame reading unit 109 or discarded by the frame discarding unit 110 according to a command from the storage / reading / discarding determination unit 103.

蓄積/読出/廃棄判別部103は、フレーム振分部101からフレーム入力またはフレームバッファ管理回路外のからの読出命令をトリガとして、フレーム蓄積部102に蓄積するフレームの処理方法を決定する。フレーム処理方法を決定するために、フレーム振分部101からはフレーム情報が取得され、空きメモリブロック管理部106からはバッファ使用状況情報が取得され、バッファ用メモリブロックアドレス管理部104からは個別FIFO型バッファのメモリ蓄積状況の情報が取得される。蓄積/読出/廃棄判別部103がフレームの処理方法を決定した場合には、バッファ用メモリブロックアドレス管理部104に個別FIFO型バッファの状態変更を反映させる。   The accumulation / read / discard discriminating unit 103 determines a method of processing frames to be accumulated in the frame accumulation unit 102 by using a frame input from the frame distribution unit 101 or a read command from outside the frame buffer management circuit as a trigger. In order to determine a frame processing method, frame information is acquired from the frame allocation unit 101, buffer usage status information is acquired from the free memory block management unit 106, and an individual FIFO is received from the buffer memory block address management unit 104. Information on the memory accumulation status of the type buffer is acquired. When the storage / read / discard discriminating unit 103 determines the frame processing method, the buffer memory block address management unit 104 reflects the change in the state of the individual FIFO type buffer.

バッファ用メモリブロックアドレス管理部104は、キュー管理部105と連携して個別FIFO型バッファの状態を管理する。   The buffer memory block address management unit 104 manages the state of the individual FIFO buffer in cooperation with the queue management unit 105.

蓄積/読出/廃棄判別部103からの命令により、フレーム蓄積部102の状態が変化する場合には、空きメモリブロック管理部106およびフレーム長管理部107と連携してメモリブロックの状態を管理する。   When the state of the frame storage unit 102 changes according to a command from the storage / read / discard discriminating unit 103, the state of the memory block is managed in cooperation with the free memory block management unit 106 and the frame length management unit 107.

図2は、論理的なフレームバッファ管理回路の構成図である。   FIG. 2 is a configuration diagram of a logical frame buffer management circuit.

フレームバッファ管理回路1は、フレーム振分部101、個別FIFO型バッファ及びフレーム読出部109により構成される。   The frame buffer management circuit 1 includes a frame distribution unit 101, an individual FIFO buffer, and a frame reading unit 109.

フレームバッファ管理回路1に入力したフレームは、フレーム振分部101で収容する個別FIFO型バッファを選択する。各々の個別FIFO型バッファは、論理的に独立したバッファとして振舞う。フレーム読出部109は、個別FIFO型バッファから優先制御や重み付きラウンドロビン制御によりフレームの読出しを行う。   For the frame input to the frame buffer management circuit 1, an individual FIFO type buffer accommodated in the frame distribution unit 101 is selected. Each individual FIFO type buffer behaves as a logically independent buffer. The frame reading unit 109 reads a frame from the individual FIFO type buffer by priority control or weighted round robin control.

個別FIFO型バッファは、図1におけるフレーム蓄積部102のメモリブロックにより構成されるが、メモリブロックはコネクション間で共用するため、各々の個別FIFO型バッファの最大キュー長は、フレームの蓄積状況によって動的に変化する。   The individual FIFO type buffer is configured by the memory block of the frame storage unit 102 in FIG. 1, but since the memory block is shared between connections, the maximum queue length of each individual FIFO type buffer varies depending on the frame storage status. Changes.

図3は、図1に基づく各機能のバッファ構成図である。   FIG. 3 is a buffer configuration diagram of each function based on FIG.

フレーム蓄積部102、バッファ用メモリブロックアドレス管理部104、キュー管理部105、空きメモリブロック管理部106及びフレーム長管理部107はそれぞれ、図3に示すように、メモリ上に構成する。フレーム蓄積部102は、固定長(例えば512byte)のメモリブロックにより構成する。   The frame storage unit 102, the buffer memory block address management unit 104, the queue management unit 105, the free memory block management unit 106, and the frame length management unit 107 are each configured on a memory as shown in FIG. The frame storage unit 102 is configured by a memory block having a fixed length (for example, 512 bytes).

図4は、フレーム蓄積部と収容フレームとの関係を示す説明図である。   FIG. 4 is an explanatory diagram showing the relationship between the frame storage unit and the accommodation frame.

各々のメモリブロックには、フレームの実体(Payload)を格納する。格納するフレームの長さがメモリブロック長よりも長い場合には分割して、複数のメモリブロックを使用する。メモリブロックの境界と格納するフレームの境界が一致しない場合には、空きをパディングで埋める。なお、パディングとしている領域は、特定パターン値の他に不定値(Don't care)で埋めても良い。   Each memory block stores a frame entity (Payload). If the length of the frame to be stored is longer than the memory block length, it is divided and a plurality of memory blocks are used. If the boundary of the memory block does not match the boundary of the frame to be stored, the empty space is filled with padding. Note that the padding area may be filled with an indefinite value (Don't care) in addition to the specific pattern value.

図5は、フレーム蓄積部とバッファ用メモリアドレス管理部の関係を示す説明図である。   FIG. 5 is an explanatory diagram showing the relationship between the frame storage unit and the buffer memory address management unit.

バッファ用メモリブロックアドレス管理部104は、フレーム蓄積部102のメモリブロックを指示するポインタにより構成する。バッファ用メモリブロックアドレス管理部104内のポインタは、連続した複数のブロックとしてまとめ、各々コネクションに関連付ける。例えば、図3(b)のアドレス#1〜#qまでのポインタは、コネクション#1(ID#1)に関連付けている。同一コネクションに関連付けられたポインタは、キュー(FIFO)型のデータ構造として扱う。   The buffer memory block address management unit 104 includes a pointer that points to the memory block of the frame storage unit 102. The pointers in the buffer memory block address management unit 104 are collected as a plurality of continuous blocks, and are associated with each connection. For example, the pointers to the addresses # 1 to #q in FIG. 3B are associated with the connection # 1 (ID # 1). A pointer associated with the same connection is handled as a queue (FIFO) type data structure.

キュー管理部105は、バッファ用メモリブロックアドレス管理部104における各コネクションごとのキューの範囲を指示するもので、その先頭を示すポインタ(Head)と後尾を示すポインタ(Tail)の組により構成する。このキュー両端を示すポインタの組の数は、バッファ用メモリブロックアドレス管理部において関連付けたキュー数(コネクション数)と同数になる。   The queue management unit 105 indicates a queue range for each connection in the buffer memory block address management unit 104, and includes a pair of a pointer (Head) indicating the head and a pointer (Tail) indicating the tail. The number of pairs of pointers indicating both ends of the queue is the same as the number of queues (number of connections) associated in the buffer memory block address management unit.

図6は、バッファ長メモリブロックアドレス管理部とキュー長管理部の関係を示す説明図である。   FIG. 6 is an explanatory diagram showing the relationship between the buffer length memory block address management unit and the queue length management unit.

バッファ用メモリブロックアドレス管理部104の各キューにおいて使用中の領域が変化すると、それに合わせてキュー長管理部105のポインタの値が変化する。バッファ用メモリブロックアドレス管理部104のコネクションごとのキューを構成するバッファは、リング状に連続しているものとして扱う。このため、図6(d)のように、キュー長管理部105の2つのポインタに格納するアドレスの大小関係が逆転する(Tail<Head)こともある。この場合には、物理的なメモリ配置において後尾のポインタ(図6(d)ではアドレス#q)の後に先頭のポインタ(図6(d)ではアドレス#1)が続くものとして扱う。   When the area in use in each queue of the buffer memory block address management unit 104 changes, the value of the pointer of the queue length management unit 105 changes accordingly. The buffers constituting the queue for each connection of the buffer memory block address management unit 104 are handled as being continuous in a ring shape. For this reason, as shown in FIG. 6D, the magnitude relationship between the addresses stored in the two pointers of the queue length management unit 105 may be reversed (Tail <Head). In this case, in the physical memory arrangement, the trailing pointer (address #q in FIG. 6D) is followed by the leading pointer (address # 1 in FIG. 6D).

図7A及び図7Bは、フレーム蓄積部と空きメモリブロック管理部の関係を示す説明図である。   7A and 7B are explanatory diagrams showing the relationship between the frame storage unit and the free memory block management unit.

空きメモリブロック管理部106は、フレーム蓄積部102のメモリブロックと同数のポインタにより構成する。空きメモリブロックは、スタック(FILO:First In Last Out)型のデータ構造として扱い、現在の使用位置を指示するためにスタックポインタを用意する。空きメモリブロックのポインタは、フレーム蓄積部102の使用していないメモリブロックを指示する。図7A(b)に示すように、フレーム入力によりメモリブロックを使用する場合には、空きメモリブロック管理部106が指示するメモリブロックを順に使用し、スタックポインタを移動させる。図7B(c)に示すように、フレーム出力によりメモリブロックを開放する場合には、開放したメモリブロックのアドレスを空きメモリブロック管理部106の空き領域に順に記録し、スタックポインタを移動させる。   The empty memory block management unit 106 includes the same number of pointers as the memory blocks of the frame storage unit 102. The empty memory block is handled as a stack (FILO: First In Last Out) type data structure, and a stack pointer is prepared to indicate the current use position. The free memory block pointer indicates a memory block not used by the frame storage unit 102. As shown in FIG. 7A (b), when using memory blocks by frame input, the memory blocks designated by the empty memory block management unit 106 are sequentially used to move the stack pointer. As shown in FIG. 7B (c), when the memory block is released by frame output, the address of the released memory block is recorded in the empty area of the empty memory block management unit 106 in order, and the stack pointer is moved.

なお、実施例1では、空きメモリブロック管理部をスタック型のデータ構造としたが、バッファ用メモリブロックアドレス管理部のようにHeadおよびTailの2つのポインタを用いて、キュー型のデータ構造とすることもできる。   In the first embodiment, the free memory block management unit has a stack type data structure. However, like the buffer memory block address management unit, a queue type data structure is formed using two pointers, Head and Tail. You can also.

図8は、フレーム蓄積部とフレーム長管理部の関係を示す説明図である。   FIG. 8 is an explanatory diagram showing the relationship between the frame storage unit and the frame length management unit.

フレーム長管理部107は、フレーム蓄積部102のメモリブロックと同数のデータ領域により構成する。メモリブロックにフレームを格納している場合には、フレーム蓄積部102とフレーム長管理部107は、同一アドレスの位置に関連する情報を格納する。例えば、フレーム蓄積部のアドレス#x+1に関するフレーム長情報は、フレーム長管理部のアドレス#x+1に格納する。フレーム長管理部107のデータ領域には、関連付けられたフレーム蓄積部102に格納されるフレームのフレーム長情報を格納する。フレーム長情報としては、例えば、該当するメモリブロック先頭からフレーム後尾までの長さなどを格納する。この方法では、フレームがメモリブロック長を超えているために分割された場合でも、フレーム終端を構成するメモリブロックを判別できる。さらに任意のメモリブロックの位置から残りのフレーム長を判別することができる。また、フレーム長情報を表す他の方法として、フラグ終端を示すフラグとメモリブロック内に占めるフレーム実体の長さという組合せとすることもできる。   The frame length management unit 107 is composed of the same number of data areas as the memory blocks of the frame storage unit 102. When frames are stored in the memory block, the frame storage unit 102 and the frame length management unit 107 store information related to the position of the same address. For example, the frame length information related to the address # x + 1 of the frame storage unit is stored at the address # x + 1 of the frame length management unit. In the data area of the frame length management unit 107, frame length information of a frame stored in the associated frame storage unit 102 is stored. As the frame length information, for example, the length from the beginning of the corresponding memory block to the end of the frame is stored. In this method, even when the frame is divided because it exceeds the memory block length, the memory block constituting the frame end can be determined. Furthermore, the remaining frame length can be determined from the position of an arbitrary memory block. As another method for expressing the frame length information, a combination of a flag indicating the flag end and the length of the frame entity in the memory block may be used.

図9は、フレームバッファ管理回路におけるフレーム入出力時のフローチャートである。   FIG. 9 is a flowchart at the time of frame input / output in the frame buffer management circuit.

図9(a)フレーム入力時のフローを説明する。
(S1)フレームが入力される
(S2)フレーム振分部は、入カフレームを収容するバッファ用メモリブロック管理部を選択し、フレーム情報を蓄積/読出/廃棄判別部に送る。
(S3)蓄積/読出/廃棄判別部は、バッファ用メモリブロックアドレス管理部に空きがあるか確認し、空きがなければ、(S8)入力フレームを廃棄する。
(S4)蓄積/読出/廃棄判別部は、空きメモリブロック管理部に対して、フレーム蓄積部に空きがあるか確認する。
(S5)フレーム蓄積部に空きがない場合、蓄積/読出/廃棄判別部は、バッファ用メモリブロックアドレス管理部が保持するコネクションごとの個別キュー情報を参照して、廃棄すべきフレームを決定する。入カフレームが廃棄対象となっている場合は、(S8)入カフレームを廃棄する。
(S6)他コネクションのフレームを廃棄すべきである場合には、該当フレームを廃棄する。
(S7)空きメモリブロック管理部から、空いているメモリブロックのアドレスを読出す。
(S8)読出したアドレスをキーとして、フレーム長管理テーブルにフレーム長情報を書込む。
(S9)フレーム蓄積部内の空きメモリブロックサイズを上限としてフレームの内容を書込む。
(S10)バッファ用メモリブロックアドレス管理部のキュー情報を更新する。
(S11)該当メモリブロックが扱うのが入力フレームの後尾か判別し、後尾であれば終了、後尾でなければ(S7)から続きのフレームの蓄積処理を行う。
FIG. 9A illustrates a flow at the time of frame input.
(S1) A frame is input (S2) The frame distribution unit selects a buffer memory block management unit that accommodates the input frame, and sends the frame information to the storage / read / discard discrimination unit.
(S3) The accumulation / read / discard discriminating unit checks whether there is a vacancy in the buffer memory block address management unit. If there is no vacancy, (S8) discards the input frame.
(S4) The storage / read / discard discriminating unit checks with the free memory block management unit whether there is a free space in the frame storage unit.
(S5) When there is no free space in the frame storage unit, the storage / reading / discarding determination unit refers to the individual queue information for each connection held by the buffer memory block address management unit and determines a frame to be discarded. If the incoming frame is to be discarded, (S8) the incoming frame is discarded.
(S6) If the frame of another connection should be discarded, the corresponding frame is discarded.
(S7) The address of the free memory block is read from the free memory block management unit.
(S8) The frame length information is written in the frame length management table using the read address as a key.
(S9) The contents of the frame are written with the free memory block size in the frame storage unit as the upper limit.
(S10) The queue information in the buffer memory block address management unit is updated.
(S11) It is determined whether the corresponding memory block handles the tail of the input frame. If it is the tail, the process ends. If it is not the tail, accumulation processing of the subsequent frames is performed from (S7).

続いて、図9(b)フレーム出力時のフローを説明する。
フレーム読出命令が蓄積/読出/廃棄判別部に与えられると、
(S1)バッファ用メモリブロックアドレス管理部から、フレームが記録されているフレーム蓄積部内のアドレスを読出す。
(S2)フレーム長管理テーブルからフレーム長情報を読出す。
(S3)フレーム蓄積部内のメモリブロックから、メモリブロックサイズを上限として分割したフレームの内容を読出す。
(S4)読出したアドレスをキーとして、バッファ用メモリブロックアドレス管理部のキュー情報を更新する。
(S5)空きメモリブロック管理部に、不要なメモリブロックのアドレスを書込み、空きメモリブロックとする。
(S6)該当メモリブロックが扱うのが出力フレームの後尾か判別し、後尾でなければ(1)から続きのフレームの読出処理を行う。
(S7)分割したフレームから元のフレームを再構成する。
(S8)再構成したフレームを出力する。
Next, the flow at the time of outputting a frame in FIG. 9B will be described.
When a frame read command is given to the accumulation / read / discard discriminator,
(S1) The address in the frame storage unit where the frame is recorded is read from the buffer memory block address management unit.
(S2) The frame length information is read from the frame length management table.
(S3) The content of the frame divided with the memory block size as the upper limit is read from the memory block in the frame storage unit.
(S4) The queue information in the buffer memory block address management unit is updated using the read address as a key.
(S5) An address of an unnecessary memory block is written in the empty memory block management unit to make an empty memory block.
(S6) It is determined whether the corresponding memory block handles the tail of the output frame, and if it is not the tail, the subsequent frame reading process from (1) is performed.
(S7) The original frame is reconstructed from the divided frames.
(S8) The reconstructed frame is output.

実施例1における他の実施形態として、蓄積するフレームがメモリブロックよりも大きいため、フレームを複数のメモリブロックに分割して管理する場合に、メモリブロック内に設けたポインタを用いてフレームを構成するメモリブロックを指示することによって接続するものがある。   As another embodiment of the first embodiment, since a frame to be accumulated is larger than a memory block, when the frame is divided into a plurality of memory blocks and managed, the frame is configured using a pointer provided in the memory block. Some connect by indicating a memory block.

図10は、フレームを複数メモリブロックに分割するときの管理方法の説明図である。   FIG. 10 is an explanatory diagram of a management method when a frame is divided into a plurality of memory blocks.

図10(a)は、実施例1にて説明した方法で、分割したメモリブロック1つにつき、バッファ用メモリブロックアドレス管理部104のポインタを1つ使用する。言い換えれば、1フレームを構成するメモリブロック数が多ければ、バッファ用メモリブロックアドレス管理部104のポインタを多数使用する。   FIG. 10A uses the pointer of the buffer memory block address management unit 104 for each divided memory block by the method described in the first embodiment. In other words, if the number of memory blocks constituting one frame is large, a large number of pointers in the buffer memory block address management unit 104 are used.

これに対して、図10(b)では、バッファ用メモリブロックアドレス管理部104のポインタは、フレームの先頭に相当するメモリブロックを指示するが、それ以降のメモリブロックは、先頭のメモリブロック内に設けたポインタによって指示する。これにより、1フレームを構成するメモリブロック数には関わらず、1フレームに対して使用するバッファ用メモリブロックアドレス管理部のポインタを1つとすることができる。   On the other hand, in FIG. 10B, the pointer of the buffer memory block address management unit 104 indicates the memory block corresponding to the head of the frame, but the subsequent memory blocks are included in the head memory block. This is indicated by the provided pointer. As a result, regardless of the number of memory blocks constituting one frame, the pointer of the buffer memory block address management unit used for one frame can be made one.

1フレームを構成するメモリブロックの最大数が小さい場合には、フレーム先頭のメモリブロック内のポインタ領域を固定的に確保しても良いが、1フレームを構成するメモリブロックの最大数が大きくなる場合には、フレーム長によって必要分だけ動的にポインタ領域を設ける方が、メモリの有効利用の観点から有利である。   When the maximum number of memory blocks constituting one frame is small, the pointer area in the memory block at the head of the frame may be secured, but when the maximum number of memory blocks constituting one frame becomes large In order to effectively use the memory, it is advantageous to dynamically provide a pointer area as much as necessary depending on the frame length.

同様に、図10(c)では、フレームを構成するメモリブロックをメモリブロック内に設けたポインタによって指示する。この構成では、フレームを構成するメモリブロックの数が増大しても、メモリブロックにおけるポインタの領域の比率は変わらないので、動的にポインタ領域を設ける必要がない。よって、図10(b)よりもメモリブロックの管理を簡易化できる。   Similarly, in FIG. 10C, a memory block constituting a frame is indicated by a pointer provided in the memory block. In this configuration, even if the number of memory blocks constituting a frame increases, the ratio of pointer areas in the memory blocks does not change, so there is no need to dynamically provide pointer areas. Therefore, the management of the memory block can be simplified as compared with FIG.

この実施形態の構成を適用することにより、バッファ用メモリブロックアドレス管理部104がフレーム先頭のメモリブロックのみを指示することにより、バッファ用メモリブロックアドレス管理部104の規模縮小とメモリブロックの管理を簡易化する効果がある。   By applying the configuration of this embodiment, the buffer memory block address management unit 104 designates only the memory block at the head of the frame, thereby simplifying the size reduction and memory block management of the buffer memory block address management unit 104. Has the effect of

<請求項2に係る発明の実施例2>
実施例2は、図2に示す個別FIFO型バッファに収容および管理する単位を、単一コネクションに限定するのではなく、コネクション群もしくは方路またはこれらの組合せとして扱うことを特徴とする。
<Embodiment 2 of the invention according to claim 2>
The second embodiment is characterized in that the unit accommodated and managed in the individual FIFO buffer shown in FIG. 2 is not limited to a single connection, but is handled as a connection group or a route or a combination thereof.

コネクションを識別する手段としては、例えばEthernet(登録商標)フレームならMAC(Media Access Control)アドレスやVLAN(Virtual LAN)タグ、ATM(Asynchronous Transfer Mode)セルならVPI(Virtual Path Identifier)/VCI(Virtual Channel Identifier)を用いることができる。また、装置に実装される物理ポートに関連付けることもできる。   As a means for identifying a connection, for example, an Ethernet (registered trademark) frame has a MAC (Media Access Control) address and a VLAN (Virtual LAN) tag, and an ATM (Asynchronous Transfer Mode) cell has a VPI (Virtual Path Identifier) / VCI (Virtual Channel). Identifier) can be used. It can also be associated with a physical port mounted on the device.

前述の手段により識別したコネクションを個別にバッファヘ収容することもできるが、場合によっては複数のコネクションをグループ化して扱うこともある。コネクションをグループ化したときには、コネクション群として単一コネクションと同等に扱い、同一の個別FIFO型バッファに収容する。   The connections identified by the above-described means can be individually accommodated in the buffer, but in some cases, a plurality of connections may be handled as a group. When connections are grouped, they are handled as a single connection as a connection group and are accommodated in the same individual FIFO buffer.

図11は、コネクションのグループ化に対応したフレームバッファ管理回路の構成図である。   FIG. 11 is a configuration diagram of a frame buffer management circuit corresponding to connection grouping.

図11は、図1と比較して、コネクショングループ情報管理部111を備える部分が異なる。入力されたフレームが保持するコネクション情報と、コネクショングループ情報管理部が保持するコネクションとグループの対応情報を参照することにより、コネクションのグループ化を実現する。   FIG. 11 differs from FIG. 1 in that the connection group information management unit 111 is provided. The connection grouping is realized by referring to the connection information held by the input frame and the correspondence information of the connection and group held by the connection group information management unit.

本実施例の構成を適用することにより、扱うコネクション(群)数を削減し、回路規模を縮小する効果がある。   By applying the configuration of this embodiment, the number of connections (groups) to be handled can be reduced, and the circuit scale can be reduced.

<請求項3に係る発明の実施例3>
実施例3は、図2に示す個別FIFO型バッファに収容および管理する単位を、コネクションごとに設定する1以上のQoSクラスまたはポートごととして扱うことを特徴とする。
<Third embodiment of the invention according to claim 3>
The third embodiment is characterized in that the unit accommodated and managed in the individual FIFO buffer shown in FIG. 2 is handled as one or more QoS classes or ports set for each connection.

図12は、コネクション内にマルチバッファを備えるフレームバッファ管理回路の構成図である。   FIG. 12 is a configuration diagram of a frame buffer management circuit including a multi-buffer in a connection.

図12は、図1と比較して、バッファ用メモリブロックアドレス管理部1120とキュー管理部1121とを、マルチクラスまたはマルチポートに対応させたマルチバッファ管理部を備える部分が異なる。   FIG. 12 differs from FIG. 1 in that the buffer memory block address management unit 1120 and the queue management unit 1121 are provided with a multi-buffer management unit corresponding to multi-class or multi-port.

図13は、コネクション内にマルチクラスを収容するバッファ用メモリブロックアドレス管理部のメモリ構成図である。図14は、コネクション内にマルチクラスを収容するキュー管理部のメモリ構成図である。それぞれ図3(b)および(c)のものと比較すると、各コネクション内にクラス別の領域が設けられている部分が異なる。   FIG. 13 is a memory configuration diagram of a buffer memory block address management unit that accommodates multiple classes in a connection. FIG. 14 is a memory configuration diagram of a queue management unit that accommodates multiple classes in a connection. Compared with those shown in FIGS. 3B and 3C, the portions where the areas for each class are provided in each connection are different.

図15は、論理的なフレームバッファ管理回路の構成図である。クラスごとに個別FIFO型バッファを割当てることで、図15(a)および(b)に示すように、クラスごとまたはコネクションごとに階層化して帯域の割当を行うことができる。   FIG. 15 is a configuration diagram of a logical frame buffer management circuit. By allocating an individual FIFO type buffer for each class, as shown in FIGS. 15A and 15B, it is possible to perform bandwidth allocation in a hierarchy for each class or connection.

図15(a)の構成とした場合、割当可能な全帯域をコネクションごとに分配し、分配された帯域をコネクション内のクラス間で分配する。つまり、コネクションに対する帯域分配をクラスに対する帯域分配より優先させる。これにより、例えば後段のフレーム読出部にラウンドロビン読出しや重付きラウンドロビン読出しを適用すれば、コネクション間の帯域割当に関する公平性を保ちながら、クラス間の帯域割当を行うことができる。   In the case of the configuration shown in FIG. 15A, the allocatable bandwidth is distributed for each connection, and the distributed bandwidth is distributed among the classes in the connection. That is, priority is given to bandwidth distribution for connections over bandwidth distribution for classes. Thus, for example, if round-robin reading or overlapped round-robin reading is applied to the subsequent frame reading unit, it is possible to perform bandwidth allocation between classes while maintaining fairness regarding bandwidth allocation between connections.

図15(b)の構成とした場合、割当可能な全帯域をクラスごとに分配し、分配された帯域を該当するクラスを有するコネクション間で分配する。つまり、クラスに対する帯域分配をコネクションに対する帯域分配より優先させる。これにより、例えば後段のフレーム読出部に優先読出しを適用すれば、フレームバッファ管理回路内における各コネクションの同一クラスの総和(図15(b)の破線で囲んだ範囲)に対して、帯域割当に関する優先度を設定できるし、後段のフレーム読出部にラウンドロビン読出しや重み付きラウンドロビン読出しを適用すれば、最大帯域や保証帯域を設定できる。   In the case of the configuration of FIG. 15B, all allocatable bandwidths are distributed for each class, and the distributed bandwidth is distributed among connections having the corresponding class. That is, priority is given to bandwidth distribution for classes over bandwidth distribution for connections. Thus, for example, if priority reading is applied to the frame reading unit in the subsequent stage, the bandwidth allocation is applied to the sum of the same class of each connection in the frame buffer management circuit (the range enclosed by the broken line in FIG. 15B). The priority can be set, and the maximum bandwidth and the guaranteed bandwidth can be set by applying round robin reading or weighted round robin reading to the subsequent frame reading unit.

本実施例の構成を適用することにより、扱うコネクションが、異なる帯域設定パラメータを有する複数のQoSクラスの収容を可能とする効果がある。   By applying the configuration of the present embodiment, there is an effect that the handled connection can accommodate a plurality of QoS classes having different bandwidth setting parameters.

なお、図13および図14では、各コネクションに割当てるクラス数が同一になっているが、クラス数はコネクションごとに異なっていても良い。   In FIGS. 13 and 14, the number of classes assigned to each connection is the same, but the number of classes may be different for each connection.

<請求項4に係る発明の実施例4>
実施例4は、バッファ用メモリブロックアドレス管理部内の複数のポインタをグループ化したものをアドレスグループとすると、このアドレスグループの使用領域を動的に割当てることを特徴とする。
<Embodiment 4 of the invention according to claim 4>
The fourth embodiment is characterized in that if an address group is formed by grouping a plurality of pointers in the buffer memory block address management unit, a use area of the address group is dynamically allocated.

図16は、バッファ用メモリブロックアドレス管理部のアドレスグループ化に対応したフレームバッファ管理回路の構成図である。   FIG. 16 is a configuration diagram of a frame buffer management circuit corresponding to the address grouping of the buffer memory block address management unit.

図16は、図1と比較して、アドレスグループ管理部113を備える部分が異なる。アドレスグループ管理部113は、アドレスグループの割当および開放を管理する。   FIG. 16 is different from FIG. 1 in that the address group management unit 113 is provided. The address group management unit 113 manages allocation and release of address groups.

図17は、ポインタのグループ化による動的にバッファ長を変更するバッファ用メモリブロックアドレス管理部のメモリ構成図である。   FIG. 17 is a memory configuration diagram of a buffer memory block address management unit that dynamically changes the buffer length by grouping pointers.

実施例4では、バッファ用メモリブロックアドレス管理部を複数に分割し、メモリブロックを指示するための1つ以上のポインタ(Pointer)と、グループを接続するポインタ(Next)とをグループ化する。バッファ用メモリブロックアドレス管理部104は、必要に応じてグループ単位でバッファを動的に割当/開放する。各コネクションにフレーム入力があり、新たなバッファが必要になる場合には、グループ単位で割当を行い、バッファに追加する。フレーム出力があり、バッファを構成するグループの中にすべてのポインタが未使用の状態になっている場合には、未使用のグループをバッファから開放し、他のコネクション用のバッファとして使用できるようにする。   In the fourth embodiment, the buffer memory block address management unit is divided into a plurality of groups, and one or more pointers (Pointer) for designating memory blocks and a pointer (Next) for connecting groups are grouped. The buffer memory block address management unit 104 dynamically allocates / releases buffers in groups as necessary. If each connection has a frame input and a new buffer is required, it is assigned in groups and added to the buffer. If there is a frame output and all pointers are unused in the group that constitutes the buffer, the unused group can be released from the buffer and used as a buffer for other connections. To do.

図18は、フレーム蓄積部とグループ化したバッファ用メモリアドレス管理部とキュー長管理部の関係を示す説明図である。   FIG. 18 is an explanatory diagram showing the relationship between the frame storage unit, the buffer memory address management unit grouped, and the queue length management unit.

バッファ用メモリアドレス管理部104がグループ化されている以外は、図6と同様である。各グループを連結するためには、グループに含まれるグループ接続用ポインタ(Next)を使用する。グループ接続用ポインタは、次に接続するグループのIDを指示する。後方にグループが接続されていない場合には、グループ接続用ポインタに終端を表す値(例えばNULL)を格納する。   Except that the buffer memory address management unit 104 is grouped, it is the same as FIG. In order to connect each group, a group connection pointer (Next) included in the group is used. The group connection pointer indicates the ID of the group to be connected next. If no group is connected to the back, a value (for example, NULL) indicating the end is stored in the group connection pointer.

図19A及び図19Bは、フレーム入出力時のフローチャートである。   19A and 19B are flowcharts at the time of frame input / output.

図19A(a)はフレーム入力時のフローである。図9(a)と比較して、(S4)および(S5)が追加されている部分が異なる。図19B(b)はフレーム出力時のフローである。図9(b)と比較して、(S6)および(S7)が追加されている部分が異なる。   FIG. 19A (a) is a flow at the time of frame input. Compared to FIG. 9A, the part where (S4) and (S5) are added is different. FIG. 19B (b) is a flow at the time of frame output. Compared to FIG. 9B, the part where (S6) and (S7) are added is different.

実施例4の構成を適用することにより、バッファ用メモリブロックアドレス管理部104の各個別FIFO型バッファの最大長を伸ばすことができるので、フレーム蓄積部102に空きがあるにも関わらず、バッファ用メモリブロックアドレス管理部104に空きがないために発生するフレームの廃棄を抑制する。つまり、バッファ用メモリブロックアドレス管理部104の使用効率を向上させる効果がある。   By applying the configuration of the fourth embodiment, the maximum length of each individual FIFO type buffer of the buffer memory block address management unit 104 can be extended. The discarding of the frame that occurs because the memory block address management unit 104 has no space is suppressed. That is, the use efficiency of the buffer memory block address management unit 104 is improved.

なお、実施例4では、バッファ用メモリブロックアドレス管理部104にNextポインタを用意することにより、単方向のグループ間のリンクを行ったが、双方向のリンク、または別途グループ管理用のテーブルを用いても良い。   In the fourth embodiment, a link between unidirectional groups is established by preparing a Next pointer in the buffer memory block address management unit 104. However, a bidirectional link or a separate group management table is used. May be.

<請求項5に係る発明の実施例5>
実施例5は、図2に示す各コネクションの個別FIFO型バッファ使用状況を監視し、使用状況に基づいて個別FIFO型バッファの最大キュー長を可変とすることを特徴とする。
<Embodiment 5 of the invention according to claim 5>
The fifth embodiment is characterized in that the individual FIFO type buffer usage status of each connection shown in FIG. 2 is monitored, and the maximum queue length of the individual FIFO type buffer is made variable based on the usage status.

図20は、最大キュー長を変動可能なフレームバッファ管理回路の構成図である。   FIG. 20 is a configuration diagram of a frame buffer management circuit capable of changing the maximum queue length.

図20は、図1と比較して、バッファ使用状況監視部114および最大キュー長決定部115を備えることが異なる。蓄積/読出/廃棄判別部103からバッファ用メモリブロックアドレス管理部104に対してフレーム入出力を命令された場合、バッファ用メモリブロックアドレス管理部104は、バッファ使用状況監視部114に対してフレーム入出力情報を通知する。バッファ使用状況監視部114は、各コネクションの現在の個別FIFO型バッファにおけるキュー状態を保持する。バッファ使用状況監視部114には、あらかじめ最大キュー長を変化させる条件を設定しておく。この条件を満たした場合、最大キュー長決定部115に対して通知する。最大キュー長決定部115は、この通知を受けると、反映すべき最大キュー長を決定し、バッファ用メモリブロックアドレス管理部104に最大キュー長情報を通知する。バッファ用メモリブロックアドレス管理部104は、通知されたキュー長情報を反映し、この値を超えてコネクションの個別FIFO型バッファのキューが伸長しないように制御する。   20 is different from FIG. 1 in that a buffer usage monitoring unit 114 and a maximum queue length determination unit 115 are provided. When the storage / read / discard discrimination unit 103 instructs the buffer memory block address management unit 104 to input / output a frame, the buffer memory block address management unit 104 inputs a frame to the buffer usage status monitoring unit 114. Notify output information. The buffer usage status monitoring unit 114 holds the current queue state of each individual FIFO buffer for each connection. A condition for changing the maximum queue length is set in advance in the buffer usage status monitoring unit 114. When this condition is satisfied, the maximum queue length determination unit 115 is notified. Upon receiving this notification, the maximum queue length determination unit 115 determines the maximum queue length to be reflected, and notifies the buffer memory block address management unit 104 of the maximum queue length information. The buffer memory block address management unit 104 reflects the notified queue length information, and controls so that the queue of the individual FIFO buffer of the connection does not extend beyond this value.

最大キュー長決定部が最大キュー長を更新するための条件としては、例えば、ある時刻におけるバッファ(メモリブロック)使用量に関する閾値の超過/非超過、または一定時間におけるバッファ(メモリブロック)総使用量に関する閾値の超過/非超過がある。   The conditions for the maximum queue length determination unit to update the maximum queue length include, for example, excess / non-exceeding of a threshold regarding the buffer (memory block) usage at a certain time, or the total buffer (memory block) usage at a certain time. There is an excess / non-exceed threshold.

実施例5の構成を適用することにより、特定のコネクションが偏在的にメモリブロックを使用して、他のコネクションがメモリブロックを使用することを妨げてしまい割当帯域が不公平になることを抑止する効果がある。   By applying the configuration of the fifth embodiment, it is possible to prevent a specific connection from using a memory block ubiquitously and preventing other connections from using the memory block, resulting in an unfair allocation of bandwidth. effective.

<請求項6に係る発明の実施例6>
実施例6は、図3(e)に示すフレーム長管理部を図3(a)に示すフレーム蓄積部に統合し、拡張型フレーム長管理部を備えることを特徴とする。
<Embodiment 6 of the invention according to claim 6>
The sixth embodiment is characterized in that the frame length management unit shown in FIG. 3 (e) is integrated with the frame storage unit shown in FIG. 3 (a), and an extended frame length management unit is provided.

図21は、拡張型フレーム蓄積部の構成図である。   FIG. 21 is a configuration diagram of the extended frame storage unit.

フレーム長管理部107は、対応するフレーム蓄積部102に格納しているフレームの長さを格納する。フレーム長を格納するのに必要なメモリ領域はたかだか数バイトである。フレーム蓄積部102のメモリブロックのメモリ領域はEthernet(登録商標)フレームを格納することを考えると1500Byte程度、最大フレーム長を2〜10程度の部分に分割しても100Byteのオーダとなる。よって、フレーム蓄積部102にフレーム長を格納するフィールドを追加しても、フレーム蓄積部102に対して容量や収容可能なメモリブロック数の点で与える影響は小さい。   The frame length management unit 107 stores the length of the frame stored in the corresponding frame storage unit 102. The memory area required to store the frame length is at most several bytes. Considering storing an Ethernet (registered trademark) frame, the memory area of the memory block of the frame storage unit 102 is on the order of 100 bytes even if the maximum frame length is divided into portions of about 2-10. Therefore, even if a field for storing the frame length is added to the frame storage unit 102, the influence on the frame storage unit 102 in terms of capacity and the number of memory blocks that can be accommodated is small.

一方、フレーム蓄積部102とフレーム長管理部107とを統合することにより、実装するメモリチップ数を削減することができる。実装するメモリチップ数を削減することにより、メモリチップに対してアクセスするためのピン数を減らすことができるため、実装の自由度が拡大する。   On the other hand, by integrating the frame storage unit 102 and the frame length management unit 107, the number of memory chips to be mounted can be reduced. By reducing the number of memory chips to be mounted, the number of pins for accessing the memory chip can be reduced, so that the degree of freedom of mounting is expanded.

フレームの実体とフレーム長の2つの情報は常に対にして扱うため、これらを統合して管理することにより、個別に管理するのに比べて制御を簡易化できる。   Since two pieces of information of the frame entity and the frame length are always handled as a pair, the management can be simplified by integrating them and managing them individually.

実施例6の構成を適用することにより、メモリ管理を簡易化し、物理的な実装の自由度を拡大する効果がある。   By applying the configuration of the sixth embodiment, there is an effect of simplifying memory management and expanding the degree of freedom of physical mounting.

<請求項7に係る発明の実施例7>
実施例7は、コネクションやフレームの属性により廃棄優先度を設け、優先的に廃棄するフレームを選択することを特徴とする。
<Embodiment 7 of Invention of Claim 7>
The seventh embodiment is characterized in that a discard priority is set according to connection and frame attributes, and a frame to be discarded preferentially is selected.

図22は、優先廃棄を実現するフレームバッファ管理回路の構成図である。   FIG. 22 is a configuration diagram of a frame buffer management circuit for realizing priority discard.

図22は、図1と比較して、優先廃棄フレーム選択部116を備えることが異なる。また、優先廃棄フレーム選択のための情報を収集する目的で、バッファ使用状況監視部114を備えることもできる。フレームバッファ管理回路1にフレーム入力があると、蓄積/読出/廃棄判別部103が入カフレームの処理方法を判別するが、フレーム蓄積部102のメモリブロックに空きがない場合には、入力されたフレームまたは既に蓄積しているフレームのいずれかを廃棄する。   FIG. 22 differs from FIG. 1 in that a priority discard frame selection unit 116 is provided. In addition, a buffer usage status monitoring unit 114 may be provided for the purpose of collecting information for selecting priority discard frames. When there is a frame input in the frame buffer management circuit 1, the accumulation / read / discard discrimination unit 103 discriminates the processing method of the incoming frame. If there is no free space in the memory block of the frame accumulation unit 102, it is inputted. Discard either the frame or the already stored frame.

廃棄対象のフレームを決定するには、フレームまたはコネクションの属性のみにより廃棄対象のフレームを判別する場合と、フレームまたはコネクションの属性に加え、バッファ使用状況情報を加味して廃棄対象のフレームを判別する場合がある。各場合の動作について、以下に例を示す。   To determine the frame to be discarded, the frame to be discarded is determined only by the attribute of the frame or connection, and the frame to be discarded is determined in consideration of the buffer usage information in addition to the frame or connection attribute. There is a case. An example of the operation in each case is shown below.

フレームの属性により廃棄対象のフレームを決定する場合には、判断のための情報としてフレーム内の優先度情報、例えば優先度付きのVLANタグに設定するプライオリティビット情報やIPパケットのTOS(Type of Service)情報などを用いることができる。入力されたフレームの優先度と蓄積されているフレームの優先度を管理しておき、新たに入力されたフレームの優先度が低ければそのまま廃棄するが、入力されたフレームの優先度が高ければ蓄積フレームの中の低優先フレームから廃棄する。   When determining a frame to be discarded based on the attribute of the frame, priority information in the frame, for example, priority bit information to be set in a VLAN tag with priority or TOS (Type of Service of IP packet) is used as information for determination. ) Information etc. can be used. The priority of the input frame and the priority of the stored frame are managed, and if the priority of the newly input frame is low, it is discarded as it is, but if the priority of the input frame is high, it is stored Discard from the low priority frame in the frame.

コネクションの属性により廃棄対象のフレームを決定する場合には、コネクションに設定した優先クラス情報などを用いることができる。帯域保証型のクラスとベストエフォート型のクラスがある場合、ベストエフォート型のクラスの方が優先度が低い。よって低優先のベストエフォート型クラスのフレームから先に廃棄される。   When determining the frame to be discarded based on the connection attribute, the priority class information set for the connection can be used. When there are a bandwidth guarantee type class and a best effort type class, the best effort type class has a lower priority. Therefore, the frame of the best-effort class with low priority is discarded first.

上記に述べた静的な情報に、バッファ使用状況情報を加味して廃棄フレームを判断する場合、廃棄対象フレームはトラフィック状況により動的に変化する。   When a discard frame is determined by adding the buffer usage status information to the static information described above, the discard target frame dynamically changes depending on the traffic status.

例えば、コネクションごとのバッファにおけるメモリブロック使用量の多寡を基に判断を行って、メモリブロック使用量の多いコネクションから先に廃棄を行う。または、計測時間を基準として遡る一定時間内に使用したメモリブロック量を基に判断することもできる。   For example, a determination is made based on the amount of memory block usage in the buffer for each connection, and a connection with a large memory block usage is discarded first. Alternatively, the determination can be made on the basis of the memory block amount used within a certain time that goes back with the measurement time as a reference.

実施例7の構成を適用することにより、低優先フレームを優先的に廃棄することで、高優先フレームの廃棄を防止するなどの優先サービスを提供可能とする効果、動的に負荷の高いコネクションのフレームから廃棄することで、パワーユーザなどの一部ユーザが共用バッファのリソースを寡占的に使用し、他ユーザのスループット低下の原因となることを防止するなど、コネクション間の公平性を確保する効果がある。   By applying the configuration of the seventh embodiment, it is possible to provide priority services such as preventing the discard of high priority frames by preferentially discarding low priority frames. By discarding from the frame, the effect of ensuring fairness between connections, such as preventing some users, such as power users, from using the shared buffer resources exclusively and causing other users to reduce the throughput, etc. There is.

フレームバッファ管理回路の構成図である。It is a block diagram of a frame buffer management circuit. 論理的なフレームバッファ管理回路の構成図である。It is a block diagram of a logical frame buffer management circuit. 図1に基づく各機能のバッファ構成図である。It is a buffer block diagram of each function based on FIG. フレーム蓄積部と収容フレームとの関係を示す説明図である。It is explanatory drawing which shows the relationship between a frame storage part and an accommodation frame. フレーム蓄積部とバッファ用メモリアドレス管理部の関係を示す説明図である。It is explanatory drawing which shows the relationship between a frame storage part and a buffer memory address management part. バッファ長メモリブロックアドレス管理部とキュー長管理部の関係を示す説明図である。It is explanatory drawing which shows the relationship between a buffer length memory block address management part and a queue length management part. フレーム蓄積部と空きメモリブロック管理部の関係を示す説明図である。It is explanatory drawing which shows the relationship between a frame storage part and an empty memory block management part. フレーム蓄積部と空きメモリブロック管理部の関係を示す説明図である。It is explanatory drawing which shows the relationship between a frame storage part and an empty memory block management part. フレーム蓄積部とフレーム長管理部の関係を示す説明図である。It is explanatory drawing which shows the relationship between a frame storage part and a frame length management part. フレームバッファ管理回路におけるフレーム入出力時のフローチャートである。It is a flowchart at the time of frame input / output in the frame buffer management circuit. フレームを複数メモリブロックに分割するときの管理方法の説明図である。It is explanatory drawing of the management method when dividing | segmenting a flame | frame into several memory blocks. コネクションのグループ化に対応したフレームバッファ管理回路の構成図である。It is a block diagram of a frame buffer management circuit corresponding to connection grouping. コネクション内にマルチバッファを備えるフレームバッファ管理回路の構成図である。It is a block diagram of the frame buffer management circuit provided with a multi-buffer in a connection. コネクション内にマルチクラスを収容するバッファ用メモリブロックアドレス管理部のメモリ構成図である。It is a memory block diagram of the memory block address management part for buffers which accommodates a multi class in a connection. コネクション内にマルチクラスを収容するキュー管理部のメモリ構成図である。It is a memory block diagram of the queue management part which accommodates a multiclass in a connection. 論理的なフレームバッファ管理回路の構成図である。It is a block diagram of a logical frame buffer management circuit. バッファ用メモリブロックアドレス管理部のアドレスグループ化に対応したフレームバッファ管理回路の構成図である。It is a block diagram of the frame buffer management circuit corresponding to the address grouping of the buffer memory block address management unit. ポインタのグループ化による動的にバッファ長を変更するバッファ用メモリブロックアドレス管理部のメモリ構成図である。It is a memory block diagram of the buffer memory block address management part which changes a buffer length dynamically by the grouping of a pointer. フレーム蓄積部とグループ化したバッファ用メモリアドレス管理部とキュー長管理部の関係を示す説明図である。It is explanatory drawing which shows the relationship between the buffer memory address management part grouped with the frame storage part, and the queue length management part. フレーム入出力時のフローチャートである。It is a flowchart at the time of frame input / output. フレーム入出力時のフローチャートである。It is a flowchart at the time of frame input / output. 最大キュー長を変動可能なフレームバッファ管理回路の構成図である。It is a block diagram of a frame buffer management circuit capable of varying the maximum queue length. 拡張型フレーム蓄積部の構成図である。It is a block diagram of an extended type frame storage part. 優先廃棄を実現するフレームバッファ管理回路の構成図である。It is a block diagram of the frame buffer management circuit which implement | achieves priority discard.

符号の説明Explanation of symbols

1 フレームバッファ管理回路
101 フレーム振分部
102 フレーム蓄積部
103 蓄積/読出/廃棄判別部
104 バッファ用メモリブロックアドレス管理部
105 キュー管理部
106 空きメモリブロック管理部
107 フレーム長管理部
109 フレーム読出部
110 フレーム廃棄部
111 コネクショングループ情報管理部
112 マルチバッファ管理部
1120 マルチクラス/ポート化したバッファ用メモリブロックアドレス管理部
1121 マルチクラス/ポート化したキュー管理部
113 アドレスグループ管理部
114 バッファ使用状況監視部
DESCRIPTION OF SYMBOLS 1 Frame buffer management circuit 101 Frame allocation part 102 Frame accumulation part 103 Accumulation / reading / discard discrimination part 104 Buffer memory block address management part 105 Queue management part 106 Empty memory block management part 107 Frame length management part 109 Frame reading part 110 Frame discard unit 111 Connection group information management unit 112 Multi-buffer management unit 1120 Multi-class / ported buffer memory block address management unit 1121 Multi-class / ported queue management unit 113 Address group management unit 114 Buffer usage status monitoring unit

Claims (14)

1以上のコネクションを収容し、コネクションごとにFIFO型のデータ構造を有し、全コネクション間で共用するメモリを動的に個別のコネクション用バッファとして割当および開放を行うフレームバッファ管理回路において、
入力されたフレームに対して、フレームヘッダ部に記録されている属性情報又は事前に与えられる設定値に基づいて、振分先のバッファを決定するフレーム振分手段と、
メモリブロックの集合として構成され、入力されたフレームの実体を格納するフレーム蓄積手段と、
コネクション用バッファを構成し、前記フレーム蓄積手段の一部であるメモリブロックをポインタにより指示および管理し、FIFO型のデータ構造を有するバッファ用メモリブロックアドレス管理手段と、
コネクション用バッファの先頭位置および後尾位置をポインタにより指示および管理するキュー管理手段と、
前記フレーム蓄積手段において使用していないメモリブロックをポインタにより指示および管理する空きメモリブロック管理手段と、
コネクション用バッファに収容するフレームの長さを保持するフレーム長管理手段と、
バッファのフレーム蓄積状態に関する情報に基づいて、操作対象となるフレームと蓄積もしくは読出または廃棄のいずれかの操作を実行するかを判別する蓄積/読出/廃棄判別手段と、
前記フレーム蓄積手段からフレームを読出すフレーム読出手段と、
バッファにフレームを格納しきれなくなったときにフレームを廃棄するフレーム廃棄手段と
を有することを特徴とするフレームバッファ管理回路。
In a frame buffer management circuit that accommodates one or more connections, has a FIFO type data structure for each connection, and dynamically allocates and releases memory shared among all connections as individual connection buffers.
Frame distribution means for determining an allocation destination buffer for the input frame based on attribute information recorded in the frame header part or a setting value given in advance;
Frame accumulation means configured as a set of memory blocks and storing the entity of the input frame;
A buffer memory block address management means having a FIFO type data structure, comprising a connection buffer, instructing and managing a memory block which is a part of the frame storage means by a pointer;
A queue management means for indicating and managing the head position and the tail position of the connection buffer with a pointer;
Free memory block management means for indicating and managing memory blocks not used in the frame storage means by pointers;
Frame length management means for holding the length of the frame accommodated in the connection buffer;
Accumulation / reading / discarding discriminating means for discriminating whether to perform a storage, reading, or discarding operation from a frame to be operated based on information on the frame accumulation state of the buffer;
Frame reading means for reading a frame from the frame storage means;
A frame buffer management circuit comprising: frame discarding means for discarding a frame when frames cannot be stored in the buffer.
バッファの管理単位を単一コネクションの代わりに、コネクション群もしくは方路またはこれらの組合わせとして扱うコネクショングループ情報管理手段を備えることを特徴とする請求項1に記載のフレームバッファ管理回路。   2. The frame buffer management circuit according to claim 1, further comprising connection group information management means for handling a buffer management unit as a connection group, a route, or a combination thereof instead of a single connection. 各コネクションが1以上のQoSクラス又はポートごとにバッファを保持および管理するマルチバッファ管理手段を備え、
前記マルチバッファ管理手段は、コネクション内に1以上のQoSクラスまたはポートを収容する前記バッファ用メモリブロック管理手段と、
コネクション内に1以上のQoSクラスまたはポートを収容する前記キュー管理手段を備えることを特徴とする請求項1又は2に記載のフレームバッファ管理回路。
Each connection has a multi-buffer management means for holding and managing a buffer for each one or more QoS classes or ports,
The multi-buffer management means includes the buffer memory block management means for accommodating one or more QoS classes or ports in a connection;
The frame buffer management circuit according to claim 1, further comprising the queue management unit that accommodates one or more QoS classes or ports in a connection.
前記バッファ用メモリブロックアドレス管理手段を構成する1以上のブロックをグループ化し、グループごとに前記バッファ用メモリブロックアドレス管理手段の一部として割当および開放を行う、アドレスグループ管理手段を備えることを特徴とする請求項1から3のいずれか1項に記載のフレームバッファ管理回路。   One or more blocks constituting the buffer memory block address management means are grouped, and address group management means is provided for performing allocation and release as a part of the buffer memory block address management means for each group. The frame buffer management circuit according to any one of claims 1 to 3. 各コネクションのバッファ使用状況を監視するバッファ使用状況監視手段と、
バッファ使用状況監視手段から取得した情報に基づいて、前記バッファ用メモリブロックアドレス管理手段で使用する最大キュー長を動的に決定する最大キュー長決定手段を備えることを特徴とする請求項1から4のいずれか1項に記載のフレームバッファ管理回路。
Buffer usage monitoring means for monitoring the buffer usage of each connection;
5. A maximum queue length determination unit that dynamically determines a maximum queue length used by the buffer memory block address management unit based on information acquired from a buffer usage status monitoring unit. The frame buffer management circuit according to any one of the above.
フレームバッファに収容するフレームの長さを、前記フレーム長管理手段の代わりに、前記フレーム蓄積手段に含まれるメモリブロック内にフレームの実体と併せて記録する拡張型フレーム蓄積手段を備えることを特徴とする請求項1から5のいずれか1項に記載のフレームバッファ管理回路。   An extended frame storage means for recording the length of the frame accommodated in the frame buffer together with the substance of the frame in a memory block included in the frame storage means, instead of the frame length management means. The frame buffer management circuit according to any one of claims 1 to 5. 優先的に廃棄するフレームを選択する優先廃棄フレーム選択手段を備えることを特徴とする請求項1から6のいずれか1項に記載のフレームバッファ管理回路。   7. The frame buffer management circuit according to claim 1, further comprising priority discard frame selection means for selecting a frame to be discarded preferentially. 1以上のコネクションを収容し、コネクションごとにFIFO型のデータ構造を有し、全コネクション間で共用するメモリを動的に個別のコネクション用バッファとして割当および開放を行うフレームバッファ管理方法において、
入力されたフレームに対して、フレームヘッダ部に記録されている属性情報又は事前に与えられる設定値に基づいて、振分先のバッファを決定するフレーム振分ステップと、
メモリブロックの集合として構成され、入力されたフレームの実体を格納するフレーム蓄積ステップと、
コネクション用バッファを構成し、FIFO型のデータ構造であって、一部であるメモリブロックをポインタにより指示および管理するバッファ用メモリブロックアドレス管理ステップと、
コネクション用バッファの先頭位置および後尾位置をポインタにより指示および管理するキュー管理ステップと、
使用していない前記メモリブロックをポインタにより指示および管理する空きメモリブロック管理ステップと、
コネクション用バッファに収容するフレームの長さを保持するフレーム長管理ステップと、
バッファのフレーム蓄積状態に関する情報に基づいて、操作対象となるフレームと蓄積もしくは読出または廃棄のいずれかの操作を実行するかを判別する蓄積/読出/廃棄判別ステップと、
蓄積されたフレームを読出すフレーム読出ステップと、
バッファにフレームを格納しきれなくなったときにフレームを廃棄するフレーム廃棄ステップと
を有することを特徴とするフレームバッファ管理方法。
In a frame buffer management method for accommodating one or more connections, having a FIFO-type data structure for each connection, and dynamically allocating and releasing memory shared among all connections as individual connection buffers,
A frame distribution step for determining an allocation destination buffer based on attribute information recorded in the frame header part or a setting value given in advance for the input frame;
A frame accumulating step configured as a set of memory blocks and storing the entity of the input frame;
A buffer memory block address management step that configures a connection buffer and is a FIFO type data structure, and indicates and manages a memory block that is a part by a pointer;
A queue management step for indicating and managing the start position and the end position of the connection buffer with pointers;
A free memory block management step for indicating and managing the memory blocks that are not used by a pointer;
A frame length management step for holding the length of the frame accommodated in the connection buffer;
An accumulation / reading / discarding discrimination step for discriminating whether to perform an operation of accumulation, reading, or discarding from a frame to be operated based on information on a frame accumulation state of the buffer;
A frame reading step for reading the accumulated frames;
A frame buffer management method comprising: a frame discarding step for discarding a frame when the frame cannot be stored in the buffer.
バッファの管理単位を単一コネクションの代わりに、コネクション群もしくは方路またはこれらの組合わせとして扱うコネクショングループ情報管理ステップを有することを特徴とする請求項8に記載のフレームバッファ管理方法。   9. The frame buffer management method according to claim 8, further comprising a connection group information management step in which a buffer management unit is handled as a connection group, a route, or a combination thereof instead of a single connection. 各コネクションが1以上のQoSクラス又はポートごとにバッファを保持および管理するマルチバッファ管理ステップを有し、
前記マルチバッファ管理ステップは、コネクション内に1以上のQoSクラスまたはポートを収容するバッファ用メモリブロック管理ステップと、コネクション内に1以上のQoSクラスまたはポートを収容するキュー管理ステップとを備えることを特徴とする請求項8又は9に記載のフレームバッファ管理方法。
A multi-buffer management step in which each connection holds and manages a buffer for each of one or more QoS classes or ports;
The multi-buffer management step includes a buffer memory block management step for accommodating one or more QoS classes or ports in the connection, and a queue management step for accommodating one or more QoS classes or ports in the connection. The frame buffer management method according to claim 8 or 9.
前記バッファ用メモリブロックアドレス管理手段を構成する1以上のブロックをグループ化し、グループごとに前記バッファ用メモリブロックアドレス管理手段の一部として割当および開放を行う、アドレスグループ管理ステップを有することを特徴とする請求項8から10のいずれか1項に記載のフレームバッファ管理方法。   One or more blocks constituting the buffer memory block address management means are grouped, and an address group management step is performed for assigning and releasing each group as part of the buffer memory block address management means. The frame buffer management method according to any one of claims 8 to 10. 各コネクションのバッファ使用状況を監視するバッファ使用状況監視ステップと、
バッファ使用状況監視ステップから取得した情報に基づいて、前記バッファ用メモリブロックアドレス管理ステップで使用する最大キュー長を動的に決定する最大キュー長決定ステップを有することを特徴とする請求項8から11のいずれか1項に記載のフレームバッファ管理方法。
A buffer usage monitoring step for monitoring the buffer usage of each connection;
12. A maximum queue length determining step for dynamically determining a maximum queue length used in the buffer memory block address management step based on information acquired from a buffer usage status monitoring step. The frame buffer management method according to any one of the above.
フレームバッファに収容するフレームの長さを、前記フレーム長管理ステップの代わりに、蓄積されたメモリブロック内にフレームの実体と併せて記録する拡張型フレーム蓄積ステップを備えることを特徴とする請求項8から12のいずれか1項に記載のフレームバッファ管理方法。   9. The extended frame storage step for recording the length of a frame accommodated in a frame buffer together with the substance of the frame in the stored memory block, instead of the frame length management step. 13. The frame buffer management method according to any one of items 1 to 12. 優先的に廃棄するフレームを選択する優先廃棄フレーム選択ステップを備えることを特徴とする請求項8から13のいずれか1項に記載のフレームバッファ管理方法。
14. The frame buffer management method according to claim 8, further comprising a priority discard frame selection step of selecting a frame to be discarded preferentially.
JP2004111024A 2004-04-05 2004-04-05 Frame buffer management circuit and method Expired - Lifetime JP3791529B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004111024A JP3791529B2 (en) 2004-04-05 2004-04-05 Frame buffer management circuit and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004111024A JP3791529B2 (en) 2004-04-05 2004-04-05 Frame buffer management circuit and method

Publications (2)

Publication Number Publication Date
JP2005295443A JP2005295443A (en) 2005-10-20
JP3791529B2 true JP3791529B2 (en) 2006-06-28

Family

ID=35327845

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004111024A Expired - Lifetime JP3791529B2 (en) 2004-04-05 2004-04-05 Frame buffer management circuit and method

Country Status (1)

Country Link
JP (1) JP3791529B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5088145B2 (en) * 2008-01-10 2012-12-05 富士通株式会社 Packet relay apparatus, control method, and packet relay program

Also Published As

Publication number Publication date
JP2005295443A (en) 2005-10-20

Similar Documents

Publication Publication Date Title
US10341260B2 (en) Early queueing network device
CA2402242C (en) Non-consecutive data readout scheduler
AU730804B2 (en) Method and apparatus for per traffic flow buffer management
US8520522B1 (en) Transmit-buffer management for priority-based flow control
JP3347926B2 (en) Packet communication system and method with improved memory allocation
US5991295A (en) Digital switch
US7321594B2 (en) Router apparatus provided with output port circuit including storage unit, and method of controlling output port circuit of router apparatus
US7058057B2 (en) Network switch port traffic manager having configurable packet and cell servicing
US6259699B1 (en) System architecture for and method of processing packets and/or cells in a common switch
CN1736068B (en) Flow management structure system
US6888848B2 (en) Compact segmentation of variable-size packet streams
JP4070610B2 (en) Manipulating data streams in a data stream processor
JP3866425B2 (en) Packet switch
US6501757B1 (en) ATM switch
US7023856B1 (en) Method and system for providing differentiated service on a per virtual circuit basis within a packet-based switch/router
US20040151197A1 (en) Priority queue architecture for supporting per flow queuing and multiple ports
US8312243B2 (en) Memory management in network processors
JPWO2004066570A1 (en) Network switch device and network switch method
US10491543B1 (en) Shared memory switch fabric system and method
US8571049B2 (en) Setting and changing queue sizes in line cards
US6876659B2 (en) Enqueuing apparatus for asynchronous transfer mode (ATM) virtual circuit merging
JP3561870B2 (en) Packet buffer device
JP3791529B2 (en) Frame buffer management circuit and method
JP2003124953A (en) Ring network system
JPH11122257A (en) Common buffer type switch

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060224

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: 20060314

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060327

R151 Written notification of patent or utility model registration

Ref document number: 3791529

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

Free format text: PAYMENT UNTIL: 20090414

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100414

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100414

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110414

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120414

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130414

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20140414

Year of fee payment: 8

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term