Host bootup processing method and apparatus for multi-host system, and electronic device and medium
By determining the access object in a multi-host system, obtaining and sharing CXL memory training data, the problem of clearing the training data area after BIOS refresh is solved, and faster boot speed is achieved.
Patent Information
- Application Number
- PCT/CN2025/082705
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-04-17
- Filing Date
- 2025-03-14
- Publication Date
- 2025-10-23
AI Technical Summary
In a multi-host system, the CXL memory training data area is cleared after the BIOS is refreshed, causing the host boot speed to slow down. The existing technology requires reinitializing the CXL memory, which wastes time.
By determining the access object in a multi-host system, the CXL memory configuration information is obtained from the access object. If it has not changed, it is stored in the BIOS Flash. If it is the same, the training data is shared. The network interconnection characteristics are used to realize the recovery and sharing of training data, thereby improving utilization.
Without changing the CXL memory configuration, training data can be restored and shared to reduce repeated training and improve boot speed.
Smart Images

Figure CN2025082705_23102025_PF_FP_ABST
Abstract
Description
Host startup processing method and device of multi-host system, electronic equipment and medium
[0001] Cross-reference of related applications
[0002] The present application claims priority to the Chinese patent application No. 2024104596101 filed on April 17, 2024, and entitled "Host startup processing method and device of multi-host system, electronic equipment and medium", the whole content of which is incorporated herein by reference. TECHNICAL FIELD
[0003] The present application relates to the technical field of server management, and in particular to a host startup processing method and device of a multi-host system, an electronic equipment and a medium. BACKGROUND
[0004] With the advent and rapid development of the brand-new CXL (Compute Express Link) interconnection technology, the memory pooling and memory sharing technologies based on CXL memory are gradually applied. A host can access the CXL memory in the CXL memory pool through a CXL switch, and at startup, the CXL memory needs to be discovered and initialized, and the training data of the CXL memory needs to be saved to the BIOS (Basic Input / Output System) Flash (flash memory). If the BIOS is refreshed, the memory training data area in the BIOS Flash is emptied, and the host must reinitialize the CXL memory training and store the training data, which slows down the startup speed of the host. SUMMARY
[0005] In view of the problems in the prior art, the present application provides a host startup processing method and device of a multi-host system, an electronic equipment and a medium.
[0006] The present application provides a host startup processing method of a multi-host system, the multi-host system comprising a plurality of hosts, each host being configured with a BIOS Flash for storing CXL memory training data, a BMC (Baseboard Management Controller) and a BMC SRAM (Static Random Access Memory). The method is applied to the BIOS of a first host, which is a host selected as an operation object in the multi-host system, and comprises the following steps.
[0007] Determining an access object, and obtaining CXL memory configuration information from the access object, the CXL memory configuration information being information stored before a refresh operation of the first host;
[0008] determining that the CXL memory configuration information has not changed, obtaining the CXL memory training data from the access object, storing the CXL memory training data into the BIOS Flash of the first host, and booting based on the CXL memory training data;
[0009] If the access object is a device possessed by each host in the multi-host system, the CXL memory training data is transmitted to the access object of the second host, so that the second host boots based on the CXL memory training data, and the second host is a remaining host in the multi-host system other than the first host.
[0010] If the access object is not a device possessed by each host in the multi-host system, a notification is sent to the second host, so that the second host obtains the CXL memory configuration information from the access object and boots based on the CXL memory training data.
[0011] In one embodiment, the method further comprises:
[0012] determining the access object based on a preset access order table and a selection strategy, the access order table being: first the BMC and then the CXL memory expansion card, or first the CXL memory expansion card and then the BMC, and the selection strategy comprising: based on the access order table, if the access object selected first fails, selecting the access object selected later;
[0013] If the access object is the BMC, the BMC SRAM is accessed to obtain the CXL memory configuration information.
[0014] If the access object is the CXL memory expansion card, the Flash on the CXL memory expansion card is accessed to obtain the CXL memory configuration information.
[0015] In one embodiment, the method further comprises:
[0016] If the access object is a device possessed by each host in the multi-host system, when it is determined that the CXL memory configuration information does not exist in the preset memory configuration information database and that the CXL memory configuration information has changed, CXL memory training is performed, the CXL memory training data is stored into the BIOS Flash of the first host and the access object, and the CXL memory training data is transmitted to the access object of the second host; and new CXL memory configuration information is added to the memory configuration information database.
[0017] If it is determined that the CXL memory configuration information exists in the preset memory configuration information database, the CXL memory training data corresponding to the CXL memory configuration information is synchronized from the access object to the BIOS Flash.
[0018] In one embodiment, the method further comprises:
[0019] If the access object is not a device possessed by each host in the multi-host system, when it is determined that the CXL memory configuration information does not exist in the preset memory configuration information database, it is determined that the CXL memory configuration information has changed, CXL memory training is performed, and CXL memory training data is stored in the BIOS Flash of the first host and the access object; and new CXL memory configuration information is added in the memory configuration information database.
[0020] In one embodiment, determining whether the CXL memory configuration information has changed comprises:
[0021] reading the current CXL memory configuration information, and if the current CXL memory configuration information is different from the CXL memory configuration information obtained from the access object, it is determined that the CXL memory configuration information has changed; and if the current CXL memory configuration information is the same as the CXL memory configuration information obtained from the access object, it is determined that the CXL memory configuration information has not changed.
[0022] In one embodiment, the access object is a BMC possessed by each host in the multi-host system, and when it is determined that the CXL memory configuration information does not exist in the preset memory configuration information database, CXL memory training is performed, and CXL memory training data is stored in the BIOS Flash of the first host and the BMC SRAM, and the first host is started based on the CXL memory training data;
[0023] and the CXL memory training data is transmitted to the BMC of the second host, and the BMC of the second host stores the CXL memory training data in the BMC SRAM;
[0024] so that the BIOS of the second host reads the CXL memory training data from the BMC SRAM of the second host to the BIOS Flash when starting, and starts based on the CXL memory training data;
[0025] The access object is a CXL memory expansion card, and when it is determined that the CXL memory configuration information does not exist in the preset memory configuration information database, CXL memory training is performed, and CXL memory training data is stored in the BIOS Flash of the first host, and the first host is started based on the CXL memory training data;
[0026] and the CXL memory training data is stored in the Flash of the CXL memory expansion card;
[0027] so that the BIOS of the second host reads the CXL memory training data from the Flash of the CXL memory expansion card to the BIOS Flash when starting, and starts based on the CXL memory training data.
[0028] In one embodiment, the first host and the second host clear the CXL memory training data in the respective BIOS Flash before determining to access the object.
[0029] In one embodiment, transmitting the CXL memory training data into the BMC of the second host comprises:
[0030] controlling the BMC of the first host to transmit the CXL memory training data to the BMC of the second host through the network.
[0031] In one embodiment, before accessing the BMC SRAM to obtain the CXL memory configuration information, the BMC SRAM is initialized to obtain access authority to the SRAM region.
[0032] In one embodiment, performing the CXL memory training comprises:
[0033] controlling the CXL memory expansion controller on the CXL memory expansion card to perform the CXL memory training.
[0034] In one embodiment, the memory configuration information database comprises sub-databases, the library name of each sub-database is a time section, the time length of the time section corresponding to the library name of each sub-database is the same, and adding new CXL memory configuration information in the memory configuration information database comprises:
[0035] determining the sub-database based on the CXL memory training time and the library name of the sub-database;
[0036] storing the new CXL memory configuration information corresponding to the CXL memory training time in the determined sub-database.
[0037] In one embodiment, determining the sub-database based on the CXL memory training time and the library name of the sub-database comprises:
[0038] determining the sub-database of the time section containing the CXL memory training time as a candidate sub-database, and if the time difference between the CXL memory training time and the earliest time of the library name of the candidate sub-database is lower than or equal to the preset proportion of the time length of the library name of the candidate sub-database, the candidate sub-database is the determined sub-database.
[0039] In one embodiment, determining the sub-database based on the CXL memory training time and the library name of the sub-database further comprises:
[0040] if the time difference between the CXL memory training time and the earliest time of the library name of the candidate sub-database is higher than the preset proportion of the time length of the library name of the candidate sub-database, determining the sub-database corresponding to the next library name of the library name of the candidate sub-database as the determined sub-database.
[0041] In an embodiment, the method further comprises:
[0042] Timing, based on the latest time of the library name of the sub-database, obtains a timing duration, if the timing duration reaches a first threshold value, and the CXL memory configuration information of the sub-database does not participate in the matching process of the memory configuration information, the sub-database is deleted, and the CXL memory training data corresponding to each CXL memory configuration information in the sub-database is deleted in the BMC SRAM.
[0043] In an embodiment, based on the CXL memory training time and the library name of the sub-database, the sub-database is determined, and further comprises:
[0044] If it is determined that all time segments do not contain the CXL memory training time, a new sub-database is constructed in the memory configuration information database;
[0045] Based on all existing time segments, the duration of a single time segment, and a preset ratio, a new time segment is configured as the library name of the new sub-database;
[0046] The new sub-database is determined as the sub-database.
[0047] In an embodiment, the method further comprises:
[0048] Based on all existing time segments and the duration of a single time segment, a standby sub-database is constructed;
[0049] The current time is recorded, and it is determined that the current time exceeds the latest time of the standby sub-database, and the standby sub-database does not store CXL memory configuration information, then the standby sub-database is deleted.
[0050] In an embodiment, the method further comprises:
[0051] When the number of sub-databases constructed in the memory configuration information database reaches a first preset number, the first threshold value is lowered; when the number of sub-databases constructed in the memory configuration information database reaches a second preset number, the first threshold value is restored.
[0052] The application also provides a host startup processing device of a multi-host system, the multi-host system comprising a plurality of hosts, each host being configured with a BIOS Flash and a BMC, a BMC SRAM for storing CXL memory training data, the device being applied to the BIOS of a first host, the first host being a host selected as an operation object in the multi-host system, and comprising:
[0053] The obtaining module is configured to determine an access object, and obtain CXL memory configuration information from the access object, the CXL memory configuration information being information stored before the first host performs a refresh operation;
[0054] The processing module is configured to obtain the CXL memory training data from the access object when it is determined that the CXL memory configuration information has not changed, store the CXL memory training data into the BIOS Flash of the first host, and boot the first host based on the CXL memory training data.
[0055] The transmission module is configured to transmit the CXL memory training data to the access object of the second host when the access object is a device possessed by each host in the multi-host system, so that the second host boots based on the CXL memory training data, the second host being a remaining host in the multi-host system other than the first host.
[0056] The control module is configured to send a notification to the second host when the access object is not a device possessed by each host in the multi-host system, so that the second host obtains the CXL memory configuration information from the access object and boots based on the CXL memory training data.
[0057] The application further provides an electronic device including a memory, a processor, and a computer program stored in the memory and executable on the processor, and the processor implements the host boot processing method of the multi-host system when executing the program.
[0058] The application further provides a non-transitory computer-readable storage medium having a computer program stored thereon, and the computer program is executable by a processor to implement the host boot processing method of the multi-host system.
[0059] The application provides a host boot processing method, device, electronic device, and medium of a multi-host system, which realizes the recovery of CXL memory training data when the CXL memory configuration does not change, and realizes the sharing of CXL memory training data by utilizing the characteristics of network interconnection between multi-hosts or the characteristics that the BIOS of multi-hosts can access the access object, improves the utilization rate of CXL memory training data, and speeds up the booting of the multi-host system. BRIEF DESCRIPTION OF DRAWINGS
[0060] In order to more clearly illustrate the technical solutions of the present application or the prior art, the following will briefly introduce the drawings needed in the embodiments or prior art description. Obviously, the drawings in the following description are some embodiments of the present application, and those skilled in the art can also obtain other drawings according to these drawings without creative labor.
[0061] FIG. 1 is a flowchart of a host boot processing method of a multi-host system according to the present application;
[0062] FIG. 2 is a hardware architecture diagram of a host boot processing method of a multi-host system according to the present application;
[0063] FIG. 3 is an example flowchart of a host startup processing method of a multi-host system according to the present application;
[0064] FIG. 4 is an example flowchart of a host startup processing method of a multi-host system according to the present application;
[0065] FIG. 5 is a structural schematic diagram of a host startup processing device of a multi-host system according to the present application;
[0066] FIG. 6 is a structural schematic diagram of an electronic device according to the present application. DETAILED DESCRIPTION
[0067] For the purpose, technical solutions and advantages of the present application to be clearer, the technical solutions of the present application will be described clearly and completely below in conjunction with the drawings in the present application. Obviously, the described embodiments are part of the embodiments of the present application, rather than all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative labor fall within the scope of protection of the present application.
[0068] A host startup processing method, device, electronic device and medium of a multi-host system according to the present application will be described below in conjunction with FIGS. 1-6.
[0069] FIG. 1 shows a flowchart of a host startup processing method of a multi-host system according to the present application, the multi-host system including multiple hosts, each host being configured with a BIOS Flash for storing CXL memory training data, and a BMC and a BMC SRAM, the host startup processing method being applied to the BIOS of a first host, the first host being a host selected as an operation object in the multi-host system, as shown in FIG. 1, the method including:
[0070] 11. determining an access object, and obtaining CXL memory configuration information from the access object, the CXL memory configuration information being information stored before the first host performs a refresh operation;
[0071] 12. when it is determined that the CXL memory configuration information has not changed, obtaining CXL memory training data from the access object, storing the CXL memory training data into the BIOS Flash of the first host, and starting up based on the CXL memory training data;
[0072] 13. if the access object is a device possessed by each host in the multi-host system, transmitting the CXL memory training data to an access object of a second host, so that the second host starts up based on the CXL memory training data, the second host being a remaining host in the multi-host system other than the first host;
[0073] 14、If the access object does not belong to the device possessed by each host in the multi-host system, a notification is sent to the second host, so that the second host obtains the CXL memory configuration information from the access object and starts based on the CXL memory training data.
[0074] To this end, it should be noted that with the advent and rapid development of the brand-new CXL (Compute Express Link) interconnection technology, the memory pooling and memory sharing technology based on CXL memory are gradually applied. Multiple hosts can access CXL memories in a CXL memory pool through a CXL Switch, and each host needs to discover and initialize the CXL memories when starting, and save the training data of the CXL memories to the BIOS (Basic Input Output System) Flash (Flash memory). If the BIOS is refreshed, the memory training data area in the BIOS Flash is emptied, and each host must re-initialize the CXL memories and store the training data. For a host system whose CXL memory configuration has not changed, re-training is not necessary, and the previous training data can be used completely.
[0075] In this application, after starting, the host will temporarily cache the CXL memory training data used during startup, such as storing it in the Flash. Before restarting the use, it needs to be accessed and read from the storage place to obtain the CXL memory training data. There are many objects that can store CXL memory training data, so it is necessary to determine an access object to read the CXL memory training data in the access object. For example, the access object is BMC or a CXL memory expansion card.
[0076] In this application, the CXL memory training data corresponds to a CXL memory configuration information, and the two are a kind of correspondence. The correspondence is established and stored during the CXL memory training process. The BIOS of the first host performs a flashing operation, mainly to empty the CXL memory training data in the BIOS Flash. Therefore, the first host needs to recover the CXL memory training data from the access object when starting again, and then start based on the CXL memory training data.
[0077] To recover the CXL memory training data, it is first necessary to determine whether the CXL memory training data to be recovered is the data currently needed. Therefore, the CXL memory configuration information needs to be obtained first, which is the information stored before the first host performs the flashing operation.
[0078] In this application, since it needs to be applicable to the starting scenarios of each host in the multi-host system, therefore, a host that mainly performs operation actions is selected in the multi-host system, which is regarded as the host of the operation object, which can be called the first host. The remaining hosts (called the second host) can directly obtain the required data on the connection of each host.
[0079] In the present application, when the BIOS of the first host determines that the CXL memory configuration information has not changed, it indicates that the host can use the previously stored CXL memory training data for booting. Therefore, the CXL memory training data is obtained from the access object, and then stored in the BIOS Flash of the first host. Then, the BIOS of the first host obtains the CXL memory training data from the BIOS Flash to perform the booting process.
[0080] In the present application, after the first host completes the booting, it also ensures that the other hosts also complete the booting. However, in the present application, the different access objects result in different ways of booting the first host. Accordingly, it also determines different ways of booting the other hosts by the first host.
[0081] If the access object is a device possessed by each host in the multi-host system, that is, each host is configured with the same type of device, for example, each host is configured with a BMC. Since the host itself is configured with a device capable of storing data, when the host boots, the required data can be read on the device itself. After the first host restores the CXL memory training data, the first host shares and transmits the CXL memory training data to the other hosts. The CXL memory training data is transmitted to the other hosts, and the data is stored on the access object of the other hosts. At this time, the other hosts obtain the CXL memory training data from the access object, and perform the booting process based on the CXL memory training data. The CXL memory training data is stored in the BIOS Flash of the host from the access object, and the BIOS of the other host obtains the CXL memory training data from the BIOS Flash to perform the booting process.
[0082] If the access object does not belong to the device possessed by each host in the multi-host system, that is, each host needs to obtain the CXL memory training data from an external device, that is, each host can smoothly establish a connection with the access object to obtain the CXL memory training data. At this time, the BIOS of the first host sends a notification to the other hosts, informing the other hosts that they can establish a connection with the access object, so that the other hosts obtain the CXL memory training data. The other hosts obtain the CXL memory configuration information from the access object, and complete the booting based on the CXL memory training data. The CXL memory training data is stored in the BIOS Flash of the host from the access object, and the BIOS of the other host obtains the CXL memory training data from the BIOS Flash to perform the booting process.
[0083] The method for host startup processing of a multi-host system provided in the application can cache CXL memory training data through different access objects, and can realize recovery of the CXL memory training data when the CXL memory configuration does not change. Moreover, the method can utilize the characteristics of network interconnection between multiple hosts or the characteristics that the BIOS of multiple hosts can access the access objects, realize sharing of the CXL memory training data, improve the utilization rate of the CXL memory training data, and accelerate the startup speed of the multi-host system.
[0084] In the further method of the above method, the process of determining the access object and obtaining the CXL memory configuration information from the access object is mainly explained as follows.
[0085] The access object is determined based on a preset access order table and a selection strategy. The access order table is: first BMC and then CXL memory expansion card, or first CXL memory expansion card and then BMC. The selection strategy includes: based on the access order table, if the first selected access object fails, the latter access object is selected.
[0086] If the access object is BMC, the BMC SRAM is accessed to obtain the CXL memory configuration information.
[0087] If the access object is the CXL memory expansion card, the Flash on the CXL memory expansion card is accessed to obtain the CXL memory configuration information.
[0088] For this, it needs to be explained that in the application, because the devices that can cache the CXL memory configuration information are selective, an access order table can be configured, for example, first BMC and then CXL memory expansion card, or first CXL memory expansion card and then BMC. That is, first access BMC, and then access the CXL memory expansion card when the BMC fails. That is, the corresponding selection strategy includes: based on the access order table, if the first selected access object fails, the latter access object is selected.
[0089] In the application, if the access object is BMC (baseboard management controller) or CXL memory expansion card, correspondingly, the BIOS of the first host accesses the BMC SRAM (static random access memory) to obtain the CXL memory configuration information, or the BIOS of the first host accesses the Flash on the CXL memory expansion card to obtain the CXL memory configuration information.
[0090] It should be noted that in the present application, the host itself configures the device BMC SRAM that can store data, and when the host is powered on, the required data can be read on the self device, that is, the BMC SRAM can be accessed to obtain the CXL memory configuration information. It should be further noted that before the BIOS of the host accesses the BMC SRAM to obtain the CXL memory configuration information, the BIOS of the host initializes the BMC SRAM to obtain the access permission of the SRAM region.
[0091] In the present application, each host can access the Flash on the CXL memory expansion card to obtain the CXL memory configuration information.
[0092] The further method of the present application can utilize the characteristics of network interconnection between multiple hosts, or the characteristics that the BIOS of multiple hosts can access the CXL memory expansion card, so that the CXL memory configuration information can be conveniently obtained.
[0093] In the further method of the above method, if the access object is a device possessed by each host in the multiple-host system, when it is determined that the CXL memory configuration information does not exist in the preset memory configuration information database and the CXL memory configuration information is changed, the CXL memory training is performed, the CXL memory training data is stored into the BIOS Flash of the first host and the access object, and the CXL memory training data is transmitted to the access object of the second host; and the new CXL memory configuration information is added in the memory configuration information database.
[0094] If it is determined that the CXL memory configuration information exists in the preset memory configuration information database, the CXL memory training data corresponding to the CXL memory configuration information is synchronized from the access object to the BIOS Flash.
[0095] The above processing process is described below by taking the BMC possessed by each host in the multiple-host system as the access object, and taking the CXL memory expansion card as the access object as an example.
[0096] If the access object is a device possessed by each host in the multi-host system, such as the BMC possessed by each host in the multi-host system, a memory configuration information database storing CXL memory configuration information is configured in the BMC, and a plurality of CXL memory configuration information is stored in the memory configuration information database. The BIOS of the first host reads the current CXL memory configuration information, which includes the CXL memory model, capacity and insertion method. The current CXL memory configuration information is matched with the CXL memory configuration information in the memory configuration information database. If the matching is not successful, it means that the CXL memory configuration information does not exist in the memory configuration information database, and it is determined that the CXL memory configuration information has changed. At this time, the BIOS of the first host performs CXL memory training, and stores the CXL memory training data into the BIOS Flash and BMC SRAM of the first host. The BIOS of the first host boots based on the CXL memory training data. In addition, the BIOS of the first host transmits the CXL memory training data to the BMC of the other host, and the BMC of the other host stores the CXL memory training data in the BMC SRAM.
[0097] Correspondingly, the BIOS of the other host reads the CXL memory training data from the BMC SRAM of the other host into the BIOS Flash when booting, and boots based on the CXL memory training data.
[0098] In addition, new CXL memory configuration information is added to the memory configuration information database.
[0099] If the matching is successful, it means that the CXL memory configuration information exists in the memory configuration information database, and it is determined that the CXL memory configuration information has not changed. The CXL memory training data corresponding to the CXL memory configuration information is synchronized from the BMC SRAM to the BIOS Flash.
[0100] If the access object is not a device possessed by each host in the multi-host system, such as a CXL memory expansion card, the CXL memory expansion card is configured with a memory configuration information database storing CXL memory configuration information, and the memory configuration information database stores a plurality of CXL memory configuration information. The BIOS of the first host reads the current CXL memory configuration information, which includes the CXL memory model, capacity, and insertion method. The current CXL memory configuration information is matched with the CXL memory configuration information in the memory configuration information database. If the matching is not successful, it means that the CXL memory configuration information does not exist in the memory configuration information database, and it is determined that the CXL memory configuration information has changed. At this time, the BIOS of the first host performs CXL memory training, and stores the CXL memory training data into the BIOS Flash of the first host. The BIOS of the first host boots based on the CXL memory training data. In addition, the BIOS of the first host stores the CXL memory training data into the Flash of the CXL memory expansion card.
[0101] Correspondingly, when the BIOS of the other host boots, it reads the CXL memory training data from the Flash of the CXL memory expansion card into the BIOS Flash, and boots based on the CXL memory training data.
[0102] In addition, new CXL memory configuration information is added to the memory configuration information database.
[0103] If the matching is successful, it means that the CXL memory configuration information exists in the memory configuration information database, and it is determined that the CXL memory configuration information has not changed. All hosts synchronize the CXL memory training data corresponding to the CXL memory configuration information from the Flash of the CXL memory expansion card to the BIOS Flash.
[0104] Furthermore, the CXL memory expansion card has a CXL memory expansion controller and a Flash of the CXL memory expansion card. Each host can access the memory expansion card and the Flash of the CXL memory expansion card through the CXL Switch. At this time, the BIOS of the first host controls the CXL memory expansion controller on the CXL memory expansion card to perform CXL memory training.
[0105] In addition, it should be noted that the access object only stores the last used CXL memory configuration information. At this time, the current CXL memory configuration information is read. If the current CXL memory configuration information is different from the CXL memory configuration information obtained from the access object, it is determined that the CXL memory configuration information has changed. If the current CXL memory configuration information is the same as the CXL memory configuration information obtained from the access object, it is determined that the CXL memory configuration information has not changed.
[0106] In a further method of the above method, before the BIOS of the first host determines the access object, the first host and the other hosts clear the CXL memory training data in the respective BIOS Flash, so as to complete the refreshing operation and store the obtained CXL memory training data in the BIOS Flash.
[0107] In a further method of the above method, the BIOS of the first host controls the BMC of the first host to transmit the CXL memory training data to the BMC of the other host through the network. By utilizing the feature that the multiple hosts are interconnected through the network, the CXL memory configuration information can be conveniently obtained.
[0108] The above two processing scenarios are explained below by optional examples:
[0109] FIG. 2 is a hardware architecture diagram of a host startup processing method of a multi-host system, which includes the following three parts:
[0110] Part 1) Host part, including multiple hosts numbered from 1 to N. Each host has a BIOS Flash for storing CXL training data and a BMC and a BMC SRAM.
[0111] Part 2) CXL Switch part, which can set the connection relationship between the upstream host and the downstream CXL memory and control the access of a certain host to a certain CXL memory.
[0112] Part 3) CXL memory pool part, including a CXL memory expansion card and CXL memories, the CXL memory expansion card having a CXL memory expansion controller and a Flash, and each host being able to access the memory expansion card and the underlying CXL memories through the CXL Switch.
[0113] FIG. 3 is a software flowchart of a host startup processing method of a multi-host system based on the above hardware architecture and CXL memory training data storage mode, which includes the following seven steps:
[0114] Step 1) The user refreshes the BIOS of the first host (herein as the first host) through an in-band or out-of-band manner, which clears the CXL memory training data region in the BIOS Flash.
[0115] Step 2) The first host is started up after refreshing, and the BIOS completes the initialization of the BMC SRAM in the early stage, so that the SRAM region can be accessed to obtain the CXL memory configuration of the machine before refreshing.
[0116] Step 3) BIOS first reads the current CXL memory configuration, including CXL memory model, capacity and insertion method, before CXL memory initialization, and judges whether the CXL memory configuration has changed. If the CXL memory configuration has changed, go to step 4, if the CXL memory configuration has not changed, go to step 5.
[0117] Step 4) The first host BIOS will perform CXL memory training, store CXL memory training data in BIOS Flash and BMC SRAM, and save the current CXL memory pool configuration to BMC SRAM.
[0118] Step 5) The first host BIOS does not retrain CXL memory, directly restores CXL memory training data from BMC SRAM to BIOS Flash, and uses this data to continue booting.
[0119] Step 6) The first host BMC transmits CXL memory training data to the BMC of other hosts through the network, and the BMC of other hosts stores this data in the SRAM area.
[0120] Step 7) The BIOS of other hosts reads CXL memory training data from BMC SRAM to BIOS Flash when booting, and uses this data to continue booting.
[0121] Figure 4 is a software flowchart of a host booting processing method of a multi-host system based on the above hardware architecture and CXL memory training data saving method, including the following seven steps:
[0122] Step 1) The user refreshes the BIOS of the first host through in-band or out-of-band, at this time the CXL memory training data area in the BIOS Flash is emptied.
[0123] Step 2) The first host is refreshed and booted, and the BIOS accesses the Flash on the CXL memory expansion card in the early stage to get the CXL memory configuration of the host before refreshing.
[0124] Step 3) BIOS first reads the current CXL memory configuration, including CXL memory model, capacity and insertion method, before CXL memory initialization, and judges whether the CXL memory configuration has changed. If the CXL memory configuration has changed, go to step 4, if the CXL memory configuration has not changed, go to step 5.
[0125] Step 4) The first host BIOS will perform CXL memory training, store CXL memory training data in the Flash on the memory expansion card, and save the current CXL memory pool configuration to the Flash.
[0126] Step 5) The first host BIOS does not retrain the CXL memory, directly recovers the CXL memory training data from the Flash on the CXL memory expansion card into the BIOS Flash, and uses this data to continue booting.
[0127] Step 6) The BIOS of other hosts will access the Flash on the CXL memory expansion card when booting, get the CXL memory training data stored by the first host, and store the data into the BIOS Flash of the host, and use this data to continue booting.
[0128] In a further method of the above method, the memory configuration information database comprises sub-databases, and the library names of the sub-databases are time sections, and the time lengths of the time sections corresponding to the library names of the respective databases are the same.
[0129] In addition, from the perspective of time, there is a long time without CXL memory configuration information to be stored, and therefore, the interval time length between the time sections corresponding to the library names of two adjacent databases in time is 0 times or n times of the time length of a single time section. n is a positive integer.
[0130] For example, [1, 5), [5, 10), [20, 25), [25, 30), [40, 45), etc. Here, the time information is simplified by numbers to facilitate the description of the scheme.
[0131] Based on the above description, the processing process of adding new CXL memory configuration information in the memory configuration information database is mainly explained as follows:
[0132] Determine the CXL memory training time, and determine the sub-database based on the CXL memory training time and the library name of the sub-database;
[0133] Store the new CXL memory configuration information corresponding to the CXL memory training time in the determined sub-database.
[0134] For this, it needs to be noted that in this application, the CXL memory training time is recorded, and the CXL memory training time is compared with the time section as the library name. If a certain number of sub-databases are pre-constructed, at this time, the current CXL memory training time will be matched with multiple time sections to determine the sub-database that matches successfully. If the sub-databases are constructed according to the development of time as needed, the current CXL memory training time will be matched with the latest time section to determine the sub-database that matches successfully.
[0135] Store the new CXL memory configuration information corresponding to the CXL memory training time in the determined sub-database.
[0136] Further, the processing procedure for determining the sub-database based on the CXL memory training time and the library name of the sub-database is explained as follows:
[0137] The sub-database whose time segment containing the CXL memory training time is the candidate sub-database, if the time difference between the CXL memory training time and the earliest time of the library name of the candidate sub-database is lower than or equal to the preset proportion of the time length of the library name of the candidate sub-database, the candidate sub-database is the determined sub-database.
[0138] If the time difference between the CXL memory training time and the earliest time of the library name of the candidate sub-database is higher than the preset proportion of the time length of the library name of the candidate sub-database, the sub-database corresponding to the next library name of the library name of the candidate sub-database is determined as the determined sub-database.
[0139] For this, it needs to be explained that in this application, if the sub-database is periodically cleaned, in order to ensure that as much as possible CXL memory configuration information in the sub-database exists, it is equivalent to ensuring that as much as possible CXL memory configuration information with the CXL memory training time and the latest time of a certain time segment is closer. Therefore, the sub-database whose time segment containing the CXL memory training time is temporarily the candidate sub-database, if the time difference between the CXL memory training time and the earliest time of the library name of the candidate sub-database is lower than or equal to the preset proportion of the time length of the library name of the candidate sub-database, the candidate sub-database is the determined sub-database. If the time difference between the CXL memory training time and the earliest time of the library name of the candidate sub-database is higher than the preset proportion of the time length of the library name of the candidate sub-database, it is equivalent to constructing a new sub-database, and then taking the new sub-database as the determined sub-database.
[0140] For example, the library name of the candidate sub-database a is [20, 25), and the preset proportion is 80%, if the current CXL memory training time is 22, the CXL memory configuration information corresponding to the current CXL memory training time is stored in the candidate sub-database a. If the current CXL memory training time is 24.6, the CXL memory configuration information corresponding to the current CXL memory training time is stored in the newly constructed sub-database b.
[0141] In the further method of the above method, in order to ensure the use rate of resources, the sub-database is periodically cleaned. At this time, the latest time based on the library name of the sub-database is timed to obtain the timing length, if the timing length reaches the first threshold value, and the CXL memory configuration information of the sub-database does not participate in the matching process of the memory configuration information, the sub-database is deleted, and the CXL memory training data corresponding to each CXL memory configuration information in the sub-database is deleted in the BMC SRAM.
[0142] In a further method of the above method, if it is determined that all the time segments do not contain the CXL memory training time, a new sub-database is built in the memory configuration information database. That is, it is possible that a new memory training is performed after a long time, and at this time, the time segments corresponding to the library names of the existing sub-databases do not contain the CXL memory training time.
[0143] From the perspective of time, there is a long time without CXL memory configuration information to be stored. Therefore, the time length of the interval between the time segments corresponding to the library names of two adjacent databases in time is 0 times or n times the time length of a single time segment. n is a positive integer. Therefore, based on all the existing time segments, the time length of a single time segment, and a preset ratio, a new time segment is configured as the library name of a new sub-database. The preset ratio is the preset ratio used based on the above-mentioned judgment process of storing configuration information.
[0144] Finally, the new sub-database is determined as a sub-database.
[0145] For example, [1, 5), [5, 10), [20, 25), [25, 30), [40, 45), etc. If the CXL memory training time is 82, the library name of the new sub-database built at this time is [80, 85). If the CXL memory training time is 84.9, the library name of the new sub-database built at this time is [85, 90).
[0146] In a further method of the above method, the sub-database to be used can be sequentially built based on all the existing time segments and the time length of a single time segment. That is, the time length of the interval between the time segments corresponding to the library names of two adjacent databases in time is 0 times the time length of a single time segment.
[0147] Then, the current time is recorded, it is determined that the current time exceeds the latest time of the sub-database to be used, and the sub-database to be used does not store CXL memory configuration information, and the sub-database to be used is deleted. That is, the sub-database that has not been used for a long time is deleted to release resources.
[0148] In a further method of the above method, the new sub-database cannot be built without restraint. Therefore, when the number of sub-databases built in the memory configuration information database reaches a first preset number, the first threshold is lowered, and the cleaning of the sub-databases is accelerated to release resources. When the number of sub-databases built in the memory configuration information database reaches a second preset number, the first threshold is restored, and in the case of sufficient resources, the sub-databases are built in a normal manner to ensure the storage of the configuration information of the memory training at each time point.
[0149] The host startup processing device of the multi-host system provided in the present application is described below, and the host startup processing device of the multi-host system described below can be correspondingly referred to the host startup processing method of the multi-host system described above.
[0150] FIG. 5 shows a structural schematic diagram of a host startup processing device of a multi-host system provided in the present application, the multi-host system comprising a plurality of hosts, each host being configured with a BIOS Flash for storing CXL memory training data and a BMC and a BMC SRAM, the device being applied to a BIOS of a first host, the first host being a host selected as an operation object in the multi-host system. Referring to FIG. 5, the device comprises an acquisition module 51, a processing module 52, a transmission module 53 and a control module 54, wherein:
[0151] The acquisition module is configured to determine an access object and acquire CXL memory configuration information from the access object, the CXL memory configuration information being information stored before the first host performs a refresh operation;
[0152] The processing module is configured to, when the CXL memory configuration information is determined not to have changed, acquire CXL memory training data from the access object, store the CXL memory training data into the BIOS Flash of the first host, and start up based on the CXL memory training data;
[0153] The transmission module is configured to, when the access object is a device possessed by each host in the multi-host system, transmit the CXL memory training data to the access object of a second host, so as to enable the second host to start up based on the CXL memory training data, the second host being a remaining host in the multi-host system other than the first host;
[0154] The control module is configured to, when the access object does not belong to the device possessed by each host in the multi-host system, send a notification to the second host, so as to enable the second host to acquire the CXL memory configuration information from the access object and start up based on the CXL memory training data.
[0155] Since the device of the present application embodiment has the same principle as the above-mentioned embodiment method, more detailed explanation content will not be repeated here.
[0156] It should be noted that the related functional modules in the present application embodiment can be realized by a hardware processor.
[0157] The host startup processing device of the multi-host system provided in the application realizes recovery of the CXL memory training data in the case that the CXL memory configuration does not change, and can realize sharing of the CXL memory training data by using the characteristics of network interconnection between the multi-hosts or the characteristics that the BIOS of the multi-hosts can access the access object, improve the utilization rate of the CXL memory training data, and speed up the startup speed of the multi-host system.
[0158] Fig. 6 shows a schematic diagram of the physical structure of an electronic device, as shown in Fig. 6, the electronic device can include a processor 61, a communications interface 62, a memory 63 and a communications bus 64, wherein the processor 61, the communications interface 62 and the memory 63 complete mutual communication through the communications bus 64. The processor 61 can call the logical instructions in the memory 63 to execute the host startup processing method of the multi-host system, which includes: determining an access object, obtaining CXL memory configuration information from the access object, the CXL memory configuration information being information stored before the first host performs a refresh operation; when it is determined that the CXL memory configuration information has not changed, obtaining CXL memory training data from the access object, storing the CXL memory training data into the BIOS Flash of the first host, and starting up based on the CXL memory training data; if the access object is a device possessed by each host in the multi-host system, transmitting the CXL memory training data to the access object of the second host to enable the second host to start up based on the CXL memory training data, the second host being a remaining host in the multi-host system other than the first host; if the access object is not a device possessed by each host in the multi-host system, sending a notification to the second host to enable the second host to obtain the CXL memory configuration information from the access object and start up based on the CXL memory training data.
[0159] In addition, the logical instructions in the memory 63 described above can be implemented in the form of a software function unit and sold or used as an independent product, and can be stored in a non-transitory computer-readable storage medium. Based on this understanding, the technical solutions of the present application essentially or the part that contributes to the prior art or part of the technical solutions can be embodied in the form of a software product, and the computer software product is stored in a non-transitory readable storage medium, including a number of instructions to make a computer device (which can be a personal computer, a server, or a network device, etc.) execute all or part of the steps of the embodiments of the present application. The aforementioned non-transitory readable storage medium includes: a U disk, a mobile hard disk, a read-only memory (ROM, Read-Only Memory), a random access memory (RAM, Random Access Memory), a magnetic disk or an optical disk, and various media that can store program codes.
[0160] In another aspect, the present application also provides a computer program product, the computer program product comprising a computer program, the computer program being stored in a non-transitory computer-readable storage medium, and the computer program being executed by a processor, so that the computer can execute the host machine startup processing method of the multi-host system provided by the above-mentioned method. The method comprises: determining an access object, obtaining CXL memory configuration information from the access object, the CXL memory configuration information being information stored before the first host performs a refresh operation; when it is determined that the CXL memory configuration information has not changed, obtaining CXL memory training data from the access object, storing the CXL memory training data into the BIOS Flash of the first host, and starting up based on the CXL memory training data; if the access object is a device possessed by each host in the multi-host system, transmitting the CXL memory training data to the access object of the second host, so that the second host starts up based on the CXL memory training data, the second host being a remaining host in the multi-host system other than the first host; if the access object does not belong to the device possessed by each host in the multi-host system, sending a notification to the second host, so that the second host obtains the CXL memory configuration information from the access object and starts up based on the CXL memory training data.
[0161] In yet another aspect, the present application also provides a non-transitory computer readable storage medium having stored thereon a computer program, which, when executed by a processor, implements a host startup processing method of a multi-host system provided by any of the above methods, the method comprising: determining an access object, obtaining CXL memory configuration information from the access object, the CXL memory configuration information being information stored before a refresh operation of the first host; when it is determined that the CXL memory configuration information has not changed, obtaining CXL memory training data from the access object, storing the CXL memory training data into the BIOS Flash of the first host, and starting up based on the CXL memory training data; if the access object is a device possessed by each host in the multi-host system, transmitting the CXL memory training data to an access object of a second host, so that the second host starts up based on the CXL memory training data, the second host being a remaining host other than the first host in the multi-host system; and if the access object does not belong to the device possessed by each host in the multi-host system, sending a notification to the second host, so that the second host obtains the CXL memory configuration information from the access object and starts up based on the CXL memory training data.
[0162] The device embodiments described above are merely illustrative; units described as separate components may or may not be physically separate, and components shown as units may or may not be physical units, i.e., may be located in one place or distributed over multiple network units. Some or all of the modules can be selected to achieve the purpose of the embodiment according to actual needs. Those skilled in the art can understand and implement without creative labor.
[0163] From the above description of the embodiments, those skilled in the art can clearly understand that the embodiments can be implemented by means of software and the necessary general hardware platform, and of course can also be implemented by hardware. Based on such understanding, the above technical solutions can be embodied in the form of a software product, which can be stored in a non-transitory computer readable storage medium, such as ROM / RAM, magnetic disk, optical disk, etc., and includes a number of instructions to make a computer device (which can be a personal computer, server, or network device, etc.) execute the methods of the embodiments or some parts of the embodiments.
[0164] Finally, it should be noted that: the above embodiments are only used to illustrate the technical solutions of the present application, and not to limit them; although the present application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that they can still modify the technical solutions recorded in the foregoing embodiments, or make equivalent replacements to some technical features; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the spirit and scope of the technical solutions of the embodiments of the present application.
Claims
1. A host startup processing method for a multi-host system, characterized in that: The multi-host system includes multiple hosts, each of which is configured with a basic input / output system flash (BIOS Flash) for storing CXL memory training data and a baseboard management controller (BMC) and a baseboard management controller static random access memory (BMC SRAM), and the method is applied to the BIOS of a first host, which is a host selected as an operation object in the multi-host system, and includes the following steps: determining an access object, and obtaining CXL memory configuration information from the access object, the CXL memory configuration information being information stored before the first host performs a refresh operation; when it is determined that the CXL memory configuration information has not changed, obtaining CXL memory training data from the access object, storing the CXL memory training data in the BIOS Flash of the first host, and starting the first host based on the CXL memory training data; if the access object is a device possessed by each host in the multi-host system, transmitting the CXL memory training data to an access object of a second host to enable the second host to start based on the CXL memory training data, the second host being a remaining host in the multi-host system other than the first host; if the access object is not a device possessed by each host in the multi-host system, sending a notification to the second host to enable the second host to obtain CXL memory configuration information from the access object and start based on the CXL memory training data.
2. The method of claim 1, wherein, The method further includes the following steps: determining an access object based on a preset access order table and a selection strategy, the access order table being: first the BMC and then the CXL memory expansion card, or first the CXL memory expansion card and then the BMC; and the selection strategy including: based on the access order table, if the access object selected first fails, selecting an access object selected later; if the access object is the BMC, accessing the BMC SRAM to obtain the CXL memory configuration information; if the access object is the CXL memory expansion card, accessing a flash on the CXL memory expansion card to obtain the CXL memory configuration information.
3. The method of claim 1, wherein, The method further includes the following steps: if the access object is a device possessed by each host in the multi-host system, when it is determined that the CXL memory configuration information does not exist in a preset memory configuration information database and that the CXL memory configuration information has changed, performing CXL memory training, storing CXL memory training data in the BIOS Flash of the first host and the access object, and transmitting the CXL memory training data to an access object of a second host; and adding new CXL memory configuration information in the memory configuration information database; if it is determined that the CXL memory configuration information exists in the preset memory configuration information database, synchronizing CXL memory training data corresponding to the CXL memory configuration information from the access object to the BIOS Flash.
4. The method of claim 1, wherein, The method further includes the following steps: If the access object is not a device possessed by each host in the multi-host system, when it is determined that the CXL memory configuration information does not exist in the preset memory configuration information database and that the CXL memory configuration information has changed, CXL memory training is performed, and CXL memory training data is stored in the BIOS Flash of the first host and the access object; and new CXL memory configuration information is added in the memory configuration information database.
5. The method of claim 1, wherein, The determination of whether the CXL memory configuration information has changed comprises: reading the current CXL memory configuration information, and determining that the CXL memory configuration information has changed if the current CXL memory configuration information is different from the CXL memory configuration information obtained from the access object, or determining that the CXL memory configuration information has not changed if the current CXL memory configuration information is the same as the CXL memory configuration information obtained from the access object.
6. The method of claim 3, wherein, The access object is a BMC possessed by each host in the multi-host system, and when it is determined that the CXL memory configuration information does not exist in the preset memory configuration information database, CXL memory training is performed, and CXL memory training data is stored in the BIOS Flash of the first host and the BMC SRAM, and the first host is started based on the CXL memory training data; and the CXL memory training data is transmitted to the BMC of the second host, and the BMC of the second host stores the CXL memory training data in the BMC SRAM; and the BIOS of the second host reads the CXL memory training data from the BMC SRAM of the second host to the BIOS Flash when starting, and starts based on the CXL memory training data; The access object is a CXL memory expansion card, and when it is determined that the CXL memory configuration information does not exist in the preset memory configuration information database, CXL memory training is performed, and CXL memory training data is stored in the BIOS Flash of the first host, and the first host is started based on the CXL memory training data; and the CXL memory training data is stored in the Flash of the CXL memory expansion card; and the BIOS of the second host reads the CXL memory training data from the Flash of the CXL memory expansion card to the BIOS Flash when starting, and starts based on the CXL memory training data.
7. The method of claim 1, wherein, Before determining the access object, the first host and the second host clear the CXL memory training data in the BIOS Flash of each host.
8. The method of claim 7, wherein, Transmitting the CXL memory training data to the BMC of the second host comprises: controlling the BMC of the first host to transmit the CXL memory training data to the BMC of the second host through a network.
9. The method of claim 2, wherein, Before accessing the BMC SRAM to obtain the CXL memory configuration information, the BMC SRAM is initialized to obtain access permission of the SRAM region.
10. The method of claim 3 or 4, wherein, Performing CXL memory training comprises: controlling a CXL memory expansion controller on the CXL memory expansion card to perform CXL memory training.
11. The method of claim 3 or 4, wherein, The memory configuration information database comprises sub-databases, the library name of the sub-databases is a time section, the time length of the time section corresponding to the library name of each database is the same, adding new CXL memory configuration information in the memory configuration information database comprises: determining a CXL memory training time, determining the sub-database based on the CXL memory training time and the library name of the sub-database; storing the new CXL memory configuration information corresponding to the CXL memory training time in the determined sub-database.
12. The method of claim 11, wherein, The method further comprises: determining a time section containing the CXL memory training time as a candidate sub-database, if the time difference between the CXL memory training time and the earliest time of the library name of the candidate sub-database is lower than or equal to the preset proportion of the time length of the library name of the candidate sub-database, the candidate sub-database is the determined sub-database.
13. The method of claim 12, wherein, The method further comprises: if the time difference between the CXL memory training time and the earliest time of the library name of the candidate sub-database is higher than the preset proportion of the time length of the library name of the candidate sub-database, determining the sub-database corresponding to the next library name of the library name of the candidate sub-database as the determined sub-database.
14. The method of claim 12, wherein the host boot-up process of the multi-host system is performed by a host processor of the multi-host system. The method further comprises: counting based on the latest time of the library name of the sub-database to obtain a counting time length, if the counting time length reaches a first threshold value, and the CXL memory configuration information of the sub-database does not participate in the matching process of the memory configuration information, deleting the sub-database and deleting the CXL memory training data corresponding to each CXL memory configuration information in the sub-database in the BMC SRAM.
15. The method of claim 14, wherein, The method further comprises: determining that all time sections do not contain the CXL memory training time, then constructing a new sub-database in the memory configuration information database; configuring a new time section as the library name of the new sub-database based on all existing time sections, the time length of a single time section and the preset proportion; the new sub-database is determined as the sub-database.
16. The method of claim 12, wherein the host boot-up process of the multi-host system is performed by a host processor of the multi-host system. The method further comprises: constructing a standby sub-database based on all existing time sections and the time length of a single time section; recording the current time, determining that the current time exceeds the latest time of the standby sub-database, and the standby sub-database does not store CXL memory configuration information, then deleting the standby sub-database.
17. The method of claim 14, wherein: The method further comprises: when the number of sub-databases constructed in the memory configuration information database reaches a first preset number, the first threshold value is lowered; when the number of sub-databases constructed in the memory configuration information database reaches a second preset number, the first threshold value is restored.
18. A host boot-up processing apparatus of a multi-host system, characterized by comprising: The multi-host system includes a plurality of hosts, each host being configured with a BIOS Flash for storing CXL memory training data and a BMC, a BMC SRAM, the device being applied to a BIOS of a first host, the first host being a host selected as an operation object in the multi-host system, and including: An obtaining module is configured to determine an access object, and obtain CXL memory configuration information from the access object, the CXL memory configuration information being information stored before the first host performs a refresh operation; A processing module is configured to, when determining that the CXL memory configuration information has not changed, obtain CXL memory training data from the access object, store the CXL memory training data into the BIOS Flash of the first host, and boot the first host based on the CXL memory training data; A transmission module is configured to, when the access object is a device possessed by each host in the multi-host system, transmit the CXL memory training data to an access object of a second host, so that the second host boots based on the CXL memory training data, the second host being a remaining host in the multi-host system other than the first host; A control module is configured to, when the access object does not belong to the device possessed by each host in the multi-host system, send a notification to the second host, so that the second host obtains CXL memory configuration information from the access object and boots based on the CXL memory training data.
19. An electronic device comprising a memory, a processor, and a computer program stored on the memory and executable on the processor, wherein, The processor executes the program to implement the host boot processing method of the multi-host system according to any one of claims 1 to 17. 20.A non-transitory computer-readable storage medium having stored thereon a computer program. The computer program is executed by the processor to implement the host boot processing method of the multi-host system according to any one of claims 1 to 17.
Citation Information
Patent Citations
Data processing method and device based on distributed shared memory system
CN113590364A
Container creation processing method and system, electronic equipment and readable storage medium
CN116126471A
Data reading and writing method, system and equipment and storage medium
CN117707991A
Host startup processing method and device of multi-host system, electronic equipment and medium
CN118069231A
Improving memory training performance by utilizing compute express link (CXL) device-supported memory
WO2022036536A1