Data transmission method and device, equipment, storage medium and program product
By receiving and processing information of CXL devices in the computing node and performing packet transmission in hot addition events, the problem of insufficient management of newly added CXL devices in the prior art is solved, and data transmission and management of CXL devices across computing nodes is realized, and memory utilization is improved.
Patent Information
- Application Number
- CN202411997779.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-30
- Publication Date
- 2025-04-18
- Estimated Expiration
- 2044-12-30
AI Technical Summary
The prior art only considers the data transmission process between CXL devices, and fails to effectively manage the newly added CXL devices, especially in hot addition scenarios.
By receiving the information required to access the target CXL device in the second computing node at the first computing node, and performing a hot addition operation when a hot addition event of the CXL device is detected, data transmission and management of CXL device across the computing node is realized.
The registration and management of newly added CXL devices is realized, ensuring the data transmission efficiency and reliability between CXL devices, and improving the utilization rate of idle memory in the data center network.
Smart Images

Figure CN119854380A_ABST
Abstract
Description
Technical Field
[0001] The present application belongs to the technical field of computer networks, and in particular, relates to a data transmission method, apparatus, device, storage medium and program product. Background Art
[0002] In the related technologies, Compute Express Link (CXL) technology is a new type of high-speed interconnect technology. CXL technology can realize memory pooling, greatly improve the utilization rate of idle memory in data center networks, and meet the needs of computing and storage systems. The CXL protocol itself is based on the peripheral component interconnect express (PCIe) high-speed expansion bus, which can well solve the compatibility problem between CXL devices and old PCIE devices. However, in the related technologies, only the data transmission process between CXL devices is considered, which is not conducive to the management of newly added CXL devices. Summary of the invention
[0003] In order to solve the problem in the related art that it is difficult to manage a newly added CXL device, the embodiments of the present application provide a data transmission method, apparatus, device, storage medium and program product.
[0004] The present application provides a data transmission method, which is applied to a first computing node. The method includes:
[0005] receiving first information required to access a target CXL device in a second computing node;
[0006] When a hot-add event of a first CXL device is detected in the first computing node, performing a hot-add operation of the first CXL device;
[0007] Acquire a first data packet by accessing the first CXL device;
[0008] The first data packet is sent to a target CXL device of the second computing node according to the first information.
[0009] In some embodiments, after performing the hot-add operation of the first CXL device, the method further includes: configuring a designated vendor specific extended capability (DVSEC) of the first CXL device, and notifying an operating system of the first computing node of transmission attribute information of the first CXL device.
[0010] In some embodiments, configuring the DVSEC of the first CXL device comprises: configuring the DVSEC of the first CXL device on the first CXL device and associated devices through perception software, wherein the associated devices include at least one of a switch and a host bridge.
[0011] In some embodiments, before receiving the first information required to access the target CXL device in the second computing node, the method further includes: establishing a network connection between the first computing node and the second computing node through a first controller, the first controller being configured to obtain Internet Protocol (IP) addresses assigned to the first computing node and the second computing node by a network controller, the network controller being configured to establish a basic network connection with the first computing node and the second computing node.
[0012] In some embodiments, the receiving first information required for accessing the target CXL device in the second computing node includes: receiving the first information sent by the second computing node through the first controller.
[0013] In some embodiments, sending the first data packet to a target CXL device of the second computing node includes: sending the first data packet to the target CXL device when the first data packet is carried in an Ethernet message, wherein the Ethernet message includes a message header and body data, the message header is used to at least indicate a message type and a unique identifier of the Ethernet message, and the body data includes a net payload of at least one frame.
[0014] The embodiment of the present application also provides another data transmission method, which is applied to the second computing node, and the method includes:
[0015] sending first information required by a target CXL device in a second computing node to the first computing node;
[0016] receiving a first data packet sent from the first computing node, wherein the first computing node is configured to, upon receiving the first information and detecting that a hot-add event of the first CXL device is generated in the first computing node, perform a hot-add operation on the first CXL device; obtain a first data packet by accessing the first CXL device; and send the first data packet to the second computing node.
[0017] In some embodiments, the receiving the first data packet sent from the first computing node includes: using its own network card device to receive an Ethernet message sent by the first computing node, and decapsulating the Ethernet message to obtain the first data packet;
[0018] After obtaining the first data packet, the method further includes: when the destination address of the first data packet is modified to the address of the target CXL device, or when the device identifier in the first data packet is modified to the device identifier of the target CXL device, routing the first data packet to the target CXL device.
[0019] The embodiment of the present application further provides a data transmission device, which is applied to a first computing node, and the device includes:
[0020] A receiving module, configured to receive first information required to access a target CXL device in a second computing node;
[0021] The first processing module is configured to, upon detecting that a hot-add event of a first CXL device is generated in the first computing node, perform a hot-add operation on the first CXL device; obtain a first data packet by accessing the first CXL device; and send the first data packet to a target CXL device of the second computing node according to the first information.
[0022] The embodiment of the present application also provides another data transmission device, which is applied to a second computing node, and the device includes:
[0023] a sending module, configured to send first information required by a target CXL device in a second computing node to the first computing node;
[0024] The second processing module is configured to receive a first data packet sent from the first computing node, wherein the first computing node is configured to, upon receiving the first information and detecting that a hot-add event of the first CXL device is generated in the first computing node, perform a hot-add operation on the first CXL device; obtain a first data packet by accessing the first CXL device; and send the first data packet to the second computing node.
[0025] An embodiment of the present application also provides an electronic device, comprising a processor and a memory for storing a computer program that can be run on the processor; wherein the processor is used to run the computer program to execute any one of the above-mentioned data transmission methods.
[0026] An embodiment of the present application further provides a computer storage medium on which a computer program is stored. When the computer program is executed by a processor, any one of the above-mentioned data transmission methods is implemented.
[0027] An embodiment of the present application further provides a computer program product, including a computer program, wherein the computer program implements any one of the above-mentioned data transmission methods when executed by a processor.
[0028] It can be seen that after receiving the first information required to access the target CXL device in the second computing node, the first computing node can send the newly added first CXL device of the node by performing a hot add operation, so that the first CXL device of the node can interact with the target CXL device of the second computing node. That is, the embodiment of the present application can not only realize the data transmission of CXL devices in the cross-machine scenario, but also realize the registration and management of the newly added CXL device. BRIEF DESCRIPTION OF THE DRAWINGS
[0029] Figure 1 A flowchart of a data transmission method applied to a first computing node according to an embodiment of the present application;
[0030] Figure 2 A schematic diagram of the hardware structure of a computing node in an embodiment of the present application;
[0031] Figure 3 A schematic diagram of the structure of a data transmission system according to an embodiment of the present application;
[0032] Figure 4 A schematic diagram of the message format of a COE message provided in an embodiment of the present application;
[0033] Figure 5 A flowchart of a data transmission method applied to a second computing node according to an embodiment of the present application;
[0034] Figure 6 An interactive flow chart of a data transmission method according to an embodiment of the present application;
[0035] Figure 7 This is a schematic diagram of the structure of a data transmission device applied to a first computing node according to an embodiment of the present application;
[0036] Figure 8 This is a schematic diagram of the structure of a data transmission device applied to a second computing node according to an embodiment of the present application;
[0037] Fig. 9 A schematic diagram of the structure of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0038] CXL is a high-speed interconnect standard designed for high-performance computing systems. It is designed to provide low latency, high bandwidth, and efficient memory sharing between central processing units (CPUs), graphics processing units (GPUs), and other accelerators. One of the main advantages of CXL is that it allows direct memory access between devices, which can significantly reduce the overhead associated with moving data between devices. In the related art, most solutions only consider solutions for accessing CXL devices under a single computing node, while few solutions propose to interconnect CXL devices of different computing nodes through Ethernet in the data center network.
[0039] In a technical solution of the related art, a computing node memory expansion system is proposed, which can realize the interconnection between the computing node and the memory node at any location, thereby realizing the remote memory expansion function of the computing node. In this solution, the computing node and the remote memory node are connected through the target Internet network. The computing node includes a first processor, a first control chip connected to the first processor through a first interface running a memory expansion protocol, and a first communication network card connected to the first control chip. The memory node includes a second control chip, a second communication network card connected to the second control chip, and an extended memory; wherein the first communication network card and the second communication network card correspond to the target Internet network.
[0040] The solutions of the related art have at least the following problems:
[0041] 1) Most of the solutions in the related technology access the memory of the remote device through Remote Direct Memory Access (RDMA), while accessing the memory of the remote device through the Compute Express Link Over Ethernet (COE) has lower latency and higher bandwidth than RDMA. Currently, there are few solutions that implement COE access to the memory of the remote device on the physical device.
[0042] 2) The technical solution of the related art only considers the solution of accessing the CXL device under a single computing node, but does not consider the solution of accessing the CXL memory through Ethernet between different computing nodes, and finally realizes the memory pooling of CXL.
[0043] 3) The technical solution of the related art only considers the data transmission process between CXL devices, but lacks the registration and management process of CXL devices, including the management of CXL devices in hot-swap scenarios.
[0044] In view of the technical problems existing in the related technologies, a technical solution of the embodiment of the present application is proposed. The embodiment of the present application provides a solution for implementing CXL through Ethernet in a data center network.
[0045] The following is a further detailed description of the embodiments of the present application in conjunction with the accompanying drawings and examples. It should be understood that the embodiments provided herein are only used to explain the embodiments of the present application and are not intended to limit the embodiments of the present application. In addition, the embodiments provided below are partial embodiments for implementing the present application, rather than providing all embodiments for implementing the present application. In the absence of conflict, the technical solutions recorded in the embodiments of the present application can be implemented in any combination.
[0046] It should be noted that, in the embodiments of the present application, the terms "include", "comprise" or any other variants thereof are intended to cover non-exclusive inclusion, so that a method or device including a series of elements includes not only the elements explicitly recorded, but also includes other elements not explicitly listed, or also includes elements inherent to the implementation of the method or device. In the absence of further restrictions, an element defined by the sentence "includes a ..." does not exclude the presence of other related elements (such as steps in a method or units in a device, for example, a unit may be a part of a circuit, a part of a processor, a part of a program or software, etc.) in the method or device including the element.
[0047] The data transmission method provided in the embodiment of the present application includes a series of steps, but the data transmission method provided in the embodiment of the present application is not limited to the recorded steps. Similarly, the data transmission device provided in the embodiment of the present application includes a series of modules, but the device provided in the embodiment of the present application is not limited to including the modules explicitly recorded, and may also include modules required to obtain relevant information or perform processing based on information.
[0048] The present application embodiment provides a data transmission method applied to a first computing node, Figure 1 Flow chart of a data transmission method applied to a first computing node according to an embodiment of the present application. Figure 1 As shown, the process includes:
[0049] Step 101: Receive first information required to access a target CXL device in a second computing node.
[0050] Exemplarily, the first information may be information such as the base address register (BAR) space and the device status. In an embodiment of the present application, the first computing node and the second computing node may be any two computing nodes in the data transmission system. Before executing step 101, each computing node in the data transmission system may execute an initialization process to complete the enumeration of the proxy module and the network interface card (NIC) in the computing node, and reserve resources for the subsequent addition of CXL devices. Here, the proxy module may be denoted as a COE-agent. Each computing node includes a COE-agent and a NIC. The COE-agent is responsible for managing and maintaining the mapping relationship between the physical address of the CXL device of the computing node and the physical address of the CXL device of other computing nodes. The NIC is responsible for encapsulating the CXL message into an Ethernet message and decapsulating the Ethernet message into a CXL message. The Ethernet message obtained by encapsulating the CXL message may be denoted as a COE message.
[0051] For example, refer to Figure 2 Each computing node in the data transmission system may include a CPU, a memory, a hard disk, and a NIC. Usually, other hardware may be provided inside the computing node according to the actual function of the computing node, which will not be described in detail here. For example, the NIC of each computing node may communicate with other devices based on the Media Access Control (MAC) address and IP address of the node, and the Transmission Control Protocol (TCP) message sent by each computing node through the NIC may include a message header and a net load (Payload).
[0052] In some embodiments, the first computing node may be denoted as computing node A, and the second computing node may be denoted as computing node B. Figure 3 , computing node A, computing node B and computing node C each include a COE-agent and a NIC; the CXL device in computing node A is CXL device A, the target CXL device in computing node B is CXL device B, and the CXL device in computing node C is CXL device C. Exemplarily, in computing node A, computing node B and computing node C, the CXL device of each computing node may be a CXL device obtained by performing a hot add operation. It can be understood that before executing step 101, a connection between the first computing node and the second computing node needs to be established.
[0053] In some embodiments of the present application, before receiving the first information required to access the target CXL device in the second computing node, the first computing node may also establish a network connection between the first computing node and the second computing node through the first controller, and the first controller is used to obtain the IP addresses assigned by the network controller to the first computing node and the second computing node, and the network controller is used to establish a basic network connection with the first computing node and the second computing node.
[0054] Reference Figure 3 , the COE controller is the first controller recorded above, the NIC of computing node A, the NIC of computing node B and the NIC of computing node C can form a communication connection with the network controller; the network controller forms a communication connection with the first controller, and the network controller can synchronize the IP addresses allocated to each computing node to the COE controller.
[0055] It can be seen that the first controller can obtain the IP addresses allocated to the first computing node and the second computing node, so that it can reliably establish a basic network connection with the first computing node and the second computing node, which is conducive to the subsequent communication between the first computing node and the second computing node.
[0056] In some embodiments of the present application, receiving first information required for accessing a target CXL device in a second computing node includes: receiving first information sent by the second computing node through a first controller. It can be seen that the second computing node can reliably receive information through the first controller.
[0057] Step 102 : When a hot-add event of a first CXL device is detected in a first computing node, a hot-add operation of the first CXL device is performed.
[0058] In an embodiment of the present application, after receiving the first information, the first computing node can perform a hot-add process for a CXL device. Exemplarily, in a hot-add process for a CXL device, a user can hot-insert a first CXL device in an empty PCIe slot, and the first CXL device can be a device such as a CXL memory; when the first CXL device is hot-inserted in an empty PCIe slot, a PCIe hot-plug interrupt is generated, and the downstream port of the root port (Root Port) with hot-plug function detects the occurrence of a hot-add event. At this point, all subsequent events on the slot will be ignored until the event is processed. After detecting that a hot-add event has occurred, the bus driver performs a standard PCIe hot-add operation, turns on the power of this slot, re-enumerates the bus of this slot, and configures the configuration space of the device.
[0059] Step 103: Acquire a first data packet by accessing a first CXL device.
[0060] Exemplarily, the first data packet may be a data packet representing control plane configuration information or a data packet representing actual user data; in actual scenarios, the data packet representing the control plane configuration information is usually first sent to the second computing node, and then the data packet representing the actual user data is sent to the second computing node.
[0061] Step 104: Send the first data packet to a target CXL device of the second computing node according to the first information.
[0062] In some embodiments of the present application, the first data packet may be a transport layer (Transaction Layer Packet, TLP) data packet, and the first computing node may send the first data packet to the NIC of the node. The NIC of the first computing node may encapsulate the first data packet into an Ethernet message, and then send the Ethernet message to the second computing node.
[0063] Accordingly, when the first data packet is carried in an Ethernet message, the Ethernet message is sent to the target CXL device, wherein the Ethernet message includes a message header and body data, the message header is at least used to indicate the message type and unique identifier of the Ethernet message, and the body data includes at least one frame of net load. It can be seen that the first data packet can be reliably sent to the second computing node through the network card device of the first computing node.
[0064] Here, after receiving the Ethernet message, the network card device of the second computing node can decapsulate the Ethernet message to obtain a first data packet, and then, when the destination address of the first data packet is modified to the address of the target CXL device, or when the device identifier in the first data packet is modified to the device identifier of the target CXL device, the first data packet is routed to the target CXL device.
[0065] Exemplarily, the device identifier may be BDF (Bus, Device, Function) or other identifiers.
[0066] Exemplarily, the Ethernet message obtained by encapsulating the first data packet is a COE message, referring to Figure 4, COE messages can be transmitted on Ethernet through the net load of TCP messages. The message header of the COE message may include a flag field, a packet number field, and a reserved (Rsvd) field; among them, the Flag field occupies 1 byte, and the first 3 bits record the message type. For example, the first 3 bits can be used to represent the following information: whether it is a detection message, a control plane data packet or a data plane data packet, and whether space is reserved; the Flag field occupies 1 byte, and the last 5 bits are reserved. The PacketNumber field occupies 4 bytes and is a unique identifier of a COE message, and the size of the Packet Number is incremental. The reserved field occupies 1 byte and can reserve space for subsequent work.
[0067] The main data of the COE message may include one or more frames. Figure 4 , Frame1 to FrameN represent N frames, where N is an integer greater than or equal to 1. Each frame in the main body data of the COE message may include a frame header (Frame Header) indicating a frame type (Frame Type) and a net load of the frame. Exemplarily, the frame type may be a flow control (Stream) frame, a reply (ACK) frame, etc.
[0068] In practical applications, steps 101 to 104 can be implemented based on a processor, and the processor can be at least one of an application specific integrated circuit (ASIC), a digital signal processor (DSP), a digital signal processing device (DSPD), a programmable logic device (PLD), a field programmable gate array (FPGA), a CPU, a controller, a microcontroller, and a microprocessor.
[0069] It can be seen that after receiving the first information required to access the target CXL device in the second computing node, the first computing node can send the newly added first CXL device of the node by performing a hot add operation, so that the first CXL device of the node can interact with the target CXL device of the second computing node. That is, the embodiment of the present application can not only realize the data transmission of CXL devices in the cross-machine scenario, but also realize the registration and management of the newly added CXL device.
[0070] In some embodiments of the present application, after performing the hot-add operation on the first CXL device, the first computing node may further configure the DVSEC of the first CXL device and notify the operating system of the first computing node of the transmission attribute information of the first CXL device.
[0071] By way of example, the transmission attribute information of the first CXL device may be transmission delay and bandwidth.
[0072] It can be seen that by configuring the DVSEC of the first CXL device and notifying the first CXL device of the transmission attribute information, the first computing node can complete the preparation work related to the information transmission process of the first CXL device, thereby facilitating the subsequent data interaction between the first CXL device and other CXL devices.
[0073] In some embodiments of the present application, the process of configuring the DVSEC of the first CXL device includes: configuring the DVSEC of the first CXL device on the first CXL device and associated devices through perception software, wherein the associated devices include at least one of a switch and a host bridge.
[0074] It can be seen that when the DVSEC of the first CXL device is configured on the first CXL device and the associated device, the first CXL device can reliably implement data transmission through the associated device.
[0075] In one example, CXL-aware software (e.g., CXL bus driver, device driver in the operating system) can detect the CXL DVSEC capability of the first compute node and ensure that the host-managed device memory (HDM) is active. The memory can be initialized by the hardware, firmware on the adapter, or the device driver. The CXL-aware software can then configure the CXL DVSEC structures on the device, switch, and host bridge (e.g., GPF DVSEC, HDM decoder). In the case where the first CXL device is memory, the CXL-aware software notifies the operating system memory manager of the latency and bandwidth of the new memory. The memory manager processes the request and adds the new memory to its allocation pool.
[0076] Figure 5 Flow chart of a data transmission method applied to a second computing node according to an embodiment of the present application. Figure 5 As shown, the process includes:
[0077] Step 501: Send first information required by a target CXL device in a second computing node to a first computing node.
[0078] Step 502: receiving a first data packet sent from a first computing node, the first computing node being configured to perform a hot-add operation of the first CXL device upon receiving the first information and detecting that a hot-add event of the first CXL device is generated in the first computing node; obtaining a first data packet by accessing the first CXL device; and sending the first data packet to a second computing node.
[0079] In practical applications, steps 501 to 502 may be implemented based on a processor, and the processor may be at least one of ASIC, DSP, DSPD, PLD, FPGA, CPU, controller, microcontroller, and microprocessor.
[0080] It can be seen that after receiving the first information required to access the target CXL device in the second computing node, the first computing node can send the newly added first CXL device of the node by performing a hot add operation, so that the first CXL device of the node can interact with the target CXL device of the second computing node. That is, the embodiment of the present application can not only realize the data transmission of CXL devices in the cross-machine scenario, but also realize the registration and management of the newly added CXL device.
[0081] In some embodiments of the present application, the second computing node receives the first data packet sent from the first computing node, including: using its own network card device to receive the Ethernet message sent by the first computing node, decapsulating the Ethernet message to obtain the first data packet;
[0082] After obtaining the first data packet, the method further includes: when the destination address of the first data packet is modified to the address of the target CXL device, or when the device identifier in the first data packet is modified to the device identifier of the target CXL device, routing the first data packet to the target CXL device.
[0083] The embodiment of the present application proposes a method for realizing fast computing link through Ethernet in a data center network. First, a network transmission model based on COE is proposed for the data center network. In the model, the allocation of CXL memory resources is realized through the COE controller, and the broadcast of CXL resources and the resource allocation at the Ethernet level are realized through the network controller. After the CXL memory is hot-inserted in a certain computing node, the CXL memory first completes the enumeration in the current computing node, and then sends the information required to access the current CXL device (such as BAR space, device status information) to the COE controller through the TCP protocol. The COE controller can allocate resources. The technical solution of the embodiment of the present application has low complexity and is easy to implement, while effectively improving the utilization rate of idle memory in the data center network, and has a broad application prospect.
[0084] Figure 6is an interactive flow chart of the data transmission method of the embodiment of the present application, such as Figure 6 As shown, the process includes:
[0085] Step S1: The CXL device completes initialization locally.
[0086] One implementation of this step is: CXL device B completes enumeration and initialization on computing node B, and CXL device C completes enumeration and initialization on computing node C. Each computing node binds the initialized CXL device to the root port of the node, and sends the information required to access the local CXL device to the COE-agent of the node.
[0087] Step S2: Each computing node completes the basic network connection.
[0088] One implementation method of this step is: each computing node in computing node A, computing node B and computing node C completes the basic network connection with the COE controller and the network controller respectively, and the network controller assigns IP addresses to computing node A, computing node B and computing node C through protocols such as Dynamic Host Configuration Protocol (DHCP), and synchronizes the IP addresses of each computing node to the COE controller.
[0089] Step S3: Each computing node sends local configuration information to the COE controller.
[0090] One implementation of this step is: computing nodes B and C respectively establish TCP connections with the COE controller, and in computing nodes B and C, the COE-agent sends information required to access the local CXL device to the COE controller through the NIC.
[0091] Step S4: The COE controller manages and allocates resources of each computing node.
[0092] One implementation of this step is: the COE controller receives information sent by the COE-agent of computing node B, or, after receiving information sent by the COE-agent of computing node C, saves the received information locally, notifies the first information required to access CXL device B to the COE-agent of computing node A through the TCP protocol, and binds the CXL memory in computing node B to computing node A. Computing node B updates and notifies local node resources, and computing nodes A and computing nodes B establish a network connection. Exemplarily, the computing node COE-agent can complete the mapping of the local CXL device physical address to the opposite CXL device physical address, and the mapping of the local BDF (Bus, Device, Function) to the BDF of computing node A.
[0093] Step S5: Computing node A performs hot-add of the first CXL device.
[0094] Step S6: Computing node A completes the assembly and forwarding of the COE message.
[0095] One implementation method of this step is: the CPU of computing node A accesses the first CXL device newly added on the local side to obtain a TLP data packet; the COE-agent reads the configuration space of the TLP data packet, identifies that the destination memory address of the TLP data packet is the first CXL device newly added on the local side, and forwards the TLP data packet to the local NIC. The NIC encapsulates the TLP data packet into a COE message and sends the COE message to computing node B.
[0096] Step S7: Node B completes receiving the COE message.
[0097] One implementation of this step is: after the COE message arrives at the NIC of computing node B, the NIC of computing node B decapsulates the message. If the decapsulated data packet is a data packet representing actual user data (i.e., a data packet for memory reading and writing), the COE-agent converts the destination address of the data packet into the address of CXL device B; if the decapsulated data packet is a data packet representing control plane configuration information, the COE-agent converts the BDF in the message into the BDF of the local CXL device B, and finally routes the message to CXL device B.
[0098] CXL technology has the characteristics of high-speed transmission and low latency. In the embodiment of the present application, using CXL technology to access the memory of other nodes can effectively improve the memory utilization of each computing node. The embodiment of the present application proposes a CXL device registration method in a cross-machine scenario, which can realize CXL device information notification, addition, and deletion. In the embodiment of the present application, for the data center scenario, a method is proposed for a computing node to access the CXL memory of other computing nodes through Ethernet and CXL.
[0099] The embodiment of the present application can realize the allocation of CXL memory resources through the COE controller, and realize the broadcast of CXL resources and the resource allocation at the Ethernet level through the network controller. The embodiment of the present application uses the TCP protocol to notify the CXL device information of the local machine, which is highly secure and can notify the device status in real time.
[0100] The technical solution of the embodiment of the present application has at least the following differences from the related technology: 1) The transmission subject is different. In the technical solution of the related technology, the transmission subject is a computing node and a memory node respectively, while in the embodiment of the present application, the transmission subject is a computing node. 2) The transmission content is different. The technical solution of the related technology does not make a detailed definition of the data frame format, while the embodiment of the present application designs the data frame format for transmission between network cards. 3) The processing flow of the data packet before transmission is different. In the technical solution of the related technology, the message is encapsulated and decapsulated on the control chip, and the network card does not have the encapsulation and decapsulation functions, while in the embodiment of the present application, the CXL message can be encapsulated and decapsulated on the NIC.
[0101] Those skilled in the art will appreciate that, in the above method of specific implementation, the order in which the steps are written does not imply a strict execution order and does not constitute any limitation on the implementation process. The specific execution order of the steps should be determined by their functions and possible internal logic.
[0102] Figure 7 Schematic diagram of the structure of the data transmission device applied to the first computing node in the embodiment of the present application. Figure 7 As shown, the device comprises:
[0103] A receiving module 701 is used to receive first information required to access a target fast computing link CXL device in a second computing node;
[0104] The first processing module 702 is configured to, upon detecting that a hot-add event of a first CXL device is generated in the first computing node, perform a hot-add operation on the first CXL device; obtain a first data packet by accessing the first CXL device; and send the first data packet to a target CXL device of the second computing node according to the first information.
[0105] In some embodiments, the first processing module 702 is further configured to configure the DVSEC of the first CXL device after performing the hot-add operation of the first CXL device, and notify the operating system of the first computing node of the transmission attribute information of the first CXL device.
[0106] In some embodiments, the first processing module 702 is configured to configure the DVSEC of the first CXL device, including: configuring the DVSEC of the first CXL device on the first CXL device and associated devices through perception software, wherein the associated devices include at least one of a switch and a host bridge.
[0107] In some embodiments, the receiving module 701 is further used to establish a network connection between the first computing node and the second computing node through a first controller before receiving the first information required to access the target CXL device in the second computing node, the first controller is used to obtain an Internet Protocol IP address allocated by a network controller to the first computing node and the second computing node, and the network controller is used to establish a basic network connection with the first computing node and the second computing node.
[0108] In some embodiments, the receiving module 701 is configured to receive first information required for accessing a target CXL device in a second computing node, including: receiving the first information sent by the second computing node through the first controller.
[0109] In some embodiments, the first processing module 702, configured to send the first data packet to a target CXL device of the second computing node, comprises: in a case where the first data packet is carried in an Ethernet message, sending the Ethernet message to the target CXL device, wherein the Ethernet message comprises a message header and body data, the message header is used to at least indicate a message type and a unique identifier of the Ethernet message, and the body data comprises a net payload of at least one frame.
[0110] In practical applications, the receiving module 701 and the first processing module 702 can be implemented based on a processor and a communication device.
[0111] Figure 8 Schematic diagram of the structure of the data transmission device applied to the second computing node in the embodiment of the present application. Figure 8 As shown, the device comprises:
[0112] A sending module 801 is configured to send first information required by a target CXL device in a second computing node to a first computing node;
[0113] The second processing module 802 is configured to receive a first data packet sent from the first computing node, wherein the first computing node is configured to, upon receiving the first information and detecting that a hot-add event of the first CXL device is generated in the first computing node, perform a hot-add operation on the first CXL device; obtain a first data packet by accessing the first CXL device; and send the first data packet to the second computing node.
[0114] In some embodiments, the second processing module 802 is used to receive the first data packet sent from the first computing node, including: using its own network card device to receive the Ethernet message sent by the first computing node, and decapsulating the Ethernet message to obtain the first data packet;
[0115] The second processing module 802 is further configured to, after obtaining the first data packet, route the first data packet to the target CXL device when the destination address of the first data packet is modified to the address of the target CXL device or when the device identifier in the first data packet is modified to the device identifier of the target CXL device.
[0116] In practical applications, the sending module 801 and the second processing module 802 can be implemented based on a processor and a communication device.
[0117] It should be noted that the description of the above device embodiment is similar to the description of the above method embodiment, and has similar beneficial effects as the method embodiment. For technical details not disclosed in the device embodiment of the present application, please refer to the description of the method embodiment of the present application for understanding.
[0118] It should be noted that in the embodiments of the present application, if the above method is implemented in the form of a software function module and sold or used as an independent product, it can also be stored in a computer-readable storage medium. Based on such an understanding, the technical solution of the embodiment of the present application is essentially or the part that contributes to the prior art can be embodied in the form of a software product, which is stored in a storage medium, including a number of instructions to enable a computer device (which can be a terminal, a server, etc.) to execute all or part of the methods described in each embodiment of the present application. The aforementioned storage medium includes: various media that can store program codes, such as a U disk, a mobile hard disk, a read-only memory (ROM), a disk or an optical disk. In this way, the embodiments of the present application are not limited to any specific combination of hardware and software.
[0119] Correspondingly, an embodiment of the present application further provides a computer program product, which includes computer executable instructions, and the computer executable instructions are used to implement any data transmission method provided in the embodiment of the present application.
[0120] Accordingly, an embodiment of the present application further provides a computer storage medium, on which computer executable instructions are stored, and the computer executable instructions are used to implement any one of the data transmission methods provided in the above embodiments.
[0121] An embodiment of the present application also provides an electronic device. Fig. 9 A schematic diagram of the structure of an electronic device provided in an embodiment of the present application is shown in FIG. Fig. 9 As shown, the electronic device 90 may include:
[0122] Memory 901, used to store executable instructions;
[0123] The processor 902 is used to implement any one of the above-mentioned data transmission methods when executing the executable instructions stored in the memory 901.
[0124] The processor 902 may be at least one of an ASIC, a DSP, a DSPD, a PLD, a FPGA, a CPU, a controller, a microcontroller, and a microprocessor.
[0125] The above-mentioned computer-readable storage medium and memory 902 can be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), a magnetic random access memory (FRAM), a flash memory (Flash Memory), a magnetic surface memory, an optical disk, or a compact disc read-only memory (CD-ROM) and other memories; it can also be various terminals including one or any combination of the above-mentioned memories, such as mobile phones, computers, tablet devices, personal digital assistants, etc.
[0126] In some embodiments, the functions or modules included in the device provided in the embodiments of the present application can be used to execute the method described in the above method embodiments. The specific implementation can refer to the description of the above method embodiments. For the sake of brevity, it will not be repeated here.
[0127] The above description of various embodiments tends to emphasize the differences between the various embodiments. The same or similar aspects can be referenced to each other, and for the sake of brevity, they will not be repeated herein.
[0128] The methods disclosed in the various method embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments.
[0129] The features disclosed in the various product embodiments provided in this application can be arbitrarily combined without conflict to obtain new product embodiments.
[0130] The features disclosed in the various method or device embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments or device embodiments.
[0131] Through the description of the above implementation methods, those skilled in the art can clearly understand that the above-mentioned embodiment methods can be implemented by means of software plus a necessary general hardware platform, and of course by hardware, but in many cases the former is a better implementation method. Based on such an understanding, the technical solution of the present application, or the part that contributes to the prior art, can be embodied in the form of a software product, which is stored in a storage medium (such as ROM / RAM, a magnetic disk, or an optical disk), and includes a number of instructions for a terminal (which can be a mobile phone, a computer, a server, an air conditioner, or a network device, etc.) to execute the methods described in each embodiment of the present application.
[0132] The embodiments of the present application are described above in conjunction with the accompanying drawings, but the present application is not limited to the above-mentioned specific implementation methods. The above-mentioned specific implementation methods are merely illustrative and not restrictive. Under the guidance of the present application, ordinary technicians in this field can also make many forms without departing from the purpose of the present application and the scope of protection of the claims, all of which are within the protection of the present application.
Claims
1. A data transmission method, characterized in that: Applied in a first computing node, the method includes: receiving first information required to access a target fast computing link CXL device in a second computing node; When a hot-add event of a first CXL device is detected in the first computing node, performing a hot-add operation of the first CXL device; Acquire a first data packet by accessing the first CXL device; The first data packet is sent to a target CXL device of the second computing node according to the first information.
2. The method according to claim 1, characterized in that After performing the hot-add operation of the first CXL device, the method further includes: configuring a designated vendor specific extension capability DVSEC of the first CXL device, and notifying an operating system of the first computing node of transmission attribute information of the first CXL device.
3. The method according to claim 2, characterized in that The configuring the DVSEC of the first CXL device includes: configuring the DVSEC of the first CXL device on the first CXL device and associated devices through perception software, wherein the associated devices include at least one of a switch and a host bridge.
4. The method according to any one of claims 1 to 3, characterized in that: Before receiving first information required to access the target CXL device in the second computing node, the method further includes: establishing a network connection between the first computing node and the second computing node through a first controller, the first controller being used to obtain an Internet Protocol IP address assigned to the first computing node and the second computing node by a network controller, and the network controller being used to establish a basic network connection with the first computing node and the second computing node.
5. The method according to claim 4, characterized in that The receiving first information required for accessing the target CXL device in the second computing node includes: Receive the first information sent by the second computing node through the first controller.
6. The method according to any one of claims 1 to 3, characterized in that: The step of sending the first data packet to a target CXL device of the second computing node includes: In the case where the first data packet is carried in an Ethernet message, the Ethernet message is sent to the target CXL device, wherein the Ethernet message includes a message header and body data, the message header is at least used to indicate a message type and a unique identifier of the Ethernet message, and the body data includes a net load of at least one frame.
7. A data transmission method, characterized in that: Applied in the second computing node, the method includes: Sending first information required by a target fast computing link CXL device in a second computing node to the first computing node; receiving a first data packet sent from the first computing node, wherein the first computing node is configured to, upon receiving the first information and detecting that a hot-add event of the first CXL device is generated in the first computing node, perform a hot-add operation on the first CXL device; obtain a first data packet by accessing the first CXL device; and send the first data packet to the second computing node.
8. The method according to claim 7, characterized in that The receiving of the first data packet sent from the first computing node includes: using its own network card device to receive an Ethernet message sent by the first computing node, and decapsulating the Ethernet message to obtain the first data packet; After obtaining the first data packet, the method further includes: when the destination address of the first data packet is modified to the address of the target CXL device, or when the device identifier in the first data packet is modified to the device identifier of the target CXL device, routing the first data packet to the target CXL device.
9. A data transmission device, characterized in that: Applied in a first computing node, the device comprises: A receiving module, configured to receive first information required for accessing a target fast computing link CXL device in a second computing node; The first processing module is configured to, upon detecting that a hot-add event of a first CXL device is generated in the first computing node, perform a hot-add operation on the first CXL device; obtain a first data packet by accessing the first CXL device; and send the first data packet to a target CXL device of the second computing node according to the first information.
10. A data transmission device, characterized in that: Applied in a second computing node, the device comprises: A sending module, configured to send first information required by a target fast computing link CXL device in a second computing node to the first computing node; The second processing module is configured to receive a first data packet sent from the first computing node, wherein the first computing node is configured to, upon receiving the first information and detecting that a hot-add event of the first CXL device is generated in the first computing node, perform a hot-add operation on the first CXL device; obtain a first data packet by accessing the first CXL device; and send the first data packet to the second computing node.
11. An electronic device, characterized in that: The electronic device comprises a processor and a memory for storing a computer program that can be run on the processor; wherein, The processor is configured to run the computer program to perform the method according to any one of claims 1 to 8.
12. A computer storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the method according to any one of claims 1 to 8 is implemented.
13. A computer program product, comprising a computer program, characterized in that The computer program implements the method according to any one of claims 1 to 8 when executed by a processor.
Citation Information
Patent Citations
Data transmission method and device, computing equipment and storage medium
CN113497767A
Data processing method of CXL protocol and computer equipment
CN116955260A
Server system, configuration method, CPU, control module and storage medium
CN117033001A
Data transmission system and method and switch
CN117914808A
Communication method, CXL device and computing device
CN118227532A