WO2005006672A1 - Hierarchical scheduling device - Google Patents

Hierarchical scheduling device Download PDF

Info

Publication number
WO2005006672A1
WO2005006672A1 PCT/JP2003/008780 JP0308780W WO2005006672A1 WO 2005006672 A1 WO2005006672 A1 WO 2005006672A1 JP 0308780 W JP0308780 W JP 0308780W WO 2005006672 A1 WO2005006672 A1 WO 2005006672A1
Authority
WO
WIPO (PCT)
Prior art keywords
bucket
queue
count value
unit
packet
Prior art date
Application number
PCT/JP2003/008780
Other languages
French (fr)
Japanese (ja)
Inventor
Takanori Ueda
Toshiaki Tomisawa
Yoshihiko Shirokura
Original Assignee
Mitsubishi Denki Kabushiki Kaisha
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 Mitsubishi Denki Kabushiki Kaisha filed Critical Mitsubishi Denki Kabushiki Kaisha
Priority to JP2005503853A priority Critical patent/JP4234134B2/en
Priority to PCT/JP2003/008780 priority patent/WO2005006672A1/en
Publication of WO2005006672A1 publication Critical patent/WO2005006672A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • H04L47/522Dynamic queue service slot or variable bandwidth allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6255Queue scheduling characterised by scheduling criteria for service slots or service orders queue load conditions, e.g. longest queue first

Definitions

  • the present invention relates to a scheduling method for transmitting a packet such as an asynchronous transfer mode (ATM) or an Internet Protocol (IP) bucket.
  • a packet such as an asynchronous transfer mode (ATM) or an Internet Protocol (IP) bucket.
  • ATM asynchronous transfer mode
  • IP Internet Protocol
  • the present invention relates to a device, and more particularly, to a scheduling device that controls the order in which variable-length packets are transmitted.
  • packet transfer is differentiated according to the characteristics of the service.
  • the scheduling device uses real-time traffic packets, such as voice and video, and real-time traffic, such as browsing the World Wide Web (WWW) and e-mail used on the Internet.
  • WWW World Wide Web
  • Buckets of unrequested services were identified using the priority class indicated by the identifier in the header, and priority control and bandwidth control were realized by changing the transmission order of these buckets.
  • the basis of the Internet is the BestEff0rt type, which handles all packets fairly using the IP (Internet Protocol), that is, a communication service that does not guarantee the quality of service.
  • IP Internet Protocol
  • QOS Quality of Services
  • the ATM scheduling When scheduling is performed on a bucket-by-bucket basis, the distribution of buckets input to the scheduler for each priority class is biased, so that there is a problem that the fairness of each priority class cannot be maintained. To remedy this problem, it is necessary to support variable-length packets, and the scheduling device must perform packet-aware scheduling.
  • a conventional scheduling device that supports a variable packet length includes a packet queue for holding packets, and a scheduling unit having two scheduling queue units. Based on the identifier obtained from the scheduling queue unit, a packet queue that outputs a bucket is selected in an interleaved manner.
  • input packets are classified into classes, for example, a real-time class and a non-real-time class, and a scheduling unit is provided for each of the classified classes, thereby realizing class-based scheduling. , Patent Document 1).
  • the bucket after scheduling and scheduling when processing is performed over a plurality of packet queues, the bucket after scheduling and scheduling must be temporarily stored and re-scheduled.
  • CPS Common Packet Sublayer
  • AAL2 ATM Adaptation Layer 2
  • VCI virtual channel identifier
  • the present invention has been made in view of the above, and has a scheduling device that performs multiplexing with respect to a specific bucket of a plurality of buckets corresponding to variable-length packets and then performs scheduling after multiplexing.
  • the purpose is to get. DISCLOSURE OF THE INVENTION.
  • n (where n is a natural number) first first value register that stores a bucket and has a first count value register that holds a weight count value based on the stored bucket is provided.
  • M (m is a natural number) second packet queue units to be output by shading, and the input buckets to the n second bucket queues based on the identifiers assigned to the externally input buckets.
  • a first bucket input part to be allocated to a part and m first bucket queues; and the n first bucket queue parts and m second buckets.
  • a bucket is selected based on the rotation priority control, and a bucket is obtained according to the first or second count value register of the selected first or second packet queue and the state of the stored bucket.
  • a first queue control unit for changing the weight count value of the first or second count value register of the selected first or second packet queue unit, and the first queue control unit acquires A first bucket generating unit for multiplexing buckets.
  • the first packet input unit identifies the quality class of the packet based on the identifier given to the input packet, and generates n first bucket queue units or m Distribute to the second bucket bucket section.
  • the first queue control unit controls the first or second bucket queue by the rotation priority control.
  • a bucket is selected according to the weight count value of the count value register inside the selected first or second bucket queue section and the state of the stored bucket.
  • the second packet queue unit multiplexes the plurality of accumulated packets to generate one new packet, and the first queue control unit acquires the generated bucket.
  • FIG. 1 is a block diagram showing a configuration of a scheduling device according to the present invention
  • FIG. 2 is a block diagram showing a configuration of a queue control unit shown in FIG. 1
  • FIG. 5 is a flowchart for explaining the operation of the scheduling device.
  • FIG. 1 is a block diagram showing a configuration of a scheduling device according to the present embodiment of the present invention.
  • the scheduling apparatus according to the present embodiment of the present invention includes a packet input unit 111-10 as a first bucket input unit and n (n is a natural number) first bucket queue units 122- :! 1 to 2—n and m (m is a natural number) second packet queue units 15 _ 1 to: 15—m and a queue control unit 13 1, which is the first queue control unit 13 And a bucket generation unit 1411 which is a first bucket generation unit.
  • the bucket input unit 111-110 identifies the quality class of the input bucket based on the identifier assigned to the input bucket, and the first packet queue unit 1 2— :! corresponding to the identified quality class. 11 2 _m, and the second packet queue unit 15-1 to 15-n.
  • Each of the first bucket queue sections 1 2—1 to 1 2—in has a count value register 16—1, which is a first count value register that holds a weight count value. It stores fixed-length or variable-length packets sorted by the packet input unit 111.
  • the second packet queue sections 15-l to 15-n have the same functions.
  • the second packet queue unit 15-1 includes a packet input unit 11 1-1 as a second packet input unit and a first packet queue unit of a ( a is a natural number) which is a third packet queue unit. 1 2—0 1 to 1 2—la; a queue control unit 13—011, which is a second queue control unit; a packet generation unit 14—01, which is a second bucket generation unit; It has a count value register 16-1-01, which is a second count value register.
  • the second bucket queue unit 15-m is composed of a bucket input unit 1 l-m which is a second bucket input unit and a first packet of b (b is a natural number) which is a third packet queue unit.
  • the difference between the second bucket stowing sections 15-0 1 to 15-m is the number of the first bucket stowing sections that each has, but the number of the first bucket stowing sections that each has is the same. It doesn't matter.
  • the function of the second packet queue unit will be described using the second packet queue unit 15-1 as an example.
  • the bucket input unit 111 has the same function as the bucket input unit 110, and the bucket quality is determined based on the identifier assigned to the bucket assigned by the bucket input unit 110. Identify the class and assign it to one of the first bucket queue sections 1 2-0 1 to 1 2-0 a corresponding to the identified quality class.
  • the first packet queue section 12-0 1-: L 2-0 a has the same function as the first packet queue section 12-1-12-m. That is, each of the first packet queues 1 2—0 1 to 1 2—0a has a count value register 16—1 that holds a weight count value, and the packet input unit 1 1—1 1 Stores fixed-length or variable-length packets that have been allocated to them.
  • the queue control unit 1 3 01 1 performs the first packet queue based on the determined order. Part 1 2— Select 0 1 to 1 2 _ 0 m. Then, based on the count value of the selected first packet queue unit count value register 16-1, the bucket accumulated in the selected first packet queue unit is obtained, and the first bucket queue unit is acquired. Set the weight count value for each of 1 2— 0 1 to 1 2— O m.
  • FIG. 2 is a block diagram showing a configuration of the queue control unit 13-01 shown in FIG.
  • the queue control unit 1 3 — 0 1 includes a queue selection unit 13 1, which is a second queue selection unit, a queue selection pointer 13 2, and a weight force value update unit, which is a second weight count value update unit. 13 and a weighting force value resetting unit 134 which is a second weighting force value resetting unit.
  • the order of the first bucket queuing unit selected by the cue selecting unit 13 1 is defined in the cue selection pointer 1 32.
  • the queue selection unit 13 1 selects the first bucket queue unit indicated by the queue selection pointer 13 2. If the value of the count value register of the selected first bucket queuing unit is greater than 0 (positive number), the queue selecting unit 131 acquires the bucket accumulated in the selected first bucket queuing unit, Update (increment) the value of the queue selection pointer 1 32. If the value of the count value register corresponding to the selected first bucket queue unit is smaller than 0 (0 or a negative number), the queue selection unit 1331 increments the value of the queue selection pointer 132 and newly queues. The first bucket queue section indicated by the selection pointer 1 32 is selected. That is, the queue selection unit 13 1 sequentially selects the first bucket queue units 1 2-0 1 to 1 2-0 m according to the round robin set by the queue selection pointer 1 32.
  • the weight value update unit 133 counts the first bucket queue unit. The weight corresponding to the packet length of the packet to be obtained is subtracted from the weight count value in the value register. Then, the subtracted value is set as a new weight count value in the count value register 16-1 of the first packet queue unit for acquiring the bucket.
  • the weight count value update unit 1 3 3 is the queue selection unit 1 3 If 1 cannot obtain the bucket (if no packets are stored in the selected first bucket queue unit), the first packet queue unit count value register 16-1 is selected from the weight count value of the selected first bucket queue unit. The weight corresponding to the maximum packet length of the packet that can be stored in the packet queue is subtracted. Then, the subtracted value is set as the new weight count value in the count value register 16-1 of the first bucket queuing unit selected.
  • the weighting event value resetting section 13 4 sets the count value of all the count value registers 16-1 of the first packet queue section 1 2-0 1 to 1 2-0 a to 0 or a negative number. In this case, the respective weight count values are reset in the count value register 16-1 of the first packet queue unit 1 2—0 1 to 1 2—0a.
  • the weight count value of the resetting is at least the first packet queue part 1 2— 0 1 to 1 2— which fluctuates according to the quality and bandwidth setting for the priority class expected to be input 0 a
  • the specified value that is longer than the maximum bucket length of each packet that can be stored is assigned to the first bucket queue. Part 1 2—0 1 to 1 2—0 Value added to the event value.
  • the packet generation unit 141-101 generates the bucket acquired by the queue control unit 13-01 into one bucket, and outputs the generated bucket.
  • the queue control unit 13-1 has the same function as the queue control unit 13-01-1 shown in FIG. However, the queue selection pointer 13 2 of the queue control unit 13-1 indicates the first bucket queue unit 12 _l to 12-n and the second bucket queue unit 15-1 to 15 _m. is there. Also, the queue selection unit 13 1 of the queue control unit 13-1 is a first queue selection unit, and the weight value update unit 13 3 of the queue control unit 13-1 is a first weight unit. A weight updating unit, and the weighting point value resetting unit 134 of the queue control unit 13-1 is a first weighting point value resetting unit.
  • the bucket generation unit 14-1 has the same function as the packet generation unit 14-0-1 to 14-10m, and generates the packet obtained by the queue control unit 13-1 into one packet. And output the generated bucket.
  • the operation of the scheduling device according to the present embodiment of the present invention will be described. First, the basic operation of acquiring a packet will be described with reference to the flowchart in FIG.
  • the queue control units 13-1, 13-01 to 13_0m initialize the respective queue selection pointers 131 (step S100).
  • the bucket input unit 11-0 identifies the quality class of the bucket based on the identifier assigned to the input bucket, and the first bucket queue unit 12-1 to 12_n and the bucket input corresponding to the identified quality class.
  • Part 1 1 1 1 1 Distributes the input packet to 1 to 11 1 m.
  • the packet input section 11-0 identifies the VCI in the header section of the ATM cell and outputs a multiplexable CPS bucket to the bucket input section 11-1 of the second bucket queue section 15-0.
  • OAM Operaation And Maintenance
  • the packet input units 111-11-111m identify the quality glasses of the bucket based on the identification given to the bucket twisted by the packet input unit 111-10, and correspond to the identified quality class. Distribute the bucket to the first bucket part 12—01 to 12-0 a, 12—ml to l 2—mb.
  • the queue selection unit 131 of the queue control unit 13-1 selects the first bucket queue unit or the second bucket queue unit indicated by the queue selection pointer 132 (step S110). .
  • the queue selection pointer 132 of the queue control unit 13-1 indicates the first bucket queue unit 12-1.
  • the queue selection unit 13 1 of the queue control unit 13-1 selects the first packet queue unit 12-1 and counts the count value register 16-1 in the selected first packet queue unit 12-1. Check the value.
  • the queue control unit 13-1 selects the queue.
  • the selection unit 131 checks whether a bucket is stored in the first bucket queue unit 12-1. If buckets are accumulated in the first packet queue unit 12-1 (step S130, Yes), the weight count value updating unit 133 of the queue selecting unit 13-1 is switched to the first packet queue unit 12-1.
  • the weight corresponding to the packet length of the packet to be obtained is subtracted from the weight count value of the count value register 16-1 (step S140). Then, the subtracted value is set as a new weight count value in the count value register 16-1 of the first bucket queue unit 12-1.
  • the queue selection unit 131 of the queue control unit 13-1 acquires the bucket from the first packet queue unit 12-1 and outputs the acquired packet to the packet generation unit 14-1 (step S150). Then, the cue selection pointer 132 of the cue control unit 13-1 is incremented (step S160).
  • the count value register 16-1 of the selected first bucket queue unit 12-1 has a positive count value (step S120, Yes), and packets are accumulated in the selected first bucket queue unit 12-1. If not (step S130, No), the weight value update unit 133 of the queue control unit 13-1 will calculate the weight count value of the count value register 16-1 of the first packet queue unit 12_1 from the The first bucket queue unit 12-1 subtracts a weight corresponding to the maximum bucket length of a packet that can be stored (step S170). Then, the subtracted value is set as a new weight count value in the count value register 16-1 of the first bucket queue unit 12-1. Further, the queue selection unit 131 of the queue control unit 13-1 increments the queue selection pointer 132 of the queue control unit 13-1 (step S160).
  • step S120, No If the weight count value of the count value register 16-1 of the selected first packet queue unit 12-1 is 0 or a negative number (step S120, No), the queue selection unit 131 of the queue control unit 13-1 , All the first buckets registered in the queue selection pointer 132 12— :! Check the count values of the count value registers 16-1 to 16-0m in the count value registers 16-1 and the second bucket key unit 15-1 to 15-m. First Packet queue part 12— :! To 12—n count value registers 16—1 and the second bucket queue unit 15— :!
  • step S180, No If one or more of the weight count values of 16-Om to 16-Om are positive numbers (step S180, No), the queue selection unit 131 of the queue control unit 13-1 The queue selection pointer 132 of the queue control unit 13-1 is incremented (step S160).
  • the queue selection unit 131 of the queue control unit 13-1 is provided with a count value register 16-1 in all the first bucket queue units 12-1 to 12-n indicated by the queue selection pointer 132 of the queue control unit 13-1. And the second packet queue section 15— :! Until all the weight count values of the 16-m to 15-m count registers 16-01 to 16_0 m become 0 or a negative number, the queue control unit 13-1 displays the queue selection number indicated by the queue selection pointer 132. The bucket bucket unit 1 or the second bucket queue unit is selected, the count value register of the selected first bucket queue unit or the second bucket queue unit is checked, and the operation of acquiring the bucket is repeated (step S11). 0 to step S180).
  • the specified value equal to or larger than the maximum bucket length of the bucket that can be stored in the register is added to the weighted count value of each count value register. Then, the added value is set in each power value register as a new weight power value.
  • the weight count value of the second packet queue unit is The sum of the weight count values of the first bucket queuing unit may be used, or an independent value may be set.
  • the queue selection unit 13 1 of the queue control unit 13-1 checks the weight count value of the count value register 16-01 of the second packet queue unit 15-1.
  • the queue selection unit 13 1 of the queue control unit 13—1 sends the queue control unit 1 of the selected second bucket queue unit 15—1.
  • 3—01 Move the processing to 1.
  • the queue selection unit 131-1 of the queue control unit 13-01 selects the first packet queue unit indicated by the queue selection pointer 1332 of the queue control unit 13-01.
  • the queue selection pointer 13 22 of the queue control unit 13-01-1 points to the first bucket queue unit 12-01.
  • the queue controller 1 3—01 1 queue selector 1 3 1 selects the first packet queue 1 2—0 1 and counts the value in the first packet queue 1 2—0 1 Check the weight value of 16-1.
  • the queue selection unit 13 1 of the queue control unit 13—01 1 Check if buckets are stored in part 1 2—01 1. When buckets are stored in the first bucket queue unit 1 2—01 1, the weight count value updating unit 1 3 3 of the queue selection unit 1 3—0 1 is counted by the first bucket queue unit 1 2—0 1 The weight corresponding to the packet length of the bucket to be obtained is subtracted from the weight count value of the value register 16-1. Then, the subtracted value is set as a new weight count value in the count-in direct register 16-1 of the first bucket queue unit 12-01.
  • the queue selection unit 13 1 of the queue control unit 13 3-0 1 obtains a bucket from the first packet queue unit 12-01, and converts the obtained bucket into a bucket generation unit 14 4-0. 1 and increments the queue selection pointer 1 3 2 of the queue control unit 1 3 — 0 1 to the first packet queue indicated by the queue selection pointer 1 3 2 of the queue control unit 1 3 — 0 1. Select a department. Then, the queue control unit 13-01 obtains a bucket based on the weight value of the selected count value register of the first packet queue unit and the presence / absence of a bucket of the selected first bucket queue unit.
  • the operation is performed as follows: the packet stored in the first bucket queue unit 1 2—0 1 to 1 2—0 a disappears, and the packet generation unit 14 1 0 1 exits from the queue control unit 13 3 0 1 Repeat until multiplexing of the input packets cannot be performed. That is, the queue control unit 13-01, when the process is shifted from the queue control unit 13-1, to the first bucket queue indicated by the queue selection pointer 1332 of the queue control unit 13-01. A packet is obtained by selecting a packet by round robin and a packet is generated by the packet generation unit 1410 1 by multiplexing the obtained packet. Then, when one packet is generated, the queue control unit 13-01 transfers the processing to the queue control unit 13-1.
  • the queue control unit 13-1 acquires the bucket generated by the packet generation unit 14-0 1 of the second packet queue unit 15-0, and outputs it to the bucket generation unit 14-1, Increment the cue selection pointer 1 32 of the cue control unit 13-1. Then, the first bucket queue unit or the second bucket queue unit indicated by the queue selection pointer 132 is selected.
  • the first packet input unit identifies the quality class of the bucket based on the identifier given to the input bucket, and ri first quality classes for each quality class.
  • the first queue control unit selects the first or second packet queue unit by the rotation priority control, and stores the weight count value of the selected weight value register in the first or second bucket queue unit and the accumulated count value. Get a bucket according to the state of the bucket.
  • the second packet queue unit multiplexes the plurality of stored packets to generate a new bucket, and stores the generated bucket in the first queue. Since the control unit obtains it, it can flexibly respond to packets with different attributes, and buckets with specific attributes can be multiplexed and treated as one new packet .
  • the first queue selecting unit may select a positive count value of the count value register of the first packet queue unit or the second count register of the second bucket queue unit selected by the rotation priority control, and When a bucket is accumulated in the first or second packet queue unit, the bucket is acquired, the first weight count value updating unit acquires the first packet, and the first queue count updating unit acquires the bucket.
  • Bucket queue Set the value obtained by subtracting the bucket length value of the acquired packet from the weight count value of some first count value registers or the second count value register of the second bucket queue unit as a new weight count value. However, if the first queue selection unit fails to obtain a bucket, the maximum number of packets that can be stored by the selected first or second packet queue unit.
  • the first weight count value setting unit may include, for each weight count value of the first count value register of each first packet queue unit and the second count value register of each second packet queue unit, Because a value that is equal to or greater than the maximum packet length of a bucket that fluctuates according to quality and / or is added, and the added value is set as a new weight count value in each of the first and second count value registers. Therefore, it is possible to flexibly change the settings and use the bandwidth efficiently.
  • the second packet queue unit stores a plurality of third packet queue units having a third count value register for storing a packet and storing a weight count value based on the bucket to be stored, and a first packet queue unit.
  • a second bucket input unit for allocating a packet input based on an identifier given to a packet input from the packet input unit to a plurality of third packet queue units; and the plurality of third packets.
  • the packet queue is selected based on the rotation priority control, and a packet is obtained based on the third count value register of the selected third packet queue unit and the state of the stored packet.
  • a second queue control unit for changing the weight value of the third count value register of the selected third packet queue unit; and a second queue control unit for multiplexing the bucket acquired by the second queue control unit. Since the two bucket generation units are provided, it is possible to execute scheduling in multiple stages for packets having different genera- tions and efficiently perform processing across a plurality of packet queues. Industrial applicability
  • the scheduling device is useful when controlling the order of transmitting variable-length packets such as ATMs and IP packets, and in particular, multiplexes input packets to create a new packet. Suitable for scheduling buckets that need to be sent out as one bucket.

Abstract

A first packet input section distributes packets to a first or a second packet queue section according to an identifier assigned to a packet input from outside. A first queue controller selects the first and the second packet queue section according to the rotation priority control, acquires a packet according to a first or a second count value register of the selected first or second packet queue section and the accumulated packet state, and modifies the weight count value of the first or the second count value register of the selected first or the second packet queue section. A first packet generation section multiplexes the packets acquired by the first queue controller.

Description

階層型スケジユーリング装置 Hierarchical scheduling device
技術分野 Technical field
この発明は、 非同期転送モード (ATM: Asynchronous Transfer Mode) や I P (Internet Protocol) バケツトなどのバケツトを送出するスケジューリング 明  The present invention relates to a scheduling method for transmitting a packet such as an asynchronous transfer mode (ATM) or an Internet Protocol (IP) bucket.
装置に関するものであり、 特に、 可変長のパケットを送出する順番を制御するス ケジユーリング装置に関するものである。 The present invention relates to a device, and more particularly, to a scheduling device that controls the order in which variable-length packets are transmitted.
書 背景技術 '  Background Technology ''
バケツトを用いたネットワークにおいては、 そのサービスの特性に応じてパケ ット転送の差別化が図られている。 たとえば、 A TMでは、 スケジューリング装 置が、 音声、 動画などのリアルタイム性の高いトラフィックのパケットと、 イン ターネットで使用される WWW (World Wide Web) の閲覧や電子メールなどのリ アルタイム性を要求されないサービスのバケツトとをヘッダ内の識別子が示す優 先クラスを用いて識別して、 これらのバケツトの送信順序を変更することで優先 制御や帯域制御を実現していた。  In networks using buckets, packet transfer is differentiated according to the characteristics of the service. For example, in ATMs, the scheduling device uses real-time traffic packets, such as voice and video, and real-time traffic, such as browsing the World Wide Web (WWW) and e-mail used on the Internet. Buckets of unrequested services were identified using the priority class indicated by the identifier in the header, and priority control and bandwidth control were realized by changing the transmission order of these buckets.
インターネットの基本は、 I P (Internet Protocol) を用いてすべてのパケ ットを公平に扱う B e s t E f f 0 r t型、 すなわち、 サービスの品質を保証 しない通信サービスである。 し力 し、 近年のインターネットの普及に伴い、 イン ターネットを使用したビジネスが展開され、 高品質のサービスや音声、 動画通信 といったリアルタイムのアプリケーションが要求されている。 そのため、 インタ 一ネットにおいても、 音声に代表されるリアルタイム性の必要なサービスと、 必 ずしもリアルタイム性の必要のないサービスとを区別して、 通信サービス品質 ( Q 0 S : Quality of Services) を考慮した技術が考えられている。  The basis of the Internet is the BestEff0rt type, which handles all packets fairly using the IP (Internet Protocol), that is, a communication service that does not guarantee the quality of service. However, with the spread of the Internet in recent years, businesses using the Internet have been developed, and real-time applications such as high-quality services and voice and video communications are required. For this reason, even on the Internet, services that require real-time properties such as voice and services that do not necessarily require real-time properties are distinguished from each other and communication service quality (QOS: Quality of Services) is determined. Considered technologies are being considered.
I Pにおいて Q 0 Sを実現するために、 上述した A TMのスケジューリング装 置を用いてバケツト単位のスケジューリングを行った場合、 優先クラスごとにス ケジユーラ装置に入力されるバケツトの分布が偏ってしまうため、 優先クラスご との公平性を保てないという問題があった。 この問題を改善するためには、 可変 長パケットに対応する必要があり、 スケジューリング装置は、 パケット長を意識 したスケジューリングを行わなければならない。 In order to realize QOS in IP, the ATM scheduling When scheduling is performed on a bucket-by-bucket basis, the distribution of buckets input to the scheduler for each priority class is biased, so that there is a problem that the fairness of each priority class cannot be maintained. To remedy this problem, it is necessary to support variable-length packets, and the scheduling device must perform packet-aware scheduling.
このように I Pにおいて Q o Sを実現するために可変パケット長に対応した従 来技術のスケジューリング装置は、 パケットを保持するパケットキューと、 2つ のスケジューリングキュー部を有するスケジユーリング部を備え、 スケジユーリ ングキュー部から取得した識別子に基づいてバケツトを出力するパケットキユー をインターリーブに選択するようにしている。 また、 入力パケットを、 たとえば、 リアルタイムクラス、 ノンリアルタイムクラスというようにクラス別に分類して、 これら分類したクラス毎にスケジューリング部を設けることで、 クラス別のスケ ジユーリングを実現するようにしている (たとえば、 特許文献 1参照) 。  As described above, in order to realize QoS in IP, a conventional scheduling device that supports a variable packet length includes a packet queue for holding packets, and a scheduling unit having two scheduling queue units. Based on the identifier obtained from the scheduling queue unit, a packet queue that outputs a bucket is selected in an interleaved manner. In addition, input packets are classified into classes, for example, a real-time class and a non-real-time class, and a scheduling unit is provided for each of the classified classes, thereby realizing class-based scheduling. , Patent Document 1).
(特許文献 1 )  (Patent Document 1)
特開平 1 0— 0 8 4 3 8 3号公報  Japanese Patent Laid-Open No. 10-0-0 8 4 3 8
し力 しながら、 上記従来技術では、 たとえば、 入力パケットを多重して、 多重 したパケットを 1つのパケットとして扱うというような、 複数のバケツトキユー に跨つた処理に対する技術は開示されていな!/、。  However, the above prior art does not disclose a technique for processing over a plurality of bucket queues, for example, multiplexing an input packet and treating the multiplexed packet as one packet! /.
上記従来技術で、 複数のパケットキューに跨った処理を実現する場合、 スケジ ユーリング後のバケツトを一旦蓄積して、 再度スケジューリングを行わなければ ならない。 たとえば、 A TMのァダプレーシヨンレイヤの一^ 3である AA L 2 ( ATM Adaptation Layer2) の C P S (Common Packet Sublayer)バケツトを多重す る場合、 C P Sパケッ トは、 特定の仮想チャネル識別子 (V C I : Virtual Channel Identifier) 単位でのみ多重が可能である。 そのため、 取り出したパケ ットを多重可能なバケツトキユーにまとめて 1つのグループとしなければならな レ、。 上記従来技術のスケジユーリング装置において、 特定の V C Iのバケツトの みの多重を実現しょうとすると、 スケジューリング部の処理が複雑になってしま レ、、 効率的に複数のバケツトキユーに跨るバケツトの処理を行うことができない という問題があった。 In the case of the above-described conventional technique, when processing is performed over a plurality of packet queues, the bucket after scheduling and scheduling must be temporarily stored and re-scheduled. For example, when multiplexing a CPS (Common Packet Sublayer) packet of AAL2 (ATM Adaptation Layer 2), which is one of the three ATM application layers, the CPS packet has a specific virtual channel identifier (VCI). : Virtual Channel Identifier) can be multiplexed only in units. Therefore, the extracted packets must be grouped together into a bucket bucket that can be multiplexed. In the above-described conventional scheduling apparatus, if it is intended to multiplex only a bucket of a specific VCI, the processing of the scheduling unit becomes complicated. There was a problem that bucket processing over a plurality of bucket queues could not be performed efficiently.
本発明は、 上記に鑑みて成されたものであって、 可変長パケットに対応し、 か つ入力された複数のバケツトの特定のバケツトに対しては多重を行った後にスケ ジユーリングを行うスケジューリング装置を得ることを目的としている。 発明の開示 .  SUMMARY OF THE INVENTION The present invention has been made in view of the above, and has a scheduling device that performs multiplexing with respect to a specific bucket of a plurality of buckets corresponding to variable-length packets and then performs scheduling after multiplexing. The purpose is to get. DISCLOSURE OF THE INVENTION.
本発明にかかるスケジューリング装置にあっては、 バケツトを蓄積するととも に、 当該蓄積するバケツトに基づいた重みカウント値を保持する第 1のカウント 値レジスタを有する n ( nは自然数) 個の第 1のパケットキュー部と、 パケット を蓄積するとともに、 当該蓄積するバケツトに基づいた重みカウント値を保持す る第 2のカウント値レジスタを有し、 前記パケットを出力する際に、 蓄積したパ ケットを多重ィ匕して出力する m (mは自然数) 個の第 2のパケットキュー部と、 外部から入力されるバケツトに付与されている識別子に基づいて前記入力される バケツトを前記 n個の第 2のバケツトキユー部および m個の第 1のバケツトキュ 一部に振り分ける第 1のバケツト入力部と、 前記 n個の第 1のバケツトキユー部 および m個の第 2のバケツトキユー部を回転優先制御に基づいて選択して、 該選 択した第 1または第 2のパケットキユー部の第 1または第 2のカウント値レジス タおよび蓄積されたバケツトの状態によってバケツトを取得するとともに、 前記 選択した第 1または第 2のパケットキュー部の第 1または第 2のカウント値レジ スタの重みカウント値を変更する第 1のキュー制御部と、 この第 1のキュー制御 部が取得したバケツトを多重化する第 1のバケツト生成部とを備えることを特徴 とする。  In the scheduling device according to the present invention, n (where n is a natural number) first first value register that stores a bucket and has a first count value register that holds a weight count value based on the stored bucket is provided. A packet queue unit for storing the packets and a second count value register for holding a weight count value based on the bucket to be stored, and multiplexing the stored packets when outputting the packets; M (m is a natural number) second packet queue units to be output by shading, and the input buckets to the n second bucket queues based on the identifiers assigned to the externally input buckets. A first bucket input part to be allocated to a part and m first bucket queues; and the n first bucket queue parts and m second buckets. A bucket is selected based on the rotation priority control, and a bucket is obtained according to the first or second count value register of the selected first or second packet queue and the state of the stored bucket. A first queue control unit for changing the weight count value of the first or second count value register of the selected first or second packet queue unit, and the first queue control unit acquires A first bucket generating unit for multiplexing buckets.
この発明によれば、 第 1のパケット入力部が、 入力されるパケットに付与され ている識別子に基づいてパケットの品質クラスを識別して、 品質クラス毎に n個 の第 1のバケツトキユー部または m個の第 2のバケツトキユー部に振り分ける。 第 1のキュー制御部は、 回転優先制御によって第 1または第 2のバケツトキユー 部を選択して、 選択した第 1または第 2のバケツトキユー部内部のカウント値レ ジスタの重みカウント値と蓄積されたバケツトの状態によってバケツトを取得す る。 このとき、 第 2のパケットキュー部は、 蓄積した複数のパケットを多重ィ匕し て新たな 1つのパケットを生成し、 生成したバケツトを第 1のキュー制御部が取 得するようにしている。 図面の簡単な説明 According to the present invention, the first packet input unit identifies the quality class of the packet based on the identifier given to the input packet, and generates n first bucket queue units or m Distribute to the second bucket bucket section. The first queue control unit controls the first or second bucket queue by the rotation priority control. A bucket is selected according to the weight count value of the count value register inside the selected first or second bucket queue section and the state of the stored bucket. At this time, the second packet queue unit multiplexes the plurality of accumulated packets to generate one new packet, and the first queue control unit acquires the generated bucket. Brief Description of Drawings
第 1図は、 この発明におけるスケジューリング装置の構成を示すプロック図で あり、 第 2図は、 第 1図に示したキュー制御部の構成を示すブロック図であり、 第 3図は、 この発明におけるスケジューリング装置の動作を説明するためのフロ 一チヤ一トである。 発明を実施するための最良の形態  FIG. 1 is a block diagram showing a configuration of a scheduling device according to the present invention, FIG. 2 is a block diagram showing a configuration of a queue control unit shown in FIG. 1, and FIG. 5 is a flowchart for explaining the operation of the scheduling device. BEST MODE FOR CARRYING OUT THE INVENTION
本発明をより詳細に説術するために、 添付の図面に従ってこれを説明する。 第 1図〜第 3図を用いて、 この発明の本実施の形態を説明する。 第 1図は、 こ の発明における本実施の形態のスケジューリング装置の構成を示すプロック図で ある。 この発明における本実施の形態のスケジューリング装置は、 第 1のバケツ ト入力部であるパケット入力部 1 1一 0と、 n ( nは自然数) 個の第 1のバケツ トキユー部 1 2—:!〜 1 2— nと、 m (mは自然数) 個の第 2のパケットキュー 部 1 5 _ 1〜: 1 5— mと、 第 1のキュー制御部 1 3であるキュー制御部 1 3— 1 と、 第 1のバケツト生成部であるバケツト生成部 1 4一 1とを備えている。 バケツト入力部 1 1一 0は、 入力バケツトに付与されている識別子に基づいて 入力バケツトの品質クラスを識別して、 識別した品質クラスに対応する第 1のパ ケットキユー部 1 2—:!〜 1 2 _m、 第 2のパケットキユー部 1 5— 1〜1 5— nの何れかに入力パケットを振り分ける。  In order to explain the present invention in more detail, this will be described with reference to the accompanying drawings. The present embodiment of the present invention will be described with reference to FIGS. FIG. 1 is a block diagram showing a configuration of a scheduling device according to the present embodiment of the present invention. The scheduling apparatus according to the present embodiment of the present invention includes a packet input unit 111-10 as a first bucket input unit and n (n is a natural number) first bucket queue units 122- :! 1 to 2—n and m (m is a natural number) second packet queue units 15 _ 1 to: 15—m and a queue control unit 13 1, which is the first queue control unit 13 And a bucket generation unit 1411 which is a first bucket generation unit. The bucket input unit 111-110 identifies the quality class of the input bucket based on the identifier assigned to the input bucket, and the first packet queue unit 1 2— :! corresponding to the identified quality class. 11 2 _m, and the second packet queue unit 15-1 to 15-n.
第 1のバケツトキユー部 1 2— 1〜1 2— inは、 それぞれに重みカウント値を 保持する第 1のカウント値レジスタであるカウント値レジスタ 1 6— 1を有して おり、 パケット入力部 1 1一 0により振り分けられた固定長または可変長のパケ ットを蓄積する。 Each of the first bucket queue sections 1 2—1 to 1 2—in has a count value register 16—1, which is a first count value register that holds a weight count value. It stores fixed-length or variable-length packets sorted by the packet input unit 111.
第 2のパケットキユー部 1 5— l〜1 5— nは、 そ ぞれ同じ機能を備えてい る。 第 2のパケットキュー部 1 5— 1は、 第 2のパケット入力部であるパケット 入力部 1 1一 1と、 第 3のパケットキュー部である a ( aは自然数) の第 1のパ ケットキユー部 1 2— 0 1〜1 2— l aと、 第 2のキュー制御部であるキュー制 御部 1 3— 0 1と、 第 2のバケツト生成部であるパケット生成部 1 4— 0 1と、 第 2のカウント値レジスタであるカウント値レジスタ 1 6— 0 1とを備えている。 また、 第 2のバケツトキユー部 1 5— mは、 第 2のバケツト入力部であるバケツ ト入力部 1 l—mと、 第 3のパケットキュー部である b ( bは自然数) の第 1の パケットキュー部 1 2— m l〜! n bと、 第 2のキュ一制御部であるキュ一制御部 1 3— 0 111と、 第 2のパケット生成部であるパケット生成部 1 4一 0 mと、 第 2 のカウント値レジスタであるカウント値レジスタ 1 6— O mとを備えている。 第 2のバケツトキユー部 1 5— 0 1〜1 5— mの異なる点は、 それぞれが有する第 1のバケツトキユー部の数であるが、 それぞれが有する第 1のバケツトキユー部 の数は、 同一であってもかまわない。 ここでは、 第 2のパケットキュー部 1 5— 1を例にあげて、 第 2のパケットキュー部の機能を説明する。 The second packet queue sections 15-l to 15-n have the same functions. The second packet queue unit 15-1 includes a packet input unit 11 1-1 as a second packet input unit and a first packet queue unit of a ( a is a natural number) which is a third packet queue unit. 1 2—0 1 to 1 2—la; a queue control unit 13—011, which is a second queue control unit; a packet generation unit 14—01, which is a second bucket generation unit; It has a count value register 16-1-01, which is a second count value register. Further, the second bucket queue unit 15-m is composed of a bucket input unit 1 l-m which is a second bucket input unit and a first packet of b (b is a natural number) which is a third packet queue unit. Queue part 1 2—ml ~! nb, a queue control unit 13-0111 as a second queue control unit, a packet generation unit 14-10m as a second packet generation unit, and a count as a second count value register Value register 16—Om. The difference between the second bucket stowing sections 15-0 1 to 15-m is the number of the first bucket stowing sections that each has, but the number of the first bucket stowing sections that each has is the same. It doesn't matter. Here, the function of the second packet queue unit will be described using the second packet queue unit 15-1 as an example.
バケツト入力部 1 1一 1は、 バケツト入力部 1 1一 0と同一の機能を備えてお り、 バケツト入力部 1 1一 0によって振り分けられたバケツトに付与されている 識別子に基づいてバケツトの品質クラスを識別して、 識別した品質クラスに対応 する第 1のバケツトキユー部 1 2— 0 1〜 1 2— 0 aのいずれかに振り分ける。 第 1のパケットキユー部 1 2— 0 1〜: L 2— 0 aは、 第 1のパケットキユー部 1 2— 1〜1 2— mと同一の機能を備えている。 すなわち、 第 1のパケットキュ 一部 1 2— 0 1〜 1 2— 0 aは、 それぞれに重みカウント値を保持するカウント 値レジスタ 1 6— 1を有しており、 パケット入力部 1 1一 1によってそれぞれに 振り分けられた固定長または可変長のパケットを蓄積する。  The bucket input unit 111 has the same function as the bucket input unit 110, and the bucket quality is determined based on the identifier assigned to the bucket assigned by the bucket input unit 110. Identify the class and assign it to one of the first bucket queue sections 1 2-0 1 to 1 2-0 a corresponding to the identified quality class. The first packet queue section 12-0 1-: L 2-0 a has the same function as the first packet queue section 12-1-12-m. That is, each of the first packet queues 1 2—0 1 to 1 2—0a has a count value register 16—1 that holds a weight count value, and the packet input unit 1 1—1 1 Stores fixed-length or variable-length packets that have been allocated to them.
キュー制御部 1 3— 0 1は、 定められた順番に基づいて第 1のパケットキュー 部 1 2— 0 1 〜 1 2 _ 0 mを選択する。 そして、 選択した第 1のパケットキュー 部のカウント値レジスタ 1 6— 1のカウント値に基づいて、 選択した第 1のパケ ットキユー部に蓄積されているバケツトを取得するとともに、 第 1のバケツトキ ユー部 1 2— 0 1〜 1 2— O mのそれぞれの重みカウント値を設定する。 The queue control unit 1 3—01 1 performs the first packet queue based on the determined order. Part 1 2— Select 0 1 to 1 2 _ 0 m. Then, based on the count value of the selected first packet queue unit count value register 16-1, the bucket accumulated in the selected first packet queue unit is obtained, and the first bucket queue unit is acquired. Set the weight count value for each of 1 2— 0 1 to 1 2— O m.
第 2図は、 第 1図に示したキュー制御部 1 3— 0 1の構成を示すプロック図で ある。 キュー制御部 1 3— 0 1は、 第 2のキュー選択部であるキュー選択部 1 3 1と、 キュー選択ポインタ 1 3 2と、 第 2の重みカウント値更新部である重み力 ゥント値更新部 1 3 3と、 第 2の重み力ゥント値再設定部である重み力ゥント値 再設定部 1 3 4とを備えている。  FIG. 2 is a block diagram showing a configuration of the queue control unit 13-01 shown in FIG. The queue control unit 1 3 — 0 1 includes a queue selection unit 13 1, which is a second queue selection unit, a queue selection pointer 13 2, and a weight force value update unit, which is a second weight count value update unit. 13 and a weighting force value resetting unit 134 which is a second weighting force value resetting unit.
キュー選択ボインタ 1 3 2には、 キュー選択部 1 3 1が選択する第 1のバケツ トキユー部の順番が定められている。 キュー選択部 1 3 1は、 キュー選択ポイン タ 1 3 2が示す第 1のバケツトキユー部を選択する。 選択した第 1のバケツトキ ユー部のカウント値レジスタの値が 0より大きい (正数) 場合、 キュー選択部 1 3 1は、 選択した第 1のバケツトキユー部に蓄積されているバケツトを取得する とともに、 キュー選択ポインタ 1 3 2の値を更新 (インクリメント) する。 選択 した第 1のバケツトキユー部に対応するカウント値レジスタの値が 0より小さい ( 0または負数) 場合、 キュー選択部 1 3 1は、 キュー選択ポインタ 1 3 2の値 をインクリメントして、 新たにキュー選択ポインタ 1 3 2が示す第 1のバケット キュー部を選択する。 すなわち、 キュー選択部 1 3 1は、 キュー選択ポインタ 1 3 2により設定されたラウンドロビンにより第 1のバケツトキユー部 1 2— 0 1 〜 1 2— 0 mを順に選択する。  The order of the first bucket queuing unit selected by the cue selecting unit 13 1 is defined in the cue selection pointer 1 32. The queue selection unit 13 1 selects the first bucket queue unit indicated by the queue selection pointer 13 2. If the value of the count value register of the selected first bucket queuing unit is greater than 0 (positive number), the queue selecting unit 131 acquires the bucket accumulated in the selected first bucket queuing unit, Update (increment) the value of the queue selection pointer 1 32. If the value of the count value register corresponding to the selected first bucket queue unit is smaller than 0 (0 or a negative number), the queue selection unit 1331 increments the value of the queue selection pointer 132 and newly queues. The first bucket queue section indicated by the selection pointer 1 32 is selected. That is, the queue selection unit 13 1 sequentially selects the first bucket queue units 1 2-0 1 to 1 2-0 m according to the round robin set by the queue selection pointer 1 32.
重み力ゥント値更新部 1 3 3は、 キュー選択部 1 3 1がパケットを取得可能な 場合 (選択した第 1のパケットキュー部にパケットが蓄積されている場合) 、 第 1のバケツトキユー部のカウント値レジスタの重みカウント値から、 取得するパ ケットのパケット長に相当する重みを減算する。 そして、 減算した値を新たな重 みカウント値としてバケツトを取得する第 1のパケットキユー部のカウント値レ ジスタ 1 6— 1に設定する。 重みカウント値更新部 1 3 3は、 キュー選択部 1 3 1がバケツトを取得できない場合 (選択した第 1のバケツトキユー部にパケット が蓄積されていない場合) 、 第 1のパケットキュー部のカウント値レジスタ 1 6 ― 1の重みカウント値から、 選択した第 1のパケットキユー部に蓄積可能なパケ ットの最大パケット長に相当する重みを減算する。 そして、 減算した値を新たな 重みカウント値として選択した第 1のバケツトキユー部のカウント値レジスタ 1 6— 1に設定する。 When the queue selection unit 131 can acquire a packet (when packets are stored in the selected first packet queue unit), the weight value update unit 133 counts the first bucket queue unit. The weight corresponding to the packet length of the packet to be obtained is subtracted from the weight count value in the value register. Then, the subtracted value is set as a new weight count value in the count value register 16-1 of the first packet queue unit for acquiring the bucket. The weight count value update unit 1 3 3 is the queue selection unit 1 3 If 1 cannot obtain the bucket (if no packets are stored in the selected first bucket queue unit), the first packet queue unit count value register 16-1 is selected from the weight count value of the selected first bucket queue unit. The weight corresponding to the maximum packet length of the packet that can be stored in the packet queue is subtracted. Then, the subtracted value is set as the new weight count value in the count value register 16-1 of the first bucket queuing unit selected.
重み力ゥント値再設定部 1 3 4は、 第 1のパケットキュー部 1 2— 0 1〜 1 2 - 0 aのすベてのカウント値レジスタ 1 6—1のカウント値が 0または負数にな つた場合、 それぞれの重みカウント値を第 1のパケットキユー部 1 2— 0 1〜 1 2— 0 aのカウント値レジスタ 1 6— 1に再設定する。 再設定の重みカウント値 は、 入力されることが期待される優先クラスに対して、 品質や帯域設定などに応 じて変動する少なくとも第 1のパケットキユー部 1 2— 0 1〜 1 2— 0 aそれぞ れが蓄積可能なパケットの最大バケツト長以上の指定値を、 第 1のバケツトキュ 一部 1 2— 0 1〜 1 2— 0 aのそれぞれのカウント値レジスタ 1 6— 1の重み力 ゥント値に加算した値とする。  The weighting event value resetting section 13 4 sets the count value of all the count value registers 16-1 of the first packet queue section 1 2-0 1 to 1 2-0 a to 0 or a negative number. In this case, the respective weight count values are reset in the count value register 16-1 of the first packet queue unit 1 2—0 1 to 1 2—0a. The weight count value of the resetting is at least the first packet queue part 1 2— 0 1 to 1 2— which fluctuates according to the quality and bandwidth setting for the priority class expected to be input 0 a The specified value that is longer than the maximum bucket length of each packet that can be stored is assigned to the first bucket queue. Part 1 2—0 1 to 1 2—0 Value added to the event value.
第 1図にもどつて、 パケット生成部 1 4一 0 1は、 キュー制御部 1 3— 0 1が 取得したバケツトを一つのバケツトに生成して、 生成したバケツトを出力する。 キュー制御部 1 3— 1は、 第 2図に示したキュー制御部 1 3— 0 1と同じ機能 を備えている。 ただし、 キュー制御部 1 3—1のキュー選択ポインタ 1 3 2は、 第 1のバケツトキユー部 1 2 _ l 〜 1 2— n、 第 2のバケツトキユー部 1 5— 1 〜 1 5 _mを示すものである。 また、 キュー制御部 1 3— 1のキュー選択部 1 3 1は第 1のキュー選択部であり、 キュー制御部 1 3— 1の重み力ゥント値更新部 1 3 3は第 1の重み力ゥント値更新部であり、 キュー制御部 1 3— 1の重み力ゥ ント値再設定部 1 3 4は第 1の重み力ゥント値再設定部である。  Returning to FIG. 1, the packet generation unit 141-101 generates the bucket acquired by the queue control unit 13-01 into one bucket, and outputs the generated bucket. The queue control unit 13-1 has the same function as the queue control unit 13-01-1 shown in FIG. However, the queue selection pointer 13 2 of the queue control unit 13-1 indicates the first bucket queue unit 12 _l to 12-n and the second bucket queue unit 15-1 to 15 _m. is there. Also, the queue selection unit 13 1 of the queue control unit 13-1 is a first queue selection unit, and the weight value update unit 13 3 of the queue control unit 13-1 is a first weight unit. A weight updating unit, and the weighting point value resetting unit 134 of the queue control unit 13-1 is a first weighting point value resetting unit.
バケツト生成部 1 4— 1は、 パケット生成部 1 4— 0 1〜 1 4一 0 mと同じ機 能を備えており、 キュー制御部 1 3— 1が敢得したパケットを一つのパケットに 生成して、 生成したバケツトを出力する。 つぎに、 この発明における本実施の形態のスケジューリング装置の動作を説明 する。 まず、 図 3のフローチャートを参照して、 パケットを取得する基本動作を 説明する。 The bucket generation unit 14-1 has the same function as the packet generation unit 14-0-1 to 14-10m, and generates the packet obtained by the queue control unit 13-1 into one packet. And output the generated bucket. Next, the operation of the scheduling device according to the present embodiment of the present invention will be described. First, the basic operation of acquiring a packet will be described with reference to the flowchart in FIG.
スケジューリング装置が動作を開始する際に、 キュー制御部 13— 1, 13— 01〜13_0mは、 それぞれのキュー選択ポインタ 131を初期化する (ステ ップ S 100) 。  When the scheduling device starts operating, the queue control units 13-1, 13-01 to 13_0m initialize the respective queue selection pointers 131 (step S100).
バケツト入力部 11—0は、 入力バケツトに付与されている識別子に基づいて バケツトの品質クラスを識別して、 識別した品質クラスに対応する第 1のバケツ トキユー部 12— 1〜12 _nおよびバケツト入力部 1 1一 1〜11一 mに入力 パケットを振り分ける。 たとえば、 ATMセルの場合、 パケット入力部 1 1—0 は、 ATMセルのヘッダ部の VC Iを識別して、 多重可能な CPSバケツトを第 2のバケツトキユー部 15— 0のバケツト入力部 1 1一 1に振り分け、 多重処理 のなレヽ OAM (Operation And Maintenance) セノレを第 1の/ ケッ卜キュー音 |51 2— 1に振り分ける。  The bucket input unit 11-0 identifies the quality class of the bucket based on the identifier assigned to the input bucket, and the first bucket queue unit 12-1 to 12_n and the bucket input corresponding to the identified quality class. Part 1 1 1 1 Distributes the input packet to 1 to 11 1 m. For example, in the case of an ATM cell, the packet input section 11-0 identifies the VCI in the header section of the ATM cell and outputs a multiplexable CPS bucket to the bucket input section 11-1 of the second bucket queue section 15-0. Distribute to 1 and multiplex processing. Reallocate OAM (Operation And Maintenance) senor to 1st / Ket cue | 51 2-1.
パケット入力部 11一 1〜11一 mは、 パケット入力部 11一 0によって捩り 分けられたバケツトに付与されている識別しに基づいてバケツトの品質グラスを 識別して、 識別した品質クラスに対応する第 1のバケツトキユー部 12— 01〜 12-0 a, 12— ml〜l 2— mbにバケツトを振り分ける。  The packet input units 111-11-111m identify the quality glasses of the bucket based on the identification given to the bucket twisted by the packet input unit 111-10, and correspond to the identified quality class. Distribute the bucket to the first bucket part 12—01 to 12-0 a, 12—ml to l 2—mb.
バケツト出力許可信号がアサートになると、 キュー制御部 1 3— 1のキュー選 択部 131は、 キュー選択ポィンタ 132が示す第 1のバケツトキユー部または 第 2のバケツトキユー部を選択する (ステップ S 1 10) 。  When the bucket output enable signal is asserted, the queue selection unit 131 of the queue control unit 13-1 selects the first bucket queue unit or the second bucket queue unit indicated by the queue selection pointer 132 (step S110). .
ここで、 キュー制御部 13— 1のキュー選択ボインタ 132が第 1のバケツト キュー部 12— 1を示していたとする。 キュー制御部 13—1のキュー選択部 1 3 1は、 第 1のパケットキュー部 12— 1を選択して、 選択した第 1のパケット キュー部 12—1内のカウント値レジスタ 16—1のカウント値を確認する。 第 1のバケツトキユー部 12— 1のカウント値レジスタ 16— 1の重みカウント値 が正数の場合 (ステップ S 120, Ye s) 、 キュー制御部 13— 1のキュー選 択部 1 31は、 第 1のバケツトキユー部 12— 1にバケツトが蓄積されているか を確認する。 第 1のパケットキユー部 12— 1にバケツトが蓄積されている場合 (ステップ S 130, Ye s) , キュー選択部 13—1の重みカウント値更新部 133は、 第 1のパケットキユー部 12—1のカウント値レジスタ 16— 1の重 みカウント値から、 取得するパケットのパケット長に相当する重みを減算する ( ステップ S 140) 。 そして、 減算した値を新たな重みカウント値として第 1の バケツトキユー部 12—1のカウント値レジスタ 16—1に設定する。 Here, it is assumed that the queue selection pointer 132 of the queue control unit 13-1 indicates the first bucket queue unit 12-1. The queue selection unit 13 1 of the queue control unit 13-1 selects the first packet queue unit 12-1 and counts the count value register 16-1 in the selected first packet queue unit 12-1. Check the value. When the weight count value of the count value register 16-1 of the first bucket queue unit 12-1 is a positive number (step S120, Yes), the queue control unit 13-1 selects the queue. The selection unit 131 checks whether a bucket is stored in the first bucket queue unit 12-1. If buckets are accumulated in the first packet queue unit 12-1 (step S130, Yes), the weight count value updating unit 133 of the queue selecting unit 13-1 is switched to the first packet queue unit 12-1. The weight corresponding to the packet length of the packet to be obtained is subtracted from the weight count value of the count value register 16-1 (step S140). Then, the subtracted value is set as a new weight count value in the count value register 16-1 of the first bucket queue unit 12-1.
キュー制御部 1 3— 1のキュー選択部 131は、 第 1のパケットキュー部 12 —1からバケツトを取得して、 取得したパケットをパケット生成部 14—1に出 力する (ステップ S 150) とともに、 キュー制御部 13—1のキュー選択ポィ ンタ 1 32をインクリメン卜する (ステップ S 160) 。  The queue selection unit 131 of the queue control unit 13-1 acquires the bucket from the first packet queue unit 12-1 and outputs the acquired packet to the packet generation unit 14-1 (step S150). Then, the cue selection pointer 132 of the cue control unit 13-1 is incremented (step S160).
選択した第 1のバケツトキユー部 12—1のカウント値レジスタ 16—1の重 みカウント値が正数 (ステップ S 120, Ye s) 、 かつ選択した第 1のバケツ トキユー部 12— 1にパケットが蓄積されていない場合 (ステップ S 130, N o ) 、 キュー制御部 13— 1の重み力ゥント値更新部 133は、 第 1のパケット キュー部 12_ 1のカウント値レジスタ 16—1の重みカウント値から、 第 1の バケツトキユー部 12— 1が蓄積可能なパケットの最大バケツト長に相当する重 みを減算する (ステップ S 1 70) 。 そして、 減算した値を新たな重みカウント 値として第 1のバケツトキユー部 12—1のカウント値レジスタ 16— 1に設定 する。 また、 キュー制御部 13— 1のキュー選択部 131は、 キュー制御部 13 - 1のキュー選択ポインタ 132をインクリメントする (ステップ S 160) 。 選択した第 1のパケットキユー部 12—1のカウント値レジスタ 16— 1の重 みカウント値が 0または負数の場合 (ステップ S 120, No) 、 キュー制御部 13-1のキュー選択部 131は、 キュー選択ポィンタ 132に登録されている すべての第 1のバケツトキユー部 12— :!〜 12— n内のそれぞれのカウント値 レジスタ 16— 1および第 2のバケツトキユー部 15— 1〜15— m内のそれぞ れのカウント値レジスタ 16— 01〜16— 0mのカウント値を確認する。 第 1 のパケットキユー部 12—:!〜 12— nの各カウント値レジスタ 16— 1および 第 2のバケツトキユー部 15—:!〜 15—mのカウント値レジスタ 16— 01〜 16— Omの重みカウント値のうち 1つ以上が正数の場合 (ステップ S 180, No) , キュー制御部 13— 1のキュー選択部 131は、 キュー制御部 1 3— 1 のキュー選択ポインタ 132をインクリメントする (ステップ S 160) 。 The count value register 16-1 of the selected first bucket queue unit 12-1 has a positive count value (step S120, Yes), and packets are accumulated in the selected first bucket queue unit 12-1. If not (step S130, No), the weight value update unit 133 of the queue control unit 13-1 will calculate the weight count value of the count value register 16-1 of the first packet queue unit 12_1 from the The first bucket queue unit 12-1 subtracts a weight corresponding to the maximum bucket length of a packet that can be stored (step S170). Then, the subtracted value is set as a new weight count value in the count value register 16-1 of the first bucket queue unit 12-1. Further, the queue selection unit 131 of the queue control unit 13-1 increments the queue selection pointer 132 of the queue control unit 13-1 (step S160). If the weight count value of the count value register 16-1 of the selected first packet queue unit 12-1 is 0 or a negative number (step S120, No), the queue selection unit 131 of the queue control unit 13-1 , All the first buckets registered in the queue selection pointer 132 12— :! Check the count values of the count value registers 16-1 to 16-0m in the count value registers 16-1 and the second bucket key unit 15-1 to 15-m. First Packet queue part 12— :! To 12—n count value registers 16—1 and the second bucket queue unit 15— :! If one or more of the weight count values of 16-Om to 16-Om are positive numbers (step S180, No), the queue selection unit 131 of the queue control unit 13-1 The queue selection pointer 132 of the queue control unit 13-1 is incremented (step S160).
キュー制御部 13— 1のキュー選択部 131は、 キュー制御部 13— 1のキュ 一選択ポインタ 132が示すすべての第 1のバケツトキユー部 12— 1〜 12— n内の各カウント値レジスタ 16— 1および第 2のパケットキユー部 15— :!〜 15—mのカウント値レジスタ 16— 01〜16 _ 0 mの重みカウント値がすべ て 0または負数になるまで、 キュ一制御部 13— 1のキュ一選択キュ一選択ボイ ンタ 132が示す第 1のバケツトキユー部または第 2のバケツトキユー部を選択 して、 選択した第 1のバケツトキユー部または第 2のバケツトキユー部のカウン ト値レジスタを確認して、 バケツトを取得する動作を繰り返す (ステップ S 1 1 0〜ステップ S 180) 。  The queue selection unit 131 of the queue control unit 13-1 is provided with a count value register 16-1 in all the first bucket queue units 12-1 to 12-n indicated by the queue selection pointer 132 of the queue control unit 13-1. And the second packet queue section 15— :! Until all the weight count values of the 16-m to 15-m count registers 16-01 to 16_0 m become 0 or a negative number, the queue control unit 13-1 displays the queue selection number indicated by the queue selection pointer 132. The bucket bucket unit 1 or the second bucket queue unit is selected, the count value register of the selected first bucket queue unit or the second bucket queue unit is checked, and the operation of acquiring the bucket is repeated (step S11). 0 to step S180).
第 1のパケットキユー部 12_:!〜 12— nの各カウント値レジスタ 16— 1 および第 2のバケツトキユー部 15—:!〜 15 _mのカウント値レジスタ 16— 01〜16— Omの重みカウント値がすべて 0または負数になると (ステップ S 180, Ye s) 、 キュー制御部 13— 1の重み力ゥント値再設定部 134は、 第 1のバケツトキユー部 12—:!〜 12— nの各カウント値レジスタ 16— 1お よび第 2のバケツトキユー部 15—:!〜 15— mのカウント値レジスタ 16— 0 1〜16— Omの重みカウント値の再設定処理を行う (ステップ S 190) 。 具 体的には、 入力されることが期待される優先クラスに対して、 品質や帯域設定な どに応じて変動する少なくとも各カウント値レジスタを有する第 1のバケツトキ ユー部または第 2のバケツトキユー部に蓄積可能なバケツトの最大バケツト長以 上の指定値を、 各カウント値レジスタの重み付けカウント値に加算する。 そして、 加算した値を新たな重み力ゥント値として各力ゥント値レジスタに設定する。 な お、 第 2のパケットキュー部の重みカウント値は、 第 2のパケットキュー部内の 第 1のバケツトキユー部の重みカウント値の総和を用いてもよいし、 独立した値 を設定するようにしてもよい。 1st packet queue section 12_ :! To 12—n count value registers 16—1 and the second bucket queue unit 15— :! When all the weight count values of 16_01 to 16_Om become 0 or a negative number (step S180, Yes), the weight value count value resetting unit 134 of the queue control unit 13-1 , 1st bucket Tokubu 12— :! To 12—n count value registers 16—1 and second bucket queue 15— :! The count value register of 16 to 15 m is reset. The weight count value of Om is reset (step S190). Specifically, for the priority class expected to be input, the first bucket key unit or the second bucket key unit having at least each count value register that fluctuates according to quality, band setting, and the like. The specified value equal to or larger than the maximum bucket length of the bucket that can be stored in the register is added to the weighted count value of each count value register. Then, the added value is set in each power value register as a new weight power value. Note that the weight count value of the second packet queue unit is The sum of the weight count values of the first bucket queuing unit may be used, or an independent value may be set.
つぎに、 キュー制御部 1 3—1のキュー選択部 1 3 1が第 2のバケツトキユー 部を選択した時の動作を説明する。 キュー制御部 1 3— 1のキュー選択部 1 3 1 が第 2のパケットキュー部 1 5— 1を選択したとする。 キュー制御部 1 3—1の キュー選択部 1 3 1は、 第 2のパケットキユー部 1 5— 1のカウント値レジスタ 1 6 - 0 1の重みカウント値を確認する。  Next, an operation when the queue selection unit 13 1 of the queue control unit 13-1 selects the second bucket queue unit will be described. It is assumed that the queue selection unit 13 1 of the queue control unit 13-1 has selected the second packet queue unit 15-1. The queue selection unit 13 1 of the queue control unit 13-1 checks the weight count value of the count value register 16-01 of the second packet queue unit 15-1.
カウント値レジスタ 1 6— 0 1の重みカウント値が正数の場合、 キュー制御部 1 3—1のキュー選択部 1 3 1は、 選択した第 2のバケツトキユー部 1 5—1の キュー制御部 1 3— 0 1に処理を移行する。 キュー制御部 1 3— 0 1のキュー選 択部 1 3 1は、 キュー制御部 1 3— 0 1のキュー選択ボインタ 1 3 2が示す第 1 のパケットキュー部を選択する。 ここで、 キュー制御部 1 3— 0 1のキュー選択 ポインタ 1 3 2が第 1のバケツトキユー部 1 2— 0 1を示していたとする。 キュ 一制御部 1 3— 0 1のキュー選択部 1 3 1は、 第 1のパケットキュー部 1 2— 0 1を選択して、 第 1のパケットキュー部 1 2— 0 1内のカウント値レジスタ 1 6 - 1の重み力ゥント値を確認する。  If the weight count value of the count value register 1 6—01 1 is a positive number, the queue selection unit 13 1 of the queue control unit 13—1 sends the queue control unit 1 of the selected second bucket queue unit 15—1. 3—01 Move the processing to 1. The queue selection unit 131-1 of the queue control unit 13-01 selects the first packet queue unit indicated by the queue selection pointer 1332 of the queue control unit 13-01. Here, it is assumed that the queue selection pointer 13 22 of the queue control unit 13-01-1 points to the first bucket queue unit 12-01. The queue controller 1 3—01 1 queue selector 1 3 1 selects the first packet queue 1 2—0 1 and counts the value in the first packet queue 1 2—0 1 Check the weight value of 16-1.
第 1のバケツトキユー部 1 2— 0 1のカウント値レジスタ 1 6— 1の重みカウ ント値が正数の場合、 キュー制御部 1 3— 0 1のキュー選択部 1 3 1は、 第 1の バケツトキユー部 1 2— 0 1にバケツトが蓄積されているかを確認する。 第 1の バケツトキユー部 1 2— 0 1にバケツトが蓄積されている場合、 キュー選択部 1 3 - 0 1の重みカウント値更新部 1 3 3は、 第 1のバケツトキユー部 1 2— 0 1 のカウント値レジスタ 1 6— 1の重みカウント値から、 取得するバケツトのパケ ット長に相当する重みを減算する。 そして、 減算した値を新たな重みカウント値 として第 1のバケツトキユー部 1 2— 0 1のカウントイ直レジスタ 1 6—1に設定 する。  If the weight value of the count value register 16-1 of the first bucket queue unit 1 2—01 1 is a positive number, the queue selection unit 13 1 of the queue control unit 13—01 1 Check if buckets are stored in part 1 2—01 1. When buckets are stored in the first bucket queue unit 1 2—01 1, the weight count value updating unit 1 3 3 of the queue selection unit 1 3—0 1 is counted by the first bucket queue unit 1 2—0 1 The weight corresponding to the packet length of the bucket to be obtained is subtracted from the weight count value of the value register 16-1. Then, the subtracted value is set as a new weight count value in the count-in direct register 16-1 of the first bucket queue unit 12-01.
キュー制御部 1 3— 0 1のキュー選択部 1 3 1は、 第 1のパケットキュー部 1 2 - 0 1からバケツトを取得して、 取得したバケツトをバケツト生成部 1 4— 0 1に出力するとともに、 キュー制御部 1 3— 0 1のキュー選択ポインタ 1 3 2を インクリメントして、 キュー制御部 1- 3— 0 1のキュー選択ボインタ 1 3 2が示 す第 1のパケットキュー部を選択する。 そして、 キュー制御部 1 3— 0 1は、 選 択した第 1のパケットキュー部のカウント値レジスタの重み力ゥント値および選 択した第 1のバケツトキユー部のバケツトの有無に基づいてバケツトを取得する 動作を、 第 1のバケツトキユー部 1 2— 0 1〜 1 2— 0 aに蓄積されているパケ ットがなくなる力、 パケット生成部 1 4一 0 1がキュー制御部 1 3— 0 1から出 力されたパケットの多重を行うことができなくなるまで繰り返す。 すなわち、 キ ユー制御部 1 3— 0 1は、 キュー制御部 1 3— 1から処理を移行されると、 キュ 一制御部 1 3— 0 1のキュー選択ボインタ 1 3 2が示す第 1のバケツトキユー部 をラウンドロビンにより選択してバケツトを取得し、 パケット生成部 1 4一 0 1 が取得したパケットを多重ィ匕して 1つのパケットを生成する。 そして、 1つのパ ケットを生成すると、 キュー制御部 1 3— 0 1は、 キュー制御部 1 3— 1に処理 を移行する。 The queue selection unit 13 1 of the queue control unit 13 3-0 1 obtains a bucket from the first packet queue unit 12-01, and converts the obtained bucket into a bucket generation unit 14 4-0. 1 and increments the queue selection pointer 1 3 2 of the queue control unit 1 3 — 0 1 to the first packet queue indicated by the queue selection pointer 1 3 2 of the queue control unit 1 3 — 0 1. Select a department. Then, the queue control unit 13-01 obtains a bucket based on the weight value of the selected count value register of the first packet queue unit and the presence / absence of a bucket of the selected first bucket queue unit. The operation is performed as follows: the packet stored in the first bucket queue unit 1 2—0 1 to 1 2—0 a disappears, and the packet generation unit 14 1 0 1 exits from the queue control unit 13 3 0 1 Repeat until multiplexing of the input packets cannot be performed. That is, the queue control unit 13-01, when the process is shifted from the queue control unit 13-1, to the first bucket queue indicated by the queue selection pointer 1332 of the queue control unit 13-01. A packet is obtained by selecting a packet by round robin and a packet is generated by the packet generation unit 1410 1 by multiplexing the obtained packet. Then, when one packet is generated, the queue control unit 13-01 transfers the processing to the queue control unit 13-1.
キュ一制御部 1 3— 1は、 第 2のパケットキュー部 1 5— 0のパケット生成部 1 4 - 0 1が生成したバケツトを取得して、 バケツト生成部 1 4—1に出力する とともに、 キュー制御部 1 3 - 1のキュー選択ポィンタ 1 3 2をインクリメント する。 そして、 キュー選択ポインタ 1 3 2が示す第 1のバケツトキユー部または 第 2のバケツトキユー部を選択する。  The queue control unit 13-1 acquires the bucket generated by the packet generation unit 14-0 1 of the second packet queue unit 15-0, and outputs it to the bucket generation unit 14-1, Increment the cue selection pointer 1 32 of the cue control unit 13-1. Then, the first bucket queue unit or the second bucket queue unit indicated by the queue selection pointer 132 is selected.
このように本実施の形態では、 第 1のパケット入力部が、 入力されるバケツト に付与されている識別子に基づいてバケツトの品質クラスを識別して、 品質クラ ス毎に ri個の第 1のバケツトキユー部または m個の第 2のバケツトキユー部に振 り分ける。 第 1のキュー制御部は、 回転優先制御によって第 1または第 2のパケ ットキユー部を選択して、 選択した第 1または第 2のバケツトキユー部内部の力 ゥント値レジスタの重みカウント値と蓄積されたバケツトの状態によってバケツ トを取得する。 このとき、 第 2のパケットキュー部は、 蓄積した複数のパケット を多重化して新たな 1つのバケツトを生成し、 生成したバケツトを第 1のキュー 制御部が取得するようにしているため、 属性の異なるパケットに対して柔軟に対 応することができ、 特定の属性を有するバケツトについては多重ィ匕して新たな 1 つのパケットとして扱うことができる。 As described above, in the present embodiment, the first packet input unit identifies the quality class of the bucket based on the identifier given to the input bucket, and ri first quality classes for each quality class. Distribute to bucket buckets or m second bucket buckets. The first queue control unit selects the first or second packet queue unit by the rotation priority control, and stores the weight count value of the selected weight value register in the first or second bucket queue unit and the accumulated count value. Get a bucket according to the state of the bucket. At this time, the second packet queue unit multiplexes the plurality of stored packets to generate a new bucket, and stores the generated bucket in the first queue. Since the control unit obtains it, it can flexibly respond to packets with different attributes, and buckets with specific attributes can be multiplexed and treated as one new packet .
また、 第 1のキュー選択部が、 回転優先制御によって選択した第 1のパケット キュー部のカウント値レジスタまたは第 2のバケツトキユー部の第 2のカウント レジスタの重み力ゥント値が正数で、 かつ選択した第 1または第 2のパケットキ ユー部にバケツトが蓄積させている場合にバケツトを取得して、 第 1の重みカウ ント値更新部が、 第 1のキュー選択部がバケツトを取得した第 1のバケツトキュ 一部の第 1のカウント値レジスタまたは第 2のバケツトキユー部の第 2のカウン ト値レジスタの重みカウント値から取得したパケットのバケツト長の値を減算し た値を新たな重みカウント値として設定し、 第 1のキュー選択部がバケツトを取 得できなかった場合には、 選択した第 1または第 2のパケットキユー部が蓄積す ることができる最大パケット長分の重みを第 1または第 2のカウント値レジスタ の重みカウント値から減算して、 減算した値を新たな重みカウント値として第 1 または第 2のカウント値レジスタに設定するようにしているため、 可変長パケッ トのスケジユーリングにおいて余剰帯域を効率的に使用することができる。 さらに、 第 1の重みカウント値設定部は、 各第 1のパケットキュー部の第 1の カウント値レジスタおよび各第 2のパケットキユー部の第 2のカウント値レジス タの重みカウント値毎に、 品質および/または応じて変動するバケツトの最大パ ケット長以上の値を加算して、 加算した値を新たな重みカウント値として各第 1 および第 2のカウント値レジスタに設定するようにしているため、 設定の変更に 対して柔軟にすることができ、 帯域を効率よく使用することができる。  Further, the first queue selecting unit may select a positive count value of the count value register of the first packet queue unit or the second count register of the second bucket queue unit selected by the rotation priority control, and When a bucket is accumulated in the first or second packet queue unit, the bucket is acquired, the first weight count value updating unit acquires the first packet, and the first queue count updating unit acquires the bucket. Bucket queue Set the value obtained by subtracting the bucket length value of the acquired packet from the weight count value of some first count value registers or the second count value register of the second bucket queue unit as a new weight count value. However, if the first queue selection unit fails to obtain a bucket, the maximum number of packets that can be stored by the selected first or second packet queue unit. The weight for the packet length is subtracted from the weight count value in the first or second count value register, and the subtracted value is set in the first or second count value register as a new weight count value. Therefore, the surplus bandwidth can be used efficiently in the scheduling of variable-length packets. Further, the first weight count value setting unit may include, for each weight count value of the first count value register of each first packet queue unit and the second count value register of each second packet queue unit, Because a value that is equal to or greater than the maximum packet length of a bucket that fluctuates according to quality and / or is added, and the added value is set as a new weight count value in each of the first and second count value registers. Therefore, it is possible to flexibly change the settings and use the bandwidth efficiently.
さらにまた、 第 2のパケットキュー部は、 パケットを蓄積するとともに、 蓄積 するバケツトに基づいた重みカウント値を保持する第 3のカウント値レジスタを 有する複数の第 3のパケットキュー部と、 第 1のパケット入力部から入力される パケットに付与されている識別子に基づいて入力されるバケツトを複数の第 3の パケットキユー部に振り分ける第 2のバケツト入力部と、 前記複数の第 3のパケ ットキュー部を回転優先制御に基づレ、て選択して、 該選択した第 3のパケットキ ユー部の第 3のカウント値レジスタおよび蓄積されたパケットの状態によつてパ ケットを取得するとともに、 前記選択した第 3のパケットキユー部の第 3のカウ ント値レジスタの重み力ゥント値を変更する第 2のキュ一制御部と、 この第 2の キュー制御部が取得したバケツトを多重化する第 2のバケツト生成部とを備える ようにしたため、 異なる属十生を有するパケットに対して多段階でのスケジユーリ ングを実行するとともに、 複数のパケットキユーに跨る処理を効率よく行うこと ができる。 産業上の利用可能性 Still further, the second packet queue unit stores a plurality of third packet queue units having a third count value register for storing a packet and storing a weight count value based on the bucket to be stored, and a first packet queue unit. A second bucket input unit for allocating a packet input based on an identifier given to a packet input from the packet input unit to a plurality of third packet queue units; and the plurality of third packets. The packet queue is selected based on the rotation priority control, and a packet is obtained based on the third count value register of the selected third packet queue unit and the state of the stored packet. A second queue control unit for changing the weight value of the third count value register of the selected third packet queue unit; and a second queue control unit for multiplexing the bucket acquired by the second queue control unit. Since the two bucket generation units are provided, it is possible to execute scheduling in multiple stages for packets having different genera- tions and efficiently perform processing across a plurality of packet queues. Industrial applicability
. 以上のように、 本発明にかかるスケジューリング装置は、 ATMや I Pバケツ トなどの可変長のパケットを送出する順番を制御する際に有用であり、 特に、 入 力バケツトを多重して新たな 1つのバケツトとして送出する必要があるバケツト のスケジューリングに適している。  As described above, the scheduling device according to the present invention is useful when controlling the order of transmitting variable-length packets such as ATMs and IP packets, and in particular, multiplexes input packets to create a new packet. Suitable for scheduling buckets that need to be sent out as one bucket.

Claims

請 求 の 範 囲 The scope of the claims
1 . パケットを蓄積するとともに、 当該蓄積するパケットに基づいた重みカウン ト値を保持する第 1のカウント値レジスタを有する n ( nは自然数) 個の第 1の ノヽ0ケットキユー音 |5と、 1. n (where n is a natural number) first No. 0 packet cues | 5 having a first count value register for storing packets and holding a weight count value based on the stored packets;
バケツトを蓄積するとともに、 当該蓄積するパケットに基づいた重みカウント 値を保持する第 2のカウント値レジスタを有し、 前記パケットを出力する際に、 蓄積したパケットを多重化して出力する m (mは自然数) 個の第 2のパケットキ ユー部と、  A second count value register that stores a bucket and holds a weight count value based on the packet to be stored, and multiplexes and outputs the stored packet when outputting the packet; Natural number) second packet queue parts,
外部から入力されるパケットに付与されている識別子に基づいて前記入力され るバケツトを前記 n個の第 2のパケットキユー部おょぴ m個の第 1のバケツトキ ユー部に振り分ける第 1のバケツト入力部と、  A first bucket for distributing the input bucket to the n second packet queue sections and the m first bucket queue sections based on an identifier given to an externally input packet; An input unit,
前記 n個の第 1のバケツトキユー部おょぴ m個の第 2のバケツトキユー部を回 転優先制御に基づいて選択して、 該選択した第 1または第 2のバケツトキユー部 の第 1または第 2のカウント値レジスタおよび蓄積されたバケツトの状態によつ てバケツトを取得するとともに、 前記選択した第 1または第 2のバケツトキユー 部の第 1または第 2のカウント値レジスタの重みカウント値を変更する第 1のキ ユー制御部と、  Selecting the n first bucket key units and the m second bucket key units based on the rotation priority control; and selecting the first or second bucket key units of the selected first or second bucket key units. A bucket for acquiring a bucket according to the count value register and the state of the accumulated bucket, and changing a weight count value of the first or second count value register of the selected first or second bucket queue unit. The key control section of the
この第 1のキュー制御部が取得したバケツトを多重ィヒする第 1のバケツト生成 部と、  A first bucket generator for multiplexing the buckets acquired by the first queue controller;
を備えることを特徴とするスケジューリング装置。 A scheduling device comprising:
2 . 前記第 1のキュ一制御部は、 2. The first queue control unit includes:
前記 η個の第 1のバケツトキユー部および m個の第 2のバケツトキユー部の回転 優先を示す第 1のキュー選択ポインタと、 A first queue selection pointer indicating the rotation priority of the η first bucket queue units and the m second bucket queue units;
この第 1のキュー選択ポインタが示す第 1または第 2のバケツトキユー部を選 択して、 この選択した第 1のバケツトキユー部の第 1のカウント値レジスタまた は第 2のパケットキユー部の第 2のカウント値レジスタの重み力ゥント値が正数 で、 かつ選択した第 1または第 2のバケツトキユー部にバケツトが蓄積されてい る場合にバケツトを取得して、 取得したパケットを前記第 1のバケツト生成部に 出力する第 1のキュー選択部と、 By selecting the first or second bucket queue section indicated by the first queue selection pointer, the first count value register or the first bucket value register of the selected first bucket queue section is selected. Obtains a bucket when the weight count value of the second count value register of the second packet queue unit is a positive number and the bucket is stored in the selected first or second bucket queue unit. A first queue selection unit that outputs the obtained packet to the first bucket generation unit;
この第 1のキュー選択部が選択した第 1のバケツトキユー部の第 1のカウント 値レジスタまたは第 2のパケットキュー部の第 2のカウント値レジスタの重み力 ゥント値が正数の場合、 この第 1または第 2のカウント値レジスタの重み力ゥン ト値を更新する第 1の重みカウント値更新部と、  If the weight value of the first count value register of the first bucket queue unit or the second count value register of the second packet queue unit selected by the first queue selection unit is a positive number, the first Or a first weight count value updating unit that updates the weight force value of the second count value register;
前記 n個の第 1のバケツトキユー部の各第 1のカウント値レジスタおよび前記 m個の第 2のバケツトキユー部の各第 2のカウント値レジスタの重みカウント値 がすべて 0または負数の場合、 各第 1および第 2のカウント値レジスタの重み力 ゥント値を再設定する第 1の重み力ゥント値再設定部と、  If the weight count value of each of the first count value registers of the n first bucket key units and the second count value register of the m second bucket key units is all 0 or a negative number, each first count value register A first weight force event value resetting section for resetting a weight event value of the second count value register and
を備えることを特徴とする請求の範囲第 1項に記載のスケジユーリング装置。 The scheduling device according to claim 1, further comprising:
3 . 前記第 1の重みカウント値更新部は、 3. The first weight count value update unit,
前記第 1のキュー選択部が選択した第 1または第 2のバケツトキユー部からパ ケットを取得した場合には、 前記取得したバケツトのバケツト長の値を前記選択 した第 1のバケツトキユー部の第 1のカウント値レジスタまたは第 2のバケツト キュー部の第 2のカウント値レジスタの重みカウント値から減算して、 減算した 値を新たな重みカウント値として前記第 1または第 2のカウント値レジスタに設 定し、 前記第 1のキュー選択部が選択した第 1または第 2のバケツトキユー部に バケツトが蓄積されていない場合には、 前記選択した第 1または第 2のバケツト キュー部が蓄積することができる最大パケット長分の重みを前記第 1または第 2
Figure imgf000018_0001
ウント値から減算して、 減算した値を新たな重み カウント値として前記第 1または第 2のカウント値レジスタに設定することを特 徴とする特許請求の範囲第 2項に記載のスケジユーリング装置。
When a packet is acquired from the first or second bucket queue unit selected by the first queue selection unit, the value of the bucket length of the acquired bucket is set to the first bucket queue unit of the selected first bucket queue unit. It is subtracted from the weight count value of the count value register or the second count value register of the second bucket queue unit, and the subtracted value is set in the first or second count value register as a new weight count value. If no bucket is stored in the first or second bucket queue section selected by the first queue selection section, the maximum packet that can be stored by the selected first or second bucket queue section. Weight of the first or second
Figure imgf000018_0001
3. The scheduling device according to claim 2, wherein the value is subtracted from the count value, and the subtracted value is set as a new weight count value in the first or second count value register. .
4 . 前記第 1の重みカウント値再設定部は、 4. The first weight count value resetting unit,
前記 n個の第 1のバケツトキユー部の第 1のカウント値レジスタおよび m個の 第 2のバケツトキユー部の第 2のカウント値レジスタの重みカウント値毎に、 品 質および Zまたは帯域に応じて変動するバケツトの最大バケツト長以上の値を加 算して、 加算した値を新たな重みカウント値として前記各第 1および第 2のカウ ント値レジスタに設定することを特徴とする請求の範囲第 2項に記載のスケジュ 一リング装置。  For each of the weight count values of the first count value registers of the n first bucket key units and the second count value registers of the m second bucket key units, the value varies depending on the quality and Z or band. 3. The method according to claim 2, wherein a value equal to or greater than the maximum bucket length of the bucket is added, and the added value is set as a new weight count value in each of said first and second count value registers. The scheduling device according to 1.
5 . 前記第 2のパケットキュー部は、 5. The second packet queue unit includes:
パケットを蓄積するとともに、 当該蓄積するパケットに基づいた重み力ゥント 値を保持する第 3のカウント値レジスタを有する複数の第 3のバケツトキユー部 と、  A plurality of third bucket queue units having a third count value register for storing packets and holding a weight value based on the stored packets;
前記第 1のバケツト入力部がら入力されるバケツトに付与されている識別子に 基づいて前記入力されるバケツトを前記複数の第 3のバケツトキユー部に振り分 ける第 2のバケツト入力部と、  A second bucket input unit for distributing the input bucket to the plurality of third bucket queue units based on an identifier assigned to the bucket input from the first bucket input unit;
前記複数の第 3のパケットキユー部を回転優先制御に基づいて選択して、 該選 択した第 3のパケットキュー部の第 3のカウント値レジスタおよぴ蓄積されたパ ケットの状態によってパケットを取得するとともに、 前記選択した第 3のバケツ トキユー部の第 3のカウント値レジスタの重みカウント値を変更する第 2のキュ 一制御部と、  The plurality of third packet queue units are selected based on the rotation priority control, and the packet is determined according to the third count value register of the selected third packet queue unit and the state of the stored packet. And a second queue control unit that changes a weight count value of a third count value register of the selected third bucket queue unit, and
この第 2のキュー制御部が取得したバケツトを多重化する第 2のバケツト生成 部と、  A second bucket generator for multiplexing the buckets acquired by the second queue controller;
を備えることを特徴とする特許請求の範囲第 1項に記載のスケジユーリング装置。 2. The scheduling device according to claim 1, comprising:
6 . 前記第 2のキュー制御部は、 6. The second queue control unit includes:
前記複数の第 3のパケットキユー部の回転優先を示す第 2のキュー選択ボイン タと、 この第 2のキュー選択ポインタが示す第 3のパケットキユー部を選択して、 こ の選択した第 3バケツトのキュー部の第 3のカウント値レジスタの重みカウント 値が正数で、 かつ選択した第 3のパケットキユー部にパケットが蓄積されている 場合にバケツトを取得して、 取得したバケツトを前記第 2のバケツト生成部に出 力する第 2のキュー選択部と、 A second queue selection pointer indicating rotation priority of the plurality of third packet queue units; The third packet queue section indicated by the second queue selection pointer is selected, and the weight count value of the third count value register of the queue section of the selected third bucket is a positive number, and A second queue selection unit that obtains a bucket when packets are accumulated in the third packet queue unit, and outputs the obtained bucket to the second bucket generation unit;
この第 2のキュー選択部が選択した第 3のバケツトキユー部の第 3のカウント 値レジスタの重みカウント値が正数の場合、 この第 3のカウント値レジスタの重 みカウント値を更新する第 2の重み力ゥント値更新部と、  If the weight count value of the third count value register of the third bucket queue unit selected by the second queue selection unit is a positive number, the second count value updating unit updates the weight count value of the third count value register. A weight force event value updating unit,
前記各第 3のパケットキュー部の第 3のカウント値レジスタの重み力ゥント値 がすべて 0または負数の場合、 各第 3のカウント値レジスタの重みカウント値を 再設定する第 2の重みカウント値再設定部と、  When the weight count value of the third count value register of each of the third packet queue units is all 0 or a negative number, the second weight count value resetting resets the weight count value of each third count value register. A setting section,
を備えることを特徴とする請求の範囲第 5項に記載のスケジューリング装置。 6. The scheduling device according to claim 5, comprising:
7 . 前記第 2の重みカウント値更新部は、 7. The second weight count value updating unit,
前記第 2のキュー選択部が選択した第 3のバケツトキユー部からバケツトを取 得した場合には、 前記取得したバケツトのバケツト長の値を前記選択した第 3の パケッドキュー部の第 3のカウント値レジスタの重みカウント値から減算して、 減算した値を新たな重み力ゥント値として前記第 3のカウント値レジスタに設定 し、 前記第 2のキュー選択部が選択した第 3のバケツトキユー部にバケツトが蓄 積されていない場合には、 前記選択した第 3のパケットキュー部が蓄積すること ができる最大パケット長分の重みを前記第 3のカウント値レジスタの重み力ゥン ト値から減算して、 減算した値を新たな重みカウント値として前記第 3のカウン ト値レジスタに設定することを特徴とする特許請求の範囲第 6項に記載のスケジ ユーリング装置。  When a bucket is obtained from the third bucket queue unit selected by the second queue selection unit, the value of the bucket length of the obtained bucket is stored in the third count value register of the selected third packet queue unit. The third count value register sets the subtracted value as a new weight force value in the third count value register, and stores the bucket in the third bucket queue unit selected by the second queue selecting unit. If not, the weight of the maximum packet length that can be accumulated by the selected third packet queue unit is subtracted from the weight force value of the third count value register, and the subtraction is performed. 7. The scheduling apparatus according to claim 6, wherein the set value is set as a new weight count value in the third count value register.
8 . 前記第 2の重み力ゥント値再設定部は、 8. The second weight force event value resetting unit,
前記各第 3のパケットキュー部の第 3のカウント値レジスタの重み力ゥント値 毎に、 品質および/または帯域に応じて変動するバケツトの最大バケツト長以上 の値を加算して、 加算した値を新たな重み力ゥント値として前記各第 1のカウン ト値レジスタに設定することを特徴とする請求の範囲第 6項に記載のスケジユー リング装置。 Weighting value of the third count value register of each of the third packet queue units For each time, add a value that is greater than or equal to the maximum bucket length of a bucket that fluctuates according to quality and / or bandwidth, and set the added value as a new weighting value in the first count value register. 7. The scheduling device according to claim 6, wherein :
PCT/JP2003/008780 2003-07-10 2003-07-10 Hierarchical scheduling device WO2005006672A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005503853A JP4234134B2 (en) 2003-07-10 2003-07-10 Hierarchical scheduling device
PCT/JP2003/008780 WO2005006672A1 (en) 2003-07-10 2003-07-10 Hierarchical scheduling device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2003/008780 WO2005006672A1 (en) 2003-07-10 2003-07-10 Hierarchical scheduling device

Publications (1)

Publication Number Publication Date
WO2005006672A1 true WO2005006672A1 (en) 2005-01-20

Family

ID=34044609

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2003/008780 WO2005006672A1 (en) 2003-07-10 2003-07-10 Hierarchical scheduling device

Country Status (2)

Country Link
JP (1) JP4234134B2 (en)
WO (1) WO2005006672A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008236265A (en) * 2007-03-19 2008-10-02 Fujitsu Ltd Communication equipment and output control method
JP2009290633A (en) * 2008-05-30 2009-12-10 Fujitsu Ltd Data output apparatus, communication apparatus, and switch apparatus
CN104243349A (en) * 2013-06-21 2014-12-24 中兴通讯股份有限公司 Message scheduling method and device
CN106817317A (en) * 2013-07-09 2017-06-09 英特尔公司 Traffic management with in-let dimple

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09149051A (en) * 1995-09-18 1997-06-06 Toshiba Corp Packet transfer device
JPH1084383A (en) * 1996-09-10 1998-03-31 Toshiba Corp Packet scheduling equipment and packet transfer method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09149051A (en) * 1995-09-18 1997-06-06 Toshiba Corp Packet transfer device
JPH1084383A (en) * 1996-09-10 1998-03-31 Toshiba Corp Packet scheduling equipment and packet transfer method

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008236265A (en) * 2007-03-19 2008-10-02 Fujitsu Ltd Communication equipment and output control method
JP2009290633A (en) * 2008-05-30 2009-12-10 Fujitsu Ltd Data output apparatus, communication apparatus, and switch apparatus
CN104243349A (en) * 2013-06-21 2014-12-24 中兴通讯股份有限公司 Message scheduling method and device
CN104243349B (en) * 2013-06-21 2018-05-04 中兴通讯股份有限公司 Method for dispatching message and device
CN106817317A (en) * 2013-07-09 2017-06-09 英特尔公司 Traffic management with in-let dimple
CN106817317B (en) * 2013-07-09 2020-04-10 英特尔公司 Traffic management with ingress control

Also Published As

Publication number Publication date
JPWO2005006672A1 (en) 2006-08-31
JP4234134B2 (en) 2009-03-04

Similar Documents

Publication Publication Date Title
EP1151556B1 (en) Method of inverse multiplexing for atm
EP0763915B1 (en) Packet transfer device and method adaptive to a large number of input ports
JP3953819B2 (en) Scheduling apparatus and scheduling method
US7023866B2 (en) Fair queue servicing using dynamic weights (DWFQ)
JP3435293B2 (en) Packet scheduling apparatus and packet transfer method
EP0981228B1 (en) Two-component bandwidth scheduler having application in multi-class digital communication systems
JP3814393B2 (en) Cell scheduling method and apparatus
JP4017867B2 (en) Scheduling device
US7023856B1 (en) Method and system for providing differentiated service on a per virtual circuit basis within a packet-based switch/router
US6396843B1 (en) Method and apparatus for guaranteeing data transfer rates and delays in data packet networks using logarithmic calendar queues
WO1996000474A1 (en) Packet processor having service priority and loss priority features
KR20030045987A (en) An apparatus and method for scheduling packets by using a round robin based on credit
JP3673025B2 (en) Packet transfer device
WO2005006672A1 (en) Hierarchical scheduling device
WO2001063858A1 (en) Unified algorithm for frame scheduling and buffer management in differentiated services networks
JP2005245015A (en) Packet transfer device
US8467401B1 (en) Scheduling variable length packets
JP2003224597A (en) Node device in communication system and its operation control method
JPH09238142A (en) Method and device for assigning network resource
Shi et al. DS-PPS: A practical framework to guarantee differentiated QoS in terabit routers with parallel packet switch
US6377547B1 (en) Quality of service-oriented cell disc discarding
JPH11252097A (en) Device and method for sending packet
Chlamtac et al. A counter based congestion control (CBC) for ATM networks
KR100334319B1 (en) Apparatus and method of cell generation in AAL2 Asynchronous Transfer Mode
KR100523482B1 (en) AAL2 ATM / Packet Link Multiplexing Schemes and Devices Guaranteeing the Delay Requirements of Various Services

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CN JP US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2005503853

Country of ref document: JP

122 Ep: pct application non-entry in european phase