CA2484427A1 - Scheduling using quantum and deficit values - Google Patents

Scheduling using quantum and deficit values Download PDF

Info

Publication number
CA2484427A1
CA2484427A1 CA002484427A CA2484427A CA2484427A1 CA 2484427 A1 CA2484427 A1 CA 2484427A1 CA 002484427 A CA002484427 A CA 002484427A CA 2484427 A CA2484427 A CA 2484427A CA 2484427 A1 CA2484427 A1 CA 2484427A1
Authority
CA
Canada
Prior art keywords
deficit
determining
particular item
processing
current set
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
CA002484427A
Other languages
French (fr)
Other versions
CA2484427C (en
Inventor
Doron Shoham
Amir Michaeli
David Tsiang
Chandrashekhar Appanna
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.)
Cisco Technology Inc
Original Assignee
Individual
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 Individual filed Critical Individual
Publication of CA2484427A1 publication Critical patent/CA2484427A1/en
Application granted granted Critical
Publication of CA2484427C publication Critical patent/CA2484427C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/62Queue scheduling characterised by scheduling criteria
    • H04L47/622Queue service order
    • H04L47/6225Fixed service order, e.g. Round Robin
    • 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/52Queue scheduling by attributing bandwidth to queues
    • H04L47/527Quantum based scheduling, e.g. credit or deficit based scheduling or token bank

Abstract

Methods and apparatus are disclosed for scheduling items (e.g., packets, processes, etc.) in a system, such as, but not limited to a computer or communications system. In one implementation, multiple sets of items requiri ng processing to be performed are maintained. A current set of the multiple set s of items is identified. Each of the items in the current set is processed. I n one implementation, this processing includes identifying a particular item i n the current set, adding a quantum to a deficit of the particular item, processing an entity corresponding to the particular item, decreasing the deficit of the particular item by a value, determining if the deficit allows the particular item to be further processed, and moving the particular item from the current set to another of the multiple sets of items after said determining if the deficit allows the particular item to be further processe d.

Claims (37)

1. A method comprising:
maintaining a plurality of sets of items requiring processing to be performed;
identifying a current set of the plurality of sets of items; and processing items in the current set, said processing the items including:
identifying a particular item in the current set;
adding a quantum to a deficit of the particular item;
processing an entity corresponding to the particular item;
decreasing the deficit of the particular item by a value;
determining if the deficit allows the particular item to be further processed;
and moving the particular item from the current set to another of the plurality of sets of items after said determining if deficit allows the particular item to be further processed.
2. The method of claim 1, wherein each of the items in the plurality of sets of items represents a queue.
3. The method of claim 2, wherein the entity represents a packet.
4. The method of claim 3, wherein the value corresponds to a size of the packet.
5. The method of claim 3, wherein the value corresponds to a constant value.
6. The method of claim 1, wherein the entity represents a process, thread, or information stream.
7. The method of claim 1, wherein the value corresponds to a variable amount related to said processing of the entity or a constant value.
8. The method of claim 1, wherein said determining if the deficit allows the particular item to be further processed includes comparing a value of the deficit to a constant value or zero.
9. The method of claim 1, wherein said processing items further comprises selecting said another of the plurality of sets of items based on the deficit and the quantum of the particular item.
10. The method of claim 1, wherein said processing items further comprises removing the particular item from all of the plurality of sets when the particular no longer has any corresponding entities remaining.
11. The method of claim 1, wherein said processing items further comprises leaving the particular item in the current set when said determining determines that the deficit allows the particular item to be further processed.
12. The method of claim 11, wherein said moving the particular item from the current set to said another of the plurality of sets of items is performed only when said determining determines that the deficit does not allow the particular item to be further processed.
13. The method of claim 11, wherein a group including said processing the entity, said decreasing the deficit, and said determining is repeatedly performed on the particular item until said determining determines that the deficit does not allow the particular item to be further processed.
14. The method of claim 1, wherein said processing items further comprises setting the particular item to be a different item in the current set.
15. The method of claim 14, wherein a group including said processing the entity, said decreasing the deficit, said determining and said setting is repeatedly performed until the current set becomes empty.
16. The method of claim 1, wherein said processing items further comprises:
initializing a mini-deficit associated with the particular item;
decreasing the mini-deficit of the particular item by a second value;
determining if the mini-deficit allows the particular item to be further processed;
and setting the particular item to be a different item in the current set after said determining if the mini-deficit allows the particular item to be further processed.
17. The method of claim 16, wherein a group including said processing the entity, said decreasing the deficit, said decreasing the mini-deficit, said determining if the mini-deficit allows and said determining if the deficit allows is repeatedly performed on the particular item until said determining if the deficit allows determines that the deficit does not allow the particular item to be further processed or until said determining if the mini-deficit does not allow the particular item to be further processed.
18. The method of claim 16, wherein the value and the second value are equal.
19. The method of claim 1, further comprising selecting and processing a particular next set from the plurality of sets of items.
20. The method of claim 19, wherein said selecting and processing the particular next set is performed in response to determining the current set to be empty.
21. A computer-readable medium containing computer-executable instructions for performing the method of claim 1.
22 22. An apparatus comprising:
a plurality of queues for buffering a plurality of packets; and a scheduler to perform scheduling of the sending of packets of the plurality of packets, the scheduler including:
control logic; and one or more memory devices configured to maintain a plurality of sets of indications of queues of the plurality of queues requiring processing to be performed;
wherein said scheduling includes:
identifying a current set of the plurality of sets of indications; and processing queues corresponding to the one or more indications of queues in the current set, said processing including:
identifying a particular indication of a particular queue of the plurality of queues in the current set;
adding a quantum to a deficit of the particular indication;
sending a packet from the particular queue corresponding to the particular indication;
decreasing the deficit by a value;
determining if the deficit allows the particular queue to be further processed; and moving the particular indication from the current set to another of the plurality of sets of indications of queues after said determining if deficit allows the particular queue to be further processed.
23. The apparatus of claim 22, wherein the value corresponds to a size of the packet.
24. The apparatus of claim 22, wherein said processing queues further comprises selecting said another of the plurality of sets of indications based on the deficit and the quantum.
25. The apparatus of claim 22, wherein said processing queues further comprises leaving the particular indication in the current set when said determining determines that the deficit allows the particular queue to be further processed.
26. The apparatus of claim 25, wherein a group including said sending the packet, said decreasing the deficit, and said determining is repeatedly performed based on the particular indication until said determining determines that the deficit does not allow the particular queue to be further processed.
27. The apparatus of claim 22, wherein said moving the particular indication from the current set to another of the plurality of sets of indications is performed only when said determining determines that the deficit does not allow the particular queue to be further processed.
28. The apparatus of claim 22, wherein said processing queues further comprises setting the particular indication to be a different particular indication in the current set of the plurality of indications.
29. The apparatus of claim 28, wherein a group including said sending the packet, said decreasing the deficit, said determining and said setting is repeatedly performed until the current set becomes empty.
30. The apparatus of claim 22,wherein said processing queues further comprises:
initializing a mini-deficit associated with the particular indication;
decreasing the mini-deficit by a second value;
determining if the mini-deficit allows the particular queue to be further processed;
and setting the particular indication to be a different indication in the current set after said determining if the mini-deficit allows the particular queue to be further processed.
31. The apparatus of claim 30, wherein a group including said sending the packet, said decreasing the deficit, said decreasing the mini-deficit, said determining if the mini-deficit allows, and said determining if the deficit allows is repeatedly performed based on the particular indication until said determining if the deficit allows determines that the deficit does not allow the particular queue to be further processed or until said determining if the mini-deficit does not allow the particular queue to be further processed.
32. The apparatus of claim 22, further comprising selecting and processing a particular next set from the plurality of sets of indications.
33. The apparatus of claim 32, wherein said selecting and processing the particular next set is performed in response to determining the current set to be empty.
34. An apparatus comprising:
means for maintaining a plurality of sets of items requiring processing to be performed;
means for identifying a current set of the plurality of sets of items; and means for processing each of the items in the current set, said means for processing each of the items including:
means for identifying a particular item in the current set;
means for adding a quantum to a deficit of the particular item;
means for processing an entity corresponding to the particular item;
means for decreasing the deficit of the particular item by a value; and means for determining if the deficit allows the particular item to be further processed; and means for moving the particular item from the current set to another of the plurality of sets of items after said determining if deficit allows the particular item to be further processed.
35. The apparatus of claim 34, wherein said processing items further comprises setting the particular item to be a different item in the current set.
36. The method of claim 34, further comprising:
means for initializing a mini-deficit associated with the particular item;
means for decreasing the mini-deficit of the particular item by a second value;
means for determining if the mini-deficit allows the particular item to be further processed; and means for setting the particular item to be a different item in the current set after determining if the mini-deficit allows the particular item to be further processed.
37. The method of claim 34, further comprising means for selecting a particular next set from the plurality of sets of items.
CA2484427A 2002-03-21 2003-03-14 Scheduling using quantum and deficit values Expired - Fee Related CA2484427C (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/104,759 2002-03-21
US10/104,759 US7065091B2 (en) 2002-03-21 2002-03-21 Method and apparatus for scheduling and interleaving items using quantum and deficit values including but not limited to systems using multiple active sets of items or mini-quantum values
PCT/US2003/007872 WO2003081874A1 (en) 2002-03-21 2003-03-14 Scheduling using quantum and deficit values

Publications (2)

Publication Number Publication Date
CA2484427A1 true CA2484427A1 (en) 2003-10-02
CA2484427C CA2484427C (en) 2012-03-13

Family

ID=28452387

Family Applications (1)

Application Number Title Priority Date Filing Date
CA2484427A Expired - Fee Related CA2484427C (en) 2002-03-21 2003-03-14 Scheduling using quantum and deficit values

Country Status (8)

Country Link
US (2) US7065091B2 (en)
EP (2) EP1488600B1 (en)
CN (1) CN100593312C (en)
AT (2) ATE508563T1 (en)
AU (1) AU2003221996B2 (en)
CA (1) CA2484427C (en)
DE (1) DE60303444T2 (en)
WO (1) WO2003081874A1 (en)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7523218B1 (en) * 2002-04-30 2009-04-21 University Of Florida Research Foundation, Inc. O(log n) dynamic router tables for prefixes and ranges
US7342936B2 (en) * 2002-06-17 2008-03-11 Integrated Device Technology, Inc. Method of performing deficit round-robin scheduling and structure for implementing same
US7350208B1 (en) 2002-12-31 2008-03-25 Cisco Technology, Inc. Method and apparatus for scheduling using a resource variable decreased by amounts corresponding to the efficiency of the resource
US7580355B2 (en) 2003-08-25 2009-08-25 Integrated Device Technology, Inc. Method of performing weighted round-robin queue scheduling using a dynamic link list and structure for implementing same
GB2411492B (en) * 2004-02-25 2006-06-07 Patsystems Electronic trading system
US7599381B2 (en) * 2004-12-23 2009-10-06 Cisco Technology, Inc. Scheduling eligible entries using an approximated finish delay identified for an entry based on an associated speed group
US7843940B2 (en) * 2005-06-01 2010-11-30 Cisco Technology, Inc. Filling token buckets of schedule entries
US7809009B2 (en) * 2006-02-21 2010-10-05 Cisco Technology, Inc. Pipelined packet switching and queuing architecture
US8339949B2 (en) * 2007-10-24 2012-12-25 Cortina Systems Inc. Priority-aware hierarchical communication traffic scheduling
CN101621478A (en) * 2009-08-07 2010-01-06 中兴通讯股份有限公司 Method and device for array dispatch
US8335160B2 (en) * 2010-03-30 2012-12-18 Telefonaktiebolaget L M Ericsson (Publ) Flow sampling with top talkers
EP2672461A1 (en) 2012-06-05 2013-12-11 a.tron3d GmbH Method for continuing recordings to detect three-dimensional geometries of objects
CN105429897A (en) * 2014-09-19 2016-03-23 深圳市中兴微电子技术有限公司 Service quality scheduling method and device
CN106254272B (en) * 2016-09-05 2019-08-02 盛科网络(苏州)有限公司 Weighted-fair scheduling method and scheduling system based on hard-wired elasticity

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6247061B1 (en) * 1998-06-09 2001-06-12 Microsoft Corporation Method and computer program product for scheduling network communication packets originating from different flows having unique service requirements
US6377579B1 (en) * 1998-06-11 2002-04-23 Synchrodyne Networks, Inc. Interconnecting a synchronous switching network that utilizes a common time reference with an asynchronous switching network
US6480511B1 (en) * 1998-09-15 2002-11-12 Avaya Technology Corp. Arrangement for synchronization of a stream of synchronous traffic delivered by an asynchronous medium
US6172579B1 (en) * 1999-02-02 2001-01-09 Cleveland Medical Devices Inc. Three point modulated phase locked loop frequency synthesis system and method
US7075934B2 (en) * 2001-01-10 2006-07-11 Lucent Technologies Inc. Method and apparatus for hierarchical bandwidth distribution in a packet network
KR100431191B1 (en) * 2001-12-03 2004-05-12 주식회사 케이티 An apparatus and method for scheduling packets by using a round robin based on credit

Also Published As

Publication number Publication date
US20030214964A1 (en) 2003-11-20
DE60303444T2 (en) 2006-09-21
CA2484427C (en) 2012-03-13
DE60303444D1 (en) 2006-04-13
ATE317196T1 (en) 2006-02-15
AU2003221996B2 (en) 2008-10-09
CN100593312C (en) 2010-03-03
WO2003081874A1 (en) 2003-10-02
CN1643874A (en) 2005-07-20
EP1488600B1 (en) 2006-02-01
US7065091B2 (en) 2006-06-20
US7212535B2 (en) 2007-05-01
EP1638273A2 (en) 2006-03-22
US20060176883A1 (en) 2006-08-10
AU2003221996A1 (en) 2003-10-08
EP1638273B1 (en) 2011-05-04
ATE508563T1 (en) 2011-05-15
EP1488600A1 (en) 2004-12-22
EP1638273A3 (en) 2009-04-01

Similar Documents

Publication Publication Date Title
CA2484427A1 (en) Scheduling using quantum and deficit values
CN109479032B (en) Congestion avoidance in network devices
WO2000028701A8 (en) Method and apparatus for fair and efficient scheduling of variable size data packets in input buffered switch
US8588242B1 (en) Deficit round robin scheduling using multiplication factors
US8929213B2 (en) Buffer occupancy based random sampling for congestion management
US10608963B2 (en) Adjusting buffer size for network interface controller
CN101072176A (en) Report processing method and system
US20060274779A1 (en) Filling token buckets of schedule entries
US8072887B1 (en) Methods, systems, and computer program products for controlling enqueuing of packets in an aggregated queue including a plurality of virtual queues using backpressure messages from downstream queues
CN105554049B (en) Distributed service amount control method and device
US20030202516A1 (en) Method and apparatus for avoiding head of line blocking in an ATM (asynchronous transfer mode) device
US20150281109A1 (en) System for en-queuing and de-queuing data packets in communication network
US7106693B1 (en) Method and apparatus for pacing the flow of information sent from a device
US7350208B1 (en) Method and apparatus for scheduling using a resource variable decreased by amounts corresponding to the efficiency of the resource
JP2007528539A (en) Electronic stream processing circuit with locally controlled parameter update and method for designing such a circuit
US10656967B1 (en) Actor and thread message dispatching
CN108259384B (en) Queue polling selection method and device
CN111953618B (en) Method, device and system for de-ordering under multistage parallel exchange architecture
WO2018229745A1 (en) Parallel information processing on multi-core computing platforms
US7881197B2 (en) Interface scheduling and traffic-shaping
US9628398B1 (en) Queuing methods and apparatus in a network device
US10439952B1 (en) Providing source fairness on congested queues using random noise
JP3570366B2 (en) Arbiter circuit and output cell arbitration method used therefor
KR102216523B1 (en) Packet processing apparatus and method in network processor
EP1351453B1 (en) Method and apparatuses for packet reordering in a network processor

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed

Effective date: 20180314