JP2013255159A - Communication device and priority control method - Google Patents

Communication device and priority control method Download PDF

Info

Publication number
JP2013255159A
JP2013255159A JP2012130633A JP2012130633A JP2013255159A JP 2013255159 A JP2013255159 A JP 2013255159A JP 2012130633 A JP2012130633 A JP 2012130633A JP 2012130633 A JP2012130633 A JP 2012130633A JP 2013255159 A JP2013255159 A JP 2013255159A
Authority
JP
Japan
Prior art keywords
frame
queue
sequence number
weighted sequence
management table
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.)
Granted
Application number
JP2012130633A
Other languages
Japanese (ja)
Other versions
JP5759941B2 (en
Inventor
Shiko Matsushima
司考 松嶋
Masahiko Tanaka
晶彦 田中
Moriaki Takimoto
守朗 滝本
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2012130633A priority Critical patent/JP5759941B2/en
Publication of JP2013255159A publication Critical patent/JP2013255159A/en
Application granted granted Critical
Publication of JP5759941B2 publication Critical patent/JP5759941B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Communication Control (AREA)

Abstract

PROBLEM TO BE SOLVED: To solve problems in a prior art technique about which in software processing, when the number of users increases, it requires a CPU used exclusively for WFQ which can be processed at high speed by DSP and the like in software processing, and in hardware processing, when user flows to be processed increase, tables to be stored increase, and it must be efficiently implemented in hardware.SOLUTION: In order to perform efficient WFQ processing, a band control queue management table has information on a weighted sequence number, and a write-in side or read-out side calculates the weighted sequence number of a frame, and stores it in a frame reception buffer. The read-out side determines read-out order in accordance with the weighted sequence number.

Description

本発明は、通信装置および優先制御方法に係り、特にWFQ(Weighted Fair Queuing)機能を実装した通信装置および優先制御方法に関する。   The present invention relates to a communication apparatus and a priority control method, and more particularly, to a communication apparatus and a priority control method in which a WFQ (Weighted Fair Queuing) function is implemented.

近年、エンドユーザが使うアプリケーションの多様化、広帯域化、またやり取りするデータ容量の増加によりUNI(User Network Interface)からNNI(Network Node Interface)へのトラフィックの増加が特に著しい。そのため通信ネットワークのQoS(Quality of Service)を維持するために、UNIとNNIの境界面に設置される通信装置にトラフィックを制御するための帯域制御機能を具備させる要求がある。   In recent years, the increase in traffic from UNI (User Network Interface) to NNI (Network Node Interface) has been particularly remarkable due to diversification of applications used by end users, wider bandwidth, and an increase in data capacity to be exchanged. Therefore, in order to maintain the QoS (Quality of Service) of the communication network, there is a need to provide a bandwidth control function for controlling traffic in a communication device installed at the interface between UNI and NNI.

帯域制御を行なう上で、音声や画像など遅延が許されないデータ(優先されるべきデータ)とメールおよびデータ通信など比較的遅延が許される通信がある。ユーザの要望に答えるべく、キャリアは、データの優先度を付けて優先制御を行なう必要がある。   In performing bandwidth control, there are data such as voice and images that do not allow delay (data to be prioritized) and communication such as mail and data communication that allow relatively delay. In order to respond to the user's request, the carrier needs to perform priority control with data priority.

優先制御を実現する帯域制御機能の一つにWFQがある。WFQは、データの従量(多さ・大きさや重要性)に応じてパケットの優先順位を変える技術である。WFQは、音声および画像のストリーミングに優先的に順位を譲ることで、安定したストリーミングを実現しつつ、低優先のサービスについても帯域を確保できる。WFQは、複数のキューがある場合、どのキューのパケットから送出するかを決めるキューイング・アルゴリズムの一つである。WFQは、各キューに割り当てられた帯域や優先度に応じて、キューに重み付けを設定するとともに、パケットのサイズも考慮する。WFQによれば、サイズの大きいパケットは、相対的に送出時の優先順位は低くなる。   WFQ is one of the bandwidth control functions for realizing priority control. WFQ is a technique for changing the priority order of packets in accordance with the amount of data (volume, size, and importance). By giving priority to audio and image streaming, WFQ can secure a bandwidth for low priority services while realizing stable streaming. WFQ is one of queuing algorithms for determining which queue packet to send from when there are a plurality of queues. WFQ sets weights for the queues according to the bandwidth and priority assigned to each queue, and considers the packet size. According to WFQ, a packet with a large size has a relatively low priority during transmission.

WFQの装置への実装に関して様々な方法があり、大別するとハードウェア処理で実現する場合とソフトウェア処理で実現する場合がある。
本技術分野の背景技術として、特許文献1がある。特許文献1は、ソフトウェアでWFQを実現する。具体的には、受信したフレームからフレーム長、クラスキュー情報を読み出してその情報を元に読み出し順(シーケンス番号)を計算する。このとき、受信フレームバッファ(キューバッファ)に書き込む前にシーケンス番号をフレームに付与し、受信フレームバッファ(キューバッファ)から読み出し時にシーケンス番号を参照し優先度の高いフレームから読み出す。
There are various methods for mounting a WFQ on a device, which are roughly classified into hardware processing and software processing.
As a background art of this technical field, there is Patent Document 1. Patent Document 1 implements WFQ with software. Specifically, the frame length and class queue information is read from the received frame, and the reading order (sequence number) is calculated based on the information. At this time, a sequence number is assigned to the frame before writing to the reception frame buffer (queue buffer), and the sequence number is referred to when reading from the reception frame buffer (queue buffer), and the frame is read from the frame with a high priority.

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

一般的にWFQ機能を実現する場合、ソフトウェア処理またはハードウェア処理の両方で実現可能である。しかし、ソフトウェア処理を行なっている特許文献1において優先クラスキューに格納されているデータの読み出し遅延がユーザ数の増加、またクラスキュー数の増加に比例して大きくなる可能性がある。その結果、音声および映像など遅延が許されない通信において遅延が発生し帯域低下の要因となる可能性がある。   In general, when the WFQ function is realized, it can be realized by both software processing and hardware processing. However, in Patent Document 1 in which software processing is performed, there is a possibility that the delay in reading data stored in the priority class queue increases in proportion to the increase in the number of users and the increase in the number of class queues. As a result, there is a possibility that a delay occurs in communication such as audio and video that does not allow a delay, resulting in a decrease in bandwidth.

またフローを識別するにあたりVLANにてユーザフローを識別するが、ユーザ単位にWFQを実現する上でユーザ数が増加してくると、ソフトウェア処理ではDSPなどより高速に処理できるWFQ専用のCPUが必要になる。またハードウェア処理をする場合にも処理するユーザフローが増えると格納するテーブルも増える事になり、効率的にハードウェア処理しなければ遅延が発生し帯域低下の要因となる可能性がある。具体的には帯域制御パラメータである重み付きシーケンス番号を効率良く計算処理し、フレーム読み出し時もより少ない処理シーケンスで一番小さい重み付きシーケンス番号のフレームから読み出しを行なうアルゴリズムを考える必要がある。   In order to identify the flow, the user flow is identified by VLAN. When the number of users increases in realizing WFQ for each user, a software-dedicated CPU for WFQ that can process at higher speed than DSP is required. become. Also, when hardware processing is performed, the number of tables to be stored increases when the number of user flows to be processed increases. If hardware processing is not performed efficiently, a delay may occur and this may cause a reduction in bandwidth. Specifically, it is necessary to consider an algorithm for efficiently calculating and processing a weighted sequence number that is a bandwidth control parameter, and reading from a frame having the smallest weighted sequence number with a smaller processing sequence even during frame reading.

上述した課題は、受信したフレームのキュー格納情報に基づいてフレーム受信バッファの複数のキューのいずれかに書き込むWR制御部と、フレーム受信バッファの複数のキューのいずれかからフレームを読み込むRD制御部と、キューごとの重み付きシーケンス番号と、ラウンド番号とを記録するキュー管理テーブルと、を備え、WR制御部またはRD制御部は、フレームごとに、フレームの優先度と長さとに依存する重み付きシーケンス番号を演算し、キュー管理テーブルに記録し、RD制御部は、キューの優先度と重み付きシーケンス番号とに基づいて、フレームを読み込むキューを選択し、選択したキューの重み付きシーケンス番号をラウンド番号として、キュー管理テーブルに記録する通信装置により、達成できる。   The above-described problems include a WR control unit that writes to one of a plurality of queues of the frame reception buffer based on queue storage information of the received frame, and an RD control unit that reads a frame from one of the plurality of queues of the frame reception buffer; A queue management table that records a weighted sequence number and a round number for each queue, and the WR control unit or the RD control unit is a weighted sequence that depends on the priority and length of the frame for each frame. The number is calculated and recorded in the queue management table, and the RD control unit selects a queue from which frames are read based on the priority of the queue and the weighted sequence number, and the weighted sequence number of the selected queue is the round number. This can be achieved by a communication device that records in the queue management table.

また、受信したフレームのキュー格納情報に基づいてフレーム受信バッファの複数のキューのいずれかに書き込むWR制御部と、フレーム受信バッファの複数のキューのいずれかからフレームを読み込むRD制御部と、キューごとの重み付きシーケンス番号と、ラウンド番号とを記録するキュー管理テーブルと、を備えた通信装置における優先制御方法であって、WR制御部またはRD制御部において、フレームごとに、フレームの優先度と長さとに依存する重み付きシーケンス番号を演算するステップと、重み付きシーケンス番号をキュー管理テーブルに記録するステップと、RD制御部において、キューの優先度と重み付きシーケンス番号とに基づいて、フレームを読み込むキューを選択するステップと、選択したキューの重み付きシーケンス番号をラウンド番号として、キュー管理テーブルに記録するステップと、を含む優先制御方法により、達成できる。   In addition, a WR control unit that writes to one of a plurality of queues of the frame reception buffer based on queue storage information of the received frame, an RD control unit that reads a frame from one of the plurality of queues of the frame reception buffer, and each queue Priority control method in a communication apparatus comprising a weighted sequence number and a queue management table for recording a round number, wherein a priority and length of a frame are determined for each frame in a WR control unit or an RD control unit. A step of calculating a weighted sequence number that depends on the weight, a step of recording the weighted sequence number in the queue management table, and a RD control unit reading a frame based on the priority of the queue and the weighted sequence number The step of selecting the queue and the weighted The Nsu number as round number, and recording the queue management table, the priority control method comprising, can be achieved.

テーブルにて重み付きシーケンス番号の情報を持ち、効率的にWFQ処理を行なうことにより汎用FPGAでも十分対応が可能な通信装置を提供できる。   It is possible to provide a communication apparatus that has a weighted sequence number information in a table and can sufficiently cope with a general-purpose FPGA by performing WFQ processing efficiently.

WFQを実装する通信装置を含んだネットワークの構成を説明するブロック図である。It is a block diagram explaining the structure of the network containing the communication apparatus which mounts WFQ. 通信装置のブロック図である。It is a block diagram of a communication apparatus. キューに保存するフレームの構成を説明する図である。It is a figure explaining the structure of the flame | frame preserve | saved at a queue. WFQのハードウェア処理を実現する帯域制御部の機能ブロック図である。It is a functional block diagram of a bandwidth control unit that implements WFQ hardware processing. 実施例1のWFQのハードウェア処理を実現する帯域制御部の機能ブロック図である。3 is a functional block diagram of a bandwidth control unit that implements hardware processing of the WFQ according to the first embodiment. 受信したフレームをキューに格納し、キューから読みだす動作を説明する図(その1)である。It is FIG. (1) explaining operation | movement which stores the received flame | frame in a queue and reads from a queue. 受信したフレームをキューに格納し、キューから読みだす動作を説明する図(その2)である。It is FIG. (2) explaining operation | movement which stores the received flame | frame in a queue and reads from a queue. 受信したフレームをキューに格納し、キューから読みだす動作を説明する図(その3)である。It is FIG. (3) explaining operation | movement which stores the received flame | frame in a queue and reads from a queue. 受信したフレームをキューに格納し、キューから読みだす動作を説明する図(その4)である。It is FIG. (4) explaining the operation | movement which stores the received flame | frame in a queue and reads from a queue. ユーザフローnフローある場合に対応するテーブルとバッファを説明する図である。It is a figure explaining the table and buffer corresponding to the case where there are n user flows. ラップアラウンド処理を説明するフローチャートである。It is a flowchart explaining a wraparound process. キューに保存する他のフレームの構成を説明する図である。It is a figure explaining the structure of the other flame | frame preserve | saved in a queue. 実施例2のWFQの機能構成を示すブロック図である。It is a block diagram which shows the function structure of WFQ of Example 2. FIG. 受信したフレームをキューに格納し、キューから読みだす動作を説明する図(その1)である。It is FIG. (1) explaining operation | movement which stores the received flame | frame in a queue and reads from a queue. 受信したフレームをキューに格納し、キューから読みだす動作を説明する図(その2)である。It is FIG. (2) explaining operation | movement which stores the received flame | frame in a queue and reads from a queue. 受信したフレームをキューに格納し、キューから読みだす動作を説明する図(その3)である。It is FIG. (3) explaining operation | movement which stores the received flame | frame in a queue and reads from a queue. 受信したフレームをキューに格納し、キューから読みだす動作を説明する図(その4)である。It is FIG. (4) explaining the operation | movement which stores the received flame | frame in a queue and reads from a queue.

以下、本発明の実施の形態について、実施例を用い図面を参照しながら詳細に説明する。なお、実質同一部位には同じ参照番号を振り、説明は繰り返さない。また、実施例は、発明を限定するものではない。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings using examples. The same reference numerals are assigned to substantially the same parts, and the description will not be repeated. Also, the examples do not limit the invention.

図1を参照して、ネットワークの構成を説明する。図1において、ネットワーク100は、エンドユーザ10と、通信装置11と、キャリアネットワーク19とから構成されている。キャリアネットワーク19は、アクセス回線網12と、他キャリアアクセス回線網13と、ATMアクセスネットワーク14と、イーサアクセスネットワーク15と、VLANサービス網16と、専用線網17と、エッジSW(switch)18とから構成されている。   A network configuration will be described with reference to FIG. In FIG. 1, the network 100 includes an end user 10, a communication device 11, and a carrier network 19. The carrier network 19 includes an access line network 12, another carrier access line network 13, an ATM access network 14, an ether access network 15, a VLAN service network 16, a dedicated line network 17, and an edge SW (switch) 18. It is composed of

ATMアクセスネットワーク14は、通信装置11−1が接続されている。通信装置11−1は、エンドユーザ10−1、10−2と接続されている。アクセス回線網12は、通信装置11−2が接続されている。通信装置11−2は、エンドユーザ10−3と接続されている。他キャリアアクセス回線網13は、通信装置11−4が接続されている。通信装置11−4は、エンドユーザ10−5と接続されている。イーサアクセスネットワーク15は、通信装置11−3が接続されている。通信装置11−3は、エンドユーザ10−4と接続されている。
通信装置11からみて、キャリアネットワーク19側をNNI側と呼ぶ。通信装置11からみて、エンドユーザ10側をUNI側と呼ぶ。
The ATM access network 14 is connected to the communication device 11-1. The communication device 11-1 is connected to the end users 10-1 and 10-2. The access line network 12 is connected to a communication device 11-2. The communication device 11-2 is connected to the end user 10-3. The other carrier access line network 13 is connected to the communication device 11-4. The communication device 11-4 is connected to the end user 10-5. The Ethernet access network 15 is connected to the communication device 11-3. The communication device 11-3 is connected to the end user 10-4.
From the viewpoint of the communication device 11, the carrier network 19 side is referred to as the NNI side. From the viewpoint of the communication device 11, the end user 10 side is referred to as the UNI side.

キャリアネットワーク19は、一般的にVLANサービス網16および専用線網17等の基幹網から構成される。それら基幹網は、エッジSW18等により接続されている。基幹網は、網間で通信が可能である。   The carrier network 19 is generally composed of a backbone network such as a VLAN service network 16 and a dedicated line network 17. These backbone networks are connected by an edge SW 18 or the like. The backbone network can communicate between networks.

これらの網とエンドユーザ10の接点として様々なアクセス回線網12がある。アクセス回線網12は、具体的にはATMアクセスネットワーク14、イーサアクセスネットワーク15、他キャリアのアクセス回線網13である。   There are various access line networks 12 as contact points between these networks and the end user 10. Specifically, the access line network 12 is an ATM access network 14, an Ethernet access network 15, and an access line network 13 of another carrier.

エンドユーザ10は、通信装置11を介してキャリアネットワーク19へアクセスを行ない、通信を行ないたい対向のエンドユーザとの通信を実行する。なお、エンドユーザ10は、PC、ユーザ網等である。エンドユーザ10間で、やりとりするデータとして音声および画像など遅延が許されないデータ(優先されるべきデータ)とメールまたはデータ通信など比較的遅延がある程度許されるデータがある。
ユーザの要望に答えるべくキャリアは、データに優先度を付けて優先制御を行なう。通信装置11は、優先制御機能の一つであるWFQを実装し、優先制御を実現する。
The end user 10 accesses the carrier network 19 via the communication device 11 and executes communication with the opposite end user who wants to communicate. The end user 10 is a PC, a user network, or the like. As data to be exchanged between end users 10, there are data such as voice and image that cannot be delayed (data to be prioritized) and data such as mail or data communication that allows a relatively long delay.
In order to answer the user's request, the carrier gives priority to the data and performs priority control. The communication apparatus 11 implements priority control by implementing WFQ, which is one of priority control functions.

図2を参照して、通信装置の機能ブロックを説明する。図2において、通信装置11は、PHY20と、フレーム分離部21と、制御フレーム終端部22と、制御フレーム生成部23と、多重部24と、帯域制御部25とから構成されている。   With reference to FIG. 2, the functional block of a communication apparatus is demonstrated. In FIG. 2, the communication device 11 includes a PHY 20, a frame separation unit 21, a control frame termination unit 22, a control frame generation unit 23, a multiplexing unit 24, and a band control unit 25.

PHY20は、受信フレームの物理レイヤ終端処理を行なう。フレーム分離部21は、NNI側からの制御フレームと下りユーザフレームを分離する。制御フレーム終端部22は、分離した制御フレームを終端する。制御フレーム生成部23は、上り信号の帯域を制御する制御フレームを生成する。多重部24は、生成した制御フレームと上りユーザフレームとを多重する。帯域制御部25は、WFQを実装する。   The PHY 20 performs physical layer termination processing of the received frame. The frame separation unit 21 separates the control frame from the NNI side and the downlink user frame. The control frame termination unit 22 terminates the separated control frame. The control frame generation unit 23 generates a control frame for controlling the bandwidth of the uplink signal. The multiplexing unit 24 multiplexes the generated control frame and the uplink user frame. The bandwidth control unit 25 implements WFQ.

図3を参照して、キューに格納するフレームの構成を説明する。図3において、後述する図4と図5の帯域制御部の場合、後述するWR制御ブロック30で計算された重み付きシーケンス番号(SN)50をフレームの先頭に付与する。ヘッダ部分には、COS(Class Of Service)またはTOS(Type Of Service)/TC(Traffic Class)51と、Length52を含む。   With reference to FIG. 3, the structure of the frame stored in the queue will be described. 3, in the case of the bandwidth control unit shown in FIGS. 4 and 5 described later, a weighted sequence number (SN) 50 calculated by a WR control block 30 described later is added to the head of the frame. The header portion includes COS (Class Of Service) or TOS (Type Of Service) / TC (Traffic Class) 51 and Length 52.

COSまたはTOS/TC50は、格納キュー情報である。COSまたはTOS/TC50は、フレーム到着時に、フレーム受信バッファ32における格納キューを選択する情報である。Length52は、重み付きシーケンス番号を計算する時に使用するパラメータである。   COS or TOS / TC50 is storage queue information. COS or TOS / TC 50 is information for selecting a storage queue in the frame reception buffer 32 when a frame arrives. Length 52 is a parameter used when calculating a weighted sequence number.

図4を参照して、帯域制御部について、WFQをハードウェア処理にて実現する構成を説明する。図4において、帯域制御部25は、WR(write)制御ブロック30と、帯域キュー管理テーブル31と、受信フレームバッファ32と、RD(read)制御ブロック33とから構成されている。   With reference to FIG. 4, the structure which implement | achieves WFQ by a hardware process is demonstrated about a band control part. In FIG. 4, the bandwidth control unit 25 includes a WR (write) control block 30, a bandwidth queue management table 31, a reception frame buffer 32, and an RD (read) control block 33.

WR制御ブロック30は、フレーム受信をトリガとして、ユーザフローを特定するキュー格納情報を取得する。WR制御ブロック30は、フレーム受信バッファ32に受信フレームを格納する。   The WR control block 30 acquires queue storage information that identifies a user flow using frame reception as a trigger. The WR control block 30 stores the received frame in the frame reception buffer 32.

RD制御ブロック33は、受信バッファ32にフレーム有りを検出した事をトリガとして、帯域制御キュー管理テーブル31からキュー管理情報を取得する。RD(read)制御ブロック33は、フレーム受信バッファ32からフレームを読み出し送出する。   The RD control block 33 acquires queue management information from the bandwidth control queue management table 31 triggered by detection of the presence of a frame in the reception buffer 32. The RD (read) control block 33 reads out a frame from the frame reception buffer 32 and transmits it.

帯域制御キュー管理テーブル31は、帯域制御対象となるコネクションのキュー情報を保持する。帯域制御キュー管理テーブル31は、WA(Write Address)312と、フレーム先頭情報311と、RA(Read Address)314とを含む。帯域制御キュー管理テーブル31のレコードは、優先度が高い順に、クラス3(絶対優先)、クラス2、クラス1、クラス0を含む。クラス3(絶対優先)は、絶対優先であり、WFQには参加しない。したがって、クラス3(絶対優先)のフレーム先頭情報311欄には、ラウンド番号313を記録している。   The bandwidth control queue management table 31 holds queue information of connections to be bandwidth controlled. The bandwidth control queue management table 31 includes a WA (Write Address) 312, frame head information 311, and an RA (Read Address) 314. The records of the bandwidth control queue management table 31 include class 3 (absolute priority), class 2, class 1, and class 0 in descending order of priority. Class 3 (absolute priority) is absolute priority and does not participate in WFQ. Therefore, the round number 313 is recorded in the frame head information 311 column of class 3 (absolute priority).

ラウンド番号313は、WFQ出力フレームの重み付きシーケンス番号を保存するためのテーブルである。ラウンド番号313は、フロー単位に具備される。
WR制御ブロック30は、ラウンド番号取得部301と、重み付きシーケンス番号計算and付与部302と、を含む。ラウンド番号取得部301は、重み付きシーケンス番号を計算するために、帯域制御キュー管理テーブル31のクラス3(絶対優先)にあるラウンド番号313を取得する。重み付きシーケンス番号計算and付与部302は、到着したフレームのフレーム長と格納されるクラスキューの重みと301にて取得したラウンド番号により重み付きシーケンス番号を計算しフレームの先頭に付与する。
The round number 313 is a table for storing the weighted sequence number of the WFQ output frame. The round number 313 is provided for each flow.
The WR control block 30 includes a round number acquisition unit 301 and a weighted sequence number calculation and addition unit 302. The round number acquisition unit 301 acquires a round number 313 in class 3 (absolute priority) of the bandwidth control queue management table 31 in order to calculate a weighted sequence number. The weighted sequence number calculation and adding unit 302 calculates a weighted sequence number from the frame length of the arrived frame, the weight of the stored class queue, and the round number acquired in 301, and assigns it to the head of the frame.

具体的にフレームの流れに沿って説明する。フレーム受信バッファ32に格納されるフレームの先頭に、WR制御ブロック30は、重み付きシーケンス番号を付与する。RD制御ブロック33は、フレーム読み出し時、重み付きシーケンス番号の小さい順に読み出しを行なう。   A specific description will be given along the flow of the frame. The WR control block 30 assigns a weighted sequence number to the head of the frame stored in the frame reception buffer 32. When reading a frame, the RD control block 33 performs reading in ascending order of the weighted sequence number.

書き込み側のWR制御ブロック30の処理について説明する。WR制御ブロック30に受信フレームが到着する。受信フレームが格納されるキューがアクティブなクラスキューの場合(Not Empty)と非アクティブなクラスキューの場合(Empty)で重み付きシーケンス番号の計算方法が下記の通り異なる。なお、受信フレームの格納されるべきキューについて、WR制御ブロック30は、COSまたはTOS/TC51にて判定する。   Processing of the WR control block 30 on the writing side will be described. A received frame arrives at the WR control block 30. The calculation method of the weighted sequence number differs depending on whether the queue in which the received frame is stored is an active class queue (Not Empty) or an inactive class queue (Empty) as follows. Note that the WR control block 30 determines whether the received frame is to be stored in the COS or the TOS / TC 51.

アクティブなクラスキューの場合(Not Empty)
:前回の重み付きシーケンス番号+該当クラスのWeight値×フレームバイト数
非アクティブなクラスキューの場合(Empty)
:取得したラウンド番号+該当クラスのWeight値×フレームバイト数
WR制御ブロック30は、計算した重み付きシーケンス番号20をフレームの先頭に付与し、受信バッファ32の該当キューに格納する。アクティブなクラスキューの場合の前回の重み付きシーケンス番号は、クラスキューに最後に格納したフレームの先頭アドレスであるフレーム先頭情報311を帯域制御キュー管理テーブル31より読み出す。読み出したフレーム先頭情報311で示されるアドレスから前回の重み付きシーケンス番号を取得する。
For an active class queue (Not Empty)
: Last weighted sequence number + Weight value of the corresponding class x number of frame bytes Inactive class queue (Empty)
: Acquired round number + weight value of corresponding class × number of frame bytes The WR control block 30 assigns the calculated weighted sequence number 20 to the head of the frame and stores it in the corresponding queue of the reception buffer 32. For the previous weighted sequence number in the case of the active class queue, the frame head information 311 that is the head address of the last frame stored in the class queue is read from the bandwidth control queue management table 31. The previous weighted sequence number is acquired from the address indicated by the read frame head information 311.

次に、読み出し側の処理について説明する。RD制御ブロック33は、フレームの読み出し時に帯域制御キュー管理テーブル31の各クラスのRA314を読みだす。次に、RD制御ブロック33は、RA314で示される各クラスキューに格納されているフレームを読み出す。RD制御ブロック33は、読み出した各フレームに付与されている重み付きシーケンス番号を比較し、値の小さいフレームから順次読み出しを行なう。RD制御ブロック33は、帯域制御キュー管理テーブル31とフレーム受信バッファ32を読み出した後に重み付きシーケンス番号の比較を行ない、読み出すクラスキューの決定を行なう。   Next, processing on the reading side will be described. The RD control block 33 reads the RA 314 of each class in the bandwidth control queue management table 31 when reading the frame. Next, the RD control block 33 reads a frame stored in each class queue indicated by the RA 314. The RD control block 33 compares the weighted sequence numbers assigned to the read frames, and sequentially reads out the frames with the smaller values. The RD control block 33 compares the weighted sequence numbers after reading the bandwidth control queue management table 31 and the frame reception buffer 32, and determines the class queue to be read.

図5を参照して、帯域制御部について、WFQをハードウェア処理にて実現する他の構成を説明する。図5において、帯域制御部25は、WR制御ブロック30と、帯域キュー管理テーブル31Aと、受信フレームバッファ32と、RD制御ブロック33とから構成されている。なお、フレーム受信バッファ32は、FIFO(first-in first-out)メモリである。   With reference to FIG. 5, another configuration for realizing WFQ by hardware processing will be described for the bandwidth control unit. In FIG. 5, the bandwidth controller 25 includes a WR control block 30, a bandwidth queue management table 31A, a reception frame buffer 32, and an RD control block 33. The frame reception buffer 32 is a first-in first-out (FIFO) memory.

WR制御ブロック30は、フレーム受信をトリガとして、ユーザフローを特定するキュー格納情報を取得する。WR制御ブロック30は、フレーム受信バッファ32に受信フレームを格納する。   The WR control block 30 acquires queue storage information that identifies a user flow using frame reception as a trigger. The WR control block 30 stores the received frame in the frame reception buffer 32.

RD制御ブロック33は、受信バッファ32にフレーム有りを検出した事をトリガとして、帯域制御キュー管理テーブル31Aからキュー管理情報を取得する。RD(read)制御ブロック33は、フレーム受信バッファ32からフレームを読み出し送出する。   The RD control block 33 acquires queue management information from the bandwidth control queue management table 31A triggered by the detection of the presence of a frame in the reception buffer 32. The RD (read) control block 33 reads out a frame from the frame reception buffer 32 and transmits it.

実施例1の特徴は、WR制御ブロック30で重み付きシーケンス番号411をフレームに付与する点である。なお、WR制御ブロック30、フレーム受信バッファ32、RD制御ブロック33、ラウンド番号313、ラウンド番号取得部301、重み付きシーケンス番号計算and付与部302に関しては、図4で説明した動作と同じである。   A feature of the first embodiment is that the WR control block 30 assigns a weighted sequence number 411 to the frame. Note that the WR control block 30, the frame reception buffer 32, the RD control block 33, the round number 313, the round number acquisition unit 301, and the weighted sequence number calculation and addition unit 302 are the same as the operations described in FIG.

帯域キュー管理テーブル31Aは、帯域制御対象となるコネクションのキュー情報を保持する。帯域制御キュー管理テーブル31Aは、WA312と、重み付きシーケンス番号411と、先読み重み付きシーケンス番号412と、RA314とを含む。帯域制御キュー管理テーブル31Aのレコードは、優先度が高い順に、クラス3(絶対優先)、クラス2、クラス1、クラス0を含む。クラス3(絶対優先)は、絶対優先であり、WFQには参加しない。したがって、クラス3(絶対優先)の重み付きシーケンス番号411欄には、ラウンド番号313を記録している。   The bandwidth queue management table 31A holds the queue information of the connection to be bandwidth controlled. The bandwidth control queue management table 31A includes a WA 312, a weighted sequence number 411, a prefetched weighted sequence number 412, and an RA 314. The records of the bandwidth control queue management table 31A include class 3 (absolute priority), class 2, class 1, and class 0 in descending order of priority. Class 3 (absolute priority) is absolute priority and does not participate in WFQ. Therefore, the round number 313 is recorded in the weighted sequence number 411 column of class 3 (absolute priority).

帯域制御キュー管理テーブル31の重み付きシーケンス番号411は、WFQ演算用シーケンス番号を格納する。
先読み重み付きシーケンス番号412は、RD制御ブロック33にてフレーム読み出し時に次のフレームの先頭の重み付きシーケンス番号まで読み、その値を先読み重み付きシーケンス番号412として格納する。先読み重み付きシーケンス番号412は、次に読みだすパケットの選択に利用する。
The weighted sequence number 411 of the bandwidth control queue management table 31 stores a sequence number for WFQ calculation.
The pre-read weighted sequence number 412 is read up to the top weighted sequence number of the next frame at the time of frame reading by the RD control block 33 and the value is stored as the pre-read weighted sequence number 412. The prefetch weighted sequence number 412 is used to select a packet to be read next.

具体的にフレームの流れに沿って説明する。フレーム受信バッファ32に格納されるフレームの先頭に、WR制御ブロック30は、重み付きシーケンス番号411を付与する。RD制御ブロック33は、フレーム読み出し時、次のフレームの重み付きシーケンス番号を先読みする。   A specific description will be given along the flow of the frame. The WR control block 30 assigns a weighted sequence number 411 to the head of the frame stored in the frame reception buffer 32. When reading a frame, the RD control block 33 prefetches the weighted sequence number of the next frame.

まず書き込み側のWR制御ブロック30処理について説明する。WR制御ブロック30に受信フレームが到着する。受信フレームが格納されるキューがアクティブなクラスキューの場合(Not Empty)と非アクティブなクラスキューの場合(Empty)で重み付きシーケンス番号の計算方法が下記の通り異なる。なお、受信フレームの格納されるべきキューは、COSまたはTOS/TC51にて判定する。   First, the WR control block 30 process on the writing side will be described. A received frame arrives at the WR control block 30. The calculation method of the weighted sequence number differs depending on whether the queue in which the received frame is stored is an active class queue (Not Empty) or an inactive class queue (Empty) as follows. The queue in which the received frame is to be stored is determined by COS or TOS / TC51.

アクティブなクラスキューの場合(Not Empty)
:前回の重み付きシーケンス番号+該当クラスのWeight値×フレームバイト数
非アクティブなクラスキューの場合(Empty)
:取得したラウンド番号313+該当するクラスのWeight値×フレームバイト数
WR制御ブロック30は、計算した重み付きシーケンス番号をフレームの先頭(SN50)に付与し、受信バッファ32の該当キューに格納する。
For an active class queue (Not Empty)
: Last weighted sequence number + Weight value of the corresponding class x number of frame bytes Inactive class queue (Empty)
: Acquired round number 313 + weight value of corresponding class × number of frame bytes The WR control block 30 assigns the calculated weighted sequence number to the head (SN50) of the frame and stores it in the corresponding queue of the reception buffer 32.

WR制御ブロック30は、帯域制御キュー管理テーブル31Aに重み付きシーケンス番号を書き込む。このとき、WR制御ブロック30は、該当するクラスの重み付きシーケンス番号411を上書きする。書き込んだ重み付きシーケンス番号411は、次フレームの重み付きシーケンス番号算出に使用する。   The WR control block 30 writes the weighted sequence number in the bandwidth control queue management table 31A. At this time, the WR control block 30 overwrites the weighted sequence number 411 of the corresponding class. The written weighted sequence number 411 is used for calculating the weighted sequence number of the next frame.

フレーム受信バッファ32にフレームを書き込み時キューが空であれば、WR制御ブロック30では、制御キュー管理テーブル31Aの先読み重み付きシーケンス番号412領域にも計算した重み付きシーケンス番号411を上書きする。   If the queue for writing a frame to the frame reception buffer 32 is empty, the WR control block 30 overwrites the calculated weighted sequence number 411 in the prefetched weighted sequence number 412 area of the control queue management table 31A.

帯域制御キュー管理テーブル31Aは、格納したフレームに該当するフローおよびクラスキューのエントリに対して、当該フレームに付与した重み付きシーケンス番号411も一緒に更新する。   The bandwidth control queue management table 31A also updates the weighted sequence number 411 assigned to the frame for the flow and class queue entries corresponding to the stored frame.

次に読み出し側の処理について説明する。RD制御ブロック33は、フレームの読み出し時に先読み重み付きシーケンス番号412を比較して読み出す。1回目の読み出し時はWR制御ブロック30にて重み付きシーケンス番号411と同じSNが先読み重み付きシーケンス番号412領域に書かれるため、その値を比較し読み出しを行なう。2回目以降は1回目の読み出しで先読みした先読み重み付きシーケンス番号412により、読む順番を決定する。   Next, processing on the reading side will be described. The RD control block 33 compares and reads the prefetch weighted sequence number 412 when reading the frame. In the first reading, the same SN as the weighted sequence number 411 is written in the prefetched weighted sequence number 412 area in the WR control block 30, so that the values are compared and read. From the second time onward, the reading order is determined by the sequence number 412 with the prefetching weight prefetched in the first reading.

ここで先読みについて説明する。先読みとは、RD制御ブロック33が、フレーム読み出し時に次フレーム先頭のSN50まで読み、帯域制御キュー管理テーブル31の先読み重み付きシーケンス番号領域412に上書きする。   Here, prefetching will be described. In the prefetching, the RD control block 33 reads up to the SN50 at the head of the next frame at the time of frame reading, and overwrites the sequence number area 412 with a prefetching weight in the bandwidth control queue management table 31.

帯域制御キュー管理テーブル31Aは、読み出したフレームに該当するフローおよびクラスキューのエントリに対して、当該フレームの重み付きシーケンス番号411と先読みした先読み重み付きシーケンス番号412も一緒に更新する。   The bandwidth control queue management table 31A also updates the weighted sequence number 411 of the frame and the prefetched weighted sequence number 412 for the flow and class queue entry corresponding to the read frame together.

WR制御ブロック30は、受信フレームに重み付きシーケンス番号(SN)を付与する。キューからの受信フレーム読み出し時、RD制御ブロック33は、各キューから出力されるフレームの重み付きシーケンス番号(SN)を比較し、重み付きシーケンス番号(SN)の最も小さいフレームを送信する。   The WR control block 30 assigns a weighted sequence number (SN) to the received frame. When the received frame is read from the queue, the RD control block 33 compares the weighted sequence numbers (SN) of the frames output from the queues, and transmits the frame having the smallest weighted sequence number (SN).

RD制御ブロック33は、出力したフレームの重み付きシーケンス番号(SN)をラウンド番号という名称で帯域制御キュー管理テーブル31Aに記録しておく。なお、ラウンド番号は、SNを付与する際に使用される。重み付きシーケンス番号(SN)の付与則について、以下説明する。   The RD control block 33 records the weighted sequence number (SN) of the output frame in the bandwidth control queue management table 31A under the name of the round number. The round number is used when assigning SN. A rule for assigning weighted sequence numbers (SN) will be described below.

WR制御ブロック30は、あらかじめ受信フレームのフレーム長を取得しておく。WR制御ブロック30は、格納するキューが空の場合、(ラウンド番号)+(フレーム長)×(該当キューのフレーム重み)を重み付きシーケンス番号(SN)とする。   The WR control block 30 acquires the frame length of the received frame in advance. When the queue to be stored is empty, the WR control block 30 sets (round number) + (frame length) × (frame weight of the corresponding queue) as a weighted sequence number (SN).

格納するキューにフレームが蓄積されている場合、最後に蓄積されたフレームの重み付きシーケンス番号(SN)を使用し、WR制御ブロック30は、(最後に蓄積されたフレームのSN)+(フレーム長)×(該当キューのフレームの重み)を重み付きシーケンス番号(SN)とする。   When frames are accumulated in the queue to be stored, the weighted sequence number (SN) of the last accumulated frame is used, and the WR control block 30 calculates (SN of the last accumulated frame) + (frame length). ) × (frame weight of corresponding queue) is a weighted sequence number (SN).

次に優先割合からフレーム重みの算出方法について説明する。優先割合とフレーム重みは逆数の関係である。以下の説明では、クラスキュー#2、#1、#0の優先割合(P2:P1:P0)をP2=9、P1=2、P0=1とする。   Next, a method for calculating the frame weight from the priority ratio will be described. The priority ratio and the frame weight have a reciprocal relationship. In the following description, the priority ratios (P2: P1: P0) of the class queues # 2, # 1, and # 0 are P2 = 9, P1 = 2, and P0 = 1.

各キューのフレーム重みを整数とするため、以下の計算を行なう。優先割合(P2:P1:P0)=(9:2:1)の最小公倍数を算出する。この場合、最小公倍数は、18である。優先割合の逆数を取り、最小公倍数を掛け算する。計算の結果、クラスキュー#2、#1、#0のフレーム重みの割合(W2:W1:W0)は、
W2:W1:W0=2:9:18
となる。
In order to make the frame weight of each queue an integer, the following calculation is performed. The least common multiple of the priority ratio (P2: P1: P0) = (9: 2: 1) is calculated. In this case, the least common multiple is 18. Take the reciprocal of the priority ratio and multiply by the least common multiple. As a result of the calculation, the ratio of the frame weights of class queues # 2, # 1, and # 0 (W2: W1: W0) is
W2: W1: W0 = 2: 9: 18
It becomes.

WR制御ブロック30は、COSまたはTOS/TC51により格納するキューを決定する。RD制御ブロック33は、各キューから出力されるフレームの重み付きシーケンス番号(SN)を比較し、重み付きシーケンス番号(SN)の最も小さいフレームの読み出しを行なう。ただし、クラスキュー#3(絶対優先)にフレームが格納されている場合はクラスキュー#3(絶対優先)のフレームを優先する。   The WR control block 30 determines a queue to be stored by the COS or TOS / TC 51. The RD control block 33 compares the weighted sequence numbers (SN) of the frames output from the respective queues, and reads the frame having the smallest weighted sequence number (SN). However, when a frame is stored in the class queue # 3 (absolute priority), the frame in the class queue # 3 (absolute priority) is given priority.

図6を参照して、受信フレームのキューへの格納と、読み出しを説明する。図6Aにおいて、以下のフレームが(A)、(B)、(C)の順で到着した場合を説明する。   With reference to FIG. 6, storage and reading of received frames in a queue will be described. In FIG. 6A, a case where the following frames arrive in the order of (A), (B), and (C) will be described.

(A) フレーム長:100、クラスキュー:#0
(B) フレーム長:150、クラスキュー:#1
(C) フレーム長:200、クラスキュー:#1
WR制御ブロック30は、到着したフレーム(A)、(B)、(C)の重み付きシーケンス番号(SN)をそれぞれ計算する。
・(A)の重み付きシーケンス番号(SN)計算
格納すべきクラスキュー#0が空のため、WR制御ブロック30は、ラウンド番号を使用する。なお、ラウンド番号の初期値は、0である。
(A) Frame length: 100, class queue: # 0
(B) Frame length: 150, class queue: # 1
(C) Frame length: 200, class queue: # 1
The WR control block 30 calculates the weighted sequence numbers (SN) of the arrived frames (A), (B), and (C).
(A) Weighted sequence number (SN) calculation Since the class queue # 0 to be stored is empty, the WR control block 30 uses the round number. Note that the initial value of the round number is 0.

重み付きシーケンス番号(SN)
=(ラウンド番号)+(フレーム長)×(フレーム重み:W0)
=0+100×18
=1800
・(B)の重み付きシーケンス番号(SN)計算
格納すべきクラスキュー#1が空のため、WR制御ブロック30は、ラウンド番号を使用する。
重み付きシーケンス番号(SN)
=(ラウンド番号)+(フレーム長)×(フレーム重み:W1)
=0+150×9
=1350
・(C)の重み付きシーケンス番号(SN)計算
格納すべきクラスキュー#1にフレーム(B)が蓄積されているため、WR制御ブロック30は、最後に蓄積されたフレームのSNを使用する。
重み付きシーケンス番号(SN)
=(最後に蓄積されたフレームのSN)+(フレーム長)×(フレーム重み:W1)
=1350+200×9
=3150
WR制御ブロック30は、計算した各重み付きシーケンス番号(SN)をフレーム(A)(B)(C)の先頭にそれぞれ付与し、該当キュー323、324へ格納する。
Weighted sequence number (SN)
= (Round number) + (frame length) x (frame weight: W0)
= 0 + 100 × 18
= 1800
(B) Weighted sequence number (SN) calculation Since the class queue # 1 to be stored is empty, the WR control block 30 uses the round number.
Weighted sequence number (SN)
= (Round number) + (frame length) x (frame weight: W1)
= 0 + 150 × 9
= 1350
(C) Weighted sequence number (SN) calculation Since the frame (B) is accumulated in the class queue # 1 to be stored, the WR control block 30 uses the SN of the frame accumulated last.
Weighted sequence number (SN)
= (SN of last accumulated frame) + (frame length) × (frame weight: W1)
= 1350 + 200 × 9
= 3150
The WR control block 30 assigns the calculated weighted sequence numbers (SN) to the heads of the frames (A), (B), and (C), and stores them in the corresponding queues 323 and 324, respectively.

図6Bにおいて、RD制御ブロック33は、図6Aにてクラスキュー#0、#1に蓄積されたフレーム(A)、(B)の重み付きシーケンス番号(SN)を比較し、最も小さい(B)を帯域制御部25の図示しないシェーパへ出力する。この時、クラスキュー#2は、キュー内にフレームが存在しないため、比較対象ではない。   In FIG. 6B, the RD control block 33 compares the weighted sequence numbers (SN) of the frames (A) and (B) accumulated in the class queues # 0 and # 1 in FIG. Is output to a shaper (not shown) of the bandwidth controller 25. At this time, the class queue # 2 is not a comparison target because there is no frame in the queue.

RD制御ブロック33は、出力したフレーム(B)の重み付きシーケンス番号(SN)をラウンド番号とし、ラウンド番号領域313を0から1350へ書き換える。   The RD control block 33 uses the weighted sequence number (SN) of the output frame (B) as a round number, and rewrites the round number area 313 from 0 to 1350.

図6Cにおいて、次に新たに以下のフレーム(D)が到着した場合を説明する。
(D) フレーム長:250、クラスキュー:#2
・(D)の重み付きシーケンス番号(SN)計算
格納すべきクラスキュー#2が空のため、WR制御ブロック30は、ラウンド番号を使用する。
重み付きシーケンス番号(SN)
=(ラウンド番号)+(フレーム長)×(フレーム重み:W2)
=1350+250×2
=1850
WR制御ブロック30は、計算した重み付きシーケンス番号(SN)をフレーム(D)の先頭に付与し、該当のクラスキュー#2へ格納する。
Next, in FIG. 6C, a case where the following new frame (D) arrives will be described.
(D) Frame length: 250, class queue: # 2
(D) Calculation of Weighted Sequence Number (SN) Since the class queue # 2 to be stored is empty, the WR control block 30 uses the round number.
Weighted sequence number (SN)
= (Round number) + (frame length) x (frame weight: W2)
= 1350 + 250 × 2
= 1850
The WR control block 30 assigns the calculated weighted sequence number (SN) to the head of the frame (D) and stores it in the corresponding class queue # 2.

図6Dを参照して、現在キューに溜まっているフレーム(A)、(C)、(D)のキューからの読み出しの流れを説明する。図6Dにおいて、RD制御ブロック33は、クラスキュー#0、#1、#2に蓄積されたフレーム(A)、(C)、(D)の重み付きシーケンス番号(SN)を比較する。最も小さい重み付きシーケンス番号(SN)はフレーム(A)の1800のため、RD制御ブロック33は、フレーム(A)を最初に帯域制御部25の図示しないシェーパへ出力する。RD制御ブロック33は、出力したフレーム(A)の重み付きシーケンス番号(SN)をラウンド番号とし、ラウンド番号領域313を1350から1800へ書き換える。   With reference to FIG. 6D, the flow of reading from the queues of the frames (A), (C), and (D) currently accumulated in the queue will be described. In FIG. 6D, the RD control block 33 compares the weighted sequence numbers (SN) of the frames (A), (C), and (D) stored in the class queues # 0, # 1, and # 2. Since the smallest weighted sequence number (SN) is 1800 of the frame (A), the RD control block 33 first outputs the frame (A) to a shaper (not shown) of the bandwidth control unit 25. The RD control block 33 rewrites the round number area 313 from 1350 to 1800 using the weighted sequence number (SN) of the output frame (A) as the round number.

次に、RD制御ブロック33は、キュー内に存在するフレーム(C)、(D)のシーケンス番号を比較する。小さい重み付きシーケンス番号(SN)はフレーム(D)の1850のため、RD制御ブロック33は、フレーム(D)を次に出力する。RD制御ブロック33は、出力したフレーム(D)の重み付きシーケンス番号(SN)をラウンド番号とし、ラウンド番号領域313を1800から1850へ書き換える。   Next, the RD control block 33 compares the sequence numbers of the frames (C) and (D) existing in the queue. Since the small weighted sequence number (SN) is 1850 of frame (D), RD control block 33 outputs frame (D) next. The RD control block 33 rewrites the round number area 313 from 1800 to 1850 using the weighted sequence number (SN) of the output frame (D) as a round number.

最後に、RD制御ブロック33は、クラスキュー#1に残っているフレーム(C)を出力する。RD制御ブロック33は、出力したフレーム(C)の重み付きシーケンス番号(SN)をラウンド番号とし、ラウンド番号領域313を1850から3150へ書き換える。   Finally, the RD control block 33 outputs the frame (C) remaining in the class queue # 1. The RD control block 33 rewrites the round number area 313 from 1850 to 3150 using the weighted sequence number (SN) of the output frame (C) as the round number.

図7を参照して、ユーザフローがnフローの場合の、帯域制御キュー管理テーブルとフレーム受信バッファを説明する。図7において、ユーザフローが複数(n>1)のとき、帯域制御部25は、ユーザフロー数分だけ帯域制御キュー管理テーブル31A−1〜31A−nとフレーム受信バッファ32−1〜32−nを具備する。   With reference to FIG. 7, the bandwidth control queue management table and the frame reception buffer when the user flow is n flow will be described. In FIG. 7, when there are a plurality of user flows (n> 1), the bandwidth control unit 25 corresponds to the bandwidth control queue management tables 31A-1 to 31A-n and the frame reception buffers 32-1 to 32-n for the number of user flows. It comprises.

重み付きシーケンス番号およびラウンド番号は、有限の値を取る。このため、最大値を超えた場合(ラップアラウンドと呼ぶ)、0に戻ることになる。0に戻った場合、単純に重み付きシーケンス番号の比較を行なうことはできない。これは、0に戻ったシーケンス番号が常に最小値となってしまうためである。ラウンドアップフラグは、ラップアラウンドが発生したキューを識別し、比較対象から外すために使用する。これを図8を参照して、説明する。   The weighted sequence number and round number take finite values. For this reason, when the maximum value is exceeded (referred to as wraparound), the value returns to 0. When it returns to 0, it is not possible to simply compare weighted sequence numbers. This is because the sequence number returned to 0 is always the minimum value. The round-up flag is used to identify a queue in which wraparound has occurred and remove it from the comparison target. This will be described with reference to FIG.

図8において、WR制御ブロック30は、重み付きシーケンス番号(SN)を計算する(S80)。WR制御ブロック30は、SNがラップアラウンド閾値以上か判定する(S81)。YESのとき、WR制御ブロック30は、当該優先キューのラップアラウンドフラグを立てる(S82)。ステップ81でNOのとき、WR制御ブロック30は、ラップアラウンドフラグが立っていない優先キューのSN比較を実施して(S83)、ステップ80に遷移する。   In FIG. 8, the WR control block 30 calculates a weighted sequence number (SN) (S80). The WR control block 30 determines whether the SN is equal to or greater than the wraparound threshold (S81). When YES, the WR control block 30 sets a wraparound flag for the priority queue (S82). When NO in step 81, the WR control block 30 performs SN comparison of the priority queues for which the wraparound flag is not set (S83), and proceeds to step 80.

ステップ82のあと、WR制御ブロック30は、全ての優先キューでラップアラウンドフラグが立っているか判定する(S84)。YESのとき、WR制御ブロック30は、全優先キューのラップアラウンドフラグをクリアする(S86)。WR制御ブロック30は、SNを比較して(S87)、ステップ80に遷移する。ステップ84でNOのとき、WR制御ブロック30は、ステップ83に遷移する。   After step 82, the WR control block 30 determines whether the wraparound flag is set in all priority queues (S84). When YES, the WR control block 30 clears the wraparound flag of the all priority queue (S86). The WR control block 30 compares the SN (S87), and proceeds to step 80. When NO at step 84, the WR control block 30 transitions to step 83.

図9を参照して、実施例2の優先キューに保存されるフレーム構成を説明する。図9において、フレーム70Aは、ヘッダと、ペイロードとで構成され、ヘッダには、格納すべきキューの選択情報であるCOSまたはTOS/TC51と、重み付きシーケンス番号を演算するに必要なフレーム情報であるLength52を含んでいる。図3のフレーム70との対比から明らかなように、フレーム70AにはSNが含まれていない。   With reference to FIG. 9, the frame configuration stored in the priority queue according to the second embodiment will be described. In FIG. 9, a frame 70A is composed of a header and a payload. The header includes COS or TOS / TC 51, which is information for selecting a queue to be stored, and frame information necessary for calculating a weighted sequence number. It contains a certain Length52. As is clear from the comparison with the frame 70 in FIG. 3, the SN is not included in the frame 70A.

図10を参照して、RD制御ブロック33Aで重み付きシーケンス番号411を生成し、その値に従ってフレーム受信バッファ32より読み出すフレームの順番を決定する実施例2を説明する。図10において、帯域制御部25Aは、WR制御ブロック30Aと、帯域制御キュー管理テーブル31Bと、フレーム受信バッファ32と、RD制御ブロック33Aとから構成される。   With reference to FIG. 10, a second embodiment in which the RD control block 33A generates a weighted sequence number 411 and determines the order of frames to be read from the frame reception buffer 32 according to the value will be described. In FIG. 10, the bandwidth control unit 25A includes a WR control block 30A, a bandwidth control queue management table 31B, a frame reception buffer 32, and an RD control block 33A.

帯域制御キュー管理テーブル31Bは、帯域制御対象となるコネクションのキュー情報を保持する。帯域制御キュー管理テーブル31Bは、重み付きシーケンス番号411と、RA314とを含む。帯域制御キュー管理テーブル31Bのレコードは、優先度が高い順に、クラス3(絶対優先)、クラス2、クラス1、クラス0を含む。クラス3(絶対優先)は、絶対優先であり、WFQには参加しない。したがって、クラス3(絶対優先)の重み付きシーケンス番号411欄には、ラウンド番号313を記録している。   The bandwidth control queue management table 31B holds queue information of connections that are bandwidth control targets. The bandwidth control queue management table 31B includes a weighted sequence number 411 and an RA 314. The records of the bandwidth control queue management table 31B include class 3 (absolute priority), class 2, class 1, and class 0 in descending order of priority. Class 3 (absolute priority) is absolute priority and does not participate in WFQ. Therefore, the round number 313 is recorded in the weighted sequence number 411 column of class 3 (absolute priority).

フレーム受信バッファ32は、クラス3キュー(絶対優先)321と、クラス2キュー(重み:W2)322と、クラス1キュー(重み:W1)323と、クラス0キュー(重み:W0)324とを保持する。なお、フレーム受信バッファ32は、FIFOメモリである。
RD制御ブロック33Aは、ラウンド番号取得部331と、重み付きシーケンス番号計算部332とを含む。ラウンド番号取得部331は、帯域制御キュー管理テーブル31Bから、ラウンド番号313を読みだす。重み付きシーケンス番号計算部332は、ラウンド番号311と、フレームのLength52と、重みとに基づいて、重み付きシーケンス番号を計算する。
The frame reception buffer 32 holds a class 3 queue (absolute priority) 321, a class 2 queue (weight: W2) 322, a class 1 queue (weight: W1) 323, and a class 0 queue (weight: W0) 324. To do. The frame reception buffer 32 is a FIFO memory.
The RD control block 33A includes a round number acquisition unit 331 and a weighted sequence number calculation unit 332. The round number acquisition unit 331 reads the round number 313 from the bandwidth control queue management table 31B. The weighted sequence number calculation unit 332 calculates a weighted sequence number based on the round number 311, the frame length 52, and the weight.

実施例2において、RD制御ブロック33Aは、重み付きシーケンス番号411を生成し、その値に従って読み出す順番を決定する。以下、その具体的な動作を説明する。
WR制御ブロック30Aに到着したフレームについて、WR制御ブロック30Aは、図9のCOSまたはTOS/TC51をもとに、該当のクラスキュー321〜324に格納する。
In the second embodiment, the RD control block 33A generates the weighted sequence number 411 and determines the order of reading according to the value. The specific operation will be described below.
The WR control block 30A stores the frames that have arrived at the WR control block 30A in the corresponding class queues 321 to 324 based on the COS or TOS / TC 51 of FIG.

RD制御ブロック33Aでの1回目の読出しのとき(一番最初の読み出し)、RD制御ブロック33Aは、フレーム受信バッファ32のEmptyではない優先度の高いクラスキューから読出しを開始する。重み付きシーケンス番号計算部332は、読み出ししたフレームのバイト数から重み付きシーケンス番号を計算する。計算した重み付きシーケンス番号411について、重み付きシーケンス番号計算部332は、帯域制御キュー管理テーブル31Bの該当クラスに格納する。   At the time of the first reading in the RD control block 33A (first reading), the RD control block 33A starts reading from a class queue having a high priority that is not Empty in the frame reception buffer 32. The weighted sequence number calculation unit 332 calculates a weighted sequence number from the number of bytes of the read frame. The weighted sequence number calculation unit 332 stores the calculated weighted sequence number 411 in the corresponding class of the bandwidth control queue management table 31B.

以降2回目の読み出しのとき、RD制御ブロック33Aは、読み出し時に帯域制御キュー管理テーブル31Bを参照し、重み付きシーケンス番号411の値が小さいキューの順にフレーム受信バッファ32よりフレームの読み出しを行なう。RD制御ブロック33Aは、その都度重み付きシーケンス番号計算部332にて、次のフレームの重み付きシーケンス番号を計算し、帯域制御キュー管理テーブル31Bの該当クラスに格納する。   Thereafter, at the time of the second reading, the RD control block 33A refers to the bandwidth control queue management table 31B at the time of reading, and reads the frames from the frame reception buffer 32 in the order of the queue with the smallest value of the weighted sequence number 411. The RD control block 33A calculates the weighted sequence number of the next frame by the weighted sequence number calculation unit 332 each time, and stores it in the corresponding class of the bandwidth control queue management table 31B.

実施例1では、予め各クラスキューの重み付きシーケンス番号411がわかっている上で、重み付きシーケンス番号411の小さい順にフレーム受信バッファ32よりフレームを読み出す。しかし、実施例2では、フレーム受信バッファ32よりフレームを読み出して、重み付きシーケンス番号411を計算した結果、次に読みだすクラスキューを決定する。   In the first embodiment, the weighted sequence numbers 411 of the respective class queues are known in advance, and the frames are read from the frame reception buffer 32 in ascending order of the weighted sequence numbers 411. However, in the second embodiment, the frame is read from the frame reception buffer 32 and the weighted sequence number 411 is calculated. As a result, the class queue to be read next is determined.

この時、読み出し側であるRD制御ブロック33Aで、フレーム読み出しによる重み付きシーケンス番号411更新時、フレーム受信バッファ32が空のクラスについても、読み出したフレームの計算した重み付きシーケンス番号411にて上書きする。ただし、上書きする重み付きシーケンス番号411の値があらかじめ帯域制御キュー管理テーブル31Bに保存されている重み付きシーケンス番号411よりも大きい場合は、上書きを行なわない。
一方、書き込み側であるWR制御ブロック30Aは、重み付きシーケンス番号411の参照、上書きは一切行なわない。
At this time, when the weighted sequence number 411 is updated by reading the frame in the RD control block 33A on the reading side, even the class in which the frame reception buffer 32 is empty is overwritten with the weighted sequence number 411 calculated for the read frame. . However, when the value of the weighted sequence number 411 to be overwritten is larger than the weighted sequence number 411 stored in the bandwidth control queue management table 31B in advance, overwriting is not performed.
On the other hand, the WR control block 30A on the writing side does not refer to or overwrite the weighted sequence number 411 at all.

ここでラウンド番号313について説明する。RD制御ブロック33Aは、非アクティブなキュー=Emptyとし、帯域制御キュー管理テーブル31Bの各クラスの中で最も小さい値の重み付けシーケンス番号411を持つキューのパケットで計算した重み付けシーケンス番号をラウンド番号313とする。また、フレーム読出し後、RD制御ブロック33Aは、フローの内、Emptyとなっているクラスキューの重み付きシーケンス番号411にラウンド番号313を上書きする。   Here, the round number 313 will be described. The RD control block 33A sets the inactive queue = Empty, and sets the rounding number 313 as the weighting sequence number calculated for the packet of the queue having the smallest weighting sequence number 411 in each class of the bandwidth control queue management table 31B. To do. In addition, after the frame is read, the RD control block 33A overwrites the round number 313 in the weighted sequence number 411 of the class queue that is Empty in the flow.

ここで重み付きシーケンス番号411の計算方法について説明する。
重み付きシーケンス番号411
=帯域制御キュー管理テーブル31Bから読み出した重み付きシーケンス番号411+クラスに該当するWeight値×フレームバイト数
アクティブなクラスキューの場合(Not Empty)も非アクティブなクラスキューの場合(Empty)も上記の計算式である。なお、1回目の読み出し時(一番最初の読み出し時)、管理テーブル31Bは、重み付きシーケンス番号411シーケンス番号を保持していないので、ラウンド番号(初期値0)を利用する。
Here, a method of calculating the weighted sequence number 411 will be described.
Weighted sequence number 411
= Weighted sequence number 411 read from the bandwidth control queue management table 31B + Weight value corresponding to class × number of frame bytes The above calculation is performed for both an active class queue (Not Empty) and an inactive class queue (Empty). It is a formula. At the time of the first reading (at the time of the first reading), the management table 31B does not hold the weighted sequence number 411 sequence number, so the round number (initial value 0) is used.

図11を参照して、実施例2のフレームのキューへの格納と、読み出しを説明する。なお、図11では、帯域制御キュー管理テーブル31Bの重み付きシーケンス番号411をキュー内部に記載している。これは、図示の簡便のためである。   With reference to FIG. 11, storage and reading of frames in the queue according to the second embodiment will be described. In FIG. 11, the weighted sequence number 411 of the bandwidth control queue management table 31B is described in the queue. This is for the convenience of illustration.

まず、図11Aを参照して、以下のフレームが(A)、(B)、(C)の順で到着した場合を説明する。
(A) フレーム長:100、クラスキュー:#0
(B) フレーム長:150、クラスキュー:#1
(C) フレーム長:200、クラスキュー:#1
各キューの優先割合であるフレーム重みとして実施例1の値を使用する。
実施例2では、書き込み側ではWFQに関して一切処理をせず、WR制御ブロック30Aは、フレーム70AのCOSまたはTOS/TC51に従って、キュー323、324に格納する。
First, a case where the following frames arrive in the order of (A), (B), and (C) will be described with reference to FIG. 11A.
(A) Frame length: 100, class queue: # 0
(B) Frame length: 150, class queue: # 1
(C) Frame length: 200, class queue: # 1
The value of the first embodiment is used as the frame weight which is the priority ratio of each queue.
In the second embodiment, no processing is performed on the WFQ on the writing side, and the WR control block 30A stores in the queues 323 and 324 according to the COS or TOS / TC 51 of the frame 70A.

到着したフレーム(A)(B)(C)の重み付きシーケンス番号(SN)の計算は、読み出し側で行なう。
図11Bにおいて、RD制御ブロック33Aは、帯域制御キュー管理テーブル31Bを参照して、読み出すフレームを選択する。図11Bの場合、1回目の読み出し時(一番最初の読み出し時)のためEmptyではない優先度の高いクラスキューから読み出しを開始する。そのため、RD制御ブロック33Aは、クラスキュー#1に格納されているフレーム(B)を最初に読み出す。
The weighted sequence number (SN) of the arrived frames (A), (B), and (C) is calculated on the reading side.
In FIG. 11B, the RD control block 33A refers to the bandwidth control queue management table 31B and selects a frame to be read. In the case of FIG. 11B, reading is started from a class queue with a high priority that is not Empty because it is the first reading (at the first reading). Therefore, the RD control block 33A first reads the frame (B) stored in the class queue # 1.

次に、RD制御ブロック33Aは、読み出したフレーム(B)の重み付きシーケンス番号(SN)計算を下記の通り行なう。
・(B)の重み付きシーケンス番号(SN)計算
フレーム(B)はアクティブなクラスキュー#1のため、RD制御ブロック33Aは、ラウンド番号を使用する。
Next, the RD control block 33A performs weighted sequence number (SN) calculation of the read frame (B) as follows.
(B) Weighted sequence number (SN) calculation Since the frame (B) is the active class queue # 1, the RD control block 33A uses a round number.

重み付きシーケンス番号(SN)
=(ラウンド番号)+(フレーム長)×(フレーム重み:W1)
=0+150×9
=1350
RD制御ブロック33Aは、計算したフレーム(B)の重み付きシーケンス番号(SN)1350にて、ラウンド番号313を0から1350に上書きする。また、RD制御ブロック33Aは、帯域制御キュー管理テーブル31Bのクラス#1、#2の重み付きシーケンス番号(SN)も0から1350へ上書きを行なう。#2の重み付きシーケンス番号(SN)を0から1350へ上書きを行なうのは、#2がEmptyだからである。
Weighted sequence number (SN)
= (Round number) + (frame length) x (frame weight: W1)
= 0 + 150 × 9
= 1350
The RD control block 33A overwrites the round number 313 from 0 to 1350 with the weighted sequence number (SN) 1350 of the calculated frame (B). The RD control block 33A also overwrites the weighted sequence numbers (SN) of classes # 1 and # 2 in the bandwidth control queue management table 31B from 0 to 1350. The reason why the weighted sequence number (SN) of # 2 is overwritten from 0 to 1350 is because # 2 is Empty.

図11Cを参照して、次に新たに以下のフレーム(D)が到着した場合を説明する。
(D) フレーム長:250、クラスキュー:#2
図11Cにおいて、図11Aと同様に、WR制御ブロック30Aは、COSまたはTOS/TC51に従ってキュー322に格納する。
Next, a case where the following frame (D) arrives newly will be described with reference to FIG. 11C.
(D) Frame length: 250, class queue: # 2
In FIG. 11C, as in FIG. 11A, the WR control block 30A stores in the queue 322 in accordance with COS or TOS / TC51.

図11Dを参照して、現在キューに溜まっているフレーム(A)、(C)、(D)のキューからの読み出しの流れを説明する。図11Dにおいて、RD制御ブロック33Aは、図11Cにて更新された帯域制御キュー管理テーブル31Bのフレームが蓄積されているクラス#2、#1、#0の重み付きシーケンス番号を比較する。   With reference to FIG. 11D, the flow of reading from the queues of the frames (A), (C), and (D) currently accumulated in the queue will be described. 11D, the RD control block 33A compares the weighted sequence numbers of the classes # 2, # 1, and # 0 in which the frames of the bandwidth control queue management table 31B updated in FIG. 11C are accumulated.

最も小さい重み付きシーケンス番号(SN)はフレーム(A)の0のため、RD制御ブロック33Aは、フレーム(A)を最初に出力する。   Since the smallest weighted sequence number (SN) is 0 in frame (A), RD control block 33A outputs frame (A) first.

次に読み出したフレーム(A)の重み付きシーケンス番号(SN)計算を行なう。
・(A)の重み付きシーケンス番号(SN)計算
フレーム(A)は非アクティブなクラスキュー#0のため、RD制御ブロック33Aは、帯域制御キュー管理テーブル31Bで読み出した重み付きシーケンス番号を使用する。
重み付きシーケンス番号(SN)
=(帯域制御キュー管理テーブル31Bで読み出したSN)+(フレーム長)×(フレーム重み:W0)
=0+100×18
=1800
計算結果の重み付きシーケンス番号(SN)1800を、RD制御ブロック33Aは、帯域制御キュー管理テーブル31Bのクラスキュー#0の重み付きシーケンス番号領域にを上書きする。また、RD制御ブロック33Aは、ラウンド番号313を1350から1800に上書きする。
Next, the weighted sequence number (SN) of the read frame (A) is calculated.
(A) Weighted sequence number (SN) calculation Since the frame (A) is the inactive class queue # 0, the RD control block 33A uses the weighted sequence number read in the bandwidth control queue management table 31B. .
Weighted sequence number (SN)
= (SN read in bandwidth control queue management table 31B) + (frame length) × (frame weight: W0)
= 0 + 100 × 18
= 1800
The RD control block 33A overwrites the weighted sequence number (SN) 1800 of the calculation result in the weighted sequence number area of the class queue # 0 of the bandwidth control queue management table 31B. In addition, the RD control block 33A overwrites the round number 313 from 1350 to 1800.

次に、RD制御ブロック33Aは、帯域制御キュー管理テーブル31Bのフレームが蓄積されているクラス#2、#1の重み付きシーケンス番号を比較する。クラス#2、#1ともに重み付きシーケンス番号は1350のため、RD制御ブロック33Aは、優先度の高いクラス#2に蓄積されているフレーム(D)を次に読み出す。   Next, the RD control block 33A compares the weighted sequence numbers of the classes # 2 and # 1 in which the frames of the bandwidth control queue management table 31B are accumulated. Since the weighted sequence number is 1350 for both classes # 2 and # 1, the RD control block 33A next reads the frame (D) stored in class # 2 having a high priority.

RD制御ブロック33Aは、読み出したフレーム(D)の重み付きシーケンス番号(SN)計算を行なう。
・(D)の重み付きシーケンス番号(SN)計算
フレーム(D)は非アクティブなクラスキュー#2のため、RD制御ブロック33Aは、帯域制御キュー管理テーブル31Bで読み出した重み付きシーケンス番号を使用する。
重み付きシーケンス番号(SN)
=(帯域制御キュー管理テーブル31Bで読み出したSN)+(フレーム長)×(フレーム重み:W2)
=1350+250×2
=1850
RD制御ブロック33Aは、重み付きシーケンス番号(SN)1850を帯域制御キュー管理テーブル31Bのクラスキュー#2の重み付きシーケンス番号領域に上書きする。また優先クラスキュー#0もバッファが空のため、RD制御ブロック33Aは、重み付きシーケンス番号を1800から1850へ上書きを行なう。また、RD制御ブロック33Aは、ラウンド番号313を1800から1850に上書きする。
The RD control block 33A calculates a weighted sequence number (SN) of the read frame (D).
(D) Weighted sequence number (SN) calculation Since the frame (D) is the inactive class queue # 2, the RD control block 33A uses the weighted sequence number read in the bandwidth control queue management table 31B. .
Weighted sequence number (SN)
= (SN read in bandwidth control queue management table 31B) + (frame length) × (frame weight: W2)
= 1350 + 250 × 2
= 1850
The RD control block 33A overwrites the weighted sequence number (SN) 1850 in the weighted sequence number area of the class queue # 2 in the bandwidth control queue management table 31B. Since the priority class queue # 0 also has an empty buffer, the RD control block 33A overwrites the weighted sequence number from 1800 to 1850. Further, the RD control block 33A overwrites the round number 313 from 1800 to 1850.

最後に、RD制御ブロック33Aは、帯域制御キュー管理テーブル31Bのクラス#1に蓄積されているフレーム(C)を読み出す。   Finally, the RD control block 33A reads the frame (C) stored in the class # 1 of the bandwidth control queue management table 31B.

RD制御ブロック33Aは、読み出したフレーム(C)の重み付きシーケンス番号(SN)計算を行なう。
・(C)の重み付きシーケンス番号(SN)計算
フレーム(C)は非アクティブなクラスキュー#1のため、RD制御ブロック33Aは、帯域制御キュー管理テーブル31Bで読み出した重み付きシーケンス番号を使用する。
重み付きシーケンス番号(SN)
=(帯域制御キュー管理テーブル31Bで読み出したSN)+(フレーム長)×(フレーム重み:W1)
=1350+200×9
=3150
RD制御ブロック33Aは、重み付きシーケンス番号(SN)3150を帯域制御キュー管理テーブル31Bのクラスキュー#1の重み付きシーケンス番号領域に上書きする。また、RD制御ブロック33Aは、優先クラスキュー#2、#0もバッファが空のため重み付きシーケンス番号を3150へ上書きを行なう。また、RD制御ブロック33Aは、ラウンド番号313を1850から3150に上書きする。
The RD control block 33A calculates a weighted sequence number (SN) of the read frame (C).
(C) Weighted sequence number (SN) calculation Since the frame (C) is the inactive class queue # 1, the RD control block 33A uses the weighted sequence number read in the bandwidth control queue management table 31B. .
Weighted sequence number (SN)
= (SN read in bandwidth control queue management table 31B) + (frame length) × (frame weight: W1)
= 1350 + 200 × 9
= 3150
The RD control block 33A overwrites the weighted sequence number (SN) 3150 in the weighted sequence number area of the class queue # 1 in the bandwidth control queue management table 31B. The RD control block 33A also overwrites the weighted sequence number to 3150 because the priority class queues # 2 and # 0 also have empty buffers. Further, the RD control block 33A overwrites the round number 313 from 1850 to 3150.

ラップアラウンドについて、実施例2は、実施例1と同様の動作とすればよい。
上述した実施例によれば、汎用FPGAにて高速にWFQ処理が可能な通信装置を提供することができた。
Regarding the wraparound, the second embodiment may perform the same operation as the first embodiment.
According to the above-described embodiment, a communication apparatus capable of performing WFQ processing at high speed with a general-purpose FPGA can be provided.

10…エンドユーザ、11…通信装置、12…アクセス回線網、13…他キャリアアクセス回線網、14…ATMアクセスネットワーク、15…イーサアクセスネットワーク、16…VLANサービス網、17…専用線網、18…エッジSW、19…キャリアネットワーク、20…PHY、21…フレーム分離部、22…制御フレーム終端部、23…制御フレーム生成部、24…多重部、25…帯域制御部、30…WR制御ブロック、31…帯域制御キュー管理テーブル、32…フレーム受信バッファ、33…RD制御ブロック、50…SN(シーケンス番号)、51…キュー格納情報、52…フレーム長情報、70…フレーム、100…ネットワーク、301…ラウンド番号取得部、302…重み付きシーケンス番号計算and付与部、311…フレーム先頭情報、312…WA(Write Address)、313…ラウンド番号、314…RA(Read Address)、321…クラス3キュー(絶対優先)、322…クラス2キュー(重み:W2)、323…クラス1キュー(重み:W1)、324…クラス0キュー(重み:W0)、331…ラウンド番号取得部、332…重み付きシーケンス番号計算部、411…重み付きシーケンス番号、412…先読み重み付きシーケンス番号。   DESCRIPTION OF SYMBOLS 10 ... End user, 11 ... Communication apparatus, 12 ... Access line network, 13 ... Other carrier access line network, 14 ... ATM access network, 15 ... Ether access network, 16 ... VLAN service network, 17 ... Dedicated line network, 18 ... Edge SW, 19 ... Carrier network, 20 ... PHY, 21 ... Frame separation unit, 22 ... Control frame termination unit, 23 ... Control frame generation unit, 24 ... Multiplexing unit, 25 ... Band control unit, 30 ... WR control block, 31 ... Band control queue management table, 32 ... Frame reception buffer, 33 ... RD control block, 50 ... SN (sequence number), 51 ... Queue storage information, 52 ... Frame length information, 70 ... Frame, 100 ... Network, 301 ... Round Number acquisition unit, 302... Weighted sequence number calculation and giving unit, 3 DESCRIPTION OF SYMBOLS 1 ... Frame head information, 312 ... WA (Write Address), 313 ... Round number, 314 ... RA (Read Address), 321 ... Class 3 queue (absolute priority), 322 ... Class 2 queue (weight: W2), 323 ... Class 1 queue (weight: W1), 324 ... class 0 queue (weight: W0), 331 ... round number acquisition unit, 332 ... weighted sequence number calculation unit, 411 ... weighted sequence number, 412 ... prefetched weighted sequence number .

Claims (4)

受信したフレームのキュー格納情報に基づいてフレーム受信バッファの複数のキューのいずれかに書き込むWR制御部と、
前記フレーム受信バッファの複数の前記キューのいずれかからフレームを読み込むRD制御部と、
前記キューごとの重み付きシーケンス番号と、ラウンド番号とを記録するキュー管理テーブルと、
を備え、
前記WR制御部または前記RD制御部は、フレームごとに、フレームの優先度と長さとに依存する前記重み付きシーケンス番号を演算し、前記キュー管理テーブルに記録し、
前記RD制御部は、前記キューの優先度と前記重み付きシーケンス番号とに基づいて、フレームを読み込むキューを選択し、選択したキューの重み付きシーケンス番号を前記ラウンド番号として、前記キュー管理テーブルに記録することを特徴とする通信装置。
A WR control unit that writes to one of a plurality of queues of the frame reception buffer based on queue storage information of the received frame;
An RD control unit that reads a frame from any of the plurality of queues of the frame reception buffer;
A queue management table that records a weighted sequence number for each queue and a round number;
With
The WR control unit or the RD control unit calculates, for each frame, the weighted sequence number depending on the priority and length of the frame, and records the weighted sequence number in the queue management table.
The RD control unit selects a queue from which a frame is read based on the priority of the queue and the weighted sequence number, and records the weighted sequence number of the selected queue as the round number in the queue management table. A communication device characterized by:
請求項1に記載の通信装置であって、
前記RD制御部は、フレームごとに、フレームの優先度と長さとに依存する前記重み付きシーケンス番号を演算し、前記キュー管理テーブルに記録し、初回の読み込みは前記キューの優先度に基づいてフレームを読み込むキューを選択し、2回目以降の読み込みは最も小さい前記重み付きシーケンス番号を持つキューを選択することを特徴とする通信装置。
The communication device according to claim 1,
The RD control unit calculates, for each frame, the weighted sequence number that depends on the priority and length of the frame, records the weighted sequence number in the queue management table, and the first reading is performed based on the priority of the queue. And a queue having the smallest weighted sequence number for the second and subsequent readings is selected.
請求項1に記載の通信装置であって、
前記WR制御部は、フレームごとに、フレームの優先度と長さとに依存する前記重み付きシーケンス番号を演算し、前記キュー管理テーブルに記録し、さらに前記シーケンス番号を当該フレームの先頭に追加して、前記フレーム受信バッファの複数のキューのいずれかに書き込み、
前記RD制御部は、フレームを読みだすとき、前記読み出しフレームの次のフレームのシーケンス番号を先読みして、前記キュー管理テーブルに先読み重み付きシーケンス番号として記録し、前記先読み重み付きシーケンス番号に基づいて、読みだすキューを選択することを特徴とする通信装置。
The communication device according to claim 1,
The WR control unit calculates the weighted sequence number depending on the priority and length of the frame for each frame, records the weighted sequence number in the queue management table, and adds the sequence number to the head of the frame. Write to any of a plurality of queues in the frame receive buffer;
When the frame is read, the RD control unit prefetches the sequence number of the next frame of the read frame and records it as a prefetch weighted sequence number in the queue management table. Based on the prefetch weighted sequence number A communication device characterized by selecting a queue to be read out.
受信したフレームのキュー格納情報に基づいてフレーム受信バッファの複数のキューのいずれかに書き込むWR制御部と、前記フレーム受信バッファの複数の前記キューのいずれかからフレームを読み込むRD制御部と、前記キューごとの重み付きシーケンス番号と、ラウンド番号とを記録するキュー管理テーブルと、を備えた通信装置における優先制御方法であって、
前記WR制御部または前記RD制御部において、
フレームごとに、フレームの優先度と長さとに依存する前記重み付きシーケンス番号を演算するステップと、
前記重み付きシーケンス番号を前記キュー管理テーブルに記録するステップと、
前記RD制御部において、
前記キューの優先度と前記重み付きシーケンス番号とに基づいて、フレームを読み込むキューを選択するステップと、
選択したキューの重み付きシーケンス番号を前記ラウンド番号として、前記キュー管理テーブルに記録するステップと、
を含む優先制御方法。
A WR control unit that writes to one of a plurality of queues of a frame reception buffer based on queue storage information of a received frame, an RD control unit that reads a frame from one of the plurality of queues of the frame reception buffer, and the queue A priority control method in a communication device comprising a weighted sequence number and a queue management table for recording a round number,
In the WR control unit or the RD control unit,
For each frame, calculating the weighted sequence number depending on the priority and length of the frame;
Recording the weighted sequence number in the queue management table;
In the RD control unit,
Selecting a queue to read frames based on the priority of the queue and the weighted sequence number;
Recording the weighted sequence number of the selected queue as the round number in the queue management table;
Priority control method.
JP2012130633A 2012-06-08 2012-06-08 Communication apparatus and priority control method Expired - Fee Related JP5759941B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012130633A JP5759941B2 (en) 2012-06-08 2012-06-08 Communication apparatus and priority control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012130633A JP5759941B2 (en) 2012-06-08 2012-06-08 Communication apparatus and priority control method

Publications (2)

Publication Number Publication Date
JP2013255159A true JP2013255159A (en) 2013-12-19
JP5759941B2 JP5759941B2 (en) 2015-08-05

Family

ID=49952316

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012130633A Expired - Fee Related JP5759941B2 (en) 2012-06-08 2012-06-08 Communication apparatus and priority control method

Country Status (1)

Country Link
JP (1) JP5759941B2 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030103514A1 (en) * 2001-12-03 2003-06-05 Hong-Soon Nam Apparatus and method for packet scheduling using credit based round robin
JP2011004083A (en) * 2009-06-17 2011-01-06 Nippon Telegr & Teleph Corp <Ntt> Communication quality control device and communication quality control method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030103514A1 (en) * 2001-12-03 2003-06-05 Hong-Soon Nam Apparatus and method for packet scheduling using credit based round robin
JP2011004083A (en) * 2009-06-17 2011-01-06 Nippon Telegr & Teleph Corp <Ntt> Communication quality control device and communication quality control method

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN6015011297; Ruangchaijatupon, N. ; Liping Wang ; Yusheng Ji: 'A Study on the Performance of Scheduling Schemes for Broadband Wireless Access Networks' Communications and Information Technologies, 2006. ISCIT '06. International Symposium on , 20061018, pp.1008-1012 *
JPN6015011298; S. Keshav: An Engineering Approach to Computer Networking Scheduling, 1997 *

Also Published As

Publication number Publication date
JP5759941B2 (en) 2015-08-05

Similar Documents

Publication Publication Date Title
US8184540B1 (en) Packet lifetime-based memory allocation
US8588241B1 (en) Memory utilization in a priority queuing system of a network device
EP2466824B1 (en) Service scheduling method and device
CN101977162B (en) Load balancing method of high-speed network
US20080101233A1 (en) Method and apparatus for load balancing internet traffic
US6795870B1 (en) Method and system for network processor scheduler
JP5749732B2 (en) Assembly and method for receiving and storing data while conserving bandwidth by controlling queue fill level updates
WO2011106288A2 (en) Communication transport optimized for data center environment
EP3166269B1 (en) Queue management method and apparatus
US9769092B2 (en) Packet buffer comprising a data section and a data description section
CN113037640A (en) Data forwarding method, data caching device and related equipment
US8514700B2 (en) MLPPP occupancy based round robin
EP3907944A1 (en) Congestion control measures in multi-host network adapter
CN111355673A (en) Data processing method, device, equipment and storage medium
CN112866134A (en) Method for sending message, first network equipment and computer readable storage medium
CN109842564A (en) A kind of method, the network equipment and system that service message is sent
TW202002596A (en) Queuing system to predict packet lifetime in a computing device
US7342936B2 (en) Method of performing deficit round-robin scheduling and structure for implementing same
US20180176144A1 (en) APPARATUS FOR SELF-REGULATER (SR) LAST-IN, FIRST-OUT (LIFO) SCHEDULING IN SOFTWARE DEFINED NETWORKS (SNDs) WITH HYBRID TRAFFIC
WO2011085934A1 (en) A packet buffer comprising a data section and a data description section
US11108697B2 (en) Technologies for controlling jitter at network packet egress
JP5759941B2 (en) Communication apparatus and priority control method
JP4276094B2 (en) Communication apparatus and priority control method for performing priority control of packet
US7746775B2 (en) Instant service method for deficit-round-robin (DRR) data packet scheduling
US10084709B1 (en) Methods and apparatus for scheduling transmission of data in a network

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140616

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20140908

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150324

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150501

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150608

R150 Certificate of patent or registration of utility model

Ref document number: 5759941

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees