Data transmission method and device, electronic equipment and readable medium

By generating data packets with an integer multiple of the transmission channel width in a computer system and including packet size information, the problem of low channel resource utilization efficiency during data exchange between different chips is solved, and efficient data transmission is achieved.

CN119788746APending Publication Date: 2025-04-08LOONGSON TECH CORP
View PDF 0 Cites 1 Cited by

Patent Information

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

AI Technical Summary

Technical Problem

In computer systems, data exchange between different chips needs to be performed through transmission channels, however, due to channel resources limitations, how to effectively combine data packets for transmission becomes a technical challenge.

Method used

By generating a packet with an integer multiple of the transmission channel width at the sender and including packet size information in the data packet, the receiver can conveniently determine the transmission start and end positions of the data packet, thereby improving data transmission efficiency.

Benefits of technology

The combination of data that needs to be transmitted between chips into data packets is realized, which simplifies the data transmission process, improves data transmission efficiency, and reduces processing overhead.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119788746A_ABST
    Figure CN119788746A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a data transmission method and device, electronic equipment and a readable medium, and relates to the technical field of chips, in the method, a sender obtains a to-be-sent micro-packet based on a command micro-packet and a data micro-packet; the sender generates a to-be-sent data packet of which the packet size is an integral multiple of the width of a transmission channel according to the number of micro packets defined by a preset micro packet combination format based on the to-be-sent micro packets; the to-be-sent data packet comprises a to-be-sent micro packet and packet size information representing the size of the packet, and the transmission channel width is used for representing the size of data processed by the sender in a single clock period. And the sender sends the to-be-sent data packet to the receiver through the transmission channel. And the receiver receives the to-be-sent data packet as a target data packet, and processes the target data packet. Therefore, the to-be-sent micro packets needing to be subjected to inter-chip transmission can be combined into the data packet, so that data transmission is facilitated, and the data transmission efficiency can be improved to a certain extent.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of the present invention relate to the field of chip technology, and in particular, to a data transmission method, device, electronic device, and readable medium. Background Art

[0002] At present, in order to improve computing power, in a computer system (e.g., a computer, a server, etc.), there is not only a single processor with multiple cores, but also multiple other chips, such as a graphics processing unit (GPU), an accelerator card, and other dedicated computing chips. In order to realize data exchange between different chips, inter-chip interconnection technology has been widely used.

[0003] Since the channel resources for inter-chip interconnection are restricted to varying degrees by factors such as process cost, number of chip pins or signal integrity, how to combine the data to be transmitted between chips into data packets for transmission before transmitting data through the transmission channel has become a technical problem that needs to be solved urgently. Summary of the invention

[0004] The embodiments of the present invention provide a data transmission method, device, electronic device and readable medium, which can combine data that need to be transmitted between chips into data packets to facilitate transmission.

[0005] In order to solve the above problem, an embodiment of the present invention discloses a data transmission method, which is applied to an inter-chip interconnection system. The inter-chip interconnection system includes a sender and a receiver. The method includes:

[0006] The sender obtains the micro-packet to be sent based on the command micro-packet and the data micro-packet;

[0007] The sender generates a data packet to be sent whose packet size is an integer multiple of the transmission channel width based on the micro-packet to be sent and the number of micro-packets defined in a preset micro-packet combination format; the data packet to be sent includes the micro-packet to be sent and packet size information representing the packet size, and the transmission channel width is used to represent the data size processed by the sender in a single clock cycle;

[0008] The sender sends the data packet to be sent to the receiver via the transmission channel;

[0009] The receiver receives the data packet to be sent as a target data packet and processes the target data packet.

[0010] On the other hand, an embodiment of the present invention discloses a data transmission device, which is applied to an inter-chip interconnection system. The inter-chip interconnection system includes a sender and a receiver. The device includes:

[0011] A first acquisition module located in the sender, used for acquiring a micro-packet to be sent based on a command micro-packet and a data micro-packet;

[0012] A first generating module located in the sender is used to generate a data packet to be sent whose packet size is an integer multiple of the transmission channel width based on the micro-packet to be sent and the number of micro-packets defined by a preset micro-packet combination format; the data packet to be sent includes the micro-packet to be sent and packet size information representing the packet size, and the transmission channel width is used to represent the data size processed by the sender in a single clock cycle;

[0013] A sending module located in the sender, used for sending the data packet to be sent to the receiver through the transmission channel;

[0014] The processing module located in the receiver is used to receive the data packet to be sent as a target data packet and process the target data packet.

[0015] On the other hand, an embodiment of the present invention discloses an electronic device, comprising: a processor, a memory, a communication interface and a communication bus, wherein the processor, the memory and the communication interface communicate with each other through the communication bus; the memory is used to store at least one executable instruction, and the executable instruction enables the processor to execute the aforementioned method.

[0016] The embodiment of the present invention further discloses a machine-readable medium on which instructions are stored. When executed by one or more processors, the processors are enabled to execute the method described above.

[0017] The embodiment of the present invention has the following advantages: In the data transmission method provided by the embodiment of the present invention, the sender obtains the micropacket to be sent based on the command micropacket and the data micropacket. The sender generates a data packet to be sent whose packet size is an integer multiple of the transmission channel width based on the micropacket to be sent and according to the number of micropackets defined by the preset micropacket combination format; the data packet to be sent includes the micropacket to be sent and the packet size information representing the packet size, and the transmission channel width is used to represent the data size processed by the sender in a single clock cycle. The sender sends the data packet to be sent to the receiver through the transmission channel. The receiver receives the data packet to be sent as the target data packet and processes the target data packet. In this way, the micropackets to be sent that need to be transmitted between chips can be combined into a data packet, thereby facilitating data transmission. Further, since the transmission channel width is used to represent the data size processed by the sender in a single clock cycle, in the embodiment of the present invention, by setting the packet size of the data packet to be sent as the transmission channel width, and setting the packet size information in the data packet to be sent, the data packet to be sent can be sent within an integer multiple of the clock cycles, which is convenient for the receiver to conveniently determine the transmission start and end positions of the data packet, thereby improving the data transmission efficiency to a certain extent. BRIEF DESCRIPTION OF THE DRAWINGS

[0018] In order to more clearly illustrate the technical solutions of the embodiments of the present invention, the accompanying drawings required for use in the description of the embodiments of the present invention will be briefly introduced below. Obviously, the accompanying drawings in the following description are only some embodiments of the present invention. For ordinary technicians in this field, other accompanying drawings can be obtained based on these accompanying drawings without paying creative labor.

[0019] Figure 1 is a flowchart of a data transmission method provided by an embodiment of the present invention;

[0020] Figure 2 It is a schematic diagram of mapping a data packet on a physical channel provided by an embodiment of the present invention;

[0021] Figure 3 is a schematic diagram of a data packet to be sent provided by an embodiment of the present invention;

[0022] Figure 4 is a schematic diagram of a micro-packet combination format provided by an embodiment of the present invention;

[0023] Figure 5 is a schematic diagram of a data packet header provided by an embodiment of the present invention;

[0024] Figure 6 This is a schematic diagram of arbitration provided by an embodiment of the present invention;

[0025] Figure 7is a schematic diagram of a structure of inter-chip transmission provided by an embodiment of the present invention;

[0026] Figure 8 is a block diagram of a data transmission device provided by an embodiment of the present invention;

[0027] Fig. 9 It is a structural schematic diagram of an electronic device provided by an embodiment of the present invention. DETAILED DESCRIPTION

[0028] The following will be combined with the drawings in the embodiments of the present invention to clearly and completely describe the technical solutions in the embodiments of the present invention. Obviously, the described embodiments are part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.

[0029] First, an application scenario involved in an embodiment of the present invention is described. Exemplarily, an embodiment of the present invention can be applied to an inter-chip interconnection scenario. For example, point-to-point interconnection between chip and chip (Chip to Chip), die and die (Die to Die), silicon point-to-point interconnection, etc. The chip (chip) or die (Die) participating in the inter-chip interconnection can perform inter-chip data transmission based on the inter-chip transmission bus. Among them, the die can be regarded as a chip that has not been packaged, and the die can be a separate wafer area containing a complete functional unit of the chip or a group of related functional units. With the continuous advancement of semiconductor technology and process, the number of transistors that can be integrated on a silicon wafer per unit area is increasing, and in the field of servers or high-end processors, the number of transistors integrated on the same chip / die is often restricted by factors such as the size, yield and single chip cost of a single chip / die. In order to continue to improve computing power, inter-chip interconnection technology has received widespread attention. Further, computer systems have gradually evolved to multiple cores, multiple hardware threads, multiple logical processors, and graphics computing units, dedicated computing units and other interfaces integrated in such processors. As the single-core performance of processors continues to improve, the interconnection between processors and between processors and dedicated computing chips has become more and more widely used.

[0030] Inter-chip interconnection needs to realize data transmission between different chips. When the transmission signal passes through the transmission medium, the signal integrity problem caused by the physical characteristics of the channel must be considered. Whether it is the traditional printed circuit board (PCB) level chip-to-chip interconnection or the current bare core interconnection technology (also known as chiplet technology), the transmission channel resources are subject to varying degrees of constraints such as process cost, number of chip pins or signal integrity. Therefore, before data is transmitted through the transmission channel, a certain method is required to combine the data that needs to be transmitted between chips and map it to the transmission channel for transmission. To this end, an embodiment of the present invention provides a data transmission method, which is described in detail below.

[0031] Reference Figure 1 , shows a flow chart of the steps of a data transmission method provided by an embodiment of the present invention, which can be applied to an inter-chip interconnection system, and the inter-chip interconnection system includes a sender and a receiver. Figure 1 As shown, the data transmission method specifically includes the following steps:

[0032] Step 101: The sender obtains a micropacket to be sent based on a command micropacket and a data micropacket.

[0033] Step 102: The sender generates a data packet to be sent whose packet size is an integer multiple of the transmission channel width based on the micropacket to be sent and the number of micropackets defined by a preset micropacket combination format; the data packet to be sent includes the micropacket to be sent and packet size information representing the packet size, and the transmission channel width is used to represent the data size processed by the sender in a single clock cycle.

[0034] Step 103: The sender sends the data packet to be sent to the receiver through the transmission channel.

[0035] Step 104: The receiver receives the data packet to be sent as a target data packet and processes the target data packet.

[0036] In an embodiment of the present invention, the inter-chip interconnection system may include chips participating in the inter-chip interconnection. The inter-chip interconnection system may be deployed in the same electronic device, and the chips may be connected through a bus, or may be distributed in different devices, and the embodiment of the present invention does not limit this. The sender in the inter-chip interconnection system may be a chip in the system that needs to send data. The receiver in the inter-chip interconnection system may be a chip in the system that needs to receive data, for example, the receiver may be a chip connected to the sender. In actual application scenarios, the chip may send data or receive data, that is, a chip may act as a sender in some cases and as a receiver in some cases, and the implementation of the present invention does not limit this. In an application scenario, the data transmission method provided in an embodiment of the present invention can be applied to a central processing unit (CPU) consistent interconnection scenario. Accordingly, the data that the sender needs to send may be data that needs to be synchronized between interconnected CPUs.

[0037] The sender can obtain the micro-packet to be sent corresponding to at least one virtual channel. Specifically, the micro-packet to be sent corresponding to at least one virtual channel can be obtained from the command micro-packet and the data micro-packet corresponding to at least one virtual channel. The sender may include multiple virtual channels (Vitural Channel), wherein the virtual channel can be used for data transmission between two or more ends. Exemplarily, the virtual channel can be a logical path inside the sender to realize internal data transmission. Or, it can also be a logical path between the sender and other external chips, which is not limited in the embodiment of the present invention. A micro-packet (flit) can refer to a transmission unit in the interconnection field, that is, a basic unit of information transmission. Each flit can contain a part of the information. The virtual channel uses flit as the basic unit of data transmission, which can conveniently perform fine-grained flow control and scheduling. The micro-packet to be sent corresponding to the virtual channel can refer to a micro-packet that needs to be transmitted between chips and enters the virtual channel. The micro-packet to be sent can represent data that needs to be transmitted between chips. For any micro-packet to be sent, the micro-packet to be sent may be a data micro-packet or a command micro-packet. In the embodiment of the present invention, micropackets corresponding to virtual channels that need to be transmitted between chips can be obtained as micropackets to be sent corresponding to at least one virtual channel. Furthermore, the sender can also obtain micropackets unrelated to virtual channels as micropackets to be sent.

[0038] Further, the micro-packet combination format may be a pre-set data packet format. In an embodiment of the present invention, the micro-packet combination format may define the number of micro-packets that can be carried in a data packet. The number of micro-packets carried in the data packet to be sent generated based on the micro-packet combination format is the same as the number of micro-packets defined by the micro-packet combination format. The data packet size defined by the micro-packet combination format may be an integer multiple of the transmission channel width, that is, the micro-packet combination format may fix the data packet size to be an integer multiple of the transmission channel width, so that a data packet to be sent having a packet size that is an integer multiple of the transmission channel width may be generated based on the preset micro-packet combination format. Among them, the transmission channel width may be the width of the transmission channel between the sender and the receiver in the inter-chip interconnection, and the transmission channel may be an inter-chip transmission bus between the sender and the receiver. The transmission channel width determines the data size processed by the sender in a single clock cycle, that is, determines the data length that can be processed in a bus cycle. The data size processed by the sender in a single clock cycle may be the transmission channel width, or an integer multiple of the transmission channel width. Therefore, by controlling the packet size of the data packet to be sent to be an integer multiple of the transmission channel width, that is, controlling the packet length of the data packet to be sent to be an integer multiple of the data length processed by the sender in each clock cycle, each data packet to be sent can be transmitted in an integer number of complete bus cycles, thereby improving the utilization rate of channel resources.

[0039] The data packet to be sent includes the micro-packet to be sent and the packet size information representing the packet size. In this way, by sending the data packet to be sent to the receiver, the receiver can obtain the micro-packet to be sent and conveniently know the specific size of the data packet to be sent, so that the receiver can conveniently determine how many bus cycles are required to complete the transmission of the data packet to be sent, and then the receiver can quickly determine the transmission start and end position of the data packet.

[0040] In summary, in the data transmission method provided by the embodiment of the present invention, the sender obtains the micropacket to be sent based on the command micropacket and the data micropacket. The sender generates a data packet to be sent whose packet size is an integer multiple of the transmission channel width based on the micropacket to be sent and according to the number of micropackets defined by the preset micropacket combination format; the data packet to be sent includes the micropacket to be sent and the packet size information representing the packet size, and the transmission channel width is used to represent the data size processed by the sender in a single clock cycle. The sender sends the data packet to be sent to the receiver through the transmission channel. The receiver receives the data packet to be sent as the target data packet and processes the target data packet. In this way, the micropackets to be sent that need to be transmitted between chips can be combined into a data packet, thereby facilitating data transmission. Further, since the transmission channel width is used to represent the data size processed by the sender in a single clock cycle, in the embodiment of the present invention, by setting the packet size of the data packet to be sent as the transmission channel width, and setting the packet size information in the data packet to be sent, the data packet to be sent can be sent within an integer multiple of the clock cycles, which is convenient for the receiver to conveniently determine the transmission start and end positions of the data packet, thereby improving the data transmission efficiency to a certain extent.

[0041] Optionally, before the step of obtaining the micro-packet to be sent by the sender based on the command micro-packet and the data micro-packet, the embodiment of the present invention may further include:

[0042] Step S21: For any of the virtual channels, the sender generates the command micro-packet based on components of the bus write response or bus read request in response to the bus write response or bus read request corresponding to the virtual channel.

[0043] Step S22: The sender generates the command micro-packet based on the components of the bus read response or bus write request in response to the virtual channel, and generates the data micro-packet based on the read and write data corresponding to the bus read response or bus write request.

[0044] Accordingly, the sender may determine the command micro-packet and the data micro-packet as the micro-packets corresponding to the virtual channel. The content of the data transmitted between chips may include a bus read and write request and a bus read and write response. Among them, the bus read and write request and the bus read and write response are both from the bus. For a cross-chip transaction, the bus read and write request comes from one end device, and the bus read and write response comes from the other end device. It should be noted that in some embodiments, only the request may not generate a response. The bus read and write request may include a bus read request and a bus write request, and the bus read and write response may include a bus read response and a bus write response. The bus read response carries the data requested to be read, and the bus write request carries the data to be written. The data to be read and written corresponding to the bus read response and the bus write request may include the read data corresponding to the bus read response, and the write data corresponding to the bus write request.

[0045] Specifically, inside the chip, information is transmitted between modules through the data bus, address bus and control bus, and the content of inter-chip transmission is often a subset of the content of the bus transmission inside the chip. There may be some special on-chip bus protocols that define some special types of bus transmission transactions based on the design of the entire system, but in this embodiment, any type of bus transmission transaction can be regarded as one of the four types of bus read request, bus write request, bus read response and bus write response for transmission. Accordingly, in an embodiment of the present invention, the data micro-packet corresponds to the data part of all bus transmission information, and the command micro-packet corresponds to the remaining non-data part of the bus transmission information. Furthermore, the data transmission method provided in an embodiment of the present invention, as a transparent bridge, does not parse the content of the bus, nor does it require that a corresponding response must be generated on the other side when a request is sent from one end, that is, the pairing of bus requests and responses is not restricted in the embodiment of the present application, as long as all on-chip transmission information is mapped into micro-packets according to the corresponding rules for transmission.

[0046] The bus request / response can carry information such as address, tag, data attribute, operation command generated by source device / destination device, etc. All these information constitute the non-data part of a bus request / response. Among them, the address is set according to the address space of the processor system, and the address can mark the address space occupied by the data. The tag refers to the identifier (Identity, Id) used to mark the request when the separated transaction bus (such as AXI protocol) is transmitted. In the actual application scenario, the destination will reply with the same Id after generating a response to terminate this bus transaction. The operation command can be used to indicate the action that needs to be performed by the other device. For example, the second-level cache can require the first-level cache to invalidate some data or send back data, etc. In particular, the bus read response and bus write request can carry data by default according to the usage scenario, that is, only the non-data content of these two bus transactions is transmitted.

[0047] Accordingly, the command micropacket may include the non-data part of the bus read / write request / bus read / write response, that is, including the information carried by the request. The read data corresponding to the bus read response may be the content read from the memory. The write data corresponding to the bus write request may be the content to be written into the memory. Among them, the memory may be a memory on a different device, or it may be a data buffer of a certain device. In order to maintain the data consistency of the entire system, the data transmission may be in units of cache lines, that is, the size of the transmitted data in most cases is in units of hundreds of bits. In some input / output (IO) devices, the span range of the transmitted data is relatively large, which may range from a few bytes to several thousand bytes. The address content of the transmission will not exceed 64 bits in modern computer architectures, and the command content varies according to different design manufacturers, but usually does not exceed tens of bits. Therefore, in the embodiment of the present invention, the data content that needs to be transmitted between chips can be divided into data flits and command flits. Among them, the length span of the data flit is relatively large, and may include the size of one or more cache lines. It should be noted that in some processor structures, there may also be data transmission of a smaller length in bytes, and the present invention does not limit this. The length of the command flit is usually small. According to the nature and characteristics of its content, the maximum will generally not exceed 96 bits, and the minimum may be only a dozen bits. In the embodiment of the present invention, taking a double word (DW) representing 32 bits as an example, the size of the supported data flit may not exceed 18DW. For example, in the CPU consistent interconnection scenario, the data flit may be a data packet of 16DW to 18DW. Of course, the size of the data flit may not be limited to 16DW to 18DW. For example, in the specific implementation, there is a small probability that a data flit less than 4DW may appear. According to different scenarios, a data flit of 10DW to 16DW may appear, but overall, larger data flits account for more. Further, the size of the supported command flit may not exceed 3DW. For different types of command flits, two specifications can be rounded up according to the size of the valid data content: 1DW and 3DW. For example, the composition of a read request may include information such as a read address, a bus ID tag, the size and length of the read data, and some other commands that require destination operations, and this information often requires 3DW in total. The write response is the destination telling the source whether the write request is successful. The write response can include the bus ID tag and the write response success / failure status. Therefore, you only need to set the 1DW size.

[0048] A micro-packet can be generated based on a write response, a bus read request, a bus read response and / or a bus write request. Specifically, for a write response or a bus read request corresponding to a virtual channel, the command flit can be split according to the specifications of a preset command flit to obtain a command flit. For a bus read response or a bus write request corresponding to a virtual channel, the request or response itself can be split according to the specifications of a preset command flit to obtain a command flit. At the same time, the corresponding read and write data is split according to the upper limit size of the data flit to obtain a data flit. Among them, the bus read and write response corresponding to the virtual channel can be a bus read and write response generated by the source end of the virtual channel, and the bus read and write request corresponding to the virtual channel can be a bus read and write request generated by the source end of the virtual channel. Finally, the generated command micro-packet and data micro-packet can be used as the micro-packet corresponding to the virtual channel. It should be noted that in the case where only the command micro-packet is split, only the command micro-packet can be used as the micro-packet corresponding to the virtual channel.

[0049] In an embodiment of the present invention, the sender generates a micro-packet based on the bus read and write response and bus read and write request corresponding to the virtual channel. In this way, after the data packet is obtained based on the micro-packet assembly, the bus read and write response and bus read and write request corresponding to the virtual channel can be conveniently synchronized to the receiver in the inter-chip interconnection. At the same time, the inter-chip transmission content in the CPU consistency interconnection scenario generally has semantic attributes. Accordingly, in an embodiment of the present invention, the flits are divided into data flits and command flits according to the semantics of the transmission content, which is equivalent to a more general abstraction and an understanding of the semantics of each transmission protocol. It is more appropriate to the actual application scenario.

[0050] The content of data transmitted between chips can also include DLP (Data Link Packet) packets, where DLP packets refer to packets used by the data link layer to maintain data integrity. DLP packets can include Ack response packets and Nak response packets used to maintain transmission responses, as well as flow control packets generated during link maintenance. Among them, Ack response packets and Nak response packets are independent of virtual channels, and flow control packets are independently generated by each virtual channel, and flow control packets correspond to virtual channels. Ack response packets and Nak response packets can be collectively referred to as DLP response packets. The attributes of Ack response packets and Nak response packets can be used to tell the other end that part of the packet has been received or that a packet has an error.

[0051] For DLP packets, in some embodiments, the DLP packets can be directly sent as data packets on the physical layer. Alternatively, in other embodiments, the DLP packets can be used as command flits, packaged, and then sent. Accordingly, before the above step S23, the embodiment of the present invention may also include: the sender obtains the DLP packet and uses the DLP packet as the command micro-packet. In the implementation method of using the DLP packet as the command flit, the information generated by the data link layer can be subsequently packaged at the protocol layer and transmitted as a data packet to be sent. In this way, the Ack response packet, Nak response packet, and flow control packet generated during the link maintenance process can be used as a special command flit to transmit through data packets to improve transmission performance. And it can reduce the overhead caused by the direct transmission of the DLP packet on the physical layer, save the regular overhead required for the direct transmission of the DLP packet on the physical layer, such as regular overhead such as CRC check, and thus reduce the required transmission bandwidth. At the same time, it can avoid interference with the alignment of normal data packets, thereby reducing transmission delay.

[0052] Optionally, in an embodiment of the present invention, the data packet size defined by each of the micro-packet combination formats is an integer multiple of the transmission channel width. The data packet size can reflect the transmission specification, adapt the data packet transmission rule to the transmission channel width, and ensure that the packet size of the data packet to be sent generated based on these formats is an integer multiple of the transmission channel width. In this way, it is convenient for the receiver to easily determine the transmission start and end position of the data packet, thereby reducing the transmission delay of the data packet to be sent generated using the micro-packet combination format in the future. It should be noted that when using the preset micro-packet combination format for packet assembly, the packet assembly can be performed according to the preset packet assembly rules, and the preset packet assembly rules can be set as needed, as long as it is ensured that the final generated data packet conforms to the micro-packet combination format, and the embodiment of the present invention does not limit this. Optionally, in an implementation method, the sender generates a step of generating a data packet to be sent with a packet size that is an integer multiple of the transmission channel width based on the micro-packet to be sent and the number of micro-packets defined by the preset micro-packet combination format, which can specifically include:

[0053] Step 1021: The sender determines a target combination format for the micro-packet to be sent from the micro-packet combination formats.

[0054] Step 1022: For any of the target combination formats, the sender selects m micro-packets to be sent from the micro-packets to be sent according to the target combination format; m is the number of micro-packets defined by the target combination format.

[0055] Step 1023: The sender determines the generation order of the micro-packets to be sent corresponding to the same virtual channel among the m micro-packets to be sent.

[0056] Step 1024: The sender groups the m micro-packets to be sent based on the generation order to obtain one data packet to be sent; wherein, the arrangement order of the micro-packets to be sent corresponding to the same virtual channel among the m micro-packets to be sent in the data packet to be sent matches the generation order.

[0057] In an embodiment of the present invention, when a data packet to be sent is generated by using a micro-packet to be sent, the micro-packet to be sent can be placed in the data packet to be finally sent to the transmission channel for sending. The target combination format may include some or all of the preset micro-packet combination formats. For example, the micro-packet combination format may be randomly selected as the target combination format, or the target combination format may be selected according to the selection priority, wherein the selection priority may be positively correlated with the number of defined data flits, that is, the micro-packet combination format with a larger number of defined data flits is preferentially used as the target combination format. The micro-packet combination format may define the maximum size, type and number of micro-packets of each type that can be carried. Accordingly, the target combination format may be selected based on the type and size of the micro-packet to be sent currently to be sent. For example, in the micro-packet to be sent, if there is a micro-packet to be sent that meets the type and size defined by the micro-packet combination format, the micro-packet combination format may be determined as the target combination format. For example, if the micro-packet to be sent includes only one data micro-packet, then the micro-packet combination format in which the defined micro-packet type includes a data micro-packet and the size of the micro-packet is not less than the size of the data micro-packet may be selected as the target combination format.

[0058] Optionally, in one implementation, the above step 1021 may specifically include the following steps:

[0059] Step 1021a: The sender matches the size and type of each micro-packet to be sent with the size and type of each micro-packet defined in each micro-packet combination format in the order of the number of defined data micro-packets from most to least based on the maximum length and type of each micro-packet defined in each micro-packet combination format.

[0060] Step 1021b: The sender determines the matching micro-packet combination format as the target combination format; wherein the number of micro-packets of each type, the type of each micro-packet, and the maximum length defined in different micro-packet combination formats are different.

[0061] Optionally, the data packet to be sent includes a packet sequence number, a packet format, a packet header, a data packet body, and a cyclic redundancy check code; the data packet body includes the m micropackets to be sent. For any of the micropacket combination formats, the micropacket combination format is used to define the format of the data packet body; the micropacket combination format defines the maximum length of the micropacket that can be carried, the micropacket type, and the number of micropackets. Among them, the micropacket type can be divided into data flits and command flits, and the number of micropackets of each type can be defined in the micropacket combination format: the number of data flits and the number of command flits, and the maximum length of each micropacket that can be carried defined in the micropacket combination format can be used to characterize the size of each micropacket. Accordingly, the micropacket combination format can specify the number of data flits and the number of command flits that can be carried by a data packet, the maximum length of each data flit that can be carried, and the maximum length of each command flit that can be carried. Different packet formats can be distinguished according to the number of data flits and command flits carried. Further, the micropacket combination format can include multiple fields, and one field corresponds to a defined micropacket. A maximum length and type can be defined for each domain. The number of domains can represent the number of micropackets defined in the micropacket combination format. The type of the domain can represent the type of the micropacket. The number of domains of type data flit can represent the number of data micropackets defined in the micropacket combination format. The number of domains of type command flit can represent the number of command micropackets defined in the micropacket combination format. The size of each micropacket defined in the micropacket combination format can be a fixed value, that is, the fixed size defined by the domain, that is, the maximum length of the micropacket that can be placed in the domain. In this way, by setting a fixed value, it is equivalent to fixing the boundary of each micropacket, and only micropackets less than the maximum length can be placed in the domain. In this way, since the boundary is fixed, the subsequent unpacking logic of the receiver can be simplified. Alternatively, the maximum length defined for two or more domains can be used to constrain the maximum length of the micropacket that can be placed in the domain. It should be noted that when the length of the micropacket placed in the domain is less than the fixed size defined in the domain, padding can be performed to ensure that the boundary of the data packet is aligned, which is convenient for the receiver to parse. For example, the micropacket can be placed in the domain first, and then the default character can be used to fill the remaining bits, that is, the filled content is all located after the micropacket.

[0062] In one implementation, the preset micro-packet combination format is traversed in the order of the number of defined data micro-packets from most to least, and for the currently traversed micro-packet combination format, the maximum length and type of each micro-packet defined in the micro-packet combination format are matched with the size and type of each micro-packet to be sent. If matched, the micro-packet to be sent is determined as a matching micro-packet of the micro-packet combination format. Among them, if the size of the micro-packet to be sent does not exceed the maximum length of at least one field in the micro-packet combination format, and the type of the micro-packet to be sent is consistent with the type of the at least one field, it is determined that the two match. Further, if the number of matching micro-packets of the micro-packet combination format is consistent with the number of micro-packets defined in the micro-packet combination format, the micro-packet combination format is determined as a matching micro-packet combination format, that is, determined as a target combination format. Accordingly, when selecting m micro-packets to be sent from the micro-packets to be sent according to the target combination format, the matching micro-packet of the target combination format can be directly selected, and the m micro-packets to be sent corresponding to the target combination format can be conveniently obtained.

[0063] In the embodiment of the present invention, the number of data micro-packets defined in the micro-packet combination format is selected in the order of most to least, and the micro-packet combination format with more data micro-packets can be selected as the target combination format as much as possible. In this way, when the data packet to be sent is subsequently generated based on the target combination format, the data micro-packets in the micro-packets to be sent can be consumed first, so that the data micro-packets can be sent first as much as possible, thereby improving the bandwidth utilization. Furthermore, in the embodiment of the present invention, when there are too many command micro-packets in the micro-packets to be sent, for example, when the number of command micro-packets exceeds a preset numerical threshold, a micro-packet combination format whose defined micro-packet type only includes command micro-packets can be selected as the target combination format.

[0064] Further, the m micro-packets to be sent that are combined into the same data packet may come from the same virtual channel or from different virtual channels. Specifically, for the micro-packets to be sent corresponding to the same virtual channel in the m micro-packets to be sent, the generation order of these micro-packets to be sent can be determined. Exemplarily, the order in which these micro-packets to be sent enter the virtual channel can be used as the generation order. For example, the order in which these micro-packets to be sent enter the queue to be sent of the virtual channel can be determined as the generation order. When grouping, the micro-packets to be sent can be placed based on the generation order. Specifically, the arrangement order of the micro-packets to be sent corresponding to the same virtual channel in the data packet to be sent matches the generation order, that is, the order of the micro-packets to be sent corresponding to the same virtual channel in the process of grouping is ensured to be the same as the order in which they enter the queue to be sent of the virtual channel. Of course, for the micro-packets to be sent of different virtual channels, their arrangement order in the data packet to be sent can be set as needed, and the embodiment of the present invention does not limit this. Furthermore, in the embodiment of the present invention, since there is no need to process and process the information of the micro-packet to be sent, the inter-chip interconnection only serves as a transmission transparent bridge, the content of the transmission and the adapted system are transparent, and there is no need to maintain the order relationship of the content of different virtual channels. Therefore, the maintenance cost can be reduced, the design of the transmission scheme is simple, and the scalability and versatility of the transmission scheme are improved.

[0065] Since the source and the destination have a strict dependence on the request / response sequence on the same virtual channel, and during the transmission process, it is not necessary to parse what the micro-packet specifically transmits, that is, it is not necessary to process and process the information of the micro-packet. Therefore, in the embodiment of the present invention, by determining the target combination format, the micro-packets to be sent are selected and packaged according to each target combination format. And the package is packaged according to the generation order of the micro-packets to be sent, and the arrangement order of the micro-packets to be sent corresponding to the same virtual channel in the data packet to be sent is controlled to match the generation order. In this way, the correct operation of the two ends of the system can be ensured, and the bus request / response of each virtual channel at the receiver end is ensured to be consistent with the bus request / response of the sender.

[0066] It should be noted that, when there are multiple virtual channels, a preset arbitration strategy can be used to obtain the micro-packet to be sent. The preset arbitration strategy can be set as needed, and the embodiment of the present invention does not limit this. Exemplarily, polling arbitration can be used to allow each virtual channel to take turns to get the opportunity to send a data packet, that is, the data packet can be obtained from each virtual channel in turn. Alternatively, arbitration can also be performed based on the priority of the virtual channel.

[0067] Optionally, the step of the sender grouping the m micropackets to be sent based on the generation order to obtain one data packet to be sent may specifically include:

[0068] Step 1024a: The sender generates packet header information based on the micro-packet length corresponding to each micro-packet to be sent in the m micro-packets to be sent and the identifier of the virtual channel to which it belongs.

[0069] Step 1024b: The sender generates packet format information based on the number of the m micro-packets to be sent; the packet format information is used to represent the packet size.

[0070] Step 1024c: the sender arranges the m micro-packets to be sent according to the generation order, and adds the packet header information and the packet format information to the arranged m micro-packets to be sent to generate one data packet to be sent.

[0071] In an embodiment of the present invention, the data packet to be sent may include a micro-packet to be sent, a packet header and a packet format (Format, Fmt). Furthermore, it may also include a packet sequence number (Sequence No.) and a cyclic redundancy check code (Cyclic Redundancy Check, CRC). The micro-packet to be sent constitutes a data packet body to ensure the data integrity of the transmission link. The four types of content, namely, the packet header, the packet format, the packet sequence number and the CRC, are used as regular packet assembly overhead. The sum of the m micro-packets to be sent and the regular overhead carried in the final generated data packet to be sent shall not exceed the data packet size defined by the target packet assembly format to ensure that the final generated data packet to be sent conforms to the target packet assembly format. The packet format included in the data packet to be sent refers to the above-mentioned added packet format information.

[0072] Specifically, different packet formats can be distinguished according to the number of data flits and command flits carried. Accordingly, the number of data flits and the number of command flits in the m micropackets to be sent can be determined, and the packet format information can be generated based on these two numbers. Exemplarily, M represents the number of data flits carried, N represents the number of command flits carried, and the packet format information can represent MDNC. After determining the packet format, the header information can be composed according to the attributes of each flit in the m micropackets to be sent, which is used to distinguish the length of the domain to which it belongs and the virtual channel from which it comes. Specifically, the header information includes the micropacket length corresponding to each micropacket to be sent in the m micropackets to be sent and the identifier of the virtual channel to which it belongs. Exemplarily, the length defined by each domain in the target combined format and the identifier of the virtual channel to which the micropacket to be sent stored in the domain belongs can be used as the header information. The micropacket length corresponding to each micropacket to be sent among the m micropackets to be sent may be the length of the domain to which the micropacket to be sent belongs. In this way, when the receiver unpacks the packet, it can conveniently determine the range occupied by each micropacket carried based on the micropacket length in the packet header information, thereby facilitating extraction. Alternatively, the micropacket length corresponding to each micropacket to be sent may also be the actual length of the micropacket to be sent. Accordingly, different micropacket packaging formats may be defined in advance at the receiver. Accordingly, the receiver may determine the range occupied by each micropacket carried based on the micropacket packaging format followed by the target data packet, and conveniently obtain the actual content carried from the content of the range occupied by the micropacket based on the micropacket length in the packet header information.

[0073] It should be noted that the packet format can be placed at the first position of the data packet to be sent, so that the receiver can know the length of the data packet received this time and the relevant information of the flit carried therein when receiving it at the beginning. The packet format can be used as the packet size information for characterizing the packet size. Accordingly, the receiver can determine the packet size corresponding to the packet format according to the preset format and packet size correspondence. Alternatively, the packet size of the data packet to be sent can be directly written into the packet header information as the packet size information, so that the receiver can directly read the packet size in the packet header information and know the packet size more conveniently. Specifically, among the various components of the data packet, the packet sequence number, the packet format (collectively referred to as Start of Packet, STP) and the packet header are set at the very beginning of the data packet, and the CRC is placed at the end of the data packet. The m micro packets to be sent are placed in the data packet body in the order of generation.

[0074] Optionally, in some embodiments, the data packet size defined by the micro-packet combination format may include 16DW, 32DW, and 48DW. Of course, any size can also be defined as needed, and the embodiment of the present invention does not limit this. Since the CPU consistency interconnection scenario does not have high bandwidth requirements as the IO interconnection scenario, the CPU consistency interconnection scenario is more sensitive to transmission delay. In the embodiment of the present invention, the maximum size of the data packet is controlled to be 48DW, which can avoid the problem of excessive data packets and increased transmission delay. At the same time, compared with the situation where the circuit complexity is too high during the specific implementation and the delay is increased due to taking into account multiple scenarios, in the embodiment of the present invention, the implementation difficulty can be reduced to a certain extent for the CPU consistency interconnection scenario, and the delay can be reduced. STP, header, and CRC are fixed to 1DW in length respectively. Accordingly, the payloads that these three data packets can carry are 13DW, 29DW, and 45DW, respectively. Since the virtual channel identifier and flit length need to be stored in the packet header. In the embodiment of the present invention, by setting a fixed length for the packet header and setting the packet header length to 1DW, the number of flits in each data packet can be limited to avoid carrying too many flits in the data packet. Taking the transmission channel bit width of 16 bits as an example, Figure 2 This is a schematic diagram of mapping a data packet on a physical channel provided by an embodiment of the present invention. Lane represents a channel, Packet Body represents a data packet body, which refers to the part of the data packet that carries actual data, that is, the part that carries the micro-packet to be sent, and symbol represents the smallest unit of data. Figure 2 A symbol in represents a byte. For a data packet with a size of 16DW (i.e. 64 bytes), symbol0 to symbol3 represent 4 bytes. Since the channel is 16 bits, a data packet of 16×4=64 bytes can be formed accordingly. Correspondingly, symbol0 to symbol7 represent 8 bytes, and correspondingly, symbol0 to symbol11 represent 12 bytes. The sender can determine the transmission content of each transmission cycle based on the data packet to be sent. The physical layer maps one or more bytes in the transmission content to each lane according to the bit width design of the sender. When the sender maps the transmission content to each lane losslessly, the composed data packet will not cause additional channel loss during the channel mapping process. Among them, lossless means that when mapping data to the channel, it will not cause idleness on the channel.

[0075] Furthermore, in the embodiment of the present invention, DW can be used as the minimum unit of flit, and 16DW of data can be processed in each clock cycle as an example. Assume that the data packets to be sent carry data flit 0 and data flit 1, and the command packets carried carry command flit 0 and command flit 1. Figure 3 FIG. 1 is a schematic diagram of a data packet to be sent provided by an embodiment of the present invention. Figure 3 As shown in the figure, cycle represents the working cycle of the sender, that is, the clock cycle. Figure 3 Each working cycle processes 16x4=64 bytes of data, that is, 16DW of data. Figure 3 The data packets to be sent in can be transmitted through cycle1 and cycle2. Multiple flits are placed end to end in the data packet, and the length of each flit and the identifier of the virtual channel to which it belongs are marked by the information in the Header. Accordingly, when unpacking, each flit can be extracted in sequence according to this information. DW[p:q] represents the pqth DW of the flit. For example, Data flit 0 is a micropacket with a length of 16DW. Accordingly, Data flit 0 is split into 5 parts connected in the first place. Among them, Data flit 0[5:2] represents the 5th, 4th, 3rd, and 2nd DW of Data flit 0.

[0076] Optionally, the preset micro-packet combination format includes micro-packet combination formats defining different data packet sizes, wherein in different micro-packet combination formats defining the same data packet size, at least one of the micro-packet number of the defined command micro-packet and the micro-packet number of the defined data micro-packet is different. Figure 4 Schematic diagram of a micro-packet combination format provided by an embodiment of the present invention. Figure 4As shown, corresponding to the 13DW payload (i.e., corresponding to a data packet with a data packet size of 16DW), there can be five micro-packet combination formats of Type1-Type5, and at least one of the micro-packet numbers of command micro-packets and the micro-packet numbers of data micro-packets defined in these five micro-packet combination formats is different. Corresponding to the 29DW payload (i.e., corresponding to a data packet with a data packet size of 32DW), there can be three micro-packet combination formats of Type1-Type3, and at least one of the micro-packet numbers of command micro-packets and the micro-packet numbers of data micro-packets defined in these three micro-packet combination formats is different. Corresponding to the 45DW payload (i.e., corresponding to a data packet with a data packet size of 48DW), there can be three micro-packet combination formats of Type1-Type3, and at least one of the micro-packet numbers of command micro-packets and the micro-packet numbers of data micro-packets defined in these three micro-packet combination formats is different. Among them, the number of micro-packets that can be loaded in a data packet is 5, so it can be represented by five fields. Field Length indicates the maximum length defined by the field, and NA indicates that this field does not exist. CMD1 and CMD3 represent command flits of 1DW length and 3DW length, respectively. The domain corresponding to CMD3 or CMD1 indicates the location where the command flit can be placed, and accordingly, the type of the domain is command flit. The type of the domain corresponding to L is data flit. The * in L(*) indicates the length limit of the domain corresponding to L, that is, the maximum length. The X in XL indicates that the total length of multiple data flits in this format does not exceed X. Accordingly, the length limit of the domain corresponding to XL is X-the length limit of all L. For Type2 corresponding to 13DW payload, the total length of Field1 and Field2 does not exceed 13. Accordingly, the maximum length of Field1 can be less than 13 to ensure that Field2 has space to accommodate data micropackets. DATA16 indicates that the length of the data flit can only be 16DW, and flit num indicates the number of flits that can be carried. Among them, MDNC indicates that M data flits and N command flits can be carried.

[0077] Optionally, the packet header includes a packet header information field and a reserved field, the packet header information field is used to store the packet header information, the packet header information includes the micro-packet length corresponding to each of the m micro-packets to be sent and the identifier of the virtual channel to which it belongs. Exemplarily, for Type 2 of the 45DW payload, Figure 5 FIG. 1 is a schematic diagram of a packet header provided by an embodiment of the present invention. Figure 5As shown, Length and len represent the length of the flit. Rsvd represents a reserved field. +0Byte, +1Byte, +2Byte, and +3Byte respectively represent what the 0th to 7th bits of the 0th, 1st, 2nd, and 3rd bytes of the header information of 1DW represent, that is, how the header information of 1DW is arranged. By way of example, taking the maximum length of a data flit as 18 as an example, 5 bits can be used to represent the length of the data flit, and taking the maximum length of a command flit as 3 as an example, 2 bits can be used to represent the length of the command flit. VC represents a virtual channel identifier. Taking the support of 8 virtual channels as an example, 3 bits can be used to represent the virtual channel identifier. In an embodiment of the present invention, by reserving sufficient bit fields in the header to distinguish between flits of different virtual channels, it is possible to support the transmission of data flits or command flits from multiple virtual channels.

[0078] It should be noted that for the m micro-packets to be sent that are combined into the same data packet, there may be no corresponding virtual channel. For example, for the Ack response packet and the Nak response packet, they are irrelevant to the virtual channel and do not have a corresponding virtual channel. Accordingly, the generation order can be empty, and the virtual channels to which these micro-packets to be sent belong in the packet header information are indicated as empty. In the embodiment of the present invention, there is no restriction on the order of these micro-packets to be sent in the data packet to be sent.

[0079] Optionally, the step of the receiver receiving the data packet to be sent as the target data packet may specifically include:

[0080] Step 1041: When the receiver receives data sent by the sender based on the transmission channel for the first time, it determines the packet start position, and determines the packet end position based on the received packet size information and the transmission channel width.

[0081] Step 1042: When the receiving party reaches the end position of the packet, it determines all the data received this time as one target data packet.

[0082] The method further includes: step S31, the receiver determines the start position of the next clock cycle of the packet end position as the packet start position of the next target data packet to continue receiving.

[0083] In an embodiment of the present invention, the data sent by the sender based on the transmission channel may be part of the data packet to be sent, and the receiver may confirm that both parties start to transmit a data packet to be sent when the data sent by the sender based on the transmission channel is received for the first time. Accordingly, the current moment may be used as the packet start position. Further, the packet size of the currently received data packet may be determined based on the received packet size information by a search circuit. Exemplarily, in the case where the packet format information is used as the packet size information for characterizing the packet size, the receiver may determine the packet size corresponding to the packet format information according to the preset format and packet size correspondence relationship. In the case where the packet size of the data packet to be sent is directly written in the header information as the packet size information, the receiver may directly read the packet size in the header information. Next, the data size processed by the sender in a single clock cycle may be determined based on the transmission channel width. Then, the ratio of the packet size to the data size processed in a single clock cycle is calculated to obtain the number of clock cycles required for the currently received data packet, and then the packet end position is determined based on the packet start position and the required number of clock cycles. For example, the packet end position may be obtained by calculating the sum of the time represented by the packet start position and the duration represented by the required number of clock cycles. The data received between the start position and the end position of the packet is a complete data packet to be sent.

[0084] Since the packet size is an integer multiple of the transmission channel width, the starting position and the ending position of the data packet are the starting position and the ending position of one or more clock cycles. In this way, it is equivalent to fixing the starting position and the ending position of the packet. The receiver can determine the ending position of the packet based on the received packet size information and the transmission channel width. In this way, the processing logic can be simplified, the transmission delay caused by the data packet extraction part can be reduced, and the processing overhead can be reduced. And because the sender often continues to send to the receiver, the starting position of the next clock cycle of the current packet end position can be determined as the packet starting position of the next target data packet to continue receiving. In this way, there is no need to perform the operation of searching for the beginning of the data packet again, thereby improving the processing efficiency of the receiver. At the same time, there is no need to set up multiple circuits for searching the beginning to identify the beginning and end of the packet, which can simplify the circuit logic.

[0085] Optionally, the step of processing the target data packet may specifically include:

[0086] Step 1043: The receiver determines the number of micro-packets in the target data packet and the micro-packet length corresponding to each micro-packet based on the packet format information and the packet header information of the target data packet.

[0087] Step 1044: The receiver extracts the micro-packets carried in the target data packet based on the number of micro-packets and the micro-packet lengths corresponding to each micro-packet to obtain a target micro-packet.

[0088] Step 1045: The receiver processes the target micropacket.

[0089] In an embodiment of the present invention, the receiver may first extract the packet format information from the packet format part of the target data packet, and then extract the header information from the packet header. Then, based on the number of data micro-packets and the number of command micro-packets carried in the packet format information of the target data packet, the number of data micro-packets and the number of command micro-packets included in the target data packet are obtained. Then, in the case where the micro-packet length corresponding to the micro-packet represents the length of the domain to which it belongs, the content corresponding to the domain to which each micro-packet belongs may be extracted from the data packet body part of the target data packet in sequence according to the micro-packet length corresponding to each micro-packet carried in the header information. The default characters filled in the content corresponding to the domain to which each micro-packet belongs are removed to obtain the actual content of each micro-packet, that is, the micro-packet carried by the target data packet. Among them, the micro-packet carried by the target data packet is the aforementioned micro-packet to be sent.

[0090] In the case where the micro-packet length corresponding to the micro-packet represents the actual length of the micro-packet, the receiver can determine the length of the domain to which each micro-packet belongs based on the micro-packet packaging format followed by the target data packet, that is, determine the range occupied by each carried micro-packet. Then, the content corresponding to the domain to which each micro-packet belongs is extracted from the data packet body of the target data packet in turn. Then, based on the actual length of the micro-packet, the actual content of each micro-packet is extracted from the content corresponding to the domain to which each micro-packet belongs, that is, the micro-packet carried by the target data packet is obtained.

[0091] In the embodiment of the present invention, the receiver can conveniently extract the micro-packet carried by the target data packet based on the packet format information and the packet header information of the target data packet, thereby ensuring the depacketization efficiency to a certain extent.

[0092] After obtaining the target micro-packets carried by the target data packet, the micro-packets may continue to be processed. Optionally, the step of the receiver processing the target micro-packets specifically includes:

[0093] Step 1045a: The receiver determines the identifier of the virtual channel to which each of the target micro-packets belongs based on the packet header information of the target data packet.

[0094] Step 1045b: The receiver determines the target micro-packets belonging to the same virtual channel based on the identifiers of the virtual channels to which the target micro-packets belong.

[0095] Step 1045c: the receiver adds the target micro-packets belonging to the same virtual channel to the queue to be processed corresponding to the virtual channel in sequence according to the arrangement order of the target micro-packets in the target data packet.

[0096] In an embodiment of the present invention, the receiver can extract the identifier of the virtual channel to which each target micro-packet carried by the target data packet belongs from the bit used to store the identifier of the virtual channel in the packet header information, and determine the target micro-packets with the same identifier of the virtual channel as target micro-packets belonging to the same virtual channel. Different queues to be processed can be set for different virtual channels, that is, the virtual channels in the receiver correspond to the queues to be processed one by one. It should be noted that for target micro-packets that do not have corresponding virtual channels, these target micro-packets can be added to the queue to be processed set for the DLP response packet. For target micro-packets belonging to the same virtual channel carried by the target data packet, these target micro-packets can be written into the queue to be processed corresponding to the virtual channel to which these target micro-packets belong in sequence according to the arrangement order. Since the arrangement order is consistent with the order in which the target micro-packets are generated, in this way, when the subsequent processing is performed based on the queue to be processed, the source end and the destination end can have the same request / response order on the same virtual channel.

[0097] It should be noted that for the pending queue corresponding to each virtual channel, the receiver can determine the represented request / response according to the micropackets stored in the pending queue, and execute the represented request / response accordingly, thereby achieving data consistency between the receiver and the sender.

[0098] Furthermore, flow control can be implemented within the virtual channel in a credit-based manner, and a credit token can be generated and returned by the receiver. The receiver can return a credit token for each virtual channel. For any virtual channel, the receiver can return a credit token for the virtual channel after processing a micro-packet in the queue to be processed corresponding to the virtual channel. Exemplarily, the receiver can check the queue depth of the queue to be processed corresponding to the virtual channel. When the queue depth is reduced, it means that the micro-packets in the queue to be processed corresponding to the virtual channel are processed, and accordingly, the credit token can be released. Furthermore, a flow control DLP packet can be sent to the sender at intervals of a preset duration to inform the receiver of how many credit tokens have been released. That is, the credit token is returned to the sender through the flow control DLP packet.

[0099] Optionally, the step of the sender obtaining the micro-packet to be sent may specifically include: for any of the virtual channels, determining the number of credit tokens corresponding to the virtual channel; the number of credit tokens is returned by the receiver. When the number of credit tokens corresponding to the virtual channel is greater than a preset number threshold, loading the micro-packet to be sent corresponding to the virtual channel from the queue to be sent corresponding to the virtual channel.

[0100] Among them, the number of credit tokens can represent the remaining processing capacity of the receiver for the micropackets corresponding to the virtual channel. The preset number threshold can be set according to the actual situation. For example, the preset number threshold can be equal to 0, or the preset number threshold can be 3, and so on. If the number of credit tokens corresponding to the virtual channel is greater than the preset number threshold, it can be determined that the receiver has sufficient cache to receive the micropackets corresponding to the virtual channel. Specifically, if there are multiple virtual channels corresponding to micropackets to be sent, then when the number of credit tokens corresponding to the virtual channel is greater than the preset number threshold, it can be determined that the micropackets to be sent corresponding to the virtual channel have arbitration authority and can participate in arbitration. Accordingly, the micropackets to be sent that have successfully been arbitrated can be loaded from the queue to be sent corresponding to the virtual channel. Taking the existence of n VCs as an example, Figure 6 is a schematic diagram of arbitration provided by an embodiment of the present invention, such as Figure 6 As shown, for the micropackets to be sent of the n VCs, the data flits and command flits in the micropackets to be sent of the n VCs can be arbitrated based on the data flit arbitrator and the command flit arbitrator respectively. For the VC that has successfully arbitrated, the flit corresponding to the VC can be used to combine the data packets to generate a data packet to be sent that carries the flit corresponding to the VC, thereby sending the flit corresponding to the VC first. Correspondingly, for the VC that has failed the arbitration, you can wait for the next arbitration. It should be noted that for the command flit generated by the DLP, a separate data channel can be used for arbitration.

[0101] Since the number of micro-packets specified by each micro-packet combination format is fixed, the package assembly based on these micro-packet combination formats can avoid the problem of excessive freedom, which leads to increased complexity and thus increased transmission delay. At the same time, the processing logic of package assembly and unpacking can be reduced. And because there are more large data micro-packets in the CPU consistent interconnection scenario, fewer overall credit tokens are required.

[0102] Furthermore, a retransmission buffer may be provided in the sender, and the data packets that have been sent may be stored in the retransmission buffer. Each data packet may be written into the retransmission buffer after being sent to the data link layer.

[0103] Optionally, in the embodiment of the present invention, the bus transmission level may include a protocol layer, a data link layer, and a physical layer. Among them, the physical layer is located at the bottom layer, the data link layer is located above the physical layer, and the protocol layer is located above the data link layer. Correspondingly, in the embodiment of the present invention, the sender may include a protocol layer, a data link layer, and a physical layer in sequence. Specifically, the m micro-packets to be sent are arranged in the order of generation, specifically, the m micro-packets to be sent are arranged in the order of generation at the protocol layer of the sender. The header information is generated at the protocol layer of the sender and added to the arranged m micro-packets to be sent, and the packet format information is generated at the data link layer of the sender and added to the arranged m micro-packets to be sent. The data packet to be sent to the receiver through the transmission channel is specifically sent to the receiver through the transmission channel at the physical layer of the sender. In the embodiment of the present invention, the receiver may include a protocol layer, a data link layer, and a physical layer in sequence. The data sent by the sender based on the transmission channel is received through the physical layer of the receiver. In the above, all the data received this time are determined as a target data packet, specifically, all the data received this time are determined as a target data packet at the data link layer of the receiver. Further, the target data packet is processed at the protocol layer of the receiver. In this way, the sender and the receiver process them respectively according to the bus transmission layer, which can ensure that the data packet is sent, received and processed normally.

[0104] Figure 7 It is a structural diagram of an inter-chip transmission provided by an embodiment of the present invention. Specifically, after the protocol layer of the sender combines the micro-packets to be sent (for example, putting the micro-packets to be sent into the data packet body and setting the packet header), it can enter the data link layer. STP generation and CRC generation are performed at the data link layer, that is, the packet sequence number, packet format information and CRC are added to obtain a complete data packet to be sent. The data packet to be sent is sent to the physical layer and written into the retransmission buffer at the same time. After the physical layer of the receiver receives it, it can confirm the data integrity based on CRC at the data link layer and process the data packet accordingly.

[0105] Among them, the multi-way selection of the sender is used to select whether to send a normally generated data packet to be sent or a data packet that has been sent before in the retransmission buffer. In the case where the DLP packet is directly sent as a data packet, the DLP extraction part in the receiver can be used to identify whether the data packet is the target data packet received this time or the generated DLP packet. Exemplarily, the special character set in the packet header can be extracted, and when the special character indicates a DLP packet, it is determined that the data packet is a generated DLP packet. Correspondingly, the receiver can send the DLP packet accordingly. The correct target data packet can be sent to the protocol layer for subsequent processing. The receiver can verify the data integrity based on the CRC of the data packet. Specifically, for each received target data packet, the receiver can detect whether the data content of the target data packet is consistent with the transmitted CRC, that is, detect the correctness of the target data packet based on CRC. Among them, if the CRC check is correct and the packet sequence number is continuous, the data packet is determined to be correct. On the contrary, if the CRC check is incorrect, or the packet sequence number is not continuous, the data packet is determined to be incorrect. Among them, the discontinuous packet sequence number can indicate that there is a problem of packet loss or repeated packet transmission.

[0106] Furthermore, a response DLP can be returned to the sender. For correct data packets, an ACK DLP (acknowledgement response packet) carrying the packet sequence numbers of these correct data packets can be sent to the sender after each preset time interval. For incorrect data packets, a NAK DLP (negative acknowledgement packet) can be directly returned. Accordingly, when the sender receives the ACK DLP, it clears the corresponding data packet in the retransmission buffer. When the NAK DLP is received, the sender retransmits from the position specified by the NAK DLP, for example, starting from the data packet indicated by the ACK DLP received before the NAK DLP, and retransmits the unconfirmed data packets in the retransmission buffer. Among them, when the retransmission buffer is full, the sender can retransmit from the starting position in the retransmission buffer. In this way, based on CRC checking and retransmission buffering, reliable data transmission can be ensured, and bandwidth utilization can be improved to a certain extent.

[0107] Reference Figure 8 , shows a block diagram of a data transmission device provided by an embodiment of the present invention, which is applied to an inter-chip interconnection system, wherein the inter-chip interconnection system includes a sender and a receiver, such as Figure 8 As shown, the data transmission device specifically includes:

[0108] A first acquisition module 201 located in the sender, used to acquire a micro-packet to be sent based on a command micro-packet and a data micro-packet;

[0109] The first generating module 202 located in the sender is used to generate a data packet to be sent whose packet size is an integer multiple of the transmission channel width based on the micro-packet to be sent and the number of micro-packets defined by the preset micro-packet combination format; the data packet to be sent includes the micro-packet to be sent and packet size information representing the packet size, and the transmission channel width is used to represent the data size processed by the sender in a single clock cycle;

[0110] A sending module 203 located in the sender, configured to send the data packet to be sent to the receiver via the transmission channel;

[0111] The processing module 204 located in the receiving party is used to receive the data packet to be sent as a target data packet and process the target data packet.

[0112] Optionally, the device further includes a second generating module located in the sender, the second generating module being configured to:

[0113] For any of the virtual channels, in response to a bus write response or a bus read request corresponding to the virtual channel, generating the command micro-packet based on components of the bus write response or the bus read request;

[0114] In response to a bus read response or a bus write request corresponding to the virtual channel, the command micro-packet is generated based on components of the bus read response or the bus write request, and the data micro-packet is generated based on read and write data corresponding to the bus read response or the bus write request.

[0115] Optionally, the device further comprises:

[0116] The second acquisition module located in the sender is used to acquire the DLP package and use the DLP package as the command micro-packet.

[0117] Optionally, the data packet size defined in each of the micro-packet combination formats is an integer multiple of the transmission channel width; the first generating module 202 is specifically configured to:

[0118] Determining a target combination format for the micro-packet to be sent from the micro-packet combination formats;

[0119] For any of the target combination formats, m micro-packets to be sent are selected from the micro-packets to be sent according to the target combination format; m is the number of micro-packets defined by the target combination format;

[0120] Determining a generation order of the micro-packets to be sent corresponding to the same virtual channel among the m micro-packets to be sent;

[0121] The m micro-packets to be sent are grouped based on the generation order to obtain a data packet to be sent; wherein the arrangement order of the micro-packets to be sent corresponding to the same virtual channel in the m micro-packets to be sent in the data packet to be sent matches the generation order.

[0122] Optionally, the first generating module 202 is further configured to:

[0123] According to the order of the number of defined data micro-packets from most to least, based on the maximum length and type of each micro-packet defined in each micro-packet combination format, the size and type of each micro-packet to be sent are matched;

[0124] Determining the matched micro-packet combination format as the target combination format;

[0125] Among them, there are differences in the number of micropackets of each type, the type of each micropacket, and the maximum length defined in different micropacket combination formats.

[0126] Optionally, the first generating module 202 is further configured to:

[0127] Generate packet header information based on the micro-packet length corresponding to each micro-packet to be sent in the m micro-packets to be sent and the identifier of the virtual channel to which it belongs;

[0128] Generate packet format information based on the number of the m micro-packets to be sent; the packet format information is used to represent the packet size;

[0129] The m micro-packets to be sent are arranged according to the generation order, and the packet header information and the packet format information are added to the arranged m micro-packets to be sent to generate one data packet to be sent.

[0130] Optionally, the data packet to be sent includes a packet sequence number, a packet format, a packet header, a data packet body and a cyclic redundancy check code; the data packet body includes the m micropackets to be sent; the packet header includes a packet header information field and a reserved field, the packet header information field is used to store the packet header information, the packet header information includes the micropacket length corresponding to each micropacket to be sent in the m micropackets to be sent and the identifier of the virtual channel to which it belongs; for any of the micropacket combination formats, the micropacket combination format is used to define the format of the data packet body; the micropacket combination format defines the maximum length of the micropacket that can be carried, the micropacket type and the number of micropackets.

[0131] Optionally, the preset micro-packet combination format includes micro-packet combination formats defining different data packet sizes, wherein, among different micro-packet combination formats defining the same data packet size, there is at least one difference in the number of micro-packets of the defined command micro-packets and the number of micro-packets of the defined data micro-packets.

[0132] Optionally, the processing module 204 is specifically configured to:

[0133] When receiving data sent by the sender based on the transmission channel for the first time, determining a packet start position, and determining a packet end position based on the received packet size information and the transmission channel width;

[0134] When the packet end position is reached, all the data received this time are determined as one target data packet;

[0135] The device also includes: a determination module located in the receiver, the determination module is used for: the receiver determines the start position of the next clock cycle of the packet end position as the packet start position of the next target data packet to continue receiving.

[0136] Optionally, the processing module 204 is further configured to:

[0137] Determine the number of micro-packets in the target data packet and the micro-packet length corresponding to each micro-packet based on the packet format information and the packet header information of the target data packet;

[0138] Based on the number of micro-packets and the micro-packet lengths corresponding to each of the micro-packets, extract the micro-packets carried in the target data packet to obtain a target micro-packet;

[0139] The target micro-packet is processed.

[0140] Optionally, the processing module 204 is further configured to:

[0141] Determine the identifier of the virtual channel to which each of the target micro-packets belongs based on the packet header information of the target data packet;

[0142] Based on the identifier of the virtual channel to which each of the target micro-packets belongs, determining the target micro-packets belonging to the same virtual channel;

[0143] The target micro-packets belonging to the same virtual channel are sequentially added to the queue to be processed corresponding to the virtual channel according to the arrangement order of the target micro-packets in the target data packet.

[0144] Optionally, the first generating module 202 is further configured to: arrange the m micro-packets to be sent according to the generation order at the protocol layer of the sender; the packet header information is generated at the protocol layer of the sender and added to the arranged m micro-packets to be sent, and the packet format information is generated at the data link layer of the sender and added to the arranged m micro-packets to be sent;

[0145] The sending module 203 is specifically configured to send the to-be-sent data packet to the receiving party through the transmission channel at the physical layer of the sending party.

[0146] Optionally, the data sent by the sender based on the transmission channel is received through the physical layer of the receiver; the processing module 204 is further specifically used to: determine all the data received this time as a target data packet at the data link layer of the receiver; the target data packet is processed at the protocol layer of the receiver.

[0147] In summary, in the data transmission device provided by the embodiment of the present invention, the module in the sender obtains the micropacket to be sent based on the command micropacket and the data micropacket. Based on the micropacket to be sent, according to the number of micropackets defined by the preset micropacket combination format, a data packet to be sent is generated whose packet size is an integer multiple of the transmission channel width; the data packet to be sent includes the micropacket to be sent and the packet size information representing the packet size, and the transmission channel width is used to represent the data size processed by the sender in a single clock cycle. The data packet to be sent is sent to the receiver through the transmission channel. The module in the receiver receives the data packet to be sent as the target data packet and processes the target data packet. In this way, the micropackets to be sent that need to be transmitted between chips can be combined into a data packet, thereby facilitating data transmission. Further, since the transmission channel width is used to represent the data size processed by the sender in a single clock cycle, in the embodiment of the present invention, by setting the packet size of the data packet to be sent as the transmission channel width, and setting the packet size information in the data packet to be sent, the data packet to be sent can be sent within an integer multiple of the clock cycles, which is convenient for the receiver to conveniently determine the transmission start and end positions of the data packet, thereby improving the data transmission efficiency to a certain extent.

[0148] Reference Fig. 9 , is a schematic diagram of the structure of an electronic device provided by an embodiment of the present invention. Fig. 9 As shown, the electronic device includes: a processor, a memory, a communication interface and a communication bus, wherein the processor, the memory and the communication interface communicate with each other through the communication bus; the memory is used to store at least one executable instruction, and the executable instruction enables the processor to execute the data transmission method of the above embodiment. The executable instructions can form a program.

[0149] An embodiment of the present invention provides a machine-readable medium having instructions stored thereon, which, when executed by one or more processors, enables the processors to execute the data transmission method of the aforementioned embodiment. Each embodiment in this specification is described in a progressive manner, and each embodiment focuses on the differences from other embodiments, and the same or similar parts between the embodiments can be referred to each other.

[0150] It will be appreciated by those skilled in the art that the embodiments of the present invention may be provided as methods, devices, or computer program products. Therefore, the embodiments of the present invention may take the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Moreover, the embodiments of the present invention may take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program codes.

[0151] It should be noted that all actions of acquiring signals, information or data in this application are carried out in compliance with the relevant data protection laws and policies of the country where they are located and with the authorization given by the owner of the corresponding device.

[0152] The embodiments of the present invention are described with reference to the flowcharts and / or block diagrams of the methods, terminal devices (systems), and computer program products according to the embodiments of the present invention. It should be understood that each process and / or block in the flowchart and / or block diagram, as well as the combination of the processes and / or blocks in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing terminal device to generate a machine, so that the instructions executed by the processor of the computer or other programmable data processing terminal device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.

[0153] These computer program instructions may also be stored in a computer readable memory capable of directing a computer or other programmable data processing terminal device to operate in a predictable manner, so that the instructions stored in the computer readable memory produce a manufactured product including an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.

[0154] These computer program instructions can also be loaded onto a computer or other programmable data processing terminal device so that a series of operating steps are executed on the computer or other programmable terminal device to produce a computer-implemented process, thereby providing instructions for implementing the process in the computer or other programmable terminal device. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.

[0155] Although the preferred embodiments of the present invention have been described, those skilled in the art may make additional changes and modifications to these embodiments once they have learned the basic creative concept. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments and all changes and modifications that fall within the scope of the embodiments of the present invention.

[0156] Finally, it should be noted that, in this article, relational terms such as first and second, etc. are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "include", "comprise" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or terminal device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or terminal device. In the absence of further restrictions, the elements defined by the sentence "comprise a ..." do not exclude the existence of other identical elements in the process, method, article or terminal device including the elements.

[0157] The above is a detailed introduction to a data transmission method, a data transmission device, an electronic device and one or more machine-readable media provided by the present invention. Specific examples are used in this article to illustrate the principles and implementation methods of the present invention. The description of the above embodiments is only used to help understand the method of the present invention and its core idea; at the same time, for a person skilled in the art, according to the idea of ​​the present invention, there will be changes in the specific implementation method and application scope. In summary, the content of this specification should not be understood as a limitation on the present invention.

Claims

1. A data transmission method, characterized in that: Applied to an inter-chip interconnection system, the inter-chip interconnection system includes a sender and a receiver, and the method includes: The sender obtains the micro-packet to be sent based on the command micro-packet and the data micro-packet; The sender generates a data packet to be sent whose packet size is an integer multiple of the transmission channel width based on the micro-packet to be sent and the number of micro-packets defined in a preset micro-packet combination format; the data packet to be sent includes the micro-packet to be sent and packet size information representing the packet size, and the transmission channel width is used to represent the data size processed by the sender in a single clock cycle; The sender sends the data packet to be sent to the receiver via the transmission channel; The receiver receives the data packet to be sent as a target data packet and processes the target data packet.

2. The method according to claim 1, characterized in that Before the sender obtains the micro-packet to be sent based on the command micro-packet and the data micro-packet, the method further includes: For any of the virtual channels, the sender generates the command micro-packet based on components of the bus write response or bus read request in response to a bus write response or bus read request corresponding to the virtual channel; The sender generates the command micro-packet based on the components of the bus read response or bus write request in response to the bus read response or bus write request corresponding to the virtual channel, and generates the data micro-packet based on the read and write data corresponding to the bus read response or bus write request.

3. The method according to claim 2, characterized in that The method further comprises: The sender obtains the DLP packet and uses the DLP packet as the command micro-packet.

4. The method according to claim 1, characterized in that: The data packet sizes defined in each of the micro-packet combination formats are all integer multiples of the transmission channel width; the sender generates a data packet to be sent whose packet size is an integer multiple of the transmission channel width based on the micro-packets to be sent and according to the number of micro-packets defined in the preset micro-packet combination format, including: The sender determines a target combination format for the micro-packet to be sent from the micro-packet combination format; For any of the target combination formats, the sender selects m micro-packets to be sent from the micro-packets to be sent according to the target combination format; m is the number of micro-packets defined by the target combination format; The sender determines the generation order of the micro-packets to be sent corresponding to the same virtual channel among the m micro-packets to be sent; The sender groups the m micro-packets to be sent based on the generation order to obtain a data packet to be sent; wherein the arrangement order of the micro-packets to be sent corresponding to the same virtual channel among the m micro-packets to be sent in the data packet to be sent matches the generation order.

5. The method according to claim 4, characterized in that The sender determines a target combination format for the micro-packet to be sent from the micro-packet combination format, including: The sender matches the size and type of each micro-packet to be sent with the size and type of each micro-packet defined in each micro-packet combination format in the order of the number of defined data micro-packets from most to least; The sender determines the matching micro-packet combination format as the target combination format; Among them, there are differences in the number of micropackets of each type, the type of each micropacket, and the maximum length defined in different micropacket combination formats.

6. The method according to claim 4, characterized in that The sender groups the m micro-packets to be sent based on the generation order to obtain a data packet to be sent, including: The sender generates packet header information based on the micro-packet length corresponding to each micro-packet to be sent in the m micro-packets to be sent and the identifier of the virtual channel to which it belongs; The sender generates packet format information based on the number of the m micro-packets to be sent; the packet format information is used to represent the packet size; The sender arranges the m micro-packets to be sent according to the generation order, and adds the packet header information and the packet format information to the arranged m micro-packets to be sent, so as to generate one data packet to be sent.

7. The method according to claim 6, characterized in that The data packet to be sent includes a packet sequence number, a packet format, a packet header, a data packet body, and a cyclic redundancy check code; the data packet body includes the m micro packets to be sent; The packet header includes a packet header information field and a reserved field, the packet header information field is used to store the packet header information, the packet header information includes the micro-packet length corresponding to each of the m micro-packets to be sent and the identifier of the virtual channel to which it belongs; For any of the micro-packet combination formats, the micro-packet combination format is used to define the format of the data body; the micro-packet combination format defines the maximum length of the micro-packet that can be carried, the micro-packet type and the number of micro-packets.

8. The method according to any one of claims 1 to 7, characterized in that: The preset micro-packet combination format includes micro-packet combination formats defining different data packet sizes, wherein in different micro-packet combination formats defining the same data packet size, there is at least one difference in the number of micro-packets of the defined command micro-packets and the number of micro-packets of the defined data micro-packets.

9. The method according to any one of claims 1 to 6, characterized in that: The receiving party receives the data packet to be sent as a target data packet, including: The receiving party determines the packet start position when first receiving the data sent by the sending party based on the transmission channel, and determines the packet end position based on the received packet size information and the transmission channel width; When the receiving party reaches the end position of the packet, the receiving party determines all the data received this time as one target data packet; The method further includes: the receiver determines the start position of the next clock cycle of the packet end position as the packet start position of the next target data packet to continue receiving.

10. The method according to any one of claims 1 to 6, characterized in that: The processing of the target data packet comprises: The receiving party determines the number of micro-packets in the target data packet and the micro-packet length corresponding to each micro-packet based on the packet format information and the packet header information of the target data packet; The receiving party extracts the micro-packets carried in the target data packet based on the number of micro-packets and the micro-packet lengths corresponding to each of the micro-packets to obtain the target micro-packets; The receiver processes the target micropacket.

11. The method according to claim 10, characterized in that The receiving party processes the target micro-packet, including: The receiving party determines the identifier of the virtual channel to which each of the target micro-packets belongs based on the packet header information of the target data packet; The receiving party determines the target micro-packets belonging to the same virtual channel based on the identifiers of the virtual channels to which the target micro-packets belong; The receiver sequentially adds the target micro-packets belonging to the same virtual channel to a queue to be processed corresponding to the virtual channel according to the arrangement order of the target micro-packets in the target data packet.

12. The method according to claim 6, characterized in that The step of arranging the m micropackets to be sent according to the generation order includes: The m micro-packets to be sent are arranged at the protocol layer of the sender according to the generation order; the packet header information is generated at the protocol layer of the sender and added to the arranged m micro-packets to be sent, and the packet format information is generated at the data link layer of the sender and added to the arranged m micro-packets to be sent; The sending the to-be-sent data packet to the receiving party through the transmission channel comprises: The to-be-sent data packet is sent to the receiving party through the transmission channel at the physical layer of the sending party.

13. The method according to claim 9, characterized in that The data sent by the sender based on the transmission channel is received through the physical layer of the receiver; Determining all the data received this time as one target data packet comprises: determining all the data received this time as one target data packet at the data link layer of the receiver; The target data packet is processed at the protocol layer of the receiver.

14. A data transmission device, characterized in that: Applied to an inter-chip interconnection system, the inter-chip interconnection system includes a sender and a receiver, and the device includes: A first acquisition module located in the sender, used for acquiring a micro-packet to be sent based on a command micro-packet and a data micro-packet; A first generating module located in the sender is used to generate a data packet to be sent whose packet size is an integer multiple of the transmission channel width based on the micro-packet to be sent and the number of micro-packets defined by a preset micro-packet combination format; the data packet to be sent includes the micro-packet to be sent and packet size information representing the packet size, and the transmission channel width is used to represent the data size processed by the sender in a single clock cycle; A sending module located in the sender, used for sending the data packet to be sent to the receiver through the transmission channel; The processing module located in the receiver is used to receive the data packet to be sent as a target data packet and process the target data packet.

15. An electronic device, characterized in that: include: A processor, a memory, a communication interface and a communication bus, wherein the processor, the memory and the communication interface communicate with each other via the communication bus; The memory is used to store executable instructions, and the executable instructions enable the processor to execute the method according to any one of claims 1 to 13.

16. One or more machine-readable media, characterized in that Instructions are stored thereon, which, when executed by one or more processors, cause the processors to perform the method as claimed in any one of claims 1 to 13.

Citation Information

Cited By

  • Data transmission method and related equipment

    CN120561048A