EP3149502B1 - Adaptive battery life extension - Google Patents
Adaptive battery life extension Download PDFInfo
- Publication number
- EP3149502B1 EP3149502B1 EP15722839.6A EP15722839A EP3149502B1 EP 3149502 B1 EP3149502 B1 EP 3149502B1 EP 15722839 A EP15722839 A EP 15722839A EP 3149502 B1 EP3149502 B1 EP 3149502B1
- Authority
- EP
- European Patent Office
- Prior art keywords
- battery
- model
- predicted
- time
- predictive
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W52/00—Power management, e.g. TPC [Transmission Power Control], power saving or power classes
- H04W52/02—Power saving arrangements
- H04W52/0209—Power saving arrangements in terminal devices
- H04W52/0261—Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/36—Arrangements for testing, measuring or monitoring the electrical condition of accumulators or electric batteries, e.g. capacity or state of charge [SoC]
- G01R31/367—Software therefor, e.g. for battery testing using modelling or look-up tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3212—Monitoring battery levels, e.g. power saving mode being initiated when battery voltage goes below a certain level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01M—PROCESSES OR MEANS, e.g. BATTERIES, FOR THE DIRECT CONVERSION OF CHEMICAL ENERGY INTO ELECTRICAL ENERGY
- H01M10/00—Secondary cells; Manufacture thereof
- H01M10/42—Methods or arrangements for servicing or maintenance of secondary cells or secondary half-cells
- H01M10/4207—Methods or arrangements for servicing or maintenance of secondary cells or secondary half-cells for several batteries or cells simultaneously or sequentially
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01M—PROCESSES OR MEANS, e.g. BATTERIES, FOR THE DIRECT CONVERSION OF CHEMICAL ENERGY INTO ELECTRICAL ENERGY
- H01M10/00—Secondary cells; Manufacture thereof
- H01M10/42—Methods or arrangements for servicing or maintenance of secondary cells or secondary half-cells
- H01M10/48—Accumulators combined with arrangements for measuring, testing or indicating the condition of cells, e.g. the level or density of the electrolyte
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01M—PROCESSES OR MEANS, e.g. BATTERIES, FOR THE DIRECT CONVERSION OF CHEMICAL ENERGY INTO ELECTRICAL ENERGY
- H01M10/00—Secondary cells; Manufacture thereof
- H01M10/42—Methods or arrangements for servicing or maintenance of secondary cells or secondary half-cells
- H01M10/48—Accumulators combined with arrangements for measuring, testing or indicating the condition of cells, e.g. the level or density of the electrolyte
- H01M10/482—Accumulators 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
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01M—PROCESSES OR MEANS, e.g. BATTERIES, FOR THE DIRECT CONVERSION OF CHEMICAL ENERGY INTO ELECTRICAL ENERGY
- H01M6/00—Primary cells; Manufacture thereof
- H01M6/50—Methods or arrangements for servicing or maintenance, e.g. for maintaining operating temperature
- H01M6/5044—Cells or batteries structurally combined with cell condition indicating means
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/02—Constructional features of telephone sets
- H04M1/0202—Portable telephone sets, e.g. cordless phones, mobile phones or bar type handsets
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/36—Arrangements for testing, measuring or monitoring the electrical condition of accumulators or electric batteries, e.g. capacity or state of charge [SoC]
- G01R31/3644—Constructional arrangements
- G01R31/3647—Constructional arrangements for determining the ability of a battery to perform a critical function, e.g. cranking
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01M—PROCESSES OR MEANS, e.g. BATTERIES, FOR THE DIRECT CONVERSION OF CHEMICAL ENERGY INTO ELECTRICAL ENERGY
- H01M10/00—Secondary cells; Manufacture thereof
- H01M10/42—Methods or arrangements for servicing or maintenance of secondary cells or secondary half-cells
- H01M10/425—Structural combination with electronic components, e.g. electronic circuits integrated to the outside of the casing
- H01M2010/4271—Battery management systems including electronic circuits, e.g. control of current or voltage to keep battery in healthy state, cell balancing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/02—Constructional features of telephone sets
- H04M1/0202—Portable telephone sets, e.g. cordless phones, mobile phones or bar type handsets
- H04M1/026—Details of the structure or mounting of specific components
- H04M1/0262—Details of the structure or mounting of specific components for a battery compartment
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02E—REDUCTION OF GREENHOUSE GAS [GHG] EMISSIONS, RELATED TO ENERGY GENERATION, TRANSMISSION OR DISTRIBUTION
- Y02E60/00—Enabling technologies; Technologies with a potential or indirect contribution to GHG emissions mitigation
- Y02E60/10—Energy 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.
- US 2009/164152 A1 discloses a method of managing power by accessing at least one application power consumption model, determining a device battery energy level, and determining a device discharge duration using the at least one application power consumption model and the battery energy level.
- Application power consumption models can include information regarding the timing of power usage when an application is implemented to generate a power consumption time profile with respect to the start of an application.
- 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 Figure 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. 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.
- program 110 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
- 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. 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.
- 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 Figure 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 Figure 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 Figure 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 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 to 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
- 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 Figure 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 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.
- 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 Figure 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 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 Figure 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 Figure 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 Figure 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 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
- 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.
- Figure 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.
- Memory 903 may store information including sequences of instructions that are executed by processor 901, or any other device.
- 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.
- 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
- Figure 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.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Chemical Kinetics & Catalysis (AREA)
- Chemical & Material Sciences (AREA)
- Software Systems (AREA)
- General Chemical & Material Sciences (AREA)
- Electrochemistry (AREA)
- Manufacturing & Machinery (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Signal Processing (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computational Linguistics (AREA)
- Charge And Discharge Circuits For Batteries Or The Like (AREA)
- Secondary Cells (AREA)
- Telephone Function (AREA)
Description
- 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.
- 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.
US 2009/164152 A1 discloses a method of managing power by accessing at least one application power consumption model, determining a device battery energy level, and determining a device discharge duration using the at least one application power consumption model and the battery energy level. Application power consumption models can include information regarding the timing of power usage when an application is implemented to generate a power consumption time profile with respect to the start of an application. - 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.
-
Figure 1 is a block diagram illustrating an example of a portable device according to one embodiment of the invention. -
Figure 2 is a block diagram illustrating a hardware configuration of a portable device according to one embodiment of the invention. -
Figure 3 is a block diagram illustrating an adaptive battery life extension system according to one embodiment of the invention. -
Figure 4 is a flow diagram illustrating a method for predicting future battery condition according to one embodiment of the invention. -
Figure 5A is a flow diagram illustrating a method for determining whether a battery model is predictive according to one embodiment of the invention. -
Figure 5B is a flow diagram illustrating a method for determining correlations of different battery data sets according to one embodiment of the invention. -
Figure 6A is a block diagram illustrating a process of a predictive model according to one embodiment of the invention. -
Figure 6B is an example of a predictive model mapping function according to one embodiment of the invention. -
Figure 7A is a block diagram illustrating a process of a drain model according to one embodiment of the invention. -
Figure 7B is an example of a drain model mapping function according to one embodiment of the invention. -
Figure 8A is a block diagram illustrating a process of a direct model according to one embodiment of the invention. -
Figure 8B is an example of a direct model mapping function according to one embodiment of the invention. -
Figure 9 is a block diagram illustrating an example of a data processing system which may be used with one embodiment of the invention. - 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. The invention is defined by the appended independent claims. Preferred embodiments are set out in the dependent claims. Embodiments that do not fall within the scope of the claims do not describe part of the invention.
- 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.
-
Figure 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 toFigure 1 ,system 100 includes anoperation manager 104 for managingsoftware 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 ABLEunit 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 onbattery activity history 103 using one or morebattery 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 ofprograms 110 and/or user behaviors captured byactivity analyzer 108 and battery usage and discharge patterns ofbattery 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 ofPMU 105.Battery activity history 103 may be stored as one or more databases in a persistent storage device ofsystem 100. Activity monitor/analyzer 108 may monitor the activities ofprograms 110 via a set of application programming interfaces (APIs) and compile and/or infer user intents, user activity trends, and user behaviors of utilizingmobile 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 batteryactivity history database 103.ABLE unit 101 utilizes one or more ofbattery 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, whenoperation 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 correspondingprograms 110,operation manager 104 communicates withABLE 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 pastbattery activity history 103 and/or current battery level using one or more ofbattery condition models 102. The calculated battery number is then provided tooperation 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, theoperation 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 ofhardware 106 and/or to perform certain power management actions onhardware 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 asSOC chip 201,backlight circuit 202,baseband circuit 203,WiFi component 204,memory 205,display 206, multi-touch device orkeyboard 207, and battery, as shown inFigure 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 compilebattery activity history 103 which are stored in a persistent storage device ofportable device 100. A particular battery usage level at a given point in time can be used to determine, in view ofbattery activity history 103, whether the user ofportable device 100 is operating theportable 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 theportable device 100. - In one embodiment,
activity analyzer 108 communicates withprograms 110 via a set of APIs to obtain certain activity or event information ofprograms 110. Based on the activities of theprograms 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 inPMU 105 to perform certain power management actions onhardware 106. Based on the user intent or behaviors, ABLE 101 oractivity analyzer 108 may predict the next time the user will recharge the mobile device. In addition, ABLE 101 may further communicate with, viaoperation manager 104, one or more ofprograms 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 ofbattery 107. -
Figure 3 is a block diagram illustrating an adaptive battery life extension system according to one embodiment of the invention. Referring toFigure 3 , in one embodiment,battery models 102 include at least apredictive model 301, adrain model 302, and adirect model 303.Predictive model 301 is configured to predict future battery conditions (e.g., future battery levels) based on pastbattery 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 byactivity 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 byPMU 105 or battery monitor 115 frombattery 107 at the point in time.ABLE unit 101 then determinesbattery number 315 presenting the battery condition based on the prediction provided by at least one ofpredictive model 301,drain model 302, anddirect model 303. - In one embodiment, ABLE 101 includes
model selection module 311,battery number calculator 312, andmodel 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 calculatebattery 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 overdrain model 302 anddrain model 302 is preferred overdirect model 303, etc. - Before using
predictive model 301,model selection module 311 examines the predicted battery data predicted bypredictive model 301 in view of actual battery data directly read from the battery over a period of time to determine whetherpredictive model 301 is still predictive, i.e., whetherpredictive 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 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. 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. Important cases where the computational definition of R 2 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 R 2 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 ifdrain 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 inFigure 3 may be implemented as software, hardware, or a combination thereof. -
Figure 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 byABLE unit 101 ofFigure 1 . Referring toFigure 4 , atblock 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. Atblock 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. Atblock 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. Atblock 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. -
Figure 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 byABLE unit 101 ofFigure 1 . Referring toFigure 5A , atblock 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. Atblock 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. Atblock 503, processing logic determine whether that particular model is predictive based on the correlation analysis and/or the coefficient of determination analysis. Atblock 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.
-
Figure 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 atblock 501 ofFigure 5A . Referring toFigure 5B , atblock 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. Atblock 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, atblock 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. -
- 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.
Figure 6A is a block diagram illustrating a process of a predictive model according to one embodiment of the invention. Referring toFigure 6A , according to one embodiment, based on pastbattery activity history 103, predictive model 301 (assuming it is still predictive) generates a predictedbattery level 601 at the point in time. Meanwhile, battery monitor 115 reads theactual battery level 602 directly frombattery 107. Based on predictedbattery level 601 andactual battery level 602,battery number calculator 312 calculatesbattery operating number 603 using predictivemodel 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: - 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 predictedbattery level 601 andactual battery level 602. Based on the input represented by predictedbattery level 601 andactual battery level 602, a lookup is performed in predicted model mapping curve ormapping 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 inFigure 6B , where the scale of BON on Y axis is from 1 to 101, while X axis represents the difference betweenactual battery level 602 and predictedbattery level 601. -
Figure 7A is a block diagram illustrating a process of a drain model according to one embodiment of the invention. Referring toFigure 7A , according to one embodiment, based on pastbattery activity history 103, drain model 302 (assuming it is still predictive) generates a first predictedbattery level 701 at a first point in time in the past (e.g., 15 minute ago) and generates a second predictedbattery level 702 at a first point in time in the past (e.g., 45 minute ago). Based onfirst battery level 701 andsecond battery level 702,battery number calculator 312 calculatesbattery 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):first battery level 701 andsecond battery level 702, a lookup is performed in drain model mapping curve ormapping 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 inFigure 7B , where the scale of BON on Y axis is from 1 to 101, while X axis represents the difference betweenfirst battery level 701 andsecond battery level 702 over a period of time (e.g., 45 minutes). -
Figure 8A is a block diagram illustrating a process of a direct model according to one embodiment of the invention. Referring toFigure 8A , according to one embodiment, battery monitor 115 directly readsbattery level 801 frombattery 107 at the point in time. Similar to the predictive model and the drain model,battery number calculator 312 calculatesbattery operating number 803 by looking up in directmodel mapping function 810 based onbattery level 801. An example of directmodel mapping function 810 is shown inFigure 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
Figure 1 , battery usage monitor 115 is configured to monitor battery usage and battery charging data ofbattery 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 ortrends 103, which can be stored in a persistent storage device of the portable device (not shown). Battery usage heuristics and chargingpattern 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 batteryusage activity history 103 and optional application activities (for example, obtained viaactivity analyzer 108 ofFigure 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 toprogram activity analyzer 108. Based on the operating state or status information,program activity analyzer 108 is configured to collect information with activity data collected fromprograms 110 and optional battery usage heuristics and chargingpattern 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 tooperation 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.
-
Figure 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, California), 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
Figure 9 , in one embodiment,system 900 includesprocessor 901 andperipheral interface 902, also referred to herein as a chipset, to couple various components toprocessor 901 includingmemory 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 amemory 903.Peripheral interface 902 may also include a graphics interface that communicates withgraphics subsystem 904, which may include a display controller and/or a display device.Peripheral interface 902 may communicate withgraphics 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 orprocessor 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 byprocessor 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 inmemory 903 and executed byprocessor 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
Figure 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 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 (12)
- A computer-implemented method, comprising:determining whether a predictive model (301) of an adaptive battery life extension unit (101) is predictive of future battery usage of a battery of a mobile device, then determining, by the adaptive battery life extension unit (101), a first battery number representing a battery condition of the battery of the mobile device using the predictive model (301), wherein determining whether the predictive model is predictive of future battery usage includes performing a correlation analysis of predicted battery data amongst at least two periods of time in the past by:performing (502) a coefficient of determination analysis between a first set of predicted battery usage data and actual measured battery usage data for a first period of time in the past; andperforming (501) a correlation analysis of a second set of predicted battery usage data for a second period in the past to the first set of predicted battery usage data;determining a second battery number representing the battery condition using a drain model (302), 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 a point in time; andperforming, by power management logic (105), 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.
- 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; andtransforming the first difference into the first battery number using a first transform function associated with the predictive model.
- 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; andtransforming a second difference into the second battery number using a second transform function associated with the drain model.
- The method of claim 3, wherein the third battery level was captured 15 minutes ago, and wherein the fourth battery level was captured 45 minutes ago.
- The method of claim 3, wherein determining the third battery number comprises transforming the current battery level read from the battery into the third battery number using a third transform function associated with a direct model.
- The method of claim 1, wherein the drain model is utilized if the predictive model is not predictive.
- The method of claim 1, 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 the first time period in the past; andobtaining from the battery activity history database the first set of predicted battery level data predicted by the predictive model corresponding to the plurality of points in time; wherein the coefficient of determination analysis is 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.
- The method of claim 1, wherein performing the coefficient of determination operation comprises performing an R-squared process on the predicted battery level data and the actual battery level data.
- The method of claim 1, further comprising:
obtaining from a battery activity history database the second set of predicted battery level data predicted by the predictive model during the second time period in the past. - The method of claim 1, wherein the first time period comprises a fifteen minute window one week ago and the second time period comprises a fifteen minute window one day ago.
- A non-transitory computer-readable medium having instructions stored therein, which when executed by a processor, cause the processor to perform a method as claimed in any one of claims 1 to 10.
- A portable device comprising a processor configured to perform the steps of the method of any one of claims 1 to 10.
Applications Claiming Priority (2)
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 |
Publications (2)
Publication Number | Publication Date |
---|---|
EP3149502A1 EP3149502A1 (en) | 2017-04-05 |
EP3149502B1 true EP3149502B1 (en) | 2020-03-04 |
Family
ID=53180829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP15722839.6A Active EP3149502B1 (en) | 2014-05-29 | 2015-04-29 | 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 (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8521121B2 (en) * | 2008-07-03 | 2013-08-27 | Centurylink Intellectual Property Llc | System and method for performing an abbreviated power-up sequence on a wireless communications device |
US8816868B2 (en) * | 2011-06-06 | 2014-08-26 | 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 |
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 |
US9696782B2 (en) | 2015-02-09 | 2017-07-04 | 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 |
US10606330B2 (en) * | 2015-02-27 | 2020-03-31 | Hewlett Packard Enterprise Development Lp | Selectively enabling backup power to nodes |
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 |
US9860336B2 (en) * | 2015-10-29 | 2018-01-02 | International Business Machines Corporation | Mitigating service disruptions using mobile prefetching based on predicted dead spots |
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 |
US9913050B2 (en) * | 2015-12-18 | 2018-03-06 | Cochlear Limited | Power management features |
CN105676997B (en) * | 2016-01-05 | 2018-11-30 | 京东方科技集团股份有限公司 | Mobile terminal administration method and system, mobile terminal |
KR20170082269A (en) * | 2016-01-06 | 2017-07-14 | 삼성전자주식회사 | Test Apparatus and Control Method thereof |
JP6260633B2 (en) * | 2016-03-01 | 2018-01-17 | カシオ計算機株式会社 | Electronic device, battery remaining amount management method, and program |
US9936457B2 (en) * | 2016-03-29 | 2018-04-03 | International Business Machines Corporation | Ensuring battery reserve for mobile communication |
US11309717B2 (en) * | 2016-09-26 | 2022-04-19 | 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 |
US11656666B2 (en) | 2016-11-16 | 2023-05-23 | Microsoft Technology Licensing, Llc | Dynamic power source selection, charging, and discharging |
US10488905B2 (en) | 2016-11-16 | 2019-11-26 | Microsoft Technology Licensing, Llc | Dynamic energy storage device discharging |
CN110268366B (en) * | 2017-02-24 | 2023-06-23 | 索尼移动通信株式会社 | Information processing device, information processing method, and program |
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 |
US10599205B2 (en) * | 2017-09-18 | 2020-03-24 | 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 |
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 |
US10956057B2 (en) * | 2018-08-29 | 2021-03-23 | Qualcomm Incorporated | Adaptive power management of dynamic random access memory |
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 |
US11165270B2 (en) | 2019-03-21 | 2021-11-02 | Microsoft Technology Licensing, Llc | Predictive management of battery operation |
US20220247196A1 (en) * | 2019-07-22 | 2022-08-04 | 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 |
JP2023544673A (en) * | 2020-08-11 | 2023-10-25 | ブランコ テクノロジー グループ アイピー オイ | Determining battery status of portable electronic devices |
CN114137426B (en) * | 2021-11-30 | 2024-04-09 | 广州极飞科技股份有限公司 | Residual electric quantity estimation method, device, equipment and storage medium |
WO2024006941A1 (en) | 2022-06-30 | 2024-01-04 | Stored Energy Systems, LLC | Systems and methods for extending battery life |
CN117148169B (en) * | 2023-10-30 | 2024-01-30 | 东方旭能(山东)科技发展有限公司 | Battery service time prediction method, system, equipment and medium based on big data |
Family Cites Families (26)
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 |
CA2823503C (en) * | 2011-01-12 | 2019-03-19 | Mitsubishi Electric Corporation | Image encoding device, image decoding device, image encoding method, and 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 |
US20140082384A1 (en) | 2012-09-20 | 2014-03-20 | Apple Inc. | Inferring user intent from battery usage level and charging trends |
US20140082383A1 (en) | 2012-09-20 | 2014-03-20 | Apple Inc. | Predicting user intent and future interaction from application activities |
WO2014051982A1 (en) | 2012-09-27 | 2014-04-03 | Motorola Mobility 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 |
-
2014
- 2014-05-29 US US14/290,795 patent/US9210662B1/en active Active
-
2015
- 2015-04-29 WO PCT/US2015/028353 patent/WO2015183459A1/en active Application Filing
- 2015-04-29 EP EP15722839.6A patent/EP3149502B1/en active Active
- 2015-04-29 CN CN201580028012.8A patent/CN106415296B/en active Active
- 2015-04-29 KR KR1020167033208A patent/KR101940389B1/en active IP Right Grant
- 2015-11-03 US US14/931,596 patent/US9615333B2/en active Active
Non-Patent Citations (1)
Title |
---|
None * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
Also Published As
Publication number | Publication date |
---|---|
US20150351037A1 (en) | 2015-12-03 |
CN106415296A (en) | 2017-02-15 |
KR101940389B1 (en) | 2019-01-18 |
US20160157180A1 (en) | 2016-06-02 |
EP3149502A1 (en) | 2017-04-05 |
WO2015183459A1 (en) | 2015-12-03 |
KR20160147963A (en) | 2016-12-23 |
US9210662B1 (en) | 2015-12-08 |
US9615333B2 (en) | 2017-04-04 |
CN106415296B (en) | 2020-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3149502B1 (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 | |
US9392393B2 (en) | Push notification initiated background updates | |
AU2012271103B2 (en) | Mobile device operations with battery optimization | |
US20140362768A1 (en) | Non-Waking Push Notifications | |
US20120192200A1 (en) | Load Balancing in Heterogeneous Computing Environments | |
US9118520B1 (en) | Systems and methods for monitoring application resource usage on mobile computing systems | |
JP2020537213A (en) | Methods for reducing terminal power consumption, and terminals | |
US9286120B2 (en) | Resource management with dynamic resource budgeting | |
JP6404702B2 (en) | Software determination device, terminal device, software determination method, software determination program, and communication system | |
WO2011135721A1 (en) | Information processing device and power consumption management program | |
CN111684485A (en) | Video playback energy consumption control |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
17P | Request for examination filed |
Effective date: 20161101 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
AX | Request for extension of the european patent |
Extension state: BA ME |
|
DAV | Request for validation of the european patent (deleted) | ||
DAX | Request for extension of the european patent (deleted) | ||
RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: APPLE INC. |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
17Q | First examination report despatched |
Effective date: 20190109 |
|
GRAP | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOSNIGR1 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: GRANT OF PATENT IS INTENDED |
|
INTG | Intention to grant announced |
Effective date: 20191011 |
|
GRAS | Grant fee paid |
Free format text: ORIGINAL CODE: EPIDOSNIGR3 |
|
GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE PATENT HAS BEEN GRANTED |
|
AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: FG4D |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: EP |
|
REG | Reference to a national code |
Ref country code: AT Ref legal event code: REF Ref document number: 1241018 Country of ref document: AT Kind code of ref document: T Effective date: 20200315 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R096 Ref document number: 602015048135 Country of ref document: DE |
|
REG | Reference to a national code |
Ref country code: IE Ref legal event code: FG4D |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: RS Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200304 Ref country code: FI Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200304 Ref country code: NO Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200604 |
|
REG | Reference to a national code |
Ref country code: NL Ref legal event code: MP Effective date: 20200304 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: SE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200304 Ref country code: LV Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200304 Ref country code: HR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200304 Ref country code: BG Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200604 Ref country code: GR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200605 |
|
REG | Reference to a national code |
Ref country code: LT Ref legal event code: MG4D |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: NL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200304 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: RO Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200304 Ref country code: SK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200304 Ref country code: CZ Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200304 Ref country code: IS Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200704 Ref country code: ES Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200304 Ref country code: LT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200304 Ref country code: EE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200304 Ref country code: SM Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200304 Ref country code: PT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200729 |
|
REG | Reference to a national code |
Ref country code: AT Ref legal event code: MK05 Ref document number: 1241018 Country of ref document: AT Kind code of ref document: T Effective date: 20200304 |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: PL |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R097 Ref document number: 602015048135 Country of ref document: DE |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: MC Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200304 |
|
PLBE | No opposition filed within time limit |
Free format text: ORIGINAL CODE: 0009261 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: AT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200304 Ref country code: DK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200304 Ref country code: LU Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20200429 Ref country code: IT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200304 Ref country code: LI Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20200430 Ref country code: CH Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20200430 |
|
REG | Reference to a national code |
Ref country code: BE Ref legal event code: MM Effective date: 20200430 |
|
26N | No opposition filed |
Effective date: 20201207 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: SI Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200304 Ref country code: PL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200304 Ref country code: BE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20200430 |
|
GBPC | Gb: european patent ceased through non-payment of renewal fee |
Effective date: 20200604 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: GB Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20200604 Ref country code: IE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20200429 Ref country code: FR Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20200504 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: TR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200304 Ref country code: MT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200304 Ref country code: CY Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200304 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: MK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200304 Ref country code: AL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20200304 |
|
P01 | Opt-out of the competence of the unified patent court (upc) registered |
Effective date: 20230331 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: DE Payment date: 20230307 Year of fee payment: 9 |