Abstract:
Computer system fans having fixed operating states corresponding to discreet operating speeds may be controlled by collecting temperature information upstream or downstream of the fans and commanding the fans to switch between the fixed operating states based on the temperature information at a frequency sufficient to controllably achieve speeds between the discreet operating speeds.

Description:
BACKGROUND 
       [0001]    Energy costs to cool modern computer server systems may be substantial. In many cases, these energy costs may be greater than the cost of the server systems themselves. 
       SUMMARY 
       [0002]    A computer server may include a plurality of fans having fixed operating states corresponding to discreet operating speeds, a telemetry module configured to collect temperature information about the computer server, and a controller configured to issue control commands to the fans based on the temperature information such that the fans controllably achieve operating speeds between the discreet operating speeds. 
         [0003]    While example embodiments in accordance with the invention are illustrated and disclosed, such disclosure should not be construed to limit the invention. It is anticipated that various modifications and alternative designs may be made without departing from the scope of the invention. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0004]      FIG. 1  is a block diagram of an embodiment of a computer server system. 
           [0005]      FIG. 2  is an example plot of fan status (raw data) versus time for the fans of  FIG. 1 . 
           [0006]      FIG. 3  is an example plot of fan status (smoothed data) versus time for the fans of  FIG. 1 . 
           [0007]      FIGS. 4 and 5  are example plots of temperature versus time at different locations within the server of  FIG. 1 . 
           [0008]      FIG. 6  is an example plot of power consumption versus time for the fans of  FIG. 1 . 
       
    
    
     DETAILED DESCRIPTION 
       [0009]    The fan control algorithms in certain computing platforms (including those with variable-speed fans) are set with high nominal fan speeds. That is, these speeds provide adequate chip thermal margins and DIMM thermal budgets for theoretical servers at, for example, an altitude of 10,000 ft (where the air is thinner and less effective at cooling), with datacenters near the top of their allowed ambient temperature range, and running at 100% load with a full CPU/memory configuration. For most servers, this nominal fan speed is greater than necessary resulting in significant energy waste. (The energy consumed by a fan motor is proportional to the cubic power of its RPMs.) 
         [0010]    Computing platform variable-speed fans subject to feedback-control based on computing platform telemetry signals may be dynamically controlled to optimize energy utilization, taking into account altitude and/or dynamic variations in datacenter ambient temperatures and CPU/Memory/IO load variations. For example, a computer system temperature, ambient temperature, and fan speed may be monitored. Next, a validated ambient temperature and validated computer system temperature may be computed based on parameters including the monitored temperatures. Then, a control signal may be generated and sent to a fan in response to the validated temperatures and monitored fan speed to assure fan speed stability. More specifically, a thermal telemetry monitor may receive time-series information regarding processor temperature and ambient temperature, and a fan telemetry monitor may receive time-series information regarding fan speed. A pattern-recognition mechanism may generate validated processor and ambient temperatures using known pattern-recognition techniques based on the time-series information. A controller may then command a fan to increase or decrease its speed to optimize cooling of the computer system. 
         [0011]    Computing platform (including power supply unit) variable-speed fans having fixed operating states via software or computing platform (including power supply unit) fixed-speed fans having fixed operating states via hardware may not be controlled in the manner described above as such fans (i.e., fixed operating state fans) cannot be commanded to smoothly and continuously increase or decrease their speeds to optimize cooling. Rather, they may be merely turned “on” or “off,” or set at some predefined speed. 
         [0012]    Pulse width modulation (PWM) based algorithms may be used to control fixed operating state fans such that they achieve variable speeds to optimize cooling and potentially minimize power consumption. (PWM uses a square wave whose duty cycle is modulated to control the average value of the waveform.) Switching, for example, between two fixed speeds (e.g., “high” and “low”) with sufficient frequency may permit speeds anywhere between “high” and “low” to be achieved. 
         [0013]    In certain embodiments, the 0 and 1 states of the PWM signals correspond to any two selected fan speed levels (e.g., “off/low,” “off/high,” “low/high,” etc.) By modulating the switching frequency between the 0 and 1 states, and doing so at a frequency sufficient to permit the system thermal inertia to smooth temperature variations, we have demonstrated that any desired intermediate fan speed can be obtained even with fixed operating state fans. As discussed below, these PWM techniques may be combined with continuous system telemetry for feedback/control and sensor operability validation. 
         [0014]    By minimizing fan speed (and thus fan power) for a particular set of circumstances, acoustical and vibrational effects may be improved. Acoustic energy in the range irritating to humans, for example, increases with the 5th power of fan RPM. Additionally, these PWM techniques may save more energy than other power management approaches that, for example, throttle CPU clock rates when loads are low. 
         [0015]    Referring to  FIG. 1 , an embodiment of a computer server system  10  may include a computer sever  12 , thermal and fan speed telemetry collectors  14 ,  16 , telemetry signal de-quantizer  18 , pattern recognition module  20 , and controller  22 . The server  12  may include a plurality of CPUs  24   a - 24   n , fan tray  26  and ambient temperature sensors  28 . The fan tray  26  of  FIG. 1  includes a plurality of fans  27   a - 27   n  that have two or more fixed operating states (e.g., “on,” “off,” “high,” “low,” etc.) 
         [0016]    The thermal telemetry collector  14  collects quantized temperature information from the CPUs  24   a - 24   n  and ambient temperature sensors  28  in a known fashion. The fan speed telemetry collector  16  collects quantized fan speed information (in RPMs for example) and/or fan operating state information (e.g., “low,” “high,” “off,” “on,” etc.) from the fan tray  26  in a known fashion. As an example, the thermal and fan speed telemetry collectors  14 ,  16  may be configured and operated as described in U.S. Pat. No. 7,020,802 to Gross et al. During operation, the collectors  14 ,  16  may periodically measure temperature, fan speed and/or fan operating state information while the server  12  operates. The collectors  14 ,  16  may then record the values on a data storage device keeping track of temporal relationships between events in the information collected. 
         [0017]    As known in the art, modern server computer systems, such as the server  12 , are typically equipped with a significant number of sensors that monitor signals during the operation of the computer systems. Results from this monitoring process can be used to generate time series data for these signals (which can be collected as described above) and subsequently analyzed to determine how the computer system is operating. One application of this time series data is for purposes of proactive fault monitoring to identify leading indicators of component or system failures before the failures actually occur. 
         [0018]    Many computer systems, including the server  12  in this example, use low-resolution eight-bit analog-to-digital (A/D) converters in all of their physical sensors to sample the signals. This causes readings of physical variables such as voltage, current, temperature and fan speed to be highly quantized. Hence, the sampled signal values from these sensors can only assume discrete values, and no readings can be reported between these discrete values. For example, temperatures from the CPUs  24   a - 24   n  may be quantized to the nearest degree. If the true temperature is 32.4° C., it can only be reported as one of the quantized values 32° C. or 33° C. 
         [0019]    These quantization effects may present issues for proactive fault monitoring. Normally, one can apply statistical pattern recognition techniques to continuous signal values to detect if the signals start to drift away from steady-state values at a very early stage of system degradation. With significant quantization, however, conventional statistical pattern recognition techniques may not effectively detect the onset of subtle anomalies that might precede component or system failures. 
         [0020]    “Burst sampling” may be used to overcome the drawbacks of low-resolution quantized signals. This technique restores high-resolution signals from low-resolution A/D converter outputs by removing the quantization effects. Specifically, a large “burst” of samples (typically hundreds of samples) are retrieved from low-level hardware registers of the server computer system being monitored. These samples are then collected through telemetry channels at the highest data rate that the hardware channels can support (typically at kHz rates). Next, the samples in the “burst” are averaged to obtain values that approximate signals sampled with high-resolution data-acquisition capability. This technique, however, can be used only for a small subset of signals of interest in a large system because the burst sampling creates a large burst demand for the bandwidth that is available for delivering telemetry samples via the system bus. In some large systems, over 1000 telemetry signals are monitored concurrently. The burst sampling technique can consume the entire system bus bandwidth while delivering only a few tens of these signals. 
         [0021]    To address the issues discussed above associated with quantized telemetry information and the burst sampling technique, the telemetry signal de-quantizer  18  may use techniques described in U.S. Pat. No. 7,248,980 to Gross et al. to de-quantize the telemetry information received from the collectors  14 ,  16 . That is, the de-quantizer  18  may reconstruct high-resolution temperature and fan speed signals from a set of low-resolution quantized samples collected by the thermal and fan speed telemetry collectors  14 ,  16 . During operation, the de-quantizer  18  may receive a time series containing low-resolution quantized signal values (representing, for example, CPU temperatures, ambient temperatures, fan speeds, etc.) which are sampled from the high-resolution signal. Next, the de-quantizer  18  may perform a spectral analysis on the time series to obtain a frequency series for the low-resolution quantized signal values. The de-quantizer  18  may next select a subset of frequency terms from the frequency series which have the largest amplitudes. The de-quantizer  18  may then reconstruct the high-resolution temperature and fans speed signals by performing an inverse spectral analysis on the subset of the frequency terms. 
         [0022]    In other embodiments, quantized signals may be used as input to the control algorithms described herein. As apparent to those of ordinary skill, however, these quantized signals may result in suboptimal fan energy management and confound assessments of sensor integrity as discussed above. 
         [0023]    The pattern recognition module  20  analyzes the de-quantized temperature and fan speed signals from the de-quantizer  18  to validate the integrity of the signals received. That is, the module  20  validates the integrity of the sensors used to gather the temperature and/or fan speed information. For example, the module  20  may use known nonlinear, nonparametric regression techniques to detect sensor drift or other sensor anomalies by examining correlation patterns between and among the telemetry variables. Signals found to be uncharacteristic or otherwise anomalous may be discarded. 
         [0024]    The validation process described above may protect the system  10  from faulty sensor readings and/or oscillations from hysteretic phenomena. In the absence of such a step, the server  12  may be over or under-cooled if the sensors begin to drift or otherwise degrade. 
         [0025]    Validated signals from the pattern recognition module  20  are received by the controller  22 . In the embodiment of  FIG. 1 , the controller  22  is a multiple-input, multiple-output (MIMO) controller. Any suitable controller, however, may be used. The controller  22  may issue commands to the fan tray  26  to optimally adjust fan speeds in a manner that, for example, matches the degree of cooling to the net temperature difference between chip junction temperatures and ambient temperatures. 
         [0026]    In certain embodiments, a “comfort band” or desired range of temperatures for the server  12  may be specified within the controller  22 . The controller  22  may then control the fan tray  26  to keep the temperatures inside the server  12  within this range. If the temperatures drop below this comfort band, the controller  22  may command the fans  27   a - 27   n  to slow down. If the temperatures rise above the comfort band, the controller  22  may command the fans  27   a - 27   n  to speed up. 
         [0027]    As an example, a desired temperature range of 81° C. to 84° C. for the server  12  may be set within the controller  22 . Periodically (every minute for example), the controller  22  may examine the validated temperature information from the module  20  to determine if it falls within the desired range. If the temperature information indicates that it is below the desired range, the controller  22  may decrease the current fan speeds (by appropriately altering the PWM signal to the fans  27   a - 27   n ) by a fixed amount (e.g., 10%) or proportionally to the difference between the temperature information and the desired range. Of course, other schemes may also be used. If the temperature information indicates that it is above the desired range, the controller  22  may increase the current fan speeds (again by appropriately altering the PWM signal to the fans  27   a - 27   n ) by a fixed or proportional amount. Iteratively following this procedure will permit the controller  22  to find the fan speeds that keep the server temperature within the comfort band and optimize energy consumption. 
         [0028]    In other embodiments, a comfort band and/or limits on the desired rates of change of server temperatures, etc. may also be used to tailor the behavior of the controller  22  to any particular set of circumstances. 
         [0029]    Referring to  FIGS. 2 and 3 , an example set of raw and smooth data representing the frequency at which the fans  27   a - 27   n  of  FIG. 1  are switched “on” and “off” is plotted over a 60 minute period. As apparent from  FIG. 3 , the fan speeds are controllable between the “on” and “off” positions. 
         [0030]    Referring to  FIGS. 4 and 5 , temperature data at two different locations within the server  12  of  FIG. 1  is plotted during the same 60 minute period as in  FIGS. 2 and 3 . As apparent from these figures, the temperatures can be controlled so as to exhibit any desired profile/behavior. 
         [0031]    Referring to  FIG. 6 , the power consumed by the server  12  of  FIG. 1  is plotted during the same 60 minute period as in  FIGS. 2 through 5 . The power consumption appears to be greatest when the temperatures of  FIGS. 4 and 5  are around their minimums (when the fans are working the hardest.) 
         [0032]    As apparent to those of ordinary skill, the algorithms disclosed herein may be deliverable to a processing device in many forms including, but not limited to, (i) information permanently stored on non-writable storage media such as ROM devices and (ii) information alterably stored on writeable storage media such as floppy disks, magnetic tapes, CDs, RAM devices, and other magnetic and optical media. The algorithms may also be implemented in a software executable object. Alternatively, the algorithms may be embodied in whole or in part using suitable hardware components, such as Application Specific Integrated Circuits (ASICs), state machines, controllers or other hardware components or devices, or a combination of hardware, software and firmware components. 
         [0033]    While embodiments of the invention have been illustrated and described, it is not intended that these embodiments illustrate and describe all possible forms of the invention. Rather, the words used in the specification are words of description rather than limitation, and various changes may be made without departing from the spirit and scope of the invention.