The present embodiments relate generally to communication systems, and specifically to networks that use time-division multiple access (TDMA) and have multiple-priority network traffic.
A system in which a master device is coupled to multiple slave devices may be implemented using a Time-Division Multiple Access (TDMA) protocol, such that access to the medium coupling the devices is time-multiplexed among the devices. For example, the master device receives reports from respective slave devices that specify how much traffic is queued for transmission in the respective slave devices. The master device then allocates bandwidth among the slave devices based in part on the reports. The delay between the reports and the availability of the subsequently allocated bandwidth introduces latency, which is undesirable for high-priority traffic.
The present embodiments are illustrated by way of example and are not intended to be limited by the figures of the accompanying drawings.
Like reference numerals refer to corresponding parts throughout the drawings and specification.
Embodiments are disclosed in which bandwidth is selectively allocated to an empty high-priority queue in a networked device, based at least in part on a length of time that the high-priority queue has been empty.
In some embodiments, a method of allocating bandwidth is performed in a system that includes a master device coupled to a plurality of slave devices. In the method, the status of a low-priority queue and a high-priority queue in a slave device of the plurality of slave devices is monitored. The low-priority queue stores low-priority upstream traffic and the high-priority queue stores high-priority upstream traffic. A length of time for which the high-priority queue is empty is measured and a determination is made as to whether the length of time satisfies a threshold. When the high-priority queue is empty and the length of time does not satisfy the threshold, bandwidth is reserved for the high-priority queue. When the high-priority queue is empty and the length of time satisfies the threshold, no bandwidth is reserved for the high-priority queue.
In some embodiments, a master device is to be coupled to a plurality of slave devices in a system. The master device includes a physical-layer device (PHY) to transmit signals to and receive signals from the plurality of slave devices. The received signals including reports from a respective slave device reporting the status of a low-priority queue and a high-priority queue in the respective slave device. The master device also includes a scheduler to allocate bandwidth for the high-priority queue when the high-priority queue is reported to be empty for a length of time that does not satisfy a threshold and to allocate no bandwidth for the high-priority queue when the high-priority queue is reported to be empty for a length of time that satisfies the threshold.
In some embodiments, a slave device is to be coupled to a master device in a system. The slave device includes a low-priority queue to store low-priority upstream traffic and a high-priority queue to store high-priority upstream traffic. The slave device also includes a report module to generate reports on the status of the low-priority queue and the high-priority queue for transmission to the master device. Respective reports indicate that the high-priority queue is empty when the high-priority queue has been empty for a length of time that satisfies a threshold and indicate that the high-priority queue has a non-zero queue size and thus is not empty when the high-priority queue has been empty for a length of time that does not satisfy the threshold.
In the following description, numerous specific details are set forth such as examples of specific components, circuits, and processes to provide a thorough understanding of the present disclosure. Also, in the following description and for purposes of explanation, specific nomenclature is set forth to provide a thorough understanding of the present embodiments. However, it will be apparent to one skilled in the art that these specific details may not be required to practice the present embodiments. In other instances, well-known circuits and devices are shown in block diagram form to avoid obscuring the present disclosure. The term “coupled” as used herein means connected directly to or connected through one or more intervening components or circuits. Any of the signals provided over various buses described herein may be time-multiplexed with other signals and provided over one or more common buses. Additionally, the interconnection between circuit elements or software blocks may be shown as buses or as single signal lines. Each of the buses may alternatively be a single signal line, and each of the single signal lines may alternatively be buses, and a single line or bus might represent any one or more of a myriad of physical or logical mechanisms for communication between components. The present embodiments are not to be construed as limited to specific examples described herein but rather to include within their scope all embodiments defined by the appended claims.
Access to the medium (e.g., the coax links of the cable plant 130) that couples that devices 110 and 120-1 through 120-N is time-multiplexed using a Time-Division Multiple Access (TDMA) protocol. In some embodiments, the master device 110 periodically broadcasts a medium access schedule (also referred to as a channel access schedule) to all slave devices 120-1 through 120-N. For example, the channel access schedule is periodically broadcast in a message called a beacon message or simply a beacon. The channel access schedule assigns dedicated time slots to respective slave devices 120, such that a respective slave device 120 may transmit during its dedicated time slot and not during time slots assigned to other slave devices 120. A scheduler in the master device 110 determines the amount of medium access for each slave device 120, based for example on the service level agreements (SLAs) between end users associated with respective slave devices 120 and the service provider(e.g., cable operator) who controls the master device 110. The scheduler constructs the channel access schedule based on the determined amounts of medium access for the slave devices 120.
The period between broadcasts of successive channel access schedules (e.g., the period from the beginning of a beacon message to the beginning of the next beacon message) is called a beacon period.
Each beacon period 202 further includes upstream time slots 208 and downstream time slots 210. The time slots 208 and 210 are allocated in accordance with a time-division multiple access (TDMA) protocol. Respective upstream time slots 208 are assigned to respective slave devices 120 for upstream transmissions to the master device 110. These assignments are based at least in part on the reported status of transmission queues in the slave devices 120. For example, a slave device 120 may have multiple queues (e.g., low-priority queue 316 and high-priority queue 318,
Downstream time slots 210 are allocated for downstream transmissions by the master device 110. The downstream time slots 210 may include time slots for unicast transmissions to specific slave devices 120 as well as a time slot for broadcasts to all of the slave devices 120-1 through 120-N. Because the downstream time slots 210 are allocated to the master device 110, the slave devices 120 do not transmit during the downstream time slots 210.
In some embodiments, the lengths (i.e., durations) of the time slots 204, 206, 208, and/or 210 are variable, as shown for the time slots 208-1, 208-2, and 208-M in
In each beacon period 202 (e.g., during respective upstream time slots 208), the slave devices 120-1 through 120-N report their amounts of queued upstream traffic to the master device 110 so that the master device 110 can create an appropriate channel access schedule for a subsequent (e.g., the next) beacon period 202. The amount of queued upstream traffic for a respective slave device 120 may include the amount of low-priority traffic queued for upstream transmission in the slave device 120 and the amount of high-priority traffic queued for upstream transmission in the slave device 120. The channel access schedule for the subsequent (e.g., next) beacon period 202 assigns upstream time slots 208 based on the reported amounts of queued upstream traffic. As such, the channel access schedule reflects requested upstream bandwidth from the previous beacon period 202, resulting in a minimum latency of one beacon period. (The channel access schedule may also reflect the levels of service provided for in the service level agreements.)
For high-priority traffic (e.g., voice-over-Internet-Protocol (VoIP) traffic) that is sensitive to latency and jitter, this one-beacon-period latency is particularly detrimental. To mitigate this problem, bandwidth (e.g., the smallest available unit of bandwidth) may be reserved for empty high-priority queues in slave devices 120: the channel access schedule may include bandwidth for high-priority queues in the allocation that determines the upstream time slots 208 assigned to the slave devices 120, even if the queues are reported as being empty. If a high-priority packet then arrives in a queue before an assigned time slot 208, the packet is transmitted during the assigned time slot 208 and does not have to wait for a subsequent beacon period 202. Reserving bandwidth for high-priority queues thus reduces latency for high-priority traffic. However, reserving even the smallest unit of bandwidth for unforeseen high-priority traffic may cause significant performance degradation in some implementations if the reserved bandwidth goes unused. For example, in the HomePlug AV/IEEE 1901 standard the smallest unit of bandwidth is an OFDM symbol plus its overhead, which is approximately 160 us in duration. Reservation of such a large amount of bandwidth for traffic that may not arrive is wasteful.
Accordingly, a minimum amount of bandwidth is reserved for high-priority upstream traffic from a slave device 120 even if the slave device has no pending high-priority upstream traffic, but only if the slave device 120 has not had any high-priority upstream traffic for a length of time (e.g., a number of beacon periods 202) that does not satisfy (e.g., is less than, or less than or equal to) a specified threshold. If the length of time (e.g., the number of beacon periods 202) for which the slave device 120 has not had any high-priority upstream traffic satisfies (e.g., is greater than or equal to, or greater than) the specified threshold, then no bandwidth for high-priority upstream traffic is reserved. The intelligence for implementing this selective bandwidth allocation may reside in the master device 110 or the slave device 120.
The TDMA MAC 314 of the slave device 312 includes a low-priority queue 316 to store low-priority traffic (e.g., low-priority packets) for subsequent upstream transmission to the master device 302 and a high-priority queue 318 to store high-priority traffic (e.g., high-priority packets) for subsequent upstream transmission to the master device 302. The terms low-priority and high-priority as used herein are used with respect to each other: low-priority traffic has lower priority than high-priority traffic, and vice versa. The TDMA MAC 314 also includes a report module 320 that monitors the status (e.g., the length, and thus the amount queued traffic) of the queues 316 and 318 and prepares reports 324 for transmission to the master device 302 that report the status of the queues 316 and 318. The slave device 312 transmits these reports 324 to the master device 302 during upstream time slots 208 (
The DBA scheduler 304 of the master device 302, which generates TDMA schedules 326 for transmission to slave devices 312 (e.g., during time slots 204,
The operation of the DBA scheduler 304 with respect to the zero-traffic counters 306-1 through 306-N is illustrated in
If, however, the slave device 312 reports that its high-priority queue 318 is empty and thus has a queue size of zero (404-Yes), then the scheduler 304 increments (408) the zero-traffic counter 306 by one count. A determination is then made (410) as to whether the value of the zero-traffic counter 306 satisfies (e.g., is greater than or equal to, or alternatively is greater than) a threshold. If the value does not satisfy the threshold (410-No), then the scheduler 304 allocates (412) an upstream time slot 208 (
The method 400 thus allows a predefined amount of bandwidth to be allocated for high-priority traffic for a slave device 312 even though the slave device 312 reports no pending high-priority traffic. In the case of bursty high-priority (e.g., VoIP) traffic, the slave device 312 will immediately (e.g., during its next available upstream transmission slot 208) use this bandwidth to transmit the high-priority traffic, thus minimizing latency. If the slave device 312 reports no pending high-priority traffic for a number of consecutive periods, the minimum amount of bandwidth will cease to be allocated for high-priority traffic, to avoid wasting bandwidth indefinitely. Furthermore, implementing the intelligence for this selective bandwidth allocation in the master device 302 allows this selective bandwidth allocation to be implemented without any changes to the slave devices 312, such that the method 400 is compatible with legacy slave devices 312. Also, implementing the intelligence in the master device 302 puts the system operator (e.g., the cable operator) in control of the selective allocation.
The TDMA MAC 352 includes a low-priority queue 316 and a high-priority queue 318, as described with respect to
Operation of the report module 356 and zero-traffic counter 354 is illustrated in
If, however, the high-priority queue 318 is empty (434-Yes), then the zero-traffic counter 354 is incremented (438) by one count. A determination is then made (440) as to whether the value of the zero-traffic counter 354 satisfies (e.g., is greater than or equal to, or alternatively is greater than) a threshold. If the value does not satisfy the threshold (440-No), then the report module 356 reports (442) to the master device 342 that the high-priority queue 318 has a non-zero queue size (e.g., a minimum queue size, corresponding for example to a single packet), despite the fact that the high-priority queue 318 is actually empty. If the value satisfies the threshold (440-Yes), then the report module 356 reports (444) to the master device 342 that the high-priority queue 318 is empty. The reported size of the high-priority queue 318 is thus a function of both the actual queue size and the value of the zero-traffic counter 354. The method 430 then returns to the operation 434 and repeats for successive beacon periods.
By reporting a non-zero queue size when the high-priority queue 318 is empty, the slave device 350 reserves bandwidth for bursty high-priority traffic. By only reporting this non-zero queue size when the zero-traffic counter 354 does not satisfy the threshold, the slave device 350 avoids wasting bandwidth indefinitely. Furthermore, implementing the intelligence for this selective bandwidth allocation in the slave device 350 allows the slave device 350 to selectively reserve bandwidth for only certain types of high-priority traffic, thus reducing unnecessary bandwidth reservation. For example, the zero-traffic counter 354 may operate for only to a particular type of queued high-priority traffic, such as VoIP traffic (e.g., the counter increments when no VoIP traffic is queued and is cleared when a VoIP packet is queued for transmission).
Attention is now directed to a general method 500 of selectively reserving bandwidth for an empty high-priority queue 318, as illustrated in
The status of a low-priority queue (e.g., queue 316,
A length of time is measured (506) for which the high-priority queue is empty. For example, a number of successive time periods (e.g., successive beacon periods 202,
A determination is made (508) as to whether the length of time satisfies (e.g., is greater than, or greater than or equal to) a threshold. In some embodiments, the threshold is a threshold number of time periods (e.g., beacon periods 202,
If the length of time does not satisfy the threshold (508-No), bandwidth (e.g., a predefined and/or minimum available amount of bandwidth) is reserved (510) for the high-priority queue.
For example, the master device 302 (
In another example, the slave device 350 (
If the length of time satisfies the threshold (508-Yes), no bandwidth is reserved (512) for the high-priority queue.
For example, the master device 302 (
In another example, the slave device 350 (
In some embodiments, the threshold is configurable and may be adjusted by the system operator. For example, the system operator may adjust the threshold to achieve a target latency (e.g., a target average latency) for high-priority upstream traffic. Increasing the threshold reduces average latency for high-priority traffic, at the cost of reducing through-put for low-priority traffic. Reducing the threshold increases average latency for high-priority traffic, but improves through-put for low-priority traffic. Reducing the threshold to zero effectively deactivates bandwidth reservation for empty high-priority queues 318.
In some embodiments, the method 500 further includes implementing a limit on bandwidth allocated for high-priority traffic in a slave device when both the low-priority and high-priority queues are not empty. For example, when the low-priority queue is not empty (or has a length greater than, or greater than or equal to, a specified value), the DBA scheduler 304 (
While the method 500 includes a number of operations that appear to occur in a specific order, it should be apparent that the method 500 can include more or fewer operations, which can be executed serially or in parallel. An order of two or more operations may be changed and two or more operations may be combined into a single operation. For example, all of the operations of the method 500 may be performed in an ongoing basis for successive beacon periods 202 (
In some embodiments, the TDMA MAC 308 and/or scheduler 304 (
In some embodiments, the TDMA MAC 314 (
While the memories 604 (
In the foregoing specification, the present embodiments have been described with reference to specific exemplary embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the disclosure as set forth in the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/CN2012/083690 | 10/29/2012 | WO | 00 |