Monitoring system, method, apparatus, device, medium for basic input / output system

By monitoring multiple startup stages of the basic input/output system and switching to the backup system when a timeout occurs, the problem of excessively long server startup time is solved, achieving fast server startup.

CN119336398BActive Publication Date: 2026-02-17INSPUR SUZHOU INTELLIGENT TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411877757.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-12-19
Publication Date
2026-02-17
Estimated Expiration
2044-12-19

AI Technical Summary

Technical Problem

In existing technologies, when the primary basic input/output system fails, the server needs to wait a long time before switching to the backup basic input/output system, resulting in excessively long boot times.

Method used

The first controller monitors multiple power-on and startup stages of the basic input/output system, determines the first startup time based on the device configuration parameters, and controls the switch to switch to the second basic input/output system when the actual startup time exceeds the first startup time.

Benefits of technology

In the event of a failure during the startup of the basic input/output system, it can quickly switch to the backup system, shorten the startup timeout period, and improve the server startup speed.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119336398B_ABST
    Figure CN119336398B_ABST
Patent Text Reader

Abstract

The application relates to the technical field of servers, and particularly discloses a basic input / output system monitoring system, method, device, equipment and medium, wherein the first starting time of multiple starting stages of a first basic input / output system is obtained according to device configuration parameters, the starting state of the first basic input / output system is obtained by a first controller after power-on, if it is identified that the actual starting time exceeds the corresponding first starting time of the starting stage in the starting stage of the first basic input / output system, it is determined that the first basic input / output system fails to start, and a first switch is controlled to switch the first basic input / output system to a second basic input / output system, so that the second basic input / output system can be switched in time when the first basic input / output system fails, the time for determining that the basic input / output system starts to time out is shortened, and the starting rate of the server is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of server technology, and in particular to monitoring systems, methods, apparatus, devices, and media for basic input / output systems. Background Technology

[0002] In server systems, the Basic Input Output System (BIOS) is a set of programs embedded in a read-only memory (ROM) chip on the server motherboard. It stores the computer's most important basic input / output programs, power-on self-test (POST) programs, and system startup programs. If the BIOS fails, the server will fail to boot. Currently, some server devices are designed with two BIOS memories as a primary and backup BIOS. However, when the primary BIOS fails, it takes a considerable amount of time to switch to the backup BIOS, resulting in excessively long boot times.

[0003] Improving the server's boot-up speed is a technical problem that needs to be solved by those skilled in the art. Summary of the Invention

[0004] The purpose of this invention is to provide a monitoring system, method, apparatus, device, and medium for a basic input / output system, which can be used to improve the startup speed of a server.

[0005] To solve the above-mentioned technical problems, the present invention provides a monitoring system for a basic input / output system, including a first controller and a first switching switch;

[0006] The first controller is used to obtain the startup status of the first basic input / output system by communicating with the first basic input / output system after power-on. If it is detected that the actual startup time in the power-on startup phase of the first basic input / output system exceeds the first startup time corresponding to the power-on startup phase, it is determined that the first basic input / output system has failed to start up, and the first switch is controlled to switch the first basic input / output system to the second basic input / output system.

[0007] The number of startup phases is multiple, and the first startup time is determined according to the device configuration parameters corresponding to the startup phase.

[0008] On the one hand, the boot-up phase includes at least two of the following: central processing unit boot phase, memory initialization phase, peripheral loading phase, operating system loader loading phase, and operating system running phase.

[0009] On the other hand, the first controller monitors the CPU startup phase of the first basic input / output system according to the startup state, including:

[0010] Upon detecting a power-on signal for the central processing unit, the start-up phase of the central processing unit is determined to have begun.

[0011] If a CPU reset signal is detected from the CPU, it is determined that the CPU startup phase has been completed.

[0012] On the other hand, the first controller monitors the memory initialization phase of the first basic input / output system according to the startup state, including:

[0013] A central processing unit reset signal is detected, indicating that the memory initialization phase has begun;

[0014] If a peripheral initialization signal is detected, it is determined that the memory initialization phase has been completed.

[0015] On the other hand, the first controller monitors the peripheral loading phase of the first basic input / output system according to the startup state, including:

[0016] Upon detecting a peripheral initialization signal, the peripheral loading phase is determined to have begun.

[0017] If an operating system loader loading signal is detected, it is determined that the peripheral loading phase has been completed.

[0018] On the other hand, the first controller monitors the operating system loader loading phase of the first basic input / output system according to the startup state, including:

[0019] An operating system loader loading signal is detected, indicating that the operating system loader loading phase has begun.

[0020] If an operating system kernel initialization signal is detected, it is determined that the operating system loader loading phase has been completed.

[0021] On the other hand, the first controller monitors the operating system operation phase of the first basic input / output system according to the startup state, including:

[0022] Upon detecting the operating system kernel initialization signal, it is determined that the operating system's runtime phase has begun.

[0023] If the operating system is detected to have completed a preset number of running cycles, then the operating system's running phase is determined to be complete.

[0024] On the other hand, the first controller acquires the startup status and identifies that the actual startup time exceeds the first startup time, including:

[0025] After determining that the first basic input / output system has entered the current power-on startup phase, the first controller listens to the output information of the first basic input / output system.

[0026] If no information indicating the completion of the current startup phase is received from the first basic input / output system within the corresponding first startup time, the first controller determines that the actual startup time corresponding to the current startup phase exceeds the corresponding first startup time.

[0027] On the other hand, the first controller monitors the output information of the first basic input / output system, including:

[0028] After the first controller hears the information sent by the first basic input / output system indicating the start of the power-on phase, it configures and starts the first timer corresponding to the power-on phase according to the first startup time corresponding to the power-on phase.

[0029] After the first controller receives the information sent by the first basic input / output system that the power-on startup phase has been completed, it shuts down the first timer.

[0030] On the other hand, the first controller acquires the startup status and identifies that the actual startup time exceeds the first startup time, including:

[0031] After determining that the first basic input / output system has entered the current power-on startup phase, the first controller accesses the first basic input / output system within the first startup time corresponding to the power-on startup phase to obtain the startup status.

[0032] If, after the first startup time is reached, the startup state is that the first basic input / output system has not completed the current power-on startup phase, then the first controller determines that the actual startup time corresponding to the current power-on startup phase exceeds the corresponding first startup time.

[0033] On the other hand, the first controller determines that the first basic input / output system has entered the current power-on startup phase, including:

[0034] After the first controller accesses the first basic input / output system and obtains that the first basic input / output system has completed the previous power-on startup phase, it determines that the first basic input / output system has entered the current power-on startup phase.

[0035] On the other hand, after determining that the first basic input / output system has entered the current power-on startup phase, the first controller accesses the first basic input / output system within the first startup time corresponding to the power-on startup phase to obtain the startup state, including:

[0036] After determining that the first basic input / output system has entered the current power-on startup phase, the first controller multiplies the first startup time corresponding to the current power-on startup phase by a preset scaling factor to obtain the second startup time.

[0037] The first controller configures a second timer based on the second startup time, configures a third timer based on the first startup time, and starts the second timer and the third timer;

[0038] After the second timer expires, the first controller accesses the first basic input / output system to obtain the startup status. If the first basic input / output system has not completed the current power-on startup stage, it continues to wait. If the first basic input / output system has completed the current power-on startup stage, it closes the third timer and determines that the first basic input / output system enters the next power-on startup stage.

[0039] When the third timer expires, the first controller accesses the first basic input / output system to obtain the startup status. If the first basic input / output system has not completed the current power-on startup phase, it is determined that the actual startup time exceeds the first startup time. If the first basic input / output system has completed the current power-on startup phase, it is determined that the first basic input / output system enters the next power-on startup phase.

[0040] On the other hand, the first controller is a baseboard management controller;

[0041] After power-on, the first controller communicates with the first basic input / output system to obtain the startup status of the first basic input / output system, including:

[0042] The baseboard management controller obtains the startup status through intelligent platform management interface commands.

[0043] On the other hand, the first controller is a complex programmable logic device;

[0044] After power-on, the first controller communicates with the first basic input / output system to obtain the startup status of the first basic input / output system, including:

[0045] The complex programmable logic device receives the startup status information output by the first basic input / output system via an integrated circuit bus.

[0046] On the other hand, the first controller is a complex programmable logic device;

[0047] After power-on, the first controller communicates with the first basic input / output system to obtain the startup status of the first basic input / output system, including:

[0048] The complex programmable logic device receives the startup status information sent by the board management controller.

[0049] To address the aforementioned technical problems, the present invention also provides a monitoring method for a basic input / output system, applied to a first controller, comprising:

[0050] After power-on, the startup status of the first basic input / output system is obtained by communicating with the first basic input / output system.

[0051] If it is detected that the actual startup time exceeds the first startup time corresponding to the startup phase during the power-on startup phase of the first basic input / output system, then it is determined that the first basic input / output system has failed to start.

[0052] After determining that the first basic input / output system has failed to start, control the first switch to switch the first basic input / output system to the second basic input / output system;

[0053] The number of startup phases is multiple, and the first startup time is determined according to the device configuration parameters corresponding to the startup phase.

[0054] To address the aforementioned technical problems, the present invention also provides a monitoring device for a basic input / output system, applied to a first controller, comprising:

[0055] The monitoring unit is used to obtain the startup status of the first basic input / output system by communicating with the first basic input / output system after power-on;

[0056] The identification unit is configured to determine that the first basic input / output system has failed to start if it is detected that the actual startup time in the power-on startup phase of the first basic input / output system exceeds the first startup time corresponding to the power-on startup phase.

[0057] The control unit is configured to control the first switch to switch the first basic input / output system to the second basic input / output system after determining that the first basic input / output system has failed to start.

[0058] The number of startup phases is multiple, and the first startup time is determined according to the device configuration parameters corresponding to the startup phase.

[0059] To address the aforementioned technical problems, the present invention also provides a monitoring device for a basic input / output system, comprising:

[0060] Memory, used to store computer programs;

[0061] A processor for executing the computer program, which, when executed by the processor, implements the steps of the monitoring method for the basic input / output system described above.

[0062] To address the aforementioned technical problems, the present invention also provides a non-volatile storage medium storing a computer program thereon, wherein the computer program, when executed by a processor, implements the steps of the monitoring method for the basic input / output system described above.

[0063] To address the aforementioned technical problems, the present invention also provides a computer program product, comprising a computer program that, when executed by a processor, implements the steps of the monitoring method for the basic input / output system described above.

[0064] The monitoring system for a basic input / output system provided by this invention has the advantage of determining the first startup time based on the device configuration parameters corresponding to multiple power-on and startup stages of the first basic input / output system by a first controller. After power-on, the system communicates with the first basic input / output system to obtain its startup status. If it is detected that the actual startup time in a power-on and startup stage of the first basic input / output system exceeds the first startup time corresponding to that stage, it is determined that the first basic input / output system has failed to start. The system then controls a first switching switch to switch the first basic input / output system to a second basic input / output system. This allows for a quick switch to the second basic input / output system when a failure occurs at a certain stage of the first basic input / output system's startup process, shortening the time for determining the startup timeout of the first basic input / output system and thus improving the server's power-on and startup speed.

[0065] The monitoring method, apparatus, equipment, non-volatile storage medium, and computer program product of the basic input / output system provided by the present invention have the above-mentioned beneficial effects, which will not be elaborated further here. Attached Figure Description

[0066] To more clearly illustrate the technical solutions of the embodiments of the present invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0067] Figure 1An architecture diagram of a monitoring system for a basic input / output system provided in an embodiment of the present invention;

[0068] Figure 2 A timing diagram of the startup process of a basic input / output system provided in an embodiment of the present invention;

[0069] Figure 3 A flowchart illustrating a monitoring method for a basic input / output system provided in an embodiment of the present invention;

[0070] Figure 4 This is a schematic diagram of the structure of a monitoring device for a basic input / output system provided in an embodiment of the present invention. Detailed Implementation

[0071] The core of this invention is to provide a monitoring system, method, apparatus, device, and medium for a basic input / output system, which can be used to improve the startup speed of a server.

[0072] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.

[0073] In server systems, the BIOS Flash memory is used to store the BIOS firmware. In one type of server, the BIOS Flash memory stores the Unified Extensible Firmware Interface (UEFI) firmware. After the server powers on, the BIOS initializes the hardware and boots the operating system (OS).

[0074] To improve boot reliability, two Basic Input / Output Systems (BIOS) are typically deployed on the server motherboard, one primary and one backup. The primary BIOS is the BIOS that starts by default when the server boots up. If the primary BIOS is damaged due to viruses, human error during upgrades, or other reasons, causing it to fail to boot and load the operating system, i.e., if the primary BIOS fails to boot and crashes, the system can switch to the backup BIOS to boot, thus preventing the server system from failing to boot and improving the reliability of server use.

[0075] In traditional solutions, there is no automatic failover mechanism between primary and backup basic input / output systems. Maintenance personnel must manually switch to the backup basic input / output system storage after observing a startup failure of the primary system. This requires 24-hour manual monitoring, wasting manpower and causing the server to remain offline for extended periods.

[0076] Therefore, those skilled in the art propose setting a timer for the primary basic input / output system. If the primary basic input / output system fails to start successfully within the predetermined time, the system can be automatically switched to the backup basic input / output system via a switch to start it, thereby eliminating the need for manual intervention and shortening server downtime.

[0077] However, in related technologies, this automatic switching scheme for primary and backup basic input / output systems requires a certain timeout period before switching to the backup basic input / output system if the central processing unit fails to load the basic input / output system or if the basic input / output system fails to start after loading. Moreover, to avoid misjudging the primary basic input / output system's startup failure during the normal startup phase, the maximum startup time of the primary basic input / output system needs to be considered and the timer duration needs to be set. This results in a longer waiting time before automatically switching to the backup basic input / output system after the primary basic input / output system fails, leading to a longer server boot time.

[0078] To address this, the monitoring system for a basic input / output system provided in this embodiment of the invention uses a first controller to determine a first startup time based on device configuration parameters corresponding to multiple power-on / startup stages of the first basic input / output system. After power-on, the system communicates with the first basic input / output system to obtain its startup status. If it detects that the actual startup time exceeds the first startup time corresponding to a power-on / startup stage in the first basic input / output system, it determines that the first basic input / output system has failed to start and controls a first switching switch to switch the first basic input / output system to a second basic input / output system. This allows for a quick switch to the second basic input / output system when a failure occurs at a certain stage of the first basic input / output system's startup process, shortening the time for determining the startup timeout of the first basic input / output system and thus improving the server's power-on / startup speed.

[0079] Figure 1 This is an architecture diagram of a monitoring system for a basic input / output system provided in an embodiment of the present invention.

[0080] like Figure 1 As shown, the monitoring system of the basic input / output system provided in this embodiment of the invention may include a first controller and a first switching switch 101.

[0081] The first controller is used to obtain the startup status of the first basic input / output system by communicating with the first basic input / output system after power-on. If it is detected that the actual startup time in the power-on startup phase of the first basic input / output system exceeds the first startup time corresponding to the power-on startup phase, it determines that the first basic input / output system has failed to start and controls the first switching switch 101 to switch the first basic input / output system to the second basic input / output system.

[0082] There are multiple startup phases, and the first startup time is determined based on the device configuration parameters corresponding to the startup phase.

[0083] In this embodiment of the invention, the first controller may be a Baseboard Management Controller (BMC) or a Complex Programmable Logic Device (CPLD).

[0084] The first switch 101 can be a physical switch on a server motherboard or baseboard management controller board. The first switch 101 is used to select the connection between the server's platform controller (such as the Platform Controller Hub, PCH, also known as the integrated southbridge) and the memory of the basic input / output system. That is, for the first and second basic input / output systems, the first switch 101 includes at least two selection channels: the first channel selects the memory where the platform controller and the first basic input / output system reside, and the second channel selects the memory where the platform controller and the second basic input / output system reside. The first switch 101 can be connected to the platform controller, to the memory where the first basic input / output system resides, and to the memory where the second basic input / output system resides via a Serial Peripheral Interface (SPI) bus.

[0085] If the first controller uses a complex programmable logic device (CPL), the CPL can be connected to the first switch 101 via an integrated circuit bus to control the chip select of the first switch 101. Furthermore, the CPL can be connected to the platform controller via the first integrated circuit bus, and the CPL can be connected to the controlled terminal of the first switch 101 via a second integrated circuit bus. Both the first and second integrated circuit buses can be two-wire serial buses (Inter-Integrated Circuit, I2C) or improved inter-integrated circuit buses (I3C).

[0086] If the first controller is a board management controller, the board management controller can be connected to the platform controller via a low pin count bus (LPC bus). The board management controller can control the chip select of the first switching switch 101 through Intelligent Platform Management Interface (IPMI) commands.

[0087] In this embodiment of the invention, the first controller may use a first bus to communicate with the first basic input / output system and the second basic input / output system to obtain their startup status.

[0088] If the first controller uses a complex programmable logic device, the first bus can be an integrated circuit bus. The complex programmable logic device can be connected to the first basic input / output system through the third integrated circuit bus. The complex programmable logic device can be connected to the second basic input / output system through the fourth integrated circuit bus. Both the third and fourth integrated circuit buses can be two-wire serial buses (Inter-Integrated Circuit, I2C) or improved integrated circuit buses.

[0089] If the first controller is a baseboard management controller, the baseboard management controller can communicate with the first basic input / output system and the second basic input / output system through intelligent platform management interface commands to obtain their status. For example, for the first basic input / output system, the first basic input / output system can output its own startup status by sending intelligent platform management interface commands to the baseboard management controller.

[0090] After the server is powered on, there is a default basic input / output system selected, which is defined as the first basic input / output system in this embodiment of the invention. This can be either the primary basic input / output system or the backup basic input / output system as defined in related technologies. In specific implementations, the primary basic input / output system can be used as the first basic input / output system by default. However, if the primary basic input / output system fails before the server is shut down, the backup basic input / output system may be set to start by default on the next power-on before shutdown. In this case, the first basic input / output system refers to the backup basic input / output system.

[0091] After the first controller powers on, it can read the BIOS Flash Slot Number register of the BIOS Memory and determine the first BIOS based on the value of the register. If the slot number register uses 0 or 1 to represent two BIOSes, and the value read by the first controller is neither 0 nor 1, then the BIOS with slot number 0 is selected as the first BIOS by default and written to the register in the non-volatile memory (NVRAM). If the value read by the first controller is 0 or 1, it monitors whether the BIOS startup has timed out. If a timeout occurs, the value of the slot number register is inverted and the segment is set; otherwise, the BIOS chip select is performed according to the read value of the slot number register.

[0092] In this embodiment of the invention, a second basic input / output system is defined as a secondary basic input / output system that is in a normal state and can be started normally. That is to say, the second basic input / output system can start normally after the first basic input / output system fails to start. In specific implementations, there can be one or more second basic input / output systems.

[0093] In this embodiment of the invention, the process of starting the basic input / output system is divided into multiple stages, and starting one stage is called the power-on startup stage.

[0094] In some optional embodiments of the present invention, the startup process of the Basic Input / Output System (PIOS) is divided into multiple startup stages. This may include: grouping the startup process of at least one piece of hardware or the loading process of at least one piece of software into the same startup stage according to the hardware startup sequence and software loading sequence of the server during the PIOS startup process. In specific implementations, the startup sequence of various types of hardware and software can be divided according to the hardware startup timing and software loading timing sequence of the server during the PIOS startup process. All or part of the hardware and software can be used as the basis for dividing the startup stages, and the order of each startup stage is determined according to the startup sequence.

[0095] Depending on the server's device configuration parameters (which may specifically include software and hardware configuration parameters), the startup time for each boot-up phase may differ during normal startup. In this embodiment of the invention, the startup time corresponding to each boot-up phase during normal startup is defined as the first startup time, and a first startup time that can cover the maximum duration of normal execution of each boot-up phase is determined based on the device configuration parameters corresponding to the boot-up phase.

[0096] The first controller can pre-store the first startup time corresponding to each boot-up stage and monitor whether the actual startup time of each boot-up stage has exceeded the time limit. In addition, the first startup time corresponding to each boot-up stage may be different in different boot-ups of the server. In this case, the first controller can pre-store the first startup time corresponding to each boot-up stage under different boot-ups of the server, or the first basic input / output system can send an updated first startup time to the first controller after booting.

[0097] According to the Unified Extensible Firmware Interface (UEFI) specification, the boot phase of a Basic Input / Output System (BIOS) can be divided into a CPU boot phase, a memory initialization phase, a peripheral loading phase, an operating system loader loading phase, and an operating system runtime phase. In some optional embodiments of this invention, the boot phase may include at least two of the following: CPU boot phase, memory initialization phase, peripheral loading phase, operating system loader loading phase, and operating system runtime phase. In other optional embodiments of this invention, multiple phases may be monitored as a single boot phase. In still other optional embodiments of this invention, more or fewer boot phases may be configured.

[0098] After power-on, the first controller determines the first basic input / output system by reading the slot number register of the basic input / output system memory, and obtains the startup status of the first basic input / output system by communicating with it. Whenever the first basic input / output system enters a startup phase, the controller monitors the execution status of the startup phase according to the first startup time corresponding to that startup phase. If the startup phase has not been completed before the first startup time has expired, it means that the actual startup time of the startup phase has exceeded the first startup time, which also means that the startup phase has failed. At this time, there is no need to wait for the subsequent startup phase, that is, there is no need to wait for the entire startup phase of the first basic input / output system to time out. The controller can determine that the startup of the first basic input / output system has failed and control the first switching switch 101 to switch the first basic input / output system to the second basic input / output system for startup to load the operating system.

[0099] The monitoring system for a basic input / output system provided in this embodiment of the invention obtains the startup status of the first basic input / output system after power-on by a first controller based on the first startup time of multiple power-on startup stages of the first basic input / output system according to the device configuration parameters. If it is detected that the actual startup time in the power-on startup stage of the first basic input / output system exceeds the first startup time corresponding to the power-on startup stage, it is determined that the first basic input / output system has failed to start, and the first switching switch 101 is controlled to switch the first basic input / output system to a second basic input / output system. In this way, when the first basic input / output system fails, it can switch to the second basic input / output system in a timely manner, shorten the time for determining the basic input / output system startup timeout, and improve the server startup speed.

[0100] As described in the above embodiments, the first controller can be a complex programmable logic device or a baseboard management controller.

[0101] If the first controller is a baseboard management controller, the first controller obtains the startup status of the first basic input / output system by communicating with the first basic input / output system after power-on. This may include: the baseboard management controller obtaining the startup status through intelligent platform management interface commands.

[0102] If the first controller is a complex programmable logic device, the first controller obtains the startup status of the first basic input / output system by communicating with the first basic input / output system after power-on. This may include the complex programmable logic device receiving startup status information output by the first basic input / output system through an integrated circuit bus.

[0103] If the first controller is a complex programmable logic device, the first controller obtains the startup status of the first basic input / output system by communicating with the first basic input / output system after power-on, and may further include: the complex programmable logic device receiving startup status information sent by the board management controller.

[0104] In some optional embodiments of the present invention, the first controller may further include a complex programmable logic device (CPL) and a baseboard management controller (BMC). The CPL and BMC can respectively acquire the startup status of the first basic input / output system (PIS) or the startup status of the second PIS communication, and monitor the startup process of the first or second PIS in conjunction with the first startup time. In this case, the CPL and BMC can act as backups for each other, with only one having control over the first switching switch 101 at any given time. The two first controllers monitor each other's operating status, and if the first controller with control fails, the other first controller performs the monitoring task for the PIS. This further improves the reliability of the PIS startup process, thereby increasing server boot efficiency.

[0105] Based on the above embodiments, the present invention further describes the communication process between the first controller and the first basic input / output system.

[0106] In some optional embodiments of the present invention, scripts can be deployed in the first and second basic input / output systems to output a startup status to the first controller during the startup process. The first controller then acquires the startup status and identifies that the actual startup time exceeds the first startup time. This can include: after determining that the first basic input / output system has entered the current power-on startup phase, the first controller listens to the output information of the first basic input / output system; if no information indicating the completion of the current power-on startup phase is received from the first basic input / output system within the corresponding first startup time, the first controller determines that the actual startup time corresponding to the current power-on startup phase exceeds the corresponding first startup time.

[0107] At this time, the first controller listens to the output information of the first basic input / output system, which may include: after the first controller listens to the information sent by the first basic input / output system indicating the start of the power-on phase, configuring and starting the first timer corresponding to the power-on phase according to the first startup time corresponding to the power-on phase; after the first controller listens to the information sent by the first basic input / output system indicating the completion of the power-on phase, turning off the first timer.

[0108] In some optional embodiments of the present invention, the basic input / output system (PIS) may be obtained by the first controller actively acquiring the startup status of the first or second PIS without modification. If the first controller acquires the startup status and identifies that the actual startup time exceeds the first startup time, the process may further include: after determining that the first PIS has entered the current power-on startup phase, the first controller accesses the first PIS to obtain the startup status within the first startup time corresponding to the power-on startup phase; if, after the first startup time is reached, the startup status is that the first PIS has not completed the current power-on startup phase, then the first controller determines that the actual startup time corresponding to the current power-on startup phase exceeds the corresponding first startup time.

[0109] At this point, the first controller determines that the first basic input / output system (PIS) has entered the current power-on startup phase. This can include: the first controller accessing the first PIS and obtaining information that the first PIS has completed the previous power-on startup phase, and then determining that the first PIS has entered the current power-on startup phase. That is, when actively acquiring the startup status of the first PIS, the first controller can determine to enter the current power-on startup phase based on the signal indicating the end of the previous power-on startup phase. Since this method of actively acquiring the startup status of the first PIS may have a delay—that is, the first PIS may have already completed the previous power-on startup phase for a period of time before the first controller accesses the first PIS—the first controller can acquire the startup status and the completion time of the previous power-on startup phase when accessing the first PIS, and dynamically set the first startup time corresponding to the current power-on startup phase.

[0110] After determining that the first basic input / output system has entered the current power-on startup phase, the first controller accesses the first basic input / output system within the first startup time corresponding to the power-on startup phase to obtain the startup status. This may include: after determining that the first basic input / output system has entered the current power-on startup phase, the first controller multiplies the first startup time corresponding to the current power-on startup phase by a preset scaling factor to obtain a second startup time; the first controller configures a second timer according to the second startup time and configures a third timer according to the first startup time, and starts the second and third timers; after the second timer expires, the first controller accesses the first basic input / output system to obtain the startup status. If the first basic input / output system has not completed the current power-on startup phase, it continues to wait; if the first basic input / output system has completed the current power-on startup phase, it closes the third timer and determines that the first basic input / output system has entered the next power-on startup phase; when the third timer expires, the first controller accesses the first basic input / output system to obtain the startup status. If the first basic input / output system has not completed the current power-on startup phase, it determines that the actual startup time exceeds the first startup time; if the first basic input / output system has completed the current power-on startup phase, it determines that the first basic input / output system has entered the next power-on startup phase. In other words, since the first basic input / output system may have already completed the previous power-on phase for a period of time before the first controller accesses it, the first controller can also obtain the second power-on time by multiplying the pre-stored first power-on time by a preset proportional coefficient, and monitor the power-on phase according to the second power-on time. After the second power-on time is reached, the first controller accesses the first basic input / output system to obtain its startup status. If the first basic input / output system has already completed the previous power-on phase at this time, the monitoring can be ended in advance, and the monitoring of the current power-on phase can be started in advance.

[0111] Based on the above embodiments, in this embodiment of the invention, at least two of the following are taken as examples of the boot-up phase: central processing unit boot phase, memory initialization phase, peripheral device loading phase, operating system loader loading phase, and operating system running phase.

[0112] Figure 2 This is a timing diagram of the startup process of a basic input / output system provided in an embodiment of the present invention.

[0113] In this embodiment of the invention, the first controller can start a timer after determining that the power-on startup phase has begun. The timer's timing period is configured to the first startup time corresponding to the power-on startup phase. The first controller stops the timer after determining that the power-on startup phase has been completed. If the power-on startup phase has not been completed after the timer's timing period, it is determined that the power-on startup phase has timed out. The timer can be a watchdog timer.

[0114] In this embodiment of the invention, the first controller monitors the central processing unit (CPU) startup phase of the first basic input / output system according to the startup state, which may include: detecting a power-on signal of the CPU and determining that the CPU startup phase has started; if a CPU reset signal issued by the CPU is detected, determining that the CPU startup phase has been completed.

[0115] like Figure 2 As shown, the CPU startup phase refers to the boot process of the CPU firmware on the motherboard (including the Unified Extensible Firmware Interface Platform Initialization (UEFI PI) and the Management Engine ME). After the server motherboard powers on, the first controller powers on and, upon monitoring the CPU's power-on, determines the start of the CPU startup phase. It then activates the watchdog timer corresponding to this phase, with a timeout set to 4 minutes (adjustable based on platform and hardware design). The CPU startup phase ends upon detecting a CPU reset signal. During the CPU startup phase, the bootloader loads the UEFI PI or Management Engine firmware. This firmware is typically stored in the Basic Input / Output System (BIOS) memory. When the UEFI PI or Management Engine firmware reaches the point where the CPU issues a CPU reset signal, it indicates that the firmware has successfully booted.

[0116] In this embodiment of the invention, the first controller monitors the memory initialization phase of the first basic input / output system according to the startup state, which may include: detecting a central processing unit reset signal and determining that the memory initialization phase has started; if a peripheral initialization signal is detected, determining that the memory initialization phase has been completed.

[0117] like Figure 2As shown, after detecting the central processing unit reset signal, the first controller activates the watchdog timer corresponding to the memory initialization phase. Because the BIOS startup phase has different strategies for memory initialization, such as initializing the memory during the server's first power-on assembly (memory training), the trained parameters are stored in the non-volatile memory (BIOS flash NVRAM) of the BIOS's storage. When the server restarts or powers on again, the memory initialization training phase is skipped, and the training parameters stored in the BIOS's NVRAM are used for rapid memory initialization. Furthermore, when the memory configuration (location, capacity, model, etc.) changes, the previously stored training parameters cannot be used, and memory initialization training needs to be performed again. Whether the training parameters are obtained through memory initialization training or the stored training parameters are used for rapid initialization, the startup time for the memory initialization phase differs, and the larger the memory capacity, the greater the time difference. Higher memory generations also require longer memory initialization training times, such as DDR3, DDR4, DDR5, and even future DDR6 memory. In this embodiment of the invention, the first controller can determine the first startup time during memory initialization training and the first startup time when fast initialization is used in the memory initialization phase based on the memory generation and memory capacity of the identified device, and set different flags. The first controller sets different first startup times according to different flags. When the first basic input / output system detects that it has reached the peripheral initialization signal (such as PCIe OptionRom loading), it determines that the memory initialization phase has been completed and disables the watchdog timer corresponding to the memory initialization phase.

[0118] In this embodiment of the invention, the first controller monitors the peripheral loading phase of the first basic input / output system according to the startup state, which may include: detecting a peripheral initialization signal and determining that the peripheral loading phase has started; if an operating system loader loading signal is detected, determining that the peripheral loading phase has been completed.

[0119] like Figure 2As shown, during the startup of the Basic Input / Output System (BIOS), it loads optional read-only memory (Option ROM) based on the different peripheral requirements to support the functional applications of various PCIe peripherals during the BIOS startup phase. Examples include the Preboot Execution Environment (PXE) function of network cards, the RAID grouping function of Redundant Arrays of Independent Disks (RAID) cards, and the encryption function of Non-Volatile Memory Express (NVMe) hard drives. However, different server hardware designs and requirements result in optional loading of Option ROMs for scalable PCIe devices. This can be done through an Option ROM loading whitelist. The BIOS calculates how many PCIe Option ROMs need to be loaded based on the device types and quantities in the Option ROM loading whitelist, and then passes the Option ROM quantity (Number) to the first controller. The first controller can default to a 20s loading timeout for a single OptionRom, then multiply this by the number of OptionRoms to obtain the first startup time corresponding to the peripheral loading phase. When the first basic input / output system detects the peripheral initialization signal, the first controller activates the watchdog timer corresponding to the peripheral loading phase, and deactivates the watchdog timer when the first basic input / output system starts up to the operating system loader (OS loader) loading phase.

[0120] In this embodiment of the invention, the first controller monitors the operating system loader loading stage of the first basic input / output system according to the startup state, which may include: detecting an operating system loader loading signal and determining that the operating system loader loading stage has started; if an operating system kernel initialization signal is detected, determining that the operating system loader loading stage has been completed.

[0121] like Figure 2As shown, during the operating system loader loading phase, the First Basic Input / Output System (BPI) sets different watchdog coefficients or switches based on the boot order and the actual inserted boot option device. For example, when a Universal Serial Bus (USB) boot disk, a pre-boot execution environment system installation, or a different operating system disk is detected, the BPI sets the operating system loader watchdog enable flag and watchdog time coefficient according to the product policy. It should be noted that some operating systems on certain devices do not support timed functions. In this case, the watchdog enable flag is used to skip monitoring the operating system loader loading phase, and monitoring of the next boot phase begins only after the start signal of the next boot phase is detected.

[0122] The first controller (complex programmable logic device or board management controller) calculates the new watchdog time by multiplying the default watchdog time (typical time) by the watchdog time coefficient according to the watchdog enable flag and the watchdog time coefficient. This new watchdog time is then obtained as the first startup time. The watchdog time is then enabled or disabled according to the watchdog enable flag. When the operating system reaches the operating system kernel initialization stage (kernel init), the watchdog time corresponding to the operating system loader loading phase is disabled.

[0123] In this embodiment of the invention, the first controller monitors the operating system running phase of the first basic input / output system according to the startup state, which may include: detecting the operating system kernel initialization signal and determining that the operating system running phase has started; if the operating system has completed a preset number of running cycles, then determining that the operating system running phase has been completed.

[0124] like Figure 2 As shown, when the operating system kernel initialization signal is detected, the first controller activates the watchdog timer corresponding to the operating system's running phase, and deactivates the watchdog timer after one or more operating cycles, depending on the operating system's running cycle.

[0125] During the five boot-up phases mentioned above, the first controller conditionally switches, sets, and monitors the watchdog timer for each boot-up phase. If any level 1 watchdog timeout occurs, the first controller can perform a power reset operation. If any of the first four watchdog timers time out, in addition to performing a power reset operation, the first controller controls the first switching switch 101 to switch the first basic input / output system to the second basic input / output system (specifically, it can read the current slot number register (BIOS Flash Slot Number) stored in the NVRAM, invert it, switch, and save it back to the NVRAM), and store the chip-selected flash slot number in the NVRAM. When the system restarts next time, it prioritizes reading the current slot number register from the NVRAM for chip selection.

[0126] The purpose of the power reset operation is to reset all registers to their initial state when the power is turned on, thereby improving the reliability and security of the system.

[0127] Taking the five power-on and startup stages described in the above embodiments as an example, this embodiment of the invention further explains the monitoring timing of the first controller.

[0128] In the monitoring system of the basic input / output system provided in the embodiments of the present invention, the monitoring process executed by the first controller may include the following steps S101 to S112.

[0129] S101: After power-on, the first controller reads the slot number register (BIOS Flash SlotNumber) in the NVRAM. If it is neither 0 nor 1, the BIOS with slot number 0 is used as the first BIOS by default and written to the register in the NVRAM. If the value of the slot number register read by the first controller is 0 or 1, it monitors whether the BIOS startup has timed out. If it has timed out, the value of the slot number register is inverted and the segment is set; if it has not timed out, the BIOS chip select is performed according to the value of the slot number register read.

[0130] S102: The first controller continuously monitors whether the central processing unit is powered on. After monitoring that the central processing unit is powered on, it activates the watchdog timer corresponding to the central processing unit startup phase and sets the first startup time (which can be 4 minutes).

[0131] S103: The first controller continuously monitors whether the CPU reset signal has been issued. If the CPU reset signal is detected and set, the watchdog timer corresponding to the CPU startup phase is disabled, and the process proceeds to S104. Otherwise, if the watchdog timer corresponding to the CPU startup phase times out, the timeout flag is recorded in the NVRAM register, the CPU firmware startup timeout log is recorded, and a motherboard power reset operation is performed.

[0132] S104: The first controller enables the watchdog timer during the basic input / output system startup phase (memory initialization phase), and the default timeout can be set to 10 minutes.

[0133] S105: The first controller monitors whether the first basic input / output system has sent a flag for memory initialization training (actual transmission time value coefficient Flag). If the flag is detected within the timeout period, the watchdog time is reset to 10 minutes * Flag / 10 (Note: the time value coefficient transmitted by the first basic input / output system is in minutes) and the process jumps to S106 for execution; otherwise, the process jumps directly to S106 for execution.

[0134] S106: During the first startup time corresponding to the memory initialization phase, the first controller continuously monitors whether there is a peripheral initialization signal (PCIe OptionRom load flag). If there is, proceed to S107. Otherwise, after the memory initialization phase times out, record the timeout flag in the nvram register, record the log of the timeout during the basic input / output system startup phase (memory initialization phase), and perform a motherboard power reset operation.

[0135] S107: The first controller enables the watchdog timer corresponding to the peripheral loading phase and sets the timeout time to the corresponding first startup time.

[0136] S108: The first controller continuously checks the OS loader flag during the first startup time corresponding to the peripheral loading phase. If the OS loader flag is detected during the first startup time, it jumps to S109; otherwise, the watchdog timeout corresponding to the peripheral loading phase occurs, the timeout flag is recorded in the nvram register, the timeout log of the peripheral loading phase is recorded, and a motherboard power reset operation is performed.

[0137] S109: The first controller enables the watchdog timer corresponding to the operating system loader loading phase and sets the timeout to the corresponding first startup time.

[0138] S110: The first controller continuously checks the kernel initialization flag during the first startup time corresponding to the operating system loader loading phase. If the kernel initialization flag is detected during the first startup time, it jumps to S111; otherwise, the watchdog timer corresponding to the operating system loader loading phase times out, the timeout flag is recorded in the nvram register, the timeout log of the operating system loader loading phase is recorded, and a motherboard power reset operation is performed.

[0139] S111: The first controller enables the watchdog timer corresponding to the operating system running phase and sets the timeout to the corresponding first startup time (which can be 60 seconds).

[0140] S112: The first controller cyclically detects the watchdog timer signal during the first startup time corresponding to the operating system running phase. If the watchdog timer is detected during the first startup time, the first controller resets the watchdog timer. Otherwise, the watchdog timer timeout corresponding to the operating system running phase expires, the timeout flag is recorded in the nvram register, the timeout log of the operating system running phase is recorded, and a motherboard power reset operation is performed.

[0141] Taking the five power-on startup stages described in the above embodiments as examples, this embodiment of the invention further explains the timing of the basic input / output system during the startup process.

[0142] In the monitoring system of the basic input / output system provided in the embodiments of the present invention, the process executed by the first basic input / output system (or the second basic input / output system) after startup may include the following steps S201 to S204.

[0143] S201: After startup, the first basic input / output system checks whether memory initialization training is required. If so, it proceeds to S202; otherwise, it proceeds to S203.

[0144] S202: The first basic input / output system identifies the memory generation (DDR3, DDR4, DDR5, or DDR6, etc.), single memory module capacity (usually 8G, 16G, 32G, 64G, etc.), and the number of memory modules. It can determine the memory initialization training time by multiplying the memory generation by (memory capacity / 8G) * the number of memory modules * the number of single memory modules (this time needs to be tested on different platforms of the same central processing unit manufacturer). The time required for memory initialization training can be calculated in minutes and then written to the register of the first controller (memory initialization training flag register) and sent to the first controller.

[0145] S203: During the peripheral loading phase of the first basic input / output system (PII / O) startup, the system reads the PCIe OptionRom whitelist from the PII / O memory, calculates how many PCIe devices need to load OptionRom, and sends the quantity to the first controller by writing it to the OptionRom quantity register. If the whitelist is empty or contains abnormal data, the default OptionRom quantity can be 1, and the quantity can be sent to the first controller by writing it to the OptionRom quantity register.

[0146] S204: From the first basic input / output system boot to the operating system loader loading stage, identify the current boot item type, such as USB boot disk, HDD system disk, PXE system, UEFI shell, setup, etc., and set different watchdog policies for each. The policy settings may include:

[0147] (1) USB boot disk: Disable the watchdog timer during the operating system loader loading phase;

[0148] (2) HDD system disk: Enables watchdog during the loading phase of the operating system loader, and can also identify different operating system types and set the corresponding watchdog time;

[0149] (3) UEFI shell: Disables the watchdog timer during the operating system loader loading phase;

[0150] (4) setup: Disables the watchdog timer during the operating system loader loading phase;

[0151] (5) PXE: Disable the watchdog timer during the operating system loader loading phase.

[0152] It should be noted that in most embodiments of the present invention, the description focuses on the first controller monitoring the startup state of the first basic input / output system. After the first basic input / output system fails to start, the first controller switches to the second basic input / output system. At this time, the process of the first controller monitoring the startup state of the second basic input / output system is the same as the process of the first controller monitoring the startup state of the first basic input / output system.

[0153] Referring to the monitoring system of the basic input / output system described in the above embodiments, the monitoring method of the basic input / output system provided by the embodiments of the present invention will be described below with reference to the accompanying drawings.

[0154] Figure 3 A flowchart illustrating a monitoring method for a basic input / output system provided in an embodiment of the present invention.

[0155] like Figure 3As shown, applied to the first controller, the monitoring method for the basic input / output system provided in this embodiment of the invention may include:

[0156] S301: After power-on, obtain the startup status of the first basic input / output system by communicating with the first basic input / output system;

[0157] S302: If it is detected that the actual startup time in the power-on startup phase of the first basic input / output system exceeds the first startup time corresponding to the power-on startup phase, then it is determined that the first basic input / output system has failed to start.

[0158] S303: After determining that the first basic input / output system has failed to start, control the first switch to switch the first basic input / output system to the second basic input / output system;

[0159] There are multiple startup phases, and the first startup time is determined based on the device configuration parameters corresponding to the startup phase.

[0160] In this embodiment of the invention, the boot-up phase may include at least two of the following: central processing unit boot phase, memory initialization phase, peripheral device loading phase, operating system loader loading phase, and operating system running phase.

[0161] In this embodiment of the invention, monitoring the CPU startup phase of the first basic input / output system according to the startup status may include: detecting a power-on signal of the CPU to determine that the CPU startup phase has started; and if a CPU reset signal issued by the CPU is detected, determining that the CPU startup phase has been completed.

[0162] In this embodiment of the invention, monitoring the memory initialization phase of the first basic input / output system according to the startup state may include: detecting a central processing unit reset signal to determine that the memory initialization phase has started; and detecting a peripheral device initialization signal to determine that the memory initialization phase has been completed.

[0163] In this embodiment of the invention, monitoring the peripheral loading phase of the first basic input / output system according to the startup state may include: detecting a peripheral initialization signal and determining that the peripheral loading phase has started; if an operating system loader loading signal is detected, determining that the peripheral loading phase has been completed.

[0164] In this embodiment of the invention, monitoring the operating system loader loading stage of the first basic input / output system according to the startup state may include: detecting an operating system loader loading signal to determine that the operating system loader loading stage has started; and if an operating system kernel initialization signal is detected, determining that the operating system loader loading stage has been completed.

[0165] In this embodiment of the invention, monitoring the operating system running phase of the first basic input / output system according to the startup status may include: detecting the operating system kernel initialization signal to determine that the operating system running phase has started; and if the operating system has completed a preset number of running cycles, determining that the operating system running phase has been completed.

[0166] In this embodiment of the invention, obtaining the startup status and identifying that the actual startup time exceeds the first startup time may include: after determining that the first basic input / output system has entered the current power-on startup stage, listening to the output information of the first basic input / output system; if no information indicating that the current power-on startup stage has been completed is received from the first basic input / output system within the corresponding first startup time, the first controller determines that the actual startup time corresponding to the current power-on startup stage exceeds the corresponding first startup time.

[0167] The first controller listens to the output information of the first basic input / output system, which may include: after the first controller hears the information sent by the first basic input / output system indicating the start of the power-on phase, configuring and starting the first timer corresponding to the power-on phase according to the first startup time corresponding to the power-on phase; and after the first controller hears the information sent by the first basic input / output system indicating the completion of the power-on phase, turning off the first timer.

[0168] In this embodiment of the invention, obtaining the startup status and identifying that the actual startup time exceeds the first startup time may further include: after determining that the first basic input / output system has entered the current power-on startup stage, accessing the first basic input / output system to obtain the startup status within the first startup time corresponding to the power-on startup stage; if the startup status is that the first basic input / output system has not completed the current power-on startup stage after the first startup time is reached, then determining that the actual startup time corresponding to the current power-on startup stage exceeds the corresponding first startup time.

[0169] Determining that the first basic input / output system has entered the current boot-up phase may include: accessing the first basic input / output system and obtaining information that the first basic input / output system has completed the previous boot-up phase, and then determining that the first basic input / output system has entered the current boot-up phase.

[0170] The process of accessing the first basic input / output system (PIS) to obtain its startup status within a first startup time corresponding to the first startup phase after determining that the first PIS has entered the current startup phase can include: multiplying the first startup time corresponding to the current startup phase by a preset scaling factor to obtain a second startup time; configuring a second timer based on the second startup time and a third timer based on the first startup time, and starting both the second and third timers; after the second timer expires, accessing the first PIS to obtain its startup status; if the first PIS has not completed the current startup phase, continuing to wait; if the first PIS has completed the current startup phase, closing the third timer and determining that the first PIS has entered the next startup phase; and after the third timer expires, accessing the first PIS to obtain its startup status; if the first PIS has not completed the current startup phase, determining that the actual startup time exceeds the first startup time; and if the first PIS has completed the current startup phase, determining that the first PIS has entered the next startup phase.

[0171] In some optional embodiments of the present invention, the first controller may be a baseboard management controller; in S301, after power-on, the first basic input / output system is communicated with to obtain the startup status of the first basic input / output system, which may include: the baseboard management controller obtaining the startup status through intelligent platform management interface commands.

[0172] In some alternative embodiments of the present invention, the first controller may also be a complex programmable logic device; S301, after power-on, obtaining the startup state of the first basic input / output system by communicating with the first basic input / output system, may further include: the complex programmable logic device receiving startup state information output by the first basic input / output system through an integrated circuit bus.

[0173] In some alternative embodiments of the present invention, the first controller may also be a complex programmable logic device; S301, after power-on, communicating with the first basic input / output system to obtain the startup state of the first basic input / output system may further include: the complex programmable logic device receiving startup state information sent by the board management controller.

[0174] It should be noted that in the embodiments of the monitoring methods for the basic input / output systems of the present invention, some steps or features may be ignored or not executed. The division of hardware or software functional modules is for ease of explanation and is not the only implementation of the monitoring methods for the basic input / output systems provided in the embodiments of the present invention.

[0175] The above details various embodiments of the monitoring method for a basic input / output system. Based on this, the present invention also discloses a monitoring device, equipment, non-volatile storage medium, and computer program product for a basic input / output system corresponding to the above method.

[0176] Applied to the first controller, the monitoring device for the basic input / output system provided in this embodiment of the invention may include:

[0177] The monitoring unit is used to obtain the startup status of the first basic input / output system by communicating with the first basic input / output system after power-on;

[0178] The identification unit is used to determine that the first basic input / output system has failed to start if it is detected that the actual startup time in the power-on startup phase of the first basic input / output system exceeds the first startup time corresponding to the power-on startup phase.

[0179] The control unit is used to control the first switch to switch the first basic input / output system to the second basic input / output system after determining that the first basic input / output system has failed to start.

[0180] There are multiple startup phases, and the first startup time is determined based on the device configuration parameters corresponding to the startup phase.

[0181] It should be noted that in the various embodiments of the monitoring device for the basic input / output system provided in this invention, the division of units is only a logical functional division, and other division methods can be used. The connection between different units can be electrical, mechanical, or other connection methods. Separate units can be located in the same physical location or distributed across multiple network nodes. Each unit can be implemented in hardware or as a software functional unit. That is, some or all of the units provided in this invention can be selected according to actual needs, and corresponding connection or integration methods can be used to achieve the purpose of the solution in this invention.

[0182] Since the embodiments of the apparatus and the embodiments of the method correspond to each other, please refer to the description of the embodiments of the method for the embodiments of the apparatus, which will not be repeated here.

[0183] Figure 4 This is a schematic diagram of the structure of a monitoring device for a basic input / output system provided in an embodiment of the present invention.

[0184] like Figure 4As shown, the monitoring device for a basic input / output system provided in this embodiment of the invention includes: a memory 410 for storing a computer program 411; and a processor 420 for executing the computer program 411, wherein the computer program 411, when executed by the processor 420, implements the steps of the monitoring method for a basic input / output system provided in any of the above embodiments.

[0185] The processor 420 may include one or more processing cores, such as a 3-core processor or an 8-core processor. The processor 420 may be implemented using at least one hardware form selected from Digital Signal Processing (DSP), Field-Programmable Gate Array (FPGA), and Programmable Logic Array (PLA). The processor 420 may also include a main processor and a coprocessor. The main processor, also known as the Central Processing Unit (CPU), is used to process data in the wake-up state; the coprocessor is a low-power processor used to process data in the standby state. In some embodiments, the processor 420 may integrate a Graphics Processing Unit (GPU) responsible for rendering and drawing the content to be displayed on the screen. In some embodiments, the processor 420 may also include an Artificial Intelligence (AI) processor for handling computational operations related to machine learning.

[0186] The memory 410 may include one or more non-volatile storage media, which may be non-transitory. The memory 410 may also include high-speed random access memory and non-volatile memory, such as one or more disk storage devices or flash memory devices. In this embodiment, the memory 410 is used to store at least the following computer program 411, wherein, after being loaded and executed by the processor 420, the computer program 411 is able to implement the relevant steps in the monitoring method of the basic input / output system disclosed in any of the foregoing embodiments. In addition, the resources stored in the memory 410 may also include an operating system 412 and data 413, and the storage method may be temporary storage or permanent storage. The operating system 412 may be Windows or other types of operating systems. The data 413 may include, but is not limited to, the data involved in the above methods.

[0187] In some embodiments, the monitoring equipment of the basic input / output system may further include a display screen 430, a power supply 440, a communication interface 450, an input / output interface 460, a sensor 470, and a communication bus 480.

[0188] Those skilled in the art will understand that Figure 4 The structure shown does not constitute a limitation on the monitoring equipment for a basic input / output system and may include more or fewer components than shown.

[0189] The monitoring device for a basic input / output system provided in this embodiment of the invention includes a memory and a processor. When the processor executes the program stored in the memory, it can implement the steps of the monitoring method for a basic input / output system provided in the above embodiment, and the effect is the same as above.

[0190] This invention provides a non-volatile storage medium storing a computer program thereon. When executed by a processor, the computer program can implement the steps of the monitoring method for a basic input / output system as provided in any of the above embodiments.

[0191] The non-volatile storage medium may include: USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks or optical disks, and other media that can store program code.

[0192] For an introduction to the non-volatile storage medium provided in the embodiments of the present invention, please refer to the above method embodiments. The effects it achieves are the same as those of the monitoring method for the basic input / output system provided in the embodiments of the present invention, and the present invention will not elaborate further here.

[0193] This invention provides a computer program product, including a computer program that, when executed by a processor, implements the steps of a monitoring method for a basic input / output system as provided in any of the above embodiments.

[0194] For a description of the computer program product provided in the embodiments of the present invention, please refer to the above method embodiments. The effects it achieves are the same as those of the monitoring method of the basic input / output system provided in the embodiments of the present invention, and the present invention will not elaborate further here.

[0195] The foregoing has provided a detailed description of a monitoring method, apparatus, device, and non-volatile storage medium for a basic input / output system provided by the present invention. The various embodiments in the specification are described in a progressive manner, with each embodiment focusing on its differences from other embodiments. Similar or identical parts between embodiments can be referred to interchangeably. For the apparatus, device, non-volatile storage medium, and computer program products disclosed in the embodiments, since they correspond to the methods disclosed in the embodiments, the descriptions are relatively simple, and relevant parts can be referred to in the method section. It should be noted that those skilled in the art can make several improvements and modifications to the present invention without departing from the principles of the invention, and these improvements and modifications also fall within the protection scope of the present invention.

[0196] It should also be noted that, in this specification, relational terms such as "first" and "second" are used only to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes that element.

Claims

1. A monitoring system for a basic input / output system, characterized in that, Includes a first controller and a first switching switch; The first controller is used to obtain the startup status of the first basic input / output system by communicating with the first basic input / output system after power-on. If it is detected that the actual startup time in the power-on startup phase of the first basic input / output system exceeds the first startup time corresponding to the power-on startup phase, it is determined that the first basic input / output system has failed to start up, and the first switch is controlled to switch the first basic input / output system to the second basic input / output system. The boot-up phase includes a central processing unit boot phase, a memory initialization phase, a peripheral device loading phase, an operating system loader loading phase, and an operating system running phase. The method for determining the first boot time includes: dividing the boot process of at least one hardware component or the loading process of at least one software component into the same boot-up phase according to the hardware boot order and software loading order of the server during the basic input / output system boot process; and determining the maximum normal execution duration of the boot-up phase as the first boot time based on the device configuration parameters corresponding to the boot-up phase and the number of times the server has been booted; the device configuration parameters include hardware configuration parameters and software configuration parameters. The method for determining the first startup time corresponding to the memory initialization phase includes: determining the first startup time when memory initialization training occurs during the memory initialization phase and the first startup time when fast initialization is adopted during the memory initialization phase based on the memory generation and memory capacity of the server, and configuring the first startup time based on the number of times the server is started. The method for determining the first startup time corresponding to the peripheral loading stage includes: calculating the number of peripherals to be loaded based on the device type and number of devices in the read-only memory loading whitelist of the basic input / output system, and sending the number of peripherals to the first controller so that the first controller multiplies the loading time of a single peripheral by the number of peripherals to obtain the first startup time corresponding to the peripheral loading stage. The method for determining the first startup time corresponding to the operating system loader loading stage includes: setting different watchdog coefficients or switches according to the boot order and the actual inserted boot option device; if the operating system of the device does not support the timing function, the monitoring of the operating system loader loading stage is skipped by the watchdog enable flag, and the monitoring of the next boot stage is started after the start signal of the next boot stage is detected. The method for determining the first startup time corresponding to the operating system running phase includes: using one or more of the operating cycles as the first startup time corresponding to the operating system running phase, based on the operating cycle of the operating system.

2. The monitoring system for the basic input / output system according to claim 1, characterized in that, The first controller monitors the CPU startup phase of the first basic input / output system according to the startup state, including: Upon detecting a power-on signal for the central processing unit, the start-up phase of the central processing unit is determined to have begun. If a CPU reset signal is detected from the CPU, it is determined that the CPU startup phase has been completed.

3. The monitoring system for the basic input / output system according to claim 1, characterized in that, The first controller monitors the memory initialization phase of the first basic input / output system according to the startup state, including: A central processing unit reset signal is detected, indicating that the memory initialization phase has begun; If a peripheral initialization signal is detected, it is determined that the memory initialization phase has been completed.

4. The monitoring system for the basic input / output system according to claim 1, characterized in that, The first controller monitors the peripheral loading phase of the first basic input / output system according to the startup state, including: Upon detecting a peripheral initialization signal, the peripheral loading phase is determined to have begun. If an operating system loader loading signal is detected, it is determined that the peripheral loading phase has been completed.

5. The monitoring system for the basic input / output system according to claim 1, characterized in that, The first controller monitors the operating system loader loading phase of the first basic input / output system according to the startup state, including: An operating system loader loading signal is detected, indicating that the operating system loader loading phase has begun. If an operating system kernel initialization signal is detected, it is determined that the operating system loader loading phase has been completed.

6. The monitoring system for the basic input / output system according to claim 1, characterized in that, The first controller monitors the operating system operation phase of the first basic input / output system according to the startup state, including: Upon detecting the operating system kernel initialization signal, it is determined that the operating system's runtime phase has begun. If the operating system is detected to have completed a preset number of running cycles, then the operating system's running phase is determined to be complete.

7. The monitoring system for the basic input / output system according to claim 1, characterized in that, The first controller acquires the startup status and identifies that the actual startup time exceeds the first startup time, including: After determining that the first basic input / output system has entered the current power-on startup phase, the first controller listens to the output information of the first basic input / output system. If no information indicating the completion of the current startup phase is received from the first basic input / output system within the corresponding first startup time, the first controller determines that the actual startup time corresponding to the current startup phase exceeds the corresponding first startup time.

8. The monitoring system for the basic input / output system according to claim 7, characterized in that, The first controller monitors the output information of the first basic input / output system, including: After the first controller hears the information sent by the first basic input / output system indicating the start of the power-on phase, it configures and starts the first timer corresponding to the power-on phase according to the first startup time corresponding to the power-on phase. After the first controller receives the information sent by the first basic input / output system that the power-on startup phase has been completed, it shuts down the first timer.

9. The monitoring system for the basic input / output system according to claim 1, characterized in that, The first controller acquires the startup status and identifies that the actual startup time exceeds the first startup time, including: After determining that the first basic input / output system has entered the current power-on startup phase, the first controller accesses the first basic input / output system within the first startup time corresponding to the power-on startup phase to obtain the startup status. If, after the first startup time is reached, the startup state is that the first basic input / output system has not completed the current power-on startup phase, then the first controller determines that the actual startup time corresponding to the current power-on startup phase exceeds the corresponding first startup time.

10. The monitoring system for the basic input / output system according to claim 9, characterized in that, The first controller determines that the first basic input / output system has entered the current power-on startup phase, including: After the first controller accesses the first basic input / output system and obtains that the first basic input / output system has completed the previous power-on startup phase, it determines that the first basic input / output system has entered the current power-on startup phase.

11. The monitoring system for the basic input / output system according to claim 9, characterized in that, After determining that the first basic input / output system has entered the current power-on startup phase, the first controller accesses the first basic input / output system within the first startup time corresponding to the power-on startup phase to obtain the startup state, including: After determining that the first basic input / output system has entered the current power-on startup phase, the first controller multiplies the first startup time corresponding to the current power-on startup phase by a preset scaling factor to obtain the second startup time. The first controller configures a second timer based on the second startup time, configures a third timer based on the first startup time, and starts the second timer and the third timer; After the second timer expires, the first controller accesses the first basic input / output system to obtain the startup status. If the first basic input / output system has not completed the current power-on startup stage, it continues to wait. If the first basic input / output system has completed the current power-on startup stage, it closes the third timer and determines that the first basic input / output system enters the next power-on startup stage. After the third timer expires, the first controller accesses the first basic input / output system to obtain the startup status. If the first basic input / output system has not completed the current power-on startup phase, it is determined that the actual startup time exceeds the first startup time. If the first basic input / output system has completed the current power-on startup phase, it is determined that the first basic input / output system enters the next power-on startup phase.

12. The monitoring system for the basic input / output system according to claim 1, characterized in that, The first controller is a baseboard management controller; After power-on, the first controller communicates with the first basic input / output system to obtain the startup status of the first basic input / output system, including: The baseboard management controller obtains the startup status through intelligent platform management interface commands.

13. The monitoring system for the basic input / output system according to claim 1, characterized in that, The first controller is a complex programmable logic device; After power-on, the first controller communicates with the first basic input / output system to obtain the startup status of the first basic input / output system, including: The complex programmable logic device receives the startup status information output by the first basic input / output system via an integrated circuit bus.

14. The monitoring system for the basic input / output system according to claim 1, characterized in that, The first controller is a complex programmable logic device; After power-on, the first controller communicates with the first basic input / output system to obtain the startup status of the first basic input / output system, including: The complex programmable logic device receives the startup status information sent by the board management controller.

15. A monitoring method for a basic input / output system, characterized in that, Applied to the first controller, including: After power-on, the startup status of the first basic input / output system is obtained by communicating with the first basic input / output system. If it is detected that the actual startup time exceeds the first startup time corresponding to the startup phase during the power-on startup phase of the first basic input / output system, then it is determined that the first basic input / output system has failed to start. After determining that the first basic input / output system has failed to start, control the first switch to switch the first basic input / output system to the second basic input / output system; The number of boot-up phases is multiple, and the method for determining the first boot time includes: dividing the boot process of at least one hardware or the loading process of at least one software into the same boot-up phase according to the hardware boot order and software loading order of the server during the boot process of the basic input / output system; determining the maximum normal execution duration of the boot-up phase as the first boot time based on the device configuration parameters corresponding to the boot-up phase and the number of times the server has been booted; the device configuration parameters include hardware configuration parameters and software configuration parameters; The boot-up phase includes a central processing unit boot phase, a memory initialization phase, a peripheral loading phase, an operating system loader loading phase, and an operating system running phase. The method for determining the first boot time corresponding to the memory initialization phase includes: determining the first boot time when memory initialization training occurs during the memory initialization phase and the first boot time when fast initialization is used during the memory initialization phase based on the memory generation and memory capacity of the server, and configuring the first boot time based on the number of times the server is booted. The method for determining the first startup time corresponding to the peripheral loading stage includes: calculating the number of peripherals to be loaded based on the device type and number of devices in the read-only memory loading whitelist of the basic input / output system, and sending the number of peripherals to the first controller so that the first controller multiplies the loading time of a single peripheral by the number of peripherals to obtain the first startup time corresponding to the peripheral loading stage. The method for determining the first startup time corresponding to the operating system loader loading stage includes: setting different watchdog coefficients or switches according to the boot order and the actual inserted boot option device; if the operating system of the device does not support the timing function, the monitoring of the operating system loader loading stage is skipped by the watchdog enable flag, and the monitoring of the next boot stage is started after the start signal of the next boot stage is detected. The method for determining the first startup time corresponding to the operating system running phase includes: using one or more of the operating cycles as the first startup time corresponding to the operating system running phase, based on the operating cycle of the operating system.

16. A monitoring device for a basic input / output system, characterized in that, Applied to the first controller, including: The monitoring unit is used to obtain the startup status of the first basic input / output system by communicating with the first basic input / output system after power-on; The identification unit is configured to determine that the first basic input / output system has failed to start if it is detected that the actual startup time in the power-on startup phase of the first basic input / output system exceeds the first startup time corresponding to the power-on startup phase. The control unit is configured to control the first switch to switch the first basic input / output system to the second basic input / output system after determining that the first basic input / output system has failed to start. The number of boot-up phases is multiple, and the method for determining the first boot time includes: dividing the boot process of at least one hardware or the loading process of at least one software into the same boot-up phase according to the hardware boot order and software loading order of the server during the boot process of the basic input / output system; determining the maximum normal execution duration of the boot-up phase as the first boot time based on the device configuration parameters corresponding to the boot-up phase and the number of times the server has been booted; the device configuration parameters include hardware configuration parameters and software configuration parameters; The boot-up phase includes a central processing unit boot phase, a memory initialization phase, a peripheral loading phase, an operating system loader loading phase, and an operating system running phase. The method for determining the first boot time corresponding to the memory initialization phase includes: determining the first boot time when memory initialization training occurs during the memory initialization phase and the first boot time when fast initialization is used during the memory initialization phase based on the memory generation and memory capacity of the server, and configuring the first boot time based on the number of times the server is booted. The method for determining the first startup time corresponding to the peripheral loading stage includes: calculating the number of peripherals to be loaded based on the device type and number of devices in the read-only memory loading whitelist of the basic input / output system, and sending the number of peripherals to the first controller so that the first controller multiplies the loading time of a single peripheral by the number of peripherals to obtain the first startup time corresponding to the peripheral loading stage. The method for determining the first startup time corresponding to the operating system loader loading stage includes: setting different watchdog coefficients or switches according to the boot order and the actual inserted boot option device; if the operating system of the device does not support the timing function, the monitoring of the operating system loader loading stage is skipped by the watchdog enable flag, and the monitoring of the next boot stage is started after the start signal of the next boot stage is detected. The method for determining the first startup time corresponding to the operating system running phase includes: using one or more of the operating cycles as the first startup time corresponding to the operating system running phase, based on the operating cycle of the operating system.

17. A monitoring device for a basic input / output system, characterized in that, include: Memory, used to store computer programs; A processor for executing the computer program, which, when executed by the processor, implements the steps of the monitoring method for the basic input / output system as described in claim 15.

18. A non-volatile storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by the processor, it implements the steps of the monitoring method for the basic input / output system as described in claim 15.

19. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by the processor, it implements the steps of the monitoring method for the basic input / output system as described in claim 15.

Citation Information

Patent Citations

  • Server starting method and device, computer equipment and storage medium

    CN115795477A

  • Automatic switching method and automatic switching device for main BIOS and standby BIOS and computer

    CN117215859A