Routing method, system, electronic device and storage medium
By analyzing and merging multiple data packets in an on-chip network, forming a data combination packet and disassembly and transmitting it at the destination node, the blocking and delay problems caused by the simultaneous transmission of multiple data packets are solved, and the data transmission efficiency and system are improved performance.
Patent Information
- Application Number
- CN202410741575.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-06-07
- Publication Date
- 2025-01-14
- Estimated Expiration
- 2044-06-07
AI Technical Summary
In an on-chip network based on the consistent bus interface protocol, when multiple data packets are sent to the same master node at the same time, it may cause SXP to frequently send completion acknowledgement messages, resulting in increased blockage and delay.
When the first routing node receives multiple data packets, it is parsed and merged to form a data combination packet, and disassembled it at the second routing node, and finally transmits the data packet to the destination master node, avoiding frequent completion of confirmation messages send.
It reduces latency, reduces routing nodes and network loads, improves data transmission efficiency, simplifies the packet processing process of the master node, and enhances the scalability and stability of the system.
Smart Images

Figure CN118555252B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of chip technology, and in particular to a routing method based on a consistent bus interface protocol, a routing system based on a consistent bus interface protocol, an electronic device, and a computer-readable storage medium. Background Art
[0002] With the advancement of semiconductor technology, the number of processor cores, memories and dedicated functional modules integrated in the System on Chip (SoC) has increased significantly. The traditional bus structure is unable to cope with the large amount of data transmission requirements, so the Network on Chip (NoC) came into being.
[0003] When building a large multi-core system, using the coherent hub interconnect (CHI) protocol to build an on-chip network has significant advantages, including cache consistency support, high performance, scalability, flexible topology, quality of service support, and modular design. These advantages make the CHI protocol widely used and recognized in modern multi-core processors and chip systems. With the continuous development of chip systems, the CHI protocol will continue to play an important role in high-performance computing, heterogeneous computing, and large-scale multi-core systems.
[0004] When transmitting data packets based on the CHI protocol, the requesting node first sends the data packet to the Simple Cross Point (SXP), and then the SXP routes the data packet to the master node of the destination node. The master node will send the data required by the requesting node. When the requesting node receives the data, it will send a completion confirmation message to the master node to indicate that the requesting node has received the data. When the master node receives the completion confirmation message, it indicates that the processing of the entire request data packet is completed.
[0005] When SXP receives multiple data packets sent to the same master node, SXP will repeatedly send multiple completion confirmation messages to the master node, which may block the data packets and increase the delay. Summary of the invention
[0006] In view of the above problems, embodiments of the present invention are proposed to provide a routing method based on a consistent bus interface protocol, a routing system based on a consistent bus interface protocol, an electronic device and a computer-readable storage medium that overcome the above problems or at least partially solve the above problems.
[0007] In order to solve the above problems, an embodiment of the present invention discloses a routing method based on a consistent bus interface protocol, the method comprising: when a first routing node receives data packets in multiple directions, parsing the multiple data packets to obtain a first parsing result; merging the multiple data packets according to the first parsing result to obtain a data combination packet; when a second routing node receives the data combination packet, disassembling the data combination packet to obtain multiple data packets; and transmitting the multiple data packets to a destination master node.
[0008] Optionally, when the first routing node receives data packets in multiple directions, the multiple data packets are parsed to obtain a first parsing result, including: when the starting routing node or the intermediate routing node receives data packets in the response channel in multiple directions, the multiple data packets are parsed to obtain the first parsing result.
[0009] Optionally, when the starting routing node or the intermediate routing node receives the data packets of the response channels in multiple directions, the multiple data packets are parsed to obtain the first parsing result, including: when the starting routing node or the intermediate routing node receives the data packets of the response channels in multiple directions, whether the multiple data packets belong to the completion confirmation transaction type according to the field content of the operation code field of the multiple data packets; if the multiple data packets all belong to the completion confirmation transaction type, whether the multiple data packets correspond to the same master node according to the field content of the target identifier field of the multiple data packets; if the multiple data packets correspond to the same master node, or there is only one master node, it is considered that the first parsing result meets the preset merging requirements.
[0010] Optionally, after merging the plurality of data packets according to the first parsing result to obtain a data combination packet, the method further comprises: dynamically adding an extension flag to the data combination packet; wherein the extension flag is used to indicate a transaction identifier of the data combination packet and the number of the data packets.
[0011] Optionally, when the second routing node receives the data combination packet, the data combination packet is disassembled to obtain the multiple data packets, including: when the destination routing node receives the data combination packet, the data combination packet is parsed to obtain a second parsing result; and the data combination packet is disassembled according to the second parsing result to obtain the multiple data packets.
[0012] Optionally, the data combination package is disassembled according to the second parsing result to obtain a plurality of the data packets, including: determining the destination main node of the data combination package according to the field content of the target identifier field in the second parsing result and the coordinate information of the destination routing node; when the transaction type in the second parsing result indicates a completion confirmation transaction type, the data combination package is disassembled to obtain the number of independent data packets of the data packets.
[0013] Optionally, after the first routing node receives data packets in multiple directions, the method further includes: determining routing direction information of the data packet based on the field content of the target identifier field of the data packet and the coordinate information of the first routing node.
[0014] An embodiment of the present invention also discloses a routing system based on a consistent bus interface protocol, the system comprising: a first parsing module, used to parse multiple data packets to obtain a first parsing result when a first routing node receives data packets in multiple directions; a data packet merging module, used to merge multiple data packets according to the first parsing result to obtain a data combination packet; a data packet disassembly module, used to disassemble the data combination packet to obtain multiple data packets when a second routing node receives the data combination packet; and a data packet transmission module, used to transmit the multiple data packets to a destination master node.
[0015] Optionally, the first parsing module is used to parse multiple data packets to obtain the first parsing result when the starting routing node or the intermediate routing node receives the data packets of the response channels in multiple directions.
[0016] Optionally, the first parsing module includes: a transaction type judgment module, which is used to judge whether the multiple data packets belong to the completion confirmation transaction type according to the field content of the operation code field of the multiple data packets when the starting routing node or the intermediate routing node receives the data packets of the response channel in multiple directions; a master node judgment module, which is used to judge whether the multiple data packets correspond to the same master node according to the field content of the target identifier field of the multiple data packets if the multiple data packets all belong to the completion confirmation transaction type; and a merge requirement determination module, which is used to consider that the first parsing result meets the preset merge requirement if the multiple data packets correspond to the same master node, or there is only one master node.
[0017] Optionally, the system further includes: a flag adding module, configured to dynamically add an extended flag to the data combination package after the data packet merging module merges the multiple data packets according to the first parsing result to obtain a data combination package; wherein the extended flag is used to indicate the transaction identifier of the data combination package and the number of the data packets.
[0018] Optionally, the data packet disassembly module includes: a second parsing module, used to parse the data combination packet to obtain a second parsing result when the destination routing node receives the data combination packet; and a disassembly module, used to disassemble the data combination packet according to the second parsing result to obtain multiple data packets.
[0019] Optionally, the disassembly module includes: a main node determination module, used to determine the destination main node of the data package according to the field content of the target identifier field in the second parsing result and the coordinate information of the destination routing node; an independent disassembly module, used to disassemble the data package to obtain the number of independent data packets of the data packet when the transaction type in the second parsing result indicates the completion confirmation transaction type.
[0020] Optionally, the system also includes: a routing direction determination module, which is used to determine the routing direction information of the data packet according to the field content of the target identifier field of the data packet and the coordinate information of the first routing node after the first routing node receives data packets in multiple directions.
[0021] An embodiment of the present invention also discloses an electronic device, comprising: one or more processors; and one or more machine-readable media having instructions stored thereon, which, when executed by the one or more processors, enables the electronic device to execute a routing method based on a consistent bus interface protocol as described above.
[0022] The embodiment of the present invention further discloses a computer-readable storage medium, wherein the computer program stored in the storage medium enables a processor to execute the above-mentioned routing method based on the consistent bus interface protocol.
[0023] The embodiments of the present invention include the following advantages:
[0024] The embodiment of the present invention provides a routing solution based on a consistent bus interface protocol. When a first routing node receives data packets in multiple directions, the multiple data packets are parsed to obtain a first parsing result, and then the multiple data packets are merged according to the first parsing result to obtain a data combination packet. When a second routing node receives the data combination packet, the data combination packet is disassembled to obtain multiple data packets, and then the multiple data packets are transmitted to the destination master node.
[0025] The embodiment of the present invention combines multiple data packets into a data combination packet at the first routing node and then disassembles them at the second routing node, thereby avoiding the SXP from frequently sending completion confirmation messages when receiving multiple data packets, reducing the possibility of blocking, and thus reducing delay. The merging of data packets reduces the number of messages in the transmission process, thereby reducing the load of routing nodes and networks, and improving the overall data transmission efficiency. The data packet merging and disassembling mechanism can more efficiently utilize the bandwidth and routing resources of the on-chip network, avoid resource waste and conflicts, and improve the overall performance of the system. Through the merging and disassembling mechanism, the number of repeated completion confirmation messages received by the master node is reduced, the message processing process of the master node is simplified, and the processing complexity is reduced. When processing a large amount of data transmission, it can better support the expansion requirements of multi-core systems and large-scale on-chip systems, ensuring that efficient data transmission and processing capabilities can be maintained when the system scale is expanded. By reducing duplicate messages and avoiding blocking, the risk of network congestion and system crash is reduced, and the stability and reliability of the system are improved.
[0026] In summary, the embodiments of the present invention effectively alleviate the blocking and delay problems existing in traditional solutions by introducing the data packet merging and disassembly mechanism, improve data transmission efficiency, optimize resource utilization, simplify message processing, enhance the scalability and stability of the system, and significantly improve the overall performance of the on-chip system. BRIEF DESCRIPTION OF THE DRAWINGS
[0027] Figure 1 is a schematic diagram of a MESH topology structure according to an embodiment of the present invention;
[0028] Figure 2 is a schematic diagram of a data packet transmission channel between adjacent routing nodes according to an embodiment of the present invention;
[0029] Figure 3 is a schematic diagram of the routing direction of a routing node in an embodiment of the present invention;
[0030] Figure 4 is a schematic diagram of message transmission between a requesting node, a routing node and a master node according to an embodiment of the present invention;
[0031] Figure 5 It is a flowchart of a routing method based on a consistent bus interface protocol according to an embodiment of the present invention;
[0032] Figure 6 It is a schematic diagram of the structure of a data packet of a RESP channel including an extended flag bit according to an embodiment of the present invention;
[0033] Figure 7 It is a structural block diagram of a routing system based on a consistent bus interface protocol according to an embodiment of the present invention. DETAILED DESCRIPTION
[0034] In order to make the above-mentioned objects, features and advantages of the present invention more obvious and easy to understand, the present invention is further described in detail below with reference to the accompanying drawings and specific embodiments.
[0035] The embodiment of the present invention provides a routing solution based on the CHI protocol. Among them, the CHI protocol is a high-performance data transmission and consistency management protocol that is widely used in modern computing systems. It supports the efficient operation of various complex and data-intensive applications by providing high bandwidth, low latency and consistency management. Whether in high-performance computing, servers and data centers, or in embedded systems and artificial intelligence, the CHI protocol has demonstrated its powerful functions and flexibility.
[0036] When building a NoC system based on the CHI protocol, the mesh topology is a common NoC interconnect structure, which is widely used in multi-core processor systems due to its regularity and scalability. Figure 1 , shows a schematic diagram of a MESH topology structure according to an embodiment of the present invention. Figure 1 In the example, SXP0 to SXP5 are six SXPs. Each SXP can be connected to a request node (RN) and a home node (HN).
[0037] SXP in the MESH topology can be called a routing node. Each routing node in the MESH topology is connected to adjacent routing nodes to form a mesh structure. Figure 2 , shows a schematic diagram of a data packet transmission channel between adjacent routing nodes according to an embodiment of the present invention. The transmission of data packets between adjacent routing nodes includes four channel types: request (Request, referred to as REQ), response (Response, referred to as RESP), sniff (Snoop, referred to as SNP), and data (DATA, referred to as DAT). Each channel type includes two types: sending (TX) and receiving (RX). A total of eight channels are used to send and receive data packets. Figure 3 , shows a schematic diagram of the routing direction of the routing node of an embodiment of the present invention. Each routing node includes 6 routing directions: East (E), South (S), West (W), North (N), P0 and P1. Among them, the four directions of East, South, West and North include the above eight channel types, but the channel types of P0 and P1 directions are exceptions. There are only 7 channel types for the master node, excluding the RXSNP channel; and the request node does not include the TXSNP channel and the RXREQ channel.
[0038] Reference Figure 4, shows a schematic diagram of message transmission between a requesting node, a routing node and a master node according to an embodiment of the present invention. 1. RN sends a request message (ReadUnique) to SXP. 2. SXP forwards the request message packet to HN. 3. HN returns a response data message (CompData) to SXP. 4. SXP forwards the response data message to RN. 5. RN sends a completion confirmation message (CompACK) to SXP. 6. SXP forwards the completion confirmation message to HN.
[0039] Reference Figure 5 , shows a flowchart of a routing method based on a consistent bus interface protocol according to an embodiment of the present invention. The routing method based on a consistent bus interface protocol may specifically include the following steps:
[0040] Step 501: When a first routing node receives data packets in multiple directions, it parses the multiple data packets to obtain a first parsing result.
[0041] In an embodiment of the present invention, the first routing node is responsible for receiving multiple data packets from different directions. Since the paths and sources of data transmission can be very complex in multi-core processors and on-chip systems, the routing node needs to be able to process and manage data packets from various sources. The main task of this step is to parse these data packets, extract important information therein and generate parsing results.
[0042] In actual applications, the first routing node is usually connected to multiple input channels, each of which may come from a different processor core, memory module or peripheral device. When data packets arrive at the first routing node, the first routing node needs to receive and temporarily store these data packets in a timely manner for further processing. Parsing refers to analyzing the content of the data packet to extract useful information. Each data packet may contain header information, payload data, checksum information, etc. The parsing process usually includes the following steps:
[0043] Identify the transaction type of the response data packet: There are multiple transaction types for the response data packet (such as read request response, write request response, completion confirmation response transaction type, etc.). The first routing node needs to first identify the transaction type of the response data packet.
[0044] Extract header information: Header information usually contains the source address, destination address, priority, data length, etc. Parsing this information helps the first routing node decide how to process and forward the data packet.
[0045] Verify data packets: Verify the integrity and correctness of data packets, for example, by checking the cyclic redundancy check code to ensure that the data packets are not damaged during transmission.
[0046] Generate parsing results: Based on the parsed data, the first routing node generates one or more parsing results. One data packet corresponds to one parsing result, multiple data packets correspond to multiple parsing results, or multiple data packets correspond to one parsing result. The parsing results generally include: Source address and destination address: used to determine the routing path of the data packet. Data packet type: used to determine the operation to be performed (such as merging, forwarding, etc.). Priority and quality of service information: used for traffic management and resource allocation.
[0047] For example: suppose there are three cores A, B, and C in a multi-core system, and they send data packets to the first routing node at the same time. These data packets may be the read request response of core A, the write request response of core B, and the completion confirmation response of core C. After receiving these three data packets, the first routing node parses them in turn:
[0048] Read request response (A core): After parsing, information such as source address (A core), destination address (target memory location), request response type (read request response) and data length are extracted.
[0049] Write request response (B core): After parsing, the source address (B core), destination address (target memory location), request response type (write request response) and data content are extracted.
[0050] Completion confirmation response packet (C core): After parsing, the source address (C core), destination address (requester address), completion confirmation response data and other information are extracted.
[0051] Step 502: Combine multiple data packets according to the first parsing result to obtain a data combination packet.
[0052] In the embodiment of the present invention, after completing the parsing of the data packets, the first routing node will then merge the data packets according to the first parsing result to form a data combination packet. This step is intended to improve the efficiency of data transmission and reduce network congestion and delay.
[0053] In actual application, the premise of merging data packets is to analyze them according to the first parsing result. The first parsing result provides key information for each data packet, including source address, destination address, data type, priority, etc. The first routing node needs to determine which data packets can be merged, which usually depends on their destination address and type. According to the first parsing result and the system strategy, select an appropriate merging method. For example, data packets with the same destination address can be merged, or they can be classified and merged according to the data packet type (such as read request response, write request response, completion confirmation response, etc.).
[0054] Generate a data combination package: combine multiple data packets into one data combination package. The data combination package includes the following parts: Combined packet header: contains the overall information of the combined data packet, such as source address, destination address, data length, priority, etc. Combined packet body: splice the payload parts of all combined data packets together to form a complete combined packet body.
[0055] Dealing with conflicts and redundancies: During the merging process, potential conflicts and redundant data need to be handled. For example, if the data target addresses of multiple write requests overlap, it may be necessary to resolve the conflict according to certain rules (such as priority). In addition, duplicate data packets can be deduplicated to reduce the transmission load.
[0056] For example: Assume that the first routing node receives three data packets:
[0057] Data packet 1: The source address is core A, the destination address is memory 1, and the data is a read request response.
[0058] Data packet 2: The source address is core B, the destination address is memory 1, and the data is a write request response.
[0059] Data packet 3: The source address is C core, the destination address is memory 2, and the data is the completion confirmation response.
[0060] According to the first parsing result, the first routing node selects to merge by destination address. It is found that the destination addresses of data packet 1 and data packet 2 are the same, so the two data packets are merged into a data combination packet. The merged data combination packet includes: combination packet header: source address is core A and core B, destination address is memory 1, data type is read request response and write request response. Combination packet body: contains data of read request response and data of write request response.
[0061] Data packet 3 cannot be merged with other data packets due to its different destination address, so it is retained separately.
[0062] Step 503: When the second routing node receives the data combination packet, it disassembles the data combination packet to obtain multiple data packets.
[0063] In an embodiment of the present invention, the second routing node receives the data combination packet sent by the first routing node, and then disassembles it, restoring multiple data packets in the combination packet into separate data packets for further processing and forwarding.
[0064] In actual application, the second routing node receives a data packet from the first routing node through a network interface. The data packet contains the merged content of multiple data packets, so the integrity and correctness of the data must be ensured when receiving it. The header of the data packet contains important metadata information, including the number of data packets, source address, destination address, data type, etc. The second routing node first parses the header information to understand the overall structure and content of the data packet. Based on the header information, the second routing node disassembles the data in the data packet into independent data packets. The disassembly process includes the following steps:
[0065] Determine the data packet boundary: The data combination packet contains the payload data of multiple data packets. The second routing node needs to determine the starting position and ending position of each data packet based on the header information.
[0066] Extract data packet content: Extract the payload data of each data packet from the data packet body according to the determined boundaries.
[0067] Reconstruct packets: Reassemble the extracted payload data into individual packets, restoring their header information and other metadata.
[0068] Verify data packet integrity: During the disassembly process, the second routing node needs to verify the integrity and correctness of each restored data packet.
[0069] Processing and forwarding data packets: The disassembled data packets are further processed and forwarded according to their destination address and type. The second routing node may need to send the data packet to the next routing node or the destination master node based on the network topology and routing table.
[0070] For example: Assume that the second routing node receives a data combination packet, which is composed of two data packets merged by the first routing node:
[0071] Data packet header: source address is core A and core B, destination address is memory 1, including read request response and write request response.
[0072] Data combination package body: contains the data of the read request response and the data of the write request response.
[0073] The second routing node first parses the header of the data package to find out that the data package contains two data packets. Then, the second routing node determines the data boundary in the data package body based on the header information, extracts the data of the read request response and the write request response respectively, and reconstructs them into two independent data packets:
[0074] Data packet 1: The source address is core A, the destination address is memory 1, and the data is a read request response.
[0075] Data packet 2: The source address is core B, the destination address is memory 1, and the data is a write request response.
[0076] After the integrity of the disassembled data packet is verified, it is ready for further processing and forwarding.
[0077] Step 504, transmitting multiple data packets to the destination master node.
[0078] In the embodiment of the present invention, the second routing node needs to transmit the disassembled multiple data packets to their respective destination master nodes. This step ensures that the data packets eventually reach the expected target device and completes the data transmission task.
[0079] In actual applications, each data packet contains destination address information after being disassembled and reconstructed. The second routing node determines the master node to which each data packet needs to be transmitted based on these destination addresses. The destination master node can be a memory controller, input / output device, storage device, or other processor core. Based on the network topology and routing table, the second routing node needs to select the best path to transmit the data packet to the target master node. This includes determining the next hop routing node or the path directly transmitted to the destination master node. When selecting a route, factors such as network load, bandwidth, and latency need to be considered to ensure efficient data transmission. The second routing node transmits the data packet along the selected path. During the transmission process, the second routing node needs to ensure the integrity and order of the data packet to avoid packet loss and disorder. The transmission mechanism can include direct transmission, segmented transmission, or forwarding through relay nodes.
[0080] For example: Assume that the second routing node has disassembled and reconstructed two data packets:
[0081] Data packet 1: The source address is core A, the destination address is memory 1, and the data is a read request response.
[0082] Data packet 2: The source address is core B, the destination address is memory 1, and the data is a write request response.
[0083] The second routing node first determines that the destination master nodes of the two data packets are both memory 1. According to the routing table, the second routing node selects the best path to directly transmit the data packets to memory 1.
[0084] During the transmission process, the second routing node ensures the integrity and order of the data packets. If data packet 1 and data packet 2 are transmitted through different network paths, the second routing node will check the confirmation message after the transmission is completed to ensure that the data packet has successfully arrived at storage 1.
[0085] After receiving data packet 1 and data packet 2, memory 1 processes the read request response and write request response respectively, and sends a completion confirmation response message to the second routing node. After receiving the completion confirmation response message, the second routing node confirms that the data transmission task is completed, and the whole process ends.
[0086] The embodiment of the present invention provides a routing solution based on a consistent bus interface protocol. When a first routing node receives data packets in multiple directions, the multiple data packets are parsed to obtain a first parsing result, and then the multiple data packets are merged according to the first parsing result to obtain a data combination packet. When a second routing node receives the data combination packet, the data combination packet is disassembled to obtain multiple data packets, and then the multiple data packets are transmitted to the destination master node.
[0087] The embodiment of the present invention combines multiple data packets into a data combination packet at the first routing node and then disassembles them at the second routing node, thereby avoiding the SXP from frequently sending completion confirmation messages when receiving multiple data packets, reducing the possibility of blocking, and thus reducing delay. The merging of data packets reduces the number of messages in the transmission process, thereby reducing the load of routing nodes and networks, and improving the overall data transmission efficiency. The data packet merging and disassembling mechanism can more efficiently utilize the bandwidth and routing resources of the on-chip network, avoid resource waste and conflicts, and improve the overall performance of the system. Through the merging and disassembling mechanism, the number of repeated completion confirmation messages received by the master node is reduced, the message processing process of the master node is simplified, and the processing complexity is reduced. When processing a large amount of data transmission, it can better support the expansion requirements of multi-core systems and large-scale on-chip systems, ensuring that efficient data transmission and processing capabilities can be maintained when the system scale is expanded. By reducing duplicate messages and avoiding blocking, the risk of network congestion and system crash is reduced, and the stability and reliability of the system are improved.
[0088] In summary, the embodiments of the present invention effectively alleviate the blocking and delay problems existing in traditional solutions by introducing the data packet merging and disassembly mechanism, improve data transmission efficiency, optimize resource utilization, simplify message processing, enhance the scalability and stability of the system, and significantly improve the overall performance of the on-chip system.
[0089] In an exemplary embodiment of the present invention, when the first routing node receives data packets in multiple directions, one implementation method of parsing the multiple data packets to obtain the first parsing result is that when the starting routing node or the intermediate routing node receives data packets in the response channel in multiple directions, the multiple data packets are parsed to obtain the first parsing result. This implementation method is applicable to the case where the starting routing node or the intermediate routing node receives data packets in the response channel in multiple directions. In multi-core processors and systems on chip, multiplexing of data packets is a common situation, so this parsing method has wide applicability.
[0090] In actual application, the starting routing node or the intermediate routing node, as an important node in the network, is responsible for receiving data packets from response channels in multiple directions. These data packets may come from different processor cores, memory modules or peripheral devices, and have different source addresses and destination addresses. Once the starting routing node or the intermediate routing node receives multiple data packets, it begins to parse these data packets. The parsing process includes: determining the type of each data packet, such as a read request response, a write request response, a completion confirmation response packet, etc. Extracting key metadata information from each data packet, including source address, destination address, data type, data length, etc. Based on the extracted information, a first parsing result is generated. This first parsing result contains important attributes and features of each data packet.
[0091] For example: Assume that in a multi-core processor system, there are two cores, A and B, which send data packets of the response channel to the starting routing node. These data packets are read request response data packets and write request response data packets. After receiving these two data packets, the starting routing node begins to parse:
[0092] Read request response data packet (A core): After parsing, information such as source address (A core), destination address (memory), request response type (read request response) and data length are extracted.
[0093] Write request response data packet (B core): After parsing, the source address (B core), destination address (peripheral device), request response type (write request response) and data content are extracted.
[0094] The starting routing node generates a first parsing result, which includes information such as the source address, destination address, and data type of the two data packets, providing a basis for subsequent data packet processing and merging.
[0095] The embodiment of the present invention can integrate data packets from multiple directions into the same parsing process, reducing repeated parsing work and improving processing efficiency. By generating the first parsing result, the starting routing node or the intermediate routing node can summarize and count the key information of data packets from different directions, providing a reference for subsequent data processing and routing decisions. It avoids the situation where data packets in each direction are parsed independently, saves system resources and processor time, and improves the overall performance and response speed of the system. Through a unified parsing method, the consistency and correctness of the data packet can be better maintained, avoiding data errors or inconsistencies caused by parsing differences.
[0096] In an exemplary embodiment of the present invention, when the starting routing node or the intermediate routing node receives data packets of response channels in multiple directions, an implementation method of parsing multiple data packets to obtain a first parsing result is that when the starting routing node or the intermediate routing node receives data packets of response channels in multiple directions, it is determined whether the multiple data packets belong to the completion confirmation transaction type according to the field content of the operation code field of the multiple data packets; if the multiple data packets all belong to the completion confirmation transaction type, it is determined whether the multiple data packets correspond to the same master node according to the field content of the target identifier field of the multiple data packets; if the multiple data packets correspond to the same master node, or there is only one master node, it is considered that the first parsing result meets the preset merging requirements. This implementation method is a method for parsing and merging data packets of response channels in multiple directions according to the operation code and target identifier fields of the data packets. In this way, multiple data packets belonging to the same transaction type and targeting the same master node can be effectively identified and processed, thereby improving the efficiency and accuracy of data packet processing.
[0097] In actual application, the starting routing node or the intermediate routing node, as a key node in the network, is responsible for receiving data packets from response channels in multiple directions. These data packets may contain different types of operations for different master nodes. The starting routing node or the intermediate routing node parses the multiple data packets received and pays attention to the field content of the opcode field. The opcode field is usually used to indicate the transaction type of the data packet, such as read request response, write request response, completion confirmation response, etc. The starting routing node or the intermediate routing node determines whether these data packets belong to the completion confirmation transaction type according to the opcode field. If the opcode fields of multiple data packets are all completion confirmation transaction types, it means that these data packets belong to the same transaction type. The starting routing node or the intermediate routing node continues to determine whether these data packets correspond to the same master node to determine whether they can be merged for processing. For data packets that meet the completion confirmation transaction type, the starting routing node or the intermediate routing node further parses the field content of the target identifier field. The target identifier field is usually used to indicate the destination master node of the data packet. The starting routing node or the intermediate routing node determines whether these data packets correspond to the same master node according to the content of the target identifier field. If multiple data packets all belong to the completion confirmation transaction type and correspond to the same master node, or there is only one master node in the system, the starting routing node or the intermediate routing node considers that these data packets can be merged for processing.
[0098] For example: Assume that a starting routing node receives three data packets, which are data packets of the completion confirmation transaction type for the master node W, and their target identifier fields are all W. The operation code fields of these data packets indicate that they are all completion confirmation type data packets. The starting routing node determines according to the parsing rules that these three data packets belong to the same transaction type and correspond to the same master node W. The starting routing node generates a first parsing result, indicating that these three data packets are all completion confirmation operations for the master node W.
[0099] The embodiment of the present invention can avoid parsing unqualified data packets by parsing and judging according to the operation code and target identifier field, reduce the number of parsing times, and improve data processing efficiency. According to the field content of the operation code and target identifier field, it is accurately judged whether multiple data packets belong to the same transaction type and are targeted at the same master node, thereby avoiding data packet confusion or erroneous processing caused by parsing errors. By merging data packets belonging to the same transaction type and targeted at the same master node, the data merging and processing process can be optimized, and the overall performance and efficiency of the system can be improved. After merging qualified data packets, the starting routing node can directly perform data routing and forwarding according to the merged data packets, thereby simplifying the data processing process and reducing the complexity of the system.
[0100] In an exemplary embodiment of the present invention, after merging multiple data packets into a data assembly packet according to the first parsing result, an implementation method is to dynamically add an extension flag to the data assembly packet; wherein the extension flag is used to indicate the transaction identifier of the data assembly packet, the number of data packets, etc. This implementation method is to add an extension flag to the data assembly packet after merging multiple data packets into the data assembly packet, which is used to indicate important information such as the transaction identifier of the data assembly packet and the number of data packets. Through this implementation method, the data assembly packet can be managed and processed more flexibly, and the scalability and adaptability of the system can be improved.
[0101] In the actual application process, according to the first parsing result, the first routing node merges multiple data packets to generate a data combination packet. This process may include operations such as merging the content of the data packet and reconstructing the format of the data packet to ensure that the data combination packet contains all the information after merging. In the process of generating the data combination packet, the first routing node dynamically adds an extension flag bit to the data combination packet. These extension flag bits are used to indicate the characteristics and attributes of the data combination packet, such as a transaction identifier, the number of data packets, etc. The extension flag bit can be one or more specific fields for identifying and describing the content of the data combination packet. The first routing node sets the content of the extension flag bit as needed. For example, a field can be used to indicate the transaction identifier of the data combination packet (such as a read request response, a write request response, a completion confirmation response, etc.), and another field indicates the number of data packets. The content of these extension flag bits can be defined and set according to specific application scenarios and requirements. In the transmission and processing of the data combination packet, the first routing node needs to maintain the content of the extension flag bit. This includes updating the value of the extension flag bit during the transmission of the data packet to ensure that the content of the extension flag bit is consistent with the actual situation of the data combination packet.
[0102] For example: Assume that an intermediate routing node receives two data packets, which are data packets of the completion confirmation transaction type for the master node W. According to the first parsing result, the intermediate routing node merges the two data packets into a data combination packet, and then dynamically adds an extension flag. In the process of adding the extension flag, the intermediate routing node sets the first flag to indicate that the transaction identifier is the completion confirmation transaction identifier, and the second flag indicates that the number of data packets is 2. In this way, the data combination packet contains the merged completion confirmation transaction information, and is identified and described by the extension flag.
[0103] By adding an extended flag bit, the embodiment of the present invention can describe and identify the content and characteristics of the data package in more detail, thereby improving the descriptiveness and readability of the data package. The extended flag bit can be flexibly set according to actual needs, and can represent different transaction identifiers and data packet numbers, thereby improving the flexibility and scalability of the system. After adding the extended flag bit, the first routing node can more efficiently identify and process data packets of different transaction types when processing the data package, thereby simplifying the process and logic of data processing. The extended flag bit can be customized and expanded according to system requirements, and can adapt to different scenarios and requirements, thereby improving the adaptability and versatility of the system.
[0104] In an exemplary embodiment of the present invention, when the second routing node receives a data combination packet, an implementation method of disassembling the data combination packet to obtain multiple data packets is that when the destination routing node receives the data combination packet, the data combination packet is parsed to obtain a second parsing result; and the data combination packet is disassembled according to the second parsing result to obtain multiple data packets. This implementation method is for how to disassemble the data combination packet to obtain multiple data packets when the second routing node receives the data combination packet. By first parsing the data combination packet to obtain the second parsing result, and then disassembling the data combination packet according to the second parsing result, the data combination packet can be effectively split into multiple data packets and correctly routed to the destination main node. This implementation method helps to improve the processing efficiency and accuracy of data packets, and can better adapt to complex data transmission scenarios.
[0105] In actual application, the second routing node receives a data combination package, which includes multiple merged data packets. The second routing node parses the received data combination package to obtain a second parsing result. The second parsing result includes information such as the structure, content, and number of data packets of the data combination package. According to the second parsing result, the second routing node disassembles the data combination package and splits it into multiple separate data packets. The disassembly process needs to correctly identify and extract the content and attributes of each data packet according to the second parsing result. The multiple disassembled data packets are routed and transmitted according to their destination information to ensure that each data packet can correctly reach the destination routing node.
[0106] For example: Assume that a destination routing node receives a data package that contains multiple data packets for the master node W. According to the second parsing result, the destination routing node can correctly identify that the data package contains the data packets of the master node W, and can know the number of data packets. According to the second parsing result, the destination routing node disassembles the data package and splits it into two data packets, one is data packet 1 and the other is data packet 2. Then, the two data packets are routed to the master node W to complete the data transmission.
[0107] The embodiment of the present invention can more quickly identify and disassemble the data package by first parsing the data package to obtain the second parsing result, thereby improving the efficiency of data package processing. By parsing and disassembling the data package, the content and attributes of each data package can be accurately extracted to ensure that the data package can be correctly transmitted to the destination. It is suitable for processing complex data transmission scenarios and can effectively process data packages containing multiple data packages, thereby improving the adaptability and flexibility of the system.
[0108] In an exemplary embodiment of the present invention, one implementation method of disassembling a data assembly package according to the second parsing result to obtain multiple data packets is to determine the destination master node of the data assembly package according to the field content of the target identifier field in the second parsing result and the coordinate information of the destination routing node; when the transaction type in the second parsing result indicates the completion confirmation transaction type, the data assembly package is disassembled to obtain the number of independent data packets of the data packet. This implementation method is for the case where the data assembly package is disassembled according to the second parsing result to obtain multiple data packets. In this implementation method, the destination routing node determines the destination master node of the data assembly package according to the target identifier field in the second parsing result and the coordinate information of the destination routing node. At the same time, when the transaction type in the second parsing result indicates the completion confirmation transaction type, the destination routing node disassembles the data assembly package to obtain the number of independent data packets of the data packet. According to the target identifier field in the second parsing result and the coordinate information of the destination routing node, the destination routing node can determine the destination master node of the data assembly package. In this way, it can be ensured that the disassembled data packet can be accurately transmitted to the destination master node. When the transaction type in the second parsing result indicates the completion confirmation transaction type, the destination routing node disassembles the data assembly package. The process of disassembling is to disassemble the data package into the number of independent data packets.
[0109] For example: Assume that a destination routing node receives a data packet, the second parsing result shows that the target identifier field indicates the master node W, the transaction type is the completion confirmation transaction type, and the number of data packets is 4. According to the coordinate information of the destination routing node, the destination routing node determines that the destination master node of the data packet is the master node W. According to the second parsing result, the destination routing node disassembles the data packet to obtain 4 independent data packets.
[0110] The embodiment of the present invention can ensure that the disassembled data packet can be accurately transmitted to the destination main node by determining the destination main node of the data combination packet according to the second parsing result, thereby improving the accuracy of data transmission. When the transaction type indicates the completion confirmation transaction type, the destination routing node only needs to perform simple disassembly of the data combination packet without performing complex data processing operations, thereby saving system resources and energy consumption. By determining the destination main node according to the target identifier field and coordinate information, the destination routing node can route and transmit the data packet more quickly, thereby improving the efficiency of data transmission.
[0111] In an exemplary embodiment of the present invention, after the first routing node receives data packets in multiple directions, an implementation method is to determine the routing direction information of the data packet based on the field content of the target identifier field of the data packet and the coordinate information of the first routing node. This implementation method is for how to determine the routing direction information of the data packet after the first routing node receives data packets in multiple directions. In this implementation method, the first routing node determines the routing direction information of the data packet based on the target identifier field of the data packet and the coordinate information of the first routing node. In this way, the direction to which the data packet should be routed can be determined after the data packet is received, thereby speeding up the routing and transmission speed of the data packet.
[0112] In actual application, according to the target identifier field of the data packet and the coordinate information of the first routing node, the first routing node determines the routing direction information of the data packet, which may specifically include the coordinate information of the next routing node and the coordinate information of the destination routing node. In this way, the direction to which the data packet should be routed can be determined before the data packet is received.
[0113] For example: Assume that a first routing node receives data packets in multiple directions, each of which contains an identifier field of a target master node. Based on the target identifier field and the coordinate information of the first routing node, the first routing node can determine the routing direction information of each data packet, that is, determine the direction to which the data packet should be routed.
[0114] Based on the above description of a routing method embodiment based on a consistent bus interface protocol, a routing scheme for merging multiple CompACK messages based on the CHI protocol is introduced below. The routing node improves the routing efficiency and processing capacity of data packets by merging and sending multiple CompACK transaction type messages.
[0115] The routing solution for merging multiple CompACK messages based on the CHI protocol mainly includes the following technical contents:
[0116] 1. Parsing of data packets:
[0117] Data packets are transmitted based on the CHI protocol, including the above 8 data channels, and CompACK transaction type messages are transmitted on the RESP channel. When the routing node is transmitting data packets, when SXP receives data packets from multiple RESP channels at the same time, it will parse the data packets on the RESP channel. The first thing to parse is the operation code (Opcode) field to determine whether it is a CompACK transaction type message. If it is a CompACK transaction type message, the target identifier (TgtID) field is parsed to determine whether the target nodes of multiple data packets are the same HN (if there is only one HN in the system, no judgment is required).
[0118] 2. SXP adds a flag:
[0119] When there are multiple CompACK transaction type packets that need to be merged, an extension flag bit needs to be added in SXP to record how many CompACK transaction type packets there are and which RN sent them to HN. The source identifier (SrcID) and transaction identifier TxnID also need to be recorded. In large systems (such as 128-core interconnect systems), too many extension flag bits may be occupied when merging packets. Although this reduces latency, it may introduce the following problems:
[0120] ① Flag resource exhaustion: As the number of cores increases, the number of extended flags required also increases.
[0121] This may result in insufficient flags.
[0122] ② Storage overhead: More flag bits also mean that each data packet requires more storage space, which may increase storage overhead.
[0123] Therefore, the embodiment of the present invention takes the addition of the above-mentioned extended flag bit as an example for explanation, which is not a limitation on the extended flag bit.
[0124] Reference Figure 6 , shows a schematic diagram of the structure of a data packet of a RESP channel including an extended flag bit according to an embodiment of the present invention.
[0125] If the extended flag contains three bits, the first extended flag bit: equal to 1 indicates a data packet of the CompACK transaction type. The second and third bits are used to indicate how many data packets are merged:
[0126] 2'b11 means merging three data packets;
[0127] 2'b10 means merging two data packets;
[0128] 2'b01 means 1 data packet is merged;
[0129] 2'b00 means 0 packets are merged.
[0130] exist Figure 6 In the example, the data packet is 86 bits, SrcID is 7 bits, TxnID is 12 bits, and the 66th bit ([2:0]) is 1, which indicates a data packet of the CompACK transaction type, and RESP[64:0] is a merged data packet. The number and capacity of the extended flag bits are related to the merging capability. If the system design is large and requires more data packets to be merged, these extended flag bits can be added.
[0131] 3. Final SXP routing node processing
[0132] Check whether the 66th bit of the RESP channel is 1. If it is 1, it means that data packets have been merged. Then check how many data packets have been merged. Disassemble the data packets according to the number of merged data packets. After disassembly, arrange the data packets in a consistent order and then send them to HN in a consistent order.
[0133] Combined with the above Figure 1 In the MESH topology, it is assumed that the peripheral RN of SXP0 sends a data packet of the CompACK transaction type to the peripheral HN of SXP4. The following is the detailed workflow:
[0134] 1. Determine the routing direction
[0135] SXP0 receives the data packet of the RESP channel of the P0 port, and compares its own coordinate information (0, 0) with the Tgtid field in the data packet to determine the routing direction.
[0136] 2. Data Packet Analysis
[0137] After SXP0 receives the data packet from the RESP channel, it will perform the following operations:
[0138] ① Data packet type determination: Determine whether the data packet is of CompACK transaction type by parsing the Opcode field.
[0139] ②Mark setting: If it is a CompACK transaction type, the 66th bit of the RESP data packet is marked as 1.
[0140] ③ Packet merging: Next, check whether there are other packets of this transaction type in other directions. For example, if the P1 port also receives a packet of the CompACK transaction type, the two packets are merged into one. At this time, just record the TxnID value of the RESP channel of the P1 port in the extended flag bit, and set the remaining three extended flag bits to 2'b10, indicating that the two packets are merged.
[0141] 3. Processing of intermediate routing nodes
[0142] When a packet is routed through an intermediate routing node (such as SXP1 or SXP3), the following operations are performed:
[0143] ① Analysis and judgment: After receiving the data packet of the RESP channel, the intermediate routing node determines whether it is a data packet of the CompACK transaction type by judging whether the 66th bit of the extension flag is 1.
[0144] ②Merge operation: Same as SXP0, the intermediate routing node analyzes the data packet and determines whether it is necessary to merge the data packets from other directions. If there is no data packet that needs to be merged, the routing of the data packet continues.
[0145] 4. Processing of the destination routing node
[0146] Finally, the data packet is routed to the destination routing node SXP4, which performs the following operations:
[0147] ① Coordinate comparison: SXP4 compares the coordinates of its own node with the TgtID in the data package to confirm that the data package should be sent to HN.
[0148] ② Disassemble the data package: Determine whether it is a data package of the CompACK transaction type by judging whether the 66th bit of the extension flag is 1. If the extension flag indicates that two data packets are merged, SXP4 starts to disassemble the data package into two independent data packets and remove the redundant extension flag bit.
[0149] ③ Send data packets: Send the two disassembled data packets to HN respectively in the consistency order.
[0150] The routing solution for merging multiple CompACK messages based on the CHI protocol provided by the embodiment of the present invention reduces the number of data packets, reduces the load of routing nodes, and improves routing efficiency and data packet processing capabilities by merging multiple CompACK transaction type messages. After merging multiple CompACK transaction type messages, the number of data packet transmissions and the processing time of routing nodes are reduced, thereby reducing the delay in data packet transmission and improving the real-time performance of data transmission.
[0151] It should be noted that, for the sake of simplicity, the method embodiments are described as a series of action combinations, but those skilled in the art should be aware that the embodiments of the present invention are not limited by the order of the actions described, because according to the embodiments of the present invention, certain steps can be performed in other orders or simultaneously. Secondly, those skilled in the art should also be aware that the embodiments described in the specification are all preferred embodiments, and the actions involved are not necessarily required by the embodiments of the present invention.
[0152] Reference Figure 7 , shows a structural block diagram of a routing system based on a consistent bus interface protocol according to an embodiment of the present invention. The routing system based on a consistent bus interface protocol may specifically include the following modules.
[0153] A first parsing module 71, configured to parse a plurality of data packets to obtain a first parsing result when the first routing node receives data packets in multiple directions;
[0154] A data packet merging module 72, configured to merge a plurality of the data packets according to the first parsing result to obtain a data combination packet;
[0155] The data packet disassembling module 73 is used for disassembling the data combination packet to obtain a plurality of data packets when the second routing node receives the data combination packet;
[0156] The data packet transmission module 74 is used to transmit the plurality of data packets to the destination master node.
[0157] In an exemplary embodiment of the present invention, the first parsing module 71 is used to parse multiple data packets to obtain the first parsing result when the starting routing node or the intermediate routing node receives the data packets of the response channels in multiple directions.
[0158] In an exemplary embodiment of the present invention, the first parsing module 71 includes:
[0159] A transaction type determination module, configured to determine whether a plurality of data packets belong to a completion confirmation transaction type according to field contents of operation code fields of a plurality of data packets when the starting routing node or the intermediate routing node receives the data packets of the response channels in multiple directions;
[0160] a master node determination module, configured to determine whether the plurality of data packets correspond to the same master node according to the field contents of the target identifier fields of the plurality of data packets if the plurality of data packets all belong to the completion confirmation transaction type;
[0161] The merging requirement determination module is used to consider that the first parsing result meets the preset merging requirement if a plurality of the data packets correspond to the same master node, or there is only one master node.
[0162] In an exemplary embodiment of the present invention, the system further comprises:
[0163] a flag adding module, configured to dynamically add an extended flag to the data combination packet after the data packet merging module 72 merges the plurality of data packets according to the first parsing result to obtain a data combination packet;
[0164] The extension flag is used to indicate the transaction identifier of the data combination packet and the number of the data packets.
[0165] In an exemplary embodiment of the present invention, the data packet disassembly module 73 includes:
[0166] A second parsing module, configured to parse the data combination package to obtain a second parsing result when the destination routing node receives the data combination package;
[0167] The disassembling module is used to disassemble the data combination package according to the second parsing result to obtain multiple data packets.
[0168] In an exemplary embodiment of the present invention, the disassembly module comprises:
[0169] A master node determination module, configured to determine the destination master node of the data package according to the field content of the target identifier field in the second parsing result and the coordinate information of the destination routing node;
[0170] The independent disassembling module is used to disassemble the data combination package to obtain the number of independent data packets of the data packet when the transaction type in the second parsing result indicates the completion confirmation transaction type.
[0171] In an exemplary embodiment of the present invention, the system further comprises:
[0172] The routing direction determination module is used to determine the routing direction information of the data packet according to the field content of the target identifier field of the data packet and the coordinate information of the first routing node after the first routing node receives the data packets in multiple directions.
[0173] As for the system embodiment, since it is basically similar to the method embodiment, the description is relatively simple, and the relevant parts can refer to the partial description of the method embodiment. Each embodiment in this specification is described in a progressive manner, and each embodiment focuses on the differences from other embodiments, and the same and similar parts between the embodiments can refer to each other.
[0174] It will be appreciated by those skilled in the art that the embodiments of the present invention may be provided as methods, devices, or computer program products. Therefore, the embodiments of the present invention may take the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Moreover, the embodiments of the present invention may take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program codes.
[0175] The embodiments of the present invention are described with reference to the flowcharts and / or block diagrams of the methods, terminal devices (systems), and computer program products according to the embodiments of the present invention. It should be understood that each process and / or block in the flowchart and / or block diagram, as well as the combination of the processes and / or blocks in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing terminal device to generate a machine, so that the instructions executed by the processor of the computer or other programmable data processing terminal device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 These computer program instructions can also be stored in a computer-readable memory that can guide a computer or other programmable data processing terminal device to work in a specific way, so that the instructions stored in the computer-readable memory produce a product including an instruction device, which implements the functions specified in the process. Figure 1 A process or multiple processes and / or boxes Figure 1 These computer program instructions can also be loaded onto a computer or other programmable data processing terminal device, so that a series of operation steps are executed on the computer or other programmable terminal device to produce a computer-implemented process, so that the instructions executed on the computer or other programmable terminal device provide for implementing the process in the process. Figure 1 A process or multiple processes and / or boxes Figure 1 A step that specifies a function in one or more boxes.
[0176] Although the preferred embodiments of the present invention have been described, those skilled in the art may make additional changes and modifications to these embodiments once they have learned the basic creative concept. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments and all changes and modifications that fall within the scope of the embodiments of the present invention.
[0177] Finally, it should be noted that, in this article, relational terms such as first and second, etc. are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "include", "comprise" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or terminal device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or terminal device. In the absence of further restrictions, the elements defined by the sentence "comprise a ..." do not exclude the existence of other identical elements in the process, method, article or terminal device including the elements.
[0178] The above is a detailed introduction to a routing method based on a consistent bus interface protocol and a routing system based on a consistent bus interface protocol provided by the present invention. Specific examples are used in this article to illustrate the principles and implementation methods of the present invention. The description of the above embodiments is only used to help understand the method of the present invention and its core idea. At the same time, for those skilled in the art, according to the idea of the present invention, there will be changes in the specific implementation method and application scope. In summary, the content of this specification should not be understood as a limitation on the present invention.
Claims
1. A routing method based on a consistent bus interface protocol, characterized in that: The method comprises: When the first routing node receives data packets in multiple directions, the first routing node parses the multiple data packets to obtain a first parsing result, wherein the data packets at least include a target identifier field; after the first routing node receives data packets in multiple directions, the routing node determines routing direction information of the data packets according to the field content of the target identifier field of the data packets and the coordinate information of the first routing node, wherein the routing direction information includes the coordinate information of the next routing node and the coordinate information of the destination routing node; According to the first parsing result, merging the plurality of data packets to obtain a data combination packet; When the second routing node receives the data combination packet, it disassembles the data combination packet to obtain a plurality of data packets; The plurality of data packets are transmitted to a destination master node.
2. The method according to claim 1, characterized in that When the first routing node receives data packets in multiple directions, parsing the multiple data packets to obtain a first parsing result includes: When the starting routing node or the intermediate routing node receives the data packets of the response channels in multiple directions, the multiple data packets are parsed to obtain the first parsing result.
3. The method according to claim 2, characterized in that When the starting routing node or the intermediate routing node receives the data packets of the response channels in multiple directions, the multiple data packets are parsed to obtain the first parsing result, including: When the starting routing node or the intermediate routing node receives the data packets of the response channels in multiple directions, judging whether the multiple data packets belong to the completion confirmation transaction type according to the field contents of the operation code fields of the multiple data packets; If the plurality of data packets all belong to the completion confirmation transaction type, determining whether the plurality of data packets correspond to the same master node according to the field contents of the target identifier fields of the plurality of data packets; If a plurality of the data packets correspond to the same master node, or there is only one master node, it is considered that the first parsing result meets the preset merging requirement.
4. The method according to claim 1, characterized in that After merging the plurality of data packets according to the first parsing result to obtain a data combination packet, the method further includes: Dynamically adding an extension flag to the data combination packet; The extension flag is used to indicate the transaction identifier of the data combination packet and the number of the data packets.
5. The method according to claim 3, characterized in that: When the second routing node receives the data combination packet, the second routing node disassembles the data combination packet to obtain a plurality of data packets, including: When the destination routing node receives the data combination package, the destination routing node parses the data combination package to obtain a second parsing result; The data combination packet is disassembled according to the second parsing result to obtain a plurality of the data packets.
6. The method according to claim 5, characterized in that The step of disassembling the data combination packet according to the second parsing result to obtain a plurality of data packets includes: Determine the destination master node of the data package according to the field content of the target identifier field in the second parsing result and the coordinate information of the destination routing node; When the transaction type in the second parsing result indicates a completion confirmation transaction type, the data combination packet is disassembled to obtain the number of independent data packets of the data packet.
7. A routing system based on a consistent bus interface protocol, characterized in that: The system comprises: A first parsing module, configured to parse a plurality of data packets to obtain a first parsing result when the first routing node receives data packets in multiple directions, wherein the data packets at least include a target identifier field; after the first routing node receives data packets in multiple directions, determine routing direction information of the data packets according to the field content of the target identifier field of the data packets and the coordinate information of the first routing node, wherein the routing direction information includes the coordinate information of the next routing node and the coordinate information of the destination routing node; A data packet merging module, configured to merge a plurality of the data packets according to the first parsing result to obtain a data combination packet; A data packet disassembling module, configured to disassemble the data combination packet to obtain a plurality of data packets when the second routing node receives the data combination packet; The data packet transmission module is used to transmit the multiple data packets to the destination master node.
8. An electronic device, characterized in that: include: one or more processors; and one or more machine-readable media having instructions stored thereon, which, when executed by the one or more processors, enable the electronic device to execute a routing method based on a consistent bus interface protocol as described in any one of claims 1 to 6.
9. A computer-readable storage medium, characterized in that: The computer program stored therein enables the processor to execute a routing method based on a consistent bus interface protocol as described in any one of claims 1 to 6.
Citation Information
Patent Citations
Data sending method and data merging device
CN107295036A
Distributed XML data processing method and system
CN110297944A
Data packet coding method for supporting on-chip and inter-chip integrated routing
CN114615215A
CoAP protocol-based ship repairing and building power equipment interface data transmission method, system and device
CN116828071A