Data backup method, CXL controller, CXL module, and storage medium

WO2025185211A8PCT designated stage Publication Date: 2025-10-02BEIJING SUPERSTRING ACAD OF MEMORY TECH
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/131014
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-03-06
Filing Date
2024-11-08
Publication Date
2025-10-02

AI Technical Summary

Technical Problem

How to achieve data backup while reducing the cost of the CXL module, especially when the volatile memory capacity is large, the capacity requirement of the built-in capacitor is too large.

Method used

The readable and writable data is stored in the volatile memory and the read-only data is stored in the non-volatile memory. When backup is required, only the readable and writable data in the volatile memory is flushed to the non-volatile memory for backup, avoiding duplicate backup of the read-only data.

Benefits of technology

This reduces the amount of data that needs to be backed up and the capacity requirements of the built-in capacitors, thereby reducing the cost of the CXL module.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024131014_02102025_PF_FP_ABST
    Figure CN2024131014_02102025_PF_FP_ABST
Patent Text Reader

Abstract

A data backup method, a CXL controller, a CXL module, and a storage medium. The CXL controller is configured to: store readable and writable data in a volatile memory; store read-only data in a non-volatile memory, or store the read-only data in the volatile memory and the non-volatile memory; and when the data in the volatile memory needs to be backed up, brush the readable and writable data stored in the volatile memory into the nonvolatile memory for backup.
Need to check novelty before this filing date? Find Prior Art

Description

Data backup method, CXL controller, CXL module and storage medium

[0001] This application claims priority to the Chinese patent application filed with the China Patent Office on March 6, 2024, with application number 202410254913.X and invention name “A data backup method, CXL controller, CXL module and storage medium”, the content of which should be understood as incorporated into this application by reference. Technical Field

[0002] The embodiments of the present disclosure relate to, but are not limited to, the field of data access technology, and in particular to a data backup method, a CXL controller, a CXL module, and a storage medium. Background Art

[0003] Compute Express Link (CXL) is a high-speed interconnect technology that supports high-bandwidth, low-latency data transmission, offers enhanced flexibility and scalability, and enables the mixed use of different hardware devices. CXL has a wide range of applications, including data centers, artificial intelligence, and processor interconnection. In data centers, CXL interconnects different computing and storage resources, improving system performance and efficiency. In artificial intelligence, CXL enables accelerators such as GPUs and FPGAs to collaborate better with the main processor, accelerating AI model training and inference. In processor interconnection, CXL interconnects processors from different vendors, improving overall system performance and flexibility.

[0004] Summary of the Invention

[0005] The following is a summary of the subject matter described in detail herein. This summary is not intended to limit the scope of the claims.

[0006] An embodiment of the present disclosure provides a CXL module, including a CXL controller, and a volatile memory and a non-volatile memory connected to the CXL controller. The CXL controller is configured to perform the following processing: storing readable and writable data in the volatile memory; storing read-only data in the non-volatile memory, or storing data in the volatile memory and the non-volatile memory; and when data in the volatile memory needs to be backed up, flushing the readable and writable data stored in the volatile memory to the non-volatile memory for backup.

[0007] An embodiment of the present disclosure further provides a data backup method, which is applied to a CXL controller in a CXL module, wherein the CXL controller is connected to a volatile memory and a non-volatile memory in the CXL module. The data backup method comprises: storing readable and writable data in the volatile memory; storing read-only data in the non-volatile memory, or storing read-only data in the volatile memory and the non-volatile memory; and when data in the volatile memory needs to be backed up, flushing the readable and writable data stored in the volatile memory to the non-volatile memory for backup. The situations in which data in the volatile memory needs to be backed up include at least one of a shutdown, power off, and periodic backup.

[0008] An embodiment of the present disclosure further provides a CXL controller in a CXL module, comprising a processor, a CXL interface for connecting to a host, a first storage interface for connecting to a volatile memory, a second storage interface for connecting to a non-volatile memory, and a built-in capacitor, wherein: the processor is configured to execute the data backup method described in any embodiment of the present disclosure.

[0009] An embodiment of the present disclosure further provides a non-transitory computer storage medium storing a computer program. When the computer program is executed by a processor, the data backup method described in any embodiment of the present disclosure is implemented.

[0010] Still other aspects will become apparent upon reading and understanding the accompanying drawings and detailed description.

[0011] Summary of the Figures

[0012] The accompanying drawings are used to provide an understanding of the technical solution of the present disclosure and constitute a part of the specification. Together with the embodiments of the present disclosure, they are used to explain the technical solution of the present disclosure and do not constitute a limitation to the technical solution of the present disclosure.

[0013] FIG1 is an architecture diagram of a system including a host and a CXL module according to an embodiment of the present disclosure;

[0014] FIG2 is a schematic structural diagram of a CXL module according to an embodiment of the present disclosure;

[0015] FIG3 is a flow chart of a data backup method according to an embodiment of the present disclosure;

[0016] FIG4 is a schematic diagram of the structure of a CXL controller according to an embodiment of the present disclosure.

[0017] Details

[0018] The embodiments of the present disclosure will be described in detail below with reference to the accompanying drawings. Unless there is any conflict, the embodiments and features in the embodiments of the present disclosure can be combined with each other in any manner.

[0019] The embodiments of the present disclosure are not necessarily limited to the dimensions shown in the drawings, and the shapes and sizes of the components in the drawings do not reflect the true proportions. In addition, the drawings schematically illustrate ideal examples, and the embodiments of the present disclosure are not limited to the shapes or values ​​shown in the drawings.

[0020] In the present disclosure, ordinal numbers such as “first” and “second” are provided to avoid confusion among constituent elements and do not indicate any order, quantity or importance.

[0021] The present disclosure describes multiple embodiments, but this description is exemplary rather than restrictive, and it will be apparent to those skilled in the art that more embodiments and implementations may be included within the scope of the embodiments described in the present disclosure. Although many possible feature combinations are shown in the drawings and discussed in the detailed description, many other combinations of the disclosed features are also possible. Unless specifically limited, any feature or element of any embodiment may be used in combination with any other feature or element in any other embodiment, or may replace any other feature or element in any other embodiment.

[0022] The present disclosure includes and contemplates combinations of features and elements known to those of ordinary skill in the art. The disclosed embodiments, features, and elements of the present disclosure may also be combined with any conventional features or elements to form schemes defined by the claims. Any features or elements of any embodiment may also be combined with features or elements from other disclosed schemes to form another scheme defined by the claims. Therefore, it should be understood that any features shown and discussed in this disclosure may be implemented individually or in any appropriate combination. Therefore, the embodiments are not subject to other limitations except for the limitations made according to the appended claims and their equivalents. In addition, various modifications and changes may be made within the scope of protection of the appended claims.

[0023] In addition, when describing representative embodiments, the specification may have presented the method and process as a specific sequence of steps. However, to the extent that the method or process does not rely on the specific order of the steps described in the present disclosure, the method or process should not be limited to the steps in the specific order described. As one of ordinary skill in the art will understand, other orders of steps are also possible. Therefore, the specific order of the steps set forth in the specification should not be interpreted as a limitation on the claims. In addition, the claims to the method and process should not be limited to performing their steps in the order written, and those skilled in the art can readily understand that these orders can be changed and still remain within the spirit and scope of the embodiments of the present disclosure.

[0024] CXL is based on PCIe 5.0 and runs on top of the PCIe physical layer. Based on the characteristics of memory access, CXL is divided into three sub-protocols: CXL.io, CXL.mem, and CXL.cache. Accordingly, CXL devices (also known as CXL modules) are categorized as Type 1 CXL devices (Type 1 devices), Type 2 CXL devices (Type 2 devices), and Type 3 CXL devices (Type 3 devices). Type 2 and Type 3 devices can have multiple device memories, such as DDR and HBM (High Bandwidth Memory). For example, a Type 2 device could be an accelerator card (such as a GPU) in a real-world application scenario. The host provides data, and the accelerator card performs computations. The HDM model allows the host to directly manage and control the storage space on the Type 2 device, dynamically allocate and configure device memory based on application requirements, and directly perform read and write operations. CXL Type 3 devices can provide large-capacity DRAM for the host and can also support persistent media (i.e., non-volatile media, such as flash memory chips).

[0025] Taking a CXL module (such as a CXL Type 3 device or a CXL Type 2 device) equipped with a DRAM chip and a flash memory chip as an example, when the data in the volatile memory needs to be backed up, such as in a scenario where the system crashes due to an abnormality, the data in the DRAM chip can be flushed to the flash memory chip through a built-in capacitor for backup, so that the data can be restored after the system is powered on again. However, the larger the capacity of the DRAM chip in the CXL module, the more data needs to be backed up, and a larger capacity built-in capacitor is required to realize the backup function. However, due to the cost of the equipment, the built-in capacitor in the CXL module cannot be too large. How to reduce the cost of the CXL module while achieving data backup has become an industry challenge.

[0026] To this end, one embodiment of the present disclosure provides a CXL module 1, as shown in Figure 1 , comprising a CXL controller 11, a volatile memory 12 connected to the CXL controller 11, and a non-volatile memory 13. The CXL module 1 is connected to a host 2 via a CXL interface. The CXL controller 11 may be connected to one or more volatile memories 12 and one or more non-volatile memories 13. The CXL interface supports both the CXL.mem and CXL.cache protocols.

[0027] The CXL controller 11 is configured to perform the following processing: storing readable and writable data in the volatile memory; storing read-only data in the non-volatile memory, or storing data in the volatile memory and the non-volatile memory; and when it is necessary to back up the data in the volatile memory, flushing the readable and writable data stored in the volatile memory to the non-volatile memory for backup.

[0028] Among the data that the host needs to store in the CXL module, some data can only be read after storage and cannot be modified by writing. This data is called read-only data, or the read-write attribute of this data is read-only. Some data can be read after storage and can also be modified by writing new data. This data is called read-write data, or the read-write attribute of this data is read-write.

[0029] When the CXL module of the disclosed embodiment stores data, it stores readable and writable data in a volatile memory and read-only data in a non-volatile memory. When the data in the volatile memory needs to be backed up (such as when the host is down), the host is no longer working, and the CXL controller only needs to flush the readable and writable data in the volatile memory to the non-volatile memory (or move it to the non-volatile memory) for backup. The read-only data has already been stored in the non-volatile memory and does not need to be flushed again. This reduces the amount of data that needs to be backed up and the capacity of the built-in capacitor required for data backup, thereby reducing equipment costs while achieving data backup.

[0030] In an exemplary embodiment of the present disclosure, the volatile memory includes a DRAM chip 12', and the non-volatile memory includes a flash memory controller 131 and one or more flash memory chips 133 connected to the flash memory controller, as shown in Figure 2. The CXL controller can utilize a CXL chip 11'. Conventional parallel or serial memory interfaces, or CXL interfaces, can be used between the CXL chip 11' and the DRAM chip 12' and flash memory controller 131. However, the present disclosure is not limited to this embodiment; for example, the volatile memory and non-volatile memory in the CXL module can utilize other types of memory or a combination of multiple types of memory.

[0031] In an exemplary embodiment of the present disclosure, the situation in which the data in the volatile memory needs to be backed up includes at least one of a shutdown, power off, and periodic backup. In one example, the volatile memory is configured as the system's memory, and the CXL module backs up the data in the volatile memory (i.e., the memory data) when it detects a shutdown; when the system is shut down normally, the CXL module may not back up the data in the volatile memory (but it may back up in other application scenarios, depending on the specific application scenario). In this example, the CXL module can enable or disable the function of periodically backing up the data in the volatile memory according to the host's instructions, and the backup period can also be configured by the host. However, in other examples, the CXL module can also periodically back up the data in the volatile memory on its own, or not periodically back up the data in the volatile memory.

[0032] In an exemplary embodiment of the present disclosure, the attribute exposed by the CXL module to the host is a CXL volatile storage device; the CXL controller is configured to store readable and writable data in the volatile memory, and store read-only data in the volatile memory and the non-volatile memory. The CXL controller stores the readable and writable data in the volatile memory, and stores read-only data in the volatile memory and the non-volatile memory, comprising: receiving a write data request sent by the host through a CXL interface, the write data request carrying a destination address and the read / write attributes of the data to be written, the destination address being the address of the volatile memory; if it is determined based on the read / write attributes that the data to be written is readable and writable data, writing the readable and writable data to the volatile memory based on the destination address; if it is determined based on the read / write attributes that the data to be written is read-only data, writing the read-only data to the volatile memory based on the destination address, and backing up the read-only data to the non-volatile memory.

[0033] The disclosed embodiments provide a data protection mechanism for abnormal downtime. The CXL controller stores readable and writable data in volatile memory and read-only data in both non-volatile memory and volatile memory. During a downtime, only the readable and writable data in the volatile memory needs to be flushed to the non-volatile memory for backup. The read-only data is already backed up in the non-volatile memory when it is written. This reduces the amount of data that needs to be backed up during a downtime and the capacity of the built-in capacitors required for data backup. This reduces the cost of the CXL module while achieving data backup. This embodiment is suitable for CXL modules with large volatile memory storage space and a large amount of backup data, but is also suitable for CXL modules with smaller volatile memory storage space.

[0034] In this embodiment, the CXL module exposes to the host the attributes of a Type 3 CXL volatile memory device (CXL Type 3 Mem Device). When the host writes data, it provides the data's read / write attribute information. Based on the data's read / write attributes, the controller within the CXL module stores the readable and writable data in volatile memory, such as a DRAM chip, and stores the read-only data in volatile memory and non-volatile memory, such as a flash memory chip. The host can detect the CXL module's data persistence capabilities, but the CXL module controller's operation of backing up read-only data to non-volatile memory is transparent to the host, and the host does not participate in the data backup.

[0035] As an example, the process virtual address segment (Process Virtual Address Segment) run by the host-side operating system includes: data segment (data segment), code segment (text segment), heap (heap), stack (stack), system area (system), environment variable (env), command line argument count (argc), command line argument vector (argv), etc., wherein the data of the data segment (data segment) and code segment (text segment) is read-only data (the read-write attribute is RO, i.e., read-only), and the data of other segments is readable and writable data (the read-write attribute is RW, i.e., read-write). The host-side system software can determine the read-write attributes of the data to be written based on the process virtual memory segment, and fill the determined read-write attributes of the data to be written into the write data request.

[0036] In an exemplary embodiment of the present disclosure, the CXL module exposes to the host the attribute of a CXL volatile memory device. The CXL controller is further configured to divide the storage space of the volatile memory into multiple areas, including a read-only area and a read-write area; the read-only area is used to store read-only data, and the read-write area is used to store read-write data. This example separates the storage area for read-only data from the storage area for read-write data in the volatile memory, facilitating the CXL controller's backup of read-write data. The CXL controller only needs to back up data in the read-write area, not the read-only area, and eliminates the need to record the read-write attributes of the stored data.

[0037] In one example of this embodiment, the CXL controller divides the storage space of the volatile memory into multiple areas, including: according to a storage area setting instruction sent by the host, setting part of the storage space of the volatile memory as a read-only area and setting other areas of the volatile memory as readable and writable areas. The storage area setting instruction may adopt the format of an M2S request (host-to-device request) of the CXL.mem protocol. The opcode in the M2S request indicates that the operation to be performed is to set a read-only area, and carries the starting address and length information of the read-only area. It may also carry one of the two types of information, and the other is set by the CXL controller and notified to the host.

[0038] In this example, the reserved operation code (e.g., 0110b) in the MemOpcode field of the M2S request can be used to indicate that the operation to be performed is to set a read-only region (Set Read-Only Region), the Address[51:6] field can be used to indicate the start address of the read-only region, and the Rsvd (6-bit) field can be used to indicate the length of the read-only region. The granularity of this length (the capacity increased by each increase in length) can be defined by the size of a cache line. The number of cache lines in a cache line can be defined by the field<SnpType,MetaField,MetaValue> Jointly stated.

[0039] After the CXL module sets part of the volatile memory's storage space as read-only, according to the read-only area setting command sent by the host, it can return the command execution result via an S2M request (device-to-host request) using the CXL.mem protocol. This execution result can be fed back using the Metavalue field in the S2M NDR (Response) (i.e., this field is reused).

[0040] The manner in which the CXL controller divides the storage space of the volatile memory into multiple regions is not limited to the above example. In another example, the host may send a region setting instruction that also carries the starting address and length information of the read-only region and the read / write region. The CXL controller then sets the read-only region and the read / write region in the volatile memory based on the region setting instruction. In yet another example, the host sends a read-only region setting instruction that carries the starting address and length information of the read-only region, and also sends a read / write region setting instruction that carries the starting address and length information of the read / write region. The CXL controller then sets the read-only region and the read / write region in the volatile memory based on these two instructions, respectively. In other examples, the read-only region and the read / write region in the volatile memory may be set independently by the CXL controller, rather than based on instructions sent by the host.

[0041] In an exemplary embodiment of the present disclosure, the CXL module exposes to the host an attribute of a CXL volatile memory device, wherein the volatile memory includes a read-only area and a read-write area. The CXL controller is further configured to: set a portion of the non-volatile memory as a read-only data backup area to back up data in the read-only area, set another portion of the non-volatile memory as a read-write data backup area to back up data in the read-write area, and record a first address correspondence between a starting address of the read-only area and a starting address of the read-only data backup area, and a second address correspondence between a starting address of the read-write area and a starting address of the read-write data backup area.

[0042] The CXL controller writes the read-only data into the volatile memory based on the destination address and backs up the read-only data to the non-volatile memory, including: writing the read-only data into a read-only area of ​​the volatile memory based on the destination address, and writing the read-only data into a read-only data backup area of ​​the non-volatile memory based on a correspondence between the destination address and the first address.

[0043] In the embodiment of the present disclosure, when the volatile memory includes a read-only area and a read-write area, a read-only data backup area and a read-write data backup area are correspondingly set for the non-volatile memory, and an address correspondence between the two is established. During the backup, the backup address is also determined based on the address correspondence. In this way, the address of the data block in the read-only data backup area can be calculated based on the address of the data block in the read-only area. This embodiment realizes the correspondence between the storage locations of read-only data in the volatile memory and the non-volatile memory through the correspondence between the areas. It is not necessary to record the storage addresses of the data in the volatile memory and the non-volatile memory in units of blocks, which simplifies the implementation of data backup and recovery. The data of the above-mentioned address correspondence can be written to the storage area specified by the non-volatile memory for storage. However, in other embodiments, for example, when different versions of data need to be backed up, the correspondence between the address of the data block in the read-only area and the address in the read-only data backup area can also be recorded in units of blocks.

[0044] In one example of this embodiment, the CXL controller is further configured to perform any one or more of the following processes: receiving a read-only area clear instruction sent by a host to clear the read-only area of ​​the volatile memory and the read-only data backup area of ​​the non-volatile memory; receiving a readable and writable area clear instruction sent by a host to clear the readable and writable area of ​​the volatile memory and the readable and writable data backup area of ​​the non-volatile memory; receiving a data delete instruction sent by a host for read-only data, deleting the read-only data in the read-only area of ​​the volatile memory based on the starting address and length of the read-only data carried in the data delete instruction, and deleting the read-only data in the read-only data backup area of ​​the non-volatile memory based on the correspondence between the starting address, length, and first address of the read-only data; receiving a data delete instruction sent by a host for readable and writable data, deleting the readable and writable data in the readable and writable area of ​​the volatile memory based on the starting address and length of the readable and writable data carried in the data delete instruction, and deleting the readable and writable data in the readable and writable data backup area of ​​the non-volatile memory based on the correspondence between the starting address, length, and second address of the readable and writable data.

[0045] Exemplarily, the region clear instruction can be a read-only region clear instruction, which can be formatted as an M2S request in the CXL.mem protocol. The opcode in the M2S request (e.g., the opcode 0111b reserved in the MemOpcode field) indicates that the operation to be performed is to clear the read-only region. When clearing the read-only region of volatile memory (e.g., deleting the associated metadata), the CXL controller also needs to clear the read-only data backup area of ​​the non-volatile memory corresponding to the read-only region. After the clear is complete, the CXL controller can return the execution result of the region clear instruction via an S2M request in the CXL.mem protocol.

[0046] After the host clears the read-only area of ​​the volatile memory and the read-only data backup area of ​​the non-volatile memory, the host can delete the read-only data stored in the CXL module (including the read-only data stored in the volatile memory and the read-only data stored in the non-volatile memory). Accordingly, the CXL controller is further configured to: receive a data delete instruction for read-only data sent by the host, delete the read-only data in the read-only area of ​​the volatile memory based on the starting address and length of the read-only data carried in the data delete instruction, and delete the read-only data in the read-only data backup area of ​​the non-volatile memory based on the correspondence between the starting address, length, and the first address of the read-only data. Exemplarily, the data deletion instruction may adopt the format of the M2S request of the CXL.mem protocol, the starting address of the data may be represented by the address field in the M2S request, the operation code MemInv of the reusable field MemOpcode, combined with the Rsvd field (the value of the Rsvd field is used to indicate the length of the data to be deleted) to indicate that the operation to be performed is to delete the data, or a newly defined reserved operation code MemInvRdOnly may indicate that the operation to be performed is to delete the data.

[0047] This example can clear the read-only area of ​​the volatile memory and the read-only data backup area of ​​the non-volatile memory in the CXL module, and delete the read-only data stored in the read-only area and the read-only data backup area after clearing, thereby freeing up storage space in the volatile memory and the non-volatile memory.

[0048] During system operation, this embodiment enables periodic backup of data in the read-write area. In one example, the CXL controller is further configured to periodically back up all read-write data in the read-write area to the read-write data backup area based on a second address correspondence. In another example of this embodiment, the CXL controller is further configured to periodically back up read-write data in selected subareas to corresponding subareas of the read-write data backup area based on the second address correspondence. The selected subareas are subareas of the multiple subareas into which the read-write area is divided that have data modifications during the current cycle. In the first of these two examples, backing up all read-write data each time is simpler to implement, while the second example backs up only the read-write data in the subareas with modified data each time, reducing the amount of data backed up each time. The multiple subareas can be of equal size, and the CXL controller can store the subarea sizes as metadata.

[0049] As an example, the first example above can be implemented in the following two ways. In the first way, all readable and writable data in the readable and writable area can be written to the same area of ​​the readable and writable data backup area during each backup, that is, overwriting the original backup. In the second way, when there is sufficient space, the original backup is not overwritten, but multiple versions of the backup data are retained. This allows the host to perform data recovery based on different versions of the backup data as needed. When space is insufficient, the latest backup data can overwrite the earliest backup data.

[0050] In the example in which the CXL controller periodically backs up all readable and writable data in the readable and writable area to the readable and writable data backup area, the CXL controller flushes the readable and writable data stored in the volatile memory to the non-volatile memory for backup when data in the volatile memory needs to be backed up. This includes flushing all readable and writable data in the readable and writable area of ​​the volatile memory to the readable and writable data backup area for backup in the event of a system outage or shutdown.

[0051] In the example described above where the CXL controller periodically backs up the readable and writable data in selected sub-areas to the readable and writable data backup area, the CXL controller flushes the readable and writable data stored in the volatile memory to the non-volatile memory for backup when backup of the data in the volatile memory is required. This includes: in the event of a system outage or shutdown, flushing the readable and writable data in designated sub-areas to corresponding sub-areas of the readable and writable data backup area for backup. The designated sub-areas are sub-areas within the readable and writable area that have had data modified since the last backup. This example only requires backing up the readable and writable data in some sub-areas of the readable and writable area in the event of a system outage, further reducing the amount of backup data.

[0052] In an exemplary embodiment of the present disclosure, the CXL module exposes to the host the attribute of a CXL volatile storage device, wherein the volatile memory includes a read-only area and a read-write area, and the non-volatile memory includes a read-only data backup area and a read-write data backup area. The CXL controller is further configured to, upon receiving a data recovery command from the host, restore the read-only data in the read-only data backup area to the read-only area based on the first address correspondence, and restore the read-write data in the read-write data backup area to the read-write area based on the second address correspondence. The CXL controller may record in the CXL module's metadata space whether data backup has been performed. Upon power-up, the host may check the CXL module's metadata space. If it determines that the CXL module has previously performed data backup, it may send a data recovery command to the CXL module.

[0053] In an exemplary embodiment of the present disclosure, storage resources of the CXL module are exposed to a host in the form of multiple logical devices, the volatile memory is exposed as a volatile logical device, and the non-volatile memory is exposed as a non-volatile logical device. The CXL controller stores readable and writable data in the volatile memory and read-only data in the non-volatile memory. The CXL controller stores the readable and writable data in the volatile memory and read-only data in the non-volatile memory, comprising: receiving, via a CXL interface, a first write data request sent by the host to write read-only data, and writing the read-only data to the non-volatile memory based on a destination address carried in the first write data request, wherein the destination address carried in the first write data request is the address of the non-volatile logical device; and receiving, via the CXL interface, a second write data request sent by the host to write readable and writable data, and writing the readable and writable data to the volatile memory based on the destination address carried in the second write data request, wherein the destination address carried in the second write data request is the address of the volatile logical device.

[0054] In this embodiment, writing read-only data to the non-volatile memory can be done directly or indirectly, for example, by first writing the read-only data to the cache of the CXL controller and then writing the cached read-only data to the non-volatile memory (if the cache needs to be released). Writing the read-only data to the cache first can speed up reading the read-only data. In this embodiment, when writing data to the non-volatile memory based on the destination address carried by the first write data request or the second write data request, it is necessary to convert the logical address of the logical device into a physical address of the non-volatile memory or the volatile memory, and then perform the write operation based on the physical address.

[0055] The disclosed embodiments provide another data protection mechanism for abnormal downtime. The CXL module stores readable and writable data in volatile memory and read-only data in non-volatile memory. During a downtime, only the readable and writable data in the volatile memory needs to be flushed to the non-volatile memory for backup, eliminating the need to flush the read-only data to the non-volatile memory for backup. This reduces the amount of data to be backed up and the capacity of the built-in capacitor, thereby achieving data backup while reducing the cost of the CXL module. This embodiment is suitable for, but is not limited to, CXL modules with large volatile memory spaces and potentially large amounts of backup data.

[0056] In an exemplary embodiment of the present disclosure, the storage resources of the CXL module are exposed to a host in the form of multiple logical devices. The CXL controller is further configured to: set a portion of the storage space of the non-volatile memory as a backup area to back up readable and writable data in the volatile memory, and record the starting address of the backup area; periodically back up all readable and writable data in the volatile memory to the backup area based on the starting address of the backup area; or divide the storage space of the volatile memory into multiple sub-areas, and periodically back up the readable and writable data in a selected sub-area to the backup area based on the starting address of the backup area, where the selected sub-area refers to a sub-area among the multiple sub-areas in which data has been modified in the current cycle.

[0057] This embodiment sets a portion of the non-volatile memory's storage space as a backup area to back up the readable and writable data in the volatile memory. By using the correspondence between the starting addresses of the areas, the readable and writable data in the volatile memory can be backed up and the backed-up data restored. This eliminates the need to record the address correspondence between the volatile and non-volatile memory in separate blocks, simplifying data backup implementation.

[0058] Another embodiment of the present disclosure further provides a data backup method, which is applied to a CXL controller in a CXL module. The CXL controller is connected to a volatile memory and a non-volatile memory in the CXL module. As shown in FIG3 , the data backup method includes:

[0059] Step 110: store the readable and writable data in the volatile memory; store the read-only data in the non-volatile memory, or store the data in both the volatile memory and the non-volatile memory.

[0060] Step 120, when it is necessary to back up the data in the volatile memory, the readable and writable data stored in the volatile memory is flushed into the non-volatile memory for backup, and the situation in which the data in the volatile memory needs to be backed up includes at least one of downtime, shutdown and periodic backup.

[0061] The volatile memory in the CXL module of the embodiment of the present disclosure includes a DRAM chip 12 ′, and the non-volatile memory includes a flash memory controller 131 and a flash memory chip 133 connected to the flash memory controller 131 , as shown in FIG. 2 .

[0062] When the CXL module of the disclosed embodiment stores data, readable and writable data is stored in the volatile memory, and read-only data is stored in the non-volatile memory. In the event of a system outage, only the readable and writable data in the volatile memory needs to be flushed into the non-volatile memory (or moved to the non-volatile memory) for backup. The read-only data has already been stored in the non-volatile memory and does not need to be flushed again, thereby reducing the amount of data that needs to be backed up and the capacity of the built-in capacitor required for data backup. This reduces the cost of the equipment while achieving data backup.

[0063] In an exemplary embodiment of the present disclosure, the attribute exposed by the CXL module to the host is a CXL volatile storage device, and the CXL controller stores readable and writable data in the volatile memory, and stores read-only data in the volatile memory and the non-volatile memory. The CXL controller stores the readable and writable data in the volatile memory, and stores read-only data in the volatile memory and the non-volatile memory, comprising: receiving a write data request sent by the host through a CXL interface, the write data request carrying a destination address and the read-write attributes of the data to be written, the destination address being the address of the volatile memory; if it is determined according to the read-write attributes that the data to be written is readable and writable data, writing the readable and writable data to the volatile memory based on the destination address; if it is determined according to the read-write attributes that the data to be written is read-only data, writing the read-only data to the volatile memory based on the destination address, and backing up the read-only data to the non-volatile memory.

[0064] The disclosed embodiments provide a data protection mechanism for abnormal downtime. The CXL controller stores readable and writable data in volatile memory and read-only data in non-volatile memory and volatile memory. In the event of a downtime, only the readable and writable data in the volatile memory needs to be flushed to the non-volatile memory for backup. The read-only data is already backed up in the non-volatile memory when it is written. This reduces the amount of data that needs to be backed up in the event of a downtime and the capacity of the built-in capacitor required for data backup. This reduces the cost of the CXL module while achieving data backup.

[0065] In an exemplary embodiment of the present disclosure, the data backup method further includes: dividing the storage space of the volatile memory into multiple areas, the multiple areas including a read-only area and a readable and writable area; wherein the read-only area is used to store read-only data, and the readable and writable area is used to store readable and writable data.

[0066] In an exemplary embodiment of the present disclosure, the attribute exposed to the host by the CXL module is a CXL volatile storage device. The data backup method further includes: setting a portion of the non-volatile memory as a read-only data backup area to back up data in the read-only area, setting another portion of the non-volatile memory as a read-write data backup area to back up data in the read-write area, and recording a first address correspondence between a starting address of the read-only area and a starting address of the read-only data backup area, and a second address correspondence between a starting address of the read-only area and a starting address of the read-write area and a starting address of the read-write data backup area; writing the read-only data to the volatile memory based on the destination address and backing up the read-only data to the non-volatile memory includes: writing the read-only data to the read-only area of ​​the volatile memory based on the destination address, and writing the read-only data to the read-only data backup area of ​​the non-volatile memory based on the destination address and the first address correspondence.

[0067] In an exemplary embodiment of the present disclosure, the attribute exposed to the host by the CXL module is a CXL volatile storage device, the volatile memory includes a read-only area and a readable and writable area, and the non-volatile memory includes a read-only data backup area and a readable and writable data backup area; the data backup method further includes: based on the second address correspondence, periodically backing up the readable and writable data in a selected sub-area to a corresponding sub-area of ​​the readable and writable data backup area, where the selected sub-area refers to a sub-area in which data has been modified in a current cycle among the multiple sub-areas into which the readable and writable area is divided; or, based on the second address correspondence, periodically backing up all readable and writable data in the readable and writable area to the readable and writable data backup area.

[0068] In one example of this embodiment, the CXL controller periodically backs up all readable and writable data in the readable and writable area to the readable and writable data backup area. When data in the volatile memory needs to be backed up, flushing the readable and writable data stored in the volatile memory to the non-volatile memory for backup includes: in the event of a system downtime or shutdown, flushing all readable and writable data in the readable and writable area of ​​the volatile memory to the readable and writable data backup area for backup. In another example of this embodiment, the CXL controller periodically backs up readable and writable data in selected subareas to the readable and writable data backup area. When data in the volatile memory needs to be backed up, flushing the readable and writable data stored in the volatile memory to the non-volatile memory for backup includes: in the event of a system downtime or shutdown, flushing the readable and writable data in a designated subarea to a corresponding subarea of ​​the readable and writable data backup area for backup. The designated subarea refers to a subarea of ​​the multiple subareas into which the readable and writable area is divided in which data has been modified since the last backup.

[0069] In an exemplary embodiment of the present disclosure, storage resources of the CXL module are exposed to a host in the form of multiple logical devices, the volatile memory is exposed as a volatile logical device, and the non-volatile memory is exposed as a non-volatile logical device; the CXL controller stores readable and writable data in the volatile memory and read-only data in the non-volatile memory. The CXL controller stores the readable and writable data in the volatile memory and read-only data in the non-volatile memory, wherein the CXL controller stores the readable and writable data in the volatile memory and read-only data in the non-volatile memory, including: receiving, via a CXL interface, a first write data request sent by the host to write read-only data, and writing the read-only data to the non-volatile memory based on a destination address carried in the first write data request, wherein the destination address carried in the first write data request is the address of the non-volatile logical device; and receiving, via the CXL interface, a second write data request sent by the host to write readable and writable data, and writing the readable and writable data to the volatile memory based on the destination address carried in the second write data request, wherein the destination address carried in the second write data request is the address of the volatile logical device.

[0070] In an exemplary embodiment of the present disclosure, the storage resources of the CXL module are exposed to the host in the form of multiple logical devices, and the data backup method further includes: setting a portion of the storage space of the non-volatile memory as a backup area to back up the readable and writable data in the volatile memory, and recording the starting address of the backup area; based on the starting address of the backup area, periodically backing up all the readable and writable data in the volatile memory to the backup area; or dividing the storage space of the volatile memory into multiple sub-areas, and based on the starting address of the backup area, periodically backing up the readable and writable data in the selected sub-area to the backup area, the selected sub-area referring to a sub-area among the multiple sub-areas in which data has been modified in the current cycle.

[0071] This embodiment sets a portion of the non-volatile memory's storage space as a backup area to back up the readable and writable data in the volatile memory. By using the correspondence between the starting addresses of the areas, the readable and writable data in the volatile memory can be backed up and the backed-up data restored. This eliminates the need to record the address correspondence between the volatile and non-volatile memory in separate blocks, simplifying data backup implementation.

[0072] One embodiment of the present disclosure further provides a CXL controller in a CXL module. As shown in FIG4 , the CXL controller 11 includes a processor 51, a CXL interface 53 for connecting to a host, a first storage interface 55 for connecting to volatile memory, a second storage interface 57 for connecting to non-volatile memory, and a built-in capacitor 59. Other hardware 61 may also be included. The processor 51 is configured to execute the data backup method described in any embodiment of the present disclosure.

[0073] The processor of this embodiment can be a general-purpose processor, including a central processing unit (CPU), a network processor (NP), a microprocessor, etc., or other conventional processors; the processor can also be a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), discrete logic or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, or a combination of the above devices. That is, the processor of this embodiment can be any processing device or device combination that implements the various methods, steps and logic block diagrams disclosed in the embodiments of the present invention. If the embodiments of the present disclosure are partially implemented in software, the instructions for the software can be stored in a suitable non-volatile computer-readable storage medium, and one or more processors can be used to execute the instructions in hardware to implement the methods of the embodiments of the present disclosure.

[0074] An embodiment of the present disclosure further provides a non-transitory computer storage medium storing a computer program, wherein when the computer program is executed by a processor, the data backup method described in any embodiment of the present disclosure can be implemented.

[0075] An embodiment of the present disclosure provides a computer system, including a host and the CXL module described in any embodiment of the present disclosure.

[0076] An embodiment of the present disclosure provides a computer product. When the computer product is executed by a processor, the data backup method described in any embodiment of the present disclosure can be implemented.

[0077] It will be appreciated by those skilled in the art that all or some of the steps, systems, and functional modules / units in the methods disclosed above may be implemented as software, firmware, hardware, and appropriate combinations thereof. In hardware implementations, the division between the functional modules / units mentioned in the above description does not necessarily correspond to the division of physical components; for example, a physical component may have multiple functions, or a function or step may be performed by several physical components in cooperation. Some or all components may be implemented as software executed by a processor, such as a digital signal processor or a microprocessor, or implemented as hardware, or implemented as an integrated circuit, such as an application-specific integrated circuit. Such software may be distributed on a computer-readable medium, which may include a computer storage medium (or non-transitory medium) and a communication medium (or temporary medium). As is well known to those skilled in the art, the term computer storage medium includes volatile and non-volatile, removable, and non-removable media implemented in any method or technology for storing information (such as computer-readable instructions, data structures, program modules, or other data). Computer storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and can be accessed by a computer. In addition, it is well known to those skilled in the art that communication media generally embodies computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism, and may include any information delivery media.

Claims

1. A CXL module comprising a CXL controller, and a volatile memory and a non-volatile memory connected to the CXL controller, wherein the CXL controller is configured to perform the following processing: storing readable and writable data in the volatile memory; storing read-only data in the non-volatile memory, or storing the data in the volatile memory and the non-volatile memory; When the data in the volatile memory needs to be backed up, the readable and writable data stored in the volatile memory is flushed into the non-volatile memory for backup.

2. The CXL module according to claim 1, wherein: The volatile memory includes a DRAM chip, and the non-volatile memory includes a flash memory controller and a flash memory chip connected to the flash memory controller; The situation where the data in the volatile memory needs to be backed up includes at least one of a shutdown, a power off, and a periodic backup.

3. The CXL module according to claim 1, wherein: The attribute of the CXL module exposed to the host is a CXL volatile memory device, and the CXL controller is configured to store readable and writable data in the volatile memory and store read-only data in the volatile memory and the non-volatile memory; The CXL controller stores readable and writable data in the volatile memory and stores read-only data in the volatile memory and the non-volatile memory, including: receiving a write data request sent by a host through a CXL interface, the write data request carrying a destination address and read-write attributes of the data to be written, the destination address being the address of the volatile memory; if it is determined according to the read-write attributes that the data to be written is readable and writable data, writing the readable and writable data into the volatile memory based on the destination address; if it is determined according to the read-write attributes that the data to be written is read-only data, writing the read-only data into the volatile memory based on the destination address, and backing up the read-only data to the non-volatile memory.

4. The CXL module according to claim 3, wherein: The CXL controller is further configured to: The storage space of the volatile memory is divided into a plurality of areas, wherein the plurality of areas include a read-only area and a readable and writable area; wherein the read-only area is used to store read-only data, and the readable and writable area is used to store readable and writable data.

5. The CXL module according to claim 4, wherein: The CXL controller divides the storage space of the volatile memory into multiple areas, including: According to a storage area setting instruction sent by the host, part of the storage space of the volatile memory is set as a read-only area, and other areas of the volatile memory are used as readable and writable areas; wherein the storage area setting instruction adopts the format of the M2S request of the CXL.mem protocol, the operation code in the M2S request indicates that the operation to be performed is to set the read-only area, and carries at least one of the starting address and length information of the read-only area.

6. The CXL module according to claim 5, wherein: The CXL controller is further configured to: Setting a portion of the non-volatile memory as a read-only data backup area to back up data in the read-only area, setting another portion of the non-volatile memory as a read-write data backup area to back up data in the read-write area, and recording a first address correspondence between a starting address of the read-only area and a starting address of the read-only data backup area, and a second address correspondence between a starting address of the read-write area and a starting address of the read-write data backup area; The CXL controller writes the read-only data into the volatile memory based on the destination address and backs up the read-only data to the non-volatile memory, including: writing the read-only data into the read-only area of ​​the volatile memory based on the destination address, backing up the read-only data into the read-only area of ​​the volatile memory based on the correspondence between the destination address and the first address The data is written into the read-only data backup area of ​​the non-volatile memory.

7. The CXL module according to claim 6, wherein: The CXL controller is further configured to perform any one or more of the following processes: receiving a read-only area clearing instruction sent by a host, and clearing the read-only area of ​​the volatile memory and the read-only data backup area of ​​the non-volatile memory; receiving a readable and writable area clearing instruction sent by a host, clearing the readable and writable area of ​​the volatile memory and the readable and writable data backup area of ​​the non-volatile memory; receiving a data deletion instruction for read-only data sent by a host, deleting the read-only data in the read-only area of ​​the volatile memory according to the starting address and length of the read-only data carried in the data deletion instruction, and deleting the read-only data in the read-only data backup area of ​​the non-volatile memory according to the corresponding relationship between the starting address, length and the first address of the read-only data; Receive a data deletion instruction for readable and writable data sent by a host, delete the readable and writable data in the readable and writable area of ​​the volatile memory according to the starting address and length of the readable and writable data carried by the data deletion instruction, and delete the readable and writable data in the readable and writable data backup area of ​​the non-volatile memory according to the starting address, length and the corresponding relationship between the second address of the readable and writable data.

8. The CXL module according to claim 6, wherein: The CXL controller is further configured to: Based on the second address correspondence, periodically backing up the readable and writable data in the selected sub-area to a corresponding sub-area of ​​the readable and writable data backup area, the selected sub-area being a sub-area in which data has been modified in the current cycle among the multiple sub-areas into which the readable and writable area is divided; or Based on the second address correspondence, all readable and writable data in the readable and writable area are periodically backed up to the readable and writable data backup area.

9. The CXL module according to claim 8, wherein: The CXL controller periodically backs up all readable and writable data in the readable and writable area to the readable and writable data backup area; when the data in the volatile memory needs to be backed up, the CXL controller flushes the readable and writable data stored in the volatile memory to the non-volatile memory for backup, including: in the event of a computer downtime or shutdown, flushing all readable and writable data in the readable and writable area of ​​the volatile memory to the readable and writable data backup area for backup; The CXL controller periodically backs up readable and writable data in selected sub-areas to the readable and writable data backup area. When data in the volatile memory needs to be backed up, the CXL controller flushes the readable and writable data stored in the volatile memory to the non-volatile memory for backup. This includes flushing the readable and writable data in designated sub-areas to corresponding sub-areas of the readable and writable data backup area for backup in the event of a system outage or shutdown. The designated sub-areas are sub-areas of the multiple sub-areas into which the readable and writable area is divided, in which data has been modified since the last backup.

10. The CXL module of claim 6, wherein the CXL controller is further configured to: After receiving the data recovery instruction sent by the host, the read-only data in the read-only data backup area is restored to the read-only area according to the first address correspondence, and the readable and writable data in the readable and writable data backup area is restored to the readable and writable area according to the second address correspondence.

11. The CXL module according to claim 1, wherein: The storage resources of the CXL module are exposed to the host in the form of multiple logical devices, the volatile memory is exposed as a volatile logical device, and the non-volatile memory is exposed as a non-volatile logical device; The CXL control The controller is configured to store readable and writable data in the volatile memory and store read-only data in the non-volatile memory; The CXL controller stores the readable and writable data in the volatile memory and stores the read-only data in the non-volatile memory, including: receiving, through the CXL interface, a first write data request sent by a host when the host intends to write read-only data, and writing the read-only data into the non-volatile memory based on a destination address carried in the first write data request, wherein the destination address carried in the first write data request is an address of the non-volatile logical device; A second write data request sent by a host when writing readable and writable data is received through a CXL interface, and the readable and writable data is written into the volatile memory based on a destination address carried by the second write data request, wherein the destination address carried by the second write data request is an address of the volatile logical device.

12. The CXL module according to claim 11, wherein: The CXL controller is further configured to: Setting a portion of the storage space of the non-volatile memory as a backup area to back up the readable and writable data in the volatile memory, and recording a starting address of the backup area; Based on the starting address of the backup area, periodically backing up all readable and writable data in the volatile memory to the backup area; Alternatively, the storage space of the volatile memory is divided into multiple sub-areas, and based on the starting address of the backup area, the readable and writable data in the selected sub-area is periodically backed up to the backup area, and the selected sub-area refers to the sub-area among the multiple sub-areas in which data modification occurs in the current cycle.

13. A data backup method, applied to a CXL controller in a CXL module, wherein the CXL controller is connected to a volatile memory and a non-volatile memory in the CXL module, the data backup method comprising: storing readable and writable data in the volatile memory; storing read-only data in the non-volatile memory, or storing the data in the volatile memory and the non-volatile memory; In the case where it is necessary to back up the data in the volatile memory, the readable and writable data stored in the volatile memory is flushed to the non-volatile memory for backup. The case where it is necessary to back up the data in the volatile memory includes at least one of a shutdown, a power off and a periodic backup.

14. The data backup method according to claim 13, wherein: The attribute of the CXL module exposed to the host is a CXL volatile storage device. The CXL controller stores readable and writable data in the volatile memory and stores read-only data in the volatile memory and the non-volatile memory. The CXL controller stores readable and writable data in the volatile memory and stores read-only data in the volatile memory and the non-volatile memory, including: receiving a write data request sent by a host through a CXL interface, the write data request carrying a destination address and read-write attributes of the data to be written, the destination address being the address of the volatile memory; if it is determined according to the read-write attributes that the data to be written is readable and writable data, writing the readable and writable data to the volatile memory based on the destination address; if it is determined according to the read-write attributes that the data to be written is read-only data, writing the read-only data to the volatile memory based on the destination address, and backing up the read-only data to the non-volatile memory.

15. The data backup method according to claim 14, further comprising: The storage space of the volatile memory is divided into a plurality of areas, wherein the plurality of areas include a read-only area and a readable and writable area; wherein the read-only area is used to store read-only data, and the readable and writable area is used to store readable and writable data.

16. The data backup method according to claim 15, The data backup method further includes: A portion of the non-volatile memory is set as a read-only data backup area to back up the data in the read-only area, and another portion of the non-volatile memory is set as a read-write data backup area to back up the data in the read-only area. The data in the readable and writable area is recorded, and a first address correspondence relationship between the starting address of the read-only area and the starting address of the read-only data backup area is recorded, and a second address correspondence relationship between the starting address of the readable and writable area and the starting address of the readable and writable data backup area is recorded; The step of writing the read-only data into the volatile memory based on the destination address and backing up the read-only data into the non-volatile memory includes: writing the read-only data into the read-only area of ​​the volatile memory based on the destination address, and writing the read-only data into the read-only data backup area of ​​the non-volatile memory based on the correspondence between the destination address and the first address.

17. The data backup method according to claim 16, further comprising: Based on the second address correspondence, periodically backing up the readable and writable data in the selected sub-area to a corresponding sub-area of ​​the readable and writable data backup area, the selected sub-area being a sub-area in which data has been modified in the current cycle among the multiple sub-areas into which the readable and writable area is divided; or Based on the second address correspondence, all readable and writable data in the readable and writable area are periodically backed up to the readable and writable data backup area.

18. The data backup method according to claim 17, wherein: The CXL controller periodically backs up all readable and writable data in the readable and writable area to the readable and writable data backup area, and when the data in the volatile memory needs to be backed up, flushes the readable and writable data stored in the volatile memory to the non-volatile memory for backup, including: in the event of a shutdown or power outage, flushes all readable and writable data in the readable and writable area of ​​the volatile memory to the readable and writable data backup area for backup; The CXL controller periodically backs up readable and writable data in selected sub-areas to the readable and writable data backup area. When data in the volatile memory needs to be backed up, the readable and writable data stored in the volatile memory is flushed to the non-volatile memory for backup. This includes: in the event of a system outage or shutdown, flushing the readable and writable data in designated sub-areas to corresponding sub-areas of the readable and writable data backup area for backup. The designated sub-areas are sub-areas, among the multiple sub-areas into which the readable and writable area is divided, in which data has been modified since the last backup.

19. The data backup method according to claim 13, wherein: The storage resources of the CXL module are exposed to the host in the form of multiple logical devices. The volatile memory is exposed as a volatile logical device, and the non-volatile memory is exposed as a non-volatile logical device. The CXL controller stores readable and writable data in the volatile memory and read-only data in the non-volatile memory. The CXL controller stores readable and writable data in the volatile memory and read-only data in the non-volatile memory, including: receiving, through the CXL interface, a first write data request sent by a host when the host intends to write read-only data, and writing the read-only data to the non-volatile memory based on a destination address carried by the first write data request, wherein the destination address carried by the first write data request is the address of the non-volatile logical device; and receiving, through the CXL interface, a second write data request sent by the host when the host intends to write readable and writable data, and writing the readable and writable data to the volatile memory based on the destination address carried by the second write data request, wherein the destination address carried by the second write data request is the address of the volatile logical device.

20. The data backup method according to claim 19, further comprising: Setting a portion of the storage space of the non-volatile memory as a backup area to back up the readable and writable data in the volatile memory, and recording a starting address of the backup area; Based on the starting address of the backup area, periodically backing up all readable and writable data in the volatile memory to the backup area; Alternatively, the storage space of the volatile memory is divided into a plurality of sub-areas, based on the backup The starting address of the backup area is determined, and the readable and writable data in the selected sub-area is periodically backed up to the backup area, where the selected sub-area refers to a sub-area in which data is modified in the current cycle among the multiple sub-areas.

21. A CXL controller in a CXL module, comprising a processor, a CXL interface for connecting to a host, a first storage interface for connecting to a volatile memory, a second storage interface for connecting to a non-volatile memory, and a built-in capacitor, wherein: The processor is configured to execute the data backup method according to any one of claims 13 to 20.

22. A non-transitory computer storage medium storing a computer program, wherein: When the computer program is executed by a processor, the data backup method according to any one of claims 13 to 20 is implemented.