US5544082AExpiredUtility

Method and system for placing a computer in a reduced power state

61
Assignee: MICROSOFT CORPPriority: Oct 6, 1992Filed: Feb 15, 1995Granted: Aug 6, 1996
Est. expiryOct 6, 2012(expired)· nominal 20-yr term from priority
Y02D10/00G06F 9/30083G06F 11/3466G06F 1/3203G06F 11/3423
61
PatentIndex Score
33
Cited by
12
References
53
Claims

Abstract

A method and system for placing a computer in a reduced power state is provided. In a preferred embodiment of the present invention, the system monitors the performance of a monitored activity of a program executing. The system determines whether the program is performing the monitored activity regularly. If the program is performing the monitored activity regularly, the system places the computer in a reduced power state.

Claims

exact text as granted — not AI-modified
We claim: 
     
       1. A method in a computer system for transitioning the computer system from a first state in which execution of a program is enabled to a second state in which execution of the program is suspended by monitoring regular occurrences of a monitored activity of an executing program, comprising the computer-implemented steps of: calculating a running average of the period between successive occurrences of the monitored activity; and   when the period deviates from the running average by more than a selected tolerance value a number of times exceeding a preselected limit, restarting the calculation of the running average; and   when the period deviates from the running average by more than the selected tolerance value a number of times not exceeding the preselected limit, placing the computer system in the second state in which execution of the program is suspended.   
     
     
       2. The method of claim 1 wherein the computer system includes a microprocessor having a reduced power mode, further including the step of confirming the regular occurrence of the monitored activity before suspending the execution of the program, including the steps of: comparing the period between a successive pair of occurrences of the monitored activity to determine if the period deviates from the running average by more than the tolerance value, and   placing the microprocessor in the reduced power mode if the period deviates from the running average by less than the tolerance value.   
     
     
       3. The method of claim 2 wherein the successive pair of occurrences of the monitored activity are a recent occurrence of the monitored activity and the next occurrence of the monitored activity. 
     
     
       4. The method of claim 3 wherein the recent occurrence of the monitored activity is the most recent occurrence of the monitored activity. 
     
     
       5. The method of claim 1, further including the steps of: after the step of placing the computer system in the second state, placing the computer system in the first state in which the execution of the program is enabled; and   when the program resumes execution, confirming that the monitored activity is occurring regularly, and upon confirmation, placing the computer system in the second state in which execution of the program is suspended.   
     
     
       6. The method of claim 5 wherein the steps of confirming that the monitored activity is occurring regularly includes the steps of: comparing the period between a successive pair of occurrences of the monitored activity to determine if the period deviates from the running average by more than a second tolerance value; and   placing the computer system in the second state in which execution of the program is suspended if the period deviates from the running average by less than the second selected tolerance value.   
     
     
       7. The method of claim 1, the computer having a keyboard buffer, further including the step of, after the step of placing the computer system in the second state, placing the computer system in the first state in which execution of the program is enabled when the keyboard buffer is not empty. 
     
     
       8. The method of claim 1 including the step of selecting the monitored activity from a plurality of candidate activities based upon the frequency with which one or more of the candidate activities occurs. 
     
     
       9. The method of claim 8 wherein the candidate activity that occurs most frequently is selected as the monitored activity. 
     
     
       10. A method for determining when to place a microprocessor in a reduced power mode based on activity of an executing program, the activity of the executing program including important activities and routine activities, routine activities including candidate activities and alternate activities, alternate activities including exclusive alternate activities and non-exclusive alternate activities, comprising the computer-implemented steps of: (a) detecting occurrences of important activities, candidate activities, and alternate activities;   (b) selecting as a monitored activity at least one candidate activity;   (c) monitoring the regular occurrence of the monitored activity during detection, including the steps of: (i) calculating the periods between successive occurrences of the monitored activity,   (ii) calculating a running average of the periods between successive occurrences of the monitored activity,   (iii) selecting a tolerance value,   (iv) comparing each period to the running average to determine if the period deviates from the running average by more than the tolerance value, and   (v) when the number of deviations exceeds a preselected limit, restarting the calculation of the running average;     (d) confirming the regular occurrence of the monitored activity when the monitoring has proceeded through a predetermined monitoring period without the number of deviations exceeding the preselected limit, or when the microprocessor exits the reduced power mode, including the step of: (i) comparing the period between the most recent occurrence of the monitored activity and the next occurrence of the monitored activity to determine whether the period deviates from the running average by more than the tolerance value;     (e) placing the microprocessor in the reduced power mode when the period between the most recent occurrence of the monitored activity and the next occurrence of the monitored activity deviates from the running average by less than the tolerance value;   (f) placing the microprocessor in the reduced power mode immediately after detection of an alternate activity;   (g) limiting detection to exclusive alternate activities upon the first occurrence of an exclusive alternate activity; and   (h) inhibiting placement of the microprocessor in the reduced power mode for an inhibit period after detection of an important activity.   
     
     
       11. The method of claim 10 wherein the selection as a monitored activity of at least one candidate activity is based upon the frequency with which one or more of the candidate activities is detected during the time the placement of the microprocessor in the reduced power mode is inhibited. 
     
     
       12. The method of claim 10 wherein the candidate activity that occurs most frequently is selected as a monitored activity. 
     
     
       13. The method of claim 10 including the step of extending the inhibit period for succeeding occurrences of an important activity detected. 
     
     
       14. The method of claim 10 including the steps of: specifying an aggressiveness level for the method; and   adjusting one or more of the tolerance value, the preselected limit, the predetermined monitoring period, and the inhibit period based upon the aggressiveness level specified.   
     
     
       15. The method of claim 10, the microprocessor having a halt instruction, wherein the microprocessor is placed in the reduced power mode by executing the halt instruction. 
     
     
       16. The method of claim 10, wherein the microprocessor is placed in the reduced power mode by signalling a power reducing component program. 
     
     
       17. An apparatus that detects when a computer program performs idle activity, comprising: a monitor that monitors the occurrence of a monitored activity; and   an analyzer that determines, based on the monitoring of the occurrence of the monitored activity, whether the monitored activity is occurring regularly and, when the monitored activity is occurring regularly, detects that the computer program is performing the activity.   
     
     
       18. The apparatus of claim 17 wherein the analyzer includes: means for preliminarily determining whether the program is performing the monitored activity regularly; and   means for confirming that the program is performing the monitored activity regularly if the preliminarily determining means preliminarily determines that the program is performing the monitored activity regularly.   
     
     
       19. The apparatus of claim 17 including a second monitor that monitors the occurrence of indications from the program that the program is performing idle activity. 
     
     
       20. The apparatus of claim 17 wherein the monitor includes a timer that times occurrences of the monitored activity and produces output, and wherein the analyzer uses the output of the timer to determine whether the monitored activity is occurring regularly. 
     
     
       21. The apparatus of claim 17 wherein the analyzer includes: an averager for calculating a running average of the period between successive occurrences of the monitored activity; and   means for restarting the averager if the period deviates from the running average by more than a selected tolerance value a number of times exceeding a preselected limit, restarting the calculation of the running average.   
     
     
       22. An apparatus that suspends execution of a program when the program performs idle activity, comprising: a monitor that monitors the performance of a monitored activity by the program;   an analyzer that determines, based on the monitoring of the performance of the monitored activity, whether the program is performing the monitored activity regularly; and   means for suspending execution of the program if the analyzer determines that the program is performing the monitored activity regularly.   
     
     
       23. The apparatus of claim 22 wherein the monitor includes a timer that times occurrences of the monitored activity and produces output, and wherein the analyzer bases its determination on the output of the timer. 
     
     
       24. The apparatus of claim 22 wherein the analyzer includes: an averager that calculates a running average of the period between successive occurrences of the monitored activity; and   means for restarting the calculation of the running average if the period deviates from the running average by less than a selected tolerance value a number of times exceeding a preselected limit.   
     
     
       25. The apparatus of claim 24 including: a confirming means that confirms the determination of the analyzer that the program is performing the monitored activity regularly; and   a second means for suspending execution of the program if the confirming means determines that the period deviates from the running average by less than a second selected tolerance value.   
     
     
       26. The apparatus of claim 25 wherein the confirming means is a comparator that compares the period between a successive pair of occurrences of the monitored activity to determine if the period deviates from the running average by more than the tolerance value. 
     
     
       27. The apparatus of claim 22 wherein the execution suspension means also suspends execution of the program upon the performance of an alternate activity. 
     
     
       28. The apparatus of claim 22 including an inhibitor that inhibits the execution suspension means for an inhibit period after the program performs an important activity. 
     
     
       29. The apparatus of claim 28 wherein the inhibitor extends the inhibit period upon the performance of further important activity. 
     
     
       30. A method in a computer system for transitioning the computer system from a first state to a second state when a computer program performs idle activity, comprising the computer-implemented steps of: monitoring occurrences of a monitored activity of the program;   determining whether the monitored activity is occurring regularly; and   when it is determined that the monitored activity is occurring regularly, transitioning the computer system from the first state to the second state, the second state indicating that the computer program is performing idle activity.   
     
     
       31. The method of claim 30 wherein the step of determining whether the program is performing the monitored activity regularly includes the steps of: preliminarily determining whether the program is performing the monitored activity regularly; and   when it is preliminarily determined that the program is performing the monitored activity regularly, confirming that the program is performing the monitored activity regularly.   
     
     
       32. The method of claim 30 including the step of detecting occurrences of indications from the program that the program is performing idle activity. 
     
     
       33. The method of claim 30 wherein the step of monitoring the occurrences of a monitored activity by the program includes the step of timing occurrences of the monitored activity, and wherein the step of determining whether the monitored activity is occurring regularly bases the determination on the timings. 
     
     
       34. The method of claim 30 wherein the step of monitoring includes the steps of: calculating a running average of the period between successive occurrences of the monitored activity; and   when the period deviates from the running average by more than a selected tolerance value a number of times exceeding a preselected limit, restarting the calculation of the running average, and wherein the step of determining includes the step of:     when the monitored activity has occurred a predetermined number of times since the calculation of the running average was restarted, determining that the monitored activity is occurring regularly.   
     
     
       35. A method in a computer system for transitioning the computer system from a first state in which execution of a program is enabled to a second state in which execution of the program is suspended when the program performs idle activity, comprising the computer-implemented steps of: monitoring a monitored activity that is being performed by the program;   determining whether the program is performing the monitored activity regularly; and   when the program is performing the monitored activity regularly, placing the computer system in the second state in which execution of the program is suspended.   
     
     
       36. The method of claim 35, further including the step of resuming the execution after the suspending step. 
     
     
       37. The method of claims 36, further including the steps of: after the step of placing the computer system in the second state, placing the computer system the first state in which execution of the program is enabled; and   when the execution of the program is enabled, confirming that the program is performing the monitored activity regularly, and upon confirmation, placing the computer system in the second state in which execution of the program is suspended.   
     
     
       38. The method of claim 37 wherein the step of confirming that the program is performing the monitored activity regularly includes the steps of: comparing the period between a successive pair of performances of the monitored activity to determine if the period deviates from the running average by more than a second tolerance value, and   placing the computer system in the second state in which execution of the program is suspended if the period deviates from the running average by less than the second selected tolerance value.   
     
     
       39. The method of claim 35 wherein the step of monitoring the performance of a monitored activity by a program includes the step of timing occurrences of the monitored activity, and wherein the step of determining whether the program is performing the monitored activity regularly bases the determination on the timings. 
     
     
       40. The method of claim 35 wherein the step of monitoring the performance of a monitored activity by the program includes the steps of: calculating a running average of the period between successive performances of the monitored activity; and   when the period deviates from the running average by more than a selected tolerance value a number of times exceeding a preselected limit, restarting the calculation of the running average.   
     
     
       41. The method of claim 35 including the step of placing the computer system in the second state in which execution of the program is suspended upon the performance of an alternate activity. 
     
     
       42. The method of claim 35 including the step of inhibiting the step of placing the computer system in the second state for an inhibit period after the program performs an important activity. 
     
     
       43. The method of claim 42 including the step of extending the inhibit period upon the performance of further important activity. 
     
     
       44. A method in a computer system for transitioning the computer system from a first state in which execution of a program is enabled to a second state in which execution of the program is suspended when the program performs idle activity based on candidate activities of the program, comprising the computer-implemented steps of: selecting as a monitored activity at least one candidate activity; and   monitoring regular occurrences of the monitored activity, including the steps of:   calculating a running average of the period between successive occurrences of the monitored activity,   when the period deviates from the running average by more than a selected tolerance value a number of times exceeding a preselected limit, restarting the calculation of the running average, and   when the period deviates from the running average by more than the selected tolerance value a number of times not exceeding the preselected limit, placing the computer system in the second state in which execution of the program is suspended.   
     
     
       45. The method of claim 44, further including the step of resuming the execution after the suspending step. 
     
     
       46. The method of claim 45, further including the steps of: after the step of placing the computer system in the second state, placing the computer system in the first state in which the execution of the program is enabled; and   when the program resumes execution, confirming that the monitored activity is occurring regularly, and upon confirmation, placing the computer system in the second state in which execution of the program is suspended.   
     
     
       47. The method of claim 46 wherein the steps of confirming the monitored activity is occurring regularly includes the steps of: comparing the period between a successive pair of occurrences of the monitored activity to determine if the period deviates from the running average by more than a second tolerance value; and   placing the computer system in the second state in which execution of the program is suspended if the period deviates from the running average by less than the second selected tolerance value.   
     
     
       48. The method of claim 47 wherein the successive pair of occurrences of the monitored activity are a recent occurrence of the monitored activity and the next occurrence of the monitored activity. 
     
     
       49. The method of claim 48 wherein the recent occurrence of the monitored activity is the most recent occurrence of the monitored activity. 
     
     
       50. The method of claim 44 including the step of confirming the regular occurrence of the monitored activity when the monitoring has proceeded through a predetermined monitoring period without the number of deviations exceeding the preselected limit, including the steps of: comparing the period between a successive pair of occurrences of the monitored activity to determine if the period deviates from the running average by more than the tolerance value; and   placing the computer system in the second state in which execution of the program is suspended if the period deviates from the running average by less than the tolerance value.   
     
     
       51. The method of claim 44 wherein the selecting as a monitored activity of at least one candidate activity is based upon the frequency with which one or more of the candidate activities occurs. 
     
     
       52. The method of claim 51 wherein the candidate activity that occurs most frequently is selected as a monitored activity. 
     
     
       53. A computer readable medium containing data causing a computer system to transition from a first state in which execution of a program is enabled to a second state in which execution of the program is suspended by monitoring regular occurrences of a monitored activity of an executing program by performing the steps of: monitoring regular occurrences of the monitored activity of the executing program;   calculating a running average of the period between successive occurrences of the monitored activity;   when the period deviates from the running average by more than a selected tolerance value a number of times exceeding a preselected limit, restarting the calculation of the running average; and   when the period deviates from the running average by more than a selected tolerance value a number of times not exceeding the preselected limit, placing the computer system in the second state in which execution of the program is suspended.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.