A fan control method and server

By using the CPLD and fan control register to save the fan speed regulation when the BMC malfunctions or restarts, the problem of insufficient server heat dissipation caused by BMC restart is solved, achieving a balance between server thermal stability and performance, and reducing power consumption.

CN118934670BActive Publication Date: 2025-11-18HENAN KUNLUN TECH CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202411009885.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-07-25
Publication Date
2025-11-18
Estimated Expiration
2044-07-25

AI Technical Summary

Technical Problem

When the BMC restarts, it cannot control the fan, resulting in insufficient server cooling and a risk of overheating.

Method used

When the BMC restarts or is in an abnormal state, the CPLD controls the cooling fan by pre-stored fan speed control. The fan speed control is saved using the fan control register, and the BMC status is monitored through a watchdog mechanism to ensure the thermal stability and performance balance of the server.

Benefits of technology

When the BMC malfunctions or restarts, the CPLD controls the fan speed to ensure the server's thermal stability and performance, avoid overheating, and reduce power consumption.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118934670B_ABST
    Figure CN118934670B_ABST
Patent Text Reader

Abstract

The embodiment of the application provides a fan control method and a server, the method comprises the following steps: obtaining a fan control rotating speed of a cooling fan in real time; the fan control rotating speed is determined by a BMC through a preset fan speed control algorithm; the fan control rotating speed is stored in a fan control register; obtaining an operation state of the BMC; when the operation state of the BMC is an abnormal state, performing fan control on the cooling fan through the current fan control rotating speed stored in the fan control register. In this way, when the operation state of the BMC is an abnormal state, the heat stability of the server can be ensured without occupying a large amount of power consumption to make the performance of the server normal.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of servers, and in particular to a fan control method and a server. BACKGROUND

[0002] A baseboard management controller (BMC) is used to monitor the physical state of a server and provide corresponding remote management functions. The BMC plays a crucial role in controlling the thermal stability of the server during operation.

[0003] Currently, the BMC controls the fans corresponding to each hardware in the server to dissipate heat. When the BMC is restarted, it cannot continue to control the corresponding fans to ensure the heat dissipation of the server. When the restart time of the BMC is too long, the server may be at risk of overheating. SUMMARY

[0004] Embodiments of the present application provide a fan control method and a server, which can solve the problem of server heat dissipation during the restart of the BMC.

[0005] In a first aspect, embodiments of the present application provide a fan control method, which comprises:

[0006] obtaining a fan control speed of a cooling fan in real time; the fan control speed is determined by a BMC through a preset fan speed control algorithm; and the fan control speed is stored in a fan control register;

[0007] obtaining a running state of the BMC;

[0008] when the running state of the BMC is an abnormal state, performing fan control on the cooling fan through the current fan control speed stored in the fan control register.

[0009] In embodiments of the present application, the fan control speed determined by the BMC through the preset fan speed control algorithm is stored in the fan control register. When the running state of the BMC is an abnormal state, the cooling fan is immediately controlled through the current fan control speed stored in the fan control register. Since the current fan control speed stored in advance is obtained based on the preset fan control control algorithm, the stored speed can maintain the balance between the running performance and the thermal stability of the server within a certain period of time, thereby ensuring the safety of the server.

[0010] In a possible implementation manner, the obtaining of the running state of the BMC comprises:

[0011] determining that the running state of the BMC is the normal state when a timing reset signal is received within a preset first time length; the timing reset signal is a signal periodically output by the BMC running in the normal state based on the preset first time length;

[0012] determining that the running state of the BMC is the abnormal state when the timing reset signal is not received within the preset first time length.

[0013] In the present implementation, the acquisition of the running state of the BMC needs to be determined through the timing reset signal periodically sent by the BMC. When the running state of the BMC is the normal state, the preset first time length is timed, and the timing reset signal output by the BMC is periodically acquired to determine whether the state of the BMC at this time is the normal state. Since the BMC will periodically output the timing reset signal based on the preset first time length, when the timing reset signal is not received within the preset first time length, it indicates that the BMC cannot send the timing reset signal at this time, and the running state of the BMC at this time is determined to be the abnormal state. Conversely, if the timing reset signal sent by the BMC can be normally received within the preset first time length, it can be determined that the running state of the BMC is the normal state. By periodically acquiring the timing reset signal, the running state of the BMC can be monitored in real time, and the running stability of the server is improved.

[0014] In another possible implementation, the method further includes

[0015] receiving a first enable signal from the BMC; the first enable signal is a signal output when the running state of the BMC enters the normal state; the first enable signal is used to enable a first watchdog;

[0016] The determining that the running state of the BMC is the abnormal state when the timing reset signal is not received within the preset first time length includes:

[0017] Timing is performed by the first watchdog based on the preset first time length to determine whether the timing reset signal is received within the preset first time length;

[0018] determining that the running state of the BMC is the abnormal state when the timing reset signal is not received within the preset first time length.

[0019] In the present implementation, when the running state of the BMC enters the normal state, a first enabling signal sent by the BMC needs to be received to enable the first watchdog, so that the first watchdog is used to count based on a preset first time length, and whether the first watchdog receives a counting reset signal within the preset first time length is used to determine the running state of the BMC. By using the first enabling signal to enable the first watchdog, the running state of the BMC can be accurately monitored by the first watchdog.

[0020] In another possible implementation, after the fan control is performed on the cooling fan by using the fan control speed stored in the fan control register when the running state of the BMC is in the abnormal state, the method further includes:

[0021] determining whether the counting reset signal is received within a preset second time length;

[0022] when the counting reset signal is not received within the preset second time length, adjusting the fan control speed of the cooling fan to a maximum speed of the cooling fan.

[0023] In the present implementation, after it is determined that the running state of the BMC is in the abnormal state, the fan control register is used to control the cooling fan by using the fan control speed stored in the fan control register, and the next counting is started based on a preset second time length to determine whether the BMC can be normally started to enter the normal state within the preset second time length. If the counting reset signal of the BMC is not received after the preset second time length, it is determined that the BMC has not been normally started, and the reason why the BMC has not been normally started can be that an abnormality occurs in the running stage or the BMC is hung in the restarting stage. In this case, it is indicated that the running state of the BMC has not returned to the normal state, and the speed of the cooling fan is adjusted to the maximum speed of the cooling fan to prevent the hardware devices in the server from being overheated, so that the running safety of the server is ensured.

[0024] In another possible implementation, the determination of whether the counting reset signal is received within the preset second time length includes:

[0025] receiving a second enabling signal from the BMC; the second enabling signal is a signal output when the running state of the BMC enters the abnormal state; and the second enabling signal is used to enable a second watchdog;

[0026] the second watchdog is used to count based on the preset second time length to determine whether the counting reset signal is received within the preset second time length.

[0027] In the present implementation, when timing is performed based on the preset second time length, the BMC enables the second watchdog through the second enable signal, so that the second watchdog is enabled. By enabling the second watchdog and performing timing based on the preset second time length, it can be judged whether the timing reset signal from the BMC is received within the preset second time. By enabling the second watchdog, the running state of the BMC can be further monitored, so that the response can be performed in time when the BMC is abnormal.

[0028] In another possible implementation, the method further includes:

[0029] When the running state of the BMC is the normal state, the fan control speed output by the BMC in real time is used to control the cooling fan.

[0030] In the present implementation, when the running state of the BMC is the normal state, the fan control speed output by the BMC in real time is used to control the cooling fan. Since the preset fan speed control algorithm is built in the BMC, the control of the cooling fan can take into account the cooling and performance requirements of the server.

[0031] In another possible implementation, the preset fan speed control algorithm includes at least one of a PID control algorithm, an artificial intelligence algorithm, and a static threshold algorithm.

[0032] In a second aspect, the embodiments of the present application provide a fan control device, which includes:

[0033] A first obtaining module is configured to obtain the fan control speed of the cooling fan in real time. The fan control speed is determined by the BMC through a preset fan speed control algorithm, and the fan control speed is stored in a fan control register.

[0034] A second obtaining module is configured to obtain the running state of the BMC.

[0035] A control module is configured to, when the running state of the BMC is the abnormal state, control the cooling fan through the current fan control speed stored in the fan control register.

[0036] In a third aspect, the embodiments of the present application provide a server, which includes a BMC, a programmable device, and a cooling fan. The BMC is connected to the programmable device. The programmable device is connected to the cooling fan. The programmable device includes a fan control register.

[0037] The programmable device is configured to obtain the fan control speed of the cooling fan in real time. The fan control speed is determined by the BMC through a preset fan speed control algorithm, and the fan control speed is stored in the fan control register.

[0038] When the running state of the BMC is the abnormal state, the fan control is performed on the cooling fan by using the current fan control speed stored in the fan control register.

[0039] In a possible implementation, the BMC is configured to:

[0040] determine the fan control speed of the cooling fan according to a preset fan speed control algorithm, and send the fan control speed to the programmable device;

[0041] When the running state is the normal state, periodically send a timing reset signal to the programmable device based on a preset first time length.

[0042] In another possible implementation, the BMC is further configured to:

[0043] When the running state enters the abnormal state, send a second enable signal to the programmable device; the second enable signal is used to enable a second watchdog in the programmable device.

[0044] The fourth aspect provides a computer program product, when the computer program product runs on a computer, the computer program product causes the operation steps of any possible fan control method of the first aspect.

[0045] Any fan control method, fan control device, server or computer program product provided above is used to execute the corresponding method provided above, and thus the beneficial effects that can be achieved can refer to the beneficial effects in the corresponding method, which will not be described here. BRIEF DESCRIPTION OF DRAWINGS

[0046] To make the technical solutions in the embodiments or the prior art clearer, the accompanying drawings needed in the embodiments or the prior art description will be briefly introduced below. Obviously, the accompanying drawings in the following description are only some embodiments of the present application, and other accompanying drawings can be obtained by those skilled in the art without any creative effort on the premise of the accompanying drawings.

[0047] Figure 1 A structural schematic diagram of a server provided by the embodiments of the present application;

[0048] Figure 2 A fan control method schematic diagram when the BMC is in an abnormal state in an actual application scenario provided by the embodiments of the present application;

[0049] Figure 3 A fan control method schematic diagram when the BMC is in a normal state in an actual application scenario provided by the embodiments of the present application;

[0050] Figure 4 A flowchart of a fan control method provided by an embodiment of the present application is shown in FIG. 1.

[0051] Figure 5 A flowchart of a fan control method in an actual application scenario provided by an embodiment of the present application is shown in FIG. 2. DETAILED DESCRIPTION

[0052] It should be noted that the embodiments described in the present application are only part of the embodiments of the present application, not all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those skilled in the art without creative labor fall within the scope of protection of the present application.

[0053] In order to make the following embodiments clear, the technical terms involved in the present application are introduced first.

[0054] BMC is a microcontroller on a server or some high-end personal computer motherboard, mainly responsible for monitoring and managing various parameters of system hardware, such as temperature, voltage, fan speed, etc.

[0055] Complex Programmable Logic Device (CPLD) is a programmable logic device used to implement logic functions in digital circuit design.

[0056] General-Purpose Input / Output (GPIO) is a general-purpose port interface that can be used for computers or embedded systems to interact with external devices or the outside world. GPIO pins can be configured by software as input or output mode, respectively for reading external signals (such as the press of a button) or generating signals (such as driving an LED).

[0057] This application provides a fan control method and a server. In the fan control method, the BMC (Browser Control Center) determines the operating speed of the cooling fans in the server based on a pre-set fan speed control algorithm during operation and transmits the determined fan speed to the CPLD (CPLD Controller) in real time. The CPLD monitors the operating status of the BMC in real time. When the BMC enters a restart state, the CPLD controls the speed of the cooling fans in the server based on the fan speed sent by the BMC in real time. Since the fan speed control algorithm can determine the power consumption of the fans in real time based on the current thermal load of the server and the pre-set operating temperature, when the CPLD controls the server temperature through the fan speed fed back by the BMC during the BMC restart phase, it can ensure the thermal stability of the server without consuming a large amount of power to ensure normal server performance. This solution reduces the overall power consumption of the server while ensuring stable heat dissipation.

[0058] This application provides a server, such as Figure 1 As shown, the server includes a BMC, a CPLD, and multiple FAN1-FANn fans, where FAN represents the server's cooling fans. The BMC is connected to the CPLD. For example, the BMC and CPLD can be connected via a local bus. A local bus is a high-speed data transmission channel that allows direct communication between hardware devices without going through the Central Processing Unit (CPU), thus reducing latency and improving data processing efficiency. Using a local bus facilitates efficient, low-latency communication between the BMC and CPLD. Besides the local bus, communication between the BMC and CPLD can also be accomplished via an I2C (Inter-Integrated Circuit) bus, an SPI (Serial Peripheral Interface) bus, and a PCIe (Peripheral Component Interconnect Express) bus.

[0059] The CPLD connects to multiple fans (FANs) within the server. For example, the CPLD can connect to multiple fans via GPIO interfaces. In practical applications, the BMC can determine the fan speed based on the actual power consumption of the device and transmit the adjusted fan speed to the CPLD. After receiving the adjusted fan speed, the CPLD controls the fan speed of FAN1-FAN.

[0060] For different server models and categories, the various hardware devices within the server may share a common cooling fan, or each hardware device may have its own dedicated cooling fan. Figure 1 Taking the example of each hardware device corresponding to the same cooling fan, this embodiment does not specifically limit the number of cooling fans and the correspondence between hardware devices.

[0061] To facilitate understanding of the technical solutions provided in the embodiments of this application, the following will introduce a fan control method provided in the embodiments of this application in conjunction with a practical application scenario.

[0062] See Figure 2 and Figure 3 , Figure 2 This is a schematic diagram illustrating a fan control method for a BMC (Browser Control Center) in an abnormal state in a practical application scenario, as provided in an embodiment of this application. Figure 3 This is a schematic diagram of a fan control method in a practical application scenario where the BMC is in a normal state, provided by an embodiment of this application. The fan control method proposed in this application can be further understood by combining the two.

[0063] In practical applications, Server 101 can be a server with cooling capabilities. It contains multiple hardware devices, which are heat-generating components such as the CPU, hard drive, memory card, and network card. Each hardware device has a specific thermal load and a preset operating temperature. Under the preset operating temperature, the corresponding hardware device can perform optimally. Therefore, the BMC (Body Control Controller) combines the specific thermal load of each hardware device with the preset operating temperature in real time to control the temperature of the cooling fans in the server.

[0064] A server includes multiple hardware devices, such as Figure 3 As shown, during server operation, the BMC (Body Control Controller) acquires real-time temperature data of various hardware devices within the server via internal temperature sensors. The BMC has a pre-set fan speed control algorithm. During operation, the BMC is responsible for controlling the server's temperature by controlling the speed of the cooling fans in each hardware device using this algorithm. During BMC operation, the CPLD (CPLD Detector and Detector) monitors the BMC's status in real-time. When the BMC determines the fan speed for the cooling fans using its internal algorithm, it sends this determined speed to the CPLD so that the CPLD can control the fan speed accordingly.

[0065] It should be noted that fan speed control can include either a speed value or a PWM value (also known as a pulse width modulation signal).

[0066] During the process of transmitting the real-time determined fan speed control to the CPLD, the CPLD saves the real-time fan speed control to its internal fan control register. This allows the CPLD to control the cooling fan based on the fan speed control stored in the fan control register when the BMC enters a restart or abnormal state and is unable to generate the fan speed control.

[0067] Since the CPLD receives multiple fan speed control values ​​from the BMC in real time, when the BMC enters a restart or abnormal state and is unable to generate fan speed control values, the CPLD can control the cooling fan based on the last received current fan control speed stored in the fan register.

[0068] In some embodiments, after receiving the fan speed control from the BMC, the CPLD replaces the old fan speed control stored in the fan control register with the newly received fan speed control. That is, it deletes the previously stored fan speed control in the fan control register and stores the newly received fan speed control. This eliminates the need to store multiple fan speed control values ​​in the fan control register. Firstly, this avoids too many fan speed control values ​​occupying the register's space. Secondly, when the CPLD controls the cooling fan based on the fan speed control stored in the fan control register, since the register only stores the latest fan speed control, it can directly use the latest control speed to control the cooling fan, without needing to select the latest fan speed control from multiple options. This makes the process simpler and more efficient.

[0069] like Figure 2 As shown, when the BMC enters a restart or abnormal state, it is unable to generate fan speed control. In this case, the fan speed control used to regulate the fans is the one pre-saved by the CPLD. During normal operation, the BMC sends the fan speed determined by the preset fan speed control algorithm to the CPLD in real time. This fan speed ensures stable hardware temperature without affecting the overall server performance load. Therefore, when the CPLD controls the cooling fans based on the pre-saved fan speed, it can achieve the same control effect as the BMC, thus maintaining a balance between server performance and thermal stability, and ensuring server safety.

[0070] Specifically, preset fan speed control algorithms can include static threshold algorithms, proportional-integral-derivative (PID) control algorithms, and intelligent algorithms. All of these methods can control fan speed based on the temperature and hardware conditions of each hardware device within the server. Among these, the static threshold algorithm is a relatively basic control algorithm. Its core lies in controlling the cooling fan speed by setting a fixed temperature threshold. When the temperature value detected by the sensor exceeds the set threshold, the fan speed is adjusted to the level corresponding to the threshold. Different comparisons between the set thresholds correspond to different fan speed control levels.

[0071] The core of the PID control algorithm lies in calculating the difference between the set value (such as the target temperature of the hardware device) and the actual value (the current temperature of the hardware device), and then performing proportional, integral, and derivative calculations on this difference to control the fan speed.

[0072] Intelligent algorithms, including fuzzy logic control and neural network control, can mimic the decision-making process of a human operator when controlling fan speed, thus achieving more intelligent and adaptive fan control. Intelligent algorithms can automatically adjust their parameters and optimize their fan speed control strategy in the face of complex temperature and load variations.

[0073] The following section will describe a fan control method provided by an embodiment of this application with reference to the accompanying drawings.

[0074] See Figure 4 The figure is a flowchart illustrating a fan control method provided in an embodiment of this application, specifically including the following steps:

[0075] S101: Real-time acquisition of the fan speed of the cooling fan; the fan speed is determined by the BMC through a preset fan speed control algorithm; the fan speed is stored in the fan control register.

[0076] In this step, the CPLD acquires the fan speed control from the BMC in real time and saves the acquired fan speed control in the CPLD's fan control register. Through its internal fan control register, the CPLD can effectively store the fan speed control and, when the BMC enters an abnormal operating state, control the server's cooling fans using the fan speed control stored in the register.

[0077] During normal operation of the BMC, fan control within the server is handled by the BMC. The BMC periodically determines the fan speed based on temperature data from various hardware devices within the server and a pre-set fan speed control algorithm. This algorithm-determined fan speed then controls the server's cooling fans. It's important to note that after determining the appropriate fan speed based on the temperature data of each hardware device, the BMC sends this information to the CPLD, allowing the CPLD to periodically receive the fan speed settings from the BMC.

[0078] In the process of BMC controlling the cooling fans, a preset fan speed control algorithm is used to determine the specific fan speed, and this specific fan speed is then used to control the cooling fans. In practical applications, BMC needs to use the preset fan speed control algorithm and the server's current temperature data to determine the speed of each cooling fan in real time, and then use this to control the cooling fans within the server. Therefore, the fan speed control speed is a value dynamically determined by BMC based on the temperature data of each hardware device on the server and the preset fan speed control algorithm.

[0079] During the BMC's control of the server's cooling fans, the CPLD obtains the fan speed control determined by the BMC in real time. When the BMC malfunctions or enters an abnormal state such as a restart, the CPLD can temporarily control the cooling fans by using the fan speed control stored in the fan control register, thus temporarily balancing the server's cooling and energy consumption requirements. The CPLD obtains the fan speed control from the BMC through a configured communication interface, which is determined by the communication protocol between the CPLD and the BMC. For example, if the CPLD and BMC communicate using the I2C protocol, the CPLD obtains the fan speed control sent by the BMC through the I2C interface. The communication interface used by the CPLD when obtaining the fan speed control is determined by its communication protocol with the BMC.

[0080] Temperature data for various hardware devices within the server can be obtained through hardware temperature sensors located in key areas such as the CPU, GPU, memory modules, and motherboard. BMC determines fan speed adjustments based on a preset fan speed control algorithm. This algorithm is tailored to the specific thermal load of each hardware device, its expected operating temperature, and actual requirements. The fan speed control algorithm can be determined by the server's overall thermal performance requirements, noise limits, energy consumption considerations, and the algorithm's complexity. Therefore, the preset fan speed control algorithm will vary depending on different requirements and constraints.

[0081] For example, when a low-complexity algorithm that can quickly control the fan is needed, the aforementioned static threshold algorithm can be used for calculation. This algorithm sets one or more temperature thresholds; when the temperature sensor reading reaches or exceeds these thresholds, the fan speed increases; when the temperature drops to another lower threshold, the fan speed decreases. While this algorithm can balance the server's thermal stability and performance, the resulting fan control may lead to frequent fan speed changes, resulting in some noise. Therefore, provided that the preset fan speed control algorithm can ensure the server's thermal stability and performance, a corresponding preset fan speed control algorithm can be set according to actual needs; this embodiment does not impose specific limitations on this.

[0082] S102: Obtain the operating status of the BMC.

[0083] During the real-time acquisition of fan speed control data from the BMC, the CPLD also needs to acquire the BMC's operating status. In practical applications, the BMC's operating status is divided into normal and abnormal states. When the BMC is in an abnormal state, it may be restarting or experiencing operational malfunctions, making it impossible to control the cooling fan using the preset fan speed control algorithm.

[0084] The BMC's operating status is determined by periodically sending a timer reset signal from the BMC to the CPLD. When the BMC is in a normal operating state, the CPLD needs to time for a preset first duration and periodically acquire the timer reset signal output by the BMC to determine whether the BMC is in a normal state.

[0085] Since the BMC periodically outputs a timing reset signal to the CPLD based on a preset first duration, if the CPLD does not receive the timing reset signal within the preset first duration, it indicates that the BMC is unable to send a timing reset signal, and the BMC's operating state can be determined to be abnormal. Conversely, if the CPLD can normally receive the timing reset signal sent by the BMC within the preset first duration, the BMC's operating state can be determined to be normal.

[0086] The CPLD can perform timing through its internal watchdog circuit or watchdog program. The timing reset signal sent by the BMC to the CPLD can be a watchdog feed signal, which can reset the timing of the corresponding watchdog circuit or watchdog program. When the BMC enters the normal operating state, the CPLD needs to receive a first enable signal sent by the BMC to activate the watchdog circuit or watchdog program within the CPLD. This controls the watchdog within the CPLD to time based on a preset first duration. The operating state of the BMC is determined by whether the watchdog receives a timing reset signal within the preset first duration.

[0087] Taking the watchdog reset signal as the watchdog feed signal as an example, after the BMC enters normal operation, the BMC needs to send a first enable signal to the CPLD to enable the watchdog circuit or watchdog program in the CPLD. After the watchdog is activated, the watchdog in the CPLD starts timing based on a preset first duration. Since the BMC periodically sends a watchdog feed signal to the CPLD during normal operation, when the watchdog in the CPLD receives the watchdog feed signal from the BMC, it can reset its timing and restart timing based on the preset first duration. The watchdog in the CPLD needs to use the first preset duration as the watchdog feed cycle to determine whether it has received the watchdog feed signal from the BMC within the specified cycle. If the CPLD receives the watchdog feed signal from the BMC within the preset cycle, the BMC's operating state is determined to be normal. If the CPLD does not receive the watchdog feed signal from the BMC within the preset cycle, the BMC is in an abnormal state.

[0088] It should be noted that the execution order of S101 and S102 is not limited. S101 can be executed first and then S102, or S102 can be executed first and then S101, or both S101 and S102 can be executed simultaneously.

[0089] S103: When the BMC is in an abnormal operating state, the cooling fan is controlled by the current fan speed stored in the fan control register.

[0090] If the CPLD does not receive a timer reset signal from the BMC within a preset first time period, it determines that the BMC is in an abnormal operating state. In this case, since the CPLD stores the fan speed control data sent by the BMC in real time in the fan control register during the BMC's operation, when the CPLD determines that the BMC is in an abnormal operating state, it can control the speed of the cooling fans in the server by using the current fan speed control data stored in the fan control register, thereby temporarily balancing the server's cooling and performance requirements.

[0091] When the BMC is in an abnormal operating state, it indicates that the BMC is unable to properly control the speed of the cooling fans in the server using the preset fan speed control algorithm. Since the fan speed determined by the preset fan speed control algorithm effectively ensures the server's cooling and energy consumption requirements, when the CPLD controls the cooling fans through the fan speed adjustment stored in the fan control register, it can temporarily possess the BMC's ability to control the cooling fan speed, thereby setting a reasonable fan speed to balance the server's thermal stability and its performance.

[0092] For example, during the process of CPLD controlling the speed of a cooling fan, a pulse width modulation (PWM) signal can be used to transmit the set fan speed to the cooling fan, thereby achieving fan control. For instance, when the fan speed control includes a speed value, the CPLD controls the cooling fan by obtaining the current fan speed value stored in the fan control register, determining the corresponding PWM signal, and controlling the cooling fan based on the PWM signal. As another example, when the fan speed control includes a PWM value, the CPLD controls the cooling fan by obtaining the PWM value stored in the fan control register, and controlling the cooling fan based on the PWM value. This embodiment does not specifically limit the method of CPLD control of the cooling fan.

[0093] As mentioned in step S103 above, when the BMC's operating state is determined to be abnormal, the BMC's operating state may be a restart state or an abnormal state. When the BMC is in a restart state, since the BMC can effectively restart after a certain period of time and regain control of the cooling fans, during this restart period, because the BMC restart time is usually short, even if the CPLD controls the cooling fans according to the previously stored fan speed settings, it is difficult for the various hardware devices in the server to experience a sudden increase in thermal equilibrium demand, thus preventing the server from overheating.

[0094] Conversely, if the BMC is in an abnormal state, it indicates that the BMC cannot complete a restart within a certain time. In this case, if the CPLD continues to control the cooling fans using the previously determined fan speed settings, the temperature of various hardware devices within the server may gradually rise until overheating due to the BMC's inability to restart in time, thereby jeopardizing the server's operational safety.

[0095] Therefore, to address this issue, when the BMC is in an abnormal operating state, and the CPLD controls the cooling fan using pre-saved fan speed settings, a secondary timing process is required via the CPLD. If the BMC fails to start after a certain period, the cooling fan speed will be adjusted to its maximum to ensure server operational safety.

[0096] In one possible implementation, after step S103, the following two steps can also be used to ensure the security of server operation, as shown below:

[0097] Step 1: Determine whether the timer reset signal is received within the preset second time period;

[0098] After determining that the BMC's operating state is abnormal, during the process of the CPLD controlling the cooling fan through the fan speed control register, it is necessary to start the next timing based on a preset second duration to determine whether the BMC can start normally and enter the normal state within the preset second duration. When the BMC's operating state enters the normal state, the BMC will periodically output a timing reset signal based on a preset first duration. After the CPLD receives the timing reset signal, it can determine that the BMC's operating state is normal. The cooling fan's heat dissipation control can be completed by the BMC, and it is no longer necessary to control the cooling fan through the speed control register stored in the fan control register. This prevents the cooling fan from cooling at a fixed fan speed for a long time, which could lead to the risk of server overheating.

[0099] Specifically, when the CPLD performs a second timing based on a preset second duration, the BMC sends a second enable signal to the CPLD, thereby enabling the second watchdog timer in the CPLD. The CPLD, by using the enabled second watchdog timer and timing based on the preset second duration, can determine whether it has received a timing reset signal from the BMC within the preset second time period.

[0100] Step 2: If the timer reset signal is not received within the preset second time period, adjust the fan speed control of the cooling fan to the maximum speed of the cooling fan.

[0101] If the CPLD does not receive the BMC timer reset signal after the preset second time interval, it is determined that the BMC has still not started normally. The reason for the BMC's failure to start normally may be an abnormality during operation or a hang during the restart phase. Under this condition, it indicates that the BMC's operating status has not returned to normal. At this time, the cooling fan speed is adjusted to its maximum speed to prevent the hardware devices inside the server from overheating, thereby ensuring the server's operational safety.

[0102] Similarly, if the CPLD receives a dog feed signal from the BMC within this fixed time period, it indicates that the BMC has restarted successfully. At this time, the cooling fan can be controlled again through the BMC, thus balancing the server's cooling and performance requirements.

[0103] In other embodiments, when the CPLD acquires the fan speed control of the cooling fan in real time, it also receives the temperature data of each hardware device corresponding to that fan speed control and records the mapping relationship between the temperature data of each hardware device and the fan speed control. Since the BMC sends the fan speed control and the corresponding temperature data of each hardware device to the CPLD in real time, the CPLD can record multiple mapping relationships between the temperature data of each hardware device and the fan speed control as a mapping table. When the BMC is in an abnormal operating state, the CPLD controls the cooling fan using the current fan speed control stored in the fan control register. The current fan speed control is the latest fan speed control sent by the BMC. When the CPLD does not receive the timer reset signal after the preset second time interval, it can acquire the current temperature data of each hardware device and determine the temperature data of the target hardware devices in the mapping table based on the current temperature data of each hardware device, wherein the temperature data of the target hardware devices is equal to or slightly greater than the temperature data of the current hardware devices. The cooling fan is then controlled according to the fan speed control corresponding to the temperature data of the target hardware devices.

[0104] The statement "the temperature data of each target hardware device is equal to or slightly greater than the temperature data of the current hardware device" means that the temperature data of each target hardware device is exactly the same as the temperature data of its corresponding current hardware device; or, the temperature data of each target hardware device is partially equal to the temperature data of its corresponding current hardware device, and partially slightly greater than the temperature data of its corresponding current hardware device; or, the temperature data of each target hardware device is slightly greater than the temperature data of its corresponding current hardware device. In the context of "the target hardware device's temperature data is slightly greater than the current hardware device's temperature data," the target hardware device is the one whose temperature data is closest to the temperature data of the current hardware device among all hardware devices whose temperature data is greater than the current hardware device's.

[0105] Understandably, since the CPLD did not receive the BMC's timer reset signal after the preset second duration, it was determined that the BMC had not started normally. Since the BMC had been inoperable for a considerable period, during which time the temperature of various hardware devices might rise or fall due to changes in operational needs, the previous fan speed control did not match the cooling requirements. At this point, the CPLD could obtain the current temperature data of each hardware device and query the target hardware device's temperature data (equal to or slightly higher than the current temperature data) from the mapping table to determine the corresponding fan speed control. Controlling the cooling fans based on this fan speed control could meet the server's cooling requirements. Furthermore, compared to directly setting the cooling fans to maximum, this effectively avoided unnecessary energy waste, further improving energy efficiency and achieving energy savings.

[0106] The following section, with reference to the accompanying drawings, will further describe the fan control method of this application in a practical application scenario:

[0107] See Figure 5 This figure is a flowchart illustrating a fan control method in a practical application scenario provided by an embodiment of this application. Figure 5 The flowchart specifically includes the following steps:

[0108] S401: BMC starts;

[0109] When the server is powered on, the BMC will start up. In actual application scenarios, the BMC can perform self-tests and load the management firmware corresponding to each hardware device in the server to ensure that the BMC can monitor the status of each hardware device in the server in real time and control its temperature.

[0110] S402: BMC starts the dog-feeding process;

[0111] After the BMC starts up, and provided that the CPLD is running normally, the BMC starts the dog-feeding process, thereby periodically sending dog-feeding signals to the CPLD.

[0112] Understandably, the CPLD includes Watchdog 1, also known as the first watchdog. Before the BMC starts the watchdog feeding process, the BMC sends an enable signal to the CPLD to enable Watchdog 1, thereby controlling Watchdog 1 to start so that Watchdog 1 can receive the watchdog feeding information sent by the BMC and monitor the status of the BMC.

[0113] In some embodiments, the CPLD also includes a watchdog 2, also known as a second watchdog, which can send a de-enable signal to the CPLD after the BMC starts up, in order to turn off the watchdog 2.

[0114] Understandably, watchdog 1 and watchdog 2 can be presented as circuits or as programs running on a CPLD.

[0115] S403:BMC determines the fan speed based on a preset fan speed control algorithm.

[0116] After the BMC starts, it determines the fan speed based on a preset fan speed control algorithm built into the BMC and the actual temperature data of each hardware device within the server. The preset fan speed control algorithm determines the set fan speed based on the thermal load of the server's hardware devices and their corresponding preset operating temperatures. The thermal load of the hardware devices is determined by temperature sensors on the corresponding hardware devices within the server. By analyzing the temperature monitoring values ​​from multiple sensors, the temperature trend of the hardware devices can be accurately determined, showing the temperature changes of the hardware devices within the current time period. This is further combined with the hardware device's performance and material characteristics to determine the thermal load of the hardware devices.

[0117] Furthermore, the preset operating temperature of the hardware device can also be set based on the expected working performance of the hardware device and the characteristics of the hardware materials itself.

[0118] S404: The BMC controls the cooling fan by adjusting its speed.

[0119] By employing a preset fan speed control algorithm, the cooling fan speed is controlled based on the thermal load of each hardware module within the server and the preset operating temperatures of those modules. This allows for more precise fan speed management with real-time temperature monitoring data feedback, thereby preventing unnecessary power consumption while ensuring the server doesn't overheat, achieving a balance between server thermal stability and performance.

[0120] S405: The CPLD receives the fan speed control and the first dog feed signal from the BMC.

[0121] After the BMC starts up, the CPLD will receive the fan speed control from the BMC in real time. The CPLD will also receive the first dog feed signal from the BMC, and start the first timer after receiving the first dog feed signal.

[0122] S406: The CPLD responds to the first dog feed signal and resets the first timer.

[0123] During the initial timing of the CPLD, the BMC simultaneously sends a corresponding watchdog feed signal to the CPLD. Since watchdog 1 starts its initial timing when the CPLD receives the watchdog feed signal, when the CPLD receives the BMC's watchdog feed signal again, its internally activated watchdog 1 will reset its timing via the BMC's watchdog feed signal. Successful reset of watchdog 1 within a preset first time period indicates that the BMC is operating normally.

[0124] S407: The CPLD determines whether the first timer has expired in order to determine whether the BMC's operating status is abnormal.

[0125] During the CPLD's monitoring of the BMC's operational status, the CPLD checks if the initial timer exceeds the expected initial duration. Since the BMC performs a watchdog timer operation on the CPLD, when the BMC is running normally, the CPLD resets its timer upon receiving the watchdog timer signal again. However, when the BMC enters an abnormal state, the CPLD's initial timer is not reset because the BMC cannot perform timely watchdog timer operations. When the initial timer within the CPLD exceeds the preset initial duration, it indicates that the BMC's operational status is abnormal.

[0126] Under this monitoring mechanism, the CPLD can accurately determine whether the BMC is operating normally and respond promptly to any potential faults within the BMC. When an operational anomaly occurs within the BMC, the CPLD takes over the control of the cooling fans to ensure the safety of the server.

[0127] Because the BMC performs a watchdog timer operation on the CPLD simultaneously while controlling the cooling fan speed, if the BMC enters a restart phase or an abnormal state and is unable to perform the corresponding watchdog timer operation, the CPLD's internal first timer will time out because it has not received the corresponding watchdog timer operation in time. At this point, the CPLD can determine that the BMC's operating state has entered an abnormal state and control the cooling fan speed based on the previously received set fan speed.

[0128] S408: The CPLD controls the cooling fan by adjusting its speed.

[0129] If the BMC is found to be in an abnormal operating state, the CPLD can control the cooling fan by storing the fan speed control information in its internal fan register, thereby balancing the server's cooling and performance requirements for a certain period of time.

[0130] S409: Determine whether a dog-feeding signal has been received within a preset second time period via CPLD.

[0131] Furthermore, during the process of the CPLD controlling the fan based on the pre-stored fan speed control, the CPLD can simultaneously send an enable signal to its internal watchdog timer 2 to control the watchdog timer 2 to start timing based on a preset second duration. This determines whether a "feed" signal has been received within the preset second duration. It is understandable that after the BMC starts up normally and enters normal operation, the BMC will calculate the fan speed control according to the preset fan speed control algorithm and send the fan speed control and the "feed" signal to the CPLD. Therefore, during the process of the CPLD controlling the cooling fan using the fan speed control pre-stored in the fan control register, it needs to simultaneously send an enable signal to the watchdog timer 2 to start timing. The watchdog timer 2 then determines whether a "feed" signal has been received within the preset second duration, thereby preventing the server from overheating.

[0132] Correspondingly, if the CPLD receives a dog-feed signal from the BMC within a preset second time period, it indicates that the BMC's operating status has returned to normal. At this time, the BMC will recalculate the fan speed using a preset fan control algorithm and send it to the CPLD. The CPLD can then control the cooling fan again based on the received fan speed, without needing to control the cooling fan based on the fan speed pre-stored in the fan control register.

[0133] S410: If the CPLD does not receive a dog-feed signal from the BMC within a preset second time period, adjust the cooling fan to its maximum speed.

[0134] If the watchdog 2 in the CPLD still does not receive a feed signal from the BMC within the preset second time period, it means that the BMC is still in an abnormal state. In order to ensure the safety of the server, the CPLD will increase the speed of the cooling fan to its maximum speed to ensure the safety of the server and prevent hardware damage caused by overheating.

[0135] It should be noted that in this embodiment, the CPLD monitors the BMC's operating status through the BMC's watchdog timer process and the first timer of the watchdog circuit 1 in the CPLD. When the CPLD's first timer expires, it indicates that the watchdog timer has not been fed in time, and the BMC is in a restart or abnormal phase, thus completing the monitoring of the BMC's operating status. In practical applications, the CPLD can also monitor the BMC's operating status through timed status queries of the BMC or through the event-driven mechanism within the BMC. The monitoring method using the CPLD's timed counting and the BMC's watchdog timer process in the above embodiment is only one feasible approach. This embodiment does not specifically limit the method by which the CPLD monitors the BMC module's operating status.

[0136] The above describes some specific implementations of the fan control method provided in this application. Based on this, this application also provides a corresponding server. The server provided in this application will be described below in conjunction with the above fan control method.

[0137] This application also provides corresponding devices and computer storage media for implementing the solutions provided in this application.

[0138] The device includes a memory and a processor. The memory is used to store instructions or code, and the processor is used to execute the instructions or code to cause the device to perform the data transmission method described in any embodiment of this application.

[0139] The computer storage medium stores code, and when the code is executed, the device running the code implements the data transmission method described in any embodiment of this application.

[0140] In the embodiments of this application, the terms "first" and "second" (if they exist) are used only as name identifiers and do not represent the order of first and second.

[0141] As can be seen from the above description of the embodiments, those skilled in the art can clearly understand that all or part of the steps in the methods of the above embodiments can be implemented by means of software plus a general-purpose hardware platform. Based on this understanding, the technical solution of this application can be embodied in the form of a software product. This computer software product can be stored in a storage medium, such as a read-only memory (ROM) / RAM, magnetic disk, optical disk, etc., including several instructions to cause a computer device (which may be a personal computer, a server, or a network communication device such as a router) to execute the methods described in various embodiments or some parts of the embodiments of this application.

[0142] The various embodiments in this specification are described in a progressive manner. Similar or identical parts between embodiments can be referred to mutually. Each embodiment focuses on its differences from other embodiments. In particular, the apparatus embodiments are basically similar to the method embodiments, so the description is relatively simple; relevant parts can be referred to the descriptions in the method embodiments. Some or all of the modules can be selected to achieve the purpose of this embodiment according to actual needs. Those skilled in the art can understand and implement this without creative effort.

[0143] The above description is merely an exemplary implementation of this application and is not intended to limit the scope of protection of this application.

Claims

1. A fan control method, characterized in that, The method includes: The fan speed of the cooling fan is acquired in real time; the fan speed is determined by the Baseboard Management Controller (BMC) through a preset fan speed control algorithm; the fan speed is stored in the fan control register. Obtain the operating status of the BMC; When the BMC is in an abnormal operating state, the cooling fan is controlled by storing the current fan speed in the fan control register. The process of obtaining the operating status of the BMC includes: When a timer reset signal is received within a preset first duration, the operating state of the BMC is determined to be normal; the timer reset signal is a signal periodically output by the BMC operating in the normal state based on the preset first duration. If the timer reset signal is not received within the preset first time period, the operating state of the BMC is determined to be the abnormal state. The fan control register includes a mapping table, which is used to store a one-to-one mapping relationship between multiple fan speed control speeds and multiple hardware device temperatures; When the BMC is in an abnormal operating state, after controlling the cooling fan by adjusting the fan speed stored in the fan control register, the method further includes: Determine whether the timing reset signal is received within a preset second time period; If the timing reset signal is not received within the preset second time period, the current temperature data of each hardware device is acquired, and the current temperature data of each target hardware device in the mapping table is determined based on the current temperature data of each hardware device; wherein, the current temperature data of each target hardware device is equal to or greater than the current temperature data of each hardware device. The cooling fan is controlled by adjusting its speed according to the current temperature data of each of the target hardware devices.

2. The method according to claim 1, characterized in that, The method further includes: Receive a first enable signal from the BMC; the first enable signal is a signal output when the BMC's operating state enters the normal state; the first enable signal is used to enable the first watchdog timer. When the timer reset signal is not received within the preset first time period, determining the BMC's operating state as the abnormal state includes: The first watchdog timer performs a timer based on the preset first duration to determine whether the timer reset signal is received within the preset first duration. If the timer reset signal is not received within the preset first time period, the operating state of the BMC is determined to be the abnormal state.

3. The method according to claim 1, characterized in that, The step of determining whether the timing reset signal is received within a preset second time period includes: Receive a second enable signal from the BMC; the second enable signal is a signal output when the BMC's operating state enters the abnormal state; the second enable signal is used to enable the second watchdog timer. The second watchdog timer performs a timer based on the preset second duration to determine whether the timer reset signal is received within the preset second duration.

4. The method according to claim 1, characterized in that, The method further includes: When the BMC is in normal operating condition, the cooling fan is controlled by the fan speed control output by the BMC in real time.

5. The method according to claim 1, characterized in that, The preset fan speed control algorithm includes at least one of the following: PID control algorithm, artificial intelligence algorithm, and static threshold algorithm.

6. A server, characterized in that, The server includes a BMC, a programmable device, and a cooling fan; the BMC is connected to the programmable device; the programmable device is connected to the cooling fan; the programmable device includes a fan control register; The programmable device is used to acquire the fan speed control of the cooling fan in real time; the fan speed control is determined by the BMC through a preset fan speed control algorithm; the fan speed control is stored in the fan control register; When the BMC is in an abnormal operating state, the cooling fan is controlled by storing the current fan speed in the fan control register. The programmable device is also used for: Obtain the operating status of the BMC; The process of obtaining the operating status of the BMC includes: When a timer reset signal is received within a preset first duration, the operating state of the BMC is determined to be normal; the timer reset signal is a signal periodically output by the BMC operating in the normal state based on the preset first duration. If the timer reset signal is not received within the preset first time period, the operating state of the BMC is determined to be the abnormal state. The fan control register includes a mapping table, which is used to store a one-to-one mapping relationship between multiple fan speed control speeds and multiple hardware device temperatures; When the BMC is in an abnormal operating state, after controlling the cooling fan by adjusting the fan speed stored in the fan control register, the process further includes: Determine whether the timing reset signal is received within a preset second time period; If the timing reset signal is not received within the preset second time period, the current temperature data of each hardware device is acquired, and the current temperature data of each target hardware device in the mapping table is determined based on the current temperature data of each hardware device; wherein, the current temperature data of each target hardware device is equal to or greater than the current temperature data of each hardware device. The cooling fan is controlled by adjusting its speed according to the current temperature data of each of the target hardware devices.

7. The server according to claim 6, characterized in that, The BMC is used for: According to the preset fan speed control algorithm, the fan speed of the cooling fan is determined and the fan speed is sent to the programmable device. When the device is in normal operating condition, a timing reset signal is periodically sent to the programmable device based on a preset first duration.

8. The server according to claim 6, characterized in that, The BMC is also used for: When the operating state enters an abnormal state, a second enable signal is sent to the programmable device; the second enable signal is used to enable the second watchdog in the programmable device.

Citation Information

Patent Citations

  • Disaster recovery device and method for rack server

    CN109857614A

  • Server fan regulation and control method and system, electronic equipment and storage medium

    CN114911332A

  • Fan rotational speed control system and method for controlling rotational speed of fan

    US20140142764A1