Computer system components, such as central processing units (CPUs), chipset, graphics cards, and hard drives, produce large amounts of heat during operation. This heat must be dissipated in order to keep these components within safe operating temperatures. Overheated components generally exhibit a shorter life-span and may also cause malfunction of the computer system.
The risk of overheating increases with increasing density of computer system components. In a typical blade server, a large number of heat generating blades may be closely placed in a single system enclosure. Limited open space in the system enclosure results in reduced air circulation and correspondingly reduced heat dissipation.
A computer-implemented method for controlling temperature of a computer system is disclosed. The method includes the steps of collecting thermal data from a first set of modules, calculating an initial fan speed, collecting thermal data from a second set of modules, and recalculating the fan speed to adjust cooling of modules to desired operating temperatures.
The detailed description will refer to the following drawings, wherein like numerals refer to like elements, and wherein:
Described herein is a method for monitoring and controlling temperature of a computer system having multiple modules and at least one cooling fan. As shown in
The thermal data includes all information relating to the thermal status of a module. Examples of thermal data include, but are not limited to, “virtual” and actual temperatures, thermal status expressed in relative terms, such as cold, warm and hot, heat generation rates, heat dissipation rates, and cooling needs expressed in terms of fan speed, such as a “virtual” fan reading. A “virtual” temperature is a temperature calculated based on one or more actual temperature readings. For example, the management processor on a module may provide a “virtual” temperature of the module based on the actual temperature reading from one or more temperature sensors in the module. Similarly, a “virtual” fan reading is a calculated fan reading for a fan that does not actually exist.
In one embodiment, the at least one cooling fan is a pulse-width modulation (PWM) fan. The first set of modules are modules that support a “virtual” PWM fan reading. A “virtual” PWM fan reading is an arbitrary “virtual” fan speed that is calculated by the management processor on a module that support such a reading based on the module's internal temperature. If the module actually had a fan, the real fan will be able to cool the module under its current load by running at the “virtual” fan speed. The second set of modules are modules that do not support a “virtual” PWM fan reading.
PWM fans are well known to those skilled in the art. The revolution speed of a PWM fan is controlled by a PWM control signal. The fan speed response to the PWM control signal is a continuous and monotonic function of the duty cycle of the signal, from 100 percent to the minimum specified revolutions per minute (RPM).
As used hereinafter, the term “PWM fan” or “fan” refers not only to fans attached to a computer chassis, but may also be intended to signify any other computer fans, such as CPU fans, graphics processing unit (GPU) fans, chipset fans, power supply unit (PSU) fans, hard disk drive (HDD) fans, or peripheral component interconnect (PCI) slot fans. PWM fans can be of various sizes and power. Common computer fans have sizes range between 40 mm to 120 mm in diameter.
Referring now to
The control program interacts with the VF modules through a intelligent platform management interface (IPMI), which operates independently of the operating system (OS) and allows administrators to manage the computer system remotely even in the absence of the OS or system management software, or even if the monitored system is not powered on. The IPMI also can function when the OS has started, and offers enhanced features when used with the system management software.
The control program then generates (220) a desired PWM value based on the “virtual” PWM fan readings from all the VF modules. In an embodiment, the desired PWM value is generated using a conversion table that converts “virtual” PWM fan readings from all the VF modules into a PWM fan speed. The conversion table is system specific and is produced experimentally for each computer system.
If the computer system has a single PWM cooling fan or multiple PWM cooling fans running at the same speed, the desired PWM value is the revolution speed of the cooling fan(s). If the computer system has multiple PWM cooling fans running at different speeds, the desired PWM value is calculated for each PWM fan in the computer chassis based on the fan placement and the needs of surrounding modules. In an embodiment, the computer system is divided into several operation zones and a PWM value is calculated for each zone.
Next, the control program collects (230) thermal data of each of the modules that do not support a “virtual” PWM fan reading. These modules are designated as “non-virtual PWM fan reading modules” or “NVF modules.” In an embodiment, the NVF modules are I/O modules. The thermal data of a NVF module can be provided in a variety of forms. In an embodiment, the control program has direct access to a temperature sensor on the NVF module and reads the actual temperature of the NVF module. In another embodiment, the control program does not have direct access to a temperature sensor but reads the NVF module's temperature status from a management processor on the NVF module. The control program may also interact with the VF modules through the IPMI.
The control program then compares the temperature status of each NVF module to the optimal operating temperature range of the NVF module. The optimal operating temperature range of a NVF module is typically provided by the management processor on the NVF module. Alternatively, the optimal operating temperature range of NVF modules are preprogrammed in the control program or stored in a database accessible to the control program of the computer system.
In one embodiment, a management processor on the NVF measures the temperature of the NVF module, compares the temperature of the NVF module to the optimal operating temperature range of the module, and simply presents to the control program a temperature indication relative to the optimal operating temperature, such as cool, normal, warm, hot, etc. For example, a “cool” status indicates that the module is not in use or has just been turned on. A “normal” status indicates that the module is operating within the optimal operation temperature range. A “warm” status indicates that the module's temperature is higher than the optimal operating temperature but lower than the module's critical temperature. A “hot” status indicates that the module's temperature is at or above the critical operating temperature. A module operating at or above the critical temperature is likely to fail.
If the control program determines that the temperature reading of a NVF module is not in the optimal operating temperature range for that particular module, the control program adjusts the PWM value to accommodate the needs of that particular module.
In an embodiment, the control program would modify the desired PWM value based on a predetermined multiplier. The multiplier may be determined from the number of NVF modules reporting non-optimal temperatures, and the degree to which they are outside of their optimal temperature range. For example, a “warm” NVF module may increase the desired PWM value by 10 percent, but two “warm” NVF modules may increase the desired PWM value by 30 percent, and two “hot” NVF modules may increase the desired PWM value by 60 percent.
In the embodiment shown in
In another embodiment, the control program turns off some or all “hot” NVF modules if two or more “hot” temperature reading are detected from NVF modules. The advantage of control method 200 is that all VF modules and NVF modules can be sufficiently cooled regardless of their thermal characteristics.
The terms and descriptions used herein are set forth by way of illustration only and are not meant as limitations. Those skilled in the art will recognize that many variations are possible within the spirit and scope of the invention as defined in the following claims, and their equivalents, in which all terms are to be understood in their broadest possible sense unless otherwise indicated.
This application claims priority from U.S. Provisional Application 60/942,237 filed Jun. 6, 2007 entitled “METHOD OF MONITORING AND CONTROLLING THERMALS OF A COMPUTER SYSTEM” the content of which is incorporated herein in its entirety to the extent that it is consistent with this invention and application.
Number | Name | Date | Kind |
---|---|---|---|
4817865 | Wray | Apr 1989 | A |
6101459 | Tavallaei et al. | Aug 2000 | A |
7064511 | Marando et al. | Jun 2006 | B2 |
7235943 | Hsiang et al. | Jun 2007 | B2 |
7401644 | Ziarnik et al. | Jul 2008 | B2 |
7426109 | Lindell et al. | Sep 2008 | B2 |
7506190 | Thomas et al. | Mar 2009 | B2 |
7669071 | Cochran et al. | Feb 2010 | B2 |
7721561 | Kim | May 2010 | B2 |
7742844 | Coxe, III | Jun 2010 | B2 |
7894191 | Tsuchiya | Feb 2011 | B2 |
7930388 | Zhang et al. | Apr 2011 | B2 |
7937188 | Liu et al. | May 2011 | B2 |
20030137267 | Blake | Jul 2003 | A1 |
20050209740 | Vann, Jr. | Sep 2005 | A1 |
20070098374 | Fujiwara | May 2007 | A1 |
20070133955 | Hsu et al. | Jun 2007 | A1 |
20070180117 | Matsumoto et al. | Aug 2007 | A1 |
20070297893 | Alon et al. | Dec 2007 | A1 |
20080004755 | Dunstan et al. | Jan 2008 | A1 |
20080098354 | Chen et al. | Apr 2008 | A1 |
20080201506 | Lee | Aug 2008 | A1 |
20080312888 | Vinson et al. | Dec 2008 | A1 |
20090055665 | Maglione et al. | Feb 2009 | A1 |
20090138228 | Dalton et al. | May 2009 | A1 |
20090254769 | Brundridge et al. | Oct 2009 | A1 |
Number | Date | Country | |
---|---|---|---|
20080306634 A1 | Dec 2008 | US |
Number | Date | Country | |
---|---|---|---|
60942237 | Jun 2007 | US |