A data transmission system, method, electronic device, and storage medium

By splitting the smallest data unit into custom protocol packets in the on-chip network and reassembling them according to the preset network bus bandwidth, the problem of data bit width waste in high-bandwidth transmission is solved, and data transmission efficiency is improved.

CN120407510BActive Publication Date: 2025-10-31SHANDONG YUNHAI GUOCHUANG CLOUD COMPUTING EQUIP IND INNOVATION CENT CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202510907478.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-07-02
Publication Date
2025-10-31
Estimated Expiration
2045-07-02

AI Technical Summary

Technical Problem

In on-chip networks, high-bandwidth transmission results in wasted data bandwidth and reduced data transmission efficiency due to the small effective bit width of the smallest data unit and the large network bus bandwidth.

Method used

By splitting the smallest data unit into custom protocol packets according to transaction combination type and caching them in the direction input buffer, the custom protocol packets to be output are filtered according to the protocol packet header and data transmission constraints, and finally reassembled according to the preset network bus bandwidth, the effective bit width of the target data unit is ensured to match the bus bandwidth.

Benefits of technology

This avoids wasting data bit width in high-bandwidth transmission of on-chip networks and improves data transmission efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120407510B_ABST
    Figure CN120407510B_ABST
Patent Text Reader

Abstract

This application discloses a data transmission system, method, electronic device, and storage medium, relating to the field of computer technology. The system architecture is designed according to the bus transmission protocol of an on-chip network (BTC), ensuring its compatibility with the BTC bus transmission protocol. This allows for differentiation of bus transmission service types. The smallest data unit is split into custom protocol packets based on transaction combination types and cached in a directional input buffer. This facilitates the free combination of protocol packets of different transaction types as needed. Then, custom protocol packets to be output are filtered and channels are selected, enabling the directional output buffer to cache these packets. Finally, the custom protocol packets to be output in the directional output buffer are reassembled according to a preset network bus bandwidth, ensuring that the effective bit width of the target data unit matches the preset network bus bandwidth. This avoids wasting data bit width in high-bandwidth BTC transmission, thereby improving the data transmission efficiency of the BTC.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computer technology, and in particular to a data transmission system, method, electronic device, and storage medium. Background Technology

[0002] On-chip mesh is a multi-core interconnect architecture often used in multi-core processors. On-chip mesh includes multiple routers that correspond one-to-one with the processor cores, so that data transmission between the processor cores can be achieved through the routers.

[0003] In related technologies, data transmission in routers of on-chip networks can be divided into several data packets, each containing several fixed-length minimum data units (flits), and each minimum data unit contains transaction data. However, since the types of transactions initiated by the processor cores connected to each router as transaction endpoints are diverse, when the effective bit width of the minimum data unit is small, while the network bus bandwidth between routers in the on-chip network is large, it will result in a waste of data bit width in high-bandwidth transmission, reducing the data transmission efficiency of the on-chip network. Summary of the Invention

[0004] This application provides a data transmission system, method, electronic device, and storage medium to at least solve the problem in the related art that causes waste of data bit width in high-bandwidth transmission of on-chip networks and reduces the data transmission efficiency of on-chip networks.

[0005] This application provides a data transmission system, including: a direction input module, an intermediate module, and a direction output module;

[0006] The direction input module is used to obtain the smallest data unit sent by the neighboring router, split the smallest data unit according to the transaction combination type of the smallest data unit, so as to split the smallest data unit into multiple custom protocol packets, and cache each custom protocol packet into the direction input buffer according to the transaction type corresponding to each custom protocol packet.

[0007] The intermediate module is used to determine, based on the protocol packet headers and data transmission constraint information of each custom protocol packet in the direction input buffer, that if any custom protocol packet to be output in the direction input buffer is directional transmission data, then it performs channel selection on the direction input buffer to buffer the custom protocol packets to be output in the direction input buffer into the direction output buffer.

[0008] The directional output module is used to reassemble the custom protocol packets to be output in the directional output buffer according to the preset network bus bandwidth to obtain the target data unit, so as to transmit the target data unit to the destination node through the target directional output port.

[0009] This application also provides a data transmission method, applied to any of the above-mentioned data transmission systems, the method comprising:

[0010] Obtain the smallest data unit sent by the neighboring router;

[0011] Based on the transaction combination type of the smallest data unit, the original data is split into multiple custom protocol packets.

[0012] Based on the transaction type corresponding to each custom protocol packet, cache each custom protocol packet in the direction input buffer;

[0013] Based on the protocol header and data transmission constraint information of each custom protocol packet in the direction input buffer, if any custom protocol packet to be output in the direction input buffer is determined to be directional transmission data, channel selection is performed on the direction input buffer to buffer the custom protocol packets to be output in the direction input buffer into the direction output buffer.

[0014] According to the preset network bus bandwidth, the custom protocol packets to be output in the direction output buffer are reassembled to obtain the target data unit, which is then transmitted to the destination node through the target direction output port.

[0015] This application also provides a data transmission apparatus, applied to any of the above-mentioned data transmission systems, the apparatus comprising:

[0016] The acquisition module is used to acquire the smallest data unit sent by neighboring routers;

[0017] The splitting module is used to split the smallest data unit into multiple custom protocol packets based on the transaction combination type of the smallest data unit.

[0018] The caching module is used to cache each custom protocol packet to the direction input buffer according to the transaction type corresponding to each custom protocol packet;

[0019] The gating module is used to perform channel gating on the direction input buffer when any custom protocol packet to be output in the direction input buffer is determined to be directional transmission data based on the protocol packet header and data transmission constraint information of each custom protocol packet in the direction input buffer, so as to buffer the custom protocol packet to be output in the direction input buffer to the direction output buffer.

[0020] The transmission module is used to reassemble the custom protocol packets to be output in the direction output buffer according to the preset network bus bandwidth to obtain the target data unit, so as to transmit the target data unit to the destination node through the target direction output port.

[0021] This application also provides an electronic device, including: a memory for storing a computer program; and a processor for implementing the steps of any of the above-described data transmission methods when executing the computer program.

[0022] This application also provides a computer-readable storage medium storing a computer program, wherein the computer program, when executed by a processor, implements the steps of any of the above-described data transmission methods.

[0023] This application also provides a computer program product, including a computer program that, when executed by a processor, implements the steps of any of the above-described data transmission methods.

[0024] This application achieves system architecture matching the on-chip network's bus transmission protocol by designing the system architecture accordingly. This allows for differentiation of bus transmission service types, enabling the smallest data unit to be split into custom protocol packets based on transaction combination types and cached in the direction input buffer. This facilitates the free combination of protocol packets of different transaction types as needed. The custom protocol packets to be output are selected and channels are chosen based on the protocol packet header and data transmission constraints. This achieves caching of custom protocol packets to be output in the direction output buffer. Finally, the custom protocol packets to be output in the direction output buffer are reassembled according to the preset network bus bandwidth, ensuring that the effective bit width of the target data unit matches the preset network bus bandwidth. This avoids wasting data bit width in high-bandwidth transmission of the on-chip network, thereby improving the data transmission efficiency of the on-chip network. Attached Figure Description

[0025] To more clearly illustrate the embodiments of this application, the accompanying drawings used in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0026] Figure 1 A schematic diagram of an exemplary on-chip network provided for embodiments of this application;

[0027] Figure 2 This is a schematic diagram of the interaction flow of the data transmission system provided in the embodiments of this application;

[0028] Figure 3 This is a schematic diagram of the structure of the data transmission system provided in the embodiments of this application;

[0029] Figure 4 This is a schematic diagram of the structure of an exemplary target data unit provided in an embodiment of this application;

[0030] Figure 5A flowchart illustrating the data transmission method provided in an embodiment of this application;

[0031] Figure 6 This is a schematic diagram of the overall flow of the data transmission method provided in the embodiments of this application;

[0032] Figure 7 This is a schematic diagram of the structure of the data transmission device provided in the embodiments of this application;

[0033] Figure 8 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application. Detailed Implementation

[0034] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the protection scope of this application.

[0035] It should be noted that, in the description of this application, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. The terms "first," "second," etc., in this application are used to distinguish similar objects and are not used to describe a specific order or sequence.

[0036] like Figure 1 The diagram shown is an exemplary on-chip network structure provided in the embodiments of this application. The on-chip network is a multi-core (multi-module) interconnection architecture that provides richer routing paths, more efficient data transmission, and better system scalability compared to traditional bus systems. Figure 1 This is a 3×3 2D Mesh on-chip network, where R stands for Router, PE (processing element) stands for Processing Unit, and the data processing unit is the transaction terminal.

[0037] In an on-chip network, messages can be divided into several packets. One packet contains several fixed-length minimum data units (flits). A flit consists of a header flit, a body flit, and a tail flit. The header flit contains the flit type, destination node, port, etc.; the body flit contains the data body; and the tail flit indicates the end of the packet. One packet contains one header flit, several body flits, and one tail flit.

[0038] In practical applications, system-transmitted packages and flits generally belong to different transaction types. For example, the AMBACHI protocol has transaction types such as request, response, listen, and data. Different transaction types generally have different data packet lengths. Therefore, when the bus transmission bit width is large (greater than 512 bits), one flit contains only a single transaction data, and its data bit width is often much smaller than 512, resulting in a reduced effective load rate and wasted bandwidth.

[0039] Furthermore, although the router architecture and data packet structure described above are simple and easy to implement, in actual systems, the on-chip network processor architecture is complex, the PE attributes of different nodes are different, the message types in the system are complex, and there are many different types of transactions with varying quantities. The existing on-chip network data transmission methods described above cannot adapt to the complex processor architecture and bus protocols.

[0040] To address the aforementioned technical problems, embodiments of this application provide a data transmission system, method, electronic device, and storage medium. The system includes a direction input module, an intermediate module, and a direction output module. The direction input module acquires the smallest data unit sent by adjacent routers, splits the smallest data unit into multiple custom protocol packets based on the transaction combination type of the smallest data unit, and caches each custom protocol packet in a direction input buffer according to the transaction type corresponding to each custom protocol packet. The intermediate module, based on the protocol headers and data transmission constraint information of each custom protocol packet in the direction input buffer, determines that any custom protocol packet to be output in the direction input buffer is directional transmission data. If such a packet is determined to be directional transmission data, the intermediate module performs channel selection in the direction input buffer, caching the custom protocol packets to be output in the direction input buffer into a direction output buffer. The direction output module reassembles the custom protocol packets to be output in the direction output buffer according to a preset network bus bandwidth to obtain a target data unit, which is then transmitted to the destination node through the target direction output port. The system provided by the above solution splits the smallest data unit into custom protocol packets according to transaction combination type and caches them in the direction input buffer. This allows protocol packets of different transaction types to be freely combined according to requirements. The system filters the custom protocol packets to be output and selects the channel based on the protocol packet header and data transmission constraints. This achieves the caching of custom protocol packets to be output in the direction output buffer. Finally, the custom protocol packets to be output in the direction output buffer are reassembled according to the preset network bus bandwidth. This ensures that the effective bit width of the target data unit matches the preset network bus bandwidth, avoiding the waste of data bit width in high-bandwidth transmission of the on-chip network, thereby improving the data transmission efficiency of the on-chip network.

[0041] To enable those skilled in the art to better understand the present application, the present application will be further described in detail below with reference to the accompanying drawings and specific embodiments.

[0042] This application provides a data transmission system for efficient data transmission between nodes in an on-chip network, including router nodes and transaction endpoint nodes. The data transmission system provided in this application is applied to router nodes in an on-chip network.

[0043] like Figure 2 The diagram shown is an interactive flow diagram of the data transmission system provided in this application embodiment. The data transmission system includes: a direction input module, an intermediate module, and a direction output module.

[0044] The directional input module is used to acquire the smallest data unit sent by the adjacent router, split the smallest data unit into multiple custom protocol packets according to the transaction combination type of the smallest data unit, and cache each custom protocol packet in the directional input buffer according to the transaction type corresponding to each custom protocol packet. The intermediate module is used to determine the directional input buffer channel selection when any custom protocol packet to be output in the directional input buffer is directional transmission data, based on the protocol packet header and data transmission constraint information of each custom protocol packet in the directional input buffer, so as to cache the custom protocol packet to be output in the directional input buffer in the directional output buffer. The directional output module is used to reassemble the custom protocol packets to be output in the directional output buffer according to the preset network bus bandwidth to obtain the target data unit, so as to transmit the target data unit to the destination node through the target directional output port.

[0045] The smallest data unit is the flit. The transaction combination type is used to characterize which transaction types of data are included in the flit. Transaction types are at least divided into four types: request, response, listener, and data.

[0046] It should be noted that in on-chip networks, the destination node for directional data transmission is not the local transaction terminal directly connected to this router node. That is, the data needs to be sent to the neighboring router through this router node. The communication standard of the data communication protocol between routers is based on the smallest data unit (flit) as the transmission unit. Therefore, it is necessary to reassemble the target data unit based on the data packet assembly module.

[0047] Specifically, the direction input module receives the smallest data units (flits) sent by adjacent routers through the direction input port. Each flit corresponds to at least one transaction combination type. By parsing the transaction combination type of the flit, the flit is split into several independent custom protocol packets. For example, a flit containing a request transaction (REQ) and a data transaction (DAT) (e.g., transaction combination type 1 × REQ + 1 × DAT) will be split into two independent custom protocol packets: a REQ custom protocol packet and a DAT custom protocol packet. Based on the transaction type corresponding to each custom protocol packet, each custom protocol packet is cached in the direction input buffer, with custom protocol packets of different transaction types cached separately in the direction input buffer.

[0048] For example, the header of the smallest data unit includes the transaction composition type and its encoding. The correspondence between the encoding and the transaction composition type is shown in Table 1 below:

[0049] Table 1

[0050]

[0051] Specifically, the type of custom protocol packets included in the smallest data unit can be determined based on the encoding recorded in the header of the smallest data unit.

[0052] Furthermore, the intermediate module reads the header information of the custom protocol packets in the direction input buffer and, combined with data transmission constraints, calculates the optimal transmission path for each custom protocol packet. The optimal transmission path includes the target output port. The router includes multiple direction output ports for connecting to different adjacent routers. The module further filters the custom protocol packets to be output in the direction input buffer. If the target output port of any custom protocol packet to be output is a direction output port, the custom protocol packet to be output is determined to be directional transmission data. Then, channel selection is performed on the direction input buffer to buffer the custom protocol packets to be output from the direction input buffer to the direction output buffer.

[0053] Furthermore, the direction input module includes a direction input buffer. Based on a preset network bus bandwidth (e.g., 512 bits), the direction input module selects multiple custom protocol packets to be output from the direction output buffer and reassembles them into a target data unit. This ensures that the effective bit width of the reassembled target data unit is equal to or close to the preset network bus bandwidth, thus matching the effective bit width of the target data unit with the preset network bus bandwidth. This avoids wasting the data bit width of the on-chip network in high-bandwidth transmission, thereby improving the data transmission efficiency of the on-chip network.

[0054] The preset network bus bandwidth can be determined according to the bus transmission protocol of the on-chip network, such as AMBA or CHI. Specifically, the effective bit width utilization baseline of flit can be preset. Then, based on the preset network bus bandwidth and the effective bit width utilization baseline of flit, the target data unit is reorganized so that the effective bit width of the target data unit matches the preset network bus bandwidth, ensuring efficient data transmission.

[0055] The custom protocol packets for each transaction type contain different fields with varying bit widths. The protocol data packet widths for REQ, RSP, SNP, and DAT custom protocol packets are 155 bits, 65 bits, 119 bits, and 402 bits, respectively. The system cache line data size is 64 bytes, and the DATA field in the DAT custom protocol packet has a bit width of 256 bits. Transmitting one cache line requires two DAT custom protocol packets.

[0056] The data transmission system provided in this application can be applied to Arm and RISC-V core many-core processors, with each processor core serving as a PE node. It can also be extended to other on-chip network systems with different topologies, such as 3Dmesh, Ring, and other NoC topologies, which can improve bus bandwidth utilization and data transmission efficiency.

[0057] Based on the above embodiments, as one implementable approach, in one embodiment, the direction input module includes: a data packet splitting module, used for:

[0058] Based on the transaction type of the smallest data unit, the smallest data unit is split into multiple custom protocol packets. Each custom protocol packet is then cached in the direction input buffer according to its corresponding transaction type.

[0059] The custom protocol packet includes a protocol header and a protocol data packet. The protocol header includes transaction type, timing information and transmission information. The data packet splitting module is also called the protocol packet splitting module of the smallest data unit.

[0060] It should be noted that the timing information includes the transmission sequence number, timestamp, number of custom protocol packets within the same transaction, and sequence number of the custom protocol packets within the same transaction. The transmission information includes the destination node address, port code, D2D code, and D2D credit value. The destination node address indicates the location of the final router node (destination node) to which the data packet (custom protocol packet) is transmitted. The port code indicates the PE unit (destination transaction end) of the destination node. The number of custom packets within the same transaction indicates the total number of protocol packets transmitted within the same transaction. The sequence number of the custom protocol packets within the same transaction indicates the sequence number of the protocol packets transmitted within the same transaction. The D2D field indicates the encoding of the area where the destination node is located. The on-chip network consists of multiple areas, and data transmission between areas needs to be implemented through the D2D interface. The D2D credit value characterizes the data packet transmission capability of the D2D interface. The protocol header may also include user-defined fields, which are used to record fields defined by the user (such as verification information).

[0061] The header width of the custom protocol packet is 16 bits, including 1 bit for D2D, 4 bits for D2D credit value, 6 bits for node coordinates (destination node address), 2 bits for port code, 1 bit for packet number, 1 bit for packet sequence number, and 1 bit for user-defined field. Based on the protocol data packet widths mentioned above, the total widths of the REQ, RSP, SNP, and DAT custom protocol packets are 171 bits, 81 bits, 135 bits, and 418 bits, respectively.

[0062] Based on the above embodiments, as one implementable approach, in one embodiment, the data packet splitting module is specifically used for:

[0063] Based on the transaction type corresponding to each custom protocol packet, each custom protocol packet is cached in the corresponding direction input virtual channel.

[0064] The direction input buffer includes multiple direction input virtual channels, and each direction input virtual channel corresponds one-to-one with a transaction type.

[0065] Directional input virtual channels can be categorized based on different protocols. For example, based on the CHI protocol, the directional input buffer can be divided into four virtual channels: REQ (Request Virtual Channel), RSP (Response Virtual Channel), SNP (Listen Virtual Channel), and DAT (Data Virtual Channel). The depth of each virtual channel is determined by the bit width of the custom protocol packet for each transaction type. For instance, the REQ, RSP, SNP, and DAT virtual channels in the input buffer can hold 4, 6, 4, and 4 custom protocol packets, respectively.

[0066] Based on the above embodiments, such as Figure 3 The diagram shown is a structural schematic of a data transmission system provided in an embodiment of this application. As one possible implementation, in one embodiment, the intermediate module includes:

[0067] The routing calculation module is used to determine the target routing information of each custom protocol packet based on the protocol packet header and data transmission constraint information of each custom protocol packet in the direction input buffer, and then send the target routing information to the arbitration allocation module.

[0068] The arbitration allocation module is used to select the custom protocol packet to be output from the direction input buffer according to the target routing information of each custom protocol packet, and to perform channel selection on the direction input buffer according to the direction input virtual channel where the custom protocol packet to be output is located, so as to cache the custom protocol packet to be output from the direction input virtual channel to the direction output buffer.

[0069] The direction input buffer includes multiple direction input virtual channels.

[0070] Specifically, in one embodiment, the routing calculation module is specifically used to determine the target direction output port and transmission path of any custom protocol packet in the direction input buffer based on the transmission information represented by the protocol packet header of the custom protocol packet; and to determine the target routing information of the custom protocol packet based on the data transmission constraint information and the target direction output port and transmission path of the custom protocol packet.

[0071] The header of the custom protocol packet must include at least the destination node address, and the data transmission constraint information must include at least the remaining space of each direction input virtual channel in the direction input buffer and the remaining space of each direction output virtual channel in the direction output buffer.

[0072] Specifically, when the direction input buffer receives a custom protocol packet, the routing calculation module parses the protocol header of each packet. First, it determines the transmission path based on the destination node address represented by the transmission information, and then determines the target direction output port corresponding to that transmission path. This generates corresponding target routing information, which includes at least the target direction output port. The arbitration allocation module, based on the target routing information of each custom protocol packet and considering the remaining space of each direction input virtual channel in the direction input buffer and the remaining space of each direction output virtual channel in the direction output buffer, determines which direction input virtual channel meets the transmission conditions. Then, it selects the custom protocol packet with the highest priority (e.g., the earliest cached in that direction input virtual channel) from the direction input virtual channels that meet the transmission conditions as the custom protocol packet to be output. To avoid contention at the target direction output ports, when multiple custom protocol packets in the direction input buffer are all located at direction output port 1, the arbitration allocation module can arbitrate which custom protocol packet to send first. That is, the custom protocol packet to be output is selected in the direction input buffer, and then the direction input buffer is channel-selected according to the direction input virtual channel where the custom protocol packet to be output is located, so as to buffer the custom protocol packet to be output in the direction input virtual channel into the direction output buffer.

[0073] Specifically, in one embodiment, the arbitration allocation module is specifically used to: for any custom protocol packet, determine whether the custom protocol packet meets the output conditions based on the target routing information of the custom protocol packet; take the custom protocol packet that meets the output conditions and has the highest output priority as the custom protocol packet to be output; connect the data transmission channel between the direction input virtual channel where the custom protocol packet to be output is currently located and the corresponding direction output virtual channel, so as to cache the custom protocol packet to be output in the direction input virtual channel to the direction output virtual channel.

[0074] The target routing information can actually include the destination node, credit value, remaining capacity of the virtual channel in the direction input and output buffers, and fault information.

[0075] Specifically, for each custom protocol packet, the arbitration allocation module can determine whether the output conditions are met based on its target routing information according to preset output condition judgment rules. For example, if the communication link between this router node and the destination node is normal, then the custom protocol packet is determined to meet the output conditions. The specific judgment rules can be set according to the actual application situation, and this application embodiment does not limit them.

[0076] When multiple custom protocol packets meet the output conditions, the arbitration allocation module can sort them according to their output priority. The output priority is usually determined based on factors such as the transaction type, cache time, urgency, and service level of the protocol packets. Finally, the protocol packet with the highest priority will be selected as the custom protocol packet to be output.

[0077] Specifically, in one embodiment, the arbitration allocation module includes:

[0078] An arbitrator is used to perform priority arbitration on multiple candidate custom protocol packets when multiple candidate custom protocol packets that meet the output conditions are determined, so as to select the candidate custom protocol packet with the highest priority as the custom protocol packet to be output.

[0079] The distributor is used to configure the crossbar switch based on the arbitrator's filtering results for the custom protocol packets to be output;

[0080] A cross switch is used to connect the data transmission channels between the current direction input virtual channel and the corresponding direction output virtual channel of the custom protocol packet to be output, according to the configuration results of the distributor.

[0081] Specifically, the arbitrator selects the directional input virtual channel (virtual channel) where the custom protocol packet to be output is currently located based on the routing information of the custom protocol packet to be output, causing the custom protocol packet (custom protocol packet to be output) in the selected channel to enter the crossbar switch. Based on the allocator's configuration results (routing information and arbitration results), the crossbar switch maps the input port of each custom protocol packet to an output port. That is, when the output port is a directional output port, it connects the data transmission channel between the directional input virtual channel where the custom protocol packet to be output is currently located and the corresponding directional output virtual channel, so as to transmit the custom protocol packet to be output to the directional output virtual channel. In other words, the custom protocol packet to be output enters the virtual channel (directional output virtual channel) of the mapped local output port or the directional output port buffer through the crossbar switch.

[0082] The number of local output ports is the same as the number of local input ports. Local output ports are paired with local input ports to connect to the local PE (PE, local transaction endpoint). The data bit width of the local output port is determined based on the custom protocol packet bit width. The local output port outputs the custom protocol packets to the PE (local transaction endpoint) it is connected to.

[0083] Specifically, in one embodiment, the intermediate module further includes:

[0084] The credit management module is used to obtain the credit values ​​of each channel of neighboring routers, the remaining space of each directional input virtual channel in the directional input buffer, and the remaining space of each directional output virtual channel in the directional output buffer; based on the remaining space of each directional input virtual channel in the directional input buffer and the remaining space of each directional output virtual channel in the directional output buffer, it determines the credit value of each channel of the local router; and sends the credit values ​​of each channel of neighboring routers and the credit values ​​of each channel of the local router to the routing calculation module.

[0085] The data transmission constraint information includes at least the credit values ​​of each channel of the adjacent router and the credit values ​​of each channel of the current router.

[0086] Specifically, the credit management module includes several credit counters used to collect credit values ​​for each channel of the nearest neighboring routers, collect the remaining capacity of the local node's input and output buffers (the remaining space of each directional input virtual channel in the directional input buffer and the remaining space of each directional output virtual channel in the directional output buffer), calculate and output the credit value of each channel. Here, a channel refers to the credit value of the virtual channel (directional input virtual channel and directional output virtual channel) corresponding to a single transaction type, and the credit value is positively correlated with the remaining space of the virtual channel.

[0087] Specifically, the routing calculation module can determine the data transmission capabilities of the local router node and neighboring routers for custom protocol packets of various transaction types based on the credit values ​​of each channel of the neighboring routers and the credit values ​​of each channel of the local router.

[0088] Specifically, in one embodiment, the intermediate module further includes:

[0089] The fault-tolerant module is used to obtain component fault information and link fault information of this router, and send the component fault information and link fault information to the routing calculation module.

[0090] The data transmission constraint information includes at least the component fault information and link fault information of this router.

[0091] Among them, component fault information includes the health status of internal router components (such as buffers, cross switches, and arbitrators), and link fault information includes the status of links connected to neighboring routers.

[0092] Specifically, the routing calculation module can actually read the custom protocol packet headers of each channel's custom protocol packets in each buffer, calculate routing information based on credit value, remaining capacity of virtual channels in input and output buffers, fault information, etc., and transmit it to the arbitrator.

[0093] Specifically, when calculating the target routing information for custom protocol packets, the routing calculation module takes into account component failure information and link failure information, and can avoid links or components with known failures, thereby further ensuring the reliability and security of data transmission.

[0094] Based on the above embodiments, as one implementable approach, in one embodiment, the direction output module includes: a data packet combining module, used for:

[0095] Based on the protocol header of the custom protocol packet to be output in the direction output buffer, the custom protocol packets to be output are clustered so that multiple custom protocol packets to be output that have the same target direction output port and transmission path and belong to the same transaction are classified as custom protocol packets to be combined in the same category.

[0096] For any category, according to the preset network bus bandwidth, the custom protocol packets to be combined for that category are reassembled to obtain the target data unit, and the target data unit is transmitted to the destination node through the target direction output port.

[0097] The protocol header includes the number of custom protocol packets in the same transaction and the sequence number of the custom protocol packets in the same transaction.

[0098] For example, such as Figure 4 The diagram shown is a schematic diagram of the structure of an exemplary target data unit provided in an embodiment of this application. The target data unit includes a target data unit header and n custom protocol packets (custom protocol packets to be combined). Each custom protocol packet includes a protocol header (custom protocol header) and a protocol data packet.

[0099] Specifically, to improve the transmission efficiency of subsequent target data units, the custom protocol packets to be output are first clustered based on the target direction output port, transmission path, and transaction type represented by the protocol packet header. Multiple custom protocol packets to be output that have the same target direction output port and transmission path and belong to the same transaction are grouped into one category. Subsequently, during target data unit reassembly, custom protocol packets belonging to the same category (custom protocol packets to be combined) are combined into the same target data unit. With a preset network bus bandwidth (e.g., 512 bits) as a constraint, protocol packets of the same category are concatenated to ensure that the bit width of the reassembled target data unit is close to the preset network bus bandwidth. This improves data transmission efficiency while fully utilizing the network bus bandwidth resources of the on-chip network.

[0100] Based on the above embodiments, as one implementable approach, in one embodiment, the system further includes:

[0101] The local input module is used to obtain local data packets sent by the local transaction client and cache the local data packets in the local input buffer according to the transaction type of the local data packets.

[0102] The intermediate module is also used for:

[0103] Based on the local data packet headers and data transmission constraint information of each local data packet in the local input buffer, if any local data packet in the local input buffer is determined to be directional transmission data, then the local data packet is used as the custom protocol packet to be output, and channel selection is performed on the local input buffer to buffer the custom protocol packet to be output in the directional output buffer.

[0104] It should be noted that data transmission between the local transaction port and this router is through the local input port. The local input module receives local data packets sent by the local transaction end through the local input port. The local data packets are custom protocol packets, so they can be directly cached in the local data cache unit of the corresponding transaction type in the local data cache area.

[0105] Specifically, when the target node of the local data packet is another router node, the local data packet is determined to be directional transmission data. Therefore, based on the data transmission system provided in the above embodiment, the local data packet is cached as a custom protocol packet to be output in the directional output buffer for subsequent reassembly and transmission.

[0106] The data transmission system's input ports are divided into local input ports and directional input ports. The number of input ports can be customized. Local input ports connect to the PE (Local Transaction Provider), and the number of ports and data transmission width are customized based on the PE's attributes. The data width of the local input ports is determined based on the custom protocol packet width. The local input ports input the custom protocol packets generated by the current node's PE into their input buffer. The number of local input ports is typically 1, 2, 3, or 4. The four directional input ports connect to adjacent router nodes, inputting the smallest data unit output by other nodes to the packet splitting module. The packet splitting module connects to the directional input ports, unpacks the input flit (smallest data unit) into custom protocol packets, and buffers them in the directional input buffer.

[0107] Accordingly, in one embodiment, the intermediate module is further configured to connect the data transmission channel between the direction input virtual channel where the custom protocol packet to be output is currently located and the local output port when it is determined that any custom protocol packet to be output in the direction input buffer is local transmission data, so as to transmit the custom protocol packet to be output in the direction input virtual channel to the local transaction terminal through the local output port.

[0108] Similarly, if the local data packet is local transmission data, that is, the local data packet is data sent from local transaction terminal 1 connected to this router node to local transaction terminal 2, then the intermediate module connects the data transmission channel between the local input virtual channel where the custom protocol packet to be output (local data packet) is currently located and the local output port, so as to transmit the custom protocol packet to be output in the local input virtual channel to local transaction terminal 2 through the local output port.

[0109] In the Mesh on-chip network, each node contains a router. The PE units supported by the router node include the processor core and its proxy, L3 cache and its proxy, DDR memory and its proxy, UART, JTAG interface, Timer, D2D interface, and PCIe interface. The PCIe interface supports high-speed transmission protocols such as CXL and CCIX, improving the on-chip network's scalability. The D2D interface supports UCIe, improving inter-chip scalability.

[0110] Specifically, in one embodiment, a QoS modulator can also be integrated into the router to support dual-mode switching between pass-through mode and QoS value programming mode. In pass-through mode, traffic bandwidth is directly allocated based on a preset QoS value (such as the QoS value sent by adjacent router nodes), and the value is directly transmitted through custom protocol packet assembly. In programming mode, the QoS modulator collects traffic bandwidth information (such as buffer occupancy rate and link latency) fed back by the system in real time, dynamically adjusts the preset QoS value, and transmits the adjusted QoS value when assembling packets.

[0111] Specifically, in one embodiment, the QoS modulator can monitor the bandwidth utilization of links in each direction, the remaining capacity of the buffer, and the packet delay in real time. When the delay of a certain type of transaction (such as REQ) exceeds the threshold, it automatically increases its QoS value to adjust the bandwidth allocation for subsequent data transmission of that transaction type. This realizes the ability to perceive the network status in real time and adapt QoS, laying the foundation for further improving the data transmission efficiency of the on-chip network.

[0112] The data transmission system provided in this application includes: a direction input module, an intermediate module, and a direction output module. The direction input module is used to obtain the smallest data unit sent by the adjacent router, split the smallest data unit according to the transaction combination type of the smallest data unit, so as to split the smallest data unit into multiple custom protocol packets, and cache each custom protocol packet in the direction input buffer according to the transaction type corresponding to each custom protocol packet. The intermediate module is used to determine the direction input buffer as a direction transmission data if any custom protocol packet to be output in the direction input buffer is determined to be output in the direction input buffer according to the protocol packet header and data transmission constraint information of each custom protocol packet in the direction input buffer, and then perform channel selection in the direction input buffer to cache the custom protocol packet to be output in the direction input buffer in the direction output buffer. The direction output module is used to reassemble the custom protocol packets to be output in the direction output buffer according to the preset network bus bandwidth to obtain the target data unit, so as to transmit the target data unit to the destination node through the target direction output port. The system provided by the above solution splits the smallest data unit into custom protocol packets according to transaction combination types and caches them in the directional input buffer. This allows for the free combination of protocol packets of different transaction types as needed. The system filters the custom protocol packets to be output and selects the channel based on the protocol packet header and data transmission constraints, thus achieving caching of the custom protocol packets to be output in the directional output buffer. Finally, the custom protocol packets to be output in the directional output buffer are reassembled according to the preset network bus bandwidth, ensuring that the effective bit width of the target data unit matches the preset network bus bandwidth. This avoids wasting data bit width in high-bandwidth transmission of the on-chip network, thereby improving the data transmission efficiency of the on-chip network. Furthermore, it provides a high-bit-width data packet structure for mesh on-chip networks and a router microarchitecture that supports the transmission and processing of these data packets. By supporting the combination of custom protocol packet types, it can reduce the waste of data bit width in high-bandwidth transmission, improve the data transmission efficiency of the on-chip network, and achieve efficient high-bit-width data transmission.

[0113] Through the above description of the embodiments, those skilled in the art can clearly understand that the system according to the above embodiments can be implemented by means of software plus necessary general-purpose hardware platform, and of course it can also be implemented by hardware, but in many cases the former is a better implementation method.

[0114] This application provides a data transmission method for achieving efficient data transmission between nodes in an on-chip network, where the nodes include router nodes and transaction endpoint nodes. The execution subject of this application embodiment is an electronic device, such as a server, desktop computer, laptop computer, tablet computer, or other electronic devices that can be used to deploy the data transmission system provided in the above embodiments.

[0115] like Figure 5The diagram shown is a flowchart illustrating a data transmission method provided in an embodiment of this application. The method includes:

[0116] Step 501: Obtain the smallest data unit sent by the neighboring router;

[0117] Step 502: Based on the transaction combination type of the smallest data unit, split the smallest data unit into multiple custom protocol packets;

[0118] Step 503: Cache each custom protocol packet into the direction input buffer according to the transaction type corresponding to each custom protocol packet;

[0119] Step 504: Based on the protocol packet header and data transmission constraint information of each custom protocol packet in the direction input buffer, if any custom protocol packet to be output in the direction input buffer is determined to be directional transmission data, channel selection is performed on the direction input buffer to buffer the custom protocol packets to be output in the direction input buffer into the direction output buffer.

[0120] Step 505: According to the preset network bus bandwidth, reassemble the custom protocol packets to be output in the direction output buffer to obtain the target data unit, so as to transmit the target data unit to the destination node through the target direction output port.

[0121] For example, such as Figure 6 The diagram shown is a schematic representation of the overall flow of the data transmission method provided in this application embodiment. The original data packet is the smallest data unit, as shown below. Figure 6 The process shown is as follows Figure 5 This is an exemplary implementation of the process, and the two are implemented in the same way. For details, please refer to the above-mentioned data transmission system embodiment, which will not be repeated here.

[0122] Embodiments of this application also provide a data transmission apparatus for executing the data transmission method provided in the above embodiments.

[0123] like Figure 7 The diagram shown is a structural schematic of a data transmission device provided in an embodiment of this application. The data transmission device 70 includes: an acquisition module 701, a splitting module 702, a buffer module 703, a gating module 704, and a transmission module 705.

[0124] The system comprises the following modules: an acquisition module for acquiring the smallest data unit sent by neighboring routers; a splitting module for splitting the original data into multiple custom protocol packets based on the transaction combination type of the smallest data unit; a caching module for caching each custom protocol packet into the direction input buffer based on the transaction type corresponding to each custom protocol packet; a gating module for gating the direction input buffer based on the protocol header and data transmission constraint information of each custom protocol packet in the direction input buffer, determining that any custom protocol packet to be output in the direction input buffer is directional transmission data, and caching the custom protocol packet to be output in the direction input buffer into the direction output buffer; and a transmission module for reassembling the custom protocol packets to be output in the direction output buffer according to the preset network bus bandwidth to obtain the target data unit, which is then transmitted to the destination node through the target direction output port.

[0125] For a description of the features in the embodiment corresponding to the data transmission device, please refer to the relevant description in the embodiment corresponding to the data transmission method, which will not be repeated here.

[0126] Embodiments of this application also provide an electronic device, such as... Figure 8 The diagram shown is a schematic diagram of the structure of an electronic device provided in an embodiment of this application, including a processor 10 and a memory 20. The memory 20 stores a computer program, and the processor 10 is configured to run the computer program to perform the steps in any of the above-described data transmission method embodiments.

[0127] Embodiments of this application also provide a computer-readable storage medium storing a computer program, wherein the computer program is configured to execute the steps in any of the above-described data transmission method embodiments when it is run.

[0128] In one exemplary embodiment, the aforementioned computer-readable storage medium may include, but is not limited to, various media capable of storing computer programs, such as a USB flash drive, read-only memory (ROM), random access memory (RAM), portable hard disk, magnetic disk, or optical disk.

[0129] Embodiments of this application also provide a computer program product, which includes a computer program that, when executed by a processor, implements the steps in any of the above-described data transmission method embodiments.

[0130] Embodiments of this application also provide another computer program product, including a non-volatile computer-readable storage medium storing a computer program, which, when executed by a processor, implements the steps in any of the above-described data transmission method embodiments.

[0131] Those skilled in the art will further recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the components and steps of the various examples have been generally described in terms of functionality in the foregoing description. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0132] The data transmission system, method, electronic device, and storage medium provided in this application have been described in detail above. Specific examples have been used to illustrate the principles and implementation methods of this application. The descriptions of the embodiments above are merely for the purpose of helping to understand the method and core ideas of this application. It should be noted that those skilled in the art can make various improvements and modifications to this application without departing from its principles, and these improvements and modifications also fall within the protection scope of the claims of this application.

Claims

1. A data transmission system, characterized in that, include: Direction input module, intermediate module, and direction output module; The direction input module is used to obtain the smallest data unit sent by the neighboring router, split the smallest data unit according to the transaction combination type of the smallest data unit, so as to split the smallest data unit into multiple custom protocol packets, and cache each custom protocol packet in the direction input buffer according to the transaction type corresponding to each custom protocol packet. The intermediate module is used to perform channel selection on the direction input buffer when it is determined that any custom protocol packet to be output in the direction input buffer is directional transmission data, based on the protocol packet header and data transmission constraint information of each custom protocol packet in the direction input buffer, so as to cache the custom protocol packet to be output in the direction input buffer to the direction output buffer. The directional output module is used to reassemble the custom protocol packets to be output in the directional output buffer according to the preset network bus bandwidth to obtain the target data unit, so as to transmit the target data unit to the destination node through the target directional output port.

2. The data transmission system according to claim 1, characterized in that, The direction input module includes: The packet splitting module is used to split the minimum data unit into multiple custom protocol packets according to the transaction combination type of the minimum data unit, and to cache each custom protocol packet in the direction input buffer according to the transaction type corresponding to each custom protocol packet; wherein, the custom protocol packet includes the protocol packet header and the protocol data packet, and the protocol packet header includes the transaction type, timing information and transmission information.

3. The data transmission system according to claim 2, characterized in that, The data packet splitting module is specifically used for: Based on the transaction type corresponding to each custom protocol packet, each custom protocol packet is cached in the corresponding directional input virtual channel; The direction input buffer includes multiple direction input virtual channels, and each direction input virtual channel corresponds one-to-one with the transaction type.

4. The data transmission system according to claim 1, characterized in that, The intermediate module includes: The routing calculation module is used to determine the target routing information of each custom protocol packet based on the protocol packet header and data transmission constraint information of each custom protocol packet in the direction input buffer, and send the target routing information to the arbitration allocation module; The arbitration allocation module is used to select the custom protocol packet to be output in the direction input buffer according to the target routing information of each custom protocol packet, and to perform channel selection in the direction input buffer according to the direction input virtual channel where the custom protocol packet to be output is located, so as to cache the custom protocol packet to be output in the direction input virtual channel to the direction output buffer. The direction input buffer includes multiple direction input virtual channels.

5. The data transmission system according to claim 4, characterized in that, The routing calculation module is specifically used for: For any custom protocol packet in the direction input buffer, the target direction output port and transmission path of the custom protocol packet are determined based on the transmission information represented by the protocol packet header of the custom protocol packet. Based on the data transmission constraint information and the target direction output port and transmission path of the custom protocol packet, the target routing information of the custom protocol packet is determined; The custom protocol packet header includes at least the destination node address, and the data transmission constraint information includes at least the remaining space of each direction input virtual channel in the direction input buffer and the remaining space of each direction output virtual channel in the direction output buffer.

6. The data transmission system according to claim 4, characterized in that, The arbitration allocation module is specifically used for: For any of the custom protocol packets, determine whether the custom protocol packet meets the output conditions based on the target routing information of the custom protocol packet; The custom protocol packet that meets the output conditions and has the highest output priority will be the custom protocol packet to be output. Connect the data transmission channel between the current direction input virtual channel and the corresponding direction output virtual channel of the custom protocol packet to be output, so as to cache the custom protocol packet to be output in the direction input virtual channel to the direction output virtual channel.

7. The data transmission system according to claim 6, characterized in that, The arbitration allocation module includes: An arbitrator is used to perform priority arbitration on multiple candidate custom protocol packets that meet the output conditions, so as to select the candidate custom protocol packet with the highest priority as the custom protocol packet to be output. The distributor is used to configure the cross switch according to the filtering results of the arbitrator for the custom protocol packets to be output; A cross switch is used to connect the data transmission channel between the current direction input virtual channel and the corresponding direction output virtual channel of the custom protocol packet to be output, according to the configuration result of the distributor.

8. The data transmission system according to claim 4, characterized in that, The intermediate module also includes: The credit management module is used to obtain the credit values ​​of each channel of the neighboring routers, the remaining space of each directional input virtual channel in the directional input buffer, and the remaining space of each directional output virtual channel in the directional output buffer; determine the credit value of each channel of the current router based on the remaining space of each directional input virtual channel in the directional input buffer and the remaining space of each directional output virtual channel in the directional output buffer; and send the credit values ​​of each channel of the neighboring routers and the credit values ​​of each channel of the current router to the routing calculation module. The data transmission constraint information includes at least the credit values ​​of each channel of the adjacent router and the credit values ​​of each channel of the current router.

9. The data transmission system according to claim 4, characterized in that, The intermediate module also includes: The fault-tolerant module is used to obtain component fault information and link fault information of this router, and send the component fault information and link fault information to the routing calculation module; The data transmission constraint information includes at least the component fault information and link fault information of the router.

10. The data transmission system according to claim 1, characterized in that, The direction output module includes: The data packet assembly module is used to cluster the custom protocol packets to be output based on the protocol packet headers of the custom protocol packets to be output in the direction output buffer, so as to group multiple custom protocol packets to be output that have the same target direction output port and transmission path and belong to the same transaction as custom protocol packets to be combined in the same category. For any of the categories, the custom protocol packets to be combined for that category are reassembled according to the preset network bus bandwidth to obtain the target data unit, and the target data unit is transmitted to the destination node through the target direction output port; The protocol header includes the number of custom protocol packets in the same transaction and the sequence number of the custom protocol packets in the same transaction.

11. The data transmission system according to claim 1, characterized in that, The system also includes: The local input module is used to acquire local data packets sent by the local transaction terminal and cache the local data packets in the local input buffer according to the transaction type of the local data packets. The intermediate module is also used for: Based on the local data packet header and data transmission constraint information of each local data packet in the local input buffer, if any local data packet in the local input buffer is determined to be directional transmission data, then the local data packet is used as the custom protocol packet to be output, and channel selection is performed on the local input buffer to cache the custom protocol packet to be output in the local input buffer to the directional output buffer.

12. The data transmission system according to claim 11, characterized in that, The intermediate module is also used for: If any custom protocol packet to be output in the direction input buffer is determined to be local transmission data, the data transmission channel between the direction input virtual channel where the custom protocol packet to be output is currently located and the local output port is connected, so as to transmit the custom protocol packet to be output in the direction input virtual channel to the local transaction terminal through the local output port.

13. A data transmission method, applied to the data transmission system as described in any one of claims 1 to 12, characterized in that, The method includes: Obtain the smallest data unit sent by the neighboring router; Based on the transaction combination type of the minimum data unit, the minimum data unit is split into multiple custom protocol packets; Based on the transaction type corresponding to each custom protocol packet, each custom protocol packet is cached in the direction input buffer; Based on the protocol header and data transmission constraint information of each custom protocol packet in the direction input buffer, if any custom protocol packet to be output in the direction input buffer is determined to be directional transmission data, channel selection is performed on the direction input buffer to cache the custom protocol packet to be output in the direction input buffer to the direction output buffer. According to the preset network bus bandwidth, the custom protocol packets to be output in the direction output buffer are reassembled to obtain the target data unit, so as to transmit the target data unit to the destination node through the target direction output port.

14. An electronic device, characterized in that, include: Memory, used to store computer programs; A processor for implementing the steps of the data transmission method as described in claim 13 when executing the computer program.

15. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program, wherein the computer program, when executed by a processor, implements the steps of the data transmission method as described in claim 13.

16. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by the processor, it implements the steps of the data transmission method as described in claim 13.

Citation Information

Patent Citations

  • Data processing method and device of network-on-chip and storage medium

    CN118779279A

  • Data sending method, device and equipment based on fragment packaging, and storage medium

    CN119094468A