CONFIGURABLE THERMAL AND POWER MANAGEMENT FOR PORTABLE COMPUTERS
Improved approaches to providing thermal and power management for a computing device are disclosed. These approaches facilitate intelligent control of a processor's clock frequency and/or a fan's speed so as to provide thermal and/or power management for the computing device.
This application is a continuation application of U.S. application Ser. No. 12/321,798, filed Jan. 25, 2009, which is a continuation application of U.S. application Ser. No. 11/821,142, filed Jun. 22, 2007, which is a divisional application of U.S. application Ser. No. 11/654,337, filed Jan. 17, 2007, which is a continuation application of U.S. application Ser. No. 10/277,630, filed Oct. 22, 2002, now U.S. Pat. No. 7,167,993, which is a continuation application of U.S. application Ser. No. 09/782,680, filed Feb. 12, 2001, now U.S. Pat. No. 6,487,668, which is a continuation application of U.S. application Ser. No. 09/351,051 filed on Jul. 10, 1999, now U.S. Pat. No. 6,216,235, which is a continuation application of U.S. application Ser. No. 08/914,299 filed on Aug. 18, 1997, now U.S. Pat. No. 5,974,557, which is a continuation application of U.S. application Ser. No. 08/262,754 filed Jun. 20, 1994, now U.S. Pat. No. 5,752,011, the disclosures of all of which are incorporated herein by reference.
BACKGROUND OF THE INVENTION1. Field of the Invention
The present invention relates to a computing device and, more particularly, to a method and apparatus for controlling a processor's clock frequency.
2. Description of the Related Art
It is known that if no user activity has occurred for a period of time that a portable computer can be placed in a suspend or sleep mode. It is also known to suspend or slow a computer's processor (e.g., microprocessor, CPU) when the processor is not actively processing. The following patents and patent publications are representative of the current state of the art:
U.S. Pat. No. 5,201,059 discloses a sleep mode which is activated when control is given to BIOS or alternatively by incorporating some statistical analysis of the frequency of BIOS calls. In this patent, the sleep mode either stops the clock or slows it to 4 MHz.
U.S. Pat. No. 5,167,024 discloses a power management system for a laptop computer. The power management system operates to disconnect power sources and/or clock signals to various peripheral devices to conserve battery power. The slow mode is entered into when no activity has been detected for a predetermined period of time.
U.S. Pat. No. 5,218,704 discloses a technique for power conservation based on real-time sampling of CPU activity. The activity is sampled during interrupts and when it determines that the CPU may rest, a sleep clock is supplied to the CPU. The detection of an interrupt restores the clock to the fast rate prior to processing the interrupt.
U.S. Pat. No. 5,239,652 discloses a technique for power consumption which disconnects the CPU from the power supply when control logic determines the CPU is not actively processing. Thereafter, the CPU is periodically powered-up to perform housekeeping chores as well as to determine if normal processing should be resumed.
European patent publication EP-0474963 discloses a sleep mode controller which lowers the CPU clock speed when no input/output operation (when keyboard control routine of BIOS executed no input key data in key buffer, or when CPU is idle and no input key data in the key buffer) is performed. The system uses a clock generator circuit which produces the low clock (4 MHz), the high clock (32 MHz) and a slightly slower high clock (16 MHz). A keyboard controller is used to determine which of the high clocks is used, with selection being made by the computer user. The sleep mode controller is disabled if the AC adapter is connected.
U.S. Pat. No. 5,230,055 discloses a portable computer wherein the computer is made inoperable when ambient temperature or humidity become too high. Here, ambient temperature and humidity are periodically monitored.
European patent publication EP-0381021 discloses a power saving system for a personal computer. The system operates to allow or stop power to be supplied to an oscillator based on control data set to a control register via a keyboard or software.
U.S. Pat. No. 5,021,679 discloses a power system for a portable computer wherein the supply voltage is varied depending on the current being supplied to the computer by the power system. Further, a variable-frequency clock is provided which varies its frequency based on the supply voltage being produced.
External clocks have been used to provide a computer system with faster clocks. Here, the faster external clock is substituted for the internal clock of the computer system. U.S. Pat. No. 5,134,703 is illustrative of an external clock unit which supplies a faster clock to a computer without requiring any hardware changes within the computer.
The problem with all the prior solutions to energy conservation is that the processors can still overheat. In particular, during prolonged processing or activity by a computer's processor, the processor will not enter its sleep mode (if any) and as a result the processor will become hot and require extensive means to cool the processor to prevent overheating and eventual failure of the processor. Overheating and failure of the processor can also occur when the computer is used in particularly hot environmental temperatures, the computer's cooling fan fails, or when cooling of the processor is otherwise inadequate.
Another problem is that with portable computers, manufacturers have to either use a lower clock frequency (lower than would be used in a comparable desk top computer) for processing or provide a fan for cooling. A lower clock frequency is not satisfactory as users want maximum processing power just as they get with a desk top computer. Requiring a portable computer to use a fan for cooling is also unsatisfactory because it consumes battery energy.
Thus, there is a need for a solution to the above problems which enables a computing device to maximize its processing speed while, at the same time, preventing overheating.
SUMMARYBroadly speaking, the invention relates to novel techniques for providing thermal and power management for a computing device. These techniques facilitate intelligent control of a processor's clock frequency and/or a fan's speed so as to provide thermal and/or power management for the computing device.
As a method for managing operation of a computing device (e.g., portable computer), where the computing device includes at least a processor and a fan, the fan being operable to cool at least the processor, one embodiment can, for example, include at least: configuring the portable computer for one of a plurality of different power management configurations; monitoring a temperature of the processor; controlling a speed of the fan based on the configured power management configuration for the portable computer and based on the monitored temperature of the processor; and controlling operational performance of the processor based on the configured power management configuration for the portable computer configured and based on the monitored temperature of the processor.
Other aspects and advantages of the invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.
The present invention will be readily understood by the following detailed description in conjunction with the accompanying drawings, wherein like reference numerals designate like structural elements, and in which:
The invention provides novel techniques for controlling a processor's clock frequency so as to prevent overheating. In addition to preventing overheating, the invention attempts to maximize the processing speed of the processor. The invention also operates to conserve the amount of energy consumed by the processor. Preventing the processor from overheating is important because when a processor overheats it no longer operates properly. Conservation of energy, although of general importance for all computing devices, is particularly important for portable computing devices.
The invention monitors a processor's activity and its temperature. When there is no activity for the processor, a slow clock frequency is used, thereby saving power and lowering the thermal heat produced by the processor. On the other hand, when there is activity for the processor, a fast clock frequency is used. However, when prolonged activity (i.e., sustained fast clock frequency) causes the processor's temperature to become dangerously high for proper operation, the clock frequency is reduced so as to maintain processing speed at a reduced speed while preventing overheating.
Embodiments of the invention are discussed below with reference to
The temperature signal 6 is supplied to a voltage-controlled oscillator (VCO) 8. The VCO 8 produces a clock signal 10 which is supplied to a clock input of the microprocessor 2. The VCO 8 operates to produce different frequencies for the clock signal 10 depending on the value of the temperature signal. In this embodiment, the temperature signal 6 is preferably an analog voltage signal and the VCO 8 produces the clock signal 10 based on the value of the analog voltage signal. For example, the temperature signal could be a voltage ranging from zero to five volts. In response to the temperature signal 6, the VCO 8 could produce the clock signal with frequencies ranging from 100 MHz to 1 MHz. The frequency range is a design choice selected in accordance with the specific microprocessor being utilized. VCO's are well known and therefore are not further described.
The VCO controller 16 receives the activity signal 14 and the temperature signal 6. In response to these signals, the VCO controller 16 produces the control signal 18 which controls the VCO 8. The control signal 18 may be analog or digital depending on the design of the VCO 8. The basic operation of the VCO controller 16 is to cause the VCO 8 to produce the clock signal 10 for the microprocessor 2 in an intelligent manner so as to conserve energy and prevent overheating. Namely, if the activity detector 12 indicates that no processing is needed at a given point in time, then regardless of the temperature detected by the temperature sensor 4, the VCO controller 16 will cause the VCO 8 to produce a sleep (or slow) clock. The sleep clock has a frequency near the minimum frequency (fMIN). On the other hand, if the activity detector 12 indicates that processing is needed at this point in time, then the VCO controller 16 will cause the VCO 8 to produce a fast clock. The fast clock is the temperature-regulated maximum frequency such as discussed in
The second embodiment is particularly advantageous for portable computing devices because it conserves battery life by using a sleep clock when no processing is needed. However, even in the case of prolonged processing, the embodiment prevents overheating.
The clock regulation unit 20 receives an input clock from an oscillator 22 and produces an output clock which is used by the microprocessor 2. The clock regulation unit 20 includes a temperature sensor 4, a divider 24, a first AND gate 26, a second AND gate 28, an inverter 30 and an OR gate 32. The temperature sensor 4 is as previously described. The divider 24 divides the input clock (fast clock) from the oscillator 22 to produce a sleep (or slow) clock. For example, if the oscillator 22 is a 100 MHz fixed-frequency oscillator and the divider 24 divides by 100, then the sleep clock would be 1 MHz.
In this embodiment, the temperature sensor 4 produces a digital output. It is assumed that the digital output is normally “0”, but when the microprocessor 2 becomes “hot”, the digital output becomes “1”. The digital output of the temperature sensor 4 together with the logic gates 26-32 operate to select either the fast clock or the sleep clock as the output clock which is used by the microprocessor 2. In particular, when the microprocessor 2 is not “hot”, AND gate 26 is inactivated and AND gate 28 is activated by inverter 30. Hence, the output clock is the fast clock via AND gate 28 and OR gate 32. On the other hand, when the microprocessor 2 is “hot”, AND gate 26 is activated and AND gate 28 is inactivated. Accordingly, in this case, the output clock is the sleep (or slow) clock via AND gate 26 and OR gate 32.
As with the third embodiment, the clock regulation unit 20 for the fourth embodiment receives the input clock from the oscillator 22 and produces the output clock which is used by the microprocessor 2. The clock regulation unit 20 includes the temperature sensor 4, the divider 24, the first AND gate 26, the second AND gate 28, and the OR gate 32 as described above with reference to
The digital output of the temperature sensor 4 together with the activity signal from the activity detector 12 and the logic gates 26, 28, 32, 34, 36 and 38 operate to select either the fast clock or the sleep clock. In particular, when the microprocessor 2 is not “hot” and activity is present, the AND gate 36 is activated by the inverter 34 and the activity signal. The output of AND gate 36 then activates AND gate 28 and inverter 38 inactivates AND gate 26. Hence, the output clock is the fast clock via AND gate 28 and OR gate 32. On the other hand, when the microprocessor 2 is “hot”, the AND gate 36 is inactivated by the inverter 34 regardless of the activity signal. The output of AND gate 36 inactivates AND gate 28, and inverter 38 activates the AND gate 26. In this case, the output clock is the sleep clock via AND gate 26 and OR gate 32.
The activity detector 48 receives a plurality of activity inputs ACT1, . . . , ACTn. For example, the activity inputs notify the activity detector 48 whether or not activity exists. Each of the activity inputs may, for example, indicate an interrupt, keyboard activity, modem line activity, I/O port activity, or processor activity. As an example,
The following Table I illustrates the selection of one of the three clocks by the selector 44 based on the first select input IN1 and the second select input IN2.
Note that when no activity is detected by the activity detector 48, then the sleep clock is output. However, when activity is detected, then the normal clock is output if the chip temperature is “hot” and the fast clock is output if the chip temperature is not “hot”. Like previous embodiments, this embodiment prevents overheating and conserves energy.
Many alternatives can be made to the third, fourth and fifth embodiments discussed above. For example, additional clocks with different clock frequencies could be provided and selected for different temperature ranges to provide a more gradual decrease in frequency. However, if a microprocessor has sufficient thermal heat dissipation, then even the embodiment with only two different clock frequencies (fast and sleep) may provide reasonable processing speeds even when the microprocessor is getting hot because the switching between the clocks would be quite fast as the response of the temperature sensor 4 is very rapid because it is integrated with the microprocessor. Further, although
Additionally,
In the case of a desk-top computing device, it is desirable to activate the fan 60 just prior to the temperature where the fast clock would be regulated downward because of high chip temperature. On the other hand, in the case of a portable computing device, it is desirable to attempt to limit the use of the fan 60 as much as possible by allowing the fast clock to be gradually reduced with increasing temperature before utilizing the fan 60. For example, if the maximum frequency of the fast clock is 100 MHz, the fan 60 could be activated in the desk-top case before the frequency would be regulated (e.g., attempts to maintain 100 MHz). This would eliminate or delay the reduction in the frequency of the fast clock. In the portable case, the fan 60 could be activated after the frequency of the fast clock is already decreased to 25 MHz. The fan 60 would then only be used when necessary to insure reasonable processing power and even then at the lowest effective speed, thereby saving battery energy to the extent possible.
Although not shown but described with reference to
Prior embodiments operate to decrease the clock frequency of the clock signals supplied to a microprocessor to prevent overheating and to conserve energy.
In this embodiment, the clock control unit 20 includes a first divider 62 which divides the input clock to produce a sleep clock, and a second divider which divides the input clock to produce a fast clock. Because the input clock serves as the overdrive clock, the input clock has a clock frequency that is faster than that necessary for sufficient performance and responsiveness in most cases. The clock control unit 20 also includes a selector 66, an activity detector 68, and a temperature sensor 4. The selector 66 operates to select one of the sleep, fast or overdrive clocks based on select inputs (IN1, IN2, IN3) it receives from the activity detector 68 and the temperature sensor 4. More particularly, the activity detector 68 receives activity signals ACT1, . . . , ACTn which cause the activity detector 68 to generate a burst activity signal and a normal activity signal. Certain of the activity signals ACT trigger the burst activity signal and other activity signals trigger the normal activity signal. The temperature sensor 4 is integral with the microprocessor 2 and produces a digital temperature signal which indicates whether or not the microprocessor 2 is “hot”.
The following Table II illustrates the selection of one of the three clocks by the selector 66 based on the first select input IN1, the second select input IN2, and the third select input.
Note that when no activity (either burst or normal) is detected by the activity detector 68, then the sleep clock is output. However, when burst activity is detected, then the overdrive clock is output if the chip temperature is not “hot” and either the fast clock or the sleep clock is output if the chip temperature is “hot”. The determination of which of the fast or sleep clocks to output in this situation is a design choice depending on the ability of the computing system to dissipate heat. In fact, it may be preferred to make the selection more sophisticated in this case so that selector can make the decision using additional temperature information such as signals indicating particular temperature ranges or rate at which temperature is rising. When only normal activity is detected, then the fast clock is output if the chip temperature is not “hot” and the sleep clock is output if the chip temperature is “hot”. As a modification, the second divider 64 could be replaced with a VCO thereby using a temperature-regulated fast clock.
Like previous embodiments, this embodiment prevents overheating and conserves energy. The advantage of this embodiment is that processing will appear more uniform or regular to a user.
There are certain times during normal execution of a program, the computer is caused to execute operations which are beyond or unrequested by the program being executed. Such unrequested operations include interrupt processing, and data transfer to cache memory following a cache miss. Using the overdrive clock in these types of situations is advantageous because such will substantially lessen any delay induced by these unrequested operations. A computer user then perceives that the computer's responsiveness is more regular and uniform. For example, when a cache miss occurs an instruction currently being in process is not allowed to complete until the appropriate data block is loaded into the cache. The loading of the cache following a cache miss causes the microprocessor to execute many operations for memory management that were not requested by the computer program or the user, thereby delaying the execution of the instruction. However, because the invention performs such unrequested operations at higher speeds (overdrive clock), the impact of having to perform the extra unrequested operations is substantially lessened and hopefully invisible.
In fact, a particular computer instruction could be used to indirectly select the desired clock frequency for the instruction. This could be useful for instructions that require more intensive processing than do normal instructions. An example of intensive processing is complex floating point computations. Here, the microprocessor would indicate to the activity detector that the overdrive clock is to be used if the chip temperature is not too “hot”.
Yet another embodiment would be to alter processing frequency for extremely cold situations. Namely, if the temperature sensor indicates that the chip temperature (could also use ambient temperature) is less than a predetermined minimum temperature, then the clock frequency could by set regardless of activity to its maximum value to thereby cause the generation of as much heat as possible so that the computing device could operate correctly even in extremely cold conditions. Any cooling fan of the computing device would also be shut-off using a fan controller such as shown in
The many features and advantages of the present invention are apparent from the written description and thus it is intended by the appended claims to cover all such features and advantages of the invention. Further, since numerous modifications and changes will readily occur to those skilled in the art, it is not desired to limit the invention to the exact construction and operation as illustrated and described. Hence, all suitable modifications and equivalents may be resorted to as falling within the scope of the invention.
Claims
1. A method for managing operation of a computing apparatus, the computing apparatus including at least a microprocessor and a fan, the fan being operable to cool at least the microprocessor, said method comprising:
- configuring the computing apparatus for one of a plurality of different power management configurations;
- monitoring a temperature of the microprocessor;
- controlling a speed of the fan based on the configured power management configuration for the computing apparatus and based on the monitored temperature of the microprocessor; and
- controlling an operational performance of the microprocessor based on the configured power management configuration for the computing apparatus and based on the monitored temperature of the microprocessor,
- wherein said controlling the speed of the fan comprises: activating the fan to a first speed based on the configured power management configuration when the monitored temperature indicates that primary thermal management is required; and subsequently increasing the speed of the fan to a second speed based on the configured power management configuration when the monitored temperature indicates that primary thermal management is still required even after the fan has been activated at the first speed, the second speed being greater than the first speed.
2. A method as recited in claim 1, wherein the method comprises:
- thereafter limiting operational performance of the microprocessor when the monitored temperature indicates that supplemental thermal management is required even after the fan has been activated to the first speed.
3. A method as recited in claim 1, wherein the method comprises:
- thereafter reducing operational performance of the microprocessor when the monitored temperature indicates that supplemental thermal management is required even after the fan has been increased to the second speed.
4. A method as recited in claim 1, wherein the microprocessor can enter a reduced power mode, and
- wherein said method further comprises deactivating the fan when the microprocessor enters the reduced power mode.
5. A method as recited in claim 1,
- wherein said method further comprises determining an activity indication of the microprocessor, and
- wherein the operational performance of the microprocessor is also based on the activity indication of the microprocessor.
6. A method for managing operation of a computing apparatus, the computing apparatus including at least a microprocessor and a fan, the fan being operable to cool at least the microprocessor, said method comprising:
- configuring the computing apparatus for one of a plurality of different power management configurations;
- monitoring a temperature of the microprocessor;
- controlling a speed of the fan based on the configured power management configuration for the computing apparatus and based on the monitored temperature of the microprocessor; and
- controlling an operational performance of the microprocessor based on the configured power management configuration for the computing apparatus and based on the monitored temperature of the microprocessor,
- wherein said controlling the speed of the fan comprises: activating the fan to a first speed, and subsequently increasing the speed of the fan to a second speed based on the configured power management configuration in view of the monitored temperature, so as to provide a first thermal management, and
- wherein said controlling the operational performance of the microprocessor comprises: limiting operational performance of the microprocessor when at least one subsequent monitored temperature indicates that a second thermal management is required even after the fan has been activated at the first speed and increased to the second speed.
7. A method as recited in claim 6, wherein the microprocessor can enter a reduced power mode, and
- wherein said method further comprises deactivating the fan when the microprocessor enters the reduced power mode.
8. A method as recited in claim 6,
- wherein said method further comprises determining an activity indication of the microprocessor, and
- wherein the operational performance of the microprocessor is also based on the activity indication of the microprocessor.
9. A method as recited in claim 6, wherein the speed of the fan is controlled at least by pulse width modulation.
10. A method for managing operation of a portable computer, the portable computer including at least a processor and a fan, the fan being operable to cool at least the processor, said method comprising:
- configuring the portable computer for one of a plurality of different power management configurations;
- monitoring a temperature of the processor;
- controlling a speed of the fan based on the configured power management configuration for the portable computer and based on the monitored temperature of the processor; and
- controlling an operational performance of the processor based on the configured power management configuration for the portable computer and based on the monitored temperature of the processor,
- wherein said method comprises: monitoring activity of the processor;
- wherein said controlling the speed of the fan comprises: activating the fan when the monitored temperature and the monitored activity of the processor indicate that primary thermal management is required, and
- wherein said controlling of the operational performance of the processor comprises: reducing operational clock frequency of the processor when the monitored temperature and the monitored activity of the processor indicate that supplemental thermal management is required even after the fan has been activated for primary thermal management.
11. A method as recited in claim 10, wherein after the fan is initially activated, the speed of the fan is increased in a gradual manner as additional primary thermal management is needed.
12. A method as recited in claim 10, wherein said controlling the speed of the fan comprises:
- increasing the speed of the fan in a gradual manner to provide different levels of the primary thermal management.
13. A method as recited in claim 10, wherein said reducing the operational clock frequency of the processor reduces the operational clock frequency by an amount dependent on the monitored temperature and the monitored activity of the processor.
14. A method as recited in claim 10, wherein said reducing the operational clock frequency of the processor is performed in a gradual manner to provide different levels of the supplemental thermal management.
15. A method as recited in claim 10, wherein the fan is a variable-speed fan, and
- wherein said activating the fan causes the fan to operate at a speed that is dependent on the monitored temperature and the monitored activity of the processor.
16. A method as recited in claim 15, wherein when the fan is initially activated, the speed of the fan is relatively slow and the speed of the fan thereafter increases in a gradual manner when the temperature of the processor increases.
17. A method as recited in claim 10, wherein the fan is a variable-speed fan, and
- wherein the primary thermal management operates the fan at successively greater speeds to provide a plurality of different levels of the primary thermal management.
18. A method as recited in claim 17, wherein the level of the primary thermal management being performed is dependent on the monitored temperature and the monitored activity of the processor.
19. A method as recited in claim 10, wherein the supplemental thermal management reduces the operational clock frequency of the processor by successively greater amounts to provide a plurality of different levels of the supplemental thermal management.
20. A method as recited in claim 19, wherein the level of the supplemental thermal management being performed is dependent on the monitored temperature and the monitored activity of the processor.
21. A method for managing operation of a portable computer, the portable computer including at least a processor and a fan, the fan being operable to cool at least the processor, said method comprising:
- configuring the portable computer for one of a plurality of different power management configurations;
- monitoring a temperature of the processor;
- setting a speed of the fan based on the configured power management configuration for the portable computer and based on the monitored temperature of the processor;
- setting an operational performance of the processor based on the configured power management configuration for the portable computer and based on the monitored temperature of the processor; and
- comparing the monitored temperature of the processor with at least a first predetermined temperature and a second predetermined temperature, the second predetermined temperature being higher than the first predetermined temperature,
- wherein said setting the speed of the fan comprises: activating the fan when the monitored temperature of the processor exceeds the first predetermined temperature, and
- wherein said setting the operational performance of the processor comprises: reducing operational clock frequency of the processor when the monitored temperature of the processor exceeds the second predetermined temperature.
22. A method as recited in claim 21, wherein the fan provides primary thermal management and reduction in the operational clock frequency of the processor provides secondary thermal management.
23. A method as recited in claim 21, wherein said method further comprises:
- increasing the operational clock frequency of the processor when the monitored temperature of the processor drops substantially below the second predetermined temperature, provided that the operational clock frequency was previously reduced by said reducing.
24. A method as recited in claim 23, wherein said method further comprises:
- deactivating the fan when the monitored temperature of the processor drops below the first predetermined temperature, provided that the fan was previously activated by said activating.
Type: Application
Filed: Dec 26, 2012
Publication Date: May 9, 2013
Inventors: C. Douglass Thomas (Saratoga, CA), Alan E. Thomas (Ocean City, NJ)
Application Number: 13/727,433
International Classification: G06F 1/32 (20060101); G06F 1/20 (20060101); G06F 1/26 (20060101);