History based peak power prediction

An embodiment of a semiconductor package apparatus may include technology to determine history information for a battery, predict a peak power capacity of the battery based on the history information, and set a peak power parameter based on the predicted peak power capacity.

TECHNICAL FIELD

Embodiments generally relate to power systems. More particularly, embodiments relate to history based peak power prediction.

BACKGROUND

Power availability is important to a variety of electronic devices and systems. For many computer devices, there may be a tradeoff between power consumption and performance. A computer system may include various parameters and/or settings which affect power delivery and/or performance.

DESCRIPTION OF EMBODIMENTS

Turning now toFIG. 1, an embodiment of an electronic processing system10may include a processor11, memory12communicatively coupled to the processor11, a battery13coupled to the processor11and the memory12to provide power to at least the processor11and the memory12, and logic14communicatively coupled to the battery13to determine history information for the battery13, predict a peak power capacity of the battery13based on the history information, and set a peak power parameter based on the predicted peak power capacity. In some embodiments, the logic14may be further to determine one or more of prior direct current (DC) loading information and prior voltage information for the battery as part of the history information. For example, the logic may be configured to measure one or more of current drawn from the battery13and battery voltage over a window of time as part of the history information (e.g., over the same period of time). In some embodiments, the logic14may set the peak power parameter based on an offset from a resting peak power value and an integration of the measured current over the time window. Alternatively, or additionally, the logic14may set the peak power parameter based on a measured impedance of the battery13. In any of the foregoing examples, the logic14may be configured to predict a greater peak power capacity based on history information which indicates the battery13has been recently resting as compared to history information which indicates that the battery13has been recently loaded.

Embodiments of each of the above processor11, memory12, battery13, logic14, and other system components may be implemented in hardware, software, or any suitable combination thereof. For example, hardware implementations may include configurable logic such as, for example, programmable logic arrays (PLAs), field programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs), or fixed-functionality logic hardware using circuit technology such as, for example, application specific integrated circuit (ASIC), complementary metal oxide semiconductor (CMOS) or transistor-transistor logic (TTL) technology, or any combination thereof.

Alternatively, or additionally, all or portions of these components may be implemented in one or more modules as a set of logic instructions stored in a machine- or computer-readable storage medium such as random access memory (RAM), read only memory (ROM), programmable ROM (PROM), firmware, flash memory, etc., to be executed by a processor or computing device. For example, computer program code to carry out the operations of the components may be written in any combination of one or more operating system (OS) applicable/appropriate programming languages, including an object-oriented programming language such as PYTHON, PERL, JAVA, SMALLTALK, C++, C# or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. For example, the memory12, persistent storage media, or other system memory may store a set of instructions which when executed by the processor11cause the system10to implement one or more components, features, or aspects of the system10(e.g., the logic14, determining history information for the battery13, predicting a peak power capacity of the battery13based on the history information, setting a peak power parameter based on the predicted peak power capacity, etc.).

Turning now toFIG. 2, an embodiment of a semiconductor package apparatus20may include a substrate21, and logic22coupled to the substrate21, wherein the logic22is at least partly implemented in one or more of configurable logic and fixed-functionality hardware logic. The logic22coupled to the substrate21may be configured to determine history information for a battery, predict a peak power capacity of the battery based on the history information, and set a peak power parameter based on the predicted peak power capacity. In some embodiments, the logic22may be further configured to determine one or more of prior DC loading information and prior voltage information for the battery as part of the history information. For example, the logic22may also be configured to measure current drawn from the battery, and/or battery voltage over a window of time as part of the history information. In some embodiments, the logic22may set the peak power parameter based on an offset from a resting peak power value and an integration of measured power usage over the time window. Alternatively, or additionally, the logic22may set the peak power parameter based on a measured impedance of the battery. In any of the foregoing examples, the logic22may be configured to predict a greater peak power capacity based on history information which indicates the battery has been recently resting as compared to history information which indicates that the battery has been recently loaded.

Embodiments of logic22, and other components of the apparatus20, may be implemented in hardware, software, or any combination thereof including at least a partial implementation in hardware. For example, hardware implementations may include configurable logic such as, for example, PLAs, FPGAs, CPLDs, or fixed-functionality logic hardware using circuit technology such as, for example, ASIC, CMOS, or TTL technology, or any combination thereof. Additionally, portions of these components may be implemented in one or more modules as a set of logic instructions stored in a machine- or computer-readable storage medium such as RAM, ROM, PROM, firmware, flash memory, etc., to be executed by a processor or computing device. For example, computer program code to carry out the operations of the components may be written in any combination of one or more OS applicable/appropriate programming languages, including an object-oriented programming language such as PYTHON, PERL, JAVA, SMALLTALK, C++, C# or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages.

Turning now toFIGS. 3A to 3B, an embodiment of a method30of setting a parameter may include determining history information for a battery at block31, predicting a peak power capacity of the battery based on the history information at block32, and setting a peak power parameter based on the predicted peak power capacity at block33. Some embodiments of the method30may further include determining one or more of prior DC loading information and prior voltage information for the battery as part of the history information at block34. For example, some embodiments may include measuring one or more of current drawn from the battery and battery voltage over a window of time as part of the history information at block35. The method30may also include setting the peak power parameter based on an offset from a resting peak power value and an integration of measured power usage over the time window at block36. Alternatively, or additionally, the method30may include setting the peak power parameter based on a measured impedance of the battery at block37. Some embodiments of the method30may also include predicting a greater peak power capacity based on history information which indicates the battery has been recently resting as compared to history information which indicates that the battery has been recently loaded at block38.

Embodiments of the method30may be implemented in a system, apparatus, computer, device, etc., for example, such as those described herein. More particularly, hardware implementations of the method30may include configurable logic such as, for example, PLAs, FPGAs, CPLDs, or in fixed-functionality logic hardware using circuit technology such as, for example, ASIC, CMOS, or TTL technology, or any combination thereof. Alternatively, or additionally, the method30may be implemented in one or more modules as a set of logic instructions stored in a machine- or computer-readable storage medium such as RAM, ROM, PROM, firmware, flash memory, etc., to be executed by a processor or computing device. For example, computer program code to carry out the operations of the components may be written in any combination of one or more OS applicable/appropriate programming languages, including an object-oriented programming language such as PYTHON, PERL, JAVA, SMALLTALK, C++, C# or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages.

For example, the method30may be implemented on a computer readable medium as described in connection with Examples 19 to 24 below. Embodiments or portions of the method30may be implemented in applications (e.g., through an application programming interface (API)) or driver software running on an operating system (OS). Other embodiments or portions of the method30may be implemented in firmware

Turning now toFIG. 4, some embodiments may be logically or physically arranged as one or more modules. For example, an embodiment of a power parameter setter40may include a power monitor41communicatively coupled to a power controller42. For example, the power monitor41may be configured to monitor power usage of a battery and to maintain history information for the battery power usage, while the power controller42may be configured to predict a peak power capacity of the battery based on the history information, and set a peak power parameter based on the predicted peak power capacity. The power monitor41may include fuel gauge circuits or features which may be configured to monitor and/or report power usage and battery information (e.g., such as state of charge). In some embodiments, the power monitor41may be further configured to determine one or more of prior DC loading information and prior voltage information for the battery as part of the history information. For example, the power monitor41may also be configured to measure power usage and/or current drawn from the battery and/or battery voltage over a window of time as part of the history information. In some embodiments, the power controller42may set the peak power parameter based on an offset from a resting peak power value and an integration of measured power usage over the time window. Alternatively, or additionally, the power controller42may set the peak power parameter based on a measured impedance of the battery. In any of the foregoing examples, the power controller42may be configured to predict a greater peak power capacity based on history information which indicates the battery has been recently resting as compared to history information which indicates that the battery has been recently loaded.

Embodiments of the power monitor41, the power controller42, and other components of the power parameter setter40, may be implemented in hardware, software, or any combination thereof including at least a partial implementation in hardware. For example, hardware implementations may include configurable logic such as, for example, PLAs, FPGAs, CPLDs, or fixed-functionality logic hardware using circuit technology such as, for example, ASIC, CMOS, or TTL technology, or any combination thereof. Additionally, portions of these components may be implemented in one or more modules as a set of logic instructions stored in a machine- or computer-readable storage medium such as RAM, ROM, PROM, firmware, flash memory, etc., to be executed by a processor or computing device. For example, computer program code to carry out the operations of the components may be written in any combination of one or more OS applicable/appropriate programming languages, including an object-oriented programming language such as PYTHON, PERL, JAVA, SMALLTALK, C++, C# or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages.

Some embodiments may advantageously increase the performance of a system-on-chip (SOC) device by predicting accurately the battery peak power. Various SOC devices may have a wide variety of power requirements, with some SOC devices having increased peak power ability. Some systems/platforms may use a parameter to indicate to various components of the system a peak power for each component. For example, a Pmax parameter may correspond to a maximum power value for the complete platform, a PL1 parameter may correspond to a desired maximum indefinite power usage for a particular component (e.g., the SOC) of the platform, a PL2 parameter may correspond to a desired average power usage for the component (e.g., which may be exceeded briefly), and a PL4 parameter may correspond to a physical limit for power usage for the component (e.g. the CPU). A problem for some platforms from the peak power point of view is the possibility that due to an I*R voltage drop, the voltage seen by the system may droop below the minimum allowable levels. To account for this problem, some platforms may set conservative power parameters (e.g., the PL4 parameter for a SOC), which also sets the maximum frequency of the CPU cores and directly affects the performance. Some embodiments may set a less conservative power parameter based on power history information to advantageously provide better CPU performance without incurring substantial risk of excessive voltage droop.

Turning toFIG. 5, a battery50may be represented as a series of R-C networks connected in series. In some models, the battery50may include a cell51which may be represented as a very large capacitor, connected in series with an R-C network52(e.g., resistor52aconnected in parallel with capacitor52b) and a resistor53. One factor which may significantly affect the peak power available from the battery may include the initial loading of the battery. When the cell51is loaded with a constant load (e.g., on the order of seconds to tens of seconds), the actual voltage seen by the system can be calculated assuming that the cell impedance is Rdc. For a fast transient power spike (e.g., on the order of milliseconds), the impedance seen by the current is Rac. The system voltage droop due to a power spike at the system (e.g., including the SOC) may depend on the history of the power taken from the battery50. For example, if the battery50has been rested, the voltage droop will be lower than it is for a battery50which has been producing power for tens of seconds.

Turning now toFIG. 6, an illustrative graph shows the difference in an allowable PL4 level for a SOC with a typical battery which may be loaded with 30 W of power for tens of seconds, versus the same system where the battery was rested. Referring to the graph at a 40% state of charge, for example, about 14 W of power may be lost for the loaded battery as compared to a rested battery. In some systems, when the PL4 level is set, the value for the PL4 level may be based on a conservative assumption that the battery has been delivering PL2 level of power (e.g., tens of Watts) for multiple seconds. This assumption may result in a lower PL4 settings and consequently may limit the performance of the SOC. For example, setting the PL4 parameter lower by 13 W may cause the loss of a few bins in a multi-threaded operation (e.g., where each lost bin corresponds to a decrease in the processor frequency). Advantageously, some embodiments may monitor the battery usage to determine the history of the battery (e.g., if it was recently rested or more lightly loaded) and give that 13 W of power back to the power envelope by adjusting the PL4 level higher if the history information and predicted peak power capacity supports such a parameter setting.

For many or most systems, the PL4 setting may more closely correspond to the maximum power that the battery can provide for a very short duration (e.g., measured in milliseconds, or even potentially in microseconds). In accordance with some embodiments, the amount of power that can be drawn from the battery for such short duration may depend on the history of power drawn from the battery for tens of seconds. Some embodiments may determine history information for the battery to set the power parameter values higher and provide better performance. For example, some embodiments may modulate the PL4 level based on the measured low frequency (e.g., hundreds of milliseconds or seconds) current actually consumed by the system from the battery and/or the average voltage of the battery. Various techniques may be used to determine or calculate an actual or more accurate peak power capacity of the battery pack, without relying on assumed worst case conditions (e.g., which in many or most cases may not be applicable). Some embodiments may advantageously be utilized in combination with other techniques to support higher Pmax value for a system, such as fast processor temperature assertions, active Vmin protection, etc.

Turning now toFIG. 7, an embodiment of an electronic processing system70may include a battery71coupled to a charger circuit72. The charger circuit72may provide a signal to a power supply controller73which indicates current draw, voltage or state of charge. In some embodiments, the power supply controller73may include an INTEL MOBILE VOLTAGE POSITIONING (MVP) power supply controller. For example, the charger72may measure the output current and voltage of the battery71and may report either the output power or output current of the battery71. This information may be transmitted to the power supply controller73(e.g., the signal from the charger72may be a small current source), and the power supply controller73may digitize the data and then send it to a central processor unit (CPU)74(e.g. through a bus protocol such as serial voltage identification (SVID)). The CPU74may include DYNAMIC PLATFORM AND THERMAL FRAMEWORK (DPTF)75features and may also be communicatively coupled to an embedded controller76. In accordance with some embodiments, firmware inside the DPTF75and/or the embedded controller76may be configured to use the data from the power supply controller73to set the PL4 level based on history information for the battery71. For example, the PL4 level may be set based on a history of power and/or current drawn from the battery71. Some embodiments may alternatively, or additionally, determine an impedance of the battery71as a function of duration of power drawn from the battery71. Aspects of various embodiments may be implemented in the embedded controller76, the DPTF75, and/or a fuel gauge module of the system.

Any of a number of techniques may be utilized to predict a peak power and/or to adjust the PL4 level based on the history of power/current drawn from the battery. Some embodiments may set the peak power parameter based on an offset from a resting peak power value and an integration of the measured power or current over a time window. For example, some embodiments may integrate a system power value (Psys) over time and set the PL4 level based on an offset from a resting PL4 level:

Some embodiments may alternatively set the peak power parameter based on a measured impedance of the battery. For example, a voltage Vdroop corresponding to a voltage after the droop due to a high power spike may be determined as follows:
Vdroop=Vopen−Idc*(Rdc−Rac)−Iac*Rac(Eq. 2)
where Vopen may correspond to an open circuit voltage of the battery (e.g. reported by the fuel gauge), Rdc may correspond to the DC impedance of the battery pack and the system (e.g., a measured value), Rac may correspond to the impedance of the battery pack and the system (e.g., a measured value) to short duration spikes, Iac may correspond to the battery current during the power spike, and Idc may correspond to the battery current for a long duration. For a given Cdroop, the controller can calculate the allowable Iac, and thus the peak power for the SOC, PL4.

Idc may be a measured battery current after a low-pass filter (e.g., on the order of seconds). Rdc and Rac may be known parameters of the battery. Vopen may be reported by the fuel gauge. In accordance with some embodiments, the product of Iac and Vopen-Vdroop (e.g., where Vdroop may cause the system to reach the system minimum voltage) may correspond to the peak power capability of the battery. The peak power parameter may be set based on the calculated peak power capability. For example, firmware code may calculate the maximum capability of the battery using Eq. 2 and then make a determination or read a system parameter corresponding to the rest of the platform (ROP) peak power, to estimate the maximum short duration power that the SOC can consume before the system voltage drops to the minimum allowable value.

Some embodiments may rely on the actual measured value of the system voltage and current (e.g., with low-pass filtering) and may estimate the battery peak power capability using Eq. 2, but with an adjustment due to the known voltage at DC as follows:

P⁢⁢max=V⁢⁢min*(V⁢meas-V⁢⁢min+Idc*Rac)Rac(Eq.⁢3)
where Vmin may correspond to the minimum system voltage, Vmeas may correspond to the measured filtered system voltage, and Idc may correspond to the measured filtered battery current. The SOC PL4 may be defined as the difference between the Pmax and the maximum power for the Rest of the Platform (ROP).

In some embodiments, any of the foregoing calculations may be performed in any of the embedded controller, the DPTF, and/or the fuel gauge. Advantageously, some embodiments take into account an increased power capability of the battery with a prior low power load to improve potential performance for a SOC (e.g., or other platform component). For example, some embodiments may raise a multi-threaded maximum frequency by two to three bins as compared to a conventional system, which may set the PL4 parameter more conservatively.

ADDITIONAL NOTES AND EXAMPLES

Example 1 may include an electronic processing system, comprising a processor memory communicatively coupled to the processor, a battery coupled to the processor and the memory to provide power to at least the processor and the memory, and logic communicatively coupled to the battery to determine history information for the battery, predict a peak power capacity of the battery based on the history information, and set a peak power parameter based on the predicted peak power capacity.

Example 2 may include the system of Example 1, wherein the logic is further to determine one or more of prior direct current loading information and prior voltage information for the battery as part of the history information.

Example 3 may include the system of Example 2, wherein the logic is further to measure one or more of current drawn from the battery and battery voltage over a window of time as part of the history information.

Example 4 may include the system of Example 3, wherein the logic is further to set the peak power parameter based on an offset from a resting peak power value and an integration of the measured current over the time window.

Example 5 may include the system of Example 3, wherein the logic is further to set the peak power parameter based on a measured impedance of the battery.

Example 6 may include the system of any of Examples 1 to 5, wherein the logic is further to predict a greater peak power capacity based on history information which indicates the battery has been resting as compared to history information which indicates that the battery has been loaded.

Example 7 may include a semiconductor package apparatus, comprising a substrate, and logic coupled to the substrate, wherein the logic is at least partly implemented in one or more of configurable logic and fixed-functionality hardware logic, the logic coupled to the substrate to determine history information for a battery, predict a peak power capacity of the battery based on the history information, and set a peak power parameter based on the predicted peak power capacity.

Example 8 may include the apparatus of Example 7, wherein the logic is further to determine one or more of prior direct current loading information and prior voltage information for the battery as part of the history information.

Example 9 may include the apparatus of Example 8, wherein the logic is further to measure one or more of current drawn from the battery and battery voltage over a window of time as part of the history information.

Example 10 may include the apparatus of Example 9, wherein the logic is further to set the peak power parameter based on an offset from a resting peak power value and an integration of measured power usage over the time window.

Example 11 may include the apparatus of Example 9, wherein the logic is further to set the peak power parameter based on a measured impedance of the battery.

Example 12 may include the apparatus of any of Examples 7 to 11, wherein the logic is further to predict a greater peak power capacity based on history information which indicates the battery has been recently resting as compared to history information which indicates that the battery has been recently loaded.

Example 13 may include a method of setting a parameter, comprising determining history information for a battery, predicting a peak power capacity of the battery based on the history information, and setting a peak power parameter based on the predicted peak power capacity.

Example 14 may include the method of Example 13, further comprising determining one or more of prior direct current loading information and prior voltage information for the battery as part of the history information.

Example 15 may include the method of Example 14, further comprising measuring one or more of current drawn from the battery and battery voltage over a window of time as part of the history information.

Example 16 may include the method of Example 15, further comprising setting the peak power parameter based on an offset from a resting peak power value and an integration of measured power usage over the time window.

Example 17 may include the method of Example 15, further comprising setting the peak power parameter based on a measured impedance of the battery.

Example 18 may include the method of any of Examples 13 to 17, further comprising predicting a greater peak power capacity based on history information which indicates the battery has been recently resting as compared to history information which indicates that the battery has been recently loaded.

Example 19 may include at least one computer readable medium, comprising a set of instructions, which when executed by a computing device, cause the computing device to determine history information for a battery, predict a peak power capacity of the battery based on the history information, and set a peak power parameter based on the predicted peak power capacity.

Example 20 may include the at least one computer readable medium of Example 19, comprising a further set of instructions, which when executed by the computing device, cause the computing device to determine one or more of prior direct current loading information and prior voltage information for the battery as part of the history information.

Example 21 may include the at least one computer readable medium of Example 20, comprising a further set of instructions, which when executed by the computing device, cause the computing device to measure one or more of current drawn from the battery and battery voltage over a window of time as part of the history information.

Example 22 may include the at least one computer readable medium of Example 21, comprising a further set of instructions, which when executed by the computing device, cause the computing device to set the peak power parameter based on an offset from a resting peak power value and an integration of measured power usage over the time window.

Example 23 may include the at least one computer readable medium of Example 21, comprising a further set of instructions, which when executed by the computing device, cause the computing device to set the peak power parameter based on a measured impedance of the battery.

Example 24 may include the at least one computer readable medium of any of Examples 19 to 23, comprising a further set of instructions, which when executed by the computing device, cause the computing device to predict a greater peak power capacity based on history information which indicates the battery has been recently resting as compared to history information which indicates that the battery has been recently loaded.

Example 25 may include a power parameter setter apparatus, comprising means for determining history information for a battery, means for predicting a peak power capacity of the battery based on the history information, and means for setting a peak power parameter based on the predicted peak power capacity.

Example 26 may include the apparatus of Example 25, further comprising means for determining one or more of prior direct current loading information and prior voltage information for the battery as part of the history information.

Example 27 may include the apparatus of Example 26, further comprising means for measuring one or more of current drawn from the battery and battery voltage over a window of time as part of the history information.

Example 28 may include the apparatus of Example 27, further comprising means for setting the peak power parameter based on an offset from a resting peak power value and an integration of measured power usage over the time window.

Example 29 may include the apparatus of Example 27, further comprising means for setting the peak power parameter based on a measured impedance of the battery.

Example 30 may include the apparatus of any of Examples 25 to 29, further comprising means for predicting a greater peak power capacity based on history information which indicates the battery has been recently resting as compared to history information which indicates that the battery has been recently loaded.

As used in this application and in the claims, a list of items joined by the term “one or more of” may mean any combination of the listed terms. For example, the phrase “one or more of A, B, and C” and the phrase “one or more of A, B, or C” both may mean A; B; C; A and B; A and C; B and C; or A, B and C.