Routing method, device, computer device, medium and program product

CN122069222BActive Publication Date: 2026-08-11MOFFETT AI TECHNOLOGY SHENZHEN CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2026-04-22
Publication Date
2026-08-11

AI Technical Summary

Benefits of technology

[0017] According to one or more embodiments of this disclosure, the number of hops required during broadcasting can be significantly reduced, thereby improving broadcasting efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122069222B_ABST
    Figure CN122069222B_ABST
Patent Text Reader

Abstract

This disclosure provides a routing method, apparatus, computer device, medium, and program product, relating to the field of computers. The routing method includes: for any row of a two-dimensional grid topology system: determining a first node and an last node from among multiple routing nodes based on the connection relationships between any one routing node and other routing nodes; identifying the first and last nodes as source nodes; determining a routing strategy corresponding to the source node based on its position in the row of the grid; transmitting the data to be broadcast from the source node to the multiple routing nodes according to the corresponding routing strategy; and transmitting the data to be broadcast received by the multiple routing nodes to their respective computing devices. This method can improve broadcast efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of computers, and more particularly to a routing method, apparatus, computer equipment, medium, and program product. Background Technology

[0002] In multi-core processors or on-chip systems based on 2D mesh topology, compute cores (PEs) are interconnected via routers. When multiple compute cores need to share the same data, traditional broadcast mechanisms typically employ a single-ended, serial diffusion path. As the number of compute cores increases, the broadcast process usually requires a significant number of hops to complete.

[0003] Therefore, there is an urgent need for a routing method that can quickly broadcast data across multiple computing cores. Summary of the Invention

[0004] This disclosure provides a routing method, apparatus, computer device, medium, and program product.

[0005] According to one aspect of this disclosure, a routing method based on a two-dimensional mesh topology system is provided. The two-dimensional mesh topology system includes multiple rows of meshes. Each row of the mesh includes multiple routing nodes and multiple computing devices. The multiple routing nodes are sequentially connected in communication, and there is a one-to-one correspondence between the multiple routing nodes and the multiple computing devices. The routing method includes: for any row of the mesh: based on the connection relationship between any one of the multiple routing nodes and other routing nodes, determining a first node and a last node from the multiple routing nodes, wherein the first node is connected to one of the remaining routing nodes (excluding the first and last nodes), and the last node... The system connects to one of the remaining routing nodes, and any one of the remaining routing nodes connects to any two of the multiple routing nodes other than the first one; the first and last nodes are determined as source nodes, which are used to broadcast the data to be broadcast to multiple routing nodes in the same row of the grid; based on the position of the source node in the row of the grid, a routing policy corresponding to the source node is determined, and the routing policy indicates the transmission path of the data to be broadcast in the row of the grid; the data to be broadcast is transmitted from the source node to multiple routing nodes according to the corresponding routing policy; and the data to be broadcast received by the multiple routing nodes is transmitted to the corresponding computing devices.

[0006] In some embodiments, determining the routing strategy corresponding to the source node based on the position of the source node in the grid row includes: determining the routing endpoint nodes corresponding to the first node and the last node respectively according to the number of multiple routing nodes, so that the data to be broadcast is transmitted from the first node and the last node to the corresponding routing endpoint nodes respectively.

[0007] In some embodiments, the number of multiple routing nodes is 2N, where N is a positive integer greater than 1. The first node is the first routing node, the routing endpoint corresponding to the first node is the Nth routing node, the last node is the 2Nth routing node, and the routing endpoint corresponding to the last node is the (N+1)th routing node.

[0008] In some embodiments, the number of multiple routing nodes is 2N+1, where N is a positive integer greater than 1. The first node is the first routing node, the routing endpoint corresponding to the first node is the Nth routing node, the last node is the 2N+1th routing node, and the routing endpoint corresponding to the last node is the N+1th routing node.

[0009] In some embodiments, the number of multiple routing nodes is 2N+1, where N is a positive integer greater than 1. The first node is the first routing node, the routing endpoint corresponding to the first node is the (N+1)th routing node, the last node is the (2N+1)th routing node, and the routing endpoint corresponding to the last node is the (N+2)th routing node.

[0010] In some embodiments, the number of multiple routing nodes is 2N+1, where N is a positive integer greater than 1. The first node is the first routing node, the routing endpoint corresponding to the first node is the (N+1)th routing node, the last node is the (2N+1)th routing node, and the routing endpoint corresponding to the last node is the (N+1)th routing node.

[0011] In some embodiments, the routing method further includes transmitting the data to be broadcast to multiple source nodes.

[0012] In some embodiments, transmitting data to be broadcast to multiple source nodes includes: transmitting the data to be broadcast from a storage device to multiple source nodes; and / or transmitting the data to be broadcast from any of the multiple computing devices to multiple source nodes via a corresponding routing node.

[0013] According to another aspect of this disclosure, a routing device based on a two-dimensional mesh topology system is provided. The two-dimensional mesh topology system includes multiple rows of meshes. Each row of the meshes includes multiple routing nodes and multiple computing devices. The multiple routing nodes are sequentially and communicatively connected, and there is a one-to-one correspondence between the multiple routing nodes and the multiple computing devices. The routing device includes: a node determination module, used to determine a first node and a last node from the multiple routing nodes based on the connection relationship between any one of the routing nodes and other routing nodes. The first node is connected to one of the remaining routing nodes (excluding the first and last nodes), and the last node is connected to one of the remaining routing nodes. Any one of the remaining routing nodes is connected to any two other routing nodes in the multiple routing nodes; a source determination module is used to determine the first and last nodes as source nodes, and the source nodes are used to broadcast the data to be broadcast to the multiple routing nodes in the row of the grid; a policy determination module is used to determine the routing policy corresponding to the source node based on the position of the source node in the row of the grid, and the routing policy indicates the transmission path of the data to be broadcast in the row of the grid; a transmission module is used to transmit the data to be broadcast from the source node to the multiple routing nodes according to the corresponding routing policy; and a processing module is used to transmit the data to be broadcast received by the multiple routing nodes to the corresponding computing devices.

[0014] According to another aspect of this disclosure, a computer device is provided, comprising: at least one processor; and a memory having a computer program stored thereon, wherein the computer program, when executed by the at least one processor, causes the at least one processor to perform the routing method in the above embodiments.

[0015] According to another aspect of this disclosure, a computer-readable storage medium is provided, on which a computer program is stored, which, when executed by a processor, causes the processor to perform the routing method in the above embodiments.

[0016] According to another aspect of this disclosure, a computer program product is provided, comprising a computer program that, when executed by a processor, causes the processor to perform the routing method in the above embodiments.

[0017] According to one or more embodiments of this disclosure, the number of hops required during broadcasting can be significantly reduced, thereby improving broadcasting efficiency.

[0018] These and other aspects of this disclosure will be apparent from the embodiments described below, and will be elucidated with reference to the embodiments described below. Attached Figure Description

[0019] The accompanying drawings exemplify embodiments and form part of the specification, serving together with the textual description to explain exemplary implementations of the embodiments. The illustrated embodiments are for illustrative purposes only and do not limit the scope of this disclosure. Throughout the drawings, the same reference numerals refer to similar but not necessarily identical elements.

[0020] Figure 1 This is a flowchart illustrating a routing method based on a two-dimensional mesh topology system according to some embodiments of this application; Figure 2 This is a schematic diagram of a commonly used broadcasting method for two-dimensional mesh topology systems. Figure 3 This is a schematic diagram illustrating a broadcast method for a two-dimensional mesh topology system according to some embodiments of this application; Figure 4 This is a schematic diagram illustrating the process of transmitting data to be broadcast to the source node according to some embodiments of this application; Figure 5 This is a schematic block diagram of a routing device based on a two-dimensional mesh topology system according to some embodiments of this application; Figure 6 This is a schematic block diagram of a computer device according to some embodiments of this application. Detailed Implementation

[0021] The exemplary embodiments of this disclosure are described below with reference to the accompanying drawings, including various details of the embodiments to aid understanding, and should be considered merely exemplary. Therefore, those skilled in the art will recognize that various changes and modifications can be made to the embodiments described herein without departing from the scope of this disclosure. Similarly, for clarity and brevity, descriptions of well-known functions and structures are omitted in the following description.

[0022] In this disclosure, unless otherwise stated, the use of terms such as "first," "second," etc., to describe various elements is not intended to limit the positional, temporal, or importance relationships of these elements; such terms are merely used to distinguish one element from another. In some examples, the first element and the second element may refer to the same instance of that element, while in other cases, based on the context, they may refer to different instances.

[0023] The terminology used in the description of the various examples described in this disclosure is for the purpose of describing particular examples only and is not intended to be limiting. Unless the context explicitly indicates otherwise, an element may be one or more unless the number of elements is specifically limited. As used herein, the term "multiple" means two or more, and the term "based on" should be interpreted as "at least partially based on". Furthermore, the terms "and / or" and "at least one of..." cover any one of the listed items and all possible combinations thereof.

[0024] In multi-core processors or on-chip systems based on 2D mesh topology, compute cores (PEs) are interconnected via routers. When multiple compute cores need to share the same data, traditional broadcast mechanisms typically employ a single-ended, serial diffusion path. As the number of compute cores increases, the broadcast process usually requires a significant number of hops to complete.

[0025] Therefore, there is an urgent need for a routing method that can quickly broadcast data across multiple computing cores.

[0026] This application provides a routing method based on a two-dimensional mesh topology system. The two-dimensional mesh topology system includes multiple rows of meshes. Each row of the mesh includes multiple routing nodes and multiple computing devices. The multiple routing nodes are sequentially connected in communication. There is a one-to-one correspondence between the multiple routing nodes and the multiple computing devices. (Reference) Figure 1 The routing method 100 based on a two-dimensional grid topology system includes steps 110 to 150.

[0027] Step 110: For any row of a multi-row grid: Based on the connection relationships between any one of the multiple routing nodes and other routing nodes, determine the first node and the last node from the multiple routing nodes. The first node is connected to one of the remaining routing nodes (excluding the first and last nodes). The last node is connected to one of the remaining routing nodes. Any one of the remaining routing nodes is connected to any two of the multiple routing nodes (excluding the first node).

[0028] Step 120: Determine the first and last nodes as source nodes. The source nodes are used to broadcast the data to be broadcast to multiple routing nodes in that row of the grid.

[0029] Step 130: Based on the location of the source node in this row of the grid, determine the routing policy corresponding to the source node. The routing policy indicates the transmission path of the data to be broadcast in this row of the grid.

[0030] Step 140: Transmit the data to be broadcast from the source node to multiple routing nodes according to the corresponding routing policy.

[0031] Step 150: Transmit the data to be broadcast received by multiple routing nodes to the corresponding computing devices respectively.

[0032] In a two-dimensional mesh topology system, there are multiple routing nodes and corresponding computing devices. These computing devices, also referred to as the "computing core" or "processing core" mentioned above, are used to process the data. The routing nodes communicate sequentially with each other, allowing data to be propagated in sequence, thus achieving data broadcasting among the routing nodes. Figure 2 and Figure 3 The image illustrates an example of a two-dimensional mesh topology system. For example... Figure 2 and Figure 3 As shown, this system includes 64 routing nodes, from R0 to R63. Each routing node is also connected to a computing device, specifically PE0 to PE63 connected to R0 to R63 respectively. All routing nodes can form a multi-row mesh. Figure 2 and Figure 3 In the example shown, 64 routing nodes form 8 rows of a grid, with each row containing 8 routing nodes.

[0033] Taking routing nodes R0 to R7 in the first row of the grid as an example, Figure 2 As shown, in the existing technology, the broadcast origin (e.g., the routing node R0 at the beginning of the line) injects the data to be transmitted. This data traverses each routing node of the line sequentially and hop-by-hop, i.e., R0 -> R1 -> R2 -> ... -> R7, finally reaching the end of the line, which is also the broadcast endpoint. The transmission path is as follows: Figure 2 As shown by the dashed lines, the drawbacks of this design become apparent as the number of routing nodes and computing devices in the system increases. With this broadcast implementation, for an NxN 2D Mesh system, broadcasting a single row requires N-1 hops, resulting in extremely low broadcast efficiency.

[0034] To improve broadcast efficiency, the existing single broadcast starting point method can be improved by using multiple broadcast starting points for broadcasting.

[0035] In step 110, for any row of the grid, the first and last nodes can be determined based on the connection relationships between the routing nodes. Since all routing nodes in each row communicate sequentially, the first and last nodes each communicate with one of the remaining routing nodes, while the other routing nodes communicate with the remaining two routing nodes. Figure 3 Taking the first row of the grid as an example, there are 8 routing nodes R0 to R7 in this row. R0 and R7 are located at the two ends and can be identified as the first node and the last node.

[0036] In step 120, the first and last nodes of each row will be determined as the source nodes, which are the broadcast start points of this row. The broadcast data will be transmitted from the source nodes to each routing node in this row in sequence.

[0037] In step 130, based on the locations of the two source nodes, their corresponding routing policies will be determined. According to the routing policies, the data to be broadcast will start from the source node and pass through each routing node in the transmission path in sequence, thus achieving broadcasting to each routing node.

[0038] According to some embodiments of this application, step 130 includes: determining the routing endpoint nodes corresponding to the first node and the last node respectively based on the number of multiple routing nodes, so that the data to be broadcast is transmitted from the first node and the last node to the corresponding routing endpoint nodes respectively.

[0039] For the first and last nodes, since the data to be broadcast will start from these two routing nodes respectively, their corresponding destination nodes, i.e., the broadcast endpoints, can be determined. Based on the number of routing nodes included in each row, the number of nodes on the transmission path in the routing strategy corresponding to each source node can be reasonably designed. By reasonably designing the destination nodes, parallel transmission of the data to be broadcast can be achieved, effectively improving broadcast efficiency.

[0040] Continue with Figure 3 For example, Figure 3 As shown, routing nodes R0 and R7 are the first and last nodes, respectively. Since there are 8 sequentially connected routing nodes in this row, to achieve parallel transmission, these 8 routing nodes can be evenly distributed, with each source node corresponding to a transmission path containing 4 routing nodes. Alternatively, it can be understood that the destination node corresponding to the first node R0 is the 4th routing node R3, and the destination node corresponding to the last node R7 is the 5th routing node R4. Under this routing strategy, the transmission path corresponding to the first node R0 is R0 -> R1 -> R2 -> R3, and the transmission path corresponding to the last node R7 is R7 -> R6 -> R5 -> R4, as shown in the diagram. Figure 3 As shown by the dashed line in the image.

[0041] According to some embodiments of this application, the number of multiple routing nodes is 2N, where N is a positive integer greater than 1. The first node is the first routing node, and the routing endpoint corresponding to the first node is the Nth routing node. The last node is the 2Nth routing node, and the routing endpoint corresponding to the last node is the (N+1)th routing node.

[0042] like Figure 3In the example shown, if the number of routing nodes in each row of the grid is even, i.e., 2N, then they can be evenly distributed, with each of the two source nodes having N routing nodes on its respective transmission path. As mentioned above, for Figure 3 In the example shown, there are 8 routing nodes in each row of the grid, that is, N=4. Therefore, for the first node, i.e., the 1st routing node R0, its corresponding destination node is the N=4th routing node R3. For the last node, i.e., the 8th routing node R0, its corresponding destination node is the N+1=5th routing node R4.

[0043] According to some embodiments of this application, the number of multiple routing nodes is 2N+1, where N is a positive integer greater than 1. The first node is the first routing node, and the routing endpoint corresponding to the first node is the Nth routing node. The last node is the 2N+1th routing node, and the routing endpoint corresponding to the last node is the N+1th routing node.

[0044] According to some embodiments of this application, the number of multiple routing nodes is 2N+1, where N is a positive integer greater than 1. The first node is the first routing node, and the routing endpoint corresponding to the first node is the (N+1)th routing node. The last node is the (2N+1)th routing node, and the routing endpoint corresponding to the last node is the (N+2)th routing node.

[0045] In other designs, the number of routing nodes in each row of the grid can also be odd, i.e., 2N+1. In this case, the transmission paths of the two source nodes can each include N routing nodes and N+1 routing nodes, respectively. In this transmission method, there are no duplicate nodes between the transmission paths of the two source nodes.

[0046] In one scenario, the transmission path corresponding to the first node includes N routing nodes, and the transmission path corresponding to the last node includes N+1 routing nodes. That is, the destination node corresponding to the first node (the 1st routing node) is the Nth routing node, and the destination node corresponding to the last node (the 2N+1th routing node) is the N+1th routing node.

[0047] In another scenario, the transmission path corresponding to the first node includes N+1 routing nodes, and the transmission path corresponding to the last node includes N routing nodes. That is, the destination node corresponding to the first node (the 1st routing node) is the N+1th routing node, and the destination node corresponding to the last node (the 2N+1th routing node) is the N+2th routing node.

[0048] According to some embodiments of this application, the number of multiple routing nodes is 2N+1, where N is a positive integer greater than 1. The first node is the first routing node, and the routing endpoint corresponding to the first node is the (N+1)th routing node. The last node is the (2N+1)th routing node, and the routing endpoint corresponding to the last node is the (N+1)th routing node.

[0049] When the number of routing nodes in each row of the grid is odd, the transmission paths of two source nodes can also have duplicate routing nodes, that is, they can use the same destination node. The transmission path corresponding to each source node includes N+1 routing nodes. In this transmission method, the destination node corresponding to the first node (the 1st routing node) is the N+1th routing node, and the destination node corresponding to the last node (the 2N+1th routing node) is also the N+1th routing node.

[0050] It should be understood that, for Figure 3 For other row grids illustrated in the diagram, or for other systems that include more routing nodes and more row grids, the routing method described above can also be used.

[0051] In step 140, for each source node, the data to be broadcast will be transmitted to each routing node sequentially through the corresponding transmission path according to the corresponding routing policy, until it reaches the routing endpoint node.

[0052] In step 150, the data to be broadcast received by each routing node will be transmitted to the computing device connected to it, so that the computing device can process the data and complete the broadcast process of the data to be broadcast.

[0053] According to some embodiments of this application, the routing method 100 further includes: transmitting the data to be broadcast to the source node.

[0054] As mentioned above, the data to be broadcast starts from the two source nodes and is transmitted sequentially to the other routing nodes. Therefore, the data to be broadcast needs to be transmitted to the two source nodes so that it can be broadcast.

[0055] According to some embodiments of this application, transmitting the data to be broadcast to the source node includes a first process 400. (See reference...) Figure 4 The first process 400 includes steps 410 and / or 420.

[0056] Step 410: Transmit the data to be broadcast from the storage device to the source node.

[0057] Step 420: Transmit the data to be broadcast from any of the multiple computing devices to the source node via the corresponding routing node.

[0058] The data to be broadcast can come from external storage devices. In this scenario, the data to be broadcast can be transferred from these external storage devices to the source node, and the broadcast can begin from the source node.

[0059] In other embodiments, the data to be broadcast may also originate from a computing device within the system. Continuing... Figure 3 Let's take an example. In some embodiments, each routing node can achieve bidirectional transmission, for example... Figure 3 The illustrated routing node R2 can transmit data to routing node R1 or routing node R3. In this example, the data to be broadcast could originate from computing device PE2, meaning the data in computing device PE2 needs to be broadcast to all routing nodes. In this case, the data to be broadcast from computing device PE2 will first be transmitted to two source nodes R0 and R7 via the routing node R2 connected to it, and then broadcast will begin through these two source nodes.

[0060] Using the routing method in this application, the number of hops required during broadcasting in a two-dimensional mesh topology can be effectively reduced. For example, for the NxN 2D Mesh system mentioned above, broadcasting a single row only requires N / 2-1 hops. Figure 2 and Figure 3 For example, using Figure 2 The routing method in the code requires 7 hops to broadcast a single line, while using... Figure 3 The routing method in the system allows a single line of broadcast to be completed in just 3 hops, greatly improving broadcast efficiency.

[0061] Based on the same technical concept, embodiments of this application provide a routing device based on a two-dimensional mesh topology system. The two-dimensional mesh topology system includes multiple rows of meshes. Each row of the mesh includes multiple routing nodes and multiple computing devices. The multiple routing nodes are sequentially communicatively connected. There is a one-to-one correspondence between the multiple routing nodes and the multiple computing devices. Embodiments of the routing device based on a two-dimensional mesh topology system can be referenced to embodiments of the routing method based on a two-dimensional mesh topology system; repeated details will not be elaborated further. Reference Figure 5 The routing device 500 based on a two-dimensional grid topology system includes a node determination module 510, a source determination module 520, a policy determination module 530, a transmission module 540, and a processing module 550.

[0062] The node determination module 510 is used to determine the first node and the last node from a plurality of routing nodes based on the connection relationships between any one of the routing nodes and other routing nodes. The first node is connected to one of the remaining routing nodes (excluding the first and last nodes). The last node is connected to one of the remaining routing nodes. Any one of the remaining routing nodes is connected to any two of the remaining routing nodes (excluding the first node itself).

[0063] The source determination module 520 is used to determine the first and last nodes as source nodes. The source nodes are used to broadcast the data to be broadcast to multiple routing nodes in the same row of the grid.

[0064] The policy determination module 530 determines the routing policy corresponding to the source node based on the source node's position in the grid row. The routing policy indicates the transmission path of the data to be broadcast in the grid row.

[0065] The transmission module 540 is used to transmit the data to be broadcast from the source node to multiple routing nodes according to the corresponding routing policy.

[0066] The processing module 550 is used to transmit the data to be broadcast received by multiple routing nodes to the corresponding computing devices.

[0067] The node determination module 510, source determination module 520, policy determination module 530, transmission module 540, and processing module 550 in the routing device 500 based on a two-dimensional mesh topology system can correspond to steps 110 to 150 in the routing method 100 based on a two-dimensional mesh topology system. For the sake of brevity, they will not be described in detail here. It should be understood that, corresponding to the embodiment of the routing method 100 based on a two-dimensional mesh topology system, the embodiment of the routing device 500 based on a two-dimensional mesh topology system may also include more modules.

[0068] According to some embodiments of this application, the policy determination module 530 is used to determine the routing endpoint nodes corresponding to the first node and the last node respectively based on the number of multiple routing nodes, so that the data to be broadcast is transmitted from the first node and the last node to the corresponding routing endpoint nodes respectively.

[0069] According to some embodiments of this application, the number of multiple routing nodes is 2N, where N is a positive integer greater than 1. The first node is the first routing node, and the routing endpoint corresponding to the first node is the Nth routing node. The last node is the 2Nth routing node, and the routing endpoint corresponding to the last node is the (N+1)th routing node.

[0070] According to some embodiments of this application, the number of multiple routing nodes is 2N+1, where N is a positive integer greater than 1. The first node is the first routing node, and the routing endpoint corresponding to the first node is the Nth routing node. The last node is the 2N+1th routing node, and the routing endpoint corresponding to the last node is the N+1th routing node.

[0071] According to some embodiments of this application, the number of multiple routing nodes is 2N+1, where N is a positive integer greater than 1. The first node is the first routing node, and the routing endpoint corresponding to the first node is the (N+1)th routing node. The last node is the (2N+1)th routing node, and the routing endpoint corresponding to the last node is the (N+2)th routing node.

[0072] According to some embodiments of this application, the number of multiple routing nodes is 2N+1, where N is a positive integer greater than 1. The first node is the first routing node, and the routing endpoint corresponding to the first node is the (N+1)th routing node. The last node is the (2N+1)th routing node, and the routing endpoint corresponding to the last node is the (N+1)th routing node.

[0073] According to some embodiments of this application, the routing device 500 further includes a starting transmission module. The starting transmission module is used to transmit the data to be broadcast to the source node.

[0074] According to some embodiments of this application, transmitting data to be broadcast to a source node includes transmitting the data to be broadcast from a storage device to the source node; and / or transmitting the data to be broadcast from any of a plurality of computing devices to the source node via a corresponding routing node.

[0075] It should be noted that the functions of the modules discussed herein can be divided into multiple modules, and / or at least some functions of multiple modules can be combined into a single module. The specific actions performed by a particular module discussed herein include the specific module itself performing the action, or alternatively, the specific module calling or otherwise accessing another component or module that performs the action (or performs the action in conjunction with the specific module). Therefore, a specific module performing an action can include the specific module performing the action itself and / or another module that performs the action, called or otherwise accessed by the specific module.

[0076] It should also be understood that this article can describe various technologies in the general context of software and hardware components or program modules. The above regarding... Figure 5The described modules can be implemented in hardware or in hardware in combination with software and / or firmware. For example, these modules can be implemented as computer program code / instructions configured to execute in one or more processors and stored in a computer-readable storage medium. Alternatively, these modules can be implemented as hardware logic / circuit. Hardware logic / circuit may include integrated circuit chips (which include processors (e.g., Central Processing Unit (CPU), microcontrollers, microprocessors, digital signal processors (DSPs), etc.), memory, one or more communication interfaces, and / or one or more components in other circuitry), and may optionally execute received program code and / or include embedded firmware to perform functions.

[0077] Figure 6 An example computer device 600 is shown in which any of the embodiments described herein may be implemented. The computer device 600 may be used to implement one or more components of the systems and methods described above. The computer device 600 may include a bus 602 or other communication mechanism for communicating information, and one or more processors 604 coupled to the bus 602 for processing information. The processor 604 may be, for example, one or more general-purpose microprocessors.

[0078] Computer device 600 may also include main memory 606, such as random access memory (RAM), cache, and / or other dynamic storage devices, coupled to bus 602, for storing information and instructions to be executed by processor 604. Main memory 606 may also be used to store temporary variables or other intermediate information during the execution of instructions to be executed by processor 604. Such instructions, when stored in a storage medium accessible to processor 604, can make computer device 600 a special-purpose machine customized to perform the operations specified in the instructions. Main memory 606 may include non-volatile media and / or volatile media. Non-volatile media may include, for example, optical discs or magnetic disks. Volatile media may include dynamic memory. Common media formats may include, for example, floppy disks, collapsible disks, hard disks, solid-state drives, magnetic tapes or any other magnetic data storage media, CD-ROMs (read-only optical disc drives), any other optical data storage media, any physical media with a perforated arrangement, RAM (random access memory), DRAM (dynamic random access memory), PROM (programmable read-only memory) and EPROM (erasable programmable read-only memory), FLASH-EPROM (fast erase programmable read-only memory), NVRAM (non-volatile random access memory), any other memory chips or tape cartridges, or network versions of the above.

[0079] Computer device 600 may implement the techniques described herein using custom hardwired logic, one or more ASICs (Application-Specific Integrated Circuits) or FPGAs (Field-Programmable Gate Arrays), firmware, and / or program logic, which, when combined with computer device 600, enable computer device 600 to become a special-purpose machine or to be programmed therein. According to one embodiment, the techniques herein are executed by computer device 600 in response to processor 604 executing one or more sequences of one or more instructions contained in main memory 606. Such instructions may be read into main memory 606 from another storage medium, such as storage device 608. Executing the sequence of instructions contained in main memory 606 causes processor 604 to perform the processing steps described herein. For example, the processes / methods disclosed herein may be implemented by computer program instructions stored in main memory 606. When these instructions are executed by processor 604, they may perform the steps shown in the corresponding figures and as described above. In alternative embodiments, hardwired circuitry may be used in place of or in combination with software instructions.

[0080] Computer device 600 also includes a network interface 610 coupled to bus 602. Network interface 610 can provide bidirectional data communication coupled to one or more network links connected to one or more networks. As another example, network interface 610 can be a local area network (LAN) card to provide data communication connectivity with a compatible LAN (or a WAN component communicating with a WAN (wide area network)). Wireless links can also be implemented.

[0081] The performance of certain operations can be distributed across processors, not just residing within a single machine, but deployed across many machines. In some exemplary embodiments, the processor or the processor-implemented engine may reside in a single geographic location (e.g., in a home environment, office environment, or server farm). In other exemplary embodiments, the processor or the processor-implemented engine may be distributed across many geographic locations.

[0082] Each process, method, and algorithm described in the preceding sections can be embodied in a code module executed by one or more computer systems or computer processors including computer hardware, and can be fully or partially automated by them. These processes and algorithms can be implemented, in part or in whole, in a specific application circuit.

[0083] When the functions disclosed herein are implemented as software functional units and sold or used as independent products, they can be stored in a processor-executable, non-volatile, computer-readable storage medium. Specific technical solutions (all or part) disclosed herein, or aspects contributing to the prior art, can be embodied in the form of a software product. This software product can be stored in a storage medium and includes instructions to cause a computer device (which may be a personal computer, server, network device, etc.) to perform all or part of the steps of the methods described in the embodiments of this application. The storage medium may include a flash drive, a portable hard drive, ROM, RAM, a magnetic disk, an optical disk, another medium suitable for storing program code, or any combination thereof.

[0084] The embodiments disclosed herein can be implemented via a cloud platform, server, or group of servers that interact with a client. The client can be a terminal device or a client registered by a user on the platform, wherein the terminal device can be a mobile terminal, a personal computer (PC), or any device that can install platform applications.

[0085] The various features and processes described above can be used independently or combined in various ways. All possible combinations and sub-combinations are intended to fall within the scope of this disclosure. Furthermore, certain method or process blocks may be omitted in some embodiments. The methods and processes described herein are not limited to any particular order, and associated blocks or states may be executed in other suitable orders. For example, described blocks or states may be executed in a non-specifically disclosed order, or multiple blocks or states may be combined in a single block or state. Exemplary blocks or states may be executed serially, in parallel, or otherwise. Blocks or states may be added to or removed from the disclosed exemplary embodiments. The exemplary systems and components described herein may be configured differently from those described. For example, elements may be added, removed, or rearranged compared to the disclosed exemplary embodiments.

[0086] The various operations of the exemplary methods described herein can be performed at least in part by an algorithm. An algorithm may consist of program code or instructions stored in memory (such as the non-transitory computer-readable storage medium described above). Such an algorithm may include a machine learning algorithm. In some embodiments, the machine learning algorithm may not be explicitly programmed into the computer to perform the function, but may learn from training data to obtain a predictive model for performing that function.

[0087] The various operations of the exemplary methods described herein can be performed at least in part by one or more processors, which are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors can constitute the engine of a processor implementation whose operation is to perform one or more of the operations or functions described herein.

[0088] Similarly, the methods described herein can be implemented at least partially by a processor, where a specific processor or one or more processors are examples of hardware. For example, at least some operations of the methods can be performed by one or more processors or an engine implemented by a processor. Furthermore, one or more processors can also run in a “cloud computing” environment or as “Software as a Service” (SaaS) to support the execution of the relevant operations. For example, at least some operations can be performed by a group of computers (as an example of a machine including processors), which can be accessed via a network (e.g., the Internet) and through one or more appropriate interfaces (e.g., application programming interfaces (APIs)).

[0089] The performance of certain operations can be distributed across processors, not just residing within a single machine, but deployed across many machines. In some exemplary embodiments, the processor or the processor-implemented engine may reside in a single geographic location (e.g., in a home environment, office environment, or server farm). In other exemplary embodiments, the processor or the processor-implemented engine may be distributed across many geographic locations.

[0090] In this specification, multiple instances may implement components, operations, or structures described as a single instance. Although individual operations of one or more methods are described and illustrated as independent operations, one or more individual operations may be performed concurrently, and these operations are not required to be performed in the order shown. Structures and functionalities presented as independent components in the example configuration may be implemented as combined structures or components. Similarly, structures and functionalities presented as individual components may be implemented as independent components. These and other variations, modifications, additions, and improvements are all within the scope of this document.

[0091] As used herein, “or” is inclusive rather than exclusive unless explicitly stated or indicated by context. Furthermore, “and” is both common and individual unless explicitly stated or indicated by context. Moreover, multiple instances may be provided for the resources, operations, or structures described herein as a single example. Furthermore, the boundaries between various resources, operations, engines, and data stores are somewhat arbitrary, and specific operations are illustrated within the context of a particular illustrative configuration. The allocation of other functionalities is conceivable and may fall within the scope of various embodiments of this disclosure. Generally, structures and functionalities presented as independent resources in example configurations may be implemented as combined structures or resources. Similarly, structures and functionalities presented as individual resources may be implemented as independent resources. These and other variations, modifications, additions, and improvements are all within the scope of embodiments of this disclosure. Therefore, this specification and accompanying drawings should be viewed in an illustrative rather than restrictive sense.

[0092] The terms “comprising” or “including” are used to indicate the presence of a subsequently stated feature, but do not preclude the addition of other features. Conditional language, in particular, such as “may,” “can,” or “may,” unless specifically stated or otherwise understood in the context of use, is generally intended to express that certain embodiments include certain features, elements, and / or steps, while other embodiments do not. Therefore, such conditional language generally does not imply that a feature, element, and / or step is necessary in any way for one or more embodiments, or that one or more embodiments must include logic that, with or without user input or prompting, determines whether such features, elements, and / or steps are included in any particular embodiment, or whether they are to be performed in any particular embodiment.

Claims

1. A routing method based on a two-dimensional grid topology system, characterized in that, The two-dimensional grid topology system includes multiple rows of grids. Each row of the grid includes multiple routing nodes and multiple computing devices. The multiple routing nodes are sequentially and communicatively connected. Each routing node and each computing device corresponds one-to-one. The routing method includes: For any row of the multi-row grid: Based on the connection relationship between any one of the plurality of routing nodes and other routing nodes, a first node and an end node are determined from the plurality of routing nodes. The first node is connected to one of the remaining routing nodes other than the first node and the end node. The end node is connected to one of the remaining routing nodes. Any one of the remaining routing nodes is connected to any two of the plurality of routing nodes other than the first routing node. The first node and the last node are determined as source nodes, and the source nodes are used to broadcast the data to be broadcast to the multiple routing nodes in the grid of that row, respectively. Based on the position of the source node in the grid row, a routing strategy corresponding to the source node is determined, and the routing strategy indicates the transmission path of the data to be broadcast in the grid row. Transmit the data to be broadcast from the source node to the plurality of routing nodes according to the corresponding routing policy; and The data to be broadcast received by the multiple routing nodes are transmitted to the corresponding computing devices.

2. The routing method according to claim 1, characterized in that, The step of determining the routing strategy corresponding to the source node based on its position in the grid row includes: Based on the number of the plurality of routing nodes, the routing endpoint nodes corresponding to the first node and the last node are determined respectively, so that the data to be broadcast is transmitted from the first node and the last node to the corresponding routing endpoint nodes respectively.

3. The routing method according to claim 2, characterized in that, The number of the plurality of routing nodes is 2N, where N is a positive integer greater than 1. The first node is the 1st routing node, the routing endpoint node corresponding to the first node is the Nth routing node, the last node is the 2Nth routing node, and the routing endpoint node corresponding to the last node is the (N+1)th routing node.

4. The routing method according to claim 2, characterized in that, The number of the plurality of routing nodes is 2N+1, where N is a positive integer greater than 1. The first node is the 1st routing node, the routing endpoint node corresponding to the first node is the Nth routing node, the last node is the 2N+1th routing node, and the routing endpoint node corresponding to the last node is the N+1th routing node.

5. The routing method according to claim 2, characterized in that, The number of the plurality of routing nodes is 2N+1, where N is a positive integer greater than 1. The first node is the first routing node, the routing endpoint node corresponding to the first node is the (N+1)th routing node, the last node is the (2N+1)th routing node, and the routing endpoint node corresponding to the last node is the (N+2)th routing node.

6. The routing method according to claim 2, characterized in that, The number of the plurality of routing nodes is 2N+1, where N is a positive integer greater than 1. The first node is the first routing node, the routing endpoint node corresponding to the first node is the (N+1)th routing node, the last node is the (2N+1)th routing node, and the routing endpoint node corresponding to the last node is the (N+1)th routing node.

7. The routing method according to any one of claims 1-6, characterized in that, Also includes: The data to be broadcast is transmitted to the source node.

8. The routing method according to claim 7, characterized in that, The step of transmitting the data to be broadcast to the source node includes: Transmit the data to be broadcast from the storage device to the source node; and / or The data to be broadcast is transmitted from any of the plurality of computing devices to the source node via the corresponding routing node.

9. A routing device based on a two-dimensional grid topology system, characterized in that, The two-dimensional grid topology system includes multiple rows of grids. Each row of the grid includes multiple routing nodes and multiple computing devices. The multiple routing nodes are sequentially and communicatively connected. Each routing node and each computing device corresponds one-to-one. The routing device includes: The node determination module is used to determine the first node and the last node from the plurality of routing nodes based on the connection relationship between any one of the routing nodes and other routing nodes. The first node is connected to one of the remaining routing nodes other than the first node and the last node. The last node is connected to one of the remaining routing nodes. Any one of the remaining routing nodes is connected to any two of the plurality of routing nodes other than the first node. A source determination module is used to determine the first node and the last node as source nodes, and the source nodes are used to broadcast the data to be broadcast to the multiple routing nodes in the row of the grid respectively; The strategy determination module is used to determine the routing strategy corresponding to the source node based on the position of the source node in the row of the grid, wherein the routing strategy indicates the transmission path of the data to be broadcast in the row of the grid; A transmission module is configured to transmit the data to be broadcast from the source node to the plurality of routing nodes according to a corresponding routing policy; and The processing module is used to transmit the data to be broadcast received by the multiple routing nodes to the corresponding computing devices.

10. A computer device, characterized in that, include: At least one processor; A memory having a computer program stored thereon, wherein, when executed by the at least one processor, the computer program causes the at least one processor to perform the routing method according to any one of claims 1-8.

11. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that, when executed by a processor, causes the processor to perform the routing method according to any one of claims 1-8.

12. A computer program product, characterized in that, The computer program product includes a computer program that, when executed by a processor, causes the processor to perform the routing method according to any one of claims 1-8.

Citation Information

Patent Citations

  • Multi-hop routing method for realizing 5G Internet of Things network routing path

    CN110972206A

  • Unmanned cluster hierarchical networking system and multi-source tree routing protocol implementation method

    CN120456166A