A Routing Method, Device, Storage Medium and Electronic Device for Network-on-Chip
By dynamically perceiving and selecting paths in an on-chip network, and using multi-level perception and hybrid standards to evaluate node congestion values based on node relationships and congestion information, the problem of network congestion in multi-core processors is solved, and communication efficiency and performance are improved.
Patent Information
- Application Number
- CN202510486642.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-04-18
- Publication Date
- 2025-08-01
- Estimated Expiration
- 2045-04-18
AI Technical Summary
As the number of multi-core processor cores increases, network traffic on the network on chip becomes complex, which easily leads to congestion, affects communication performance and overall work efficiency. Existing routing strategies such as XY or YX deterministic routing path selection is single, which can easily cause congestion problems.
By determining the neighbor node according to the relationship between the first node and the destination node, obtaining the congestion information of the neighbor node, selecting the transmission path of the data packet, and evaluating the node congestion value using multi-level congestion perception range and mixed standards. Combining the link weight and node weight, the path is dynamically selected to alleviate network congestion.
Improve path diversity, reduce congestion, and improve the communication efficiency and working performance of on-chip networks.
Smart Images

Figure CN120151265B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to the field of computer technologies, and in particular, to a routing method, apparatus, storage medium, and electronic device for a network on chip. Background Art
[0002] With the continuous development of technologies, the number of cores in multi-core processors has gradually increased, and the requirements for processing and communication capabilities have also been continuously improving. As a key architecture connecting these cores, the network on chip (NoC) plays an important role in ensuring efficient data transmission. However, with the increase in the number of cores, network traffic has become more complex, prone to congestion, thus affecting communication performance and overall working efficiency. Therefore, the network on chip requires efficient congestion awareness and processing strategies.
[0003] Some existing networks on chip adopt independent congestion awareness and processing modules, which can monitor the traffic and working status of routing nodes in real time, but this also brings additional consumption of resources, such as an increase in area and power consumption. In addition, some currently commonly used routing strategies (such as XY or YX deterministic routing) have a single path selection, which is prone to congestion problems. Summary of the Invention
[0004] The present disclosure provides a routing method, apparatus, storage medium, and electronic device for a network on chip to at least solve the above technical problems existing in the prior art.
[0005] The technical solution of the embodiment of the present disclosure is implemented as follows:
[0006] In a first aspect, the embodiment of the present disclosure provides a routing method for a network on chip, the method including:
[0007] Determine the neighbor nodes of the first node according to the relationship between the first node and the destination node; the first node is the sender of the data packet, and the destination node is the receiver of the data packet;
[0008] Obtain the congestion information of the neighbor nodes, and select a transmission path for the data packet according to the congestion information.
[0009] In the above solution, the determining the neighbor nodes of the first node according to the relationship between the first node and the destination node includes:
[0010] Determine the neighbor nodes of the first node according to the congestion awareness range;
[0011] Wherein, if the congestion awareness range is the local awareness range, the neighbor nodes include the first neighbor nodes;
[0012] If the congestion awareness range is the first area awareness range, the neighboring nodes include a first neighboring node and a second neighboring node;
[0013] If the congestion awareness range is the second area awareness range, the neighboring nodes include a first neighboring node, a second neighboring node, and a third neighboring node;
[0014] The first neighboring node is a node directly connected to the first node, the second neighboring node is a node directly connected to the first neighboring node, and the third neighboring node is a node directly connected to the second neighboring node.
[0015] In the above solution, obtaining the congestion information of the neighboring nodes includes:
[0016] Determining the congestion value of each first neighboring node according to the congestion awareness range and the congestion criterion;
[0017] Wherein, if the congestion awareness range is the local awareness range, the congestion value of the first neighboring node is determined based on its own congestion value;
[0018] If the congestion awareness range is the first area awareness range, the congestion value of the first neighboring node is determined based on its own and the congestion values of the second neighboring nodes;
[0019] If the congestion awareness range is the second area awareness range, the congestion value of the first neighboring node is determined based on its own, the congestion values of the second neighboring nodes, and the congestion values of the third neighboring nodes.
[0020] In the above solution, the congestion criterion includes at least one; determining the congestion value of each first neighboring node includes:
[0021] Determining the congestion value of each first neighboring node according to the standard weight determined according to each congestion criterion and the node congestion value.
[0022] In the above solution, determining the congestion value of each first neighboring node according to the standard weight determined according to each congestion criterion and the node congestion value includes:
[0023] Determining the node weight of each neighboring node and the first congestion value determined based on the congestion criterion;
[0024] Determining the node congestion value of each neighboring node according to the node weight, the first congestion value, and the standard weight.
[0025] In the above solution, the method further includes:
[0026] Determining the link weight;
[0027] Determining the congestion value of each first neighboring node according to the link weight and the node congestion value of each neighboring node.
[0028] In the above solution, determining the neighbor nodes of the first node according to the relationship between the first node and the destination node includes:
[0029] Selecting at least one neighbor node of the first node according to the orientation relationship between the first node and the destination node.
[0030] In the above solution, selecting at least one neighbor node of the first node according to the orientation relationship between the first node and the destination node includes:
[0031] Selecting the neighbor nodes within the orientation relationship as at least one neighbor node of the first node.
[0032] In the above solution, the method further includes:
[0033] Determining the centrality of each node in the network-on-chip;
[0034] Dividing the network-on-chip into a central area and an edge area according to the centrality;
[0035] Allocating node weights to the nodes of the network-on-chip according to the central area and the edge area.
[0036] In the above solution, selecting the transmission path of the data packet according to the congestion information includes:
[0037] Comparing the congestion values of each first neighbor node, and selecting the transmission path of the data packet according to the comparison result.
[0038] In the above solution, the method further includes:
[0039] Adjusting the congestion standard and / or the congestion awareness range according to the adjustment instruction.
[0040] In the above solution, the method further includes at least one of the following:
[0041] Receiving a first operation, and determining the adjustment instruction according to the first operation;
[0042] Adaptive generating the adjustment instruction according to the congestion situation.
[0043] In a second aspect, an embodiment of the present disclosure provides a routing device for a network-on-chip, and the device includes:
[0044] A first processing module, configured to determine the neighbor nodes of the first node according to the relationship between the first node and the destination node; the first node is the sender of the data packet, and the destination node is the receiver of the data packet;
[0045] A second processing module, configured to obtain congestion information of the neighbor nodes; and select a transmission path for the data packet according to the congestion information.
[0046] In a third aspect, an embodiment of the present disclosure provides an electronic device, including: at least one processor; and a memory communicatively connected to the at least one processor; wherein, the memory stores instructions executable by the at least one processor, and when the instructions are executed by the at least one processor, the at least one processor is enabled to execute the routing method of the network-on-chip according to any one of the above.
[0047] In a fourth aspect, an embodiment of the present disclosure provides a non-transitory computer-readable storage medium storing computer instructions, where the computer instructions are used to cause a computer to execute the routing method of the network-on-chip according to any one of the above.
[0048] The embodiments of the present disclosure have the following beneficial effects:
[0049] Applying the routing method, device, storage medium and electronic device of the network-on-chip provided by the embodiments of the present disclosure, determine the neighbor nodes of the first node according to the relationship between the first node and the destination node; the first node is the sender of the data packet, and the destination node is the receiver of the data packet; obtain the congestion information of the neighbor nodes, and select a transmission path for the data packet according to the congestion information. In this way, relevant neighbor nodes are selected according to the relationship between the first node and the target node, and the transmission path of the data packet is selected based on the congestion situation of the neighbor nodes. This method alleviates the network congestion problem by dynamically sensing and selecting paths, improves path diversity, reduces the occurrence of congestion, and thus improves the communication efficiency and working performance of the network-on-chip.
[0050] It should be understood that the content described in this part is not intended to identify the key or important features of the embodiments of the present disclosure, nor is it used to limit the scope of the present disclosure. Other features of the present disclosure will become easily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS
[0051] Figure 1 A schematic diagram of a network-on-chip provided by an embodiment of the present disclosure;
[0052] Figure 2 A flowchart of a routing method of a network-on-chip provided by an embodiment of the present disclosure;
[0053] Figure 3 Another schematic diagram of a network-on-chip provided by an embodiment of the present disclosure;
[0054] Figure 4 A schematic diagram of a congestion-aware router provided by an embodiment of the present disclosure;
[0055] Figure 5Schematic diagram of congestion awareness and port selection when the sensing range is an area provided by an embodiment of the present disclosure;
[0056] Figure 6 Schematic structural diagram of a routing device for a network-on-chip provided by an embodiment of the present disclosure;
[0057] Figure 7 Schematic structural diagram of an electronic device provided by an embodiment of the present disclosure. Detailed implementation manners
[0058] To make the objectives, features, and advantages of the present disclosure more obvious and understandable, the technical solutions in the embodiments of the present disclosure will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present disclosure. Apparently, the described embodiments are only a part of the embodiments of the present disclosure, rather than all the embodiments. Based on the embodiments of the present disclosure, all other embodiments obtained by those skilled in the art without creative efforts fall within the protection scope of the present disclosure.
[0059] In the following description, reference is made to "some embodiments", which describe a subset of all possible embodiments. However, it can be understood that "some embodiments" can be the same subset or different subsets of all possible embodiments, and can be combined with each other without conflict.
[0060] If similar descriptions such as "first / second" appear in the application documents, the following description is added. In the following description, the terms "first\second\third" involved are only used to distinguish similar objects, and do not represent a specific order for the objects. It can be understood that "first\second\third" can be interchanged with a specific order or sequence when allowed, so that the embodiments of the present application described here can be implemented in an order other than that illustrated or described here.
[0061] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by those skilled in the technical field to which this application belongs. The terms used herein are only for the purpose of describing the embodiments of this application, and are not intended to limit this application.
[0062] Before further elaborating on the embodiments of the present disclosure, the nouns and terms involved in the embodiments of the present disclosure are described. The nouns and terms involved in the embodiments of the present disclosure are subject to the following explanations.
[0063] XY routing: The data packet first travels along the X direction (usually the horizontal direction) until it reaches the X coordinate of the target node; then it travels along the Y direction (usually the vertical direction) until it reaches the Y coordinate of the target node. This routing method is deterministic, that is, the transmission path of each data packet is predefined and selected according to fixed rules, and will not change.
[0064] YX Routing: YX routing is similar to XY routing, except that the order is reversed. In YX routing, data packets are first transmitted along the Y direction and then along the X direction. It is also deterministic, and the path selection is carried out according to fixed rules.
[0065] On-chip network with Mesh structure: The on-chip network is a multi-core (multi-module) interconnection architecture. Compared with the traditional bus-based system, it provides richer routing paths, more efficient data transmission, and better system scalability. As Figure 1 shown, a schematic diagram of an on-chip network with a two-dimensional (2D) 9×9 Mesh structure is provided, which includes multiple nodes, and each node corresponds to a coordinate, such as coordinate (0, 0), coordinate (8, 8).
[0066] The following further details the embodiments of the present disclosure in conjunction with the accompanying drawings.
[0067] Figure 2 A flowchart of a routing method for an on-chip network provided by an embodiment of the present disclosure is as Figure 2 shown, and the routing method of the on-chip network includes:
[0068] Step 201, determine the neighboring nodes of the first node according to the relationship between the first node and the destination node;
[0069] wherein, the first node is the sender of the data packet, and the destination node is the receiver of the data packet;
[0070] Step 202, obtain the congestion information of the neighboring nodes, and select the transmission path of the data packet according to the congestion information.
[0071] In some embodiments, the method can be applied to any first node in the on-chip network. The on-chip network is an on-chip network with a Mesh structure, and this on-chip network has multiple routing nodes (abbreviated as nodes. The first node and the destination node in the embodiments of the present disclosure are each a routing node), and each routing node can implement Figure 2 the routing method shown. That is to say, when any routing node needs to transmit data, it can act as the first node to execute the routing method.
[0072] The on-chip network with a Mesh structure may include N M routing nodes, where N and M are positive integers, and N may be equal to or not equal to M; N and M respectively represent the number of routing nodes in each row and each column. For example, as Figure 3 shown, a 5 5 (i.e., N and M are equal, both are 5) Mesh structure on-chip network is provided, and each node corresponds to a unique routing identifier, such asFigure 3 R00, R01... R44 in it are the routing identifiers of 25 nodes respectively. Suppose node R11 needs to send a data packet to node R33, then R11 is the first node and node R33 is the destination node. Of course, if node R11 sends the data packet to node R21, then node R21 is the destination node.
[0073] Here, the neighboring node refers to a node that has a direct or indirect connection relationship with the sender in the network topology. Obtaining the congestion information of the neighboring node means monitoring and analyzing the congestion degree of the neighboring node so as to select the optimal path for data packet transmission in combination with the congestion degree of the neighboring node.
[0074] The method provided by the embodiments of the present disclosure takes into account that the congestion problem in the on-chip network directly affects the communication performance and working efficiency, and as the number of cores increases, the network traffic conditions become complex and the possibility of congestion increases. Here, by combining the relationship between the sender and the receiver, the neighboring nodes of the sender are determined, the congestion information of the neighboring nodes is obtained, and the data packet transmission path is selected according to the congestion information. This method alleviates the network congestion problem by dynamically sensing and selecting paths, improves the path diversity, reduces the occurrence of congestion, and thus improves the communication efficiency and working performance of the on-chip network.
[0075] In some embodiments, determining the neighboring nodes of the first node according to the relationship between the first node and the destination node includes:
[0076] Determining the neighboring nodes of the first node according to the congestion perception range;
[0077] Wherein, if the congestion perception range is the local perception range, the neighboring nodes include the first neighboring nodes;
[0078] If the congestion perception range is the first area perception range, the neighboring nodes include the first neighboring nodes and the second neighboring nodes;
[0079] If the congestion perception range is the second area perception range, the neighboring nodes include the first neighboring nodes, the second neighboring nodes and the third neighboring nodes;
[0080] The first neighboring node is the node directly connected to the first node, the second neighboring node is the node directly connected to the first neighboring node, and the third neighboring node is the node directly connected to the second neighboring node.
[0081] Here, the congestion awareness range can be preset or adjusted through preset parameters. For example, the local awareness range can be set to only include the nodes directly connected to the first node, that is, the first - order neighbor nodes; the first - area awareness range can be extended to include the first - order neighbor nodes and the second - order neighbor nodes connected to them; the second - area awareness range is further extended to include the first - order neighbor nodes, the second - order neighbor nodes, and the third - order neighbor nodes connected to the second - order neighbor nodes.
[0082] Among them, the first - order neighbor nodes are the nodes directly connected to the first node, the second - order neighbor nodes are the nodes directly connected to the first - order neighbor nodes, and the third - order neighbor nodes are the nodes directly connected to the second - order neighbor nodes. Combining Figure 3 Provide an example. Assume that the first node is R20, then R10, R21, and R30 are respectively the first - order neighbor nodes; R00 and R11 are respectively the first - order neighbor nodes of the first - order neighbor node R10, that is, the second - order neighbor nodes of R20; R11, R22, and R31 are respectively the first - order neighbor nodes of the first - order neighbor node R21, that is, the second - order neighbor nodes of R20; R40 and R31 are respectively the first - order neighbor nodes of the first - order neighbor node R30, that is, the second - order neighbor nodes of R20.
[0083] Generally speaking, the first - order neighbor nodes of R20 include: R10, R21, R30;
[0084] The second - order neighbor nodes of R20 include: R00, R11, R22, R31, R40.
[0085] And so on, the third - order neighbor nodes of R20 include: R01, R12, R23, R32, R41.
[0086] During application, by combining the network topology information and the connection relationship between nodes, based on the congestion awareness range, the neighbor nodes of the first node can be determined.
[0087] In this way, according to different congestion awareness ranges, the neighbor nodes of the first node can be flexibly determined, thus providing a basis for subsequent congestion awareness and path selection, being able to more effectively sense the congestion situation in the network, and providing a more flexible path selection strategy according to different sensing ranges, improving the communication performance and working efficiency of the network.
[0088] In some embodiments, obtaining the congestion information of the neighbor nodes includes:
[0089] Determining the congestion values of each first - order neighbor node according to the congestion awareness range and the congestion criterion;
[0090] Among them, if the congestion awareness range is the local awareness range, the congestion value of the first - order neighbor node is determined based on its own congestion value;
[0091] If the congestion awareness range is the first area awareness range, the congestion value of the first neighbor node is determined based on its own congestion value and that of the second neighbor node;
[0092] If the congestion awareness range is the second area awareness range, the congestion value of the first neighbor node is determined based on its own congestion value and those of the second and third neighbor nodes.
[0093] Here, by defining different congestion awareness ranges (local awareness range, first area awareness range, and second area awareness range) and corresponding congestion value determination methods, the congestion information of neighbor nodes can be obtained more accurately, thereby providing more reliable data support for subsequent path selection.
[0094] In implementation, the congestion values of corresponding neighbor nodes can be obtained through the communication protocol between nodes, and the congestion values of each node can be calculated according to a preset algorithm. For example, for the local awareness range, the congestion status of the first neighbor node can be directly read; for the first area awareness range, the congestion value can be calculated by exchanging information with the second neighbor node; for the second area awareness range, the information of the third neighbor node needs to be comprehensively considered for calculation.
[0095] In this way, through the multi-level definition of the congestion awareness range, the congestion status of the network can be more comprehensively reflected, avoiding the limitations brought by a single awareness range and improving the accuracy of obtaining congestion information. Thus, the transmission path of data packets can be optimized more effectively, and the overall performance of the on-chip network can be improved.
[0096] In some embodiments, the congestion criteria include at least one; determining the congestion values of the first neighbor nodes includes:
[0097] Determining the congestion values of the first neighbor nodes according to the standard weights and node congestion values determined according to each congestion criterion.
[0098] Here, the congestion criteria can be a single criterion or a mixed criterion. The single criterion includes the buffer criterion (b), virtual channel criterion (v), xbar criterion (x), etc.
[0099] The buffer criterion determines the node congestion value based on the occupancy of the router buffer. It can be divided into four levels: full buffer occupancy, majority occupancy, minority occupancy, and rarely occupancy, and corresponding congestion values are given.
[0100] The virtual channel criterion determines the node congestion value based on the occupancy of the router virtual channel. It can be divided into four levels: full virtual channel occupancy, majority occupancy, minority occupancy, and rarely occupancy, and corresponding congestion values are given.
[0101] The Xbar standard determines the node congestion value based on router port allocation and data traffic conditions. The Xbar busyness level can be divided into 4 levels, and the corresponding congestion values are given.
[0102] Of course, other congestion standards can also be adopted, which are not limited one by one here.
[0103] Here, the hybrid standard is formed by mixing multiple single standards. For example, any two or three of the buffer standard (b), virtual channel standard (v), and Xbar standard (x) can be adopted. Of course, if other congestion standards are adopted, other congestion standards can also be included.
[0104] In this way, considering that a single standard may not fully reflect the true situation of the node, by configuring different congestion standards (such as buffers, virtual channels, Xbar, etc.), and allowing any single standard or hybrid standard to be adopted, information from multiple dimensions can be integrated, so as to more accurately judge the congestion degree of the node, and then improve the system performance.
[0105] Moreover, it provides a flexible choice for the design of the hybrid standard, enabling the adjustment of the standard weights according to actual needs in different scenarios. For example, if a certain standard has a greater impact on network performance, the weight of this standard can be increased accordingly to more precisely control network traffic. Each standard can be adjusted according to the actual network environment, such as changes in network traffic and the load of the router; through the weight combination of different standards, the design can adapt to different network loads and topologies, improving the stability and throughput of the system.
[0106] In addition, it should be noted that by comprehensively considering information from multiple aspects such as buffers, virtual channels, and Xbar, the occurrence of congestion can be more finely controlled. For example, a high buffer occupancy may lead to an increase in latency, and the occupancy of virtual channels may affect the bandwidth utilization efficiency. By comprehensively evaluating these factors, it helps to achieve load balancing and reasonable resource allocation, thereby improving the overall performance of the network. Evaluating different standards hierarchically enables the system to adopt relatively lightweight optimization measures when the congestion is relatively light, and more powerful intervention strategies when the congestion is relatively severe. This hierarchical management method can optimize the resource usage efficiency and reduce unnecessary operations.
[0107] In some embodiments, determining the congestion values of each first neighbor node according to the standard weights and node congestion values determined by each of the congestion standards includes:
[0108] Determining the node weights of each neighbor node and the first congestion value determined based on the congestion standard;
[0109] Determining the node congestion values of each neighbor node according to the node weights, the first congestion value, and the standard weights.
[0110] Here, each congestion criterion (such as buffer, virtual channel, Xbar, etc.) has a criterion weight, which is used to represent the importance of the criterion when calculating the congestion state of the node.
[0111] The node weight can be a value representing the importance of the node. For example, some nodes may be key nodes in the network, and the congestion state of these nodes may have a greater impact on the entire network, so their weights are relatively high. By introducing node weights, a more appropriate response can be made to the congestion state of different nodes.
[0112] The first congestion value refers to the congestion value of each node initially calculated based on different congestion criteria.
[0113] Here, the congestion value of a node can be not only the result of a single criterion, but can be a weighted combination of multiple criteria. By determining the criterion weights (the importance of each criterion), the congestion situation of each node can be evaluated more accurately to adapt to the diversity and complexity in different network environments.
[0114] When calculating the congestion value of a node, the state of its directly connected first-neighbor nodes is considered. For example, the congestion of a node may not only depend on its own state, but may also be affected by the neighbor nodes. By calculating the congestion values of the neighbor nodes, more background information can be provided for the congestion state of the node. Additionally, by dynamically evaluating the congestion situations of the node and its neighbor nodes, potential network problems can be predicted in advance, adjustments can be made, and network congestion or bottlenecks can be avoided, improving the stability and efficiency of the network.
[0115] In this way, by comprehensively considering different congestion criteria and the congestion information of neighbor nodes, the true congestion state of each node can be evaluated more precisely, which can avoid unreasonable resource allocation caused by incorrect judgment of a single criterion.
[0116] In some embodiments, the method further includes:
[0117] Determine link weights;
[0118] According to the link weights and the node congestion values of each neighbor node, determine the congestion values of each first-neighbor node.
[0119] Here, the link weight refers to the importance or priority of the connection (link) between two nodes in the network. This weight can be based on various factors, such as bandwidth, latency, link stability, network quality, etc. The determination of link weights means that the role of each connection in the entire network is no longer equal.
[0120] When calculating the congestion value of the first-hop neighbor nodes, not only the congestion situation of the nodes can be considered, but also the weights of the links between it and other nodes can be taken into account.
[0121] Specifically, by combining the link weights and the congestion values of the nodes, the congestion situation of these nodes can be better evaluated and calculated. For example, links with high bandwidth and stability may result in lower congestion values for adjacent nodes, while links with low bandwidth or instability may lead to higher congestion values.
[0122] In this way, through the link weights, the performance differences of different links can be taken into account. For instance, if the link bandwidth between two nodes is large or the latency is low, then even if a certain node has a high congestion value, the superiority of the link may alleviate the pressure exerted by this node on the network. Conversely, when the link performance is poor, the congestion value of the node may affect the network performance.
[0123] After considering the link weights, the path of the data flow can be determined more intelligently. By preferentially selecting high-weight links, the congested areas on low-performance links can be effectively avoided, thereby reducing network bottlenecks, optimizing the overall data flow, and enhancing the network efficiency.
[0124] In addition, the performance of the links in the network usually changes dynamically. The introduction of link weights enables the system to track the state changes of the links in real time, adjust the network topology and traffic distribution, and be able to dynamically adjust the resource allocation according to the link quality, avoid the exacerbation of congestion, and ensure network stability.
[0125] The following examples are provided for the method of determining congestion information to further illustrate.
[0126] In one example, when the congestion awareness range is the local awareness range, the current node (i.e., the first node) is denoted as S, and only the congestion information of its first-hop neighbor nodes (the nodes in the east, south, west, and north directions of the S node) is sensed, as shown in the following formula (1):
[0127] (1)
[0128] Where, represents the weighted congestion value of the first-hop neighbor nodes (equivalent to a kind of congestion value of the first-hop neighbor nodes), represents different first-hop neighbor nodes;
[0129] represents the link weight, which can be custom-configured in the router to distinguish the directionality of the link; is the congestion value of the first-hop neighbor point itself.
[0130] In this way, after calculation, by comparing the weighted congestion values of the first-hop neighbor nodes , select the port with a small congestion value to output the data packet.
[0131] In another example, the congestion awareness range is the first area awareness range. The weighted congestion value of the first neighbor node needs to be superimposed with the congestion value of the second neighbor node (the nodes in the east, south, west, and north directions of the first neighbor node). Then the weighted congestion value of the first neighbor node is as shown in the following formula (2):
[0132] (2)
[0133] Wherein, , represent the relevant link weights, which can be customized and configured in the router to distinguish the directionality and hierarchy of the links;
[0134] are the congestion values of the first neighbor node and the second neighbor node themselves respectively.
[0135] In this way, after calculation, by comparing the weighted congestion values of the first neighbor nodes , select the port with a small congestion value to output the data packet.
[0136] In yet another example, the congestion awareness range is the second area awareness range. The weighted congestion value of the first neighbor node will be superimposed with the congestion values of the second and third neighbor nodes. Then the weighted congestion value of the first neighbor node is as shown in the following formula (3):
[0137] (3)
[0138] Wherein, represents the relevant link weight, which can be customized and configured in the router to distinguish the directionality and hierarchy of the link;
[0139] are the congestion values of the first neighbor node, the second neighbor node, and the third neighbor node themselves respectively.
[0140] In this way, after calculation, by comparing the weighted congestion values of the first neighbor nodes , select the port with a small congestion value to output the data packet.
[0141] In still another example, assuming that a hybrid standard is adopted, the congestion values of each node within the sensing range are as shown in the following formula (4):
[0142] (4)
[0143] Wherein, respectively represent each single standard, and respectively represent the custom weight factor of each single standard (equivalent to a standard weight) and the congestion value under the corresponding standard (equivalent to a first congestion value). represents the node weight.
[0144] In this way, according to the above formula (4), the congestion value of each node itself can be calculated, and combined with the above formulas (1), (2) or (3), the congestion information can be calculated.
[0145] In some embodiments, determining the neighbor nodes of the first node according to the relationship between the first node and the destination node includes:
[0146] Selecting at least one neighbor node of the first node according to the azimuth relationship between the first node and the destination node.
[0147] In some embodiments, selecting at least one neighbor node of the first node according to the azimuth relationship between the first node and the destination node includes:
[0148] Selecting the neighbor nodes within the azimuth relationship as at least one neighbor node of the first node.
[0149] Here, the azimuth relationship can represent the azimuth of the destination node relative to the first node, and then the neighbor nodes within this azimuth can be selected. Assuming that the destination node is in the southeast direction of the first node, the selected neighbor nodes are the neighbor nodes in the east direction and the south direction. ..
[0150] In this way, by selecting neighbor nodes with a better azimuth relationship with the destination node, data can be transmitted along a more intuitive and closer path to the destination node. This usually reduces the number of hops of the transmission (i.e., the number of nodes passed through), thereby improving the data transmission efficiency.
[0151] By preferentially selecting appropriate neighbor nodes, the network can avoid passing through paths that are far from the destination node, which helps to reduce congestion in the network, especially in large-scale networks, by reasonably selecting paths to avoid excessive congestion in certain hot spots.
[0152] In some embodiments, the node weight can be determined based on different methods.
[0153] Here, according to the difference of node weights, it can be divided into single threshold standard, multi-threshold standard, partition threshold standard, etc.
[0154] When adopting the single threshold standard, the congestion standard thresholds of all nodes are the same and there is only one weight (i.e., ), so this node weight can be not included in the calculation of the congestion value.
[0155] When using the multi-threshold criterion, all nodes adopt the same multi-threshold weights, and different node weights are assigned according to the range where the congestion value of the node itself is located. , etc.
[0156] The partition threshold criterion can divide the on-chip network of the Mesh into different regions according to the centrality, and the threshold weights of different regions are different. The Mesh network has various region division methods, including but not limited to partitioning based on centrality, dividing into five partitions of east - south - west - north - middle, fish - tail - shaped partitioning, etc.
[0157] In some embodiments, the method further includes:
[0158] Determining the centrality of each node in the on-chip network;
[0159] Dividing the on-chip network into a central area and an edge area according to the centrality;
[0160] Allocating node weights to the nodes of the on-chip network according to the central area and the edge area.
[0161] Here, when adopting the partition threshold based on centrality, the centrality of a node is equal to the proportion of the shortest paths from any node to other nodes that pass through the node :
[0162]
[0163] Among them, , represents the number of shortest paths between node s and node t, , respectively represent the number of hops of the path between node s and node t in the X and Y directions.
[0164] , represents the number of paths passing through node v in , respectively represent the number of hops of the path between node s and node v in the X and Y directions, , respectively represent the number of hops of the path between node s and node t in the X and Y directions.
[0165] According to the centrality of each node in the mesh network, the nodes can be divided into a central area (central part, cp) and an edge area (edeg part, ep), and weights and are assigned to the two regions, and , that is, the weight of each node is determined according to the region where the node is located, and they are respectively:
[0166]
[0167] Correspondingly, the nodes within the partition can adopt the node partition weights .
[0168] In some embodiments, selecting a transmission path for a data packet according to the congestion information includes:
[0169] Comparing the congestion values of each first-hop neighbor node, and selecting a transmission path for the data packet according to the comparison result.
[0170] Here, the congestion value represents the busy degree of the node, which has a great impact on the data transmission efficiency. When selecting a transmission path for a data packet, the current network load status of each neighbor node can be understood according to the congestion value. Comparing the congestion values of these nodes, a path with a lighter load is selected to transmit the data packet, that is, the node with the smallest congestion value is selected as the next hop (i.e., the transmission path) of the data packet. In this way, the data packet will be preferentially transmitted to a node with a lower load, thereby avoiding network congestion and reducing transmission latency.
[0171] In this way, selecting a path with a smaller congestion value can effectively avoid the heavily loaded parts in the network, reduce delays, packet losses, and network instability caused by network congestion. By dynamically selecting a path with a lighter load, faster data packet transmission can be achieved, improving the overall efficiency and throughput of the network. Moreover, since the path is selected according to the actual network status of each node, it helps to reasonably utilize network resources and avoid overloading of certain nodes or links.
[0172] In some embodiments, the method further includes:
[0173] Adjusting the congestion criterion and / or the congestion awareness range according to an adjustment instruction.
[0174] In some embodiments, the method further includes at least one of the following:
[0175] Receiving a first operation, and determining the adjustment instruction according to the first operation;
[0176] Generating the adjustment instruction adaptively according to the congestion situation.
[0177] Here, the congestion awareness range and the congestion criterion can be customized, and can be adaptively configured and adjusted based on the current network status.
[0178] For example, the network status is divided into levels such as low traffic, normal, congested, and severely congested, and different awareness ranges and congestion criteria are configured for different levels. When the network status changes, the corresponding awareness range and congestion criterion are adaptively adopted according to its current status.
[0179] Of course, it is also possible to adjust the congestion awareness range and congestion criteria according to one's own needs. If a user is about to perform operations such as large-scale computing and image processing, they can pre-adjust the congestion awareness range and congestion criteria to more reasonably utilize network resources during subsequent applications and avoid overloading of certain nodes or links.
[0180] Here, the adjustment instruction can be an instruction automatically generated by the system when the network state changes, or an instruction generated based on the user's first operation. No limitations are imposed here.
[0181] In addition, it should be noted that the congestion awareness ranges adopted by each node in the network on the same time slice should be the same, and the congestion criteria should be the same, that is, the same standard should be used for routing at the same time. If an adjustment is made, all nodes in this network on the chip should be adjusted simultaneously. Each adjustment can be only for the congestion awareness range, or only for the congestion criteria, or for both the congestion awareness range and the congestion criteria at the same time.
[0182] The setting of the above various weights can also be custom-configured, such as being adaptively configured and adjusted based on the current network state.
[0183] Figure 4 This is a schematic structural diagram of a congestion-aware router provided by an embodiment of the present disclosure; as Figure 4 shown, to implement the routing method provided by the embodiment of the present disclosure, the input ports of the router are 5, namely the east, south, west, north, and local input ports (that is, router input ports 0... router input port 4. It should be noted that the local input port can actually be one or more, and only one local input port is taken as an example in the figure), and the output ports are 5, namely the east, south, west, north, and local output ports (that is, router output ports 0... router output port 4. It should be noted that the local output port can actually be one or more, and only one local output port is taken as an example in the figure). The router includes a congestion-aware routing calculation module, a virtual channel allocator, a switch allocator, and a crossbar switch. Figure 4 In it, Credit output and Credit input can represent the transfer of relevant information of the virtual channel, and VC represents the virtual channel.
[0184] The congestion-aware routing calculation module is used to configure the partitioning method, threshold weights, congestion awareness range, and congestion criteria, collect the congestion values of neighboring nodes at the required level, and calculate and compare the weighted congestion values of the first neighboring nodes , the weighted congestion value is passed to the switch allocator. The switch allocator is used to confirm the output port of the crossbar switch. The virtual channel allocator counts the link credit values and is used to allocate the virtual channels for the data packets to enter the next-hop router port. The transmission of the credit values and the node congestion values and the transmission of the data packets between ports are carried out in the same cycle. The switch allocator is responsible for allocating the output port for the data packets (any one of router output port 0... router output port 4), and the crossbar switch connects the input port and the corresponding output port under the command of the switch allocator to complete the output of the data packets.
[0185] Each node in the network-on-chip can have a router structure with the above structure, and congestion awareness is realized through the router provided by the embodiments of the present disclosure. Based on the sensing range, congestion criteria, partition threshold weights, link weights, congestion criteria weights, etc., congestion awareness and routing are performed based on different network conditions, reducing network congestion and improving data transmission efficiency. At the same time, the adaptive routing increases the path diversity and can improve the performance of the entire network-on-chip system.
[0186] Figure 5 It is a schematic diagram of congestion awareness and port selection when the sensing range is a region provided by the embodiments of the present disclosure; in combination with Figure 5 Provide a congestion-aware adaptive routing method for network-on-chip.
[0187] First, judge the relationship between the current node S (i.e., the first node) and the destination node D ( ), where x represents the X-axis coordinate and Y represents the Y-axis coordinate. Among them , . Or When, congestion awareness is not performed, and routing is directly performed in the Y direction or the X direction. Or When, calculate the weighted congestion value according to local sensing, and only sense the congestion information of some of the first-hop neighbor nodes. And When, confirm the sensing nodes according to the orientation of the destination node D. And When, the destination node D is located in the northeast direction of the current node S; And When, the destination node D is located in the southeast direction of the current node S; And When, the destination node D is located in the northwest direction of the current node S; And When, the destination node D is located in the southwest direction of the current node S.
[0188] For example, Figure 5Among them, "Northeast" indicates the northeast direction, meaning that the destination node is located in the northeast direction of the current node.
[0189] After that, according to the azimuth relationship and based on the principle of the shortest path, the current node S selectively senses the congestion information of some of its first-hop neighbors and second-hop neighbors. If the destination node D is located in the northeast direction of the current node S, it only senses the congestion information of 2 first-hop neighbors in the east and north directions and 3 second-hop neighbors; if the destination node D is located in the southeast direction of the current node S, it only senses the congestion information of 2 first-hop neighbors in the east and south directions and 3 second-hop neighbors; if the destination node D is located in the northwest direction of the current node S, it only senses the congestion information of 2 first-hop neighbors in the west and north directions and 3 second-hop neighbors; if the destination node D is located in the southwest direction of the current node S, it only senses the congestion information of 2 first-hop neighbors in the west and south directions.
[0190] For sensing the congestion information of some of the first-hop neighbors, the method is as follows:
[0191] According to ( ), the azimuth relationship between the destination node and the current node can be judged. And When, the destination node D is located in the northeast direction of the current node S; And When, the destination node D is located in the southeast direction of the current node S; And When, the destination node D is located in the northwest direction of the current node S; And When, the destination node D is located in the southwest direction of the current node S. After that, according to the azimuth relationship and based on the principle of the shortest path, the current node selectively senses the congestion information of some of the first-hop neighbors. If the destination node D is located in the northeast direction of the current node S, it only senses the congestion information of 2 first-hop neighbors in the east and north directions; if the destination node D is located in the southeast direction of the current node S, it only senses the congestion information of 2 first-hop neighbors in the east and south directions; if the destination node D is located in the northwest direction of the current node S, it only senses the congestion information of 2 first-hop neighbors in the west and north directions; if the destination node D is located in the southwest direction of the current node S, it only senses the congestion information of 2 first-hop neighbors in the west and south directions.
[0192] The congestion-aware routing calculation module in the router can be configured, such as: the partitioning method, the sensing range, and the congestion criterion, and configure the corresponding partitioning threshold weight factor, link weight factor, virtual channel, and buffer standard weight factor. In actual application, collect the congestion values of the neighboring nodes at the required level and calculate the weighted congestion value of the first-hop neighbors , it is passed to the switch distributor of the current router, and the corresponding output port is allocated to determine the next-hop routing path.
[0193] For example, Figure 5 in it, for the current node, it can be calculated that , (that is, the weighted congestion values of two first-nearest neighbor nodes). If < , then select the first-nearest neighbor node with a smaller congestion value, that is, the corresponding first-nearest neighbor node.
[0194] Provide an example. Assume that a centrality partition threshold is adopted. According to the centrality of each node in the mesh on-chip network, the nodes are divided into a central area (central part, cp) and an edge area (edeg part, ep), and weights and are assigned to the two areas. The sensing range is the first area sensing range. Adopting a hybrid standard based on virtual channel and buffer criteria, the congestion value of each node within the sensing range is
[0195]
[0196] where, = 1, 2 represent the first-nearest neighbor node and the second-nearest neighbor node of the current node. represents adopting a hybrid standard of virtual channel and buffer. and are the weight factors of the virtual channel and buffer criteria respectively. and are the congestion values under the virtual channel criterion and the congestion values under the buffer criterion respectively.
[0197] In actual application, the congestion information of only some first-nearest neighbor nodes and some second-nearest neighbor nodes can be sensed. The weighted congestion value of the first-nearest neighbor node is:
[0198]
[0199] where, represents the link weight of the link where the nearest neighbor node is located, distinguishing the directionality and hierarchical attributes of the link. are the congestion values of the first-nearest neighbor node itself and the second-nearest neighbor node itself respectively.
[0200] For special cases, when only some first-nearest neighbor nodes are sensed, the weighted congestion value of the first-nearest neighbor node is:
[0201]
[0202] The method provided by the embodiments of the present disclosure has an adaptive characteristic, can sense the congestion state in the system, and the congestion threshold, sensing range, and congestion criteria are diverse and adjustable. A flexible and variable congestion sensing strategy can be adopted based on different network conditions to reduce network congestion and improve data transmission efficiency. At the same time, this adaptive routing increases path diversity and can improve the performance of the entire on-chip system.
[0203] Figure 6 It is a schematic structural diagram of a routing device for a network-on-chip provided by the embodiments of the present disclosure; as Figure 6 shown, the device includes:
[0204] A first processing module, configured to determine the neighboring nodes of the first node according to the relationship between the first node and the destination node; the first node is the sender of the data packet, and the destination node is the receiver of the data packet;
[0205] A second processing module, configured to obtain the congestion information of the neighboring nodes; and select a transmission path for the data packet according to the congestion information.
[0206] In some embodiments, the first processing module is configured to determine the neighboring nodes of the first node according to the congestion sensing range;
[0207] Among them, if the congestion sensing range is the local sensing range, the neighboring nodes include the first neighboring node;
[0208] If the congestion sensing range is the first area sensing range, the neighboring nodes include the first neighboring node and the second neighboring node;
[0209] If the congestion sensing range is the second area sensing range, the neighboring nodes include the first neighboring node, the second neighboring node, and the third neighboring node;
[0210] The first neighboring node is the node directly connected to the first node, the second neighboring node is the node directly connected to the first neighboring node, and the third neighboring node is the node directly connected to the second neighboring node.
[0211] In some embodiments, the second processing module is configured to determine the congestion values of each first neighboring node according to the congestion sensing range and the congestion criteria;
[0212] Among them, if the congestion sensing range is the local sensing range, the congestion value of the first neighboring node is determined based on its own congestion value;
[0213] If the congestion sensing range is the first area sensing range, the congestion value of the first neighboring node is determined based on its own and the congestion values of the second neighboring nodes;
[0214] If the congestion awareness range is the second area awareness range, the congestion value of the first neighbor node is determined based on the congestion values of itself, the second neighbor node, and the third neighbor node.
[0215] In some embodiments, the congestion criteria include at least one; the second processing module is configured to determine the congestion values of the first neighbor nodes according to the standard weights determined according to each congestion criterion and the node congestion values.
[0216] In some embodiments, the second processing module is configured to determine the node weights of the neighbor nodes and the first congestion value determined based on the congestion criteria;
[0217] According to the node weights, the first congestion value, and the standard weights, determine the node congestion values of the neighbor nodes.
[0218] In some embodiments, the second processing module is further configured to determine link weights;
[0219] According to the link weights and the node congestion values of the neighbor nodes, determine the congestion values of the first neighbor nodes.
[0220] In some embodiments, the first processing module is configured to select at least one neighbor node of the first node according to the orientation relationship between the first node and the destination node.
[0221] In some embodiments, the first processing module is configured to select the neighbor nodes within the orientation relationship as at least one neighbor node of the first node.
[0222] In some embodiments, the second processing module is configured to determine the centrality of each node in the on-chip network;
[0223] Divide the on-chip network into a central area and an edge area according to the centrality;
[0224] According to the central area and the edge area, allocate node weights to the nodes of the on-chip network.
[0225] In some embodiments, the second processing module is configured to compare the congestion values of the first neighbor nodes, and select a transmission path for the data packet according to the comparison result.
[0226] In some embodiments, the device further includes an adjustment module configured to adjust the congestion criteria and / or the congestion awareness range according to an adjustment instruction.
[0227] In some embodiments, the adjustment module is configured to perform at least one of the following:
[0228] Receive a first operation, and determine the adjustment instruction according to the first operation;
[0229] Generate the adjustment instruction adaptively according to the congestion situation.
[0230] It can be understood that when the routing device of the network-on-chip provided in the above embodiments implements the routing method of the corresponding network-on-chip, the above processing can be allocated to be completed by different program modules as needed to complete all or part of the above-described processing. In addition, the device provided in the above embodiments and the embodiments of the corresponding method belong to the same concept. For the specific implementation process, please refer to the method embodiments, which will not be repeated here.
[0231] An embodiment of the present application provides a computer program product or a computer program. The computer program product or the computer program includes computer instructions, and the computer instructions are stored in a computer-readable storage medium. The processor of the computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device executes the routing method of the network-on-chip.
[0232] An embodiment of the present application provides a computer-readable storage medium storing executable instructions, where the executable instructions are stored. When the executable instructions are executed by a processor, the processor will be caused to execute the routing method of the network-on-chip provided in the embodiment of the present application.
[0233] In some embodiments, the computer-readable storage medium may be a memory such as FRAM, ROM, PROM, EPROM, EEPROM, flash memory, magnetic surface memory, optical disc, or CD-ROM; or it may be various devices including one or any combination of the above memories.
[0234] In some embodiments, the executable instructions may be in the form of a program, software, software module, script, or code, and may be written in any form of programming language (including compiled or interpreted languages, or declarative or procedural languages), and may be deployed in any form, including being deployed as an independent program or being deployed as a module, component, subroutine, or other unit suitable for use in a computing environment.
[0235] As an example, the executable instructions may or may not correspond to a file in the file system, and may be stored as part of a file that stores other programs or data. For example, they may be stored in one or more scripts in a Hyper Text Markup Language (HTML) document, stored in a single file dedicated to the program being discussed, or stored in multiple cooperating files (for example, files storing one or more modules, subroutines, or code portions).
[0236] As an example, the executable instructions may be deployed to execute on one computing device, or on multiple computing devices located at one location, or on multiple computing devices distributed at multiple locations and interconnected by a communication network.
[0237] Figure 7 Schematic diagram of a structure of an electronic device provided by an embodiment of the present disclosure; as Figure 7 shown, the electronic device 70 includes: a processor 701 and a memory 702 communicatively connected to the processor 701; the memory 702 stores instructions executable by the processor 701. When the instructions are executed by the processor 701, the processor 701 is enabled to execute:
[0238] Determine a neighbor node of the first node according to the relationship between the first node and the destination node; the first node is the sender of the data packet, and the destination node is the receiver of the data packet;
[0239] Obtain congestion information of the neighbor node, and select a transmission path of the data packet according to the congestion information.
[0240] The electronic device provided in the above embodiment and the embodiment of the routing method of the corresponding on-chip network belong to the same concept. The specific implementation process is detailed in the method embodiment and will not be repeated here.
[0241] In practical applications, the electronic device 70 may further include: at least one network interface 703. Each component in the electronic device 70 is coupled together through a bus system 707. It can be understood that the bus system 707 is used to realize the connection and communication between these components. In addition to the data bus, the bus system 707 also includes a power bus, a control bus, and a status signal bus. However, for the sake of clarity, in Figure 7 all kinds of buses are labeled as the bus system 707. Among them, the number of the processors 701 may be at least one, and the number of the memories 702 may be at least one. The network interface 703 is used for wired or wireless communication between the electronic device 70 and other devices.
[0242] The memory 702 in the embodiment of the present disclosure is used to store various types of data to support the operation of the electronic device 70.
[0243] The method disclosed in the above embodiments of the present disclosure can be applied to or implemented by the processor 701. The processor 701 may be an integrated circuit chip with signal processing capabilities. During implementation, the steps of the above method can be completed by the integrated logic circuit in hardware or instructions in software form in the processor 701. The above-mentioned processor 701 may be a general-purpose processor, a digital signal processor (DSP), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The processor 701 can implement or execute the various methods, steps, and logic block diagrams disclosed in the embodiments of the present disclosure. The general-purpose processor may be a microprocessor or any conventional processor, etc. Combining the steps of the method disclosed in the embodiments of the present disclosure can be directly embodied as being executed and completed by a hardware decoding processor, or executed and completed by a combination of hardware and software modules in the decoding processor. The software module may be located in a storage medium, and this storage medium is located in the memory 702. The processor 701 reads the information in the memory 702 and combines its hardware to complete the steps of the above-mentioned on-chip network routing method.
[0244] In some embodiments, the electronic device 70 may be implemented by one or more application-specific integrated circuits (ASICs), DSPs, programmable logic devices (PLDs), complex programmable logic devices (CPLDs), field-programmable gate arrays (FPGAs), general-purpose processors, controllers, microcontroller units (MCUs), microprocessors, or other electronic components for executing the foregoing method.
[0245] It should be understood that various forms of the processes shown above can be used, with steps reordered, added, or deleted. For example, the steps recited in the present disclosure can be executed in parallel, sequentially, or in a different order, as long as the desired results of the technical solutions disclosed in the present disclosure can be achieved, and no limitation is imposed herein.
[0246] In the above description, reference is made to "some embodiments", which describe a subset of all possible embodiments. However, it can be understood that "some embodiments" can be the same subset or different subsets of all possible embodiments and can be combined with each other without conflict.
[0247] Unless otherwise defined, all technical and scientific terms used in this disclosure have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure belongs. The terms used in this disclosure are only for the purpose of describing the embodiments of this disclosure and are not intended to limit this disclosure.
[0248] It should be understood that in various embodiments of this disclosure, the sequence numbers of the various implementation processes do not imply the order of execution, and the order of execution of each process should be determined by its function and internal logic, and should not constitute any limitation to the implementation process of the embodiments of this disclosure.
[0249] In addition, the terms "first" and "second" are only used for descriptive purposes and should not be construed as indicating or implying relative importance or implicitly specifying the quantity of the indicated technical features. Thus, features defined with "first" and "second" may explicitly or implicitly include at least one such feature. In the description of this disclosure, "a plurality" means two or more unless otherwise specifically defined.
[0250] As described above, the above are only specific implementation manners of this disclosure, but the protection scope of this disclosure is not limited thereto. Any person skilled in the art within the technical scope disclosed by this disclosure can easily think of changes or substitutions, and all of them should be covered by the protection scope of this disclosure. Therefore, the protection scope of this disclosure should be subject to the protection scope of the claims.
Claims
1. A routing method for a network-on-chip, characterized in that, The method includes: Determine the neighbor nodes of the first node according to the relationship between the first node and the destination node; the first node is the sender of the data packet, and the destination node is the receiver of the data packet; Obtain the congestion information of the neighbor nodes, and select the transmission path of the data packet according to the congestion information; Among them, the obtaining the congestion information of the neighbor nodes includes: determining the congestion value of each first neighbor node according to the congestion perception range and the congestion criterion; wherein, if the congestion perception range is the local perception range, the congestion value of the first neighbor node is determined based on its own congestion value; if the congestion perception range is the first area perception range, the congestion value of the first neighbor node is determined based on its own and the congestion values of the second neighbor nodes; if the congestion perception range is the second area perception range, the congestion value of the first neighbor node is determined based on its own, the congestion values of the second neighbor nodes and the third neighbor nodes; The congestion criterion includes at least one; the determining the congestion value of each first neighbor node includes: determining the congestion value of each first neighbor node according to the standard weight determined according to each congestion criterion and the node congestion value; Determining the congestion value of each first neighbor node according to the standard weight determined according to each congestion criterion and the node congestion value includes: determining the node weight of each neighbor node and the first congestion value determined based on the congestion criterion; determining the node congestion value of each neighbor node according to the node weight, the first congestion value and the standard weight; The method further includes: determining the link weight; determining the congestion value of each first neighbor node according to the link weight and the node congestion value of each neighbor node.
2. The method according to claim 1, characterized in that The determining the neighbor nodes of the first node according to the relationship between the first node and the destination node includes: Determine the neighbor nodes of the first node according to the congestion perception range; Among them, if the congestion perception range is the local perception range, the neighbor nodes include the first neighbor nodes; If the congestion perception range is the first area perception range, the neighbor nodes include the first neighbor nodes and the second neighbor nodes; If the congestion perception range is the second area perception range, the neighbor nodes include the first neighbor nodes, the second neighbor nodes and the third neighbor nodes; The first neighbor node is the node directly connected to the first node, the second neighbor node is the node directly connected to the first neighbor node, and the third neighbor node is the node directly connected to the second neighbor node.
3. The method according to claim 1, characterized in that The determining the neighbor nodes of the first node according to the relationship between the first node and the destination node includes: Select at least one neighbor node of the first node according to the orientation relationship between the first node and the destination node.
4. The method according to claim 3, wherein The selecting at least one neighbor node of the first node according to the orientation relationship between the first node and the destination node includes: Select the neighbor nodes within the orientation relationship as at least one neighbor node of the first node.
5. The method according to claim 1, wherein The method further includes: Determine the centrality of each node in the network-on-chip; Divide the network-on-chip into a central area and an edge area according to the centrality; Allocate node weights to the nodes of the network-on-chip according to the central area and the edge area.
6. The method according to claim 1, characterized in that, Selecting a transmission path for a data packet according to the congestion information includes: Comparing the congestion values of each first neighbor node, and selecting a transmission path for the data packet according to the comparison result.
7. The method according to claim 1, wherein The method further includes: Adjusting the congestion standard and / or the congestion awareness range according to an adjustment instruction.
8. The method according to claim 7, wherein The method further includes at least one of the following: Receiving a first operation, and determining the adjustment instruction according to the first operation; Adapting to generate the adjustment instruction according to the congestion situation.
9. A routing device for a network-on-chip, characterized in that, The device includes: A first processing module, configured to determine a neighbor node of the first node according to the relationship between the first node and the destination node; the first node is a sender of the data packet, and the destination node is a receiver of the data packet; A second processing module, configured to obtain congestion information of the neighbor node; and select a transmission path for the data packet according to the congestion information; Wherein, the second processing module is configured to determine the congestion value of each first neighbor node according to the congestion awareness range and the congestion standard; wherein, if the congestion awareness range is a local awareness range, the congestion value of the first neighbor node is determined based on its own congestion value; if the congestion awareness range is a first area awareness range, the congestion value of the first neighbor node is determined based on its own congestion value and the congestion value of the second neighbor node; if the congestion awareness range is a second area awareness range, the congestion value of the first neighbor node is determined based on its own congestion value, the congestion value of the second neighbor node, and the congestion value of the third neighbor node; The congestion standard includes at least one; determining the congestion value of each first neighbor node includes: determining the congestion value of each first neighbor node according to the standard weight determined according to each congestion standard and the node congestion value; Determining the congestion value of each first neighbor node according to the standard weight determined according to each congestion standard and the node congestion value includes: determining the node weight of each neighbor node and the first congestion value determined according to the congestion standard; and determining the node congestion value of each neighbor node according to the node weight, the first congestion value, and the standard weight; The second processing module is further configured to determine a link weight; and determine the congestion value of each first neighbor node according to the link weight and the node congestion value of each neighbor node.
10. An electronic device, characterized in that, Including: At least one processor; And a memory communicatively connected to the at least one processor; wherein, the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor so that the at least one processor can execute the method according to any one of claims 1 to 8.
11. A non-transitory computer-readable storage medium storing computer instructions, characterized in that, The computer instructions are used to cause a computer to execute the method according to any one of claims 1 to 8.
Citation Information
Patent Citations
Mixed interconnection Mesh topological structure for on-chip network and routing algorithm thereof
CN103986664A
Network-on-chip congestion control method based on dynamic routing table
CN104202253A