Rate adaptation in wireless systems
Techniques and systems for rate adaption in wireless systems are disclosed. A disclosed technique includes generating confidence measures for a plurality of data rates based at least on a first indicator and a second indicator, the first indicator corresponding to packet loss associated with packets transmitted by a device at a first data rate that is selected from the plurality of data rates, and the second indicator corresponding to one or more signal quality values associated with one or more packets received by the device; selecting, from the plurality of data rates, a second data rate based at least on the confidence measures; and transmitting one or more additional packets at the second data rate.
Latest Marvell International Ltd. Patents:
- Systems and methods for an inductor structure having an unconventional turn-ratio in integrated circuits
- ON-CHIP PARAMETER GENERATION SYSTEM WITH AN INTEGRATED CALIBRATION CIRCUIT
- PROCESSING UNIT AND METHOD FOR COMPUTING A CONVOLUTION USING A HARDWARE-IMPLEMENTED SPIRAL ALGORITHM
- ROW ADDRESS COMPARATOR FOR A ROW REDUNDANCY CONTROL CIRCUIT IN A MEMORY
- Methods and apparatus for combining received uplink transmissions
This application is a continuation of and claims priority to U.S. patent application Ser. No. 12/983,825, filed on Jan. 3, 2011 (now U.S. Pat. No. 8,693,331), which is a continuation of and claims priority to U.S. patent Ser. No. 10/734,440, filed on Dec. 11, 2003 (now U.S. Pat. No. 7,864,678), which claims priority to U.S. Provisional Application Ser. No. 60/494,437, filed on Aug. 12, 2003.
BACKGROUNDThe data rate at which a wireless device transmits may depend on the wireless environment in which the device is transmitting. The wireless environment may be affected by such factors as interference, packet collisions, reflections, etc. A wireless device may attempt to select an optimal data rate for a given environment using a data rate selection algorithm.
In the IEEE 802.11 family of specifications, a wireless device initiates transmission at the highest possible data rate. If the wireless device receives an acknowledgement (ACK) from a receiving device, it is assumed that the wireless environment can support the highest data rate and further transmissions occur with this (highest) date rate. Otherwise the data rate is lowered in a step-wise fashion until an ACK is obtained. Such a strategy may waste bandwidth. Furthermore, this strategy can lead to successive packet failures, which may cause TCP timeouts and associated decreases in link throughput.
SUMMARYA transceiver may include a transmit section operative to transmit packets, a receive section operative to receive packets, and a rate selector operative to select a data rate for transmission. The rate selector may select the data rate based upon a received signal quality value determined by the receive section and a packet loss indicator value determined by the transmit section. The received signal quality value may be, e.g., an RSSI (Received Signal Strength Indicator) value, an SNR (signal to noise ratio) value, an SINR (signal to interference noise ratio) value, or a SQM (signal quality measure, which is the mean (geometric, arithmetic, or other) of the SNRs across all tones). The packet loss indicator value may be, e.g., a retry counter value, a bit-error update value, a packet error update value, a symbol error update value, or a CRC (Cyclic Redundancy Check) indicator value.
The rate selector may include a table including available data rates, each associated with a nominal received signal quality value. The rate selector may generate a confidence value for each available data rate using the received signal quality value and the packet loss indicator value. In an embodiment using RSSI for the signal quality value and a retry counter for the packet loss indicator value, the confidence value is obtained by solving the equation:
Confidence[j]=RSSIavg−RSSITH[j]−ΔRSSI,
where RSSITH[j] comprises a nominal received signal strength value associated with a data rate [j] in a table. The rate selector then selects a data rate associated with a positive confidence value, in an embodiment, the lowest positive confidence value.
The rate selector may include a state machine that monitors the packet loss indicator value and determines whether a current data rate causes an excessive number of failed packet transmissions or an excessive number of successful packet transmissions, and updates an adjustment value for the signal quality value accordingly.
The transceiver selector may include a power adaptor that increases a transmit power of the transmit section in response to the selected data rate falling below a minimum threshold data rate and decreases the transmit power in response to the selected data rate exceeding a maximum threshold data rate.
The rate selector may include a hardware section that progressively decreases the data rate in response to the packet loss indicator value increasing until a “successful” data rate is achieved.
The rate selector may select a data rate value directly from the packet loss indicator value in response to the received signal quality value falling below a minimum signal quality value.
The transceiver may be used in a wireless LAN system that complies with one of the IEEE 802.11 family of specifications.
The transceiver 102 may communicate with a client transceiver 106 on an uplink channel (client transmitting to transceiver) and on a downlink channel (transceiver transmitting to client). The data rates in the uplink and downlink channels depend on the characteristics of the wireless environment and may differ from each other.
In an embodiment, the transceiver 102 may use a rate adaptation scheme to optimize a data rate in communicating with the client transceivers 106. For a given data rate, throughput depends on the wireless environment, which may be affected by, e.g., interference, packet collisions, multipath fading, and implementation losses. The transceiver may select a physical (PHY) layer data rate based on the wireless channel qualities of the uplink and downlink to maximize average throughput.
In an embodiment, the signal quality measure is the RSSI (Received Signal Strength Indicator). In alternative embodiments, other signal quality measures, such as SNR (signal to noise ratio), SINR (signal to interference noise ratio), SQM (signal quality measure, which is the mean (geometric, arithmetic, or other) of the SNRs across all OFDM tones), etc., may be used.
The RSSI (or other signal quality measure) may be determined from successfully received packets, i.e., those packets received at the antenna 205 and processed by the RF (radio frequency) section 206, baseband section 208, and MAC (Media Access Control) section 210. RSSI corresponds to a drop 302 in the AGC for a successfully received packet, as shown in
The RSSI may be used to construct a nominal RSSI table which may be adapted on a per-client basis. Depending on the complexity of implementation, multiple RSSI tables can also be maintained, which may be indexed by “packet size” (e.g., 64 bytes, 1500 bytes, etc.), “wireless environment” (e.g., home, outdoors, stadium, enterprise, etc.), etc. In other words, for different applications and environments, different tables can be used.
The rate adaptation module 104 may receive a packet loss indicator from the transmit section. In an embodiment, the packet loss indicator is a retry counter value. In alternative embodiments, other packet loss indicators, such as bit-error update, packet error update, symbol error update, CRC (Cyclic Redundancy Check) indicators, etc., may be used.
Packets (e.g., A, B, C, D) may be queued in a software portion 212 of the transmit section, and copies of a packet to be sent (e.g., A(1), A(2), . . . ) may be queued in a hardware portion 214 of the transmit section. A packet may need to be resent, or “retried”, until an acknowledgment (ACK) signal signifying a successful transmission of the packet is received from the receiving client. A retry counter 216 may be incremented on each retry of a packet to be sent, and the retry counter value provided to the rate adaptation module 104.
In an embodiment, the hardware section can be designed so that successive “retried” packets (e.g., A(1), A(2), . . . ) are sent at progressively lower rates until a “successful” transmission. The retry counter 216 may be incremented on each retry of a packet to be sent, and the retry counter value provided to the rate adaptation module 104. Such a feature allows successful packet transmission, while the rate adaptation algorithm can adapt to the changing environment (on a slower time scale, depending upon the retry counter). The following table provides an exemplary relationship between data rates transmitted vs. retry counter value.
For example, let the data rate as predicted by the rate adaptation algorithm be 54 Mbps (2nd row of the table). If this packet is retried, the first transmission occurs at 54 Mbps, the next transmission occurs at 48 Mbps, the next at 36 Mbps, and so on until the packet is successfully transmitted.
The number of retries for a given packet may depend on the quality of the channel. A higher number of retries may indicate a “worse” channel, which may only support lower data rates. The transmit section may only retry the packet up to a maximum number. If the maximum retry count is achieved, the retry counter may signal a bailout (“BAIL”), in which case, the transmit section may drop the data rate for transmission to a lowest possible rate.
A rate selector 516 may use the RSSIavg value 508, the ΔRSSI value 514, and the RRSITH values in a nominal table (such as that shown in
Confidence[j]=RSSIavg−RSSITH[j]−ΔRSSI 1≦j≦54
Rate=argmin(j){RSSIavg−RSSITH[j]−ΔRSSI}+
In this example, the rate selector may select a data rate of 24 Mbps, the highest data rate with a positive confidence value. This may maximize throughput while maintaining reliable link quality.
Although
The retry processor may include a state machine, such as that shown in
The retry processor 516 may start at state 0. If the retry counter returns a retry count of zero, i.e., the packet is transmitted successfully without retry, the state machine may move to from state 0 to state −1. If the next packet is not successfully sent (i.e., R>0), the state machine may return to state 0. Alternatively, if the next packet is successfully sent without retry, the machine may move from state −1 to state −2. Successive successful transmissions without retries may move the state machine to a maximum success state 702. If the state machine reaches this state, it is assumed that the table is too pessimistic and must be adjusted. In this case, ΔRSSI may be adjusted to a value ΔRSSI−Δ1, where Δ1 is a pre-selected adjustment value.
From state 0, if the retry counter returns a value greater than zero (indicating a packet was resent), the state machine may move from state 0 to state 1. If packet is successfully sent in the next retry, the state machine may return to state 0. Alternatively, if the packet is retried again, the state machine may move to state 2. The state machine may move to progressively higher states as the same packet, or the next packet, is repeatedly retried. This may continue up until a maximum failure state 704. If the state machine reaches this state, it is assumed that the table is too optimistic and must be adjusted. In this case, ΔRSSI may be adjusted to a value of ΔRSSI+Δ2, where Δ2 is a pre-selected adjustment value.
The state machine may be modified from that shown in
The values of Δ1 and Δ2 may be programmable in software. For example, in an embodiment, the following values were used: Δ1=0.5 dB, MAX SUCCESS=3; and Δ2=1 dB, MAX FAILURE=2.
Other measures of packet loss may be used in the state machine, such as bit-error, packet error, symbol error, CRC failures, etc.
In normal operation, the adjusted RSSI (or other signal quality measure) table may be matched to the environment. Sporadic failures may occur due to additive white Gaussian noise (AWGN), phase noise, scrambler effects, collision, or interference, but typically, the conditions will require the ΔRSSI be adjusted only rarely or in both directions, thereby canceling the adjustments out. Repeated successes or failures may indicate that the RSSI table is not matched to the environment and may lead to ΔRSSI updates. However, as stated above, a change in ΔRSSI will not necessarily result in a change in data rate. Multiple ΔRSSI updates are typically required to actually change rates. The updates may merely change the confidence factors.
In an embodiment, the rate adaptation module may include a switch 520 (
In an embodiment, the rate adaptation module may include a power adaptor 522.
A number of embodiments have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. For example, blocks in the flowchart may be skipped or performed out of order and still produce desirable results. Accordingly, other embodiments are within the scope of the following claims.
Claims
1. A method comprising:
- generating confidence measures for a plurality of data rates based at least on a first indicator and a second indicator, wherein the first indicator corresponds to packet loss associated with packets transmitted by a device at a first data rate that is selected from the plurality of data rates, and the second indicator corresponds to one or more signal quality values associated with one or more packets received by the device;
- selecting, from the plurality of data rates, a second data rate based at least on the confidence measures; and
- transmitting one or more additional packets at the second data rate.
2. The method of claim 1, wherein selecting the second data rate comprises selecting as the second data rate a data rate associated with a positive confidence measure of the confidence measures.
3. The method of claim 1, wherein generating the confidence measures comprises determining an average value associated with the second indicator.
4. The method of claim 3, comprising:
- determining a calibration value associated with the first indicator, the calibration value determined to refine the average value; and
- determining a confidence measure based on the average value and the calibration value.
5. The method of claim 1, comprising:
- identifying a nominal signal quality parameter from a nominal table containing a plurality of signal quality parameters including the second indicator, each of the plurality of signal quality parameters having a different value and corresponding to a different data rate supported by a channel through which packets are transmitted or received,
- wherein selecting the second data rate is performed based on the first indicator, the second indicator, and the nominal signal quality parameter.
6. The method of claim 1, comprising:
- monitoring a number of unsuccessful packets transmitted at the second data rate; and
- adjusting, based on the monitored number, the second data rate to a third data rate at which packets are to be transmitted, the third data rate being lower than the second data rate.
7. A system comprising:
- a transceiver configured to transmit packets and receive packets; and
- circuitry communicatively coupled with the transceiver, the circuitry configured to: generate confidence measures for a plurality of data rates based at least on a first indicator and a second indicator, wherein the first indicator corresponds to packet loss associated with packets transmitted by the transceiver at a first data rate that is selected from the plurality of data rates, and the second indicator corresponds to one or more signal quality values associated with one or more packets received by the transceiver, select, from the plurality of data rates, a second data rate based at least on the confidence measures, and cause the transceiver to transmit one or more additional packets at the second data rate.
8. The system of claim 7, wherein the circuitry is configured to select as the second data rate a data rate associated with a positive confidence measure of the confidence measures.
9. The system of claim 7, wherein the circuitry is configured to determine an average value associated with the second indicator.
10. The system of claim 9, wherein the circuitry is configured to determine a calibration value associated with the first indicator, the calibration value determined to refine the average value, and determine a confidence measure based on the average value and the calibration value.
11. The system of claim 7, wherein the circuitry is configured to identify a nominal signal quality parameter from a nominal table containing a plurality of signal quality parameters including the second indicator, each of the plurality of signal quality parameters having a different value and corresponding to a different data rate supported by a channel through which packets are transmitted or received,
- wherein the second data rate is selected based at least on the first indicator, the second indicator, and the nominal signal quality parameter.
12. The system of claim 7, wherein the circuitry is configured to:
- monitor a number of unsuccessful packets transmitted at the second data rate; and
- adjust, based on the monitored number, the second data rate to a third data rate at which packets are to be transmitted, the third data rate being lower than the second data rate.
13. The system of claim 7, wherein the first indicator includes a retry counter parameter, wherein the circuitry is configured to increment the retry counter parameter in response to a packet retransmission due to an unsuccessful transmission, and wherein the second data rate is selected based at least on the retry counter parameter.
14. The system of claim 7, wherein the circuitry is configured to:
- adjust the first indicator by a first predetermined value when a number of successive successful transmissions of the one or more additional packets at the second data rate exceeds a first predetermined threshold, and
- adjust the first indicator by a second predetermined value when a number of successive unsuccessful transmissions of the one or more additional packets at the second data rate exceeds a second predetermined threshold.
15. A device comprising:
- circuitry configured to generate confidence measures for a plurality of data rates based at least on a first indicator and a second indicator, wherein the first indicator corresponds to packet loss associated with transmitted packets that are transmitted at a first data rate that is selected from the plurality of data rates, and the second indicator corresponds to one or more signal quality values associated with one or more received packets; and
- a rate selector configured to select, from the plurality of data rates, a second data rate based at least on the confidence measures, and cause a transmission of one or more additional packets at the second data rate.
16. The device of claim 15, wherein the rate selector is configured to select as the second data rate a data rate associated with a positive confidence measure of the confidence measures.
17. The device of claim 15, wherein the circuitry is configured to determine an average value associated with the second indicator.
18. The device of claim 17, wherein the circuitry is configured to determine a calibration value associated with the first indicator, the calibration value determined to refine the average value, and determine a confidence measure based on the average value and the calibration value.
19. The device of claim 15, wherein the circuitry is configured to identify a nominal signal quality parameter from a nominal table containing a plurality of signal quality parameters including the second indicator, each of the plurality of signal quality parameters having a different value and corresponding to a different data rate supported by a channel through which packets are transmitted or received,
- wherein the second data rate is selected based at least on the first indicator, the second indicator, and the nominal signal quality parameter.
20. The device of claim 15, wherein the circuitry is configured to:
- monitor a number of unsuccessful packets transmitted at the second data rate; and
- adjust, based on the monitored number, the second data rate to a third data rate at which packets are to be transmitted, the third data rate being lower than the second data rate.
21. The device of claim 15, wherein the first indicator is based on a retry counter parameter, wherein the circuitry comprises a retry processor configured to increment the retry counter parameter in response to a packet retransmission due to an unsuccessful transmission, and wherein the second data rate is selected based at least on the retry counter parameter.
22. The device of claim 15, wherein the circuitry is configured to:
- adjust the first indicator by a first predetermined value when a number of successive successful transmissions of the one or more additional packets at the second data rate exceeds a first predetermined threshold, and
- adjust the first indicator by a second predetermined value when a number of successive unsuccessful transmissions of the one or more additional packets at the second data rate exceeds a second predetermined threshold.
4989201 | January 29, 1991 | Glance |
5345599 | September 6, 1994 | Paulraj et al. |
5483676 | January 9, 1996 | Mahany et al. |
5912931 | June 15, 1999 | Matsumoto |
5959660 | September 28, 1999 | Levan |
6118565 | September 12, 2000 | Frigo |
6351499 | February 26, 2002 | Paulraj et al. |
6377636 | April 23, 2002 | Paulraj et al. |
6452981 | September 17, 2002 | Raleigh et al. |
6499008 | December 24, 2002 | Miet |
6618591 | September 9, 2003 | Kalliokulju et al. |
6633616 | October 14, 2003 | Crawford |
6643496 | November 4, 2003 | Shimoyama et al. |
6675012 | January 6, 2004 | Gray |
6687492 | February 3, 2004 | Sugar et al. |
6760882 | July 6, 2004 | Gesbert |
6775548 | August 10, 2004 | Rong et al. |
6801501 | October 5, 2004 | Knightly et al. |
6801580 | October 5, 2004 | Kadous |
6826528 | November 30, 2004 | Wu et al. |
6889050 | May 3, 2005 | Willars et al. |
6987819 | January 17, 2006 | Thomas et al. |
7032157 | April 18, 2006 | Kim et al. |
7046963 | May 16, 2006 | Luo et al. |
7075913 | July 11, 2006 | Yavuz et al. |
7164655 | January 16, 2007 | Li |
7180326 | February 20, 2007 | Komyo et al. |
7230928 | June 12, 2007 | Katz |
7302009 | November 27, 2007 | Walton et al. |
7408976 | August 5, 2008 | Narasimhan et al. |
7436757 | October 14, 2008 | Wilson |
7532563 | May 12, 2009 | Shirali et al. |
7590188 | September 15, 2009 | Giannakis et al. |
7640373 | December 29, 2009 | Cudak et al. |
7672685 | March 2, 2010 | Itoh |
7697449 | April 13, 2010 | Shirali et al. |
7864661 | January 4, 2011 | Hosur et al. |
7864678 | January 4, 2011 | Sampath et al. |
8149810 | April 3, 2012 | Narasimhan et al. |
8687510 | April 1, 2014 | Shirali |
8693331 | April 8, 2014 | Sampath et al. |
20010055276 | December 27, 2001 | Rogers et al. |
20020056066 | May 9, 2002 | Gesbert et al. |
20020141349 | October 3, 2002 | Kim et al. |
20020183010 | December 5, 2002 | Catreux et al. |
20020196842 | December 26, 2002 | Onggosanusi et al. |
20030003863 | January 2, 2003 | Thielecke et al. |
20030065712 | April 3, 2003 | Cheung et al. |
20030076787 | April 24, 2003 | Katz |
20030083088 | May 1, 2003 | Chang et al. |
20030086486 | May 8, 2003 | Graziano et al. |
20030100265 | May 29, 2003 | Wang et al. |
20030231655 | December 18, 2003 | Kelton et al. |
20040017773 | January 29, 2004 | Piche et al. |
20040017790 | January 29, 2004 | Del Prado et al. |
20040082356 | April 29, 2004 | Walton et al. |
20040153951 | August 5, 2004 | Walker et al. |
20040160922 | August 19, 2004 | Nanda et al. |
20040160979 | August 19, 2004 | Pepin et al. |
20040203456 | October 14, 2004 | Onggosanusi et al. |
20050027840 | February 3, 2005 | Theobold et al. |
20050047515 | March 3, 2005 | Walton |
20050099975 | May 12, 2005 | Catreux et al. |
20050117543 | June 2, 2005 | Heath et al. |
20050143027 | June 30, 2005 | Hiddink et al. |
20050249157 | November 10, 2005 | Qian et al. |
20050254592 | November 17, 2005 | Naguib et al. |
20110149723 | June 23, 2011 | Gong et al. |
03/001726 | January 2003 | WO |
- Catreux, et al., “Adaptive Modulation and MIMO Coding for Broadband Wireless Data Networks”, Jun. 2002, IEEE Communications Magazine, pp. 108-115.
- Foschini, et al., “On Limits of Wireless Communications in a Fading Environment when Using Multiple Antennas”, 1998, Wireless Personal Communications, pp. 311-335.
- Goldsmith, et al., “Adaptive Coded Modulation for Fading Channels”, May 1998, IEEE Transactions on Communications, vol. 46, No. 5, pp. 595-602.
- Hayes, et al., “Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) specifications”, International Standard, ISO/IEC 8802-11, ANSI/IEEE Std. 802.11, pp. i-xvi, pp. 1-512, 1999.
- Hayes, et al., “Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) specifications: High-speed Physical Layer in the 5 GHz Band”, IEEE, Supplement to IEEE Standard for Information Technology, Std. 802.11a, pp. i-viii, pp. 1-83, 1999.
- IEEE Computer Society, “Draft 802.20 Permanent Document : System Requirements for IEEE 802.20 Mobile Broadband Wireless Access Systems—Version 14”, IEEE 802.20-PD-06, Jul. 2004.
- IEEE Computer Society, “IEEE Standard for Information Technology—Draft Supplement to Standard [for] Information Technology—Telecommunications and Information Exchange Between Systems—Local and Metropolitan Area Networks—Specific Requirements—Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications: Further Higher Data Rate Extension in the 2.4 GHz Band”, IEEE P802.11g/D8.2, Apr. 2003.
- IEEE Computer Society, “IEEE Standard for Information Technology—Telecommunications and Information Exchange Between Systems—Local and Metropolitan Area Networks—Specific Requirements—Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications: Amendment 5: Spectrum and Transmit Power Management Extensions in the 5 GHz Band in Europe”, IEEE P802.11h-2003.
- IEEE Computer Society, “Part 16: Air Interface for Fixed Broadband Wireless Access Systems”, IEEE Std 802.16-2004.
- IEEE Computer Society, “Supplement to IEEE Standard for Information Technology—Telecommunications and Information Exchange Between Systems—Local and Metropolitan Area Networks—Specific Requirements—Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications: Higher-speed Physical Layer Extension in the 2.4 GHz Band”, IEEE Std 802.11b-1999.
- IEEE Computer Society, “TGn Sync Proposal Technical Specification”, IEEE Std 802.11n—First Edition, May 2005.
- Sampath, et al. U.S. Appl. No. 10/834,745, filed Apr. 28, 2004.
- Tarokh, et al., “Space-Time Block Codes from Orthogonal Designs”, Jul. 1999, IEEE Transactions on Information Theory, vol. 45, No. 5, pp. 1456-1467.
- Xin, et al., “Space-Time Constellation—Rotating Codes Maximizing Diversity and Coding Gains”, 2001, IEEE, pp. 455-459.
Type: Grant
Filed: Apr 3, 2014
Date of Patent: Feb 23, 2016
Assignee: Marvell International Ltd. (Hamilton)
Inventors: Hemanth Sampath (Sunnyvale, CA), Ravi Narasimhan (Los Altos, CA)
Primary Examiner: Chi H Pham
Assistant Examiner: Shick Hom
Application Number: 14/244,750
International Classification: H04W 28/22 (20090101);