Fault processing method and computing device

By deploying the CXL network management process (FM) on the computing device, actively processing the fault information of the CXL memory expansion device, the problem of failure handling of undirected devices is solved and the resource availability of the memory pool is improved.

CN119847413APending Publication Date: 2025-04-18XFUSION DIGITAL TECH CO LTD
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202311355542.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-10-18
Publication Date
2025-04-18

AI Technical Summary

Technical Problem

The prior art is difficult to timely detect and deal with the failure of CXL memory expansion devices that are not directly connected to computing devices, resulting in a decrease in memory availability in the CXL memory pool.

Method used

By deploying the CXL network management process (FM) on the first computing device, it actively obtains the fault information of the CXL memory expansion device, and marks the relevant memory blocks as an unallocated state based on the fault information, so as to avoid it being allocated by other computing devices.

Benefits of technology

Improves the availability of memory in the CXL memory pool, prevents other computing devices from applying for abnormal memory blocks, and reduces business losses.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119847413A_ABST
    Figure CN119847413A_ABST
Patent Text Reader

Abstract

The fault processing method is applied to a first computing device, the first computing device is used for managing a CXL memory pool, the CXL memory pool comprises one or more CXL memory extension devices, each CXL memory extension device comprises a memory block, and the method comprises the steps that fault information of the CXL memory extension devices is acquired; according to the fault information, an abnormal memory block related to the fault information is determined, and the abnormal memory block is a memory block in the CXL memory pool; and marking the abnormal memory block as a non-allocatable state, wherein the non-allocatable state is used for identifying that the memory block cannot be allocated to a second computing device. By actively processing the abnormal memory area, the availability of the CXL memory is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of memory failure technology, and in particular to a failure handling method and computing device. Background Art

[0002] The compute express link (CXL) memory expansion device is an extended memory with a large capacity that can be used in conjunction with the local memory of a computing device. In order to ensure the reliability of the CXL extended memory, it is necessary to perform reliability, availability, and serviceability (RAS) diagnosis on the CXL extended memory.

[0003] However, in the related art, fault handling is generally performed on CXL memory expansion devices that are directly connected to computing devices. Since the memory of the CXL memory expansion device is exclusively used by the computing device, the computing device can capture and handle the abnormality of the CXL memory expansion device at the driver layer. However, for CXL memory expansion devices that are not directly connected to the computing device, the computing device cannot detect the fault in time and handle it. Summary of the invention

[0004] The embodiments of the present application provide a fault handling method and a computing device, which proactively handle an abnormal memory area and improve the availability of memory in a CXL memory pool.

[0005] In a first aspect, an embodiment of the present application provides a fault handling method, which is applied to a first computing device, the first computing device is used to manage a CXL memory pool, the CXL memory pool includes one or more CXL memory expansion devices, each CXL memory expansion device includes a memory block, the method includes: obtaining fault information of the CXL memory expansion device; determining an abnormal memory block related to the fault information according to the fault information, the abnormal memory block is a memory block in the CXL memory pool; marking the abnormal memory block as an unallocatable state, the unallocatable state is used to indicate that the memory block cannot be allocated to a second computing device, the second computing device can be any computing device other than the first computing device.

[0006] In this solution, the first computing device may be a device deployed with a CXL network management process FM device, and the first computing device actively obtains the fault information of the CXL memory expansion device, and manages the memory blocks related to the fault information in the CXL memory pool according to the acquired fault information of the CXL memory expansion device. For example, the memory blocks related to the fault information are marked as unallocatable, which prevents other computing devices from applying for abnormal memory blocks from the CXL memory pool, thereby improving the availability of CXL memory pool resources.

[0007] In a possible implementation, the method further includes: when there is a first memory block in the abnormal memory block being accessed by the second computing device, controlling the second computing device to stop accessing the first memory block.

[0008] That is, for the first memory block in the abnormal memory block that has been bound to the second computing device, the first computing device needs to notify the second computing device to unbind it to reduce business losses.

[0009] In a possible implementation, the method further includes: when there is a second memory block in the abnormal memory blocks that is not allocated to the second computing device, deleting the second memory block from the CXL memory pool.

[0010] That is, if there is a second memory block in the abnormal memory blocks that is not allocated to the second computing device, the first computing device may directly delete the second memory block from the CXL memory pool to prevent the memory block from being bound by other computing devices.

[0011] In a possible implementation, obtaining fault information reported by a CXL memory expansion device includes: directly obtaining fault information reported by the CXL memory expansion device, or obtaining fault information reported by the CXL memory expansion device through a CXL switch, where the CXL switch is connected to at least two CXL memory expansion devices.

[0012] That is, the first computing device may be directly connected to the CXL memory expansion device, or the first computing device may be connected to the CXL memory expansion device through a CXL switch. There is no limitation on the connection method between the first computing device and the CXL memory expansion device.

[0013] In a possible implementation, controlling the second computing device to stop accessing the first memory block includes: sending first information to the second computing device, where the first information is used to instruct the second computing device to stop accessing the first memory block.

[0014] In a possible implementation, the method further includes: receiving second information sent by the second computing device, the second information being used to indicate that the second computing device has stopped accessing the first memory block; and deleting an association between the first memory block and the second computing device.

[0015] That is to say, after the second computing device is unbound from the first memory block, it is still necessary to notify the first computing device to trigger the first computing device to delete the association between the first memory block and the second computing device, thereby reducing the memory usage of the first computing device.

[0016] In a possible implementation, the fault information includes: a CXL memory expansion device identifier and a memory address where the fault occurs.

[0017] That is, the first computing device can determine which CXL memory expansion device has failed according to the CXL memory expansion device identifier carried in the failure information, and can determine the failed memory block in the CXL memory pool according to the failed memory address.

[0018] In a second aspect, an embodiment of the present application provides a fault handling method, which is applied to a second computing device, the method comprising: obtaining first information sent by a first computing device, the first information being used to instruct the second computing device to stop accessing a first memory block in a CXL memory pool, wherein the first computing device is used to manage the CXL memory pool, and the first computing device sends the first information when determining that the first memory block is faulty; and migrating data in the first memory block to free memory of the second computing device.

[0019] In this solution, after receiving the first information, the second computing device needs to determine whether data is stored in the first memory block. If data is stored in the first memory block, the data stored in the first memory block needs to be migrated to avoid the problem of business confusion caused by directly deleting the association between the first memory block and the second computing device when data is stored in the first memory block.

[0020] In one possible implementation, deleting the association between the first memory block and the second computing device includes: after determining that data stored in the first memory block for each of at least one first application is migrated to free memory of the second computing device, deleting the association between the first memory block and each of the at least one first application.

[0021] That is, the second computing device determines at least one first application associated with the first memory block, and if there is free memory in the second computing device, the data stored by the first application in the first memory block can be migrated to the free memory of the second computing device, so as to ensure that the first application can run normally after the association between the first memory block and the second computing device is deleted.

[0022] In one possible implementation, after deleting the association between the first memory block and the second computing device, the method further includes: sending second information to the first computing device, where the second information is used to indicate that the first computing device has been unbound from the first memory block.

[0023] That is to say, after the second computing device is unbound from the first memory block, it is still necessary to notify the first computing device to trigger the first computing device to delete the association between the first memory block and the second computing device to reduce the memory usage of the first computing device.

[0024] In a third aspect, an embodiment of the present application provides a computing device, including:

[0025] at least one memory for storing a program;

[0026] At least one processor is used to execute a program stored in a memory. When the program stored in the memory is executed, the processor is used to execute the method described in any possible implementation manner of the first aspect or the second aspect.

[0027] In a fourth aspect, an embodiment of the present application provides a computer storage medium, in which instructions are stored. When the instructions are executed on a computer, the computer executes the method described in any possible implementation of the first aspect or the second aspect.

[0028] In a fifth aspect, an embodiment of the present application provides a computer program product comprising instructions, which, when executed on a computer, enables the computer to execute the method described in any possible implementation of the first aspect or the second aspect. BRIEF DESCRIPTION OF THE DRAWINGS

[0029] In order to more clearly illustrate the technical solutions of the embodiments of the present invention, the accompanying drawings required for use in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of the present invention. For ordinary technicians in this field, other accompanying drawings can be obtained based on these accompanying drawings without paying creative work.

[0030] Figure 1 A flowchart of an exception handling of a CXL memory expansion device provided in an embodiment of the present application;

[0031] Figure 2 A schematic diagram of the structure of a CXL memory pool provided in an embodiment of the present application;

[0032] Figure 3a A schematic diagram of an application scenario provided for an embodiment of the present application;

[0033] Figure 3b A schematic diagram of another application scenario provided for an embodiment of the present application;

[0034] Figure 3c A schematic diagram of another application scenario provided for an embodiment of the present application;

[0035] Figure 4 A schematic diagram of memory connection between a CXL memory expansion device and a host provided in an embodiment of the present application;

[0036] Figure 5 A schematic diagram of the structure of a computing system provided in an embodiment of the present application;

[0037] Figure 6A flowchart of a fault handling method provided in an embodiment of the present application;

[0038] Figure 7 A flowchart of a fault handling method provided in an embodiment of the present application;

[0039] Figure 8 A flowchart of a fault handling method provided in an embodiment of the present application;

[0040] Fig. 9 A flowchart of a fault handling method provided in an embodiment of the present application;

[0041] Fig.10 A flowchart of a fault handling method provided in an embodiment of the present application;

[0042] Fig.11 A flowchart of a fault handling method provided in an embodiment of the present application;

[0043] Fig.12 A schematic diagram of the structure of a first computing device provided in an embodiment of the present application;

[0044] Fig.13 A schematic diagram of the structure of a second computing device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0045] In order to make the purpose, technical solutions and advantages of the embodiments of the present application clearer, the technical solutions in the embodiments of the present application will be described below in conjunction with the accompanying drawings.

[0046] In the description of the embodiments of the present application, any embodiment or design scheme of "exemplary", "for example" or "for example" should not be understood as being more preferred or more advantageous than other embodiments or designs. Specifically, the use of words such as "exemplary", "for example" or "for example" is intended to present related concepts in a specific way.

[0047] In addition, the terms "first" and "second" are used for descriptive purposes only and should not be understood as indicating or implying relative importance or implicitly indicating the indicated technical features. Therefore, the features defined as "first" and "second" may explicitly or implicitly include one or more of the features. The terms "including", "comprising", "having" and their variations all mean "including but not limited to", unless otherwise specifically emphasized. "At least one" can be one or more, where a plurality is two or more.

[0048] Before introducing this solution, the technical terms involved in this solution are first introduced.

[0049] Memory Pool: in the embodiments of the present application, it refers to a memory pool formed by at least one CXL memory expansion device through CXL technology. The memory resources in the memory pool can be dynamically allocated to computing devices that need to expand memory.

[0050] CXL memory expansion device: A memory expansion device that supports the CXL protocol. The CXL memory expansion device includes a CXL controller and a memory connected to the CXL controller. The CXL controller can be a CXL memory expansion card, also known as a CXL control chip, a memory expansion (CXL memory expander) chip, a CXL memory controller (CXL memory expander controller) or a CXL memory pooling (CXL memory expander pooling) chip. The memory can include volatile memory and / or non-volatile memory. The volatile memory includes DRAM, and the non-volatile memory can include NAND chips, etc.

[0051] CXL Multi-Head Device: A multi-port CXL memory expansion device that supports multiple computing devices to access subordinate memory areas. The specific accessible address range is determined by the device's address mapping module. When the CXL memory expansion device is a CXL multi-head memory expansion device, the CXL control chip of the CXL multi-head memory expansion device can be a multi-head CXL memory expansion card.

[0052] CXL Switch: A key basic device type defined in the CXL protocol, used to extend the CXL port RootPort on the computing device to access more CXL memory expansion devices. Most CXL pooling technologies require the use of CXL switches.

[0053] Next, the solutions in the embodiments of the present application are introduced.

[0054] The CXL memory expansion device defines two types of exceptions: Data Poison exception and Viral exception. For Data Poison exception, the protocol requires that it must be handled by the requester of the memory associated with the CXL memory expansion device. That is, the memory access exception of the CXL memory expansion device at runtime will be directly handled by the computing device (rewriting data or program exception handling). Viral is an exception that is unrelated to the data content and can generally be summarized as an address exception or a device firmware processing exception. It needs to be obtained by querying the device exception log based on the asynchronous processing mechanism.

[0055] For example, Figure 1The following figure shows the processing flow of two CXL memory expansion device exceptions: DataPoison and Viral. Figure 1 As shown in A, the processing flow for DataPoison exception includes: step 1 to step 5.

[0056] Step 1: The computing device requests the data content of memory address X from the CXL memory expansion device.

[0057] Step 2: The CXL memory expansion device reads the data content of the memory address X. If the CXL memory expansion device detects an uncorrectable error (UE) when reading the data content of the memory address X, the CXL memory expansion device needs to mark the error as Data Poison and generate an exception log.

[0058] Step 3: The CXL memory expansion device returns the data content of the memory address X to the computing device and marks the DataPoint attribute of the data.

[0059] Step 4: The computing device determines that the received data carries a DataPoison attribute, and the computing device triggers a SIGBUS interrupt.

[0060] Step 5: The computing device processes the DataPoison exception of the CXL memory expansion device.

[0061] The computing device may handle the Data Poison exception on the CXL memory expansion device by interrupting the execution of a related application, wherein the related application may be a virtual machine.

[0062] like Figure 1 As shown in B, the processing flow for Viral exception includes: step 1 to step 3.

[0063] Step 1: The firmware in the CXL memory expansion device detects an anomaly, marks the impact scope of the anomaly, and generates an anomaly log.

[0064] Step 2: The CXL memory expansion device notifies the computing device through the Mailbox interface that an abnormality exists on the CXL memory expansion device.

[0065] Step 3: The computing device handles the exception on the CXL memory expansion device.

[0066] The computing device handles the exception on the CXL memory expansion device by resetting the CXL memory expansion device.

[0067] Regarding the fault handling of the CXL memory expansion device directly connected to the computing device, since the memory of the CXL memory expansion device is exclusively used by the computing device, the computing device can capture and handle the fault of the CXL memory expansion device at the driver layer.

[0068] When a CXL memory expansion device is directly connected to a computing device, the computing device can obtain full access rights to the memory of the connected CXL memory expansion device. Any anomalies detected by the CXL memory expansion device or CXL physical link anomalies in the CXL memory expansion device can be captured and processed by the processor in the computing device. However, when the CXL memory expansion device is connected through a pool, a CXL memory expansion device may be connected to multiple computing devices, and the processor in the computing device cannot obtain full access rights to the memory in the CXL memory expansion device to which the computing device is connected. Therefore, except for the DataPoison anomaly, which can be directly processed by the computing device through the access link, other Viral-type anomalies cannot be subscribed and processed normally by the computing device, and there are problems such as access conflicts between multiple computing devices to the same CXL memory expansion device.

[0069] Taking CXL memory expansion devices as an example, pooling CXL memory expansion devices may refer to dividing the memory of one or more CXL memory expansion devices into memory blocks according to a certain size, and uniformly managing and allocating these memory blocks. Figure 2 , multiple CXL memory expansion devices can form a CXL memory pool. For example, a CXL expansion device can be connected to a CXL Switch to form a CXL memory pool, or a CXL memory expansion device is a CXL multi-head memory expansion device, each CXL memory expansion device is connected to multiple computing devices, so that multiple CXL memory expansion devices form a CXL memory pool. Multiple memory blocks can be obtained by dividing the CXL memory expansion devices in the CXL memory pool according to a certain size.

[0070] In the above embodiment, the main purpose is to deal with the failure of the CXL memory expansion device in the scenario where the corresponding memory block of the CXL memory expansion device in the CXL memory pool is used by the computing device after the CXL memory expansion device fails. However, in the scenario where the corresponding memory block of the CXL memory expansion device in the CXL memory pool is not used by the computing device after the CXL memory expansion device fails, the computing device cannot perceive and process the abnormality in the CXL memory expansion device in a timely manner.

[0071] If a memory block failure in the CXL memory pool cannot be detected by the computing device in time, then after the computing device applies to bind the memory block in the CXL memory pool through the CXL fabric manager (FM), a series of problems caused by the memory failure are likely to occur, which will reduce the availability of the memory block in the CXL memory pool.

[0072] In view of this, an embodiment of the present application provides a method for handling memory failures. After FM obtains an abnormal event of a CXL memory expansion device, it determines the memory block associated with the abnormal event in the CXL memory pool according to the abnormal event obtained. Then, FM marks the memory block associated with the abnormal event as unallocatable. This prevents other computing devices from applying for abnormal memory blocks from the CXL memory pool, thereby improving the availability of memory blocks in the CXL memory pool.

[0073] It can be understood that the abnormality of the CXL memory expansion device in the embodiment of the present application refers to the abnormality of the associated link of the CXL memory expansion device, the error of the CXL memory expansion device controller, the abnormality of the memory particles carried by the CXL memory expansion device, etc. These memory abnormalities may cause the corresponding memory block of the CXL memory expansion device in the CXL memory pool to be unusable.

[0074] For example, Figure 3a A schematic diagram of an application scenario provided by an embodiment of the present application is shown. Figure 3a The computing system shown includes multiple CXL memory expansion devices (such as Figure 3a D1, D2...Dx) and multiple computing devices (such as Figure 3a H1, H2...Hx in the figure). The CXL memory expansion device may be a CXL multi-head memory expansion device.

[0075] Multiple CXL memory expansion devices constitute a CXL memory pool. At the software level, multiple CXL memory expansion devices constitute a CXL memory pool. Multiple memory blocks can be obtained by dividing the CXL memory expansion devices in the CXL memory pool according to a certain size. All memory blocks are uniformly managed and allocated by the CXL network management process (Fabric Manager, FM). FM can be deployed on any computing device among multiple computing devices. Each computing device is connected to each CXL memory expansion device. The computing device and the CXL memory expansion device can be connected through PCIe to directly access the memory of the CXL memory expansion device. The connection method between the computing device deployed with FM and the CXL memory expansion device is mainly based on the management interface provided by the specific CXL memory, including but not limited to PCIe / I2C / SMBus / Ethernet / USB. The communication between FM and CXL memory expansion devices satisfies FM's acquisition of information on CXL memory expansion devices and management of memory blocks in the CXL memory pool. The communication between computing devices and FM mainly satisfies the computing devices' application and release of memory blocks in the CXL memory pool.

[0076] Taking computing device H1 as an example, when computing device H1 needs to apply for memory, computing device H1 can send a memory application request to FM. FM allocates memory blocks in the CXL memory pool to computing device H1 according to the memory size requested in the memory application request sent by computing device H1. Figure 3a As shown, FM can allocate memory blocks 1 to 4 in CXL memory expansion device D1 and memory blocks 1 and 2 in CXL memory expansion device D2 to computing device H1. Computing device H1 only has access rights to the memory blocks that have been obtained.

[0077] It is understood that in the embodiments of the present application, the computing device may be an electronic device, a server, or other device with a communication function, and the embodiments of the present application do not limit this. The server may be, for example, a blade server, a rack server, a tower server, etc. The server may also be a GPU server.

[0078] Of course, in other embodiments, there may be one CXL memory expansion device. When there is one CXL memory expansion device, one CXL memory expansion device is connected to multiple computing devices.

[0079] Figure 3b A schematic diagram of another application scenario provided by an embodiment of the present application is shown. Figure 3b As shown, the computing system may include multiple CXL memory expansion devices (such as Figure 3b SLD, D2...Dx in, multiple computing devices (such as Figure 3b H1, H2...Hx) and CXL switches (such as Figure 3b A plurality of CXL memory expansion devices are connected to a plurality of computing devices through a CXL switch.

[0080] Multiple CXL memory expansion devices constitute a CXL memory pool. At the software level, the memory in multiple CXL memory expansion devices constitutes the memory blocks in the CXL memory pool. All memory blocks are uniformly managed and allocated by FM. FM can be deployed on a CXL switch or on other computing devices. For example, FM can be deployed on a computing device alone. The connection method between the computing device deployed with FM and the CXL memory expansion device is mainly based on the management interface provided by the specific CXL memory expansion device, including but not limited to PCIe / I2C / SMBus / Ethernet / USB. The communication between FM and CXL memory expansion devices satisfies FM's acquisition of information about CXL memory expansion devices and management of memory blocks in the CXL memory pool. The communication between computing devices and FM mainly satisfies the business computing devices' application for the release of memory in the CXL memory pool. The connection between computing devices and network switches can be achieved through network requests.

[0081] It is understandable that CXL memory expansion devices can be divided into two types: single logical device (Singe Logical Device, SLD) and multiple logical device (Multiple Logical Device, MLD). When the two types of CXL memory expansion devices are pooled, the pooling granularity is different. For SLD devices, after being pooled, a device can only be assigned to one computing device. For MLD devices, after being pooled, a device can include multiple memory blocks, and different memory blocks can be assigned to different computing devices.

[0082] It can be understood that the number of the CXL switches may be one or more, and the embodiment of the present application does not limit this.

[0083] Figure 3c A schematic diagram of another application scenario provided by an embodiment of the present application is shown. Figure 3c As shown, the computing system may include multiple CXL memory expansion devices, multiple computing devices, and a server, and the multiple CXL memory expansion devices are connected to the multiple computing devices. In a possible example, in this scenario, a CXL Switch may also be included, and the multiple CXL memory expansion devices are connected to the multiple computing devices through the CXL Switch.

[0084] Multiple CXL memory expansion devices constitute a CXL memory pool. At the software level, multiple CXL memory expansion devices constitute a CXL memory pool. CXL memory expansion devices in the CXL memory pool can be divided into multiple memory blocks according to a certain size. All memory blocks are uniformly managed and allocated by FM. FM can be deployed on CXL switches or on other computing devices. FM obtains abnormal information of CXL memory expansion devices in real time and sends the obtained abnormal information to the server. The server notifies the corresponding computing device to process according to the abnormal information of the received CXL memory expansion device.

[0085] It is understandable that the FM in the above three scenarios has the ability to obtain fault information in the CXL memory expansion device, and the computing device deployed with the FM can be connected to the CXL memory expansion device directly or indirectly through a CXL Switch. Among them, when the computing device deployed with the FM is indirectly connected to the CXL memory expansion device through a CXL Switch, it can be connected through multiple levels of CXL Switches.

[0086] For example, Figure 4 A schematic diagram of memory connection between a CXL memory expansion device and a computing device is shown. Figure 4 As shown, the computing device includes a CXL Root port, and the CXL memory expansion device includes a CXL memory expansion device port. The CXL Root port and the CXL memory expansion device port are connected via a physical link. The CXL Root port and the CXL memory expansion device port both support the CXL.io protocol and the CXL.mem protocol.

[0087] It is understandable that CXL is a protocol, which is mainly divided into three types: CXL.io, CXL.mem, and CXL.cache. Among them, the CXL.io protocol is an enumeration configuration protocol, which is mainly used for device discovery and enumeration, error reporting, etc. The CXL.mem protocol allows computing devices to access the memory of CXL memory expansion devices just like accessing their own local memory. In the CXL.mem protocol, the CPU is called the master, which is responsible for sending requests, and the CXL memory expansion device is the slave that replies and responds. Requests are divided into requests with data and requests without data, and responses are also divided into responses with data and responses without data. The CXL.cache protocol allows devices to solve memory consistency and access computing device memory with low latency.

[0088] Based on the description in the above embodiments, the CXL pooling framework composed of the CXL memory expansion device and the computing device is introduced next.

[0089] For example, Figure 5FIG. 1 shows a schematic diagram of the structure of a computing system. Figure 5 As shown, the computing system includes: a computing device (such as Figure 5 Computing device 1, computing device 2), CXL memory pool, and FM. The CXL memory pool is composed of multiple CXL memory expansion devices through pooling. The computing device and the CXL memory expansion device are connected through PCIe, and the memory of the CXL memory expansion device can be directly accessed. FM can be deployed on any computing device among computing device 1 and computing device 2, and can also be deployed on other computing devices. The connection method between the computing device deployed with FM and the CXL memory expansion device is mainly based on the management interface provided by the specific CXL memory expansion device, including but not limited to PCIe / I2C / SMBus / Ethernet / USB; or, the computing device deployed with FM is connected to multiple CXL memory expansion devices through a CXL switch.

[0090] At least one application (Application, APP) and a local CXL space management process (Local CXL space Management Daemon, LMD) are running on the computing device. LMD is mainly used to provide local memory management services. For example, actively query or passively receive memory exception prompts sent by FM to manage local CXL memory space. The APP also includes a software development kit (Software Development Kit, SDK), which is mainly used to provide memory allocation and recovery services for the APP. In addition, a passive memory recovery mechanism is also provided for the APP to respond to the LMD abnormal memory block processing logic.

[0091] FM can divide the memory of multiple CXL memory expansion devices into multiple memory blocks according to certain rules, and multiple memory blocks can form a CXL memory pool. When dividing the memory of the CXL memory expansion device into memory blocks, the memory can be divided according to the type and capacity of the memory.

[0092] FM can independently provide memory management services in the CXL memory pool. For example, FM can monitor the exception events of the global CXL memory expansion device through the management interface and manage the pooled memory blocks for the unhandled exceptions of the computing device. FM can also allocate the corresponding memory blocks to the computing device in the CXL memory pool according to the request of the computing device.

[0093] Normally, when a computing device needs to use memory, it needs to apply for available memory blocks in the CXL memory pool through FM. After receiving the memory usage request sent by the computing device, FM allocates the qualified memory blocks in the CXL memory pool to the computing device, and the computing device obtains the address access rights corresponding to the memory block.

[0094] In a possible example, the process of FM allocating memory to a computing device may include: Step 1 to Step 3.

[0095] Step 1: FM receives a memory request sent by a computing device.

[0096] When the computing device needs to use memory, the computing device can apply for memory from the FM. Specifically, the computing device can send a memory request to the FM, and the memory request can carry the size and type of memory that the computing device needs to apply for.

[0097] Step 2: FM obtains at least one memory block from the memory pool according to the received memory request.

[0098] After receiving the memory request sent by the computing device, FM determines the memory block that meets the requirements from the memory pool as the target memory block based on the size and type of the required memory carried in the memory request.

[0099] Since the size of the memory block in the memory pool is fixed, there may be a situation where the size of the memory requested by the computing device is less than the size of a memory block. In this case, the memory blocks in the memory pool still need to be allocated to the computing device in units of blocks. For example, the size of each memory block in the memory pool is 500M, and the memory size requested by the computing device is 120M. After receiving the memory request from the computing device, FM determines an idle memory block from the memory pool as the target memory block and allocates it to the computing device.

[0100] Step 3: FM binds the target memory block to the computing device.

[0101] After FM determines the target memory block to be allocated to the computing device from the memory pool, it also needs to bind the target memory block to the computing device. The target memory block may include one or more memory blocks.

[0102] In a possible example, FM may establish an association relationship between a target memory block and a computing device, and send information of the target memory block bound to the computing device to the computing device, thereby achieving the purpose of binding the target memory block and the computing device.

[0103] In the embodiment of the present application, FM actively inspects abnormalities of CXL memory expansion devices in the CXL memory pool through the CXL memory expansion device management interface, and supplements the RAS solution of the CXL memory expansion devices after pooling.

[0104] Next, a fault handling method provided in an embodiment of the present application is introduced. The fault handling method is mainly used for Figure 5 The computing system shown. Figure 5In the computing system shown, the CXL memory expansion device is a CXL multi-head memory expansion device, and each CXL memory expansion device can be connected to at least two computing devices.

[0105] For example, Figure 6 A flowchart of a fault handling method is shown. It can be understood that Figure 6 The memory fault handling method shown is mainly used in the scenario of memory pooling application. When the CXL memory expansion device has an exception and the exception cannot be captured by the computing device, the CXL memory expansion device exception handling process is used. Figure 6 The method includes: step 601 to step 607.

[0106] Step 601: FM establishes an event notification relationship with a CXL memory expansion device.

[0107] In this embodiment, FM needs to establish an event notification relationship with each CXL memory expansion device. For example, FM and CXL memory expansion device can establish an event notification relationship through the RAS protocol, that is, FM can obtain abnormal events on the CXL memory expansion device through the polling management interface. Among them, when the CXL memory expansion device is a CXL multi-head memory expansion device, the management interface can be a PCIE interface connecting the computing device where FM is located and the CXL multi-head memory expansion device, or it can be an additional management interface provided by the CXL multi-head memory device.

[0108] Step 602 : FM receives fault information from a CXL memory expansion device.

[0109] In this embodiment, the CXL memory expansion device supports RAS technology, and when a CXL memory expansion device fails, the CXL memory expansion device will report an abnormal event. The CXL memory expansion device failure includes but is not limited to an abnormality in the associated link of the CXL memory expansion device, an error in the controller of the CXL memory expansion device, an abnormality in the memory particles carried by the CXL memory expansion device, etc.

[0110] FM monitors the management interface of the CXL memory expansion device in real time to obtain the fault information reported by the CXL memory expansion device, wherein the fault information carries information such as the identifier of the CXL memory expansion device where the fault occurs and the memory address where the fault occurs.

[0111] FM obtains fault information of the CXL memory expansion device based on the RAS capability of the CXL memory expansion device. When obtaining fault information, FM can obtain it by CXL memory expansion device as a unit, or by pooled memory blocks in the CXL memory expansion device as a unit.

[0112] Step 603: The FM determines an abnormal memory block associated with the fault from the CXL memory pool according to the received fault information of the CXL memory expansion device, and marks the abnormal memory block as "unallocatable state".

[0113] In this embodiment, after the FM receives the fault information of the CXL memory expansion device, it determines the abnormal memory block associated with the fault in the memory pool according to the identifier of the CXL memory expansion device and the memory address where the fault occurs carried in the fault information. The number of abnormal memory blocks can be one or more. For example, when the CXL memory expansion device is an SLD, the number of abnormal memory blocks is one, and when the CXL memory expansion device is an MLD, the number of abnormal memory blocks can be more than one.

[0114] After receiving the fault information of the CXL memory expansion device, the FM first determines the target CXL memory expansion device with the same identifier in the CXL memory pool according to the identifier of the CXL memory expansion device in the memory fault information, and then determines the abnormal memory block associated with the fault in the target CXL memory expansion device according to the memory address of the fault carried in the memory fault information.

[0115] Then, FM will modify the state of the abnormal memory block associated with the fault to "non-allocatable state". The "non-allocatable state" may indicate that the memory block identified by the state cannot be allocated to a second computing device, which is a computing device other than the first computing device.

[0116] After filtering out the abnormal memory block associated with the fault information of the faulty CXL memory expansion device from the CXL memory pool, the abnormal memory block is marked as "unallocatable state", so that other computing devices can be prevented from applying for the abnormal memory block from the CXL memory pool through FM.

[0117] Step 604 : FM sends an exception notification to the computing device that has a binding relationship with the memory block marked as “unallocatable state”.

[0118] In this embodiment, the "binding relationship" between the memory block and the computing device means that the memory block is allocated to the computing device, and the association relationship between the memory block and the computing device is saved in FM. After marking the abnormal memory block associated with the acquired CXL memory expansion device failure as "non-allocatable state", FM also needs to determine whether the memory block marked as "non-allocatable state" has been allocated to the computing device. If so, the memory block marked as "non-allocatable state" has been allocated to the computing device, and FM needs to send an exception notification to the computing device bound to the memory block to unbind the computing device from the corresponding memory block marked as "non-allocatable state".

[0119] For memory blocks in the memory pool that are marked as "non-allocatable" and not allocated to computing devices, when computing devices managed by FM apply for memory through FM, memory blocks marked as "non-allocatable" will not be allocated, thus preventing other computing devices from being allocated abnormal memory blocks when applying for memory.

[0120] In a possible example, a memory block marked as "non-allocatable state" is not allocated to a computing device. In this case, the FM may output a prompt message, which is used to prompt that the CXL memory pool has an abnormal memory block.

[0121] In this embodiment, FM marks abnormal memory blocks in the CXL memory pool as "unallocatable state" so that the unallocated abnormal memory blocks in the CXL memory pool cannot be allocated to other computing devices, thereby improving the availability of memory blocks in the CXL memory pool.

[0122] Step 605: The computing device starts a passive recovery process of the associated memory block (abnormal memory block) according to the abnormal notification received from the FM.

[0123] In this embodiment, after receiving the abnormal notification sent by the FM, the LMD in the computing device needs to trigger at least one APP associated with the abnormal memory block indicated in the abnormal notification to start the passive recovery process of the abnormal memory block. The passive recovery process of the abnormal memory block includes: steps 6051-6054.

[0124] Step 6051: The LMD sends first information to the target APP, where the first information is used to instruct the target AAP to recycle data in the corresponding memory segment in the abnormal memory block.

[0125] In this embodiment, after receiving the abnormal notification information sent by FM, LMD needs to determine the target APP associated with the abnormal memory block in the computing device based on the information of the abnormal memory block carried in the abnormal notification information. The number of target APPs can be one or more, and the target APPs are multiple for illustration. LMD sends a first message to each of the multiple target APPs, and the first message carries the identification information of the abnormal memory block, and the starting address and ending address of the memory segment allocated by the target APP. Among them, the identification information of the memory block can be used to determine a unique memory block.

[0126] It should be noted that when there are multiple target apps, after the computing device is bound to the memory block in the CXL memory pool, LMD will allocate the memory block to multiple apps on the computing device, and each app has a partial memory segment of the memory block. Then, LMD also needs to save the association relationship between the memory block and multiple apps.

[0127] Step 6052: The target AAP reclaims the data in the corresponding memory segment in the abnormal memory block.

[0128] In this embodiment, after receiving the first information, the target APP will enter a service freezing state, and during the service freezing period, according to the pre-registered processing logic, the software development kit (SDK) is used to recover the data in the corresponding memory segment in the abnormal memory block. The SDK is used to provide processing such as translation, binding, unbinding, and division of memory addresses.

[0129] In one possible example, after receiving the first information, the target APP enters a service freezing state. Then, the target APP needs to determine whether data is stored in the target memory segment in the abnormal memory block associated with the target APP. In the case that data is stored in the target memory segment, the target APP needs to recycle the data in the target memory segment.

[0130] Specifically, the target APP queries whether there is free memory in other memories associated with the target APP. If so, the target APP can migrate the data stored in the target memory segment to the free memory. If there is no free memory block in other memory blocks associated with the target APP, the target APP can apply for new memory space from LMD. After LMD receives the memory application request from the target APP, LMD can allocate new memory space to the target APP. The newly allocated memory space can be the local memory of the computing device, the memory in the CXL memory pool, or the memory in the persistent device. After the target APP applies for the new memory space through LMD, the target APP can migrate the data in the target memory segment to the newly applied memory space.

[0131] Step 6053, the LMD receives the second information sent by the target APP, where the second information is used to instruct the target APP to complete the recovery of the data in the corresponding memory segment in the abnormal memory block.

[0132] In this embodiment, after the target APP migrates the data stored in the abnormal memory block, the target APP also needs to send second information to the LMD to indicate that the target APP has completed the migration of the data in the abnormal memory block.

[0133] If the target APP determines that no data is stored in the abnormal memory block, the target APP may directly send the second information to the LMD.

[0134] Step 6054, the LMD deletes the memory area corresponding to the abnormal memory block in the computing device.

[0135] In this embodiment, there may be multiple target apps associated with the abnormal memory block, and the LMD needs to ensure that all target apps associated with the abnormal memory block have completed the recovery of data in the corresponding memory segment in the abnormal memory block. Then, the LMD deletes the memory area mapped by the abnormal memory block on the computing device.

[0136] After LMD deletes the memory area mapped by the abnormal memory block on the computing device, LMD can also delete the correspondence between the abnormal memory block and the target APP stored in the computing device. When the correspondence between the target APP and the abnormal memory block is no longer stored in the computing device, the target APP cannot access the abnormal memory block according to the correspondence between the target APP and the abnormal memory block stored in the computing device, thus achieving the purpose of deleting the memory area corresponding to the abnormal memory block in the computing device.

[0137] Step 606: FM receives an unbinding notification sent by the computing device, where the unbinding notification is used to indicate that the computing device has been unbound from the associated memory block.

[0138] In this embodiment, after the LMD deletes the memory area corresponding to the abnormal memory block from the computing device, the LMD also needs to send an unbinding notification to the FM to notify the FM that the computing device has been unbound from the abnormal memory block.

[0139] Step 607: FM deletes the association between the memory block marked as "unallocatable state" and the computing device.

[0140] In this embodiment, after receiving the unbinding notification sent by the LMD, the FM needs to delete the association between the memory block in the memory pool that is bound to the computing device and marked as "unallocatable state" and the computing device.

[0141] In the above embodiment, the execution order of step 6054, step 606, and step 607 can be adjusted. For example, step 606 and step 607 can be executed first and then step 6054. In a possible example, Figure 7 As shown, after the LMD receives the second message sent by the target APP (ie Figure 6 After step 6053 in the above), the method may further include steps 706 to 709. Among them, steps 701 to 704 are Figure 6 Steps 601 to 604 are the same as in FIG.

[0142] Step 701: FM establishes an event notification relationship with a CXL memory expansion device.

[0143] Step 702 : FM receives fault information from a CXL memory expansion device.

[0144] Step 703: The FM determines an abnormal memory block associated with the fault from the CXL memory pool according to the received fault information of the CXL memory expansion device, and marks the abnormal memory block as "unallocatable state".

[0145] Step 704 : FM sends an exception notification to the computing device that has a binding relationship with the memory block marked as “unallocatable state”.

[0146] Step 705: The computing device starts a passive recovery process of the associated memory block (abnormal memory block) according to the abnormal notification received from the FM.

[0147] In this embodiment, after receiving the abnormal notification sent by the FM, the LMD in the computing device needs to trigger at least one APP associated with the abnormal memory block indicated in the abnormal notification to start the passive recovery process of the abnormal memory block. The passive recovery process of the abnormal memory block includes: steps 7051-7053.

[0148] Step 7051: The LMD sends first information to the target APP, where the first information is used to instruct the target AAP to recycle data in a corresponding memory segment in the abnormal memory block.

[0149] Step 7052: The target AAP reclaims the data in the corresponding memory segment in the abnormal memory block.

[0150] Step 7053, the LMD receives the second information sent by the target APP, where the second information is used to instruct the target APP to complete the recovery of the data in the corresponding memory segment in the abnormal memory block.

[0151] Step 706 : The FM receives third information sent by the computing device, where the third information is used to indicate that the computing device has completed the recovery of data in the associated abnormal memory block.

[0152] Step 707: FM deletes the association between the memory block marked as "unallocatable state" and the computing device.

[0153] Step 708 : The LMD receives fourth information sent by the FM, where the fourth information is used to indicate that the FM has removed the abnormal memory block associated with the computing device from the CXL memory pool.

[0154] Step 709: The LMD deletes the memory area corresponding to the abnormal memory block in the computing device.

[0155] In the embodiment of the present application, FM monitors the failure of the CXL memory expansion device. After obtaining the failure information of the CXL memory expansion device, FM deletes the abnormal memory blocks in the CXL memory pool that are not bound to the computing device in advance, thereby avoiding other computing devices from applying for abnormal memory blocks when applying for memory blocks, and improving the availability of memory resources in the CXL memory pool. FM manages the memory blocks in the pool space of the CXL memory expansion device according to the failure of the CXL memory expansion device obtained, and minimizes the memory blocks in abnormal states that the computing device applies for from the memory pool, thereby supplementing the RAS capability of the pooled system. Secondly, after obtaining the failure information of the CXL memory expansion device, FM determines the abnormal memory blocks in the memory pool associated with the failure information, and triggers the computing device associated with the abnormal memory blocks to start the recovery mechanism for the abnormal memory blocks, thereby reducing the business loss of using the memory blocks in the CXL memory pool.

[0156] Next, another fault handling method provided in the embodiment of the present application is introduced. This fault handling method is mainly used for Figure 5 The computing system shown. Figure 5 In the computing system shown, a CXL memory expansion device can be connected to at least two computing devices via a CXLSwitch.

[0157] For example, Figure 8 A flowchart of another fault handling method provided by an embodiment of the present application is shown. Figure 8 The method includes: step 801 to step 807. Among them, the implementation process of step 803 to step 807 is the same as the implementation process of step 603 to step 607 in the above embodiment, and will not be repeated here.

[0158] Step 801: FM establishes an event notification relationship with a CXL memory expansion device through a CXL Switch.

[0159] In this embodiment, the CXL memory expansion device is connected to at least two computing devices through a CXL Switch. FM can be deployed on a computing device or on a CXL Switch, or on other servers. FM needs to establish an event notification relationship with each CXL memory expansion device. For example, FM and the CXL memory expansion device can establish an event notification relationship through the RAS protocol, that is, FM can obtain abnormal events on the CXL memory expansion device through the polling management interface. For CXL memory expansion devices connected through a CXL Switch to form a CXL memory pool, the management interface can provide MCTP CCI for the CXL Switch.

[0160] Step 802: FM receives device fault information sent by CXL Switch.

[0161] In this embodiment, the CXL memory expansion device supports RAS technology, and when a CXL memory expansion device fails, the CXL memory expansion device will report an abnormal event. The CXL memory expansion device failure includes but is not limited to an abnormality in the associated link of the CXL memory expansion device, an error in the controller of the CXL memory expansion device, an abnormality in the memory particles carried by the CXL memory expansion device, etc.

[0162] When a CXL memory expansion device fails, the CXL memory expansion device sends the fault information to the CXLSwitch, and the FM monitors the interface on the CXL Switch in real time to obtain the fault information reported by the CXL memory expansion device. The fault information carries information such as the identifier of the CXL memory expansion device that failed and the memory address of the failed device.

[0163] Step 803: The FM determines an abnormal memory block associated with the fault from the CXL memory pool according to the received fault information of the CXL memory expansion device, and marks the abnormal memory block as "unallocatable state".

[0164] Step 804 : FM sends an exception notification to the computing device that has a binding relationship with the memory block marked as “unallocatable state”.

[0165] Step 805 : The computing device starts a passive recycling process of the associated memory block according to the exception notification received from the FM.

[0166] In this embodiment, after receiving the abnormal notification sent by the FM, the LMD in the computing device needs to trigger the APP associated with the abnormal memory block indicated in the abnormal notification to start the passive recovery process of the abnormal memory block. The passive recovery process of the abnormal memory block includes: steps 8051-8054.

[0167] Step 8051: The LMD sends first information to the target APP, where the first information is used to instruct the target AAP to recycle data in a corresponding memory segment in the abnormal memory block.

[0168] Step 8052: The target AAP reclaims the data in the corresponding memory segment in the abnormal memory block.

[0169] Step 8053, the LMD receives the second information sent by the target APP, where the second information is used to instruct the target APP to complete the recovery of the data in the corresponding memory segment in the abnormal memory block.

[0170] Step 8054, the LMD deletes the memory area corresponding to the abnormal memory block in the computing device.

[0171] Step 806: FM receives an unbinding notification sent by the computing device, where the unbinding notification is used to instruct the computing device to unbind from the associated memory block.

[0172] Step 807: FM deletes the association between the memory block marked as "unallocatable state" and the computing device.

[0173] In the above embodiment, the execution order of step 8054, step 806, and step 807 can be adjusted. For example, step 806 and step 807 can be executed first and then step 8054. In a possible example, after the LMD receives the second message sent by the target APP (i.e. Figure 8 After step 8053 in the above), the method may further include steps 906 to 909. Among them, steps 901 to 904 are Figure 8 Steps 801 to 804 are the same as in FIG.

[0174] Step 901: FM establishes an event notification relationship with a CXL memory expansion device through a CXL Switch.

[0175] Step 902: FM receives device fault information sent by CXL Switch.

[0176] Step 903: The FM determines an abnormal memory block associated with the fault from the CXL memory pool according to the received fault information of the CXL memory expansion device, and marks the abnormal memory block as "unallocatable state".

[0177] Step 904 : FM sends an exception notification to the computing device that has a binding relationship with the memory block marked as “unallocatable state”.

[0178] Step 905 : The computing device starts a passive recycling process of the associated memory block according to the exception notification received from the FM.

[0179] In this embodiment, after receiving the abnormal notification sent by the FM, the LMD in the computing device needs to trigger the APP associated with the abnormal memory block indicated in the abnormal notification to start the passive recovery process of the abnormal memory block. The passive recovery process of the abnormal memory block includes: steps 9051-9053.

[0180] Step 9051: The LMD sends first information to the target APP, where the first information is used to instruct the target AAP to recycle data in a corresponding memory segment in the abnormal memory block.

[0181] Step 9052: The target AAP reclaims the data in the corresponding memory segment in the abnormal memory block.

[0182] Step 9053, the LMD receives the second information sent by the target APP, the second information is used to indicate that the target APP has completed the recovery of the data in the corresponding memory segment in the abnormal memory block. Step 906, the FM receives the third information sent by the computing device, the third information is used to indicate that the computing device has completed the recovery of the data in the associated abnormal memory block.

[0183] Step 907: FM deletes the association between the memory block marked as "unallocatable state" and the computing device.

[0184] Step 908 : The LMD receives fourth information sent by the FM, where the fourth information is used to indicate that the FM has removed the abnormal memory block associated with the computing device from the CXL memory pool.

[0185] Step 909: The LMD deletes the memory area corresponding to the abnormal memory block in the computing device.

[0186] In the embodiment of the present application, FM monitors the fault of the CXL memory expansion device through the CXL Switch. After obtaining the fault information of the CXL memory expansion device, FM marks the abnormal memory blocks in the CXL memory pool that are not bound to the computing device as unallocatable, thereby preventing other computing devices from applying for abnormal memory blocks when applying for memory blocks, and improving the availability of memory resources in the CXL memory pool. FM manages the memory blocks in the pooled space of the CXL memory expansion device according to the obtained fault of the CXL memory expansion device, and minimizes the number of computing devices applying for memory blocks in abnormal states from the memory pool, thereby supplementing the RAS capability of the pooled system. Secondly, after obtaining the fault information of the CXL memory expansion device, FM determines the abnormal memory blocks in the memory pool associated with the fault information, and triggers the computing device associated with the abnormal memory blocks to start the recovery mechanism for the abnormal memory blocks, thereby reducing the business loss of using the memory blocks in the CXL memory pool.

[0187] Illustratively, an embodiment of the present application further provides a fault handling method. It can be understood that this method is another way of expressing the fault handling method described above, and the two are combined. Fig.10 is a flowchart of a fault handling method provided in an embodiment of the present application. The method can be applied to a first computing device, on which a Figure 5 The FM module shown in Fig.10 As shown, the method includes the steps: step 1001-step 1003.

[0188] Step 1001: Obtain fault information of a CXL memory expansion device.

[0189] In this embodiment, the CXL memory expansion device supports RAS technology, and when a CXL memory expansion device fails, the CXL memory expansion device will report an abnormal event. The CXL memory expansion device failure includes but is not limited to an abnormality in the associated link of the CXL memory expansion device, an error in the controller of the CXL memory expansion device, an abnormality in the memory particles carried by the CXL memory expansion device, etc.

[0190] The FM on the first computing device monitors the management interface on the CXL memory expansion device in real time to obtain the fault information reported by the CXL memory expansion device. The fault information carries the identifier of the CXL memory expansion device where the fault occurs and the memory address where the fault occurs on the CXL memory expansion device. After receiving the fault information reported by the CXL memory expansion device, the FM on the first computing device determines the abnormal memory block in the CXL memory pool related to the fault information based on the identifier of the CXL memory expansion device carried in the fault information, the memory address where the fault occurs, and the mapping relationship between the memory of the CXL memory expansion device and the memory blocks in the CXL memory pool.

[0191] It is understandable that when multiple CXL memory expansion devices form a CXL memory pool, FM saves the mapping relationship between the memory of each CXL memory expansion device and the memory blocks in the CXL memory pool. After multiple CXL memory expansion devices form a CXL memory pool, the CXL memory expansion devices cannot perceive the memory blocks in the CXL memory pool. Therefore, after a memory failure occurs in the CXL memory expansion device, the CXL memory expansion device sends the failed memory address to FM, and FM determines the abnormal memory block related to the failure. Among them, FM can determine the identifier of the CXL memory expansion device based on the port that receives the failed memory address information.

[0192] In one possible example, the fault information sent by the CXL memory expansion device may also include the fault type. For example, the fault information reported by the CXL memory expansion device includes: the CXL memory expansion device identifier, the memory address where the fault occurred, and the first type, wherein the first type identifies the memory fault as a non-fatal fault. For example, a certain memory block or memory particle in the CXL memory expansion device will not be upgraded by the CXL memory expansion device due to the long usage time. Then, the CXL memory expansion device can determine that the memory block or memory particle has a first type of abnormality (fault).

[0193] After receiving the fault information sent by CXL, FM determines the abnormal memory block associated with the fault information in the CXL memory pool according to the fault information. Then, according to the fault type carried in the fault information, FM marks the memory block in the abnormal memory block that is not allocated to the second computing device as unallocatable, and marks the memory block in the abnormal memory block that has been allocated to the second computing device as read-only. After the memory block is marked as read-only, the second computing device can only read data from the memory block, but cannot write data to the memory block.

[0194] In a possible example, the CXL memory expansion device may be a CXL multi-head device, and the CXL multi-head device may be connected to multiple second computing devices. The first computing device may be one of the multiple second computing devices connected to the CXL memory expansion device. In this case, the first computing device may directly receive the fault information sent by the CXL memory expansion device.

[0195] In a possible example, a CXL memory expansion device may be connected to multiple second computing devices through a CXL Switch. The first computing device may be one of the multiple second computing devices, and the first computing device may also be a CXL Switch. When the first computing device is one of the multiple second computing devices, the first computing device may receive fault information sent by the CXL Switch.

[0196] Step 1002: determine an abnormal memory block related to the fault information according to the fault information, where the abnormal memory block is a memory block in the CXL memory pool.

[0197] In this embodiment, after receiving the fault information, the first computing device needs to filter out the abnormal memory blocks associated with the fault from the CXL memory pool according to the received fault information. For example, the FM can determine the CXL memory expansion device where the fault occurs according to the CXL memory expansion device identifier carried in the fault information, and determine the abnormal memory blocks in the CXL memory expansion device according to the memory address of the fault carried in the fault information.

[0198] Step 1003: Mark the abnormal memory block as unallocatable.

[0199] In this embodiment, the first computing device can run FM to mark the screened abnormal memory blocks as "non-allocatable". The memory blocks marked as "non-allocatable" are abnormal memory blocks and cannot be allocated to other computing devices for access, thereby preventing other computing devices from applying for abnormal memory blocks from the CXL memory pool through FM.

[0200] In an embodiment of the present application, FM monitors the fault of the CXL memory expansion device. After obtaining the fault information of the CXL memory expansion device, FM marks the memory blocks related to the fault information in the CXL memory pool as "unassignable state" in advance, thereby preventing other computing devices from applying for abnormal memory blocks when applying for memory blocks, thereby improving the availability of memory resources in the CXL memory pool.

[0201] In one possible example, for an abnormal memory block in a CXL memory pool, when a first memory block in the abnormal memory block is accessed by a second computing device, the first computing device needs to control the second computing device to stop accessing the first memory block. Specifically, the first computing device can run FM, and the first computing device needs to send first information to the second computing device. The first information is used to instruct the second computing device to unbind the abnormal memory block associated with the second computing device.

[0202] After the first computing device sends the first information to the second computing device, the first computing device also needs to receive the second information sent by the second computing device, wherein the second information is used to indicate that the second computing device has been unbound from the abnormal memory block.

[0203] After the first computing device receives the second information sent by the second computing device, the FM may delete the association between the abnormal memory block and the second computing device in the CXL memory pool.

[0204] Illustratively, an embodiment of the present application further provides a fault handling method. It can be understood that this method is another way of expressing the fault handling method described above, and the two are combined. Fig.11 is a flowchart of a fault handling method provided in an embodiment of the present application. The method can be applied to a second computing device. The second computing device can be Figure 5 Any one of the computing devices shown in . Fig.11 As shown, the method includes: step 1101-step 1103.

[0205] Step 1101: Obtain first information sent by a first computing device, where the first information is used to instruct a second computing device to stop accessing a first memory block in a CXL memory pool.

[0206] In this embodiment, the first memory block is the abnormal memory block in the above embodiment, and the first information carries the identifier of the first memory block. The first computing device is used to manage the CXL memory pool. Multiple CXL memory expansion devices can form a CXL memory pool. The CXL memory expansion devices in the CXL memory pool can be divided according to a certain size to obtain multiple memory blocks. The second computing device receives the first information sent by the first computing device, and the first information is used to instruct the second computing device to unbind from the first memory block.

[0207] In a possible example, the first computing device and the second computing device may be the same device. In this case, the function implemented by the first computing device may be used as a functional module in the second computing device.

[0208] Step 1102: Migrate data in the first memory block to the free memory of the second computing device.

[0209] In this embodiment, after receiving the first information, the second computing device determines at least one first application associated with the first memory block based on the identifier of the first memory block carried in the first information and the correspondence between the memory segments in the first memory block and the application stored in the second computing device. For each first application associated with the first memory block, it is necessary to determine whether the application has data stored in the corresponding memory segment of the first memory block. If data is stored, it is necessary to migrate the data stored by the application in the memory segment of the first memory block to the free memory of the second computing device. The free memory of the second computing device can be the local memory of the second computing device or the memory block in the CXL memory pool.

[0210] Step 1103: Delete the association between the first memory block and the second computing device.

[0211] In this embodiment, after the second computing device determines that the data stored in the first memory block of each of the at least one first application is migrated to the free memory of the second computing device, the association between the first memory block and each of the at least one first application is deleted.

[0212] It is understandable that the size of the sequence number of each step in the above embodiment does not mean the order of execution, and the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiment of the present application. In addition, in some possible implementations, each step in the above embodiment can be selectively executed according to actual conditions, and can be partially executed or fully executed, which is not limited here. In addition, all or part of any feature in the above embodiment can be freely and arbitrarily combined without contradiction. The combined technical solution is also within the scope of the present application.

[0213] Based on the method in the above embodiment, the embodiment of the present application also provides a structural diagram of a computing device, on which a FM module is deployed, and the electronic device can be used to execute the method in the above embodiment.

[0214] For example, Fig.12 A schematic diagram of the structure of a first computing device is shown. Fig.12As shown, the first computing device may include: a communication module 1210 , a storage module 1220 , and a FM module 1230 .

[0215] The communication module 1210 is used to communicate with a CXL memory expansion device or a CXL Switch to obtain fault information of the CXL memory expansion device.

[0216] The FM module 1230 is used to manage the memory blocks in the CXL memory pool obtained after the CXL memory expansion device is pooled. For example, the FM module can monitor the abnormal events of the CXL memory expansion device through the communication module 1210, and manage the memory blocks in the CXL memory pool according to the acquired abnormal events. The FM module 1230 can also allocate corresponding memory blocks to the computing device in the CXL memory pool according to the request of the second computing device.

[0217] After the FM module 1230 obtains the fault information of the CXL memory expansion device, the FM obtains the memory block associated with the fault information in the CXL memory pool, and marks the obtained memory block associated with the fault information as "non-allocatable state". Among them, the memory block marked as "non-allocatable state" is an abnormal memory block and cannot be allocated to other computing devices for access, thereby preventing other second computing devices from applying for abnormal memory blocks from the CXL memory pool through FM. For the memory block marked as "non-allocatable state" and has been allocated to the electronic device, the FM module needs to send abnormal notification information to the computing device associated with the memory block.

[0218] The storage module 1220 is used to store the association relationship between the memory block in the CXL memory pool and the second computing device.

[0219] In some possible embodiments, the first computing device may be a CXL Switch.

[0220] For example, Fig.13 A schematic diagram of the structure of a second computing device is shown. Fig.13 As shown, the second computing device may include: a communication module 1310 , a storage module 1320 , and an LMD module 1330 .

[0221] The communication module 1310 is used to communicate with the first computing device to obtain the abnormal notification information sent by the first computing device.

[0222] The LMD module 1330 is used to determine the APP associated with the abnormal memory block based on the abnormal notification information sent by the first computing device, and the abnormal notification information carries the identification information of the abnormal memory block. Then, the LMD module 1330 determines the APP associated with the abnormal memory block based on the identification information of the abnormal memory block and the association relationship between the APP and the memory blocks in the memory pool. After the LMD module 1330 obtains the APP associated with the abnormal memory block, the LMD module 1330 needs to migrate the data stored in the abnormal memory block and release the association relationship between the abnormal memory block and the associated APP.

[0223] The storage module 1330 may be configured to store associations between the APP on the second computing device and the memory blocks in the CXL memory pool.

[0224] In some possible embodiments, the first computing device and the second computing device may be the same computing device. When the first computing device and the second computing device are the same computing device, the first computing device may be used as a functional module on the second computing device to implement the function of the FM module.

[0225] Based on the method in the above embodiment, an embodiment of the present application provides a computer-readable storage medium, which stores a computer program. When the computer program runs on a processor, the processor executes the method in the above embodiment.

[0226] Based on the method in the above embodiment, an embodiment of the present application provides a computer program product, characterized in that when the computer program product runs on a processor, the processor executes the method in the above embodiment.

[0227] Based on the method in the above embodiment, the embodiment of the present application provides a computing device, and the computing device includes a motherboard and a chip. Among them, the chip is integrated on the motherboard, and the chip includes at least one memory for storing programs; at least one processor for executing the program stored in the memory, and when the program stored in the memory is executed, the processor is used to execute the method in the above embodiment. In the embodiment of the present application, the computing device can be a network device such as a server and a host. The method steps in the embodiment of the present application can be implemented by hardware, or by the processor executing software instructions. The software instructions can be composed of corresponding software modules, and the software modules can be stored in random access memory (random access memory, RAM), flash memory, read-only memory (read-only memory, ROM), programmable read-only memory (programmable rom, PROM), erasable programmable read-only memory (erasable PROM, EPROM), electrically erasable programmable read-only memory (electrically EPROM, EEPROM), register, hard disk, mobile hard disk, CD-ROM or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor so that the processor can read information from the storage medium and write information to the storage medium. Of course, the storage medium can also be a component of the processor. The processor and the storage medium may reside in an ASIC.

[0228] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the process or function described in the embodiment of the present application is generated in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions may be stored in a computer-readable storage medium or transmitted through the computer-readable storage medium. The computer instructions may be transmitted from a website site, computer, server or data center to another website site, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium may be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more available media integrated. The available medium may be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid state disk (SSD)), etc.

[0229] It should be understood that the various numerical numbers involved in the embodiments of the present application are only used for the convenience of description and are not used to limit the scope of the embodiments of the present application.

Claims

1. A fault handling method, characterized in that: Applied to a first computing device, the first computing device is used to manage a CXL memory pool, the CXL memory pool includes one or more CXL memory expansion devices, each of the CXL memory expansion devices includes a memory block, the method includes: Obtaining fault information of the CXL memory expansion device; Determine, according to the fault information, an abnormal memory block related to the fault information, wherein the abnormal memory block is a memory block in the CXL memory pool; The abnormal memory block is marked as an unallocatable state, where the unallocatable state is used to indicate that the memory block cannot be allocated to the second computing device.

2. The method according to claim 1, characterized in that The method further comprises: When a first memory block in the abnormal memory blocks is accessed by a second computing device, the second computing device is controlled to stop accessing the first memory block.

3. The method according to claim 1, characterized in that The obtaining of the fault information reported by the CXL memory expansion device includes: Directly obtain the fault information reported by the CXL memory expansion device, or, Fault information reported by the CXL memory expansion device through a CXL switch is obtained, and the CXL switch is connected to at least two CXL memory expansion devices.

4. The method according to claim 1, characterized in that: The controlling the second computing device to stop accessing the first memory block comprises: Sending first information to the second computing device, where the first information is used to instruct the second computing device to stop accessing the first memory block.

5. The method according to claim 2, characterized in that: The method further comprises: receiving second information sent by the second computing device, where the second information is used to indicate that the second computing device has stopped accessing the first memory block; The association between the first memory block and the second computing device is deleted.

6. The method according to any one of claims 1 to 5, characterized in that: The fault information includes: a CXL memory expansion device identifier and a memory address where the fault occurs.

7. A fault handling method, characterized in that: Applied to a second computing device, the method includes: Acquire first information sent by a first computing device, the first information being used to instruct the second computing device to stop accessing a first memory block in a CXL memory pool, wherein the first computing device is used to manage the CXL memory pool, and the first computing device sends the first information when confirming that the first memory block is faulty; Migrating the data in the first memory block to the free memory of the second computing device; The association between the first memory block and the second computing device is deleted.

8. The method according to claim 7, characterized in that The step of migrating the data in the first memory block to the free memory on the second computing device includes: Determining, according to the identifier of the first memory block, at least one first application program associated with the first memory block in the second computing device; For any first application program among the at least one first application program, data of the first application program stored in the first memory block is migrated to the free memory of the second computing device.

9. The method according to claim 7, characterized in that: The deleting the association relationship between the first memory block and the second computing device includes: After determining that the data stored in the first memory block of each of the at least one first application is migrated to the free memory of the second computing device, the association relationship between the first memory block and each of the at least one first application is deleted.

10. A computing device, characterized in that: include: at least one memory for storing a program; At least one processor is used to execute the program stored in the memory. When the program stored in the memory is executed, the processor is used to execute the method according to any one of claims 1 to 6 or claims 7 to 9.

Citation Information

Cited By

  • Memory error processing method, system and device, storage medium and program product

    CN121070675A