server

By introducing BIOS memory and storage devices into the server, and using processing circuits to store BIOS setting data in the storage device during the power-on self-test program, the problems of slow baseboard management controller update speed and data loss are solved, and fast loading and data security are achieved.

CN113867747BActive Publication Date: 2025-09-30KUNDA COMP TECHKUSN +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202010608778.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-06-30
Publication Date
2025-09-30
Estimated Expiration
2040-06-30

AI Technical Summary

Technical Problem

In the prior art, when updating BIOS program code through a baseboard management controller, the slow transmission speed and large data volume result in a slow update speed and easily cause data loss, thus affecting the update efficiency.

Method used

BIOS memory and storage devices are introduced into the server. The BIOS setting data is stored in the storage device through the processing circuit during the power-on self-test program. The storage device is used to load the setting data to replace the update process of the baseboard management controller, and the data is compressed and encrypted.

Benefits of technology

This enables fast loading of BIOS setting data, saves baseboard management controller operating time, avoids data loss, and ensures data accuracy and security.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113867747B_ABST
    Figure CN113867747B_ABST
Patent Text Reader

Abstract

The present invention provides a server comprising a BIOS memory, a storage device, and a processing circuit. The BIOS memory stores a BIOS program code that provides a BIOS setup menu and a storage option for storing configuration data for multiple BIOS setup options within the BIOS setup menu. A processing circuit is coupled to the BIOS memory and the storage device. The processing circuit executes the BIOS program code during a power-on self-test (POST) process of the server. When the processing circuit executes the storage option, the processing circuit stores the configuration data for the multiple BIOS setup options in the BIOS memory and the storage device. The processing circuit also stores a designated file name in the storage device. The designated file name corresponds to the configuration data for the multiple BIOS setup options stored in the storage device.
Need to check novelty before this filing date? Find Prior Art

Description

Technical field

[0001] The present invention relates to a server, and in particular to a server having the function of additionally storing BIOS setting data in a storage device. [Background Technology]

[0002] With the rapid development of servers, a remote update function has been developed. The server's baseboard management controller can be used to execute the aforementioned remote update function to update the server's basic input and output system (BIOS) program code from a remote device, which is very convenient for server maintainers.

[0003] However, to update the BIOS program code via the baseboard management controller, the baseboard management controller must communicate with the central processing unit. The communication interface between the baseboard management controller and the central processing unit has a slow transmission speed. The amount of data in the BIOS program code is larger than the amount of data transmitted by general commands. Therefore, transmitting the BIOS program code data via the baseboard management controller requires a longer communication time. Therefore, if the BIOS program code is updated via the baseboard management controller, the BIOS program code update speed will be very slow. Moreover, the use of a slow transmission interface to transmit a large amount of data is prone to data loss. If some data is lost during the communication process with the baseboard management controller, more time is required to wait for confirmation of the lost data and for the baseboard management controller to resend the complete data related to the lost data, which in turn reduces the update efficiency. [Summary of the invention]

[0004] The technical problem to be solved by the present invention is to provide a server which can save a lot of time waiting for the operation of a baseboard management controller.

[0005] To address the aforementioned technical issues, the present invention provides a server comprising a BIOS memory, a storage device, and a processing circuit. The BIOS memory stores a BIOS program code that provides a BIOS setup menu and a storage option for storing configuration data for multiple BIOS setup options within the BIOS setup menu. A processing circuit is coupled to the BIOS memory and the storage device. The processing circuit executes the BIOS program code during a power-on self-test (POST) process in the server. When the processing circuit executes the storage option, the processing circuit stores the configuration data for the multiple BIOS setup options in the BIOS memory and the storage device. The processing circuit also stores a designated file name in the storage device, the designated file name corresponding to the configuration data for the multiple BIOS setup options stored in the storage device.

[0006] Compared to the prior art, the server of the present invention allows users to quickly load BIOS setup data onto the server via a storage device. Loading BIOS setup data via the storage device, rather than updating the BIOS setup data via the baseboard management controller (BMC), saves significant time waiting for the BMC to start. Furthermore, storing BIOS setup data on the storage device prevents BIOS program code updates from disrupting the correspondence between BIOS setup data and designated file names, potentially rendering previously stored BIOS setup data inoperable. Furthermore, the BIOS setup data undergoes compression and encryption, saving storage time on the storage device and ensuring the accuracy and security of the BIOS setup data.

Brief Description of the Drawings

[0007] Figure 1 FIG. 4 is a functional block diagram of an embodiment of a server according to the present invention.

[0008] Figure 2 for Figure 1 A flow chart of an embodiment of a power-on self-test program executed by a server.

[0009] Figure 3 for Figure 1 A flow chart of another embodiment of a power-on self-test program executed by a server. [Specific implementation method]

[0010] Figure 1 A functional block diagram of an embodiment of a server according to the present invention is shown in FIG. Figure 2 for Figure 1 Please refer to the flowchart of an embodiment of a power-on self-test program executed by the server. Figure 1 and Figure 2 The server includes a BIOS memory 11, a storage device 12, and a processing circuit 13. The processing circuit 13 is coupled to the BIOS memory 11 and the storage device 12. The BIOS memory 11 stores BIOS program code. The processing circuit 13 executes the BIOS program code during the server's power-on self-test (POST) process, causing the server to enter a BIOS setup menu provided by the BIOS program code (step S01). The BIOS setup menu provides a plurality of adjustable BIOS setup options. The server user can modify the setting data of each BIOS setup option of the server (hereinafter referred to as BIOS setup data) in the BIOS setup menu, allowing the BIOS setup data to have a modified value different from the default value, or restoring the BIOS setup data from the modified value to the default value.

[0011] Furthermore, the BIOS setup menu provides a storage option for BIOS setup data. When a user wishes to have the server save its BIOS setup data, the user can select the storage option in the BIOS setup menu, causing the processing circuit 13 to execute the storage option provided in the BIOS setup menu during the power-on self-test (POST) process (step S02). The processing circuit 13 then stores the server's BIOS setup data in the BIOS memory 11 (step S03). The processing circuit 13 then controls a server reset to make the user-set BIOS setup data effective. Furthermore, in step S03, when the processing circuit 13 executes the storage option during the power-on self-test process, the processing circuit 13 further stores the BIOS setup data stored in the BIOS memory 11 in the storage device 12 and stores a corresponding designated file name in the storage device 12 (step S04). The designated file name corresponds to the BIOS setup data stored in the BIOS memory 11 and the storage device 12. In other words, the processing circuit 13 establishes a correspondence in the storage device 12 between the BIOS setup options stored in the storage device 12 and the designated file name.

[0012] Therefore, when the user subsequently wishes to restore the server to the BIOS settings previously stored in the storage device 12, the processing circuit 13 can locate the corresponding BIOS settings in the storage device 12 based on the specified file name stored in the storage device 12, allowing the server to quickly apply the BIOS settings previously set by the user or the BIOS settings pre-stored in the storage device 12. Furthermore, the storage device 12 is distinct from the BIOS memory 11 that stores the BIOS program code. During the BIOS program code update process, the BIOS memory 11 used to store the BIOS program code may be updated in its entirety or in part, and the data previously stored in the BIOS memory 11 may be erased or corrupted. Storing the BIOS settings in the storage device 12, which is structured in a manner that is not easily altered, can prevent changes in the structure of the BIOS memory 11 caused by updating the BIOS program code in the BIOS program code from destroying the correspondence between the BIOS settings and the specified file name, thereby preventing the problem of being unable to apply the user's stored BIOS settings.

[0013] In one embodiment, the user can set the corresponding BIOS setting data according to different operating modes of the server, such as energy consumption, processing performance or heat dissipation, and set different designated file names corresponding to different operating modes, so that the processing circuit 13 stores the corresponding BIOS setting data and designated file names in the storage device 12 according to the user's settings. For example, taking processing performance as an example, the user can set the BIOS setting data corresponding to the processing performance to enable the server to have a high-performance operating mode. The user can specify the corresponding text as the designated file name, such as "high performance" or "performance" as the designated file name of the BIOS setting data corresponding to the processing performance. The processing circuit 13 then stores the BIOS setting data corresponding to the user's setting in the storage device 12 according to the aforementioned designated file name; after the processing circuit 13 loads the BIOS setting data corresponding to "high performance" or "performance" into the BIOS memory 11, the operating mode of the server is high performance; or, taking heat dissipation as an example, the user can set the BIOS setting option corresponding to the fan speed BI. The server can also store the OS setting data, and the user can specify, for example, "heat dissipation" as the designated file name for the BIOS setting data corresponding to the heat dissipation. The processing circuit 13 then stores the corresponding BIOS setting data set by the user in the storage device 12 according to the designated file name "heat dissipation". After the processing circuit 13 reads the BIOS setting data corresponding to "heat dissipation", the server's operating mode is a higher fan speed. In other words, the storage device 12 can simultaneously store multiple BIOS setting data stored by the user at different boot times by executing the save option provided by the BIOS setup menu. The storage device 12 can also simultaneously store a mixed storage of multiple default BIOS setting data and multiple BIOS setting data stored by the user at different boot times by executing the save option. Based on this, different designated file names can be more intuitive text that directly corresponds to different BIOS setting data. Compared to designated file names represented in binary, this can save the description files required to correspond to the BIOS setting data. Based on the different text in the designated file name, the user can quickly identify one of the BIOS setting data corresponding to the desired server operating mode from the multiple BIOS setting data stored in the storage device 12. The processing circuit 13 can then use the selected BIOS setting data corresponding to the desired server operating mode to execute the BIOS program code, thereby causing the server to operate in the corresponding operating mode.

[0014] In one embodiment, in step S01, the processing circuit 13 may determine whether the server has entered the BIOS setup menu and whether the user has selected the aforementioned storage option in the BIOS setup. If the determination is "no," the processing circuit 13 does not execute step S02 and may continue to execute the POST procedure (step S06). On the other hand, if the server has entered the BIOS setup menu, the processing circuit 13 may determine whether the server has exited the BIOS setup menu (step S17), and if the determination is "yes," may continue to execute the POST procedure (step S06). Furthermore, in step S03, the processing circuit 13 may store the BIOS setup data and the specified file name to the corresponding storage device 12 according to a designated storage path specified by the user, and store the BIOS setup data and the specified file name to the location corresponding to the storage path in the storage device 12. For example, the storage device 12 may be a hard disk in the server or a storage medium external to the server, such as a USB flash drive. The processing circuit 13 may first determine in step S02 whether to execute the storage option of storing the BIOS setting data in the storage device 12 (step S021). When the judgment is "yes", the processing circuit 13 obtains a designated storage path specified by the user (step S022), such as a specific folder in the storage device 12 of the aforementioned hard disk. The processing circuit 13 then stores the BIOS setting data and the specified file name in a specific folder in the hard disk according to the designated storage path in step S03.

[0015] In one embodiment, in step S03, the processing circuit 13 may perform compression and encryption on the BIOS setup data before storing the BIOS setup data in the storage device 12. Furthermore, in step S03, the processing circuit 13 may store all adjustable BIOS setup data in the storage device 12. Alternatively, to reduce the processing time required for the processing circuit 13 to store all adjustable BIOS setup data in the storage device 12, the default values ​​of each BIOS setup data may be stored in the BIOS memory 11 by default before the processing circuit 13 executes the POST procedure. When executing step S03, the processing circuit 13 may store only the BIOS setup data with modified values ​​in the BIOS setup data to the storage device 12. In other words, the processing circuit 13 does not need to repeatedly store the BIOS setup data with default values ​​in the BIOS setup data to the storage device 12 in step S03. More specifically, when executing step S03, the processing circuit 13 compares the current BIOS setup data with the default values ​​to obtain BIOS setup data with modified values ​​different from the default values, and stores only the BIOS setup data with the modified values ​​in the storage device 12.

[0016] In one embodiment, the BIOS setup menu further provides a read option for BIOS setup data. The user can select the read option to enable the server to apply the BIOS setup data stored in the storage device 12 according to the specified file name. Figure 1 and Figure 3 During the POST process and before the processing circuit 13 executes the BIOS setup menu (step S01), the processing circuit 13 first determines whether the logic value of a read flag corresponding to one of the read options has a first default value (step S05). For example, the first default value may be 1. Since the POST process has not yet reached the stage of allowing entry to the BIOS setup menu when the processing circuit 13 executes step S05, the user cannot select the read option in the aforementioned BIOS setup menu. Therefore, the processing circuit 13 determines that the read flag does not have the first default value when executing step S05 (the judgment result is "No"). Next, the processing circuit 13 executes the power-on self-test program to the stage where the BIOS setup menu is allowed to be entered, and when the BIOS setup menu is executed, the user is allowed to select a read option or a save option (step S01). The processing circuit 13 determines whether the user selects the read option (step S07). When the user selects the read option (the judgment result is "yes") and specifies a designated read path corresponding to the designated file name, the processing circuit 13 executes the read option to automatically set a read flag corresponding to the read option to have the aforementioned first default value (step S08). In addition, the processing circuit 13 stores the designated read path in the BIOS memory 11 (step S09). S09), and after completing the storage of the designated read path, the processing circuit 13 then automatically controls the server to reset (step S10), wherein the multiple BIOS setting data stored in the storage device 12 correspond to different read paths to indicate different storage locations or different folders in the storage device 12. In step S08, when the user selects the read option, the user can also specify a designated file name corresponding to a designated read path. When the processing circuit 13 executes the read option, it automatically obtains the designated read path corresponding to the designated file name selected by the user and automatically sets the read flag corresponding to the read option.

[0017] In a POST process (hereinafter referred to as a second POST process) after the server restarts, the processing circuit 13 executes step S05. Based on step S08 executed by the processing circuit 13 in the first POST process, the processing circuit 13 determines in step S05 of the second POST process that the read flag has a first default value (the determination result is "yes"). Based on the "yes" determination result, the processing circuit 13 reads the designated read path stored in the BIOS memory 11 in the first POST process (step S11). The processing circuit 13 then reads the corresponding BIOS setup data from the storage device 12 corresponding to the designated read path (step S12). The processing circuit 13 may perform a decompression and decryption process on the BIOS setup data. The processing circuit 13 then loads the BIOS setup data read from the storage device 12 into the BIOS memory 11 (step S13), so that the BIOS setup data read from the storage device 12 is overwritten in the BIOS memory 11, thereby overwriting the BIOS setup data already stored in the BIOS memory 11 in the first POST process. After the processing circuit 13 executes step S13, the processing circuit 13 sets the aforementioned read flag so that the read flag changes from the first default value to the second default value (step S14). For example, the second default value may be 0. After setting the flag to have the second default value, the processing circuit 13 automatically controls the server to restart again (step S10) so that the BIOS setting data loaded into the BIOS memory 11 in step S13 takes effect.

[0018] In the POST process after the server restarts (hereinafter referred to as the third POST process), the processing circuit 13 may, by default, read the BIOS memory 11 before executing step S01 or step S05 to retrieve the BIOS setting data stored in the BIOS memory 11 in step S13 of the second POST process. In the third POST process, the processing circuit 13 configures the server based on the BIOS setting data obtained from reading the BIOS memory 11, making each BIOS setting data effective. For example, taking the aforementioned designated file name of "high performance" or "performance" as an example, when the BIOS setting data corresponding to "high performance" or "performance" is effective, the server's operating mode is high performance; or, taking the aforementioned designated file name of "cooling" as an example, when the BIOS setting data corresponding to the fan speed is effective, the server's operating mode is a higher fan speed.

[0019] Furthermore, in the aforementioned third POST procedure, based on the read flag set by processing circuit 13 in step S14 during the second POST procedure, processing circuit 13 determines during step S05 that the logical value of the read flag is the second default value instead of the first default value (the determination result is "No"), and processing circuit 13 does not execute step S11. At this point, processing circuit 13 can communicate with baseboard management controller 14. Processing circuit 13 determines whether the user has modified the BIOS setup data using the remote connection function of baseboard management controller 14 (step S15). If processing circuit 13 determines that the user has not modified the BIOS setup data using the remote connection function (the determination result is "No"), processing circuit 13 further determines whether the server has entered the BIOS setup menu (step S01). The subsequent steps have been described in detail above and will not be repeated here.

[0020] In one embodiment, in step S15, if the processing circuit 13 determines that the user wants to modify the BIOS setting data via the aforementioned remote connection function (the judgment result is "yes"), the processing circuit 13 can obtain the BIOS setting data to be changed from the baseboard management controller 14 (step S16) and store the BIOS setting data to be changed obtained from the baseboard management controller 14 in the BIOS memory 11 (step S13). In other words, the server also has a remote update function via the baseboard management controller 14 to update the server's BIOS program code from a remote device.

[0021] In one embodiment, if Figure 1 As shown, the server further includes a temporary memory 15 coupled to the processing circuit 13. When the processing circuit 13 executes the BIOS setup menu, if the user modifies the BIOS setting data in the BIOS setup menu and the user has not yet selected the save option, the processing circuit 13 may temporarily store the modified BIOS setting data in the temporary memory 15. When the user selects the save option, causing the processing circuit 13 to execute the save option, the processing circuit 13 will store the modified BIOS setting data from the temporary memory 15 to the BIOS memory 11. Furthermore, in step S12, the processing circuit 13 reads the specified BIOS setting data from the specified storage device 12 according to the designated read path to the temporary memory 15, and then stores the BIOS setting data from the temporary memory 15 to the BIOS memory 11.

[0022] In one embodiment, the BIOS memory 11 includes a non-volatile random access memory (NVRAM) 111, and the aforementioned designated read path and read flag may be stored in the NVRAM 111. In one embodiment, the processing circuit 13 may be a central processing unit (CPU), a platform controller (PCH), or a system on a chip (SOC).

[0023] In summary, according to one embodiment of the server of the present invention, users can quickly load BIOS setup data onto the server via a storage device. Loading BIOS setup data via the storage device, rather than updating the BIOS setup data via the baseboard management controller (BMC), saves significant time waiting for the BMC to start. Furthermore, storing BIOS setup data on the storage device prevents BIOS program code updates from destroying the correspondence between BIOS setup data and designated file names, potentially rendering previously stored BIOS setup data inoperable. Furthermore, the BIOS setup data undergoes compression and encryption, saving storage time on the storage device while ensuring the accuracy and security of the BIOS setup data.

[0024] The above description is merely a specific embodiment of the present invention, but the scope of protection of the present invention is not limited thereto. Any modifications or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in the present invention should be included in the scope of protection of the present invention. Therefore, the scope of protection of the present invention should be based on the scope of protection of the claims.

Claims

1. A server, characterized in that: Include: a BIOS memory for storing a BIOS program code, wherein the BIOS program code provides a BIOS setup menu and a storage option for setting data of a plurality of BIOS setup options in the BIOS setup menu; a storage device; and A processing circuit is coupled to the BIOS memory and the storage device, and is configured to execute the BIOS program code during a power-on self-test (POST) process of the server, causing the server to enter a BIOS setup menu provided by the BIOS program code. When the processing circuit executes the save option, the processing circuit stores the setting data of the BIOS setup options in the BIOS memory and the storage device, and the processing circuit stores a designated file name in the storage device, the designated file name corresponding to the setting data of the BIOS setup options stored in the storage device. The BIOS program code further provides a read option in the BIOS setup menu corresponding to the designated file name. When the processing circuit executes the read option during the POST process, the processing circuit reads the setting data of the BIOS setup options stored in the storage device according to the designated file name, and loads the setting data of the BIOS setup options read from the storage device into the BIOS memory to take effect.

2. The server according to claim 1, wherein The storage device is a hard disk or an external storage medium that complies with USB specifications.

3. The server according to claim 1, wherein The processing circuit stores the setting data of all the adjustable BIOS setting options in the BIOS memory and the storage device.

4. The server according to claim 1, wherein The setting data of the BIOS setting options have a default value and a modified value different from the default value. The processing circuit compares the modified value with the default value to store the modified value of the setting data of the BIOS setting options in the storage device.

5. The server according to claim 1, wherein: When the processing circuit executes the read option of the BIOS setup menu in a first POST procedure among the POST procedures, the processing circuit further stores a designated read path corresponding to the designated file name in the BIOS memory in the first POST procedure. After the designated read path is stored in the BIOS memory, the processing circuit controls the server to reset. After the server is reset, the processing circuit reads the setting data of the BIOS setup options from the storage device according to the designated read path in a second POST procedure after the server is reset, and loads the setting data of the BIOS setup options read from the storage device into the BIOS memory.

6. The server according to claim 5, wherein: After the setting data of the BIOS setup options are loaded into the BIOS memory in the second power-on self-test process, the processing circuit controls the server to reset. In a third power-on self-test process after the server reset, the processing circuit reads the setting data of the BIOS setup options in the BIOS memory before executing the BIOS setup menu to initialize the server.

7. The server according to claim 5, wherein: Each time the POST procedure is executed, the processing circuit further determines whether a read flag corresponding to the read option has a first default value when executing the BIOS setup options. In the first POST procedure, the processing circuit further sets the read flag to have the first default value when storing the designated read path, so that in the second POST procedure, the processing circuit determines that the read flag has the first default value and reads the setting data of the BIOS setup options from the storage device according to the designated read path.

8. The server according to claim 7, wherein: After the setting data of the BIOS setting options are loaded into the BIOS memory in the second POST program, the processing circuit sets the read flag to have a second default value.

9. The server according to claim 1, wherein: The designated file name is text corresponding to the operation mode of the server.