Abstract:
One embodiment of the present invention provides a system that cancels fan noise in a computer system. During operation, the system obtains a fan noise signal using a microphone. Next, the system generates a spectral pattern based on the obtained fan noise signal. The system then uses the spectral pattern to identify a corresponding cancellation spectrum in an anti-spectra library. Next, the system generates a noise-canceling signal using the cancellation spectrum. Note that the amount of computation required to cancel fan noise is reduced because generating the noise-canceling signal using the anti-spectra library requires less computation than generating the noise-canceling signal using dynamic noise-cancellation techniques.

Description:
BACKGROUND 
     1. Field of the Invention 
     The present invention relates to techniques for canceling fan noise in computer systems. More specifically, the present invention relates to a method and an apparatus for canceling fan noise in a computer system by using an anti-spectra library. 
     2. Related Art 
     Rapid advances in computing technology presently make it possible to perform trillions of operations each second on data sets that are sometimes as large as a trillion bytes. These advances can be largely attributed to the exponential increase in the density and complexity of integrated circuits. 
     Unfortunately, in conjunction with the increase in density and complexity, the power consumption and heat dissipation of integrated circuits has also increased dramatically. 
     Specifically, high-end server systems can easily generate 20 kilowatts or more heat. Servers typically use powerful fans to remove heat, which can generate high levels of noise. In fact, a datacenter full of high-end servers can produce a very high decibel roar from all of the fan noise which can cause human errors while servicing high-end servers. Specifically, high noise levels can make it difficult for service engineers to communicate with each other. Service engineers may even have to use sign language to communicate with one another. High noise levels can also make it difficult for individual engineers to concentrate on the complex tasks they undertake in the datacenter. Specifically, noise levels can cause human errors that result in “No Trouble Found” (NTF) problems at customer sites, which can result in a huge cost to the server manufacture as well as causing customer dissatisfaction. Hence, techniques for reducing or eliminating fan noise are very important. These techniques are often called Automatic Noise Cancellation (ANC) techniques, or simply, noise cancellation techniques. 
     Present noise cancellation techniques are costly and computationally intensive. This is because present approaches sense the harmonics of a fan noise signal in real time, and then use dynamic feedback and control methods to cancel as much of the fan noise signal as possible. Since these techniques are executed in real time, they can significantly increase the computational burden on the server, which can decrease server performance. 
     Hence, what is needed is a method and an apparatus for canceling fan noise in a computer system without the above-described problems. 
     SUMMARY 
     One embodiment of the present invention provides a system that cancels fan noise in a computer system. During operation, the system obtains a fan noise signal using a microphone. Next, the system generates a spectral pattern based on the obtained fan noise signal. The system then uses the spectral pattern to identify a corresponding cancellation spectrum in an anti-spectra library. Next, the system generates a noise-canceling signal using the cancellation spectrum. Note that the amount of computation required to cancel fan noise is reduced because generating the noise-canceling signal using the anti-spectra library requires less computation than generating the noise-canceling signal using dynamic noise-cancellation techniques. 
     In a variation on this embodiment, the system computes cancellation spectra based on fan noise signals measured at various fan speeds, and stores the cancellation spectra in the anti-spectra library. 
     In a variation on this embodiment, the system identifies the cancellation spectrum by first determining a fan speed based on the spectral pattern. Next, the system identifies the cancellation spectrum in the anti-spectra library based on the fan speed. 
     In a variation on this embodiment, generating the noise-canceling signal involves playing back the noise canceling signal on a speaker. 
     In a variation on this embodiment, the system detects one or more fan failures. Next, the system performs noise cancellation only if no fan failures are detected. Note that the anti-spectra library typically stores cancellation spectra for system configurations in which all fans are operational. Hence, if one or more fans fail, the obtained noise spectrum may be different from the cancellation spectra stored in the anti-spectra library, which can result in suboptimal noise cancellation. 
     In a further variation on this embodiment, the system detects one or more fan failures by determining a thermal distribution using thermal sensors. Note that an anomalous thermal distribution can indicate a fan failure. Further, the system also detects one or more fan failures by determining whether a fan speed is below a normal operating speed using a Hall-effect RPM (revolution per minute) sensor. 
     In a further variation on this embodiment, the thermal distribution can be used to validate the output of the Hall-effect RPM sensor, thereby improving fan operability assurance. 
    
    
     
       BRIEF DESCRIPTION OF THE FIGURES 
         FIG. 1A  presents a flow chart that illustrates a process for canceling fan noise in a server using an anti-spectra library in accordance with an embodiment of the present invention. 
         FIG. 1B  presents a flow chart that illustrates a process for generating an anti-spectra library in accordance with an embodiment of the present invention. 
         FIG. 2  illustrates a schematic diagram of a high-end server system that can cancel fan noise in accordance with an embodiment of the present invention. 
         FIG. 3  presents a flow chart that illustrates a process of determining one or more fan failures using temperature sensors and Hall-effect RPM sensors in accordance with an embodiment of the present invention. 
     
    
    
     DETAILED DESCRIPTION 
     The following description is presented to enable any person skilled in the art to make and use the invention, and is provided in the context of a particular application and its requirements. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the present invention. Thus, the present invention is not limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features disclosed herein. 
     The data structures and code described in this detailed description are typically stored on a computer-readable storage medium, which may be any device or medium that can store code and/or data for use by a computer system. This includes, but is not limited to, magnetic and optical storage devices such as disk drives, magnetic tape, CDs (compact discs) and DVDs (digital versatile discs or digital video discs), and computer instruction signals embodied in a transmission medium (with or without a carrier wave upon which the signals are modulated). For example, the transmission medium may include a communications network, such as the Internet. 
     Fan Noise Cancellation Using an Anti-Spectra Library 
       FIG. 1A  presents a flow chart that illustrates a process of canceling fan noise in a server using an anti-spectra library in accordance with an embodiment of the present invention. 
       FIG. 1A  should be viewed in relation to  FIG. 2  which illustrates a schematic diagram of a high-end server system that can cancel fan noise in accordance with an embodiment of the present invention. The system shown in  FIG. 1A  comprises two sub-systems: a server compartment  202  and a noise cancellation controller  230 . 
     The noise-cancellation process typically begins with obtaining a fan noise signal using a microphone (step  102 ). The recorded signal is generally a continuous time-domain waveform which represents the noise from all the fans in a server. Note that the fan noise signal can be measured by an inexpensive microphone  208  that resides inside the server compartment  202 . 
     Next, the system generates a spectral pattern based on the fan noise signal (step  104 ). Note that the system can use a Fast-Fourier Transform (FFT) to generate the spectral pattern as shown by component FFT  220  in  FIG. 2 . 
     Next, the system identifies a cancellation-spectrum in an anti-spectra library which contains a complete collection of cancellation spectra for all possible fan-speed combinations. This library is typically pre-computed and stored in a computer-readable storage medium. 
     Note that each server usually contains multiple fans. Furthermore, each fan can run at multiple speeds, measured in revolutions per minute (RPM). Hence, any given time, each fan may run at a different speed as determined by the server. Consequently, for each combination of fan speeds, the spectral pattern generated from the noise signal can be unique. In one embodiment, the anti-spectra library stores an anti-spectral pattern for every unique combination of fan speeds. 
       FIG. 1B  presents a flow chart that illustrates a process for generating an anti-spectra library in accordance with an embodiment of the present invention. 
     The process typically begins by measuring noise signals at various fan speed combinations (step  114 ). 
     Next, the system computes a cancellation spectrum for each noise spectral pattern (step  116 ). 
     Finally, the system stores all the cancellation-spectra in the anti-spectra library (step  118 ). 
     Continuing with  FIG. 1A , the system then identifies the cancellation spectrum based on the spectral pattern of the fan noise signal (step  110 ). 
     In one embodiment of the present invention, all fans in the server are locked onto the same speed at any given time. In such cases, the system first determines the fan speed by a simple pattern match in the frequency-domain (step  106 ). In  FIG. 2 , this step is performed by the fan speed inference component  222 . 
     Next, the system identifies the correct cancellation spectrum in the anti-spectra library  224  based on the inferred fan speed (step  108 ). 
     Finally, the system generates a noise-canceling signal using the identified cancellation spectrum (step  112 ). 
     For example, the noise-canceling signal can be generated by first using cancellation filter  226  to retain the human audible portion of the cancellation spectrum. Next, the signal can be sent to amplifier  228 . Finally, the cancellation spectrum can be played back in server compartment  202  by speaker  210 . Note that the noise cancellation waveform is ideally 180 degree phase shifted from the fan noise waveform for the optimal cancellation effect. 
     Determining Fan Failure in a Server 
     The anti-spectra library typically stores cancellation spectra for system configurations in which all fans are operational. Hence, if one or more fans fail, the obtained noise spectrum may be different from the cancellation spectra stored in the anti-spectra library. This can result in suboptimal noise cancellation. Consequently, reliably detecting fan failures is very important because it can allow the system to stop noise-cancellation when a fan failure occurs, thereby preventing suboptimal noise-cancellation. 
       FIG. 3  presents a flow chart that illustrates a process for determining one or more fan failures using temperature sensors and Hall-effect RPM sensors in accordance with an embodiment of the present invention. 
     The process typically begins with determining a temperature distribution (pattern) in a server using temperature sensors (step  302 ). These sensors create a temperature map of the server in real time. For example, temperature sensors  206  in  FIG. 2  can be used to determine a temperature pattern in server  202 . 
     Once a temperature pattern is determined, pattern recognition techniques can be used to compare (or match) the temperature pattern with temperature patterns that are known to be associated with fan failures. In one embodiment, multivariate state estimation technique (MSET) can be used for pattern recognition. In another embodiment, pattern recognition can be performed using a class of techniques known as nonlinear, nonparametric (NLNP) regression. Yet another embodiment can use neural networks for pattern recognition. In general, the pattern recognition module “learns” the behavior of the monitored temperature variables during a training period and is able to estimate what each signal “should be” on the basis of past learned behavior and on the basis of the current readings from all the correlated temperature variables. For example, a Sensor Validation Engine (SVE)  214  can be used to detect anomalies in the temperature pattern. Specifically, a fan failure may be inferred if SVE  214  detects an anomaly in the current temperature pattern. 
     Fans  204  can contain Hall-effect RPM sensors or fan sensors which can determine whether the fan speeds are above or below normal operating speeds. The sensors can then flag those fans whose speeds are measured to be below the normal operating speeds. Specifically, a System Management Services (SMS) component  212  can be coupled with the Hall-effect RPM sensors to detect fan failures. 
     In one embodiment, SVE  214  validates the outputs from both the temperature sensors and fan sensors as shown in  FIG. 2  and then makes fan failure decisions using fan operability validation component  216 . 
     If either the temperature sensors or the fan sensors indicate a fan failure, a fan failure alert  218  is triggered that stops noise cancellation process and the system is serviced to fix the fan failures. 
     On the other hand, if no fan failure is detected by SVE  214 , the noise cancellation process proceeds as usual without interruption. 
     Note that, using temperature sensors in a server to detect one or more fan failures is typically more reliable than using Hall-effect RPM sensors alone which usually cannot detect fan failures with high reliability. The reason is that there is usually so much wind flowing through a high-end server system that it is possible for a fan motor to fail but still have the fan blades to keep turning (because of the wind). In such cases the Hall-effect RPM sensors which detect fan failures based on the fan speeds relative to certain thresholds are not able to generate a fan motor failure warning. In contrast, temperature patterns obtained by the temperature sensors are being continuously validated by pattern recognition engine, which truthfully reflect any subtle changes in the fan speeds. Consequently, the temperature sensors can be used to validate the outputs generated by the Hall-effect RPM sensors, which can improve fan operability assurance. Further, in one embodiment, the system may use only temperature sensors to detect fan failures. 
     Note that using the anti-spectra library to generate the noise-canceling signal, instead of dynamically generating the noise-canceling signal, can reduce the amount of computation required for canceling fan noise, which can free up compute resources. 
     The foregoing descriptions of embodiments of the present invention have been presented only for purposes of illustration and description. They are not intended to be exhaustive or to limit the present invention to the forms disclosed. Accordingly, many modifications and variations will be apparent to practitioners skilled in the art. Additionally, the above disclosure is not intended to limit the present invention. The scope of the present invention is defined by the appended claims.