HK1228166A1 - Queueing mechanism for client-side network traffic to reduce radio power consumption on mobile clients - Google Patents
Queueing mechanism for client-side network traffic to reduce radio power consumption on mobile clients Download PDFInfo
- Publication number
- HK1228166A1 HK1228166A1 HK17101614.5A HK17101614A HK1228166A1 HK 1228166 A1 HK1228166 A1 HK 1228166A1 HK 17101614 A HK17101614 A HK 17101614A HK 1228166 A1 HK1228166 A1 HK 1228166A1
- Authority
- HK
- Hong Kong
- Prior art keywords
- data packets
- data packet
- data
- determining
- packet
- Prior art date
Links
Abstract
Embodiments described herein relate generally to delaying the transmission of a plurality of data packets. A device may enter a packet-delay mode based on an absence of detected user activity and an idle state of a radio. In the packet-delay mode, the device may queue data packets in a buffer so that transmission of those data packets is delayed. The buffered data packets may be released and transmitted upon the occurrence of a predetermined event, such as detection of user activity, exceedance of a buffer threshold, or expiration of a countdown timer. Other embodiments may be described and claimed.
Description
Cross Reference to Related Applications
The present application claims priority TO U.S. patent application No.14/226,690 entitled "QUEEUEINGMECHANISM FOR CLIENT-SIDE NETWORK TRAFFIC TO REDUCED RADIO POWER CONSUMPTION ON MOBILE CLIENTS" filed 3, 26/2014, the entire disclosure of which is incorporated herein by reference in its entirety.
Technical Field
Embodiments of the present invention relate generally to the field of data processing, and more particularly, to devices adapted to operate in a wireless network.
Background
The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent it is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure. Unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this disclosure and are not admitted to be prior art by inclusion in this section.
Currently in mobile communications, devices are universally adapted to execute multiple applications. These applications may be, for example, end-user software (e.g., social media applications, weather applications, etc.) and/or system software (e.g., operating system software, utility software, etc.). Applications may often request data from external sources accessible over a network.
In a wireless communication system, a device may send a request using a radio of the device. Using the radio, the device may send a request to an access node, such as a base transceiver station and/or a node B. The operations associated with sending requests over a network using a radio may result in significant power consumption at the device. In particular, multiple applications that are continuously executed by a device (e.g., applications that are running in the background of the device at the same time) can be quite costly to the power source (e.g., battery) of the device.
Drawings
Embodiments of the invention are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings in which like reference numerals refer to similar elements. It should be noted that "an" or "one" embodiment of the invention in this disclosure is not necessarily referring to the same embodiment, and they mean at least one.
Fig. 1 is a block diagram illustrating an apparatus including a protocol stack for network communications, in accordance with various embodiments.
Fig. 2 is a block diagram illustrating an apparatus including a traffic shaping module to buffer a plurality of traffic packets prior to their transmission over a network, in accordance with various embodiments.
Fig. 3 is a flow diagram illustrating a method for reserving a plurality of data packets for transmission over a network based on occurrence of a predetermined event, in accordance with various embodiments.
Fig. 4 is a flow diagram illustrating a plurality of predetermined events that may cause a plurality of retained data packets to be released, in accordance with various embodiments.
Fig. 5 is a flow diagram illustrating a method for avoiding unnecessary transmission of at least one data packet, wherein a plurality of data packets are to be retained prior to transmission, in accordance with various embodiments.
Fig. 6 is a flow diagram illustrating a method for buffering a plurality of data packets for at least a predetermined amount of time before they are transmitted over a network, in accordance with various embodiments.
Fig. 7 is a block diagram of a computing device suitable for operation in a wireless communication network, in accordance with various embodiments.
Fig. 8 is a block diagram of a transmitting device according to various embodiments.
Detailed Description
In the following detailed description, reference is made to the accompanying drawings which form a part hereof wherein like numerals designate like parts throughout, and in which is shown by way of illustration embodiments which may be practiced. It is to be understood that other embodiments may be utilized and structural or logical changes may be made without departing from the scope of the present disclosure. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the embodiments is defined by the appended claims and their equivalents.
Various operations may be described as multiple discrete actions or operations in turn, in a manner that is most helpful in understanding the claimed subject matter. However, the order of description should not be construed as to imply that these operations are necessarily order dependent. In particular, these operations may not be performed in the order of presentation. The operations described may be performed in a different order than the described embodiments. Various additional operations may be performed in additional embodiments and/or the described operations may be omitted.
For the purposes of this disclosure, the phrases "a or B" and "a and/or B" mean (a), (B), or (a and B). For the purposes of this disclosure, the phrase "A, B and/or C" means (a), (B), (C), (a and B), (a and C), (B and C), or (A, B and C).
The description may use the phrases "in one embodiment" or "in an embodiment," which may each refer to one or more of the same or different embodiments. Additionally, the words "comprising," "including," "having," and the like, as used with respect to embodiments of the present disclosure, are synonymous.
As used herein, the term "module" and/or "logic" may refer to or include an Application Specific Integrated Circuit (ASIC), an electronic circuit, a processor (shared, dedicated, or group) and/or memory (shared, dedicated, or group) that execute one or more software or firmware programs, a combinational logic circuit, and/or other suitable hardware components that provide the described functionality; or may be part of the above.
Beginning first with fig. 1, fig. 1 shows a block diagram of a device 100 including a protocol stack for network communications, in accordance with various embodiments. Device 100 may operate on a wireless cell provided by an access node (not shown) and/or be adapted for Wi-Fi communication. According to an embodiment, the device 100 may be any device adapted to connect with an access node according to, for example, one or more 3GPP technical specifications. In some embodiments, device 100 may be a user equipment ("UE"), such as a handheld phone, smart phone, tablet computer, laptop computer, or other similar device equipped with a mobile broadband adapter. Thus, the device 100 may be adapted to manage one or more tasks in the environment 100, including mobility management, call control, session management, and identity management.
The device 100 may include a protocol stack comprised of a plurality of layers 105, 110, 115, 120, 130. Fig. 1 illustrates one possible stack of the device 100, and thus other stack arrangements (e.g., the open systems interconnection ("OSI") model) are contemplated herein. In the illustrated embodiment, the lowest layer is the hardware layer 130. This layer 130 features the physical interaction of hardware (e.g., radio 132). The radio 132 may include circuitry adapted to transmit and/or receive data wirelessly using radio waves. According to various embodiments, the radio 132 may be adapted to transmit data according to, for example, a second generation (2G), a third generation (3G), a fourth generation (4G), Wi-Fi, Worldwide Interoperability for Microwave Access (WiMAX), or other similar wireless protocol.
In various embodiments, each layer above the hardware layer 130 may include additional features, and only the highest layers 105, 110 are visible to end users, such as consumers and/or developers. The application layer 105 may include a plurality of applications 106 a-b. In various embodiments, the first application 106a may receive user input and/or interact with the second application 106 b. The application 106 may be, for example, a network diagnostic application and/or a data collection application. According to some embodiments, the application 106 may be adapted to generate a request for data that may need to be transmitted by a radio over a network.
The application 106 at the application layer 105 may interface with one or more components included in the application framework layer 110. The application framework layer 110 can include basic and/or support functions for the application 106, such as resource management, activity management, content provision, and so forth. Included in the application framework layer 110 may be a telephony manager 112. The telephony manager 112 can provide access to subscriber services and/or telephony services at the device 100 (e.g., management and/or configuration of one or more telephony networks to which the device 100 is adapted to connect).
Below the application framework layer 110, the protocol stack of the device 100 may include a repository layer 115. The repository layer 115 may enable the application framework layer 110 (and by extension the application layer 105) to process different types of data and may be specific to the hardware layer 130 of the device 100. According to an embodiment, radio layer interface 117 is included in repository layer 115. The radio layer interface 117 may provide abstraction between components of the layer (e.g., between the phone manager 112 and the radio 132). Thus, the radio interface layer 117 may introduce a control flow without providing voice and packet services.
Located between hardware layer 130 and the other layers 105, 110, 115 is core layer 120. Core layer 120 may manage input and/or output requests from layers 105, 110, 115 and translate these requests into instructions for radio 132, a processor (not shown), and/or other components of hardware layer 130. According to various embodiments, the core layer 120 may include an internet protocol ("IP") stack 122, a traffic shaping module 124, and a device driver 126.
The IP stack 122 may specify how data (e.g., requests from the application 106) is formatted, addressed, sent, routed, and received over the network. In one embodiment, the IP stack 122 may implement the transmission control protocol ("TCP"). IP stack 122 may packetize the data, for example, by splitting the data into packets, where the packets are addressed and routed for communication by radio 132 over the network.
The transmission of packets formed by IP stack 122 through radio 132 may be costly to the power supply (not shown) of apparatus 100. Thus, the traffic shaping module 124 may regulate traffic in a manner that reduces power consumption while still providing communication within a desired delay target. In some embodiments, traffic shaping module 124 may be adapted to retain one or more packets generated by IP stack 122. In various embodiments, traffic shaping module 124 may reserve one or more packets as queues within one or more buffers included in device 100. Thus, the traffic shaping module 124 may include or may be communicatively coupled with one or more buffers to retain data packets.
Traffic shaping module 124 may be adapted to determine information about device 100. Based on the determined information about the device 100, the traffic shaping module 124 may retain or release the data packets. In one embodiment, the traffic shaping module 124 is adapted to determine that the device 100 is in a low power state. For example, traffic shaping module 124 may determine that the radio state is idle and the device is not being used by a user, thereby determining that device 100 is in a low power state. Based on the determination, traffic shaping module 124 may retain one or more data packets generated by IP stack 122, which may conserve power at device 100.
Additionally, traffic shaping module 124 may be adapted to determine that device 100 is in a high power state. According to an embodiment, traffic shaping module 124 may determine that device 100 is in a high power state based on, for example, a display (not shown) of device 100 being in an on state, radio 132 receiving a downlink data packet, a timer for traffic shaping module 124 to retain a data packet expiring, and/or exceeding a threshold for data packets to be retained by traffic shaping module 124. Based on the determination, traffic shaping module 124 may release one or more data packets generated by IP stack 122 for transmission by radio 132.
Depending on the embodiment, traffic shaping module 124 may be implemented in device 100 as hardware, software, or a combination of both. For example, the traffic shaping module 124 may be implemented as a system on a chip ("SOC") or other similar integrated circuit. In one embodiment, the traffic shaping module 124 may be an application specific integrated circuit ("ASIC") that includes, for example, some memory and/or storage devices (not shown). In some embodiments, traffic shaping module 124 may include a plurality of instructions to be executed by a processor (not shown) of device 100.
The device driver 126 may control and/or operate one or more components of the hardware layer 130. For example, the device driver 126 may facilitate communication between the traffic shaping module 124 and the radio 132 such that one or more packets released by the traffic shaping module 124 may be transmitted by the radio 132.
Turning now to fig. 2, the block diagram of fig. 2 illustrates an apparatus 200 that includes a traffic shaping module 225, wherein the traffic shaping module 225 is configured to buffer a plurality of data packets prior to their transmission over a network, in accordance with various embodiments. Device 200 may or may not be included in device 100 of fig. 1. The device 200 comprises at least one application 205, the application 205 being adapted to generate a request 210. The request 210 may be adapted to be serviced outside of the device 200.
Based on the request 210, the TCP/IP stack 215 of the appliance 200 may generate one or more packets 220 such that the request 210 may be sent as a data packet 220 according to the TCP/IP protocol. The packet 220 is intercepted by the traffic shaping module 225, where the traffic shaping module 225 includes a buffer 235 or is communicatively coupled to the buffer 235. Traffic shaping module 225 may be adapted to retain packets 220 in buffer 235 before transmission by radio 245.
The traffic shaping module 225 may include shaping logic 226 adapted to determine how to retain the packet 220. According to an embodiment, the traffic shaping module 225 may be communicatively coupled with the display 240 and/or the radio 245 of the device 200. The traffic shaping module 225 may query the display 240 and/or the radio 245 for the respective status. In the event that the state of display 240 indicates inactivity (e.g., an off state) and/or the state of radio 245 is idle, shaping logic 226 may queue packet 230 in one or more buffers 235. Traffic shaping module 225 may prevent radio 245 from transmitting these queued packets 230 for a period of time, which may conserve resources (e.g., power) of device 200.
According to various embodiments, in the event that at least one of the display 240 and the radio 245 is determined by the traffic shaping module 225 to change to a high power state, the traffic shaping module 225 may release the queued packets 230 in the buffer 235. For example, if the traffic shaping module 225 determines that the display 240 is activated (e.g., turned on) and/or the radio 245 is connected, the traffic shaping module 225 may release the packets 230 queued in the buffer 235.
In some embodiments, traffic shaping module 225 may include auxiliary logic further adapted to determine how to retain packets 230. According to an embodiment, the buffer may be associated with a threshold (e.g., a maximum capacity). When the queued packet 230 in the buffer 235 reaches the threshold, the traffic shaping module 225 may be adapted to release the queued packet 230.
In another embodiment, the traffic shaping module 225 may include a countdown timer. The countdown timer may be coupled with shaping logic 226. Shaping logic 226 may reference a countdown timer to prevent packet 230 in buffer 235 from becoming stale. In various embodiments, the countdown timer may be started, for example, when the traffic shaping module 225 determines that the packet to be retained exists(s) state, when at least one packet is retained, or other similar circumstances. When the countdown timer expires, the queued packet 230 may be released from the buffer 235. According to some embodiments, the countdown timer is configurable. Accordingly, the apparatus 200 may receive an input from a user and/or an access node to set a duration of the countdown timer.
Packets released from buffer 235 by traffic shaping module 225 (these packets may be referred to as released packets 250) may be received by radio 245. Radio 245 may then cause transmitted packet 255 to be sent over the network.
A flow diagram illustrating a method 300 for retaining a plurality of data packets for transmission over a network based on the occurrence of a predetermined event is shown with respect to fig. 3, in accordance with various embodiments. The method 300 may be performed by the apparatus 100 shown in fig. 1. Although fig. 3 illustrates a plurality of sequential operations, a skilled artisan will appreciate that one or more operations of the method 300 may be performed out of order and/or simultaneously.
The method 300 begins at operation 305, which may include generating at least one data packet for transmission over a network based on at least one request. In embodiments, requests to be sent over a network may be packetized for transmission in accordance with TCP/IP and/or other transport protocols.
Decision block 310 may include determining whether the display is deactivated. In the event that the display is not deactivated, the method 300 may proceed to operation 335 to transmit at least one data packet over the network. Conversely, where it is determined that the display is disabled, method 300 may reach decision block 315.
Decision block 315 may include determining that the device is in a low power state. The determination may be based on a state of the display and a state of one or more components that may be included in the device performing the method 300. For example, a radio in an idle state may also indicate that the device is in a low power state. In the event that the device is not in a low power state, the method 300 may proceed to operation 335 to transmit at least one data packet over the network.
Based on the indication at decision block 315 that the device is in a low power state, the method 300 may reach operation 320. Operation 320 may comprise retaining the data packet. In various embodiments, the data packets may be queued in one or more buffers of the device.
Subsequently, decision block 325 may include determining that a predetermined event has occurred. Where decision block 325 indicates that the predetermined event has not occurred, method 300 may return to operation 305 to iterate through the enumerated operations. Thus, as shown in operation 320, a plurality of data packets may be retained without being transmitted. These data packets may be queued in one or more buffers, as described herein.
Based on the determined occurrence of the predetermined event, the method 300 may reach operation 330. Operation 330 may comprise releasing the retained data packets and, in the event that a plurality of data packets have been retained, releasing the plurality of retained data packets. Accordingly, operation 335 includes sending the released one or more data packets over the network. Based on the foregoing, one or more data packets may be retained while the device is in a low power state to conserve power at the device.
Fig. 4 illustrates a plurality of predetermined events that may cause a plurality of retained data packets to be released, in accordance with various embodiments. FIG. 4 illustrates various scenarios associated with decision block 325 of FIG. 3. Where decision block 325 indicates that a predetermined event has occurred, method 300 may iterate through the operations described herein.
According to an embodiment, the predetermined event of decision block 325 may be at least one of four situations. According to an embodiment, the predetermined event may be a user interaction. Thus, when a user interaction is detected, the predetermined event may be determined to have occurred. In various embodiments, the user interaction may be activating a display or may cause a display to be activated (so that the user interaction may be inferred). In another embodiment, the user interaction may be pressing a touch key (e.g., a touch key on a housing of the device performing method 300 (e.g., a keyboard key, a "home" key, a volume key, etc.)). In a third embodiment, the user interaction may be receiving a microphone input. For example, a microphone of the device may detect an audio signal, e.g., a voice command, corresponding to an action to be performed by the device.
According to an embodiment, the predetermined event may be a downlink packet transmission, and thus, based on receiving the downlink packet, it may be determined that the predetermined event has occurred. Receiving the downlink packet may cause the radio to transition out of the idle state (e.g., the radio may transition to a connected state to receive the downlink packet). Since the radio may no longer be in an idle state, the device may no longer be in a low power state, and power saving techniques may no longer be preferred for uplink transmission of data packets.
In various embodiments, the predetermined event may be a predetermined threshold, for example, a threshold amount of data packets or a threshold amount of buffer space. When a predetermined threshold is reached or exceeded, a predetermined event may be determined to have occurred. The predetermined threshold may be reached or exceeded, for example, when a predetermined amount of data packets is reserved or in the case that the reserved data packets have consumed a predetermined amount of buffer space.
In an embodiment, the predetermined event may be a countdown timer. Expiration of the countdown timer may indicate that a predetermined event has occurred. For example, the countdown timer may begin counting down if a data packet is retained or the device is determined to be in a low power state such that a data packet will be retained. According to some embodiments, the duration of the countdown timer is configurable, for example by user input or control information received from the access node.
The four aforementioned situations may indicate, for example, that the device performing method 300 is no longer in a low power state, that the device is no longer capable of retaining data packets, and/or that the retained data packets are at risk of becoming stale. Thus, an indication at decision block 325 that at least one of the four aforementioned situations has occurred may cause method 300 to proceed to operation 330. Thus, one or more reserved data packets may be released.
A flow diagram illustrating a method 500 for avoiding unnecessary transmission of at least one data packet is shown with respect to fig. 5, in accordance with various embodiments. Method 500 may be performed by device 100 shown in fig. 1. As shown, method 500 illustrates a number of operations that may be performed in method 300 of fig. 3. Although fig. 5 illustrates a plurality of sequential operations, a skilled artisan will appreciate that one or more operations of the method 500 may be performed out of order and/or simultaneously.
According to an embodiment, method 500 may begin at decision block 315. Where decision block 315 indicates that the device is not in a low power state, the method 500 may return to the beginning, which may include operations 305 and 310 in FIG. 3 as described herein. Based on the indication that the device is in a low power state at decision block 315, method 500 may reach decision block 505.
Decision block 505 may include determining whether the data packet is a duplicate of a retained data packet. In various embodiments, the first data packet (e.g., the most recently generated data packet) may be compared to one or more retained data packets (e.g., data packets buffered at operation 320 by a previous iteration of the method 300). If decision block 505 indicates that the first data packet is a copy of the currently retained data packet, method 500 may reach operation 520. Operation 520 comprises dropping the data packet. In one embodiment, currently retained data packets (e.g., older data packets) are discarded, such that retention and transmission of stale data packets may be avoided. In another embodiment, the first data packet (e.g., the most recently generated data packet) is discarded.
The method 500 may arrive at the next operation 510 in different ways, depending on the embodiment. In one embodiment, decision block 505 indicates that the data packet is not a duplicate and method 500 continues. In a second embodiment, decision block 505 indicates that the data packet is a duplicate — however, the currently retained data packet (e.g., the older data packet) is dropped at operation 520. In this second embodiment, the method 500 may proceed to operation 510, although the data packet is a copy of the currently retained data packet.
Operation 510 comprises adding a timestamp to the data packet. The timestamp may indicate, for example, a time at which the data packet was generated and/or retained. Subsequently, operation 320 includes retaining the data packet (e.g., in a buffer) with the timestamp. Thereafter, decision block 515 includes determining whether the timestamp of the retained data packet has expired. The determination may be based, for example, on a predetermined period of time that the data packet will be retained before the data packet is deemed to be "stale". Where decision block 515 indicates that the timestamp of the data packet has expired, the data packet is discarded at operation 520.
Method 500 may reach decision block 520 to determine whether the connection has been reset. In one embodiment, decision block 520 may make this determination based on receiving indication (e.g., message) signaling (e.g., a TCP/IP connection reset message) that the connection through which the data packet is to be sent has been reset. Where decision block 520 indicates that the connection has been reset, the method 500 may proceed to operation 520 to drop the data packet. In an embodiment, the indication at decision block 520 that the connection has been reset may cause all of the retained data packets to be dropped.
Where decision block 520 does not indicate that the connection has been reset, method 500 may proceed to decision block 325. Decision block 325 is described with respect to fig. 3, and method 300 may proceed as described. Method 500 may prevent unnecessary and/or harmful transmission of stale and/or duplicate data packets during execution of method 300.
Turning to fig. 6, fig. 6 is a flow diagram illustrating a method 600 for buffering a plurality of data packets for at least a predetermined amount of time before they are transmitted over a network, in accordance with various embodiments. Method 600 may be performed by apparatus 100 shown in fig. 1. Although fig. 6 illustrates a plurality of sequential operations, a skilled artisan will appreciate that one or more operations of the method 600 may be performed out of order and/or simultaneously.
The method 600 begins at operation 605, which may include receiving a value of a countdown timer. Depending on the embodiment, the countdown timer value may be received in different ways. In one embodiment, a countdown timer value may be received as input from a user. In another embodiment, a countdown timer value may be received from, for example, an access node adapted to provide a wireless cell. The countdown timer may be set to the received value. Thus, the countdown timer may be configured for different situations, e.g., situations where a packet may become outdated at various times.
Decision block 610 may include determining that the device is in a packet delay mode. The determination may be based on the state of one or more components that may be included in the device performing the method 600. For example, where the display is deactivated and the radio is in an idle state, then the device may be in a packet delay mode. In another embodiment, the device may be in a "sleep" mode or other low power mode during times that may be unfavorable for transmitting data packets. In the event that the device is not in the packet delay mode, the method 600 may proceed to operation 630 to release the buffered data packets for transmission over the network.
Based on the indication at decision block 610 that the device is in packet delay mode, the method 600 may reach operation 615. Operation 615 may include starting a countdown timer such that the countdown timer runs for the configured duration. Since decision block 610 indicates that the device is in packet delay mode, operation 620 includes buffering the plurality of data packets. In various embodiments, a plurality of data packets may be generated by one or more applications and queued in one or more buffers to delay transmission of the plurality of data packets.
Subsequently, decision block 625 may include determining that the countdown timer has expired. Where decision block 625 indicates that the countdown timer has not expired, the method 600 may remain at operation 620 to buffer the plurality of data packets. However, where decision block 625 indicates that the countdown timer has expired, the method 600 may proceed to operation 630. Operation 630 may comprise releasing the plurality of buffered data packets for transmission over the network. Based on the foregoing, when a device is in a packet delay mode, one or more data packets may be buffered to conserve power at the device while regulating by transmitting data packets in a timely manner.
Referring now to fig. 7, a block diagram of an exemplary computing device 700 is shown, in accordance with various embodiments. The device 100 of fig. 1 and described herein may be implemented on a computing device, such as computing device 700. Additionally, computing device 700 may be adapted to perform one or more operations of method 300 described with respect to fig. 3, method 500 described with respect to fig. 5, and/or method 600 described with respect to fig. 6. Computing device 700 may include a number of components, one or more processors 704, and at least one communication chip 706. Depending on the embodiment, one or more enumerated components may comprise "circuitry" of computing device 700, such as computing circuitry, communication circuitry, and so forth. In various embodiments, one or more processors 704 may each be a processor core. In various embodiments, at least one communication chip 706 may be physically or electrically coupled with one or more processors 704. In yet another embodiment, the communication chip 706 may be part of the one or more processors 704. In various embodiments, the computing device 700 may be a Printed Circuit Board (PCB) 702. For these embodiments, one or more processors 704 and communication chips 706 may be disposed on the PCB 702. In alternative embodiments, the various components may be coupled without the use of the PCB 702.
Depending on the application of the computing device 700, the computing device 700 may include other components that may or may not be physically or communicatively coupled to the PCB 702. These other components may include, but are not limited to, volatile memory (e.g., dynamic random access memory 708, also referred to as "DRAM"), non-volatile memory (e.g., read only memory 710, also referred to as "ROM"), flash memory 712, input/output controller 714, digital signal processor (not shown), crypto processor (not shown), graphics processor 716, one or more antennas 718, a display (not shown), touch screen display 720, touch screen controller 722, battery 724, audio codec (not shown), video codec (not shown), Global Navigation Satellite System (GNSS)728, compass 730, accelerometer (not shown), gyroscope (not shown), speaker 732, camera 734, one or more sensors 736 (e.g., barometer, geiger counter, thermometer, viscometer, etc.), Rheometers, altimeters, or other sensors that may be found in various manufacturing environments or used in other applications), mass storage devices (e.g., hard disk drives, solid state drives, optical disks and drives, digital versatile disks and drives, etc.) (not shown), and so forth. In various embodiments, one or more processors 704 may be integrated with other components on the same die to form a system on a chip ("SoC").
In various embodiments, volatile memory (e.g., DRAM 708), non-volatile memory (e.g., ROM 710), flash memory 712, and mass storage (not shown) may include programming instructions that are configured to, in response to execution by the one or more processors 704, enable the computing device 700 to practice all or selected aspects of the methods and data exchanges described herein, depending on the embodiment of the computing device 700 in which the data exchanges and methods are implemented. More specifically, one or more processor components (e.g., DRAM 708, ROM710, flash memory 712, and mass storage devices) may include temporary and/or permanent copies of instructions that, when executed by one or more processors 704, enable computing device 700 to operate one or more modules 738 that are configured to practice all or selected aspects of the methods and data exchanges described herein, depending on the embodiment of computing device 700 in which such data exchanges and methods are implemented.
The communication chip 706 may enable wired and/or wireless communication for transferring data to and from the computing device 700. The term "wireless" and its derivatives may be used to describe circuits, devices, systems, methods, techniques, communications channels, etc., that may communicate data through the use of modulated electromagnetic radiation through a non-solid medium. The term does not imply that the associated devices do not contain any wires, although in some embodiments they may not. The communication chip 706 may implement any of a variety of wireless standards or protocols, including but not limited to: long term evolution ("LTE"), long term evolution advanced ("LTE-a"), institute of electrical and electronics engineers ("IEEE") 702.20, general packet radio service ("GPRS"), evolution-data optimized ("Ev-DO"), evolved high speed packet access ("HSPA +"), evolved high speed downlink packet access ("HSDPA +"), evolved high speed uplink packet access ("HSUPA +"), global system for mobile communications ("GSM"), enhanced data rates for GSM evolution ("EDGE"), code division multiple access ("CDMA"), time division multiple access ("TDMA"), digital enhanced wireless communications ("DECT"), bluetooth, derivatives thereof, and other wireless protocols designated as 3G, 4G, 5G, and higher. The computing device 700 may include a plurality of communication chips 706 adapted to perform different communication functions. For example, a first communication chip 706 may be dedicated for shorter range wireless communications, e.g., Wi-Fi and Bluetooth, while a second communication chip 706 may be dedicated for longer range wireless communications, e.g., GPS, EDGE, GPRS, CDMA, WiMAX, LTE-A, Ev-DO, and so on.
In various embodiments, computing device 700 also includes crystal oscillator 740. The crystal oscillator 740 may be communicatively coupled with the communication chip(s) 706 and/or other communication circuitry. Crystal oscillators may use mechanical resonance (e.g., of piezoelectric material) of an oscillating crystal to generate electrical signals with very precise frequencies. Thus, crystal oscillator 740 may be used to generate signals transmitted by the UE.
In various implementations, the computing device 700 may be a laptop computer, a netbook, a notebook computer, an ultrabook computer, a smartphone, a computing tablet, a personal digital assistant ("PDA"), an ultra mobile personal computer, a mobile phone, a desktop computer, a server, a printer, a scanner, a monitor, a set-top box, an entertainment control unit (e.g., a game controller), a digital camera, a portable digital media player, a digital video recorder, and so forth. In other embodiments, computing device 700 may be another electronic device that processes data.
Fig. 8 illustrates a device 800 according to some embodiments. The device 800 may be similar to the device 100 of fig. 1, or substantially interchangeable with the device 100 of fig. 1. The device 800 may include transmitter circuitry 804, processing circuitry 808, communication circuitry 812, and one or more antennas 816 coupled to each other at least as shown.
Briefly, the communication circuitry 812 may be coupled with an antenna to facilitate over-the-air communication of signals to/from the device 800. The operation of the communication circuit 812 may include, but is not limited to: filtering, amplifying, storing, modulating, demodulating, transforming, and the like.
The transmitter circuitry 804 may be coupled with the communication circuitry 812 and may be configured to provide signals to the communication circuitry 812 for transmission by the antenna 816. In various embodiments, the transmitter circuit 804 may be configured to provide various signal processing operations on the signal to provide the signal to a communication circuit having appropriate characteristics.
The processing circuitry 808 may be coupled with the communication circuitry 812 and may be configured to receive signals from the communication circuitry 812 for transmission by the communication circuitry 812. In some embodiments, the processing circuitry 808 may be adapted to generate a signal. Further, the processing circuitry 808 may be adapted to scramble, multiplex, and/or modulate the various signals prior to transmission by the communication circuitry 812.
Some or all of the communication circuitry 812, transmitter circuitry 804, and/or processing circuitry 808 may be included in, for example, a communication chip and/or communicatively coupled with a printed circuit board as described with respect to fig. 7.
In various embodiments, example 1 may be an apparatus to be included in a UE, the apparatus comprising: processing circuitry to: determining that a display of the UE is in a deactivated state; determining that the UE is in a low power state based on determining that the display is in the deactivated state; based on determining that the UE is in the low-power state, reserving a plurality of data packets for upload transmission over the network; detecting an occurrence of a predetermined event; and based on detecting the occurrence of the predetermined event, releasing the plurality of data packets; and radio circuitry, communicatively coupled with the processing circuitry, to transmit the released plurality of data packets over a network. Example 2 may include the apparatus of example 1, wherein the processing circuitry is to determine that radio circuitry of the UE is in an idle state; and determining that the UE is in the low power state based on determining that the radio circuitry is in the idle state. Example 3 may include the apparatus of example 1, wherein the processing circuitry is to generate the plurality of data packets based on at least one request from an application associated with the UE. Example 4 includes the apparatus of example 1, wherein the processing circuitry is to reserve the plurality of data packets as a queue in a buffer. Example 5 may include the apparatus of any one of examples 1-4, wherein the predetermined event is activation of a display of the UE, reception of a downlink data packet by the UE, expiration of a timer associated with retaining the plurality of data packets, or exceeding a predetermined threshold associated with a buffer for storing the plurality of data packets. Example 6 may include the apparatus of any one of examples 1-4, further comprising: a timer associated with retaining the plurality of data packets, the timer being set with a value provided as an input to the UE, wherein the predetermined event is an expiration of the timer. Example 7 may include the apparatus of any one of examples 1-4, wherein the processing circuitry is further to: applying a timestamp to each of the plurality of data packets; comparing the respective timestamp of each data packet to a predetermined time value; and discarding the respective data packet based on a comparison of the respective timestamp to the predetermined time value. Example 8 may include the apparatus of any one of examples 1-4, wherein the processing circuitry is further to: comparing a first data packet of the plurality of data packets with a second data packet to detect duplicate data packets; and discarding the second data packet based on a result of the comparison of the first data packet and the second data packet. Example 9 may include the apparatus of any one of examples 1-4, wherein the processing circuitry is further to detect a reset of the connection associated with the UE, and to discard the plurality of data packets in response to detecting the reset of the connection.
In various embodiments, example 10 may be an apparatus to be included in a user equipment ("UE"), the apparatus comprising: a traffic shaping module comprising shaping logic to: determining that radio circuitry of the UE is in an idle state; queuing the plurality of data packets for transmission over the network based on determining that the radio circuit is in an idle state; releasing the plurality of data packets based on a predetermined event associated with the UE; and a buffer communicatively coupled with the traffic shaping module for queuing the plurality of data packets. Example 11 may include the apparatus of example 10, wherein the traffic shaping module logic is to release the plurality of data packets from the buffer. Example 12 may include the apparatus of example 10, wherein the traffic shaping module logic is further to detect no interaction with the UE, and further to queue the plurality of data packets based on detecting no interaction with the UE. Example 13 may include the apparatus of example 12, wherein the traffic shaping module logic is to detect no interaction with the UE based on: an off state of a display of the device, no input at a microphone associated with the UE, no touch input received by the UE, or no output from a speaker associated with the UE. Example 14 may include the apparatus of any one of examples 10-12, wherein the plurality of data packets are generated at a transmission control protocol ("TCP/IP") stack of an internet protocol of the UE based on one or more requests from an application layer of the UE before the traffic shaping module logic queues the plurality of data packets. Example 15 may include the apparatus of any one of examples 10-12, wherein the predetermined event is based on: a status of a display of the UE, a status of a radio of the UE, a timer of the UE associated with the queuing, and a threshold associated with a buffer for storing the plurality of data packets. Example 16 may include the apparatus of example 15, wherein a duration of a timer associated with the queuing is configurable. Example 17 may include the apparatus of any one of examples 10-12, wherein the traffic shaping module logic is further to associate a timestamp with a first data packet of the plurality of data packets, and discard the first data packet based on the timestamp associated with the first data packet. Example 18 may include the apparatus of any one of examples 10-12, wherein the traffic shaping module logic is further to discard a first data packet that is duplicated with an existing data packet of the plurality of data packets such that duplicated data is not sent by the communication circuitry. Example 19 may include the apparatus of any one of examples 10-12, wherein the traffic shaping module logic is further to detect a change in a connection used to transmit the data packet, and in response to detecting the change in the connection, drop the plurality of data packets.
In various embodiments, example 20 may be a method performed in a user equipment ("UE"), the method comprising: determining that the UE is in a packet delay mode; buffering a plurality of data packets prepared for transmission over the network for at least a predetermined period of time based on determining that the UE is in a packet delay mode; and based on the expiration of the predetermined time period, releasing the plurality of buffered data packets for transmission over the network. Example 21 may include the method of example 20, further comprising packetizing the data into a plurality of data packets for transmission over a network. Example 21 may include the method of example 20, wherein determining that the UE is in the packet delay mode comprises: determining that a display of the UE is off; and determining that a radio of the UE is in an idle state. Example 23 may include the method of any one of examples 20-22, further comprising: receiving a value for a predetermined time period; and setting a countdown timer to the received value, wherein expiration of the countdown timer indicates expiration of the predetermined time period. Example 24 may include the method of any one of examples 20-22, further comprising: detecting a change in a connection used to transmit a data packet; and in response to detecting the change in connection, discarding the plurality of data packets. Example 25 may include the method of any one of examples 20-22, further comprising: associating a timestamp with a first data packet of the plurality of data packets; the first data packet is discarded in the event that a timestamp associated with the first data packet exceeds a predetermined time threshold.
In various embodiments, example 26 may be a non-transitory computing device-readable medium comprising computing device-executable instructions, wherein the instructions, in response to execution by a computing device, cause the computing device to: determining that a display of the UE is in a deactivated state; determining that the UE is in a low power state based on determining that the display is in the deactivated state; based on determining that the UE is in the low-power state, reserving a plurality of data packets for upload transmission over the network; detecting an occurrence of a predetermined event; and based on detecting the occurrence of the predetermined event, releasing the plurality of data packets; and transmitting the released plurality of data packets over the network. Example 27 may include the non-transitory computing device-readable medium of example 26, wherein the instructions further cause the computing device to: determining that radio circuitry of the UE is in an idle state; and determining that the UE is in the low power state based on determining that the radio circuitry is in the idle state. Example 28 may include the non-transitory computing device-readable medium of example 26, wherein the instructions further cause the computing device to generate the plurality of data packets based on at least one request from an application associated with the UE. Example 29 includes the non-transitory computing device-readable medium of example 26, wherein the instructions further cause the computing device to reserve the plurality of data packets as a queue in a buffer. Example 30 may include the non-transitory computing device-readable medium of example 26, wherein the predetermined event is activation of a display of the UE, receipt of a downlink data packet by the UE, expiration of a timer associated with retaining the plurality of data packets, or exceeding a predetermined threshold associated with a buffer for storing the plurality of data packets. Example 31 may include the non-transitory computing device-readable medium of example 30, wherein the instructions further cause the computing device to initiate a countdown of a timer associated with reserving the plurality of data packets, the timer being set with a value provided as an input to the UE. Example 32 may include the non-transitory computing device-readable medium of any of examples 26-30, wherein the instructions further cause the computing device to: applying a timestamp to each of the plurality of data packets; comparing the respective timestamp of each data packet to a predetermined time value; and discarding the respective data packet based on a comparison of the respective timestamp to the predetermined time value. Example 33 may include the non-transitory computing device-readable medium of any of examples 26-30, wherein the instructions further cause the computing device to: comparing a first data packet of the plurality of data packets with a second data packet to detect duplicate data packets; and discarding the second data packet based on a result of the comparison of the first data packet and the second data packet. Example 34 may include the non-transitory computing device-readable medium of any of examples 26-30, wherein the instructions further cause the computing device to detect a reset of the connection associated with the UE, and in response to detecting the reset of the connection, discard the plurality of data packets.
In various embodiments, example 35 may include an apparatus to be included in a user equipment ("UE"), the apparatus comprising: means for determining that radio circuitry of the UE is in an idle state; means for queuing a plurality of data packets for transmission over a network based on determining that the radio circuit is in an idle state; and means for releasing the plurality of data packets based on a predetermined event associated with the UE. Example 36 may include the apparatus of example 35, wherein the queuing means is further to detect that there is no interaction with the UE, and further to queue the plurality of data packets based on detecting that there is no interaction with the UE. Example 37 may include the apparatus of example 36, wherein the queuing means is to detect the absence of interaction with the UE based on: an off state of a display of the device, no input at a microphone associated with the UE, no touch input received by the UE, or no output from a speaker associated with the UE. Example 38 may include the apparatus of any one of examples 35-36, further comprising: means for generating a plurality of data packets at a transmission control protocol ("TCP/IP") stack of an Internet protocol of the UE based on one or more requests from an application layer of the UE before the traffic shaping module logic queues the plurality of data packets. Example 39 may include the apparatus of any one of examples 35-36, wherein the predetermined event is based on: a status of a display of the UE, a status of a radio of the UE, a timer of the UE associated with the queuing, and a threshold associated with a buffer for storing the plurality of data packets. Example 40 may include the apparatus of example 39, wherein a duration of a timer associated with the queuing is configurable.
Some of the foregoing detailed description has been presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of operations leading to a desired result. The operations are those requiring physical manipulations of physical quantities.
It should be borne in mind, however, that all of these and similar aspects are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the above discussion, it is appreciated that throughout the description, discussions utilizing aspects such as those set forth in the appended claims, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
Embodiments of the present invention also relate to an apparatus for performing the operations herein. Such a computer program is stored in a non-transitory computer readable medium. A machine-readable medium includes any mechanism for storing data in a form readable by a machine (e.g., a computer). For example, a machine-readable (e.g., computer-readable) medium includes a machine (e.g., computer) readable storage medium (e.g., read only memory ("ROM"), random access memory ("RAM"), magnetic disk storage media, optical storage media, flash memory devices).
The processes or methods described in the foregoing figures may be performed by processing logic that comprises hardware (e.g., circuitry, dedicated logic, etc.), software (e.g., embodied on a non-transitory computer readable medium), or a combination of both. Although the above processes or methods are described in terms of some sequential operations, it should be appreciated that some of the operations described may be performed in a different order. Further, some operations may be performed in parallel rather than sequentially.
Embodiments of the present invention are not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of embodiments of the invention as described herein.
In the foregoing specification, embodiments of the invention have been described with reference to specific exemplary embodiments thereof. It will be evident that various modifications may be made thereto without departing from the broader spirit and scope of the invention as set forth in the following claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense.
Claims (25)
1. An apparatus to be included in a user equipment ("UE"), the apparatus comprising:
processing circuitry to:
determining that a display of the UE is in a deactivated state;
determining that the UE is in a low power state based on determining that the display is in a deactivated state;
based on determining that the UE is in a low-power state, reserving a plurality of data packets for upload transmission over a network;
detecting an occurrence of a predetermined event; and
releasing the plurality of data packets based on detecting the occurrence of the predetermined event; and
radio circuitry, communicatively coupled with the processing circuitry, to transmit the released plurality of data packets over the network.
2. The apparatus of claim 1, wherein the processing circuitry is to:
determining that radio circuitry of the UE is in an idle state; and
determining that the UE is in a low power state based on determining that the radio circuitry is in an idle state.
3. The apparatus of claim 1, wherein the processing circuitry is to generate the plurality of data packets based on at least one request from an application associated with the UE.
4. The apparatus of claim 1, wherein the processing circuitry is to retain the plurality of data packets as a queue in a buffer.
5. The apparatus of any of claims 1-4, wherein the predetermined event is activation of a display of the UE, reception of a downlink data packet by the UE, expiration of a timer associated with retaining the plurality of data packets, or exceeding a predetermined threshold associated with a buffer for storing the plurality of data packets.
6. The apparatus of any of claims 1-4, further comprising:
a timer associated with retaining the plurality of data packets, the timer being set with a value provided as an input to the UE,
wherein the predetermined event is an expiration of the timer.
7. The apparatus of any of claims 1-4, wherein the processing circuitry is further to:
applying a timestamp to each of the plurality of data packets;
comparing the respective timestamp of each data packet to a predetermined time value; and
discarding the respective data packet based on a result of the comparison of the respective timestamp to the predetermined time value.
8. The apparatus of any of claims 1-4, wherein the processing circuitry is further to:
comparing a first data packet of the plurality of data packets with a second data packet to detect duplicate data packets; and
discarding the second data packet based on a result of the comparison of the first data packet and the second data packet.
9. The apparatus of any of claims 1-4, wherein the processing circuitry is further to detect a reset of a connection associated with the UE, and to discard the plurality of data packets in response to detecting the reset of the connection.
10. An apparatus to be included in a user equipment ("UE"), the apparatus comprising:
a traffic shaping module comprising shaping logic to:
determining that radio circuitry of the UE is in an idle state;
queuing a plurality of data packets for transmission over a network based on determining that the radio circuit is in an idle state;
releasing the plurality of data packets based on a predetermined event associated with the UE; and
a buffer communicatively coupled with the traffic shaping module to queue the plurality of data packets.
11. The apparatus of claim 10, wherein the traffic shaping module logic is to release the plurality of data packets from the buffer.
12. The apparatus of claim 10, wherein the traffic shaping module logic is further to detect no interaction with the UE and to queue the plurality of data packets further based on detecting no interaction with the UE.
13. The apparatus of claim 12, wherein the traffic shaping module logic is to detect no interaction with the UE based on: an off state of a display of the device, no input at a microphone associated with the UE, no touch input received by the UE, or no output from a speaker associated with the UE.
14. The apparatus of any of claims 10-12, wherein the plurality of data packets are generated at a transmission control protocol ("TCP/IP") stack of an internet protocol of the UE based on one or more requests from an application layer of the UE prior to the traffic shaping module logic queuing the plurality of data packets.
15. The apparatus of any of claims 10-12, wherein the predetermined event is based on: a status of a display of the UE, a status of a radio of the UE, a timer of the UE associated with the queuing, and a threshold associated with a buffer for storing the plurality of data packets.
16. The apparatus of claim 15, wherein a duration of a timer associated with the queuing is configurable.
17. The apparatus of claims 10-12, wherein the traffic shaping module logic is further to associate a timestamp with a first data packet of the plurality of data packets and discard the first data packet based on the timestamp associated with the first data packet.
18. The apparatus of claims 10-12, wherein the traffic shaping module logic is further to discard a first data packet that is duplicate with an existing data packet of the plurality of data packets such that duplicate data is not sent by the communication circuitry.
19. The apparatus of claims 10-12, wherein the traffic shaping module logic is further to detect a change in a connection used to transmit the data packet, and to drop the plurality of data packets in response to detecting the change in the connection.
20. A method performed in a user equipment ("UE"), the method comprising:
determining that the UE is in a packet delay mode;
buffering a plurality of data packets prepared for transmission over a network for at least a predetermined period of time based on determining that the UE is in a packet delay mode; and
releasing the plurality of buffered data packets for transmission over the network based on expiration of the predetermined time period.
21. The method of claim 20, further comprising:
packetizing data into the plurality of data packets for transmission over the network.
22. The method of claim 20, wherein determining that the UE is in a packet delay mode comprises:
determining that a display of the UE is off; and
determining that a radio of the UE is in an idle state.
23. The method of any of claims 20-22, further comprising:
receiving a value for the predetermined time period; and
setting a countdown timer to the received value, wherein expiration of the countdown timer indicates expiration of the predetermined time period.
24. The method of any of claims 20-22, further comprising:
detecting a change in a connection used to transmit the data packet; and
in response to detecting the change in connection, discarding the plurality of data packets.
25. The method of any of claims 20-22, further comprising:
associating a timestamp with a first data packet of the plurality of data packets;
discarding the first data packet if a timestamp associated with the first data packet exceeds a predetermined time threshold.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/226,690 | 2014-03-26 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| HK1228166A1 true HK1228166A1 (en) | 2017-10-27 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9420537B2 (en) | Queueing mechanism for client-side network traffic to reduce radio power consumption on mobile clients | |
| CN108683484B (en) | Method and apparatus for detecting paging messages | |
| CA2850111C (en) | Communication state transitioning control | |
| US9763235B2 (en) | Paging repetition for increased robustness for extended paging cycles | |
| US12328672B2 (en) | Wake-up signal processing method and apparatus, information issuing method and apparatus, communication device, and medium | |
| US9907020B2 (en) | Wake up message transmission rate | |
| US20210029643A1 (en) | 5G NR Fast Low-Power Mode | |
| JP2020511033A (en) | Message sending delay | |
| WO2022236626A1 (en) | Method for transmitting system message, apparatus, and communication device | |
| CN110784942A (en) | A connection establishment method and device | |
| US10812402B2 (en) | Shaping of post-scheduling network pipeline jitter | |
| CN114765892B (en) | Triggering method, device and terminal for uplink data transmission enhancement process | |
| US12426078B2 (en) | Method and apparatus for small data transmission | |
| EP4277432B1 (en) | Control plane latency reduction in a wireless communication network | |
| EP4489482A1 (en) | Communication method and apparatus | |
| HK1228166A1 (en) | Queueing mechanism for client-side network traffic to reduce radio power consumption on mobile clients | |
| CN115175373B (en) | Information transmission method, device and communication equipment | |
| CN111034228A (en) | User equipment for controlling transmission in wireless communication system and method thereof | |
| CN116868665A (en) | Information processing methods, devices, communication equipment and storage media | |
| CN116848817A (en) | Information indication method, device, communication equipment and storage medium | |
| WO2024093847A1 (en) | Format determination method, user equipments (ues) and readable storage medium | |
| HK1258362B (en) | Method and device for detecing paging message | |
| WO2013121693A1 (en) | Wireless communication terminal, wireless communication method, and wireless communication program | |
| CN116437469A (en) | Transmission method and device for non-control channel scheduling data based on indication information |