Server quick boot system, and method, device, medium and program product

By working in conjunction with the baseboard management controller and multiplexer, and utilizing a second operating system to quickly read USB device data, the problem of difficult USB device response during server startup is solved, achieving early and rapid startup and efficient response, which is particularly suitable for data center and cloud computing environments.

WO2026026192A1PCT designated stage Publication Date: 2026-02-05INSPUR SUZHOU INTELLIGENT TECH CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2025/098187
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-07-31
Filing Date
2025-05-29
Publication Date
2026-02-05

AI Technical Summary

Technical Problem

During server startup, USB devices have difficulty responding, requiring the recoding of complex USB driver code, which is extremely difficult and leads to extended startup time.

Method used

By working in conjunction with the baseboard management controller, multiplexer, and processor, the second operating system can quickly read USB device data and perform memory initialization during the pre-expandable firmware interface initialization phase, thus avoiding the need to encode USB controller driver logic in the BIOS.

Benefits of technology

It enables the server to respond quickly to USB devices in the early stages of startup, improving startup speed and avoiding complex USB driver coding logic, making it suitable for data center and cloud computing environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025098187_05022026_PF_FP_ABST
    Figure CN2025098187_05022026_PF_FP_ABST
Patent Text Reader

Abstract

The present application relates to the technical field of data processing. Provided are a server quick boot system, and a method, device, a medium and a program product. The system comprises: a baseboard management controller, a multiplexer, a universal serial bus device, and a processor, wherein the multiplexer is connected to each of the baseboard management controller, the universal serial bus device and the processor; when a server boots, the multiplexer communicates the baseboard management controller with the universal serial bus device, such that the baseboard management controller reads device data of the universal serial bus device, the device data being used for performing server boot configurations; and a basic input / output system in the processor reads, in a pre-extensible firmware interface initialization stage and from the baseboard management controller, the device data acquired by the baseboard management controller, and then the basic input / output system starts a real-time performance monitoring interface service and memory initialization in the pre-extensible firmware interface initialization stage.
Need to check novelty before this filing date? Find Prior Art

Description

Server fast startup system, methods, devices, media, and program products

[0001] Cross-references to related applications

[0002] This application claims priority to Chinese Patent Application No. 202411036053.9, filed on July 31, 2024, entitled “Server Fast Startup System, Method, Apparatus, Media and Program Product”, the entire contents of which are incorporated herein by reference. Technical Field

[0003] This application relates to the field of data processing technology, and in particular to a server fast startup system, method, device, medium and program product. Background Technology

[0004] During server startup, the server's Basic Input / Output System (BIOS) typically initializes the Universal Serial Bus (USB) controller and responds to USB devices, such as obtaining keyboard hotkey values ​​or reading USB flash drive contents, late in the startup process.

[0005] However, implementing USB responsiveness in the early stages of startup is extremely difficult, requiring the recoding of complex USB driver code, which is very challenging. Summary of the Invention

[0006] This application provides a server fast startup system, method, device, medium, and program product.

[0007] This application provides a server fast startup system, including: a baseboard management controller, a multiplexer, a universal serial bus device, and a processor; wherein the multiplexer is connected to the baseboard management controller, the universal serial bus device, and the processor respectively;

[0008] In response to determining server startup, the multiplexer connects the baseboard management controller and the Universal Serial Bus (USB) device, enabling the baseboard management controller to read device data from the USB device; wherein the device data is used for server startup configuration; and

[0009] During the pre-expandable firmware interface initialization phase, the basic input / output system in the processor reads the device data obtained from the baseboard management controller. Then, during the pre-expandable firmware interface initialization phase, the basic input / output system starts the real-time performance monitoring interface service and memory initialization.

[0010] According to the server fast startup system provided in this application, the baseboard management controller is used for:

[0011] While the baseboard management controller starts the first operating system and the real-time performance monitoring interface service, it also starts the second operating system to read device data from the universal serial bus device; wherein, the response time of the first operating system is longer than the response time of the second operating system.

[0012] According to the server fast startup system provided in this application, the system further includes: an access controller, which is connected to a multiplexer and a baseboard management controller respectively;

[0013] The access controller is used to transfer control of the multiplexer to the baseboard management controller in response to the determination of server startup, so that the baseboard management controller can connect to the universal serial bus device through the multiplexer.

[0014] According to the server fast startup system provided in this application, the access controller is also used for:

[0015] In response to determining that the processor has read the device data obtained by the board management controller, the authority controller transfers the control authority of the multiplexer from the board management controller to the processor, wherein the processor is connected to the Universal Serial Bus device through the multiplexer.

[0016] According to the server fast startup system provided in this application, the baseboard management controller is also used for:

[0017] After starting the second operating system, load the Universal Serial Bus controller driver;

[0018] In response to the determination that the baseboard management controller has successfully loaded the Universal Serial Bus (USB) controller driver, the USB device is identified and initialized to read the device data of the USB device; or

[0019] In response to the determination that the baseboard management controller failed to load the Universal Serial Bus controller driver, the Universal Serial Bus controller driver is unloaded and then reloaded.

[0020] According to the server fast startup system provided in this application, the baseboard management controller includes a universal serial bus controller;

[0021] The Universal Serial Bus (USB) controller is used to provide USB controller drivers for the baseboard management controller.

[0022] According to the server fast boot system provided in this application, the baseboard management controller includes: static random access memory;

[0023] After reading the device data from the Universal Serial Bus (USB) device, the baseboard management controller stores the device data in static random access memory (SRAM); and

[0024] The basic input / output system reads the space of the static random access memory in the baseboard management controller to obtain device data.

[0025] According to the server fast startup system provided in this application, the baseboard management controller sets the storage flag bit of the static random access memory during the process of storing device data into the static random access memory.

[0026] In response to determining that a storage flag is present in the basic input / output system's static random access memory, continue reading device data; or

[0027] In response to determining that the basic input / output system reads a static random access memory (SRAM) without a storage flag, reading device data is stopped. According to a server fast boot system provided in this application, the second operating system reads device data from a universal serial bus device, including:

[0028] The second operating system reads the hotkey values ​​or storage files of the Universal Serial Bus device.

[0029] According to the server fast startup system provided in this application, the second operating system is a real-time operating system.

[0030] This application also provides a quick start method, including:

[0031] In response to confirming server startup, the processor transfers control of the multiplexer to the baseboard management controller, enabling the baseboard management controller to read device data from the universal serial bus device; this device data is used for server startup configuration; and

[0032] During the pre-expandable firmware interface initialization phase, the basic input / output system in the processor reads the device data obtained from the baseboard management controller. Then, during the pre-expandable firmware interface initialization phase, the basic input / output system starts the real-time performance monitoring interface service and memory initialization.

[0033] According to the quick startup method provided in this application, the method for acquiring device data includes:

[0034] While the baseboard management controller starts the first operating system and the real-time performance monitoring interface service, it also starts the second operating system to read device data of the universal serial bus device through the second operating system. The response time of the first operating system is longer than that of the second operating system.

[0035] According to the fast startup method provided in this application, in response to determining that the server is starting up, the processor transfers control of the multiplexer to the baseboard management controller, including:

[0036] In response to the confirmation that the server has started, the processor receives a control transfer instruction sent by the authority controller. The processor transfers the control authority of the multiplexer to the board management controller, so that after the board management controller obtains the control authority of the multiplexer, it can connect the board management controller and the universal serial bus device through the multiplexer.

[0037] According to the fast startup method provided in this application, after the step of transferring control of the processor over the multiplexer to the baseboard management controller in response to determining that the server has started, so that the baseboard management controller reads the device data of the universal serial bus device, the method further includes:

[0038] The processor receives a control transfer instruction from the authority controller to transfer control of the multiplexer from the baseboard management controller to the processor; and

[0039] After gaining control of the multiplexer, the processor connects to the Universal Serial Bus device through the multiplexer.

[0040] According to the quick startup method provided in this application, before the step of the baseboard management controller reading device data of the universal serial bus device through the second operating system, the method further includes:

[0041] After starting the second operating system, load the Universal Serial Bus controller driver;

[0042] In response to the determination that the baseboard management controller has successfully loaded the Universal Serial Bus (USB) controller driver, the USB device is identified and initialized to read the device data of the USB device; or

[0043] In response to the determination that the baseboard management controller failed to load the Universal Serial Bus controller driver, the Universal Serial Bus controller driver is unloaded and then reloaded.

[0044] According to the fast startup method provided in this application, in response to determining that the server has started, the processor transfers control of the multiplexer to the baseboard management controller, so that after the baseboard management controller reads the device data of the universal serial bus device, the method further includes:

[0045] The substrate management controller stores device data in the substrate management controller's static random access memory and sets storage flag bits for the device data;

[0046] In response to determining that the basic input / output system reads the storage flag bit in the static random access memory, the system continues to read device data; or in response to determining that the basic input / output system reads the storage flag bit in the static random access memory, the system stops reading device data.

[0047] According to the quick start method provided in this application, the device data includes at least one of the following: hotkey values ​​and storage files of the Universal Serial Bus device.

[0048] This application also provides a fast start device, including: a baseboard management controller, a multiplexer, and a processor, wherein the multiplexer is connected to a Universal Serial Bus device;

[0049] The multiplexer connects the baseboard management controller and the Universal Serial Bus (USB) device in response to a confirmed server startup. The baseboard management controller reads device data from the USB device; this device data is used for server startup configuration.

[0050] During the pre-expandable firmware interface initialization phase, the basic input / output system in the processor reads the device data obtained from the baseboard management controller. Then, during the pre-expandable firmware interface initialization phase, the basic input / output system starts the real-time performance monitoring interface service and memory initialization.

[0051] According to a fast-start device provided in this application, the multiplexer is also used for:

[0052] After the baseboard management controller reads the device data of the universal serial bus device, the state of connecting the baseboard management controller and the universal serial bus device is switched to connecting the processor and the universal serial bus device.

[0053] According to the fast startup device provided in this application, the device further includes: a permission controller;

[0054] The access control controller is used to transfer control of the multiplexer to the baseboard management controller in response to the determination that the server has started; and

[0055] The access controller is used to transfer control of the multiplexer from the board management controller to the processor in response to determining that the processor has read the device data obtained by the board management controller.

[0056] This application also provides an electronic device, including

[0057] One or more processors; and

[0058] Memory associated with one or more processors, the memory being used to store computer-readable instructions that, when read and executed by one or more processors, implement any of the fast startup methods described above.

[0059] This application also provides a non-transitory computer-readable storage medium storing computer-readable instructions that, when executed by one or more processors, implement any of the fast startup methods described above.

[0060] This application also provides a computer program product including computer-readable instructions that, when executed by one or more processors, implement any of the fast startup methods described above.

[0061] The server fast startup system, method, device, medium, and program products provided in this application connect the baseboard management controller and the Universal Serial Bus device through a multiplexer during the server startup process, so that the baseboard management controller can directly read the data of the Universal Serial Bus device, and, before the memory initialization in the pre-expandable firmware interface initialization stage, pre-read the device data used for server startup configuration. Attached Figure Description

[0062] To more clearly illustrate the technical solutions in this application or related technologies, the accompanying drawings used in the description of the embodiments or related technologies will be briefly introduced below. Obviously, the accompanying drawings described below are some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0063] Figure 1 is a schematic diagram of the server fast startup system structure provided in an embodiment of this application;

[0064] Figure 2 is a flowchart of the fast startup method provided in the embodiments of this application;

[0065] Figure 3 is a schematic diagram of the method flow provided in an embodiment of this application;

[0066] Figure 4 is a schematic diagram of the structure of the fast start device provided in an embodiment of this application;

[0067] Figure 5 is a schematic diagram of the structure of the electronic device provided in this application;

[0068] Figure 6 is a schematic diagram of the structure of the non-transitory computer-readable storage medium provided in this application;

[0069] Figure 7 is a schematic diagram of the structure of the computer program product provided in this application. Detailed Implementation

[0070] To make the objectives, technical solutions, and advantages of this application clearer, the technical solutions of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.

[0071] In related technologies, the BIOS boot process generally includes the following five steps:

[0072] Step 1: Memory initialization is performed during the Pre-EFI Initialization (PEI) phase.

[0073] Step 2: Driver Execution Environment (DXE) stage: Peripheral Component Interconnect Express (PCIe) device initialization;

[0074] Step 3: Initialize the USB controller during the DXE phase;

[0075] Step 4: Respond to USB keyboard hotkey behavior during the Boot Device Selection (BDS) phase;

[0076] Step 5: The BDS stage executes different startup behaviors based on the hotkey.

[0077] Since the initialization code for the USB controller in the DXE stage is already very mature, most manufacturers' BIOS initialize the USB controller in the DXE stage and then access the corresponding keyboard hotkeys. However, this also has its drawbacks. This stage is relatively late in the boot process, and users can easily miss the hotkey operation, which means they have to restart and start over.

[0078] Figure 1 is a schematic diagram of the server fast startup system structure provided in the embodiment of this application. As shown in Figure 1, it includes: a baseboard management controller 11, a multiplexer 12, a universal serial bus device 13, and a processor 14; wherein, the multiplexer 12 is connected to the baseboard management controller 11, the universal serial bus device 13, and the processor 14 respectively.

[0079] In response to determining that the server is started, the multiplexer 12 connects the baseboard management controller 11 and the universal serial bus device 13 so that the baseboard management controller 11 reads the device data of the universal serial bus device 13; wherein the device data is used to configure the server 14 to start.

[0080] During the pre-expandable firmware interface initialization phase, the basic input / output system in the processor reads the device data obtained from the baseboard management controller. Then, during the pre-expandable firmware interface initialization phase, the basic input / output system starts the real-time performance monitoring interface service and memory initialization.

[0081] In this embodiment, a multiplexer (MUX) is a hardware device capable of selectively transmitting one of multiple input signals to an output based on control signals. In a server boot system, the MUX is used to switch data transmission paths between the BMC and USB devices.

[0082] The Baseboard Management Controller (BMC) is a component of server hardware, typically used for remote management and monitoring of server hardware status. It has the capability to handle network, storage, and input / output devices.

[0083] In some embodiments, the baseboard management controller is configured to: simultaneously launch a first operating system to start a real-time performance monitoring interface service, and launch a second operating system to read device data of the universal serial bus device through the second operating system; wherein the response time of the first operating system is greater than the response time of the second operating system.

[0084] Universal Serial Bus (USB) devices can be keyboards, mice, storage devices, etc., which connect to the server via a USB interface.

[0085] In some embodiments, in response to determining that the server is powered on, the multiplexer first hands over control to the BMC according to preset control logic. After receiving the control, the BMC connects the baseboard management controller and the universal serial bus device, at which point the baseboard management controller can directly access the universal serial bus device.

[0086] In this embodiment, the first operating system is an operating system running on the first processor core of the BMC's multi-core processor; the first operating system is typically a more comprehensive operating system with a longer response time, such as Linux. It is responsible for comprehensive hardware management and monitoring functions after the server starts up.

[0087] The first operating system generally uses the fair task scheduling algorithm. When the number of threads / processes increases, they need to share CPU (Central Processing Unit) time. Task debugging is uncertain and can be called a non-real-time operating system. Examples include Contiki, HeliOS, and Linux (GNU / Linux, a freely distributable Unix-like operating system). Other non-real-time operating systems are also possible. Among them, Linux is a multi-user, multi-tasking operating system based on POSIX (Portable Operating System Interface) that supports multi-threading and multi-CPU.

[0088] The second operating system runs on the second processor core of a multi-core processor. This second processor core is different from the first processor core. The second operating system can be an operating system with clearly defined and fixed time constraints; all processing (task scheduling) must be completed within these constraints, otherwise the system will malfunction. It can be an RTOS (Real-Time Operating System), such as FreeRTOS (Free Real-Time Operating System) or RTLinux (Real-Time Linux), or other real-time operating systems. Its main task is to quickly read data from USB devices in the early stages of server startup.

[0089] In some embodiments, after the first operating system boots, the BMC begins loading and starting the first operating system, which then initiates the real-time performance monitoring interface service. Simultaneously, the BMC utilizes another core or processor to respond to the second operating system's task of reading device data from the Universal Serial Bus (USB) device; this system has a shorter response time and can respond quickly.

[0090] In some embodiments, due to the shorter response time of the second operating system, it first completes the response and loads the USB controller driver, identifies and initializes the USB device, and reads device data (such as keyboard input, storage device contents, etc.). The read data is stored in the BMC's static random access memory (SRAM) for subsequent reading by the BIOS.

[0091] The Basic Input / Output System (BIOS) in the processor reads data from the SRAM of the BMC and uses this data to complete the server's boot process. For example, in response to determining that the read data is a hotkey value from a USB keyboard, the BIOS can display this hotkey information during the boot process.

[0092] In this embodiment, the BIOS boot process is optimized to the following steps:

[0093] Step 1: PEI stage: Obtain device data from BMC;

[0094] Step 2: The PEI phase performs memory initialization and starts the real-time performance monitoring interface service;

[0095] Step 3: DXE stage PCIe device initialization;

[0096] Step 4: The BDS stage executes different startup behaviors based on the hotkey;

[0097] The BIOS eliminates the need for USB controller initialization, allowing for rapid acquisition of device data from the BMC in the early stages, significantly improving server startup speed.

[0098] In some embodiments, in response to determining that the device data is a hotkey, the BIOS system can read the hotkey information in the PEI stage, so that the hotkey information can be displayed in advance in the PEI stage to facilitate user selection, avoiding the problem of repeated restarts caused by the user easily missing the hotkey information display due to the short display time.

[0099] In other embodiments, in response to determining that the device data is storage configuration information, the BIOS system can read the configuration information in the PEI stage, and can respond in advance, effectively improving the response speed.

[0100] In this embodiment, during the server startup process, a multiplexer connects the baseboard management controller and the Universal Serial Bus (USB) device, enabling the baseboard management controller to directly read data from the USB device. Furthermore, before memory initialization during the pre-expandable firmware interface initialization phase, device data for server startup configuration is read in advance. This efficiently and conveniently enables the BIOS to respond to USB devices in the early startup phase, avoiding the complex logic of encoding USB controller drivers in the BIOS and improving the server startup speed.

[0101] On the other hand, this application embodiment also utilizes the fast startup feature of the second operating system. At the same time as the first operating system starts, the initialization of the USB device and the acquisition of device data are completed through the fast-starting second operating system. This efficiently and conveniently realizes the BIOS's response to the USB device in the early stage of startup, avoiding the complex logic of encoding the USB controller driver in the BIOS and improving the server's startup speed.

[0102] In some embodiments, the system further includes: an access controller, which is connected to both a multiplexer and a baseboard management controller;

[0103] The access controller is used to transfer control of the multiplexer to the baseboard management controller in response to the determination of server startup, so that the baseboard management controller can connect to the universal serial bus device through the multiplexer.

[0104] In this embodiment, the access controller (Complex Programmable Logic Device, CPLD) is a programmable integrated circuit capable of implementing complex digital logic functions. In this system, it is used to control the permissions of the MUX and ensure the correct switching of data transmission paths.

[0105] In the embodiments of the application, the MUX is a hardware device used to select one signal from multiple input signals and pass it to an output. In this system, the MUX is used to switch data transfer paths between the BMC and the USB device.

[0106] In some embodiments, the Basic Input / Output System (BIOS) in the processor reads data from the SRAM of the BMC and uses this data to complete the server boot process.

[0107] Once the BIOS has finished booting and needs to directly control the USB device, the CPLD will switch control of the MUX back to the processor according to the control logic, so that the CPU can communicate directly with the USB device.

[0108] In this embodiment, the server can respond quickly to external devices in the early stages of startup, improving startup efficiency and response speed. The CPLD plays a crucial role in this process, ensuring proper switching of data transmission paths and timely transfer of control authority. This mechanism is particularly suitable for server environments that require rapid startup and processing of external input, such as data centers and cloud computing environments.

[0109] In some embodiments, the access controller is further configured to: in response to determining that the processor has read device data acquired by the baseboard management controller, transfer control authority of the multiplexer from the baseboard management controller to the processor; the processor connects to a Universal Serial Bus device via the multiplexer.

[0110] In this embodiment, after the server powers on, the BMC starts a second operating system. This operating system has a short response time and can respond quickly, making it suitable for early device initialization and data reading. After the second operating system starts, the BMC is responsible for loading the USB controller driver. This step is crucial for realizing USB device identification and data reading. The USB controller driver is a software component responsible for managing communication between the USB device and the server, ensuring that the device can be correctly identified and used. After successfully loading the USB controller driver, the BMC identifies and initializes the connected USB device. This process includes detecting the device type, configuring device parameters, and allocating necessary system resources. Once the USB device is identified and initialized, the BMC reads the USB device's data, such as keyboard input and storage device contents.

[0111] The read data is stored in the static random access memory (SRAM) of the BMC so that it can be read later by the basic input / output system (BIOS) in the processor.

[0112] Upon determining that the BMC failed to load the USB controller driver, the BMC unloads the current USB controller driver. The BMC then attempts to reload the USB controller driver to ensure the system can correctly recognize and use the USB device.

[0113] In this embodiment, the server can respond quickly to external devices in the early stages of startup, improving startup efficiency and response speed. The CPLD plays a crucial role in this process, ensuring proper switching of data transmission paths and timely transfer of control authority. This mechanism is particularly suitable for server environments that require rapid startup and processing of external input, such as data centers and cloud computing environments.

[0114] In some embodiments, the substrate management controller includes a universal serial bus controller; the universal serial bus controller is used to provide a universal serial bus controller driver for the substrate management controller.

[0115] In this embodiment of the application, the BMC is the core component of server hardware management, responsible for monitoring and managing the hardware status of the server, such as temperature, power supply, fans, etc.

[0116] In this design, the BMC itself integrates a USB controller, which allows the BMC to directly manage USB devices without relying on an external USB controller.

[0117] In this embodiment, the USB controller is a component within the BMC (Browser Control Center) and is responsible for handling all communication with the USB device. It provides the necessary drivers for the BMC, enabling the BMC to recognize, initialize, and manage the connected USB device.

[0118] In some embodiments, after the second operating system (RTOS) boots, the BMC's USB controller automatically loads its driver. This step is built-in because the USB controller is part of the BMC, so there is no need to load the driver from an external source.

[0119] After the USB controller driver is successfully loaded, the BMC's USB controller identifies and initializes the connected USB device. This process includes detecting the device type, configuring device parameters, and allocating necessary system resources.

[0120] Once a USB device is recognized and initialized, the BMC's USB controller reads data from the USB device, such as keyboard input and storage device contents. The read data is stored in the BMC's static random access memory (SRAM) for subsequent reading by the processor's basic input / output system (BIOS).

[0121] In some embodiments, the baseboard management controller includes: static random access memory; after reading device data from a universal serial bus device, the baseboard management controller stores the device data in the static random access memory; the BIOS reads space in the static random access memory of the baseboard management controller to obtain the device data.

[0122] In this embodiment, SRAM is a high-speed memory within the BMC used to temporarily store critical data. SRAM is used to store device data read from the USB device for subsequent BIOS reading.

[0123] Once the USB device is recognized and initialized, the BMC's USB controller reads data from the USB device, such as keyboard input and storage device contents. The read data is stored in the BMC's SRAM.

[0124] The Basic Input / Output System (BIOS) in the processor reads data from the SRAM of the BMC. The BIOS uses this data to complete the server's boot process. For example, in response to determining that the read data is a USB keyboard hotkey value, the BIOS can display this hotkey information during the boot process.

[0125] In some embodiments, the baseboard management controller sets a storage flag bit in the static random access memory (SRAM) during the process of storing device data into the SRAM; and continues reading device data in response to determining that the BIOS reads that the storage flag bit exists in the SRAM; or stops reading device data in response to determining that the BIOS reads that the storage flag bit does not exist in the SRAM.

[0126] In this embodiment, while storing data in SRAM, the BMC also sets a storage flag bit in the SRAM. The storage flag bit is a special marker used to indicate whether the data in the SRAM is valid or ready to be read. During the boot process, the BIOS needs to obtain device data from the BMC to complete the boot process. The BIOS first checks the storage flag bit in the SRAM. If the BIOS detects that the storage flag bit in the SRAM is set (i.e., present), this indicates that the data stored in the SRAM is valid.

[0127] In this situation, the BIOS will continue to read device data from SRAM and execute the corresponding boot tasks based on this data. For example, in response to determining that the data comes from a USB keyboard, the BIOS may display relevant hotkey information on the boot screen.

[0128] If the BIOS detects that the storage flag in SRAM is not set (i.e., it does not exist), it indicates that there is no valid data in SRAM or that the data is not yet ready. In this case, the BIOS will stop reading data from SRAM and may proceed with an alternative boot process or wait for the data to become available.

[0129] In this embodiment, the BIOS is ensured to read data from SRAM only when the data is valid, avoiding the reading of invalid or outdated data. It also provides a method to synchronize data transfer between the BMC and BIOS, ensuring data consistency and reliability.

[0130] In some embodiments, the second operating system reads device data of a Universal Serial Bus (USB) device, including: the second operating system reads hotkey values ​​or storage files of the USB device.

[0131] In this embodiment, the second operating system has a short response time, making it suitable for the early stages of server startup. It is responsible for quickly responding to external devices, such as USB keyboards and USB storage devices. The USB keyboard may contain hotkeys (shortcut keys) that can trigger specific system commands or operations. The second operating system reads the hotkey values ​​from the USB keyboard to provide a fast user input response during system startup. The USB storage device (such as a USB flash drive or external hard drive) may contain configuration files or other important data required for system startup. The second operating system reads these files from the USB storage device to ensure the system can perform correct initialization and configuration based on these files. The read hotkey values ​​and storage files are stored in the static random access memory (SRAM) of the baseboard management controller (BMC). Simultaneously with data storage in the SRAM, the BMC sets storage flags in the SRAM to indicate the presence and validity of the data.

[0132] In some embodiments, the second operating system is a real-time operating system. In some embodiments, an RTOS is an operating system designed to meet real-time constraints, meaning the system can guarantee task completion or response within a specified time. It typically features a small memory footprint, fast response time, and efficient resource management capabilities.

[0133] In response to the confirmation that the server is powered on, the startup process begins. The Baseboard Management Controller (BMC) first boots its internal operating system, which may include a full-featured operating system (such as Linux) and a more lightweight RTOS.

[0134] RTOS offers extremely short response times, making it ideal for rapidly responding to external devices in the early stages of server startup. RTOS provides deterministic response times, ensuring that critical tasks can be executed promptly.

[0135] In this embodiment, the fast boot and data retrieval capabilities of the RTOS enable the server to respond quickly to external devices in the early stages of startup, improving boot efficiency. The system can be flexibly booted and configured based on hotkey values ​​and storage files in the USB device. The deterministic response characteristics of the RTOS improve system reliability, especially in mission-critical tasks requiring fast and consistent responses.

[0136] Figure 2 is a flowchart of the fast startup method provided in the embodiments of this application. As shown in Figure 2, it includes:

[0137] Step 210: In response to determining that the server has started, the processor transfers control of the multiplexer to the baseboard management controller, so that the baseboard management controller reads the device data of the universal serial bus device; wherein the device data is used for server startup configuration.

[0138] In this embodiment of the application, the startup process begins in response to determining that the server is powered on.

[0139] During initial server startup, the processor (CPU) initially controls the MUX, but to enable the BMC to access USB devices, the processor transfers control of the MUX to the BMC. Once the BMC gains control of the MUX, it can establish a connection with the connected USB device and communicate data. The BMC reads data from the USB device through its internal USB controller. This data may include: Hotkey values: Hotkey values ​​read from the USB keyboard, which can trigger specific system commands or operations. Storage files: Files read from USB storage devices (such as USB flash drives or external hard drives), which may contain system configuration data or other important information.

[0140] Step 220: During the pre-expandable firmware interface initialization phase, the basic input / output system in the processor reads the device data obtained by the baseboard management controller from the baseboard management controller. Then, the basic input / output system starts the real-time performance monitoring interface service and memory initialization during the pre-expandable firmware interface initialization phase.

[0141] In some embodiments, PEI is an early stage in the Unified Extensible Firmware Interface startup process, primarily responsible for initializing memory and basic input / output functions.

[0142] In the BIOS boot process of related technologies, the PEI stage initializes memory; the DXE stage initializes PCIe devices; the DXE stage initializes the USB controller; the BDS stage responds to USB keyboard hotkey actions; and the BDS stage executes different boot behaviors based on the hotkey.

[0143] In this application, during the initial boot phase, the BMC reads data from the USB device via its internal USB controller and stores this data in the BMC's static random access memory. During the PEI phase, the BIOS reads device data from the BMC's SRAM; this data may include hotkey values ​​from the USB keyboard or file contents from the storage device.

[0144] After reading the device data, the BIOS initiates the Real-Time Performance Monitoring Interface (RTI) service. This may involve monitoring key system performance metrics such as CPU utilization, memory usage, and disk activity. Simultaneously, the BIOS continues with memory initialization tasks during the PEI phase, ensuring the memory system is ready for subsequent boot phases. Once memory initialization is complete, the BIOS continues with subsequent boot phases, such as DXE (Driver Execution Environment) and BDS (Boot Device Selection), ultimately loading the operating system.

[0145] In this way, the server can respond quickly to external devices in the early stages of startup, improving startup efficiency and response speed, and ensuring that the server is correctly configured to start based on the data provided by the external device. This design is particularly suitable for server environments that require rapid startup and processing of external input, such as data centers and cloud computing environments.

[0146] In some embodiments, the method for acquiring device data includes: the baseboard management controller starts a first operating system and starts a real-time performance monitoring interface service, while simultaneously starting a second operating system to read device data of the universal serial bus device through the second operating system; wherein the response time of the first operating system is greater than the response time of the second operating system.

[0147] In some embodiments of this application, the second operating system starts working first because its response time is shorter than that of the first operating system. The BMC's USB controller establishes a connection with the USB device through the MUX and loads the corresponding driver.

[0148] In some embodiments, hotkey values ​​are read from a USB keyboard, which can trigger specific system commands or actions. Files are read from a USB storage device, which may contain system configuration data or other important information.

[0149] Because the RTOS has a shorter response time than the primary operating system, it boots up and begins operation first. The BMC's USB controller establishes a connection with the USB device via the MUX and loads the corresponding drivers. The RTOS reads data from the USB device, which may include: hotkey values: hotkey values ​​read from the USB keyboard, which can trigger specific system commands or operations.

[0150] In this embodiment of the application, files read from a USB storage device may contain system configuration data or other important information.

[0151] In this embodiment, the read USB device data is stored in the BMC's static random access memory (SRAM). The BMC sets a storage flag in the SRAM to indicate the presence and validity of the data.

[0152] The Basic Input / Output System (BIOS) in the processor checks the storage flags in SRAM during startup. In response to determining that the storage flags are present, the BIOS reads the stored USB device data from SRAM.

[0153] The BIOS executes corresponding boot tasks based on the data it reads. For example, if it determines that the read data is a USB keyboard hotkey value, the BIOS may display the relevant hotkey information on the boot screen. If it determines that the read data is the file content of a USB storage device, the BIOS will perform system configuration based on the file content.

[0154] In this embodiment, during the server startup process, a multiplexer connects the baseboard management controller and the Universal Serial Bus (USB) device, enabling the baseboard management controller to directly read data from the USB device. Furthermore, before memory initialization during the pre-expandable firmware interface initialization phase, device data for server startup configuration is read in advance. This efficiently and conveniently enables the BIOS to respond to USB devices in the early startup phase, avoiding the complex logic of encoding USB controller drivers in the BIOS and improving the server startup speed.

[0155] In some embodiments, in response to determining that the server is started, the processor transfers control of the multiplexer to the board management controller, including: in response to determining that the server is started, the processor receives a control transfer instruction sent by the authority controller, and the processor transfers control of the multiplexer to the board management controller, so that after obtaining control of the multiplexer, the board management controller connects to the Universal Serial Bus device through the multiplexer.

[0156] In this embodiment, the access controller, in response to determining that the server has started, sends a control transfer instruction to the processor. A CPLD is a programmable integrated circuit capable of controlling the behavior of hardware devices according to preset logic.

[0157] After receiving the control transfer instruction from the CPLD, the processor transfers control of the MUX to the BMC. This means that during the initial startup phase, the processor relinquishes control of the MUX, allowing the BMC to take over. Once the BMC gains control of the MUX, it can establish connections with USB devices through the MUX. This allows the BMC to directly access USB devices connected to the server, such as USB keyboards and USB storage devices.

[0158] Using the gained control, the BMC connects itself to the USB device via the MUX. This allows the BMC to read data from the USB device, such as keyboard input or storage device contents.

[0159] In this embodiment, after the BMC boots its internal second operating system (such as an RTOS), the system responds quickly and loads the USB controller driver. The RTOS reads data from the USB device and may store this data in the BMC's SRAM.

[0160] During startup, the Basic Input / Output System (BIOS) in the processor checks the SRAM of the BMC and reads the memory flags. In response to determining that the memory flags are present, the BIOS reads the USB device data from the SRAM and performs the corresponding startup tasks based on this data.

[0161] Once the BIOS has booted and needs to directly control the USB device, the CPLD will transfer control of the MUX from the BMC back to the processor according to the control logic. The processor then communicates directly with the USB device through the MUX for data transfer and device control.

[0162] In this embodiment, by rapidly transferring control permissions, the BMC can quickly access the USB device in the early stages of server startup, improving startup efficiency. The system can flexibly switch control of the MUX between the BMC and the processor as needed, ensuring efficient data transmission.

[0163] In some embodiments, after the step of transferring control of the multiplexer to the baseboard management controller in response to determining server startup, so that the baseboard management controller reads device data of the Universal Serial Bus device, the method further includes: the processor receiving a control transfer instruction sent by the authority controller to transfer control of the multiplexer from the baseboard management controller to the processor; and after obtaining control of the multiplexer, the processor connecting to the Universal Serial Bus device through the multiplexer.

[0164] In this embodiment, in response to determining that the server has started, the BMC utilizes its internal secondary operating system (such as an RTOS) to quickly read data from the connected USB device. This data may include hotkey values ​​from a USB keyboard or files from a USB storage device.

[0165] After the BMC completes reading the USB device data, the CPLD sends a control transfer instruction to the processor. The CPLD is a programmable integrated circuit responsible for coordinating the transfer of control between hardware components.

[0166] After receiving the control transfer instruction from the CPLD, the processor takes over control of the MUX. This means the processor can now communicate directly with USB devices through the MUX. Using the gained control, the processor connects itself to the USB device via the MUX. This allows the processor to directly access the USB device for data transfer and device control.

[0167] In some embodiments, the server is powered on, and the startup process begins. The BMC starts its internal RTOS, which responds quickly and loads the USB controller driver. The RTOS reads data from the USB device and may store this data in the BMC's SRAM. After the BMC has finished reading the USB device data, the CPLD sends a control transfer instruction to the processor. Upon receiving the instruction from the CPLD, the processor takes over control of the MUX. The processor establishes a connection with the USB device through the MUX, performing data transfer and device control.

[0168] During startup, the Basic Input / Output System (BIOS) in the processor checks the SRAM of the BMC and reads the memory flags. In response to determining that the memory flags are present, the BIOS reads the USB device data from the SRAM and performs the corresponding startup tasks based on this data.

[0169] In this embodiment, by rapidly transferring control permissions, the BMC can quickly access the USB device in the early stages of server startup, improving startup efficiency. The system can flexibly switch control of the MUX between the BMC and the processor as needed, ensuring efficient data transmission.

[0170] In some embodiments, before the step of the baseboard management controller reading device data of a Universal Serial Bus (USB) device through the second operating system, the method further includes: loading a USB controller driver after starting the second operating system; identifying and initializing a USB device to read device data in response to determining that the baseboard management controller has successfully loaded the USB controller driver; and unloading and reloading the USB controller driver in response to determining that the baseboard management controller has failed to load the USB controller driver.

[0171] In this embodiment, in response to determining that the server has started, the BMC first starts its internal second operating system, typically a lightweight real-time operating system (RTOS). After the second operating system starts, the BMC loads the USB controller driver. Upon successful loading of the USB controller driver, the BMC identifies and initializes the connected USB device. After identification and initialization are complete, the BMC reads the data from the USB device. In response to determining that the USB controller driver loading has failed, the BMC will unload the driver and reload it.

[0172] In some embodiments, the server is powered on, and the boot process begins. The BMC starts its internal RTOS, which responds quickly and prepares to load the USB controller driver. After the RTOS boots, the BMC attempts to load the USB controller driver. The USB controller driver is a software component responsible for managing communication between the USB device and the server.

[0173] Upon confirming that the USB controller driver has been successfully loaded, the BMC's USB controller recognizes the connected USB device and initializes it. The BMC reads data from the USB device, such as keyboard input or storage device contents, and may store this data in the BMC's SRAM.

[0174] Upon determining that the USB controller driver loading failed, the BMC unloads the current USB controller driver. The BMC then attempts to reload the USB controller driver to ensure the system can correctly recognize and use the USB device. After the BMC completes reading the USB device data, the CPLD sends a control transfer instruction to the processor. Upon receiving the instruction from the CPLD, the processor takes over control of the MUX. The processor establishes a connection with the USB device through the MUX for data transfer and device control.

[0175] In some embodiments, in response to determining that the server has started, the processor transfers control of the multiplexer to the board management controller, so that after the board management controller reads the device data of the universal serial bus device, the method further includes: the board management controller storing the device data in the board management controller's static random access memory and setting a storage flag for the device data; continuing to read the device data in response to determining that the basic input / output system reads the storage flag in the static random access memory; or stopping reading the device data in response to determining that the basic input / output system reads the storage flag in the static random access memory.

[0176] In this embodiment, the BMC reads data from the connected USB device via a second operating system (such as an RTOS). The BMC stores the read device data in its static random access memory (SRAM).

[0177] The BMC sets storage flags for device data stored in SRAM. The Basic Input / Output System (BIOS) checks the storage flags in SRAM and determines whether to read device data based on their presence or absence.

[0178] In some embodiments, the server is powered on, and the startup process begins. The BMC boots its internal RTOS, which responds quickly and prepares to read data from the USB device. After the RTOS boots, the BMC loads the USB controller driver to recognize and initialize the USB device. Once the USB controller driver is successfully loaded, the BMC recognizes the USB device and reads its data, such as keyboard input or storage device contents.

[0179] The USB device data read is stored in the BMC's SRAM. SRAM is a high-speed memory suitable for temporarily storing critical data. In response to deciding to store data in SRAM, the BMC simultaneously sets storage flags for this data. Storage flags are special markers used to indicate the presence and validity of data.

[0180] During the boot process, the BIOS checks the storage flags in the BMC's SRAM. If the storage flags are present, the BIOS continues reading device data from the SRAM and performs the corresponding boot tasks based on this data. If the storage flags are absent, the BIOS stops reading device data and may proceed with an alternative boot process or wait for the data to become available.

[0181] Once the BIOS has finished booting and needs to directly control the USB device, the CPLD will transfer control of the MUX from the BMC to the processor according to the control logic.

[0182] In some embodiments, the device data includes at least one of the following: hotkey values ​​and storage files of a Universal Serial Bus (USB) device. In some embodiments, hotkey values ​​may refer to hotkey values ​​read from a USB keyboard, which can trigger specific system commands or operations. Storage files may refer to files read from a USB storage device (such as a USB flash drive or external hard drive), which may contain system configuration data or other important information.

[0183] Figure 3 is a schematic diagram of the method flow provided in the embodiment of this application. As shown in Figure 3, it includes: after the server is powered on, the CPLD quickly switches the control of the MUX channel to the BMC, establishes a physical connection between the BMC and the USB device, and prepares for subsequent data interaction.

[0184] BMC's Linux operating system boots slowly. To improve efficiency, BMC uses a separate kernel to run a faster RTOS system. This RTOS system can boot in just 5 seconds, laying the foundation for rapid response from USB devices.

[0185] The RTOS system loads the USB controller driver. If the driver loading is successful, it identifies and initializes the USB device. If the driver loading fails, it uninstalls the current driver and reloads it to ensure proper identification and initialization of the USB device.

[0186] The ROS system identifies and initializes USB devices and responds to their requests. For example, it can retrieve hotkey values ​​from a USB keyboard or read files from a USB storage device and write the retrieved content into the BMC's SRAM, preparing it for BIOS use.

[0187] The BIOS reads the SRAM space of the BMC to obtain the content received by the RTOS system from the USB device. At this point, the power-on time is only about 10 seconds, and the BIOS can use this content to continue booting, such as displaying hotkey values ​​on the VGA interface or performing some configuration based on the file content.

[0188] The BMC notifies the CPLD that the interaction between the USB device and the BMC is complete. The CPLD then switches control of the MUX channel back to the CPU BIOS, establishing a physical connection between the CPU and the USB device, thus ensuring subsequent data exchange.

[0189] In this embodiment, after the server powers on, the CPLD transfers control of the MUX channel to the BMC, at which point the physical link between the BMC and the USB device is established. The BMC then activates another core to run a faster-booting operating system, such as an RTOS, which can boot within 5 seconds of power-on. After the BMCRTOS system boots up, it loads the USB controller driver. If the driver loads normally, the BMCRTOS system identifies and initializes the USB device, then responds to the USB device, such as obtaining the hotkey value of the USB keyboard or reading a file from the USB storage device, and writes the obtained content to the BMC's SRAM. The BIOS reads the BMC's SRAM space to obtain the content obtained by the BMCRTOS system in response to the USB device. At this point, the power-on time is only about 10 seconds, and the BIOS uses this content to continue booting. For example, upon determining that the BIOS has obtained a hotkey value from a USB keyboard, the BIOS displays the hotkey on the VGA interface to indicate to the user that a hotkey has been pressed. Upon determining that the BIOS has obtained the file content from a USB storage device, the BIOS performs some expected configurations based on the file content. Finally, the BMC notifies the CPLD that the interaction between the CPLD and the USB device is complete, and the CPLD switches control of the MUX channel to the CPU-BIOS. After this, the physical link from the CPU to the USB device is enabled. This method leverages the fast boot characteristics of the BMC-RTOS system and initializes the USB device through the RTOS system's USB controller driver. Finally, the content obtained from the USB device is shared with the BIOS via SRAM. The entire process takes only about 10 seconds, efficiently and conveniently implementing the BIOS's response to the USB device during the early pre-expandable firmware interface initialization phase of the boot process, avoiding the complex logic of coding the USB controller driver within the BIOS.

[0190] Figure 4 is a schematic diagram of the structure of the fast start device provided in the embodiment of this application. As shown in Figure 4, it includes: a baseboard management controller 11, a multiplexer 12 and a processor 14. The multiplexer 12 is connected to a universal serial bus device.

[0191] In this configuration, multiplexer 12 connects baseboard management controller 11 to a universal serial bus device in response to a confirmed server startup. Baseboard management controller 11 reads device data from the universal serial bus device. This device data is used for server startup configuration. During the pre-expandable firmware interface initialization phase, the basic input / output system in processor 14 reads the device data from baseboard management controller 11 and then initiates real-time performance monitoring interface service and memory initialization.

[0192] In this embodiment, the BMC is a standalone microcontroller, typically used to monitor and manage the server's hardware status, such as temperature, voltage, and fan speed. It can also perform basic management tasks, such as remote server startup, monitoring, diagnostics, and recovery.

[0193] Multiplexers are used to combine multiple signal or data streams into a single channel for transmission through a single interface. In this case, it connects multiple Universal Serial Bus (USB) devices to a single interface on a server. Multiplexers allow the server to selectively connect to different USB devices at startup.

[0194] In response to the confirmation of server startup, the multiplexer is configured to connect the baseboard management controller to specific USB devices. This allows the BMC to access these devices during the startup process.

[0195] The baseboard management controller (BMC) not only participates in hardware monitoring but is also responsible for booting the secondary operating system. This is typically a small, dedicated operating system, such as an embedded operating system within the BMC firmware. The secondary operating system can be standalone or a lightweight version of the server's main operating system. Once booted, the BMC reads data from the connected USB devices through it. This may include configuration files, diagnostic data, or other important information stored on the USB devices.

[0196] The read device data is passed to the processor's Basic Input / Output System (BIOS). The BIOS is firmware that runs when the computer starts up, responsible for initializing the hardware and loading the operating system. In this way, the BMC can provide the necessary configuration information for the server's startup process, ensuring that the server can start correctly.

[0197] In some embodiments, the multiplexer is further configured to: after the baseboard management controller reads the device data of the universal serial bus device, switch from a state connecting the baseboard management controller and the universal serial bus device to a state connecting the processor and the universal serial bus device.

[0198] In this embodiment, during the initial server startup, the MUX is configured to connect the BMC to the USB device. This allows the BMC to read data from the USB device via its secondary operating system (such as an RTOS). The BMC utilizes the USB controller driver to read device data from the USB device, such as hotkey values ​​and stored files. The read device data is stored in the BMC's static random access memory (SRAM), and storage flags are set for this data. After the BMC completes the reading and storage of the USB device data, control of the MUX needs to be switched from the BMC to the processor.

[0199] In this embodiment, the MUX allows for flexible switching of control over the USB device between the BMC and the processor, ensuring that the USB device is managed by the most suitable component at different stages.

[0200] In some embodiments, the device further includes: a permission controller; the permission controller is configured to transfer control of the multiplexer to the baseboard management controller in response to determining that the server has started; the permission controller is configured to transfer control of the multiplexer from the baseboard management controller to the processor in response to determining that the processor has read device data acquired by the baseboard management controller.

[0201] In this embodiment, the CPLD is a programmable integrated circuit capable of controlling the behavior of hardware devices according to preset logic. In this system, the CPLD is responsible for controlling the transfer of control over the MUX at different stages of server startup. Initially, the CPLD sends a control transfer instruction to the BMC, transferring control of the MUX to the BMC. This allows the BMC to establish a connection with the USB device through the MUX. The BMC uses the USB controller driver to read device data from the USB device, such as hotkey values ​​and stored files. The read data is stored in the BMC's static random access memory (SRAM), and storage flags are set for this data. After the BMC completes the reading and storage of the USB device data, the CPLD sends a control transfer instruction to the processor, transferring control of the MUX from the BMC to the processor. This allows the processor to establish a direct connection with the USB device through the MUX.

[0202] During startup, the Basic Input / Output System (BIOS) in the processor checks the memory flags in the SRAM of the BMC. In response to determining that the memory flags are present, the BIOS reads device data from the SRAM and executes the corresponding startup tasks based on this data. Once the BIOS has completed booting and needs to directly control the USB device, the processor establishes a connection with the USB device through the MUX for data transfer and device control.

[0203] In this embodiment, by transferring MUX permissions controlled by the CPLD, the server can quickly access USB devices in the early stages of startup, improving startup efficiency. The system can flexibly switch control of the MUX between the BMC and the processor as needed, ensuring efficient data transmission.

[0204] Figure 5 is a schematic diagram of the electronic device provided in this application. As shown in Figure 5, the electronic device may include one or more processors 510, communication interfaces 520, memory 530, and communication buses 540. The processors 510, communication interfaces 520, and memory 530 communicate with each other via the communication bus 540. The processor 510 can call logical instructions in the memory 530 to execute a fast startup method. This method includes: in response to determining server startup, the processor transfers control of the multiplexer to the baseboard management controller, causing the baseboard management controller to read device data from the universal serial bus device; wherein the device data is used for server startup configuration; and during the pre-expandable firmware interface initialization phase, the basic input / output system in the processor reads the device data obtained by the baseboard management controller from the baseboard management controller, and then initiates real-time performance monitoring interface services and memory initialization during the pre-expandable firmware interface initialization phase.

[0205] Furthermore, the logical instructions in the aforementioned memory 530 can be implemented as software functional units and, when sold or used as independent products, can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to related technologies, or a portion of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.

[0206] On the other hand, as shown in Figure 7, this application also provides a computer program product, which includes computer-readable instructions. The computer-readable instructions can be stored on a non-transitory computer-readable storage medium. When the computer-readable instructions are executed by one or more processors, the computer can execute the fast startup method provided by the above methods. The method includes: in response to determining that the server is starting, the processor transfers control of the multiplexer to the baseboard management controller, so that the baseboard management controller reads device data of the universal serial bus device; wherein the device data is used for server startup configuration.

[0207] During the pre-expandable firmware interface initialization phase, the basic input / output system in the processor reads the device data obtained from the baseboard management controller. Then, during the pre-expandable firmware interface initialization phase, the basic input / output system starts the real-time performance monitoring interface service and memory initialization.

[0208] On another aspect, as shown in Figure 6, this application also provides a non-transitory computer-readable storage medium storing computer-readable instructions thereon, which, when executed by one or more processors, are implemented to perform the fast startup method provided by the methods described above. The method includes: in response to determining that the server is starting up, the processor transfers control of the multiplexer to the baseboard management controller, such that the baseboard management controller reads device data of the universal serial bus device; wherein the device data is used for server startup configuration.

[0209] During the pre-expandable firmware interface initialization phase, the basic input / output system in the processor reads the device data obtained from the baseboard management controller. Then, during the pre-expandable firmware interface initialization phase, the basic input / output system starts the real-time performance monitoring interface service and memory initialization.

[0210] The device embodiments described above are merely illustrative. The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the modules can be selected to achieve the purpose of this embodiment according to actual needs. Those skilled in the art can understand and implement this without any creative effort.

[0211] Through the above description of the embodiments, those skilled in the art can clearly understand that each embodiment can be implemented by means of software plus necessary general-purpose hardware platforms, and of course, it can also be implemented by hardware. Based on this understanding, the above technical solutions, in essence or the parts that contribute to the related technology, can be embodied in the form of software products. This computer software product can be stored in a computer-readable storage medium, such as ROM / RAM, magnetic disk, optical disk, etc., and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute the methods described in the various embodiments or some parts of the embodiments.

[0212] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of this application, and are not intended to limit them. Although this application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some of the technical features. Such modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the embodiments of this application.

Claims

1. A server fast boot system, characterized by, The system comprises: a baseboard management controller, a multiplexer, a universal serial bus device, and a processor; wherein the multiplexer is connected with the baseboard management controller, the universal serial bus device, and the processor respectively; in response to determining that the server is started, the multiplexer connects the baseboard management controller with the universal serial bus device, so that the baseboard management controller reads device data of the universal serial bus device; wherein the device data is used for server start configuration; and in a pre-extensible firmware interface initialization stage, after the baseboard management controller reads the device data obtained by the baseboard management controller, a basic input / output system in the processor starts a real-time performance monitoring interface service and memory initialization in the pre-extensible firmware interface initialization stage.

2. The server quick start system of claim 1, wherein, The baseboard management controller is used for: while the baseboard management controller starts a first operating system to start the real-time performance monitoring interface service, the baseboard management controller starts a second operating system to read the device data of the universal serial bus device through the second operating system; wherein a response time of the first operating system is greater than a response time of the second operating system.

3. The server quick start system of claim 1, wherein, The system further comprises a permission controller connected with the multiplexer and the baseboard management controller respectively; wherein in response to determining that the server is started, the permission controller transfers control permission of the multiplexer to the baseboard management controller, so that the baseboard management controller connects the baseboard management controller with the universal serial bus device through the multiplexer.

4. The server quick start system of claim 3, wherein, The permission controller is further used for: in response to determining that the processor reads the device data obtained by the baseboard management controller, the permission controller transfers the control permission of the multiplexer from the baseboard management controller to the processor, wherein the processor connects the processor with the universal serial bus device through the multiplexer.

5. The server quick start system of claim 2, wherein, The baseboard management controller is further used for: after starting the second operating system, loading a universal serial bus controller driver; in response to determining that the baseboard management controller successfully loads the universal serial bus controller driver, identifying and initializing the universal serial bus device to read device data of the universal serial bus device; or in response to determining that the baseboard management controller fails to load the universal serial bus controller driver, uninstalling the universal serial bus controller driver and reloading the universal serial bus controller driver.

6. The server quick start system of claim 1, wherein, The baseboard management controller comprises a universal serial bus controller; the universal serial bus controller is used for providing a universal serial bus controller driver for the baseboard management controller.

7. The server quick start system of claim 1, wherein, The baseboard management controller comprises a static random access memory; after reading the device data of the universal serial bus device, the baseboard management controller stores the device data in the static random access memory; and the basic input / output system reads a space of the static random access memory in the baseboard management controller to obtain the device data.

8. The server quick start system of claim 7, wherein, The baseboard management controller sets a storage flag of the static random access memory in a process of storing device data to the static random access memory; In response to determining that the basic input output system reads the storage flag existing in the static random access memory, the device data is continuously read; Or In response to determining that the basic input output system reads the storage flag not existing in the static random access memory, the device data is stopped reading.

9. The server quick start system of claim 2, wherein, The second operating system reads device data of the universal serial bus device, including: The second operating system reads a hot key value or a storage file of the universal serial bus device.

10. The server quick start system of claim 2, wherein, The second operating system is a real-time operating system.

11. A method of fast start-up, characterized by Including: In response to determining that the server starts, the control authority of the multiplexer is transferred to the baseboard management controller by the processor, so that the baseboard management controller reads device data of the universal serial bus device; wherein the device data is used for server start configuration; And The basic input output system in the processor reads the device data obtained by the baseboard management controller in the pre-extensible firmware interface initialization stage, and the basic input output system starts a real-time performance monitoring interface service and memory initialization in the pre-extensible firmware interface initialization stage.

12. The method of quickly starting according to claim 11, wherein, The device data acquisition method, comprising: The baseboard management controller starts the first operating system to start the real-time performance monitoring interface service, and starts the second operating system to read the device data of the universal serial bus device through the second operating system, wherein the response time of the first operating system is greater than the response time of the second operating system.

13. The method of quickly starting of claim 11, wherein, The control authority of the multiplexer is transferred to the baseboard management controller by the processor when the server starts, including: In response to determining that the server starts, the processor receives a control authority transfer instruction sent by the authority controller, and the processor transfers the control authority of the multiplexer to the baseboard management controller, so that the baseboard management controller is connected with the universal serial bus device through the multiplexer after obtaining the control authority of the multiplexer.

14. The fast start method of claim 13, wherein, In response to determining that the server starts, the control authority of the multiplexer is transferred to the baseboard management controller by the processor, so that the baseboard management controller reads device data of the universal serial bus device, and the method further comprises: The processor receives a control authority transfer instruction sent by the authority controller, so as to transfer the control authority of the multiplexer from the baseboard management controller to the processor; and The processor is connected with the universal serial bus device through the multiplexer after obtaining the control authority of the multiplexer.

15. The method of quickly starting of claim 12, wherein, Before the baseboard management controller reads the device data of the universal serial bus device through the second operating system, the method further comprises: After starting the second operating system, a universal serial bus controller driver is loaded; in response to determining that the baseboard management controller successfully loads the universal serial bus controller driver, identifying and initializing the universal serial bus device to read device data of the universal serial bus device; or in response to determining that the baseboard management controller fails to load the universal serial bus controller driver, uninstalling the universal serial bus controller driver and reloading the universal serial bus controller driver.

16. The fast start method of claim 11, wherein, The response to determining that the server starts, the control authority of the multiplexer to the baseboard management controller, so that the baseboard management controller reads the device data of the universal serial bus device, further comprises: The baseboard management controller stores the device data into the static random access memory of the baseboard management controller, and sets a storage flag bit for the device data; in response to determining that the basic input output system reads the storage flag bit in the static random access memory, continue to read the device data; or in response to determining that the basic input output system reads the storage flag bit in the static random access memory, stop reading the device data.

17. The fast start method of claim 11, wherein, The device data comprises at least one of the following: hot key value and storage file of the universal serial bus device.

18. A fast start apparatus, characterized by Comprise: a baseboard management controller, a multiplexer and a processor, the multiplexer is connected with a universal serial bus device; Wherein, the multiplexer is used for connecting the baseboard management controller and the universal serial bus device in response to determining that the server starts, and the baseboard management controller reads the device data of the universal serial bus device; wherein, the device data is used for server start configuration; and The basic input output system in the processor reads the device data obtained by the baseboard management controller in the pre extensible firmware interface initialization stage, and the basic input output system starts real-time performance monitoring interface service and memory initialization in the pre extensible firmware interface initialization stage.

19. The fast start apparatus of claim 18, wherein, The multiplexer is further used for: After the baseboard management controller reads the device data of the universal serial bus device, the state of connecting the baseboard management controller and the universal serial bus device is switched to connecting the processor and the universal serial bus device.

20. The fast start apparatus of claim 18, wherein, The device further comprises an authority controller; The authority controller is used for transferring the control authority of the multiplexer to the baseboard management controller in response to determining that the server starts; and The authority controller is used for transferring the control authority of the multiplexer from the baseboard management controller to the processor in response to determining that the processor reads the device data obtained by the baseboard management controller. 21.An electronic device, comprising: one or more processors; and a memory associated with the one or more processors, the memory is used to store computer readable instructions, the computer readable instructions are read and executed by the one or more processors to implement the fast start method of any one of claims 11 to 17.

22. A non-transitory computer-readable storage medium having stored thereon computer-readable instructions, wherein, The computer readable instructions, when executed by one or more processors, implement the fast start method of any of claims 11 to 17.

23. A computer program product comprising computer readable instructions, characterized in that, The computer readable instructions, when executed by one or more processors, implement the fast start method of any of claims 11 to 17.

Citation Information

Patent Citations

  • Dual-system start-up method and computer readable storage medium

    CN109426523A

  • Fault positioning information generation method and device, electronic equipment and storage medium

    CN117806857A

  • Server quick starting system, method and equipment, medium and program product

    CN118567732A

  • Method and Apparatus for Providing a Root of Trust using a Baseboard Management Controller

    US20200042710A1

  • System and method to run basic input / output system code from a non-volatile memory express device boot partition

    US20210240567A1