Earliest deadline first communications cell scheduler and scheduling method for transmitting earliest deadline cells first
First Claim
1. A method for scheduling the transmission of cells of a plurality of data streams in a communications network comprising the steps of:
- enqueuing data of each data stream to a corresponding data cell queue;
calculating a target transmission time for each said data cell queue utilizing predetermined logical scheduling rate parameters of each data stream;
responsive to each said calculated next target transmission time, calculating a time slot in a timing wheel utilizing an addition of a maximum delay value, setting an active indication for said identified timing wheel time slot and storing an entry to point to said corresponding data cell queue for said identified timing wheel time slot;
selecting a next data cell queue for transmission by checking for said active indication in a current timing wheel time slot;
responsive to identifying said active indication, processing a first data cell queue for transmission and rescheduling said data cell queue;
moving to a next time timing wheel time slot by checking for an entry from said current timing wheel time slot;
responsive to identifying said entry, processing said identified entry from said current timing wheel time slot and returning to checking for a next entry from said current timing wheel time slot;
responsive to identifying an empty time slot, comparing a current time value with said current timing wheel time slot,responsive to a current time value less than or equal to said current timing wheel time slot, scanning forward a predefined range, checking for said active indication in any time slot within said predefined range.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus are provided for scheduling the transmission of cells of a plurality of data streams in a communications network. An earliest deadline first (EDF) scheduler is provided for scheduling the transmission of cells of a plurality of data streams in a communications network to ensure that the connection or data stream with the earliest deadline is transmitted first. Each of the multiple data streams has a delay bound or deadline. Data of each data stream is enqueued to a corresponding data cell queue. A timing wheel time slot based on an identified target transmission time for each data cell queue is calculated utilizing an addition of a maximum delay value. A move forward timing mechanism includes a scan forward feature to identify a succession of virtual connection or data stream cell queues for transmission. A multiple tier cell scheduler is provided that includes at least two scheduling timing wheels. The priority of a first timing wheel is higher than the priority of a second timing wheel. The priority of the second timing wheel is higher than the priority of an optional third timing wheel. The third timing wheel includes a best effort operational mode. The relative rates between data streams are maintained, while the absolute rates of the data streams are increased or decreased in the lowest priority wheel.
194 Citations
26 Claims
-
1. A method for scheduling the transmission of cells of a plurality of data streams in a communications network comprising the steps of:
-
enqueuing data of each data stream to a corresponding data cell queue; calculating a target transmission time for each said data cell queue utilizing predetermined logical scheduling rate parameters of each data stream; responsive to each said calculated next target transmission time, calculating a time slot in a timing wheel utilizing an addition of a maximum delay value, setting an active indication for said identified timing wheel time slot and storing an entry to point to said corresponding data cell queue for said identified timing wheel time slot; selecting a next data cell queue for transmission by checking for said active indication in a current timing wheel time slot; responsive to identifying said active indication, processing a first data cell queue for transmission and rescheduling said data cell queue; moving to a next time timing wheel time slot by checking for an entry from said current timing wheel time slot; responsive to identifying said entry, processing said identified entry from said current timing wheel time slot and returning to checking for a next entry from said current timing wheel time slot; responsive to identifying an empty time slot, comparing a current time value with said current timing wheel time slot, responsive to a current time value less than or equal to said current timing wheel time slot, scanning forward a predefined range, checking for said active indication in any time slot within said predefined range. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. Apparatus for scheduling the transmission of cells of a plurality of data streams in a communications network comprising:
-
memory means for storing a corresponding data cell queue enqueued data of each data stream; means for calculating a target transmission time for each said data cell queue utilizing predetermined logical scheduling rate parameters of each data stream; means responsive to said next target transmission time calculating means, for calculating a time slot in a timing wheel utilizing an addition of a maximum delay value, means for storing an active indication for said identified timing wheel time slot and means for storing an entry to point to said corresponding data cell queue for said identified timing wheel time slot; means for selecting a next data cell queue for transmission including means for checking for said active indication in a current timing wheel time slot; means, responsive to identifying said active indication, for processing a first data cell queue for transmission and for rescheduling said data cell queue; means for moving to a next time timing wheel time slot including means for checking for an entry from said current timing wheel time slot; means, responsive to said entry checking means, for processing an identified entry from said current timing wheel time slot and for checking for a next entry from said current timing wheel time slot; means, responsive to an empty time slot identified by said entry checking means, for comparing a current time value with said current timing wheel time slot, means, responsive to an identified current time value less than or equal to said current timing wheel time slot, for scanning forward a predefined range, checking for said active indication in any time slot within said predefined range. - View Dependent Claims (9, 10, 11)
-
-
12. An earliest deadline first (EDF) scheduler for scheduling the transmission of cells of a plurality of data streams in a communications network comprising:
-
memory means for storing a corresponding data cell queue for each of the plurality of data streams; means for storing predetermined logical channel control parameter values for each data cell queue, said predetermined logical channel control parameter values including has a delay bound value; timing wheel means for storing an array of pointers to said data cell queues and for storing an occupancy bit map of timing wheel time slots; means for calculating a target transmission time and for calculating a timing wheel time slot for each data cell queue, said timing wheel time slot calculating means utilizing an addition of said delay bound value; and timing means for moving forward on said timing wheel time slots to identify a succession of data stream cell queues for transmission, said timing means including means for checking for an entry from said current timing wheel time slot;
means, responsive to said entry checking means, for processing an identified entry from said current timing wheel time slot and for checking for a next entry from said current timing wheel time slot;
means, responsive to an empty time slot identified by said entry checking means, for comparing a current time value with said current timing wheel time slot, andmeans, responsive to an identified current time value less than or equal to said current timing wheel time slot, for scanning forward a predefined range, and for checking for said active indication in any time slot within said predefined range. - View Dependent Claims (13, 14, 15)
-
-
16. A communications network comprising:
-
at least one communication system including a network interface; a cell scheduler included with said network interface;
said cell scheduler including memory means for storing a corresponding data cell queue of enqueued data of each data stream;means for calculating a target transmission time for each said data cell queue utilizing predetermined logical scheduling rate parameters of each data stream; means responsive to said next target transmission time calculating means, for calculating a time slot in a timing wheel utilizing an addition of a maximum delay value, means for storing an active indication for said identified timing wheel time slot and means for storing an entry to point to said corresponding data cell queue for said identified timing wheel time slot; means for selecting a next data cell queue for transmission including means for checking for said active indication in a current timing wheel time slot; means, responsive to identifying said active indication, for processing a first data cell queue for transmission and for rescheduling said data cell queue; means for moving to a next time timing wheel time slot including means for checking for an entry from said current timing wheel time slot; means, responsive to said entry checking means, for processing an identified entry from said current timing wheel time slot and for checking for a next entry from said current timing wheel time slot; means, responsive to an empty time slot identified by said entry checking means, for comparing a current time value with said current timing wheel time slot, means, responsive to an identified current time value less than or equal to said current timing wheel time slot, for scanning forward a predefined range, checking for said active indication in any time slot within said predefined range. - View Dependent Claims (17)
-
-
18. A computer program product for use in a data communications network having a cell scheduler for scheduling the transmission of cells of a plurality of data streams in said communications network, the computer program product comprising:
-
a record medium; means, recorded on said recording medium, for storing a corresponding data cell queue for each of the plurality of data streams; means, recorded on said recording medium, for storing predetermined logical channel control parameter values for each data cell queue, said predetermined logical channel control parameter values including has a delay bound value; timing wheel means, recorded on said recording medium, for storing an array of pointers to said data cell queues and for storing an occupancy bit map of timing wheel time slots; means, recorded on said recording medium, for calculating a target transmission time and for calculating a timing wheel time slot for each data cell queue, said timing wheel time slot calculating means utilizing an addition of said delay bound value; and timing means, recorded on said recording medium, for moving forward on said timing wheel time slots identify a succession of data stream cell queues for transmission, said timing means including means for checking for an entry from said current timing wheel time slot;
means, responsive to said entry checking means, for processing an identified entry from said current timing wheel time slot and for checking for a next entry from said current timing wheel time slot;
means, responsive to an empty time slot identified by said entry checking means, for comparing a current time value with said current timing wheel time slot, andmeans, responsive to an identified current time value less than or equal to said current timing wheel time slot, for scanning forward a predefined range, and for checking for said active indication in any time slot within said predefined range.
-
-
19. A multiple tier cell scheduler for scheduling the transmission of cells of a plurality of data streams in a communications network comprising:
-
memory means for storing a corresponding data cell queue for each of the plurality of data streams; means for storing predetermined logical channel control parameter values for each data cell queue, means for calculating a target transmission time for each said data cell queue utilizing predetermined logical scheduling rate parameters of each data stream; means responsive to each said calculated next target transmission time, for selecting a higher priority timing wheel, or a lower priority timing wheel, means for calculating a timing wheel time slot in said selected timing wheel, means for setting an active indication for said identified timing wheel time slot and means for storing an entry to point to said corresponding data cell queue for said identified timing wheel time slot; means for selecting a next data cell queue for transmission including means for identifying scheduling opportunities on said timing wheel and means, responsive to identified scheduling opportunities, for moving entries from said lower priority timing wheel to said higher priority timing wheel. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26)
-
Specification