CA2302129A1 - Timestamping arbitration in digital communication devices - Google Patents

Timestamping arbitration in digital communication devices Download PDF

Info

Publication number
CA2302129A1
CA2302129A1 CA002302129A CA2302129A CA2302129A1 CA 2302129 A1 CA2302129 A1 CA 2302129A1 CA 002302129 A CA002302129 A CA 002302129A CA 2302129 A CA2302129 A CA 2302129A CA 2302129 A1 CA2302129 A1 CA 2302129A1
Authority
CA
Canada
Prior art keywords
queue
tet
scheduler
level
logical
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.)
Abandoned
Application number
CA002302129A
Other languages
French (fr)
Inventor
Mark Janoska
Henry Chow
Anthony Hung
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.)
Nokia Canada Inc
Original Assignee
Newbridge Networks Corp
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
Priority claimed from CA002267021A external-priority patent/CA2267021A1/en
Application filed by Newbridge Networks Corp filed Critical Newbridge Networks Corp
Priority to CA002302129A priority Critical patent/CA2302129A1/en
Publication of CA2302129A1 publication Critical patent/CA2302129A1/en
Abandoned legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q11/00Selecting arrangements for multiplex systems
    • H04Q11/04Selecting arrangements for multiplex systems for time-division multiplexing
    • H04Q11/0428Integrated services digital network, i.e. systems for transmission of different types of digitised signals, e.g. speech, data, telecentral, television signals
    • H04Q11/0478Provisions for broadband connections
    • 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
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5649Cell delay or jitter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5679Arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management
    • H04L2012/5683Buffer or queue management for avoiding head of line blocking

Abstract

A hardware structure for an n-level hierarchical scheduler is shown.
The hardware uses a time-stamping arbitration mechanism for servicing a plurality of queues. Work-conserving and non-working conserving embodiments of the scheduler are shown.

Description

T

TIMESTAMPING AR.~ITRATION IN DIGITAL

FIELD OF INVENTION
The invention generally relates to digital communication packet scheduling systems, and more particularly to hierarchical schedulers which employ timestamping techniques for arbitrating amongst queues contending for service.
BACKGROUND OF INVENTION
Hierarchical schedulers, which comprise a plurality of schedulers interconnected in a mufti-tiered arrangement, find use in variety of packet switching devices. See, for instance, Floyd and Jacobson, "Link Sharing and Resource Management Models for Packet Networks", LE.E.E./ACM transactions on networking, vol. 3, no. 4, August 1995; and Bennett and Zhang, "Hierarchical Packet Fair Queuing Algorithms", proceedings of ACM SIG COMM, pages 143 to 156, Stanford, CA, August 1996.
It is relatively easy to implement schedulers in software using conventional programming languages such as 'C' executing on a general purpose data processor.
However, the software approach is inherently limited in terms of speed of operation.
Thus, in a high speed packet switching device it is preferred to implement a scheduler using dedicated hardware.
One particular technique conducive to the practical implementation of a scheduler or arbiter is timestamping arbitration. In this technique, each data packet is associated with a theoretical emission time (TET) which essentially specifies a future time that the packet is destined for service. A scheduler may then sort the TETs in 20740042.1
-2-order to determine which packet, and hence which queue, should be serviced at the next available scheduling time slat. The timestamping technique can be applied to non-work conserving schedulers, such as shapers, or work conserving schedulers, such as weighted fair queuing schedulers. The prior art has not, however, presented an effective solution to providing a high speed hierarchical scheduler which employs the time-stamping technique.
It is thus desired to provide a general purpose method for implementing timestamping arbitration using a hardware structure which can be applied to both shapers and weighted fair queuing (W~Q) schedulers. Furthermore, the hardware structure should also be capable of implementing shaping and WFQ scheduling in a hierarchical manner.
~UMMABY OF INVENTION
Broadly speaking, the invention provides an n-level hierarchical scheduler for servicing a plurality of queues. The scheduler includes control logic for assembling a tag for each queue, said tag having a field indicative of the eligibility of the queue and n fields, one for each level of the hierarchical scheduler, indicative of the priority of the queue with respect to the corresponding level of the hierarchy. A
comparator evaluates the tags and provides an output specifying a winning queue. Update logic receives the comparator output and updates the priority fields of the tag.
In the preferred embodiment, the comparator is a minimum comparator and the fields are concatenated such that the eligibility field assumes a more significant position than the n priority fields in the tag, and the significance of the n priority fields corresponds to their respective level in the hierarchy. The priority field representing the bottom-most level for a given queue is set to a theoretical emission time of the 20740042.1
-3-given queue. The theoretical emission time may be computed in relation to a shaper scheduler or a weighted fair queuing scheduler.
BRIEF DESCRIPTION OF DRAWING, The foregoing and other aspects of the invention will become more apparent with reference to the detailed description of its preferred embodiment in conjunctions with the drawings, in which:
Fig. 1 is a diagram of the logical structure of a hierarchical scheduler;
Fig. 2 is a schematic block diagram of a hardware structure according to the preferred embodiment for implementing the hierarchical scheduler shown in Fig. 1;
Fig. 3 is a diagram of a data structure or tag which is associated with each queue and evaluated by the hardware structure shown in Fig. 2;
Fig. 4 is a functional block diagram of the hardware structure shown in Fig. 2;
Fig. SA is a schematic diagram of a non-work conserving hierarchical scheduler;
Fig. SB is a diagram of records associated with each queue and with certain sub-schedulers of the hierarchical scheduler shown in Fig. SA;
Fig. 6A is a schematic diagram of a work conserving hierarchical scheduler;
Fig. 6B is a schematic diagram of records associated with each queue and with certain sub-schedulers of the hierarchical scheduler shown in Fig. 6A; and 20740042.1 ~ r
-4-Fig. 7 is a series of time lines showing the data processing provided by the hardware structure as applied to implement the work conserving hierarchical scheduler shown in Fig. 6A.
DETAILED DESCRIPTION OF FREFE~REp E1VI~U11IMENTS
Fig. 1 shows a logical, generic, model of a hierarchical scheduler 10 which comprises a plurality of schedulers 12 (each of which is termed herein as a "sub-scheduler") interconnected in a multitiered arrangement. Each sub-scheduler 12 is a logically independent scheduler and serves one or more entities directly beneath it in the hierarchy. In the illustrated embodiment a two-level hierarchy is shown.
The sub-schedulers 12 on the bottom-most level of the hierarchy, i.e., level 2, serve queues 14 (individually labeled 14a, 14b, ... 14n) which hold data packets 16 that are preferably, although not necessarily, equally sized. The sub-scheduler 12 on the higher level, i.e., level 1, serves the sub-schedulers 12 situated on the immediately lower level.
In practice, the sub-schedulers 12 preferably only pass the identity of a queue (i.e., "queue identifier) to be serviced upstream to the top-level sub-scheduler and that entity, or alternatively an external entity, is responsible for moving the head-of line (HOL) data packet from a queue 14 selected for service (i.e., a "winning"
queue) to an output stream 18.
Fig. 2 is a schematic block diagram of a structure 20 according to the preferred embodiment for implementing the hierarchical scheduler 10 in hardware. As will be explained in greater detail below, the hardware structure 20 may be employed in relation to a work-conserving hierarchical scheduler wherein each sub-scheduler 12 thereof is, for example, a weighted fair queue (WFQ) scheduler, or a non-work conserving hierarchical scheduler wherein sub-schedulers 12 include, for example, shaper schedulers. In either case, the hierarchical scheduler 10 employs a time-20740042.1 , , ~ r
- 5 -stamping technique for arbitrating ~tnongst contending queues 14. Time-stamping techniques for non-hierarchical shaper and WFrI schedulers are respectively disclosed, for instance, in Stiliadios, D. and Varma, A., "A General Methodology for Designing Efficient Traffic Scheduling and Shaping Algorithms", Proceedings of LE.E.E.
INFOCOM, Japan, 1997, and Goyal et al., "Start Time Fair Queuing: A Scheduling Algorithm for Integrated Services Packet Sitching Networks", IEEE/ACM Trans.
Networking, Vol. 5, No. 5, October 1970, which disclosures are incorporated herein by reference. It will be appreciated that in these time-stamping techniques each packet is associated with a time-stamp or theoretical emission time (hereinafter TET) which is used by a scheduler for the arbitration decision. In the preferred embodiment, however, time stamping is performed per queue rather than per packet.
Generally speaking, this means that each queue is associated with a single TET which is equivalent to the time-stamp that the prior art would have granted to the head-of line (HOL) packet in the queue. The inventors have found that time stamping per queue is likely more economical to implement in practice because of lower memory storage requirements. The TETs associated with queues 14 are represented in Fig. 2 by reference no. 15 (individual TETs being labelled 15a, 15b, ... 15n).
The hardware structure 20 comprises a control logic block 24 which uses the TETs 15 associated with each queue 14 to build a data structure or tag 17 for each queue 14 (individual tags being labeled 17a, 17b, ... 17n). Generally speaking, each tag 17 represents the priority of the corresponding queue 14 with respect to the multiple levels of the scheduling hierarchy. For example, the structure of the tag 17 for a two level hierarchical scheduler is shown in Fig. 3 and comprises an eligibility field (ELN) 36, a level 1 TET field 37, and a level 2 TET field 38. More generally, in an n-level hierarchical scheduler the tag 17 would include n TET fields, one for each level of the hierarchy. The control logic block 24 sets the eligibility field 36 to indicate whether a given queue 14 is eligible to be serviced; for instance, if it has at least one 20740042.1
-6-data packet queued therein. The level 2 or bottom-most level TET 38 is set to the actual TET 15 associated with the corresponding queue. The level 1 TET field 37 is associated with the level 1 sub-scheduler 12 and its computation will be described in greater detail below. The tags 17, which can be considered to provide effective TET
S values, are evaluated by a minimum comparator 26 (Fig. 2) which selects the winning queue. The ordering or position of the fields is important in the tag 17 because the concatenation of its fields provides a value for a given queue 14 which can be quickly evaluated by the minimum comparator 26 relative to the tags 17 of other queues. This enables queue arbitration to be quickly preformed which can be advantageous for systems that employ hundreds or even thousands of queues, as may occur, for instance, in a high speed ATM network node or switch.
In the preferred embodiment, the minimum comparator 26 provides an identifier of the winning queue on its output line 27. The queue identifier is read by an update logic block 28 which is responsible for updating the level 1 and level 2 TETs 37 and 38, as described in greater detail below.
In practice, the control logic block 24 preferably communicates with a control memory 22 which stores pertinent information concerning each queue 14, such as its queue depth counter, and which level 2 sub-scheduler 12 is responsible for servicing the queue. The particular information stored in the control memory will depend on the type of hierarchical shaper being implemented, as described below. The preferred implementation of the hardware structure 20 is shown in greater detail in the functional block diagram of Fig. 4. In this case, the data packets 16 are temporarily stored in a common data memory 30 and queue memory manager (QMM) 32 is provided to manage the memory 30 in order to and establish and maintain logical queue structures. The QMM 32 also communicates with the control memory 22, as 20740042.1
-7-does the update logic block 28. The communication preferably occurs by way of a memory bus (not shown).
Fig. SA is a logical model of a hierarchical shaper scheduler 40 comprising multiple level 2 shaper sub-schedulers 42 which feed a level 1 exhaustive priority sub-scheduler 44. For an example of how such a hierarchical scheduler may be used and configured, refer to applicants' co-pending patent application U.S.S.N.
09/140,059.
Fig. SB shows the type of information stored in control memory 22 in relation to scheduler 40. The information stored for a given queue i comprises a record 46, termed hereinafter as "Qs(i)", which includes the following fields:
~ QUEUE-ID - A unique queue identifier or index.
~ E/F - A Boolean value indicating whether the queue is empty or not.
~ QD-COUNTER - The queue depth counter.
~ TET - The TET for the queue. (This corresponds to TET 15 of Fig. 2.) ~ INC - An increment used in time-stamping calculations which corresponds to the shaping rate of the queue.
~ SHAPER-ID - An identifier or index of the particular shaper sub-scheduler 42 servicing the queue. Multiple queues may be associated with the same shaper sub-scheduler.
The information stored for a given level 2 shaper sub-scheduler j comprises a record 48, termed herein as "Ss(j)", which includes the following fields:
~ SHAPER-ID - The unique identifier or index of shaper sub-scheduler.
~ EX-PRIORITY - A priority level of the shaper sub-scheduler 42 for the purposes of the exhaustive sub-scheduler 44.
20740042.1 -$_ Referring to Figs. 4, SA and SB, the data processing provided embodied by the control logic block 24 and update logic block 28 in connection with the hierarchical shaper scheduler 40 is discussed in greater detail. In the preferred embodiment, the update logic 28 calculates the T~'~ field in record 46, Qs(i) TET, whenever a new packet reaches the head-of line (HOL) position in the queue. This happens either when (a) a data packet arrives at an empty queue, or (b) a data packet has just been served and its queue has a following data packet waiting to be serviced which progresses to the HOL position.
The preferred embodiment employs a virtual clock shaping technique similar to that described in Stiliadios, supra. Hence, for arrivals to an empty queue i, the update logic 28 calculates the TET for queue i in a conventional manner as follows:
QS(i).TET=xnax(RTP, QS(i).TET)+ QS(i).INC (1) where RTP is a real time pointer or current time maintained by block 24.
In the event a packet is dequeued from queue i such that another packet waiting in the queue reaches the HOL position, i.e., if QS(i).QD-COUNT > 1, update logic 28 increments the TET of queue i by its INC value. That is, QS(i).TET= QS(i).TET + QS(i).INC 2 () The control logic 24 builds the tag 17 for each queue which is evaluated by the minimum comparator 26. More specifically, the eligibility field 36 of tag 17 (Fig. 3) is based on:
(a) whether queue i is eligible for shaping, i.e., if Qs(i).TET - QS(i).INC a RTP; and (b) whether the queue is non-empty, i.e., if QS(i).E/F = FALSE.
20740042.1 If both of these conditions are satisfied then queue i is eligible for service and the ELN
field 36 is set to f~, otherwise it is set to 1. These assignments enable the minimum comparator 26 to rank queues which satisfy these conditions ahead of queues which do not.
The control logic 24 sets the level 2 TET field 38 for a given queue i to be equal to Qs(i).TET. The level 1 TET field 37 is set to the priority level of the shaper sub-scheduler 42 serving queue i, Ss(Qs(i).SHAPER-ID).EX-PRIORITY. The tag 17 enables the minimum comparator 26 to rapidly determine which queues are ineligible for service and which queues have the highest priorities, and then to select a winning queue based on the smallest TET value of the queues having the highest priorities.
Fig. 6A is a logical model of a hierarchical WFQ scheduler 50 comprising multiple level 2 WFQ sub-schedulers 52 which feed a level 1 WFQ sub-scheduler 54.
For an example of how such an hierarchical scheduler may be used and configured, refer to applicants' co-pending patent application U.S.S.N. 09/140,059.
Fig. 6B shows the type of information stored in control memory 22 in relation to scheduler 50. The information stored for a given queue i comprises a record 56, termed herein as "QW(i)", which includes the following fields:
~ QUEUE-ID - A unique queue identifier or index.
~ E/F - A Boolean value indicating whether the queue is empty or not.
~ QD-COUNTER - The queue depth counter.
~ TET - The TET for the queue. (This corresponds to TET 15 of Fig. 2.) ~ INC - An increment used in time-stamping calculations which corresponds to the weight of the queue; as known in the art per se.
~ WFQ-ID - An identifier of the particular WFQ sub-scheduler 52 servicing the queue. Multiple queues may be associated with the same sub-scheduler 52.
20740042.1 The information stored for a given level 2 WFQ sub-scheduler j comprises a record 58, termed herein as "Sw(j)", which includes the following fields:
~ WFQ-ID - The unique identifier or inde~c of the WFQ sub-scheduler. This field is linked to the WFQ-ID field of the Qw record 56.
~ TET - A time-stamp associated with sub scheduler j. This enables the level 1 WFQ sub-scheduler 54 to service the level 2 WFQ sub-schedulers 52 using a weighted fair queuing service discipline.
INC - An increment used in time-stamping calculations which corresponds to the weight of the level 2 WFQ sub-scheduler 52, as known in the art per se.
~ RANK - A calculated rank level for the level 2 WFQ sub-scheduler 52.
Referring to Figs. 4, 6A and 68, the data processing provided by the control logic block 24 and update logic block 28 in connection with the hierarchical WFQ
scheduler 50 is discussed in greater detail. In the preferred embodiment, the update logic 28 calculates TETs for each queue 14, and for groups of queues, i.e., for each level 2 WFQ sub-scheduler 52. The TETs for the queues are preferably calculated using the Start Time Fair Queuing (SFQ) model presented in Goyal et al., supra.
Hence, for arrivals to an empty queue i, the update logic 28 calculates the TET for queue i as follows:
Qw(i).TET=max(VTP, Qw(i).TET) + Qw(i).INC, (3) where VTP is a virtual time pointer associated with the particular level 2 WFQ
sub-scheduler 52 servicing the queue.
In the event a packet is dequeued from queue i such that another packet waiting in the queue reaches the HOL position, i.e., if Qw(i).QD-COUNT > l, update logic 28 increments the TET of queue i by its INC value. That is, 20740042.1 Qw(i).TET= Qw(i).TET + Qw(i).INC. (4) The TET calculations for the level 2 WFQ sub-schedulers 52, however, depart from conventional practice. More specifically, it is typical in WFQ time-stamping techniques to assign TETs only to non-empty queues (or in this case groups of queues). Thus, under conventional practice it is typically required to know whether or not any of the potentially numerous queues serviced by a particular level 2 WFQ sub-scheduler 52 are non-empty in order to know whether the particular level 2 WFQ
sub-scheduler 52 can itself be considered to be "empty" and hence ineligible for servicing by the level 1 WFQ sub-scheduler 54. One potential way of accomplishing this task is to introduce a separate signal input representing the empty/full status of each queue associated with a level 2 WFQ sub-scheduler 52 and to AND all such signals together.
This approach, however, is inconvenient to implement in practice because a large packet switching device such as a network node could potentially have thousands of queues associated per level 2 sub-scheduler. Also, this approach may impede the programmability of the system in terms of making it more difFlcult to dynamically specify which queues are serviced by which level 2 sub-scheduler S2.
In order to avoid these limitations, the preferred embodiment employs a novel approach whereby a TET is assigned to each level 2 WFQ sub-scheduler 52 regardless of whether or not its respective queues have data packets waiting for service.
More specifically, the update logic 28:
1) Identifies the winning level 2 WFQ sub-scheduler k that was just served based on the output 27 of the minimum comparator 26. In other words, k = Qw(x).WFQ-ID, where x is the winning queue identifier provided by output 27.
20740042.1 2) Assigns VTP (associated with the level 1 sub-scheduler 54) to be the value of the TET of the winning level 2 WFQ sub-scheduler k. In other words, VTP = Sw(k).TET.
3) Updates the TET value of the winning level 2 WFQ sub-scheduler k by its pre-determined increment value INC. In other words, SW(k).TET =
Sw(k).TET + Sw(k).INC.
4) Updates the TETs of the remaining level 2 WFQ sub-schedulers 52 by setting their TETs to the maximum of their previous value and VTP. In other words, SW(j).TET:=max(SW(j).TET, VTP), for all j O k, (where VTP has been set to the TET of the winning level 2 WFQ sub-scheduler k as per step 1 ).
5) Sorts the level 2 WFQ sub-schedulers 52 in ascending order of their TETs, i.e., in order of increasing Sw(j).TET for all j. The sorted order provides the value for the Sw(j).RANK field, with RANK = D for the level 2 WFQ sub-scheduler with the smallest TET, RANK = 1 for the level 2 sub-scheduler with the next largest TET, and so on through the sorted order. In the event of a tie between the TET values of level 2 WFQ sub-schedulers 52, the RANK field may be set in order of their identifiers, i.e., Sw(j).QUEUE-ID, in order to provide a deterministic outcome.
The control logic 24 builds the tag 17 for each queue 14 which is evaluated by the minimum comparator 26. More specifically, the eligibility field 36 of tag 17 (Fig.
3) is based on whether the queue is non-empty, i.e., if Qw(i).E/F = FALSE. If this 20740042.1 condition is satisfied then queue i is eligible fox service and the ELN field 36 is set to f?~, otherwise it is set to 1.
The control logic 24 also sets the level 2 TET field 38 for each queue to be equal to QW(i).TET. The level 1 TET field 37 is set to the rank, SW(QW(i).WFQ-ID).RANK, of the level 2 WFQ sub-scheduler 52 serving queue i. The tag 17 thus enables the minimum comparator 26 to rapidly determine which queues and level sub-schedulers are ineligible and which of the remaining queues have the highest priorities.
Fig. 7 shows how the foregoing procedure may achieve the principles of SFQ
using an example of hierarchical scheduler 50 having five level 2 WFQ sub-schedulers 52. Fig. 7(a) shows the TETs (the nomenclature TETZ meaning the TET for WFQ
sub-scheduler #z) just before service at a given scheduling slot. WFQ sub-scheduler #4 has the smallest TET and WFQ sub-scheduler # 1 has the next smallest. Now suppose that WFQ sub-scheduler #4, which has the lowest TET value, has no queue to serve but that WFQ sub-scheduler #1, which has the next lowest TET value, does.
The system will thus service a queue associated with WFQ sub-scheduler #1. In accordance with the above procedure, and as shown in Fig. 7(b), the update logic 28 then sets VTP to td, the value of TETI, and increments TETI according to its INC
value, for example, to tlo. Furthermore, as shown in Fig. 7(c), the update logic 28 forces all TETs to at least equal the newly modified VTP such that TET4 now becomes equal to t4. This enables the system to conform to the principles of SFQ, whereby VTP
must be less than or equal to all TETs. It will also be appreciated this procedure for updating any such "straggling" TETs to equal the value of VTP preserves the relative priority of the level 2 sub-schedulers 52. For instance, if by the time the next scheduling slot arrives WFQ sub-scheduler #4 has a queue to serve, then sub-20740042.1 scheduler #4 will be declared the winner since it will have the lowest TET
value (barring a tie, in which case the RANK field may be used as explained previously).
The preferred embodiment has included a sorting step (step 5, above) for providing a priority rank amongst the level 2 WFQ sub-schedulers. It will be understood that the sorting step may be omitted since Sw(j).TET may itself provide the necessary data for the level 1 TET field 37 of tag 17. The step may, however, be desired because it provides a convenient tie-breaking mechanism and also provides a field length which may conveniently be as long as Ss(j).EX-PRIORITY (which is relatively short) such that the same tag structure may be used to implement both WFQ
and shaper hierarchical schedulers.
Those skilled in the art will appreciate that many modifications and variations may be made to the preferred embodiment whilst keeping within the spirit of the invention.
20740042.1

Claims (11)

-15-
1. An n-level hierarchical scheduler for servicing a plurality of queues, said scheduler comprising:
control logic for assembling a tag associated with each queue, said tag having (i) a field indicative of the eligibility for servicing of the queue, and (ii) n fields, one for each level of the hierarchical scheduler, each field being indicative of the priority of the queue with respect to a corresponding level of the hierarchy;
a comparator for evaluating said tags and providing an output specifying a winning queue based on said evaluation; and update logic for updating the priority fields of said tag in response to the selection of a winning queue.
2. The scheduler according to claim 1, wherein said fields are concatenated such that the eligibility field assumes a more significant position than the n priority fields in said tag, and the significance of the n priority fields corresponds to their respective level in the hierarchy.
3. The scheduler according to claim 2, wherein the least significant priority field is set to a theoretical emission time (TET) for the corresponding queue.
4. The scheduler according to claim 3, wherein said TET is computed by said update logic in relation to one of a work conserving and a non-work conserving scheduling scheme.
5. The scheduler according to claim 4, wherein said control logic sets the eligibility field associated with each queue based on the eligibility for service of the queue with respect to the selected scheduling scheme.
6. The scheduler according to Claim 5, wherein n = 2.
7. The scheduler according to claim 1, wherein said comparator is a minimum comparator.
8. The scheduler according to claim 4, wherein:
the scheduling scheme is a weighted fair queuing (WFQ) work-conserving scheme and the priority fields associated with a given non-bottom level of the hierarchy store theoretical emission times (TET) associated with pre-select groups of queues, and the update logic (a) sets a virtual time pointer (VTP) equal to the TET of the winning queue, (b) increments TETs associated with the winning queue by pre-selected increment values, and (c) advances any other TET not associated with a bottom level of the hierarchy to equal VTP in the event such TET falls behind the value of VTP.
9. An n-level weighted fair queuing hierarchical scheduler for servicing a plurality of queues, said scheduler comprising:
sub-scheduler processing means for effecting a hierarchy of logical sub-schedulers, including means for logically associating groups of queues with each said logical sub-scheduler at each level of said hierarchy, wherein said processing means produces a theoretical emission time (TET) for each queue or non-top level sub-scheduler;
means for assembling a tag associated with each queue, said tag having (i) a field indicative of the non-empty status the queue and (ii) n fields, one for each level of the scheduling hierarchy, for storing TETs associated with the queue at each level of said hierarchy, wherein said status field assumes a more significant position than said n TET fields and the significance of said n TET fields corresponds to their respective level in said hierarchy; and a comparator for evaluating said tags and providing an output specifying a winning queue based on said evaluation, wherein said processing means (a) sets a virtual time pointer (VTP) equal to the TET of said winning queue, (b) increments said TETs associated with said winning queue by pre-selected increment values, and (c) advances any other given TET
associated with one of said logical sub-schedulers to equal said VTP in the event such TET falls behind the value of VTP.
10. A weighted fair queuing method for servicing a plurality of logical queues, comprising:
(a) associating each logical queue with a theoretical emission time (TET) and a predetermined increment value, each logical queue having a defined TET value at all times irrespective of whether or not the logical queue is non-empty;
(b) associating the logical queues as a group with a virtual time pointer (VTP);
(c) selecting one of the logical queues which is non-empty and has a TET
value closest to the VTP and thereafter (i) retrieving a quantum of data from the selected logical queue and forwarding such data to processing circuitry, (ii) setting a new value for VTP equal to the TET of the selected logical queue, (iii) incrementing the TET of the selected logical queue by its corresponding increment value, and (iv) advancing the TET of each remaining logical queue to equal the new value of VTP in the event such TET falls behind the new value of VTP; and (d) repeating step (c).
11. A weighted fair queue scheduler for selecting amongst a plurality of logical queues contending for bandwidth from a device which processes data packets stored in the queues, the scheduler comprising:
means for associating each logical queue with a theoretical emission time (TET) and a predetermined increment value, each logical queue having a defined TET
value at all times irrespective of whether or not the logical queue is non-empty;
means for associating the logical queues as a group with a virtual time pointer (VTP);
means for periodically selecting one of logical queues which is non-empty and has a TET value closest to the VTP, and thereafter (i) retrieving a quantum of data from the selected logical queue and forwarding such data to the processing device, (ii) setting a new value for VTP equal to the TET of the selected logical queue, (iii) incrementing the TET of the selected logical queue by its corresponding increment value, and (iv) advancing the TET of each remaining logical queue to equal the new value of VTP in the event such TET falls behind the new value of VTP.
CA002302129A 1999-03-26 2000-03-27 Timestamping arbitration in digital communication devices Abandoned CA2302129A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CA002302129A CA2302129A1 (en) 1999-03-26 2000-03-27 Timestamping arbitration in digital communication devices

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CA002267021A CA2267021A1 (en) 1999-03-26 1999-03-26 Timestamping arbitration in digital communication devices
CA2,267,021 1999-03-26
CA002302129A CA2302129A1 (en) 1999-03-26 2000-03-27 Timestamping arbitration in digital communication devices

Publications (1)

Publication Number Publication Date
CA2302129A1 true CA2302129A1 (en) 2000-09-26

Family

ID=25680859

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002302129A Abandoned CA2302129A1 (en) 1999-03-26 2000-03-27 Timestamping arbitration in digital communication devices

Country Status (1)

Country Link
CA (1) CA2302129A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1530329A2 (en) * 2003-10-02 2005-05-11 Alcatel Method and apparatus for frame-aware and pipelined hierarchical scheduling
US7385993B2 (en) * 2001-12-21 2008-06-10 International Business Machines Corporation Queue scheduling mechanism in a data packet transmission system
WO2009130218A1 (en) * 2008-04-24 2009-10-29 Xelerated Ab A traffic manager and a method for a traffic manager
WO2012145841A1 (en) * 2011-04-28 2012-11-01 Alcatel Lucent Hierarchical profiled scheduling and shaping

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7385993B2 (en) * 2001-12-21 2008-06-10 International Business Machines Corporation Queue scheduling mechanism in a data packet transmission system
EP2209269A1 (en) * 2003-10-02 2010-07-21 Alcatel Lucent Method and apparatus for frame-aware and pipelined hierarchical scheduling
EP1530329A3 (en) * 2003-10-02 2009-04-22 Alcatel Lucent Method and apparatus for frame-aware and pipelined hierarchical scheduling
EP1530329A2 (en) * 2003-10-02 2005-05-11 Alcatel Method and apparatus for frame-aware and pipelined hierarchical scheduling
EP2209270A1 (en) * 2003-10-02 2010-07-21 Alcatel Lucent Method and apparatus for frame-aware and pipelined hierarchical scheduling
CN102084628A (en) * 2008-04-24 2011-06-01 厄塞勒拉特公司 A traffic manager and a method for a traffic manager
WO2009130218A1 (en) * 2008-04-24 2009-10-29 Xelerated Ab A traffic manager and a method for a traffic manager
US8824287B2 (en) 2008-04-24 2014-09-02 Marvell International Ltd. Method and apparatus for managing traffic in a network
CN102084628B (en) * 2008-04-24 2014-12-03 马维尔国际有限公司 A traffic manager and a method for a traffic manager
US9240953B2 (en) 2008-04-24 2016-01-19 Marvell International Ltd. Systems and methods for managing traffic in a network using dynamic scheduling priorities
WO2012145841A1 (en) * 2011-04-28 2012-11-01 Alcatel Lucent Hierarchical profiled scheduling and shaping
US8693489B2 (en) 2011-04-28 2014-04-08 Alcatel Lucent Hierarchical profiled scheduling and shaping
US9185047B2 (en) 2011-04-28 2015-11-10 Alcatel Lucent Hierarchical profiled scheduling and shaping

Similar Documents

Publication Publication Date Title
US5859835A (en) Traffic scheduling system and method for packet-switched networks
US6477144B1 (en) Time linked scheduling of cell-based traffic
US5835494A (en) Multi-level rate scheduler
USRE43466E1 (en) Scheduling the dispatch of cells in non-empty virtual output queues of multistage switches using a pipelined hierarchical arbitration scheme
US6721796B1 (en) Hierarchical dynamic buffer management system and method
CN1097913C (en) ATM throttling
US6940851B2 (en) Scheduling the dispatch of cells in non-empty virtual output queues of multistage switches using a pipelined arbitration scheme
US20020141425A1 (en) Method and apparatus for improved queuing
JP3115546B2 (en) Method for optimally transmitting ATM cells
WO1997034394A1 (en) Efficient output-request packet switch and method
US20130003755A1 (en) Priority-aware hierarchical communication traffic scheduling
US7113510B2 (en) Hardware self-sorting scheduling queue
JPH11340983A (en) Scheduling circuit and method
Saito Optimal queueing discipline for real-time traffic at ATM switching nodes
US7894347B1 (en) Method and apparatus for packet scheduling
CN1359241A (en) Distribution type dispatcher for group exchanger and passive optical network
EP1638273B1 (en) Scheduling using quantum and deficit values
Chiussi et al. Implementing fair queueing in atm switches: The discrete-rate approach
US6714554B1 (en) Method and system for sorting packets in a network
Chiussi et al. Implementing fair queueing in ATM switches. II. The logarithmic calendar queue
CA2302129A1 (en) Timestamping arbitration in digital communication devices
EP0870415B1 (en) Switching apparatus
US7079545B1 (en) System and method for simultaneous deficit round robin prioritization
US6807171B1 (en) Virtual path aggregation
US20110019548A1 (en) Traffic arbitration

Legal Events

Date Code Title Description
FZDE Dead