WO2022025872A1 - Power budget allocations - Google Patents

Power budget allocations Download PDF

Info

Publication number
WO2022025872A1
WO2022025872A1 PCT/US2020/043955 US2020043955W WO2022025872A1 WO 2022025872 A1 WO2022025872 A1 WO 2022025872A1 US 2020043955 W US2020043955 W US 2020043955W WO 2022025872 A1 WO2022025872 A1 WO 2022025872A1
Authority
WO
WIPO (PCT)
Prior art keywords
workload
power
component
power budget
budget
Prior art date
Application number
PCT/US2020/043955
Other languages
French (fr)
Inventor
Fangyong Dai
Peter Siyuan ZHANG
Jon Gregory LLOYD
Qijun Steve CHEN
Asjad SHAMIM
Original Assignee
Hewlett-Packard Development Company, L.P.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett-Packard Development Company, L.P. filed Critical Hewlett-Packard Development Company, L.P.
Priority to PCT/US2020/043955 priority Critical patent/WO2022025872A1/en
Priority to TW110106125A priority patent/TWI770830B/en
Publication of WO2022025872A1 publication Critical patent/WO2022025872A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • Computing devices may allocate power budgets to certain components thereof, for example based on power supply and/or cooling capabilities of the devices. Allocation of such power budgets may be computationally intensive, and/or may result in reduced device performance as a result of overly restrictive budget allocation to one or more components.
  • FIG. 1 is a block diagram of an example computing device with a power allocation controller to allocate power budgets to computing components.
  • FIG. 2 is a flowchart of an example method of allocating power budgets to computing components in a computing device.
  • FIG. 3 is a flowchart of another example method of allocating power budgets to computing components in a computing device.
  • FIG. 4 is a block diagram of another example computing device with a power allocation controller to allocate power budgets to computing components.
  • FIG. 1 shows an example computing device 100.
  • the computing device 100 may be a desktop computer, a server, a smartphone, a notebook computer, a tablet computer, or similar device.
  • the computing device 100 includes a first target component 104-1, and a second target component 104-2 (which may be collectively referred to as the target components 104, and generica!iy as a target component 104).
  • the target components 104-1 and 104-2 may also be referred to simply as components 104-1 and 104-2.
  • the first target component 104-1 includes a central processing unit (CPU)
  • the second target component 104-2 includes a graphics processing unit (GPU).
  • the computing device 100 may include other components, such as storage devices (e.g. hard drives, volatile memory, and the like), input devices (e.g. a keyboard) and output devices (e.g. a display).
  • the components of the computing device 100 are supplied with power, e.g. from a power source 108.
  • the power source 108 may be a battery integrated with the computing device 100, such as a laptop battery. In other examples, the power source 108 may be external to the computing device 100, such as an external battery, a connection to an electrical utility, or the like.
  • the computing device 100 also includes a power allocation controller 112 (which may also be referred to as a controller 112) to allocate power budgets to the target components 104.
  • the controller 112 can be implemented as, for example, an embedded controller (EC) on a mainboard of the computing device 100.
  • EC embedded controller
  • the target components 104 may be targeted for power budget allocation by the power allocation controller 112 based on, for example, the proportion of the overall power consumption of the computing device 100 represented by the target components 104.
  • components such as a CPU and a GPU may represent a significant portion of overall power consumption of the computing device 100.
  • the CPU and GPU together may represent more than half of the total power consumption of the computer. Exerting control over the power consumption of the target components 104 may therefore enable the power allocation controller 112 to manage the overall power consumption of the device 100 to meet cooling and/or power delivery capabilities available to the computing device 100.
  • the computing device 100 further includes a non-transitory computer-readable medium such as a storage device 116, which may also be referred to as a memory, coupled to the power allocation controller 112.
  • a storage device 116 can also be integrated with the controller 112, in other examples.
  • the storage device 116 contains a set of instructions 118 executable by the controller 112 to implement the power budget allocation functionality discussed in greater detail below.
  • the controller 112 is connected to power supply conduits from the power source 108 to the target components 104, shown in solid lines in FIG. 1.
  • the controller 112 is also connected to the storage device 116 and the target components 104 for data communications, as shown in dashed lines.
  • the controller 112 obtains a measured power consumption for the target component 104-1 , and a measured power consumption for the target component 104-2.
  • the above measured power consumptions may also be referred to as power consumption indicators.
  • a power consumption indicator for the component 104-1 can include an average power consumption, in Watts, of the component 104-1 over a predefined time period, such as one second. Other time periods shorter than, and longer than, one second are also contemplated.
  • the controller 112 can obtain a plurality of measurements over the time period and can generate the indicator (e.g. an average power consumption) from the plurality of measurements.
  • the power consumption indicator for the component 104-1 can include an amount of energy, e.g. in Joules, consumed by the component 104-1 over the time period.
  • the controller 112 can generate a first workload estimate for the first target component 104- 1 , and a second workload estimate for the second target component 104-2.
  • the controller 112 can generate the workload estimate for a component 104 based on the power consumption indicator corresponding to that component 104, and on a current power budget allocated to that component 104.
  • the controller 112 can allocate a power budget of 40 W to the target component 104-1 (e.g. a CPU), and obtain a power consumption indicator indicating an average power consumption of 25 W over the previous one second time period.
  • the workload estimate for the component 104-1 can be determined as a ratio of the power consumption indicator to the allocated power budget. In the example above, therefore, the workload estimate is therefore 0.625. More generally, the workload estimates may be fractions between zero and one, although other formats may also be used to express the workload estimates.
  • the workload estimates generated by the controller 112 indicate what portion of the power budget for a given target component 104 was in use by that target component 104 over the relevant time period (e.g. a one-second time period preceding the generation of the workload estimate).
  • the controller 112 can then compare the first workload estimate corresponding to the first target component 104-1 , and the second workload estimate corresponding to the second target component 104-2. Based on the comparison, the controller 112 can provide an adjusted power budget to the first target component 104-1 , and an adjusted power budget to the second target component 104-2.
  • the adjusted power budget allocated to a target component 104 can include an increase or a decrease to the previously allocated power budget. That is, a portion of a power budget of one target component 104 (e.g., first target component 104-1 ) may be reallocated to the other target component 104 (e.g., second target component 104-2).
  • What portion of power budget is reallocated from one target component 104 to the other target component 104 can be defined, for example, as a portion of a system power budget, representing the combined power budgets of the target components 104.
  • a system power budget of 100 W a default power budget allocation to the first target component 104-1 may be 40W, and a default power budget allocation to the second target component 104-2 may be 60 W.
  • the controller 112 may reallocate 5% of the system power budget (5 W, in this example) from the first target component 104-1 to the second target component 104-2.
  • the first adjusted power budget is therefore 35 W
  • the second adjusted power budget is 65 W.
  • the portion of power budget reallocated between the target components 104 can be specified in absolute wattage rather than as a fraction of the system power budget, in other examples.
  • the portion of power budget reallocated may also vary in size based on the comparison between the first workload estimate and the second workload estimate. That is, larger portions of power budget may be reallocated in response to larger differences between the workload estimates. Conversely, smaller portions of power budget may be reallocated (including as little as zero reallocation) in response to smaller differences between the workload estimates. Certain examples of reallocation determinations will be discussed below.
  • the controller 112 can repeat the above allocation process, e.g. once per second or according to another suitable time period.
  • the controller 112 can therefore dynamically adjust power budget allocations for the target components 104 according to the current workloads of the target components 104, Such dynamic adjustment may increase the efficiency with which power budgets are allocated to the target components 104, e.g. reducing the frequency of situations in which one target component 104 throttles computational activity to avoid exceeding an allocated power budget, potentially reducing performance, while the other target component 104 makes use of a small portion of the power budget allocation to that target component 104,
  • the dynamic adjustment implemented by the power allocation controller 112 may therefore enable increased performance for the computing device 100.
  • FIG. 2 shows an example method 200 of allocating power budgets for computing components.
  • the method 200 may be embodied by a set of instructions that may be stored in a non-transitory computer-readable medium (e.g. the instructions 118 stored in the storage device 118, as shown in FIG. 1 ) and executed by a controller, such as the power allocation controller 112.
  • the method 200 is described below in conjunction with an example performance of the method 200 by the computing device 100.
  • the controller 112 sets Initial power budgets, which may also be referred to as default power budgets, for the target components 104.
  • the initial power budgets can be set as predetermined portions of a system power budget. The determination of the system power budget itself may vary based on factors such as remaining battery capacity, ambient temperature, and the like. In the present example, it is assumed that the system power budget is 100 W, and such variability of the system power budget will be disregarded. It is further assumed that the first target component 104-1 , e.g. a CPU, receives an initial power budget corresponding to 40% of the system power budget, or 40 W, The second target component 104-2, e.g. a GPU, therefore receives an initial power budget corresponding to 60% of the system power budget, or 60W.
  • the first initial power budget of the first target component 104-1 , and the second initial power budget of the second target component 104-2 are illustrated below, in Table 1
  • the controller 112 can obtain a first power consumption indicator for the first target component 104-1 , and a second power consumption indicator for the second target component 104-2.
  • the controller 112 can obtain a plurality of measurements of current power consumption for the target components 104-1 and 104 2 over the course of a time period (e.g. one second), and generate the power consumption indicators based on the plurality of measurements.
  • the first power consumption indicator generated at block 210 (for the target component 104-1 ) Indicates an average power consumption of 38 W over the one-second period preceding the performance of block 210, and that the second power consumption indicator (for the target component 104-2) indicates an average power consumption of 15 W over the same one-second time period.
  • the controller 112 can generate a first workload estimate for the first target component 104-1 , and a second workload estimate for the second target component 104-2.
  • the workload estimates may be generated as ratios of power consumption indicator to current power budget.
  • the first workload indicator for the first target component 104-1 is a ratio of 35 W to 40 W, or 0.95.
  • the second workload indicator for the second target component 104-2 is a ratio of 15 W to 60 W, or 0.25. Table 2 summarizes the initial power budgets, power consumptions, and workload estimates in the present example performance of the method 200.
  • the controller 112 can compare the workload estimates, and provide adjusted power budgets to the first and second target components 104-1 and 104-2 based on the comparison. [0023] In some examples, the controller 112 can directly compare the workload estimates, e.g. by determining a difference between the first and second workload estimates. In the present example, the difference between the first and second workload estimates is 0.7. The controller 112, having determined the above difference, can select a portion of one of the first initial power budget and the second initial power budget to reallocate.
  • the portion to be reallocated can be proportional to the difference between the workload estimates, up to a predetermined portion of the system budget.
  • the controller 112 can select a portion for reallocation between 0% and 15% of the system power budget, scaled according to the difference.
  • the difference is 0.7 between the first and second workload estimates, and the controller 112 can therefore select a portion of 10.5% (i.e. 0.7 of 15%) to reallocate.
  • Table 3 shows adjusted power budgets for the first target component 104-1 and the second target component 104-2 following such a reallocation.
  • the first target component 104-1 has been allocated an additional 10.5 W (i.e. 10.5% of the system budget), and the second target component has been allocated 10.5 W less.
  • the first target component 104-1 receives an increased power budget to reflect the fact that the first target component 104-1 was previously utilizing a larger portion of available power than the second target component 104-2.
  • the performance of the first target component 104-1 may be increased or maintained. Meanwhile, the allocation of less power to the second target component 104-2 may have little impact on the performance of the target component 104-2.
  • the controller 112, having performed block 220, can then return to block 210 to assess power consumption for the next time period (e.g, the next one-second period).
  • the controller 112 can therefore continuously update the allocated power budgets of the target components 104 in response to changing workloads of the target components 104, as determined by power consumption and current budget allocation.
  • Each performance of blocks 210, 215, and 220 can result in the selection of a portion of the system power budget to reallocate from one of the first initial power budget and the second initial power budget to the other.
  • Table 4 illustrates the result of another example performance of blocks 21 , 215 and 220 after the first example performance discussed above.
  • the power consumption measured for the first target component 104-1 at block 210 is 40 W
  • the power consumption measured for the second target component 104-1 is 27 W. That is, the power consumption of the first target component 104-1 has increased by 3 W, while the power consumption of the second target component 104-2 has nearly doubled.
  • the workload estimates generated at block 215 are 0.79 for the first target component 104-1 , and 0.54 for the second target component 104-2.
  • the difference between the workload estimates is 0.25, and the portion of the system budget to be reallocated is therefore 3.75% (0.25 of 15%), equivalent to 3.75 W in this example.
  • the adjusted power budgets are therefore 43.75 W for the first target component 104-1 , and 56.25 W for the second target component 104-2.
  • the controller 112 can compare the first workload estimate to a threshold to generate a first workload state indicator, and can compare the second workload estimate to the threshold to generate a second workload state indicator.
  • the controller 112 may employ more than one threshold in some examples.
  • the thresholds may, in other words, be employed to discretize a workload estimate into one of a set of workload state indicators, e.g. indicating whether the workload of a target component 104 is low, medium, or high.
  • FIG. 3 shows another example method 300 of allocating power budgets for computing components.
  • the method 300 begins as described above in connection with blocks 205, 210, and 215 of the method 200.
  • the controller 112 compares the first workload estimate for the first target component 104-1 to at least one threshold, and also compares the second workload estimate for the second target component 104 2 to the threshold.
  • the controller 112 can compare the workload estimates to an upper threshold, and a lower threshold. Based on the comparisons with the upper and lower thresholds, the controller 112 generates a first workload state indicator for the first target component 104-1 , and a second workload state indicator for the second target component 104-2.
  • the upper and lower thresholds mentioned above may be set at various values.
  • the lower threshold is 0.25 and the upper threshold is 0.75.
  • a workload estimate below the lower threshold yields a workload state indicator of “low”, while a workload estimate between the lower threshold and the upper threshold yields a workload state indicator of “medium”, and a workload estimate above the upper threshold yields a workload state indicator of “high”.
  • Various other forms of workload state indicator may also be employed. For example, numerical indicators such as “0” for low, “1” for medium and “2” for high may be used in other examples.
  • Table 5 illustrates example power consumption indicators, workload estimates, and workload state indicators for the first and second target components 104, Table 5: Power Consumption indicators, Workload Estimates, Adjusted Power Budgets
  • the workload estimate for the first target component 104-1 falls between the upper and lower thresholds, and the workload state indicator “Medium” is therefore selected.
  • the workload estimate for the second target component 104-2 falls above the upper threshold, and the workload state indicator “High” is therefore selected.
  • the controller 112 proceeds to block 310.
  • the controller 112 determines whether a difference between the workload state indicators is equal to or below a threshold.
  • the threshold may be zero, and thus the controller 112 can determined at block 310 whether the workload state indicators are equal.
  • the controller 112 proceeds to block 315, and sets adjusted power budgets for the target components 104 to the initial power budgets. In other words, when the workload state indicators are equal, no changes are made to the initial (default) power budgets.
  • the controller 112 proceeds to block 320.
  • the controller 112 reallocates a portion of the power budget of one target component 104 to the other target component 104.
  • the controller 112 can adjust the target component power budgets by adding or subtracting a predetermined portion of the system budget according to the difference between the workload state indicators.
  • the controller 112 can reallocate 15% of the system budget from one target component 104 to the other when the workload state indicators differ by two steps (e.g. “High” and “Low”).
  • the controller 112 can reallocate 7% of the system budget from one target component 104 to the other when the workload state indicators differ by one step (e.g. “High” and “Medium”, or “Medium” and “Low”).
  • the controller 112 can reallocate 7% (or 7 W, with a system budget of 100 W) from the first target component 104-1 to the second target component 104-2, resulting in adjusted power budgets of 33 W and 67 W, as shown in Table 5.
  • the controller 112 can provide the adjusted power budgets to the target components 104-1 and 104-2, e.g. via the data communications interface mentioned earlier and shown in FIG. 1.
  • the controller 112 can then return to block 210 to repeat the above process for the next time period.
  • the measured power consumption obtained by the controller 112 can be obtained directly, as shown in FIG. 1. That is, the computing device 100 can include a power consumption measurement device integrated with the power allocation controller 112.
  • the controller 112 can receive measured power consumption from another component
  • FIG, 4 shows another example computing device 400, including the target components 104-1 and 104-2, the power source 108, the power allocation controller 112, and the storage device 116.
  • the computing device 400 includes a measurement device 404 that is implemented separately from the controller 112.
  • the measurement device 404 can be, for example, an Energy Estimation Engine (E3) device connected to the power conduits between the power source 108 and the target components 104.
  • E3 Energy Estimation Engine
  • the measurement device 404 is also connected to the controller 112 for data communications, and provides power consumption measurements, e.g. continuously, to the controller 112.

Abstract

An example computing device includes: a first component having a first power budget; a second component having a second power budget; and a power allocation controller to: obtain (i) a first power consumption indicator for the first component, and (ii) a second power consumption indicator for the second component; generate (i) a first workload estimate based on the first power budget and the first power consumption indicator, and (ii) a second workload estimate based on the second power budget and the second power consumption indicator; and provide, based on a comparison of the first and second workload estimates, (i) a first adjusted power budget to the first component, and (ii) a second adjusted power budget to the second component.

Description

POWER BUDGET ALLOCATIONS
BACKGROUND
[0001] Computing devices may allocate power budgets to certain components thereof, for example based on power supply and/or cooling capabilities of the devices. Allocation of such power budgets may be computationally intensive, and/or may result in reduced device performance as a result of overly restrictive budget allocation to one or more components.
BRIEF DESCRIPTIONS OF THE DRAWINGS
[0002] FIG. 1 is a block diagram of an example computing device with a power allocation controller to allocate power budgets to computing components.
[0003] FIG. 2 is a flowchart of an example method of allocating power budgets to computing components in a computing device.
[0004] FIG. 3 is a flowchart of another example method of allocating power budgets to computing components in a computing device.
[0005] FIG. 4 is a block diagram of another example computing device with a power allocation controller to allocate power budgets to computing components.
DETAILED DESCRIPTION
[0006] FIG. 1 shows an example computing device 100. The computing device 100 may be a desktop computer, a server, a smartphone, a notebook computer, a tablet computer, or similar device. The computing device 100 includes a first target component 104-1, and a second target component 104-2 (which may be collectively referred to as the target components 104, and generica!iy as a target component 104). The target components 104-1 and 104-2 may also be referred to simply as components 104-1 and 104-2. In some examples, the first target component 104-1 includes a central processing unit (CPU), and the second target component 104-2 includes a graphics processing unit (GPU). The computing device 100 may include other components, such as storage devices (e.g. hard drives, volatile memory, and the like), input devices (e.g. a keyboard) and output devices (e.g. a display).
[0007] The components of the computing device 100, including the target components 104, are supplied with power, e.g. from a power source 108. The power source 108 may be a battery integrated with the computing device 100, such as a laptop battery. In other examples, the power source 108 may be external to the computing device 100, such as an external battery, a connection to an electrical utility, or the like.
[0008] The computing device 100 also includes a power allocation controller 112 (which may also be referred to as a controller 112) to allocate power budgets to the target components 104. The controller 112 can be implemented as, for example, an embedded controller (EC) on a mainboard of the computing device 100.
[0009] The target components 104 may be targeted for power budget allocation by the power allocation controller 112 based on, for example, the proportion of the overall power consumption of the computing device 100 represented by the target components 104. In other words, components such as a CPU and a GPU may represent a significant portion of overall power consumption of the computing device 100. For example, in a laptop computer, the CPU and GPU together may represent more than half of the total power consumption of the computer. Exerting control over the power consumption of the target components 104 may therefore enable the power allocation controller 112 to manage the overall power consumption of the device 100 to meet cooling and/or power delivery capabilities available to the computing device 100.
[0010] The computing device 100 further includes a non-transitory computer-readable medium such as a storage device 116, which may also be referred to as a memory, coupled to the power allocation controller 112. The storage device 116 can also be integrated with the controller 112, in other examples. The storage device 116 contains a set of instructions 118 executable by the controller 112 to implement the power budget allocation functionality discussed in greater detail below.
[0011] The controller 112 is connected to power supply conduits from the power source 108 to the target components 104, shown in solid lines in FIG. 1. The controller 112 is also connected to the storage device 116 and the target components 104 for data communications, as shown in dashed lines. The controller 112, as will be discussed in detail below, obtains a measured power consumption for the target component 104-1 , and a measured power consumption for the target component 104-2. The above measured power consumptions may also be referred to as power consumption indicators. For example, a power consumption indicator for the component 104-1 can include an average power consumption, in Watts, of the component 104-1 over a predefined time period, such as one second. Other time periods shorter than, and longer than, one second are also contemplated. That is, the controller 112 can obtain a plurality of measurements over the time period and can generate the indicator (e.g. an average power consumption) from the plurality of measurements. In other examples, the power consumption indicator for the component 104-1 can include an amount of energy, e.g. in Joules, consumed by the component 104-1 over the time period.
[0012] Having obtained the power consumption indicators mentioned above, the controller 112 can generate a first workload estimate for the first target component 104- 1 , and a second workload estimate for the second target component 104-2. The controller 112 can generate the workload estimate for a component 104 based on the power consumption indicator corresponding to that component 104, and on a current power budget allocated to that component 104. Thus, for example, the controller 112 can allocate a power budget of 40 W to the target component 104-1 (e.g. a CPU), and obtain a power consumption indicator indicating an average power consumption of 25 W over the previous one second time period. The workload estimate for the component 104-1 can be determined as a ratio of the power consumption indicator to the allocated power budget. In the example above, therefore, the workload estimate is therefore 0.625. More generally, the workload estimates may be fractions between zero and one, although other formats may also be used to express the workload estimates.
[0013] In other words, the workload estimates generated by the controller 112 indicate what portion of the power budget for a given target component 104 was in use by that target component 104 over the relevant time period (e.g. a one-second time period preceding the generation of the workload estimate). [0014] The controller 112 can then compare the first workload estimate corresponding to the first target component 104-1 , and the second workload estimate corresponding to the second target component 104-2. Based on the comparison, the controller 112 can provide an adjusted power budget to the first target component 104-1 , and an adjusted power budget to the second target component 104-2. The adjusted power budget allocated to a target component 104 can include an increase or a decrease to the previously allocated power budget. That is, a portion of a power budget of one target component 104 (e.g., first target component 104-1 ) may be reallocated to the other target component 104 (e.g., second target component 104-2).
[0015] What portion of power budget is reallocated from one target component 104 to the other target component 104 can be defined, for example, as a portion of a system power budget, representing the combined power budgets of the target components 104. For example, for a system power budget of 100 W, a default power budget allocation to the first target component 104-1 may be 40W, and a default power budget allocation to the second target component 104-2 may be 60 W. In response to the above-mentioned comparison of workload estimates for the components 104, the controller 112 may reallocate 5% of the system power budget (5 W, in this example) from the first target component 104-1 to the second target component 104-2. The first adjusted power budget is therefore 35 W, and the second adjusted power budget is 65 W.
[0016] The portion of power budget reallocated between the target components 104 can be specified in absolute wattage rather than as a fraction of the system power budget, in other examples. The portion of power budget reallocated may also vary in size based on the comparison between the first workload estimate and the second workload estimate. That is, larger portions of power budget may be reallocated in response to larger differences between the workload estimates. Conversely, smaller portions of power budget may be reallocated (including as little as zero reallocation) in response to smaller differences between the workload estimates. Certain examples of reallocation determinations will be discussed below.
[0617] The controller 112 can repeat the above allocation process, e.g. once per second or according to another suitable time period. The controller 112 can therefore dynamically adjust power budget allocations for the target components 104 according to the current workloads of the target components 104, Such dynamic adjustment may increase the efficiency with which power budgets are allocated to the target components 104, e.g. reducing the frequency of situations in which one target component 104 throttles computational activity to avoid exceeding an allocated power budget, potentially reducing performance, while the other target component 104 makes use of a small portion of the power budget allocation to that target component 104, The dynamic adjustment implemented by the power allocation controller 112 may therefore enable increased performance for the computing device 100.
[0018] FIG. 2 shows an example method 200 of allocating power budgets for computing components. The method 200 may be embodied by a set of instructions that may be stored in a non-transitory computer-readable medium (e.g. the instructions 118 stored in the storage device 118, as shown in FIG. 1 ) and executed by a controller, such as the power allocation controller 112. The method 200 is described below in conjunction with an example performance of the method 200 by the computing device 100.
[0019] At block 205, the controller 112 sets Initial power budgets, which may also be referred to as default power budgets, for the target components 104. The initial power budgets can be set as predetermined portions of a system power budget. The determination of the system power budget itself may vary based on factors such as remaining battery capacity, ambient temperature, and the like. In the present example, it is assumed that the system power budget is 100 W, and such variability of the system power budget will be disregarded. It is further assumed that the first target component 104-1 , e.g. a CPU, receives an initial power budget corresponding to 40% of the system power budget, or 40 W, The second target component 104-2, e.g. a GPU, therefore receives an initial power budget corresponding to 60% of the system power budget, or 60W. The first initial power budget of the first target component 104-1 , and the second initial power budget of the second target component 104-2, are illustrated below, in Table 1
Table 1 : Initial Power Budgets (W)
Figure imgf000007_0001
[0020] At block 210, the controller 112 can obtain a first power consumption indicator for the first target component 104-1 , and a second power consumption indicator for the second target component 104-2. For example, the controller 112 can obtain a plurality of measurements of current power consumption for the target components 104-1 and 104 2 over the course of a time period (e.g. one second), and generate the power consumption indicators based on the plurality of measurements. For illustrative purposes, it is assumed that the first power consumption indicator generated at block 210 (for the target component 104-1 ) Indicates an average power consumption of 38 W over the one-second period preceding the performance of block 210, and that the second power consumption indicator (for the target component 104-2) indicates an average power consumption of 15 W over the same one-second time period.
[0021] At block 215, the controller 112 can generate a first workload estimate for the first target component 104-1 , and a second workload estimate for the second target component 104-2. As noted earlier, the workload estimates may be generated as ratios of power consumption indicator to current power budget. Thus, in the present example, the first workload indicator for the first target component 104-1 is a ratio of 35 W to 40 W, or 0.95. The second workload indicator for the second target component 104-2 is a ratio of 15 W to 60 W, or 0.25. Table 2 summarizes the initial power budgets, power consumptions, and workload estimates in the present example performance of the method 200.
Table 2: Power Consumption Indicators and Workload Estimates
Figure imgf000008_0001
[0022] At block 220, the controller 112 can compare the workload estimates, and provide adjusted power budgets to the first and second target components 104-1 and 104-2 based on the comparison. [0023] In some examples, the controller 112 can directly compare the workload estimates, e.g. by determining a difference between the first and second workload estimates. In the present example, the difference between the first and second workload estimates is 0.7. The controller 112, having determined the above difference, can select a portion of one of the first initial power budget and the second initial power budget to reallocate.
[0024] The portion to be reallocated can be proportional to the difference between the workload estimates, up to a predetermined portion of the system budget. For example, the controller 112 can select a portion for reallocation between 0% and 15% of the system power budget, scaled according to the difference. In the present example, the difference is 0.7 between the first and second workload estimates, and the controller 112 can therefore select a portion of 10.5% (i.e. 0.7 of 15%) to reallocate. Table 3 shows adjusted power budgets for the first target component 104-1 and the second target component 104-2 following such a reallocation. In particular, the first target component 104-1 has been allocated an additional 10.5 W (i.e. 10.5% of the system budget), and the second target component has been allocated 10.5 W less.
Table 3: Power Consumption Indicators, Workload Estimates, Adjusted Power Budgets
Figure imgf000009_0001
[0025] As will now be apparent to those skilled in the art, following the provision of adjusted power budgets at block 220, the first target component 104-1 receives an increased power budget to reflect the fact that the first target component 104-1 was previously utilizing a larger portion of available power than the second target component 104-2. By making a greater amount of power available to the first target component 104- 1 , the performance of the first target component 104-1 may be increased or maintained. Meanwhile, the allocation of less power to the second target component 104-2 may have little impact on the performance of the target component 104-2. [0026] The controller 112, having performed block 220, can then return to block 210 to assess power consumption for the next time period (e.g, the next one-second period). The controller 112 can therefore continuously update the allocated power budgets of the target components 104 in response to changing workloads of the target components 104, as determined by power consumption and current budget allocation. Each performance of blocks 210, 215, and 220 can result in the selection of a portion of the system power budget to reallocate from one of the first initial power budget and the second initial power budget to the other.
[0027] Table 4 illustrates the result of another example performance of blocks 21 , 215 and 220 after the first example performance discussed above. In particular, it is assumed that the power consumption measured for the first target component 104-1 at block 210 is 40 W, and that the power consumption measured for the second target component 104-1 is 27 W. That is, the power consumption of the first target component 104-1 has increased by 3 W, while the power consumption of the second target component 104-2 has nearly doubled.
Table 4: Power Consumption indicators, Workload Estimates, Adjusted Power Budgets
Figure imgf000010_0001
[0028] The workload estimates generated at block 215 are 0.79 for the first target component 104-1 , and 0.54 for the second target component 104-2. The difference between the workload estimates is 0.25, and the portion of the system budget to be reallocated is therefore 3.75% (0.25 of 15%), equivalent to 3.75 W in this example. The adjusted power budgets are therefore 43.75 W for the first target component 104-1 , and 56.25 W for the second target component 104-2.
[0029] Other mechanisms are also contemplated for performing the comparison at block 220 and the resulting budget allocation adjustments. For example, rather than comparing the first and second workload estimates directly, the controller 112 can compare the first workload estimate to a threshold to generate a first workload state indicator, and can compare the second workload estimate to the threshold to generate a second workload state indicator. The controller 112 may employ more than one threshold in some examples. The thresholds may, in other words, be employed to discretize a workload estimate into one of a set of workload state indicators, e.g. indicating whether the workload of a target component 104 is low, medium, or high.
[0030] FIG. 3 shows another example method 300 of allocating power budgets for computing components. The method 300 begins as described above in connection with blocks 205, 210, and 215 of the method 200. At block 305, the controller 112 compares the first workload estimate for the first target component 104-1 to at least one threshold, and also compares the second workload estimate for the second target component 104 2 to the threshold. In the present example, the controller 112 can compare the workload estimates to an upper threshold, and a lower threshold. Based on the comparisons with the upper and lower thresholds, the controller 112 generates a first workload state indicator for the first target component 104-1 , and a second workload state indicator for the second target component 104-2.
[0031] The upper and lower thresholds mentioned above may be set at various values. In an illustrative performance of the method 300 discussed below, the lower threshold is 0.25 and the upper threshold is 0.75. A workload estimate below the lower threshold yields a workload state indicator of “low”, while a workload estimate between the lower threshold and the upper threshold yields a workload state indicator of “medium”, and a workload estimate above the upper threshold yields a workload state indicator of “high”. Various other forms of workload state indicator may also be employed. For example, numerical indicators such as “0” for low, “1” for medium and “2” for high may be used in other examples.
[0032] Table 5 illustrates example power consumption indicators, workload estimates, and workload state indicators for the first and second target components 104, Table 5: Power Consumption indicators, Workload Estimates, Adjusted Power Budgets
Figure imgf000012_0001
[0033] As seen in Table 5, the workload estimate for the first target component 104-1 falls between the upper and lower thresholds, and the workload state indicator “Medium” is therefore selected. The workload estimate for the second target component 104-2 falls above the upper threshold, and the workload state indicator “High” is therefore selected.
[0034] To generate adjusted power budgets for the first and second target components 104, the controller 112 proceeds to block 310. At block 310, the controller 112 determines whether a difference between the workload state indicators is equal to or below a threshold. In some examples, the threshold may be zero, and thus the controller 112 can determined at block 310 whether the workload state indicators are equal. When the determination at block 310 is affirmative (e.g. if both workload state indicators are “Medium”), the controller 112 proceeds to block 315, and sets adjusted power budgets for the target components 104 to the initial power budgets. In other words, when the workload state indicators are equal, no changes are made to the initial (default) power budgets.
[0035] When, on the other hand, the difference between the workload state indicators exceeds the threshold (e.g. when the workload state indicators are not equal), the controller 112 proceeds to block 320. At block 320, the controller 112 reallocates a portion of the power budget of one target component 104 to the other target component 104. For example, the controller 112 can adjust the target component power budgets by adding or subtracting a predetermined portion of the system budget according to the difference between the workload state indicators. For example, the controller 112 can reallocate 15% of the system budget from one target component 104 to the other when the workload state indicators differ by two steps (e.g. “High” and “Low”). The controller 112 can reallocate 7% of the system budget from one target component 104 to the other when the workload state indicators differ by one step (e.g. “High” and “Medium”, or “Medium” and “Low”).
[0036] In the present example performance of the method 300, therefore, the controller 112 can reallocate 7% (or 7 W, with a system budget of 100 W) from the first target component 104-1 to the second target component 104-2, resulting in adjusted power budgets of 33 W and 67 W, as shown in Table 5. At block 325, the controller 112 can provide the adjusted power budgets to the target components 104-1 and 104-2, e.g. via the data communications interface mentioned earlier and shown in FIG. 1. The controller 112 can then return to block 210 to repeat the above process for the next time period.
[0037] The measured power consumption obtained by the controller 112 can be obtained directly, as shown in FIG. 1. That is, the computing device 100 can include a power consumption measurement device integrated with the power allocation controller 112.
[0038] In other examples, the controller 112 can receive measured power consumption from another component, FIG, 4 shows another example computing device 400, including the target components 104-1 and 104-2, the power source 108, the power allocation controller 112, and the storage device 116. However, in the example of FIG. 4, the computing device 400 includes a measurement device 404 that is implemented separately from the controller 112. The measurement device 404 can be, for example, an Energy Estimation Engine (E3) device connected to the power conduits between the power source 108 and the target components 104. The measurement device 404 is also connected to the controller 112 for data communications, and provides power consumption measurements, e.g. continuously, to the controller 112.
[0039] It should be recognized that features and aspects of the various examples provided above can be combined into further examples that also fail within the scope of the present disclosure. In addition, the figures are not to scale and may have size and shape exaggerated for illustrative purposes.

Claims

1. A computing device, comprising: a first component having a first power budget; a second component having a second power budget; and a power allocation controller to: obtain (i) a first power consumption indicator for the first component, and (ii) a second power consumption indicator for the second component; generate (i) a first workload estimate based on the first power budget and the first power consumption indicator, and (ii) a second workload estimate based on the second power budget and the second power consumption indicator; and provide, based on a comparison of the first and second workload estimates, (i) a first adjusted power budget to the first component, and (ii) a second adjusted power budget to the second component.
2. The computing device of claim 1 , wherein the first component includes a central processing unit (CPU), and the second component includes a graphics processing unit (GPU).
3. The computing device of claim 1 , wherein the first workload estimate is a ratio of the first power consumption indicator to the first power budget, and wherein the second workload estimate is a ratio of the second power consumption indicator to the second power budget.
4. The computing device of claim 1 , wherein the power allocation controller is to: compare the first workload estimate and the second workload estimate to a threshold; and to generate the first and second adjusted power budgets, reallocate a portion of one of the first power budget and the second power budget to the other of the first power budget and the second power budget, based on the comparison.
5. The computing device of claim 4, wherein the power allocation controller is to compare the first workload estimate and the second workload estimate to a lower threshold and an upper threshold,
6. The computing device of claim 4, wherein the power allocation controller is to: generate a first workload state indicator based on the comparison of the first workload estimate with the threshold; generate a second workload state indicator based on the comparison of the second workload estimate with the threshold; and reallocate the portion based on a comparison of the first workload state indicator and the second workload state indicator.
7. The computing device of claim 1 , further comprising: a measurement device to generate the first and second power consumption indicators.
8. The computing device of claim 7, wherein the measurement device is integrated with the power allocation controller.
9. The computing device of claim 1 , wherein the power allocation controller is to determine the first and second power budgets from a system power budget.
10. A computing device, comprising: a first target component having a first power budget; a second target component having a second power budget; and a controller to: obtain (i) a first workload state indicator representing a portion of the first power budget in use by the first target component, and (ii) a second workload state indicator representing a portion of the second power budget in use by the second target component; and when the first workload state indicator is different from the second workload state indicator, generate (i) a first adjusted power budget for the first target component, and (ii) a second adjusted power budget for the second target component.
11. The computing device of claim 10, wherein the controller Is to: obtain (i) a first workload estimate for the first target component, and (ii) a second workload estimate for the second target component; and select the first workload state indicator according to a comparison of the first workload estimate to a threshold; and select the second workload state indicator according to a comparison of the second workload estimate to the threshold.
12. The computing device of claim 11 , wherein the controller is to: obtain (i) a first measured power consumption for the first target component, and (ii) a second measured power consumption for the second target component; determine the first workload estimate as a ratio of the first measured power consumption to the first power budget; and determine the second workload estimate as a ratio of the second measured power consumption to the second power budget.
13. A nan-transitory computer-readable medium having a set of instructions executable by a controller of a computing device to: provide a first initial power budget to a first component of the computing device; provide a second initial power budget to a second component of the computing device; obtain (i) a first workload estimate for the first component, and (ii) a second workload estimate for the second component; compare the first workload estimate to an upper threshold and a lower threshold to generate a first workload state indicator for the first component; compare the second workload estimate to the upper threshold and the lower threshold to generate a second workload state indicator for the second component; based on a difference between the first workload state indicator and the second workload state indicator, generate (i) a first adjusted power budget for the first component, and (ii) a second adjusted power budget for the second component.
14. The non-transitory computer-readable medium of claim 13, the instructions further executable by the controller to: determine the first initial power budget as a first portion of a system power budget; and determine the second initial power budget as a second portion of the system power budget.
15. The non-transitory computer-readable medium of claim 13, the instructions further executable by the controller to: when the difference between the first workload state indicator and the second workload state indicator is below a threshold, provide the first initial power budget to the first component and provide the second initial power budget to the second component.
PCT/US2020/043955 2020-07-29 2020-07-29 Power budget allocations WO2022025872A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/US2020/043955 WO2022025872A1 (en) 2020-07-29 2020-07-29 Power budget allocations
TW110106125A TWI770830B (en) 2020-07-29 2021-02-22 Power budget allocations

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2020/043955 WO2022025872A1 (en) 2020-07-29 2020-07-29 Power budget allocations

Publications (1)

Publication Number Publication Date
WO2022025872A1 true WO2022025872A1 (en) 2022-02-03

Family

ID=80036021

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2020/043955 WO2022025872A1 (en) 2020-07-29 2020-07-29 Power budget allocations

Country Status (2)

Country Link
TW (1) TWI770830B (en)
WO (1) WO2022025872A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130103968A1 (en) * 2005-08-25 2013-04-25 Apple Inc. Methods and apparatuses for dynamic power control
US20140089688A1 (en) * 2012-09-27 2014-03-27 Xiuting C. Man Sharing Power Between Domains In A Processor Package
US20180131531A1 (en) * 2015-06-10 2018-05-10 Cisco Technology, Inc. Dynamic Power Management

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140052965A1 (en) * 2012-02-08 2014-02-20 Uzi Sarel Dynamic cpu gpu load balancing using power
US11012945B2 (en) * 2017-09-29 2021-05-18 Apple Inc. Devices and methods for power allocation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130103968A1 (en) * 2005-08-25 2013-04-25 Apple Inc. Methods and apparatuses for dynamic power control
US20140089688A1 (en) * 2012-09-27 2014-03-27 Xiuting C. Man Sharing Power Between Domains In A Processor Package
US20180131531A1 (en) * 2015-06-10 2018-05-10 Cisco Technology, Inc. Dynamic Power Management

Also Published As

Publication number Publication date
TWI770830B (en) 2022-07-11
TW202205056A (en) 2022-02-01

Similar Documents

Publication Publication Date Title
TWI448883B (en) Power management system and method
JP6693958B2 (en) System and method for peak dynamic power management in a portable computing device
NL2011348B1 (en) Dynamic voltage frequency scaling method and apparatus.
US10871818B1 (en) Component power consumption management determining whether the power availability of the power source exceeds the expected power consumption
US8478451B2 (en) Method and apparatus for dynamically allocating power in a data center
US11157328B2 (en) Distributed processing QoS algorithm for system performance optimization under thermal constraints
US8392736B2 (en) Managing memory power usage
US20120185711A1 (en) Fan control during low temperature operations to reduce platform power
CN110637271B (en) Systems and methods for intelligent adjustment of immersive multimedia workloads in portable computing devices
TW201022923A (en) Power management for multiple processor cores
CN103019367A (en) Embedded type GPU (Graphic Processing Unit) dynamic frequency modulating method and device based on Android system
EP4073616A1 (en) Distributing power shared between an accelerated processing unit and a discrete graphics processing unit
US20170262030A1 (en) Systems and methods for determining a sustained thermal power envelope comprising multiple heat sources
US20200081513A1 (en) Variation-aware intra-node power shifting among different hardware components
WO2022025872A1 (en) Power budget allocations
US7844842B2 (en) Variable refresh rate for power management
US10684667B2 (en) Dynamic battery power management based on battery internal impedance
US11625088B2 (en) Peripheral interface power allocation
JP5435133B2 (en) Information processing apparatus, information processing apparatus control method, and program
US20180173296A1 (en) Determination of an operating range of a processor using a power consumption metric
CN109871112B (en) Openpower system performance power consumption ratio optimization display system
CN113094231A (en) Computer fan control method, system, controller and storage medium
US11714442B2 (en) Controlling electrical power consumption for elements in an electronic device based on a platform electrical power limit
US11106266B2 (en) Computer system management for selecting a first algorithm based on a third data type and a second algorithm based on a target value
US20240004448A1 (en) Platform efficiency tracker

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20947106

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20947106

Country of ref document: EP

Kind code of ref document: A1