Data transmission system and method, electronic equipment and storage medium
By splitting the minimum data unit into a custom protocol package in the on-chip network and reorganizing according to the preset network bus bandwidth, the data bit width waste problem in the on-chip network high bandwidth transmission is solved, and data transmission efficiency is improved.
Patent Information
- Application Number
- CN202510907478.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-07-02
- Publication Date
- 2025-08-01
- Estimated Expiration
- 2045-07-02
AI Technical Summary
There is a waste of data bit width in existing on-chip networks in high bandwidth transmission, resulting in inefficient data transmission.
By splitting the minimum data unit into custom protocol packages according to transaction combination type and cached to the direction input buffer, filtering the custom protocol package to be output based on the protocol header and data transmission constraints, and finally reorganizing according to the preset network bus bandwidth to ensure that the effective bit width of the target data unit matches the preset network bus bandwidth.
It avoids the waste of data bit width in high bandwidth transmission of on-chip networks and improves data transmission efficiency.
Smart Images

Figure CN120407510A_ABST
Abstract
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 Art
[0002] The on-chip network mesh is a multi-core interconnection structure, often applied to multi-core processors. The on-chip network includes multiple routers corresponding one-to-one with processor cores to achieve data transmission between processor cores through the routers.
[0003] In the related art, the data transmission of the routers in the on-chip network can be divided into several data packets. Each data packet contains several fixed-length minimum data units flit, and each minimum data unit contains transaction data. However, since the transaction types initiated by the processor cores mounted on each router as transaction ends are diverse, when the effective bit width of the minimum data unit is small and the network bus bandwidth between the routers in the on-chip network is large, it will cause waste of the data bit width in high-bandwidth transmission in the on-chip network and reduce 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 the data bit width in high-bandwidth transmission in the on-chip network and reduces the data transmission efficiency of the on-chip network.
[0005] This application provides a data transmission system, including: a direction input module, an intermediate module, and a direction output module; The direction input module is used to obtain the minimum data unit sent by the adjacent router, split the minimum data unit according to the transaction combination type of the minimum data unit, so as to split the minimum 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; The intermediate module is used to determine that any custom protocol packet to be output in the direction input buffer is the data for direction transmission according to the protocol header of each custom protocol packet in the direction input buffer and the data transmission constraint condition information, and perform channel gating on the direction input buffer to cache the custom protocol packet to be output in the direction input buffer into the direction output buffer; The direction output module is used to reorganize 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, and transmit the target data unit to the destination node through the target direction output port.
[0006] This application also provides a data transmission method, applied to any of the above data transmission systems. The method includes: Obtain the minimum data unit sent by an adjacent router; According to the transaction combination type of the minimum data unit, split the original data to split the minimum data unit into multiple custom protocol packets; According to the transaction type corresponding to each custom protocol packet, cache each custom protocol packet into the direction input buffer; According to the protocol header of each custom protocol packet in the direction input buffer and the data transmission constraint condition information, when determining that any custom protocol packet to be output in the direction input buffer is data for direction transmission, perform channel gating on the direction input buffer to cache the custom protocol packet to be output in the direction input buffer into the direction output buffer; Recombine 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, and transmit the target data unit to the destination node through the target direction output port.
[0007] This application also provides a data transmission device, which is applied to the data transmission system of any of the above, and the device includes: An obtaining module, configured to obtain the minimum data unit sent by an adjacent router; A splitting module, configured to split the minimum data unit according to the transaction combination type of the minimum data unit to split the minimum data unit into multiple custom protocol packets; A caching module, configured to cache each custom protocol packet into the direction input buffer according to the transaction type corresponding to each custom protocol packet; A gating module, configured to perform channel gating on the direction input buffer when determining that any custom protocol packet to be output in the direction input buffer is data for direction transmission according to the protocol header of each custom protocol packet in the direction input buffer and the data transmission constraint condition information, so as to cache the custom protocol packet to be output in the direction input buffer into the direction output buffer; A transmission module, configured to recombine 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, and transmit the target data unit to the destination node through the target direction output port.
[0008] This application also provides an electronic device, including: a memory for storing a computer program; a processor for implementing the steps of any of the above data transmission methods when executing the computer program.
[0009] This application also provides a computer-readable storage medium, in which a computer program is stored, and when the computer program is executed by a processor, the steps of any of the above data transmission methods are implemented.
[0010] The present application also provides a computer program product, including a computer program, which, when executed by a processor, implements the steps of any of the above data transmission methods.
[0011] Through the present application, by designing the system architecture according to the bus transmission protocol of the network-on-chip, the system architecture is matched with the bus transmission protocol of the network-on-chip, the service types of bus transmission are distinguished, and then the minimum data unit is split into custom protocol packets according to the transaction combination type and cached in the direction input buffer, so that the protocol packets of different transaction types can be freely combined according to requirements subsequently. The custom protocol packets to be output are screened based on the protocol header and data transmission constraints and the channels are gated, the direction output buffer is implemented to cache the custom protocol packets to be output, and finally the custom protocol packets to be output in the direction output buffer are reorganized according to the preset network bus bandwidth, so that the effective bit width of the obtained target data unit matches the preset network bus bandwidth, avoiding the waste of data bit width in high-bandwidth transmission of the network-on-chip, and thus improving the data transmission efficiency of the network-on-chip. BRIEF DESCRIPTION OF THE DRAWINGS
[0012] In order to more clearly illustrate the embodiments of the present application, the drawings required for use in the embodiments will be briefly introduced below. Obviously, the drawings in the following description are only some embodiments of the present application, and for those of ordinary skill in the art, other drawings can be obtained based on these drawings without creative efforts.
[0013] Figure 1 It is a schematic structural diagram of an exemplary network-on-chip provided for an embodiment of the present application; Figure 2 It is a schematic interaction flow diagram of a data transmission system provided for an embodiment of the present application; Figure 3 It is a schematic structural diagram of a data transmission system provided for an embodiment of the present application; Figure 4 It is a schematic structural diagram of an exemplary target data unit provided for an embodiment of the present application; Figure 5 It is a schematic flow diagram of a data transmission method provided for an embodiment of the present application; Figure 6 It is a schematic overall flow diagram of a data transmission method provided for an embodiment of the present application; Figure 7 It is a schematic structural diagram of a data transmission device provided for an embodiment of the present application; Figure 8 It is a schematic structural diagram of an electronic device provided for an embodiment of the present application. DETAILED DESCRIPTION OF THE EMBODIMENTS
[0014] Next, the technical solutions in the embodiments of the present application will be clearly and completely described in conjunction with the accompanying drawings in the embodiments of the present application. Obviously, the described embodiments are only a part of the embodiments of the present application, rather than all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative efforts belong to the protection scope of the present application.
[0015] It should be noted that in the description of the present application, the terms "include", "comprise" or any other variant thereof are intended to cover a non-exclusive inclusion, so that a process, method, article or device including a series of elements not only includes those elements but also includes other elements not expressly listed, or further includes elements inherent to such process, method, article or device. The terms "first", "second", etc. in the present application are used to distinguish similar objects and are not used to describe a specific order or sequence.
[0016] As Figure 1 shown, it is a schematic structural diagram of an exemplary network-on-chip provided by the embodiment of the present application. The network-on-chip is a multi-core (multi-module) interconnection architecture. Compared with the traditional bus-based system, it provides richer routing paths, more efficient data transmission, and better system scalability. Figure 1 It is a 3×3 two-dimensional Mesh network-on-chip. R is a router, and PE (processing element) is a processing unit. The data processing unit is the transaction end.
[0017] Messages in the network-on-chip can be divided into several data packets (package). One package contains several minimum data units flit with a fixed length. Flit is divided into head flit, body flit, and tail flit. The head flit contains the flit category, destination node, port, etc. The body flit contains the data body, and the tail flit indicates the end of the data packet. One package contains one head flit, several body flits, and one tail flit.
[0018] In practical applications, the packages and flits transmitted by the system generally belong to different transaction types. For example, the AMBACHI protocol has transaction types such as request, response, listen, and data. The lengths of data packets of different transaction types are generally different. Therefore, when the bus transmission bit width is large (greater than 512 bits), one flit only contains a single transaction data, and its data bit width is often much smaller than 512, and the reduction of the payload rate will waste bandwidth.
[0019] In addition, although the above router architecture and packet structure are simple and easy to implement, in an actual system, the on-chip network processor architecture is complex, the PE attributes connected to different nodes are different, the message types in the system are complex, there are many types of transactions and different quantities, and the above existing on-chip network data transmission methods cannot adapt to the complex processor architecture and bus protocol.
[0020] To solve the above technical problems, the embodiments of the present 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 is used to obtain the minimum data unit sent by an adjacent router, split the minimum data unit according to the transaction combination type of the minimum data unit, so as to split the minimum 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. The intermediate module is used to determine that any custom protocol packet to be output in the direction input buffer is the data for direction transmission according to the protocol header of each custom protocol packet in the direction input buffer and the data transmission constraint condition information, and perform channel gating on the direction input buffer to cache the custom protocol packet to be output in the direction input buffer into the direction output buffer. The direction output module is used to recombine 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, and transmit the target data unit to the destination node through the target direction output port. In the system provided by the above solution, by splitting the minimum data unit into custom protocol packets according to the transaction combination type and caching them in the direction input buffer, it is convenient for protocol packets of different transaction types to be freely combined according to requirements in the future. Based on the protocol header and data transmission constraint conditions, the custom protocol packets to be output are screened and the channels are gated to realize the caching of the 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 recombined according to the preset network bus bandwidth, so that the effective bit width of the obtained 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, and thus improving the data transmission efficiency of the on-chip network.
[0021] To enable those skilled in the art of this technology to better understand the solution of the present application, the present application will be further described in detail below with reference to the accompanying drawings and specific embodiments.
[0022] The embodiments of the present application provide a data transmission system for realizing efficient data transmission between nodes in an on-chip network. The nodes include router nodes and transaction end nodes. The data transmission system provided by the embodiments of the present application is applied to the router nodes of the on-chip network.
[0023] Such as Figure 2As shown in the figure, it is a schematic diagram of the interaction process of the data transmission system provided by the embodiment of the present application. The data transmission system includes: a direction input module, an intermediate module, and a direction output module.
[0024] Among them, the direction input module is used to obtain the minimum data unit sent by the adjacent router, split the minimum data unit according to the transaction combination type of the minimum data unit, so as to split the minimum 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; the intermediate module is used to determine that any custom protocol packet to be output in the direction input buffer is the data for direction transmission according to the protocol header of each custom protocol packet in the direction input buffer and the data transmission constraint condition information, and perform channel gating on the direction input buffer to cache the custom protocol packet to be output in the direction input buffer into the direction output buffer; the direction output module is used to recombine 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.
[0025] Among them, the minimum data unit is the flit, and the transaction combination type is used to represent what types of data are included in the flit. The transaction types are at least divided into four types: request, response, listen, and data.
[0026] It should be noted that in the on-chip network, the destination node of the data for direction transmission is not the local transaction end directly connected to this router node, that is, this data needs to be sent by this router node to the adjacent router. The communication standard of the data communication protocol between routers is the minimum data unit flit as the transmission unit. Therefore, it is necessary to recombine the target data unit based on the packet combination module.
[0027] Specifically, the direction input module receives the minimum data unit sent by the adjacent router through the direction input port. Each minimum data unit flit corresponds to at least one transaction combination type. By parsing the transaction combination type of the minimum data unit, the minimum data unit is split into several independent custom protocol packets. For example, a minimum data unit containing a request transaction (REQ) and a data transaction (DAT) (such as the transaction combination type is 1×REQ + 1×DAT) will be split into two independent custom protocol packets, namely the REQ custom protocol packet and the DAT custom protocol packet. Each custom protocol packet is cached into the direction input buffer according to the transaction type corresponding to it, and the custom protocol packets of different transaction types are cached separately in the direction input buffer.
[0028] Exemplarily, the header of the minimum data unit includes the transaction combination type and its encoding. The corresponding relationship between the encoding and the transaction combination type is shown in Table 1 below: Table 1
[0029] Specifically, the custom protocol packets of which transaction types are included in the minimum data unit can be determined according to the encoding recorded in the packet header of the minimum data unit.
[0030] Furthermore, the intermediate module calculates the optimal transmission path of each custom protocol packet by reading the packet header information of the custom protocol packets in the direction input buffer and combining the data transmission constraint conditions. The optimal transmission path includes the target output port. Among them, the router includes multiple direction output ports for connecting different adjacent routers. Further, the custom protocol packets to be output are screened in the direction input buffer. When the target output port of any custom protocol packet to be output is the direction output port, it is determined that the custom protocol packet to be output is the direction transmission data, and then the channel gating of the direction input buffer is performed to cache the custom protocol packets to be output in the direction input buffer into the direction output buffer.
[0031] Furthermore, the direction input module includes a direction input buffer. The direction input module selects multiple custom protocol packets to be output from the direction output buffer according to the preset network bus bandwidth (such as 512 bits), and reorganizes them into a target data unit to ensure that the effective bit width of the reorganized target data unit is equal to or close to the preset network bus bandwidth, so that the effective bit width of the obtained 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, and thus improving the data transmission efficiency of the on-chip network.
[0032] Among them, the preset network bus bandwidth can be determined according to the bus transmission protocol of the on-chip network, such as AMBA CHI, etc. Specifically, the flit effective bit width utilization baseline can be set in advance, and then according to the preset network bus bandwidth and the flit effective bit width utilization baseline, the reorganization of the target data unit is performed to make the effective bit width of the obtained target data unit match the preset network bus bandwidth to ensure efficient data transmission.
[0033] Among them, the custom protocol packets of each transaction type contain different fields and have different bit widths. The protocol data packet bit widths of the 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 Byte, the DATA field bit width in the DAT custom protocol packet is 256 bits, and 2 DAT custom protocol packets are required to transfer 1 cache line.
[0034] The data transmission system provided by the embodiments of the present application can be applied to many-core processors with Arm or RISC-V cores. Each processor core serves as a PE node and can also be extended to be applied to on-chip network systems with other topologies, such as 3D mesh, Ring and other NoC topologies, which can improve the utilization rate of bus bit width and the data transmission efficiency.
[0035] Based on the above embodiments, as an implementable manner, in one embodiment, the direction input module includes: a data packet splitting module, configured to: Split the minimum data unit according to the transaction type of the minimum data unit, so as to split the minimum 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.
[0036] Wherein, the custom protocol packet includes a protocol packet header and a protocol data packet. The protocol packet header includes a transaction type, timing information and transmission information. The data packet splitting module is also called the protocol packet splitting module of the minimum data unit.
[0037] It should be noted that the timing information includes a transmission sequence number, a timestamp, the number of custom protocol packets of the same transaction, and the sequence number of custom protocol packets of the same transaction. The transmission information includes the destination node address, port encoding, D2D encoding and D2D credit value. Among them, the destination node address represents the location of the final router node (destination node) to which the data packet (custom protocol packet) is transmitted. The port encoding represents the PE unit (destination transaction end) of the destination node. The number of custom packets of the same transaction represents the total number of protocol packets transmitted by the same transaction. The sequence number of custom protocol packets of the same transaction represents the sorting sequence number of the protocol packets transmitted by the same transaction. The D2D field represents the encoding of the area where the destination node is located. Among them, the on-chip network is composed 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 ability of the D2D interface. The protocol packet header may further include a user-defined field, and the user-defined field is used to record fields defined by the user for self-use (such as check information, etc.).
[0038] Wherein, the bit width of the header of the custom protocol packet is 16 bit, including 1 bit of D2D, 4 bits of D2D credit value, 6 bits of node coordinates (destination node address), 2 bits of port encoding, 1 bit of the number of protocol packets, 1 bit of the sequence number of protocol packets, and 1 bit of user-defined field. Based on the bit width of the protocol data packet in the above text, the total bit widths of the REQ, RSP, SNP, and DAT custom protocol packets are 171 bits, 81 bits, 135 bits, and 418 bits respectively.
[0039] Based on the above embodiments, as an implementable manner, in one embodiment, the data packet splitting module is specifically configured to: According to the transaction type corresponding to each defined protocol packet, cache each defined protocol packet to the corresponding direction input virtual channel.
[0040] Among them, the direction input buffer includes multiple direction input virtual channels, and the direction input virtual channels correspond one-to-one with the transaction types.
[0041] The direction input virtual channels can be classified based on different protocols. For example, based on the CHI protocol, the direction input buffer is divided into a total of 4 virtual channels: REQ (request virtual channel), RSP (response virtual channel), SNP (snoop virtual channel), and DAT (data virtual channel). The depth of each virtual channel is determined according to the bit width of the custom protocol packet of each transaction type. For example, the REQ, RSP, SNP, and DAT virtual channels of the input buffer can accommodate 4, 6, 4, and 4 custom protocol packets respectively.
[0042] Based on the above embodiments, as Figure 3 shown, it is a schematic structural diagram of the data transmission system provided by the embodiment of the present application. As an implementable manner, in one embodiment, the intermediate module includes: A routing calculation module, configured to determine the target routing information of each defined protocol packet according to the protocol header of each defined protocol packet in the direction input buffer and the data transmission constraint condition information, and send the target routing information to the arbitration and allocation module; An arbitration and allocation module, configured to select the custom protocol packet to be output in the direction input buffer according to the target routing information of each defined protocol packet, and perform channel gating 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 in the direction input virtual channel to the direction output buffer.
[0043] Among them, the direction input buffer includes multiple direction input virtual channels.
[0044] Specifically, in one embodiment, the routing calculation module is specifically configured to, for any custom protocol packet in the direction input buffer, determine the target direction output port and transmission path of the custom protocol packet according to the transmission information represented by the protocol header of the custom protocol packet; and determine the target routing information of the custom protocol packet according to the data transmission constraint condition information and the target direction output port and transmission path of the custom protocol packet.
[0045] Among them, the protocol header of the custom protocol packet includes at least the destination node address, and the data transmission constraint condition 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.
[0046] Specifically, when the direction input buffer receives a custom protocol packet, the routing calculation module parses the protocol header of each protocol packet. First, it determines the transmission path according to the destination node address represented by the transmission information, and determines the target direction output port corresponding to the transmission path, and then generates the corresponding target routing information. The target routing information includes at least the target direction output port. The arbitration and allocation module, based on the target routing information of each custom protocol packet, and in combination with 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 represented by the data transmission constraint condition information, determines which direction input virtual channel meets the transmission condition, and then screens the custom protocol packet with the highest priority (such as the earliest cached to the direction input virtual channel) among the direction input virtual channels that meet the transmission condition as the custom protocol packet to be output. Among them, to avoid competition at the target direction output port, when the target direction output ports of multiple custom protocol packets in the direction input buffer are all the direction output port 1, the arbitration and allocation module can arbitrate which custom protocol packet to send first, that is, select the custom protocol packet to be output in the direction input buffer, and then perform channel gating 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 in the direction input virtual channel to the direction output buffer.
[0047] Specifically, in one embodiment, the arbitration and allocation module is specifically configured to: for any custom protocol packet, determine whether the custom protocol packet meets the output condition according to the target routing information of the custom protocol packet; use the custom protocol packet that meets the output condition 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.
[0048] Among them, the target routing information can actually include the destination node, the credit value, the remaining capacity of the virtual channels in the direction input and output buffers, and the fault information.
[0049] Specifically, for each custom protocol packet, the arbitration and allocation module can determine whether it meets the output condition (output condition) according to its target routing information according to a preset output condition judgment rule. For example, if the communication link between the router node and the destination node is normal, it is determined that the custom protocol packet meets the output condition, etc. The specific judgment rule can be set according to the actual application situation, and the embodiments of the present application do not make limitations.
[0050] Among them, when multiple custom protocol packets all meet the output conditions, the arbitration and allocation module can sort them according to their output priorities. The output priorities are 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.
[0051] Specifically, in one embodiment, the arbitration and allocation module includes: An arbiter, which is used to perform priority arbitration on multiple candidate custom protocol packets when it is determined that there are multiple candidate custom protocol packets that meet the output conditions, so as to screen the candidate custom protocol packet with the highest priority among the multiple candidate custom protocol packets as the custom protocol packet to be output; An allocator, which is used to configure the crossbar according to the screening result of the arbiter for the custom protocol packet to be output; A crossbar, which is used to connect the data transmission channel between the direction input virtual channel where the custom protocol packet to be output is located and the corresponding direction output virtual channel according to the configuration result of the allocator.
[0052] Specifically, the arbiter selects and enables the direction input virtual channel (virtual channel) where the custom protocol packet to be output is located according to the routing information of the custom protocol packet to be output, so that the custom protocol packet in the enabled channel (custom protocol packet to be output) enters the crossbar. The crossbar, based on the configuration result of the allocator (routing information and arbitration result), maps the input port of each custom protocol packet to be output to the output port. That is, when the output port is the direction output port, it will connect the data transmission channel between the direction input virtual channel where the custom protocol packet to be output is located and the corresponding direction output virtual channel, so as to transmit the custom protocol packet to be output to the direction output virtual channel. That is, the custom protocol packet to be output enters the virtual channel (direction output virtual channel) of the mapped local output port or direction output port buffer through the crossbar.
[0053] Among them, the number of local output ports is the same as the number of local input ports. The local output ports and local input ports are paired to connect the local PE (local transaction end) of this node. The data bit width of the local output port is determined based on the bit width of the custom protocol packet. The local output port outputs the custom protocol packet to the PE (local transaction end) it is connected to.
[0054] Specifically, in one embodiment, the intermediate module further includes: The credit management module is used to obtain the credit values of each channel of adjacent routers, 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; determine the credit values of each channel of this router according to 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; and send the credit values of each channel of adjacent routers and each channel of this router to the routing calculation module.
[0055] Among them, the data transmission constraint condition information at least includes the credit values of each channel of adjacent routers and the credit values of each channel of this router.
[0056] Specifically, the credit management module includes several credit counters, which are used to collect the credit values of each channel of adjacent routers, collect the remaining capacities of the input and output buffers of this node (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), and calculate and output the credit values of each channel. Among them, the channel refers to the credit value of the virtual channel (direction input virtual channel and direction output virtual channel) corresponding to a single transaction type, and the credit value is positively correlated with the remaining space of the virtual channel.
[0057] Specifically, the routing calculation module can determine the data transmission capabilities of various transaction types of custom protocol packets of this router node and adjacent routers according to the credit values of each channel of adjacent routers and the credit values of each channel of this router.
[0058] Specifically, in one embodiment, the intermediate module further includes: The fault tolerance module is used to obtain the 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.
[0059] Among them, the data transmission constraint condition information at least includes the component fault information and link fault information of this router.
[0060] Among them, the component fault information includes the health status of the internal components of the router (such as buffers, cross switches, and arbitrators), and the link fault information includes the status of the link connected to the adjacent router.
[0061] Specifically, the routing calculation module can actually read the custom protocol packet headers of each channel of each buffer, calculate the routing information based on the credit values, the remaining capacities of the virtual channels in the input and output buffers, the fault information, etc., and transmit it to the arbitrator.
[0062] Specifically, when calculating the target routing information of the custom protocol packet, the routing calculation module can avoid the known faulty links or components in consideration of the component failure information and the link failure information, thereby further ensuring the reliability and security of data transmission.
[0063] Based on the above embodiments, as an implementable manner, in one embodiment, the direction output module includes: a data packet combination module, configured to: Cluster the to-be-output custom protocol packets according to the protocol headers of the to-be-output custom protocol packets in the direction output buffer, so as to regard multiple to-be-output custom protocol packets with the same target direction output port, transmission path, and belonging to the same transaction as the to-be-combined custom protocol packets of the same category; For any category, reorganize the to-be-combined custom protocol packets of this category according to the preset network bus bandwidth to obtain a target data unit, and transmit the target data unit to the destination node through the target direction output port.
[0064] Wherein, the protocol header includes the number of custom protocol packets in the same transaction and the serial number of the custom protocol packets in the same transaction.
[0065] Exemplarily, as Figure 4 shown, it is a schematic structural diagram of an exemplary target data unit provided by an embodiment of the present application. The target data unit includes a target data unit header and n custom protocol packets (to-be-combined custom protocol packets), and each custom protocol packet includes a protocol header (custom protocol header) and a protocol data packet.
[0066] Specifically, in order to improve the transmission efficiency of the subsequent target data unit, first, cluster the to-be-output custom protocol packets according to the target direction output port, transmission path, and transaction type represented by the protocol headers of the to-be-output custom protocol packets, and aggregate multiple to-be-output custom protocol packets with the same target direction output port, transmission path, and belonging to the same transaction into one category. Subsequently, when performing the reorganization of the target data unit, combine the to-be-output custom protocol packets (to-be-combined custom protocol packets) belonging to the same category into the same target data unit. Constrained by the preset network bus bandwidth (such as 512 bits), splice the protocol packets of the same category to ensure that the bit width of the reorganized target data unit is close to the preset network bus bandwidth of the bandwidth, so as to improve the data transmission efficiency while making full use of the network bus bandwidth resources of the on-chip network.
[0067] Based on the above embodiments, as an implementable manner, in one embodiment, the system further includes: A local input module, configured to obtain local data packets sent by the local transaction end and cache the local data packets into the local input buffer according to the transaction type of the local data packets.
[0068] Among them, the intermediate module is further configured to: According to the local data packet headers and data transmission constraint condition information of each local data packet in the local input buffer, when determining that any local data packet in the local input buffer is data for directional transmission, use the local data packet as a custom protocol packet to be output, perform channel gating on the local input buffer, so as to cache the custom protocol packet to be output in the local input buffer into the directional output buffer.
[0069] It should be noted that the data transmission between the local transaction port and this router is directly through the local input port. The local input module receives the local data packets sent by the local transaction end through the local input port. The local data packets are custom protocol packets, so the local data packets can be directly cached into the local data cache unit corresponding to the transaction type in the local data cache area.
[0070] Specifically, when the destination node of the local data packet is another router node, it is determined that the local data packet is data for directional transmission. 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 into the directional output buffer for subsequent re - assembly and transmission.
[0071] Among them, the input ports of the data transmission system are divided into local input ports and directional input ports. The number of input ports can be custom - configured. The local input port is connected to the PE (local transaction end), and the number of ports and the data transmission bit - width are custom - configured according to the PE attributes. The data bit - width of the local input port is determined based on the custom protocol packet bit - width. The local input port inputs the custom protocol packets generated by the PE of the current node into the input buffer of the local input port. The number of local input ports is generally 1, 2, 3, or 4. The four directional input ports are respectively connected to adjacent router nodes, and input the minimum data units output by other nodes into the packet splitting module through the input directional input ports. The packet splitting module is connected to the directional input port, unpacks the input flit (minimum data unit) into a custom protocol packet and caches it into the directional input buffer.
[0072] Correspondingly, in an embodiment, the intermediate module is further configured to, when determining that any custom protocol packet to be output in the directional input buffer is data for local transmission, connect the data transmission channel between the directional input virtual channel where the custom protocol packet to be output is located and the local output port, so as to transmit the custom protocol packet to be output in the directional input virtual channel to the local transaction end through the local output port.
[0073] Similarly, if the local data packet is local transmission data, that is, the local data packet is the data sent from local transaction end 1 connected to the local router node to local transaction end 2, the intermediate module connects the data transmission channel between the local input virtual channel where the to-be-output custom protocol packet (local data packet) is located and the local output port, so as to transmit the to-be-output custom protocol packet in the local input virtual channel to local transaction end 2 through the local output port.
[0074] Among them, in the Mesh on-chip network, each node includes a router. The PE units supported by the router node include a processor core and its proxy, an L3 cache and its proxy, a DDR memory and its proxy, a UART, a Jtag interface, a Timer, a D2D interface, a PCIe interface, etc. The PCIe interface can support high-speed transmission protocols such as CXL and CCIX to improve the expansion ability of the on-chip network. The D2D interface can support UCIe to improve the inter-chip expansion ability.
[0075] Specifically, in one embodiment, a QoS modulator can also be integrated in the router to support dual-mode switching between the direct-through mode and the QoS value programming mode. The direct-through mode directly allocates the traffic bandwidth based on a preset QoS value (such as the QoS value sent by an adjacent router node) and directly passes this value through custom protocol packet assembly; the programming mode is that the QoS modulator real-time collects the traffic bandwidth information (such as buffer occupancy rate, link latency) fed back by the system, dynamically adjusts the preset QoS value, and passes the adjusted QoS value during packet assembly.
[0076] Specifically, in one embodiment, the QoS modulator can real-time monitor the link bandwidth utilization rate, the remaining capacity of the buffer, and the packet delay in all directions; 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 this transaction type, realizing the real-time perception of the network state and the QoS adaptive adjustment ability, laying a foundation for further improving the data transmission efficiency of the on-chip network.
[0077] The data transmission system provided by the embodiments of the present application includes: a direction input module, an intermediate module, and a direction output module; the direction input module is used to obtain the minimum data unit sent by an adjacent router, split the minimum data unit according to the transaction combination type of the minimum data unit, so as to split the minimum 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; the intermediate module is used to determine that any custom protocol packet to be output in the direction input buffer is the data for direction transmission according to the protocol header of each custom protocol packet in the direction input buffer and the data transmission constraint condition information, and perform channel gating on the direction input buffer, so as to cache the custom protocol packet to be output in the direction input buffer into the direction output buffer; the direction output module is used to recombine 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, so as to transmit the target data unit to the destination node through the target direction output port. In the system provided by the above solution, since the minimum data unit is split into custom protocol packets according to the transaction combination type and cached in the direction input buffer, it is convenient for subsequent protocol packets of different transaction types to be freely combined according to requirements, screen the custom protocol packets to be output based on the protocol header and data transmission constraint conditions and gate the channel, realize the caching of the custom protocol packets to be output in the direction output buffer, and finally recombine the custom protocol packets to be output in the direction output buffer according to the preset network bus bandwidth, so that the effective bit width of the obtained 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. Moreover, a packet structure with a high bit width for a mesh on-chip network and a router microarchitecture that supports the transmission and processing of the packet are provided. By supporting the type combination of custom protocol packets, the waste of data bit width in high-bandwidth transmission can be reduced, the data transmission efficiency of the on-chip network can be improved, and efficient high-bit-width data transmission can be realized.
[0078] Through the description of the above 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 a necessary general hardware platform. Of course, it can also be implemented by hardware, but in many cases, the former is a better implementation method.
[0079] The embodiments of the present application provide a data transmission method for realizing efficient data transmission between nodes in an on-chip network. The nodes include router nodes and transaction end nodes. The execution subject of the embodiments of the present application is an electronic device, such as a server, a desktop computer, a notebook computer, a tablet computer, and other electronic devices that can be used to deploy the data transmission system provided by the above embodiments.
[0080] As Figure 5As shown in the figure, it is a schematic flowchart of the data transmission method provided by the embodiment of the present application. The method includes: Step 501: Obtain the minimum data unit sent by the adjacent router; Step 502: Split the minimum data unit according to the transaction combination type of the minimum data unit, so as to split the minimum data unit into multiple custom protocol packets; Step 503: Cache each custom protocol packet into the direction input buffer according to the transaction type corresponding to each custom protocol packet; Step 504: When it is determined that any custom protocol packet to be output in the direction input buffer is the data for direction transmission according to the protocol header of each custom protocol packet and the data transmission constraint condition information in the direction input buffer, perform channel gating on the direction input buffer, so as to cache the custom protocol packet to be output in the direction input buffer into the direction output buffer; Step 505: Recombine 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.
[0081] Exemplarily, as Figure 6 shown, it is a schematic overall flowchart of the data transmission method provided by the embodiment of the present application. The original data packet is the minimum data unit. As Figure 6 shown, the process is an exemplary implementation manner of the process as Figure 5 . The implementation principles of the two are the same. For details, reference can be made to the above-mentioned data transmission system embodiment, which will not be elaborated here.
[0082] The embodiment of the present application also provides a data transmission device for executing the data transmission method provided by the above embodiment.
[0083] As Figure 7 shown, it is a schematic structural diagram of the data transmission device provided by the embodiment of the present application. The data transmission device 70 includes: an acquisition module 701, a splitting module 702, a caching module 703, a gating module 704, and a transmission module 705.
[0084] Among them, an acquisition module is configured to acquire the smallest data unit sent by an adjacent router; a splitting module is configured to split the original data according to the transaction combination type of the smallest data unit, so as to split the smallest data unit into multiple custom protocol packets; a caching module is configured to cache each custom protocol packet into a direction input buffer according to the transaction type corresponding to each custom protocol packet; a gating module is configured to perform channel gating on the direction input buffer when determining that any to-be-output custom protocol packet in the direction input buffer is data for direction transmission according to the protocol header of each custom protocol packet and the data transmission constraint condition information in the direction input buffer, so as to cache the to-be-output custom protocol packet in the direction input buffer into a direction output buffer; a transmission module is configured to recombine the to-be-output custom protocol packets in the direction output buffer according to a preset network bus bandwidth to obtain a target data unit, and transmit the target data unit to a destination node through a target direction output port.
[0085] For the description of the features in the embodiments corresponding to the data transmission device, reference can be made to the relevant description of the embodiments corresponding to the data transmission method, which will not be elaborated here one by one.
[0086] An embodiment of the present application further provides an electronic device, such as Figure 8 shown in the structural schematic diagram of the electronic device provided by the embodiment of the present application, including a processor 10 and a memory 20. A computer program is stored in the memory 20, and the processor 10 is configured to run the computer program to execute the steps in any one of the above data transmission method embodiments.
[0087] An embodiment of the present application further provides a computer-readable storage medium, in which a computer program is stored. Among them, the computer program is configured to execute the steps in any one of the above data transmission method embodiments when running.
[0088] In an exemplary embodiment, the above computer-readable storage medium may include, but is not limited to: USB flash drives, read-only memories (ROM for short), random access memories (RAM for short), mobile hard disks, magnetic disks, or optical discs and other various media that can store computer programs.
[0089] An embodiment of the present application further provides a computer program product. The above computer program product includes a computer program, and when the computer program is executed by a processor, the steps in any one of the above data transmission method embodiments are implemented.
[0090] Embodiments of the present application also provide another computer program product, including a non-volatile computer-readable storage medium storing a computer program, where the computer program, when executed by a processor, implements the steps in any of the above data transmission method embodiments.
[0091] Those skilled in the art can further realize that the units and algorithm steps of each example described in combination with the embodiments disclosed herein can be implemented by electronic hardware, computer software, or a combination of the two. To clearly illustrate the interchangeability of hardware and software, the components and steps of each example have been generally described according to their functions in the above description. Whether these functions are executed in a hardware or software manner 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 to exceed the scope of the present application.
[0092] The above has introduced in detail a data transmission system, method, electronic device, and storage medium provided by the present application. Specific examples are used herein to elaborate on the principle and implementation manner of the present application. The description of the above embodiments is only used to help understand the method and its core idea of the present application. It should be noted that for those of ordinary skill in the art, without departing from the principle of the present application, several improvements and modifications can be made to the present application, and these improvements and modifications also fall within the protection scope of the claims of the present application.
Claims
1. A data transmission system, characterized in that, Including: A direction input module, an intermediate module, and a direction output module; The direction input module is used to obtain the minimum data unit sent by an adjacent router, split the minimum data unit according to the transaction combination type of the minimum data unit, so as to split the minimum 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; The intermediate module is used to, when determining that any custom protocol packet to be output in the direction input buffer is data for direction transmission according to the protocol header of each custom protocol packet in the direction input buffer and the data transmission constraint condition information, perform channel gating on the direction input buffer, so as to cache the custom protocol packet to be output in the direction input buffer into the direction output buffer; The direction output module is used to recombine 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, so as to transmit the target data unit to a destination node through a target direction output port.
2. The data transmission system according to claim 1, wherein The direction input module includes: A data packet splitting module, which is used to split the minimum data unit according to the transaction combination type of the minimum data unit, so as to split the minimum 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; wherein, the custom protocol packet includes the protocol header and the protocol data packet, and the protocol header includes the transaction type, timing information, and transmission information.
3. The data transmission system according to claim 2, wherein The data packet splitting module is specifically used for: Caching each custom protocol packet into the corresponding direction input virtual channel according to the transaction type corresponding to each custom protocol packet; Wherein, the direction input buffer includes multiple direction input virtual channels, and the direction input virtual channels correspond one-to-one with the transaction types.
4. The data transmission system according to claim 1, characterized in that The intermediate module includes: A routing calculation module, which is used to determine the target routing information of each custom protocol packet according to the protocol header of each custom protocol packet in the direction input buffer and the data transmission constraint condition information, and send the target routing information to an arbitration and allocation module; The arbitration and allocation module is used to select a custom protocol packet to be output in the direction input buffer according to the target routing information of each custom protocol packet, and perform channel gating 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 in the direction input virtual channel into the direction output buffer; Wherein, 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, determining the target direction output port and transmission path of the custom protocol packet according to the transmission information represented by the protocol header of the custom protocol packet; Determine the target routing information of the custom protocol packet according to the data transmission constraint condition information, the target direction output port and the transmission path of the custom protocol packet; Among them, the protocol header of the custom protocol packet at least includes the destination node address, and the data transmission constraint condition information at least includes 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, wherein The arbitration and allocation module is specifically used for: For any one of the custom protocol packets, judge whether the custom protocol packet meets the output conditions according to 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.
7. The data transmission system according to claim 6, wherein The arbitration and allocation module includes: An arbiter, which is used to perform priority arbitration on the multiple candidate custom protocol packets when it is determined that there are multiple candidate custom protocol packets that meet the output conditions, so as to screen the candidate custom protocol packet with the highest priority among the multiple candidate custom protocol packets as the custom protocol packet to be output; An allocator, which is used to configure the crossbar according to the screening result of the arbiter for the custom protocol packet to be output; The crossbar is used 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 corresponding direction output virtual channel according to the configuration result of the allocator.
8. The data transmission system according to claim 4, characterized in that, The intermediate module further includes: A credit management module, which is used to obtain the credit values of each channel of the adjacent routers, 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; determine the credit values of each channel of this router according to 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; send the credit values of each channel of the adjacent routers and the credit values of each channel of this router to the routing calculation module; Among them, the data transmission constraint condition information at least includes the credit values of each channel of the adjacent routers and the credit values of each channel of this router.
9. The data transmission system according to claim 4, characterized in that The intermediate module further includes: A fault tolerance module, which is used to obtain the 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; Among them, the data transmission constraint condition information at least includes the component fault information and link fault information of this router.
10. The data transmission system according to claim 1, characterized in that The direction output module includes: A packet combination module, which is used to cluster the custom protocol packets to be output according to the protocol headers of the custom protocol packets to be output in the direction output buffer, so as to take multiple custom protocol packets to be output with the same target direction output port, transmission path and belonging to the same transaction as the custom protocol packets to be combined of the same category; For any of the above categories, reorganize the to-be-combined custom protocol packets of this category according to the preset network bus bandwidth to obtain target data units, and transmit the target data units to the destination node through the target direction output port; Among them, the protocol packet header includes the number of custom protocol packets in the same transaction and the serial number of the custom protocol packets in the same transaction.
11. The data transmission system according to claim 1, wherein The system further includes: A local input module, configured to obtain local data packets sent by a local transaction end, and cache the local data packets into a local input buffer according to the transaction type of the local data packets; Among them, the intermediate module is further configured to: According to the local data packet headers and data transmission constraint condition information of the local data packets in the local input buffer, when determining that any local data packet in the local input buffer is data for directional transmission, use the local data packet as a to-be-output custom protocol packet, and perform channel gating on the local input buffer to cache the to-be-output custom protocol packet in the local input buffer into a direction output buffer.
12. The data transmission system according to claim 11, wherein The intermediate module is further configured to: When determining that any to-be-output custom protocol packet in the direction input buffer is local transmission data, connect the data transmission channel between the direction input virtual channel where the to-be-output custom protocol packet is located and the local output port, so as to transmit the to-be-output custom protocol packet in the direction input virtual channel to the local transaction end through the local output port.
13. A data transmission method, applied to the data transmission system according to any one of claims 1 to 12, characterized in that, The method includes: Obtain the minimum data unit sent by an adjacent router; Split the minimum data unit according to the transaction combination type of the minimum data unit, so as to split the minimum data unit into multiple custom protocol packets; Cache each of the custom protocol packets into a direction input buffer according to the transaction type corresponding to each of the custom protocol packets; According to the protocol packet headers and data transmission constraint condition information of the custom protocol packets in the direction input buffer, when determining that any to-be-output custom protocol packet in the direction input buffer is data for directional transmission, perform channel gating on the direction input buffer to cache the to-be-output custom protocol packet in the direction input buffer into a direction output buffer; Reorganize the to-be-output custom protocol packets in the direction output buffer according to the preset network bus bandwidth to obtain target data units, so as to transmit the target data units to the destination node through the target direction output port.
14. An electronic device, characterized in that, It includes: A memory, configured to store a computer program; A processor, configured to implement 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, A computer program is stored in the computer-readable storage medium, wherein the computer program implements the steps of the data transmission method as described in claim 13 when being executed by a processor.
16. A computer program product, comprising a computer program, characterized in that, The computer program implements the steps of the data transmission method as described in claim 13 when being executed by a processor.
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
Vibration cutting device for fine pattern fabrication
KR102713677B1
Write combining protocol between processors and chipsets
US20050235067A1
Multi-protocol support for transactions
US20200293465A1