Server, fan control method and storage medium
By introducing a programmable logic chip into the server to process the fan rotor pulse signal, the limitations of the number of pins in the baseboard management controller and the problem of electromagnetic interference were solved, achieving efficient fan control and signal transmission.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-11-27
- Publication Date
- 2026-03-10
AI Technical Summary
In traditional server fan control architectures, the number of general-purpose input/output pins of the baseboard management controller is limited, which restricts the number of fan connections, and long-distance signal transmission leads to electromagnetic interference and signal reliability issues.
By introducing a programmable logic chip, the fan speed is calculated by counting the number of rising edges of the rotor pulse signal, and the fan speed is generated by communicating with the baseboard management controller via the I2C bus. This expands the fan control capacity, shortens the signal transmission path, and avoids electromagnetic interference.
It expands the server fan control capacity, improves signal transmission reliability, saves PCB wiring space, avoids electromagnetic interference, and allows the baseboard management controller to focus more on heat dissipation strategy calculations.
Smart Images

Figure CN121635640A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of fan control technology, and in particular to a server, a fan control method, and a storage medium. Background Technology
[0002] In traditional server thermal control architectures, fan speed monitoring and control are typically handled directly by the BMC (Baseboard Management Controller). In this architecture, the rotor pulse signal generated by each fan is received via a fan connector on the fan board and sent to the BMC. Therefore, the fan controller on the fan board needs to be connected to the general-purpose input / output pins on the BMC via fixed PCB traces.
[0003] Because the number of general-purpose input / output pins provided by the baseboard management controller chip is limited, this limitation becomes a bottleneck for expanding system thermal performance in high-performance server models that require a large number of fans. Furthermore, the signal transmission path from the fan board to the baseboard management controller located on the motherboard or independent management board is typically long. These rotor pulse signals are high-frequency changing square waves; long-distance wiring not only occupies PCB layout space but also easily interferes with other electromagnetically sensitive circuits in the server, thus affecting the reliability of signal transmission within the server. Summary of the Invention
[0004] In view of this, the present disclosure provides a server, a fan control method, and a storage medium to address the shortcomings of the related art.
[0005] According to a first aspect of the present invention, a server is provided, including a baseboard management controller, a programmable logic chip, and at least one fan, wherein the programmable logic chip includes at least one register group, the register group including a speed register and a control register; The programmable logic chip is used to receive the rotor pulse signal of each fan, determine the current speed value of each fan by counting the number of rising edges of the rotor pulse signal within a preset time window, and store the current speed value of each fan in the speed register. The baseboard management controller is used to obtain the current speed value of each fan stored in the speed register, determine the target speed value of each fan based on the obtained current speed value, and store the target speed value of each fan in the control register. The programmable logic chip is also used to generate drive pulse signals for each fan based on the target speed values of each fan stored in the control register, and send them to each fan.
[0006] According to a second aspect of the present invention, a fan control method is provided, applied to a programmable logic chip in a server, the server further comprising a baseboard management controller and at least one fan, the programmable logic chip comprising at least one register group, the register group comprising a speed register and a control register; The fan control method includes: The system receives rotor pulse signals from each of the fans, determines the current speed value of each fan by counting the number of rising edges of the rotor pulse signals within a preset time window, and stores the current speed value of each fan in the speed register. This enables the baseboard management controller to determine the target speed value of each fan based on the current speed value of each fan stored in the speed register, and stores the target speed value of each fan in the control register. Based on the target speed values of each fan stored in the control register, a drive pulse signal for each fan is generated and sent to each fan.
[0007] According to a third aspect of the present invention, a fan control method is provided, applied to a baseboard management controller in a server, the server further comprising a programmable logic chip and at least one fan, the programmable logic chip comprising at least one register group, the register group comprising a speed register and a control register; The fan control method includes: The current speed value of each fan stored in the speed register is obtained; the current speed value of each fan is predetermined by the programmable logic chip by counting the number of rising edges of the rotor pulse signal of each fan within a preset time window and stored in the speed register. Based on the obtained current speed value, the target speed value of each fan is determined and stored in the control register, so that the programmable logic chip generates a drive pulse signal for each fan based on the target speed value of each fan stored in the control register and sends it to each fan.
[0008] According to a fourth aspect of the present invention, a computer-readable storage medium is provided having a computer program stored thereon, which, when executed by a processor, implements the steps of the method described in the second or third aspect.
[0009] In the embodiments described in this specification, the baseboard management controller can acquire all fan data through a single bus, thereby overcoming the limitation of its general-purpose input / output pin count on the number of fan connections, expanding the fan control capacity of the server, and meeting the deployment requirements of high-performance servers for a large number of fans. Furthermore, it shortens the signal transmission path, saves PCB routing space, avoids the risk of electromagnetic interference caused by long-distance complex wiring, and improves the reliability of various signal transmissions in the server. In addition, since the speed calculation task based on high-frequency rotor pulse signals is performed by a programmable logic chip, the baseboard management controller can effectively save computing resources, allowing it to focus more on management functions such as heat dissipation strategy calculations. Attached Figure Description
[0010] Figure 1 This is a schematic diagram illustrating a conventional thermal control architecture for a server; Figure 2 This is a schematic diagram of the structure of a server exemplarily shown in the embodiments of this specification; Figure 3 This is a schematic diagram of the rotor pulse signal exemplarily shown in the embodiments of this specification; Figure 4 This is a schematic diagram of another server structure exemplarily shown in the embodiments of this specification; Figure 5 This is a schematic flowchart illustrating an exemplary embodiment of a fan control method for a programmable logic chip in this specification. Figure 6 This is a schematic flowchart illustrating the fan control method of the baseboard management controller according to exemplary embodiments of this specification. Detailed Implementation
[0011] Exemplary embodiments will now be described in detail, examples of which are illustrated in the accompanying drawings. When the following description relates to the drawings, unless otherwise indicated, the same numbers in different drawings denote the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with this application. Rather, they are merely examples of apparatuses and methods consistent with some aspects of this application as detailed in the appended claims.
[0012] The terminology used in this application is for the purpose of describing particular embodiments only and is not intended to be limiting of the application. The singular forms “a,” “the,” and “the” used in this application and the appended claims are also intended to include the plural forms unless the context clearly indicates otherwise. It should also be understood that the term “and / or” as used herein refers to and includes any or all possible combinations of one or more of the associated listed items.
[0013] It should be understood that although the terms first, second, third, etc., may be used in this application to describe various information, such information should not be limited to these terms. These terms are only used to distinguish information of the same type from one another. For example, without departing from the scope of this application, first information may also be referred to as second information, and similarly, second information may also be referred to as first information. Depending on the context, the word "if" as used herein may be interpreted as "when," "when," or "in response to determination."
[0014] In the traditional thermal control architecture of servers, the monitoring and control of fan speed is usually directly handled by the BMC (Baseboard Management Controller). Figure 1 This is a schematic diagram of a conventional thermal control architecture for a server, as exemplarily shown. In this architecture, the rotor pulse signal generated by each fan 12 is received through the fan connector 110 on the fan control board 11 and sent to the baseboard management controller 100 mounted on the motherboard 10. That is, the fan connector 110 of the fan control board 11 needs to be connected to the general purpose input / output pins on the baseboard management controller 100 through fixed PCB traces. The baseboard management controller 100 has a dedicated pulse width modulation register inside, which calculates the real-time rotational speed of the fan 12 by monitoring the number or frequency of pulses of the signals on these general purpose input / output pins.
[0015] However, this traditional approach has inherent limitations. First, the number of general-purpose input / output pins provided by the baseboard management controller 100 is limited. For example, a typical baseboard management controller 100 may only support sixteen such pins. Given that a dual-rotor fan requires two pins to monitor the front and rear rotor signals respectively, this means that a single baseboard management controller 100 can theoretically manage a maximum of eight dual-rotor fans simultaneously. Furthermore, these pins may also be occupied by other devices. For high-performance server models that require a large number of fans 12, this limitation becomes a significant bottleneck for system performance expansion.
[0016] Furthermore, the signal transmission path from the fan control board 11 to the baseboard management controller 100 located on the motherboard 10 is typically quite long. These rotor pulse signals are high-frequency changing square waves, and the long wiring not only occupies PCB layout space but is also prone to interference with other electromagnetically sensitive circuits in the server (such as high-speed serial buses or clock signals), thereby affecting the stability and reliability of signals in the server.
[0017] Figure 2This is a schematic diagram of the structure of a server exemplified by an embodiment of this specification. The server includes a baseboard management controller 200, a programmable logic chip 211, and at least one fan 22. The programmable logic chip 211 includes at least one register group, which includes a speed register and a control register.
[0018] The BMC baseboard management controller 200 can be integrated into the server's motherboard or used as a management control board separate from the motherboard. Figure 2 Taking the case where the baseboard management controller is integrated on the motherboard 20 as an example, the programmable logic chip 211 is mounted on a dedicated fan control board 21. The programmable logic chip 211 can be a CPLD (Complex Programmable Logic Device) or an FPGA (Field Programmable Gate Array) chip. The baseboard management controller 200 and the programmable logic chip 211 communicate via I / O. 2 Establish a communication connection via the C bus. 2 C is a bidirectional two-wire synchronous serial bus with a simple structure. It can effectively perform low-speed data communication between multiple integrated circuits and is suitable for transmitting control commands and status data.
[0019] In addition to the programmable logic chip 211, the fan control board 21 also has multiple fan connectors 210. Each fan 22 in the server chassis connects its signal cable to the fan control board 21 through these fan connectors 210, thereby connecting with the programmable logic chip 211 on the board. In this way, the signals of all fans 22 can interact with the programmable logic chip 211.
[0020] Specifically, the interaction between each fan 22 and the programmable logic chip 211 is achieved through a set of standardized signals, including an in-position signal, a drive pulse signal, and a rotor pulse signal. The in-position signal indicates the physical connection status of the fan 22. When the fan 22 is inserted into its corresponding connector, this signal line presents a valid level, announcing to the control system that the fan 22 is present and ready. The drive pulse signal is used to regulate the speed of the fan 22. This signal is a square wave with a fixed frequency and a variable duty cycle. Its duty cycle, i.e., the proportion of high-level time within one cycle, corresponds to the target speed of the fan 22. A higher duty cycle instructs the fan 22 to increase its speed, while a lower duty cycle instructs it to decrease its speed. The rotor pulse signal characterizes the actual speed of the fan 22's rotor.
[0021] In the embodiments of this specification, the fan 22 can be divided into two types: single-rotor and dual-rotor. This difference is reflected in the signal characteristics fed back to the control system. For a single-rotor fan, it contains only one rotor. Therefore, this type of fan generates only one rotor pulse signal, which can be denoted as the first rotor pulse signal or the front rotor signal, used to characterize the rotor's rotational speed. For a dual-rotor fan, it includes two independently driven rotors. Therefore, the dual-rotor fan generates two independent rotor pulse signals, denoted as the first rotor pulse signal and the second rotor pulse signal, or the front rotor signal and the rear rotor signal, respectively. These two signals reflect the real-time rotational speeds of the front and rear rotors, respectively.
[0022] To achieve efficient fan management, the programmable logic chip 211 is equipped with a dedicated register set. This register set can be considered a specific storage area within the programmable logic chip 211, used to temporarily store critical data. Its function is to act as a data exchange hub between the baseboard management controller 200 and the fans 22 for various signals. A register set contains at least two types of registers categorized by the type of data stored, designated as a speed register and a control register. The speed register stores the current speed value of each fan 22, calculated in real-time by the programmable logic chip 211. The control register stores control commands issued by the baseboard management controller 200.
[0023] For example, in the programmable logic chip 211, each register group can be configured with a control register, two speed registers, and two rotor signal registers for storing the raw rotor pulse signals. The two rotor signal registers respectively store the unprocessed first rotor pulse signal and the second rotor pulse signal collected from the fan 22. The programmable logic chip 211 calculates two independent speed values by counting the number of rising edges of the first and second rotor pulse signals and stores them in the two speed registers respectively.
[0024] Based on the architecture provided in the foregoing embodiments of this specification, the programmable logic chip 211 is used to receive the rotor pulse signal of each of the fans 22, determine the current speed value of each of the fans 22 by counting the number of rising edges of the rotor pulse signal within a preset time window, and store the current speed value of each of the fans 22 in the speed register.
[0025] The baseboard management controller 200 is used to obtain the current speed value of each of the fans 22 stored in the speed register, determine the target speed value of each of the fans 22 based on the obtained current speed value, and store the target speed value of each of the fans 22 in the control register.
[0026] The programmable logic chip 211 is also used to generate drive pulse signals for each of the fans 22 based on the target speed values of each of the fans 22 stored in the control register, and send them to each of the fans 22.
[0027] In this embodiment, the programmable logic chip 211 serves as a signal processing and execution unit, receiving rotor pulse signals from each fan 22. Internally, the chip employs digital logic to count the rising edges of each rotor pulse signal within a preset fixed time window. Since the frequency of the pulse signal is proportional to the rotational speed of the fan 22, the current rotational speed of each fan 22 can be determined by counting the number of rising edges. These real-time measured current rotational speed values are stored in the rotational speed register inside the programmable logic chip 211.
[0028] The rotor pulse signal is a standard square wave generated by the rotation of the rotor of fan 22, with a duty cycle of 50%. The more revolutions the rotor makes per unit time, the more square wave cycles it generates. Figure 3 This is a schematic diagram of the rotor pulse signal exemplified in an embodiment of this specification, where high and low levels are represented by V_H and V_L, respectively. Since the duty cycle of the rotor pulse signal is fixed, T1=T2=T3=T4 in the diagram. The sum of T1, T2, T3, and T4 can be considered as the time required for the rotor to rotate one revolution. The programmable logic chip 211 can be set to a fixed preset time window, such as one second. Within this preset time window, the chip's digital logic circuitry monitors the rotor pulse signal of each fan 22 in real time and counts the number of rising edges, denoted as the count value CNT.
[0029] After obtaining the count value CNT, the programmable logic chip 211 needs to calculate the actual rotational speed in revolutions per minute (RPM) using a conversion formula. In practical applications, each rotor revolution generates two square wave pulses, i.e., two rising edges. Therefore, the rotational speed calculation formula is: N = (CNT / 2) × 60, with the unit of rotational speed being revolutions per minute (RPM). To further simplify system data processing and interface with control logic, this rotational speed value can often be converted to a percentage. The conversion method is to compare it with the known maximum rotational speed F of the rotor of the current type of fan 22, calculated using the formula: P = N / F. This percentage rotational speed value P intuitively reflects the load state of the fan 22 under its current maximum capacity.
[0030] The baseboard management controller 200 serves as the decision-making core, through I... 2The C-bus periodically retrieves the current speed values of all fans 22 from the speed register. Based on this, the baseboard management controller 200 can integrate this speed information with temperature data collected from various parts of the server to run its preset thermal management strategy, thereby calculating the target speed values required for each fan 22 to meet the current cooling demands. These target speed values are then written by the baseboard management controller 200 into the control register of the programmable logic chip 211 in the form of control commands.
[0031] Based on this, the programmable logic chip 211 can continuously read the target speed values of each fan 22 stored in the control register. According to these target values, the programmable logic chip 211 generates corresponding drive pulse signals with specific duty cycles and sends these signals to the corresponding fans 22, thereby driving the fans 22 to adjust and stabilize at the speed required by the instruction.
[0032] Accordingly, the embodiments in this specification, compared with the traditional heat dissipation control architecture, can effectively overcome the bottlenecks of the traditional architecture in terms of scalability, electromagnetic interference and resource utilization efficiency by introducing a programmable logic chip 211 and reconfiguring the system division of labor.
[0033] In the embodiments described in this specification, the baseboard management controller can acquire all fan data through a single bus, thereby overcoming the limitation of its general-purpose input / output pin count on the number of fan connections. This expands the fan control capacity of the server and can meet the deployment requirements of high-performance servers for a large number of fans. Simultaneously, it shortens the signal transmission path, saves PCB routing space, and avoids the risk of electromagnetic interference caused by long-distance complex wiring. Furthermore, because the speed calculation task based on high-frequency rotor pulse signals is performed by a programmable logic chip, the baseboard management controller can effectively save computing resources, allowing it to focus more on management functions such as heat dissipation strategy calculations.
[0034] For high-integration-density multi-node servers, a single physical chassis can accommodate two or more independent compute nodes. Each node can be considered a server with its own core functions, including its own motherboard, processor, operating system, and baseboard management controller, capable of executing computing tasks independently or collaboratively. Regarding thermal management in multi-node servers, to control costs and simplify the structure, multiple compute nodes typically share the same set of fans to cool the entire chassis. In traditional control schemes, each node's baseboard management controller directly controls these shared fans, posing a risk of command conflicts. For example, a node under high load may require its fans to run at full speed to enhance cooling, while an idle node may prefer its fans to run at low speed to reduce noise and energy consumption. Without an effective coordination mechanism, the fans will be unable to respond to these conflicting control commands simultaneously, potentially leading to overheating of a node and affecting the stability and reliability of the entire system.
[0035] To optimize for multi-node servers, Figure 4 This is a schematic diagram of another server structure exemplified by an embodiment of this specification. The server includes at least two baseboard management controllers 400; the programmable logic chip 411 includes at least two register groups; each baseboard management controller 400 is bound to one register group.
[0036] The baseboard management controller 400 is used to obtain the current speed value of each of the fans 42 stored in the speed register in the bound register group, and store the target speed value of each of the fans 42 into the control register in the bound register group.
[0037] The server in this embodiment is equipped with at least two baseboard management controllers 400, which can be placed on two motherboards 40 respectively, serving as independent computing nodes. To support this multi-baseboard management controller 400 architecture, the programmable logic chip 411 has at least two register groups internally, each register group containing an independent speed register and a control register.
[0038] In this configuration, each baseboard management controller 400 is fixedly assigned and bound to a specific register group, establishing a one-to-one dedicated communication channel. Under this configuration, the operation of each baseboard management controller 400 is limited to the scope of its bound register group. Similar to the previous embodiment, the programmable logic chip 411 stores the same current speed values of each fan 42 in each speed register, which are determined based on rotor pulse signals acquired by each fan connector 410. The baseboard management controller 400 reads the current speed values of all fans 42 from the speed registers of its dedicated register group to monitor the fan 42 status; simultaneously, it also writes the target speed values calculated based on the heat dissipation requirements of each node into the control register of the bound register group.
[0039] This binding mechanism provides parallel and isolated data access and command issuance space for multiple baseboard management controllers 400, thereby allowing multiple baseboard management controllers 400 to share the same set of fan hardware resources as control entities, while also being able to make independent heat dissipation decisions based on the local state of their respective nodes, thereby coordinating the control of the shared fan control board 41.
[0040] As one or more embodiments of the present invention, generating a drive pulse signal for each of the fans based on the target speed values of each fan stored in the control register includes: For any of the fans 42, determine the maximum value among the target speed values of the fans 42 stored in each of the control registers, and generate a drive pulse signal for the fans 42 based on the maximum value.
[0041] based on Figure 4 In the exemplary server, where at least two baseboard management controllers 400 exist, when a drive pulse signal needs to be generated for a fan 42, the programmable logic chip 411 first simultaneously queries all control registers to read the various target speed values set for the fan 42 by different baseboard management controllers 400. Then, through a comparison logic, the maximum value is selected from these potentially identical or different target speed values to generate the final drive pulse signal sent to the fan 42. This ensures that the final operating speed of the fan 42 always meets the requirements of the baseboard management controller 400 with the highest heat dissipation demand, thus resolving the problem of instruction conflicts among multiple baseboard management controllers 400. This achieves collaborative management of the shared fan control board 41 and ensures the server's heat dissipation safety.
[0042] As one or more embodiments of the present invention, storing the target speed values of each of the fans into the control register includes: For any of the fans 42, if the target speed value of the fan 42 determined at the previous moment is not less than the current speed value of the fan 42 obtained at the current moment, and if the target speed value of the fan 42 determined at the current moment is greater than the current speed value, then the target speed value of the fan 42 determined at the current moment is stored in the control register.
[0043] based on Figure 4 The server illustrated in this embodiment further provides a writing strategy for the control register, which enables the fan 42 control to comply with a cooperative principle: any board management controller 400 will only exercise control over the fan 42 when it confirms that its own heat dissipation demand is higher than the level currently being performed by the fan 42.
[0044] Specifically, each baseboard management controller 400 continuously monitors the operating status of the fan 42. When a controller reads that the actual speed of a fan 42 is higher than the target speed set by the controller in the previous control cycle, this indicates that another baseboard management controller 400 in the current server is driving the fan 42 to operate at a faster speed due to higher heat dissipation requirements.
[0045] In this situation, the baseboard management controller 400 will not immediately overwrite the control register with its newly calculated, potentially lower, target speed value, thus avoiding interference with the existing control state that is serving higher demands. Only when the controller calculates a new target speed value that exceeds the current actual speed of the fan 42 does it indicate that the cooling demand of its local node has become most urgent. At this point, it will write its new, higher target speed value into the control register, actively driving the fan 42 to increase its speed to meet its increased cooling requirements.
[0046] This strategy ensures that the shared fan 42 always responds to the highest heat dissipation demand among multiple controllers through conditional write operations, while avoiding control conflicts and system oscillations that may be caused by multiple controllers sending different commands at the same time, thus ensuring the stability and efficiency of heat dissipation control.
[0047] Based on the foregoing embodiments, the fan types include dual-rotor fans and single-rotor fans. When the fan type is a dual-rotor fan, the fan's rotor pulse signal includes a first rotor pulse signal and a second rotor pulse signal; when the fan type is a single-rotor fan, the fan's rotor pulse signal includes the first rotor pulse signal. Because the programmable logic chip processes the original, high-frequency rotor pulse signal, converting it into a concise digital form of the current rotational speed value, it is then transmitted via I... 2 The C-bus sends data to the baseboard management controller. The baseboard management controller receives the processed data and cannot access the original pulse signal pattern. Therefore, the baseboard management controller itself loses the ability to determine whether the fan is single-rotor or dual-rotor.
[0048] To address this issue, embodiments of this specification employ a programmable logic chip capable of sensing the original signal to perform type determination. The programmable logic chip is further configured to determine the type of each fan based on the fan's rotor pulse signal and send the fan type to the baseboard control manager.
[0049] Accordingly, the programmable logic chip can automatically identify and report the specific type of the connected fan. If the chip can continuously detect valid pulse signals corresponding to the rotational speed on both the first and second rotor pulse signal channels simultaneously, the fan is determined to be a dual-rotor fan. If the chip can only detect valid pulse signals on the first rotor pulse signal channel, but cannot capture valid signals on the second rotor pulse signal channel, the fan is determined to be a single-rotor fan. After determining the fan type, the programmable logic chip sends this information to the baseboard management controller. This allows the baseboard management controller to accurately know the hardware type of the fan connected to each port even when only receiving digital rotational speed values, thus providing an information basis for executing the correct heat dissipation strategy, performing status monitoring, and displaying user interface information.
[0050] Figure 5 This is a schematic flowchart illustrating an exemplary embodiment of a fan control method for a programmable logic chip in this specification. The fan control method is applied to a programmable logic chip in a server, which further includes a baseboard management controller and at least one fan. The programmable logic chip includes at least one register group, which includes a speed register and a control register. The fan control method includes: S500: Receive the rotor pulse signal of each of the fans, determine the current speed value of each fan by counting the number of rising edges of the rotor pulse signal within a preset time window, and store the current speed value of each fan in the speed register, so that the baseboard management controller determines the target speed value of each fan based on the current speed value of each fan stored in the speed register, and stores the target speed value of each fan in the control register. S502: Generate a drive pulse signal for each fan based on the target speed value of each fan stored in the control register, and send it to each fan.
[0051] As one or more preferred embodiments of the present invention, the server includes at least two baseboard management controllers; the programmable logic chip includes at least two register groups; each baseboard management controller is bound to one register group; the generation of drive pulse signals for each fan based on the target speed values of each fan stored in the control register includes: For any of the fans, determine the maximum value among the target speed values of the fans stored in each of the control registers, and generate the drive pulse signal of the fan based on the maximum value.
[0052] Figure 6This is a flowchart illustrating an exemplary embodiment of a fan control method for a baseboard management controller according to a specification. The fan control method is applied to a baseboard management controller in a server, the server further comprising a programmable logic chip and at least one fan. The programmable logic chip includes at least one register group, the register group including a speed register and a control register. The fan control method includes: S600: Obtain the current speed value of each fan stored in the speed register; the current speed value of each fan is predetermined by the programmable logic chip by counting the number of rising edges of the rotor pulse signal of each fan within a preset time window and stored in the speed register; S602: Determine the target speed value of each fan based on the obtained current speed value, and store the target speed value of each fan in the control register, so that the programmable logic chip generates a drive pulse signal for each fan based on the target speed value of each fan stored in the control register, and sends it to each fan.
[0053] As one or more preferred embodiments of the present invention, the server includes at least two baseboard management controllers; the programmable logic chip includes at least two register groups; each baseboard management controller is bound to one register group; obtaining the current speed value of each fan stored in the speed register includes: obtaining the current speed value of each fan stored in the speed register in the bound register group; The step of storing the target speed value of each of the fans into the control register includes: storing the target speed value of each of the fans into the control register in the bound register group.
[0054] This specification also provides a computer-readable storage medium storing a computer program that, when executed by a processor, implements the method of any embodiment of this specification.
[0055] Computer-readable storage media include both permanent and non-permanent, removable and non-removable media that can store information using any method or technology. Information can be computer-readable instructions, data structures, modules of programs, or other data. Examples of computer storage media include, but are not limited to, phase-change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, CD-ROM, digital versatile optical disc (DVD) or other optical storage, magnetic tape, disk storage, quantum memory, graphene-based storage media or other magnetic storage devices, or any other non-transferable medium that can be used to store information accessible by a computing device. As defined herein, computer-readable media does not include transient computer-readable media, such as modulated data signals and carrier waves.
[0056] The embodiments of the subject matter and functional operation described in this specification can be implemented in the following ways: digital electronic circuits, tangibly embodied computer software or firmware, computer hardware including the structures disclosed in this specification and their structural equivalents, or combinations thereof. Embodiments of the subject matter described in this specification can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions encoded on a tangible, non-transitory program carrier for execution by a data processing apparatus or for controlling the operation of a data processing apparatus. Alternatively or additionally, the program instructions may be encoded on artificially generated propagation signals, such as machine-generated electrical, optical, or electromagnetic signals, which are generated to encode information and transmit it to a suitable receiving device for execution by the data processing apparatus. The computer storage medium may be a machine-readable storage device, a machine-readable storage substrate, a random or serial access memory device, or combinations thereof.
[0057] The processing and logic flow described in this specification can be executed by one or more programmable computers that execute one or more computer programs to perform corresponding functions by operating on input data and generating output. The processing and logic flow can also be executed by dedicated logic circuitry—such as FPGAs (Field-Programmable Gate Arrays) or ASICs (Application-Specific Integrated Circuits), and the device can also be implemented as dedicated logic circuitry.
[0058] Suitable computers for executing computer programs include, for example, general-purpose and / or special-purpose microprocessors, or any other type of central processing unit. Typically, the central processing unit receives instructions and data from read-only memory and / or random access memory. The basic components of a computer include a central processing unit for implementing or executing instructions and one or more memory devices for storing instructions and data. Typically, a computer will also include one or more mass storage devices for storing data, such as disks, magneto-optical disks, or optical disks, or the computer will be operatively coupled to such mass storage devices to receive data from or transfer data to them, or both. However, a computer is not required to have such devices. Furthermore, a computer can be embedded in another device, such as a mobile phone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a global positioning system (GPS) receiver, or a portable storage device such as a universal serial bus (USB) flash drive, to name a few.
[0059] Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices, such as semiconductor memory devices (e.g., EPROM, EEPROM, and flash memory devices), magnetic disks (e.g., internal hard disks or removable disks), magneto-optical disks, and CD-ROM and DVD-ROM disks. Processors and memory may be supplemented by or incorporated into dedicated logic circuitry.
[0060] While this specification contains numerous specific implementation details, these should not be construed as limiting the scope of any invention or the scope of the claims, but rather are primarily intended to describe features of specific embodiments of a particular invention. Certain features described in the various embodiments herein may also be implemented in combination in a single embodiment. Conversely, various features described in a single embodiment may also be implemented separately in various embodiments or in any suitable sub-combination. Furthermore, while features may function in certain combinations as described above and even initially claimed in this way, one or more features from a claimed combination may be removed from that combination in some cases, and a claimed combination may refer to a sub-combination or a variation thereof.
[0061] Similarly, although the operations are depicted in a specific order in the accompanying drawings, this should not be construed as requiring these operations to be performed in the specific order shown or sequentially, or requiring all illustrated operations to be performed to achieve the desired result. In some cases, multitasking and parallel processing may be advantageous. Furthermore, the separation of various system modules and components in the above embodiments should not be construed as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
[0062] Thus, specific embodiments of the subject matter have been described. Other embodiments are within the scope of the appended claims. In some cases, the actions recited in the claims may be performed in a different order and still achieve the desired result. Furthermore, the processes depicted in the drawings are not necessarily shown in a specific order or sequence to achieve the desired result. In some implementations, multitasking and parallel processing may be advantageous.
[0063] The above description is merely a preferred embodiment of this application and is not intended to limit this application. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the scope of protection of this application.
Claims
1. A server, characterized by The programmable logic chip comprises at least one register group, and the register group comprises a rotating speed register and a control register; The programmable logic chip is configured to receive a rotor pulse signal of each fan, determine a current rotating speed value of each fan by counting a number of rising edges of the rotor pulse signal within a preset time window, and store the current rotating speed value of each fan into the rotating speed register; The baseboard management controller is configured to obtain the current rotating speed value of each fan stored in the rotating speed register, determine a target rotating speed value of each fan based on the obtained current rotating speed value, and store the target rotating speed value of each fan into the control register; The programmable logic chip is further configured to generate a driving pulse signal of each fan based on the target rotating speed value of each fan stored in the control register, and send the driving pulse signal to each fan.
2. The server of claim 1, wherein, The server comprises at least two baseboard management controllers; the programmable logic chip comprises at least two register groups; each baseboard management controller is bound to a register group; The baseboard management controller is configured to obtain the current rotating speed value of each fan stored in the rotating speed register in the bound register group, and store the target rotating speed value of each fan into the control register in the bound register group.
3. The server of claim 2, wherein, The generation of the driving pulse signal of each fan based on the target rotating speed value of each fan stored in the control register comprises: For any fan, determining a maximum value of the target rotating speed value of the fan stored in each control register, and generating the driving pulse signal of the fan based on the maximum value.
4. The server of claim 2, wherein, The storage of the target rotating speed value of each fan into the control register comprises: For any fan, if the target rotating speed value of the fan determined at a current time is greater than the current rotating speed value of the fan obtained at the current time, and the target rotating speed value of the fan determined at a previous time is not less than the current rotating speed value of the fan obtained at the current time, then the target rotating speed value of the fan determined at the current time is stored into the control register.
5. The server of claim 1, wherein, The type of the fan comprises a double-rotor fan and a single-rotor fan; In a case where the type of the fan is a double-rotor fan, the rotor pulse signal of the fan comprises a first rotor pulse signal and a second rotor pulse signal; In a case where the type of the fan is a single-rotor fan, the rotor pulse signal of the fan comprises a first rotor pulse signal; The programmable logic chip is further configured to determine the type of each fan based on the rotor pulse signal of the fan, and send the type of the fan to the baseboard management controller.
6. A fan control method characterized by, The programmable logic chip applied to a server, the server further comprising a baseboard management controller and at least one fan, the programmable logic chip comprising at least one register group, and the register group comprising a rotating speed register and a control register; The fan control method comprises: receiving rotor pulse signals of each of the fans, determining current rotation speed values of each of the fans by counting rising edges of the rotor pulse signals within a preset time window, and storing the current rotation speed values of each of the fans to the rotation speed register, so that the baseboard management controller determines target rotation speed values of each of the fans based on the current rotation speed values of each of the fans stored in the rotation speed register, and stores the target rotation speed values of each of the fans to the control register; generating driving pulse signals of each of the fans based on the target rotation speed values of each of the fans stored in the control register, and sending the driving pulse signals to each of the fans.
7. The fan control method according to claim 6, wherein The server comprises at least two baseboard management controllers; the programmable logic chip comprises at least two register groups; each of the baseboard management controllers is bound to one register group; The generating of the driving pulse signals of each of the fans based on the target rotation speed values of each of the fans stored in the control register comprises: For any one of the fans, determining a maximum value among the target rotation speed values of the fan stored in each of the control registers, and generating the driving pulse signal of the fan based on the maximum value.
8. A fan control method characterized by, The baseboard management controller is applied to a server, the server further comprises a programmable logic chip and at least one fan, the programmable logic chip comprises at least one register group, and the register group comprises a rotation speed register and a control register; The fan control method comprises: obtaining current rotation speed values of each of the fans stored in the rotation speed register; the current rotation speed values of each of the fans are determined in advance by the programmable logic chip by counting rising edges of rotor pulse signals of each of the fans within a preset time window, and are stored to the rotation speed register; determining target rotation speed values of each of the fans based on the obtained current rotation speed values, and storing the target rotation speed values of each of the fans to the control register, so that the programmable logic chip generates driving pulse signals of each of the fans based on the target rotation speed values of each of the fans stored in the control register, and sends the driving pulse signals to each of the fans.
9. The fan control method according to claim 8, wherein The server comprises at least two baseboard management controllers; the programmable logic chip comprises at least two register groups; each of the baseboard management controllers is bound to one register group; the obtaining of the current rotation speed values of each of the fans stored in the rotation speed register comprises: obtaining current rotation speed values of each of the fans stored in the rotation speed register in the bound register group; The storing of the target rotation speed values of each of the fans to the control register comprises: storing the target rotation speed values of each of the fans to the control register in the bound register group.
10. A computer-readable storage medium having stored thereon a computer program, characterized in that, The program is executed by the processor to implement the steps of the method of any one of claims 6-9.