Data processing method and computing device

By implementing the encoding and decoding mechanism of CXL memory data in the processor, the problem of CXL memory data leakage is solved and the security of data access is improved.

CN119782213APending Publication Date: 2025-04-08XFUSION DIGITAL TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411980179.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-30
Publication Date
2025-04-08

AI Technical Summary

Technical Problem

CXL memory is subject to data leakage when accessed by an unsafe process or computing device.

Method used

By implementing a data processing method in the processor, in response to the read data instruction, the encoded target data is obtained from the CXL memory and decoded based on the target decoding parameters, ensuring that the target data can be obtained only if the decoding parameters are correct.

Benefits of technology

It effectively avoids the phenomenon that unsafe processes or computing devices obtain plaintext data from CXL memory, improves the security of CXL memory access and prevents data leakage.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119782213A_ABST
    Figure CN119782213A_ABST
Patent Text Reader

Abstract

The invention discloses a data processing method and computing equipment, relates to the field of computing equipment, and can effectively avoid leakage of data in a CXL memory. Specifically, a processor of the computing device obtains encoded target data from a CXL memory in response to a data reading instruction. And obtaining a target decoding parameter, decoding the encoded target data based on the target decoding parameter, obtaining the target data under the condition that the target decoding parameter is correct, and returning the target data according to the data reading instruction.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of computing devices, and in particular to a data processing method and a computing device. Background Art

[0002] Compute Express Link (CXL) memory can be connected to a compute device to provide additional memory space for the compute device. CXL memory can be shared between multiple processes running on the same compute device, or between multiple compute devices.

[0003] When any process of a computing device writes data to CXL memory, other processes of the computing device or other computing devices can also read the data from CXL memory, that is, obtain the plaintext data from CXL memory. In this way, when CXL memory is accessed by an unsafe process or computing device, the data in CXL memory will be leaked. Summary of the invention

[0004] The embodiments of the present application provide a data processing method and a computing device, which can effectively prevent data leakage in a CXL memory.

[0005] To achieve the above objectives, the embodiments of the present application adopt the following technical solutions:

[0006] In a first aspect, a data processing method is provided, which is applied to a processor of a first computing device, the processor being connected to a CXL memory. The method comprises: in response to a read data instruction, obtaining encoded target data from the CXL memory. Obtaining target decoding parameters, decoding the encoded target data based on the target decoding parameters, obtaining target data when the target decoding parameters are correct, and returning the target data in response to the read data instruction.

[0007] The read data instruction is used to instruct to read target data.

[0008] It can be seen from the above technical solution that the subject that generates the read data instruction cannot directly read the original data (or plaintext data, such as the target data in this embodiment) from the CXL memory. What is read is the encoded target data, and the target decoding parameters need to be used to decode the read encoded target data. In this way, the target data can be obtained from the CXL memory only when the encoded target data is correct. In this way, the phenomenon of unsafe processes, applications or computing devices obtaining plaintext data from the CXL memory can be avoided, effectively improving the security of CXL memory access and avoiding data leakage in the CXL memory.

[0009] In an optional implementation, a first corresponding relationship is stored in the first computing device, and the first corresponding relationship is used to indicate at least one of decoding parameters corresponding to different processes, decoding parameters corresponding to different applications, or decoding parameters corresponding to different computing devices.

[0010] In this embodiment, it is described that different decoding parameters may be stored in the first computing device, such as decoding parameters corresponding to different processes and decoding parameters corresponding to different applications. In this way, the processor can quickly obtain the target decoding parameters from the decoding parameters stored in the first computing device to improve the processing efficiency of the processor.

[0011] In an optional implementation, the first correspondence relationship may be stored in the kernel space of the first computing device, and the above-mentioned obtaining of the target decoding parameters may specifically include: obtaining the first correspondence relationship from the kernel space of the first computing device, and determining the target decoding parameters based on the first correspondence relationship.

[0012] In this implementation, the first correspondence can be stored in the kernel space of the first computing device, and the kernel space has higher security and operating efficiency. In this way, not only can the processor efficiency of the processor be effectively improved, but also the security of the first correspondence can be improved to avoid the leakage of decoding parameters corresponding to different subjects (processes, applications or computing devices).

[0013] In an optional implementation, the first correspondence may be stored in the user space of the first computing device, and the above-mentioned obtaining the target decoding parameter may specifically include: obtaining the first correspondence from the user space of the first computing device, and determining the target decoding parameter based on the first correspondence. Accordingly, the target decoding parameter may also be sent to the kernel space of the first computing device.

[0014] In this embodiment, it is explained that the decoding parameters in the user space of the first computing device can be sent to the kernel space of the first computing device. In this way, the encoded target data can be decoded based on the target decoding parameters in the kernel space of the first computing device. The kernel space operates more efficiently. In this way, the decoding efficiency of decoding the encoded target data can be effectively improved.

[0015] In an optional implementation, when the first computing device is started, the first corresponding relationship is obtained from the management computing device; or, the first corresponding relationship is periodically obtained from the management computing device. The management computing device is used to manage multiple computing devices, including the first computing device.

[0016] In this embodiment, it is described that the processor can update the first corresponding relationship in the first computing device based on the first corresponding relationship stored in the management computing device, which can avoid leakage of decoding parameters, further improve the security of CXL memory access, and avoid leakage of data in the CXL memory.

[0017] In an optional implementation, the read data instruction may carry target decoding parameters.

[0018] In this implementation, it is described that the target decoding parameters can be carried in the read data instruction, so that the processor can directly parse the read data instruction to obtain the target decoding parameters, which can further improve the processing efficiency of the processor.

[0019] In an optional implementation, the first computing device and the second computing device are both connected to the CXL memory, and the subject that generates the read data instruction is at least one of a process, an application, or a computing device. Accordingly, when the subject that generates the read data instruction is the first process, the first process can run in the first computing device, or the first process can run in the second computing device. When the subject that generates the read data instruction is the first application, the first application can run in the first computing device, or the first application can run in the second computing device.

[0020] In this embodiment, the subject that generates the read data instruction is described. The subject can be a process or application running in the first computing device, or a process or application running in other computing devices (such as the second computing device) other than the first computing device. In this way, the compatible scenarios of the present application can be expanded.

[0021] In an optional implementation, the method may further include: decoding the encoded target data based on the target decoding parameter, and obtaining garbled data when the target decoding parameter is incorrect. For the read data instruction, returning garbled data.

[0022] In this embodiment, when the decoding parameters are wrong, the data obtained is garbled data. This can avoid the phenomenon that unsafe processes, applications or devices obtain plain text data from the CXL memory. In this way, the security of CXL memory access can be effectively improved to avoid data leakage in the CXL memory.

[0023] In an optional implementation, the method may further include: in response to the write data instruction, obtaining target data, obtaining target encoding parameters, encoding the target data based on the target encoding parameters to obtain encoded target data, and writing the encoded target data into the CXL memory.

[0024] The write data instruction is used to instruct writing target data into the CXL memory.

[0025] In this embodiment, the data stored in CXL is encoded data (such as encoded target data) rather than plaintext data (such as target data). In this way, unsafe processes, applications or devices cannot directly read plaintext data from the CXL memory, which can further prevent unsafe processes from obtaining plaintext data from the CXL memory, thereby improving the security of CXL memory access and avoiding data leakage in the CXL memory.

[0026] In an optional implementation, the write data instruction includes a target encoding parameter.

[0027] In this implementation, it is described that the write data instruction can carry the target encoding parameter, so that the processor can directly parse the write data instruction to obtain the target encoding parameter, which can effectively improve the processing efficiency.

[0028] In an optional embodiment, a second correspondence may be stored in the first computing device, and the second correspondence may be used to indicate at least one of the encoding parameters corresponding to the type of target data, the encoding parameters corresponding to different processes, the encoding parameters corresponding to different applications, or the encoding parameters corresponding to different computing devices.

[0029] In this embodiment, it is described that different encoding parameters may be stored in the first computing device, such as encoding parameters corresponding to different processes and encoding parameters corresponding to different applications. In this way, the processor can quickly obtain the target decoding parameters from the encoding parameters stored in the first computing device to improve the processing efficiency of the processor.

[0030] In an optional implementation, the second correspondence may be stored in the kernel space of the first computing device. The above-mentioned obtaining the target encoding parameter may specifically include: obtaining the second correspondence from the kernel space of the first computing device, and determining the target encoding parameter based on the second correspondence.

[0031] In this implementation, the second correspondence can be stored in the kernel space of the first computing device, and the kernel space has higher security and operating efficiency. In this way, not only can the processor efficiency of the processor be effectively improved, but also the security of the second correspondence can be improved to avoid leakage of encoding parameters corresponding to different subjects (processes, applications or computing devices).

[0032] In an optional implementation, the second correspondence may be stored in the user space of the first computing device. The above-mentioned acquisition of the target encoding parameters may specifically include: acquiring the second correspondence from the user space of the first computing device, and determining the encoding parameters corresponding to the target data based on the second correspondence. Accordingly, the above-mentioned method may also include: sending the target encoding parameters to the kernel space of the first computing device.

[0033] In this embodiment, it is described that the encoding parameters in the user space of the first computing device can be sent to the kernel space of the first computing device. In this way, the target data can be encoded based on the target encoding parameters in the kernel space of the first computing device. The kernel space operates more efficiently, and thus the encoding efficiency of encoding the target data can be effectively improved.

[0034] In an optional implementation, when the first computing device is started, the second corresponding relationship is obtained from the management computing device; or, the second corresponding relationship is periodically obtained from the management computing device.

[0035] The management computing device is used to manage multiple computing devices, and the multiple computing devices include the first computing device.

[0036] In this embodiment, it is described that the processor can update the first corresponding relationship in the first computing device based on the first corresponding relationship stored in the management computing device, which can avoid leakage of encoding parameters, further improve the security of CXL memory access, and avoid leakage of data in the CXL memory.

[0037] In a second aspect, a data processing device is provided, the device comprising: a functional unit for executing any one of the methods provided in the first aspect, and the actions performed by each functional unit are implemented by hardware or by executing corresponding software through hardware. For example, the data processing device may include: an acquisition unit, a decoding unit, and a sending unit. Among them, the acquisition unit is used to obtain the encoded target data and the target decoding parameters from the CXL memory in response to the read data instruction. The decoding unit is used to decode the encoded target data based on the target decoding parameters, and obtain the target data when the target decoding parameters are correct. The sending unit is used to return the target data in response to the read data instruction.

[0038] In a third aspect, a computing device is provided, comprising: a processor and a memory, wherein the processor is connected to the memory and the processor is connected to the CXL memory. The memory is used to store computer-executable instructions, and the processor executes the computer-executable instructions stored in the memory, thereby implementing any one of the methods provided in the first aspect.

[0039] In a fourth aspect, a chip is provided, the chip comprising: a processor and an interface circuit; the interface circuit is used to receive code instructions and transmit them to the processor; the processor is used to run the code instructions to execute any one of the methods provided in the first aspect above.

[0040] In a fifth aspect, a computer-readable storage medium is provided, which stores computer execution instructions. When the computer execution instructions are executed on a computer, the computer executes any one of the methods provided in the first aspect.

[0041] In a sixth aspect, a computer program product is provided, comprising computer execution instructions, which, when executed on a computer, enable the computer to execute any one of the methods provided in the first aspect.

[0042] Among them, the technical effects brought about by any implementation method in the second to sixth aspects can refer to the technical effects brought about by different implementation methods in the first aspect, and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS

[0043] Figure 1 A schematic diagram of CXL memory being shared between server CXL244 and server CXL248;

[0044] Figure 2 A schematic diagram of the architecture of a computing cluster provided in an embodiment of the present application;

[0045] Figure 3 A flowchart of a data processing method provided in an embodiment of the present application;

[0046] Figure 4 A schematic diagram of a user space and a kernel space of a computing device provided in an embodiment of the present application;

[0047] Figure 5 A schematic diagram of a user space and a kernel space of another computing device provided in an embodiment of the present application;

[0048] Figure 6 A schematic diagram of another computing cluster architecture provided in an embodiment of the present application;

[0049] Figure 7 A schematic diagram of a process for storing encoded target data in a CXL memory provided in an embodiment of the present application;

[0050] Figure 8 A schematic diagram of the structure of a data processing device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0051] The technical solutions in the embodiments of the present application will be described below in conjunction with the drawings in the embodiments of the present application.

[0052] In the description of this application, unless otherwise specified, " / " indicates that the objects associated with each other are in an "or" relationship, for example, A / B can represent A or B; "and / or" in this application is merely a description of the association relationship between associated objects, indicating that three relationships may exist, for example, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone, where A and B can be singular or plural.

[0053] Furthermore, in the description of this application, unless otherwise specified, "plurality" means two or more than two. "At least one of the following" or similar expressions refers to any combination of these items, including any combination of single items or plural items. For example, at least one of a, b, or c can mean: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or multiple.

[0054] In addition, in order to facilitate the clear description of the technical solutions of the embodiments of the present application, in the embodiments of the present application, the words "first", "second" and the like are used to distinguish the same items or similar items with substantially the same functions and effects. Those skilled in the art will understand that the words "first", "second" and the like do not limit the quantity and execution order, and the words "first", "second" and the like do not necessarily limit the differences. At the same time, in the embodiments of the present application, the words "exemplary" or "for example" are used to indicate examples, illustrations or explanations. Any embodiment or design described as "exemplary" or "for example" in the embodiments of the present application should not be interpreted as being more preferred or more advantageous than other embodiments or design solutions. Specifically, the use of words such as "exemplary" or "for example" is intended to present related concepts in a concrete manner for ease of understanding.

[0055] The following is an introduction to the terms involved in the embodiments of the present application.

[0056] CXL: is a high-speed interconnect technology standard designed for high-performance data center computers. It can quickly and reliably transmit data between different components inside computing devices, such as central processing unit (CPU), accelerator, memory, smart network interface card (Smart NIC), etc. CXL is built on the physical and electrical interface of the serial peripheral component interconnect express (PCIe). CXL protocols can include input / output protocols (CXL.io), access cache protocols (CXL.cache), and access memory protocols (CXL.mem).

[0057] Direct access (DAX) devices: DAX technology is a technology that allows applications to directly access persistent memory devices without the need to read and write persistent memory devices through file system block input / output (IO) operations, effectively reducing data access latency. When accessing CXL memory based on DAX technology, CXL memory can be created as a DAX device (or CXL-DAX device).

[0058] The application scenarios of the embodiments of the present application are introduced below.

[0059] With the rapid development of technologies such as big data, artificial intelligence and cloud computing, traditional interconnection technologies have been unable to meet the growing needs of data transmission and data processing. Compared with traditional interconnection technologies, CXL can provide higher bandwidth, lower latency and more powerful expansion capabilities, thereby meeting the efficient interconnection between processors (such as CPUs), memory, accelerators and other components. In the future data centers, high-performance computing and edge computing, CXL will become one of the key technologies for achieving high-efficiency, low-latency data processing.

[0060] CXL memory refers to a memory device connected to a computing device through the CXL protocol. When accessing CXL memory based on dax technology, CXL memory can be created as a dax device. Dax devices can include two application modes, one is the system memory (system ram) mode at the operating system (OS) control level, and the other is the direct access device (device dax) mode at the application control level.

[0061] In the system memory mode at the operating system control level, CXL memory can be used as an extension of system memory and is controlled and managed by the operating system. In other words, the control of CXL memory is centralized on the operating system side. In this mode, the operating system can centrally schedule the resource allocation of CXL memory. For example, the operating system determines how much memory space to allocate to each process (or business) in CXL memory. In this way, flexible allocation of CXL memory cannot be achieved.

[0062] In the direct access device mode at the application control layer, applications are allowed to access data stored in the CXL memory without going through the operating system. The following describes the process of applications accessing CXL memory in the direct access device mode at the application control layer.

[0063] CXL memory can realize memory sharing between multiple processes running on the same computing device, and can also realize memory sharing between multiple computing devices. On this basis, when any process running on a computing device writes data to CXL memory, other processes running on the computing device or processes running on other computing devices can obtain the data from CXL memory, that is, obtain plaintext data from CXL memory.

[0064] For example, Figure 1 FIG. 1 is a schematic diagram showing that CXL memory is shared between server CXL244 and server CXL248. Figure 1 As shown, processes A and B are running on server CXL244, and process C is running on server CXL248. Process A is used to store natural numbers in CXL memory based on the CXL.mem protocol, and process A can also be called the writeCXLMemPattern process. On this basis, after process A writes a natural number in CXL memory, process B running in server CXL244 and process C running in server CXL248 can both read the natural number stored in CXL memory by process A through a simple read operation, that is, obtain the plaintext data from CXL memory.

[0065] In this way, when the CXL memory is accessed by an unsafe process, the data in the CXL memory will be leaked.

[0066] In view of this, an embodiment of the present application provides a data processing method, which is applied to a processor of a first computing device, and the processor is connected to a CXL memory. Specifically, the processor obtains the encoded target data from the CXL memory in response to a read data instruction. Obtain target decoding parameters, decode the encoded target data based on the target decoding parameters, obtain the target data when the target decoding parameters are correct, and return the target data in response to the read data instruction.

[0067] Through the above technical solution, it can be known that the subject that generates the read data instruction cannot directly read the original data (or plaintext data, such as target data) from the CXL memory. What is read is the encoded target data, and the target decoding parameters need to be used to decode the read encoded target data. In this way, the target data can be obtained from the CXL memory only when the encoded target data is correct. In this way, the phenomenon of unsafe processes, applications or computing devices obtaining plaintext data from the CXL memory can be avoided, effectively improving the security of CXL memory access and avoiding data leakage in the CXL memory.

[0068] The following is an exemplary introduction to the system architecture of the embodiments of the present application.

[0069] Figure 2 The following is a schematic diagram of the architecture of a computing cluster provided in an embodiment of the present application. Figure 2 As shown, the computing cluster includes at least one computing device and a CXL memory 300. Exemplarily, Figure 2 Two computing devices are shown, a first computing device 100 and a second computing device 200 .

[0070] The CXL memory 300 is respectively connected to the first computing device 100 and the second computing device 200. In one implementation, the CXL memory 300 may be respectively connected to the first computing device 100 and the second computing device 200 via a high-speed cable.

[0071] The CXL memory 300 may include a CXL controller 301 and at least one memory. Figure 2 Two memories are shown, namely memory 302 and memory 303.

[0072] It should be noted that the CXL controller, also known as the CXL chip, can connect memories (such as memory 302 and memory 303) to multiple computing devices based on the CXL technology to increase the memory capacity of the computing devices. It should also be noted that the CXL controller can be a CXL multi-head controller (CXL mulit head expander) so that the CXL controller can be directly connected to multiple computing devices. For example, the CXL controller can be connected to two computing devices through two ports. For another example, the CXL controller can be connected to four computing devices through four ports. For another example, the CXL controller can be connected to eight computing devices through eight ports.

[0073] Memory 302 and memory 303 may be storage particles (e.g., dynamic random access memory (DRAM) flash memory particles), or memory sticks (e.g., dual inline memory modules (DIMM) memory sticks), or other types of memory, which is not limited in the embodiments of the present application.

[0074] The first computing device 100 may include a processor 101 and a memory 102 .

[0075] The second computing device 200 may include a processor 201 and a memory 202 .

[0076] Processor 101 and processor 201 may be a CPU or other components with processing capabilities. The CPU, as the computing and control core of a computing device, is the final execution unit for information processing and program execution. The CPU is a large-scale integrated circuit composed of an arithmetic unit, a controller, a register, etc., and its main task is to process and process various data.

[0077] The memory 102 and the memory 202 may be a disk or other memory that stores data and does not lose the data after a power outage.

[0078] It should also be noted that the computing device (such as the first computing device 100 and the second computing device 200) provided in the embodiment of the present application can be a network device or a terminal device. The network device can include a server, etc. Among them, the server can be a physical server, or there can be two or more physical servers that share different responsibilities and cooperate with each other to realize the various functions of the server.

[0079] Exemplarily, the server may be a blade server, a high-density server, a rack server or a tower server, etc. The terminal device may include a personal digital assistant (PDA), an ultra-mobile personal computer (UMPC), a notebook computer, a netbook, a desktop computer, an all-in-one computer, etc.

[0080] In an embodiment of the present application, after receiving a read data instruction requesting to read target data from the CXL memory, the processor (processor 101 or processor 201) of the computing device (first computing device 100 or second computing device 200) can read the encoded target data from the CXL memory and obtain target decoding parameters, and then decode the encoded target data based on the target decoding parameters. If the target decoding parameters are correct, the target data can be obtained after decoding, and the processor can return the target data.

[0081] In addition, before responding to the above-mentioned read data instruction, the processor can also obtain the target data and target encoding parameters after receiving the write data instruction to write the target data in the CXL memory, encode the target data based on the target encoding parameters, obtain the encoded target data, and write the encoded target data into the CXL memory.

[0082] The implementation of the embodiments of the present application will be described in detail below with reference to the accompanying drawings.

[0083] Figure 3 A flow chart of a data processing method provided in an embodiment of the present application. The method is applied to Figure 2 A processor within the first computing device 100, such as Figure 3 As shown, the method includes S301-S304.

[0084] S301 , in response to a read data instruction, obtaining encoded target data from a CXL memory.

[0085] The read data instruction is used to instruct to read the target data.

[0086] The embodiment of the present application does not specifically limit the subject that generates the read data instruction (hereinafter referred to as the first subject). In an optional implementation, the first subject can be at least one of a process, an application, or a computing device.

[0087] It can be understood that the process in the embodiment of the present application may include any process running in the first computing device, and may also include any process running in a computing device (hereinafter referred to as the second computing device) connected to the same CXL memory as the first computing device. In addition, the process can be a process started during the operation of an application (such as a game application, a browser application, or a video playback application, etc.) installed in the computing device, that is, an application process. It can also be a process started during the operation of the operating system, that is, a system process. It can also be a process related to the kernel of the operating system, that is, a kernel process.

[0088] In the case where the first subject is a process (hereinafter referred to as the first process), the first process can be run in the first computing device or in the second computing device. For example, taking the first subject as process A, process A can be run in Figure 2 The process in the first computing device 100 shown may also be running on Figure 2 Processes within the second computing device 200 are shown.

[0089] When the first subject is an application (hereinafter referred to as the first application), the first application may be run in the first computing device or in the second computing device.

[0090] Specifically, take the first subject as the first process as an example. When the first process intends to obtain certain data (hereinafter referred to as target data) from the CXL memory, it can generate a read data request to read the target data from the CXL memory, and send the read data request to the processor. After receiving the read data request, the processor can first determine the memory address of the encoded target data, and then read the encoded target data from the CXL memory based on the memory address.

[0091] The memory address refers to the storage location of the encoded target data in the CXL memory.

[0092] The embodiment of the present application does not specifically limit the manner in which the processor determines the memory address of the encoded target data.

[0093] In one example, the read data instruction may include the memory address of the encoded target data. Accordingly, after receiving the read data instruction, the processor may parse the read data instruction to obtain the memory address of the encoded target data.

[0094] In another example, the computing device may store a correspondence between the data identifier of each data stored in the CXL memory and the memory address of the data after encoding each data in the CXL memory (hereinafter referred to as the address correspondence). Accordingly, after receiving the read data instruction, the processor may parse the read data instruction to obtain the data identifier of the target data, and determine the memory address of the encoded target data from the address correspondence stored in the processor based on the data identifier of the target data.

[0095] In an optional implementation, the first computing device may include a kernel space and a user space. A process or application (e.g., a process or application that generates a read data instruction in an embodiment of the present application) may be deployed in the user space. The kernel space may include a virtual file system (VFS) and a driver module (hereinafter referred to as a driver module) of the CXL memory. The user space and the kernel space may communicate through a software interface (e.g., a system call interface (syscall interface)).

[0096] The following will continue to take the first subject as the first process as an example to illustrate the above S301 through the interaction between the user space and the kernel space.

[0097] like Figure 4 As shown, after the first process in the user space generates a read data request to read the target data from the CXL memory, it can call the read function in the syscall interface to send the read data request to the VFS in the kernel space. After receiving the read data request, the VFS can send the read data request to the driver module in the kernel space. After receiving the read data request, the driver module of the CXL memory can first determine the memory address of the encoded target data, and then read the encoded target data from the CXL memory based on the memory address.

[0098] S302, obtaining target decoding parameters.

[0099] The embodiment of the present application does not specifically limit the way in which the processor obtains the target decoding parameters. The following will introduce: 1. obtaining the target decoding parameters from the read data instruction, and 2. obtaining the target decoding parameters from multiple decoding parameters stored in the first computing device.

[0100] 1. Get the target decoding parameters from the read data instruction.

[0101] In this embodiment, the read data instruction may carry the target decoding parameter. Accordingly, after receiving the read data instruction, the processor may parse the read data instruction to obtain the target decoding parameter.

[0102] 2. Obtain a target decoding parameter from a plurality of decoding parameters stored in the first computing device.

[0103] In this embodiment, a first corresponding relationship may be stored in the first computing device, and the first corresponding relationship is used to indicate at least one of decoding parameters corresponding to different processes, decoding parameters corresponding to different applications, or decoding parameters corresponding to different computing devices.

[0104] The embodiment of the present application does not specifically limit the storage form of the first correspondence relationship. For example, the first correspondence relationship may be stored in the first computing device in the form of a table, or may be stored in the first computing device in the form of a function.

[0105] On this basis, the decoding parameters corresponding to different processes may include: decoding parameters corresponding to multiple processes running in the first computing device and / or the second computing device. For example, take the example that the decoding parameters corresponding to different processes include decoding parameters corresponding to multiple processes running in the first computing device and the second computing device. Assuming that the processes running in the first computing device include process A and process B, and the processes running in the second computing device include process 1 and process 2, the decoding parameters corresponding to different processes may include: decoding parameters corresponding to process A, decoding parameters corresponding to process B, decoding parameters corresponding to process 1, and decoding parameters corresponding to process 2.

[0106] It should be noted that the decoding parameters corresponding to different processes may be the same or different.

[0107] The application in the embodiment of the present application may include an application installed in the first computing device, and may also include an application installed in the second computing device.

[0108] The decoding parameters corresponding to different applications may include: decoding parameters corresponding to multiple applications installed in the first computing device and / or the second computing device. For example, take the example that the decoding parameters corresponding to different applications include decoding parameters corresponding to multiple applications installed in the first computing device and the second computing device. Assuming that the applications installed in the first computing device include application C and application D, and the applications installed in the second computing device include application 3 and application 4, the decoding parameters corresponding to different applications may include: decoding parameters corresponding to application C, decoding parameters corresponding to application D, decoding parameters corresponding to application 3, and decoding parameters corresponding to application 4.

[0109] It should be noted that the decoding parameters corresponding to different applications may be the same or different. The decoding parameters corresponding to the same application installed on different computing devices may be the same or different. For example, assuming that application C is installed in both the first computing device and the second computing device, the decoding parameters corresponding to application C installed in the first computing device and the decoding parameters corresponding to application C installed in the second computing device may be the same or different.

[0110] The decoding parameters corresponding to different computing devices may include: decoding parameters corresponding to the first computing device and decoding parameters corresponding to the second computing device. Figure 2Taking the computing cluster in as an example, assuming that the decoding parameter corresponding to the first computing device 100 is 001 and the decoding parameter corresponding to the second computing device 200 is 002, the decoding parameters corresponding to different computing devices may include: 001 and 002.

[0111] It should be noted that the decoding parameters corresponding to different computing devices may be the same or different.

[0112] Specifically, taking the first subject as the first process as an example, after the processor receives the read data instruction sent by the first process, it can determine the process identifier of the first process, and then based on the process identifier of the first process, determine the decoding parameters corresponding to the first process from the first corresponding relationship stored in itself, that is, the target decoding parameters.

[0113] It can be known from the above content that the first computing device may include a kernel space and a user space. Accordingly, the above first correspondence relationship may be stored in the kernel space of the first computing device, or in the user space of the first computing device.

[0114] In the case where the first correspondence relationship can be saved in the user space of the first computing device, the processor obtains the target decoding parameters, which can be replaced by: obtaining the first correspondence relationship from the user space of the first computing device, and determining the target decoding parameters based on the first correspondence relationship.

[0115] When the first corresponding relationship is stored in the kernel space of the first computing device, the above S302, i.e., the processor obtains the target decoding parameters, can be replaced by: obtaining the first corresponding relationship from the kernel space of the first computing device, and determining the target decoding parameters based on the first corresponding relationship.

[0116] In the above technical solution, the first corresponding relationship is stored in the kernel space of the first computing device, and the kernel space has higher security and operating efficiency. In this way, not only can the decoding parameters corresponding to the process, application or computing device be prevented from being leaked, but also the processor efficiency of the processor can be effectively improved.

[0117] In an optional implementation, the first computing device may include a decoding parameter management module (which may be called a key manager), which is used to store the first corresponding relationship. Accordingly, the decoding parameter management module may be located in the user space of the first computing device or in the kernel space of the first computing device.

[0118] S303, decoding the encoded target data based on the target decoding parameters, and obtaining the target data when the target decoding parameters are correct.

[0119] After obtaining the encoded target data and target decoding parameters in the above manner, the processor can use the target decoding parameters to decode the encoded target data to obtain decoded data. When the target decoding parameters are correct, the decoded data obtained is the target data. When the target decoding parameters are incorrect, the decoded data obtained is garbled data or is still the encoded target data.

[0120] In order to improve the decoding efficiency of the first computing device decoding the encoded target data, in an optional implementation, the processor can decode the encoded target data based on the target decoding parameters in the kernel space of the first computing device. On this basis, after obtaining the target decoding parameters based on the first corresponding relationship stored in the user space of the first computing device, it is also necessary to send the target decoding parameters to the kernel space of the first computing device.

[0121] It can be known from the above content that the kernel space of the first computing device may include a VFS and a driver module. Both the VFS and the driver module may use the target decoding parameters to decode the encoded target data.

[0122] The following will respectively introduce: 1. VFS uses the target decoding parameters to decode the encoded target data; 2. The driver module uses the target decoding parameters to decode the encoded target data.

[0123] 1. VFS decodes the encoded target data using the target decoding parameters.

[0124] After the driver module reads the encoded target data from the CXL memory, it can send the encoded target data to the VFS. After the VFS receives the encoded target data, it can use the target decoding parameters to decode the encoded target data to obtain decoded data.

[0125] In an optional implementation, the VFS may include a first decoding module (or decode), such as Figure 4 The first decoding module 401 shown. The first decoding module 401 can be used to decode the encoded target data using the target decoding parameters to obtain decoded data.

[0126] 2. The driver module decodes the encoded target data using the target decoding parameters.

[0127] After the driver module reads the encoded target data from the CXL memory, it can use the target decoding parameters to decode the encoded target data to obtain decoded data.

[0128] In an optional implementation, the driving module may include a second decoding module, such as Figure 5The second decoding module 501 shown. The second decoding module 501 can be used to decode the encoded target data using the target decoding parameters to obtain decoded data.

[0129] S304, returning target data in response to the data read instruction.

[0130] Specifically, after the processor obtains the decoded data through S303, it can send the decoded data to the first subject. Accordingly, when the decoded data is the target data, the processor can send the target data to the first subject, and when the decoded data is garbled data or encoded target data, the processor can send the garbled data or the encoded target data to the first subject.

[0131] In an optional implementation, the processor sends the decoded data (such as target data or garbled data) to the first subject, which may specifically include: the processor stores the decoded data in the memory of the first computing device, and accordingly, the first subject can read the decoded data from the memory of the first computing device.

[0132] Through the above technical solution, it can be known that the subject that generates the read data instruction cannot directly read the plaintext data from the CXL memory, but the encoded data. In this case, it is necessary to use the decoding parameters to decode the encoded data. Only when the decoding parameters are correct can the target data be obtained. When the decoding parameters are wrong, the target data cannot be obtained. In this way, the phenomenon of unsafe processes obtaining plaintext data from the CXL memory can be avoided, which effectively improves the security of CXL memory access and avoids data leakage in the CXL memory.

[0133] In an optional embodiment, Figure 2 The computing cluster shown may also include management computing devices, such as Figure 6 The management computing device 600 shown. The management computing device 600 is used to manage multiple computing devices, such as Figure 6 The first computing device 100 and the second computing device 200 are shown in FIG.

[0134] The management computing device 600 may include a processor 601 and a memory 602. The processor 601 may be a CPU or other components with processing capabilities. The CPU, as the computing and control core of the computing device, is the final execution unit for information processing and program running. The CPU is a large-scale integrated circuit composed of an arithmetic unit, a controller, a register, etc., and its main task is to process and process various data. The memory 602 may be a disk or other memory that stores data and does not lose data after power failure.

[0135] In the embodiment of the present application, the first corresponding relationship may be stored in the management computing device 600. Accordingly, the processor of the first computing device may obtain the first corresponding relationship from the management computing device.

[0136] The embodiment of the present application does not specifically limit the manner in which the processor of the first computing device obtains the first correspondence from the management computing device. In one example, when the first computing device is started, the processor of the first computing device may obtain the first correspondence from the management computing device. In another example, the processor of the first computing device may periodically obtain the first correspondence from the management computing device.

[0137] The embodiment of the present application does not limit the period for the processor of the first computing device to obtain the first correspondence from the management computing device. For example, the period may be 5 days, that is, the processor of the first computing device may obtain the first correspondence from the management computing device once every 5 days. For another example, the period may be 1 day, that is, the processor of the first computing device may obtain the first correspondence from the management computing device once every 1 day.

[0138] Through the above technical solution, the first corresponding relationship in the first computing device can be updated based on the first corresponding relationship stored in the management computing device, which can avoid leakage of decoding parameters in the first corresponding relationship, further improve the security of CXL memory access, and avoid leakage of data in the CXL memory.

[0139] In an optional embodiment, when executing Figure 3 Before the data processing method shown, the processor of the first computing device may also store the encoded target data in the CXL memory. The following will describe the process of the processor of the first computing device storing the encoded target data in the CXL memory.

[0140] Figure 7 A schematic diagram of a process for storing encoded target data in a CXL memory is provided in an embodiment of the present application. Figure 2 A processor within the first computing device 100, such as Figure 7 As shown, the method includes S701-S704.

[0141] S701, in response to a write data instruction, obtaining target data.

[0142] The write data instruction is used to instruct to write target data into the CXL memory.

[0143] The embodiment of the present application does not specifically limit the subject that generates the write data instruction (hereinafter referred to as the second subject). In an optional implementation, the second subject can be at least one of a process, an application, or a computing device.

[0144] The second body may be the same as or different from the first body.

[0145] In the case where the second subject is a process (hereinafter referred to as the second process), the second process can be run in the first computing device or in the second computing device. For example, taking the second subject as process B, process B can be run in Figure 2 The process in the first computing device 100 shown may also be running on Figure 2 Processes within the second computing device 200 are shown.

[0146] When the second subject is an application (hereinafter referred to as the second application), the second application may be run in the first computing device or in the second computing device.

[0147] Specifically, take the second subject as the second process as an example. When the second process intends to write target data to the CXL memory, it can generate a write data request to write the target data to the CXL memory, and the write data request carries the target data. The second process can send the write data request to the processor. After receiving the write data request, the processor can parse the write data request to obtain the target data.

[0148] The following will continue to take the second subject as the second process as an example to illustrate the above S701 through the interaction between the user space and the kernel space.

[0149] After the second process in the user space generates a write data request to write the target data into the CXL memory, it can call the write function in the syscall interface to send the write data request to the VFS in the kernel space. After receiving the write data request, the VFS can parse the write data request to obtain the target data carried in the write data request. Alternatively, after receiving the write data request, the VFS can send the write data request to the driver module, and after receiving the write data request, the driver module can parse the write data request to obtain the target data carried in the write data request.

[0150] S702, obtaining target encoding parameters.

[0151] The embodiment of the present application does not specifically limit the way in which the processor obtains the target encoding parameter. The following will introduce: 1. obtaining the target encoding parameter from the write data instruction, and 2. obtaining the target encoding parameter from multiple encoding parameters stored in the first computing device.

[0152] 1. Get the target encoding parameters from the write data instruction.

[0153] In this embodiment, the write data instruction may carry the target encoding parameter. Accordingly, after receiving the write data instruction, the processor may parse the write data instruction to obtain the target encoding parameter.

[0154] 2. Obtain a target encoding parameter from a plurality of encoding parameters stored in the first computing device.

[0155] In this embodiment, a second corresponding relationship may be stored in the first computing device, and the second corresponding relationship is used to indicate at least one of the encoding parameters corresponding to the type of target data, encoding parameters corresponding to different processes, encoding parameters corresponding to different applications, or encoding parameters corresponding to different computing devices.

[0156] The type of target data is used to indicate the security level of the target data, and different security levels may correspond to different encoding parameters. For example, assuming that there are three security levels, namely the first security level, the second security level and the third security level, the first security level, the second security level and the third security level correspond to different encoding parameters.

[0157] The embodiment of the present application does not specifically limit the storage form of the second corresponding relationship. For example, the second corresponding relationship can be stored in the first computing device in the form of a table, or in the form of a function.

[0158] The encoding parameters corresponding to different processes may include: encoding parameters corresponding to multiple processes running in the first computing device and / or the second computing device. For details, please refer to the above description of decoding parameters corresponding to different applications, which will not be repeated here. It should be noted that the encoding parameters corresponding to different processes may be the same or different.

[0159] The encoding parameters corresponding to different applications may include: encoding parameters corresponding to multiple applications installed in the first computing device and / or the second computing device. For details, please refer to the above description of the decoding parameters corresponding to different applications, which will not be repeated here. It should be noted that the encoding parameters corresponding to different applications can be the same or different. The encoding parameters corresponding to the same application installed on different computing devices can be the same or different.

[0160] The encoding parameters corresponding to different computing devices may include: encoding parameters corresponding to the first computing device and encoding parameters corresponding to the second computing device. For details, please refer to the above description of the decoding parameters corresponding to different computing devices, which will not be repeated here. It should be noted that the encoding parameters corresponding to different computing devices can be the same or different.

[0161] In some embodiments, taking the second subject as the second process and the second correspondence relationship being used to indicate the encoding parameters corresponding to the type of target data as an example, after the processor receives the write data instruction sent by the second process, it can determine the type of target data, and then based on the type of target data, determine the encoding parameters corresponding to the type of target data from the second correspondence relationship stored in itself, which are the target encoding parameters.

[0162] The embodiment of the present application does not specifically limit the way in which the processor determines the type of the target data. For example, the type of the target data may be carried in the write data instruction. Accordingly, after receiving the write data instruction, the processor may parse the write data instruction to obtain the type of the target data.

[0163] In other embodiments, taking the second subject as the second process and the second correspondence relationship as an example for indicating encoding parameters corresponding to different processes, after receiving the write data instruction sent by the second process, the processor can determine the process identifier of the second process, and based on the process identifier of the second process, determine the encoding parameters corresponding to the second process from the second correspondence relationship stored in the processor, that is, the target encoding parameters.

[0164] The second corresponding relationship may be stored in the kernel space of the first computing device, or may be stored in the user space of the first computing device.

[0165] When the second correspondence is stored in the kernel space of the first computing device, the above S702, i.e., the processor obtains the target encoding parameters, can be replaced by: obtaining the second correspondence from the kernel space of the first computing device, and determining the target encoding parameters based on the second correspondence.

[0166] In the above technical solution, the second corresponding relationship is stored in the kernel space of the first computing device, and the kernel space has higher security and operation efficiency. In this way, not only can the leakage of the encoding parameters corresponding to the process, application or computing device be avoided, but also the processor efficiency of the processor can be effectively improved.

[0167] In the case where the second correspondence relationship can be saved in the user space of the first computing device, the processor obtains the target encoding parameter, which may include: obtaining the second correspondence relationship from the user space of the first computing device, and determining the target encoding parameter based on the second correspondence relationship.

[0168] In an optional implementation, the first computing device may include a coding parameter management module, which is used to store the second corresponding relationship. Accordingly, the coding parameter management module may be located in the user space of the first computing device or in the kernel space of the first computing device.

[0169] It should be noted that the encoding parameter management module and the decoding parameter management module can be the same software module or different software modules.

[0170] S703, encoding the target data based on the target encoding parameters to obtain encoded target data.

[0171] Specifically, after the target data and the target encoding parameters are acquired in the above manner, the processor may encode the target data using the target encoding parameters to obtain the encoded target data.

[0172] In order to improve the encoding efficiency of the first computing device in encoding the target data, in an optional implementation, the processor may encode the target data based on the target encoding parameter in the kernel space of the first computing device. On this basis, after obtaining the target encoding parameter based on the second corresponding relationship stored in the user space of the first computing device, the target encoding parameter needs to be sent to the kernel space of the first computing device.

[0173] In an optional implementation, both the VFS and the driver module in the kernel space of the first computing device may encode the target data using the target encoding parameters to obtain the encoded target data.

[0174] In an optional implementation, the VFS may include a first encoding module (or called encode), such as Figure 4 The first encoding module 402 is shown in FIG. The first encoding module 402 can be used to encode the target data using the target encoding parameter to obtain the encoded target data.

[0175] In an optional implementation, the driving module may include a second encoding module, such as Figure 5 The second encoding module 502 is shown in FIG. The second encoding module 502 can be used to encode the target data using the target encoding parameter to obtain the encoded target data.

[0176] S704, writing the encoded target data into the CXL memory.

[0177] Specifically, after the processor obtains the encoded target data in the above manner, it can write the encoded target data into the CXL memory.

[0178] It can be seen from the above technical solution that the data stored in CXL is encoded data (such as encoded target data) rather than plaintext data (such as target data). In this way, unsafe processes, applications or devices cannot directly read plaintext data from the CXL memory, which can further prevent unsafe processes from obtaining plaintext data from the CXL memory, thereby improving the security of CXL memory access and avoiding data leakage in the CXL memory.

[0179] In an optional implementation, after the processor stores the encoded target data in the CXL memory, the data identifier of the target data and the memory address of the encoded target data may be stored in correspondence. In this way, after the subsequent processor receives a read data instruction to read the target data from the CXL memory, it can obtain the memory address of the encoded target data based on the data identifier of the target data, and quickly read the encoded target data from the CXL memory based on the memory address of the encoded target data, so as to effectively improve the data reading efficiency of the processor.

[0180] In an optional embodiment, Figure 6 The management computing device shown may also store a second corresponding relationship. Accordingly, the processor of the first computing device may obtain the second corresponding relationship from the management computing device 601 .

[0181] The embodiment of the present application does not specifically limit the manner in which the processor obtains the second correspondence from the management computing device. In one example, when the first computing device is started, the processor of the first computing device can obtain the second correspondence from the management computing device. In another example, the processor of the first computing device can periodically obtain the second correspondence from the management computing device. For details, please refer to the above description of obtaining the first correspondence from the management computing device, which will not be repeated here.

[0182] Through the above technical solution, the second corresponding relationship in the first computing device can be updated based on the second corresponding relationship stored in the management computing device, which can avoid leakage of encoding parameters in the second corresponding relationship, further improve the security of CXL memory access, and avoid leakage of data in the CXL memory.

[0183] The above mainly introduces the data processing method provided by the embodiment of the present application from the perspective of the method. In order to realize the above functions, the data processing device includes a hardware structure and / or software module corresponding to the execution of each function. It should be easily appreciated by those skilled in the art that, in combination with the units and algorithm steps of each example described in the embodiments disclosed herein, the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is executed in the form of hardware or computer software driving hardware depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of the present application.

[0184] The embodiment of the present application can exemplarily divide the functional modules of the data processing device according to the above method. For example, the data processing device can include various functional modules corresponding to the various functional divisions, or two or more functions can be integrated into one processing module. The above integrated modules can be implemented in the form of hardware or in the form of software functional modules. It should be noted that the division of modules in the embodiment of the present application is schematic and is only a logical functional division. There may be other division methods in actual implementation.

[0185] For example, Figure 8 A possible structural diagram of a data processing device (referred to as data processing device 800 ) involved in the above embodiment is shown. The data processing device 800 includes an acquiring unit 801 , a decoding unit 802 , and a sending unit 803 .

[0186] The acquisition unit 801 is used to acquire the encoded target data from the CXL memory in response to the read data instruction. The acquisition unit 801 is used to acquire the target decoding parameters. The read data instruction is used to instruct to read the target data.

[0187] The decoding unit 802 is used to decode the encoded target data based on the target decoding parameters, and obtain the target data when the target decoding parameters are correct.

[0188] The sending unit 803 is used to return target data in response to the read data instruction.

[0189] Optionally, a first corresponding relationship is stored in the first computing device, and the first corresponding relationship is used to indicate at least one of decoding parameters corresponding to different processes, decoding parameters corresponding to different applications, or decoding parameters corresponding to different computing devices.

[0190] Optionally, the first correspondence relationship may be stored in the kernel space of the first computing device. Accordingly, the acquisition unit 801 is specifically configured to: acquire the first correspondence relationship from the kernel space of the first computing device, and determine the target decoding parameter based on the first correspondence relationship.

[0191] Optionally, the first correspondence may be stored in a user space of the first computing device. Accordingly, the acquiring unit 801 is specifically configured to: acquire the first correspondence from the user space of the first computing device, and determine the target decoding parameter based on the first correspondence. Accordingly, the sending unit 803 is further configured to send the target decoding parameter to the kernel space of the first computing device.

[0192] Optionally, when the first computing device is started, the first corresponding relationship is obtained from the management computing device; or, the first corresponding relationship is periodically obtained from the management computing device. The management computing device is used to manage multiple computing devices, including the first computing device.

[0193] Optionally, the read data instruction may carry target decoding parameters.

[0194] Optionally, both the first computing device and the second computing device are connected to the CXL memory, and the subject that generates the read data instruction is at least one of a process, an application, or a computing device. Accordingly, when the subject that generates the read data instruction is the first process, the first process can run in the first computing device, or the first process can run in the second computing device. When the subject that generates the read data instruction is the first application, the first application can run in the first computing device, or the first application can run in the second computing device.

[0195] Optionally, the decoding unit 802 is further used to decode the encoded target data based on the target decoding parameter, and obtain garbled data when the target decoding parameter is incorrect. Correspondingly, the sending unit 803 is further used to return garbled data for the read data instruction.

[0196] Optionally, the acquisition unit 801 is further used to: acquire target data in response to a write data instruction. Acquire target encoding parameters. The above-mentioned data processing device 800 also includes an encoding module and a storage module, and the encoding module is specifically used to: encode the target data based on the target encoding parameters to obtain the encoded target data. The storage module is specifically used to: write the encoded target data into the CXL memory. Among them, the write data instruction is used to instruct to write the target data into the CXL memory.

[0197] Optionally, the write data instruction includes target encoding parameters.

[0198] Optionally, a second correspondence may be stored in the first computing device, and the second correspondence may be used to indicate at least one of encoding parameters corresponding to the type of target data, encoding parameters corresponding to different processes, encoding parameters corresponding to different applications, or encoding parameters corresponding to different computing devices.

[0199] Optionally, the second correspondence relationship may be stored in the kernel space of the first computing device. The acquisition unit 801 is specifically configured to: acquire the second correspondence relationship from the kernel space of the first computing device, and determine the target encoding parameter based on the second correspondence relationship.

[0200] Optionally, the second correspondence may be stored in the user space of the first computing device. The acquisition unit 801 is specifically configured to: acquire the second correspondence from the user space of the first computing device, and determine the encoding parameters corresponding to the target data based on the second correspondence. Accordingly, the sending unit 803 is further configured to send the target encoding parameters to the kernel space of the first computing device.

[0201] Optionally, when the first computing device is started, the second corresponding relationship is obtained from the management computing device; or, the second corresponding relationship is periodically obtained from the management computing device.

[0202] The management computing device is used to manage multiple computing devices, and the multiple computing devices include the first computing device.

[0203] For the detailed description of the above optional methods, please refer to the above method embodiments, which will not be repeated here. In addition, the explanation of any data processing device provided above and the description of the beneficial effects can refer to the above corresponding method embodiments, which will not be repeated here.

[0204] An embodiment of the present application also provides a computing device, which includes a processor and a memory, the processor is connected to the memory, the memory stores computer-executable instructions, and when the processor executes the computer-executable instructions, the data processing method in the above embodiment is implemented.

[0205] The embodiments of the present application do not impose any restrictions on the specific form of the computing device. For example, the computing device may be a terminal device or a network device. Among them, the terminal device may be referred to as: terminal, user equipment (UE), terminal equipment, access terminal, user unit, user station, mobile station, remote station, remote terminal, mobile device, user terminal, wireless communication device, user agent or user device, etc. The terminal device may be a mobile phone, augmented reality (AR) device, virtual reality (VR) device, tablet computer, notebook computer, ultra-mobile personal computer (UMPC), netbook, personal digital assistant (PDA), etc. The network device may be a server, etc. Among them, the server may be a physical or logical server, or it may be two or more physical or logical servers that share different responsibilities and cooperate with each other to realize the functions of the server.

[0206] An embodiment of the present application further provides a computer-readable storage medium, on which a computer program is stored. When the computer program is executed on a computer, the computer is enabled to execute any of the methods executed by the computer devices provided above.

[0207] For the explanation of the relevant contents and description of the beneficial effects of any of the above-mentioned computer-readable storage media, reference may be made to the above-mentioned corresponding embodiments, which will not be repeated here.

[0208] The embodiment of the present application also provides a chip. The chip integrates a control circuit and one or more ports for realizing the functions of the above-mentioned computer device. Optionally, the functions supported by the chip can be referred to above and will not be repeated here. A person of ordinary skill in the art can understand that all or part of the steps of implementing the above-mentioned embodiment can be completed by instructing the relevant hardware through a program. The program can be stored in a computer-readable storage medium. The storage medium mentioned above can be a read-only memory, a random access memory, etc. The above-mentioned processing unit or processor can be a central processing unit, a general-purpose processor, an application specific integrated circuit (ASIC), a microprocessor (digital signal processor, DSP), a field programmable gate array (field programmable gatearray, FPGA) or other programmable logic devices, transistor logic devices, hardware components or any combination thereof.

[0209] The embodiment of the present application also provides a computer program product including instructions, when the instructions are run on a computer, the computer executes any one of the methods in the above embodiments. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on the computer, the process or function according to 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 from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions may be transmitted from a website site, a computer, a server, or a data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means to another website site, computer, server, or data center. 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 a data center that includes one or more servers that can be integrated with the medium. 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., an SSD), etc.

[0210] It should be noted that the above-mentioned devices for storing computer instructions or computer programs provided in the embodiments of the present application, such as but not limited to the above-mentioned memories, computer-readable storage media and communication chips, etc., are all non-transitory.

[0211] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using a software program, 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 loading and executing computer program instructions on a computer, the process or function according to the embodiment of the present application is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. Computer instructions can be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, computer instructions can be transmitted from a website site, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line (digital subscriber line, DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) mode to another website site, computer, server or data center. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server, data center, etc. that contains one or more servers that can be integrated with a medium. The available medium may be a magnetic medium (eg, a floppy disk, a hard disk, a magnetic tape), an optical medium (eg, a DVD), or a semiconductor medium (eg, a solid state disk (SSD)).

[0212] Although the present application is described herein in conjunction with various embodiments, in the process of implementing the claimed application, those skilled in the art may understand and implement other changes to the disclosed embodiments by viewing the drawings, the disclosure, and the appended claims. In the claims, the word "comprising" does not exclude other components or steps, and "one" or "an" does not exclude multiple situations. A single processor or other unit may implement several functions listed in the claims. Certain measures are recorded in different dependent claims, but this does not mean that these measures cannot be combined to produce good results.

[0213] Although the present application has been described in conjunction with specific features and embodiments thereof, it is obvious that various modifications and combinations may be made thereto without departing from the spirit and scope of the present application. Accordingly, this specification and the drawings are merely exemplary illustrations of the present application as defined by the appended claims, and are deemed to have covered any and all modifications, variations, combinations or equivalents within the scope of the present application. Obviously, those skilled in the art may make various modifications and variations to the present application without departing from the spirit and scope of the present application. Thus, if these modifications and variations of the present application fall within the scope of the claims of the present application and their equivalents, the present application is also intended to include these modifications and variations.

Claims

1. A data processing method, characterized in that: A processor applied to a first computing device, the method comprising: In response to a read data instruction, obtaining the encoded target data from the computing fast link CXL memory; the read data instruction is used to instruct to read the target data; Get target decoding parameters; Decoding the encoded target data based on the target decoding parameters, and obtaining the target data when the target decoding parameters are correct; For the read data instruction, the target data is returned.

2. The method according to claim 1, characterized in that The first computing device stores a first corresponding relationship; the first corresponding relationship is used to indicate at least one of the following: Decoding parameters corresponding to different processes; Decoding parameters corresponding to different applications; Decoding parameters corresponding to different computing devices.

3. The method according to claim 2, characterized in that The first corresponding relationship is stored in the kernel space of the first computing device; The obtaining of target decoding parameters comprises: Acquire the first corresponding relationship from the kernel space of the first computing device; Based on the first corresponding relationship, the target decoding parameter is determined.

4. The method according to claim 2, characterized in that: The first corresponding relationship is stored in a user space of the first computing device; The obtaining of target decoding parameters comprises: Acquire the first corresponding relationship from the user space of the first computing device; Based on the first corresponding relationship, determining the target decoding parameter; The method further comprises: The target decoding parameters are sent to a kernel space of the first computing device.

5. The method according to any one of claims 2 to 4, characterized in that: When the first computing device is started, the first corresponding relationship is obtained from a management computing device; or, the first corresponding relationship is periodically obtained from a management computing device; wherein the management computing device is used to manage multiple computing devices, and the multiple computing devices include the first computing device.

6. The method according to claim 1, characterized in that The read data instruction carries the target decoding parameter.

7. The method according to claim 1, characterized in that The first computing device and the second computing device are both connected to the CXL memory; the subject generating the read data instruction is at least one of a process, an application or a computing device; The subject that generates the read data instruction is a first process; the first process runs in the first computing device, or the first process runs in a second computing device; or, The subject that generates the read data instruction is a first application; The first application runs in the first computing device, or the first application runs in a second computing device.

8. The method according to claim 1, characterized in that The method further comprises: Based on the target decoding parameter, the encoded target data is decoded, and when the target decoding parameter is incorrect, garbled data is obtained; In response to the data read instruction, the garbled data is returned.

9. The method according to claim 1, characterized in that: The method further comprises: In response to a write data instruction, acquiring the target data; the write data instruction is used to instruct to write the target data into the CXL memory; Get the target encoding parameters; Based on the target encoding parameter, encoding the target data to obtain encoded target data; The encoded target data is written into the CXL memory.

10. The method according to claim 9, characterized in that The write data instruction includes the target encoding parameter.

11. The method according to claim 9, characterized in that A second corresponding relationship is stored in the first computing device; the second corresponding relationship is used to indicate at least one of the following: Encoding parameters corresponding to the type of target data; Encoding parameters corresponding to different processes; Coding parameters corresponding to different applications; Encoding parameters corresponding to different computing devices.

12. The method according to claim 11, characterized in that The second corresponding relationship is stored in the kernel space of the first computing device; The obtaining of target encoding parameters comprises: Acquire the second corresponding relationship from the kernel space of the first computing device; Based on the second corresponding relationship, the target encoding parameter is determined.

13. The method according to claim 11, characterized in that The second corresponding relationship is stored in the user space of the first computing device; The obtaining of target encoding parameters comprises: Acquire the second corresponding relationship from the user space of the first computing device; Based on the second corresponding relationship, determining the target encoding parameter; The method further comprises: The target encoding parameters are sent to a kernel space of the first computing device.

14. The method according to any one of claims 9 to 13, characterized in that: When the first computing device is started, the second corresponding relationship is obtained from the management computing device; or, the second corresponding relationship is periodically obtained from the management computing device; wherein the management computing device is used to manage multiple computing devices, and the multiple computing devices include the first computing device.

15. A computing device, characterized in that: include: Processor and memory; The processor is connected to the storage, and the processor is connected to the CXL memory; The memory is used to store computer-executable instructions, and the processor executes the computer-executable instructions stored in the memory to enable the computer device to implement the method according to any one of claims 1 to 14.