1. Technical Field
Embodiments of the present disclosure relate generally to wireless stations, and more specifically to reducing power consumption in wireless stations with limited memory.
2. Related Art
A wireless station refers to an end station of a wireless network. In one common scenario, wireless stations rely on access points as switching devices for transporting packets from one wireless station to another wireless station. Thus, wireless stations are the end points of (potentially multi-hop) communication based on wireless medium.
There are many situations in which it is desirable to reduce power consumption in wireless stations. Aspects of the present disclosure are directed to reducing power consumption in wireless stations with limited memory.
Example embodiments of the present invention will be described with reference to the accompanying drawings briefly described below.
In the drawings, like reference numbers generally indicate identical, functionally similar, and/or structurally similar elements. The drawing in which an element first appears is indicated by the leftmost digit(s) in the corresponding reference number.
1. Overview
According to an aspect of the present disclosure, a wireless station of a wireless network receives, using a receiver, data units from another wireless device in the wireless network. The wireless station stores the data units in a memory contained in the wireless station. The wireless station determines if a current storage level in the memory is greater than a first threshold, and if so, sets the receiver in power savings mode. The wireless station then consumes data units stored in the local memory until the current storage level is lower than a second threshold. The wireless station maintains the receiver in the power savings mode until the current storage level falls below the second threshold. The receiver is then placed in active mode so that the station can receive additional data units for storing in the memory.
Power consumption in the wireless station is thereby reduced. In an embodiment, the wireless station is designed to operate according to the IEEE 802.11 (WLAN) standards, and the wireless network is a WLAN network.
Several aspects of the invention are described below with reference to examples for illustration. It should be understood that numerous specific details, relationships, and methods are set forth to provide a full understanding of the invention. One skilled in the relevant arts, however, will readily recognize that the invention can be practiced without one or more of the specific details, or with other methods, etc. In other instances, well-known structures or operations are not shown in detail to avoid obscuring the features of the invention.
2. Example Environment
Internet 150 extends the connectivity of wireless stations 120 and 130 to various systems (not shown) connected to, or part of, internet 150. Internet 150 and is shown connected to access point (AP) 110 through a wired path 115. STAs 120 and 130 may access devices/systems in internet 150 via AP 110. Internet 150 may be implemented using protocols such as IP. In general, in IP environments, an IP packet is used as a basic unit of transport, with the source address being set to the IP address assigned to the source system from which the packet originates and the destination address set to the IP address of the destination system to which the packet is to be eventually delivered. The IP packet is encapsulated in the payload of layer-2 packets when being transported across WLANs.
An IP packet is said to be directed to a destination system when the destination IP address of the packet is set to the IP address of the destination system, such that the packet is eventually delivered to the destination system. When the packet contains content such as port numbers, which specifies the destination application, the packet may be said to be directed to such application as well. The destination system may be required to keep the corresponding port numbers available/open, and process the packets with the corresponding destination ports.
Each of STAs 120 and 130 represent end stations, and may be the source or destination (i.e., consumer) of data packets (data units). STAs 120 and 130 may correspond to devices such as, for example, mobile phones, personal digital assistants (PDA), laptop computers, audio/video player, etc. AP 110 represents a switching device, and forwards data packets received from one STA to the other STA. AP 110 also forwards data packets received from any of the STAs and destined for a device(s) in internet 150. AP 110 may receive data packets from internet 150 and forward the data packets to the corresponding destination STA(s). Further, AP 110 may perform various other operations consistent with IEEE 802.11 (WLAN) standards, as is well known in the relevant arts.
Block 190, shown containing AP 110 and STAs 120 and 130, represents a basic service set (BSS) of an infrastructure mode wireless network consistent with the IEEE 802.11 standard. Although only a single BSS is shown and described, other environments may include more than one BSS, with the BSSs being interconnected to form an extended service set (ESS) consistent with IEEE 802.11 standards, as is well known.
One or both of STAs 120 and 130 may execute user applications as desired. It may be desirable to reduce power consumption in wireless stations such as STA 120 and STA 130 when executing such user applications, as described next with respect to a flowchart.
In addition, some of the steps may be performed in a different sequence than that depicted below, as suited to the specific environment, as will be apparent to one skilled in the relevant arts. Many of such implementations are contemplated to be covered by several aspects of the present disclosure. The flow chart begins in step 201, in which control immediately passes to step 210.
In step 210, STA 120 receives a data unit from an external device. With respect to
In step 220, STA 120 stores the received data unit in a memory. The memory may be either local (internal) to STA 120 or external (but readily accessible) to STA 120. Control then passes to step 230.
In step 230, STA 120 determines if a current storage level in the memory is greater than a first threshold. The term “current storage level” refers to the number of memory locations (bytes, words, etc.) that ‘currently’ have valid data units (including the data units received in step 210) stored in them. If the current storage level is not greater than the first threshold, control passes to step 210, and STA 120 receives another data unit from the external device, and the corresponding steps may be repeated till the current storage level exceeds the first threshold. If the current storage level is greater than (exceeds) the first threshold, control passes to step 240.
In step 240, STA 120 sets the receiver (used to receive the data units, as in step 210) to power savings mode. As used herein, the term ‘receiver’ refers to those hardware portions of STA 120 (excluding antenna 595) that are used to receive a WLAN signal and demodulate the WLAN signal to extract data/control information in the WLAN signal. Depending on the specific implementation, the receiver may include circuitry to perform down-conversion of a WLAN RF signal, analog-to-digital conversion, sampling, baseband processing, etc, as is well known in the relevant arts. When set to power savings mode, power to some or all of the circuitry (hardware portions) of the receiver is turned OFF. In some implementations of STA 120, some of the receiver's operations (e.g., some or all baseband operations) may be performed by a processing block. In such implementations, the corresponding portion of the processing block may also be powered down, and/or the corresponding software instructions may not be executed. Control then passes to step 250.
In step 250, STA 120 consumes data units in the memory until the current storage levels falls below a second threshold. Consumption of data units refers to the processing of the data units such that the processed data units in the memory are no longer needed to be stored in the memory. For example, an audio player (e.g., of a user application) in STA 120 may retrieve data units representing the corresponding portion of the song, process and convert the data unit to an analog signal and provide the analog signal to a speaker. The processed/rendered/used data units are no longer needed in the memory, and are deemed to have been consumed (thereby making the corresponding memory locations available for storing of other data units). Control then passes to step 280.
In step 280, STA 120 sets the receiver in active mode. Active mode refers to an operating mode, in which the RF as well as baseband portions are powered ON (with clock gating to baseband removed if earlier applied), and thus enabled to receive and process WLAN signals, and extract data/information from the WLAN signals. Control then passes to step 210, and the corresponding steps of the flowchart of
It is noted here, the specific sequence of the steps described above are provided by way of illustration only. In operation, two or more of the steps may be concurrently performed in STA 120. For example, the combination of steps 210 and 220 may be executed by a first execution thread, the combination of steps 230, 240 and 280 may be executed by a second execution thread, while step 250 may be executed as a third execution thread. The first execution thread, the second execution thread and the third execution thread may be executed concurrently.
Thus, according to an aspect of the present disclosure, whether a receiver is operated in the active mode or in power savings mode is based on the amount of memory space ‘currently’ available (i.e., free) for storing data units received via the receiver. The total memory space available, and therefore the current amount of free memory, may be limited (small) at least in relation to the total volume of data units to be received, stored and consumed by STA 120. Further, STA 120 may not be able to consume the received data units at least at the rate the data units are received from memory.
Therefore, using the current storage level of the memory as a measure to control reception of data units by operating the receiver in active mode, and to stop reception of data units by operating the receiver in power savings mode, may enable reduction of power consumption in STA 120, as well as avoiding retransmission of data packets from AP 110 (based on request for such retransmission from STA 120 due to data overflow in the local memory).
As an example, and also as noted above, STA 120 may represent a mobile phone or an audio/video player, and may be used to play/render songs, video, etc. Accordingly, STA 120 may download data units representing such audio/video files via AP 110 from another device in BSS 190 or a device in internet 150. STA 120 may have limited memory to store (buffer) the data units. Further, the rate at which STA 120 consumes the data units in playing the song/video may be slower than the rate at which the data units are received from AP 110. Therefore, operating the WLAN receiver of STA 120 as described above with respect to the steps of flowchart of
The operations of the steps of the flowchart of
Battery 545 provides power for operation of STA 120, and may be connected to the various blocks shown in
Antenna 595 operates to receive from, and transmit to, a wireless medium, corresponding wireless signals according to IEEE 802.11 (WLAN) standards. Switch 590 may be controlled by processing block 510 (connection not shown) to connect antenna 595 to one of blocks 570 and 580 as desired, depending on whether transmission or reception of WLAN signals is required. Switch 590, antenna 595 and the corresponding connections of
WLAN Tx 570 receives data to be transmitted according to WLAN standards from processing block 510, generates a modulated radio frequency (RF) signal according to IEEE 802.11 standards, and transmits the RF signal via switch 590 and antenna 595. WLAN Tx 570 may contain RF and baseband circuitry for generating and transmitting WLAN signals, as well as for medium access operations. Alternatively, WLAN Tx 570 may contain only the RF circuitry, with processing block 510 performing the baseband and medium access operations (in conjunction with the RF circuitry).
WLAN Rx 580 represents a ‘receiver’ that receives an RF signal (according to IEEE 802.11/WLAN standards) bearing data and/or control information via switch 590, and antenna 595, demodulates the RF signal, and provides the extracted data or control information to processing block 510. WLAN Rx 580 may be implemented according to one of several well known approaches. Thus, for example, WLAN Rx 580 may contain RF as well as baseband processing circuitry for processing a WLAN signal. Alternatively, WLAN Rx 580 may contain only the RF circuitry, with processing block 510 performing the baseband operations in conjunction with the RF circuitry. WLAN Rx 580 may selectively be powered OFF (e.g., in power savings mode) and powered ON (e.g., in active mode) by controlling (by processing block 510, for example) corresponding circuitry, such as power switches (not shown), connecting WLAN Rx 580 to battery 545. Further, when WLAN Rx 580 includes baseband processing circuitry, such circuitry may also be selectively powered OFF (in power savings mode) and powered ON (in active mode). Alternatively, the master clock provided for operation of such baseband circuitry may be capable of being gated OFF and gated ON by corresponding circuitry.
Audio processing block 520 receives, from processing block 510, data units that have been received by STA 120 from an external device (as described above with respect to step 210 of
Non-volatile memory 550 is a non-transitory machine readable medium, and stores instructions, which when executed by processing block 510, causes STA 120 to operate as described above. In particular, the instructions enable STA 120 to operate as described with respect to the flowchart of
RAM 530 is a volatile random access memory, and may be used for storing instructions and data. RAM 535 is a volatile random access memory is used for storing data units received from an external device, and processing block 510 may retrieve and consume such data units as described with respect to the flowchart of
Processing block 510 (or processor in general) may contain multiple processing units internally, with each processing unit potentially being designed for a specific task. Alternatively, processing block 510 may contain only a single general-purpose processing unit. Processing block 510 may execute instructions stored in non-volatile memory 550 or RAM 530 to enable device 500 to operate according to several aspects of the present disclosure, described above in detail. Processing block 510 may issue control signals to selectively power-ON/power-OFF WLAN Rx 580 according to the operations noted with respect the flowchart of
When the received data units represent audio data, processing block 510 may retrieve data units stored in RAM 535, and forward the data units to audio processing block 520. A multi-processing/multi-thread environment may be implemented using non-volatile memory 550, RAM 530, and processing block 510 and corresponding software instructions, to perform the steps of the flowchart of
RAM 530 and non-volatile memory 550 (which may be implemented in the form of read-only memory/ROM/Flash) constitute computer program products or non-transitory machine (or computer) readable medium, which are means for providing instructions to processing block 510. Thus, such medium can be in the form of removable (floppy, CDs, tape, etc.) or non-removable (hard drive, etc.) medium. Processing block 510 may retrieve the instructions, and execute the instructions to provide several features of the present disclosure.
The description is continued with respect to a timing diagram illustrating the manner in which power is reduced in the receiver of STA 120, in an embodiment.
It is assumed in the following description that STA 120 has associated and authenticated with AP 110 sometime prior to time instance t40. Also, it is assumed that STA 120 has synchronized its local clock (maintained in RTC 540) with a master clock maintained in AP 110. Further, it is assumed that STA 120 has negotiated a listen interval in cooperation with AP 110, also prior to t40. The listen interval represents the maximum duration for which AP 110 can locally (within AP 110) buffer unicast data destined for STA 120.
In a typical operating scenario, once a STA has set its receiver to power savings mode, the STA powers ON the receiver at least once before the expiry of the listen interval, to ensure that unicast data destined for the STA is not lost. However, according to an aspect of the present invention, the power save mode duration and active mode duration (as well as their start and end time instances) of WLAN Rx 580 are determined based on the current storage level in RAM 535 as illustrated below.
The vertical arrows of waveform 410 represent start of beacon transmissions from AP 110. Thus, the interval t41-t42 represents a beacon interval of AP 110. In the interval t40-t43, WLAN Rx 580 is maintained in the active mode (power ON state), and receives data units (step 210) from AP 110. STA 120 stores the data units (step 220) in RAM 535. Concurrently with the receiving and storing of the data units, processing block 510 (in conjunction with audio processing block 520) consumes the data units (step 250). Thus, processing block 510 may retrieve the data units from RAM 535, and forward the data units to audio processing block 520, which may in turn process the data units suitably, as described above.
Concurrently with the operations of receiving the data units, storing the data units, and consuming the data units, processing block 510 determines (at corresponding intervals) if the current storage level in RAM 535 is greater than a first threshold.
At (or slightly earlier than) t43, WLAN Tx 570 (under control from processing block 510) transmits a NULL frame (indicated by vertical arrow of waveform 420 at t43) to AP 110, with the power management (PM) bit in the NULL frame set to a value one, indicating that STA 120 is to set WLAN Rx 580 in power savings mode. In response to receipt of the NULL frame, AP 110 commences buffering unicast data destined for STA 120.
In the interval t43-t44, AP 110 buffers data units destined for STA 120. In the interval t43-t44 STA 120 (or processing block 510 in conjunction with audio processing block 520) consumes data stored in RAM 530, until the storage level falls below a second threshold (TH2)(step 250).
At (or slightly later than t44), STA 120 sets/places WLAN Rx 580 (or receiver in general) in the active mode, and WLAN Tx 570 transmits a NULL frame (indicated by vertical arrow of waveform 420 at t44) to AP 110, with the power management (PM) bit in the NULL frame being set to a value zero, indicating that STA 120 has set WLAN Rx 580 in the active mode and that AP 110 need not buffer data destined for STA 120.
In response to receipt of the NULL frame with PM bit set to value zero, AP 110 transmits the data units (buffered in AP 110 in the interval t43-t44) to STA 120. The data units may have been received by AP 110 in the interval t43-t44 from STA 130 or from a device in internet 150.
In the interval t44-t45, STA 120 receives the data units transmitted by AP 110 via WLAN Rx 580 (now in active mode), and stores the data units in RAM 535. It is noted that STA 120 may concurrently consume the data units.
At, or slightly earlier than t45, it is assumed that the current storage level in RAM 530 again exceeds TH1. In response, STA 120 sets WLAN Rx 580 to power savings mode, and the operations illustrated in the timing diagram of
In an embodiment, a circular buffer is maintained in RAM 535 for storing received data unit. A corresponding processing thread, executed by processing block 510, determines at corresponding (frequent) intervals the current storage level of the circular buffer (step 230), and performs the steps of 240 and 280 as appropriate. A second separate processing thread may be used for performing steps 210 and 220, while a third separate processing thread may be used for performing step 250. The three processing threads may execute concurrently in a multi-thread/multi-processing environment using processing block 510 and corresponding software instructions.
It is noted that due to the setting of WLAN Rx 580 in power savings and if the t43-t44 interval is greater than the listen interval of STA 120, some data units destined for STA 120 could potentially be lost due to AP 110 discarding the data units. In such instances, STA 120 may execute higher level protocols such as TCP (transmission Control Protocol) retries to recover the lost data units.
It is also noted that STA 120 may negotiate a large value for the listen interval (e.g., of the order of several seconds) during the association with AP 110, and rely on the current storage level in RAM 535 to determine whether WLAN Rx 580 should operate in the power savings mode or active mode, each of which may typically be smaller than the listen interval.
References throughout this specification to “one embodiment”, “an embodiment”, or similar language means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, appearances of the phrases “in one embodiment”, “in an embodiment” and similar language throughout this specification may, but do not necessarily, all refer to the same embodiment.
While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example only, and not limitation. Thus, the breadth and scope of the present invention should not be limited by any of the above-described embodiments, but should be defined only in accordance with the following claims and their equivalents.
The present application is related to co-pending US application entitled, “Reducing Power Consumption in Wireless Stations Providing Network Connectivity for Embedded Devices”, serial number: unassigned, filed on even date herewith, attorney docket number: GSPN-031-US, naming as Applicants: Pankaj Vyas and Vishal Batra.