Aspects disclosed in the detailed description include power saving techniques in computing devices. In particular, as data is received by a modem processor in a computing device, the data is held until the expiration of a modem timer. The data is then passed to an application processor in the computing device over a peripheral component interconnect express (PCIe) interconnectivity bus. On receipt of the data from the modem processor, the application processor sends data held by the application processor to the modem processor over the PCIe interconnectivity bus. The application processor also has an uplink timer. If no data is received from the modem processor before expiration of the uplink timer, the application processor sends any collected data to the modem processor at expiration of the uplink timer. However, if data is received from the modem processor, the uplink timer is reset.
|
0. 36. A mobile terminal comprising:
a modem timer;
a modem processor, the modem processor configured to hold modem processor-to-application processor data until expiration of the modem timer;
an application timer;
an application processor;
an interconnectivity bus communicatively coupling the application processor to the modem processor, the interconnectivity bus having active mode periods and low-power mode periods; and
the application processor configured to hold application processor-to-modem processor data until the modem processor pulls data from the application processor on arrival of the modem processor-to-application processor data from the modem processor through the interconnectivity bus, wherein the application processor-to-modem processor data and the modem processor-to-application processor data are released during a same active mode period and the modem processor and the application processor reside in the mobile terminal.
0. 32. A mobile terminal comprising:
a modem timer;
a modem processor, the modem processor configured to hold modem processor-to-application processor data until expiration of the modem timer;
an application timer having a period longer than a period of the modem timer;
an application processor, the application processor configured to hold application processor-to-modem processor data until the modem processor pulls data from the application processor;
an interconnectivity bus communicatively coupling the application processor to the modem processor, the interconnectivity bus having an active period and a sleep period; and
the modem processor further configured, based on the period of the modem timer and the period of the application timer, to synchronize transfer of the application processor-to-modem processor data and the modem processor-to-application processor data during a single active period of the interconnectivity bus, wherein the modem processor and the application processor reside in the mobile terminal.
0. 41. A mobile terminal comprising:
a modem processor comprising a modem timer, the modem processor configured to hold modem processor to application processor data until expiration of the modem timer;
an application processor;
an interconnectivity bus communicatively coupling the application processor to the modem processor; and
the application processor configured to hold application processor to modem processor data until triggered by receipt of the modem processor to application processor data from the modem processor through the interconnectivity bus after which the application processor to modem processor data is sent to the modem processor through the interconnectivity bus responsive to the receipt of the modem processor to application processor data from the modem processor through the interconnectivity bus,
wherein the interconnectivity bus comprises a peripheral component interconnect (pci) compliant bus,
wherein the pci compliant bus comprises a pci express (PCIe) bus, and
wherein the modem processor further comprises an application timer, and the modem processor is configured to pull data from the application processor on the receipt of the modem processor to application processor data or expiration of the application timer.
0. 1. A mobile terminal comprising:
a modem timer;
a modem processor, the modem processor configured to hold modem processor to application processor data until expiration of the modem timer;
an application processor;
an interconnectivity bus communicatively coupling the application processor to the modem processor; and
the application processor configured to hold application processor to modem processor data until triggered by receipt of the modem processor to application processor data from the modem processor through the interconnectivity bus after which the application processor to modem processor data is sent to the modem processor through the interconnectivity bus responsive to the receipt of the modem processor to application processor data from the modem processor through the interconnectivity bus.
0. 2. The mobile terminal of
0. 3. The mobile terminal of
0. 4. The mobile terminal of
0. 5. The mobile terminal of
0. 6. The mobile terminal of
0. 7. The mobile terminal of
0. 8. The mobile terminal of
0. 9. The mobile terminal of
0. 10. The mobile terminal of
0. 11. The mobile terminal of
0. 12. The mobile terminal of
0. 13. The mobile terminal of
0. 14. The mobile terminal of
0. 15. The mobile terminal of
0. 16. A method of controlling power consumption in a computing device, comprising:
holding data received by a modem processor from a remote network until expiration of a downlink timer;
passing the data received by the modem processor to an application processor over an interconnectivity bus; and
holding application data generated by an application associated with the application processor until receipt of the data from the modem processor or expiration of an uplink timer, whichever occurs first,
wherein receipt of the data from the modem processor triggers passing the data received by the application processor to the modem processor over the interconnectivity bus before the interconnectivity bus transitions from an active power state to a low power state.
0. 17. The method of
0. 18. The method of
0. 19. The method of
0. 20. The method of
0. 21. The method of
0. 22. A mobile terminal comprising:
a modem processor;
an application timer;
an application processor, the application processor configured to hold application processor to modem processor data until expiration of the application timer;
an interconnectivity bus communicatively coupling the application processor to the modem processor; and
the modem processor configured to hold modem processor to application processor data until triggered by receipt of the application processor to modem processor data from the application processor through the interconnectivity bus after which the modem processor to application processor data is sent to the application processor through the interconnectivity bus responsive to the receipt of the application processor to modem processor data from the application processor through the interconnectivity bus.
0. 23. The mobile terminal of
0. 24. The mobile terminal of
0. 25. The mobile terminal of
0. 26. A mobile terminal comprising:
a modem byte accumulation limit counter;
a modem processor, the modem processor configured to hold modem processor to application processor data until a predefined threshold of bytes has been reached by the modem byte accumulation limit counter;
an application processor;
an interconnectivity bus communicatively coupling the application processor to the modem processor; and
the application processor configured to hold application processor to modem processor data until triggered by receipt of the modem processor to application processor data from the modem processor through the interconnectivity bus after which the application processor to modem processor data is sent to the modem processor through the interconnectivity bus responsive to the receipt of the modem processor to application processor data from the modem processor through the interconnectivity bus.
0. 27. A mobile terminal comprising:
a modem packet counter;
a modem processor, the modem processor configured to hold modem processor to application processor data until a predefined threshold of packets has been reached by the modem packet counter;
an application processor;
an interconnectivity bus communicatively coupling the application processor to the modem processor; and
the application processor configured to hold application processor to modem processor data until triggered by receipt of the modem processor to application processor data from the modem processor through the interconnectivity bus after which the application processor to modem processor data is sent to the modem processor through the interconnectivity bus responsive to the receipt of the modem processor to application processor data from the modem processor through the interconnectivity bus.
0. 28. A mobile terminal comprising:
a modem processor;
an application byte counter;
an application processor, the application processor configured to hold application processor to modem processor data until a predefined threshold of bytes has been reached by the application byte counter;
an interconnectivity bus communicatively coupling the application processor to the modem processor; and
the modem processor configured to hold modem processor to application processor data until triggered by receipt of the application processor to modem processor data from the application processor through the interconnectivity bus after which the modem processor to application processor data is sent to the application processor through the interconnectivity bus responsive to the receipt of the application processor to modem processor data from the application processor through the interconnectivity bus.
0. 29. A mobile terminal comprising:
a modem processor;
an application packet counter;
an application processor, the application processor configured to hold application processor to modem processor data until a predefined threshold of packets has been reached by the application packet counter;
an interconnectivity bus communicatively coupling the application processor to the modem processor; and
the modem processor configured to hold modem processor to application processor data until triggered by receipt of the application processor to modem processor data from the application processor through the interconnectivity bus after which the modem processor to application processor data is sent to the application processor through the interconnectivity bus responsive to the receipt of the modem processor to application processor data from the modem processor through the interconnectivity bus.
0. 30. A method comprising:
starting an application timer at an application processor;
accumulating data at the application processor until expiration of the application timer;
sending the accumulated data from the application processor to a modem processor across an interconnectivity bus; and
holding modem processor data at the modem processor until triggered by receipt of the accumulated data from the application processor,
wherein receipt of the accumulated data from the application processor triggers passing the modem processor data to the application processor over the interconnectivity bus before the interconnectivity bus transitions from an active power state to a low power state.
0. 31. A mobile terminal comprising:
a modem timer;
a modem processor, the modem processor configured to hold modem processor to application processor data until expiration of the modem timer;
an application processor;
an interconnectivity bus communicatively coupling the application processor to the modem processor; and
the application processor configured to hold application processor to modem processor data until the modem processor pulls data from the application processor after transmission of the modem processor to application processor data,
wherein the modem processor is further configured pull data from the application processor after transmission of the modem processor to application processor data and before the interconnectivity bus transitions from an active power state to a low power state.
0. 33. The mobile terminal of claim 32, wherein the modem processor is further configured to instruct the application processor to send an interrupt when no data is received before expiration of the application timer.
0. 34. The mobile terminal of claim 32, wherein the application processor is further configured to store the pulled data via a write pointer.
0. 35. The mobile terminal of claim 32, wherein the modem processor is further configured to pull the data from the application processor based on a data buffer address set up by the application processor.
0. 37. The mobile terminal of claim 36, wherein the modem processor is further configured to instruct the application processor to send an interrupt when no data is received before expiration of the application timer.
0. 38. The mobile terminal of claim 36, wherein the application processor is further configured to store the pulled data via a write pointer.
0. 39. The mobile terminal of claim 36, wherein the modem processor is further configured to pull the data from the application processor based on a data buffer address set up by the application processor.
0. 40. The mobile terminal of claim 36, wherein the application timer has a period longer than a period of the modem timer.
|
The present application is a reissue continuation of U.S. patent application Ser. No. 17/240,496 filed on Apr. 26, 2021 and entitled “POWER SAVING TECHNIQUES IN COMPUTING DEVICES,” which is an application for reissue of U.S. Pat. No. 9,535,490.
The present application '490 patent claims priority to U.S. Provisional Patent Application Ser. No. 61/916,498 filed on Dec. 16, 2013 and entitled “POWER SAVING TECHNIQUES IN COMPUTING DEVICES,” which is incorporated herein by reference in its entirety.
The present application '490 patent also claims priority to U.S. Provisional Patent Application Ser. No. 62/019,073 filed on Jun. 30, 2014 and entitled “POWER SAVING TECHNIQUES IN COMPUTING DEVICES,” which is incorporated herein by reference in its entirety.
I. Field of the Disclosure
The technology of the disclosure relates generally to power saving techniques in computing devices.
II. Background
Computing devices are common within modem society. Ranging from small, mobile computing devices, such as a smart phone or tablet, to large server farms with numerous blades and memory banks, these devices are expected to communicate across myriad networks while providing various other base functions. While desktop devices and servers are generally immune to concerns about power consumption, mobile devices constantly struggle to find a proper balance between available functions and battery life. That is, as more functions are provided, power consumption increases, and battery life is shortened. Servers may likewise have power consumption concerns when assembled in large server farms.
Concurrent with power consumption concerns, improvements in network communications have increased data rates. For example, copper wires have been replaced with higher bandwidth fiber optic cables, and cellular networks have evolved from early Advanced Mobile Phone System (AMPS) and Global System for Mobile Communications (GSM) protocols to 4G and Long Term Evolution (LTE) protocols capable of supporting much higher data rates. As the data rates have increased, the need to be able to process these increased data rates within computing devices has also increased. Thus, earlier mobile computing devices may have had internal buses formed according to a High Speed Inter-Chip (HSIC) standard, universal serial bus (USB) standard (and particularly USB 2.0), or universal asynchronous receiver/transmitter (UART) standard. However, these buses do not support current data rates.
In response to the need for faster internal buses, the peripheral component interconnect express (PCIe) standard, as well as, later generations of USB (e.g., USB 3.0 and subsequent versions) have been adopted for some mobile computing devices. However, while PCIe and USB 3.0 can handle the high data rates currently being used, usage of such buses results in excessive power consumption and negatively impacts battery life by shortening the time between recharging events.
Aspects disclosed in the detailed description include power saving techniques in computing devices. In particular, as data is received by a modem processor in a computing device, the data is held until the expiration of a modem timer. The data is then passed to an application processor in the computing device over a peripheral component interconnect express (PCIe) interconnectivity bus. On receipt of the data from the modem processor, the application processor sends data held by the application processor to the modem processor over the PCIe interconnectivity bus. The application processor also has an uplink timer. If no data is received from the modem processor before expiration of the uplink timer, the application processor sends any collected data to the modem processor at expiration of the uplink timer. However, if data is received from the modem processor, the uplink timer is reset. By holding or accumulating the data at a source processor in this fashion, unnecessary transitions between low power states and active states on the PCIe bus are reduced and power is conserved.
In an alternate aspect, instead of initiating data transfer based on the expiration of the downlink timer (with or without expiration of the uplink timer), accumulated data transfer may be initiated based on expiration of just an uplink accumulation timer. The uplink accumulation timer may be within a host or a device associated with the interconnectivity bus.
In another alternate aspect, initiation of the data transfer may be based on reaching a predefined threshold for a byte accumulation limit counter. The byte accumulation limit counter is not mutually exclusive relative to the other counters and may operate as an override mechanism for one of the other accumulation timers. Use of such an override may be useful in situations where a sudden burst of data arrives that would exceed buffer space and/or bus bandwidth. Likewise, instead of a byte counter, a packet size counter or a “total number of packets” counter may be used to cover situations where numerous packets or a particularly large packet is delivered by the network.
In further aspects of the present disclosure, the timers may be overridden by other factors or parameters. Such an override is alluded to above with the byte accumulation limit counters and the total number of packets counter, which causes data transfers independently of the timers. Other parameters may also override the timers, such as the presence of low latency traffic (e.g., control messages), synchronizing the uplink and downlink data transfers, or low latency quality of service requirements. When such traffic is present, an interrupt or other command may be used to initiate data transfers before expiration of a timer. Still other factors may override the timers, such as an indication that a device or host is not in an automatic polling mode.
In this regard in one aspect, a mobile terminal is disclosed. The mobile terminal comprises a modem timer. The mobile terminal also comprises a modem processor. The modem processor is configured to hold modem processor to application processor data until expiration of the modem timer. The mobile terminal also comprises an application processor. The mobile terminal also comprises an interconnectivity bus communicatively coupling the application processor to the modem processor. The application processor is configured to hold application processor to modem processor data until receipt of the modem processor to application processor data from the modem processor through the interconnectivity bus after which the application processor to modem processor data is sent to the modem processor through the interconnectivity bus.
In another aspect, a method of controlling power consumption in a computing device is disclosed. The method comprises holding data received by a modem processor from a remote network until expiration of a downlink timer. The method also comprises passing the data received by the modem processor to an application processor over an interconnectivity bus. The method also comprises holding application data generated by an application associated with the application processor for until receipt of the data from the modem processor or expiration of an uplink timer, whichever occurs first.
In another aspect, a mobile terminal is disclosed. The mobile terminal comprises a modem processor. The mobile terminal also comprises an application timer. The mobile terminal also comprises an application processor. The application processor is configured to hold application processor to modem processor data until expiration of the application timer. The mobile terminal also comprises an interconnectivity bus communicatively coupling the application processor to the modem processor. The modem processor is configured to hold modem processor to application processor data until receipt of the application processor to modem processor data from the application processor through the interconnectivity bus after which the modem processor to application processor data is sent to the application processor through the interconnectivity bus.
In another aspect, a mobile terminal is disclosed. The mobile terminal comprises a modem byte accumulation limit counter. The mobile terminal also comprises a modem processor. The modem processor is configured to hold modem processor to application processor data until a predefined threshold of bytes has been reached by the modem byte accumulation limit counter. The mobile terminal also comprises an application processor. The mobile terminal also comprises an interconnectivity bus communicatively coupling the application processor to the modem processor. The application processor is configured to hold application processor to modem processor data until receipt of the modem processor to application processor data from the modem processor through the interconnectivity bus after which the application processor to modem processor data is sent to the modem processor through the interconnectivity bus.
With regards to another aspect, a mobile terminal is disclosed. The mobile terminal comprises a modem packet counter. The mobile terminal also comprises a modem processor. The modem processor is configured to hold modem processor to application processor data until a predefined threshold of packets has been reached by the modem packet counter. The mobile terminal also comprises an application processor. The mobile terminal also comprises an interconnectivity bus communicatively coupling the application processor to the modem processor. The application processor is configured to hold application processor to modem processor data until receipt of the modem processor to application processor data from the modem processor through the interconnectivity bus after which the application processor to modem processor data is sent to the modem processor through the interconnectivity bus.
In another aspect, a mobile terminal is disclosed. The mobile terminal comprises a modem processor. The mobile terminal also comprises an application byte counter. The mobile terminal also comprises an application processor. The application processor is configured to hold application processor to modem processor data until a predefined threshold of bytes has been reached by the application byte counter. The mobile terminal also comprises an interconnectivity bus communicatively coupling the application processor to the modem processor. The modem processor is configured to hold modem processor to application processor data until receipt of the application processor to modem processor data from the application processor through the interconnectivity bus after which the modem processor to application processor data is sent to the application processor through the interconnectivity bus.
In another aspect, a mobile terminal is disclosed. The mobile terminal comprises a modem processor and an application packet counter. The mobile terminal also comprises an application processor. The application processor is configured to hold application processor to modem processor data until a predefined threshold of packets has been reached by the application packet counter. The mobile terminal comprises an interconnectivity bus communicatively coupling the application processor to the modem processor. The modem processor is configured to hold the modem processor to application processor data until receipt of the application processor to modem processor data from the application processor through the interconnectivity bus after which the modem processor to application processor data is sent to the application processor through the interconnectivity bus.
With regards to another aspect, a method is disclosed. The method comprises starting an application timer at an application processor. The method also comprises accumulating data at the application processor until expiration of the application timer. The method comprises sending the accumulated data from the application processor to a modem processor across an interconnectivity bus. The method further comprises holding modem processor data at the modem processor until receipt of the accumulated data from the application processor.
In another aspect, a mobile terminal is disclosed. The mobile terminal comprises a modem timer. The mobile terminal also comprises a modem processor. The modem processor is configured to hold modem processor to application processor data until expiration of the modem timer. The mobile terminal also comprises an application processor. The mobile terminal also comprises an interconnectivity bus communicatively coupling the application processor to the modem processor. The application processor is configured to hold application processor to modem processor data until the modem processor pulls data from the application processor after transmission of the modem processor to application processor data.
With reference now to the drawing figures, several exemplary aspects of the present disclosure are described. The word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any aspect described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects.
Aspects disclosed in the detailed description include power saving techniques in computing devices. In particular, as data is received by a modem processor in a computing device, the data is held until the expiration of a modem timer. The data is then passed to an application processor in the computing device over a peripheral component interconnect express (PCIe) interconnectivity bus. On receipt of the data from the modem processor, the application processor sends data held by the application processor to the modem processor over the PCIe interconnectivity bus. The application processor also has an uplink timer. If no data is received from the modem processor before expiration of the uplink timer, the application processor sends any collected data to the modem processor at expiration of the uplink timer. However, if data is received from the modem processor, the uplink timer is reset. By holding or accumulating the data at a source processor in this fashion, unnecessary transitions between low power states and active states on the PCIe bus are reduced and power is conserved.
In an alternate aspect, instead of initiating data transfer based on the expiration of the downlink timer (with or without expiration of the uplink timer), accumulated data transfer may be initiated based on expiration of just an uplink accumulation timer. The uplink accumulation timer may be within a host or a device associated with the interconnectivity bus.
In another alternate aspect, initiation of the data transfer may be based on reaching a predefined threshold for a byte accumulation limit counter. The byte accumulation limit counter is not mutually exclusive relative to the other counters and may operate as an override mechanism for one of the other accumulation timers. Use of such an override may be useful in situations where a sudden burst of data arrives that would exceed buffer space and/or bus bandwidth. Likewise, instead of a byte counter, a packet size counter or a “total number of packets” counter may be used to cover situations where numerous packets or a particularly a large packet is delivered by the network.
In further aspects of the present disclosure, the timers may be overridden by other factors or parameters. Such an override is alluded to above with the byte accumulation limit counters and the total number of packets counter, which causes data transfers independently of the timers. Other parameters may also override the timers, such as the presence of low latency traffic (e.g., control messages), synchronizing the uplink and downlink data transfers, or low latency quality of service requirements. When such traffic is present, an interrupt or other command may be used to initiate data transfers before expiration of a timer. Still other factors may override the timers, such as an indication that a device or host is not in an automatic polling mode.
While it is contemplated that the power saving techniques of the present disclosure are used in mobile terminals, such as smart phones or tablets, the present disclosure is not so limited. Accordingly,
In addition to the computing device 10, exemplary aspects of the present disclosure may also be implemented on a mobile terminal, which is a form of computing device as that term is used herein. In this regard, an exemplary aspect of a mobile terminal 22 is illustrated in
To effectuate functions, such as streaming video, data arrives from the remote antenna 24 at an antenna 30 of the mobile terminal 22, as illustrated in
A more detailed depiction of the components of the mobile terminal 22 is provided with reference to
The receiver path 38 receives information bearing radio frequency (RF) signals from one or more remote transmitters provided by a base station (e.g., the BS 26 of
With continued reference to
With continued reference to
In conventional mobile terminals that have a PCIe interconnectivity bus (i.e., the interconnectivity bus 36), the PCIe standard allows the interconnectivity bus 36 to be placed into a sleep mode. While placing the interconnectivity bus 36 in a sleep mode generally saves power, such sleep modes do have a drawback in that they consume relatively large amounts of power as they transition out of the sleep mode. This power consumption is exacerbated because of the asynchronous nature of the PCIe interconnectivity bus 36. That is, first data may arrive at the modem processor 44 for transmission to the application processor 34 at a time different than when the second data is ready to pass from the application processor 34 to the modem processor 44. This problem is not unique to the PCIe interconnectivity bus 36.
Exemplary aspects of the present disclosure reduce the number of transitions (i.e., 60, 62) from low power to active power by synchronizing packet transmission from the modem processor 44 and the application processor 34, which in turn allows the link to be maintained in a low power mode more efficiently since the communication on the link is consolidated to eliminate the second power state transition. In an exemplary aspect, the data (i.e., the modem data) from the modem processor 44 transmits first, and the data (i.e., the application data) from the application processor 34 is sent after arrival of the modem data and before the interconnectivity bus 36 can return to the low power state. The synchronization is done through the use of timers at the modem processor 44 and the application processor 34. The timers may be longer than a time slot 58 of the interconnectivity bus 36.
In a first exemplary aspect, the timer on the application processor 34 is longer than the timer on the modem processor 44. The accumulation may be done on a per logical channel basis. The timer may be configurable by the application processor 34 using a mechanism suitable to the interconnectivity bus 36. For example, on a fusion device using a modem host interface (MHI) over PCIe, the timer is maintained for every inbound MHI channel and the time value used by the timers shall be configured via a MHI command message or a PCIe memory mapped input/output (MMIO) device configuration register exposed via a base address register (BAR). The BAR is a PCIe standard defined mechanism by which a host maps the registers of a device into its virtual address map. For more information about MHI, the interested reader is referred to U.S. patent application Ser. No. 14/163,846, filed Jan. 24, 2013, which is herein incorporated by reference in its entirety. In other exemplary aspects, the timer on the modem processor 44 is longer than the timer on the application processor 34. In still other exemplary aspects, counters may be used in place of timers. The counters may be bit counters, packet counters, packet size counters, or the like. In other exemplary aspects, use of such alternate counters may be combined with the timers. In still other exemplary aspects, other override criteria may allow for data to be sent before timer or counter expiration so as to reduce latency and/or satisfy the quality of service requirements. The present disclosure steps through each of these aspects in turn, beginning with the situation where there are two timers, and the application processor 34 has a timer that is longer than the timer of the modem processor 44.
In this regard,
The mechanism for data transfer may be initiated and controlled by the modem processor 44 (i.e., the device). For example, on a fusion device using MHI over PCIe, the modem processor 44 may poll (read) the MHI channel Context Write Pointer to determine data buffers where downlink packets can be transferred. The application processor 34 updates the channel context data structure's Context Write Pointer field to point to the data transfer descriptors without ringing an Inbound channel doorbell. The modem processor 44 may poll for updates on the Context Write Pointer field as necessitated by downlink traffic. When the modem processor 44 runs out of buffers, i.e., a transfer ring is empty, and no buffers are present to transfer downlink data, the modem processor 44 may generate an event (e.g., an “out-of-buffer”) notification to the application processor 34, followed by an interrupt. Upon receiving the event notification from the modem processor 44, the application processor 34 shall provide data buffers by updating the channel Context Write Pointer and shall ring the Inbound channel doorbell.
After arrival of the modem data at the application processor 34, the application processor 34 releases any application data that has been held at the application processor 34 and resets the application timer (block 84). Note that the application timer can run on the modem processor 44 or the application processor 34. As an alternative, the modem processor 44 may continue to pull the uplink data 56 from the application processor 34 until it detects no further downlink data 54 activity. That is, the modem processor 44 may intersperse pulling the uplink data 56 while receiving the downlink data 54. If, however, no modem data is present at the modem processor 44 when the modem timer expires, the application timer continues (i.e., another millisecond) (block 86). At the expiration of the application timer, the application processor 34 sends any held data to the modem processor 44 through the interconnectivity bus 36 (block 88). The process then repeats by starting over (block 90).
As noted above, the uplink timer (i.e., the application timer) is, in an exemplary aspect, designed to be longer than the downlink timer (i.e., the modem timer) to increase the uplink/downlink synchronization whenever the downlink timer expires. While holding data for an extra time slot adds some latency, the brief amount added is readily absorbed by the application processor 34. Likewise, this latency is considered acceptable for the power savings. For example, by making the period of the modem timer twice the period of the time slot 58, the number of low power to active power transitions is potentially halved. Likewise, by making the period of the application timer six times the period of the time slot 58, the chance of being able to “piggyback” onto the active power state of the interconnectivity bus 36 caused by the modem data is increased, but still frequent enough that any uplink data 56 will still be sent in a timely fashion even if there is no downlink data 54 to trigger releasing the uplink data 56. Similar logic can be extended to synchronize traffic from multiple processors over the data link. In an exemplary aspect, the other processors may each have timer values higher (i.e., longer) than that of the downlink timer, and the processors can exchange their data availability information so that traffic on one processor can trigger the data transfer on other processors if there is data available to transfer.
While it is conceivable that the uplink data 56 could be sent before the downlink data 54 (i.e., the application timer is shorter than the modem timer), such is generally not considered optimal because there are usually far more downlink packets than uplink packets. If this aspect is used, the application processor 34 may buffer uplink data packets into local memory prior to initiating transfer to the modem processor 44. These accumulated packets are controlled via an uplink accumulation timer. If there are plural channels, then a timer may be applied to each channel independently. When the application processor 34 is unable to use or does not have an uplink timer, the modem processor 44 may be able to instantiate an uplink timer, and upon expiry of the uplink timer, will poll data from the application processor 34. This exemplary aspect is explained in greater detail below with reference to
In this regard,
After arrival of the application data at the modem processor 44, the modem processor 44 releases any modem data that has been held at the modem processor 44 and resets the modem timer (block 124). Note that the application timer can run on the modem processor 44 or the application processor 34. Likewise, the modem timer can run on the modem processor 44 or the application processor 34.
With continued reference to
As noted above, in this exemplary aspect, the uplink timer (i.e., the application timer) is, in an exemplary aspect, designed to be shorter than the downlink timer (i.e., the modem timer). While holding data for an extra time slot 58 adds some latency, the brief amount added is readily absorbed by the application processor 34. Likewise, this latency is considered acceptable for the power savings. For example, by making the period of the application timer twice the period of the time slot 58, the number of low power to active power transitions is lowered. Likewise, by making the period of the modem timer six times the period of the time slot 58, the chance of being able to “piggyback” onto the active power state of the interconnectivity bus 36 caused by the application data is increased, but still frequent enough that any downlink data 54 will still be sent in a timely fashion even if there is no uplink data 56 to trigger releasing the downlink data 54. Similar logic can be extended to synchronize traffic from multiple processors over the data link. In an exemplary aspect, the other processors may each have timer values higher (i.e., longer) than that of the uplink timer and the processors can exchange their data availability information so that traffic on one processor can trigger the data transfer on other processors if there is data available to transfer.
In an exemplary aspect, the modem processor 44 may override and choose the minima from all configured values of each of the configurable parameters (like downlink or uplink accumulation timers, byte threshold, number of packets threshold, size of packet threshold, or the like) or downlink accumulation expiry timer values (e.g., from among the various channels) as the effective downlink accumulation timer expiry value. Intelligent modem processors 44 may also dynamically override or alter the downlink accumulation timer value depending on the downlink traffic pattern, and/or may adjust the downlink accumulation timer to achieve a desired quality of service (QoS) for data and/or to control traffic. A change of configuration can be triggered/controlled by the application processor 44 or any other processor in the system as well, via MHI control or QMI signaling (such as, for inter process signaling).
In addition to, or in place of, downlink and uplink timers, a byte accumulation limit counter may also be used by the modem processor 44 for downlink traffic and the application processor 34 for uplink traffic. This aspect may be advantageous in situations where there is a sudden burst of data pushed by the network or application. Note that this aspect is not mutually exclusive and may be implemented as an override mechanism for either downlink or uplink timers. For example, if the downlink accumulation timer is set relatively high to conserve power, a sudden burst of data may exceed the buffer capacity of the modem processor 44, or if allowed to accumulate in memory of the modem processor 44, this burst of data may exceed bus bandwidth allocations on the application processor 34. The application processor 34 can determine and configure the maximum byte accumulation limit based on its bus bandwidth budget, and/or buffer size reserved for downlink data transfer. The modem processor 44 can also choose an internal byte accumulation limit based on the size of downlink buffer, and/or interconnect link data throughput. With the byte accumulation limit counters, the modem processor 44 can initiate downlink data transfer to the application processor 34 prior to downlink accumulation timer expiry, if and when the buffered data size exceeds the byte accumulation limit counter. Since both the modem processor 44 and the application processor 34 may have independent recommendations for byte accumulation limit counter, the modem processor 44 may select the minima of these two values to be the effective byte accumulation limit. Similar parameters may be maintained in the application processor 34 to trigger the uplink data 56 transfer immediately (i.e., overriding the uplink accumulation timer).
Instead of, or in addition to the byte accumulation limit counter, a number of packets limit counter may be used. In an exemplary aspect, the packet number limit counter may be of similar design, and can be employed to add number of packet counter limits instead of byte limits to cover cases where a large number of packets are delivered by the network or an application. Again, such a packet limit counter may also be present or associated with the application processor 34 or the modem processor 44. Note, that the accumulation timers (uplink and/or downlink) and other configuration parameters like the number of accumulated packets threshold, accumulated bytes threshold, and the like, may be a function of LTE, HSPA, GERAN, or the like.
In still another exemplary aspect, the modem processor 44 or the application processor 34 may disable downlink or uplink accumulation in cases where there is a necessity to expedite message transfer, for example control messages (like flow control) or high QoS data traffic or low latency traffic, as determined by the modem processor 44 or the application processor 34. Latency introduced by accumulation may not be tolerable for these traffic classes.
Returning to the data accumulation based on amounts of data instead of a strict process,
With continued reference to
With continued reference to
While a byte counter may be effective in managing latency, another exemplary aspect uses a packet counter. In this regard,
With continued reference to
With continued reference to
A similar process may be used, where instead of determining if a particular number of bytes or packets have been accumulated, the control system evaluates a size of packets or whether the system is running low in memory. Likewise, it should be appreciated that certain priority data (e.g., a control signal or other data requiring low latency) may be associated with a flag or other indicator that overrides the timers and/or counters of the present disclosure.
As noted above, it should be appreciated that the aspects of the present disclosure are not mutually exclusive and can be combined. The combinations are myriad in that a timer may be used at the application processor 34 with a byte counter at the modem processor 44 (or vice versa), the modem processor 44 works with a timer and a byte counter, while the application processor 34 just has a timer, and so on. In this regard,
In this regard,
With continued reference to
With continued reference to
With reference to
With continued reference to
In another alternate aspect, there may be situations where the buffers of the application processor 34 may be full and there is no room for data from the modem processor 44. In such an event, the application processor 34 may so inform the modem processor 44, and the modem processor 44 may send an event to the application processor 34 to provide an interrupt signal to the modem processor 44 when there are free buffers.
With continued reference to
It should be appreciated that similar processes may be performed where both timers are in the application processor 34 or the modem processor 44 or are split between the respective processors 34, 44. Likewise, once a timer has expired, data can be pulled or pushed across the interconnectivity bus 36 based on polling, setting doorbell registers, or other technique.
Those of skill in the art will further appreciate that the various illustrative logical blocks, modules, circuits, and algorithms described in connection with the aspects disclosed herein may be implemented as electronic hardware, instructions stored in memory or in another computer-readable medium and executed by a processor or other processing device, or combinations of both. The devices described herein may be employed in any circuit, hardware component, IC, or IC chip, as examples. Memory disclosed herein may be any type and size of memory and may be configured to store any type of information desired. To clearly illustrate this interchangeability, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. How such functionality is implemented depends upon the particular application, design choices, and/or design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.
The various illustrative logical blocks, modules, and circuits described in connection with the aspects disclosed herein may be implemented or performed with a processor, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
The aspects disclosed herein may be embodied in hardware and in instructions that are stored in hardware, and may reside, for example, in Random Access Memory (RAM), flash memory, Read Only Memory (ROM), Electrically Programmable ROM (EPROM), Electrically Erasable Programmable ROM (EEPROM), registers, a hard disk, a removable disk, a CD-ROM, or any other form of computer readable medium known in the art. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in a remote station. In the alternative, the processor and the storage medium may reside as discrete components in a remote station, base station, or server.
It is also noted that the operational steps described in any of the exemplary aspects herein are described to provide examples and discussion. The operations described may be performed in numerous different sequences other than the illustrated sequences. Furthermore, operations described in a single operational step may actually be performed in a number of different steps. Additionally, one or more operational steps discussed in the exemplary aspects may be combined. It is to be understood that the operational steps illustrated in the flow chart diagrams may be subject to numerous different modifications as will be readily apparent to one of skill in the art. Those of skill in the art will also understand that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.
The previous description of the disclosure is provided to enable any person skilled in the art to make or use the disclosure. Various modifications to the disclosure will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other variations without departing from the spirit or scope of the disclosure. Thus, the disclosure is not intended to be limited to the examples and designs described herein, but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
Kumar, Vaibhav, Mitra, Alok, Maheshwari, Shailesh, Babbar, Uppinder Singh, Sukumar, Hariharan, Kumar, Vanitha Aravamudhan, Klacar, Neven, Kaushik, Vinod Harimohan, Danaila, Andrei, Pius, Roshan Thomas, Coimbatore Krishnamoorthy, Muralidhar, Coimbatore Krishnamurthy, Arunn
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
3032181, | |||
5118385, | May 28 1991 | SAMSUNG ELECTRONICS CO , LTD | Multilayer electrical interconnect fabrication with few process steps |
5167024, | Sep 08 1989 | Apple Inc | Power management for a laptop computer with slow and sleep modes |
5170470, | May 02 1988 | National Semiconductor Corp | Integrated modem which employs a host processor as its controller |
5481747, | Sep 14 1990 | Hitachi, Ltd. | Synchronous method and apparatus for processors |
5619681, | Nov 23 1992 | IXYS Intl Limited | Delayed FIFO status for serial shift emulation |
6021264, | Jul 23 1993 | NEC Corporation | Data processing system capable of avoiding collision between read data and write data |
6085273, | Oct 01 1997 | Thomson Training & Simulation Limited | Multi-processor computer system having memory space accessible to multiple processors |
6151355, | Oct 07 1996 | CalAmp Wireless Networks Corporation | Wireless modem |
6182178, | Jun 30 1998 | International Business Machines Corporation | Method and system for supporting peripheral component interconnect (PCI) peer-to-peer access across a PCI host bridge supporting multiple PCI buses |
6272452, | Apr 02 1998 | ATI Technologies ULC | Universal asynchronous receiver transmitter (UART) emulation stage for modem communication |
6472770, | Nov 14 1997 | IWS International, Inc. | Intelligent current distribution system and method for manufacturing the same |
6765901, | Jun 11 1998 | Nvidia Corporation | TCP/IP/PPP modem |
6795877, | Nov 29 2001 | Intel Corporation | Configurable serial bus to couple baseband and application processors |
6972445, | Jun 11 2004 | VIA Technologies, Inc. | Input/output structure and integrated circuit using the same |
6996214, | Aug 31 2001 | Silicon Laboratories Inc | Utilization of in-band signaling to facilitate modem on hold |
7058421, | Oct 29 2002 | Qualcomm Incorporated | Wireless terminal operating under an aggregate transmit power limit using multiple modems having fixed individual transmit power limits |
7103888, | Jun 06 2000 | Intel Corporation | Split model driver using a push-push messaging protocol over a channel based network |
7136645, | Oct 09 1998 | NETMOTION WIRELESS HOLDINGS, INC ; MOBILE SONIC INTERMEDIATE, INC ; MOBILE SONIC, INC | Method and apparatus for providing mobile and other intermittent connectivity in a computing environment |
7137018, | Dec 31 2002 | Sony Corporation of America | Active state link power management |
7194642, | Aug 04 2003 | Intel Corporation | Technique to coordinate servicing of multiple network interfaces |
7206864, | Apr 28 2004 | GOOGLE LLC | Network protocol processing device |
7310535, | Mar 29 2002 | TAMIRAS PER PTE LTD , LLC | Apparatus and method for reducing power consumption in a wireless device |
7338884, | Sep 03 2001 | NEC Corporation | Interconnecting substrate for carrying semiconductor device, method of producing thereof and package of semiconductor device |
7379475, | Jan 25 2002 | Nvidia Corporation | Communications processor |
7424632, | Feb 13 2004 | Microsoft Technology Licensing, LLC | Systems and methods that facilitate state machine power and wake state management |
7450963, | Aug 27 2002 | Qualcomm Incorporated | Low power dual processor architecture for multi mode devices |
7475167, | Apr 15 2005 | TAHOE RESEARCH, LTD | Offloading data path functions |
7535907, | Apr 08 2005 | CAVIUM INTERNATIONAL; MARVELL ASIA PTE, LTD | TCP engine |
7542437, | Oct 02 2003 | RTX BBN TECHNOLOGIES, INC | Systems and methods for conserving energy in a communications network |
7564860, | May 08 2003 | Samsung Electronics Co., Ltd. | Apparatus and method for workflow-based routing in a distributed architecture router |
7603574, | Dec 14 2006 | Nvidia Corporation | Network interface speed adjustment to accommodate high system latency in power savings mode |
7610061, | Sep 20 2003 | Samsung Electronics Co., Ltd. | Communication device and method having a common platform |
7647517, | May 23 2005 | VIA Technologies, Inc. | PCI express system and method of transitioning link state including adjusting threshold idle time according to a requirement of data transmission |
7694049, | Dec 28 2005 | Intel Corporation | Rate control of flow control updates |
7702748, | Jan 02 2002 | International Business Machines Corporation | Method and system for computer nodes configured with a plurality of UART channels for serial redirection through with a service processor |
7751442, | Dec 19 2003 | Intel Corporation | Serial ethernet device-to-device interconnection |
7765391, | Feb 09 2006 | Renesas Electronics Corporation | Multiprocessor system and boot-up method of slave system |
7785478, | Aug 08 2007 | BL TECHNOLOGIES, INC | Method for controlling protozoa that harbor bacteria |
7796589, | Aug 01 2005 | American Power Conversion Corporation | Communication protocol |
7831849, | Mar 28 2007 | Intel Corporation | Platform communication protocol |
7852867, | Jul 06 2007 | MICROSEMI STORAGE SOLUTIONS US , INC | Integrated memory for storing egressing packet data, replay data and to-be egressed data |
7898994, | Feb 25 2002 | Qualcomm Incorporated | Power saving in multi-processor device |
7899018, | Sep 21 2006 | Qualcomm Incorporated | Automatic resignation from ad hoc network |
7923828, | Oct 01 2004 | Invensas Corporation | Structure and method of making interconnect element, and multilayer wiring board including the interconnect element |
8078768, | Aug 21 2008 | Qualcomm Incorporated | Universal Serial Bus (USB) remote wakeup |
8112646, | Sep 17 2007 | TAHOE RESEARCH, LTD | Buffering techniques for power management |
8145920, | Sep 17 2007 | TAHOE RESEARCH, LTD | Techniques for collaborative power management for heterogeneous networks |
8160000, | Jun 08 2006 | Qualcomm Incorporated | Achieving power savings through packet grouping |
8196293, | Oct 20 2009 | Samsung Electro-Mechanics, Co. | Method of manufacturing a printed circuit board |
8279790, | Mar 11 2010 | Intel Corporation | Packet buffering based at least in part upon packet receipt time interval weighted moving average |
8281101, | Dec 27 2008 | Intel Corporation | Dynamic random access memory with shadow writes |
8312307, | Nov 07 2007 | Intel Corporation | Systems and methods for reducing power consumption during communication between link partners |
8406725, | Aug 16 2006 | Malikie Innovations Limited | Method and system for coordinating necessary radio transmission events with unrelated opportunistic events to optimize battery life and network resources |
8462684, | May 19 2008 | NXP USA, INC | Power saving technique for a wireless device |
8495403, | Dec 31 2008 | TAHOE RESEARCH, LTD | Platform and processor power management |
8615671, | Oct 09 2009 | Intel Corporation | Techniques for managing lower power states for data links |
8635469, | Dec 22 2009 | Intel Corporation | Method and apparatus for I/O devices assisted platform power management |
8650427, | Mar 31 2011 | Intel Corporation | Activity alignment algorithm by masking traffic flows |
8661167, | Sep 17 2007 | TAHOE RESEARCH, LTD | DMA (direct memory access) coalescing |
8782456, | Jun 01 2010 | MEDIATEK INC | Dynamic and idle power reduction sequence using recombinant clock and power gating |
8838949, | Mar 22 2010 | Qualcomm Incorporated | Direct scatter loading of executable software image from a primary processor to one or more secondary processor in a multi-processor system |
8839015, | Nov 07 2007 | Intel Corporation | Systems and methods for reducing power consumption of a communication device |
8938551, | Apr 10 2012 | Intel Corporation | Data processing device |
8959265, | Nov 21 2012 | Mellanox Technologies Ltd | Reducing size of completion notifications |
8966302, | Jun 23 2010 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Method for power management of data buses in electronic devices |
8972646, | Mar 30 2012 | Intel Corporation | Superspeed inter-chip interface |
8996078, | Oct 18 2007 | InterDigital Technology Corporation | UMTS FDD modem optimized for high data rate applications |
9218290, | May 18 2010 | Intel Corporation | Data caching in a network communications processor architecture |
9226234, | May 21 2012 | Qualcomm Innovation Center, Inc. | Systems, methods, and apparatus for reducing mobile device power consumption relative to periodic data packet transfers |
9246846, | Sep 02 2011 | MEDIATEK INC | Network processor |
9264368, | Jan 27 2012 | MARVELL INTERNATIONAL LTD; CAVIUM INTERNATIONAL; MARVELL ASIA PTE, LTD | Chip-to-chip communications |
9311145, | Dec 19 2012 | TAHOE RESEARCH, LTD | Using platform idle duration information to notify platform devices of upcoming active periods |
9329671, | Jan 29 2013 | Nvidia Corporation | Power-efficient inter processor communication scheduling |
9338279, | Jan 18 2012 | Microsoft Technology Licensing, LLC | Mechanism for connecting a mobile device to a network |
9348523, | Dec 12 2013 | International Business Machines Corporation | Code optimization to enable and disable coalescing of memory transactions |
9431077, | Mar 13 2013 | Qualcomm Incorporated | Dual host embedded shared device controller |
9510242, | May 17 2013 | Nvidia Corporation | Reducing superfluous traffic in a network |
9513662, | Jan 04 2013 | Intel Corporation | System and method for power management |
9535490, | Dec 16 2013 | Qualcomm Incorporated | Power saving techniques in computing devices |
9578676, | Aug 27 2013 | MARVELL INTERNATIONAL LTD; CAVIUM INTERNATIONAL; MARVELL ASIA PTE, LTD | Systems and methods for reducing in-device coexistence (IDC) interference |
20030114186, | |||
20040004964, | |||
20040225760, | |||
20040264396, | |||
20050060365, | |||
20050165985, | |||
20050203917, | |||
20060154642, | |||
20060161707, | |||
20060195706, | |||
20060288209, | |||
20070136264, | |||
20070140199, | |||
20070259673, | |||
20080034106, | |||
20080046665, | |||
20080101446, | |||
20090029735, | |||
20090039034, | |||
20090132582, | |||
20090164821, | |||
20090185487, | |||
20090203409, | |||
20090249041, | |||
20090323686, | |||
20110010480, | |||
20110013353, | |||
20110145445, | |||
20110154475, | |||
20120077464, | |||
20120120860, | |||
20130100787, | |||
20130198538, | |||
20130204962, | |||
20130238915, | |||
20140068354, | |||
20140157009, | |||
20140207991, | |||
20140344429, | |||
20150086064, | |||
20150169037, | |||
20150212564, | |||
20160164990, | |||
20160226530, | |||
20160309365, | |||
20160314055, | |||
CN101615067, | |||
CN101802753, | |||
CN102124454, | |||
CN102204363, | |||
CN103077141, | |||
CN103168498, | |||
CN103270466, | |||
CN103314620, | |||
EP475282, | |||
EP534529, | |||
EP1653331, | |||
EP2640136, | |||
EP2876945, | |||
JP2003087338, | |||
KR20030082724, | |||
KR20050023262, | |||
KR20090006183, | |||
KR20110106368, | |||
RE39427, | Oct 11 1985 | MLR, LLC A LIMITED LIABILITY COMPANY OF VIRGINIA ; SITI-SITES COM, INC | Cellular telephone data communication system and method |
TW201011553, | |||
TW201015289, | |||
TW201329695, | |||
WO52585, | |||
WO2004040796, | |||
WO2005074611, | |||
WO2007074343, | |||
WO2007146549, | |||
WO2008054974, | |||
WO2009039034, | |||
WO2009122380, | |||
WO2010022368, | |||
WO2010030768, | |||
WO2010125429, | |||
WO2012083486, | |||
WO2012128793, | |||
WO2014088862, | |||
WO2014165346, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jan 12 2015 | KRISHNAMURTHY, ARUNN COIMBATORE | Qualcomm Incorporated | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 059097 | /0982 | |
Jan 14 2015 | PIUS, ROSHAN | Qualcomm Incorporated | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 059097 | /0982 | |
Jan 20 2015 | SUKUMAR, HARIHARAN | Qualcomm Incorporated | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 059097 | /0982 | |
Jan 21 2015 | KRISHNAMOORTHY, MURALIDHAR COIMBATORE | Qualcomm Incorporated | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 059097 | /0982 | |
Jan 22 2015 | BABBAR, UPPINDER SINGH | Qualcomm Incorporated | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 059097 | /0982 | |
Jan 23 2015 | KAUSHIK, VINOD HARIMOHAN | Qualcomm Incorporated | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 059097 | /0982 | |
Jan 26 2015 | DANAILA, ANDREI | Qualcomm Incorporated | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 059097 | /0982 | |
Jan 27 2015 | MAHESHWARI, SHAILESH | Qualcomm Incorporated | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 059097 | /0982 | |
Feb 04 2015 | KLACAR, NEVEN | Qualcomm Incorporated | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 059097 | /0982 | |
Feb 06 2015 | MITRA, ALOK | Qualcomm Incorporated | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 059097 | /0982 | |
Feb 10 2015 | KUMAR, VANITHA ARAVAMUDHAN | Qualcomm Incorporated | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 059097 | /0982 | |
Feb 10 2015 | KUMAR, VAIBHAV | Qualcomm Incorporated | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 059097 | /0982 | |
Jul 28 2021 | Qualcomm Incorporated | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Jul 28 2021 | BIG: Entity status set to Undiscounted (note the period is included in the code). |
Dec 05 2024 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Dec 05 2024 | M1555: 7.5 yr surcharge - late pmt w/in 6 mo, Large Entity. |
Date | Maintenance Schedule |
Jul 25 2026 | 4 years fee payment window open |
Jan 25 2027 | 6 months grace period start (w surcharge) |
Jul 25 2027 | patent expiry (for year 4) |
Jul 25 2029 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jul 25 2030 | 8 years fee payment window open |
Jan 25 2031 | 6 months grace period start (w surcharge) |
Jul 25 2031 | patent expiry (for year 8) |
Jul 25 2033 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jul 25 2034 | 12 years fee payment window open |
Jan 25 2035 | 6 months grace period start (w surcharge) |
Jul 25 2035 | patent expiry (for year 12) |
Jul 25 2037 | 2 years to revive unintentionally abandoned end. (for year 12) |