IP Library Granted Patent US 8,671,293
Granted Patent B2
US 8,671,293 · App. 13/878,238 · Granted Mar 11, 2014

Multi-core system energy consumption optimization

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,671,293
App. No.
13/878,238
Granted
Mar 11, 2014
Kind
B2
Abstract

Techniques described herein generally relate to optimizing energy consumption in a computer system. In some examples an energy usage benchmark can be determined for a system component of the computer system by measuring performance levels and energy usages of the system component under a range of energy settings and utilization rates of the system component. A utilization rate of the system component can be determined based on prediction factors including the execution of a first set of instructions on the computer system. The system component can be configured to execute a second set of instructions after the first set of instructions by selecting an energy setting from the range of energy settings for operating the system component. The energy setting can be selected based on the energy usage benchmark and the determined utilization rate.

Claims (71)

1. A method to operate a computer system that includes a plurality of system components, comprising:

establishing an energy usage benchmark for a system component of the computer system by measuring performance levels and energy usages of the system component under a plurality of energy settings and a plurality of utilization rates of the system component;

determining a utilization rate of the system component based on at least execution of a first plurality of instructions on the computer system; and

configuring the system component for execution of a second plurality of instructions on the computer system subsequent to the execution of the first plurality of instructions by selecting an energy setting from the plurality of energy settings for operation of the system component, wherein:

the energy setting is selected based on the energy usage benchmark and the determined utilization rate; and

the system component is determined to meet a threshold performance level for the execution of the second plurality of instructions under the selected energy setting.

2. The method as recited in claim 1 , wherein the establishing the energy usage benchmark for the system component of the computer system comprises:

setting the system component to operate in a specific energy setting selected from the plurality of energy settings;

selecting a benchmark program with a specific utilization rate of the system component selected from the plurality of utilization rates;

collecting a specific performance level and a specific energy usage value from the system component during execution of the benchmark program; and

storing the specific energy setting, the specific utilization rate, the specific performance level, and the specific energy usage value in the energy usage benchmark.

3. The method as recited in claim 1 , wherein the determined utilization rate is based on a percentage of instructions that primarily utilizes the system component during the execution of the first plurality of instructions.

4. The method as recited in claim 1 , further comprising:

identifying the system component to be used during execution of a scheduled instruction;

selecting an energy-efficient system component from the system component and an other system component for consumption of less energy while meeting the threshold performance level in the execution of the scheduled instruction; and

utilizing the energy-efficient system component for the operation during the execution of the scheduled instruction.

5. The method as recited in claim 1 , further comprising:

predicting an other utilization rate for operation of an other system component for execution of scheduled instructions, the predicting being based on historical data in an other energy usage benchmark for the other system component or analysis of the scheduled instructions; and

selecting an other energy setting from an other plurality of energy settings for the operation of the other system component based on the predicted other utilization rate and the other energy usage benchmark for the other system component.

6. The method as recited in claim 1 , further comprising:

presenting separate virtual machines to run separate operating systems, comprising:

running the operating systems on separate central processing units each with its own main memory;

assigning the plurality of system components, including the system component, in the computer system to the operating systems; and

repeating the establishing the energy usage benchmark, the determining the utilization rate, and the configuring the system component for each of the plurality of system components in the computer system.

7. The method as recited in claim 6 , wherein the assigning the plurality of the system components comprises, for each central processing unit, assigning a group of the system components that are physically close to the central processing unit.

8. The method as recited in claim 1 , further comprising:

evaluating the operation of the system component during the execution of the second plurality of instructions by measuring additional values of the performance levels and the energy usages of the system component under the selected energy setting and the determined utilization rate of the system component;

updating the energy usage benchmark based on the additional values of the performance levels and the energy usages, the selected energy setting, and the determined utilization rate of the system component;

determining an other utilization rate of the system component based on the execution of the second plurality of instructions on the computer system; and

configuring the system component for execution of a third plurality of instructions subsequent to the execution of the second plurality of instructions on the computer system by selecting an other energy setting from the plurality of energy settings for the operation of the system component, wherein the other energy setting is selected based on the energy usage benchmark and the other utilization rate, and the system component is determined to meet the threshold performance level for the execution of the third plurality of instructions under the selected other energy setting.

9. The method as recited in claim 1 , wherein the system component includes a central processing unit (CPU), a cache, a memory, a hard drive, a graphic card, or a network card.

10. A method to operate a computer system, comprising:

determining an instruction load on a central processing unit (CPU) of the computer system based on execution of instructions; and

in response to the instruction load on the CPU exceeding a CPU load threshold:

determining a cache-miss rate of a cache that is utilized by the CPU during the execution of the instructions; and

in response to the cache-miss rate being greater than a cache-miss rate threshold, lowering a clock rate of the CPU.

11. The method as recited in claim 10 , further comprising:

in response to the instruction load on the CPU exceeding the CPU load threshold and the cache-miss rate being less than an other cache-miss rate threshold, increasing the clock rate of the CPU.

12. The method as recited in claim 11 , further comprising:

in response to the instruction load on the CPU exceeding the CPU threshold and the cache-miss rate being within a cache-miss rate threshold range, maintaining the clock rate of the CPU.

13. An apparatus configured to operate a computer system that includes a plurality of system components, comprising:

a virtual machine monitor configured to:

establish an energy usage benchmark for a system component of the computer system by measurement of performance levels and energy usages of the system component under a plurality of energy settings and a plurality of utilization rates of the system component;

determine a utilization rate of the system component based on at least execution of a first plurality of instructions on the computer system; and

for execution of a second plurality of instructions on the computer system subsequent to the execution of the first plurality of instructions, select an energy setting from the plurality of energy settings for operation of the system component, wherein:

the energy setting is selected based on the energy usage benchmark and the determined utilization rate; and

under the selected energy setting, the system component is determined to meet a threshold performance level for the execution of the second plurality of instructions.

14. The apparatus as recited in claim 13 , wherein the virtual machine monitor is further configured to:

identify the system component to be used in execution of a scheduled instruction;

select an energy-efficient system component from either the system component or an other system component for consumption of less energy while meeting the threshold performance level in the execution of the scheduled instruction; and

utilize the energy-efficient system component for operation during the execution of the scheduled instruction.

15. The apparatus as recited in claim 13 , wherein the virtual machine monitor is further configured to:

predict an other utilization rate for operation of an other system component for execution of scheduled instructions, the prediction being based on historical data in an other energy usage benchmark for the other system component or analysis of the scheduled instructions; and

select an other energy setting from an other plurality of energy settings for the operation of the other system component based on the predicted other utilization rate and the other energy usage benchmark for the other system component.

16. The apparatus as recited in claim 13 , wherein the virtual machine monitor is configured to:

present separate virtual machines to run separate operating systems;

run the operating systems on separate central processing units each with its own main memory;

assign the plurality of system components, including the system component, in the computer system to the operating systems; and

repeat the establishment of the energy usage benchmark, the determination of the utilization rate, and the selection of the energy setting for each of the plurality of system components in the computer system.

17. The apparatus as recited in claim 16 , wherein to assign the plurality of system components, the virtual machine monitor is configured to, for each central processing unit, assign a group of the system components that are physically close to the central processing unit.

18. The apparatus as recited in claim 13 , wherein the virtual machine monitor is further configured to:

measure additional values of the performance levels and the energy usages of the system component under the selected energy setting and the determined utilization rate of the system component during the execution of the second plurality of instructions; and

update the energy usage benchmark based on the additional values of the performance levels and the energy usages, the selected energy setting, and the determined utilization rate of the system component.

19. The apparatus as recited in claim 13 , wherein the virtual machine monitor is further configured to:

determine an instruction load on a central processing unit (CPU) of the computer system based on execution of instructions; and

in response to the instruction load on the CPU being in excess of a CPU load threshold:

determine a cache-miss rate of a cache that is utilized by the CPU during the execution of the instructions; and

in response to the cache-miss rate being greater than a cache-miss rate threshold, lower a clock rate of the CPU.

20. The apparatus as recited in claim 19 , wherein the virtual machine monitor is further configured to:

in response to the instruction load on the CPU being in excess of the CPU load threshold and the cache-miss rate being less than an other cache-miss rate threshold, increase the clock rate of the CPU; and

in response to the instruction load on the CPU being in excess of the CPU load threshold and the cache-miss rate being within a cache-miss rate threshold range, maintain the clock rate of the CPU.

Assignments (3)
RELEASE OF SECURITY INTEREST IN PATENTS, RECORDED ON JANUARY 29, 2019 AT REEL 048373 FRAME 0217 Recorded Sep 22, 2025
From: CRESTLINE DIRECT FINANCE, L.P., AS COLLATERAL AGENT
To: EMPIRE TECHNOLOGY DEVELOPMENT LLC
Reel/Frame 072936/0464 →
SECURITY INTEREST Recorded Jan 29, 2019
From: EMPIRE TECHNOLOGY DEVELOPMENT LLC
To: CRESTLINE DIRECT FINANCE, L.P.
Reel/Frame 048373/0217 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 8, 2013
From: QI, YONG; DAI, YUEHUA
To: EMPIRE TECHNOLOGY DEVELOPMENT LLC
Reel/Frame 030165/0089 →