A method and device for extending the useful life of an energy storage device, for a mobile computing device is described. The method (150) can include the steps of: running (155) a first application in synchronous communication with a first application server; detecting (160) energy expenditure while running the first application; and synchronizing (165) a subsequent application based on the detected energy expenditure, by: continuing to communicate with the subsequent application if the detected energy expenditure is below a threshold, and discontinuing communication if the detected energy expenditure is above a threshold. Advantageously, this method can provide substantial energy savings in mobile computing device applications.
|
1. A method for lengthening the battery life of a mobile computing device, comprising the steps of:
running a first application in a mobile computing device in synchronous communication with an application server,
running a second application in a mobile computing device in synchronous communication with a second application server,
detecting energy expenditure in real time, while synchronizing the first application, and
synchronizing a second application based on the detected energy expenditure, by: continuing to communicate if the detected energy expenditure is below a threshold, and discontinuing communication if the detected energy expenditure is above a threshold, wherein at least one of the first and the second application in the mobile computing device has an assigned communication priority which is based on at least a time elapsed since a previous communication for the second application.
11. A method for lengthening the battery life of a mobile computing device running at least a first and second application in synchronous communication with one or more application servers, comprising the steps of:
assigning a communication priority for at least one of a first and a second application in a mobile computing device, wherein the assigned communication priority is based on at least a time elapsed since a previous communication for the second application,
starting communication for the first application,
measuring an energy expenditure in real time, concurrent with the started communication,
determining an energy cost threshold based on the measured expenditure,
continuing communicating for the second application if the assigned communication priority for the second application exceeds the determined energy cost threshold, and
ending communicating if the assigned communication priority for the second application is less than the determined energy cost threshold.
18. A mobile computing device configured with an energy storage device, comprising:
a housing;
a controller coupled to the housing, the controller configured to run a first application in synchronous communication with a first application server, and a second application in synchronous communication with at least one of the first application server and a second application server;
memory coupled to the controller;
a wireless transceiver coupled to the controller for synchronizing application data between the mobile computing device and at least the first application server;
an energy expenditure detector configured to detect energy being expended in real time, by the mobile computing device while synchronizing the first application data; and
a power saving module configured to control communication for a second application based on the detected energy expenditure, by: continuing to synchronize for the second application if the detected energy expenditure is below a threshold, and discontinuing synchronization if the detected energy expenditure is above a threshold; wherein at least one of the first and the second application in the mobile computing device has an assigned communication priority which is based on at least a time elapsed since a previous communication for the second application.
2. The method of
3. The method of
4. The method of
5. The method of
6. The method of
the continuing step includes reducing the second synchronous communication interval to the first synchronization interval times an integer number less than the nominal integer number.
7. The method of
the discontinuing step includes increasing the second synchronous communication interval to the first synchronization interval times an integer number greater than the nominal integer number.
8. The method of
9. The method of
10. The method of
12. The method of
13. The method of
14. The method of
15. The method of
16. The method of
17. The method of
19. The mobile computing device of
20. The mobile computing device of
|
The field of the invention relates to mobile computing devices and the energy storage device for mobile computing devices.
Mobile computing devices, such as mobile or wireless stations, cellphones, radios, laptops, wireless communication devices and the like, operate with a power storage device with a limited energy supply, such as a battery, fuel cell or the like. A mobile computing device needs a power source and, in many cases, this power source is a battery. For instance, cellular phones use various types of batteries to operate. The amount of time a mobile station can typically operate before the energy of the battery is consumed (which is often referred to as “battery life”), is often an important criteria that consumers use in choosing one brand or type of mobile computing device over another brand. The terms battery, energy storage device and power storage device are used interchangeably herein.
While the power storage device is generally rechargeable, it may not be convenient or even possible for a user to recharge. Accordingly, there is a need to maximize the useful operational time of a wireless computing device.
Additionally, different operating environments can cause the user to be surprised and/or frustrated when the battery runs out much more quickly than would typically be expected by the user. Thus, a variation or unexpected short battery life is very undesirable from a user perspective.
This is a particularly relevant problem for mobile computing devices running applications supported by an applications server because of the power drain due to the wireless data exchange between the mobile device and the server, since each upload or download causes the consumption of energy in the mobile device and server. The problem is especially acute in the mobile device, which is typically battery powered and has finite energy available. For example, a mobile device may employ an email server for uploading and downloading email in support of an email application, a contact server for uploading and downloading contact status in support of a social networking application, an information server for downloading movies, news, music, etc. in support of a media playing application, and a back-up/storage server for uploading mobile device data in support of a data back-up application. Typically, the mobile device and application server synchronize on a regular or periodic basis, i.e. they communicate, upload, download or exchange information at essentially regular or fixed time intervals, and in this document, the exchange of data between and mobile device running an application and an application server is referred to as “synchronization”, and the amount of time between data exchanges is referred to as the “synchronization interval” or “sync interval”, for a given application and application server. Thus, there is a need for increasing a length of a synchronization interval, in order to conserve energy in a power storage device of a wireless computing device, such as a mobile station, in order to prolong useful power storage device or battery life.
Generally, there is a tradeoff between good application performance which requires more frequent data exchanges, i.e. a short synchronization interval, and good battery life which requires less frequent data exchanges, i.e. a long synchronization interval. For example, performance of an email application may be determined by the amount of time it takes to receive an email, and performance of a social networking application may be determined by the delay in receiving a change in a social contact's status.
It is known to vary the synchronization interval according to a schedule, such that the period between downloading increases when certain applications are less likely to require frequent downloads. However, the power drain due to the wireless data exchange with the application server is variable. The available wireless networks may be such that only data transmission methods requiring high power consumption are available. For example, network conditions may be such that the mobile device transmitter may operate at a high power level, or the mobile device receiver may operate with a high level of bit errors resulting in retransmission. The available networks or network conditions may be varying with time due to device mobility into and out of network coverage. Even when the device is not in motion, variable network conditions such as network traffic level, network interference, and channel fading can cause power drain due to the wireless data exchange to vary with time. Hence, the optimum download period cannot always be predicted and scheduled.
Thus, there is a need to provide a longer downloading synchronization interval or period for drawing less energy consumption when the energy required for synchronization is higher, while also providing shorter downloading synchronization interval when the energy required for synchronization is lower, thereby taking advantage of favorable network conditions which may be temporary.
Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions and/or relative positioning of some of the elements in the figures may be exaggerated relative to other elements to help to improve understanding of various embodiments of the present invention. Also, common but well-understood elements that are useful or necessary in a commercially feasible embodiment are often not depicted in order to facilitate a less obstructed view of these various embodiments of the present invention. It will further be appreciated that certain actions and/or steps may be described or depicted in a particular order of occurrence while those skilled in the art will understand that such specificity with respect to sequence is not actually required. It will also be understood that the terms and expressions used herein have the ordinary meaning as is accorded to such terms and expressions with respect to their corresponding respective areas of inquiry and study except where specific meanings have otherwise been set forth herein.
A system and method is described that controls the length of the synchronization interval associated with a mobile computing device (or mobile station, wireless communication device, wireless computing device, mobile or wireless station, cellphone, radio, laptop and the like, such terms used interchangeably herein) running an application in periodic or synchronous communication with an application server, in order to conserve and improve the life of an energy storage device in connection with a mobile computing device. The approaches described herein allow a mobile computing device to operate in a variety of conditions and provide a variety of bandwidth intensive services without substantially compromising the energy storage device in association with the mobile station.
Controlling the synchronization interval of the periodic or synchronous communication between the mobile computing device and application server may be made in a variety of different ways. In one example, the length of the synchronization interval for a lower priority application may be controlled depending on the energy drain measurement while synchronizing a higher priority application. In another example the length of the synchronization interval for a lower priority application may be dynamically decreased, and in another example, the length may be dynamically increased, depending on the energy drain measurement while synchronizing a higher priority application, as detailed below.
Further adjustments may also be made. For instance, if the synchronization interval has been shortened, the length may be returned to its original length, at the next communication cycle, after the expiration of a period of time or by an over ride, again as detailed below.
Thus, approaches are described whereby the power storage device of the mobile computing device is improved even under less than ideal operating conditions and different modes of operation. Consequently, the mobile computing device can operate under a variety of operating conditions.
Referring now to
The mobile computing devices 102 and 110 may be any type of mobile wireless device. The mobile computing devices 102 and 110 each include an energy detector 112 for detecting the energy expended in the mobile computing devices 102 and 110, as detailed below. For example, the mobile computing devices 102 and 110 may be cellular telephones, pagers, radios, mobile stations, personal computers, or personal digital assistants. As should be understood by those skilled in the art, other examples of mobile computing devices are possible.
The RANs 104 and 108 may be any device or combination of devices that allow the mobile computing devices 102 and 110 to have access to the communication infrastructure 106. For example, the RANs 104 and 108 may include access points, base stations, base station controllers, antennas, and other types of devices that facilitate these communications.
The communication infrastructure 106 preferably includes devices and/or networks that allow communications to be made between mobile stations. For example, the infrastructure 106 may include switches, servers, storage devices, and networks (e.g., wireless networks, the Internet, landline telephone networks) that facilitate communications between the mobile computing devices 102 and 110.
Referring now to
In a preferred embodiment, the running step 155 includes running a priority application, and the synchronizing step 165 includes substantially immediately communicating for a subsequent application which is a lower priority application, when the detected energy expenditure is low, or refraining from communicating for the subsequent application when the detected energy expenditure is high.
This can improve performance and a user's experience, by providing communication between a mobile computing device and application server for lower priority applications when network conditions are favorable, as determined by power drain measurements while providing communications between the mobile computing device and an application server for higher priority applications. Advantageously, these features allow the mobile computing device to upload application data to a server, when network conditions or other energy determining factors are favorable. For example, the first application could be a social network application such as face-book or twitter and the second could be a data back-up application. The social network applications, which include real-time communication of personal messages, status and other personal data, is the higher priority application requiring periodic or synchronous server communications with a period or a synchronization interval on the order of 10 minutes. The data back-up application is the lower priority application requiring a synchronization interval on the order of 12 hours. In this example, over the course of 12 hours while the social network application synchronizes on the order of 72 times the network conditions may vary significantly. For example, the wide area network RF power level may vary due to variation in path-loss between the mobile device and the network base-station, or due to network traffic, or due to moving to a network with different capabilities, such as to a different wide area network, or a local area network. Thus the data back-up synchronization occurs at the more opportune times from the standpoint of power drain, as communication network conditions and other power determining conditions vary.
In more detail, the running step 155 can include synchronous communication including at least one of uploading application data from a mobile computing device to an application server and downloading application data to the mobile computing device from an application server.
In more detail, the first application can include at least one of email, instant messaging, and social networking and the subsequent application can include these, as well as, photo uploading, and data back-up, for example.
The method 150 can further include the step of completing the running of the first application even if the detected energy expenditure is above the threshold. Advantageously, this feature at least completes a users desired application. For example, a lower priority application may have a nominal synchronization interval associated with it, which is longer than the synchronization interval for the higher priority application, and the synchronizing 165 step may include continuing to communicate for the lower priority application on a nominal synchronization interval even if the detected energy expenditure is above the threshold. In this way the server communication for the lower priority application may be advanced in time if energy expenditure is low, but is not delayed beyond the nominal synchronization interval time.
The continuing step can include substantially immediately starting communication with the first application server for the subsequent application, if both the first and second application run on the same application server. In this way the communication will continue for the second application without stopping and restarting, or otherwise interrupting, which can cause unnecessary energy expenditure. Alternately, the continuing step can include substantially immediately starting communication with a second application server for the second application. In this way the communication will commence for the second application immediately after the ending of communication for the first application, without delays or interruptions which can cause unnecessary energy expenditure. Furthermore, in this way the second application communication is likely to begin with similar network conditions as with the first application communications, which may correspond to low energy expenditure, as detected with respect to step 160.
The detecting step 160 can include at least one of measuring a device current, a battery current, device power consumption, a battery power output, a device energy consumption, and a battery energy output, a device current per communication bit, a battery current per communication bit, device power consumption per communication bit, a battery power output per communication bit, a device energy consumption per communication bit, and a battery energy output per communication bit. These detecting and measuring steps are collectively referred to as detecting energy expenditure herein.
For example, the detecting 160 step may include measurement of current drain in a radio frequency transceiver device which varies, for example, with data modulation method or RF power level which varies according to network conditions. Alternatively, instead of a current drain measurement, power may be measured, which is a measure of voltage times current. Alternatively, instead of current or power measurements, energy may be measured, which is a measure of current or power times time. Alternatively the current, power, or energy may be measured in a component of the transceiver, such as the RF power amplifier, or in the entire computing device, which may include the transceiver and an application controller, user interface, etc. Alternatively the current, power or energy may be measured at the output of an energy storage device such as a battery. Alternatively, the current, power or energy may be scaled by the amount of data communicated or the communication data rate, which also varies with network conditions, thereby providing, for example, a measure of current, power or energy per communication bit, byte, or word, etc.
In one embodiment, the method 150 can include the running 155 step including providing a mobile computing device in synchronous application server communication for the first application on a first synchronous communication interval, and in synchronous application server communication for the subsequent application on a second nominal synchronous communication interval equal to the first synchronous communication interval times a nominal integer number, and the synchronizing step 165 includes reducing the second synchronous communication interval to the first synchronization interval, times an integer number less than the nominal integer number. In this way the server communication for the second application is completed while energy expenditure is low.
In another embodiment, the method 150 can include the running 155 step including providing a mobile computing device in synchronous application server communication for the first application on a first synchronous communication interval, and in synchronous application server communication for the subsequent application on a second nominal synchronous communication interval equal to the first synchronous communication interval times a nominal integer number, and an ending step includes increasing the second synchronous communication interval to the first synchronization interval times an integer number greater than the nominal integer number. In this way the server communication for the second application is postponed while energy expenditure is high.
In more detail, the running step 155 can include synchronous communication including at least one of uploading application data from a mobile computing device to an application server and downloading application data to the mobile computing device from an application server.
In one embodiment, the method 150 can include providing a programmable mode that allows the user to program preferential first applications, and subsequent second, third and so forth applications. For example, each application may have a pre-assigned priority number or value, and upon starting the application the priority number or value is compared with priority numbers for the other running applications, and the application with the highest priority number is the preferential first application. Alternatively, when an application is started, an associated nominal synchronization interval may be compared against the nominal synchronization interval for other running applications, and the application having the shortest nominal synchronization interval may be the preferred first application(s).
The term application, as used herein, can include at least one of email, instant messaging, social networking, news feeding, gaming, media uploading (e.g. photo uploading), media downloading (e.g. music downloading), and data back-up, or any other application requiring data synchronization or otherwise having regular communication with an application server.
Referring now to
The display 240 can be a liquid crystal display (LCD), a light emitting diode (LED) display, a plasma display, or any other means for displaying information. The transceiver 250 may include a transmitter and/or a receiver. The audio input and output circuitry 230 can include a microphone, a speaker, a transducer, or any other audio input and output circuitry. The user interface 260 can include a keypad, buttons, a touch pad, a joystick, an additional display, or any other device useful for providing an interface between a user and an electronic device. The memory 270 may include a random access memory, a read only memory, an optical memory or any other memory that can be coupled to a wireless communication device.
In more detail, in one embodiment, the mobile computing device 200 with an energy storage device in
Advantageously, the power saving module 290 and synchronization interval adjustment module 294, can allow the mobile computing device 200 to dynamically manage energy expenditures such as the energy consumption of the device 200 or module therein such as transceiver 250, or the energy output of a power storage device 215, such as a battery, a fuel cell or electrochemical capacitor. This arrangement can provide a longer useful life for mobile computing device before having to recharge a user's power storage device 215. This can be accomplished by uploading or downloading of application data when energy expenditure is low, and refraining from uploading or downloading of application data when energy expenditure is high.
In one arrangement, the synchronization interval adjustment module 294 is configured to shorten a nominal synchronization interval between the mobile computing device and the application server when the energy expenditure is low or below a threshold. Likewise, the synchronization interval adjustment module 294 can be configured to increase a nominal synchronization interval when energy expenditure is high or above a threshold.
In another embodiment, the power savings module 290 is configured to trigger synchronization of a lower priority application when the priority level, value or number exceeds a threshold which is based on the measured energy expenditure from the energy detector 292. In this embodiment the priority level, value or number associated with the lower priority application may dynamically change with the application state, and more specifically with the amount of time which has elapsed since the last synchronization. Thus, a dynamic prioritization associated with the application may circumvent the need for providing a nominal synchronization interval associated with the application.
In one embodiment, the synchronization interval adjustment module 294 is configured to return to a previous or default synchronization interval setting or prioritization value based on at least one of: a default setting, a user controlled setting, an application server controlled setting, an application state, a present time, a present day, a present date, a state of a clock, and a state of a calendar, as detailed herein.
In more detail, the synchronization interval adjustment module 294 is configured to provide a synchronization mode having: a dormant mode including a longer synchronization interval when it is unlikely that a higher application performance is needed by a user; and an active mode including a shorter synchronization interval when the motion detector 292 indicates that it is likely that higher application performance is needed by a user. Alternatively the dormant mode includes a lower synchronization priority value and the active mode including a higher synchronization priority value. In either mode the synchronization priority value may increase with the amount of elapsed time since the last synchronization.
Advantageously, this feature provides a useful compromise for energy conservation of the power storage device on one hand, while also accommodating a user's demand for a short synchronization interval when desired, on the other.
In one embodiment, the instant invention is incorporated into the communication infrastructure and in another it can be incorporated into a wireless communication device. More specifically, the power saving module 290 and the sync interval adjustment module 294 may be incorporated into the mobile device 200 or alternatively into the infrastructure 106. Other placements are possible, such as including being in both.
Thus, approaches are described whereby the energy storage device of a mobile station is improved regardless of the operating environment or mode of the mobile station. Consequently, the mobile computing device can operate in a variety of operating conditions and utilize power-consuming services, while maintaining and improving the lifetime of an energy storage device of the mobile computing device. Because of the method, structure and disclosed approaches detailed herein, the user experience can be significantly enhanced.
Referring now to
The mobile computing device 400 in
The display 440 in
In yet more detail, and in one embodiment, the mobile computing device 400 configured with an energy storage device in
Advantageously, the power saving module 490 and synchronization interval adjustment module 494 can allow the mobile computing device 400 to dynamically manage energy expenditures, such as the energy consumption of the device 400 or module therein such as transceiver 450, or the energy output of a power storage device 415, such as a battery, a fuel cell or electrochemical capacitor. This arrangement can provide a longer useful life for a mobile computing device before having to recharge a user's power storage device 415, by uploading or downloading of application data when energy expenditure is low, and refraining from uploading or downloading of application data when energy expenditure is high.
In one arrangement, the synchronization interval adjustment module 494 is configured to shorten a nominal synchronization interval between the mobile computing device and the application server, when the energy expenditure is low or below a threshold. Likewise, the synchronization interval adjustment module 494 can be configured to increase a nominal synchronization interval when energy expenditure is high or above a threshold.
In another embodiment, the power savings module 490 is configured to trigger synchronization of a lower priority application when the priority level, value or number exceeds a threshold which is based on the measured energy expenditure from the battery fuel gauge 492. In this embodiment the priority level, value or number associated with the lower priority application may dynamically change with the application state, and more specifically with the amount of time which has elapsed since the last synchronization. Thus, a dynamic prioritization associated with the application may circumvent the need for providing a nominal synchronization interval associated with the application.
In one embodiment, the synchronization interval adjustment module 494 is configured to return to a previous or default synchronization interval setting or prioritization value based on at least one of: a default setting, a user controlled setting, an application server controlled setting, an application state, a present time, a present day, a present date, a state of a clock, and a state of a calendar.
In more detail, in one arrangement, the synchronization interval adjustment module 494 is configured to provide a synchronization mode having: a dormant mode including a longer synchronization interval when it is unlikely that a higher application performance is needed by a user; and an active mode including a shorter synchronization interval when the motion detector 492 indicates that it is likely that higher application performance is needed by a user. Alternatively the dormant mode includes a lower synchronization priority value and the active mode including a higher synchronization priority value. In either mode the synchronization priority value may increase with the amount of elapsed time since the last synchronization. Advantageously, this feature provides a useful compromise for energy conservation of the power storage device (battery) on one hand, while also accommodating a user's demand for a short synchronization interval when desired, on the other.
In one embodiment, the instant invention is incorporated into the communication infrastructure and in another it can be incorporated into a wireless communication device. Other placements are possible, such as including being in both.
Thus, approaches are described whereby the energy storage device of a mobile station is improved regardless of the operating environment or mode of the mobile station. Consequently, the mobile computing device can operate in a variety of operating conditions and utilize power-consuming services, while maintaining and improving the lifetime of an energy storage device or battery of the mobile computing device. Because of the method, structure and disclosed approaches detailed herein, the user experience can be significantly enhanced.
Turning to
In one exemplary embodiment, the first application is a higher priority application and the second application is a lower priority application. For example, the first may be an email program, having a synchronization interval on the order of 5 minutes and the second may be a picture uploading application for which the user may set a priority value resulting in nominal synchronization interval of 2 hours for conditions in which energy expenditure is high, but which will have a shorter synchronization interval when network conditions allow lower energy expenditure.
The starting step 510 can include starting communication for the first application, i.e. synchronizing the first application, on a first application synchronization interval based on at least one of: a default setting, a user controlled setting, an application server controlled setting, an application state, a present time, a present day, a present date, a state of a clock, and a state of a calendar. In this way the nominal synchronization interval can be controlled according to the application state such that, for example, when the application is dormant or is likely to be dormant, the synchronization interval is longer, and when the application active, or is likely to be active, the synchronization interval is shorter.
In one embodiment, the assigning step 505 includes prioritizing based on a time elapsed since a previous communication for the second application. Thus there may not be a nominal synchronization interval setting per se, but instead there may be an effective nominal synchronization interval based on how quickly the priority value changes with elapsed time.
In more detail, the method 500 can further include running at least a first and second application in synchronous communication with one or more application servers, the synchronous communication includes uploading application data from a mobile computing device to an application server and downloading application data to a mobile computing device from the application server. For example, the first and second applications may include at least one of email, instant messaging, gaming, photo uploading and data back-up, and social networking which includes uploading and downloading of personal status e.g. location, presence, availability, activity, health, mood, etc.
Referring to
Continuing with method 600, the synchronization interval controller 656 runs concurrently with application 610. It begins with initialization 660, which includes the steps: Determining a suitable minimum synchronization interval counter value, IntCount, for higher priority application; and setting register I=IntCount. The process continues to the steps synchronizing and measuring 665 steps in which application server communication is started for the higher priority application, and the energy expenditure is measured. The process further continues with determining whether the synchronization priority (as determined from register 655) is greater than the energy expenditure value 670. If the synchronization priority value is greater than the energy expenditure value or Yes, then the process continues to synchronize 675 the lower priority application, followed by delay timer 680. If the synchronization priority value is not greater than the energy expenditure value, or No in
Referring to
The process of controlling the synchronization interval 736 runs concurrently with the applications 710, 725, beginning with setting the N register 740 to the nearest integer of the ratio of lower priority nominal synchronization interval to the higher priority synchronization interval. In this way the lower priority synchronizations are contiguous in time to the higher priority synchronization thereby reducing unnecessary stopping and starting of the communication circuits which can waste energy. The process continues to the step of setting the I register 745 to the synchronization interval of the higher priority application, and then to the synchronizing and measuring 750 steps, in which the application server communication is started for the higher priority application, and the energy expenditure is measured. The process continues with determining 755 whether the synchronization priority (as determined from register 735) is greater than the energy expenditure value. If the synchronization priority value is greater than the energy expenditure value (or “Yes” in decision diamond 755), then the process continues to synchronizing the lower priority application 760, followed by resetting of the N register 775 to the nearest integer of the ratio of lower priority nominal synchronization interval to the higher priority synchronization interval, followed by starting timer 780. If at 755 the synchronization priority value is not greater than the energy expenditure value (or “No” in decision diamond 755), then the process goes to decrementing the N register 765, followed by determining if N=0 770. If at decision diamond 770 it is determined that N=0 or “Yes”, then the nominal synchronization interval is completed for the lower priority application and the lower priority application is synchronized 760. If at decision diamond 770, it is determined that N≠0 or “No”, then the process skips to timer 780 comprising delay T 785, decrementing the value of register I 790, and determining if I=0 795. If at decision diamond 795 it is determined that I=0 then the delay I*T is completed and the process returns to the synchronizing and measuring step 665. If at decision diamond 795 it is determined that I≠0 then the delay timer is not complete and the process returns to delay T 630. In this way the higher priority application exchanges data with the application server with synchronization interval I*T, and the lower priority application synchronizes if the synchronization priority value exceeds the energy expenditure value, or the synchronization interval I*N*T is completed. The maximum low priority synchronization interval is thus I*N*T which is approximately the nominal low priority synchronization interval from register 720 as determined by the application 725. Reducing the low priority synchronization interval will occur depending on the synchronization priority value and the expenditure value. Thus the desired benefit is achieved in that the synchronization interval varies with energy expenditure which varies with network conditions.
Referring to
The process of controlling the synchronization interval 836 runs concurrently with the applications 810, beginning with the initial step 840 of determining number of running applications=AppCount; for each application assigning application number, A, from 1 to AppCount in order of synchronization interval value, as determined by register 820; and for each A, setting N to the nearest integer of the ratio of lower priority nominal synchronization interval to the higher priority synchronization interval, i.e. N(A)=NINT [Interval (A)/Sync Interval (AppCount)].
The next steps involve setting the I register 845 to the synchronization interval of the highest priority application, and then synchronizing and measuring step in 850. In step 850 the application server communication is started for the highest priority application, and the energy expenditure is measured. The process continues with setting the A register to AppCount 855, decrementing the A register 860, and determining 865 whether the synchronization priority for application A (as determined from register 835) is greater than the energy expenditure value. If the synchronization priority value is greater than the energy expenditure value or “Yes”, then the process continues to synchronize application A 870, followed by resetting of the N register 875 to the nearest integer of the ratio of lower priority nominal synchronization interval to the higher priority synchronization interval, and from there the process returns to the step of decrementing the A register 860. If at 865 the synchronization priority value is not greater than the energy expenditure value or “No”, then the process goes to determining if A=0 880. If at step 880 it is determined that A≠0 the process continues to the step of decrementing the N(A) register 885, followed by determining if N(A)=0 890. If at 890 it is determined that N(A)=0 then the process goes to determining step 870. If at 890 it is determined that N(A)≠0 then the process goes to the step of decrementing A 860. If at 880 it is determined that A=0 the process continues to timer 895 comprising delay T 896, decrementing the value of register I 897, and determining if I=0 898. If at 898 it is determined that I=0 then the delay I*T is completed and the process returns to setting the I register 845. If at 898 it is determined that I≠0 then the delay timer is not complete and the process returns to delay T 630. In this way the higher priority application exchanges data with the application server with synchronization interval I*T, and the lower priority applications synchronize if the synchronization priority value exceeds the energy expenditure value, or the synchronization interval I*N(A)*T is completed. The maximum priority synchronization interval for application A is thus I*N(A)*T which is approximately the nominal priority synchronization interval from register 820 as determined by the applications 810. Reducing of the low priority synchronization interval will occur depending on the synchronization priority value and the expenditure value. Thus the desired benefit is achieved in that the synchronization interval varies with energy expenditure which varies with network conditions.
Those skilled in the art will recognize that a wide variety of modifications, alterations, and combinations can be made with respect to the above described embodiments without departing from the broad scope of the invention, and that such modifications, alterations, and combinations are to be viewed as being within the scope of the invention.
Black, Gregory R., Carlson, Mark J.
Patent | Priority | Assignee | Title |
10039029, | Jul 26 2010 | Seven Networks, LLC | Predictive fetching of mobile application traffic |
10091734, | Jul 26 2010 | Seven Networks, LLC | Optimizing mobile network traffic coordination across multiple applications running on a mobile device |
10097477, | Jun 03 2013 | Seven Networks, LLC | Blocking/unblocking algorithms for signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols |
10136441, | Jul 26 2010 | Seven Networks, LLC | Systems and methods of buffering application data operable at a delivery control server |
10154432, | Jul 26 2010 | Seven Networks, LLC | Mobile application traffic optimization |
10397367, | Nov 01 2010 | Seven Networks, LLC | Optimization of resource polling intervals to satisfy mobile device requests |
10601951, | Nov 01 2010 | Seven Networks, LLC | Optimization of resource polling intervals to satisfy mobile device requests |
Patent | Priority | Assignee | Title |
6239729, | Nov 26 1997 | Seiko Epson Corporation | Image processor and integrated circuit for the same |
7054399, | Sep 29 2000 | Rockwell Technologies, LLC; ROCKWELL AUTOMATION TECHNOLOGIES, INC | Low overhead synchronized activation of functional modules |
7554441, | Oct 14 2005 | I D SYSTEMS, INC | System and method for real-time management of mobile resources |
20020046299, | |||
20030103026, | |||
20030191976, | |||
20030217181, | |||
20040025067, | |||
20060194549, | |||
20080004063, | |||
20080049714, | |||
20080165714, | |||
20090061925, | |||
20090164810, | |||
20100050180, | |||
20100115048, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Apr 24 2009 | BLACK, GREGORY R | Motorola, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 022599 | /0835 | |
Apr 27 2009 | Motorola Mobility LLC | (assignment on the face of the patent) | / | |||
Apr 27 2009 | CARLSON, MARK J | Motorola, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 022599 | /0835 | |
Jul 31 2010 | Motorola, Inc | Motorola Mobility, Inc | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 025673 | /0558 | |
Jun 22 2012 | Motorola Mobility, Inc | Motorola Mobility LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 028829 | /0856 | |
Oct 28 2014 | Motorola Mobility LLC | Google Technology Holdings LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 034227 | /0095 |
Date | Maintenance Fee Events |
Apr 16 2018 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Apr 14 2022 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Date | Maintenance Schedule |
Oct 14 2017 | 4 years fee payment window open |
Apr 14 2018 | 6 months grace period start (w surcharge) |
Oct 14 2018 | patent expiry (for year 4) |
Oct 14 2020 | 2 years to revive unintentionally abandoned end. (for year 4) |
Oct 14 2021 | 8 years fee payment window open |
Apr 14 2022 | 6 months grace period start (w surcharge) |
Oct 14 2022 | patent expiry (for year 8) |
Oct 14 2024 | 2 years to revive unintentionally abandoned end. (for year 8) |
Oct 14 2025 | 12 years fee payment window open |
Apr 14 2026 | 6 months grace period start (w surcharge) |
Oct 14 2026 | patent expiry (for year 12) |
Oct 14 2028 | 2 years to revive unintentionally abandoned end. (for year 12) |