Abstract:
The invention is a method and apparatus for the thermal management of computers. The method features determining a temperature of a predetermined location in the computer, reading indirect inputs of the computer, determining desired states of cooling options based on the temperature and the indirect inputs, and placing the cooling options in their desired states. To determine the desired states of the cooling options, an index is formed based on the indirect inputs; and the index indicates to which of a plurality of tables of desired states of the cooling options to refer. Alternatively, the desired states of the cooling options are determined by adjusting the value of the temperature input based on the indirect inputs; the desired states of the cooling options also are dependent on the adjusted value of the measured temperature.

Description:
BACKGROUND OF THE INVENTION 
     This invention relates to thermal management of personal computers, and, more particularly, to thermal management of desktop and notebook computers. 
     Conventional thermal management of personal computers generally involves the use of a single thermistor physically attached to a &#34;worst case&#34; location in the computer. When the temperature passes fixed temperature trip-points, the management system initiates a fixed response such as turning on or off a fan. 
     The thermal profile of a computer depends on its electrical and mechanical setup. The actual location of a hot spot will change as the configuration of the computer changes. For example, a computer can run hotter in a section depending upon whether AC or battery power is used as the power source. 
     SUMMARY OF THE INVENTION 
     While multiple thermistors can be used to monitor all possible hot spots of a computer, this greatly complicates the circuitry. This invention addresses compensating for multiple, characterized configurations by polling the system for indirect causes of temperature profile changes. The thermal management system takes into account not only direct thermal readings but other indirect measures of the thermal condition of the computer, for example, whether the computer is under AC or battery power, to optimally respond to a rise in temperature inside a computer, allowing the response to be customized to the operating condition of the computer. 
     In general, the invention relates to a method of thermal management of a computer. The method features determining a temperature of a predetermined location in the computer, reading at least one indirect input of the computer, and determining a desired state of at least one cooling option, for example, a fan, based on the determined temperature and the indirect input. 
     In particular embodiments of the invention, the method includes placing cooling options in desired states. To determine the desired states of the cooling options, an index is formed based on the indirect inputs and the index indicates to which of a plurality of tables of desired states of the cooling options to refer. The tables include temperature ranges for the determined temperature, and the desired states of the cooling options in each table are dependent on the temperature ranges. 
     In one preferred illustrated embodiment, the step of determining the desired states of the cooling options features adjusting the value of the temperature input based on the indirect inputs; the desired states of the cooling options are dependent on the adjusted value of the temperature. 
     The indirect inputs include whether the computer is under AC or battery power, whether the computer is docked to a docking station, whether a display screen is closed, whether an option card is installed, whether a device is present which requires lower ambient temperature or generates disproportionate heat, whether an audio function is running, which processor is installed in the computer, a user-setable bit that can customize cooling requirements, a status of a charge of a battery, a video mode of the computer, whether a video monitor is being used, whether there has been a sudden and drastic increase in temperature, whether a hard drive or a floppy drive is being spun up or accessed, whether a battery is being charged, and whether the computer is in a power conservation mode. 
     The cooling options include a fan, a frequency setting of a processor, a complete or partial standby condition of the processor, a time-out of a peripheral, a frequency setting of a peripheral, and turning off the computer. 
     According to another aspect of the invention, an apparatus for thermal management of a computer includes a processor, a device for measuring temperature, an output from the device being communicated to the processor, at least one cooling option, an output from the processor controlling the at least one cooling option, and at least one indirect input related to a mode of the computer being communicated to the processor, the at least one indirect input affecting the output from the processor to the cooling resource. 
     Advantages of the thermal management system include the ability to use multiple cooling options and to adjust the order of implementing the cooling options depending upon the operating condition of the computer. For example, since the fan itself requires a significant amount of power, it can be advantageous to slow down the CPU before activating the fan while on battery power, but request full CPU power with the fan activated while under AC power. Additionally, the system accurately monitors the thermal profile of the computer enabling the advantageous implementation of cooling options even when the &#34;worst case&#34; location in the computer is within acceptable temperature limits. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     Other objects, features and advantages of the invention will be apparent from the following description taken together with the drawings in which: 
     FIG. 1 is a schematic block diagram of a thermal management system; 
     FIG. 2 is a flow chart of a thermal management process; 
     FIG. 3 is an index table in accordance with the invention; 
     FIG. 4 is an output response table in accordance with the invention; 
     FIG. 5 is a flow chart of an alternative thermal management process; and 
     FIGS. 6 and 7 are output response tables associated with the process of FIG. 5. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     Referring to FIG. 1, a thermal management system 10 includes a CPU 12, generally the computer processor, with a variable speed input clock 14, a thermistor 16, a variable speed fan 18 under control of CPU 12, and indirect inputs 20 readable by CPU 12. By considering the status of indirect inputs 20, computer configurations which result in the &#34;worst case&#34; temperature being at a location other than the location of thermistor 16 can be recognized. The status of indirect inputs 20 and the temperature reading, provided using thermistor 16, are used to coordinate the response of a number of cooling options 22 (which includes fan 18). Since operation of fan 18 compromises battery performance and noise level, it is advantageous to employ other cooling options in addition to or in place of fan 18. 
     Thermal management system 10 includes a peripheral chip 24, for example, an 8 bit Intel 8051 microcontroller, having an analog to digital converter to read the temperature indicated by the voltage across thermistor 16 and a variable pulse width modulated clock to set the speed of fan 18. Low and high voltage comparators 17 and 19 detect when the measured temperature drops below a predetermined low temperature or rises above a predetermined high temperature. An operational amplifier 21 is used as a buffer to prevent the comparators from affecting thermistor 16. A variable duty-width pulse trigger output 23 from chip 24 provides the reference voltage to comparators 17 and 19. The reference voltage sets the predetermined low and high temperature &#34;trip points&#34;. Trigger output 23 at a frequency of about 100 kHz is adjustable over 256 levels of pulse width, from 0% to 100% at 0.4% increments, to adjust the reference voltage and thus the trip points. Trigger output 23 is filtered with a resistor/capacitor circuit 25 to provide a proportional DC voltage to the comparators. 
     The output from comparators 17 and 19 signals chip 24 when the temperature reading is outside the expected range. Chip 24 then sends an interrupt alarm to CPU 12 over a line 25. Indirect inputs 20 are read over the CPU&#39;s data and control bus 27. Cooling options are typically turned on and off through CPU I/O ports accessible from CPU 12 over lines 29. Fan 18 may be directly controlled by chip 24 either by voltage control or preferably by pulse width modulation with a frequency of about 30 to 60 Hz. 
     Examples of indirect inputs 20 are: 
     1. Whether the unit is under AC power or battery power. Under battery power the internal AC/DC power adapter is inactive and dissipates no power. Under AC power, a dual-voltage internal AC adapter may run cooler at 115 volts instead of at 230 volts. 
     2. Whether the unit is docked to a docking station. There may be some physical restriction by the docking base that affects the cooling of the system and therefore the thermal profile inside the unit. 
     3. Whether the display screen is closed. Closing the lid affects the thermal profile, for example, by restricting airflow inside the unit. 
     4. Whether any option cards (e.g., PCMCIA or internal modem, etc.) are installed. Option cards affect the thermal profile by impeding airflow. Option cards are generally detectable through data buses leading to the central processor. 
     5. Whether any device is present that requires lower ambient temperature or generates disproportionate heat. For example, a very large hard drive should be kept cooler than a small one, an optional processor may become unreliable at the otherwise standard operating temperature, and a specific type of PCMCIA card can dissipate more power than normal. 
     6. Whether the application is performing an audio function whereby fan noise would be annoying. 
     7. Which processor is installed in the computer. 
     8. The state of a user-setable bit that can customize cooling requirements. For example, the user may have the option of delaying fan turn-on after slowing down the processor frequency. 
     9. The state of the battery charge may be considered, so that cooling options that do not require power can be implemented first when battery charge is low. 
     10. The video mode and whether a video monitor is attached. For example, higher resolution, higher performance video modes generally cause the video controller chip to generate more heat. 
     11. Whether there has been a sudden and drastic increase in temperature. 
     12. Whether the hard drive or floppy drive is being &#34;spun up&#34; or accessed. The system may throttle the processor clock reducing the impulse power an internal power supply must provide thus reducing the overall internal heat dissipation. 
     13. Whether the system is charging a battery. Fast-charging may cause disproportionate heating in the power-supply area of the system. 
     14. Whether the system is in power conservation mode in which case the condition of certain thermal cooling options, such as peripheral time outs, may already be effected. 
     Examples of options 22 for thermal cooling include: 
     1. Fan 18 may be turned on and its speed changed. 
     2. The frequency of CPU 12 may be lowered so that it uses less power. 
     3. CPU 12 may be put into a complete or partial standby condition. Complete standby occurs when CPU 12 and all its peripherals are inactive, and partial standby occurs when the peripherals are inactive while CPU 12 is kept active (for example, turning off the hard drive). 
     4. Any peripheral which relies on timed inactivity for partial standby may have its time-out modified. 
     5. The system may be completely turned off. 
     6. CPU 12 may direct any peripheral to operate at a lower frequency so that it uses less power, for example, the frequency of the graphics controller or the system bus may be reduced. 
     7. A function, for example, fast charging of a battery, may be turned off. 
     A particular implementation of the thermal management system uses look-up tables (such as those illustrated in FIG. 4) to determine a desired response. The temperature determined by monitoring thermistor 16 and the status of each input 20 affect the choice and desired state of cooling options 22. In operation, referring to FIG. 2, in a first embodiment of the invention, thermistor 16 is periodically polled at 49 to determine its temperature (alternatively a thermostat may send an alarm to indicate a temperature change). If the temperature changes, at 50, a number N of indirect inputs 20 are polled at 52 (N=3 in the following example) and an index is formed at 54 (as described below). An output response table corresponding to the formed index is referred to at 56 to determine the desired state of cooling options 22. The cooling options are then placed in these desired states at 58. 
     To cover all possible combinations of inputs N, there are 2 N  output response tables. As shown in FIG. 4, the desired state of each cooling option in an output response table 99 is dependent upon the temperature reading from the thermistor. The response tables also give the next high temperature &#34;trip point&#34; at 60 for signaling a temperature change at 50 (the low temperature trip point tracks the high temperature trip point and is 5° C. less than the high temperature trip point). The input temperature ranges and next trip points in each output response table can be different. 
     Referring to FIGS. 3 and 4, an example of an implementation of the thermal management system utilizing three indirect inputs 32, 34 and 36 is shown. In the example, the following readings and actions are assumed to take place (referring to the steps in FIG. 2). 
     EXAMPLE 
     Step 49. Read present temperature. 70° C. (a temperature change at 50) 
     Step 52. Read indirect inputs 32, 34 and 36. 
     i. Is the power conservation enabled? NO 
     ii. Is a battery being charged? YES 
     iii. Is the CPU lid shut or is there another air restriction that would change cooling profile? YES 
     Step 54. Form an index 38. 4 (index corresponding to input states 39) 
     Step 56. Look-up the output response table corresponding to the index value (FIG. 4). 
     Step 58. Use the present temperature of 70° C. to locate the desired cooling operation 40 in the output response table. 
     Step 60. Use the present temperature to locate the next temperature trip points 42. 72° C. (high temperature trip point) 67° C. (low temperature trip point) 
     If the temperature goes above the new high temperature trip point of 72° C. and the status of inputs 20 does not change, the output response table in FIG. 4 is again referred to. The fan speed is set at 75%, the CPU is set to 12% of full speed, battery fast charging is disabled, and peripheral inactivity time before turning off is reduced to 2 minutes. 
     If the temperature goes below the new low temperature trip point of 67° C. and the status of inputs 20 does not change, the output response table in FIG. 4 is again referred to. The fan is turned off, the CPU is set to 50% of full speed, battery fast charging is enabled, and peripheral inactivity time before turning off is set to 10 minutes. 
     In use, there is one index table 97 (FIG. 3), stored in the CPU&#39;s (RAM or disk) memory, which includes entries for all N indirect inputs 20, and 2 N  output response tables 99 (FIG. 4) in the CPU&#39;s (RAM or disk) memory. Depending on the status of inputs 20, index table 97 points to a particular output response table. Each output response table 99 is formulated to provide optimal cooling for a measured temperature and for the conditions of the indirect inputs 20. 
     The parameters (output results) in the output response tables 99 are determined experimentally and/or empirically. Since the conditions of indirect inputs 20 affect the thermal profile of the computer, a thermistor located at a &#34;worst case&#34; position may give a reading within acceptable limits while components in other areas of the computer are operating at temperatures outside their acceptable limits. For example, with the thermistor located at CPU 12, if the computer lid is shut and an internal battery is fast charging, the hottest location in the computer is likely to be at the power supply. 
     Since the actual &#34;worst case&#34; location may not be the location of the thermistor, the actual &#34;worst case&#34; location is determined experimentally. While recording temperatures at the locations of heat sensitive components, the states of indirect inputs 20 are manipulated and the temperature as read from thermistor 16 is noted. Under each condition of indirect inputs 20, the optimal cooling parameters of cooling options 22 are determined based on the temperature measurements. For example, with the computer lid closed and a battery fast charging, the thermistor reading may be within its acceptable limit but the temperature of the power supply is beyond its acceptable limit. Depending upon the actual reading of the thermistor, the optimal cooling parameters for this condition are to turn the fan full on and stop the battery charging. During use, given the status of indirect inputs 20 and the reading of thermistor 16, the thermal profile of the computer is effectively known and optimal cooling may be implemented. 
     Referring now to FIG. 5, in another embodiment of the invention, the thermal management system determines the desired states of the cooling options by modifying the measured temperature according to the status of each indirect input 20. Unlike the process described above, each indirect input 20 is treated independently. 
     Initially, at power-on of the computer, a high temperature threshold T h  is set to, for example, 70° C. at 44 and a low temperature threshold T L  is disabled at 45. If the system is under AC power and is fast-charging a battery at 46, fan 18 is set to slow speed at 47. Loop 70 is then entered. If the measured temperature T is 69° C. or less at 64, all of the cooling options are turned off and the low temperature threshold is disabled at 74. The routine remains in loop 70 until the measured temperature T exceeds the high threshold. If the measured temperature T exceeds the high threshold at 72, the low-temperature boundary threshold is enabled at 5° C. under the high threshold at 73 and the measured temperature is adjusted to become a working temperature by reading indirect inputs 20. The process continues as follows: 
     Check at 76 if the computer is under AC power (with internal AC to DC converter). If so, add 2° C. to measured temperature to form a new working temperature at 78. 
     Check at 80 if the computer is fast-charging a battery. If so, add another 2° C. to the working temperature at 82. 
     Check at 84 if the computer is under AC power and the line voltage is 220 volts or higher. If so, add 3° C. to working temperature at 86. 
     Check at 92 if there are any obstructions to normal airflow (lid closed, unit docked, or PCMCIA cards in the slots)? If so, subtract 3° C. from the working temperature at 94. 
     Check at 96 if there are any peripherals or components that require especially low temperature for reliable operation? If so, add &#34;x&#34; degrees to the working temperature at 98 (depending on the sensitivity of the component). 
     The cooling options are implemented as follows: 
     1. If the working temperature is higher than 95° C. at 102, turn the unit off at 104. 
     2. If the working temperature is higher than 90° C. at 106, put the unit into the full &#34;standby&#34; mode at 108. 
     3. If the working temperature is higher than 85° C. and a battery is &#34;fast charging&#34; at 110, turn off the fast charge to the battery at 112. 
     4. If the working temperature is less than 90° C. and the battery is not fast charging, the table illustrated at FIG. 6 is used at 118 to determine the state of the cooling options if any one of the following conditions are met at 113 1) the computer is in power conservation mode, 2) the battery voltage is very low, or 3) an audio application is running. Otherwise the table in FIG. 7 is used at 116. The temperature input in FIGS. 6 and 7 is the working temperature determined according to FIG. 5. 
     New thermal high and low thresholds are then set at 120 as follows: 
     1. If the measured temperature is greater than the previous measured temperature at 119, i.e., if the routine exits loop 70 by function 72, add 3° C. to the &#34;high&#34; temperature threshold. 
     2. If the measured temperature is less than the previous measured temperature at 119, i.e., if the routine exits loop 70 by function 62, add 3° C. to the &#34;low&#34; temperature threshold. 
     After the temperature thresholds are adjusted, loop 70 is reentered. If the measured temperature goes above the high temperature threshold at 72, the routine implements further cooling options. If the measured temperature goes below the low temperature threshold at 62, the routine deactivates the cooling options in the reverse order. 
     The selection and use of the cooling options in FIG. 6 depend upon the power needed and the noise created by each cooling option. For example, as fan use consumes extra power and creates noise, it is activated only under the conditions of a working temperature above 82° C. The selection and use of the cooling options identified in FIG. 7 depend upon the effectiveness of the cooling options and the effect of the cooling option on the operating parameters of the computer. For example, as fan use is highly effective and does not affect the operating parameters of the computer, it is implemented as a first defense against a rising working temperature. 
     It is noted that an obstruction to normal airflow results in a lowering of working temperature 94. This occurs because the thermistor 16, under conditions of convective cooling reflects a temperature which is lower than the actual temperature of the worst case chip location but, under conditions that limit air flow, the thermistor reading is closer to the actual chip temperature. 
     Additions, subtractions and other modifications of the illustrated embodiments of the invention will be apparent to those practiced in the art and are within the scope of the following claims.