Method and system for data transmission
By distinguishing the extended header type, the receiving end can directly obtain the starting write address in multipath transmission and write it into memory in the order of reception. This solves the problems of write operation latency and cache overhead in remote direct memory access protocols, and achieves efficient data transmission and bandwidth optimization.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- STRANGE MOORE SHANGHAI INTEGRATED CIRCUIT DESIGN CO LTD
- Filing Date
- 2026-03-12
- Publication Date
- 2026-06-05
AI Technical Summary
In a multipath transmission environment, write operations of the Remote Direct Memory Access Protocol (RDP) suffer from increased cache overhead and write latency due to out-of-order message arrivals, preventing the receiving end from immediately obtaining the starting address. Traditional buffer rearrangement schemes also incur additional overhead and chip area usage.
By distinguishing the extended message header into a first extended message header containing the start write address and a second extended message header not containing the start write address, the receiving end obtains the start write address according to the message header type and writes it into memory in the order of receipt, avoiding buffer reordering and realizing direct data placement.
It significantly reduces write operation completion time, reduces cache overhead and write latency, saves chip area, optimizes bandwidth, improves effective data throughput, and alleviates network congestion, making it suitable for high-bandwidth demand scenarios such as AI training and distributed storage.
Smart Images

Figure CN122160310A_ABST
Abstract
Description
Technical Field
[0001] This invention belongs to the field of communication technology, and specifically relates to a method and system for data transmission. Background Technology
[0002] With the development of applications such as AI training and inference, data center networks face the challenge of a small number of service flows but huge bandwidth requirements per flow. Traditional single-path transmission mechanisms are difficult to effectively utilize network bandwidth, easily causing congestion and increasing flow completion time (FCT). To address this, the industry has introduced multi-path transmission technology, which distributes a single service flow across multiple paths for transmission to improve throughput.
[0003] However, Remote Direct Memory Access (RDMA, including InfiniBand and RoCE) protocols are single-path designs, where write operations only carry the starting address of the target memory in the first message. In a multi-path environment, due to out-of-order message arrival, the receiving end cannot immediately obtain the starting address, making direct data placement (DDP) difficult to achieve. Those skilled in the art typically use a rearranged buffer at the receiving end, but this introduces additional caching overhead and write latency, and also occupies additional chip area. Summary of the Invention
[0004] The purpose of this invention is to provide a data transmission method and system. By distinguishing the extended message header into a first extended message header containing the start write address and a second extended message header not containing the start write address, the write operation completion time can be significantly reduced without setting a rearrangement buffer, reducing cache overhead and write latency, and better supporting multipath transmission technology.
[0005] To solve the above-mentioned technical problems, the present invention provides a data transmission method, the method comprising the following steps:
[0006] The sending end sends multiple write operation messages belonging to the same message to the receiving end, and adds an extended message header to the write operation messages; The receiving end obtains the corresponding starting write address based on the type of the extended message header in the received write operation message, and writes the data into memory according to the receiving order of the write operation messages. The types of the extended message header include a first extended message header and a second extended message header, wherein the first extended message header includes a message sequence number and the starting write address, and the second extended message header includes the message sequence number but does not include the starting write address.
[0007] In one embodiment of the present invention, when the type of the extended message header is the first extended message header, the receiving end extracts the message sequence number and queries the corresponding record of the message sequence number in the local context. If no corresponding record is found, the starting write address and the message sequence number are recorded in the local context, and an acknowledgment message is sent to the sending end. The sending end receives the acknowledgment message and adds the second extended message header to subsequent write operation messages.
[0008] In one embodiment of the present invention, the acknowledgment message includes an AETH message, which uses a reserved field to indicate that the write operation message and the first extended message header have been received by the receiving end.
[0009] In one embodiment of the present invention, the first extended header includes a PSN number, which is used to indicate the message sequence number.
[0010] In one embodiment of the present invention, writing data into memory according to the receiving order of the write operation messages includes obtaining the write offset address of the memory, including, Obtain the sequence number of the base transport header of the current write operation message; Obtain the message sequence number carried in the current write operation message; Using the message sequence number as an index, obtain the corresponding starting write address from the local context; Calculate the difference between the sequence number of the basic transmission header and the message sequence number; Calculate the product of this difference and the maximum transmission unit to obtain the address offset; Calculate the sum of the starting write address and the address offset.
[0011] In one embodiment of the present invention, for a write operation message including the first extended message header, the corresponding message sequence number and the starting write address are obtained from the first extended message header.
[0012] In one embodiment of the present invention, for a write operation message including the second extended message header, the local context is queried based on the message sequence number to obtain the corresponding starting write address.
[0013] In one embodiment of the present invention, the type of extended message header is identified by a reserved field in the base transport header of the write operation message.
[0014] The present invention also provides a data transmission system, comprising: The sending module is used to add an extended message header to each write operation message when sending multiple write operation messages belonging to the same message to the receiver; The receiving module is used to obtain the corresponding starting write address according to the type of the extended message header in the received write operation message, and write the data into the memory according to the receiving order of the write operation messages; The types of extended message headers include a first extended message header and a second extended message header. The first extended message header includes a message sequence number and a start write address, while the second extended message header only includes a message sequence number.
[0015] The context management module is used to maintain a mapping table between the message sequence number and the starting write address in the receiving module.
[0016] The present invention also provides a computer-readable storage medium storing instructions that, when executed on a computer, cause the computer to perform the method as described in any one of the preceding descriptions.
[0017] By adopting the above technical solution, this invention, as an example, has the following advantages and positive effects: It enables direct data placement without buffering, significantly reducing write operation completion time, improving write operation efficiency, reducing cache overhead and write latency, and saving chip area. It better supports multi-path transmission applications, optimizes bandwidth, increases effective data throughput, alleviates network congestion, and reduces service flow completion time. It maximizes transmission efficiency while ensuring functional integrity, better supporting high-bandwidth scenarios such as AI training, distributed storage, and high-performance computing clusters. Attached Figure Description
[0018] To more clearly illustrate the technical solutions of the embodiments of the present invention, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0019] Figure 1 This is a schematic diagram of the first extended message header provided in an embodiment of the present invention.
[0020] Figure 2 This is a schematic diagram of the second extended message header provided in an embodiment of the present invention.
[0021] Figure 3 This is a schematic diagram of the extended message header provided in an embodiment of the present invention, which represents another embodiment.
[0022] Figure 4 This is a schematic diagram of an acknowledgment message provided in an embodiment of the present invention.
[0023] Figure 5 This is a schematic diagram of the data transmission system provided in an embodiment of the present invention. Detailed Implementation
[0024] The technical solutions disclosed in this invention will be described in detail below with reference to specific embodiments.
[0025] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.
[0026] It should be noted that the illustrations provided in this embodiment are only schematic representations of the basic concept of the present invention. Therefore, the drawings only show the components related to the present invention and are not drawn according to the actual number, shape and size of the components in the actual implementation. In the actual implementation, the form, quantity and proportion of each component can be arbitrarily changed, and the layout of the components may also be more complex.
[0027] In this invention, it should be noted that the terms "first" and "second" are used only for descriptive and distinguishing purposes and should not be construed as indicating or implying relative importance.
[0028] like Figure 1 As shown, this invention provides a data transmission method applicable to, but not limited to, large-scale training in artificial intelligence and machine learning, high-performance computing clusters, distributed storage, edge computing, cloud data centers, and so on. This method is also applicable to any scenario with high requirements for write latency and data throughput, such as inter-process communication in high-performance computing (HPC) (MPI Allreduce, etc.) and ultra-fast financial transactions.
[0029] This method is applied to both the message sender and the message receiver. In this invention, the message sender and the message receiver are two core functional entities constituting the RDMA (Remote Direct Memory Access) write operating system. Their specific form and deployment scenarios are defined based on the requirements of RDMA protocols (such as InfiniBand or RoCE) in multipath network environments.
[0030] The message sender refers to the entity that initiates data transmission during an RDMA write operation. In practical applications, the sender is typically a device that needs to write data to remote memory. For example, in AI training and inference scenarios, the sender can be a high-performance computing server or a smart network interface card (NIC), responsible for generating training data or model parameters and sending write operation messages via a multipath network. In distributed storage scenarios, the sender can be a storage client or a storage gateway. In high-performance computing scenarios, the sender can be a compute node or a high-speed interconnect device, etc.
[0031] The message receiver refers to the entity that receives data and performs direct memory writes during an RDMA write operation. The receiver is typically a device that provides memory resources; for example, in distributed storage or AI cluster scenarios, the receiver could be a storage server or another compute node, whose memory is used to store the data written by the sender.
[0032] In other scenarios, the message sender and message receiver can also be other types of network element devices, such as switches.
[0033] The method includes the following steps: S1 sends multiple write operation messages belonging to the same message to the receiving end through the sending end, and adds an extended message header to the write operation messages.
[0034] S2 obtains the corresponding starting write address by the receiving end based on the type of the extended message header in the received write operation message.
[0035] S3 writes the data into memory through the receiving end in the order of receiving the write operation messages.
[0036] The types of the extended message header include a first extended message header and a second extended message header, wherein the first extended message header includes a message sequence number and the starting write address, and the second extended message header only includes the message sequence number.
[0037] In this invention, the message in S1 usually refers to a complete data transmission unit, which typically corresponds to a business logic operation. In the RDMA write operation scenario, the message can be, for example, gradient update data in the AI training scenario (such as a complete model parameter tensor), a file block in distributed storage (such as a 4KB data block), or a routing entry in the routing table update.
[0038] In this invention, the write operation message includes, for example, an RDMA write operation message. Specifically, the RDMA write message includes the following three types: RDMA write First, RDMA write Middle, and RDMA write Last.
[0039] It should be noted that, in some embodiments of the present invention, the first extended header (the extended header carrying the starting write address) is typically carried by the RDMA Write First message, used to register the starting address with the receiver during the initial message phase. The RDMA Write First message in the standard protocol is already responsible for carrying control information for the write operation (such as the target memory address in the RETH header), and the first extended header of the present invention can serve as an enhancement or replacement of the standard RETH header. While the RDMA Write Middle and RDMA Write Last messages in the standard protocol primarily carry the data payload, in the present invention, depending on whether the sender has received an acknowledgment, it can choose to carry a second extended header (containing only the message sequence number) or continue carrying the first extended header.
[0040] Those skilled in the art will understand that the core of the solution described in this invention lies in using the "message sequence number" in the extended message header as a message identifier to achieve direct writing of out-of-order messages. Therefore, any write operation message that can carry a starting write address and a message sequence number in the message header, and whose receiving end can parse and execute direct memory access (DMA), can be applied to this invention. However, in typical RDMA implementations, the first extended message header is usually used in conjunction with an RDMA Write First message.
[0041] Write operation messages belonging to the same message typically refer to a complete data transmission unit being divided into multiple independent write operation messages for transmission. Specifically, all write operation messages carry the same logical identifier, such as a message ID or a start sequence number. In this invention, this is achieved by using the packet sequence number (PSN) in the extended message header for association. For example, all write operation messages of the same message have the same PSN. 1st PSN 1st The message sequence number represents the first write operation message and is assigned to each write operation message by the sender.
[0042] Furthermore, the PSN of each write operation message curr Incrementing sequentially by sending order, e.g., monotonically increasing, PSN curr The message sequence number representing the write operation message is also assigned by the sender to indicate the relative position of the write operation message within the message. In one embodiment, PSN... curr Located in the Base Transport Header (BTH) of the write operation message, it contains the OpCode and PSN. curr The OpCode is the opcode that identifies the message type (e.g., RDMAWrite). For example: A message is split into three write operation messages, identified by their message types as RDMA writeFirst, RDMA write Middle, and RDMA write Last, and the PSN of the three write operation messages. 1st Both are 100, but PSN curr The numbers are 100, 101, and 102 respectively. The receiving end uses PSN. 1st The characteristic of 100 indicates that these three write operation messages belong to the same message.
[0043] In multipath transmission scenarios, PSN 1st and PSN curr Regardless of the transmission path, PSN can handle write operation messages regardless of the transmission path. 1st and PSN curr Everything will remain unchanged, and the receiving end can still use PSN. 1st Identify the message to which the write operation message belongs, and use PSN. curr Identify the relative position of the write operation message within its respective message.
[0044] In one implementation, the PSN uses, for example, 24-bit encoding to provide sufficient sequence number space to support large-scale data transmission.
[0045] In one embodiment, the sending end adds a first extended header to the write operation message. The first extended header includes at least a message sequence number and a starting write address.
[0046] Among them, the message sequence number PSN 1st Referring to the description above, each write operation message carries a unique logical identifier, enabling the receiving end to identify which write operation messages belong to the same message.
[0047] The start write address is used to indicate the starting area of memory where the write operation message data should be written to by the receiving end.
[0048] like Figure 1 As shown, in one embodiment, the first extended header is 20 bytes long, aligned to 32-bit words, and its specific fields include the Starting Buffer Address and the PSN (Personal Sequence Number). 1st Remote key (R-Key), DMA length (DMA Length).
[0049] by Figure 1For example, in this embodiment, the starting buffer address is the starting write address, used to indicate the starting address of the RDMA write operation in the receiver's memory. In this embodiment, the starting buffer address is divided into a high 32 bits ([63:32]) and a low 32 bits ([31:0]), with the high 32 bits in bytes 0-3 and the low 32 bits in bytes 4-7. This split storage is a common way to handle 64-bit wide addresses, facilitating access on processors with different architectures.
[0050] In this embodiment, the message sequence number (PSN) 1st Located in byte D1 of the third line, marked as PSN 1st [23:0]. The “Reserved” bit next to it can be used for future expansion or alignment padding.
[0051] The remote key, located in the fourth line, serves as an access token provided by the receiver to authorize the sender to perform RDMA write operations on the specified memory region. The receiver will only execute data writing after verifying the validity of the R_Key, ensuring the security of the RDMA protocol.
[0052] DMA length is used to indicate the total length of data to be transmitted in the entire message.
[0053] In another implementation, the sending end adds a second extended header to the write operation message. This step is set to be performed after the sending end receives the acknowledgment message sent by the receiving end. This part will be explained in detail later.
[0054] The difference between the second extended header and the first extended header is that the second extended header includes the message sequence number but does not include the starting write address.
[0055] like Figure 2 As shown, in one embodiment, the second extended header includes a message sequence number (PSN). 1st Remote key (R-Key), DMA length (DMA Length).
[0056] Among them, the message sequence number PSN 1st Located in the D1-D3 portion of byte 0, extending to byte 2, occupying a total of 3 bytes (24 bits), and marked as PSN. 1st [23:0]. The "Reserved" next to it is located in the D0 part of byte 0, occupying 1 byte, and can be used for future expansion or alignment padding.
[0057] The remote key is located in bytes 4 to 7, occupying 4 bytes (32 bits), and its function is explained above.
[0058] DMA is located in bytes 8 to 11, occupying 4 bytes (32 bits), and its function is described above.
[0059] In S2, the receiving end can determine whether the extended header in the identified write operation message is the first extended header or the second extended header based on whether the extended header contains the start write address.
[0060] like Figure 3 As shown, in another implementation, the receiving end identifies the type of the extended header by the reserved field in the Base Transport Header (BTH) of the write operation message. The reserved field can be placed, for example, in a 32-bit word at a byte offset of 8, specifically the portion immediately to the right of the A (Acknowledge) and Reserved tags, corresponding to the starting storage location of the 24-bit PSN field. Specifically, the reserved field in the BTH can be encoded in the following two ways: The reserved field is 2 bits, encoded as 0 or 1, indicating that the following message will carry the first extended header (containing the start write address). The reserved field is 2 bits, encoded as 1 0, indicating that the following message carries a second extended header (excluding the start write address).
[0061] BTH also includes the sequence number (PSN, Packet Sequence Number) of the base transport header of the current write operation message. The PSN in the diagram corresponds to the PSN. curr The sequence number indicates the relative position of the write operation message in the message and is the basis for subsequent calculation of the write offset address.
[0062] by Figure 3 For example, when the receiving end receives a write operation message, it parses the reserved field of BTH in the write operation message. If the preset field is 0, the receiving end identifies the extended header type as the first extended header. If the preset field is 1, the receiving end identifies the extended header type as the second extended header. In this way, the receiving end can directly extract the extended header type from the PSN field in the initial stage of parsing BTH, without having to parse subsequent extended headers, which greatly improves processing efficiency.
[0063] The receiving end performs different operations based on the type of the extended message header in order to obtain the corresponding starting write address.
[0064] When the extended header type is the first extended header, the receiving end performs the following operations: Obtain the message sequence number (PSN) from the first extended header. 1st And the starting write address, other things include extracting the PSN from BTH. curr And extract the R-Key (for permission verification) and DMA Length (for boundary checks).
[0065] Retrieve the corresponding record for the message sequence number in the local context.
[0066] If a relevant record is found, it means that the receiving end has already received other write operation messages belonging to the same message as the write operation message. In this case, the receiving end performs the first operation, that is, it queries the local context for the starting write address corresponding to the sequence number of the message.
[0067] If no relevant record is found, it means that the write operation message is the first write operation message received by the receiving end of its category, or all previous relevant records have expired. In this case, the receiving end performs a second operation: it records the starting write address and the message sequence number in its local context and sends an acknowledgment message to the sending end.
[0068] In some implementations, the acknowledgment message includes an ACK message, which is specifically sent by the receiver after successfully creating a new context record (i.e., the first write operation message received for a new message).
[0069] The ACK message includes AETH (ACK Extended Transport Header), which is a specific field area within the ACK message used to carry extended information related to acknowledgment.
[0070] In one implementation, the AETH message uses a reserved field to indicate that the write operation message and the first extended message header have been received by the receiving end.
[0071] In another implementation, there is no need to use reserved fields for explicit indication. When the sender receives an ACK packet for a certain message, it implicitly acknowledges that the first write operation packet carrying the first extended header of that message has been successfully received by the receiver, thereby triggering subsequent write operation packets to switch to the second extended header.
[0072] like Figure 4 As shown, the AETH message includes the Syndrome field (acknowledgment field) and the MSN field (message sequence number field).
[0073] The Syndrome field (acknowledgment field) is used to encode the acknowledgment status. For example, the Syndrome field is encoded as 100CCCCC, where CCCCC is the credit count and 100 is a reserved field in ATEH.
[0074] The MSN field (Message Sequence Number field) is used to carry sequence number information and is usually used in conjunction with specific opcodes in standard protocols.
[0075] In one embodiment of the present invention, in the ACK message sent by the receiving end to the sending end, the base transport header (BTH) of the ACK message carries the base transport header sequence number of the acknowledged write operation message, and the reserved field in its AETH can be set to a specific value (such as "100") to explicitly indicate that the acknowledgment is for a message carrying a first extended message header.
[0076] After receiving the ACK packet, the sending end can determine which write operation packet was being acknowledged by parsing the Basic Transmission Header Sequence Number (PSN) of the ACK packet. Combined with the specific value of the reserved field in AETH, the sending end can confirm that the receiving end has successfully received and cached the starting write address in the write operation packet, thereby triggering the subsequent write operation packets to switch the extended header to the second extended header.
[0077] Furthermore, the receiving end can send a NACK (negative acknowledgment) or a specific error code to instruct the sending end to roll back to the step of resending the write operation message, in order to deal with special problems in special scenarios, such as the receiving end receiving the write operation message but the context record is lost, or the context record is found but the starting write address is inconsistent, etc.
[0078] After receiving the acknowledgment message, the sending end adds a second extended header to the subsequent write operation message. The description of the second extended header can be found in the previous text and will not be repeated here.
[0079] When the receiving end receives a write operation message including the second extended header, it indicates that the write operation message belongs to the same message as the previously received write operation message. The receiving end performs the first operation, that is, it queries the local context for the starting write address corresponding to the sequence number of the message, without having to obtain the starting write address separately from the extended header.
[0080] By omitting the start write address, the design of the second extended header offers advantages including, but not limited to, the following: Compared to the first extended header, reducing header overhead helps optimize bandwidth. The saved bandwidth can significantly improve effective data throughput, better support multipath transmission, alleviate network congestion, and reduce the flow completion time (FCT) of services. It can maximize transmission efficiency while ensuring functional integrity, making it particularly suitable for high-bandwidth scenarios such as AI training and distributed storage.
[0081] The S3 receiver obtains the write offset address of the memory through the following steps: Obtain the sequence number of the underlying transport header of the current write operation message; (PSN) curr ) Obtain the PSN (Package Sequence Number) carried in the current write operation message.1st ) Using the message sequence number as an index, obtain the corresponding starting write address from the local context; Calculate the sequence number (PSN) of the basic transmission header. curr ) and the message sequence number (PSN) 1st The difference between ) The address offset is obtained by multiplying this difference by the maximum transmission unit (MTU). Address offset = (PSN) curr - PSN 1st ) MTU Calculate the sum of the starting write address and the address offset.
[0082] The write offset address can be calculated using the following formula: Write offset address = Start write address + (PSN) curr - PSN 1st ) MTU Among them, PSN 1st Obtain it from the first extended header or the second extended header of the write operation message.
[0083] PSN curr Extracted from the base transport header (BTH) of the write operation message.
[0084] PSN curr and PSN 1st The difference reflects the offset of the current write operation message relative to the starting address in the message sequence. MTU defines the maximum length of the effective data payload that a single write operation message can carry, PSN. curr and PSN 1st The product of the difference and the MTU is the cumulative number of bytes of data from all preceding write operation messages in the current message's data stream up to this write operation message, which is the address offset that needs to be calculated from the starting address.
[0085] Use the extracted PSN 1st Using the index key, the corresponding starting write address record is queried in the local context record. The queried starting write address is added to the address offset to obtain the target memory physical address to which the current write operation message payload needs to be written.
[0086] The above steps ensure that the final location of each write operation message in the receiving end's memory can be determined regardless of its actual arrival order, providing a fundamental guarantee for direct data placement under multi-path out-of-order transmission.
[0087] like Figure 5 As shown, the present invention also provides a data transmission system 100, including a sending module 101, a receiving module 102 and a context management module 103.
[0088] The sending module 101 is used to add an extended header to each write operation message when sending multiple write operation messages belonging to the same message to the receiver. The implementation of the sending module 101 can be referred to the implementation of the sending end in the above method, and will not be repeated here.
[0089] The receiving module 102 is used to obtain the corresponding starting write address according to the type of the extended header in the received write operation message, and write the data into memory according to the receiving order of the write operation messages. The implementation of the receiving module 102 can be referred to the implementation of the receiving end in the above method, and will not be repeated here.
[0090] The types of extended message headers include a first extended message header and a second extended message header. The first extended message header includes a message sequence number and a start write address, while the second extended message header only includes a message sequence number.
[0091] The context management module 103 is used to maintain the mapping table between the message sequence number and the starting write address in the receiving module 102.
[0092] In one implementation, the context management module 103 operates as follows: When the receiving module 102 receives a write operation message from, for example, a network interface, regardless of whether the message is out of order, it sends a query request to the context management module 103, submitting the PSN parsed from the extended message header. 1st After receiving a query request, the context management module 103 performs a query operation in its internal mapping table. If a matching record is found, it returns the corresponding starting write address to the receiving module 102. If no matching record is found, it means that the write operation message is the first write operation message received as a new message. In this case, the context management module 103 combines the relevant information in the write operation message to create a new mapping record and store it in the mapping table.
[0093] The present invention also provides a computer-readable storage medium storing instructions that, when executed on a computer, cause the computer to perform the data transmission method described above.
[0094] The present invention also provides a computer program product containing instructions that, when run on a computer, enable the computer to execute the above-described data transmission method.
[0095] The present invention also provides a network device, including at least one processor and a memory, wherein the memory stores a computer program, and the processor is used to execute the data transmission method described above by invoking the computer operation instructions. In one embodiment, the network device may specifically be a server.
[0096] In summary, this invention, by dividing the extended message header into a first extended message header containing the start write address and a second extended message header not containing the start write address, allows the receiving end to ignore the arrival order of write operation messages in multi-path transmission environments where write operation messages may arrive out of order. Without buffering, it directly obtains the start write address according to the receiving order and writes the data to the memory address. This improves the write latency problem caused by the receiving end's inability to obtain the start write address in time due to out-of-order arrival of write operation messages. Furthermore, it eliminates the need to set up a rearrangement buffer to restore the received messages to their original sending order, achieving direct data placement without buffering. This significantly reduces write operation completion time, improves write operation efficiency, reduces buffer overhead and write latency, and saves chip area. It better supports multi-path transmission application scenarios, optimizes bandwidth, increases effective data throughput, alleviates network congestion, and reduces the FCT of services. It maximizes transmission efficiency while ensuring functional integrity, making it particularly suitable for high-bandwidth scenarios such as AI training, distributed storage, and high-performance computing clusters.
[0097] It will be apparent to those skilled in the art that the present invention is not limited to the details of the exemplary embodiments described above, and that the invention can be implemented in other specific forms without departing from its spirit or essential characteristics. Therefore, the embodiments should be considered in all respects as exemplary and non-limiting, and the scope of the invention is defined by the appended claims rather than the foregoing description. Thus, all variations falling within the meaning and scope of equivalents of the claims are intended to be included within the present invention. No reference numerals in the claims should be construed as limiting the scope of the claims.
[0098] Furthermore, it should be understood that although this specification describes embodiments, not every embodiment contains only one independent technical solution. This narrative style is merely for clarity. Those skilled in the art should consider the specification as a whole, and the technical solutions in each embodiment can also be appropriately combined to form other embodiments that can be understood by those skilled in the art.
Claims
1. A method for data transmission, characterized in that, The method includes the following steps: The sending end sends multiple write operation messages belonging to the same message to the receiving end, and adds an extended message header to the write operation messages; The receiving end obtains the corresponding starting write address based on the type of the extended message header in the received write operation message, and writes the data into memory according to the receiving order of the write operation messages. The types of the extended message header include a first extended message header and a second extended message header, wherein the first extended message header includes a message sequence number and the starting write address, and the second extended message header includes the message sequence number but does not include the starting write address.
2. The data transmission method according to claim 1, characterized in that: When the type of the extended message header is the first extended message header, the receiving end extracts the message sequence number and queries the corresponding record of the message sequence number in the local context. If no corresponding record is found, the starting write address and the message sequence number are recorded in the local context, and an acknowledgment message is sent to the sending end. The sender receives the acknowledgment message and adds the second extended header to subsequent write operation messages.
3. The data transmission method according to claim 2, characterized in that: The acknowledgment message includes an AETH message, which uses reserved fields to indicate that the write operation message and the first extended header have been received by the receiving end.
4. The data transmission method according to claim 1, characterized in that: The first extended header contains a PSN number, which indicates the message sequence number.
5. The data transmission method according to claim 1, characterized in that, Writing data into memory according to the received order of the write operation messages includes obtaining the write offset address of the memory, including... Obtain the sequence number of the base transport header of the current write operation message; Obtain the message sequence number carried in the current write operation message; Using the message sequence number as an index, obtain the corresponding starting write address from the local context; Calculate the difference between the sequence number of the basic transmission header and the message sequence number; Calculate the product of this difference and the maximum transmission unit to obtain the address offset; Calculate the sum of the starting write address and the address offset.
6. The data transmission method according to claim 5, characterized in that: For a write operation message that includes the first extended message header, the corresponding message sequence number and the starting write address are obtained from the first extended message header.
7. The data transmission method according to claim 5, characterized in that: For a write operation message that includes the second extended message header, the local context is queried based on the message sequence number to obtain the corresponding starting write address.
8. The data transmission method according to claim 1, characterized in that: The type of extended header is identified by reserving fields in the base transport header of the write operation message.
9. A data transmission system, characterized in that, include: The sending module is used to add an extended message header to each write operation message when sending multiple write operation messages belonging to the same message to the receiver; The receiving module is used to obtain the corresponding starting write address according to the type of the extended message header in the received write operation message, and write the data into the memory according to the receiving order of the write operation messages; The types of extended message headers include a first extended message header and a second extended message header. The first extended message header includes a message sequence number and a start write address, while the second extended message header only includes a message sequence number. The context management module is used to maintain a mapping table between the message sequence number and the starting write address in the receiving module.
10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores instructions that, when executed on a computer, cause the computer to perform the method as described in any one of claims 1 to 8.