A fan speed regulation method and server

By introducing a second processing module into the server to dynamically adjust the fan speed, the problem of the BMC chip being unable to monitor the temperature in real time during reset is solved, realizing dynamic heat dissipation and energy efficiency optimization in the reset state.

CN116085289BActive Publication Date: 2025-11-18XFUSION DIGITAL TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202211716190.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-12-29
Publication Date
2025-11-18
Estimated Expiration
2042-12-29

AI Technical Summary

Technical Problem

During the BMC chip reset process, the server device temperature cannot be monitored in real time, resulting in a fixed fan speed, high noise and energy loss, and inability to dissipate heat in time, which may damage the server device.

Method used

By introducing a second processing module into the server, the real-time temperature of the monitored device can be obtained when the BMC chip is in reset state, and the fan speed can be dynamically adjusted. Combined with a preset temperature and speed correspondence table, dynamic speed regulation of the fan can be achieved.

Benefits of technology

When the BMC chip is in reset state, the fan speed can be dynamically adjusted according to the real-time temperature to meet heat dissipation requirements, reduce noise and energy loss, and protect server components.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116085289B_ABST
    Figure CN116085289B_ABST
Patent Text Reader

Abstract

The embodiment of the application discloses a fan speed regulation method and a server, which are used for dynamically regulating the fan speed through a second processing module when a first processing module is in a reset state. The server comprises the first processing module, the second processing module, a monitored device and a fan. Firstly, it is determined whether the first processing module is in a reset state or a non-reset state. When the first processing module is in the reset state, the real-time temperature of the monitored device is obtained through the second processing module, and the rotating speed of the fan is adjusted based on the real-time temperature; when the first processing module is in the non-reset state, the real-time temperature of the monitored device is obtained through the first processing module, and the rotating speed of the fan is adjusted based on the real-time temperature. Therefore, when the first processing module is in the reset state, the rotating speed of the fan can still be dynamically adjusted according to the real-time temperature of the monitored device by the second processing module, which can meet the heat dissipation requirement of the monitored device in the server and reduce unnecessary noise and energy loss.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computer equipment, and more particularly to a fan speed control method and a server. Background Technology

[0002] The fan speed in a server is controlled by a baseboard management controller (BMC) chip. During a BMC chip reset, the BMC chip cannot monitor the real-time temperature of the various components in the server, nor can it adjust the fan speed.

[0003] Currently, during the BMC chip reset process, the fan speed in the server is usually set to a preset speed, such as 100% speed, or the fan is kept at the speed before the BMC chip reset.

[0004] Typically, the BMC chip reset process takes about 1-2 minutes. If the fan speed remains fixed at a preset speed, it's impossible to dynamically adjust the fan speed based on the real-time temperature of the server's various components. For example, running at 100% speed would result in excessive fan noise and increased energy consumption. If the fan maintains the speed it was at before the BMC chip reset, it could cause the temperature at some monitoring points in the server to rise without timely cooling, potentially damaging related server components. Summary of the Invention

[0005] This application provides a fan speed control method and a server, which are used to dynamically control the fan speed through a second processing module when the first processing module is in a reset state.

[0006] This application provides a fan speed control method for a server, the server including a first processing module, a second processing module, a monitored device, and a fan, the fan being used to dissipate heat from the monitored device. In this application, it is first determined whether the first processing module is in a reset state or a non-reset state. When the first processing module is in a reset state, the real-time temperature of the monitored device is obtained through the second processing module, and the fan speed is adjusted based on the real-time temperature; when the first processing module is in a non-reset state, the real-time temperature of the monitored device is obtained through the first processing module, and the fan speed is adjusted based on the real-time temperature. Therefore, even when the first processing module is in a reset state, the second processing module can still dynamically adjust the fan speed according to the real-time temperature of the monitored device, which can both meet the heat dissipation requirements of the monitored device in the server and reduce unnecessary noise and energy loss.

[0007] In some possible implementations, the first processing module and the second processing module are mounted on an out-of-band controller, making full use of the main processor and coprocessor in the out-of-band controller.

[0008] In some possible implementations, when the first processing module is in the reset state, it sends a control interrupt notification to the second processing module. The control interrupt notification is used to instruct the first processing module to stop controlling the fan speed, thereby triggering the second processing module to perform the step of acquiring the real-time temperature of the monitored device and adjusting the fan speed based on the real-time temperature.

[0009] In some possible implementations, the control interruption notification is sent to the cache, and the second processing module retrieves the control interruption notification from the cache, thereby enabling the second processing module to receive the control interruption notification.

[0010] In some possible implementations, the second processing module receives the first heartbeat message and starts a timer of a preset duration. If the second processing module has not received the second heartbeat message after the timer expires, it is determined that the first processing module is in the reset state; if the second processing module receives the second heartbeat message before the timer expires, it is determined that the first processing module is in the non-reset state. This allows the second processing module to determine whether the first processing module is in the reset or non-reset state.

[0011] In some possible implementations, a preset correspondence table between temperature and speed is obtained, and the speed corresponding to the real-time temperature is determined based on the correspondence table, thereby realizing the adjustment of the fan speed based on the real-time temperature.

[0012] In some possible implementations, if the real-time temperature is higher than a preset ideal temperature, the fan speed is increased; if the real-time temperature is lower than the preset ideal temperature, the fan speed is decreased. This achieves dynamic adjustment of the fan speed based on the real-time temperature.

[0013] A second aspect of this application provides a server, the server including a first processing module, a second processing module, a monitored device and a fan, the fan being used to dissipate heat from the monitored device;

[0014] The second processing module is used to determine that the first processing module is in a reset state;

[0015] The second processing module is further configured to, when the first processing module is in the reset state, acquire the real-time temperature of the monitored device and adjust the fan speed based on the real-time temperature;

[0016] The first processing module is configured to determine that the first processing module is in a non-reset state;

[0017] The first processing module is further configured to, when the first processing module is in the non-reset state, acquire the real-time temperature of the monitored device and adjust the fan speed based on the real-time temperature.

[0018] In some possible implementations, the first processing module and the second processing module are mounted on an out-of-band controller.

[0019] In some possible implementations, the first processing module is further configured to send a control interrupt notification to the second processing module when the first processing module is in the reset state, the control interrupt notification being used to instruct the first processing module to stop controlling the fan speed.

[0020] In some possible implementations, the second processing module and the first processing module share a cache, and sending a control interruption notification to the second processing module includes:

[0021] The first processing module is further configured to send the control interruption notification to the cache; the second processing module is further configured to retrieve the control interruption notification from the cache.

[0022] In some possible implementations, the second processing module is further configured to: receive a first heartbeat message and start a timer of a preset duration; if no second heartbeat message is received after the timer expires, determine that the first processing module is in the reset state; if the second heartbeat message is received before the timer expires, determine that the first processing module is in the non-reset state.

[0023] In some possible implementations, the second processing module is further configured to: obtain a preset correspondence table between temperature and rotation speed, and determine the rotation speed corresponding to the real-time temperature based on the correspondence table.

[0024] In some possible implementations, the second processing module is further configured to: increase the fan speed if the real-time temperature is higher than the preset ideal temperature; and decrease the fan speed if the real-time temperature is lower than the preset ideal temperature.

[0025] A third aspect of this application provides a computer-readable storage medium storing instructions that, when executed on a computer, cause the computer to perform the method described in any one of the first, second, or third aspects above.

[0026] A fourth aspect of this application provides a computer program product including computer-executable instructions stored in a computer-readable storage medium; at least one processor of the device can read the computer-executable instructions from the computer-readable storage medium, and the at least one processor executes the computer-executable instructions to cause the device to implement the method provided by the first aspect or any possible implementation thereof.

[0027] A fifth aspect of this application provides a communication device that may include at least one processor, a memory, and a communication interface. The at least one processor is coupled to the memory and the communication interface. The memory is used to store instructions, the at least one processor is used to execute the instructions, and the communication interface is used to communicate with other communication devices under the control of the at least one processor. When executed by the at least one processor, the instructions cause the at least one processor to perform a method of the first aspect or any possible implementation thereof.

[0028] The sixth aspect of this application provides a chip system including a processor for supporting the implementation of the functions involved in the first aspect or any possible implementation thereof.

[0029] In one possible design, the chip system may also include a memory for storing necessary program instructions and data. The chip system can be composed of chips or may include chips and other discrete components.

[0030] The technical effects of the second to sixth aspects or any of their possible implementations can be found in the first aspect or the technical effects of different possible implementations of the first aspect, and will not be repeated here. Attached Figure Description

[0031] Figure 1 This is a flowchart illustrating the current fan speed control method;

[0032] Figure 2 A schematic diagram of the composition structure of a server provided in an embodiment of this application;

[0033] Figure 3 A schematic flowchart illustrating a fan speed control method provided in an embodiment of this application;

[0034] Figure 4 This application provides a schematic diagram of the structure of a server according to an embodiment of the present application.

[0035] Figure 5 This is a schematic diagram of the structure of a communication device provided in an embodiment of this application. Detailed Implementation

[0036] This application provides a fan speed control method and a server, which are used to dynamically control the fan speed through a second processing module when the first processing module is in a reset state.

[0037] The embodiments of this application will now be described with reference to the accompanying drawings.

[0038] The terms "first," "second," etc., used in the specification, claims, and accompanying drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such terms are interchangeable where appropriate; this is merely a way of distinguishing objects with the same attributes in the embodiments of this application. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover non-exclusive inclusion, so that a process, method, system, product, or apparatus that comprises a series of elements is not necessarily limited to those elements, but may include other elements not explicitly listed or inherent to those processes, methods, products, or apparatuses.

[0039] This application can be applied to servers, which can vary significantly due to differences in configuration or performance. A server may include at least one central processing unit (CPU) (e.g., at least one processor) and memory, and at least one storage medium (e.g., at least one mass storage device) for storing applications or data. The memory and storage medium can be temporary or persistent storage. The program stored on the storage medium may include at least one module, each module including a series of instruction operations on the server. Furthermore, the CPU may be configured to communicate with the storage medium and execute the series of instruction operations stored on the storage medium on the server. The server may also include at least one power supply, at least one wired or wireless network interface, at least one input / output interface, and / or at least one operating system, such as Windows Server, Mac OS X, Unix, Linux, FreeBSD, NetWare, etc. In some feasible implementations, server 100 may also be a cloud server; this is not limited here.

[0040] A server can be a server cluster consisting of several servers, or a cloud computing service center; this application embodiment does not limit this. A server, also called a server server server machine, is a device that provides computing services. Since a server needs to respond to service requests and process them to provide reliable services, it generally needs to have the ability to undertake and guarantee services. The server needs to have strong processing power, high stability, high reliability, high security, scalability, and manageability. In this application embodiment, the server can be an x86 server, also known as a Complex Instruction Set Computer (CISC) architecture server, commonly referred to as a personal computer (PC) server. It is a server based on the PC architecture, using Intel or other x86-compatible processor chips and the Windows operating system.

[0041] Currently, the fan speed in servers is controlled by a BMC chip. When the BMC chip is operating normally, it can acquire the real-time temperature of the monitored devices via sensors and calculate the fan speed based on these temperatures. However, when the BMC chip is in a reset state, it cannot monitor the real-time temperature of each monitored device in the server via sensors, nor can it adjust the fan speed. When the BMC chip is in a non-reset state, it will reread the real-time temperature of each monitored device via sensors and calculate the fan speed accordingly. Currently, when the BMC chip is in a reset state, the fan speed in the server is typically set to a preset speed, such as 100% speed, or the fan speed is maintained at the speed it was at before the BMC chip was in a reset state.

[0042] For example, such as Figure 1 As shown, the BMC chip first acquires the real-time temperature of the monitored devices in the server, and then sets the fan speed based on the real-time temperature. When the BMC chip is in a reset state, it cannot acquire the real-time temperature of the monitored devices in the server, nor can it set the fan speed based on the real-time temperature. Therefore, the universal boot loader (U-Boot) in the BMC chip can set the fan speed to 100%, or set the fan speed to the speed it had before the BMC chip was in a reset state. When the BMC chip is in a non-reset state, it reacquires the real-time temperature of the monitored devices in the server, and then sets the fan speed based on the real-time temperature.

[0043] Typically, the BMC chip's reset process lasts about 1-2 minutes. If the fan speed remains fixed at a preset speed, it's impossible to dynamically adjust the fan speed based on the real-time temperature of the monitored devices. For example, 100% speed would result in excessive fan noise and increased energy consumption. If the fan maintains the speed it had before the BMC chip reset, it could cause the temperature of some monitored devices in the server to rise without timely cooling, potentially damaging these components.

[0044] Please see Figure 2 The diagram shown is a schematic representation of the structural composition of a server according to an embodiment of this application. This application provides a server 100, including: a first processing module 110, a second processing module 120, a monitored device 130, a sensor 140, and a fan 150.

[0045] In some possible implementations, the first processing module 110 and the second processing module 120 are mounted on an out-of-band controller. For example, the first processing module 110 may be an A55 main processor, and the second processing module 120 may be a coprocessor M3, or vice versa; optionally, the A55 main processor and the coprocessor M3 may be integrated onto a single processor. The A55 main processor runs BMC software to execute the functions of the BMC chip; the software running in the coprocessor M3 is called M3 software, and it executes the functions performed by the second processing module 120 in this embodiment. In some possible implementations, the first processing module 110 may also be a core in the BMC chip, and the second processing module 120 may be another core in the BMC chip. In some possible implementations, the first processing module 110 may also be a BMC chip, and the second processing module 120 may be a microcontroller unit (MCU) or another BMC chip connected to the first processing module 110, or vice versa; optionally, the MCU or another BMC chip may run relevant software to perform the functions performed by the second processing module 120 in the embodiments of this application, which is not limited here.

[0046] In some possible implementations, the monitored device 130 can be a motherboard, backplane, hard drive, processor, or other device in the server 100; no limitation is made here. In some possible implementations, the sensor 140 can be a temperature sensor, which is set on the monitored device 130 to obtain the temperature of the monitored device 130. In some possible implementations, the server 100 can include multiple monitored devices 130 and multiple sensors 140, wherein the multiple monitored devices 130 and multiple sensors 140 correspond one-to-one. The sensor 140 is set on the monitored device 130 to obtain the temperature of the corresponding monitored device 130 and upload it to a preset location, such as a register, so that the first processing module 110 or the second processing module 120 can obtain the temperature of the monitored device 130 from the preset location.

[0047] In some possible implementations, fan 150 is used to direct air to the monitored device 130 for heat dissipation. In this embodiment, fan 150 has an adjustable speed, and different speeds can achieve different heat dissipation effects. In some possible implementations, server 100 may be equipped with one fan 150 to dissipate heat for multiple monitored devices 130; in some possible implementations, server 100 may be equipped with multiple fans 150, with each fan 150 corresponding to one of the monitored devices 130, and each fan 150 is used to dissipate heat for its corresponding monitored device 130.

[0048] To address this, this application proposes a fan speed control method and a server, used to dynamically adjust the fan speed via a second processing module when the first processing module is in a reset state. Optionally, when the second processing module is in a reset state, the first processing module dynamically adjusts the fan speed. It is understood that the second processing module / first processing module adjusts the fan speed under specific conditions; these specific conditions include reset state, busy state, fault state, etc., and this application does not limit these conditions. This application uses the reset state as an example to provide an exemplary description of the fan speed control method.

[0049] This application proposes a fan speed control method for a server. The server includes a first processing module, a second processing module, a monitored device, and a fan for cooling the monitored device. In this application, the first processing module is first determined to be in a reset or non-reset state. When the first processing module is in a reset state, the real-time temperature of the monitored device is obtained through the second processing module, and the fan speed is adjusted based on the real-time temperature. When the first processing module is in a non-reset state, the real-time temperature of the monitored device is obtained through the first processing module, and the fan speed is adjusted based on the real-time temperature. Therefore, even when the first processing module is in a reset state, the second processing module can still dynamically adjust the fan speed based on the real-time temperature of the monitored device, which satisfies the cooling requirements of the monitored device in the server while reducing unnecessary noise and energy loss.

[0050] The foregoing embodiments described the server 100 provided in this application. The following describes a fan speed control method implemented based on this server 100. Please refer to [link to relevant documentation]. Figure 3 As shown, the fan speed control method provided in this application mainly includes the following steps:

[0051] 301. The second processing module determines that the first processing module is in a reset state.

[0052] In some possible implementations, restarting the first processing module will put it into a reset state. For example, a reset button can be provided on the front panel of the server; pressing this button will restart the first processing module, thus putting it into a reset state. In some possible implementations, the user can also reset the first processing module at the operating system level; this is not limited here. In some possible implementations, the first processing module can automatically reset when it malfunctions or other related triggering events occur.

[0053] In some possible implementations, when the first processing module is in a reset state, it can send a control interrupt notification to the second processing module. This control interrupt notification instructs the first processing module to stop controlling the fan speed. For example, when the user resets the first processing module in the operating system, or when the user presses the restart button, the first processing module sends the control interrupt notification to the second processing module before being in the reset state.

[0054] In some possible implementations, the first processing module can directly send a control interruption notification to the second processing module. In some possible implementations, the second and first processing modules can share a cache, in which case the first processing module can send the control interruption notification to the cache, and the second processing module can retrieve the control interruption notification from the cache; this is not limited here.

[0055] In the event of an automatic reset triggered by a failure in the first processing module, the first processing module may be unable to send a message to the second processing module before performing the reset operation. Therefore, in some possible implementations, the first processing module can periodically send a heartbeat message to the second processing module while in a non-reset state. For example, the first processing module sends a heartbeat message to the second processing module every second. If the second processing module receives the heartbeat message every second, it determines that the first processing module is in a non-reset state during that period. If the heartbeat message is not received within a preset duration, the second processing module determines that the first processing module is performing a reset operation. For example, if the preset duration is 5 seconds, the second processing module starts a 5-second timer after receiving the first heartbeat message. If a second heartbeat message is received before the timer expires, the timer is restarted. If the second processing module still does not receive the second heartbeat message after the timer expires, the second processing module determines that the first processing module is in a reset state.

[0056] 302. The second processing module acquires the real-time temperature of the monitored device.

[0057] In some possible implementations, the sensor is mounted on the monitored device and is used to acquire the real-time temperature of the monitored device. In some possible implementations, the sensor can be mounted on the surface of the monitored device or inside the monitored device, as long as the sensor can acquire the real-time temperature of the monitored device; this is not limited here.

[0058] In some possible implementations, after the sensor acquires the real-time temperature of the monitored device, it can store the real-time temperature information in a preset register. The second processing module can then access this register to obtain the real-time temperature of the monitored device. In some possible implementations, the sensor can also directly upload the real-time temperature of the monitored device to the second processing module; this is not limited here.

[0059] For example, the monitored device can be a motherboard, a network interface card (NIC), or a backplane. The second processing module can obtain the real-time temperature of any one or more of the motherboard, NIC, or backplane through a sensor. For example, the real-time temperature of the motherboard is 60 degrees Celsius, the real-time temperature of the NIC is 70 degrees Celsius, and the real-time temperature of the backplane is 50 degrees Celsius; this is not limited to any specific temperature.

[0060] 303. The second processing module adjusts the fan speed based on real-time temperature.

[0061] In some possible implementations, the second processing module can obtain a preset correspondence table between temperature and rotation speed, and determine the rotation speed corresponding to the real-time temperature based on the correspondence table.

[0062] For example, Table 1 shows the preset correspondence between temperature and rotation speed.

[0063] Table 1

[0064] temperature rotational speed temp1 pwn1 temp2 pwn2 temp3 pwn3 … … tempN pwnN

[0065] Based on Table 1 above, when the second processing module obtains the real-time temperature of the monitored device, it can determine the corresponding rotational speed based on the real-time temperature and Table 1. For example, if the real-time temperature is temp1, the rotational speed is determined to be pwn1; if the real-time temperature is temp2, the rotational speed is determined to be pwn2. And so on, without further explanation.

[0066] In some possible implementations, the temperatures in Table 1 represent a temperature range. For example, temp1 represents 20-30 degrees Celsius, temp2 represents 30-40 degrees Celsius, and so on, which will not be elaborated here.

[0067] In some possible implementations, the higher the real-time temperature of the monitored device, the higher the corresponding fan speed needs to be. For example, as shown in Table 1, the temperature values ​​represented by temp1, temp2, temp3, ..., tempN increase progressively, so the speeds represented by pwn1, pwn2, pwn3, ..., pwnN also increase progressively.

[0068] It should be noted that since the second processing module obtains the real-time temperature of the monitored device, it can adjust the fan speed at any time based on the real-time temperature. For example, when the real-time temperature is temp1, the fan speed is pwn1. When the real-time temperature changes from temp1 to temp2, the second processing module determines the fan speed to be pwn2 based on temp2.

[0069] In some possible implementations, the second processing module may also pre-set an ideal temperature for the monitored device. If the real-time temperature of the monitored device is higher than the ideal temperature, the speed of the corresponding fan of the monitored device is increased; if the real-time temperature of the monitored device is lower than the ideal temperature, the speed of the corresponding fan of the monitored device is decreased; if the real-time temperature of the monitored device is equal to the ideal temperature, the current speed of the corresponding fan of the monitored device is maintained.

[0070] For example, if the ideal temperature of the monitored device is 50 degrees Celsius, and the real-time temperature of the monitored device is 60 degrees Celsius, then the speed of the corresponding fan is increased; if the real-time temperature of the monitored device is 40 degrees Celsius, then the speed of the corresponding fan is decreased; if the real-time temperature of the monitored device is 50 degrees Celsius, then the current speed of the corresponding fan is maintained.

[0071] In some possible implementations, the ideal temperature varies for different monitored devices. For example, Table 2 shows the ideal temperatures for different monitored devices.

[0072] Table 2

[0073] Monitored devices Ideal temperature Device 1 temp'1 Device 2 temp'2 Device 3 temp'3 … … Device N temp'N

[0074] In some possible implementations, the ideal temperature can be a temperature range. For example, if the monitored device is a motherboard, and the ideal temperature for the motherboard is 55-65 degrees Celsius, then if the real-time temperature of the motherboard is above 65 degrees Celsius, the second processing module increases the speed of the corresponding fan; if the real-time temperature of the motherboard is below 55 degrees Celsius, the speed of the corresponding fan decreases; if the real-time temperature of the monitored device is between 55-65 degrees Celsius, the current speed of the corresponding fan is maintained.

[0075] In some possible implementations, the fan speed can be divided into multiple speed settings. For example, pwn1, pwn2, pwn3, ..., pwnN represent the speeds corresponding to settings 1, 2, 3, ..., N, respectively, where a higher setting indicates a higher speed. Therefore, adjusting the fan speed can be understood as adjusting the number of fan speed settings, for example, increasing the speed by at least one setting. For instance, pwn1, pwn2, pwn3, ..., pwnN represent speeds 1, 2, 3, ..., N, respectively. If the real-time temperature of the monitored device is higher than the ideal temperature, and the current fan speed is pwni (i = 1, 2, 3, ..., N-1) corresponding to speed i, then the fan speed is increased to at least speed pwn(i+1) of speed i+1. If the real-time temperature of the monitored device is lower than the ideal temperature, and the current fan speed is pwnj (j = 2, 3, ..., N) corresponding to speed j, then the fan speed is reduced to speed pwn(j-1) or lower of speed j-1. If the real-time temperature of the monitored device is equal to the ideal temperature, and the current fan speed is pwnk (k = 1, 2, 3, ..., N) corresponding to speed k, then the fan speed is maintained at speed pwnk of speed k.

[0076] In some possible implementations, if the real-time temperature is higher than the ideal temperature, the greater the difference, the higher the speed will be; if the real-time temperature is lower than the ideal temperature, the greater the difference, the higher the speed will be.

[0077] For example, if the real-time temperature of the monitored device is 90 degrees Celsius and the ideal temperature is 50 degrees Celsius, the real-time temperature is 40 degrees Celsius higher than the ideal temperature, and the current fan speed is pwni (i = 1, 2, 3, ..., N-2) corresponding to speed i, then the fan speed is increased to speed pwn(i+2) of speed i+2; if the real-time temperature of the monitored device is 10 degrees Celsius and the ideal temperature is 50 degrees Celsius, the real-time temperature is 40 degrees Celsius lower than the ideal temperature, and the current fan speed is pwnj (j = 3, 4, ..., N) corresponding to speed j, then the fan speed is increased to speed pwn(j-2) of speed j-2.

[0078] In some possible implementations, the fan speed can be unlimited. If the real-time temperature of the monitored device is higher than the ideal temperature, the speed of the fan corresponding to the monitored device is increased by a certain percentage; if the real-time temperature of the monitored device is lower than the ideal temperature, the speed of the fan corresponding to the monitored device is decreased by a certain percentage; if the real-time temperature of the monitored device is equal to the ideal temperature, the current speed of the fan corresponding to the monitored device is maintained.

[0079] For example, if the ideal temperature of the monitored device is 50 degrees Celsius, and the real-time temperature of the monitored device is 60 degrees Celsius, then increase the corresponding fan speed by 10% of 100%; if the real-time temperature of the monitored device is 40 degrees Celsius, then decrease the corresponding fan speed by 9% of 100%; if the real-time temperature of the monitored device is 50 degrees Celsius, then maintain the current fan speed.

[0080] In some possible implementations, if the real-time temperature is higher than the ideal temperature, the greater the increase in speed, the larger the percentage increase; if the real-time temperature is lower than the ideal temperature, the greater the decrease in speed, the larger the percentage decrease.

[0081] For example, if the real-time temperature of the monitored device is 90 degrees Celsius and the ideal temperature is 50 degrees Celsius, and the real-time temperature is 40 degrees Celsius higher than the ideal temperature, the current fan speed increases by 10% of 100% of its rotational speed. If the real-time temperature of the monitored device is 60 degrees Celsius and the ideal temperature is 50 degrees Celsius, and the real-time temperature is 10 degrees Celsius higher than the ideal temperature, the current fan speed increases by 5% of 100% of its rotational speed. If the real-time temperature of the monitored device is 10 degrees Celsius and the ideal temperature is 50 degrees Celsius, and the real-time temperature is 40 degrees Celsius lower than the ideal temperature, the current fan speed decreases by 10% of 100% of its rotational speed. If the real-time temperature of the monitored device is 40 degrees Celsius and the ideal temperature is 50 degrees Celsius, and the real-time temperature is 10 degrees Celsius lower than the ideal temperature, the current fan speed decreases by 5% of 100% of its rotational speed.

[0082] In some possible implementations, the number of fans in the server is the same as the number of monitored devices. For example, the server has three monitored devices and three fans, with each fan corresponding to one monitored device. Each monitored device also has a corresponding sensor. The second processing module obtains the real-time temperature of the corresponding monitored device through the sensor and calculates the fan speed for that monitored device based on the real-time temperature.

[0083] In some possible implementations, the server has only one fan but multiple monitored devices. For example, the server may have three monitored devices but only one fan, which is used to cool the three monitored devices. Simultaneously, each monitored device corresponds to a sensor, and the second processing module obtains the real-time temperature of the corresponding monitored device through the corresponding sensor, determining the fan speed based on the real-time temperature of each monitored device.

[0084] In some possible implementations, the second processing module can determine the difference between the real-time temperature of each monitored device and its ideal temperature, and then determine the fan speed based on the real-time temperature that is most significantly higher than the ideal temperature. For example, if the server includes three monitored devices with real-time temperatures a, b, and c, and their ideal temperatures are ideal temperatures a, b, and c, respectively, the second processing module calculates real-time temperature a - ideal temperature a, real-time temperature b - ideal temperature b, and real-time temperature c - ideal temperature c. For instance, if real-time temperature a - ideal temperature a is the highest, the second processing module determines the fan speed based on real-time temperature a. The specific method for determining the speed is as described above and will not be repeated here.

[0085] In some possible implementations, the second processing module can determine the average real-time temperature of each monitored device and determine the fan speed based on this average value and a preset ideal temperature. For example, if the server includes three monitored devices with real-time temperatures a, b, and c, an average temperature ave, and an ideal temperature ideal, the second processing module can determine the fan speed based on ave and ideal. The specific method for determining the fan speed is as described above and will not be repeated here.

[0086] In some possible implementations, the second processing module can periodically acquire the real-time temperature of the monitored device and adjust the fan speed based on the real-time temperature. For example, the second processing module acquires the real-time temperature of the monitored device every 10 seconds and adjusts the fan speed based on the real-time temperature.

[0087] In some possible implementations, if the second processing module adjusts the fan speed in the current cycle, it continues to acquire the real-time temperature of the monitored device in the next cycle. If the real-time temperature in the next cycle still does not reach the corresponding ideal temperature, the fan speed is adjusted again until the real-time temperature of the monitored device reaches the ideal temperature.

[0088] 304. The first processing module determines that the first processing module is in a non-reset state.

[0089] In some possible implementations, after the first processing module recovers from the reset state to the non-reset state, it can send a control recovery notification to the second processing module, which is used to instruct the first processing module to resume controlling the fan speed.

[0090] In some possible implementations, the first processing module can directly send the control recovery notification to the second processing module. In some possible implementations, the first and second processing modules can share a cache. The first processing module can send the control recovery notification to the shared cache, and the second processing module can retrieve the control recovery notification from the shared cache. This is not limited here.

[0091] In some possible implementations, the first processing module can continue to periodically send heartbeat messages to the second processing module after resuming its non-reset state. For example, the first processing module sends a heartbeat message to the second processing module every second. Then, if the second processing module receives a heartbeat message every second, it is determined that the first processing module is in a non-reset state during that period. In some possible implementations, the second processing module needs to receive a preset number of heartbeat messages to determine that the first processing module is in a non-reset state. For example, the second processing module needs to receive three heartbeat messages to determine that the first processing module is in a non-reset state.

[0092] 305. The first processing module acquires the real-time temperature of the monitored device.

[0093] In this embodiment, when the second processing module determines that the first processing module has completed its reset, it can stop controlling the fan speed. After the first processing module returns to the non-reset state, the first processing module obtains the real-time temperature of the monitored device. The step of obtaining the real-time temperature of the monitored device performed by the first processing module is the same as the step of obtaining the real-time temperature of the monitored device performed by the second processing module in step 302. Please refer to step 302; it will not be described again here.

[0094] 306. The first processing module adjusts the fan speed based on real-time temperature.

[0095] The step of adjusting the fan speed based on real-time temperature executed by the first processing module is the same as the step of adjusting the fan speed based on real-time temperature executed by the second processing module in step 303. Please refer to step 303, which will not be repeated here.

[0096] In some possible implementations, before the first processing module executes step 303, the first processing module can obtain the current fan speed and then adjust the fan speed based on the real-time temperature and the current fan speed. This can adjust the fan speed faster and more accurately, reducing computational overhead. No limitation is made here.

[0097] It should be noted that, for the sake of simplicity, the foregoing method embodiments are all described as a series of actions. However, those skilled in the art should understand that this application is not limited to the described order of actions, as some steps may be performed in other orders or simultaneously according to this application. Furthermore, those skilled in the art should also understand that the embodiments described in the specification are preferred embodiments, and the actions and modules involved are not necessarily essential to this application.

[0098] To facilitate better implementation of the above-described solutions in the embodiments of this application, related apparatus for implementing the above-described solutions is also provided below.

[0099] Please see Figure 4 As shown in the figure, a server 400 provided in this application embodiment includes a first processing module 401, a second processing module 402, a monitored device 403 and a fan 404, wherein the fan 404 is used to dissipate heat for the monitored device 403.

[0100] The second processing module 402 is used to determine that the first processing module 401 is in a reset state;

[0101] The second processing module 402 is further configured to, when the first processing module 401 is in the reset state, acquire the real-time temperature of the monitored device 403, and adjust the speed of the fan 404 based on the real-time temperature;

[0102] The first processing module 401 is used to determine that the first processing module 401 is in a non-reset state;

[0103] The first processing module 401 is further configured to, when the first processing module 401 is in the non-reset state, acquire the real-time temperature of the monitored device 403, and adjust the speed of the fan 404 based on the real-time temperature.

[0104] In some possible implementations, the first processing module 401 and the second processing module 402 are mounted on an out-of-band controller.

[0105] In some possible implementations, the first processing module 401 is further configured to send a control interruption notification to the second processing module 402 when the first processing module 401 is in the reset state, the control interruption notification being used to instruct the first processing module 401 to stop controlling the speed of the fan 404.

[0106] In some possible implementations, the second processing module 402 and the first processing module 401 share a cache, and sending a control interrupt notification to the second processing module 402 includes:

[0107] The first processing module 401 is further configured to send the control interruption notification to the cache; the second processing module 402 is further configured to retrieve the control interruption notification from the cache.

[0108] In some possible implementations, the second processing module 402 is further configured to: receive a first heartbeat message and start a timer of a preset duration; if no second heartbeat message is received after the timer expires, determine that the first processing module 401 is in the reset state; if the second heartbeat message is received before the timer expires, determine that the first processing module 401 is in the non-reset state.

[0109] In some possible implementations, the second processing module 402 is further configured to: obtain a preset correspondence table between temperature and rotation speed, and determine the rotation speed corresponding to the real-time temperature based on the correspondence table.

[0110] In some possible implementations, the second processing module 402 is further configured to: increase the speed of the fan 404 if the real-time temperature is higher than the preset ideal temperature; and decrease the speed of the fan 404 if the real-time temperature is lower than the preset ideal temperature.

[0111] It should be noted that the information interaction and execution process between the modules / units of the above-mentioned device are based on the same concept as the method embodiments of this application, and the resulting technical effects are the same as those of the method embodiments of this application. For details, please refer to the description in the method embodiments shown above in this application, and will not be repeated here.

[0112] This application also provides a computer storage medium storing a program that performs some or all of the steps described in the above method embodiments.

[0113] The following describes another communication device provided in the embodiments of this application. Please refer to [link to relevant documentation]. Figure 5 As shown, the communication device 500 includes:

[0114] The system comprises a receiver 501, a transmitter 502, a processor 503, and a memory 504. In some embodiments of this application, the receiver 501, transmitter 502, processor 503, and memory 504 may be connected via a bus or other means. Figure 5 Taking the example of a connection between China and Israel via a bus.

[0115] Memory 504 may include read-only memory and random access memory, and provides instructions and data to processor 503. A portion of memory 504 may also include non-volatile random access memory (NVRAM). Memory 504 stores operating system and operation instructions, executable modules or data structures, or subsets thereof, or extended sets thereof. The operation instructions may include various operation instructions for implementing various operations. The operating system may include various system programs for implementing various basic business functions and handling hardware-based tasks.

[0116] Processor 503 controls the operation of communication device 500. Processor 503 can also be called a central processing unit (CPU). In specific applications, the various components of communication device 500 are coupled together through a bus system. This bus system includes not only a data bus but also a power bus, control bus, and status signal bus. However, for clarity, all buses are referred to as a bus system in the diagram.

[0117] The methods disclosed in the embodiments of this application can be applied to or implemented by processor 503. Processor 503 can be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by the integrated logic circuit of the hardware in processor 503 or by instructions in the form of software. The processor 503 can be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. It can implement or execute the methods, steps, and logic block diagrams disclosed in the embodiments of this application. The general-purpose processor can be a microprocessor or any conventional processor. The steps of the methods disclosed in the embodiments of this application can be directly embodied in the execution of a hardware decoding processor, or can be executed by a combination of hardware and software modules in the decoding processor. The software modules can be located in random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, or other mature storage media in the art. The storage medium is located in memory 504. Processor 503 reads the information in memory 504 and, in conjunction with its hardware, completes the steps of the above method.

[0118] The receiver 501 can be used to receive input digital or character information and generate signal inputs related to relevant settings and function control. The transmitter 502 may include a display device such as a display screen and can be used to output digital or character information through an external interface.

[0119] In this embodiment of the application, the processor 503 is used to execute the aforementioned fan speed control method.

[0120] In another possible design, when the server 400 or communication device 500 is a chip, it includes a processing unit and a communication unit. The processing unit may be, for example, a processor, and the communication unit may be, for example, an input / output interface, pins, or circuits. The processing unit can execute computer execution instructions stored in the storage unit to cause the chip within the terminal to execute the wireless reporting information transmission method described in any of the first aspects above. Optionally, the storage unit can be a storage unit within the chip, such as a register or cache. Alternatively, the storage unit can be a storage unit located outside the chip within the terminal, such as read-only memory (ROM) or other types of static storage devices capable of storing static information and instructions, such as random access memory (RAM).

[0121] The processor mentioned above can be a general-purpose central processing unit, a microprocessor, an ASIC, or one or more integrated circuits used to control the execution of the program described above.

[0122] It should also be noted that the device embodiments described above are merely illustrative. The units described as separate components may or may not be physically separate, and the components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the modules can be selected to achieve the purpose of this embodiment according to actual needs. In addition, in the device embodiment drawings provided in this application, the connection relationship between modules indicates that they have a communication connection, which can be implemented as one or more communication buses or signal lines.

[0123] Through the above description of the embodiments, those skilled in the art can clearly understand that this application can be implemented by means of software plus necessary general-purpose hardware, or it can be implemented by special-purpose hardware including application-specific integrated circuits, special-purpose CPUs, special-purpose memory, special-purpose components, etc. Generally, any function performed by a computer program can be easily implemented by corresponding hardware, and the specific hardware structure used to implement the same function can also be diverse, such as analog circuits, digital circuits, or special-purpose circuits. However, for this application, software program implementation is more often the preferred implementation method. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product is stored in a readable storage medium, such as a computer floppy disk, USB flash drive, mobile hard disk, ROM, RAM, magnetic disk, or optical disk, etc., and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute the methods described in the various embodiments of this application.

[0124] In the above embodiments, implementation can be achieved, in whole or in part, through software, hardware, firmware, or any combination thereof. When implemented in software, it can be implemented, in whole or in part, as a computer program product.

[0125] The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of this application are generated. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions may be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium may be any available medium that a computer can store or a data storage device such as a server or data center that integrates one or more available media. The available medium may be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state disk (SSD)).

Claims

1. A fan speed control method, characterized in that, For a server, the server includes a first processing module, a second processing module, a monitored device, and a fan, the fan being used to dissipate heat from the monitored device, the first processing module and the second processing module being mounted on the same out-of-band controller, and the first processing module and the second processing module sharing a cache; the method includes: It is determined that the first processing module is in a reset state; wherein, the reset state of the first processing module is triggered by the restart of the first processing module; When the first processing module is in the reset state, it sends a control interrupt notification to the second processing module. The control interrupt notification is used to instruct the first processing module to stop controlling the fan speed. When the first processing module is in the reset state, the real-time temperature of the monitored device is obtained through the second processing module, and the fan speed is adjusted based on the real-time temperature. It is determined that the first processing module is in a non-reset state; When the first processing module is in the non-reset state, the real-time temperature of the monitored device is obtained through the first processing module, and the fan speed is adjusted based on the real-time temperature; Sending the control interruption notification to the second processing module includes: sending the control interruption notification to the cache, and retrieving the control interruption notification from the cache through the second processing module.

2. The method according to claim 1, characterized in that, The method further includes: The second processing module receives the first heartbeat message and starts a timer of a preset duration; If the second processing module still does not receive the second heartbeat message after the timer expires, then the first processing module is determined to be in the reset state. If the second processing module receives the second heartbeat message before the timer expires, it is determined that the first processing module is in the non-reset state.

3. The method according to claim 1 or 2, characterized in that, The adjustment of the fan speed based on the real-time temperature includes: Obtain a preset correspondence table between temperature and rotation speed, and determine the rotation speed corresponding to the real-time temperature based on the correspondence table.

4. The method according to any one of claims 1 or 2, characterized in that, The adjustment of the fan speed based on the real-time temperature includes: If the real-time temperature is higher than the preset ideal temperature, then the fan speed is increased; If the real-time temperature is lower than the preset ideal temperature, the fan speed will be reduced.

5. A server, characterized in that, The server is used to perform the method according to any one of claims 1-4.

6. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a program that causes a computer device to perform the method as described in any one of claims 1-4.

Citation Information

Patent Citations

  • Server system, computer implemention method and non-transitory computer readable medium

    CN109388213A