Data packet transmission method and apparatus, electronic device, storage medium, and program product

CN122661177BActive Publication Date: 2026-10-20JINAN MAIWEI INTELLIGENT TECHNOLOGY CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202611106495.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2026-07-24
Publication Date
2026-10-20
Estimated Expiration
2046-07-24

AI Technical Summary

Technical Problem

[0003]本申请提供了一种数据包传输方法、装置、电子设备、存储介质及程序产品,以至少解决相关技术中的方式后端布局布线复杂的问题

Benefits of technology

[0008]通过本申请,网络系统包括多个路由节点,多个路由节点排列为N行N列的二维阵列;每个路由节点与同行相邻路由节点及同列相邻路由节点通过链路连接;针对任一对相邻路由节点,该对相邻路由节点之间的链路数量基于该对相邻路由节点的位置进行设置。可见,本申请的网络系统为对N×N二维Mesh片上网络进行改进后生成的网络系统。基于网络系统建立坐标系,为每个路由节点设置对应的坐标;针对任一对相邻路由节点,基于该对相邻路由节点的坐标,确定该对相邻路由节点之间的不同传输方向上的链路数量,该对相邻路由节点之间的总链路数量为N;在需要传输数据包时,根据源路由节点和目的路由节点的横坐标差值和纵坐标差值,确定数据包在横轴方向上的每一跳所使用的第一互斥链路以及在纵轴方向上的每一跳所使用的第二互斥链路,进而将数据包从源路由节点传输至目的路由节点,避免了不同主机发送的数据包的传输路径存在共用链路的情况,满足了将PCIeSwitch芯片分割为两个Virtual PCIe Switch的功能要求,且降低了布局布线复杂性。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122661177B_ABST
    Figure CN122661177B_ABST
Patent Text Reader

Abstract

The application discloses a data packet transmission method and device, electronic equipment, storage medium and program product, relates to the technical field of data transmission, and comprises the following steps: improving an NxN two-dimensional Mesh network on a chip, generating a network system, and establishing a coordinate system, and setting a corresponding coordinate for each routing node; for any pair of adjacent routing nodes, based on the coordinates of the pair of adjacent routing nodes, determining the number of links in different transmission directions between the pair of adjacent routing nodes, and the total number of links between the pair of adjacent routing nodes is N; when data packets need to be transmitted, according to the horizontal coordinate difference and the vertical coordinate difference of a source routing node and a destination routing node, determining a first mutual exclusion link used by each hop of the data packets in the horizontal axis direction and a second mutual exclusion link used by each hop of the data packets in the vertical axis direction; the transmission path of the data packets sent by different hosts is avoided to share links, and the layout and wiring complexity is reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of data transmission technology, and in particular to data packet transmission methods, apparatus, electronic devices, storage media, and program products. Background Technology

[0002] With the rapid development of big data, artificial intelligence, cloud computing, and other fields, the demand for high-speed data transmission is increasing. In related technologies, high-speed data transmission is achieved through Peripheral Component Interconnect Express (PCIe) switches. To meet the requirement of multiple hosts sharing a single PCIe switch chip, a single PCIe switch chip is divided into multiple virtual PCIe switch chips to solve the multi-host problem. After dividing a single PCIe switch chip into multiple virtual PCIe switch chips, the following functional requirements must be met: First, requests from any upstream port (USP) of any virtual PCIe switch to any downstream port (DSP) within that virtual PCIe switch can be transmitted at full bandwidth; second, requests from the USPs of multiple virtual PCIe switches to their respective DSPs should not interfere with each other. In order to achieve the above functional requirements, when the PCIe Switch chip is divided into two Virtual PCIe Switches, the internal interconnection network of the PCIe Switch chip will use a fully interconnected network. This method has more links in the network, resulting in complex back-end layout and routing. Summary of the Invention

[0003] This application provides a data packet transmission method, apparatus, electronic device, storage medium, and program product to at least solve the problem of complex back-end layout and wiring in related technologies.

[0004] This application provides a data packet transmission method applied to a network system. The network system includes multiple routing nodes arranged in a two-dimensional array of N rows and N columns. Each routing node is connected to adjacent routing nodes in the same row and column via links. For any pair of adjacent routing nodes, the number of links between the pair is set based on the positions of the pair of adjacent routing nodes. The method includes: Establish a coordinate system based on the network system and set corresponding coordinates for each routing node; For any pair of adjacent routing nodes, based on the coordinates of the pair of adjacent routing nodes, determine the number of links between the pair of adjacent routing nodes in different transmission directions. The total number of links between the pair of adjacent routing nodes is N. Receive the data packet transmission request from the target host, and determine the difference in the x-coordinate and y-coordinate between the source and destination routing nodes based on the source and destination routing nodes in the data packet transmission request. Based on the difference in the horizontal axis, determine the first mutually exclusive link used by each hop of the data packet in the data packet transmission request in the horizontal direction; Based on the first mutually exclusive link used for each hop, the data packet is transmitted from the source routing node to the intermediate routing node; Based on the difference in the vertical coordinate, the second mutually exclusive link used by each hop of the data packet in the vertical direction is determined. The mutually exclusive link is a link that is different from the link used to transmit data packets in data packet transmission requests to other hosts besides the target host. Based on the second mutually exclusive link used for each hop, the data packet is transmitted from the intermediate routing node to the destination routing node.

[0005] This application also provides a data packet transmission apparatus applied to a network system. The network system includes multiple routing nodes arranged in a two-dimensional array of N rows and N columns. Each routing node is connected to adjacent routing nodes in the same row and in the same column via links. For any pair of adjacent routing nodes, the number of links between the pair is set based on the positions of the pair of adjacent routing nodes. The apparatus includes: The configuration module is used to establish a coordinate system based on the network system and set corresponding coordinates for each routing node. The first determining module is used to determine the number of links between any pair of adjacent routing nodes in different transmission directions based on the coordinates of the pair of adjacent routing nodes, wherein the total number of links between the pair of adjacent routing nodes is N. The receiving module is used to receive data packet transmission requests from the target host and, based on the source routing node and destination routing node in the data packet transmission request, determine the difference in the horizontal and vertical coordinates between the source routing node and the destination routing node. The second determining module is used to determine the first mutually exclusive link used by each hop of the data packet in the data packet transmission request in the horizontal axis direction based on the difference of the horizontal coordinate. The first transmission module is used to transmit data packets from the source routing node to the intermediate routing node based on the first mutually exclusive link used for each hop; The third determining module is used to determine the second mutually exclusive link used by each hop of the data packet in the vertical axis direction based on the difference in the vertical coordinate. The mutually exclusive link is a link that is different from the link used by the data packet in the data packet transmission request of other hosts besides the target host. The second transmission module is used to transmit data packets from intermediate routing nodes to destination routing nodes based on the second mutually exclusive link used for each hop. This application also provides an electronic device, including: a memory for storing a computer program; and a processor for executing the computer program to implement the steps of any of the above-described data packet transmission methods.

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

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

[0008] According to this application, the network system includes multiple routing nodes arranged in a two-dimensional array of N rows and N columns. Each routing node is connected to adjacent routing nodes in the same row and column via links. For any pair of adjacent routing nodes, the number of links between them is set based on their positions. Therefore, the network system of this application is an improved version of an N×N two-dimensional Mesh on-chip network. A coordinate system is established based on the network system, and corresponding coordinates are set for each routing node. For any pair of adjacent routing nodes, the number of links in different transmission directions between the pair of adjacent routing nodes is determined based on their coordinates, and the total number of links between the pair of adjacent routing nodes is N. When data packets need to be transmitted, the first mutually exclusive link used for each hop of the data packet in the horizontal direction and the second mutually exclusive link used for each hop in the vertical direction are determined based on the difference in the horizontal and vertical coordinates of the source and destination routing nodes, thereby transmitting the data packet from the source routing node to the destination routing node. This avoids the situation where data packets sent by different hosts share links in their transmission paths, meets the functional requirement of dividing the PCIeSwitch chip into two Virtual PCIe Switches, and reduces the complexity of layout and routing. Attached Figure Description

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

[0010] Figure 1 This is a schematic diagram illustrating how a physical PCIe switch chip is divided into two virtual PCIe switch chips in related technologies. Figure 2 This is a schematic diagram of the topology of a 4×4 two-dimensional Mesh on-chip network in related technologies; Figure 3 This is a schematic diagram of the XY coordinate system established based on this two-dimensional mesh on-chip network in related technologies; Figure 4 This is a schematic diagram illustrating data packet transmission in related technologies. Figure 5 This is a schematic diagram of the structure of an internal interconnection network in related technologies; Figure 6 This is a schematic diagram illustrating an application scenario of an internal interconnection network in related technologies; Figure 7 A flowchart illustrating a data packet transmission method provided in an embodiment of this application; Figure 8 A schematic diagram illustrating the number of links between adjacent routing nodes in the positive horizontal direction, provided for embodiments of this application; Figure 9 A schematic diagram illustrating the number of links between adjacent routing nodes in the negative horizontal direction provided in this application embodiment; Figure 10 A schematic diagram showing the number of links between adjacent routing nodes in the positive vertical direction provided in this application embodiment; Figure 11 A schematic diagram illustrating the number of links between adjacent routing nodes in the negative vertical direction provided in this application embodiment; Figure 12 A schematic diagram of the structure of a network system provided in an embodiment of this application; Figure 13 A schematic diagram of a routing process provided in an embodiment of this application; Figure 14 A schematic diagram illustrating yet another routing process provided in an embodiment of this application; Figure 15 A schematic diagram illustrating another routing process provided in an embodiment of this application; Figure 16 A schematic diagram illustrating a rerouting process provided in an embodiment of this application; Figure 17 This is a schematic diagram illustrating data packet transmission as provided in an embodiment of this application. Figure 18 This is a schematic diagram of the structure of a data packet transmission device provided in an embodiment of this application; Figure 19 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application. Detailed Implementation

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

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

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

[0014] The fields of high-performance computing (HPC) and artificial intelligence (AI) require the processing of massive amounts of data and have extremely high requirements for data transmission speed and efficiency. PCIe Switch chips have become key components in these fields.

[0015] PCIe switch chips can support multiple virtual PCIe switch chip technologies, which allows a single physical PCIe switch chip to be divided into multiple virtual PCIe switch chips, thus solving the problem of multiple hosts. Figure 1 This is a schematic diagram illustrating how a physical PCIe switch chip is divided into two virtual PCIe switch chips in related technologies, such as... Figure 1As shown, a virtual PCIe switch chip, Virtual PCIe Switch0, includes USP0, DSP15, DSP17, DSP32, DSP47, and DSP49. USP0 communicates with DSP15 through virtual downstream port (vDSP) 0-0 and virtual upstream port (vUSP) 0-0. USP0 communicates with DSP17 through vDSP0-1 and vUSP0-1. USP0 communicates with DSP32 and DSP47 through vDSP0-2 and vUSP0-2. USP0 communicates with DSP49 through vDSP0-3 and vUSP0-3. The physical PCIe switch chip includes a Direct Memory Access Endpoint (DMA EP). The Physical Function (PF) 0 within the DMA EP is allocated to Virtual PCIe Switch0, and USP0 communicates with PF0 of the DMA EP through vDSP0-29.

[0016] Another virtual PCIe switch chip, Virtual PCIe Switch1, includes USP1, DSP0, DSP1, DSP16, DSP31, DSP33, DSP48, and DSP55. USP1 communicates with DSP0 and DSP1 via vDSP1-0 and vUSP1-0. USP1 communicates with DSP16 and DSP31 via vDSP1-1 and vUSP1-1. USP1 communicates with DSP33 via vDSP1-2 and vUSP1-2. USP1 communicates with DSP48 and DSP55 via vDSP1-3 and vUSP1-3. PF1 in the DMA EP is allocated for use by Virtual PCIe Switch1, and USP1 communicates with PF1 in the DMA EP via vDSP1-29.

[0017] After dividing a PCIe switch chip into multiple Virtual PCIe switch chips, the following functional requirements must be met: 1. Requests from the USP of any Virtual PCIe switch to the DSP of that Virtual PCIe switch can be transmitted at full bandwidth; 2. Requests from the USPs of multiple Virtual PCIe switches to their respective DSPs should not interfere with each other. It is understood that during the process of any Virtual PCIe switch's USP sending a request to its DSP, it should not be interfered with by requests from other Virtual PCIe switches' USPs sending requests to their respective DSPs.

[0018] In related technologies, the physical PCIe switch chip has an internal interconnect network for data exchange. The commonly used internal interconnect network is a 4×4 two-dimensional mesh on-chip network. Figure 2 This is a schematic diagram of the topology of a 4×4 two-dimensional mesh on-chip network in related technologies, such as... Figure 2 As shown, this two-dimensional mesh network-on-a-chip includes multiple routers. These routers arbitrate data flow and determine the transmission path of data packets within the routing network. Routers are essentially routing nodes. Each router is connected to a resource node (IP), which can send and receive data. The resource node can be a USP or a DSP. Figure 2 All lines in the diagram are bidirectional, i.e., full-duplex. Routing algorithms generally refer to the transmission of data between routers; therefore, we will only consider data transmission between routers in the following discussion.

[0019] An XY coordinate system is established based on this two-dimensional mesh on-chip network. Figure 3 This is a schematic diagram of the XY coordinate system established based on this two-dimensional mesh on-chip network in related technologies, such as... Figure 3As shown, each router in this two-dimensional Mesh on-chip network has a unique coordinate (x, y). The XY routing algorithm is a deterministic routing algorithm for this two-dimensional Mesh on-chip network. Specifically, the XY routing algorithm includes: First, the data packet (message packet) compares the x-axis coordinate of its source routing node with the x-axis coordinate of its destination routing node. If the x-axis coordinate of the source routing node is smaller than that of the destination routing node, it routes eastward; if the x-axis coordinate of the source routing node is larger than that of the destination routing node, it routes westward. When the data packet reaches the same x-axis coordinate as the destination routing node, it is transmitted along the y-axis. At this point, if the y-axis coordinate of the data packet is smaller than that of the destination routing node, the data packet chooses to continue transmission northward; if the y-axis coordinate of the data packet is larger than that of the destination routing node, the data packet chooses to continue transmission southward. This routing algorithm has low latency and can prevent potential problems such as deadlock, livelock, and starvation.

[0020] However, two-dimensional mesh on-chip networks cannot ensure that data packet transmission requests between multiple Virtual PCIe switches do not interfere with each other, thus failing to meet the aforementioned functional requirements. For example... Figure 4 As shown, a physical PCIe Switch chip with an internal interconnect network of 4×4 two-dimensional Mesh on-chip network is split into two Virtual PCIe Switches. USP0 is on the routing node (0,3) and USP1 is on the routing node (2,3). When USP0 transmits a data packet to the DSP connected to the routing node (3,0) and USP1 transmits a data packet to the DSP connected to the routing node (3,1), according to the XY routing algorithm in related technologies, there is a shared path (2,3)→(3,3)→(3,2)→(3,1) on the transmission path of these two data packets. However, this path only has one link. Therefore, only one request can be arbitrated at this time, and the other request cannot be successfully routed due to interference. This cannot meet the requirement that the data packet transmission requests between multiple Virtual PCIe Switches do not interfere with each other.

[0021] It should be noted that, Figure 4The USP or DSP connected to the routing nodes at coordinates (0,3), (0,2), (0,1), (0,0), (1,2), (1,1), (1,0), (2,1), (2,0), and (3,0) belong to Virtual PCIe Switch0, while the USP or DSP connected to the routing nodes at coordinates (1,3), (2,3), (3,3), (2,2), (3,2), and (3,1) belong to Virtual PCIe Switch1. In other words, the source and destination routing nodes for data packet transmissions on Virtual PCIe Switch0 are located in the routing nodes corresponding to (0,3), (0,2), (0,1), (0,0), (1,2), (1,1), (1,0), (2,1), (2,0), and (3,0). The source and destination routing nodes for packet transmission in Virtual PCIe Switch1 are in the routing nodes corresponding to (1,3), (2,3), (3,3), (2,2), (3,2), and (3,1).

[0022] To address the aforementioned issues, the relevant technology establishes bidirectional links between the routing node to which each USP belongs and the routing nodes to which all its subordinate DSPs reside, such as... Figure 5 As shown, USP1 establishes bidirectional links with the routing nodes where all its subordinate DSPs are located. In essence, bidirectional links are established between the routing nodes connected to USP1 and the routing nodes connected to all its subordinate DSPs.

[0023] Figure 5 This method is suitable when the number and location of USPs are known. However, for users, the number and location of USPs on the PCIe switch chip are uncertain. For example, when the user's application scenario is... Figure 6 In the application scenarios shown, Figure 5 The connections shown are no longer applicable.

[0024] Therefore, in related technologies, when dividing a PCIe switch chip into two Virtual PCIe switches, a full interconnect network is used internally to achieve the above functional requirements. However, a full interconnect network results in a large number of links, which is not conducive to back-end layout and routing. For example, if an interconnect network with 16 routing nodes needs to be established, a full interconnect network would require 16 × 15 = 240 unidirectional links. It is understandable that one bidirectional link is equivalent to two unidirectional links.

[0025] To address the aforementioned technical problems, embodiments of this application provide a data packet transmission method applied to a network system. The network system includes multiple routing nodes arranged in a two-dimensional array of N rows and N columns. Each routing node is connected to adjacent routing nodes in the same row and in the same column via links. For any pair of adjacent routing nodes, the number of links between the pair of adjacent routing nodes is set based on the positions of the pair of adjacent routing nodes.

[0026] In other words, the network system in this application embodiment is a network system generated by improving an N×N two-dimensional mesh on-chip network. Generally, N is not less than 2. This application embodiment does not limit the value of N, and will describe it as N=4 below.

[0027] Figure 7 This is a flowchart illustrating a data packet transmission method provided in an embodiment of this application, as shown below. Figure 7 As shown, the data packet transmission method includes the following steps: Step S701: Establish a coordinate system based on the network system and set corresponding coordinates for each routing node.

[0028] Step S702: For any pair of adjacent routing nodes, based on the coordinates of the pair of adjacent routing nodes, determine the number of links in different transmission directions between the pair of adjacent routing nodes. The total number of links between the pair of adjacent routing nodes is N.

[0029] Step S703: Receive the data packet transmission request from the target host, and determine the difference in the horizontal and vertical coordinates of the source and destination routing nodes based on the source and destination routing nodes in the data packet transmission request.

[0030] In this context, the source routing node can be a node connected to the USP corresponding to the target host, or a node connected to any DSP under the USP corresponding to the target host. The destination routing node can be a node connected to the USP corresponding to the target host, or a node connected to any DSP under the USP corresponding to the target host. In other words, the data packet transmission request from the target host can be a transmission request whereby the target host sends data packets to any DSP under the corresponding USP via the corresponding USP, or a transmission request whereby the target host receives data packets sent by any DSP under the corresponding USP via the corresponding USP.

[0031] In this embodiment of the application, the physical PCIe Switch chip is divided into two Virtual PCIe Switches, so that the network system can receive data packet transmission requests sent by two hosts, with one host corresponding to one Virtual PCIe Switch.

[0032] For example, the source routing node is The destination routing node is The coordinate difference between the source routing node and the destination routing node is . That is, the difference in the horizontal coordinates is = The difference in the ordinate is = .

[0033] Step S704: Based on the difference in the horizontal coordinate, determine the first mutually exclusive link used by each hop of the data packet in the data packet transmission request in the horizontal direction.

[0034] By determining the first mutually exclusive link used by each hop of a data packet in the horizontal direction, the transmission paths of data packets sent by different hosts are prevented from sharing links.

[0035] Step S705: Based on the first mutually exclusive link used for each hop, transmit the data packet from the source routing node to the intermediate routing node.

[0036] Step S706: Based on the difference in the vertical coordinate, determine the second mutually exclusive link used by each hop of the data packet in the vertical direction. The mutually exclusive link is a link that is different from the link used to transmit data packets in data packet transmission requests for other hosts besides the target host.

[0037] Mutualized links consist of a first mutualized link and a second mutualized link. By determining the second mutualized link used for each hop of a data packet along the vertical axis, the transmission paths of data packets sent by different hosts are prevented from sharing a link.

[0038] Step S707: Based on the second mutually exclusive link used for each hop, transmit the data packet from the intermediate routing node to the destination routing node.

[0039] The data packet transmission method provided in this application includes a network system comprising multiple routing nodes arranged in an N x N two-dimensional array. Each routing node is connected to adjacent routing nodes in the same row and column via links. For any pair of adjacent routing nodes, the number of links between them is set based on their positions. Therefore, the network system of this application is an improved version of an N×N two-dimensional mesh on-chip network. A coordinate system is established based on the network system, and corresponding coordinates are set for each routing node. For any pair of adjacent routing nodes, the number of links in different transmission directions between the pair of adjacent routing nodes is determined based on their coordinates, and the total number of links between the pair of adjacent routing nodes is N. When data packets need to be transmitted, the first mutually exclusive link used for each hop of the data packet in the horizontal direction and the second mutually exclusive link used for each hop in the vertical direction are determined based on the difference in the horizontal and vertical coordinates of the source and destination routing nodes, thereby transmitting the data packet from the source routing node to the destination routing node. This avoids the situation where data packets sent by different hosts share links in their transmission paths, meets the functional requirement of dividing the PCIe Switch chip into two Virtual PCIe Switches, and reduces the complexity of layout and routing.

[0040] In some optional implementations, step S702 above includes: Step S7021: For any pair of adjacent routing nodes, if the pair of adjacent routing nodes are adjacent routing nodes in the same row, then based on the x-coordinate of the pair of adjacent routing nodes, determine the first routing node with the larger x-coordinate among the pair of adjacent routing nodes; determine that the value of the number of links between the pair of adjacent routing nodes with the transmission direction in the positive direction of the horizontal axis is the same as the value of the x-coordinate of the first routing node.

[0041] The positive direction of the horizontal axis includes the direction from the routing node with the smaller horizontal coordinate value to the routing node with the larger horizontal coordinate value, assuming the vertical coordinates of the routing nodes are the same.

[0042] For example, the routing node with coordinates (0, 3) and the routing node with coordinates (1, 3) are adjacent routing nodes in the same row. The first routing node with the larger horizontal coordinate among the pair of adjacent routing nodes is determined to be the routing node with coordinates (1, 3). The number of links between the pair of adjacent routing nodes with the transmission direction in the positive direction of the horizontal axis is determined to be 1.

[0043] In other words, when the transmission direction is the positive direction of the horizontal axis, the coordinates are... The routing node to the coordinates is The number of links of the routing nodes is ,like Figure 8 As shown.

[0044] Step S7022: For any pair of adjacent routing nodes, if the pair of adjacent routing nodes are adjacent routing nodes in the same row, then based on the x-coordinate of the pair of adjacent routing nodes, determine the second routing node with the smaller x-coordinate in the pair of adjacent routing nodes; determine the value of the number of links between the pair of adjacent routing nodes whose transmission direction is in the negative x-axis direction: ,in, This is the x-coordinate of the second routing node.

[0045] The negative direction of the horizontal axis includes the direction from the routing node with the larger horizontal coordinate value to the routing node with the smaller horizontal coordinate value, provided that the vertical coordinates of the routing nodes are the same.

[0046] For example, when N equals 4, the routing node with coordinates (1, 3) and the routing node with coordinates (0, 3) are adjacent routing nodes in the same row. The second routing node with smaller horizontal coordinate among the pair of adjacent routing nodes is determined, namely the routing node with coordinates (0, 3). The number of links between the pair of adjacent routing nodes with the transmission direction in the negative direction of the horizontal axis is determined to be 3-0=3.

[0047] In other words, when the transmission direction is the negative direction of the horizontal axis, the coordinate is The route node to the coordinates The number of links of the routing nodes is ,like Figure 9 As shown.

[0048] Step S7023: For any pair of adjacent routing nodes, if the pair of adjacent routing nodes are adjacent in the same column, then based on the ordinate of the pair of adjacent routing nodes, determine the third routing node with the smaller ordinate among the pair of adjacent routing nodes; determine the value of the number of links between the pair of adjacent routing nodes whose transmission direction is the positive direction of the vertical axis: ,in, The vertical coordinate of the third routing node.

[0049] The positive direction of the vertical axis includes the direction from the routing node with the smaller vertical coordinate value to the routing node with the larger vertical coordinate value, assuming the horizontal coordinates of the routing nodes are the same.

[0050] For example, when N equals 4, the routing node with coordinates (0,0) and the routing node with coordinates (0,1) are adjacent routing nodes in the same column. The third routing node with smaller ordinate among the pair of adjacent routing nodes is determined, namely the routing node with coordinates (0,0). The number of links between the pair of adjacent routing nodes with the transmission direction in the positive direction of the vertical axis is determined to be 3-0=3.

[0051] In other words, when the transmission direction is the positive direction of the vertical axis, the coordinate is... The route node to the coordinates The number of links of the routing nodes is ,like Figure 10 As shown.

[0052] Step S7024: For any pair of adjacent routing nodes, if the pair of adjacent routing nodes are adjacent routing nodes in the same column, then based on the ordinate of the pair of adjacent routing nodes, determine the fourth routing node with the larger ordinate among the pair of adjacent routing nodes; determine that the value of the number of links between the pair of adjacent routing nodes with the transmission direction in the negative direction of the vertical axis is the same as the value of the ordinate of the fourth routing node.

[0053] The negative direction of the vertical axis includes the direction from the routing node with the larger vertical coordinate value to the routing node with the smaller vertical coordinate value, provided that the horizontal coordinates of the routing nodes are the same.

[0054] For example, the routing node with coordinates (0,0) and the routing node with coordinates (0,1) are adjacent routing nodes in the same column. The fourth routing node with larger ordinate among the pair of adjacent routing nodes, i.e. the routing node with coordinates (0,1), is determined to have a transmission direction of negative ordinate between the pair of adjacent routing nodes, and the number of links between them is determined to be 1.

[0055] In other words, when the transmission direction is the negative direction of the vertical axis, the coordinate is The route node to the coordinates The number of links of the routing nodes is ,like Figure 11 As shown.

[0056] It is understood that, as can be seen from steps S7021 to S7024, a network system according to an embodiment of this application can be as follows: Figure 12 As shown.

[0057] The data packet transmission method provided in this application requires only 96 unidirectional links compared to a fully interconnected network that requires 240 unidirectional links (taking N=4 as an example), which greatly reduces the pressure on back-end layout and cabling.

[0058] In some optional implementations, step S704 above includes: Step S7041: Based on the difference in the horizontal coordinate, determine the first routing direction of the data packet in the horizontal axis direction and the first routing hop count in the first routing direction.

[0059] Step S7042: Based on the first route hop count, determine the first mutually exclusive link used for each hop in the first route direction.

[0060] In some optional implementations, step S7041 above includes: Step a1: If the difference in the horizontal coordinate is less than a preset value, determine that the first routing direction of the data packet in the horizontal axis direction is the negative direction of the horizontal axis, and determine that the value of the first routing hop count in the negative direction of the horizontal axis is the same as the value of the absolute value of the difference in the horizontal coordinate.

[0061] The default value is 0.

[0062] Step a2: If the difference in the horizontal coordinate is greater than a preset value, determine that the first route direction of the data packet in the horizontal axis direction is the positive direction of the horizontal axis, and determine that the value of the first route hop count in the positive direction of the horizontal axis is the same as the value of the difference in the horizontal coordinate.

[0063] In some optional implementations, the above data packet transmission method further includes: Step b1: For at least one link in any transmission direction between any pair of adjacent routing nodes, sequentially assign an increasing link code to at least one link in that transmission direction between the pair of adjacent routing nodes.

[0064] For at least one link in any transmission direction between any pair of adjacent routing nodes, link codes of 0, 1, ..., are sequentially assigned to at least one link in that transmission direction between the pair of adjacent routing nodes.

[0065] Step S7042 above includes: Step c1, when the first routing direction is the negative direction of the horizontal axis, based on the first routing hop count, determine the link code of the first mutually exclusive link used by each hop in the first routing direction as follows: ;in, The x-coordinate of the source routing node.

[0066] For a source routing node, For routing requests, when packets are routed in the negative horizontal direction, only link coding can be used. The link.

[0067] For example, for a source routing node as Routing requests, when data packets need to be routed from... Transmit to That is, when a data packet is routed in the negative direction of the horizontal axis, the link code of the first mutually exclusive link used for each hop in the negative direction of the horizontal axis is determined to be 0. The routing process is as follows: Figure 13 As shown.

[0068] Step c2, with the first routing direction being the positive direction of the horizontal axis, determines the link code of the first mutually exclusive link used for each hop in the first routing direction based on the first routing hop count. .

[0069] For a source routing node, For routing requests, when packets are routed in the positive horizontal direction, only link coding can be used. The link.

[0070] For example, for a source routing node as Routing requests, when data packets need to be routed from... Transmit to That is, when a data packet is routed in the positive horizontal direction, the link code of the first mutually exclusive link used for each hop in the positive horizontal direction is determined to be 0. The routing process is as follows: Figure 14 As shown.

[0071] The data packet transmission method provided in this application determines the link encoding based on the horizontal coordinate of the source routing node in the horizontal direction. Routing requests from different source nodes use links with different link codes, fundamentally avoiding path conflicts between multiple Virtual PCIe Switches in the horizontal direction and meeting the requirement of non-interference.

[0072] In some optional implementations, step S706 above includes: Step S7061: Based on the difference in the vertical coordinate, determine the second routing direction of the data packet in the vertical axis direction and the second routing hop count in the second routing direction.

[0073] Step S7062: Based on the second route hop count, determine the second mutually exclusive link used for each hop in the second route direction.

[0074] In some optional implementations, step S7061 above includes: Step d1: If the difference in the vertical coordinate is less than a preset value, determine that the second routing direction of the data packet in the vertical axis direction is the negative direction of the vertical axis, and determine that the value of the second routing hop count in the negative direction of the vertical axis is the same as the value of the absolute value of the difference in the vertical coordinate.

[0075] Step d2: If the difference in the vertical coordinate is greater than a preset value, determine that the second routing direction of the data packet in the vertical axis direction is the positive direction of the vertical axis, and determine that the value of the second routing hop count in the positive direction of the vertical axis is the same as the value of the difference in the vertical coordinate.

[0076] In some optional implementations, step S7062 above includes: Step e1, when the second routing direction is the negative direction of the vertical axis, based on the second routing hop count, determine the link code of the second mutually exclusive link used for each hop in the second routing direction as follows: ;in, The vertical coordinate of the destination routing node.

[0077] For a destination routing node, For routing requests, when packets are routed in the negative vertical direction, only link coding can be used. The link.

[0078] For example, for a destination routing node as Routing requests, when data packets need to be routed from... Transmit to That is, when a data packet is routed in the negative direction of the vertical axis, the link code of the second mutually exclusive link used for each hop in the negative direction of the vertical axis is determined to be 0, and the routing process is as follows: Figure 15 As shown.

[0079] Step e2, with the second routing direction being the positive direction of the vertical axis, based on the second routing hop count, determines the link code of the second mutually exclusive link used for each hop in the second routing direction as follows: , The vertical coordinate of the destination routing node.

[0080] For a destination routing node, For routing requests, when packets are routed in the positive direction of the vertical axis, only link coding can be used. The link.

[0081] For example, when N is 4, for a destination routing node is Routing requests, when data packets need to be routed from... Transmit to That is, when a data packet is routed in the positive direction of the vertical axis, the link code of the second mutually exclusive link used for each hop in the positive direction of the vertical axis is determined to be 0, and the routing process is as follows: Figure 16 As shown.

[0082] The data packet transmission method provided in this application determines the link code based on the ordinate of the destination routing node in the vertical direction. Routing requests destined for different nodes use links with different link codes, fundamentally avoiding path conflicts between multiple Virtual PCIe Switches in the vertical direction and meeting the requirement of non-interference.

[0083] In some optional implementations, the above data packet transmission method further includes: Step f1: If the difference in the horizontal coordinate is a preset value, skip the steps of determining the first mutually exclusive link used by the data packet in the data packet transmission request in the horizontal direction based on the difference in the horizontal coordinate and transmitting the data packet from the source routing node to the intermediate routing node based on the first mutually exclusive link used by each hop.

[0084] Understandably, if the difference in the horizontal axis is 0, then the process directly executes the steps of determining the second mutually exclusive link used by the data packet for each hop in the vertical axis direction based on the difference in the vertical axis; and transmitting the data packet from the source routing node to the destination routing node based on the second mutually exclusive link used for each hop.

[0085] Step f2: If the difference in the vertical coordinate is a preset value, skip the steps of determining the second mutually exclusive link used by the data packet for each hop in the vertical direction based on the difference in the vertical coordinate, and transmitting the data packet from the intermediate routing node to the destination routing node based on the second mutually exclusive link used for each hop.

[0086] It is understandable that if the difference in the vertical coordinate is 0, then the route is considered to have ended, and the intermediate route node is the destination route node.

[0087] This application provides a data packet transmission method applied to a network system. The network system includes multiple routing nodes arranged in a two-dimensional array of N rows and N columns. Each routing node is connected to adjacent routing nodes in the same row and column via links. For any pair of adjacent routing nodes, the number of links between the pair is set based on the positions of the pair of adjacent routing nodes. The data packet transmission method includes the following steps: Step 1: Establish an XY coordinate system based on the network system, and assign a coordinate to each routing node in the XY coordinate system. .

[0088] Step 2: For each routing request, assume the data packet originates from the source routing node. Transmitted to the destination routing node ,Will and By comparison, the difference is calculated. ;when Then, proceed to the third step; when Then, proceed to the fourth step; when Then proceed to step five.

[0089] Step 3: Using the traditional XY routing algorithm, routing needs to be done in the negative direction of the X-axis. Following the steps described above, c1 can only use link coding as... Link routing, until the route is found to the x-coordinate equal to The routing node is now complete in the X-axis direction, and we proceed to step five.

[0090] Step 4: Using the traditional XY routing algorithm, routing needs to be done in the positive direction of the X-axis. Following the steps described above, c2 can only use link coding as... Link routing, until the route is found to the x-coordinate equal to The routing node is now complete in the X-axis direction, and we proceed to step five.

[0091] Step 5: ,judge The value of , when When, the routing ends; when Then, proceed to step six; when Then proceed to step seven.

[0092] Step 6: Using the traditional XY routing algorithm, routing needs to be done in the negative direction of the Y-axis. Following the steps described above, e1 can only use link coding as... Link routing, until the route is found to the point where the vertical coordinate equals The routing node is now complete, and the routing process ends.

[0093] Step 7: Using the traditional XY routing algorithm, routing needs to be done in the positive direction of the Y-axis. Following the steps described above, e2 can only use link coding as... Link routing, until the route is found to the point where the vertical coordinate equals The routing node is now complete, and the routing process ends.

[0094] The data packet transmission method provided in this application allows for the differentiation of links in the X-axis direction based on source routing nodes, and the differentiation of links in the Y-axis direction based on destination routing nodes. Therefore, there are no overlapping links for any different source routing nodes and different destination nodes, thus fulfilling the basic functions of two VirtualSwitch features. Furthermore, the number of links in this application is 96, far less than the 240 required for a fully interconnected network, significantly reducing the pressure on backend layout and cabling.

[0095] For example, such as Figure 17 As shown, after a physical PCIe switch chip of an internal interconnection network system is split into two Virtual PCIe switches, the USP0 of one Virtual PCIe switch is on the routing node (0,3), and the USP1 of the other Virtual PCIe switch is on the routing node (2,3). When USP0 transmits data packets to the DSP of the routing node (3,0) and when USP1 transmits data packets to the DSP of the routing node (3,1), although there is a shared path (2,3)→(3,3)→(3,2)→(3,1), the two routing requests are not interfered with and can be successfully routed because the topology and routing algorithm of this application are used.

[0096] To alleviate the pressure of back-end layout and routing and reduce the number of links, the structure of the traditional two-dimensional mesh on-chip network was improved. At the same time, the link usage rules of the XY routing algorithm were improved, reducing the number of links in the internal interconnection network of the PCIe Switch chip. This satisfies the two basic functions of the two Virtual PCIe Switches and greatly reduces the pressure of back-end layout and routing.

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

[0098] Embodiments of this application also provide a data packet transmission apparatus applied to a network system. The network system includes multiple routing nodes arranged in a two-dimensional array of N rows and N columns. Each routing node is connected to adjacent routing nodes in the same row and in the same column via links. For any pair of adjacent routing nodes, the number of links between the pair is set based on the positions of the pair of adjacent routing nodes. Figure 18 As shown, the data packet transmission device includes: The configuration module 1801 is used to establish a coordinate system based on the network system and set corresponding coordinates for each routing node.

[0099] The first determining module 1802 is used to determine the number of links between any pair of adjacent routing nodes in different transmission directions based on the coordinates of the pair of adjacent routing nodes, wherein the total number of links between the pair of adjacent routing nodes is N.

[0100] The receiving module 1803 is used to receive the data packet transmission request of the target host, and determine the difference in the horizontal and vertical coordinates of the source and destination routing nodes based on the source and destination routing nodes in the data packet transmission request.

[0101] The second determining module 1804 is used to determine the first mutually exclusive link used by each hop of the data packet in the data packet transmission request in the horizontal direction based on the difference of the horizontal coordinate.

[0102] The first transmission module 1805 is used to transmit data packets from the source routing node to the intermediate routing node based on the first mutually exclusive link used for each hop.

[0103] The third determining module 1806 is used to determine, based on the difference in the vertical coordinate, the second mutually exclusive link used by the data packet for each hop in the vertical direction, wherein the mutually exclusive link is a link that is different from the link used to transmit data packets in data packet transmission requests for other hosts besides the target host.

[0104] The second transmission module 1807 is used to transmit data packets from intermediate routing nodes to destination routing nodes based on the second mutually exclusive link used for each hop.

[0105] In some alternative implementations, the first determining module 1802 includes: The first determining unit is configured to, for any pair of adjacent routing nodes, if the pair of adjacent routing nodes are adjacent routing nodes in the same row, determine the first routing node with the larger horizontal coordinate among the pair of adjacent routing nodes based on the horizontal coordinate of the pair of adjacent routing nodes; and determine that the value of the number of links between the pair of adjacent routing nodes with the transmission direction in the positive direction of the horizontal axis is the same as the value of the horizontal coordinate of the first routing node.

[0106] The second determining unit is configured to, for any pair of adjacent routing nodes, if the pair of adjacent routing nodes are adjacent routing nodes in the same row, determine the second routing node with the smaller horizontal coordinate among the pair of adjacent routing nodes based on the horizontal coordinate of the pair of adjacent routing nodes; and determine the value of the number of links between the pair of adjacent routing nodes whose transmission direction is in the negative horizontal direction: ,in, This is the x-coordinate of the second routing node.

[0107] The third determining unit is used to, for any pair of adjacent routing nodes, if the pair of adjacent routing nodes are adjacent routing nodes in the same column, determine the third routing node with the smaller ordinate among the pair of adjacent routing nodes based on the ordinate of the pair of adjacent routing nodes; and determine the value of the number of links between the pair of adjacent routing nodes with the transmission direction in the positive direction of the vertical axis as follows: ,in, The vertical coordinate of the third routing node.

[0108] The fourth determining unit is used to determine, for any pair of adjacent routing nodes, if the pair of adjacent routing nodes are adjacent routing nodes in the same column, the fourth routing node with the larger ordinate among the pair of adjacent routing nodes based on the ordinate of the pair of adjacent routing nodes; and to determine that the value of the number of links between the pair of adjacent routing nodes with the transmission direction in the negative direction of the vertical axis is the same as the value of the ordinate of the fourth routing node.

[0109] In some alternative implementations, the second determining module 1804 includes: The fifth determining unit is used to determine the first routing direction of the data packet in the horizontal axis direction and the first routing hop number in the first routing direction based on the difference in the horizontal coordinate.

[0110] The sixth determining unit is used to determine the first mutually exclusive link used for each hop in the first routing direction based on the first routing hop count.

[0111] In some optional implementations, the fifth determining unit includes: The seventh determining unit is used to determine that the first routing direction of the data packet in the horizontal axis direction is the negative direction of the horizontal axis when the difference in the horizontal coordinate is less than a preset value, and to determine that the value of the first routing hop count in the negative direction of the horizontal axis is the same as the value of the absolute value of the difference in the horizontal coordinate.

[0112] The eighth determining unit is used to determine that the first routing direction of the data packet in the horizontal axis direction is the positive direction of the horizontal axis when the difference in the horizontal coordinate is greater than a preset value, and to determine that the value of the first routing hop count in the positive direction of the horizontal axis is the same as the value of the difference in the horizontal coordinate.

[0113] In some optional implementations, the data packet transmission apparatus further includes: The encoding module is used to assign incremental link codes to at least one link in any transmission direction between any pair of adjacent routing nodes.

[0114] The sixth determining unit includes: The ninth determining unit is configured to, when the first routing direction is the negative direction of the horizontal axis, determine, based on the first routing hop count, the link code of the first mutually exclusive link used for each hop in the first routing direction. ;in, The x-coordinate of the source routing node.

[0115] The tenth determining unit is configured to, when the first routing direction is the positive direction of the horizontal axis, determine, based on the first routing hop count, the link code of the first mutually exclusive link used for each hop in the first routing direction. .

[0116] In some alternative implementations, the third determining module 1806 includes: The eleventh determining unit is used to determine the second routing direction of the data packet in the vertical axis direction and the second routing hop number in the second routing direction based on the difference in the vertical coordinate.

[0117] The twelfth determining unit is used to determine the second mutually exclusive link used for each hop in the second routing direction based on the second routing hop count.

[0118] In some optional implementations, the eleventh determining unit includes: The thirteenth determining unit is used to determine that the second routing direction of the data packet in the vertical axis direction is the negative direction of the vertical axis when the difference in the vertical coordinate is less than a preset value, and to determine that the value of the second routing hop count in the negative direction of the vertical axis is the same as the value of the absolute value of the difference in the vertical coordinate.

[0119] The fourteenth determining unit is used to determine that the second routing direction of the data packet in the vertical axis direction is the positive direction of the vertical axis when the difference in the vertical coordinate is greater than a preset value, and to determine that the value of the second routing hop count in the positive direction of the vertical axis is the same as the value of the difference in the vertical coordinate.

[0120] In some alternative implementations, the twelfth determining unit includes: The fifteenth determining unit is configured to, when the second routing direction is the negative direction of the vertical axis, determine the link code of the second mutually exclusive link used for each hop in the second routing direction based on the second routing hop count. ;in, The vertical coordinate of the destination routing node.

[0121] The sixteenth determining unit is used to determine, based on the second route hop count, the link code of the second mutually exclusive link used for each hop in the second route direction when the second route direction is the positive direction of the vertical axis: , The vertical coordinate of the destination routing node.

[0122] In some optional implementations, the data packet transmission apparatus further includes: The first skip module is used to skip the steps of determining the first mutually exclusive link used by the data packet in the data packet transmission request in the horizontal axis direction based on the horizontal coordinate difference when the difference is a preset value; and transmitting the data packet from the source routing node to the intermediate routing node based on the first mutually exclusive link used by each hop.

[0123] The second skip module is used to skip the steps of determining the second mutually exclusive link used for each hop of the data packet in the vertical direction based on the vertical coordinate difference, and transmitting the data packet from the intermediate routing node to the destination routing node based on the second mutually exclusive link used for each hop, when the vertical coordinate difference is a preset value.

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

[0125] Embodiments of this application also provide an electronic device, such as... Figure 19 As shown, it includes a processor 1901 and a memory 1902, in which a computer program is stored. The processor 1901 is configured to run the computer program to perform the steps in any of the above-described data packet transmission method embodiments.

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

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

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

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

[0130] Any of the components, modules, units, parts, methods, and operations described herein can be implemented using software, firmware, hardware (e.g., fixed logic circuitry), manual processing, or any combination thereof. Alternatively or additionally, any functionality described herein can be executed at least in part by one or more hardware logic components, such as, but not limited to, a central processing unit (CPU), a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), an application-specific standard product (ASSP), a system-on-a-chip (SoC), a complex programmable logic device (CPLD), a microprocessor (MCU), etc. The terms "system," "computing device," or "apparatus" as used herein encompass various means, devices, and machines for processing data, including, for example, one or more programmable processors, computers, SoCs, or combinations thereof. The apparatus may also include code that creates an execution environment for the computer program in question, such as code constituting processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or one or more combinations thereof. The aforementioned computer program (also known as a program, software, software application, app, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and can be deployed in any form, including as a standalone program or as a module, component, subroutine, object, or other unit suitable for a computing environment.

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

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

Claims

1. A data packet transmission method, characterized in that, This is applied to a network system, which includes multiple routing nodes arranged in a two-dimensional array of N rows and N columns; each routing node is connected to its adjacent routing nodes in the same row and column via links. For any pair of adjacent routing nodes, the number of links between the pair of adjacent routing nodes is set based on the location of the pair of adjacent routing nodes; the method includes: A coordinate system is established based on the network system, and corresponding coordinates are set for each routing node; For any pair of adjacent routing nodes, based on the coordinates of the pair of adjacent routing nodes, determine the number of links between the pair of adjacent routing nodes in different transmission directions. The total number of links between the pair of adjacent routing nodes is N. Receive a data packet transmission request from the target host, and determine the difference in the horizontal and vertical coordinates between the source and destination routing nodes based on the source and destination routing nodes in the data packet transmission request. Based on the difference in the horizontal coordinate, the first mutually exclusive link used by each hop of the data packet in the data packet transmission request in the horizontal direction is determined, and the link code of the first mutually exclusive link is determined based on the horizontal coordinate of the source routing node. Based on the first mutually exclusive link used for each hop, the data packet is transmitted from the source routing node to the intermediate routing node; Based on the difference in the vertical coordinate, the second mutually exclusive link used by the data packet for each hop in the vertical axis direction is determined. The mutually exclusive link is a link that is different from the link used to transmit data packets in data packet transmission requests for other hosts besides the target host. The link code of the second mutually exclusive link is determined based on the vertical coordinate of the destination routing node. Based on the second mutually exclusive link used for each hop, the data packet is transmitted from the intermediate routing node to the destination routing node; The step of determining the number of links in different transmission directions between any pair of adjacent routing nodes based on the coordinates of the pair includes: For any pair of adjacent routing nodes, if the pair of adjacent routing nodes are adjacent routing nodes in the same row, then based on the x-coordinate of the pair of adjacent routing nodes, determine the first routing node with the larger x-coordinate among the pair of adjacent routing nodes; determine the value of the number of links between the pair of adjacent routing nodes with the transmission direction in the positive direction of the horizontal axis as the same as the value of the x-coordinate of the first routing node. For any pair of adjacent routing nodes, if the pair of adjacent routing nodes are adjacent in the same row, then based on the x-coordinate of the pair of adjacent routing nodes, determine the second routing node with the smaller x-coordinate; determine the value of the number of links between the pair of adjacent routing nodes whose transmission direction is in the negative x-axis direction: ,in, is the x-coordinate of the second routing node.

2. The method according to claim 1, characterized in that, The step of determining the number of links in different transmission directions between any pair of adjacent routing nodes based on the coordinates of the pair includes: For any pair of adjacent routing nodes, if the pair of adjacent routing nodes are adjacent routing nodes in the same column, then based on the ordinate of the pair of adjacent routing nodes, determine the third routing node with the smaller ordinate among the pair of adjacent routing nodes. The value that determines the number of links between this pair of adjacent routing nodes with the transmission direction in the positive vertical direction is: ,in, The vertical coordinate of the third routing node.

3. The method according to claim 1, characterized in that, The step of determining the number of links in different transmission directions between any pair of adjacent routing nodes based on the coordinates of the pair includes: For any pair of adjacent routing nodes, if the pair of adjacent routing nodes are adjacent routing nodes in the same column, then based on the ordinate of the pair of adjacent routing nodes, determine the fourth routing node with the larger ordinate among the pair of adjacent routing nodes. The value of the number of links between the pair of adjacent routing nodes with the transmission direction in the negative vertical direction is the same as the value of the vertical coordinate of the fourth routing node.

4. The method according to claim 1, characterized in that, The step of determining the first mutually exclusive link used by each hop of the data packet in the data packet transmission request in the horizontal axis direction based on the horizontal coordinate difference includes: Based on the difference in the horizontal coordinate, the first routing direction of the data packet in the horizontal axis direction and the first routing hop count in the first routing direction are determined; Based on the first route hop count, determine the first mutually exclusive link used for each hop in the first route direction.

5. The method according to claim 4, characterized in that, Determining the first routing direction of the data packet along the horizontal axis and the first routing hop count along the first routing direction based on the horizontal coordinate difference includes: If the difference in the horizontal coordinate is less than a preset value, the first routing direction of the data packet in the horizontal axis direction is determined to be the negative direction of the horizontal axis, and the value of the first routing hop count in the negative direction of the horizontal axis is determined to be the same as the absolute value of the difference in the horizontal coordinate.

6. The method according to claim 4, characterized in that, Determining the first routing direction of the data packet along the horizontal axis and the first routing hop count along the first routing direction based on the horizontal coordinate difference includes: If the difference in the horizontal coordinate is greater than a preset value, the first routing direction of the data packet in the horizontal axis direction is determined to be the positive direction of the horizontal axis, and the value of the first routing hop count in the positive direction of the horizontal axis is determined to be the same as the value of the difference in the horizontal coordinate.

7. The method according to claim 4, characterized in that, The method further includes: For at least one link in any transmission direction between any pair of adjacent routing nodes, assign an increasing link code to the at least one link in that transmission direction between the pair of adjacent routing nodes in sequence; The step of determining the first mutually exclusive link used for each hop in the first routing direction based on the first routing hop count includes: When the first routing direction is the negative direction of the horizontal axis, based on the first routing hop count, the link code of the first mutually exclusive link used by each hop in the first routing direction is determined as follows: ;in, is the x-coordinate of the source routing node.

8. The method according to claim 4, characterized in that, The method further includes: For at least one link in any transmission direction between any pair of adjacent routing nodes, assign an increasing link code to the at least one link in that transmission direction between the pair of adjacent routing nodes in sequence; The step of determining the first mutually exclusive link used for each hop in the first routing direction based on the first routing hop count includes: When the first routing direction is the positive direction of the horizontal axis, based on the first routing hop count, the link code of the first mutually exclusive link used for each hop in the first routing direction is determined as follows: ,in, is the x-coordinate of the source routing node.

9. The method according to claim 1, characterized in that, The step of determining the second mutually exclusive link used by each hop of the data packet in the vertical axis direction based on the vertical coordinate difference includes: Based on the difference in the vertical coordinate, the second routing direction of the data packet in the vertical axis direction and the second routing hop count in the second routing direction are determined; Based on the second routing hop count, determine the second mutually exclusive link used for each hop in the second routing direction.

10. The method according to claim 9, characterized in that, Determining the second routing direction of the data packet along the vertical axis and the second routing hop count along the second routing direction based on the vertical coordinate difference includes: If the difference in the vertical coordinate is less than a preset value, the second routing direction of the data packet in the vertical axis direction is determined to be the negative direction of the vertical axis, and the value of the second routing hop count in the negative direction of the vertical axis is determined to be the same as the absolute value of the difference in the vertical coordinate.

11. The method according to claim 9, characterized in that, Determining the second routing direction of the data packet along the vertical axis and the second routing hop count along the second routing direction based on the vertical coordinate difference includes: If the difference in the vertical coordinate is greater than a preset value, the second routing direction of the data packet in the vertical axis direction is determined to be the positive direction of the vertical axis, and the value of the second routing hop count in the positive direction of the vertical axis is determined to be the same as the value of the difference in the vertical coordinate.

12. The method according to claim 9, characterized in that, The method further includes: For at least one link in any transmission direction between any pair of adjacent routing nodes, assign an increasing link code to the at least one link in that transmission direction between the pair of adjacent routing nodes in sequence; The step of determining the second mutually exclusive link used for each hop in the second routing direction based on the second routing hop count includes: When the second routing direction is the negative direction of the vertical axis, the link code of the second mutually exclusive link used for each hop in the second routing direction is determined based on the second routing hop count. ;in, The ordinate of the destination routing node.

13. The method according to claim 9, characterized in that, The method further includes: For at least one link in any transmission direction between any pair of adjacent routing nodes, assign an increasing link code to the at least one link in that transmission direction between the pair of adjacent routing nodes in sequence; The step of determining the second mutually exclusive link used for each hop in the second routing direction based on the second routing hop count includes: With the second routing direction being the positive direction of the vertical axis, based on the second routing hop count, the link code of the second mutually exclusive link used for each hop in the second routing direction is determined as follows: , The ordinate of the destination routing node.

14. The method according to claim 1, characterized in that, The method further includes: If the difference in the horizontal coordinate is a preset value, skip the steps of determining the first mutually exclusive link used by the data packet in the data packet transmission request for each hop in the horizontal direction based on the difference in the horizontal coordinate; and transmit the data packet from the source routing node to the intermediate routing node based on the first mutually exclusive link used for each hop. If the difference in the vertical coordinate is a preset value, skip the steps of determining the second mutually exclusive link used by the data packet for each hop in the vertical axis direction based on the difference in the vertical coordinate, and transmitting the data packet from the intermediate routing node to the destination routing node based on the second mutually exclusive link used for each hop.

15. A data packet transmission device, characterized in that, This is applied to a network system, which includes multiple routing nodes arranged in a two-dimensional array of N rows and N columns; each routing node is connected to its adjacent routing nodes in the same row and column via links. For any pair of adjacent routing nodes, the number of links between the pair of adjacent routing nodes is set based on the location of the pair of adjacent routing nodes; the device includes: The configuration module is used to establish a coordinate system based on the network system and set corresponding coordinates for each routing node. The first determining module is used to determine the number of links between any pair of adjacent routing nodes in different transmission directions based on the coordinates of the pair of adjacent routing nodes, wherein the total number of links between the pair of adjacent routing nodes is N. The receiving module is used to receive data packet transmission requests from the target host, and determine the difference in the horizontal and vertical coordinates between the source routing node and the destination routing node based on the source routing node and the destination routing node in the data packet transmission request. The second determining module is used to determine, based on the difference in the horizontal coordinate, the first mutually exclusive link used by each hop of the data packet in the data packet transmission request in the horizontal direction, wherein the link code of the first mutually exclusive link is determined based on the horizontal coordinate of the source routing node. The first transmission module is used to transmit the data packet from the source routing node to the intermediate routing node based on the first mutually exclusive link used by each hop; The third determining module is used to determine the second mutually exclusive link used by the data packet for each hop in the vertical axis direction based on the vertical coordinate difference. The mutually exclusive link is a link that is different from the link used to transmit data packets in data packet transmission requests for other hosts besides the target host. The link code of the second mutually exclusive link is determined based on the vertical coordinate of the destination routing node. The second transmission module is used to transmit the data packet from the intermediate routing node to the destination routing node based on the second mutually exclusive link used for each hop; The first determination module includes: The first determining unit is configured to, for any pair of adjacent routing nodes, if the pair of adjacent routing nodes are adjacent routing nodes in the same row, determine the first routing node with the larger horizontal coordinate among the pair of adjacent routing nodes based on the horizontal coordinate of the pair of adjacent routing nodes; and determine that the value of the number of links between the pair of adjacent routing nodes with the transmission direction in the positive direction of the horizontal axis is the same as the value of the horizontal coordinate of the first routing node. The second determining unit is configured to, for any pair of adjacent routing nodes, if the pair of adjacent routing nodes are adjacent routing nodes in the same row, determine the second routing node with the smaller horizontal coordinate among the pair of adjacent routing nodes based on the horizontal coordinate of the pair of adjacent routing nodes; and determine the value of the number of links between the pair of adjacent routing nodes whose transmission direction is in the negative horizontal direction: ,in, This is the x-coordinate of the second routing node.

16. An electronic device, characterized in that, include: Memory, used to store computer programs; A processor, configured to implement the steps of the data packet transmission method as described in any one of claims 1 to 14 when executing the computer program.

17. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program, wherein the computer program, when executed by a processor, implements the steps of the data packet transmission method as described in any one of claims 1 to 14.

18. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, it implements the steps of the data packet transmission method as described in any one of claims 1 to 14.

Citation Information

Patent Citations

  • Routing direction determination method and device, storage medium and electronic equipment

    CN118264605A