IP Library › Granted Patent US 7,058,824
Granted Patent B2
US 7,058,824 · App. 09/882,076 · Granted Jun 6, 2006

Method and system for using idle threads to adaptively throttle a computer

Assignee: Microsoft Corporation
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 7,058,824
App. No.
09/882,076
Granted
Jun 6, 2006
Kind
B2
Abstract

A method and system for adaptively throttling a computer is provided. Prior CPU utilization is calculated when a CPU enters an idle state. If the prior CPU utilization warrants a change in the CPU performance level, an appropriate CPU performance level is calculated. Policies, including thermal policies and battery charge policies, may be applied to increase or decrease the appropriate CPU performance level. If prior CPU utilization and/or policies dictate a different CPU performance level, the CPU performance level is changed.

Claims (42)

1. A computer-implemented method for adaptively throttling a computer, comprising:

measuring a prior utilization of the computer while a CPU of the computer is idle, wherein the prior utilization is measured by resolving user time, kernel time, and idle time within a time period into a utilization percentage that corresponds to the prior utilization, and wherein the CPU is considered to be idle despite the CPU polling for work and checking for pending deferred procedure calls; and

if the prior utilization crosses a threshold, modifying a parameter associated with the CPU.

2. The method of claim 1 , wherein the parameter comprises a clock frequency.

3. The method of claim 1 , wherein the parameter comprises a voltage.

4. The method of claim 1 , further comprising:

storing the prior utilization in a utilization history database.

5. The method of claim 4 , further comprising:

accessing the utilization history database to determine if the CPU has been at a performance level for a sufficient period of time.

6. The method of claim 1 , wherein the threshold indicates that a performance level allocated with the CPU should be increased.

7. The method of claim 6 , further comprising:

applying a system policy to determine whether to increase the performance level of the CPU.

8. The method of claim 7 , wherein the system policy comprises a heat performance limit related to a temperature sensed near the CPU.

9. The method of claim 7 , wherein the system policy comprises a battery performance limit related to a battery level of a battery supplying the computer with power.

10. The method of claim 7 , wherein the system policy relates to a switching latency of the CPU.

11. A computer-readable medium having at least one physical media, the computer-readable medium having computer-executable instructions for adaptively throttling a computer including a CPU having a CPU performance level, comprising:

calculating a prior utilization of the CPU while the CPU is idle, wherein the prior utilization is measured by resolving user time, kernel time, and idle time within a time period into a utilization percentage that corresponds to the prior utilization, and wherein the CPU is considered to be idle despite the CPU polling for work and checking for pending deferred procedure calls; and

calculating a utilizable CPU performance level using the prior utilization.

12. The computer-readable medium of claim 11 , further comprising:

calculating a thermal CPU performance limit using temperature information associated with the CPU; and

changing the CPU performance level to a minimum of the utilizable CPU performance level and the thermal CPU performance limit.

13. The computer-readable medium of claim 11 , further comprising:

calculating a battery CPU performance limit using battery charge information associated with a battery supplying power to the CPU; and

if the battery CPU performance limit is less than the utilizable CPU performance level and the battery CPU performance limit is less than the thermal CPU performance limit, changing the CPU performance level to the battery CPU performance limit.

14. The computer-readable medium of claim 11 , further comprising:

changing the CPU performance level to the utilizable CPU performance level.

15. The computer-readable medium of claim 12 , wherein changing the CPU performance level occurs at an expiration of a timer.

16. The computer-readable medium of claim 15 , further comprising:

if the minimum performance level is equal to a maximum performance level of the CPU, disabling the timer.

17. The computer-readable medium of claim 15 , further comprising:

if the new performance level is less than a maximum performance level of the CPU, resetting the timer.

18. A system for adaptively throttling a computer including a CPU having a CPU performance level, comprising:

a CPU utilization monitor configured to monitor a utilization of the CPU, wherein a prior utilization for the CPU is measured by resolving user time, kernel time, and idle time within a time period into a utilization percentage that corresponds to the prior utilization;

a CPU throttler configured to perform the adaptive throttling of the CPU based on information from the CPU utilization monitor; and

a timer configured to monitor a time since an idle state, wherein the CPU throttler is activated when the CPU enters an idle state, and wherein the CPU is considered to be in idle state despite the CPU polling for work and checking for pending deferred procedure calls.

19. The system of claim 18 , wherein the CPU is activated when the time since the last idle state exceeds a threshold.

20. The system of claim 18 , further comprising:

a thermal policy manager configured to monitor a temperature near the CPU wherein the thermal policy manager activates the CPU throttler when the temperature crosses a threshold.

21. The system of claim 18 , further comprising:

a degradation policy manager configured to receive a charge level from a battery sensor monitoring a battery wherein the degradation policy manager activates the CPU throttler when the charge level crosses a threshold.

22. The system of claim 18 , wherein the CPU throttler changes the CPU performance level in response to a utilization of the CPU measured by the CPU utilization monitor.

23. The system of claim 18 , wherein upon activation, the CPU throttler resets the timer.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034541/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 15, 2001
From: PLANTE, STEPHANE G.; VERT, JOHN D.; OSHINS, JACOB
To: MICROSOFT CORPORATION
Reel/Frame 011921/0020 →
Continuity (1)
Related Publication 20020194509A1 · Dec 19, 2002