Data transmission method and computing device

Share memory between computing devices through CXL memory devices and Ethernet frame formats, solving the problem of low data transmission efficiency between computing devices and achieving efficient data transmission.

CN120358202APending Publication Date: 2025-07-22XFUSION DIGITAL TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510439234.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-04-08
Publication Date
2025-07-22

AI Technical Summary

Technical Problem

Data transmission between different computing devices is limited by network bandwidth resources, resulting in low data transmission efficiency.

Method used

The shared memory between computing devices is realized through CXL memory devices, and data packets in Ethernet frame format are directly transmitted in shared memory, avoiding transmission through network cards, and data packets are obtained and processed using the POSIX standard API.

Benefits of technology

It improves data transmission efficiency, reduces dependence on network bandwidth resources, and reduces development and maintenance costs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120358202A_ABST
    Figure CN120358202A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a data transmission method and computing equipment, the data transmission method is applied to first computing equipment and executed by a first processor of the first computing equipment, and the first processor can write a target data packet in an Ethernet frame format into a target shared memory. In the method, the target data packet can be transmitted without a network card, the transmission process of the target data packet is not limited by network bandwidth resources, and the data transmission efficiency is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computing technologies, and in particular, to a data transmission method and a computing device. Background Art

[0002] Data can be transmitted between different computing devices. For example, the computing device can be a server or the like.

[0003] Currently, data can be transmitted between different computing devices through a network. However, if the data transmitted between computing devices is large, insufficient network bandwidth resources will affect the data transmission speed, thereby resulting in low data transmission efficiency. Summary of the Invention

[0004] Embodiments of this application provide a data transmission method and a computing device, which improve the data transmission efficiency.

[0005] In a first aspect, an embodiment of this application provides a data transmission method, which is applied to a first computing device in a computing system. The computing system further includes a second computing device and a shared device. The first computing device and the second computing device share the shared device, and the shared device is a CXL memory device. The first computing device includes a first processor, and the first processor is configured to execute the following method:

[0006] Obtain a target data packet, where the format of the target data packet is an Ethernet frame format, and the target data packet is a data packet to be transmitted from the first computing device to the second computing device;

[0007] Determine a target shared memory in the shared device according to the target data packet, where the target shared memory is a shared memory of the first computing device and the second computing device;

[0008] Write the target data packet into the target shared memory.

[0009] In the above solution, the first processor can obtain a target data packet, and the format of the target data packet is an Ethernet frame format; it can determine a target shared memory according to the target data packet; and it can write the target data packet into the target shared memory. In the above solution, the target data packet in the Ethernet frame format can be transmitted to the second computing device through the target shared memory. The target data packet can be transmitted without passing through a network card, and the target data packet is not restricted by network bandwidth resources during the transmission process, thereby improving the data transmission efficiency.

[0010] In addition, the Ethernet frame format is the format of a data packet in a network communication mode. In the above solution, the target data packet can still use the format of a data packet in a network communication mode, and there is no need to set a new target data packet generation method, which makes the development and maintenance costs relatively low.

[0011] In a possible implementation, the target data packet includes a source Internet Protocol (IP) address and a destination IP address; determining the target shared memory according to the target data packet includes:

[0012] Determining at least one shared memory corresponding to the first computing device according to the source IP address, where the source IP address is the IP address of the first computing device;

[0013] Determining the target shared memory from the at least one shared memory according to the destination IP address, where the destination IP address is the same as the IP address of the second computing device.

[0014] In the above solution, the target shared memory can be determined according to the source IP address and the destination IP address, achieving the purpose of determining the target shared memory.

[0015] In a possible implementation, writing the target data packet into the target shared memory includes:

[0016] Determining writable space in a target queue of the target shared memory, where the capacity of the writable space is greater than or equal to the size of the target data packet, and the target queue is a queue in the target shared memory for storing data to be transmitted to the second computing device;

[0017] Writing the target data packet into the writable space.

[0018] In the above solution, the target data packet can be written into the writable space to facilitate transmitting the target data packet to the second computing device.

[0019] In a possible implementation, a first network driver runs on the first processor, and the first processor determines the writable space in the target queue and writes the target data packet into the writable space through the first network driver.

[0020] In the above solution, the target data packet can be written into the writable space through the first network driver, achieving the purpose of writing the target data packet into the writable space.

[0021] In a possible implementation, the target queue includes multiple spaces, and the target shared memory includes status information of each space, where the status information is used to indicate whether the space is an idle space; the first processor determining the writable space in the target queue through the first network driver includes:

[0022] The first processor determines the writable space in the target queue through the first network driver according to the status information of each space and the size of the target data packet.

[0023] In the above solution, the writable space can be determined by the first network driver, achieving the purpose of determining the writable space.

[0024] In a second aspect, an embodiment of the present application provides a data transmission method, which is applied to a second computing device of a computing system. The computing system further includes a first computing device and a shared device. The first computing device and the second computing device share the shared device. The shared device is a CXL memory device. The second computing device includes a second processor, and the second processor is used to execute the following method:

[0025] Read the target data packet from the target shared memory. The target shared memory is the shared memory of the shared device, the first computing device, and the second computing device. The format of the target data packet is the Ethernet frame format, and the target data packet is a data packet that the first computing device intends to transmit to the second computing device;

[0026] Determine the target application corresponding to the target data packet, and the target application runs on the second computing device;

[0027] Store the target data packet in the user space of the target application.

[0028] In the above solution, the target data packet can be read from the target shared memory, and the format of the target data packet is the Ethernet frame format; the target application corresponding to the target data packet can be determined, and the target application runs on the second computing device; and the target data packet can be stored in the user space of the target application. In the above solution, the target data packet in the Ethernet frame format transmitted by the first computing device can be received through the target shared memory. The target data packet can be transmitted without passing through the network card, and the target data packet is not restricted by network bandwidth resources during the transmission process, improving the data transmission efficiency.

[0029] In a possible implementation manner, the target data packet includes a destination port number; the determining the target application corresponding to the target data packet includes:

[0030] Determine the target application according to the destination port number, and the destination port number is the same as the port number corresponding to the target application.

[0031] In the above solution, the target application can be determined according to the destination port number, achieving the purpose of determining the target application.

[0032] In a possible implementation manner, the method further includes:

[0033] Poll and detect whether there is a target data packet in the target queue in the target shared memory. The target queue is a queue in the target shared memory for storing data to be transmitted to the second computing device;

[0034] If the target data packet exists in the target queue, it is determined that there is a target data packet in the target shared memory.

[0035] In the above solution, the target queue can be polled to detect the existence of the target data packet, achieving the purpose of determining whether the target data packet exists.

[0036] In a possible implementation manner, a second network driver runs on the second processor, and the second processor polls through the second network driver to detect whether there is a target data packet in the target queue in the target shared memory.

[0037] In the above solution, the second network driver can be used to poll and detect whether there is a target data packet in the target queue in the target shared memory, achieving the purpose of detecting the target data packet.

[0038] In a third aspect, an embodiment of the present application provides a data transmission device, which is applied to a first processor. The device includes an acquisition module, a determination module, and a writing module, where

[0039] The acquisition module is configured to acquire a target data packet, where the format of the target data packet is an Ethernet frame format, and the target data packet is a data packet to be transmitted from the first computing device to the second computing device;

[0040] The determination module is configured to determine a target shared memory in the shared device according to the target data packet, where the target shared memory is a shared memory of the first computing device and the second computing device;

[0041] The writing module is configured to write the target data packet into the target shared memory.

[0042] In the above solution, the target data packet can be acquired, and the format of the target data packet is an Ethernet frame format; the target shared memory can be determined according to the target data packet; and the target data packet can be written into the target shared memory. In the above solution, the target data packet in the Ethernet frame format can be transmitted to the second computing device through the target shared memory. The target data packet can be transmitted without passing through the network card, and the target data packet is not restricted by network bandwidth resources during the transmission process, improving the data transmission efficiency.

[0043] In addition, the Ethernet frame format is the format of the data packet in the network communication mode. In the above solution, the target data packet can still use the format of the data packet in the network communication mode without setting a new target data packet generation method, resulting in a relatively small development and maintenance cost.

[0044] In a possible implementation, the target data packet includes a source Internet Protocol (IP) address and a destination IP address; the determining module is specifically configured to,

[0045] Determine at least one shared memory corresponding to the first computing device according to the source IP address, where the source IP address is the IP address of the first computing device;

[0046] Determine the target shared memory from the at least one shared memory according to the destination IP address, where the destination IP address is the same as the IP address of the second computing device.

[0047] In the above solution, the target shared memory can be determined according to the source IP address and the destination IP address, achieving the purpose of determining the target shared memory.

[0048] In a possible implementation, the writing module is specifically configured to,

[0049] Determine writable space in the target queue of the target shared memory, where the capacity of the writable space is greater than or equal to the size of the target data packet, and the target queue is a queue in the target shared memory for storing data to be transmitted to the second computing device;

[0050] Write the target data packet into the writable space.

[0051] In the above solution, the target data packet can be written into the writable space to facilitate the transmission of the target data packet to the second computing device.

[0052] In a possible implementation, a first network driver runs on the writing module, and the writing module determines the writable space in the target queue and writes the target data packet into the writable space through the first network driver.

[0053] In the above solution, the target data packet can be written into the writable space through the first network driver, achieving the purpose of writing the target data packet into the writable space.

[0054] In a possible implementation, the target queue includes multiple spaces, and the target shared memory includes status information of each space, where the status information is used to indicate whether the space is an idle space; the writing module is specifically configured to determine the writable space in the target queue according to the status information of each space and the size of the target data packet.

[0055] In the above solution, the writable space can be determined through the first network driver, achieving the purpose of determining the writable space.

[0056] Fourthly, an embodiment of the present application provides a data transmission method, which is applied to a second processor. The device includes a detection module, a reading module, a determination module, and a storage module, where,

[0057] The reading module is used to read the target data packet from the target shared memory. The target shared memory is the shared memory of the shared device for the first computing device and the second computing device. The format of the target data packet is the Ethernet frame format, and the target data packet is a data packet to be transmitted from the first computing device to the second computing device;

[0058] The determination module is used to determine the target application corresponding to the target data packet, and the target application runs on the second computing device;

[0059] The storage module is used to store the target data packet into the user space of the target application.

[0060] In the above solution, the target data packet can be read from the target shared memory, and the format of the target data packet is the Ethernet frame format; the target application corresponding to the target data packet can be determined, and the target application runs on the second computing device; and the target data packet can be stored into the user space of the target application. In the above solution, the target data packet in the Ethernet frame format transmitted by the first computing device can be received through the target shared memory. The target data packet can be transmitted without passing through the network card, and the transmission process of the target data packet is not restricted by the network bandwidth resource, improving the data transmission efficiency.

[0061] In a possible implementation manner, the target data packet includes a destination port number; specifically, the determination module is used to,

[0062] Determine the target application according to the destination port number, and the destination port number is the same as the port number corresponding to the target application.

[0063] In the above solution, the target application can be determined according to the destination port number, achieving the purpose of determining the target application.

[0064] In a possible implementation manner, the detection module is further used to,

[0065] Poll and detect whether there is a target data packet in the target queue in the target shared memory. The target queue is a queue in the target shared memory for storing data to be transmitted to the second computing device;

[0066] If there is the target data packet in the target queue, it is determined that there is a target data packet in the target shared memory.

[0067] In the above solution, the target queue can be polled to detect the existence of target data packets, achieving the purpose of determining whether there are target data packets.

[0068] In a possible implementation, a second network driver runs on the detection module, and the detection module polls through the second network driver to detect whether there are target data packets in the target queue in the target shared memory.

[0069] In the above solution, the second network driver can be used to poll and detect whether there are target data packets in the target queue in the target shared memory, achieving the purpose of detecting target data packets.

[0070] In a fifth aspect, an embodiment of the present application provides a computing device, including: a memory and a processor;

[0071] The memory stores computer execution instructions;

[0072] The processor executes the computer execution instructions stored in the memory, enabling the processor to execute the above first aspect and / or various possible implementation manners of the first aspect.

[0073] In a sixth aspect, an embodiment of the present application provides a computing device, including: a memory and a processor;

[0074] The memory stores computer execution instructions;

[0075] The processor executes the computer execution instructions stored in the memory, enabling the processor to execute the above second aspect and / or various possible implementation manners of the second aspect.

[0076] In a seventh aspect, an embodiment of the present application provides a computer-readable storage medium, in which computer execution instructions are stored, and when the computer execution instructions are executed by a processor, they are used to implement the above first aspect and / or various possible implementation manners of the first aspect.

[0077] In an eighth aspect, an embodiment of the present application provides a computer-readable storage medium, in which computer execution instructions are stored, and when the computer execution instructions are executed by a processor, they are used to implement the above second aspect and / or various possible implementation manners of the second aspect.

[0078] In a ninth aspect, an embodiment of the present application provides a computer program product, including a computer program, and when the computer program is executed by a processor, it implements the above first aspect and / or various possible implementation manners of the first aspect.

[0079] In a tenth aspect, an embodiment of the present application provides a computer program product, including a computer program which, when executed by a processor, implements the second aspect and / or various possible implementation manners of the second aspect as described above. BRIEF DESCRIPTION OF THE DRAWINGS

[0080] In order to more clearly illustrate the technical solutions in the embodiments of the present application or the prior art, the following will briefly introduce the drawings required for use in the description of the embodiments or the prior art. Obviously, the drawings in the following description are only some embodiments of the embodiments of the present application. For those of ordinary skill in the art, other drawings can be obtained based on these drawings without creative efforts.

[0081] Figure 1 Schematic diagram of a system architecture provided by an embodiment of the present application;

[0082] Figure 2 Schematic diagram of the speed of reading and writing data through a CXL link provided by an embodiment of the present application;

[0083] Figure 3 Schematic flowchart of a data transmission method provided by an embodiment of the present application;

[0084] Figure 4 Schematic flowchart of another data transmission method provided by an embodiment of the present application;

[0085] Figure 5 Schematic diagram of a target queue provided by an embodiment of the present application;

[0086] Figure 6 Schematic flowchart of yet another data transmission method provided by an embodiment of the present application;

[0087] Figure 7 Schematic flowchart of yet another data transmission method provided by an embodiment of the present application;

[0088] Figure 8 Schematic diagram of a data transmission provided by an embodiment of the present application;

[0089] Figure 9 Schematic diagram of the structure of a data transmission device provided by an embodiment of the present application;

[0090] Figure 10 Schematic diagram of the structure of another data transmission device provided by an embodiment of the present application;

[0091] Figure 11 Schematic diagram of the structure of a computing device provided by an embodiment of the present application. DETAILED DESCRIPTION OF THE EMBODIMENTS

[0092] Exemplary embodiments will be described in detail herein, and examples thereof are shown in the accompanying drawings. When the following description refers to the accompanying drawings, unless otherwise indicated, the same numbers in different drawings represent the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with the embodiments of the present application. On the contrary, they are merely examples of devices and methods consistent with some aspects of the embodiments of the present application as detailed in the appended claims.

[0093] The embodiments of the present application relate to Compute Express Link (CXL) technology. For ease of understanding, the CXL technology will be explained first.

[0094] CXL technology: An open standard for high-speed, high-capacity connections from a central processing unit (CPU) to devices and from a CPU to memory. The CXL technology is designed specifically for high-performance data center computers.

[0095] The embodiments of the present application provide a data transmission method to solve the problem of low data transmission efficiency between computing devices.

[0096] Next, in combination with Figure 1 , the system architecture related to the embodiments of the present application will be described. Figure 1 FIG. [FIGURE NUMBER] is a schematic diagram of a system architecture provided for the embodiments of the present application. Please refer to Figure 1 , the CXL shared memory pool may include multiple shared memory devices. For example, the shared memory devices may be Shared Memory Device 1 and Shared Memory Device 2, etc. Among them, the shared memory device may be a CXL memory device.

[0097] For any one shared memory device, the shared memory device may be connected to multiple computing devices through a CXL link, and the shared memory device may be the shared memory device of the multiple computing devices connected thereto. Among them, multiple may be two or more. As Figure 1 shown, Shared Memory Device 1 may be connected to Computing Device 1 and Computing Device 2 through a CXL link, and Shared Memory Device 1 may be the shared memory device of Computing Device 1 and Computing Device 2; Shared Memory Device 2 may be connected to Computing Device 1 and Computing Device 3 through a CXL link, and Shared Memory Device 2 may be the shared memory device of Computing Device 1 and Computing Device 3.

[0098] Correspondingly, computing devices may be connected through a CXL link and a shared memory device. As Figure 1 shown, Computing Device 1 and Computing Device 2 may be connected through a CXL link and Shared Memory Device 1, and Computing Device 1 and Computing Device 3 may be connected through a CXL link and Shared Memory Device 2.

[0099] The computing device can be a server with CXL interconnect capability. For example, the server can be a GPU server or an AI server, etc.; alternatively, the computing device can also be an electronic device with CXL interconnect capability and computer attributes. For example, the electronic device can be a field programmable gate array (FPGA), a minicomputer, or a microcomputer, etc.

[0100] The CXL link can be a connection link composed of one or more CXL switching devices (not shown in the figure).

[0101] The CXL switching device can be a device including one or more device interfaces and / or one or more storage device interfaces. For any one device interface, the CXL switching device can be connected to a computing device or a CXL switching device through the device interface. For any one storage device interface, the CXL switching device can be connected to a shared memory device through the storage device interface.

[0102] In the above system, for any one shared memory device, there are multiple computing devices corresponding to it, and all these multiple computing devices can access the shared memory device. One of the multiple computing devices can write data into the shared memory device, and the other computing devices among the multiple computing devices can read data from the shared memory device. In this way, multiple computing devices can perform data transmission through the shared memory device.

[0103] For example, taking the shared memory device 1 as an example, both the computing device 1 and the computing device 2 can access the shared memory device 1. The computing device 1 can write data into the shared memory device 1, and the computing device 2 can read data from the shared memory device 2. In this way, the computing device 1 and the computing device 2 can perform data transmission through the shared memory device 1. For larger data, the data transmission process is not restricted by network bandwidth resources, improving the data transmission efficiency.

[0104] In addition, the speeds of writing data and reading data on the CXL link are both relatively fast. As Figure 2 shown, Figure 2 is a schematic diagram of the speeds of reading and writing data through the CXL link provided by an embodiment of the present application. Please refer to Figure 2 , Figure 2 The abscissa of which represents the operation mode of the data, and the operation mode of the data can be reading and writing; Figure 2 The ordinate of which represents the operation speed of the data.

[0105] As Figure 2As shown in the figure, the speed of reading data through the CXL link can reach 23.8GB / S, and the speed of writing data can reach 12GB / S. At present, the speed of reading and writing data through the network is about 3GB / S. It can be seen that the speed of reading and writing data through the CXL link is much higher than the speed of reading and writing data through the network. In this way, the data transmission efficiency can be further improved.

[0106] It should be noted that Figure 2 The minimum read and write speeds that can be achieved when reading and writing data via the CXL link are only exemplified. In actual implementation, when the CXL link is different, the speed of reading data and the speed of writing data via the CXL link can be faster. Figure 2 It does not limit the speed at which the CXL link can read or write data.

[0107] The technical solutions of the embodiments of the present application are described in detail with specific embodiments below. The following specific embodiments can be combined with each other, and the same or similar concepts or processes may not be described in detail in some embodiments.

[0108] Figure 3 A flow chart of a data transmission method provided in an embodiment of the present application. Figure 3 , the method may include:

[0109] S301. Obtain a target data packet, where the format of the target data packet is an Ethernet frame format.

[0110] The data transmission method provided in the embodiment of the present application is applied to a first computing device in a computing system, wherein the computing system further includes a second computing device and a shared device, the first computing device and the second computing device share the shared device, the shared device is a CXL memory device, the first computing device includes a first processor, and the first processor is used to execute Figure 3 The method shown in the embodiment.

[0111] The target data packet is a data packet to be transmitted from the first computing device to the second computing device.

[0112] The target data packet may be data generated when the application deployed on the first computing device is running. In this embodiment, the application may generate the target data packet in a network communication manner. That is, the format of the target data packet is an Ethernet frame format. In this way, the application may still generate the target data packet in a network communication manner, and there is no need to set a new target data packet generation method for the application, so that the development and maintenance costs are relatively low.

[0113] The first processor can obtain a target data packet from an application through an application programming interface (API) that conforms to the Portable Operating System Interface (POSIX) standard.

[0114] It should be noted that the API conforming to the POSIX standard can be an interface between an application and an operating system. In this embodiment, the first processor can obtain the target data packet from the application through the API conforming to the POSIX standard without developing other interfaces, making it easier to obtain the target data packet.

[0115] The second computing device can be a computing device communicatively connected to the first computing device.

[0116] S302. Determine a target shared memory in the shared device according to the target data packet. The target shared memory is a shared memory between the first computing device and the second computing device.

[0117] The shared device can be a CXL memory device. For example, the shared device can be Figure 1 the shared memory device in the CXL shared memory pool shown. Among them, the target shared memory can be a part of the memory of the shared device.

[0118] The target data packet can include a source Internet Protocol (IP) address and a destination IP address. The source IP address can be the IP address of the sender of the target data packet, that is, the source IP address can be the IP address of the first computing device. The destination IP address can be the IP address of the receiver of the target data packet, that is, the destination IP address can be the IP address of the second computing device. In this way, the first processor can determine the first computing device according to the source IP address in the target data packet, can determine the second computing device according to the destination IP address, and then can determine the shared memory between the first computing device and the second computing device. That is to say, the first processor can determine the target shared memory according to the target data packet.

[0119] S303. Write the target data packet into the target shared memory.

[0120] After the first processor determines the target shared memory, it can write the target data packet into the target shared memory so that the second computing device can obtain the target data packet from the target shared memory.

[0121] Specifically, the application program in the first computing device can generate at least one target data packet. The first processor can trigger the "dev_queue_xmit()" function to put the target data packet generated by the application program into the transmission queue in the kernel space, and can trigger the "hard_start_xmit()" function to write the target data packet in the transmission queue in the kernel space into the target shared memory.

[0122] In the data transmission method provided in this embodiment, the first processor can obtain a target data packet, and the format of the target data packet is the Ethernet frame format; it can determine the target shared memory according to the target data packet; and it can write the target data packet in the target shared memory. In the above method, the first processor can transmit the target data packet in the Ethernet frame format to the second computing device through the target shared memory. The target data packet can be transmitted without passing through the network card, and the transmission process of the target data packet is not restricted by network bandwidth resources, improving the data transmission efficiency. In addition, the Ethernet frame format is the format of the data packet in the network communication mode. In the above solution, the target data packet can still use the format of the data packet in the network communication mode, without setting a new target data packet generation method, resulting in a relatively low development and maintenance cost.

[0123] Based on any of the above embodiments, the following further describes the process of the first processor writing the target data packet into the target shared memory in conjunction with Figure 4 to the process of the first processor writing the target data packet into the target shared memory.

[0124] Figure 4 is a schematic flowchart of another data transmission method provided by an embodiment of the present application. The execution subject of this method can be the first processor. Please refer to Figure 4 and this method may include:

[0125] S401. Obtain a target data packet, the format of the target data packet is the Ethernet frame format, and the target data packet includes a source IP address and a destination IP address.

[0126] It should be noted that the specific implementation manner of S401 can refer to S301 and S302, which will not be elaborated here.

[0127] S402. Determine at least one shared memory corresponding to the first computing device according to the source IP address.

[0128] The source IP address is the IP address of the first computing device.

[0129] The shared memory corresponding to the first computing device can be the shared memory between the first computing device and the computing devices other than the first computing device. For example, the shared memory corresponding to the first computing device can be the shared memory between the first computing device and the second computing device, etc. The shared memory can be Figure 1Part of the memory in the shared memory device, or it can also be the entire shared memory device.

[0130] In some embodiments, there is a corresponding relationship between the IP address of the computing device and the shared memory corresponding to the computing device. The first processor can determine at least one shared memory corresponding to the first computing device according to the source IP address.

[0131] Exemplarily, assume that the corresponding relationship between the IP address of the computing device and the shared memory corresponding to the computing device is shown in Table 1:

[0132] Table 1

[0133] IP address Shared memory IP address 1 Shared memory a, Shared memory b IP address 2 Shared memory a, Shared memory c IP address 3 Shared memory b, Shared memory c

[0134] As shown in Table 1, the shared memories corresponding to IP address 1 can be shared memory a and shared memory b, the shared memories corresponding to IP address 2 can be shared memory a and shared memory c, and the shared memories corresponding to IP address 3 can be shared memory b and shared memory c. Assume that the source IP address is IP address 1, then at least one shared memory corresponding to the first computing device can be shared memory a and shared memory b.

[0135] In some embodiments, there is a corresponding relationship between the IP address of the computing device and the device identifier of the computing device, and there is a corresponding relationship between the device identifier of the computing device and the shared memory corresponding to the computing device. The first processor can determine the device identifier of the first computing device according to the source IP address, and can determine at least one shared memory corresponding to the first computing device according to the device identifier of the first computing device.

[0136] Exemplarily, assume that the corresponding relationship between the IP address of the computing device and the device identifier of the computing device is shown in Table 2:

[0137] Table 2

[0138] IP address Device identifier IP address 1 Computing device 1 IP address 2 Computing device 2 IP address 3 Computing device 3

[0139] As shown in Table 2, the device identifier corresponding to IP address 1 can be computing device 1, the device identifier corresponding to IP address 2 can be computing device 2, and the device identifier corresponding to IP address 3 can be computing device 3. Assume that the source IP address is IP address 1, then the device identifier of the first computing device can be computing device 1.

[0140] Assume that the corresponding relationship between the device identifier of the computing device and the shared memory corresponding to the computing device is shown in Table 3:

[0141] Table 3

[0142] Device identifier Shared memory Computing device 1 Shared memory a, Shared memory b Computing device 2 Shared memory a, Shared memory c Computing device 3 Shared memory b, Shared memory c

[0143] As shown in Table 3, the shared memory corresponding to computing device 1 can be shared memory a and shared memory b, the shared memory corresponding to computing device 2 can be shared memory a and shared memory c, and the shared memory corresponding to computing device 3 can be shared memory b and shared memory c. As can be seen from Table 2, the device identifier of the first computing device is computing device 1, so at least one shared memory corresponding to the first computing device can be shared memory a and shared memory b.

[0144] It should be noted that the first computing device may store the correspondence between the IP address of the computing device and the shared memory corresponding to the computing device; and / or, the first computing device may store the correspondence between the IP address of the computing device and the device identifier of the computing device, as well as the correspondence between the device identifier of the computing device and the shared memory corresponding to the computing device. In the actual application process, the first processor may determine at least one shared memory corresponding to the first computing device according to the correspondence between the IP address of the computing device and the shared memory corresponding to the computing device; and / or, the first processor may determine at least one shared memory corresponding to the first computing device according to the correspondence between the IP address of the computing device and the device identifier of the computing device, as well as the correspondence between the device identifier of the computing device and the shared memory corresponding to the computing device.

[0145] It should be noted that the above shared memory may be the shared memory in the CXL memory pool, and the computing device may be a computing device connected to the CXL shared memory pool. For any shared memory in the CXL shared memory pool, the first computing device may obtain the correspondence between the shared memory and the computing device, and may update the correspondence between the IP address of the computing device and the shared memory corresponding to the computing device according to the correspondence between the shared memory and the computing device; and / or, may update the correspondence between the IP address of the computing device and the device identifier of the computing device, as well as the correspondence between the device identifier of the computing device and the shared memory corresponding to the computing device according to the correspondence between the shared memory and the computing device. The embodiment of the present application does not limit the manner in which the first computing device obtains the correspondence between the shared memory and the computing device. For example, the first computing device may obtain the correspondence between the shared memory and the computing device from the management device, and the management device may be used to manage the shared memory in the CXL shared memory pool.

[0146] In this embodiment, a first network driver runs on the first processor. It can be understood that the network driver can also be called a network card driver. Specifically, the first network driver can run in the kernel space of the first processor. The first processor can determine at least one shared memory corresponding to the first computing device through the first network driver.

[0147] S403. Determine a target shared memory from at least one shared memory according to the destination IP address.

[0148] The destination IP address is the same as the IP address of the second computing device.

[0149] In this embodiment, the first processor may search for the shared memory corresponding to the second computing device in at least one shared memory corresponding to the first computing device, and may determine the shared memory corresponding to the second computing device in the at least one shared memory as the target shared memory.

[0150] In some embodiments, there is a corresponding relationship between the IP address of the computing device and the shared memory corresponding to the computing device. The first processor may determine the target shared memory in at least one shared memory according to the destination IP address.

[0151] Exemplarily, taking Table 1 as an example, assuming that at least one shared memory corresponding to the first computing device may be shared memory a and shared memory b, and the destination IP address is IP address 3, then the target shared memory may be shared memory b.

[0152] In some embodiments, there is a corresponding relationship between the IP address of the computing device and the device identifier of the computing device, and there is a corresponding relationship between the device identifier of the computing device and the shared memory corresponding to the computing device. The first processor may determine the device identifier of the second computing device according to the destination IP address, and may determine the target shared memory in at least one shared memory according to the device identifier of the second computing device.

[0153] Exemplarily, taking Table 2 and Table 3 as an example, assuming that at least one shared memory corresponding to the first computing device may be shared memory a and shared memory b. Assuming that the destination IP address is IP address 3, then the device identifier of the second computing device may be computing device 3, and the target shared memory may be shared memory b.

[0154] In this embodiment, the first processor may determine the target shared memory in at least one shared memory through the first network driver, achieving the purpose of determining the target shared memory.

[0155] S404. Determine the writable space in the target queue of the target shared memory.

[0156] It should be noted that the target shared memory may include at least one queue. The queue may be used to store data. At least one queue may include the target queue.

[0157] The target queue is a queue for storing data to be transmitted to the second computing device. The target queue has the property of First In First Out (FIFO). The first processor may determine the writable space in the available space of the target queue according to the FIFO property of the target queue.

[0158] Specifically, the target queue may include multiple spaces, and the multiple spaces may be arranged in a preset order. The first processor may determine writable space starting from the starting position of the free space in the target queue. The capacity of the writable space is greater than or equal to the size of the target data packet.

[0159] In this embodiment, the target shared memory may further include status information corresponding to each space. For any space, the status information corresponding to the space may be used to indicate whether the space is a free space. For example, the status information corresponding to the space may be the first information or the second information. The first information may be used to indicate that the space is a free space, and the second information may be used to indicate that the space is a non-free space.

[0160] The following will describe the target queue in conjunction with Figure 5 . Figure 5 FIG. Figure 5 shows a schematic diagram of a target queue provided by an embodiment of the present application. Please refer to Figure 5 , the target queue may include multiple spaces, and the multiple spaces may be Space 0, Space 1, Space 2... etc. Assume Figure 5 that the spaces with filled space numbers store data, and the spaces without filled space numbers are available spaces. Then the first processor may determine writable space among the spaces without filled space numbers. It should be noted that the target shared memory may store Figure 5 the status information corresponding to each space in Figure 5 . The status information of the spaces with filled space numbers in

[0161] may be used to indicate that the space is a non-free space. The status information of the spaces without filled space numbers in

[0162] may be used to indicate that the space is a free space. It should be noted that the embodiments of the present application do not limit the functions of other queues in at least one queue. Other queues may be queues other than the target queue in at least one queue. For example, other queues may be queues for storing data to be transmitted from a second computing device to a first computing device.

[0163] Specifically, the first network driver may determine the starting position of the writable space according to the preset order of multiple spaces and the status information of each space, and may determine the capacity of the writable space according to the size of the target data packet, so as to achieve the purpose of determining the writable space.

[0164] In some examples, the capacity of the writable space may be equal to the size of the target data packet.

[0165] In some examples, the capacity of the writable space may be greater than the size of the target data packet. The difference between the capacity of the writable space and the size of the target data packet is a preset value.

[0166] S405. Write the target data packet into the writable space.

[0167] In this embodiment, the first processor writes the target data packet into the writable space through the first network driver.

[0168] Specifically, the first network driver can trigger the "dev_queue_xmit()" function to put the target data packet generated by the application program into the transmission queue in the kernel space, and can trigger the "hard_start_xmit()" function to write the target data packet in the transmission queue in the kernel space into the writable space. In the above method, the first processor can write the target data packet into the writable space of the target shared memory, so that the second processor can read the target data packet from the writable space. The transmission process of the target data packet does not need to pass through the network card, avoiding the limitation of the network card on the transmission speed of the target data packet.

[0169] In this embodiment, after the first processor writes the target data packet into the writable space through the first network driver, it can also update the status information of the writable space in the target shared memory. The updated status information can be used to indicate that the writable space is a non-idle space.

[0170] For the data transmission method provided in this embodiment, the first processor can obtain the target data packet, and the format of the target data packet is the Ethernet frame format, and can write the target data packet into the writable space of the target shared memory. In the above method, the first processor can transmit the target data packet in the Ethernet frame format to the second computing device through the target shared memory. The target data packet can be transmitted without passing through the network card, and the transmission process of the target data packet is not restricted by network bandwidth resources, improving the data transmission efficiency. In addition, the format of the target data packet can follow the data packet format during network communication, resulting in a relatively low development and maintenance cost.

[0171] Based on any of the above embodiments, the second computing device can read the target data packet from the target shared memory. The following will be combined with Figure 6 to further illustrate the data transmission method provided in the embodiments of the present application.

[0172] Figure 6 is a schematic flowchart of another data transmission method provided in the embodiments of the present application. Please refer to Figure 6 and the method may include:

[0173] S601. Read the target data packet from the target shared memory.

[0174] The data transmission method provided by the embodiment of the present application is applied to a second computing device of a computing system. The computing system further includes a first computing device and a shared device. The first computing device and the second computing device share the shared device, and the shared device is a CXL memory device. The second computing device includes a second processor, and the second processor is used to execute Figure 6 the method shown in the embodiment.

[0175] The format of the target data packet is an Ethernet frame format.

[0176] The target shared memory is the shared memory of the first computing device and the second computing device.

[0177] The target data packet is a data packet that the first computing device intends to transmit to the second computing device.

[0178] In this embodiment, the second processor can periodically detect whether there is an unread data packet in the target shared memory, or the second processor can poll to detect whether there is an unread data packet in the target shared memory. In this way, after the first processor writes the target data packet into the target shared memory, the second processor can detect that there is a target data packet in the target shared memory and can read the target data packet from the target shared memory. Through the above method, the purpose of transmitting the target data packet through the target shared memory can be achieved.

[0179] In this embodiment, the second processor can detect whether there is a target data packet in the target shared memory. If there is a target data packet in the target shared memory, the second processor can trigger a preset program to read the target data packet. The preset program can be a program for reading the target data packet.

[0180] S602. Determine the target application corresponding to the target data packet, and the target application runs on the second computing device.

[0181] The target application can be the application program that receives the target data packet.

[0182] It should be noted that a data packet in Ethernet frame format can include a source port number and a destination port number. The source port number can be used to indicate the application program that generates the data packet in Ethernet frame format, and the destination port number can be used to indicate the application program that receives the data packet in Ethernet frame format.

[0183] In this embodiment, the format of the target data packet is Ethernet frame format, and the target data packet can include a destination port number.

[0184] The destination port number can be the port number of the application program for receiving the target data packet.

[0185] In this embodiment, the second processor may determine the target application according to the destination port number, and the destination port number is the same as the port number corresponding to the target application.

[0186] Specifically, the second processor may determine, as the target application, the application program running on the second computing device whose port number is the same as the destination port number.

[0187] S603. Store the target data packet in the user space of the target application.

[0188] The user space of the target application can be used to store the data required by the target application.

[0189] In this embodiment, after the second processor determines the target application, it may store the target data packet in the user space of the target application.

[0190] In this embodiment, the second processor may trigger the "netif_rx" function to store the target data packet in the user space of the target application, so as to achieve the purpose of storing the target data packet.

[0191] In the data transmission method provided in this embodiment, when the second processor detects that there is a target data packet in the target shared memory, it may read the target data packet from the target shared memory, and the format of the target data packet is the Ethernet frame format; it may determine the target application corresponding to the target data packet, and the target application runs on the second computing device; and it may store the target data packet in the user space of the target application. In the above method, the second processor may receive the target data packet in the Ethernet frame format transmitted by the first computing device through the target shared memory, the target data packet may not be transmitted through the network card, and the target data packet is not restricted by the network bandwidth resource during the transmission process, thereby improving the data transmission efficiency.

[0192] On the basis of any of the above embodiments, the following is combined with Figure 7 to further illustrate the process of the second computing device obtaining the target data packet from the target shared memory.

[0193] Figure 7 It is a schematic flowchart of another data transmission method provided in an embodiment of the present application. The execution subject of this method may be the second processor. Please refer to Figure 7 This method may include:

[0194] S701. Poll and detect whether there is a target data packet in the target queue in the target shared memory.

[0195] The target queue is a queue in the target shared memory for storing data to be transmitted to the second computing device.

[0196] In this embodiment, the second processor can poll to detect whether there is unread data in the target queue. Specifically, if there is unread data in the target queue, the second processor can determine that there is a target data packet in the target queue.

[0197] In this embodiment, a second network driver runs on the second processor. Specifically, the second network driver can run in the kernel space of the second processor.

[0198] In this embodiment, the second processor can poll to detect whether there is a target data packet in the target queue in the target shared memory through the second network driver.

[0199] Specifically, the target queue can include multiple spaces, and the multiple spaces can be arranged in a preset order. The target shared memory can also include status information corresponding to each space. The second network driver can determine whether each space is a non-idle space in turn according to the preset order of the multiple spaces and the status information of each space. For any one space, if the space is a non-idle space, the second network driver can determine that there is a target data packet in the space.

[0200] S702: If there is a target data packet in the target queue, determine that there is a target data packet in the target shared memory.

[0201] S703: Read the target data packet from the target shared memory. The target data packet includes a destination port number.

[0202] In this embodiment, if there is a target data packet in a space of the target queue, the second network driver reads the target data packet from the space, and can also update the status information of the space after reading the target data packet. The updated status information can be used to indicate that the space is an idle space.

[0203] If there are target data packets in multiple spaces of the target queue, the second network driver can read the target data packets from the multiple spaces in turn according to the preset order, and can also update the status information of the multiple spaces after reading the target data packets. For any one of the multiple spaces, the updated status information can be used to indicate that the space is an idle space.

[0204] S704: Determine the target application according to the destination port number.

[0205] The destination port number is the same as the port number corresponding to the target application.

[0206] In this embodiment, the second processor can determine the target application through the second network driver.

[0207] S705: Store the target data packet into the user space of the target application.

[0208] In this embodiment, the second processor can trigger the "netif_rx" function through the second network driver to store the target data packet into the user space of the target application.

[0209] In the data transmission method provided in this embodiment, the second processor can poll and detect whether there is a target data packet in the target queue in the target shared memory; if there is a target data packet in the target queue, the target data packet can be read; and the target data packet can be stored into the user space of the target application. In the above method, the second processor can receive the target data packet in the Ethernet frame format transmitted by the first computing device through the target shared memory. The target data packet can be transmitted without passing through the network card, and the target data packet is not restricted by the network bandwidth resources during the transmission process, improving the data transmission efficiency.

[0210] Based on any of the above embodiments, the following will be combined with Figure 8 , through specific examples, to illustrate the data transmission method provided in the embodiments of the present application.

[0211] Figure 8 It is a schematic diagram of data transmission provided in the embodiments of the present application. Please refer to Figure 8 , the application program of the first computing device can generate a target data packet and send the target data packet to the first network driver through the API of the POSIX standard. The first network driver can write the target data packet into the target shared memory. The second network driver of the second computing device can read the target data packet from the target shared memory and write the target data packet into the user space of the target application.

[0212] Figure 9 It is a schematic diagram of the structure of a data transmission device provided in the embodiments of the present application. The data transmission device 10 applies a first processor. The data transmission device 10 includes an acquisition module 11, a determination module 12, and a writing module 13, where

[0213] The acquisition module 11 is configured to acquire a target data packet, where the format of the target data packet is the Ethernet frame format, and the target data packet is a data packet to be transmitted from the first computing device to the second computing device;

[0214] The determination module 12 is configured to determine a target shared memory in the shared device according to the target data packet, where the target shared memory is a shared memory between the first computing device and the second computing device;

[0215] The writing module 13 is configured to write the target data packet into the target shared memory.

[0216] The code execution device provided in this embodiment can execute the method executed by the first processor in any of the above method embodiments. The implementation principles and technical effects are similar, and will not be elaborated here in this embodiment.

[0217] In a possible implementation manner, the target data packet includes a source Internet Protocol (IP) address and a destination IP address; the determining module 12 is specifically configured to,

[0218] Determine at least one shared memory corresponding to the first computing device according to the source IP address, where the source IP address is the IP address of the first computing device;

[0219] Determine the target shared memory from the at least one shared memory according to the destination IP address, where the destination IP address is the same as the IP address of the second computing device.

[0220] In a possible implementation manner, the writing module 13 is specifically configured to,

[0221] Determine writable space in the target queue of the target shared memory, where the capacity of the writable space is greater than or equal to the size of the target data packet, and the target queue is a queue in the target shared memory for storing data to be transmitted to the second computing device;

[0222] Write the target data packet into the writable space.

[0223] In a possible implementation manner, a first network driver runs on the writing module 13, and the writing module 13 determines writable space in the target queue and writes the target data packet into the writable space through the first network driver.

[0224] In a possible implementation manner, the target queue includes multiple spaces, and the target shared memory includes status information of each space, where the status information is used to indicate whether the space is an idle space; the writing module 13 is specifically configured to determine writable space in the target queue according to the status information of each space and the size of the target data packet.

[0225] The code execution device provided in this embodiment can execute the method executed by the first processor in any of the above method embodiments. The implementation principles and technical effects are similar, and will not be elaborated here in this embodiment.

[0226] Figure 10 It is a schematic structural diagram of another data transmission device provided in an embodiment of the present application. The data transmission device 20 applies a second processor. The data transmission device 20 includes a detection module 21, a reading module 22, a determining module 23, and a storage module 24, where,

[0227] The reading module 22 is configured to read the target data packet from the target shared memory, where the target shared memory is the shared memory of the shared device, the first computing device, and the second computing device, the format of the target data packet is an Ethernet frame format, and the target data packet is a data packet to be transmitted from the first computing device to the second computing device;

[0228] The determining module 23 is configured to determine the target application corresponding to the target data packet, where the target application runs on the second computing device;

[0229] The storage module 24 is configured to store the target data packet into the user space of the target application.

[0230] The code execution device provided in this embodiment can execute the method executed by the second processor in any of the above method embodiments, and its implementation principle and technical effects are similar, which will not be elaborated here in this embodiment.

[0231] In a possible implementation manner, the target data packet includes a destination port number; specifically, the determining module 23 is configured to

[0232] determine the target application according to the destination port number, where the destination port number is the same as the port number corresponding to the target application.

[0233] In a possible implementation manner, the detection module 21 is further configured to

[0234] poll and detect whether there is a target data packet in the target queue in the target shared memory, where the target queue is a queue in the target shared memory for storing data to be transmitted to the second computing device;

[0235] If there is the target data packet in the target queue, it is determined that there is a target data packet in the target shared memory.

[0236] In a possible implementation manner, a second network driver runs on the detection module 21, and the detection module polls and detects whether there is a target data packet in the target queue in the target shared memory through the second network driver.

[0237] The code execution device provided in this embodiment can execute the method executed by the second processor in any of the above method embodiments, and its implementation principle and technical effects are similar, which will not be elaborated here in this embodiment.

[0238] Figure 11 It is a schematic structural diagram of a computing device provided in an embodiment of the present application. The computing device may be the first computing device, or the computing device may also be the second computing device.

[0239] As shown Figure 11 in FIG. Figure 11 , the computing device 30 may include a processor 31 and a memory 32. Among them, the processor 31 and the memory 32 may communicate. Exemplarily, the processor 31 and the memory 32 communicate through a communication bus 33. The memory 32 is used to store computer-executable instructions, and the processor 31 is used to call the computer-executable instructions in the memory to execute the data transmission method shown in any of the above method embodiments.

[0240] Optionally, the computing device 30 may further include a communication interface, and the communication interface may include a transmitter and / or a receiver.

[0241] Optionally, the above-mentioned processor may be a central processing unit (CPU), or may also be a graphics processing unit (GPU), other general-purpose processors, a digital signal processor (DSP), or an application specific integrated circuit (ASIC), etc. The general-purpose processor may be a microprocessor or the processor may also be any conventional processor, etc. The steps of the method disclosed in the embodiments of the present application may be directly embodied as being executed by a hardware processor, or may be executed by a combination of hardware and software modules in the processor.

[0242] The embodiments of the present application provide a computer-readable storage medium, on which computer-executable instructions are stored; the computer-executable instructions are used to implement the data transmission method as described in any of the above embodiments.

[0243] The embodiments of the present application provide a computer program product, which includes a computer program. When the computer program is executed, the computer is caused to execute the above data transmission method.

[0244] All or part of the steps of implementing the above method embodiments may be completed by hardware related to program instructions. The foregoing program may be stored in a readable memory. When the program is executed, it executes the steps including the above method embodiments; and the foregoing memory (storage medium) includes: read-only memory (abbreviation: ROM), RAM, flash memory, hard disk, solid state drive, magnetic tape, floppy disk, optical disc, and any combination thereof.

[0245] Embodiments of the present application are described with reference to the flowcharts and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present application. It should be understood that each flow and / or block in the flowchart and / or block diagram, and the combination of flows and / or blocks in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to the processing unit of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable terminal devices to generate a machine, such that the instructions executed by the processing unit of the computer or other programmable terminal devices generate a means for implementing the functions specified in one flow Figure One one flow or multiple flows and / or blocks Figure One or a means for implementing the functions specified in multiple blocks.

[0246] These computer program instructions can also be stored in a computer-readable memory that can direct a computer or other programmable terminal devices to work in a specific manner, such that the instructions stored in the computer-readable memory generate a manufactured article including an instruction means that implements the functions specified in one flow Figure One one flow or multiple flows and / or blocks Figure One or a means for implementing the functions specified in multiple blocks.

[0247] These computer program instructions can also be loaded onto a computer or other programmable terminal devices, such that a series of operation steps are executed on the computer or other programmable devices to generate a computer-implemented process, so that the instructions executed on the computer or other programmable devices provide steps for implementing the functions specified in one flow Figure One one flow or multiple flows and / or blocks Figure One or a means for implementing the functions specified in multiple blocks.

[0248] Obviously, those skilled in the art can make various modifications and variations to the embodiments of the present application without departing from the spirit and scope of the embodiments of the present application. Thus, if these modifications and variations of the embodiments of the present application fall within the scope of the claims of the present application and their equivalent technologies, the embodiments of the present application are also intended to include these modifications and variations.

[0249] In the embodiments of the present application, the terms "include", "comprise" or any other variants thereof are intended to cover non-exclusive inclusion, such that a process, method, article or device including a series of elements not only includes those elements but also includes other elements not expressly listed, or further includes elements inherent to such process, method, article or device. Without further limitation, an element defined by the statement "including one..." does not exclude the presence of additional identical elements in the process, method, article or device including such element. The term "or" and its variants may refer to "and / or". In the embodiments of the present application, terms such as "first", "second" etc. are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. In the embodiments of the present application, "a plurality of" means two or more. "And / or" describes the associated relationship of associated objects and indicates that three relationships may exist. For example, A and / or B may represent: A exists alone, A and B exist simultaneously, and B exists alone. The character " / " generally represents an "or" relationship between the associated objects before and after.

[0250] After considering the specification and the invention disclosed in the practice, those skilled in the art will readily conceive of other embodiments of the present application. The embodiments of the present application are intended to cover any variations, uses or adaptations of the embodiments of the present application, which follow the general principles of the embodiments of the present application and include common general knowledge or conventional technical means in the technical field not disclosed in the embodiments of the present application.

Claims

1. A data transmission method, characterized in that, A first computing device applied to a computing system, the computing system further including a second computing device and a shared device, the first computing device and the second computing device sharing the shared device, the shared device being a CXL memory device, the first computing device including a first processor, the first processor being configured to execute the following method: Obtain a target data packet, the format of the target data packet being Ethernet frame format, the target data packet being a data packet to be transmitted from the first computing device to the second computing device; Determine a target shared memory in the shared device according to the target data packet, the target shared memory being a shared memory between the first computing device and the second computing device; Write the target data packet into the target shared memory.

2. The method according to claim 1, characterized in that, The target data packet includes a source Internet Protocol (IP) address and a destination IP address; The determining the target shared memory according to the target data packet includes: Determine at least one shared memory corresponding to the first computing device according to the source IP address, the source IP address being the IP address of the first computing device; Determine the target shared memory from the at least one shared memory according to the destination IP address, the destination IP address being the same as the IP address of the second computing device.

3. The method according to claim 1 or 2, characterized in that, The writing the target data packet into the target shared memory includes: Determine writable space in a target queue of the target shared memory, the capacity of the writable space being greater than or equal to the size of the target data packet, the target queue being a queue in the target shared memory for storing data to be transmitted to the second computing device; Write the target data packet into the writable space.

4. The method according to claim 3, wherein A first network driver runs on the first processor, and the first processor determines the writable space in the target queue and writes the target data packet into the writable space through the first network driver.

5. The method according to claim 4, wherein The target queue includes multiple spaces, and the target shared memory includes status information of each space, the status information being used to indicate whether the space is an idle space; The first processor determining the writable space in the target queue through the first network driver includes: The first processor determines the writable space in the target queue through the first network driver according to the status information of each space and the size of the target data packet.

6. A data transmission method, characterized in that, A second computing device applied to a computing system, the computing system further including a first computing device and a shared device, the first computing device and the second computing device sharing the shared device, the shared device being a CXL memory device, the second computing device including a second processor, the second processor being configured to execute the following method: Read a target data packet from a target shared memory, the target shared memory being a shared memory between the first computing device and the second computing device in the shared device, the format of the target data packet being Ethernet frame format, the target data packet being a data packet to be transmitted from the first computing device to the second computing device; Determine a target application corresponding to the target data packet, the target application running on the second computing device; Store the target data packet in the user space of the target application.

7. The method according to claim 6, characterized in that, The target data packet includes a destination port number; determining the target application corresponding to the target data packet includes: Determining the target application according to the destination port number, where the destination port number is the same as the port number corresponding to the target application.

8. The method according to claim 6 or 7, characterized in that The method further includes: Polling to detect whether there is a target data packet in the target queue in the target shared memory, where the target queue is a queue in the target shared memory for storing data to be transmitted to the second computing device; If there is a target data packet in the target queue, it is determined that there is a target data packet in the target shared memory.

9. The method according to claim 8, wherein A second network driver runs on the second processor, and the second processor polls to detect whether there is a target data packet in the target queue in the target shared memory through the second network driver.

10. A computing device, characterized in that, It is characterized by including: a memory and a processor; The memory stores computer execution instructions; The processor executes the computer execution instructions stored in the memory, so that the processor executes the method according to any one of claims 1-5, or executes the method according to any one of claims 6-9.