US20150351037A1 - Adaptive battery life extension - Google Patents

Adaptive battery life extension Download PDF

Info

Publication number
US20150351037A1
US20150351037A1 US14/290,795 US201414290795A US2015351037A1 US 20150351037 A1 US20150351037 A1 US 20150351037A1 US 201414290795 A US201414290795 A US 201414290795A US 2015351037 A1 US2015351037 A1 US 2015351037A1
Authority
US
United States
Prior art keywords
battery
model
time
predicted
determining
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US14/290,795
Other versions
US9210662B1 (en
Inventor
Alexander B. Brown
Gaurav Kapoor
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Priority to US14/290,795 priority Critical patent/US9210662B1/en
Assigned to APPLE INC. reassignment APPLE INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: KAPOOR, GAURAV, BROWN, ALEXANDER B.
Priority to EP15722839.6A priority patent/EP3149502B1/en
Priority to KR1020167033208A priority patent/KR101940389B1/en
Priority to CN201580028012.8A priority patent/CN106415296B/en
Priority to PCT/US2015/028353 priority patent/WO2015183459A1/en
Priority to US14/931,596 priority patent/US9615333B2/en
Publication of US20150351037A1 publication Critical patent/US20150351037A1/en
Publication of US9210662B1 publication Critical patent/US9210662B1/en
Application granted granted Critical
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/36Arrangements for testing, measuring or monitoring the electrical condition of accumulators or electric batteries, e.g. capacity or state of charge [SoC]
    • G01R31/367Software therefor, e.g. for battery testing using modelling or look-up tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3212Monitoring battery levels, e.g. power saving mode being initiated when battery voltage goes below a certain level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01MPROCESSES OR MEANS, e.g. BATTERIES, FOR THE DIRECT CONVERSION OF CHEMICAL ENERGY INTO ELECTRICAL ENERGY
    • H01M10/00Secondary cells; Manufacture thereof
    • H01M10/42Methods or arrangements for servicing or maintenance of secondary cells or secondary half-cells
    • H01M10/4207Methods or arrangements for servicing or maintenance of secondary cells or secondary half-cells for several batteries or cells simultaneously or sequentially
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01MPROCESSES OR MEANS, e.g. BATTERIES, FOR THE DIRECT CONVERSION OF CHEMICAL ENERGY INTO ELECTRICAL ENERGY
    • H01M10/00Secondary cells; Manufacture thereof
    • H01M10/42Methods or arrangements for servicing or maintenance of secondary cells or secondary half-cells
    • H01M10/48Accumulators combined with arrangements for measuring, testing or indicating the condition of cells, e.g. the level or density of the electrolyte
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01MPROCESSES OR MEANS, e.g. BATTERIES, FOR THE DIRECT CONVERSION OF CHEMICAL ENERGY INTO ELECTRICAL ENERGY
    • H01M10/00Secondary cells; Manufacture thereof
    • H01M10/42Methods or arrangements for servicing or maintenance of secondary cells or secondary half-cells
    • H01M10/48Accumulators combined with arrangements for measuring, testing or indicating the condition of cells, e.g. the level or density of the electrolyte
    • H01M10/482Accumulators combined with arrangements for measuring, testing or indicating the condition of cells, e.g. the level or density of the electrolyte for several batteries or cells simultaneously or sequentially
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01MPROCESSES OR MEANS, e.g. BATTERIES, FOR THE DIRECT CONVERSION OF CHEMICAL ENERGY INTO ELECTRICAL ENERGY
    • H01M6/00Primary cells; Manufacture thereof
    • H01M6/50Methods or arrangements for servicing or maintenance, e.g. for maintaining operating temperature
    • H01M6/5044Cells or batteries structurally combined with cell condition indicating means
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/02Constructional features of telephone sets
    • H04M1/0202Portable telephone sets, e.g. cordless phones, mobile phones or bar type handsets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • H04W52/0261Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/36Arrangements for testing, measuring or monitoring the electrical condition of accumulators or electric batteries, e.g. capacity or state of charge [SoC]
    • G01R31/3644Constructional arrangements
    • G01R31/3647Constructional arrangements for determining the ability of a battery to perform a critical function, e.g. cranking
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01MPROCESSES OR MEANS, e.g. BATTERIES, FOR THE DIRECT CONVERSION OF CHEMICAL ENERGY INTO ELECTRICAL ENERGY
    • H01M10/00Secondary cells; Manufacture thereof
    • H01M10/42Methods or arrangements for servicing or maintenance of secondary cells or secondary half-cells
    • H01M10/425Structural combination with electronic components, e.g. electronic circuits integrated to the outside of the casing
    • H01M2010/4271Battery management systems including electronic circuits, e.g. control of current or voltage to keep battery in healthy state, cell balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/02Constructional features of telephone sets
    • H04M1/0202Portable telephone sets, e.g. cordless phones, mobile phones or bar type handsets
    • H04M1/026Details of the structure or mounting of specific components
    • H04M1/0262Details of the structure or mounting of specific components for a battery compartment
    • H04M2001/0204
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02EREDUCTION OF GREENHOUSE GAS [GHG] EMISSIONS, RELATED TO ENERGY GENERATION, TRANSMISSION OR DISTRIBUTION
    • Y02E60/00Enabling technologies; Technologies with a potential or indirect contribution to GHG emissions mitigation
    • Y02E60/10Energy storage using batteries

Definitions

  • Embodiments of the present invention relate generally to power management of a portable device. More particularly, embodiments of the invention relate to adaptive battery life extension of a portable device.
  • Power management of a data processing system often involves techniques for reducing the consumption of power by components in the data processing system.
  • a data processing system may be a laptop or otherwise portable computer, such as a handheld general purpose computer or a cellular telephone.
  • the management of power consumption in a portable device which is powered by one or more batteries is particularly important because better power management usually results in the ability to use the portable device for a longer period of time when it is using only battery power.
  • User level power management may try to extend the life of the battery by reducing power consumption at the cost of reduced performance as the battery approaches depletion. Most of the conventional systems perform such power management actions only when the battery is already very low. Sometimes this may amount to too little too late.
  • FIG. 1 is a block diagram illustrating an example of a portable device according to one embodiment of the invention.
  • FIG. 2 is a block diagram illustrating a hardware configuration of a portable device according to one embodiment of the invention.
  • FIG. 3 is a block diagram illustrating an adaptive battery life extension system according to one embodiment of the invention.
  • FIG. 4 is a flow diagram illustrating a method for predicting future battery condition according to one embodiment of the invention.
  • FIG. 5A is a flow diagram illustrating a method for determining whether a battery model is predictive according to one embodiment of the invention.
  • FIG. 5B is a flow diagram illustrating a method for determining correlations of different battery data sets according to one embodiment of the invention.
  • FIG. 6A is a block diagram illustrating a process of a predictive model according to one embodiment of the invention.
  • FIG. 6B is an example of a predictive model mapping function according to one embodiment of the invention.
  • FIG. 7A is a block diagram illustrating a process of a drain model according to one embodiment of the invention.
  • FIG. 7B is an example of a drain model mapping function according to one embodiment of the invention.
  • FIG. 8A is a block diagram illustrating a process of a direct model according to one embodiment of the invention.
  • FIG. 8B is an example of a direct model mapping function according to one embodiment of the invention.
  • FIG. 9 is a block diagram illustrating an example of a data processing system which may be used with one embodiment of the invention.
  • various battery condition models are utilized to predict future battery conditions for the purpose of extending the battery life of a battery of a mobile device before the next predicted recharge of the battery.
  • an adaptive battery life extension (ABLE) unit running within operating system determines or calculates a battery operating number (BON), also simply referred to as a battery number or battery condition representation, representing a battery condition at the point in time using the battery condition models.
  • BON battery operating number
  • the operation manager can decide whether to go ahead performing the operation or defer performing the operation until later or until the battery condition improves. For example, if the predicted battery condition is above a predetermined battery condition threshold (also referred to as battery number threshold), the operation is performed; otherwise, the operation may be deferred.
  • the battery models include at least a predictive model, a drain model, and a direct model.
  • the predictive model is configured to predict future battery conditions (e.g., future battery levels) based on past battery operating heuristics including battery levels captured at different points in time in the past and battery charging patterns during one or more periods of time in the past.
  • the drain model is configured to predict future battery conditions (e.g., future battery discharge rate) based on battery discharge patterns during a period of time in the past.
  • the direct model is configured to predict future battery conditions based on the current battery level at the point in time (e.g., by directly reading the battery level from the battery).
  • the ABLE unit determines a battery number presenting the battery condition based on the prediction provided by at least one of the predictive model, drain model, and direct model.
  • the battery condition is predicted as poor or alternatively, if it is predicted that the remaining battery life will not last before the predicted next recharge of the battery, one or more of those models may be adjusted, such that the battery condition will be considered poorer and more actions will be stopped or deferred to preserve battery life until the next predicted recharge of the battery (e.g., soft-landing).
  • the battery condition threshold may be raised to defer performing more actions.
  • each of the models may be periodically examined to determine whether the model is still predictive (e.g., accurate enough to predict) before using the model. If one model is not predictive, the ABLE may fall back to another model for prediction.
  • the predictive model may be a preferred model to predict the future battery conditions. However, if the predictive model is not predictive, the drain model becomes the primary model for prediction. Similarly, if the drain model is not predictive, the direct model may be utilized. However, a combination of one or more of the models may be utilized if they are all predictive. In the event that a model is not predictive, a new model may be generated or adjusted, for example, based on more recently captured or tracked battery activity history and/or user or application behaviors.
  • FIG. 1 is a block diagram illustrating an example of a portable device according to one embodiment of the invention.
  • portable device 100 may be a Smartphone (e.g., iPhoneTM), a media player (e.g., iPodTM), a tablet (e.g., iPadTM), a laptop (e.g., Mac BookTM), etc.
  • system 100 includes an operation manager 104 for managing software programs 110 hosted by an operating system and executed by a processor.
  • Operation manager 104 may be a system component of the operating system, such as, for example, a scheduler or a resource manager.
  • the operating system may be any kind of operating systems, such as, for example, iOSTM, WindowsTM, AndroidTM, LINUX, UNIX, or any other real-time or embedded operating systems.
  • system 100 includes an ABLE unit 101 configured to estimate or predict battery conditions at that point in time and/or in the near future (e.g., next one to two charging cycles of the battery) based on battery activity history 103 using one or more battery condition models 102 .
  • Battery activity history 103 may include past battery levels as well as past system and application and component activities.
  • battery activity history 103 may include activities of programs 110 and/or user behaviors captured by activity analyzer 108 and battery usage and discharge patterns of battery 107 captured by power manage unit (PMU) 105 and/or battery monitor 115 (also referred to as an battery activity monitor).
  • PMU power manage unit
  • Battery monitor 115 may be variously implemented by 1) interrogating operating system (OS) facilities such as the scheduler and performance monitor or other OS systems for monitoring application activity including CPU time and use of subsystems, such as graphics processing unit (GPU), encoder/decoders, GPS network etc., or 2) by an application programming interface (API) which allows more detailed description of application activity which can be provided for system libraries or by explicit calls from applications and services.
  • OS operating system
  • API application programming interface
  • Battery monitor 115 may be implemented as a part of PMU 105 .
  • Battery activity history 103 may be stored as one or more databases in a persistent storage device of system 100 .
  • Activity monitor/analyzer 108 may monitor the activities of programs 110 via a set of application programming interfaces (APIs) and compile and/or infer user intents, user activity trends, and user behaviors of utilizing mobile device 100 .
  • APIs application programming interfaces
  • battery condition models 102 are created to model and predict future battery conditions based on the past battery heuristics and user behaviors provided by battery activity history database 103 .
  • ABLE unit 101 utilizes one or more of battery models 102 to generate a battery number that represents a battery condition at that point in time and/or in the near future (e.g., next one to two charging cycles of the battery) based on the past battery usage and charging heuristics.
  • operation manager 104 when operation manager 104 attempts to schedule or start a particular operation (e.g., intense data processing such as computation, content download, video streaming, system updates), which may be triggered by one or more of the corresponding programs 110 , operation manager 104 communicates with ABLE unit 101 to inquire the current battery condition for the purpose of deciding whether it is appropriate to perform such an action based on the current battery condition. In response to the inquiry, ABLE unit 101 calculates a battery number representing the battery condition at that point in time based on past battery activity history 103 and/or current battery level using one or more of battery condition models 102 . The calculated battery number is then provided to operation manager 104 .
  • a particular operation e.g., intense data processing such as computation, content download, video streaming, system updates
  • an operation to be inquired herein refers to a discretionary or optional operation that is deferrable.
  • an operating system update from an operating system provider may be a discretionary operation since system 100 may be operating properly for a foreseeable future without the update, and such a system update operation is relatively expensive because it may involve downloading and installing a large amount of data.
  • some other necessary operations may be performed regardless of the battery condition. For example, antivirus scanning for a Web page currently being browsed by a browser may be considered as a necessary action.
  • the discretionary and necessary actions may be user configurable, for example, as a part of a power management profile or scheme.
  • operation manager 104 can decide whether to perform the intended operation given the battery condition represented by the battery number. For example, for a particular action associated with a particular program, if the battery number is above a certain battery condition threshold, the operation manager 104 may go ahead in scheduling or launching the action; otherwise, the action may be deferred.
  • each type of actions or each type of programs may be associated with a specific or different battery condition threshold. For a given battery number, some actions may be performed while some other actions may be deferred, dependent upon the specific thresholds associated with the types of the actions.
  • Such threshold information may also be stored in a database of a persistent storage device.
  • PMU 105 may include one or more power management agents (PMAs) to obtain power management status of hardware 106 and/or to perform certain power management actions on hardware 106 via the corresponding PMAs that include, but are not limited to, a backlight agent, a system-on-chip (SOC) agent, a baseband (e.g., RF frontend) agent, and a WiFi agent.
  • PMAs power management agents
  • Hardware 106 represents a variety of hardware devices or components, such as SOC chip 201 , backlight circuit 202 , baseband circuit 203 , WiFi component 204 , memory 205 , display 206 , multi-touch device or keyboard 207 , and battery, as shown in FIG. 2 .
  • battery usage monitor 115 is configured to monitor the daily battery usage and the daily battery charging pattern of portable device 100 , and to compile battery activity history 103 which are stored in a persistent storage device of portable device 100 .
  • a particular battery usage level at a given point in time can be used to determine, in view of battery activity history 103 , whether the user of portable device 100 is operating the portable device 100 in an abnormal manner (e.g., demanding more battery consumption than average), in which case certain power management actions may be performed on portable device to accommodate the abnormal usage of the portable device 100 .
  • activity analyzer 108 communicates with programs 110 via a set of APIs to obtain certain activity or event information of programs 110 . Based on the activities of the programs 110 , activity analyzer 108 can interpret or infer intent of a user that is currently utilizing the portable device and/or a period of time that the user intends to use the portable device without charging the battery. Based on the user intent or behaviors, ABLE 101 may instruct at least some of the PMAs in PMU 105 to perform certain power management actions on hardware 106 . Based on the user intent or behaviors, ABLE 101 or activity analyzer 108 may predict the next time the user will recharge the mobile device.
  • ABLE 101 may further communicate with, via operation manager 104 , one or more of programs 110 to cause the programs to adjust (e.g., increase or reduce) certain operating parameters of the programs in an attempt to optimize the utilization of the remaining power capacity of battery 107 .
  • FIG. 3 is a block diagram illustrating an adaptive battery life extension system according to one embodiment of the invention.
  • battery models 102 include at least a predictive model 301 , a drain model 302 , and a direct model 303 .
  • Predictive model 301 is configured to predict future battery conditions (e.g., future battery levels) based on past battery operating heuristics 103 , including battery levels captured at different points in time in the past and battery charging patterns during one or more periods of time in the past.
  • Drain model 302 is configured to predict future battery conditions (e.g., future battery discharge rate) based on battery discharge patterns in the past, which may be captured or determined by activity analyzer 108 or a user agent (not shown).
  • Direct model 303 is configured to predict future battery conditions based on the current battery level read by PMU 105 or battery monitor 115 from battery 107 at the point in time. ABLE unit 101 then determines battery number 315 presenting the battery condition based on the prediction provided by at least one of predictive model 301 , drain model 302 , and direct model 303 .
  • ABLE 101 includes model selection module 311 , battery number calculator 312 , and model generator 313 .
  • Model selection module 311 is configured to select one or more of models 301 - 303 to predict a battery level, which is utilized by battery number calculator to calculate battery number 315 .
  • model selection module 311 determines whether that particular model is predictive.
  • predictive model 301 is preferred over drain model 302 and drain model 302 is preferred over direct model 303 , etc.
  • model selection module 311 examines the predicted battery data predicted by predictive model 301 in view of actual battery data directly read from the battery over a period of time to determine whether predictive model 301 is still predictive, i.e., whether predictive model 301 is still accurate enough at the point in time to predict future battery conditions.
  • coefficient of determination techniques such as R-squared or R 2 , are utilized to determine whether the predicted data fits with the actual data. The coefficient of determination is to determine whether the predictive model is currently and/or for the foreseeable near future predictive.
  • R-squared indicates how well data points fit a statistical model, a line or curve. It is a statistic used in the context of statistical models whose main purpose is either the prediction of future outcomes or the testing of hypotheses, on the basis of other related information. It provides a measure of how well observed outcomes are replicated by the model, as the proportion of total variation of outcomes explained by the model.
  • R 2 There are several definitions of R 2 which are only sometimes equivalent. One class of such cases includes that of simple linear regression. In this case, if an intercept is included, then R 2 is simply the square of the sample correlation coefficient between the outcomes and their predicted values. If additional explanators are included, R 2 is the square of the coefficient of multiple correlation. In both such cases, the coefficient of determination ranges from 0 to 1.
  • correlation of predicted data amongst different period of times is examined to determine whether the predictive model's predictions are historically consistent. If predictive model 301 passes both tests, it can be utilized. Otherwise, drain model 302 may be utilized instead. Similarly, drain model 302 may be tested using similar techniques and if drain model 302 cannot be used, direct model 303 is utilized. In one embodiment, a combination of one or more of models 301 - 303 may be utilized.
  • one or more of models 301 - 303 may be adjusted by model generator 313 , such that the battery condition will be considered poorer and more actions will be stopped or deferred to preserve battery life until the next predicted recharge of the battery (e.g., soft-landing).
  • the battery condition threshold may be raised higher to defer more actions from being performed. Note that some or all of the components as shown in FIG. 3 may be implemented as software, hardware, or a combination thereof.
  • FIG. 4 is a flow diagram illustrating a method for predicting future battery condition according to one embodiment of the invention.
  • Method 400 may be performed by processing logic which may include software, hardware, or a combination thereof.
  • processing logic may be performed by ABLE unit 101 of FIG. 1 .
  • processing logic determines a first battery number representing a battery condition of a battery of a mobile device using a predictive model.
  • the predictive model is configured to predict future battery conditions based on a past battery usage of the battery.
  • processing logic determines a second battery number representing the battery condition using a drain model.
  • the drain model is configured to predict a future battery discharge rate based on a past battery discharge rate.
  • processing logic determines a third battery number representing the battery condition based on a current battery level corresponding to a remaining life of the battery at the point in time.
  • processing logic performs a power management action based on the battery condition derived from at least one of the first battery number, the second battery number and the third battery number.
  • FIG. 5A is a flow diagram illustrating a method for determining whether a battery model is predictive according to one embodiment of the invention.
  • Method 500 may be performed by processing logic which may include software, hardware, or a combination thereof.
  • processing logic may be performed by ABLE unit 101 of FIG. 1 .
  • processing logic performs a correlation analysis of predicted battery data (e.g., battery level, discharge rate) predicted by the battery model amongst at least two periods of time in the past.
  • processing logic performs a coefficient of determination analysis (e.g., R-squared) between the predicted battery data and the actual measured data over a period of time.
  • a coefficient of determination analysis e.g., R-squared
  • processing logic determine whether that particular model is predictive based on the correlation analysis and/or the coefficient of determination analysis.
  • the model is adjusted to provide a soft-landing condition. In one embodiment, soft landing is applied when the expected predicted battery level at any point in the future is poor, and the model is adjusted to generate different predictions which match a more a desirable battery state at that point in the future.
  • the model may be adjusted so that further prediction will result in a poorer battery condition.
  • the threshold for performing certain actions or events may be raised so that more actions may be deferred, for example, until the next predicted recharge time.
  • the model may also be adjusted to reflect a better battery condition allowing more actions to be performed, for example, before the next predicted recharge time.
  • a battery operating number is generally calculated for time now from the predicted level and actual level at this point in time.
  • processing logic In applying soft landing, processing logic initially sets a desired level TP[0][n] as today's TT[0] [n] by default. TP will be the desired level at that time in the day. If any TT[0][n] is below a predetermined battery threshold, processing logic applies a soft-landing algorithm to TP such that TP[0][n] is not below that battery threshold (e.g. 0%, 5%, or other). This algorithm will reduce the discharge rate over some portion of the desired battery levels over the day so as to 1) not enter the low battery threshold, and 2) even out the effective discharge rate over a period of time. In effect, this algorithm finds places where the device is placed on charge and interpolates backward to create a reasonable discharge rate which intercepts with some earlier good (or full) battery states, replacing the predicted battery levels with preferred ones which do not cause low battery.
  • a soft-landing algorithm e.g. 0%, 5%, or other
  • FIG. 5B is a flow diagram illustrating a method for determining correlations of different battery data sets according to one embodiment of the invention.
  • Method 550 may be performed as part of operations performed at block 501 of FIG. 5A .
  • processing logic selects multiple prior points in time of correlations (TCs) (e.g., 15 minute window around 10:00 am of 1 day ago, 2 days ago, and 7 days ago, etc.).
  • TCs time of correlations
  • the correlation is between a time period (e.g. 24 hours) for a first day offset (e.g. ⁇ 7), and for a second day offset (e.g.
  • the first day offset is a day expected to be representative of a current day (e.g., today)
  • the correlation is calculated by executing a correlation function of the set of numbers being one battery level for each time slot out of the time period (e.g., 24 hours) of the first day and the corresponding battery level for each time slot or window of the second day offset.
  • the battery usage patterns e.g., user behaviors
  • the past battery usage data on the same or similar time slot or window tend to more accurately represent the future battery usage around the same or similar time window in the future.
  • processing logic retrieves battery usage data (e.g., battery levels) corresponding to the selected TCs from the battery activity history database, where the battery activity history data has been previously collected as described above.
  • battery usage data e.g., battery levels
  • a predetermined threshold e.g. 70%
  • another model may be utilized instead.
  • another prior TC e.g., 3 days ago data
  • processing logic optionally fills in the missed data using approximate data from the earlier time slots (e.g., earlier 15 minutes) of the same TCs or some constants.
  • this approximation could take several forms, e.g. “linear” (interpolate between available points) or “constant” simply fill forward from earlier values.
  • constant is preferably utilized because it provides a more likely estimate of missing data in common cases. For example, the device is not active (therefore it is only draining slowly) or the device is off (therefore it is probably flat and not being charged).
  • processing logic calculates correlations between a current TC and each of the selected prior TCs, generating corresponding correlation coefficients.
  • processing logic performs the correlation calculation and generates correlations C[ ⁇ 1], C[ ⁇ 2], and C[ ⁇ 7].
  • the correlations may be calculated using a variety of correlation algorithms.
  • each of the correlations is examined.
  • a correlation, C[n] may be discard if the correlation is lower than a predetermined threshold (e.g., 0.5). This is taken to mean that that prior day TC[n] was not a good predictor of TC. If there is no correlation remaining after the examination (i.e., all correlations are below the predetermined threshold), the model may not be predictive.
  • a correlation coefficient can be calculated using a correlation function as follows:
  • Parameter n represents a degree of freedom, in this example, n is count(x) ⁇ 1.
  • Parameters x and y represent vectors of an equal length.
  • a correlation coefficient is calculated for each of the correlations.
  • a correlation coefficient Coef[n] is calculated by normalizing the correlation sum to 1. For example, if correlation C[ ⁇ 7] is discarded, correlation C[ ⁇ 1, ⁇ 2] is [1.0, 0.6], then the correlation coefficient Coef[ ⁇ 1, ⁇ 2, ⁇ 7] will be [0.67, 0.33, 0.0]. A discarded correlation may receive a correlation coefficient of 0. The correlation coefficients calculated above are then used to predict future battery condition.
  • FIG. 6A is a block diagram illustrating a process of a predictive model according to one embodiment of the invention.
  • predictive model 301 (assuming it is still predictive) generates a predicted battery level 601 at the point in time.
  • battery monitor 115 reads the actual battery level 602 directly from battery 107 .
  • battery number calculator 312 calculates battery operating number 603 using predictive model mapping curve 610 .
  • the predicted battery level (B t ) may be predicted by predictive model 301 based on multiple sample battery levels captured in the past at different points in time as follows:
  • coefficients ⁇ 1 , ⁇ 2 , . . . , ⁇ n can be adjusted based on the accuracy of the model.
  • the predicted battery level is based on a battery level measured one day ago and a battery level measured one week ago:
  • one day ago and one week ago are one week before t for every t.
  • two days ago data can also be utilized:
  • predictive model 301 is to predict a battery level for each 15 minute window.
  • Battery operating number 603 is calculated based on the discrepancy (e.g., difference) between predicted battery level 601 and actual battery level 602 .
  • a lookup is performed in predicted model mapping curve or mapping function 610 , which may be configured specifically for that particular mobile device and/or operating system.
  • An example of predictive model mapping curve or function 610 is shown in FIG. 6B , where the scale of BON on Y axis is from 1 to 101, while X axis represents the difference between actual battery level 602 and predicted battery level 601 .
  • FIG. 7A is a block diagram illustrating a process of a drain model according to one embodiment of the invention.
  • drain model 302 (assuming it is still predictive) generates a first predicted battery level 701 at a first point in time in the past (e.g., 15 minute ago) and generates a second predicted battery level 702 at a first point in time in the past (e.g., 45 minute ago).
  • battery number calculator 312 Based on first battery level 701 and second battery level 702 , calculates battery operating number 703 using drain model mapping curve or function 710 .
  • the drain model also consumes actual battery levels retrieved from the battery activity history.
  • drain model 302 is to predict a battery discharge rate for a next predetermined period of time (e.g., next 15 minutes) based on discharge pattern in a past predetermined period of time (e.g., past 45 minutes).
  • a discharge rate at a particular point in time t (D t ) may be determined based on a difference between a first battery level at a first point in time in the past (e.g., past 15 minute mark or B t-15 ) and a second battery level at a second point in time in the past (e.g., past 45 minute mark or B t-45 ):
  • a lookup is performed in drain model mapping curve or mapping function 710 , which may be configured specifically for that particular mobile device and/or operating system.
  • An example of drain model mapping curve or function 710 is shown in FIG. 7B , where the scale of BON on Y axis is from 1 to 101, while X axis represents the difference between first battery level 701 and second battery level 702 over a period of time (e.g., 45 minutes).
  • FIG. 8A is a block diagram illustrating a process of a direct model according to one embodiment of the invention.
  • battery monitor 115 directly reads battery level 801 from battery 107 at the point in time.
  • battery number calculator 312 calculates battery operating number 803 by looking up in direct model mapping function 810 based on battery level 801 .
  • An example of direct model mapping function 810 is shown in FIG. 8B , where the scale of BON on Y axis is from 1 to 101, while X axis represents direct battery level from 0 to 100.
  • one model may be utilized in conjunction with another model in a cooperative way in predicting or determining future battery usage.
  • data generated from another model may also be considered.
  • Extreme values of drain of absolute battery level may be used to modify the battery operating number. For example, if it is predicted the battery level will be N % and the battery level is indeed N %, then the predictive model would return an intermediate or good battery operating number. However, if N is very low or very high, that number is modified based on another model such as the drain model or direct model. This represents a situation in which a device recently removed from charge at full battery is likely still near a charger, it can afford to initiate or continue expensive operations such backup, etc.
  • a device that is nearly flat should tend to conserve the remaining charge for user initiated ‘foreground’ operations rather than options operations such as backup, app update etc., even if it is on track based on the predictive model. This also reflects the property that the predictive model alone is mainly interested in the relative level of battery, instead of the absolute level.
  • a very high discharge rate may indicate future problems, so even if the predictive model indicates that the battery is good or great, the system may reduce the battery operating number for very fast discharge.
  • the drain model employs both a short term and long term calculation.
  • recent low rates of drain may override a longer term history of high rates of drain. This avoids an inappropriate period of low battery operating number after a short period of very high drain that has ended.
  • the data generated by the predictive model and the drain model may be adjusted as: Clamp (P(predicted ⁇ actual)+D2(actual), 0, 100).
  • P is a curve or map which converts the difference between predicted and actual levels in to the base BON, and then D2 is a curve or map (distinct from D, the base curve for direct).
  • D2 is 0 for most of its range (intermediate battery levels) and smoothly approaches 100 in the high battery range (e.g. top 15%) and smoothly approaches ⁇ 100 in the low battery range (e.g. bottom 15%).
  • the techniques described above can also be applied to indicate whether a device is coupled to a charger in a good condition.
  • the base charging BON is set to 100.
  • D2 as described above is applied. That is, if the user is charging and the charger is powerful enough to charge battery and power the device, then power is effectively free. If the user has just plugged in and the battery level is very low (e.g. ⁇ 15%), then the maximum benefit is to charge the battery as fast as possible, which may mean reducing device's power consumption.
  • battery usage monitor 115 is configured to monitor battery usage and battery charging data of battery 107 .
  • Battery usage monitor 115 may periodically monitor the battery usage and charging on a daily basis.
  • the data representing the battery usage and charging data are then used by a battery statistics compiler (not shown) to analyze and compile battery heuristics and charging pattern or trends 103 , which can be stored in a persistent storage device of the portable device (not shown).
  • Battery usage heuristics and charging pattern 103 may be constantly or periodically updated over a long period of time to develop more accurate trends of battery usage and charging behavior of the user.
  • the battery heuristics compiler may further calculate a daily average battery usage and/or an estimated daily battery charging schedule of the user.
  • the daily average herein is the weighted average for values recorded at a particular time slot or window (e.g., 15 minutes wide) of the day over several days.
  • the weight in the weighted average is generated by the model generator. For example, an average for 10 am time slot may be calculated based on the data recorded or captured around 10 am of each of the past several days. As a result, it can roughly determine when and how long in a regular day that the portable device is powered by the battery without charging.
  • Battery usage heuristics and charging pattern 103 can be used to determine a user intent at a given point in time based on the battery usage level at the given point in time. For example, assuming at a given point in time, battery usage monitor 115 receives data representing a battery usage level. The battery usage level is used to compare with the daily average battery usage level obtained from battery usage activity history 103 and optional application activities (for example, obtained via activity analyzer 108 of FIG. 1 ). Based on the comparison, a user intent determination unit (not shown) can determine the user intent and possible subsequent user actions with the portable device. As a result, the user intent determination unit is able to approximately determine whether that particular battery level is within a normal battery usage range of a typical day of the user.
  • the difference between the battery usage level at the point in time and the average daily battery usage level exceeds a predetermined threshold, it may indicate that the battery usage of the portable device is unusual.
  • a power management action may be performed to accommodate such an unusual situation. For example, if the battery usage level is too high compared to the daily average battery usage, power consumption of certain hardware or software may be reduced to conserve power capacity, such that the remaining power capacity can last for the estimated period of time without charging. On the other hand, if the battery usage is too low compared to the average battery usage level, certain performance of the hardware and/or software may be increased (which leads to higher power consumption) as long as the remaining power capacity of the battery can last the estimated period of time without charging. Such power management actions may be performed automatically without user intervention or knowledge.
  • the above techniques can be applied to a variety of situations. For example, suppose a user charges its device more than once a day from Monday through Friday during a week. If the total charge consumed in a day is less than the battery's capacity, it is likely the user is charging the device because it is convenient, not because the battery is likely to run out. If the charge used in a day exceeds the battery's capacity modestly, it may be worth it to the user for the power management system to be a little conservative about power usage throughout the day to stretch the capacity of the battery and avoid the need to charge mid-day. If the charge consumed in a day exceeds the batteries capacity significantly then the user is certainly using its device fully and the power management system's effect on performance to avoid the mid-day charge would likely be upsetting to the user.
  • a daily average usage level a level that the battery usage level of the device before it is charged averages out to a level, referred to as a daily average usage level, with a reasonably low standard deviation. This may imply the user's behavior is about the same each weekday. Should on a given weekday, if the battery usage level falls below the average usage level, with some margin, it implies that there is something different about the user's behavior on this day. This boundary crossing of average behavior can inform the power management system that the user is more likely to run out of battery on that particular day, and it may be in its best interest to conserve power.
  • the power management system could infer the duration of the user's work day.
  • the power management system can infer which time slots (e.g., 9:00 am to 11:00 am and 2:00 pm to 4:00 pm) of a particular work day (e.g., Monday to Friday) it can consume more power than other time slots.
  • time slots e.g., 9:00 am to 11:00 am and 2:00 pm to 4:00 pm
  • Being able to infer the user's work day would allow the power management system to set power budgets throughout the day in an attempt to ensure that the battery is not depleted before the day is over.
  • Such a power management system operating based on user activities or user behavior is referred to herein as a user level power management system.
  • the goal is to infer the user intent during different time and/or days from the battery usage heuristics and charging pattern, such that the unusual user behavior can be captured early enough before it is too little too late for the power management system to act.
  • the operations of the portable device can be dynamically configured (in terms of balance of performance and power consumption), such that the user can have the best experience of the portable device.
  • Operation manager 104 may represent a combination of one or more of a resource manager, an application launcher (e.g., springboard), a scheduler, a power management unit, and/or other components of the operating system. Operation manager 104 is configured to manage or collect information such as an operating state or status of certain hardware and/or software operations (e.g., entering an airplane mode) and to communicate such information to program activity analyzer 108 . Based on the operating state or status information, program activity analyzer 108 is configured to collect information with activity data collected from programs 110 and optional battery usage heuristics and charging pattern 103 .
  • the user intent determination unit (which may be implemented as part of ABLE unit 101 ) then infers user intent and possible subsequent user interaction with the portable device at that point in time based on the information gathered by program activity analyzer 108 . Based on the user intent and the possible subsequent user interaction, the user intent determination unit transmits a signal to operation manager 104 to recommend a power management action to be performed on the portable device. In response, operation manager 104 may perform certain power management actions on the hardware such as shutting down the WiFi, lower the display brightness, etc., as well as software such as causing certain programs to change its behavior to reduce certain performance of the programs. Alternatively, if it is determined based on the user intent that the remaining power capacity of the battery can last much longer than the estimated period of time without charging, the performance of the portable device may be increased to further enhance user experience.
  • the techniques described above can be applied to admission control processes of a data processing system.
  • applications and system services have access to an application with which they can request a permission to perform an action with certain identifying characteristics. Those characteristics, which include the identity of the requesting application or service, a key or identifier for a class of activity, and a value representing a particular property of the activity, such as which mailbox, or a numeric value.
  • the system can then evaluate the importance to the user of that activity based upon the information, and in conjunction with the battery condition number, determine if the activity should go ahead.
  • the identifying characteristics may be passed around the system to account for conditions in which the requesting application may delegation the invocation of the action to a third service or services.
  • the determination of the importance of the action may include analysis of the battery impact of past similar actions, or of other information provided by the application, such as which mailboxes the user frequently uses.
  • the goal of user level power management is to optimize the performance, battery life and thermal response of devices and computers. If the power management system has enough information about what the user is doing, it may be able to improve performance or save power which in turn could extend battery life or reduce system temperature. Applications can be a source of input to a user power management system, explicitly those that outline the user's near future in the real world.
  • presenting a boarding pass for checking into a flight on a plane tells the power management system that the user is likely going to be in airplane mode for the duration of the flight.
  • the power management system can infer that the user will want their device's battery to last for the duration of the flight, and will not likely have access to power until after the flight.
  • the power management system could respond by sacrificing some performance in favor of stretching the battery to last for the duration of the flight.
  • Simply knowing that the device is in airplane mode gives part of this information, but it lacks a likely duration that airplane mode will be enabled and cannot make a useful prediction about how much battery conservation should be applied.
  • the power management system gets two data points for airplane mode and a likely duration.
  • Another example could be using an eWallet application such as Passbook to purchase a drink at a coffee house. This coupled with GPS location largely staying the same would suggest that the user will be enjoying their drink in the coffee house for the next 20 to 30 minutes. If they should be using their device in that time period they are likely to be doing so intently, (reading the news, playing a game, etc.), such that they would like their device to be particularly responsive. This sort of information could tell the power management system that for the next 20-30 minutes it is in the user's best interest to sacrifice some battery life in favor of improved performance.
  • eWallet application such as Passbook
  • the system can determine whether the battery can last for the duration of the movie based on the metadata of the movie. If the remaining power capacity of the battery cannot last that long, certain power management actions may be performed, such as reducing performance of other applications since the user unlikely use those applications while watching the movie. Alternatively, the frame rate may be reduced in order to reduce power consumption.
  • the system detects that the device is operating in a relatively dark environment (e.g., playing a video game), which may be detected via an ambient or light sensor (and its corresponding application), the system may automatically reduces the backlight of the display to further reduce power consumption of a general-purpose processor such as a central processing unit (CPU) and/or to increase performance of a special-purpose processor such as a graphical processing unit (GPU).
  • a general-purpose processor such as a central processing unit (CPU)
  • a special-purpose processor such as a graphical processing unit (GPU).
  • the user level power management system described throughout this application does not focus on detection of power usage and notification of the user regarding such power usage (e.g., alert to the user that the battery is running low. Rather, the user level power management system focuses on user behavior of a particular user and automatically adjusts the operations of the portable device in order to improve the user experience with the portable device.
  • Each user may have different behavior and pattern, by employing a user agent within the portable device, the user level power management system can “learn” that particular user's behavior and adapt to that particular user's life style, even without the user knowledge.
  • a typical user may not be interested in the notification of a battery usage level. Rather, the user may be more interested in enjoying the experience of the portable device without interruption by the unwelcome notification. All a user cares about is that the battery can support whatever the user intends to do at the moment, regardless how the system fulfills such a requirement.
  • FIG. 9 is a block diagram illustrating an example of a data processing system which may be used with one embodiment of the invention.
  • system 900 may represents any of data processing systems described above performing any of the processes or methods described above.
  • System 900 may represent a desktop (e.g., iMacTM available from Apple Inc.
  • a laptop e.g., MacBookTM
  • a tablet e.g., iPadTM
  • a server a mobile phone (e.g., iPhoneTM), a media player (e.g., iPodTM or iPod TouchTM), a personal digital assistant (PDA), a personal communicator, a gaming device, a network router or hub, a wireless access point (AP) or repeater, a set-top box, or a combination thereof.
  • PDA personal digital assistant
  • system 900 includes processor 901 and peripheral interface 902 , also referred to herein as a chipset, to couple various components to processor 901 including memory 903 and devices 905 - 908 via a bus or an interconnect.
  • processor 901 may represent a single processor or multiple processors with a single processor core or multiple processor cores included therein.
  • Processor 901 may represent one or more general-purpose processors such as a microprocessor, a central processing unit (CPU), or the like.
  • processor 901 may be a complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or processor implementing other instruction sets, or processors implementing a combination of instruction sets.
  • processor 901 may also be one or more special-purpose processors such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), a network processor, a graphics processor, a network processor, a communications processor, a cryptographic processor, a co-processor, an embedded processor, or any other type of logic capable of processing instructions.
  • ASIC application specific integrated circuit
  • FPGA field programmable gate array
  • DSP digital signal processor
  • Processor 901 is configured to execute instructions for performing the operations and steps discussed herein.
  • Peripheral interface 902 may include memory control hub (MCH) and input output control hub (ICH). Peripheral interface 902 may include a memory controller (not shown) that communicates with a memory 903 . Peripheral interface 902 may also include a graphics interface that communicates with graphics subsystem 904 , which may include a display controller and/or a display device. Peripheral interface 902 may communicate with graphics device 904 via an accelerated graphics port (AGP), a peripheral component interconnect (PCI) express bus, or other types of interconnects.
  • AGP accelerated graphics port
  • PCI peripheral component interconnect
  • MCH is sometimes referred to as a Northbridge and an ICH is sometimes referred to as a Southbridge.
  • the terms MCH, ICH, Northbridge and Southbridge are intended to be interpreted broadly to cover various chips who functions include passing interrupt signals toward a processor.
  • the MCH may be integrated with processor 901 .
  • peripheral interface 902 operates as an interface chip performing some functions of the MCH and ICH.
  • a graphics accelerator may be integrated within the MCH or processor 901 .
  • Memory 903 may include one or more volatile storage (or memory) devices such as random access memory (RAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), static RAM (SRAM), or other types of storage devices.
  • RAM random access memory
  • DRAM dynamic RAM
  • SDRAM synchronous DRAM
  • SRAM static RAM
  • Memory 903 may store information including sequences of instructions that are executed by processor 901 , or any other device. For example, executable code and/or data of a variety of operating systems, device drivers, firmware (e.g., input output basic system or BIOS), and/or applications can be loaded in memory 903 and executed by processor 901 .
  • BIOS input output basic system
  • An operating system can be any kind of operating systems, such as, for example, Windows® operating system from Microsoft®, Mac OS®/iOS® from Apple, Android® from Google®, Linux®, Unix®, or other real-time or embedded operating systems such as VxWorks.
  • Peripheral interface 902 may provide an interface to IO devices such as devices 905 - 908 , including wireless transceiver(s) 905 , input device(s) 906 , audio IO device(s) 907 , and other IO devices 908 .
  • Wireless transceiver 905 may be a WiFi transceiver, an infrared transceiver, a Bluetooth transceiver, a WiMax transceiver, a wireless cellular telephony transceiver, a satellite transceiver (e.g., a global positioning system (GPS) transceiver) or a combination thereof.
  • GPS global positioning system
  • Input device(s) 906 may include a mouse, a touch pad, a touch sensitive screen (which may be integrated with display device 904 ), a pointer device such as a stylus, and/or a keyboard (e.g., physical keyboard or a virtual keyboard displayed as part of a touch sensitive screen).
  • input device 906 may include a touch screen controller coupled to a touch screen.
  • the touch screen and touch screen controller can, for example, detect contact and movement or break thereof using any of a plurality of touch sensitivity technologies, including but not limited to capacitive, resistive, infrared, and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements for determining one or more points of contact with the touch screen.
  • Audio IO 907 may include a speaker and/or a microphone to facilitate voice-enabled functions, such as voice recognition, voice replication, digital recording, and/or telephony functions.
  • Other optional devices 908 may include a storage device (e.g., a hard drive, a flash memory device), universal serial bus (USB) port(s), parallel port(s), serial port(s), a printer, a network interface, a bus bridge (e.g., a PCI-PCI bridge), sensor(s) (e.g., a motion sensor, a light sensor, a proximity sensor, etc.), or a combination thereof.
  • Optional devices 908 may further include an imaging processing subsystem (e.g., a camera), which may include an optical sensor, such as a charged coupled device (CCD) or a complementary metal-oxide semiconductor (CMOS) optical sensor, utilized to facilitate camera functions, such as recording photographs and video clips.
  • an imaging processing subsystem e.g., a camera
  • an optical sensor such as a charged coupled device (CCD) or a complementary metal-oxide semiconductor (CMOS) optical sensor, utilized to facilitate camera functions, such as recording photographs and video clips.
  • CCD charged coupled device
  • CMOS complementary metal-oxide semiconductor
  • FIG. 9 illustrates various components of a data processing system, it is not intended to represent any particular architecture or manner of interconnecting the components; as such details are not germane to embodiments of the present invention. It will also be appreciated that network computers, handheld computers, mobile phones, and other data processing systems which have fewer components or perhaps more components may also be used with embodiments of the invention.
  • the techniques shown in the figures can be implemented using code and data stored and executed on one or more electronic devices.
  • Such electronic devices store and communicate (internally and/or with other electronic devices over a network) code and data using computer-readable media, such as non-transitory computer-readable storage media (e.g., magnetic disks; optical disks; random access memory; read only memory; flash memory devices; phase-change memory) and transitory computer-readable transmission media (e.g., electrical, optical, acoustical or other form of propagated signals—such as carrier waves, infrared signals, digital signals).
  • non-transitory computer-readable storage media e.g., magnetic disks; optical disks; random access memory; read only memory; flash memory devices; phase-change memory
  • transitory computer-readable transmission media e.g., electrical, optical, acoustical or other form of propagated signals—such as carrier waves, infrared signals, digital signals.
  • processing logic that comprises hardware (e.g. circuitry, dedicated logic, etc.), firmware, software (e.g., embodied on a non-transitory computer readable medium), or a combination of both.
  • processing logic comprises hardware (e.g. circuitry, dedicated logic, etc.), firmware, software (e.g., embodied on a non-transitory computer readable medium), or a combination of both.

Abstract

According to one embodiment, a first battery number is determined representing a battery condition of a battery of a mobile device using a predictive model, where the predictive model is configured to predict future battery conditions based on a past battery usage of the battery. A second battery number is determined representing the battery condition using a drain model, where the drain model is configured to predict a future battery discharge rate based on a past battery discharge rate. A third battery number is determined representing the battery condition based on a current battery level corresponding to a remaining life of the battery at the point in time. Power management logic performs a power management action based on the battery condition derived from at least one of the first battery number, the second battery number and the third battery number.

Description

    FIELD OF THE INVENTION
  • Embodiments of the present invention relate generally to power management of a portable device. More particularly, embodiments of the invention relate to adaptive battery life extension of a portable device.
  • BACKGROUND
  • Power management of a data processing system often involves techniques for reducing the consumption of power by components in the data processing system. A data processing system may be a laptop or otherwise portable computer, such as a handheld general purpose computer or a cellular telephone. The management of power consumption in a portable device which is powered by one or more batteries is particularly important because better power management usually results in the ability to use the portable device for a longer period of time when it is using only battery power.
  • As devices become more complicated and their capabilities more varied, it becomes increasingly difficult to make the best power management decisions from deep within the system. While designers have been successful in making decisions about the hardware state within a central power management driver, they are not able to account for blocks outside the hardware.
  • Users of battery powered devices generally prefer that the battery does not run out while they are using the device. User level power management may try to extend the life of the battery by reducing power consumption at the cost of reduced performance as the battery approaches depletion. Most of the conventional systems perform such power management actions only when the battery is already very low. Sometimes this may amount to too little too late.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • Embodiments of the invention are illustrated by way of example and not limitation in the figures of the accompanying drawings in which like references indicate similar elements.
  • FIG. 1 is a block diagram illustrating an example of a portable device according to one embodiment of the invention.
  • FIG. 2 is a block diagram illustrating a hardware configuration of a portable device according to one embodiment of the invention.
  • FIG. 3 is a block diagram illustrating an adaptive battery life extension system according to one embodiment of the invention.
  • FIG. 4 is a flow diagram illustrating a method for predicting future battery condition according to one embodiment of the invention.
  • FIG. 5A is a flow diagram illustrating a method for determining whether a battery model is predictive according to one embodiment of the invention.
  • FIG. 5B is a flow diagram illustrating a method for determining correlations of different battery data sets according to one embodiment of the invention.
  • FIG. 6A is a block diagram illustrating a process of a predictive model according to one embodiment of the invention.
  • FIG. 6B is an example of a predictive model mapping function according to one embodiment of the invention.
  • FIG. 7A is a block diagram illustrating a process of a drain model according to one embodiment of the invention.
  • FIG. 7B is an example of a drain model mapping function according to one embodiment of the invention.
  • FIG. 8A is a block diagram illustrating a process of a direct model according to one embodiment of the invention.
  • FIG. 8B is an example of a direct model mapping function according to one embodiment of the invention.
  • FIG. 9 is a block diagram illustrating an example of a data processing system which may be used with one embodiment of the invention.
  • DETAILED DESCRIPTION
  • Various embodiments and aspects of the inventions will be described with reference to details discussed below, and the accompanying drawings will illustrate the various embodiments. The following description and drawings are illustrative of the invention and are not to be construed as limiting the invention. Numerous specific details are described to provide a thorough understanding of various embodiments of the present invention. However, in certain instances, well-known or conventional details are not described in order to provide a concise discussion of embodiments of the present inventions.
  • Reference in the specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in conjunction with the embodiment can be included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification do not necessarily all refer to the same embodiment.
  • According to some embodiments, various battery condition models (also simply referred to as battery models) are utilized to predict future battery conditions for the purpose of extending the battery life of a battery of a mobile device before the next predicted recharge of the battery. When an operation manager of an operating system of the mobile device requests information concerning the current or near future battery condition, an adaptive battery life extension (ABLE) unit running within operating system determines or calculates a battery operating number (BON), also simply referred to as a battery number or battery condition representation, representing a battery condition at the point in time using the battery condition models. Based on the battery number provided by the ABLE unit, the operation manager can decide whether to go ahead performing the operation or defer performing the operation until later or until the battery condition improves. For example, if the predicted battery condition is above a predetermined battery condition threshold (also referred to as battery number threshold), the operation is performed; otherwise, the operation may be deferred.
  • In one embodiment, the battery models include at least a predictive model, a drain model, and a direct model. The predictive model is configured to predict future battery conditions (e.g., future battery levels) based on past battery operating heuristics including battery levels captured at different points in time in the past and battery charging patterns during one or more periods of time in the past. The drain model is configured to predict future battery conditions (e.g., future battery discharge rate) based on battery discharge patterns during a period of time in the past. The direct model is configured to predict future battery conditions based on the current battery level at the point in time (e.g., by directly reading the battery level from the battery). The ABLE unit then determines a battery number presenting the battery condition based on the prediction provided by at least one of the predictive model, drain model, and direct model. In one embodiment, if the battery condition is predicted as poor or alternatively, if it is predicted that the remaining battery life will not last before the predicted next recharge of the battery, one or more of those models may be adjusted, such that the battery condition will be considered poorer and more actions will be stopped or deferred to preserve battery life until the next predicted recharge of the battery (e.g., soft-landing). Alternatively, the battery condition threshold may be raised to defer performing more actions.
  • In another embodiment, each of the models may be periodically examined to determine whether the model is still predictive (e.g., accurate enough to predict) before using the model. If one model is not predictive, the ABLE may fall back to another model for prediction. In one embodiment, the predictive model may be a preferred model to predict the future battery conditions. However, if the predictive model is not predictive, the drain model becomes the primary model for prediction. Similarly, if the drain model is not predictive, the direct model may be utilized. However, a combination of one or more of the models may be utilized if they are all predictive. In the event that a model is not predictive, a new model may be generated or adjusted, for example, based on more recently captured or tracked battery activity history and/or user or application behaviors.
  • FIG. 1 is a block diagram illustrating an example of a portable device according to one embodiment of the invention. For example, portable device 100 may be a Smartphone (e.g., iPhone™), a media player (e.g., iPod™), a tablet (e.g., iPad™), a laptop (e.g., Mac Book™), etc. Referring to FIG. 1, system 100 includes an operation manager 104 for managing software programs 110 hosted by an operating system and executed by a processor. Operation manager 104 may be a system component of the operating system, such as, for example, a scheduler or a resource manager. The operating system may be any kind of operating systems, such as, for example, iOS™, Windows™, Android™, LINUX, UNIX, or any other real-time or embedded operating systems.
  • In one embodiment, system 100 includes an ABLE unit 101 configured to estimate or predict battery conditions at that point in time and/or in the near future (e.g., next one to two charging cycles of the battery) based on battery activity history 103 using one or more battery condition models 102. Battery activity history 103 may include past battery levels as well as past system and application and component activities. For example, battery activity history 103 may include activities of programs 110 and/or user behaviors captured by activity analyzer 108 and battery usage and discharge patterns of battery 107 captured by power manage unit (PMU) 105 and/or battery monitor 115 (also referred to as an battery activity monitor). Battery monitor 115 may be variously implemented by 1) interrogating operating system (OS) facilities such as the scheduler and performance monitor or other OS systems for monitoring application activity including CPU time and use of subsystems, such as graphics processing unit (GPU), encoder/decoders, GPS network etc., or 2) by an application programming interface (API) which allows more detailed description of application activity which can be provided for system libraries or by explicit calls from applications and services. Battery monitor 115 may be implemented as a part of PMU 105. Battery activity history 103 may be stored as one or more databases in a persistent storage device of system 100. Activity monitor/analyzer 108 may monitor the activities of programs 110 via a set of application programming interfaces (APIs) and compile and/or infer user intents, user activity trends, and user behaviors of utilizing mobile device 100.
  • In one embodiment, battery condition models 102 are created to model and predict future battery conditions based on the past battery heuristics and user behaviors provided by battery activity history database 103. ABLE unit 101 utilizes one or more of battery models 102 to generate a battery number that represents a battery condition at that point in time and/or in the near future (e.g., next one to two charging cycles of the battery) based on the past battery usage and charging heuristics. In one embodiment, when operation manager 104 attempts to schedule or start a particular operation (e.g., intense data processing such as computation, content download, video streaming, system updates), which may be triggered by one or more of the corresponding programs 110, operation manager 104 communicates with ABLE unit 101 to inquire the current battery condition for the purpose of deciding whether it is appropriate to perform such an action based on the current battery condition. In response to the inquiry, ABLE unit 101 calculates a battery number representing the battery condition at that point in time based on past battery activity history 103 and/or current battery level using one or more of battery condition models 102. The calculated battery number is then provided to operation manager 104.
  • Note that an operation to be inquired herein refers to a discretionary or optional operation that is deferrable. For example, an operating system update from an operating system provider may be a discretionary operation since system 100 may be operating properly for a foreseeable future without the update, and such a system update operation is relatively expensive because it may involve downloading and installing a large amount of data. However, some other necessary operations may be performed regardless of the battery condition. For example, antivirus scanning for a Web page currently being browsed by a browser may be considered as a necessary action. The discretionary and necessary actions may be user configurable, for example, as a part of a power management profile or scheme.
  • In one embodiment, a higher battery number represents a better battery condition and lower battery number represents a poorer battery condition. In response to the battery number received from ABLE unit, operation manager 104 can decide whether to perform the intended operation given the battery condition represented by the battery number. For example, for a particular action associated with a particular program, if the battery number is above a certain battery condition threshold, the operation manager 104 may go ahead in scheduling or launching the action; otherwise, the action may be deferred. In one embodiment, each type of actions or each type of programs may be associated with a specific or different battery condition threshold. For a given battery number, some actions may be performed while some other actions may be deferred, dependent upon the specific thresholds associated with the types of the actions. Such threshold information may also be stored in a database of a persistent storage device.
  • PMU 105 may include one or more power management agents (PMAs) to obtain power management status of hardware 106 and/or to perform certain power management actions on hardware 106 via the corresponding PMAs that include, but are not limited to, a backlight agent, a system-on-chip (SOC) agent, a baseband (e.g., RF frontend) agent, and a WiFi agent. Hardware 106 represents a variety of hardware devices or components, such as SOC chip 201, backlight circuit 202, baseband circuit 203, WiFi component 204, memory 205, display 206, multi-touch device or keyboard 207, and battery, as shown in FIG. 2.
  • According to one embodiment, battery usage monitor 115 is configured to monitor the daily battery usage and the daily battery charging pattern of portable device 100, and to compile battery activity history 103 which are stored in a persistent storage device of portable device 100. A particular battery usage level at a given point in time can be used to determine, in view of battery activity history 103, whether the user of portable device 100 is operating the portable device 100 in an abnormal manner (e.g., demanding more battery consumption than average), in which case certain power management actions may be performed on portable device to accommodate the abnormal usage of the portable device 100.
  • In one embodiment, activity analyzer 108 communicates with programs 110 via a set of APIs to obtain certain activity or event information of programs 110. Based on the activities of the programs 110, activity analyzer 108 can interpret or infer intent of a user that is currently utilizing the portable device and/or a period of time that the user intends to use the portable device without charging the battery. Based on the user intent or behaviors, ABLE 101 may instruct at least some of the PMAs in PMU 105 to perform certain power management actions on hardware 106. Based on the user intent or behaviors, ABLE 101 or activity analyzer 108 may predict the next time the user will recharge the mobile device. In addition, ABLE 101 may further communicate with, via operation manager 104, one or more of programs 110 to cause the programs to adjust (e.g., increase or reduce) certain operating parameters of the programs in an attempt to optimize the utilization of the remaining power capacity of battery 107.
  • FIG. 3 is a block diagram illustrating an adaptive battery life extension system according to one embodiment of the invention. Referring to FIG. 3, in one embodiment, battery models 102 include at least a predictive model 301, a drain model 302, and a direct model 303. Predictive model 301 is configured to predict future battery conditions (e.g., future battery levels) based on past battery operating heuristics 103, including battery levels captured at different points in time in the past and battery charging patterns during one or more periods of time in the past. Drain model 302 is configured to predict future battery conditions (e.g., future battery discharge rate) based on battery discharge patterns in the past, which may be captured or determined by activity analyzer 108 or a user agent (not shown). Direct model 303 is configured to predict future battery conditions based on the current battery level read by PMU 105 or battery monitor 115 from battery 107 at the point in time. ABLE unit 101 then determines battery number 315 presenting the battery condition based on the prediction provided by at least one of predictive model 301, drain model 302, and direct model 303.
  • In one embodiment, ABLE 101 includes model selection module 311, battery number calculator 312, and model generator 313. Model selection module 311 is configured to select one or more of models 301-303 to predict a battery level, which is utilized by battery number calculator to calculate battery number 315. In one embodiment, before using any of models 301-303, model selection module 311 determines whether that particular model is predictive. In one embodiment, predictive model 301 is preferred over drain model 302 and drain model 302 is preferred over direct model 303, etc.
  • Before using predictive model 301, model selection module 311 examines the predicted battery data predicted by predictive model 301 in view of actual battery data directly read from the battery over a period of time to determine whether predictive model 301 is still predictive, i.e., whether predictive model 301 is still accurate enough at the point in time to predict future battery conditions. In one embodiment, coefficient of determination techniques, such as R-squared or R2, are utilized to determine whether the predicted data fits with the actual data. The coefficient of determination is to determine whether the predictive model is currently and/or for the foreseeable near future predictive.
  • R-squared indicates how well data points fit a statistical model, a line or curve. It is a statistic used in the context of statistical models whose main purpose is either the prediction of future outcomes or the testing of hypotheses, on the basis of other related information. It provides a measure of how well observed outcomes are replicated by the model, as the proportion of total variation of outcomes explained by the model. There are several definitions of R2 which are only sometimes equivalent. One class of such cases includes that of simple linear regression. In this case, if an intercept is included, then R2 is simply the square of the sample correlation coefficient between the outcomes and their predicted values. If additional explanators are included, R2 is the square of the coefficient of multiple correlation. In both such cases, the coefficient of determination ranges from 0 to 1. Important cases where the computational definition of R2 can yield negative values, depending on the definition used, arise where the predictions which are being compared to the corresponding outcomes have not been derived from a model-fitting procedure using those data, and where linear regression is conducted without including an intercept. Additionally, negative values of R2 may occur when fitting non-linear functions to data. In cases where negative values arise, the mean of the data provides a better fit to the outcomes than do the fitted function values, according to this particular criterion.
  • In addition, according to one embodiment, correlation of predicted data amongst different period of times is examined to determine whether the predictive model's predictions are historically consistent. If predictive model 301 passes both tests, it can be utilized. Otherwise, drain model 302 may be utilized instead. Similarly, drain model 302 may be tested using similar techniques and if drain model 302 cannot be used, direct model 303 is utilized. In one embodiment, a combination of one or more of models 301-303 may be utilized.
  • In one embodiment, if the battery condition is predicted to be too poor or alternatively, if it is predicted that the remaining battery capacity will not last before the predicted next recharge of the battery, one or more of models 301-303 may be adjusted by model generator 313, such that the battery condition will be considered poorer and more actions will be stopped or deferred to preserve battery life until the next predicted recharge of the battery (e.g., soft-landing). Alternatively, the battery condition threshold may be raised higher to defer more actions from being performed. Note that some or all of the components as shown in FIG. 3 may be implemented as software, hardware, or a combination thereof.
  • FIG. 4 is a flow diagram illustrating a method for predicting future battery condition according to one embodiment of the invention. Method 400 may be performed by processing logic which may include software, hardware, or a combination thereof. For example, method 400 may be performed by ABLE unit 101 of FIG. 1. Referring to FIG. 4, at block 401, processing logic determines a first battery number representing a battery condition of a battery of a mobile device using a predictive model. The predictive model is configured to predict future battery conditions based on a past battery usage of the battery. At block 402, processing logic determines a second battery number representing the battery condition using a drain model. The drain model is configured to predict a future battery discharge rate based on a past battery discharge rate. At block 403, processing logic determines a third battery number representing the battery condition based on a current battery level corresponding to a remaining life of the battery at the point in time. At block 404, processing logic performs a power management action based on the battery condition derived from at least one of the first battery number, the second battery number and the third battery number.
  • FIG. 5A is a flow diagram illustrating a method for determining whether a battery model is predictive according to one embodiment of the invention. Method 500 may be performed by processing logic which may include software, hardware, or a combination thereof. For example, method 500 may be performed by ABLE unit 101 of FIG. 1. Referring to FIG. 5A, at block 501, for a given battery condition model (e.g., predictive model, drain model), processing logic performs a correlation analysis of predicted battery data (e.g., battery level, discharge rate) predicted by the battery model amongst at least two periods of time in the past. At block 502, processing logic performs a coefficient of determination analysis (e.g., R-squared) between the predicted battery data and the actual measured data over a period of time. At block 503, processing logic determine whether that particular model is predictive based on the correlation analysis and/or the coefficient of determination analysis. At block 504, if the predicted battery condition or level is below a predetermined threshold, the model is adjusted to provide a soft-landing condition. In one embodiment, soft landing is applied when the expected predicted battery level at any point in the future is poor, and the model is adjusted to generate different predictions which match a more a desirable battery state at that point in the future.
  • For example, the model may be adjusted so that further prediction will result in a poorer battery condition. Alternatively, the threshold for performing certain actions or events may be raised so that more actions may be deferred, for example, until the next predicted recharge time. On the other hand, if the predicted battery condition (represented by battery operation number or simply battery number) is above a predetermined threshold, the model may also be adjusted to reflect a better battery condition allowing more actions to be performed, for example, before the next predicted recharge time. A battery operating number is generally calculated for time now from the predicted level and actual level at this point in time.
  • In applying soft landing, processing logic initially sets a desired level TP[0][n] as today's TT[0] [n] by default. TP will be the desired level at that time in the day. If any TT[0][n] is below a predetermined battery threshold, processing logic applies a soft-landing algorithm to TP such that TP[0][n] is not below that battery threshold (e.g. 0%, 5%, or other). This algorithm will reduce the discharge rate over some portion of the desired battery levels over the day so as to 1) not enter the low battery threshold, and 2) even out the effective discharge rate over a period of time. In effect, this algorithm finds places where the device is placed on charge and interpolates backward to create a reasonable discharge rate which intercepts with some earlier good (or full) battery states, replacing the predicted battery levels with preferred ones which do not cause low battery.
  • FIG. 5B is a flow diagram illustrating a method for determining correlations of different battery data sets according to one embodiment of the invention. Method 550 may be performed as part of operations performed at block 501 of FIG. 5A. Referring to FIG. 5B, at block 551, processing logic selects multiple prior points in time of correlations (TCs) (e.g., 15 minute window around 10:00 am of 1 day ago, 2 days ago, and 7 days ago, etc.). In one embodiment, the correlation is between a time period (e.g. 24 hours) for a first day offset (e.g. −7), and for a second day offset (e.g. −8, −9 or −14), where the first day offset is a day expected to be representative of a current day (e.g., today), and the correlation is calculated by executing a correlation function of the set of numbers being one battery level for each time slot out of the time period (e.g., 24 hours) of the first day and the corresponding battery level for each time slot or window of the second day offset. Typically, the battery usage patterns (e.g., user behaviors) on the same or similar time of different days tend to be similar. Thus, the past battery usage data on the same or similar time slot or window tend to more accurately represent the future battery usage around the same or similar time window in the future.
  • At block 552, processing logic retrieves battery usage data (e.g., battery levels) corresponding to the selected TCs from the battery activity history database, where the battery activity history data has been previously collected as described above. At block 553, it is determined whether some battery data are missing and an amount of the missing data exceeds a predetermined threshold. The data may be missing if a) the battery activity history database is too new that it does not contain old enough history data; b) the database was flushed; c) the device was not on for some of the time; and d) the device was not allowed to record values (e.g., storage locked after reboot). If data is missing for more than a predetermined threshold (e.g., 70%) for those selected TCs, then the model is considered not predictive and another model may be utilized instead. Alternatively, if data of a selected TC is not enough, another prior TC (e.g., 3 days ago data) may be selected.
  • If the model is considered not predictive due to missing data, at block 554, a new model may be required. Otherwise, at block 555, processing logic optionally fills in the missed data using approximate data from the earlier time slots (e.g., earlier 15 minutes) of the same TCs or some constants. In one embodiment, this approximation could take several forms, e.g. “linear” (interpolate between available points) or “constant” simply fill forward from earlier values. In one embodiment, constant is preferably utilized because it provides a more likely estimate of missing data in common cases. For example, the device is not active (therefore it is only draining slowly) or the device is off (therefore it is probably flat and not being charged).
  • At block 556, processing logic calculates correlations between a current TC and each of the selected prior TCs, generating corresponding correlation coefficients. In this example, for TC[1-day ago], TC[2-day ago], and TC[7-day ago], processing logic performs the correlation calculation and generates correlations C[−1], C[−2], and C[−7]. The correlations may be calculated using a variety of correlation algorithms. In one embodiment, each of the correlations is examined. A correlation, C[n], may be discard if the correlation is lower than a predetermined threshold (e.g., 0.5). This is taken to mean that that prior day TC[n] was not a good predictor of TC. If there is no correlation remaining after the examination (i.e., all correlations are below the predetermined threshold), the model may not be predictive.
  • In one embodiment, a correlation coefficient can be calculated using a correlation function as follows:

  • correlation coefficient r=SSXY/SQRT(SSX*SSY)
  • where SSX,SSY and SSXY are corrected sums:

  • SSX=sum(2)−(sum(x)̂2)/n

  • SSY=sum(2)−(sum(y)̂2)/n

  • SSXY=sum(x*y)−((sum(x)*sum(y))/n
  • Parameter n represents a degree of freedom, in this example, n is count(x)−1. Parameters x and y represent vectors of an equal length.
  • At block 557, a correlation coefficient is calculated for each of the correlations. In one embodiment, for each of the remaining correlations C[n], a correlation coefficient Coef[n] is calculated by normalizing the correlation sum to 1. For example, if correlation C[−7] is discarded, correlation C[−1,−2] is [1.0, 0.6], then the correlation coefficient Coef[−1,−2,−7] will be [0.67, 0.33, 0.0]. A discarded correlation may receive a correlation coefficient of 0. The correlation coefficients calculated above are then used to predict future battery condition. In one embodiment, for each 15 minute slot in a coming day TT, processing logic calculates TT[0+15*n]=Coef[1]*TT[−1 day+15*n]+Coef[1]*TT[−m day+15*n], where m is 1 , 2, 7, and n is 0 to 95. The vector TT[0+15*n] {n=0:96} is a set of predicted battery levels for each 15 minute slot. Note that techniques described above can be applied for 24 hours. More hours (e.g., 48) may also be appropriate for devices expected to last longer on a single charge, this requires appropriate modification to the above.
  • According to some embodiments, the outcome of a battery model may be further scaled or mapped to generate an optimal battery number. Different models may have different mapping functions or curves. FIG. 6A is a block diagram illustrating a process of a predictive model according to one embodiment of the invention. Referring to FIG. 6A, according to one embodiment, based on past battery activity history 103, predictive model 301 (assuming it is still predictive) generates a predicted battery level 601 at the point in time. Meanwhile, battery monitor 115 reads the actual battery level 602 directly from battery 107. Based on predicted battery level 601 and actual battery level 602, battery number calculator 312 calculates battery operating number 603 using predictive model mapping curve 610.
  • According to one embodiment, for a particular point in time (t), the predicted battery level (Bt) may be predicted by predictive model 301 based on multiple sample battery levels captured in the past at different points in time as follows:

  • B t1 B t-x12 B t-x2+ . . . +αn B t-xn
  • where coefficients α1, α2, . . . , αn can be adjusted based on the accuracy of the model. In one embodiment, prediction at time t is evaluated for multiple points where t=now, t=now+1*15 minutes . . . t=now+96*15 minutes, perhaps up to 2 days. In one particular embodiment, the predicted battery level is based on a battery level measured one day ago and a battery level measured one week ago:

  • B t1 B t-1dα2 B t-7d
  • where one day ago and one week ago are one week before t for every t. Alternatively, two days ago data can also be utilized:

  • B t1 B t-1d2 B t-2d3 B t-7d
  • In one embodiment, predictive model 301 is to predict a battery level for each 15 minute window. Battery operating number 603 is calculated based on the discrepancy (e.g., difference) between predicted battery level 601 and actual battery level 602. Based on the input represented by predicted battery level 601 and actual battery level 602, a lookup is performed in predicted model mapping curve or mapping function 610, which may be configured specifically for that particular mobile device and/or operating system. An example of predictive model mapping curve or function 610 is shown in FIG. 6B, where the scale of BON on Y axis is from 1 to 101, while X axis represents the difference between actual battery level 602 and predicted battery level 601.
  • FIG. 7A is a block diagram illustrating a process of a drain model according to one embodiment of the invention. Referring to FIG. 7A, according to one embodiment, based on past battery activity history 103, drain model 302 (assuming it is still predictive) generates a first predicted battery level 701 at a first point in time in the past (e.g., 15 minute ago) and generates a second predicted battery level 702 at a first point in time in the past (e.g., 45 minute ago). Based on first battery level 701 and second battery level 702, battery number calculator 312 calculates battery operating number 703 using drain model mapping curve or function 710. The drain model also consumes actual battery levels retrieved from the battery activity history.
  • In one embodiment, drain model 302 is to predict a battery discharge rate for a next predetermined period of time (e.g., next 15 minutes) based on discharge pattern in a past predetermined period of time (e.g., past 45 minutes). A discharge rate at a particular point in time t (Dt) may be determined based on a difference between a first battery level at a first point in time in the past (e.g., past 15 minute mark or Bt-15) and a second battery level at a second point in time in the past (e.g., past 45 minute mark or Bt-45):

  • D t =B t-Δt1 −B t-Δt2.
  • In one embodiment, the battery levels captured 15 minutes ago and 45 minutes ago are utilized, where at time t the discharge rate Dt=Bt-15−Bt-45. Based on the input represented by first battery level 701 and second battery level 702, a lookup is performed in drain model mapping curve or mapping function 710, which may be configured specifically for that particular mobile device and/or operating system. An example of drain model mapping curve or function 710 is shown in FIG. 7B, where the scale of BON on Y axis is from 1 to 101, while X axis represents the difference between first battery level 701 and second battery level 702 over a period of time (e.g., 45 minutes).
  • FIG. 8A is a block diagram illustrating a process of a direct model according to one embodiment of the invention. Referring to FIG. 8A, according to one embodiment, battery monitor 115 directly reads battery level 801 from battery 107 at the point in time. Similar to the predictive model and the drain model, battery number calculator 312 calculates battery operating number 803 by looking up in direct model mapping function 810 based on battery level 801. An example of direct model mapping function 810 is shown in FIG. 8B, where the scale of BON on Y axis is from 1 to 101, while X axis represents direct battery level from 0 to 100.
  • According to one embodiment, one model may be utilized in conjunction with another model in a cooperative way in predicting or determining future battery usage. In one embodiment, when the prediction model is utilized, data generated from another model may also be considered. Extreme values of drain of absolute battery level may be used to modify the battery operating number. For example, if it is predicted the battery level will be N % and the battery level is indeed N %, then the predictive model would return an intermediate or good battery operating number. However, if N is very low or very high, that number is modified based on another model such as the drain model or direct model. This represents a situation in which a device recently removed from charge at full battery is likely still near a charger, it can afford to initiate or continue expensive operations such backup, etc. A device that is nearly flat should tend to conserve the remaining charge for user initiated ‘foreground’ operations rather than options operations such as backup, app update etc., even if it is on track based on the predictive model. This also reflects the property that the predictive model alone is mainly interested in the relative level of battery, instead of the absolute level.
  • The same can be applied to the discharge rate. A very high discharge rate may indicate future problems, so even if the predictive model indicates that the battery is good or great, the system may reduce the battery operating number for very fast discharge.
  • The drain model employs both a short term and long term calculation. In one embodiment, recent low rates of drain may override a longer term history of high rates of drain. This avoids an inappropriate period of low battery operating number after a short period of very high drain that has ended.
  • In one embodiment, the data generated by the predictive model and the drain model may be adjusted as: Clamp (P(predicted−actual)+D2(actual), 0, 100). P is a curve or map which converts the difference between predicted and actual levels in to the base BON, and then D2 is a curve or map (distinct from D, the base curve for direct). D2 is 0 for most of its range (intermediate battery levels) and smoothly approaches 100 in the high battery range (e.g. top 15%) and smoothly approaches −100 in the low battery range (e.g. bottom 15%).
  • The techniques described above can also be applied to indicate whether a device is coupled to a charger in a good condition. In one embodiment, if the device is connected to a charger which is connected to external power supply (mains), then the base charging BON is set to 100. If the battery level is very low, D2 as described above is applied. That is, if the user is charging and the charger is powerful enough to charge battery and power the device, then power is effectively free. If the user has just plugged in and the battery level is very low (e.g. <15%), then the maximum benefit is to charge the battery as fast as possible, which may mean reducing device's power consumption. Various charging situations exist, including a situation in which a charger is powerful enough to charge battery and power the device, and those which might charge only when the device is idle, or even charge at a reduced rate. If charging is slow, then a reduced BON is appropriate.
  • Referring back to FIG. 1, battery usage monitor 115 is configured to monitor battery usage and battery charging data of battery 107. Battery usage monitor 115 may periodically monitor the battery usage and charging on a daily basis. The data representing the battery usage and charging data are then used by a battery statistics compiler (not shown) to analyze and compile battery heuristics and charging pattern or trends 103, which can be stored in a persistent storage device of the portable device (not shown). Battery usage heuristics and charging pattern 103 may be constantly or periodically updated over a long period of time to develop more accurate trends of battery usage and charging behavior of the user. In one embodiment, the battery heuristics compiler may further calculate a daily average battery usage and/or an estimated daily battery charging schedule of the user. In one embodiment, the daily average herein is the weighted average for values recorded at a particular time slot or window (e.g., 15 minutes wide) of the day over several days. The weight in the weighted average is generated by the model generator. For example, an average for 10 am time slot may be calculated based on the data recorded or captured around 10 am of each of the past several days. As a result, it can roughly determine when and how long in a regular day that the portable device is powered by the battery without charging.
  • Battery usage heuristics and charging pattern 103 can be used to determine a user intent at a given point in time based on the battery usage level at the given point in time. For example, assuming at a given point in time, battery usage monitor 115 receives data representing a battery usage level. The battery usage level is used to compare with the daily average battery usage level obtained from battery usage activity history 103 and optional application activities (for example, obtained via activity analyzer 108 of FIG. 1). Based on the comparison, a user intent determination unit (not shown) can determine the user intent and possible subsequent user actions with the portable device. As a result, the user intent determination unit is able to approximately determine whether that particular battery level is within a normal battery usage range of a typical day of the user.
  • According to one embodiment, if the difference between the battery usage level at the point in time and the average daily battery usage level exceeds a predetermined threshold, it may indicate that the battery usage of the portable device is unusual. A power management action may be performed to accommodate such an unusual situation. For example, if the battery usage level is too high compared to the daily average battery usage, power consumption of certain hardware or software may be reduced to conserve power capacity, such that the remaining power capacity can last for the estimated period of time without charging. On the other hand, if the battery usage is too low compared to the average battery usage level, certain performance of the hardware and/or software may be increased (which leads to higher power consumption) as long as the remaining power capacity of the battery can last the estimated period of time without charging. Such power management actions may be performed automatically without user intervention or knowledge.
  • The above techniques can be applied to a variety of situations. For example, suppose a user charges its device more than once a day from Monday through Friday during a week. If the total charge consumed in a day is less than the battery's capacity, it is likely the user is charging the device because it is convenient, not because the battery is likely to run out. If the charge used in a day exceeds the battery's capacity modestly, it may be worth it to the user for the power management system to be a little conservative about power usage throughout the day to stretch the capacity of the battery and avoid the need to charge mid-day. If the charge consumed in a day exceeds the batteries capacity significantly then the user is certainly using its device fully and the power management system's effect on performance to avoid the mid-day charge would likely be upsetting to the user.
  • In another example, suppose the user charges its device once a day on Monday through Friday during a week, and the battery usage level of the device before it is charged averages out to a level, referred to as a daily average usage level, with a reasonably low standard deviation. This may imply the user's behavior is about the same each weekday. Should on a given weekday, if the battery usage level falls below the average usage level, with some margin, it implies that there is something different about the user's behavior on this day. This boundary crossing of average behavior can inform the power management system that the user is more likely to run out of battery on that particular day, and it may be in its best interest to conserve power.
  • In a further example, suppose a user charges their device and removes it from charge at approximately the same time each work day. If the standard deviations for the average times are low enough, the power management system could infer the duration of the user's work day. Alternatively, the power management system can infer which time slots (e.g., 9:00 am to 11:00 am and 2:00 pm to 4:00 pm) of a particular work day (e.g., Monday to Friday) it can consume more power than other time slots. Being able to infer the user's work day would allow the power management system to set power budgets throughout the day in an attempt to ensure that the battery is not depleted before the day is over. Such a power management system operating based on user activities or user behavior is referred to herein as a user level power management system. The goal is to infer the user intent during different time and/or days from the battery usage heuristics and charging pattern, such that the unusual user behavior can be captured early enough before it is too little too late for the power management system to act. As a result, the operations of the portable device can be dynamically configured (in terms of balance of performance and power consumption), such that the user can have the best experience of the portable device.
  • Operation manager 104 may represent a combination of one or more of a resource manager, an application launcher (e.g., springboard), a scheduler, a power management unit, and/or other components of the operating system. Operation manager 104 is configured to manage or collect information such as an operating state or status of certain hardware and/or software operations (e.g., entering an airplane mode) and to communicate such information to program activity analyzer 108. Based on the operating state or status information, program activity analyzer 108 is configured to collect information with activity data collected from programs 110 and optional battery usage heuristics and charging pattern 103.
  • The user intent determination unit (which may be implemented as part of ABLE unit 101) then infers user intent and possible subsequent user interaction with the portable device at that point in time based on the information gathered by program activity analyzer 108. Based on the user intent and the possible subsequent user interaction, the user intent determination unit transmits a signal to operation manager 104 to recommend a power management action to be performed on the portable device. In response, operation manager 104 may perform certain power management actions on the hardware such as shutting down the WiFi, lower the display brightness, etc., as well as software such as causing certain programs to change its behavior to reduce certain performance of the programs. Alternatively, if it is determined based on the user intent that the remaining power capacity of the battery can last much longer than the estimated period of time without charging, the performance of the portable device may be increased to further enhance user experience.
  • The techniques described above can be applied to admission control processes of a data processing system. In a data processing system, applications and system services have access to an application with which they can request a permission to perform an action with certain identifying characteristics. Those characteristics, which include the identity of the requesting application or service, a key or identifier for a class of activity, and a value representing a particular property of the activity, such as which mailbox, or a numeric value. The system can then evaluate the importance to the user of that activity based upon the information, and in conjunction with the battery condition number, determine if the activity should go ahead. The identifying characteristics may be passed around the system to account for conditions in which the requesting application may delegation the invocation of the action to a third service or services. The determination of the importance of the action may include analysis of the battery impact of past similar actions, or of other information provided by the application, such as which mailboxes the user frequently uses.
  • Again, the goal of user level power management is to optimize the performance, battery life and thermal response of devices and computers. If the power management system has enough information about what the user is doing, it may be able to improve performance or save power which in turn could extend battery life or reduce system temperature. Applications can be a source of input to a user power management system, explicitly those that outline the user's near future in the real world.
  • The above techniques can be applied to a variety of different situations. For example, presenting a boarding pass for checking into a flight on a plane tells the power management system that the user is likely going to be in airplane mode for the duration of the flight. When in the near future the user enables airplane mode, the power management system can infer that the user will want their device's battery to last for the duration of the flight, and will not likely have access to power until after the flight. The power management system could respond by sacrificing some performance in favor of stretching the battery to last for the duration of the flight. Simply knowing that the device is in airplane mode gives part of this information, but it lacks a likely duration that airplane mode will be enabled and cannot make a useful prediction about how much battery conservation should be applied. By using the fact that the user has checked in for a flight, and the metadata from the boarding pass, the power management system gets two data points for airplane mode and a likely duration.
  • Another example could be using an eWallet application such as Passbook to purchase a drink at a coffee house. This coupled with GPS location largely staying the same would suggest that the user will be enjoying their drink in the coffee house for the next 20 to 30 minutes. If they should be using their device in that time period they are likely to be doing so intently, (reading the news, playing a game, etc.), such that they would like their device to be particularly responsive. This sort of information could tell the power management system that for the next 20-30 minutes it is in the user's best interest to sacrifice some battery life in favor of improved performance.
  • In a further example, if the user starts watching a movie using a media player of the portable device, the system can determine whether the battery can last for the duration of the movie based on the metadata of the movie. If the remaining power capacity of the battery cannot last that long, certain power management actions may be performed, such as reducing performance of other applications since the user unlikely use those applications while watching the movie. Alternatively, the frame rate may be reduced in order to reduce power consumption. Furthermore, it the system detects that the device is operating in a relatively dark environment (e.g., playing a video game), which may be detected via an ambient or light sensor (and its corresponding application), the system may automatically reduces the backlight of the display to further reduce power consumption of a general-purpose processor such as a central processing unit (CPU) and/or to increase performance of a special-purpose processor such as a graphical processing unit (GPU).
  • It is important to note that the monitoring, detection, and power management actions described above are performed automatically without user intervention or user knowledge. Unlike convention power management systems, the user level power management system described throughout this application does not focus on detection of power usage and notification of the user regarding such power usage (e.g., alert to the user that the battery is running low. Rather, the user level power management system focuses on user behavior of a particular user and automatically adjusts the operations of the portable device in order to improve the user experience with the portable device. Each user may have different behavior and pattern, by employing a user agent within the portable device, the user level power management system can “learn” that particular user's behavior and adapt to that particular user's life style, even without the user knowledge. A typical user may not be interested in the notification of a battery usage level. Rather, the user may be more interested in enjoying the experience of the portable device without interruption by the unwelcome notification. All a user cares about is that the battery can support whatever the user intends to do at the moment, regardless how the system fulfills such a requirement.
  • FIG. 9 is a block diagram illustrating an example of a data processing system which may be used with one embodiment of the invention. For example, system 900 may represents any of data processing systems described above performing any of the processes or methods described above. System 900 may represent a desktop (e.g., iMac™ available from Apple Inc. of Cupertino, Calif.), a laptop (e.g., MacBook™), a tablet (e.g., iPad™), a server, a mobile phone (e.g., iPhone™), a media player (e.g., iPod™ or iPod Touch™), a personal digital assistant (PDA), a personal communicator, a gaming device, a network router or hub, a wireless access point (AP) or repeater, a set-top box, or a combination thereof.
  • Referring to FIG. 9, in one embodiment, system 900 includes processor 901 and peripheral interface 902, also referred to herein as a chipset, to couple various components to processor 901 including memory 903 and devices 905-908 via a bus or an interconnect. Processor 901 may represent a single processor or multiple processors with a single processor core or multiple processor cores included therein. Processor 901 may represent one or more general-purpose processors such as a microprocessor, a central processing unit (CPU), or the like. More particularly, processor 901 may be a complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or processor implementing other instruction sets, or processors implementing a combination of instruction sets. Processor 901 may also be one or more special-purpose processors such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), a network processor, a graphics processor, a network processor, a communications processor, a cryptographic processor, a co-processor, an embedded processor, or any other type of logic capable of processing instructions. Processor 901 is configured to execute instructions for performing the operations and steps discussed herein.
  • Peripheral interface 902 may include memory control hub (MCH) and input output control hub (ICH). Peripheral interface 902 may include a memory controller (not shown) that communicates with a memory 903. Peripheral interface 902 may also include a graphics interface that communicates with graphics subsystem 904, which may include a display controller and/or a display device. Peripheral interface 902 may communicate with graphics device 904 via an accelerated graphics port (AGP), a peripheral component interconnect (PCI) express bus, or other types of interconnects.
  • An MCH is sometimes referred to as a Northbridge and an ICH is sometimes referred to as a Southbridge. As used herein, the terms MCH, ICH, Northbridge and Southbridge are intended to be interpreted broadly to cover various chips who functions include passing interrupt signals toward a processor. In some embodiments, the MCH may be integrated with processor 901. In such a configuration, peripheral interface 902 operates as an interface chip performing some functions of the MCH and ICH. Furthermore, a graphics accelerator may be integrated within the MCH or processor 901.
  • Memory 903 may include one or more volatile storage (or memory) devices such as random access memory (RAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), static RAM (SRAM), or other types of storage devices. Memory 903 may store information including sequences of instructions that are executed by processor 901, or any other device. For example, executable code and/or data of a variety of operating systems, device drivers, firmware (e.g., input output basic system or BIOS), and/or applications can be loaded in memory 903 and executed by processor 901. An operating system can be any kind of operating systems, such as, for example, Windows® operating system from Microsoft®, Mac OS®/iOS® from Apple, Android® from Google®, Linux®, Unix®, or other real-time or embedded operating systems such as VxWorks.
  • Peripheral interface 902 may provide an interface to IO devices such as devices 905-908, including wireless transceiver(s) 905, input device(s) 906, audio IO device(s) 907, and other IO devices 908. Wireless transceiver 905 may be a WiFi transceiver, an infrared transceiver, a Bluetooth transceiver, a WiMax transceiver, a wireless cellular telephony transceiver, a satellite transceiver (e.g., a global positioning system (GPS) transceiver) or a combination thereof. Input device(s) 906 may include a mouse, a touch pad, a touch sensitive screen (which may be integrated with display device 904), a pointer device such as a stylus, and/or a keyboard (e.g., physical keyboard or a virtual keyboard displayed as part of a touch sensitive screen). For example, input device 906 may include a touch screen controller coupled to a touch screen. The touch screen and touch screen controller can, for example, detect contact and movement or break thereof using any of a plurality of touch sensitivity technologies, including but not limited to capacitive, resistive, infrared, and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements for determining one or more points of contact with the touch screen.
  • Audio IO 907 may include a speaker and/or a microphone to facilitate voice-enabled functions, such as voice recognition, voice replication, digital recording, and/or telephony functions. Other optional devices 908 may include a storage device (e.g., a hard drive, a flash memory device), universal serial bus (USB) port(s), parallel port(s), serial port(s), a printer, a network interface, a bus bridge (e.g., a PCI-PCI bridge), sensor(s) (e.g., a motion sensor, a light sensor, a proximity sensor, etc.), or a combination thereof. Optional devices 908 may further include an imaging processing subsystem (e.g., a camera), which may include an optical sensor, such as a charged coupled device (CCD) or a complementary metal-oxide semiconductor (CMOS) optical sensor, utilized to facilitate camera functions, such as recording photographs and video clips.
  • Note that while FIG. 9 illustrates various components of a data processing system, it is not intended to represent any particular architecture or manner of interconnecting the components; as such details are not germane to embodiments of the present invention. It will also be appreciated that network computers, handheld computers, mobile phones, and other data processing systems which have fewer components or perhaps more components may also be used with embodiments of the invention.
  • Some portions of the preceding detailed descriptions have been presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the ways used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of operations leading to a desired result. The operations are those requiring physical manipulations of physical quantities.
  • It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the above discussion, it is appreciated that throughout the description, discussions utilizing terms such as those set forth in the claims below, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
  • The techniques shown in the figures can be implemented using code and data stored and executed on one or more electronic devices. Such electronic devices store and communicate (internally and/or with other electronic devices over a network) code and data using computer-readable media, such as non-transitory computer-readable storage media (e.g., magnetic disks; optical disks; random access memory; read only memory; flash memory devices; phase-change memory) and transitory computer-readable transmission media (e.g., electrical, optical, acoustical or other form of propagated signals—such as carrier waves, infrared signals, digital signals).
  • The processes or methods depicted in the preceding figures may be performed by processing logic that comprises hardware (e.g. circuitry, dedicated logic, etc.), firmware, software (e.g., embodied on a non-transitory computer readable medium), or a combination of both. Although the processes or methods are described above in terms of some sequential operations, it should be appreciated that some of the operations described may be performed in a different order. Moreover, some operations may be performed in parallel rather than sequentially.
  • In the foregoing specification, embodiments of the invention have been described with reference to specific exemplary embodiments thereof. It will be evident that various modifications may be made thereto without departing from the broader spirit and scope of the invention as set forth in the following claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense.

Claims (24)

What is claimed is:
1. A computer-implemented method, comprising:
determining, by an adaptive battery life extension (ABLE) unit, a first battery number representing a battery condition of a battery of a mobile device using a predictive model, wherein the predictive model is configured to predict future battery conditions based on a past battery usage of the battery;
determining a second battery number representing the battery condition using a drain model, wherein the drain model is configured to predict a future battery discharge rate based on a past battery discharge rate;
determining a third battery number representing the battery condition based on a current battery level corresponding to a remaining life of the battery at the point in time; and
performing, by power management logic, a power management action based on the battery condition derived from at least one of the first battery number, the second battery number and the third battery number.
2. The method of claim 1, wherein determining the first battery number using the predictive model comprises:
determining a first difference between a first predicted battery level predicted by the predictive model for the point in time and an actual battery level read from the battery at the point in time; and
transforming the first difference into the first battery number using a first transform function associated with the predictive model.
3. The method of claim 2, wherein determining the second battery number using the drain model comprises:
determining a second difference between a third battery level at a third point in time in the past and a fourth battery level at a fourth point in time in the past over a second predetermined period of time; and
transforming a second difference into the second battery number using a second transform function associated with the drain model.
4. The method of claim 3, wherein the third battery level was captured 15 minute ago, and wherein the fourth battery level was captured 45 minute ago.
5. The method of claim 3, wherein determining the third battery number using the direct model comprises transforming the current battery level read from the battery into the third battery number using a third transform function associated with the direct model.
6. The method of claim 1, further comprising determining whether the predictive model is predictive prior to using the predictive model, wherein the drain model is utilized if the predictive model is not predictive.
7. The method of claim 6, wherein determining whether the predictive model is predictive comprises:
obtaining from a battery activity history database a set of actual battery level data captured at a plurality of points in time during a first predetermined period of time in the past;
obtaining from the battery activity history database a first set of predicted battery level data predicted by the predictive model corresponding to the plurality of points in time; and
performing a coefficient of determination operation based on the predicted battery level data of the first set with the actual battery level data to determine whether the predictive model performs within a predetermined tolerable range.
8. The method of claim 7, wherein performing a coefficient of determination operation comprises performing an R-squared process on the predicted battery level data and the actual battery level data.
9. The method of claim 8, further comprising:
obtaining from the battery heuristic database a second set of predicted battery level data predicted by the predictive model during a second predetermined period of time in the past;
determining correlation between the first set of predicted battery level data and the second set of predicted battery level data; and
determining whether the predicted model is predictive based on the determined correlation and the coefficient of determination.
10. The method of claim 9, wherein the first predetermined period of time comprises a fifteen minute window one week ago and the second predetermined period of time comprises a fifteen minute window one day ago.
11. A non-transitory computer-readable medium having instructions stored therein, which when executed by a processor, cause the processor to perform a method, the method comprising:
determining, by an adaptive battery life extension (ABLE) unit, a first battery number representing a battery condition of a battery of a mobile device using a predictive model, wherein the predictive model is configured to predict future battery conditions based on a past battery usage of the battery;
determining a second battery number representing the battery condition using a drain model, wherein the drain model is configured to predict a future battery discharge rate based on a past battery discharge rate;
determining a third battery number representing the battery condition based on a current battery level corresponding to a remaining life of the battery at the point in time; and
performing, by power management logic, a power management action based on the battery condition derived from at least one of the first battery number, the second battery number and the third battery number.
12. The non-transitory computer-readable medium of claim 11, wherein determining the first battery number using the predictive model comprises:
determining a first difference between a first predicted battery level predicted by the predictive model for the point in time and an actual battery level read from the battery at the point in time; and
transforming the first difference into the first battery number using a first transform function associated with the predictive model.
13. The non-transitory computer-readable medium of claim 12, wherein determining the second battery number using the drain model comprises:
determining a second difference between a third battery level at a third point in time in the past and a fourth battery level at a fourth point in time in the past over a second predetermined period of time; and
transforming a second difference into the second battery number using a second transform function associated with the drain model.
14. The non-transitory computer-readable medium of claim 13, wherein the third battery level was captured 15 minute ago, and wherein the fourth battery level was captured 45 minute ago.
15. The non-transitory computer-readable medium of claim 13, wherein determining the third battery number using the direct model comprises transforming the current battery level read from the battery into the third battery number using a third transform function associated with the direct model.
16. The non-transitory computer-readable medium of claim 11, wherein the method further comprises determining whether the predictive model is predictive prior to using the predictive model, wherein the drain model is utilized if the predictive model is not predictive.
17. The non-transitory computer-readable medium of claim 16, wherein determining whether the predictive model is predictive comprises:
obtaining from a battery activity history database a set of actual battery level data captured at a plurality of points in time during a first predetermined period of time in the past;
obtaining from the battery activity history database a first set of predicted battery level data predicted by the predictive model corresponding to the plurality of points in time; and
performing a coefficient of determination operation based on the predicted battery level data of the first set with the actual battery level data to determine whether the predictive model performs within a predetermined tolerable range.
18. The non-transitory computer-readable medium of claim 17, wherein performing a coefficient of determination operation comprises performing an R-squared process on the predicted battery level data and the actual battery level data.
19. The non-transitory computer-readable medium of claim 18, wherein the method further comprises:
obtaining from the battery heuristic database a second set of predicted battery level data predicted by the predictive model during a second predetermined period of time in the past;
determining correlation between the first set of predicted battery level data and the second set of predicted battery level data; and
determining whether the predicted model is predictive based on the determined correlation and the coefficient of determination.
20. The non-transitory computer-readable medium of claim 19, wherein the first predetermined period of time comprises a fifteen minute window one week ago and the second predetermined period of time comprises a fifteen minute window one day ago.
21. A portable device, comprising:
an adaptive battery life extension (ABLE) unit to determine a first battery number representing a battery condition of a battery of a mobile device using a predictive model, wherein the predictive model is configured to predict future battery conditions based on a past battery usage of the battery, determine a second battery number representing the battery condition using a drain model, wherein the drain model is configured to predict a future battery discharge rate based on a past battery discharge rate and determine a third battery number representing the battery condition based on a current battery level corresponding to a remaining life of the battery at the point in time; and
power management logic to perform a power management action based on the battery condition derived from at least one of the first battery number, the second battery number and the third battery number.
22. The portable device of claim 21, wherein determining the first battery number using the predictive model comprises:
determining a first difference between a first predicted battery level predicted by the predictive model for the point in time and an actual battery level read from the battery at the point in time; and
transforming the first difference into the first battery number using a first transform function associated with the predictive model.
23. The portable device of claim 22, wherein determining the second battery number using the drain model comprises:
determining a second difference between a third battery level at a third point in time in the past and a fourth battery level at a fourth point in time in the past over a second predetermined period of time; and
transforming a second difference into the second battery number using a second transform function associated with the drain model.
24. The portable device of claim 23, wherein determining the third battery number using the direct model comprises transforming the current battery level read from the battery into the third battery number using a third transform function associated with the direct model.
US14/290,795 2014-05-29 2014-05-29 Adaptive battery life extension Active US9210662B1 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
US14/290,795 US9210662B1 (en) 2014-05-29 2014-05-29 Adaptive battery life extension
PCT/US2015/028353 WO2015183459A1 (en) 2014-05-29 2015-04-29 Adaptive battery life extension
KR1020167033208A KR101940389B1 (en) 2014-05-29 2015-04-29 Adaptive battery life extension
CN201580028012.8A CN106415296B (en) 2014-05-29 2015-04-29 Adaptive battery life extension
EP15722839.6A EP3149502B1 (en) 2014-05-29 2015-04-29 Adaptive battery life extension
US14/931,596 US9615333B2 (en) 2014-05-29 2015-11-03 Adaptive battery life extension

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/290,795 US9210662B1 (en) 2014-05-29 2014-05-29 Adaptive battery life extension

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/931,596 Continuation US9615333B2 (en) 2014-05-29 2015-11-03 Adaptive battery life extension

Publications (2)

Publication Number Publication Date
US20150351037A1 true US20150351037A1 (en) 2015-12-03
US9210662B1 US9210662B1 (en) 2015-12-08

Family

ID=53180829

Family Applications (2)

Application Number Title Priority Date Filing Date
US14/290,795 Active US9210662B1 (en) 2014-05-29 2014-05-29 Adaptive battery life extension
US14/931,596 Active US9615333B2 (en) 2014-05-29 2015-11-03 Adaptive battery life extension

Family Applications After (1)

Application Number Title Priority Date Filing Date
US14/931,596 Active US9615333B2 (en) 2014-05-29 2015-11-03 Adaptive battery life extension

Country Status (5)

Country Link
US (2) US9210662B1 (en)
EP (1) EP3149502B1 (en)
KR (1) KR101940389B1 (en)
CN (1) CN106415296B (en)
WO (1) WO2015183459A1 (en)

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130301505A1 (en) * 2008-07-03 2013-11-14 Centurylink Intellectual Property Llc Battery Charge Reservation for Emergency Communications
US20150042480A1 (en) * 2011-06-06 2015-02-12 Apple Inc. Adaptive low-battery warnings for battery-powered electronic devices
US20160248266A1 (en) * 2015-02-19 2016-08-25 Microsoft Technology Licensing, Llc Heterogeneous Battery Cell Charging
US20160380441A1 (en) * 2013-11-07 2016-12-29 Stored Energy Systems, a Limited Liability Company Systems and methods for self-contained automatic battery charging and battery-life-extension charging
US20170108551A1 (en) * 2015-10-15 2017-04-20 Johnson Controls Technology Company Battery test system for predicting battery test results
US9696782B2 (en) 2015-02-09 2017-07-04 Microsoft Technology Licensing, Llc Battery parameter-based power management for suppressing power spikes
US9748765B2 (en) 2015-02-26 2017-08-29 Microsoft Technology Licensing, Llc Load allocation for multi-battery devices
CN107145210A (en) * 2016-03-01 2017-09-08 卡西欧计算机株式会社 Electronic equipment, battery allowance management method
US9793570B2 (en) 2015-12-04 2017-10-17 Microsoft Technology Licensing, Llc Shared electrode battery
US20180090941A1 (en) * 2016-09-26 2018-03-29 Samsung Electronics Co., Ltd. Apparatus and method for battery management
US9939862B2 (en) 2015-11-13 2018-04-10 Microsoft Technology Licensing, Llc Latency-based energy storage device selection
US20180139545A1 (en) * 2015-12-18 2018-05-17 Michael Goorevich Power management features
US10061366B2 (en) 2015-11-17 2018-08-28 Microsoft Technology Licensing, Llc Schedule-based energy storage device selection
WO2018217801A1 (en) * 2017-05-24 2018-11-29 Sigma Designs, Inc. Cross-layer sleep control in a wireless device
US10158148B2 (en) 2015-02-18 2018-12-18 Microsoft Technology Licensing, Llc Dynamically changing internal state of a battery
US20180373316A1 (en) * 2017-06-26 2018-12-27 Microsoft Technology Licensing, Llc Target Based Power Management
US20190018031A1 (en) * 2016-01-06 2019-01-17 Samsung Electronics Co., Ltd. Testing apparatus and control method thereof
CN110268366A (en) * 2017-02-24 2019-09-20 索尼移动通信株式会社 Information processing unit, information processing method and program
US10488905B2 (en) 2016-11-16 2019-11-26 Microsoft Technology Licensing, Llc Dynamic energy storage device discharging
US20200073561A1 (en) * 2018-08-29 2020-03-05 Qualcomm Incorporated Adaptive power management of dynamic random access memory
US10599205B2 (en) * 2017-09-18 2020-03-24 Verizon Patent And Licensing Inc. Methods and systems for managing machine learning involving mobile devices
US10789542B2 (en) * 2015-06-05 2020-09-29 Apple Inc. System and method for predicting changes in network quality
US10903665B2 (en) 2016-11-01 2021-01-26 Microsoft Technology Licensing, Llc Usage data based battery charge or discharge time determination
US11165270B2 (en) 2019-03-21 2021-11-02 Microsoft Technology Licensing, Llc Predictive management of battery operation
US11494631B2 (en) * 2017-09-27 2022-11-08 Google Llc Smart advanced content retrieval
US11656666B2 (en) 2016-11-16 2023-05-23 Microsoft Technology Licensing, Llc Dynamic power source selection, charging, and discharging
CN117148169A (en) * 2023-10-30 2023-12-01 东方旭能(山东)科技发展有限公司 Battery service time prediction method, system, equipment and medium based on big data

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9210662B1 (en) * 2014-05-29 2015-12-08 Apple Inc. Adaptive battery life extension
JP6414743B2 (en) * 2014-11-28 2018-10-31 富士通株式会社 Power supply control device, power supply control program, power supply control method, and power supply control system
WO2016137510A1 (en) * 2015-02-27 2016-09-01 Hewlett Packard Enterprise Development Lp Selectively enabling backup power to nodes
US9860336B2 (en) * 2015-10-29 2018-01-02 International Business Machines Corporation Mitigating service disruptions using mobile prefetching based on predicted dead spots
CN105676997B (en) * 2016-01-05 2018-11-30 京东方科技集团股份有限公司 Mobile terminal administration method and system, mobile terminal
US9936457B2 (en) * 2016-03-29 2018-04-03 International Business Machines Corporation Ensuring battery reserve for mobile communication
SE541804C2 (en) * 2018-04-09 2019-12-17 Scania Cv Ab Methods and control units for determining an extended state of health of a component and for control of a component
CN110554945A (en) * 2018-06-01 2019-12-10 中兴通讯股份有限公司 electric quantity control method, electronic equipment and computer readable storage medium
CN110941320A (en) 2018-09-25 2020-03-31 华为技术有限公司 Electric quantity control method and terminal based on user habits
US10635196B1 (en) 2018-10-04 2020-04-28 Dell Products L.P. Information handling system power management with active stylus input device
KR20200100404A (en) * 2019-02-18 2020-08-26 삼성전자주식회사 Electronic device for adaptive power management
WO2021015730A1 (en) * 2019-07-22 2021-01-28 Hewlett-Packard Development Company, L.P. Schedule-based charging of batteries
US11886268B2 (en) 2020-01-16 2024-01-30 Hewlett-Packard Development Company, L.P. User profile based on battery measurement
JP7413806B2 (en) * 2020-02-06 2024-01-16 トヨタ自動車株式会社 Battery deterioration determination device, battery deterioration determination method, and battery deterioration determination program
CN111564877A (en) * 2020-04-30 2020-08-21 华为技术有限公司 Method and device for charging management and control
WO2021246816A1 (en) 2020-06-04 2021-12-09 Samsung Electronics Co., Ltd. Method for enhancing performance of electronic device
EP4196865A1 (en) * 2020-08-11 2023-06-21 Blancco Technology Group IP Oy Determining the battery condition of a mobile electronic device
DE102021203729A1 (en) 2021-04-15 2022-10-20 Robert Bosch Gesellschaft mit beschränkter Haftung Method and device for operating a system for providing predicted aging states of electrical energy stores using reconstructed time series signals using machine learning methods
CN114137426B (en) * 2021-11-30 2024-04-09 广州极飞科技股份有限公司 Residual electric quantity estimation method, device, equipment and storage medium

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4390841A (en) * 1980-10-14 1983-06-28 Purdue Research Foundation Monitoring apparatus and method for battery power supply
JP3695610B2 (en) * 1996-07-01 2005-09-14 株式会社キューキ Model-based battery remaining capacity meter
US20030184307A1 (en) 2002-02-19 2003-10-02 Kozlowski James D. Model-based predictive diagnostic tool for primary and secondary batteries
JP4650405B2 (en) * 2006-11-28 2011-03-16 日本電気株式会社 Portable information processing terminal, battery management method and program thereof
US20090164152A1 (en) * 2007-12-20 2009-06-25 Nokia Corporation Method, Apparatus and Computer Program Product for Providing Power Consumption Notification and Management
CN101930056B (en) * 2009-06-24 2013-07-24 力博特公司 Method for predicting power backup time of battery
US7888913B1 (en) * 2009-09-08 2011-02-15 Intermec Ip Corp. Smart battery charger
JP5397139B2 (en) * 2009-10-02 2014-01-22 日本電気株式会社 Communication terminal
CN102478636B (en) * 2010-11-26 2014-09-03 比亚迪股份有限公司 Electric quantity detection method and device for battery
WO2012096150A1 (en) * 2011-01-12 2012-07-19 三菱電機株式会社 Dynamic image encoding device, dynamic image decoding device, dynamic image encoding method, and dynamic image decoding method
US20120198262A1 (en) * 2011-01-31 2012-08-02 Hand Held Products, Inc. Mobile device and method for extending battery life
CN102680897B (en) * 2011-03-15 2014-10-29 联芯科技有限公司 Battery capacity management method and device
CN102833385A (en) 2011-06-15 2012-12-19 康佳集团股份有限公司 Mobile phone device and method for forecasting battery life of mobile phone
JP5875037B2 (en) 2011-07-08 2016-03-02 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Battery state prediction system, method and program
CN102508172A (en) * 2011-11-23 2012-06-20 中兴通讯股份有限公司 Calculation method for electric quantities of battery, device and terminal
JP2013213684A (en) 2012-03-30 2013-10-17 Toyota Motor Corp Power storage system and charging state estimation method
US9716294B2 (en) 2012-04-20 2017-07-25 Ford Global Technologies, Llc Battery controller with monitoring logic for model-based battery control
US9285851B2 (en) * 2012-06-22 2016-03-15 Microsoft Technology Licensing, Llc Optimizing battery use for known future load
JP5995653B2 (en) 2012-08-16 2016-09-21 三菱電機株式会社 Charge / discharge control device, charge / discharge control method, program, and charge / discharge control system
JP6024308B2 (en) 2012-09-05 2016-11-16 コニカミノルタ株式会社 Electronics
US20140082383A1 (en) 2012-09-20 2014-03-20 Apple Inc. Predicting user intent and future interaction from application activities
US20140082384A1 (en) 2012-09-20 2014-03-20 Apple Inc. Inferring user intent from battery usage level and charging trends
US20150257103A1 (en) 2012-09-27 2015-09-10 Google Technology Holdings LLC Method and device with an augmented rules engine
US9465078B2 (en) 2012-11-02 2016-10-11 Fairfield Industries, Inc. Battery capacity and durability prediction method
CN103809125B (en) * 2014-02-13 2016-06-01 清华大学 The residue loading capacity method of estimation of lithium ion battery and system
US9210662B1 (en) * 2014-05-29 2015-12-08 Apple Inc. Adaptive battery life extension

Cited By (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130301505A1 (en) * 2008-07-03 2013-11-14 Centurylink Intellectual Property Llc Battery Charge Reservation for Emergency Communications
US9565639B2 (en) * 2008-07-03 2017-02-07 Centurylink Intellectual Property Llc Battery charge reservation for emergency communications
US20150042480A1 (en) * 2011-06-06 2015-02-12 Apple Inc. Adaptive low-battery warnings for battery-powered electronic devices
US9709607B2 (en) * 2011-06-06 2017-07-18 Apple Inc. Adaptive low-battery warnings for battery-powered electronic devices
US9948125B2 (en) * 2013-11-07 2018-04-17 Stored Energy Systems, a Limited Liability Company Systems and methods for self-contained automatic battery charging and battery-life-extension charging
US20160380441A1 (en) * 2013-11-07 2016-12-29 Stored Energy Systems, a Limited Liability Company Systems and methods for self-contained automatic battery charging and battery-life-extension charging
US9696782B2 (en) 2015-02-09 2017-07-04 Microsoft Technology Licensing, Llc Battery parameter-based power management for suppressing power spikes
US10228747B2 (en) 2015-02-09 2019-03-12 Microsoft Technology Licensing, Llc Battery parameter-based power management for suppressing power spikes
US10158148B2 (en) 2015-02-18 2018-12-18 Microsoft Technology Licensing, Llc Dynamically changing internal state of a battery
US20160248266A1 (en) * 2015-02-19 2016-08-25 Microsoft Technology Licensing, Llc Heterogeneous Battery Cell Charging
US9748765B2 (en) 2015-02-26 2017-08-29 Microsoft Technology Licensing, Llc Load allocation for multi-battery devices
US10263421B2 (en) 2015-02-26 2019-04-16 Microsoft Technology Licensing, Llc Load allocation for multi-battery devices
US10789542B2 (en) * 2015-06-05 2020-09-29 Apple Inc. System and method for predicting changes in network quality
US10191116B2 (en) * 2015-10-15 2019-01-29 Johnson Controls Technology Company Battery test system for predicting battery test results
US20170108551A1 (en) * 2015-10-15 2017-04-20 Johnson Controls Technology Company Battery test system for predicting battery test results
US9939862B2 (en) 2015-11-13 2018-04-10 Microsoft Technology Licensing, Llc Latency-based energy storage device selection
US10061366B2 (en) 2015-11-17 2018-08-28 Microsoft Technology Licensing, Llc Schedule-based energy storage device selection
US9793570B2 (en) 2015-12-04 2017-10-17 Microsoft Technology Licensing, Llc Shared electrode battery
US20180139545A1 (en) * 2015-12-18 2018-05-17 Michael Goorevich Power management features
US11528565B2 (en) 2015-12-18 2022-12-13 Cochlear Limited Power management features
US10555093B2 (en) * 2015-12-18 2020-02-04 Cochlear Limited Power management features
US20190018031A1 (en) * 2016-01-06 2019-01-17 Samsung Electronics Co., Ltd. Testing apparatus and control method thereof
CN107145210A (en) * 2016-03-01 2017-09-08 卡西欧计算机株式会社 Electronic equipment, battery allowance management method
US11309717B2 (en) * 2016-09-26 2022-04-19 Samsung Electronics Co., Ltd. Apparatus and method for battery management
US20180090941A1 (en) * 2016-09-26 2018-03-29 Samsung Electronics Co., Ltd. Apparatus and method for battery management
US10903665B2 (en) 2016-11-01 2021-01-26 Microsoft Technology Licensing, Llc Usage data based battery charge or discharge time determination
US10488905B2 (en) 2016-11-16 2019-11-26 Microsoft Technology Licensing, Llc Dynamic energy storage device discharging
US11656666B2 (en) 2016-11-16 2023-05-23 Microsoft Technology Licensing, Llc Dynamic power source selection, charging, and discharging
CN110268366A (en) * 2017-02-24 2019-09-20 索尼移动通信株式会社 Information processing unit, information processing method and program
US11057833B2 (en) 2017-05-24 2021-07-06 Tracie Wireless Llc Cross-layer sleep control in a wireless device
WO2018217801A1 (en) * 2017-05-24 2018-11-29 Sigma Designs, Inc. Cross-layer sleep control in a wireless device
US10725529B2 (en) * 2017-06-26 2020-07-28 Microsoft Technology Licensing, Llc Target based power management
US20180373316A1 (en) * 2017-06-26 2018-12-27 Microsoft Technology Licensing, Llc Target Based Power Management
US10599205B2 (en) * 2017-09-18 2020-03-24 Verizon Patent And Licensing Inc. Methods and systems for managing machine learning involving mobile devices
US20200183481A1 (en) * 2017-09-18 2020-06-11 Verizon Patent And Licensing Inc. Methods and systems for managing machine learning involving mobile devices
US11513583B2 (en) * 2017-09-18 2022-11-29 Verizon Patent And Licensing Inc. Methods and systems for managing machine learning involving mobile devices
US11494631B2 (en) * 2017-09-27 2022-11-08 Google Llc Smart advanced content retrieval
US20200073561A1 (en) * 2018-08-29 2020-03-05 Qualcomm Incorporated Adaptive power management of dynamic random access memory
US10956057B2 (en) * 2018-08-29 2021-03-23 Qualcomm Incorporated Adaptive power management of dynamic random access memory
US11165270B2 (en) 2019-03-21 2021-11-02 Microsoft Technology Licensing, Llc Predictive management of battery operation
CN117148169A (en) * 2023-10-30 2023-12-01 东方旭能(山东)科技发展有限公司 Battery service time prediction method, system, equipment and medium based on big data

Also Published As

Publication number Publication date
CN106415296B (en) 2020-10-16
US9210662B1 (en) 2015-12-08
EP3149502B1 (en) 2020-03-04
CN106415296A (en) 2017-02-15
US20160157180A1 (en) 2016-06-02
KR20160147963A (en) 2016-12-23
US9615333B2 (en) 2017-04-04
EP3149502A1 (en) 2017-04-05
KR101940389B1 (en) 2019-01-18
WO2015183459A1 (en) 2015-12-03

Similar Documents

Publication Publication Date Title
US9615333B2 (en) Adaptive battery life extension
US20140082384A1 (en) Inferring user intent from battery usage level and charging trends
US20140082383A1 (en) Predicting user intent and future interaction from application activities
US11720368B2 (en) Memory management of data processing systems
US20190317800A1 (en) Initiating Background Updates Based on User Activity
US9256484B2 (en) Dynamic adjustment of mobile device based on user activity
US9603094B2 (en) Non-waking push notifications
US9392393B2 (en) Push notification initiated background updates
US10491499B2 (en) Analyzing resource utilization of a cloud computing resource in a cloud computing environment
JP6955092B2 (en) Methods for reducing terminal power consumption, and terminals
US9118520B1 (en) Systems and methods for monitoring application resource usage on mobile computing systems
US9286120B2 (en) Resource management with dynamic resource budgeting
US11880259B2 (en) Smart assertion management
WO2011135721A1 (en) Information processing device and power consumption management program
CN111684485A (en) Video playback energy consumption control
Urunuela et al. Towards Class-Based Dynamic Voltage Scaling for Multimedia Applications

Legal Events

Date Code Title Description
AS Assignment

Owner name: APPLE INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BROWN, ALEXANDER B.;KAPOOR, GAURAV;SIGNING DATES FROM 20140712 TO 20140904;REEL/FRAME:033683/0068

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCF Information on status: patent grant

Free format text: PATENTED CASE

CC Certificate of correction
MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8