JP5359692B2 - Frame output method and frame output device - Google Patents

Frame output method and frame output device Download PDF

Info

Publication number
JP5359692B2
JP5359692B2 JP2009198486A JP2009198486A JP5359692B2 JP 5359692 B2 JP5359692 B2 JP 5359692B2 JP 2009198486 A JP2009198486 A JP 2009198486A JP 2009198486 A JP2009198486 A JP 2009198486A JP 5359692 B2 JP5359692 B2 JP 5359692B2
Authority
JP
Japan
Prior art keywords
frame
queue
read
buffer
unit
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
JP2009198486A
Other languages
Japanese (ja)
Other versions
JP2011049983A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009198486A priority Critical patent/JP5359692B2/en
Publication of JP2011049983A publication Critical patent/JP2011049983A/en
Application granted granted Critical
Publication of JP5359692B2 publication Critical patent/JP5359692B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

本発明は、フレームバッファからフレームを読み出して出力するフレーム出力方法及びフレーム出力装置に関する。   The present invention relates to a frame output method and a frame output device for reading out and outputting a frame from a frame buffer.

近年においてはレイヤ2スイッチ(以下「L2スイッチ」と呼ぶ)装置の高速大容量化が進んでおり、それに伴いポートあたりの伝送レートの高速化、及び装置あたりのポート数の高密度化が求められている。高速大容量化が進むと、通信品質QoS(Quality of Service)処理も高速で行う必要があり、L2スイッチ装置のイーグレス(出力側)機能であるスケジューラにも影響を及ぼす。   In recent years, high-speed and large-capacity layer 2 switch (hereinafter referred to as “L2 switch”) devices are progressing, and accordingly, a higher transmission rate per port and a higher number of ports per device are required. ing. As the speed and capacity increase, communication quality QoS (Quality of Service) processing needs to be performed at high speed, which also affects the scheduler that is an egress (output side) function of the L2 switching device.

図1はL2スイッチの一例の構成図を示す。図1において、ポート#1〜#Mから入力されたフレームは、ヘッダ情報を基にイングレス部1のキュー#1〜#Nに割り当てられて入力レートを調整される。そして、イングレス部1から出力され、スイッチング部2を通ってイーグレス部3に到達したフレームはヘッダ情報を基にしてフレームバッファの宛先キュー#1〜#Nにフレームが格納される。   FIG. 1 shows a configuration diagram of an example of an L2 switch. In FIG. 1, the frames input from the ports # 1 to #M are assigned to the queues # 1 to #N of the ingress unit 1 and the input rate is adjusted based on the header information. A frame output from the ingress unit 1 and reaches the egress unit 3 through the switching unit 2 is stored in the destination queues # 1 to #N of the frame buffer based on the header information.

イーグレス部3の機能であるスケジューラは、宛先キュー毎のフレーム蓄積情報及びトークン有無情報(及び宛先キューの優先度)を基に、ラウンドロビンによりフレームを読み出すポートと宛先キューを決定する。スケジューラは所定長のページ単位に分割されたフレームバッファ内の決定した宛先キューから、ポインタチェーンをたどってフレームをページ単位に読み出しを行う。そして、読み出したフレームレングスに相当するトークンを減算する。トークンがなくなるまで当該キューからフレームが読み出し可能であり、トークンは周期的に一定量が加算される。フレームバッファから読み出されたフレームはポート#1〜#Mから出力される。   The scheduler, which is a function of the egress unit 3, determines a port and a destination queue from which frames are read out by round robin based on frame accumulation information and token presence / absence information (and destination queue priority) for each destination queue. The scheduler reads the frame in page units from the determined destination queue in the frame buffer divided into page units of a predetermined length by following the pointer chain. Then, the token corresponding to the read frame length is subtracted. Frames can be read from the queue until there are no more tokens, and a fixed amount of tokens is periodically added. Frames read from the frame buffer are output from ports # 1 to #M.

図2は従来のイーグレス部の一例の構成図を示す。図2において、スイッチング部2よりフレームが入力され、ヘッダ処理部11に供給される。ヘッダ処理部11は図3に示すようにフレームの先頭に装置内ヘッダを付加する。装置内ヘッダにはフレーム出力先の宛先キュー情報及びフレームの長さを表すレングス情報(フレームレングス)が含まれる。装置内ヘッダを付けたフレームはバッファ制御部12に供給され、装置内ヘッダから抽出された宛先キュー情報及びフレームレングスはポインタ管理部13に供給される。   FIG. 2 shows a configuration diagram of an example of a conventional egress section. In FIG. 2, the frame is input from the switching unit 2 and supplied to the header processing unit 11. The header processing unit 11 adds an in-device header to the head of the frame as shown in FIG. The in-device header includes destination queue information of the frame output destination and length information (frame length) indicating the length of the frame. The frame with the in-device header is supplied to the buffer control unit 12, and the destination queue information and the frame length extracted from the in-device header are supplied to the pointer management unit 13.

ポインタ管理部13のライトポインタ発行部13bは、テールポインタ管理メモリ13a及びチェーン管理メモリ14にアクセスして、宛先キュー情報が示すキューにライトポインタを発行してバッファ制御部12のライト制御部12aに供給する。   The write pointer issuing unit 13b of the pointer management unit 13 accesses the tail pointer management memory 13a and the chain management memory 14, issues a write pointer to the queue indicated by the destination queue information, and sends it to the write control unit 12a of the buffer control unit 12. Supply.

テールポインタ管理メモリ13aはキューの最後のポインタをキュー毎に管理し、チェーン管理メモリ14はキューのポインタチェーンとフレームレングスをキュー毎に管理する。これにより、ライト制御部12aはライトポインタをアドレスとしてフレームバッファ(メモリ)15にフレームを書き込む。   The tail pointer management memory 13a manages the last pointer of the queue for each queue, and the chain management memory 14 manages the queue pointer chain and frame length for each queue. As a result, the write control unit 12a writes the frame in the frame buffer (memory) 15 using the write pointer as an address.

テールポインタ管理メモリ13aはライトポインタの発行により、エンキュー情報(フレーム入力情報)をスケジューラ部16のフレーム有無情報部16aに供給する。これによりフレーム有無情報部16aではキュー内にフレームありと認識してスケジューラ部16内のラウンドロビン部16bに通知する。   The tail pointer management memory 13a supplies enqueue information (frame input information) to the frame presence / absence information unit 16a of the scheduler unit 16 by issuing a write pointer. As a result, the frame presence / absence information unit 16a recognizes that there is a frame in the queue and notifies the round robin unit 16b in the scheduler unit 16 of it.

スケジューラ部16のトークンカウンタ16cはキュー毎にトークンをカウントしている。トークンは周期的に一定量が加算されると共に、キューからフレームが読み出される度にフレームレングスだけ減算される。なお、カウント値がゼロ又はマイナス値となったキューについてのトークン有無情報はトークンなしを示している。   The token counter 16c of the scheduler unit 16 counts tokens for each queue. A fixed amount of tokens is periodically added, and the frame length is subtracted every time a frame is read from the queue. Note that the token presence / absence information for the queue whose count value is zero or minus indicates that there is no token.

ラウンドロビン部16bはトークンカウンタ16cからトークン有無情報を通知され、フレーム有無情報部16aからフレーム有無情報を通知される。ラウンドロビン部16bはラウンドロビン方式で読み出すキューを決定する。ラウンドロビン部16bはトークン及びフレームの両方がある場合にエントリ候補とし、エントリ候補の中からキューの優先度に応じて読み出しを行うキューを決定する。そして、ラウンドロビン部16bはポインタ管理部13のリードポインタ発行部13cに読み出し要求と決定したキュー情報を供給する。この時、トークンもしくはフレームの一方がない場合は読み出し要求を出力しない。   The round robin unit 16b is notified of token presence / absence information from the token counter 16c, and is notified of frame presence / absence information from the frame presence / absence information unit 16a. The round robin unit 16b determines a queue to be read by the round robin method. The round robin unit 16b determines an entry candidate when there are both a token and a frame, and determines a queue to be read from the entry candidates according to the priority of the queue. Then, the round robin unit 16b supplies the queue information determined to be a read request to the read pointer issuing unit 13c of the pointer management unit 13. At this time, if there is no token or frame, no read request is output.

リードポインタ発行部13cは決定したキュー情報でキューの先頭ポインタを管理しているヘッドポインタ管理メモリ13dとチェーン管理メモリ14をアクセスすることで、ポインタチェーンをたどってページ単位に読み出しを行うためのリードポインタを順次発行する。   The read pointer issuing unit 13c accesses the head pointer management memory 13d that manages the head pointer of the queue with the determined queue information and the chain management memory 14 to read the page unit by reading the pointer chain. Issue pointers sequentially.

そして、リードポインタ発行部13cは発行したリードポインタをアドレスとしてバッファ制御部12のリード制御部12bに供給する。リード制御部12bはフレームバッファ15よりページ単位にフレームを読み出す。   Then, the read pointer issuing unit 13c supplies the issued read pointer as an address to the read control unit 12b of the buffer control unit 12. The read control unit 12b reads a frame from the frame buffer 15 in units of pages.

リードポインタ発行部13cはリードポインタの発行時にチェーン管理メモリ14に格納されている当該フレームのフレームレングスをトークンカウンタ16cの値から減算する。   The read pointer issuing unit 13c subtracts the frame length of the frame stored in the chain management memory 14 from the value of the token counter 16c when the read pointer is issued.

ヘッドポインタ管理メモリ13dはチェーン管理メモリ14に格納されている当該キュー(フレームを読み出したキュー)内の次フレーム(ネクスト・チェーン)がなくなったときにフレーム有無情報部16aの当該キューのフレーム有無情報をフレームなしと更新する。これによりフレーム有無情報部16aではキュー内にフレームなしと認識してスケジューラ部16内のラウンドロビン部16bに通知する。   The head pointer management memory 13d stores the frame presence / absence information of the queue in the frame presence / absence information unit 16a when the next frame (next chain) in the queue (queue from which the frame has been read) stored in the chain management memory 14 is exhausted. Update with no frame. As a result, the frame presence / absence information unit 16a recognizes that there is no frame in the queue and notifies the round robin unit 16b in the scheduler unit 16 of it.

読み出されたフレームは出力バッファ部17においてポート単位のバッファに一旦格納され、外部へ出力される。   The read frame is temporarily stored in a buffer for each port in the output buffer unit 17 and output to the outside.

なお、可変長フレームに対して高速かつ少ないハードウェア規模でQoS制御、廃棄制御等の複雑な制御を実現する大容量フレームスイッチとスケジューリング機能についての提案が従来からなされている(例えば特許文献1参照)。   Conventionally, proposals have been made for a large-capacity frame switch and a scheduling function that realize complex control such as QoS control and discard control at a high speed and with a small hardware scale for variable-length frames (see, for example, Patent Document 1). ).

特開2001−339427号公報JP 2001-339427 A

設定された出力帯域を保証するためには、スケジューラにより読み出すフレームを決定してから、次に読み出すフレームを決定するまでの時間をある一定の周期で行う必要がある。   In order to guarantee the set output bandwidth, it is necessary to perform the time from the determination of the frame to be read by the scheduler to the determination of the next frame to be read at a certain period.

スケジューラ部16はラウンドロビン方式で読み出すキューを決定する際に、トークン及びフレームの両方がある場合にラウンドロビンへのエントリ候補とし、トークンもしくはフレームの一方がない場合は読み出し要求を出力しない。この際に、フレーム有無情報及びトークン有無情報は前のフレームを読み出してからでないと確定しないため、図4に示すように、ラウンドロビンの処理を行う時間T1は、固定のフレーム読み出し周期T2のうち、フレーム有無情報及びトークン有無情報が確定したあとの少しの時間しか割り当てられない。   When determining a queue to be read by the round robin method, the scheduler unit 16 sets a round robin entry candidate when both a token and a frame exist, and does not output a read request when there is no token or frame. At this time, since the frame presence / absence information and the token presence / absence information are not determined until after the previous frame is read, the time T1 for performing the round robin processing as shown in FIG. Only a short time is allocated after the frame presence / absence information and token presence / absence information are determined.

図4では、時刻t1においてフレームあり、かつ、トークンありであるため、時刻t2でフレーム読み出し要求が出力される。また、時刻t3においてフレームなし、かつ、トークンなしであるため、時刻t4でフレーム読み出し要求は出力されない。   In FIG. 4, since there is a frame and a token at time t1, a frame read request is output at time t2. Also, since there is no frame and no token at time t3, no frame read request is output at time t4.

スケジューラ部16はフレーム有無情報及びトークン有無情報が確定してから読み出し要求を出力するまでの時間をある一定の時間以内に行わなければ伝送レート割れを起こすことになる。そのため、ポインタ管理部13とスケジューラ部16間の情報のやりとりは、高速で行わなければならない。しかし、キューの数が増大すると、スケジューラ部16が各キューを検索して読み出すキューを決定する処理に要する時間が増大し、スケジューラ部16の回路設計が破綻してしまうという問題があった。   The scheduler unit 16 will break the transmission rate unless the time from when the frame presence / absence information and the token presence / absence information is determined until the read request is output within a certain time. Therefore, the exchange of information between the pointer management unit 13 and the scheduler unit 16 must be performed at high speed. However, when the number of queues increases, the time required for the scheduler unit 16 to search for each queue and determine a queue to be read increases, and there is a problem that the circuit design of the scheduler unit 16 breaks down.

開示のフレーム出力装置は、フレームの読み出し完了を待たずに次のスケジューリングを先行して行うことを目的とする。   An object of the disclosed frame output apparatus is to perform the next scheduling in advance without waiting for completion of frame reading.

開示の一実施形態によるフレーム出力装置は、入力されたフレームを宛先に応じたキュー毎にフレームバッファに書き込むアドレスを生成し、前記フレームバッファからフレームを読み出すアドレスを生成するポインタ管理手段と、
前記フレームバッファからのフレームの読み出し順序を調整してキュー毎のフレーム読み出し要求を生成するスケジューラ手段と、
前記スケジューラ手段で生成したフレーム読み出し要求を蓄積し、蓄積されているフレーム読み出し要求を順次取り出して前記ポインタ管理手段に供給する要求バッファ手段と
前記フレームバッファのキュー毎のフレーム蓄積数をカウントして前記スケジューラ手段に伝える蓄積数カウント手段と、
を有し、前記ポインタ管理手段で生成したアドレスで前記フレームバッファから読み出したフレームを出力する。
A frame output device according to an embodiment of the disclosure generates an address for writing an input frame to a frame buffer for each queue according to a destination, and generates a pointer management unit that generates an address for reading the frame from the frame buffer;
Scheduler means for adjusting a frame reading order from the frame buffer and generating a frame reading request for each queue;
Request buffer means for accumulating frame read requests generated by the scheduler means, sequentially taking out the stored frame read requests and supplying them to the pointer management means ;
An accumulated number counting means for counting the number of accumulated frames for each queue of the frame buffer and transmitting it to the scheduler means;
The frame read from the frame buffer is output at the address generated by the pointer management means.

本実施形態によれば、フレームの読み出し完了を待たずに次のスケジューリングを先行して行うことができる。   According to the present embodiment, the next scheduling can be performed in advance without waiting for completion of frame reading.

L2スイッチの一例の構成図である。It is a block diagram of an example of L2 switch. 従来のイーグレス部の一例の構成図である。It is a block diagram of an example of the conventional egress part. 装置内ヘッダを付加したフレームを示す図である。It is a figure which shows the flame | frame which added the header in a device. 図2の回路各部の信号タイミングチャートである。3 is a signal timing chart of each part of the circuit in FIG. 2. イーグレス部の一実施形態の構成図である。It is a block diagram of one Embodiment of an egress part. 装置内ヘッダを示す図である。It is a figure which shows the header in an apparatus. 図5の回路各部の信号タイミングチャートである。6 is a signal timing chart of each part of the circuit in FIG. 5.

以下、図面に基づいて実施形態を説明する。   Embodiments will be described below with reference to the drawings.

<イーグレス部の構成>
図5はフレーム出力装置の一例であるイーグレス部の一実施形態の構成図を示す。図5において、スイッチング部2よりフレームが入力され、ヘッダ処理部21に供給される。ヘッダ処理部21はフレームの先頭に図6に示す装置内ヘッダを付加する。
<Configuration of egress section>
FIG. 5 is a configuration diagram of an embodiment of an egress unit which is an example of a frame output device. In FIG. 5, the frame is input from the switching unit 2 and supplied to the header processing unit 21. The header processing unit 21 adds the in-device header shown in FIG. 6 to the head of the frame.

図6において、装置内ヘッダは例えば16バイトで構成され、1バイト目に出力クラスや装置内クラスがあり、また、8〜9バイト目にレングス情報としてのフレームレングスがある。そして、15〜16バイト目に宛先キュー情報としての宛先物理ポートと宛先論理ポートがある。   In FIG. 6, the in-device header is composed of, for example, 16 bytes, the output class and the in-device class are in the first byte, and the frame length as length information is in the 8th to 9th bytes. The 15th to 16th bytes include a destination physical port and a destination logical port as destination queue information.

ヘッダ処理部21の出力する装置内ヘッダを付けたフレームはバッファ制御部22に供給され、装置内ヘッダから抽出された宛先キュー情報及びフレームレングスはポインタ管理部23に供給される。   The frame with the in-device header output from the header processing unit 21 is supplied to the buffer control unit 22, and the destination queue information and the frame length extracted from the in-device header are supplied to the pointer management unit 23.

ポインタ管理部23はフレームバッファ25に対するフレームの書き込みアドレスとしてのライトポインタ及び読み出しアドレスとしてのリードポインタを生成する。ポインタ管理部23のライトポインタ発行部23bは、テールポインタ管理メモリ23a及びチェーン管理メモリ24にアクセスして、宛先キュー情報が示すキューに所定長(例えば256バイト)のページ単位でライトポインタを発行してバッファ制御部22のライト制御部22aに供給する。   The pointer management unit 23 generates a write pointer as a frame write address and a read pointer as a read address for the frame buffer 25. The write pointer issuing unit 23b of the pointer management unit 23 accesses the tail pointer management memory 23a and the chain management memory 24, and issues a write pointer in units of pages of a predetermined length (for example, 256 bytes) to the queue indicated by the destination queue information. To the write control unit 22 a of the buffer control unit 22.

テールポインタ管理メモリ23aはキューの最後のポインタをキュー毎に管理し、チェーン管理メモリ24はキュー毎にキューのポインタチェーンとフレームレングスを管理している。これにより、ライト制御部22aはライトポインタをアドレスとしてフレームバッファ(メモリ)25にページ単位でフレームを書き込む。   The tail pointer management memory 23a manages the last pointer of the queue for each queue, and the chain management memory 24 manages the queue pointer chain and frame length for each queue. As a result, the write control unit 22a writes a frame in page units in the frame buffer (memory) 25 using the write pointer as an address.

ライトポインタ発行部23bはライトポインタを発行したことにより、フレーム入力情報であるエンキュー情報をスケジューラ部26のフレーム蓄積カウンタ26aに供給する。これにより、フレーム蓄積カウンタ26aはキュー毎にカウントしているフレーム蓄積数のうち当該キューのフレーム蓄積数をインクリメントしてラウンドロビン部26bに通知する。   The write pointer issuing unit 23b supplies the enqueue information, which is frame input information, to the frame accumulation counter 26a of the scheduler unit 26 by issuing the write pointer. Thereby, the frame accumulation counter 26a increments the frame accumulation number of the queue among the frame accumulation numbers counted for each queue and notifies the round robin unit 26b.

スケジューラ部26はフレームバッファ25からのフレームの読み出し順序の調整を行う。スケジューラ部26のトークンカウンタ26cはキュー毎にトークンをカウントしている。トークンは周期的に一定量が加算されると共に、キューからフレームが読み出される度に当該フレームのフレームレングスだけ減算される。   The scheduler unit 26 adjusts the reading order of frames from the frame buffer 25. The token counter 26c of the scheduler unit 26 counts tokens for each queue. A fixed amount of tokens is periodically added, and the frame length of the frame is subtracted every time a frame is read from the queue.

ラウンドロビン部26bはトークンカウンタ26cからキュー毎のトークンつまりトークン有無情報を通知され、フレーム蓄積カウンタ26aからキュー毎のフレーム蓄積数を通知されている。これらを基にラウンドロビン部26bはラウンドロビン方式で読み出すキューを決定する。ラウンドロビン部26bはトークン及びフレーム蓄積数の両方があるキュー(トークンのカウント値がプラス値、かつ、フレーム蓄積数がプラス値)をラウンドロビンへのエントリ候補とし、エントリ候補の中からキューの優先度に応じて読み出しを行うキューを決定する。   The round robin unit 26b is notified of a token for each queue, that is, token presence / absence information from the token counter 26c, and is notified of the number of frames stored for each queue from the frame storage counter 26a. Based on these, the round robin unit 26b determines a queue to be read by the round robin method. The round robin unit 26b uses a queue having both a token and a frame accumulation number (a token count value is a positive value and a frame accumulation number is a positive value) as a round robin entry candidate, and the queue priority is selected from the entry candidates. The queue to be read is determined according to the degree.

この時、ラウンドロビン部26bが使用するトークンカウンタ26cのトークン有無情報は、前に選択した読み出し要求に対するフレーム読み出しがまだ行われておらず、ポインタ管理部23の読み出し要求FIFO23eにまだ蓄積されているため確定前の値である。そして、ラウンドロビン部26bはポインタ管理部23への読み出し要求と決定したキュー情報を読み出し要求FIFO23eに供給し、これと共に、読み出し要求に該当するキューに対するフレーム蓄積カウンタ26aのフレーム蓄積値をデクリメントする。   At this time, the token presence / absence information of the token counter 26c used by the round robin unit 26b has not yet been read out for the previously selected read request, and is still stored in the read request FIFO 23e of the pointer management unit 23. Therefore, it is the value before confirmation. Then, the round robin unit 26b supplies the read request to the pointer management unit 23 and the determined queue information to the read request FIFO 23e, and decrements the frame accumulation value of the frame accumulation counter 26a for the queue corresponding to the read request.

上記ラウンドロビン部26bから出力されたキュー情報はポインタ管理部23の読み出し要求FIFO23eに格納される。読み出し要求FIFO23eは、n個(nは例えば2〜10程度の固定値)の読み出し要求を格納できる構成であり、読み出し要求FIFO23eが溢れそうになると、読み出し要求FIFO23eからラウンドロビン部26bに対してバックプレッシャを発行し、これによりラウンドロビン部26bはラウンドロビン動作を停止する。   The queue information output from the round robin unit 26b is stored in the read request FIFO 23e of the pointer management unit 23. The read request FIFO 23e is configured to store n (n is a fixed value of, for example, about 2 to 10) read requests. When the read request FIFO 23e is about to overflow, the read request FIFO 23e is backed up to the round robin unit 26b. A pressure is issued, whereby the round robin unit 26b stops the round robin operation.

ポインタ管理部23のリードポインタ発行部23cは周期的に読み出し要求FIFO23eから読み出し要求を取り出し、取り出した読み出し要求の対象であるキューについてヘッドポインタ管理メモリ23d及びチェーン管理メモリ24にアクセスしてリードポインタを発行する。ヘッドポインタ管理メモリ23dは読み出し要求の対象であるキューの先頭ポインタを管理しており、リードポインタ発行部23cは上記ヘッドポインタ管理メモリ23dの先頭ポインタからチェーン管理メモリ24のポインタチェーンをたどってページ単位にリードポインタを発行する。   The read pointer issuing unit 23c of the pointer management unit 23 periodically retrieves a read request from the read request FIFO 23e, accesses the head pointer management memory 23d and the chain management memory 24 for the queue that is the target of the retrieved read request, and obtains the read pointer. Issue. The head pointer management memory 23d manages the head pointer of the queue that is the target of the read request, and the read pointer issuing unit 23c traces the pointer chain of the chain management memory 24 from the head pointer of the head pointer management memory 23d to page unit. Issue a read pointer.

そして、リードポインタ発行部23cは発行したリードポインタをアドレスとしてバッファ制御部22のリード制御部22bに供給する。リード制御部22bはページ単位にフレームバッファ25よりフレームを読み出す。   The read pointer issuing unit 23c supplies the issued read pointer as an address to the read control unit 22b of the buffer control unit 22. The read control unit 22b reads a frame from the frame buffer 25 in units of pages.

リードポインタ発行部23cは上記読み出し要求の対象であるキューの先頭ポインタのリードポインタ発行時に、チェーン管理メモリ24に格納されいるフレームレングスをトークンカウンタ26cから減算する。本実施形態では、スケジューラ部26の動作をポインタ管理部23の動作に先行させ、読み出し要求を出力しているので、トークンカウンタ26cのカウント値がマイナス値になっても減算を許可している。   The read pointer issuing unit 23c subtracts the frame length stored in the chain management memory 24 from the token counter 26c when issuing the read pointer of the head pointer of the queue that is the target of the read request. In this embodiment, since the operation of the scheduler unit 26 precedes the operation of the pointer management unit 23 and outputs a read request, subtraction is permitted even if the count value of the token counter 26c becomes a negative value.

フレームバッファ25より読み出されたフレームは出力バッファ部27のポート単位のバッファに一旦格納され、各バッファから外部に出力される。   The frame read from the frame buffer 25 is temporarily stored in a buffer for each port of the output buffer unit 27, and output from each buffer to the outside.

このように、スケジューラ部26からの読み出し要求を蓄積する読み出し要求FIFO23eをポインタ管理部23に設け、スケジューラ部26の処理をポインタ管理部23の処理に先行して行い、読み出し要求を読み出し要求FIFO23eに蓄積しておく。   As described above, the read request FIFO 23e for accumulating the read requests from the scheduler unit 26 is provided in the pointer management unit 23, the processing of the scheduler unit 26 is performed prior to the processing of the pointer management unit 23, and the read request is sent to the read request FIFO 23e. Accumulate.

また、読み出し要求FIFO23eの読み出し要求蓄積数が所定値を超えて、読み出し要求FIFO23eが溢れそうになると、スケジューラ部26に対してバックプレッシャを出力しスケジューリングを停止させる。   Further, when the read request accumulation number of the read request FIFO 23e exceeds a predetermined value and the read request FIFO 23e is about to overflow, a back pressure is output to the scheduler unit 26 to stop scheduling.

これにより、トークン有無情報の確定前に先行してスケジューラ部26を動作させることができ、フレームの読み出し完了を待たずに次のスケジューリング処理を先行して行うことで、読み出し要求を一定周期で出力することが可能となる。   As a result, the scheduler unit 26 can be operated in advance before the token presence / absence information is determined, and the next scheduling process is performed in advance without waiting for the completion of frame reading, thereby outputting a read request at a constant cycle. It becomes possible to do.

また、スケジューラ部26にフレーム蓄積カウンタ26aを設け、読み出し要求出力と同時にフレーム蓄積カウンタ26aをデクリメントする。これにより、チェーン管理メモリ24にアクセスして次フレーム(ネクスト・チェーン)を確認する前にフレーム蓄積カウンタ26aのカウント値であるフレーム有無情報を更新することができ、ポインタチェーンの管理をするポインタ管理部23と、読み出すキューを選択するスケジューラ部26をお互い影響することなく独立させて動作することができるようになる。また、フレーム有無情報を早く確定できるということは、スケジューラ部26を動作させるタイミングを早くできるということになる。その分、ある一定時間で動作させなければならないスケジューリング処理に余裕ができることになる。   Also, the scheduler unit 26 is provided with a frame accumulation counter 26a, and decrements the frame accumulation counter 26a simultaneously with the read request output. This makes it possible to update the frame presence / absence information, which is the count value of the frame accumulation counter 26a, before accessing the chain management memory 24 and confirming the next frame (next chain), and pointer management for managing the pointer chain The unit 23 and the scheduler unit 26 that selects the queue to be read can be operated independently without affecting each other. Also, the fact that the frame presence / absence information can be determined early means that the timing for operating the scheduler unit 26 can be made earlier. Accordingly, there is a margin in the scheduling process that must be performed in a certain time.

<信号タイミングチャート>
図7に図5の回路各部の信号タイミングチャートを示す。ここでは、フレーム読み出し周期T3は固定である。特定キューについて、フレーム蓄積数=3で、トークン=+50[バイト]であるものとすると、時刻t11においてフレーム読み出し要求が出力され、例えばフレームレングス=100[バイト]のフレームの出力が指示される。これにより、時刻t12にフレーム蓄積数=2となる。しかし、この時点で特定キューからフレームが実際に読み出されたわけではないため、トークン=+50のままである。
<Signal timing chart>
FIG. 7 shows a signal timing chart of each part of the circuit of FIG. Here, the frame readout cycle T3 is fixed. Assuming that the number of accumulated frames = 3 and the token = + 50 [bytes] for the specific queue, a frame read request is output at time t11, for example, an output of a frame of frame length = 100 [bytes] is instructed. As a result, the number of accumulated frames = 2 at time t12. However, since the frame is not actually read from the specific queue at this time, the token remains at +50.

時刻t13においてフレーム読み出し要求が出力され、例えばフレームレングス=100[バイト]のフレームの出力が指示される。これにより、時刻t14にフレーム蓄積数=1となる。この時点でも特定キューからフレームが実際に読み出されたわけではないため、トークン=+50のままである。   At time t13, a frame read request is output, and for example, output of a frame having a frame length of 100 [bytes] is instructed. As a result, the number of accumulated frames = 1 at time t14. At this point in time, since the frame is not actually read from the specific queue, the token remains at +50.

時刻t15においてフレーム読み出し要求が出力され、例えばフレームレングス=100[バイト]のフレームの出力が指示される。これにより、時刻t16にフレーム蓄積数=0となる。この時点でも特定キューからフレームが実際に読み出されたわけではないため、トークン=+50のままである。   At time t15, a frame read request is output, and for example, output of a frame with a frame length = 100 [bytes] is instructed. As a result, the number of accumulated frames = 0 at time t16. At this point in time, since the frame is not actually read from the specific queue, the token remains at +50.

時刻t17においてフレーム読み出し要求(時刻t11の指示)のフレームが実際に出力され、トークン=−50となる。時刻t18では、先の時刻t16でフレーム蓄積数=0となっているため、フレーム読み出し要求は出力されない。   At time t17, the frame of the frame read request (instruction at time t11) is actually output, and token = −50. At time t18, since the number of accumulated frames = 0 at the previous time t16, no frame read request is output.

この後、時刻t19においてフレーム読み出し要求(時刻t13の指示)のフレームが実際に出力され、トークン=−150となる。また、時刻t20においてフレーム読み出し要求(時刻t15の指示)のフレームが実際に出力され、トークン=−250となる。   Thereafter, the frame of the frame read request (instruction at time t13) is actually output at time t19, and token = −150. At time t20, the frame of the frame read request (instruction at time t15) is actually output, and token = −250.

従来ではフレーム情報をチェーン管理メモリ24から読み出さないと、スケジューリングに必要なトークン有無情報とフレーム有無情報を更新できなかった。これに対し、本実施形態では、ポインタ管理部23とスケジューラ部26をお互いに影響を及ぼさず独立に動作する構成としている。つまり、スケジューラ部26はフレーム蓄積カウンタ26a及びトークンカウンタ26cを用いて単独でトークン有無情報とフレーム有無情報を管理している。これにより、スケジューリング処理に余裕ができ、回路を構成するうえでも論理の負荷を削減することができ、将来、キュー数が増加しても対応が可能となる。
(付記1)
入力されたフレームを宛先に応じたキュー毎にフレームバッファに書き込むアドレスを生成し、前記フレームバッファからフレームを読み出すアドレスを生成するポインタ管理手段と、
前記フレームバッファからのフレームの読み出し順序を調整してキュー毎のフレーム読み出し要求を生成するスケジューラ手段と、
前記スケジューラ手段で生成したフレーム読み出し要求を蓄積し、蓄積されているフレーム読み出し要求を順次取り出して前記ポインタ管理手段に供給する要求バッファ手段と、
を有し、
前記ポインタ管理手段で生成したアドレスで前記フレームバッファから読み出したフレームを出力することを特徴とするフレーム出力装置。
(付記2)
付記1記載のフレーム出力装置において、
前記要求バッファ手段は、蓄積されているフレーム読み出し要求を周期的かつ蓄積順に取り出す
ことを特徴とするフレーム出力装置。
(付記3)
付記2記載のフレーム出力装置において、
前記フレームバッファのキュー毎のフレーム蓄積数をカウントして前記スケジューラ手段に伝える蓄積数カウント手段
を有することを特徴とするフレーム出力装置。
(付記4)
付記3記載のフレーム出力装置において、
前記蓄積数カウント手段は、前記ポインタ管理手段で入力されたフレームをキュー毎にフレームバッファに書き込むアドレスを生成したときキュー毎にフレーム蓄積数をインクリメントし、前記スケジューラ手段で生成したフレーム読み出し要求によりキュー毎にフレーム蓄積数をデクリメントする
ことを特徴とするフレーム出力装置。
(付記5)
入力されたフレームを宛先に応じたキュー毎にフレームバッファに書き込むアドレスを生成する第1ステップと、
前記フレームバッファからのフレームの読み出し順序を調整してキュー毎のフレーム読み出し要求を生成する第2ステップと、
前記第2ステップで生成したフレーム読み出し要求を蓄積し、蓄積されているフレーム読み出し要求を順次取り出す第3ステップと、
前記第3ステップで取り出されたフレーム読み出し要求により前記フレームバッファからフレームを読み出すアドレスを生成する第4ステップと、
を有し、
前記第4ステップで生成したアドレスで前記フレームバッファから読み出したフレームを出力することを特徴とするフレーム出力方法。
(付記6)
付記5記載のフレーム出力方法において、
前記第3ステップは、蓄積されているフレーム読み出し要求を周期的かつ蓄積順に取り出す
ことを特徴とするフレーム出力方法。
(付記7)
付記6記載のフレーム出力方法において、
前記フレームバッファのキュー毎のフレーム蓄積数をカウントして前記第2ステップに伝える第5ステップ
を有することを特徴とするフレーム出力方法。
(付記8)
付記7記載のフレーム出力方法において、
前記第5ステップは、前記第1ステップで入力されたフレームをキュー毎にフレームバッファに書き込むアドレスを生成したときキュー毎にフレーム蓄積数をインクリメントし、前記第2ステップで生成したフレーム読み出し要求によりキュー毎にフレーム蓄積数をデクリメントする
ことを特徴とするフレーム出力方法。
(付記9)
付記4記載のフレーム出力装置において、
前記要求バッファ手段は、フレーム読み出し要求の蓄積数が所定値を超えると、前記スケジューラ手段の動作を停止させる
ことを特徴とするフレーム出力装置。
Conventionally, unless frame information is read from the chain management memory 24, the token presence / absence information and frame presence / absence information necessary for scheduling cannot be updated. On the other hand, in the present embodiment, the pointer management unit 23 and the scheduler unit 26 are configured to operate independently without affecting each other. That is, the scheduler unit 26 manages the token presence / absence information and the frame presence / absence information independently by using the frame accumulation counter 26a and the token counter 26c. As a result, there is a margin in the scheduling process, the logic load can be reduced in configuring the circuit, and it is possible to cope with an increase in the number of queues in the future.
(Appendix 1)
Pointer management means for generating an address for writing the input frame to the frame buffer for each queue corresponding to the destination, and generating an address for reading the frame from the frame buffer;
Scheduler means for adjusting a frame reading order from the frame buffer and generating a frame reading request for each queue;
Request buffer means for accumulating frame read requests generated by the scheduler means, sequentially taking out the stored frame read requests and supplying them to the pointer management means;
Have
A frame output device for outputting a frame read from the frame buffer at an address generated by the pointer management means.
(Appendix 2)
In the frame output device according to attachment 1,
The frame output apparatus characterized in that the request buffer means fetches stored frame read requests periodically and in the order of storage.
(Appendix 3)
In the frame output device according to attachment 2,
A frame output device comprising: an accumulation number counting means for counting the number of accumulated frames for each queue of the frame buffer and transmitting the counted number to the scheduler means.
(Appendix 4)
In the frame output device according to attachment 3,
The accumulation number counting means increments the frame accumulation number for each queue when generating an address for writing the frame input by the pointer management means to the frame buffer for each queue, and queues it according to the frame read request generated by the scheduler means. A frame output device that decrements the number of accumulated frames every time.
(Appendix 5)
A first step of generating an address for writing an input frame to a frame buffer for each queue corresponding to a destination;
A second step of adjusting a frame reading order from the frame buffer to generate a frame reading request for each queue;
A third step of accumulating the frame read requests generated in the second step and sequentially taking out the accumulated frame read requests;
A fourth step of generating an address for reading a frame from the frame buffer in response to the frame read request extracted in the third step;
Have
A frame output method comprising: outputting a frame read from the frame buffer at the address generated in the fourth step.
(Appendix 6)
In the frame output method according to attachment 5,
3. The frame output method according to claim 3, wherein in the third step, stored frame read requests are taken out periodically and in the order of storage.
(Appendix 7)
In the frame output method according to attachment 6,
A frame output method comprising a fifth step of counting the number of accumulated frames for each queue of the frame buffer and transmitting it to the second step.
(Appendix 8)
In the frame output method according to appendix 7,
In the fifth step, when an address for writing the frame input in the first step to the frame buffer is generated for each queue, the frame accumulation number is incremented for each queue, and the frame is read by the frame read request generated in the second step. A frame output method comprising decrementing the number of accumulated frames every time.
(Appendix 9)
In the frame output device according to attachment 4,
The request buffer means stops the operation of the scheduler means when the accumulated number of frame read requests exceeds a predetermined value.

1 イングレス部
2 スイッチング部
23 イーグレス部
21 ヘッダ処理部
22 バッファ制御部
22a ライト制御部
22b リード制御部
23 ポインタ管理部
23a テールポインタ管理メモリ
23b ライトポインタ発行部
23c リードポインタ発行部
23d ヘッドポインタ管理メモリ
23e 読み出し要求FIFO
24 チェーン管理メモリ
25 フレームバッファ
26 スケジューラ部
26a フレーム蓄積カウンタ26a
26b ラウンドロビン部
26c トークンカウンタ
27 出力バッファ部
DESCRIPTION OF SYMBOLS 1 Ingress part 2 Switching part 23 Egress part 21 Header processing part 22 Buffer control part 22a Write control part 22b Read control part 23 Pointer management part 23a Tail pointer management memory 23b Write pointer issue part 23c Read pointer issue part 23d Head pointer management memory 23e Read request FIFO
24 Chain management memory 25 Frame buffer 26 Scheduler unit 26a Frame accumulation counter 26a
26b Round robin 26c Token counter 27 Output buffer

Claims (4)

入力されたフレームを宛先に応じたキュー毎にフレームバッファに書き込むアドレスを生成し、前記フレームバッファからフレームを読み出すアドレスを生成するポインタ管理手段と、
前記フレームバッファからのフレームの読み出し順序を調整してキュー毎のフレーム読み出し要求を生成するスケジューラ手段と、
前記スケジューラ手段で生成したフレーム読み出し要求を蓄積し、蓄積されているフレーム読み出し要求を順次取り出して前記ポインタ管理手段に供給する要求バッファ手段と、
前記フレームバッファのキュー毎のフレーム蓄積数をカウントして前記スケジューラ手段に伝える蓄積数カウント手段と、
を有し、
前記ポインタ管理手段で生成したアドレスで前記フレームバッファから読み出したフレームを出力することを特徴とするフレーム出力装置。
Pointer management means for generating an address for writing the input frame to the frame buffer for each queue corresponding to the destination, and generating an address for reading the frame from the frame buffer;
Scheduler means for adjusting a frame reading order from the frame buffer and generating a frame reading request for each queue;
Request buffer means for accumulating frame read requests generated by the scheduler means, sequentially taking out the stored frame read requests and supplying them to the pointer management means;
An accumulated number counting means for counting the number of accumulated frames for each queue of the frame buffer and transmitting it to the scheduler means;
Have
A frame output device for outputting a frame read from the frame buffer at an address generated by the pointer management means.
請求項1記載のフレーム出力装置において、
前記要求バッファ手段は、蓄積されているフレーム読み出し要求を周期的かつ蓄積順に取り出す
ことを特徴とするフレーム出力装置。
The frame output device according to claim 1, wherein
The frame output apparatus characterized in that the request buffer means fetches stored frame read requests periodically and in the order of storage.
請求項記載のフレーム出力装置において、
前記蓄積数カウント手段は、前記ポインタ管理手段で入力されたフレームをキュー毎にフレームバッファに書き込むアドレスを生成したときキュー毎にフレーム蓄積数をインクリメントし、前記スケジューラ手段で生成したフレーム読み出し要求によりキュー毎にフレーム蓄積数をデクリメントする
ことを特徴とするフレーム出力装置。
The frame output device according to claim 2 , wherein
The accumulation number counting means increments the frame accumulation number for each queue when generating an address for writing the frame input by the pointer management means to the frame buffer for each queue, and queues it according to the frame read request generated by the scheduler means. A frame output device that decrements the number of accumulated frames every time.
入力されたフレームを宛先に応じたキュー毎にフレームバッファに書き込むアドレスを生成する第1ステップと、
前記フレームバッファからのフレームの読み出し順序を調整してキュー毎のフレーム読み出し要求を生成する第2ステップと、
前記第2ステップで生成したフレーム読み出し要求を蓄積し、蓄積されているフレーム読み出し要求を順次取り出す第3ステップと、
前記フレームバッファのキュー毎のフレーム蓄積数をカウントして前記第2ステップに伝える第4ステップと、
前記第3ステップで取り出されたフレーム読み出し要求により前記フレームバッファからフレームを読み出すアドレスを生成する第ステップと、
を有し、
前記第ステップで生成したアドレスで前記フレームバッファから読み出したフレームを出力することを特徴とするフレーム出力方法。
A first step of generating an address for writing an input frame to a frame buffer for each queue corresponding to a destination;
A second step of adjusting a frame reading order from the frame buffer to generate a frame reading request for each queue;
A third step of accumulating the frame read requests generated in the second step and sequentially taking out the accumulated frame read requests;
A fourth step of counting the number of accumulated frames per queue of the frame buffer and communicating it to the second step;
A fifth step of generating an address for reading a frame from the frame buffer in response to the frame read request fetched in the third step;
Have
A frame output method comprising: outputting a frame read from the frame buffer at the address generated in the fifth step.
JP2009198486A 2009-08-28 2009-08-28 Frame output method and frame output device Expired - Fee Related JP5359692B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009198486A JP5359692B2 (en) 2009-08-28 2009-08-28 Frame output method and frame output device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009198486A JP5359692B2 (en) 2009-08-28 2009-08-28 Frame output method and frame output device

Publications (2)

Publication Number Publication Date
JP2011049983A JP2011049983A (en) 2011-03-10
JP5359692B2 true JP5359692B2 (en) 2013-12-04

Family

ID=43835837

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009198486A Expired - Fee Related JP5359692B2 (en) 2009-08-28 2009-08-28 Frame output method and frame output device

Country Status (1)

Country Link
JP (1) JP5359692B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5737039B2 (en) * 2011-07-25 2015-06-17 富士通株式会社 Packet transmission device, memory control circuit, and packet transmission method
JP6212059B2 (en) * 2015-01-19 2017-10-11 日本電信電話株式会社 Communication input / output device

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11177571A (en) * 1997-12-15 1999-07-02 Oki Electric Ind Co Ltd Shaping device
JPH11355304A (en) * 1998-06-11 1999-12-24 Fujitsu Ltd Cell buffer and atm node
JP2002368799A (en) * 2001-06-04 2002-12-20 Oki Electric Ind Co Ltd Band controller
JP2006197235A (en) * 2005-01-13 2006-07-27 Fujitsu Ltd Packet shaping device
JP4279281B2 (en) * 2005-10-14 2009-06-17 日本電信電話株式会社 Packet communication quality control apparatus and packet communication quality control method
JP5115066B2 (en) * 2007-07-12 2013-01-09 富士通株式会社 Packet transmission method and apparatus

Also Published As

Publication number Publication date
JP2011049983A (en) 2011-03-10

Similar Documents

Publication Publication Date Title
US7742408B2 (en) System and method for filtering packets in a switching environment
US7751404B2 (en) Method, system, and computer program product for high performance bonding resequencing
CN112084136B (en) Queue cache management method, system, storage medium, computer device and application
US8943507B2 (en) Packet assembly module for multi-core, multi-thread network processors
US9258256B2 (en) Inverse PCP flow remapping for PFC pause frame generation
US20160006580A1 (en) Reordering pcp flows as they are assigned to virtual channels
JP2021119386A (en) Device and method for transferring data
US8230137B2 (en) Network processor, reception controller and data reception processing method performing direct memory access transfer
JP5359692B2 (en) Frame output method and frame output device
KR101052809B1 (en) Memory control device, memory control method and information processing device
US9515946B2 (en) High-speed dequeuing of buffer IDS in frame storing system
US9264256B2 (en) Merging PCP flows as they are assigned to a single virtual channel
US10637780B2 (en) Multiple datastreams processing by fragment-based timeslicing
JP5360594B2 (en) DMA transfer apparatus and method
US9892088B2 (en) Data processing system and method of controlling access to a shared memory unit
CN116889024A (en) Data stream transmission method, device and network equipment
JP6127872B2 (en) Arithmetic processing device and control method of arithmetic processing device
JP5428653B2 (en) Memory access processing apparatus and method
JP4769316B2 (en) Packet queuing apparatus and packet queuing method
JP5803000B2 (en) DMA device, information processing device, and data transfer method
JP2004253960A (en) Data transfer apparatus
JP2005027029A (en) Variable length frame buffer device
KR100462478B1 (en) Apparatus of transmitting and receiving variable length packet, and method thereof
JP5702268B2 (en) Optical subscriber unit and frame transmission amount identification method
CN117834553A (en) High-speed data stream aggregation type queue management method and device supporting PFC protocol

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120510

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130307

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130416

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130531

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130819

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees