SYSTEM, DEVICE, AND METHOD FOR SCHEDULING IN A COMMUNICATION NETWORK
Related Applications This application claims priority from United States provisional patent application number 60/055,658 entitled System, Device, And Method For Scheduling In A Communication Network filed on August 14, 1997.
Background 1. Field of the Invention
The invention relates generally to communication systems, and more particularly to scheduling transmission opportunities in a communication network.
2. Discussion of Related Art
In today's information age, there is an increasing need for high-speed communications that provides guaranteed quality of service (QoS) for an ever- increasing number of communications consumers. To that end, communications networks and technologies are evolving to meet current and future demands. Specifically, new networks are being deployed which reach a larger number of end users, and protocols are being developed to utilize the added bandwidth of these networks efficiently.
One technology that has been widely employed and will remain important in the foreseeable future is the shared-medium network. A shared medium network is one in which a single communications channel (the shared channel) is shared by a number of end users such that uncoordinated transmissions from different end users may interfere with one another. Since communications networks typically have a limited number of communications channels, the shared medium network allows many end users to gain access to the network over a single communications channel, thereby allowing the remaining communications channels to be used for other purposes. However, the shared medium network is only feasible when each end user only transmits data intermittently, allowing other end users to transmit during periods of silence.
One problem in a shared medium network involves scheduling end user transmissions to avoid collisions on the shared channel while providing each end user with guaranteed QoS. This scheduling problem becomes extremely complex when a large number of end users is supported. Thus, a need has remained for a scheduling architecture for reducing the complexity of scheduling.
Brief Description of the Drawing
In the Drawing,
FIG. 1 is a block diagram showing an exemplary shared medium network in accordance with a preferred embodiment of the present invention;
FIG. 2 is a block diagram showing a headend unit and an access interface unit in accordance with a preferred embodiment of the present invention;
FIG.J3 is a block diagram showing the Headend Scheduler architecture in accordance with a preferred embodiment of the present invention; FIG. 4 is a block diagram showing the components of the Headend
Scheduler in accordance with a preferred embodiment of the present invention;
FIG. 5A is a diagram showing an exemplary Task Frame map in accordance with an exemplary embodiment of the present invention; FIG. 5B is a diagram showing an exemplary Task Frame map in accordance with a preferred embodiment of the present invention; FIG. 6 is a diagram showing an exemplary Task Frame map conceptualized as a number of bins in accordance with a preferred embodiment of the present invention;
FIG. 7 is a block diagram summarizing the relationship between requests, jobs, and tasks in accordance with a preferred embodiment of the present invention;
FIG. 8 is a flow diagram showing logic for scheduling transmission opportunities in accordance with the present invention; and
FIG. 9 is a flow diagram showing logic for scheduling committed-rate components in accordance with the present invention.
Detailed Description
FIG. 1 is a block diagram showing an exemplary shared medium network 100 in accordance with a preferred embodiment of the present invention. The shared medium network 100 allows a number of end users 1101 through 110N to access a remote external network 108 such as the Internet. The shared medium network 100 acts as a conduit for transporting information between the end users 110 and the external network 108.
The shared medium network 100 includes a Headend Unit (HU) 102 that is coupled to the external network 108. The HU 102 is in communication with a plurality of Access Interface Units 1041 through 104N (collectively referred to as "AIUs 104" and individually as an "AIU 104") by means of a shared physical medium 106. Each end user 1 10 interfaces to the shared medium network 100 by means of an AIU 104. A single AIU 104 may support one or a number of the end users 110.
The shared physical medium 106 includes a plurality of channels over which information can be transferred between the HU 102 and the AIUs 104. In the preferred embodiment, each channel is unidirectional; that is, a particular channel either carries information from the HU 102 to the AIUs 104 or from the AIUs 104 to the HU 102. Those channels that carry information from the HU 102 to the AIUs 104 are typically referred to as "downstream channels." Those channels that carry information from the AIUs 104 to the HU 102 are typically referred to as "upstream channels." In alternative embodiments, these various upstream and downstream channels may, of course, be the same physical channel, for example, through time-division multiplexing/duplexing, or separate physical channels, for example, through frequency-division multiplexing/duplexing.
In the preferred embodiment, the shared medium network 100 is a data- over-cable (DOC) communication system wherein the shared physical medium 106 is a two-way hybrid fiber-optic and coaxial cable (HFC) network. The HU 102 is a headend device typically referred to as a "cable router." The AIUs 104 are cable modems. In other embodiments, the shared physical medium 106 may
be coaxial cable, fiber-optic cable, twisted pair wires, and so on, and may also include air, atmosphere, or space for wireless and satellite communication.
In the shared medium network 100, the downstream channels are situated in a frequency band above approximately 50 MHz. The downstream channels are classified as broadcast channels, since any information transmitted by the HU 102 over a particular downstream channel reaches all of the AIUs 104. Any of the AIUs 104 that are tuned to receive on the particular downstream channel can receive the information.
In the shared medium network 100, the upstream channels are situated in a frequency band between approximately 5 through 42 MHz. Each upstream channel is divided into successive time slots, and is therefore often referred to as a "slotted channel." A slot may be used to carry a protocol data unit including user or control information, or may be further divided into mini-slots used to carry smaller units of information. The upstream channels are classified as shared channels, since only one AIU 104 can successfully transmit in a slot or mini-slot at any given time, and therefore the upstream channels must be shared among the plurality of AIUs 104. If more than one of the AIUs 104 simultaneously transmit on a particular upstream channel, there is a collision that corrupts the information from all of the simultaneously transmitting AIUs 104. In order to allow multiple AIUs 104 to share a single upstream channel, the HU 102 and the AIUs 104 participate in a medium access control (MAC) protocol. The MAC protocol provides a set of rules and procedures for coordinating access by the AIUs 104 to the shared channel. Each AIU 104 participates in the MAC protocol on behalf of its end users. For convenience, each participant in the MAC protocol is referred to as a "MAC User."
A MAC User typically represents a connection supporting a particular end user application. Although it is not elaborated upon, a MAC User could also represent an aggregate of connections that share similar traffic characteristics. In many modern communication networks, each MAC User has specific traffic parameters and QoS requirements, which are agreed upon when the MAC User establishes a connection in the network and which are guaranteed by the network. For example, a MAC User may require a guaranteed minimum amount
of bandwidth, a guaranteed maximum transfer delay for the data it transmits, or a minimum time variation between transmission opportunities provided by the HU 102. In a cell-based network such as an Asynchronous Transfer Mode (ATM) network, a number of parameters are used to characterize the bandwidth requirements of each MAC User. Specifically, a set of ATM Traffic Descriptors is used for characterizing the type of traffic generated by the MAC User, and a set of QoS Parameters is used for specifying the network services required by the MAC User.
The ATM Traffic Descriptors include Peak Cell Rate (PCR), Sustainable Cell Rate (SCR), Minimum Cell Rate (MCR), and Maximum Burst Size (MBS). The PCR is an indication of the maximum data rate (cells per second) that will be generated by the MAC User. The SCR represents the long-term average data rate generated by the MAC User. The MCR is the minimum data rate (cells per second) required by the MAC User. The MBS is the maximum size (number of cells) of any burst generated by the MAC User.
The QoS parameters include Maximum Cell Transfer Delay (MaxCTD), Cell Delay Variation (CDV), and Cell Loss Ratio (CLR). The MaxCTD specifies the maximum delay (including the access delay and propagation delay of the underlying communications network) that will be tolerated by the MAC User. The CDV specifies the maximum time variation between data transmission opportunities that will be tolerated by the MAC User. The CLR specifies the MAC User's allowance of cells that may be dropped by the network, in terms of a ratio of lost cells to all the cells transmitted by the MAC User.
MAC Users having similar traffic characteristics are categorized into service categories. ATM defines five service categories, namely continuous bit rate (CBR), real-time variable bit rate (RT-VBR), non-real-time variable bit rate (NRT-VBR), available bit rate (ABR), and-unspecified bit rate (UBR). Each MAC User is categorized into one of the service categories.
CBR connections are characterized by traffic having a fixed bit rate and requiring real-time delivery of cells. The ATM Traffic Descriptor for the CBR service category is PCR. The QoS Parameters for the CBR service category are MaxCTD, CDV, and CLR.
RT-VBR connections are characterized by traffic having a variable bit rate and requiring real-time delivery of cells. In a typical RT-VBR connection, the traffic over the connection will have periods where cells are generated in bursts at the PCR and periods of silence where no cells are generated (voice and real- time video are good examples of RT-VBR traffic). The ATM Traffic Descriptors for the RT-VBR service category are PCR, SCR, and MBS. The QoS Parameters for the RT-VBR service category are MaxCTD, CDV, and CLR.
NRT-VBR connections are characterized by traffic having a variable bit rate (similar to RT-VBR connections), but not requiring real-time delivery of cells. NRT-VBR connections typically require a low CLR.
ABR connections are characterized by traffic requiring a minimum cell rate, but willing to accept additional bandwidth if and when such additional bandwidth becomes available. The ATM Traffic Descriptors for the ABR service category are the MCR and PCR. The MCR is the minimum guaranteed cell rate required by the connection. The PCR is the maximum cell rate at which the connection can transmit if allowed by the network. Consequently, the transmission rate of the ABR connection lies somewhere between the MCR and the PCR. No QoS Parameters are defined for the ABR service category. ABR connections are typically subject to a flow control mechanism with feedback that requires the source of the connection to adapt its rate in response to changing ATM layer transfer characteristics.
UBR connections are not guaranteed any bandwidth and have no QoS requirements. The ATM Traffic Descriptor for the UBR service category is the PCR. The PCR is the maximum cell rate at which the connection can transmit if allowed by the network.
A number of different MAC protocols have been developed for use in the shared medium network 100. These protocols can generally be categorized as contention-free protocols and contention-based protocols. Contention-free protocols, such as time-division multiple-access (TDMA) and round-robin polling, avoid collisions on the shared channel by means of various scheduling methods by authorizing only one MAC User to transmit on an upstream channel at a time. Contention-based protocols, such as certain reservation-based protocols, do not
avoid collisions but instead resolve any collisions that do occur on the shared channel.
In the preferred embodiment, the MAC protocol uses a combination of polling and contention-based reservation for scheduling upstream transmissions. Contention-based reservation requires a MAC User to make a reservation before the HU 102 will allocate bandwidth to the MAC User. The HU 102 provides reservation opportunities in the form of contention mini-slots to the MAC Users by regularly transmitting special control messages (referred to as "entry poll messages") to the AIUs 104 over the downstream channel. The MAC User makes a reservation by transmitting a reservation request message in response to a reservation opportunity provided by the HU 102. Each reservation opportunity typically authorizes multiple MAC Users to transmit in a contention mini-slot, and therefore the MAC Users must contend for a reservation. Not all MAC Users are required to make a reservation. Certain MAC Users are allocated bandwidth regularly without having to make reservations.
FIG. 2 is a block diagram 200 showing the HU 102 and the AIU 104 in greater detail. The block diagram 200 shows the HU 102 in communication with one of the AIUs 104 by means of a downstream channel 230 and an upstream channel 240. The AIU 104 supports at least one End User 110. The HU 102 transmits data and control messages to the AIU 104 by means of downstream channel 230, and receives reservation requests and data from the AIU 104 by means of upstream channel 240.
The HU 102 includes a Connection Manager (CM) 215. The CM 215 is responsible for connection admission control for the network. More specifically, the CM 215 is responsible for establishing and terminating connections in the network.
Before an End User such as the End User 110 can communicate over the network, a connection must be established. Therefore, when the End User 1 10 requests admission to the network, a connection request message is forwarded to the CM 215. The connection request message specifies the bandwidth and QoS requirements for the connection in the form of an ATM Service Category and associated ATM Traffic Descriptors and QoS Parameters. The CM 215
decides whether or not to establish the connection, and thereby admit the End User 110 to the network, based on the ability (or inability) of the network to meet the bandwidth and QoS requirements of the End User 1 10.
The HU 102 also includes a Headend Scheduler (HES) 214 that is coupled to the CM 215 and to an Adaptive Reservation Manager (ARM) 21 1. The HES 214 is responsible for scheduling transmission opportunities for those End Users that have been admitted to the network by the CM 215. When the CM 215 establishes a connection, the CM 215 sends a connection setup message to the HES 214 including a connection identifier and the ATM Service Category and associated ATM Traffic Descriptors and QoS Parameters for the established connection. Similarly, when the CM 215 terminates a connection, the CM 215 sends a connection release message to the HES 214 including a connection identifier for the terminated connection. The HES 214 uses the connection information received from the CM 215 together with feedback information received from the ARM 211 to control the timing of control messages transmitted by the ARM 211.
The ARM 211 is responsible for implementing the MAC protocol in the HU 102. The ARM 211 includes a Reservation Manager (RM) 212 and a Feedback Controller (FC) 213. The RM 212 monitors the contention mini-slots on the upstream channel 240 to determine the result of contention for each contention mini-slot. The RM 212 sends the contention results to the FC 213 and to the HES 214. The FC 213 maintains the state information for each priority class (if multiple priority classes are implemented to support differentiated quality of service), determines the assignment of contention mini-slots for each contention cycle, and formats the control messages to be transmitted on the downstream channel 230. The FC 213 bases the timing of control message transmissions on, among other things, timing information received from the HES 214.
The AIU 104 includes a User Interface (Ul) 225 for interfacing with the End User 110. Data transmitted by the End User 1 10 is received by the Ul 225 and stored in a Memory 224. The Ul 225 also stores in the Memory 224 a time stamp indicating the arrival time of the data.
The AIU 104 also includes a Control Message Processor (CMP) 222 that is coupled to the Memory 224. The CMP 222 is responsible for processing data and control messages received from the HU 102 by means of Receiver 221. The CMP 222 participates as a MAC User in the MAC protocol on behalf of the End User 110.
FIG. 3 is a block diagram showing the HES 214 architecture in accordance with a preferred embodiment of the present invention. As shown in FIG. 3, the HES 214 includes Request Queues 302. The HES 214 maintains one Request Queue for each ATM service category. When the CM 215 admits a MAC User, the CM 215 sends a request to the HES 214. The request includes a Request Specification and a Service Category. The Request Specification includes an Identifier that identifies the MAC User associated with the request and a Queue Depth that indicates the number of backlogged cells of the MAC User which are awaiting transmission opportunities. The Service Category indicates the ATM service category associated with the MAC User. The request is queued in the Request Queue corresponding to the Service Category.
When the MAC User makes a successful reservation (or if the MAC User is provided transmission opportunities without having to make a reservation), the HES 214 translates the request into a job. The job is essentially a request that requires scheduling by the HES 214. The job includes a Job Specification that includes the Request Specification from the request and also includes the QoS Requirements associated with the MAC User. The job is queued in the Job Buffers 304.
Additionally, an entry polling job is created internally by the HU 102. The entry polling job is not associated with any MAC User. The entry polling job requires transmission opportunities for supporting the contention-based reservation mechanism. For each such transmission opportunity, the HES 102 authorizes one or more MAC Users to transmit a reservation request (rather than data). These reservation opportunities are provided regularly, so each MAC User having data to transmit is able to make a reservation in a timely manner. Like the other jobs, the entry polling job is queued in the Job Buffers 304.
Each job in the Job Buffers 304 is translated into a task or a set of tasks based on the service category, bandwidth, and the QoS requirements indicated in the corresponding Job Specification. Each task corresponds to a unit of data (e.g., an ATM cell) which awaits assignment of a transmission opportunity in the upstream channel. Each task has associated with it a Task Specification that specifies a preferred transmission slot and CDV allowance associated with the task.
The problem of scheduling arises when the HES 214 must allocate transmission opportunities for a number of tasks so that each admitted MAC User can reserve and receive sufficient transmission opportunities to meet its bandwidth, delay, and jitter constraints. When many MAC Users having disparate bandwidth and QoS requirements are supported, the problem of scheduling js extremely complex.
The HES 214 schedules data transmissions by dividing the upstream channel 240 into successive data slots and assigning each data slot to a particular task. Therefore, the HES 214 includes a field in each entry poll message assigning each data slot to a particular task. For convenience, the field is referred to as the Transmission Frame 306.
The Transmission Frame 306 consists of a number of contiguous slots. Each slot in the Transmission Frame 306 corresponds to a data slot on the upstream channel 240. Each slot in the Transmission Frame 306 indicates whether the corresponding data slot is reserved for transmitting MAC User information or for entry polling. If the data slot is reserved for transmitting MAC User information, the slot in the Transmission Frame 306 further indicates which MAC User is permitted to transmit in the data slot.
As shown in FIG. 3, one way of simplifying the HES 214 is to divide the scheduling problem into two sub-problems, one dealing with the scheduling of committed bandwidth components and the other dealing with the scheduling of variable bandwidth components. A committed bandwidth component is one that requires a predetermined amount of transmission opportunities within a given period. In some cases, these transmission opportunities must be provided at regular intervals. CBR traffic is a good example of a committed bandwidth
application, since the HES must provide a steady stream of slots at the PCR within the CDV constraint, which can be met by providing slots at fixed intervals (i.e., regular transmission opportunities). A variable bandwidth component is one that has an elastic demand for transmission opportunities, and does not require a predetermined amount of transmission opportunities within a given period. UBR traffic is a good example of a variable bandwidth application, since the HES 214 does not guarantee the MAC User any bandwidth, and therefore the MAC User can be allocated bandwidth at the convenience of the HES 214 when there is excess bandwidth available. A preferred embodiment exploits the advantages of this architecture by separating each request into a committed-rate component and a variable-rate component. Some requests have only one component (i.e., committed-rate or variable-rate), while others have both components. The committed- rate components are translated into committed-rate jobs 308, while the variable-rate components are translated into variable-rate jobs 310. A committed- rate component scheduler 312 is used to schedule the committed-rate jobs 308, and a variable-rate component scheduler 314 is used to schedule the variable-rate jobs 310. Each scheduler applies a scheduling discipline that is appropriate for its respective component. A Poll Generator 316 places tasks from the committed- rate component scheduler 312 and the variable-rate component scheduler 314 into Transmission Frames 306. The committed- rate jobs are guaranteed slots within the Transmission Frames 306. The variable-rate jobs are provided any extra slots within the Transmission Frames 306 that are not assigned to committed-rate jobs. The CBR service category includes only a committed-rate component.
The CBR MAC User is continuously allocated regular transmission opportunities at the PCR until the CBR connection is terminated. The transmission opportunities are allocated within the MAC User's delay and jitter constraints. The RT-VBR service category includes only a committed-rate component. A number of alternative embodiments for scheduling RT-VBR traffic are described in United States provisional patent application number 60/055,658 entitled System, Device, And Method For Scheduling In A Communication
Network filed on August 14, 1997, incorporated herein by reference in its entirety. One embodiment, described starting at Page 11 , Line 16, treats certain RT-VBR connections as if they were CBR connections. This may be appropriate for certain RT-VBR connections, specifically those with a ratio of SCR to PCR exceeding a predetermined threshold (referred to as "CBR-like" connections), but may be inefficient for other RT-VBR connections (referred to as "bursty" connections). Two approaches are described for scheduling "bursty" RT-VBR traffic. In a first embodiment, described starting at Page 12, Line 15, the RT-VBR MAC User is allocated regular transmission opportunities at the PCR while the MAC User is active and at a zero rate while the MAC User is inactive, in a second embodiment, described starting at Page 14, Line 13, the RT-VBR MAC User is allocated regular transmission opportunities at the PCR while the MAC User is active and at a lower rate (preferably the SCR) while the MAC User is inactive. It is worth noting that, even though the bandwidth requirements for a "bursty" RT-VBR connection can vary, the "bursty" RT-VBR connection does not include a variable-rate component because the RT-VBR MAC User still requires a predetermined amount of transmission opportunities within any given period. The transmission opportunities are allocated within the MAC User's delay and jitter constraints. The NRT-VBR service category includes both a committed- rate component and a variable-rate component. The NRT-VBR MAC User is allocated transmission opportunities at the SCR (i.e., the committed- rate component) and is allocated additional transmission opportunities when the amount of data queued for transmission by the MAC User exceeds a predetermined threshold (i.e., the variable-rate component). The signaling of queue depth information by the MAC User to the HES 214 can be done, for example, by including status information along with data transmissions (often referred to as "piggy-backing"). For NRT-VBR, there are no specific delay and jitter constraints for the committed- rate component. The ABR service category includes both a committed-rate component and a variable-rate component. The ABR user is allocated transmission opportunities at the MCR (i.e., the committed-rate component) and is allocated additional
transmission opportunities if there are any transmission opportunities available after the assignments for the committed-rate jobs (i.e., the variable-rate component). For ABR, there are no specific delay and jitter constraints for the committed-rate component. The UBR service category includes only a variable-rate component. The
UBR user is allocated "leftover" transmission opportunities if there are any.
Like the user requests, the entry polling job is separated into a committed- rate component and a variable-rate component. In the preferred embodiment, the entry polling job includes both a committed-rate component for providing regular reservation opportunities and a variable-rate component for providing additional reservation opportunities. These additional reservation opportunities are optional, although they can improve MAC protocol performance during collision resolution. In an alternative embodiment, the entry polling job includes only a committed-rate component. One technique for scheduling for multi-class users with different bandwidth and QoS requirements is taught by U.S. Patent Number 5,528,513 entitled "Scheduling and Admission Control Policy for a Continuous Media Server" issued June 18, 1996 in the name of Vaitzblit et al. (hereinafter Vaitzblit). In Vaitzblit, which applies to a continuous media file server, three classes of users are supported: general-purpose, real-time, and isochronous. The general- purpose class supports preemptive tasks that are suitable for low-priority background processing. This class is, however, granted a minimum CPU processing quantum. The real-time class represents users that require guaranteed throughput and bounded delay. This class is not preemptive, but a preemption window is provided in which higher priority isochronous users may be scheduled. The isochronous class represents users that require periodic transmissions, performance guarantees for throughput, bounded latency, and low jitter._
In Vaitzblit, isochronous tasks are assigned the highest priority and are scheduled first followed by real-time and general-purpose tasks. Isochronous tasks run periodically and are invoked by a timer interrupt set for each task. After the isochronous tasks have been scheduled, the scheduler alternates between
the real-time tasks and the general-purpose tasks using a weighted round-robin scheme.
Isochronous tasks associated with users requiring different rates are further prioritized in a rate-monotonic manner; that is, a user with a higher rate has a higher priority. These tasks run periodically and are invoked by timer interrupts set for their corresponding time periods. The scheduler executes isochronous tasks from a ready queue, in which the isochronous tasks are arranged in the order of decreasing priority. An isochronous task is inserted in its appropriate place on the ready queue upon arrival at the server. Isochronous tasks arrive at the expiration of every periodic timer. A unique periodic timer exists in the system for each distinct period among all the admitted isochronous tasks. All isochronous tasks with the same period are executed when the timer associated_with the period expires.
When an isochronous task arrives at the server, the scheduler determines if a currently running task needs to be preempted. If the currently running task has a lower priority than that of the arriving task, it is preempted at the next preemption window by the incoming task from the head of the queue. The preempted task is queued to the head of the queue associated with the task, since by virtue of its being a previously running committed- rate task, it had to have the highest priority of all the tasks waiting on the queue.
The Vaitzblit approach for scheduling tasks, which correspond to data units pending transmission, suffers from its real-time, preemptive nature. Specifically, with preemption allowed, it is difficult to support bandwidth and QoS guarantees. In addition, timer management for scheduling isochronous tasks can be cumbersome if there is a large number of distinct rates, since each rate uses a separate timer.
A preferred embodiment of the present invention uses a non-preemptive scheduling technique for scheduling tasks. Specifically, the committed-rate component scheduler 312 creates a map of transmission opportunities that, when repeated at periodic intervals, provides each committed-rate job with its required bandwidth within any delay and jitter constraints. The map consists of a number of slots that are initialized based on the bandwidth and QoS
requirements of the committed-rate jobs. Once created for a given set of jobs, the map typically does not change until either a job is added, a job is deleted, or the bandwidth and/or QoS requirements for an existing job changes. By creating a map of transmission opportunities, the committed-rate jobs can be scheduled a priori, not in real-time on a frame-by-frame basis.
Typically, not all slots in the map will be used for scheduling committed- rate jobs. Those slots that are not used for scheduling committed-rate jobs are available for allocation to variable-rate jobs. The map of transmission opportunities has, by definition, a repeatable pattern of slot assignments. It is desirable to use the smallest repeatable pattern to avoid long transmission cycles. When the smallest repeatable pattern is too large to be carried in a single entry poll message, the map may be divided into smaller equal portions (referred to_as Task Frames). The Poll Generator includes one Task Frame in each Transmission Frame 306. FIG. 4 is a block diagram showing the components of the HES 214 in accordance with a preferred embodiment of the present invention. As shown in FIG. 4, the committed-rate component scheduler 312 includes a Mapper 402 and a number of Task Frames 404. The Mapper 402 translates the committed-rate jobs 308 into tasks and places the tasks into the Task Frames 404 in a manner described in detail below.
The variable-rate component scheduler 314 includes a Prioritizer 406 and a Task Queue 408. The Prioritizer 406 translates the variable-rate jobs 310 into tasks and places the tasks into the Task Queue 408. The Prioritizer 406 preferably uses a weighted round-robin scheduling discipline for prioritizing the variable-rate jobs 310. The weights used for the weighted round-robin scheduling can be a function of ATM service categories, queue depths, and other relevant characteristics of the variable-rate jobs 310, and are subject to change over time.
The Poll Generator 316 includes one Task Frame 404 in each Transmission Frame 306. The Poll Generator 316 selects a Task Frame 404 from among the number of Task Frames 404 on a strict round-robin basis. The Poll Generator 316 then fills in any empty slots in the Transmission Frame 306
with variable-rate tasks from the Task Queue 408, preferably selected on a first- come-first-served basis.
A key element of the present invention is the scheduling of the committed- rate jobs 308 into the Task Frames 404. The number of slots that comprise the map is generally a function of the set of distinct bandwidth requirements supported by the system. When the job having the lowest bandwidth requirement has a period that is an integral multiple of each other distinct period supported by the system, the lowest bandwidth job will have the longest period for a repeating pattern of slots within the map, and all other jobs will have repeatable patterns within the same period. In one embodiment, the number of Task Frames 404 that collectively constitute the repeatable pattern is determined by the job having the highest bandwidth requirement, and is preferably chosen so that every committed- rate job 308 is allocated no more than one slot per Task Frame 404. The rate R associated with each committed-rate job 308, in terms of cells per second, can be translated into a transmission period S in terms of a number of transmission slots (i.e., one cell must be transmitted every S slots, where S may not be an integer). Supposing that t is the time it takes, in seconds, to transmit a cell in a transmission slot, then the period in seconds would be S*t. In order to meet the rate R precisely, one cell must be transmitted each period.
Therefore, R*S*t = 1. It follows that the period S is derived from 1/(R*t). If 1/(R*t) is an integer, then each periodic cell transmission falls directly on a slot boundary. However, if 1/(R*t) is not an integer, then cell transmissions cannot be scheduled with a period of 1/(R*t), since each periodic cell transmission would not fall directly on a slot boundary.
One alternative is to set S equal to the "floor" of 1/(R*t) (i.e., the largest integer that is smaller than 1 /(R*t)). The consequence of this is that the transmission opportunities are scheduled more frequently than necessary to support the rate R. The implication of this rounding error is that certain cells do not carry a full payload of data and therefore have to be padded appropriately with "idle bits".
A second alternative is to set S equal to the "ceiling" of 1/(R*t) (i.e., the smallest integer that is larger than 1/(R*t)). The consequence of this is that the transmission opportunities are scheduled less frequently than required to support the rate R. The implication of this rounding error is that certain cells may be dropped if they cannot be buffered or transmitted within their delay and jitter constraints. A preferred embodiment selects S to be the "floor" of l/(R*t) if 1/(R*t) is not an integer.
In accordance with the present invention, if all the committed- rate jobs 308 have a common transmission rate R, a map of size S as determined above may be used for scheduling. In this case, each user requires a single slot in the map (i.e., each user requires one slot per period). The position of the slot assigned to a user may depend on its delay and jitter constraints. Since all of the users share the same periodicity, only one Task Frame 404 of size S is required. The above non-preemptive scheduling technique can also be used to support users having different transmission rates. Each distinct rate associated with a committed-rate job can be translated into a period in a manner as described above. Let the set of distinct rates associated with the committed-rate jobs be {R1 , R2, . . ., Rm}, and the corresponding distinct periods be {S1 , S2, . . ., Sm}. Now, let S* be defined to be the Least Common Multiple (LCM) among Si, for i = 1 , 2, . . ., m. If a Task Frame of size S* is used, it is guaranteed that the transmission pattern within the Task Frame 404 is a repeatable pattern, and also the smallest repeatable pattern.
If every distinct period is an integral divisor of the largest period, S_max, then S_max is simply the LCM among the set of distinct periods, and a Task Frame of size S_max may be used. In general, S*, the LCM among a set of distinct periods, may be considerably larger than S_max. If a Task Frame of size S* is used, it may be impossible to meet the delay constraints of some users. One preferred embodiment is to use frames of size S_min, which is the smallest of Si, for i = 1 , 2, . . ., m, such that there is still at least one assignment in each Task Frame. In this way, no user is unnecessarily delayed. When smaller frames are used, the number of Task Frames 404 in the map is K = S7S_min.
The above scheduling technique can be demonstrated by example. In the example, there are three jobs to be scheduled. Job number one has period 4. Job number two has period 8. Job number three has period 16. Using the above notation, the scheduling problem can be modeled as S_max = 16, S_min = 4, and S* = 16 (i.e., the LCM of 4, 8, and 16).
In one embodiment, shown in FIG. 5A, a single Task Frame of size S* = 16 is used. This guarantees that the transmission pattern within the Task Frame is a repeatable pattern, and also the smallest repeatable pattern. In this case, job number one is allocated four slots within the Task Frame, job number two is allocated two slots within the Task Frame, and job number three is allocated one slot within the Task Frame.
In a preferred embodiment, shown in FIG. 5B, Task Frames of size S_min = 4 are used. Because the smallest repeating pattern is S* = 16 slots, K = 4 Task Frames are needed. In this case, job number one is allocated one slot in each Task Frame, job number two is allocated one slot in every second Task Frame, and job number three is allocated one slot in every fourth Task Frame.
When scheduling the committed-rate jobs 308 into the Task Frames 404, it is more difficult to schedule those jobs that have delay and jitter constraints than to schedule those jobs that do not have delay and jitter constraints. This is because the delay and jitter constraints dictate which slots in the map can and cannot be used for a particular task (i.e., which slots fall within the delay and jitter constraints and which slots do not). Furthermore, when scheduling the committed-rate jobs 308 into the Task Frames 404, it is generally more difficult to schedule high-bandwidth jobs than to schedule low-bandwidth jobs. Therefore, as shown in FIG. 4, a preferred embodiment separates the committed- rate jobs 308 into QOS Jobs 410 (i.e., jobs having delay and jitter constraints) and NO QOS Jobs 412 (i.e., jobs having no delay and jitter constraints). The QOS Jobs 410 are prioritized according to their data rate requirements, where the highest rate job is given the highest priority. Likewise, the NO QOS Jobs 412 are prioritized according to their data rate requirements, where the highest rate job is given the highest priority. Such a rate-monotonic
queuing discipline is similar to the rate-monotonic queuing discipline for the ready queue in Vaitzblit's approach for scheduling isochronous tasks.
The committed-rate component scheduler 312 first schedules the QOS Jobs 410, beginning with the highest priority job, in such a way that each of the jobs is allocated its required bandwidth within its required delay and jitter constraints. For these jobs, the problem of allocating slots in the Task Frames 404 can be modeled as a kind of bin packing problem. As shown in FIG. 6, the plurality of Task Frames 404 can be conceptualized as a number of bins. If jitter is not permitted, then each "column" consisting of one slot from each of the Task Frames 404 is the equivalent of a bin. If jitter is permitted, then a plurality of adjacent "columns" may be the equivalent of a bin.
A one-dimensional packing algorithm is discussed in D.S. Johnson, A. Demers, J.D. Ullman, M.R. Garey, and R.L. Graham, Worst-Case Performance Bounds For Simple One-Dimensional Packing Algorithms, Society for Industrial and Applied Mathematics Journal of Computing, Vol. 3, No. 4, December 1974. A more complex bin packing problem for supporting dynamic packing is discussed in E.G. Coffman, Jr., M.R. Carey, and D.S. Johnson, Dynamic Bin Packing, Society for Industrial and Applied Mathematics Journal of Computing, Vol. 12, No. 2, May 1983. In short, the bin packing problem is typically one of packing a number of different size items into a fixed space. In general, a satisfactory result is obtained by first packing the largest items, and then filling in with smaller and smaller items. Improved results (albeit at the expense of time and complexity) can be obtained by allowing items to be removed, rearranged, and re-packed. The bin packing problem faced by the committed- rate component scheduler 312 has parallels to the dynamic bin packing problem, requiring the "packing" of a number of jobs having different bandwidth requirements into a fixed number of slots. The committed-rate component scheduler 312 typically begins packing the bins to meet the bandwidth and QoS requirements of the highest priority job, and fills in with the remaining jobs in the order of decreasing bandwidth requirements. When allocating slots within the Task Frames 404, it is preferable that the slots be distributed evenly across each column of the Task
Frames 404. If at any time the committed-rate component scheduler 312 cannot meet the delay and jitter requirements of a job using the slots that are available, the committed-rate component scheduler 312 modifies the allocation of slots. For example, the committed-rate component scheduler 312 may move an existing allocation from one slot to an acceptable neighboring slot (i.e., a slot within the delay and jitter constraints of the corresponding job) in order to free up a slot that is within the jitter constraints of the job being scheduled. In a worst- case scenario, the committed-rate component scheduler 312 must unpack, rearrange, and re-pack some or all of the jobs. The detailed formulation of the above packing problem and heuristic solutions are beyond the scope of the present invention.
Once the QOS Jobs 410 have been scheduled, the committed-rate component scheduler 312 schedules the NO QOS Jobs 412, beginning with the highest priority job, in such a way that each of the jobs is allocated its required bandwidth (delay and jitter is not an issue). Although the distribution of slots for the NO QOS Jobs 412 is less critical, it is still preferable that the NO QOS Jobs 412 be evenly distributed throughout the Task Frames 404. This provides a fairly constant number of empty slots in each Transmission Frame 306 that are available for the variable-rate jobs 310. Each Transmission Frame 306 generated by the Poll Generator 316 is transmitted to the MAC Users in an entry poll message. MAC Users having data to transmit are permitted to transmit in designated data slots. The HU 102 monitors the data slots to determine a MAC User status.
A MAC User that transmits data when provided a transmission opportunity is typically considered to be "active." A MAC User that transmits no data when provided a transmission opportunity is typically considered to be "inactive" (unless the MAC User is not required to make a reservation, in which case the MAC User remains "active"). However, additional MAC User status information may be available to the HU 102. For example, a MAC User that transmits data may include an indication whether or not it has more data to transmit (often referred to as "piggy-backing"). An indication that the MAC User has no more
data to transmit may be used to indicate an "inactive" status, even though the MAC User transmitted data.
The HES 214 typically continues providing transmission opportunities to "active" MAC Users. The HES 214 typically stops providing transmission opportunities to "inactive" MAC Users. In this latter case, the HES 214 considers the associated job to be "fulfilled," and prunes (deletes) the associated job from the Job Buffers 304. A job associated with a MAC User is considered "fulfilled" if certain idle conditions are met. The idle conditions are defined with respect to the ATM service category and QoS requirements for the job. For CBR, NRT-VBR, and ABR jobs, the job is considered "fulfilled" if and only if the corresponding connection is terminated. Otherwise, the job (or jobs) remains in the Job Buffers 304, and the MAC User continues to be allocated bandwidth.,
RT-VBR jobs may or may not require pruning, depending on the technique used for supporting RT-VBR jobs as described above. In one embodiment, RT- VBR jobs are allocated bandwidth at the PCR while "active" and at zero while "inactive." Such RT-VBR jobs may be considered "active" when the MAC User makes a successful reservation, and "inactive" when the MAC User fails to transmit data in response to a predetermined number of consecutive transmission opportunities (e.g., two). Furthermore, such RT-VBR jobs may be considered "fulfilled" when the MAC User is "inactive." In this embodiment, the RT-VBR job is dynamically added to the Job Buffers 304 when the MAC User becomes "active," and pruned from the Job Buffers 304 when the MAC user becomes "inactive." In an alternative embodiment, RT-VBR jobs are allocated bandwidth at the
PCR while "active" and at a lower (non-zero) rate while "inactive." Such RT-VBR jobs may be considered "active" at all times (as long as the connection exists). In this embodiment, the RT-VBR job remains in the Job Buffers 304 indefinitely, although the relative priority of such a RT-VBR job (based on bandwidth requirements as described above) may change each time the rate changes. Such rate changes prompt the committed-rate component scheduler 312 to update the Task Frames 404 based on the new rate information.
For UBR users, a job is considered "fulfilled" when it has no backlogged data.
Entry polling jobs must remain active at all times, and are therefore never pruned. When a job is pruned from the Job Buffers 304, it is translated back to a request and queued in the appropriate Request Queue 302. At the same time, all tasks corresponding to the job are pruned from the Task Frames 404 and/or the Task Queue 408. If the request itself is "fulfilled," for example, when the connection is terminated, then the request is pruned from the Request Queues 302.
FIG. 7 is a block diagram summarizing the relationship between requests, jobs, and tasks in accordance with a preferred embodiment of the present invention. New requests 702 from the CM 215 are queued in Request Queues 302. The requests 702 are translated into new jobs 704 and stored in Job Buffers 304. Also, an entry polling job 706 is stored in Job Buffers 304. The jobs 704 and 706 are translated into tasks 708, which are then allocated transmission opportunities. Fulfilled jobs 710 are pruned from the Job Buffers 304 and translated back into requests that are queued in Request Queues 302. Fulfilled requests 712 are pruned from the Request Queues 302. FIG. 8 is a flow diagram showing logic for scheduling transmission opportunities in accordance with the present invention. The logic begins in step 802, and proceeds to separate each of a plurality of scheduling jobs into a committed- rate component and a variable-rate component, in step 804. The committed- rate component requires a predetermined number of transmission opportunities within a given amount of time, while the variable-rate component requires an undetermined number of transmission opportunities within the given amount of time. The logic schedules the committed-rate components by creating a map of transmission opportunities that, when repeated at predetermined periodic intervals, provides each committed- rate component with its required number of transmission opportunities within its predetermined delay and jitter constraints, in step 806. The logic schedules the variable-rate components by assigning any unused transmission opportunities in the map to the variable-rate
components according to a predetermined scheme, in step 808. The logic terminates in step 899.
FIG. 9 is a flow diagram showing logic for scheduling committed- rate components in accordance with the present invention. The logic begins in step 902, and proceeds to separate the committed-rate components into committed- rate components requiring delay and jitter constraints and committed-rate components requiring no delay and jitter constraints, in step 904. The logic prioritizes the committed- rate components requiring delay and jitter constraints based on bandwidth requirements in step 906, and prioritizes the committed-rate components requiring no delay and jitter constraints based on bandwidth requirements in step 908. The logic then maps the committed-rate components requiring delay and jitter constraints into the map in order of priority in step 910, and subsequently maps the committed-rate components requiring no delay and jitter constraints into the map in order of priority in step 912. The logic terminates in step 999.
All logic described herein can be embodied using discrete components, integrated circuitry, programmable logic used in conjunction with a programmable logic device such as a Field Programmable Gate Array (FPGA) or microprocessor, or any other means including any combination thereof. Programmable logic can be fixed temporarily or permanently in a tangible medium such as a read-only memory chip, a computer memory, a disk, or other storage medium. Programmable logic can also be fixed in a computer data signal embodied in a carrier wave, allowing the programmable logic to be transmitted over an interface such as a computer bus or communication network. All such embodiments are intended to fall within the scope of the present invention.
The present invention may be embodied in other specific forms without departing from the essence or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive.