RPM controller using drive profiles

Information

  • Patent Grant
  • 9212664
  • Patent Number
    9,212,664
  • Date Filed
    Monday, July 16, 2012
    12 years ago
  • Date Issued
    Tuesday, December 15, 2015
    9 years ago
  • CPC
  • Field of Search
    • CPC
    • F04D27/00
  • International Classifications
    • F04D27/00
    • G05B13/02
    • Term Extension
      821
Abstract
A control circuit for controlling the rotational speed of a fan may include a memory element to store operating data corresponding to an operational profile of the fan defined by RPM (revolutions per minute) versus temperature, with the operating data comprising a respective temperature value and a respective RPM value for each respective operating point representing a change in slope of a function that corresponds to the operational profile of the fan. A processing unit may receive a present temperature value, retrieve the operating data from the storage unit, and identify a pair of consecutive operating points corresponding to the present temperature. The processing unit may calculate a desired RPM value corresponding to the present temperature value by performing linear interpolation between the pair of consecutive operating points, and provide the desired RPM value to a closed-loop fan controller to control the fan according to the desired RPM value.
Description
BACKGROUND OF THE INVENTION

1. Field of the Invention


This invention relates generally to the field of digital circuit design and, more particularly, to the design of an RPM controller.


2. Description of the Related Art


Fans are often used to evacuate warm air from enclosures in which electronic systems are contained. For example, most computer systems include one or more cooling fans to aid in circulating the air inside the enclosures and for maintaining the temperature inside the enclosures within an acceptable range. The increased airflow provided by fans typically aids in eliminating waste heat that may otherwise build up and adversely affect system operation. Employing cooling fans is especially helpful in ensuring proper operation for certain central processing units (CPUs) with relatively high operating temperatures.


Control of fans in a system typically involves a fan control unit executing a fan control algorithm. A fan control algorithm may determine the method for controlling one or more fans that are configured to evacuate warm air from a system enclosure. For example, the fan control algorithm may specify that a fan's rotational speed should be increased or decreased dependent upon a detected temperature. Such control algorithms may also involve turning off a fan if the temperature is deemed cool enough to do so, or in certain systems, such as personal computers (PCs) for example, lowering the rotational speed of the fan and allowing the fan to continue running at a minimum rotational speed.


For detecting the temperature, a temperature sensor may provide to the fan control unit a signal indicative of the current temperature of a particular temperature zone in the electronic system. Often, fans used for CPU and/or computer system cooling have a three-wire interface with wires for power, ground, and a tachometer signal. Fan drive systems often use a signal generator that provides a Pulse Width Modulated (PWM) signal to drive an external circuit that controls the voltage between the power and ground interfaces of the fan, which in turn controls the speed of the fan. Signal generators that provide PWM signals are useful because they provide a digital control for the pulse width of a signal. The fan is typically powered only for the duration of the pulse. Between pulses power to the fan is turned off, although the fan is typically still spinning during this time. The duty cycle of the PWM pulse train currently being provided to the fan determines the fan's speed. Another typical way to control three-wire fans is to drive the fan by utilizing a high side Field Effect Transistor (FET), thereby controlling the DC voltage supplied to the fan. Generally, this provides an effective dynamic control range of 3V, which typically ranges from 5V down to around 2V. The lower limit voltage (2V) is still sufficient to power the fan circuitry, and valid tachometer signals may still be obtained from the fan.


Alternatively, some computer systems use fan control circuitry that features a 4-wire fan interface, where the fourth wire typically carries an additional control signal from the system to the fan. Thus, for fan drive systems that use PWM signal generators, in addition to the power, ground, and tachometer signal, a four-wire fan will typically have a PWM-drive input, which is used to control the speed of the fan. In such systems, instead of switching the power to the entire fan on and off, generally only the power to the drive coils is switched, making the tachometer information available continuously. Another advantage of 4-wire fans is that the fan speed can typically be controlled at speeds as low as 10% of the fan's full speed. Many PC desktop and workstation cooling fan solutions today use open loop 4-wire fan control methods, or are thermistor based, where a thermistor is integrated into the fan.


Typically when an open-loop four-wire cooling fan control method is used, two fan curves are specified. The first is generally a desired Temperature-versus-PWM curve, and the second is usually a PWM-versus-RPM (Revolutions Per Minute—an indication of rotational fan speed) curve. Many currently available fan control devices implement the Temperature-versus-PWM curve, and the cooling fans must generally follow the tightly specified PWM-versus-RPM curve. Open loop four-wire fan control systems thus have to rely on the tight fan specifications supplied by the fan manufacturer in order to achieve the desired fan RPM for a given PWM command.


In addition, in most cases, merely driving the fan with a prescribed duty cycle may not facilitate correcting for fan aging, pressure changes, and other conditions that might affect the performance of the fan over time. Most present day solutions address these issues using analog comparators and RC ramps to create a continuous function with varying duty cycle, to control either a PWM input to a fan, or the drive voltage applied externally to the fan. Therefore, alternative fan control methods may be preferred for driving the fan, while retaining digital control of the fan. For example, it may be desirable to provide closed loop RPM (revolutions per minute) control. When RPM control is used, however, the ability to control the RPM in a closed loop may require every operational point along the desired operational profile of a given fan, which usually requires that all operational points be stored (to be used by the controller), which may lead to excessive memory requirements. For example, in most systems, two Bytes may be required to store operating (control) data for each temperature point for which control of the fan is desired.


Other corresponding issues related to the prior art will become apparent to one skilled in the art after comparing such prior art with the present invention as described herein.


SUMMARY OF THE INVENTION

In one set of embodiments, closed-loop RPM (revolutions per minute) control of a fan may be achieved with only a limited number of data points from the desired operational RPM vs. Temperature profile being stored. In order to reduce the amount of memory storage required to store a complete operational profile, only starting operating points and intermediate operating points that correspond to a change in slope of the overall operational profile (RPM vs. Temperature profile function) of a given fan may be stored. A linear interpolation between the stored operating data points may be performed for continuous operation across the temperature range. Various embodiments of the closed-loop autonomous RPM control disclosed herein may facilitate limiting the effects of fan aging, while allowing for a linear interpolation or step response.


One method for powering a fan may therefore include storing operating points corresponding to an RPM versus temperature operational profile function (RTPF) of the fan, with each operating point comprising a respective temperature value and a corresponding respective RPM value, and each operating point representing a change in slope of the RTPF, with each pair of consecutive operating points defining a respective temperature slot. The method may further include receiving a present temperature value indicative of a present temperature reading, selecting a matching temperature slot corresponding to the present temperature value, where the present temperature value is greater than a lower respective temperature value of a pair of consecutive operating points that defines the matching temperature slot, and lower than a higher respective temperature value of the pair of consecutive operating points that defines the matching temperature slot. The desired RPM value may then be calculated by performing interpolation between the pair of consecutive operating points that defines the matching temperature slot, and the rotational speed of the fan may be controlled according to the calculated desired RPM value and a present RPM value indicative of a present RPM of the fan.


In one set of embodiments, a control circuit for controlling the rotational speed of a fan may include a storage unit to store operating data corresponding to an operational profile of the fan defined by RPM versus temperature function (RTPF), with the operating data including a respective temperature value and a respective RPM value for each respective operating point representing a change in slope of the RTPF, with each pair of consecutive operating points defining a respective temperature slot. The control circuit may further incorporate a processing unit configured to communicate with the storage unit to retrieve the operating data, receive a present temperature value indicative of a present temperature reading, select a matching temperature slot corresponding to the present temperature value—where the present temperature value is greater than a lower respective temperature value of a pair of consecutive operating points that defines the matching temperature slot, and lower than a higher respective temperature value of the pair of consecutive operating points that defines the matching temperature slot—calculate a desired RPM value according to a specified algorithm and the pair of consecutive operating points that defines the matching temperature slot, and output the desired RPM value to a closed-loop fan controller. The closed-loop fan controller may receive a feedback signal indicative of a present speed of the fan, and control a rotational speed of the fan according at least to the feedback signal and the desired RPM value.


A computer system may include a fan, memory configured to store operating data corresponding to an RPM versus temperature operational profile function (RTPF) of the fan, with the operating data comprising a respective temperature value and a respective RPM value for each respective operating point representing a change in slope of the RTPF of the fan, with each pair of consecutive operating points defining a respective temperature slot. The computer system may further include a processing unit to receive a present temperature value indicative of a present temperature reading, retrieve the operating data from the memory, and identify a present temperature slot corresponding to the present temperature value. The present temperature value may be greater than a lower respective temperature value of a pair of consecutive operating points that defines the present temperature slot, and lower than a higher respective temperature value of the pair of consecutive operating points that defines the present temperature slot. The processing unit may then calculate a desired RPM value according to a specified algorithm and the pair of consecutive operating points that defines the present temperature slot, and output the desired RPM value to a closed-loop fan controller configured to also receive a feedback signal indicative of a present speed of the fan, and control a rotational speed of the fan according at least to the feedback signal and the desired RPM value.


In one set of embodiments, the specified algorithm may be executable to perform linear interpolation between the pair of consecutive operating points that defines the present temperature slot to obtain the desired RPM value. Accordingly, the processing unit may include a comparator configured to compare the present temperature value to various ones of the respective temperature values of the stored operating points to identify which present temperature slot corresponds to the present temperature value, and the processing unit may be configured with an arithmetic logic unit (ALU) to implement the linear interpolation. The processing unit may further be configured to receive one or more environmental parameter readings, and adjust the desired RPM value according to the one or more environmental parameter readings prior to outputting the desired RPM value. In various embodiments, the system may include additional fans, each fan having its own operational profile based on which a respective desired RPM of the fan may be calculated/interpolated as described above.


Other aspects of the present invention will become apparent with reference to the drawings and detailed description of the drawings that follow.





BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing, as well as other objects, features, and advantages of this invention may be more completely understood by reference to the following detailed description when read together with the accompanying drawings in which:



FIG. 1 shows a simplified block diagram of one embodiment of a fan system and fan control circuit;



FIG. 2 shows one example of an RPM vs. Temperature operational profile for a fan, with a reduced number of operating points;



FIG. 3 shows one example of interpolation between successive operating points on an RPM vs. Temperature such as the RPM vs. Temperature curve of FIG. 2;



FIG. 4 shows a logic diagram of one embodiment of an ALU configured to implement linear interpolation;



FIG. 5 shows a first segment of a timeline detailing operation of the ALU of FIG. 4; and



FIG. 6 shows a second segment of a timeline detailing operation of the ALU of FIG. 4.





While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the drawings and detailed description thereto are not intended to limit the invention to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the present invention as defined by the appended claims. Note, the headings are for organizational purposes only and are not meant to be used to limit or interpret the description or claims. Furthermore, note that the word “may” is used throughout this application in a permissive sense (i.e., having the potential to, being able to), not a mandatory sense (i.e., must).” The term “include”, and derivations thereof, mean “including, but not limited to”. The term “coupled” means “directly or indirectly connected”.


DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

As used herein, when referencing a pulse of a signal, a “leading edge” of the pulse is a first edge of the pulse, resulting from the value of the signal changing from a default value, and a “trailing edge” is a second edge of the pulse, resulting from the value of the signal returning to the default value. A first signal is said to be “corresponding” to a second signal if the first signal was generated in response to the second signal. When data is said to be “registered” or “latched” “using” a signal, the signal acts as a trigger signal that controls the storing of the data into the register or latch. In other words, when a signal “used” for registering or latching data is in its triggering state, the data residing at respective input ports of the register or latch is stored into the register or latch. Similarly, when data is latched “on the leading edge” or “on the trailing edge” of a pulse of a clock, the data residing at respective input ports of a register or latch is stored into the register or latch, respectively, when a leading edge or a trailing edge of a pulse of the clock occurs, respectively. A first signal is said to “propagated based on” a second signal, when the second signal controls the propagation of the first signal. Similarly, a first module is said to “use” a clock signal to transfer data to a second module, when propagation of the data from the first module to the second module is controlled and/or triggered by the clock signal. When referencing a binary number, the least significant bit (LSB) is understood to be the rightmost bit of the binary number, whereas the most significant bit (MSB) is understood to be the leftmost bit of the binary number. For example, in case of the binary number ‘011’ the LSB would be ‘1’ while the MSB would be ‘0’.



FIG. 1 shows a simplified system diagram of a fan system 100 that includes a control circuit 120 for controlling and powering a fan 108 through a closed-loop fan controller 106, which may be a closed-loop RPM controller. Control circuit 120 may be designed using digital design techniques, resulting in a testable, accurate circuit on a smaller die size. As shown in FIG. 1, a temperature reading (temperature measurement input) may be provided as input to processing unit 104, which may operate according to an RPM-versus-temperature profile function (RTPF), which may be stored in storage unit 102, and generate and output a desired fan RPM value corresponding to the input temperature reading to fan controller 106. In one sense, the RTPF may be considered an operational profile function implementing RPM as a function of temperature. The RTPF may be configurable by the user, and may correspond to a desired fan profile for any given fan, for example fan 108. Thus, there may be more than one RTPFs stored within storage unit 102, depending on the number of supported fans, and more than one fan may be coupled to fan controller 106, which may provide more than one fan control signal. In addition, processing unit 104 may be configured to receive additional parameter readings, for example ambient audio, etc. and generate the desired RPM value by also taking into account those additional parameter readings.


Various different RPM-versus-temperature profiles may be selected and used when actually controlling fan 108. In one embodiment, fan controller 106 operates to keep the speed of cooling fan 108 considerably close to desired RPM value, thereby providing stability for a wide variance of fan responses. In one set of embodiments, the desired RPM value may be compared to a sensed value of the actual speed of cooling fan 108 provided in the feedback loop from fan 108 to fan controller 106. A resulting error signal may be used with, for example, a compensator in order to drive the actual speed of cooling fan 108 to the desired RPM value. In some embodiments, depending on the type of fan used, instead of providing the fan control signal directly to fan 108, fan controller 106 may provide the fan control signal to a fan drive circuit, which may be configured to generate a set of one or more fan control signals that is provided to cooling fan 108 to drive a motor, which may be a brushless DC fan motor, comprised in cooling fan 108 towards the desired RPM value.


As previously mentioned, control circuit 120 may be configured to store, in storage unit 102 for example, a respective operational profile for one or more specified fans. Each operational profile might contain operating points each defined by a desired RPM of the fan for a given measured temperature. The RPM values may be related to the temperature values according to the desired cooling effect the rotating fan is expected to provide. In order to reduce the amount of storage required in storage unit 102 to store an entire operational profile for any given fan, only certain specified operating points of the operational points may be defined and stored. More specifically, the specified operating points stored may comprise only starting operating points and intermediate operating points where the slope of the RPM vs. Temperature function within the operational profile of a specified fan changes. Continuous operation over the operating temperature range may be achieved by performing linear interpolation between stored data points to obtain an actual operating point from which a present, desired RPM value of the fan may be derived. In addition, the desired RPM value thus obtained through interpolation may be slightly modified according to additional parameter readings, and/or inputs, as required by system considerations.


Storage unit 102 may thus be configured to store a number of operating points corresponding to the operational profile of a specified fan. The operating points may be only those operating points where the slope of the RPM vs. Temperature function within the operational profile changes. Data may be stored in storage unit 102 through the profile data input. Processing unit 104 may be configured to communicate with storage unit 102 and closed loop fan controller 106, to perform the interpolation and extract the RPM value based on the stored operating points and present (measured) temperature. In one set of embodiments a temperature measurement value from a temperature sensor may be may provided to fan controller 106, while in other embodiments the temperature measurement value may be provided directly into processing unit 104. A feedback signal indicative of the speed of fan 108 may be provided from fan 108 to fan controller 106 to establish closed loop control of fan 108. In one set of embodiments, control circuit 120 may be configured on an integrated circuit comprising pins for receiving the temperature measurement value, profile data and fan speed feedback input. In one set of embodiments, processing unit 104 may be an arithmetic logic unit configured to implement the necessary functions to perform the required interpolation, while in other embodiments processing unit 104 may be implemented as a finite state machine or microcontroller. Various other embodiments to implement control circuit 120 are possible and are contemplated.



FIG. 2 shows an RPM versus temperature function curve 200 illustrating how only a reduced number of operating points corresponding to the operational profile of a specified fan may be required, and may need to be stored. In the example of function curve 200, eight operating points may be stored in storage unit 102. Those skilled in the art will appreciate that the number of operating points will vary depending on the fan profile, and function curve 200 is meant to be representative of only one example. In function curve 200, each operating point (ti, ri) represents a stored profile operating point. When a new temperature measurement is received, an appropriate slot—representing a section between two operating points—may be selected according to the measured temperature value. For example, if the temperature scale is in 10° C. increments, t0=10° C., t1=20° C., t2=30° C., etc., and the value of a present temperature measurement is 22° C., then the slot between t1 and t2 may be selected. In other words, the segment or section of the profile curve between operating points (t1, r1) and (t2, r2) may be used to obtain the RPM value that corresponds to the measured temperature value of 22° C.


In one set of embodiments, a present temperature reading tk may be received, and if no stored operating point (ti, ri) such that ti=tk may be found, two stored operating points (t0, r0 and t1, r1) corresponding to the temperature reading may be selected, such that t0<tk<t1, and a desired RPM value may be calculated according to a specified formula, which may be an interpolation algorithm. FIG. 3 shows an example of one possible segment from the function curve corresponding to the operational profile of a specified fan shown in FIG. 2. The present temperature reading tk may be compared against ti values which may be part of stored operating points, and upon determination that t0<tk<t1, the boundaries for calculating the desired RPM value may be set to the operating points t0, r0 and t1, r1. The desired RPM value rk corresponding to tk may then be determined according to:








r
k

=


r
0

+



r
1

-

r
0




(


t
1

-

t
0


)

*

(


t
k

-

t
0


)





,





which may be expressed as








r
k

=


r
0

+


DR
*

t
ko


DT



,





where

DR=r1−r0,
DT=t1−t0, and
tk0=tk−t0.


In one set of embodiments, the formula (algorithm) for the interpolation as shown above, may be implemented with an arithmetic logic unit (ALU), one embodiment of which is shown in FIG. 4 as ALU 400. Registers 402 may be used to hold the various operands used by ALU 400 to perform the necessary operations to calculate the desired value of RPM. Registers 420 may be part of storage unit 102, or they may be part of processing unit 104, which may include ALU 400. In some embodiments, registers 420 and ALU 400 may be configured on the same integrated circuit as fan controller 106. FIGS. 5 and 6 show one embodiment of a timeline of the operation of ALU 400 for calculating the desired value of RPM based on the stored operating points and the present temperature measurement.


As shown in FIGS. 5 and 6, a comparison may be performed at time T0, to determine which slot to select for the interpolation. Following the slot determination, at time T1 the boundaries may be set by specifying (t0, r0) and (t1, r1). Subsequently, DR, DT, and tko may be calculated during time period T2 through T4. DR*tko may be calculated during time period T5 through T12. The product given by ((((((tko*DR[7]*2+tko*DR[6])*2+tko*DR[5])*2+tko*DR[4])*2+tko*DR[3])*2+tko*DR[2])*2+tko*DR[1])*2+DR[0] may be implemented as a shift-left and add operation. (DR*tko)/DT may be calculated during time period T14 through T22, as shown in FIG. 6.


Referring again to FIG. 4, BE registers 404 may be used for 10-bit floating points. The most significant bit (MSB) 10 bits of (DR*tko) from registers 402 may be moved to BE 404. The concatenated bit contents of registers B 406 and BE 404 {B, BE} may be shifted left, and the content of register DT (from registers 402) may be subtracted. At this point, if the sum is larger than zero, the quotient (Q) in this position may be 1, and the next {B, BE} may become the sum. Otherwise, if the sum is smaller than zero, the quotient in this position may be 0, and the next {B, BE} may retain its previous value. This procedure may be repeated until time point T22, at which point the 8-bit quotient would now be calculated. At time T23, (r0+(DR*tko)*DT) may be calculated, resulting in accumulator Acc 408 holding the desired value of RPM.


Various embodiments of a closed-loop autonomous RPM control disclosed herein may therefore be configured to limit the effects of fan aging on fan control accuracy, while reducing storage requirements for storing operating points corresponding to an operational profile of the specified, controlled fan. The RPM control may be configured with a programmable linear/step response to allow for performing linear interpolation or applying a step control to the controlled fan. It should also be noted that while FIG. 1 only illustrates a single fan, various embodiments may be adapted to control more than one fan, the desired RPM for each fan calculated according to a respective RPM vs. Temperature profile stored for each fan as set forth herein.


Although the embodiments above have been described in considerable detail, other versions are possible. Numerous variations and modifications will become apparent to those skilled in the art once the above disclosure is fully appreciated. It is intended that the following claims be interpreted to embrace all such variations and modifications. Note the section headings used herein are for organizational purposes only and are not meant to limit the description provided herein or the claims attached hereto.

Claims
  • 1. A control circuit for controlling the rotational speed of a fan, the control circuit comprising: a storage unit to store operating data corresponding to an operational profile of the fan defined by an RPM (revolutions per minute) versus temperature function (RTPF), wherein the operating data comprises a respective temperature value and a respective RPM value for each respective operating point representing a change in slope of the RTPF, wherein each pair of consecutive operating points defines a respective temperature slot; anda processing unit configured to: communicate with the storage unit to retrieve the operating data;receive a present temperature value indicative of a present temperature reading;calculate a desired RPM value, wherein a corresponding operating point is identified when the present temperature value matches one of the respective temperature values of the stored operating points, and the desired RPM value is set to the respective RPM value corresponding to the matching one of the respective temperature values; select a matching temperature slot when the present temperature value does not match any of the respective temperature values of the stored operating points, wherein a pair of consecutive operating points corresponding to the present temperature value is identified, wherein the present temperature value is greater than a lower respective temperature value of the pair of consecutive operating points that defines the matching temperature slot, and lower than a higher respective temperature value of the pair of consecutive operating points that defines the matching temperature slot;calculate a desired RPM value according to a specified algorithm and the pair of consecutive operating points that defines the matching temperature slot; and output the desired RPM value.
  • 2. The control circuit of claim 1, further comprising a closed-loop fan controller configured to: receive a feedback signal indicative of a present speed of the fan;receive the desired RPM value; andcontrol a rotational speed of the fan according at least to the feedback signal and the desired RPM value.
  • 3. The control circuit of claim 1, wherein the calculation unit comprises: a storage unit configured to hold the operating data; anda processing unit configured to receive the present temperature value and calculate the desired RPM value according to the specified algorithm.
  • 4. The control circuit of claim 3, wherein the specified algorithm is an interpolation algorithm, and the processing unit is an arithmetic logic unit (ALU) configured to implement the interpolation algorithm.
  • 5. The control circuit of claim 1, wherein the control circuit is configured on an integrated circuit.
  • 6. The control circuit of claim 1, wherein the processing unit is further configured to: receive one or more additional parameter values corresponding to one or more respective parameter readings; andmodify the desired RPM value according to the one or more parameter values before providing the desired RPM value.
  • 7. A computer system comprising: a fan;memory configured to store operating data corresponding to an RPM (revolutions per minute) versus temperature operational profile function (RTPF) of the fan, wherein the operating data comprises a respective temperature value and a respective RPM value for each respective operating point representing a change in slope of the RTPF, wherein each pair of consecutive operating points defines a respective temperature slot; anda processing unit configured to: retrieve the operating data from the memory;receive a present temperature value indicative of a present temperature reading;calculate a desired RPM value, wherein a corresponding operating point is identified when the present temperature value matches one of the respective temperature values of the stored operating points, and the desired RPM value is set to the respective RPM value corresponding to the matching one of the respective temperature values;identify a present temperature slot when the present temperature value does not match any of the respective temperature values of the stored operating points, wherein a pair of consecutive operating points corresponding to the present temperature value is identified, wherein the present temperature value is greater than a lower respective temperature value of the pair of consecutive operating points that defines the present temperature slot, and lower than a higher respective temperature value of the pair of consecutive operating points that defines the present temperature slot;calculate a desired RPM value according to a specified algorithm and the pair of consecutive operating points that defines the present temperature slot; andoutput the desired RPM value; andclosed-loop fan controller configured to: receive a feedback signal indicative of a present speed of the fan;receive the desired RPM value; andcontrol a rotational speed of the fan according at least to the feedback signal and the desired RPM value.
  • 8. The system of claim 7, wherein the specified algorithm is executable to perform linear interpolation between the pair of consecutive operating points that defines the present temperature slot to obtain the desired RPM value.
  • 9. The system of claim 8, wherein the processing unit comprises: a comparator configured to compare the present temperature value to various ones of the respective temperature values of the stored operating points to identify which present temperature slot corresponds to the present temperature value.
  • 10. The system of claim 8, wherein the processing unit comprises: an arithmetic logic unit (ALU) configured to implement the linear interpolation; anda set of registers configured to store at least a portion of the data used in the ALU operations.
  • 11. The system of claim 7, wherein the processing unit is further configured to receive one or more environmental parameter readings, and adjust the desired RPM value according to the one or more environmental parameter readings prior to outputting the desired RPM value.
  • 12. The system of claim 7, further comprising one or more additional fans, wherein the memory is further configured to store additional operating data corresponding to a respective RTPF for each of the one or more additional fans;
PRIORITY CLAIM

This application is a divisional application of U.S. patent application Ser. No. 12/393,571 titled “RPM Controller Using Drive Profiles” filed Feb. 26, 2009, now U.S. Pat. No. 8,241,008 whose inventors are Chao-Ming Tsai and Lynn R. Kern, and which is hereby incorporated by reference in its entirety as though fully and completely set forth herein.

US Referenced Citations (127)
Number Name Date Kind
4124001 Samuel et al. Nov 1978 A
4382218 McVey May 1983 A
4459519 Erdman Jul 1984 A
4530395 Parker et al. Jul 1985 A
4667480 Bessler May 1987 A
4702413 Beckley et al. Oct 1987 A
4722669 Kundert Feb 1988 A
4727468 Maekawa Feb 1988 A
4828088 Mohan et al. May 1989 A
4856078 Konopka Aug 1989 A
4856286 Sulfstede et al. Aug 1989 A
4860231 Ballard et al. Aug 1989 A
4978896 Shah Dec 1990 A
5142286 Ribner et al. Aug 1992 A
5249741 Bistline et al. Oct 1993 A
5271558 Hampton Dec 1993 A
5307439 Enami Apr 1994 A
5379606 Katsuki et al. Jan 1995 A
5447414 Nordby et al. Sep 1995 A
5477827 Weisman et al. Dec 1995 A
5511724 Freiberger et al. Apr 1996 A
5563480 Okada Oct 1996 A
5687079 Bauer et al. Nov 1997 A
5727928 Brown Mar 1998 A
5825972 Brown Oct 1998 A
5872733 Buti et al. Feb 1999 A
5896736 Rajamani Apr 1999 A
5942866 Hsieh Aug 1999 A
5945870 Chu et al. Aug 1999 A
5962933 Henderson et al. Oct 1999 A
5983653 Lee Nov 1999 A
5990582 Henderson et al. Nov 1999 A
6029119 Atkinson Feb 2000 A
6147465 Hollenbeck Nov 2000 A
6182902 Shih Feb 2001 B1
6188189 Blake Feb 2001 B1
6194858 Chen Feb 2001 B1
6204623 Levy et al. Mar 2001 B1
6208538 Halamik et al. Mar 2001 B1
6211635 Kambe et al. Apr 2001 B1
6226324 Allstrom May 2001 B1
6247898 Henderson et al. Jun 2001 B1
6262549 Yang et al. Jul 2001 B1
6278392 Nestler Aug 2001 B1
6313441 Schaper et al. Nov 2001 B1
6366049 Chen et al. Apr 2002 B1
6380704 Chin Apr 2002 B1
6381406 Smith et al. Apr 2002 B1
6385395 Horng et al. May 2002 B1
6392372 Mays, II May 2002 B1
6447146 Skinner et al. Sep 2002 B1
6448896 Bankus et al. Sep 2002 B1
6481388 Yamamoto Nov 2002 B1
6481974 Horng et al. Nov 2002 B2
6519167 Nguyen Feb 2003 B1
6526333 Henderson et al. Feb 2003 B1
6528987 Blake et al. Mar 2003 B1
6563284 Teutsch et al. May 2003 B2
6601168 Stancil et al. Jul 2003 B1
6617815 Krief Sep 2003 B1
6646396 Brown et al. Nov 2003 B2
6650074 Vyssotski et al. Nov 2003 B1
6661679 Yang et al. Dec 2003 B1
6674369 Riddoch Jan 2004 B1
6693410 Terrien Feb 2004 B1
6703803 Ohiwa et al. Mar 2004 B2
6737860 Hsu et al. May 2004 B2
6747424 Malik et al. Jun 2004 B1
6757592 Henderson et al. Jun 2004 B1
6765422 Aslan et al. Jul 2004 B1
6778938 Ng et al. Aug 2004 B1
6793879 Bayer et al. Sep 2004 B2
6809497 Kudo et al. Oct 2004 B2
6812737 Sueyoshi et al. Nov 2004 B2
6815916 Horng et al. Nov 2004 B2
6874327 Wahler et al. Apr 2005 B1
6879120 Xi Apr 2005 B2
6885160 Takeuchi Apr 2005 B2
6919703 Marando et al. Jul 2005 B2
6924568 Dhuey Aug 2005 B2
6933697 Marando et al. Aug 2005 B2
6997684 Hahn et al. Feb 2006 B2
7026775 Kokubo et al. Apr 2006 B2
7029239 Marando et al. Apr 2006 B2
7038408 Lin et al. May 2006 B2
7048199 Melink May 2006 B2
7064511 Marando et al. Jun 2006 B2
7069172 Bekker et al. Jun 2006 B2
7075261 Burstein Jul 2006 B2
7076159 Bekker Jul 2006 B2
7092623 Bekker Aug 2006 B2
7096134 Miller, Jr. Aug 2006 B2
7109670 Rehm Sep 2006 B1
7132809 Chang Nov 2006 B1
7135826 Ma et al. Nov 2006 B2
7138781 Murray et al. Nov 2006 B2
7151349 Williamson et al. Dec 2006 B1
7211977 Squibb May 2007 B2
7218073 Huang et al. May 2007 B2
7245095 Hsu Jul 2007 B2
7279857 Babb et al. Oct 2007 B2
7295897 Marando et al. Nov 2007 B2
7340367 Inoue et al. Mar 2008 B2
7362060 Tembreull et al. Apr 2008 B2
7407046 Bhat et al. Aug 2008 B2
7550936 Kurita Jun 2009 B2
20030011332 Mays, II Jan 2003 A1
20030137267 Blake Jul 2003 A1
20030175124 Hahn et al. Sep 2003 A1
20030193307 Burstein Oct 2003 A1
20030234630 Blake Dec 2003 A1
20040001542 Miller, Jr. Jan 2004 A1
20040234376 Marando et al. Nov 2004 A1
20050040777 Bekker Feb 2005 A1
20050156544 Marando et al. Jul 2005 A1
20050186083 Marando et al. Aug 2005 A1
20050238336 Bekker Oct 2005 A1
20050256670 Bekker et al. Nov 2005 A1
20070075675 Hsu Apr 2007 A1
20070162160 Chang et al. Jul 2007 A1
20080036403 Ma et al. Feb 2008 A1
20080088263 Lee Apr 2008 A1
20080088463 Wu et al. Apr 2008 A1
20080095521 Chen et al. Apr 2008 A1
20080170947 Sutardja Jul 2008 A1
20090167220 Kanamori Jul 2009 A1
20100017039 Han et al. Jan 2010 A1
Non-Patent Literature Citations (6)
Entry
Taiwan Office Action, Application No. 099105471, 20 pages, Dec. 26, 2012.
Johns et al.; “Analog Integrated Circuit Design;” John, Wiley & Sons, 1996; p. 550.
Liu; “Tutorial on Designing Delta-Sigma Modulators: Part 1;” CommsDesign, Mar. 30, 2004, retrieved from Internet: <http://www.commsdesign—com/showArticle—ihtml?articleID=18402743>; 22 pages.
“dBCOOL Remote Thermal Controller and Voltage Monitor—ADM1027;” Analog Devices, 2003; 56 pages.
“LM63: ±1° C/±3° C Accurate Remote Diode Digital Temperature Sensor with Integrated Fan Control;” National Semiconductor Corporation, May 2003; 28 pages.
Ohr; “Analog IC vendors find ‘Intel Inside’ a safe bet;” EE Times, retrieved from Internet: <http://www.eetimes.com/electronics-news/4166002/Analog-IC-vendors-find-Intel-Inside-a-safe-bet>, Sep. 12, 2002; 3 pages.
Related Publications (1)
Number Date Country
20120330464 A1 Dec 2012 US
Divisions (1)
Number Date Country
Parent 12393571 Feb 2009 US
Child 13549600 US