Message transmission method and device, electronic equipment and readable storage medium
By introducing the missing corner topology in the on-chip network and combining the XY dimensional order and YX dimensional order routing algorithms, the problem of low link utilization in the traditional MESH topology is solved, efficient message transmission and chip interconnection are achieved, and it adapts to different device layouts, improving chip yield and layout and wiring efficiency.
Patent Information
- Application Number
- CN202511290168.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-09-10
- Publication Date
- 2025-10-14
- Estimated Expiration
- 2045-09-10
AI Technical Summary
The link utilization rate in traditional MESH topology is low, resulting in low message transmission efficiency in on-chip networks. In addition, the conventional topology shape is not suitable for large devices or scenarios where no attached devices are required, resulting in layout and routing congestion and unnecessary production overhead.
By adopting a heterogeneous topology with missing corners, the XY dimensional order routing algorithm and the YX dimensional order routing algorithm are combined, and the target routing algorithm is selected according to the vertical coordinates of the starting node and the target node to control the message transmission path and realize deadlock-free transmission of messages on the missing corner topology.
It improves link utilization, reduces layout and routing congestion, reduces production overhead, improves chip yield, adapts to different equipment placement and layout and routing requirements, and achieves efficient on-chip network interconnection.
Smart Images

Figure CN120785809A_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the field of network-on-chip technology, and particularly to a message transmission method and device, electronic equipment and readable storage medium. BACKGROUND
[0002] With the development of network-on-chip technology, the physical layout and linkage mode of network-on-chip nodes and channels are more and more, at present, in order to make each node in the network connected to as many other nodes as possible, mesh topology is often used to realize on-chip interconnection.
[0003] However, the link utilization rate on the diagonal in the traditional MESH topology is low, but the channel area overhead is the same as other links, resulting in low link utilization rate when transmitting messages in the network-on-chip. SUMMARY
[0004] The purpose of the embodiment of the present application is to provide a message transmission method, device, electronic equipment and readable storage medium to solve the problem of low link utilization rate. The specific technical solutions are as follows: In the first aspect of the present application, a message transmission method is first provided, the method is applied to a network-on-chip, the topology of the network-on-chip includes at least one corner; the method comprises: In response to a message transmission request, determining the starting node and the target node corresponding to the message transmission request; In the case that the starting node is located in the corner routing area corresponding to the corner, based on the longitudinal coordinates of the starting node and the target node, determining the target routing algorithm from the XY dimension sequence routing algorithm and the YX dimension sequence routing algorithm; Controlling the to-be-transmitted message indicated by the message transmission request to be transmitted from the starting node to the target node according to the path indicated by the target routing algorithm.
[0005] Optionally, in the case that the corner is located in the upper area of the topology, the target routing algorithm is determined from the XY dimension sequence routing algorithm and the YX dimension sequence routing algorithm based on the longitudinal coordinates of the starting node and the target node, comprising: In the case that the longitudinal coordinate of the target node is not less than the longitudinal coordinate of the starting node, the XY dimension sequence routing algorithm is determined as the target routing algorithm; In the case that the longitudinal coordinate of the target node is less than the longitudinal coordinate of the starting node, the YX dimension sequence routing algorithm is determined as the target routing algorithm.
[0006] Optionally, in the case that the corner is located in a lower region of the topology, determining a target routing algorithm from the XY dimension routing algorithm and the YX dimension routing algorithm based on the longitudinal coordinates of the start node and the target node comprises: in the case that the longitudinal coordinate of the target node is not greater than the longitudinal coordinate of the start node, determining the XY dimension routing algorithm as the target routing algorithm; in the case that the longitudinal coordinate of the target node is greater than the longitudinal coordinate of the start node, determining the YX dimension routing algorithm as the target routing algorithm.
[0007] Optionally, the method further comprises: in the case that the start node is not located in the corner region, determining the XY dimension routing algorithm as the target routing algorithm.
[0008] Optionally, the method further comprises: for any node in the network-on-chip, if the longitudinal coordinate of the node is located in the longitudinal coordinate range of the corner, determining that the node is located in the corner routing region corresponding to the corner.
[0009] Optionally, the control of the transmission of the to-be-transmitted packet indicated by the packet transmission request according to the path indicated by the target routing algorithm from the start node to the target node comprises: adding an algorithm identifier in the routing information corresponding to the to-be-transmitted packet indicated by the packet transmission request, the algorithm identifier being used to represent the target routing algorithm; taking the start node as a to-be-transmitted node, so that the to-be-transmitted node determines a target routing algorithm based on the algorithm identifier, and determines a next node corresponding to the to-be-transmitted node based on the target routing algorithm, and transmits the to-be-transmitted packet to the next node; taking the next node as a new to-be-transmitted node, and performing again the operation of taking the to-be-transmitted node as a to-be-transmitted node, so that the to-be-transmitted node determines a target routing algorithm based on the algorithm identifier, and determines a next node corresponding to the to-be-transmitted node based on the target routing algorithm, and transmits the to-be-transmitted packet to the next node, until the next node is the target node.
[0010] In a second aspect of the embodiment of the present application, a packet transmission device is further provided, which is applied to a network-on-chip, and a topology of the network-on-chip comprises at least one corner; the device comprises: a first determining module, configured to determine a start node and a target node corresponding to a packet transmission request in response to the packet transmission request; determine a target routing algorithm from the XY dimension order routing algorithm and the YX dimension order routing algorithm based on the starting node and a vertical coordinate of the target node, in a case that the starting node is located in a missing corner routing area corresponding to the missing corner; transmit the to-be-transmitted packet indicated by the packet transmission request from the starting node to the target node according to a path indicated by the target routing algorithm.
[0011] In a third aspect of the present application, an electronic device is provided, which comprises a processor, a communication interface, a memory and a communication bus, wherein the processor, the communication interface and the memory complete communication with each other through the communication bus; the memory is configured to store a computer program; the processor is configured to execute the program stored in the memory, thereby implementing the method of the first aspect.
[0012] In a fourth aspect of the present application, a computer readable storage medium is provided, which stores instructions, and when the instructions are executed on a computer, the computer executes the method of the first aspect.
[0013] In a fifth aspect of the present application, a computer program product is provided, which comprises instructions, and when the instructions are executed on a computer, the computer executes the method of the first aspect.
[0014] The packet transmission method provided by the embodiments of the present application is applied to a network on chip, and the topology of the network on chip comprises at least one missing corner; in response to a packet transmission request, a starting node corresponding to the packet transmission request and a target node are determined; in a case that the starting node is located in a missing corner routing area corresponding to the missing corner, a target routing algorithm is determined from an XY dimension order routing algorithm and a YX dimension order routing algorithm based on the starting node and a vertical coordinate of the target node; and the to-be-transmitted packet indicated by the packet transmission request is transmitted from the starting node to the target node according to a path indicated by the target routing algorithm. In this way, the embodiments of the present application realize packet transmission by using a topology comprising at least one missing corner, realize chip interconnection on a missing corner heterogeneous topology, can place more large-scale devices in an area, reduce congestion of layout and wiring, and reduce unnecessary production overhead, which is beneficial to convergence of back-end layout and wiring and improvement of chip yield, and through the missing corner heterogeneous topology, links on a diagonal can be reduced, thereby improving link utilization rate of a packet.
[0015] Meanwhile, the embodiment of the present application can avoid the problem that some nodes cannot transmit the message when the XY dimension sequence routing algorithm is directly used by selecting the target routing algorithm from the XY dimension sequence routing algorithm and the YX dimension sequence routing algorithm according to the longitudinal coordinates of the starting node and the target node when the starting node of the message is located in the missing corner routing area, thereby realizing the message transmission mode adapted to the missing corner special-shaped topology. BRIEF DESCRIPTION OF DRAWINGS
[0016] In order to more clearly illustrate the technical solutions in the embodiments of the present application or the prior art, the drawings needed to be used in the embodiments or the prior art description will be briefly introduced as follows.
[0017] Figure 1 is a step flow chart of a message transmission method in the embodiment of the present application; Figure 2 is a schematic diagram of a missing corner special-shaped topology provided by the embodiment of the present application; Figure 3 is a schematic diagram of a message transmission provided by the embodiment of the present application; Figure 4 is a schematic diagram of path dependence provided by the embodiment of the present application; Figure 5 is a structural schematic diagram of a message transmission device in the embodiment of the present application; Figure 6 is a schematic diagram of an electronic device in the embodiment of the present application. DETAILED DESCRIPTION
[0018] The technical solutions in the embodiments of the present application will be described clearly and completely below with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments are some of the embodiments of the present application, but not all the embodiments of the present application. Based on the embodiments in the present application, all the other embodiments obtained by those of ordinary skill in the art without creative work fall within the scope of the present application.
[0019] The terms "first", "second", etc. in the specification and claims of the present invention are used to distinguish similar objects, and are not used to describe a specific order or sequence. It should be understood that the data used in this way can be interchangeable under appropriate circumstances, so that the embodiments of the present invention can be implemented in an order other than those illustrated or described here, and the objects distinguished by "first", "second", etc. are generally of one type, and the number of objects is not limited. For example, the first object can be one or more. In addition, the term "and / or" in the specification and claims is used to describe the association relationship of associated objects, indicating that there can be three relationships. For example, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone. The character " / " generally indicates that the objects before and after the association are in an "or" relationship. In the embodiments of the present invention, the term "multiple" refers to two or more, and other quantifiers are similar.
[0020] Figure 1 FIG. 1 is a flow chart of steps of a message transmission method according to an embodiment of the present invention, wherein the method is applied to an on-chip network, the topology of which includes at least one missing corner. Figure 1 As shown, the method may include: Step 101: In response to a message transmission request, determine a start node and a target node corresponding to the message transmission request.
[0021] Step 102: When the starting node is located in the missing corner routing area corresponding to the missing corner, determine a target routing algorithm from an XY dimensional order routing algorithm and a YX dimensional order routing algorithm based on the vertical coordinates of the starting node and the target node.
[0022] Step 103: Control the message to be transmitted indicated by the message transmission request to be transmitted from the starting node to the target node along the path indicated by the target routing algorithm.
[0023] Regarding steps 101-103 above, embodiments of the present invention can be applied to a network-on-chip (NOC) containing at least one corner region. The topology described above refers to the connectivity between NOC (Network-on-Chip) nodes, used to determine the physical layout and connectivity of NOC nodes and channels. Furthermore, the nodes can be routers, which are essential components of the NOC and are used for data storage and transmission.
[0024] The missing corners refer to missing edges and corners, and a topology including missing corners is a heterogeneous topology. Specifically, the topology of the network on chip in the embodiment of the present invention may include one missing corner or two missing corners, which is not limited in the embodiment of the present invention.
[0025] It should be noted that the chips are often arranged in a rectangular array on the wafer when produced, and when some special large devices are placed at the periphery of the chip, a large space is often occupied, causing waste of resources. In some scenarios, the peripheral devices or hardware function modules (Intellectual Property Core, IP) connected to the corners of the network-on-chip are large, resulting in congestion when wiring according to the conventional topology (for example, MESH topology). Or in some other scenarios, no device needs to be connected to the corner of the network-on-chip, resulting in unnecessary production overhead. It can be understood that the actual needs of the above two scenarios do not match the shape of the conventional topology. In this case, the embodiments of the present application can use a topology containing at least one corner to transmit the message, so that more area can be placed on the corner for large devices, reducing the congestion of layout and wiring, and reducing unnecessary production overhead.
[0026] Wherein, the message transmission request can be sent by the peripheral device or function module connected to the node, and the embodiments of the present application do not limit it. Specifically, the message transmission request can include the message (i.e. data packet) to be transmitted and the target node of the message. Accordingly, the node receiving the message transmission request is the starting node.
[0027] Wherein, the corner routing area refers to the routing area covered by the corner, and the routing area covered by the corner specifically refers to the area where the starting node cannot transmit the message through the XY dimension sequence routing algorithm. Specifically, whether each node belongs to the corner routing area can be determined by the longitudinal coordinate range of the corner.
[0028] Optionally, the embodiments of the present application can further include: For any node in the network-on-chip, if the longitudinal coordinate of the node is within the longitudinal coordinate range of the corner, it is determined that the node is located in the corner routing area corresponding to the corner.
[0029] Wherein, the longitudinal coordinate range of the corner refers to the coordinate coverage range of the corner in the vertical direction of the topology. Accordingly, the node whose longitudinal coordinate is within the longitudinal coordinate range is located in the corner routing area corresponding to the corner.
[0030] The routing algorithm refers to a data packet transmission rule in a routing network, and determines a transmission route of the data packet. The XY dimension sequence routing algorithm refers to horizontal (X direction) path selection first and vertical (Y direction) path selection second. Correspondingly, the YX dimension sequence routing algorithm refers to vertical (Y direction) path selection first and horizontal (X direction) path selection second. It should be noted that in the related art, the routing scheme on the traditional MESH topology chip is the XY dimension sequence routing algorithm. The XY dimension sequence routing algorithm can reduce the combination logic depth of routing calculation and improve the chip frequency. In addition, in the XY dimension sequence routing algorithm, turning from the Y direction to the X direction is prohibited, thereby breaking the diagonal in the clockwise or counterclockwise path dependence, so that the path dependence does not generate a loop in the message transmission routing process, and the on-chip network message can be routed and transmitted on the chip without deadlock.
[0031] In the topology including at least one missing corner, the nodes with part of the longitudinal coordinates in the longitudinal coordinate range of the missing corner cannot use the XY dimension sequence routing algorithm to transmit the message to the nodes in other regions. In this case, the embodiment of the present application can determine the region as a missing corner routing region.
[0032] Further, in the case that the starting node is located in the missing corner routing region, the embodiment of the present application can select one of the XY dimension sequence routing algorithm and the YX dimension sequence routing algorithm as a target routing algorithm based on the longitudinal coordinates of the starting node and the target node, and then control the to-be-transmitted message to be transmitted from the starting node to the target node according to the path indicated by the target routing algorithm.
[0033] Optionally, the operation of controlling the to-be-transmitted message indicated by the message transmission request to be transmitted from the starting node to the target node according to the path indicated by the target routing algorithm, the embodiment of the present application can specifically include: S1031, adding an algorithm identifier in the routing information corresponding to the to-be-transmitted message indicated by the message transmission request, the algorithm identifier being used to represent the target routing algorithm.
[0034] S1032, taking the starting node as a to-be-transmitted node, so that the to-be-transmitted node determines a target routing algorithm based on the algorithm identifier, and determines a next node corresponding to the to-be-transmitted node based on the target routing algorithm, and transmits the to-be-transmitted message to the next node.
[0035] S1033, taking the next node as a new to-be-transmitted node, and performing the operation of making the to-be-transmitted node determine a target routing algorithm based on the algorithm identifier, and determining a next node corresponding to the to-be-transmitted node based on the target routing algorithm, and transmitting the to-be-transmitted message to the next node again, until the next node is the target node.
[0036] Specifically, in the embodiments of the present application, after determining the target routing algorithm, an identifier is added in the routing information of the to-be-transmitted packet to represent the routing algorithm adopted by the to-be-transmitted packet. For example, when the target routing algorithm is XY-dimensional sequence routing algorithm, the identifier XY is added. Correspondingly, when the target routing algorithm is YX-dimensional sequence routing algorithm, the identifier YX is added. Of course, 1, 0 and other identifiers can also be used for distinguishing, and the embodiments of the present application do not limit this.
[0037] Further, the above-mentioned algorithm identifier can be 1 bit, and of course other sizes can also be set, and the embodiments of the present application do not limit this.
[0038] Further, after adding the algorithm identifier, each node in the packet transmission process can determine the routing algorithm adopted by the packet according to the algorithm identifier in the routing information, and determine the next node of the current node according to the routing algorithm. Specifically, the starting node can be taken as the to-be-transmitted node first, so that the to-be-transmitted node determines the target routing algorithm based on the algorithm identifier in the routing information, and determines the next node corresponding to the to-be-transmitted node based on the target routing algorithm, and transmits the to-be-transmitted packet to the next node. Further, the determined next node can be taken as a new to-be-transmitted node, and the operation of making the to-be-transmitted node determine the next node and transmit is executed again, until the next node is the target node, at which time the to-be-transmitted packet has been transmitted to the target node, and the packet transmission process has been completed.
[0039] In the embodiments of the present application, by adding the algorithm identifier to the routing information of the to-be-transmitted packet in the above-mentioned manner, each node receiving the to-be-transmitted packet can determine the routing algorithm adopted by the to-be-transmitted packet based on the algorithm identifier, and then each node can use the pre-determined target routing algorithm to sequentially transmit the to-be-transmitted packet, until the target node is transmitted, so that the packet transmission on the missing corner topology can be realized.
[0040] In summary, the packet transmission method provided by the embodiment of the present application is applied to a network on chip, the topology of the network on chip comprises at least one missing corner; in response to a packet transmission request, a starting node corresponding to the packet transmission request and a target node are determined; in a case where the starting node is located in a missing corner routing area corresponding to the missing corner, a target routing algorithm is determined from XY-dimensional sequence routing algorithms and YX-dimensional sequence routing algorithms based on the longitudinal coordinates of the starting node and the target node; and the packet to be transmitted indicated by the packet transmission request is transmitted from the starting node to the target node along a path indicated by the target routing algorithm. In this way, the embodiment of the present application realizes packet transmission by using a topology comprising at least one missing corner, realizes chip interconnection on a missing corner heterogeneous topology, can place more large-scale devices in a larger area, reduces congestion of layout and wiring, and reduces unnecessary production overhead, which is conducive to improving backend layout and wiring convergence and chip yield, and the missing corner heterogeneous topology can also reduce links on a diagonal, thereby improving link utilization of the packet.
[0041] Meanwhile, the embodiment of the present application selects a target routing algorithm from XY-dimensional sequence routing algorithms and YX-dimensional sequence routing algorithms based on the longitudinal coordinates of the starting node and the target node in a case where the starting node of the packet is located in a missing corner routing area, which can avoid the problem that some nodes cannot perform packet transmission when directly using XY-dimensional sequence routing algorithms, thereby realizing a packet transmission mode that is adapted to a missing corner heterogeneous topology.
[0042] Optionally, in a case where the missing corner is located in an upper region of the topology, the operation of determining a target routing algorithm from XY-dimensional sequence routing algorithms and YX-dimensional sequence routing algorithms based on the longitudinal coordinates of the starting node and the target node can specifically comprise the following operations. S21, in a case where the longitudinal coordinate of the target node is not less than the longitudinal coordinate of the starting node, the XY-dimensional sequence routing algorithm is determined as the target routing algorithm.
[0043] S22, in a case where the longitudinal coordinate of the target node is less than the longitudinal coordinate of the starting node, the YX-dimensional sequence routing algorithm is determined as the target routing algorithm.
[0044] The upper region can be the upper left or the upper right, and the embodiment of the present application does not limit this. The longitudinal coordinate refers to the coordinate of a node in the Y direction of the topology. Correspondingly, in a case where the missing corner is located in the upper region of the topology, the missing corner routing area is also the upper region of the topology, and in this case, the starting node located in the missing corner area cannot use the XY-dimensional sequence routing algorithm when sending a packet to some nodes because it cannot first perform X direction transmission.
[0045] Specifically, in the case that the vertical coordinate of the target node is not less than the vertical coordinate of the starting node, the target node is often located in the same row or above the starting node, and since the missing corner is located at the upper left or upper right, the path of the starting node to the node located in the same row or above the starting node is not blocked in the X direction by the missing corner, and the starting node is not blocked in the X direction by the missing corner when transmitting the message to the node above, and therefore the XY dimension sequence routing algorithm can be directly determined as the target routing algorithm.
[0046] Correspondingly, in the case that the vertical coordinate of the target node is less than the vertical coordinate of the starting node, the target node is located below the starting node, and since the missing corner is located at the upper left or upper right, the path of the starting node to the node located below the missing corner routing area is likely to be blocked in the X direction, and cannot be transmitted in the X direction first, and in this case, the YX dimension sequence routing algorithm can be determined as the target routing algorithm.
[0047] In the embodiment of the application, in the case that the missing corner is located in the upper area of the topology, the target routing algorithm can be flexibly determined according to the vertical coordinates of the target node and the starting node, so that the message to be transmitted can be transmitted by using the XY dimension sequence routing algorithm or the YX dimension sequence routing algorithm, and a non-deadlock routing algorithm can be realized on the special-shaped topology of the missing corner.
[0048] Optionally, in the case that the missing corner is located in the lower area of the topology, the operation of determining the target routing algorithm from the XY dimension sequence routing algorithm and the YX dimension sequence routing algorithm based on the vertical coordinates of the starting node and the target node can specifically include the following operations. S31, in the case that the vertical coordinate of the target node is not greater than the vertical coordinate of the starting node, the XY dimension sequence routing algorithm is determined as the target routing algorithm.
[0049] S32, in the case that the vertical coordinate of the target node is greater than the vertical coordinate of the starting node, the YX dimension sequence routing algorithm is determined as the target routing algorithm.
[0050] The lower area can be the lower left or the lower right, and the embodiment of the application does not limit this. The vertical coordinate refers to the coordinate of the node in the Y direction of the topology. Correspondingly, in the case that the missing corner is located in the lower area of the topology, the missing corner routing area is also the lower area of the topology, and in this case, the starting node located in the missing corner area cannot use the XY dimension sequence routing algorithm when transmitting the message to the node, because it cannot transmit in the X direction first.
[0051] Specifically, in the case that the vertical coordinate of the target node is not greater than the vertical coordinate of the starting node, the target node is usually located below the starting node, and since the missing corner is located at the lower left or the lower right, the path of the starting node to the node located below the starting node is not blocked in the X direction by the missing corner, and the starting node is not blocked in the X direction by the missing corner when transmitting the message to the node below, and thus the XY dimension sequence routing algorithm can be directly determined as the target routing algorithm.
[0052] Correspondingly, in the case that the vertical coordinate of the target node is greater than the vertical coordinate of the starting node, the target node is located above the starting node, and since the missing corner is located at the lower left or the lower right, the path of the starting node to the node located above the missing corner routing area is likely to be blocked in the X direction, and the transmission in the X direction cannot be performed first, and in this case, the YX dimension sequence routing algorithm can be determined as the target routing algorithm.
[0053] In the embodiment of the application, in the case that the missing corner is located in the lower region of the topology, the target routing algorithm to be used can be flexibly determined according to the vertical coordinates of the target node and the starting node, so that the message to be transmitted can be transmitted by using the XY dimension sequence routing algorithm or the YX dimension sequence routing algorithm, and the routing algorithm without deadlock can be realized on the irregular topology of the missing corner.
[0054] Optionally, the embodiment of the application can specifically include: In the case that the starting node is not located in the missing corner area, the XY dimension sequence routing algorithm is determined as the target routing algorithm.
[0055] Specifically, in the case that the starting node is not located in the missing corner area, the XY dimension sequence routing algorithm can be directly used in the embodiment of the application. In this way, unnecessary processing operations can be reduced, and efficiency can be improved.
[0056] Exemplarily, Figure 2 is a schematic diagram of a missing corner irregular topology provided by the embodiment of the application, as Figure 2 shown, in this example, the missing corners of the topology are located at the upper left and the upper right, and large devices can be arranged in the upper left region (domain 0) and the upper right region (domain 1), wherein the uppermost router (router, R) can be connected to other devices, for example, a double data rate synchronous dynamic random-access memory (Double Data Rate Synchronous Dynamic Random-Access Memory, DDR).
[0057] Further, Figure 3 is a schematic diagram of message transmission provided by the embodiment of the application, as Figure 3As shown, path 1 is a router in the notched corner routing area sending a packet to the router where the DDR (memory) is located above, at this time, the XY routing algorithm is adopted because the Y coordinate (YID) of the destination router is not less than the YID of the starting router. Correspondingly, path 2 is a router in the notched corner routing area sending a packet to the router where the device is located below, at this time, the YX routing algorithm is adopted because the YID of the destination router is less than the YID of the starting router. Path 3 is a router in the non-notched corner area sending a packet, which directly adopts the XY routing algorithm.
[0058] It should be noted that in the related art, for a special-shaped topology, a topology routing is often realized by configuring a register, and the input port and the output port are connected in correspondence by configuring the register in the routing. However, this method has configurability, and a large amount of redundant connections are brought, which affects the line density of the back-end implementation, and there are also some problems in the configuration of the router in the case of no connection. The signal from the register will affect the timing of the routing calculation of the main path, thereby affecting the performance of the whole chip.
[0059] The notched corner topology and the packet transmission method provided in the embodiments of the present application can more flexibly adapt to different device placement and back-end layout and wiring requirements. Meanwhile, by determining the target routing algorithm from the XY dimension sequence routing algorithm and the YX dimension sequence routing algorithm based on the Y coordinates of the target node and the starting node of the packet to be transmitted, the no-deadlock routing scheme can be realized on the notched corner topology.
[0060] Specifically, in the related art, the routing scheme on the traditional MESH topology chip is the XY dimension sequence routing algorithm, which can reduce the combination logic depth of routing calculation and improve the chip frequency. Meanwhile, in the XY dimension sequence routing algorithm, turning from the Y direction to the X direction is prohibited, thereby breaking the diagonal in the clockwise or counterclockwise path dependence, so that the path dependence of the loop is not generated in the packet transmission routing process, and then the on-chip network packet can be routed and transmitted on the chip without deadlock. Wherein, deadlock refers to the phenomenon that the entire on-chip network data packet stops transmission due to the mutual occupation of mutually dependent resources (for example, routing buffer or routing arbitrator). Wherein, the routing buffer refers to a logical functional block for temporarily storing data packets in the routing hardware, and the routing arbitrator refers to a logical functional block for determining which one obtains the output channel authorization from the data slice transmission request of multiple data channels according to a certain rule.
[0061] Further, in the embodiments of the present application, as shown in FIG. 2, the XY dimension sequence routing algorithm is adopted in the notched corner routing area, and the YX dimension sequence routing algorithm is adopted in the non-notched corner routing area. Figure 2The devices connected to the three routers at the top of the missing corner topology cannot be routed to the devices connected to the routers at the lower left corner or the lower right corner through the XY dimension sequence routing algorithm due to the missing link. Therefore, the XY-YX hybrid routing algorithm is used in the embodiment of the present application to transmit the packet in the missing corner topology. Specifically, as shown in Figure 2 In the missing corner topology, for all routers in the missing corner MESH topology, the XY routing algorithm can be used to transmit the packet to the device above the position of the router. For the routers in the missing corner routing area, when they transmit the packet to the device below the position of the router, the XY routing algorithm cannot be used to reach the destination. In this case, the YX routing algorithm needs to be used.
[0062] Further, Figure 4 is a schematic diagram of path dependence provided by the embodiment of the present application, as shown in Figure 4 As shown, by using the packet transmission method provided by the embodiment of the present application, the left upper dependence and the right upper dependence in the forward / inverse two kinds of deadlock cycle path dependence can be broken by only adding one level of multiplexer (MUX) (the path corresponding to the dashed line), the deadlock cycle in the missing corner topology is also broken, the mutually dependent resources are avoided from being occupied by each other to cause the whole network-on-chip packet to stop transmission, thereby forming a deadlock-free routing algorithm, realizing the high-performance deadlock-free transmission of the packet in the whole chip, and solving the problem of the routing mode not being adapted to the heterogeneous topology in the related art. The edge corner utilization rate of the MESH interconnected chip is improved, the back-end pressure is reduced, and the routing deadlock scene is not generated. Figure 4 The dashed line corresponds to the path), the deadlock cycle in the missing corner topology is also broken, the mutually dependent resources are avoided from being occupied by each other to cause the whole network-on-chip packet to stop transmission, thereby forming a deadlock-free routing algorithm, realizing the high-performance deadlock-free transmission of the packet in the whole chip, and solving the problem of the routing mode not being adapted to the heterogeneous topology in the related art. The edge corner utilization rate of the MESH interconnected chip is improved, the back-end pressure is reduced, and the routing deadlock scene is not generated.
[0063] It should be noted that, for the method embodiment, in order to simply describe, all are described as a series of action combinations, but those skilled in the art should know that the embodiment of the present application is not limited by the action sequence described, because according to the embodiment of the present application, certain steps can be performed in other sequences or simultaneously. Secondly, those skilled in the art should know that the embodiments described in the specification all belong to preferred embodiments, and the actions involved are not necessarily necessary for the embodiment of the present application.
[0064] Figure 5 is a structural schematic diagram of a packet transmission device in the embodiment of the present application, which is applied to a network-on-chip, and the topology of the network-on-chip includes at least one missing corner; as shown in Figure 5 The device 20 can include: A first determination module 201 is configured to determine a starting node and a target node corresponding to a packet transmission request in response to the packet transmission request. A second determining module 202 is configured to determine a target routing algorithm from an XY-order routing algorithm and a YX-order routing algorithm based on the vertical coordinates of the starting node and the target node when the starting node is located in the missing corner routing area corresponding to the missing corner; The transmission module 203 is configured to control the message to be transmitted indicated by the message transmission request to be transmitted from the starting node to the target node along the path indicated by the target routing algorithm.
[0065] Optionally, when the missing corner is located in an upper area of the topology, the second determining module includes: A third determining submodule is configured to determine the XY dimensional order routing algorithm as a target routing algorithm when the ordinate of the target node is not less than the ordinate of the starting node; The fourth determining submodule is configured to determine the YX dimensional order routing algorithm as the target routing algorithm when the ordinate of the target node is smaller than the ordinate of the starting node.
[0066] Optionally, when the missing corner is located in a lower area of the topology, the second determining module includes: a fifth determining submodule, configured to determine the XY dimensional order routing algorithm as a target routing algorithm if the ordinate of the target node is not greater than the ordinate of the starting node; The sixth determining submodule is configured to determine the YX dimensional order routing algorithm as the target routing algorithm when the ordinate of the target node is greater than the ordinate of the starting node.
[0067] Optionally, the device further comprises: The seventh determining module is configured to determine the XY dimensional order routing algorithm as the target routing algorithm when the starting node is not located in the missing corner area.
[0068] Optionally, the device further comprises: An eighth determining module is configured to determine, for any node in the network on chip, if the vertical coordinate of the node is within the vertical coordinate range of the missing corner, that the node is located in the missing corner routing area corresponding to the missing corner.
[0069] Optionally, the transmission module includes: An adding submodule, configured to add an algorithm identifier to the routing information corresponding to the message to be transmitted indicated by the message transmission request, wherein the algorithm identifier is used to characterize the target routing algorithm; a ninth determining module, configured to take the starting node as a to-be-transmitted node, so that the to-be-transmitted node determines a target routing algorithm based on the algorithm identification, and determines a next node corresponding to the to-be-transmitted node based on the target routing algorithm, and transmits the to-be-transmitted packet to the next node; a performing module, configured to take the next node as a new to-be-transmitted node, and perform again the operation of causing the to-be-transmitted node to determine a target routing algorithm based on the algorithm identification, and determining a next node corresponding to the to-be-transmitted node based on the target routing algorithm, and transmitting the to-be-transmitted packet to the next node, until the next node is the target node.
[0070] In summary, the packet transmission device provided by the embodiment of the present application is applied to a network on chip, the topology of the network on chip contains at least one missing corner, in response to a packet transmission request, a starting node and a target node corresponding to the packet transmission request are determined, in the case that the starting node is located in a missing corner routing area corresponding to the missing corner, a target routing algorithm is determined from XY-dimensional sequence routing algorithms and YX-dimensional sequence routing algorithms based on the longitudinal coordinates of the starting node and the target node, and a to-be-transmitted packet indicated by the packet transmission request is transmitted from the starting node to the target node according to a path indicated by the target routing algorithm. In this way, the embodiment of the present application realizes packet transmission by adopting a topology containing at least one missing corner, realizes chip interconnection on a missing corner heterogeneous topology, can place more large-scale equipment in a larger area, reduces congestion of layout and wiring, and reduces unnecessary production overhead, which is beneficial to backend layout and wiring convergence and improvement of chip yield, and the missing corner heterogeneous topology can also reduce links on a diagonal, thereby improving link utilization rate of the packet.
[0071] Meanwhile, the embodiment of the present application selects a target routing algorithm from XY-dimensional sequence routing algorithms and YX-dimensional sequence routing algorithms according to the longitudinal coordinates of the starting node and the target node in the case that the starting node of the packet is located in a missing corner routing area, which can avoid the problem that some nodes cannot transmit packets when directly adopting XY-dimensional sequence routing algorithms, thereby realizing a packet transmission mode that is adapted to a missing corner heterogeneous topology.
[0072] For the device embodiment, since it is basically similar to the method embodiment, the description is relatively simple, and the related parts refer to the part of the method embodiment.
[0073] Each embodiment in the specification is described in a progressive manner, and each embodiment mainly explains the difference from other embodiments, and the same and similar parts of each embodiment refer to each other.
[0074] As to the packet transmission apparatus in the above embodiments, the specific manner in which each module performs operations has been described in detail in the embodiments related to the method, and thus will not be described in detail here.
[0075] The embodiments of the present application also provide an electronic device, including a processor and a memory for storing processor-executable instructions, wherein the processor is configured to execute the packet transmission method.
[0076] With reference to Figure 6 is a structural schematic diagram of an electronic device provided by the embodiments of the present application. As shown in Figure 6 , the electronic device includes a processor, a memory, a communication interface and a communication bus, the processor, the memory and the communication interface complete mutual communication through the communication bus; the memory is used for storing at least one executable instruction, and the executable instruction causes the processor to execute the packet transmission method of the foregoing embodiments.
[0077] It should be noted that the electronic device in the embodiments of the present application includes a mobile electronic device and a non-mobile electronic device.
[0078] The processor can be a CPU (Central Processing Unit, central processor), a general-purpose processor, a DSP (Digital Signal Processor, digital signal processor), an ASIC (Application Specific Integrated Circuit, application specific integrated circuit), an FPGA (Field Programmable Gate Array, field programmable gate array) or other programmable devices, transistor logic devices, hardware components or any combination thereof. The processor can also be a combination of computing functions, such as one or more microprocessor combinations, combinations of DSP and microprocessor, etc.
[0079] The communication bus can include a path for transmitting information between the memory and the communication interface. The communication bus can be a PCI (Peripheral Component Interconnect, peripheral component interconnect) bus or an EISA (Extended Industry Standard Architecture, extended industry standard architecture) bus, etc. The communication bus can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Figure 6 only one line is used in the figure, but it does not mean that there is only one bus or only one type of bus.
[0080] The memory can be a ROM (Read Only Memory) or other type of static storage device that can store static information and instructions, a RAM (Random Access Memory) or other type of dynamic storage device that can store information and instructions, an EEPROM (Electrically Erasable Programmable Read Only Memory), a CD-ROM (Compact Disc Read Only Memory), a magnetic tape, a floppy disk, an optical data storage device, and the like.
[0081] The embodiment of the present application further provides a non-transitory computer readable storage medium, when instructions in the storage medium are executed by a processor of an electronic device (a server or a terminal), the processor can execute Figure 1 the packet transmission method shown in the method.
[0082] The embodiment of the present application further provides a computer program product containing instructions, when the computer program product is run on a computer, the computer can execute Figure 1 the packet transmission method shown in the method.
[0083] The embodiment of the present application further provides a chip, the chip includes a processor and a communication interface, the communication interface and the processor are coupled, the processor is used for running a program or instructions, realizes various processes of the packet transmission method embodiment, and can achieve the same technical effects, to avoid repetition, here will not be repeated.
[0084] It should be understood that the chip mentioned in the embodiment of the present application can also be called a system-level chip, a system chip, a chip system or a system-on-chip chip, etc.
[0085] Each embodiment in the specification is described in a progressive manner, and each embodiment focuses on the difference from other embodiments. The same and similar parts between each embodiment can be referred to each other.
[0086] Those skilled in the art should understand that the embodiments of the present application can be provided as a method, device, or computer program product. Therefore, the embodiments of the present application can be realized wholly or partially by software, hardware, firmware, or any combination thereof. When realized by software, the embodiments of the present application can be realized wholly or partially in the form of a computer program product. The computer program product includes one or more computer instructions. When loaded and executed by a computer, the computer instructions wholly or partially produce the processes or functions described in the embodiments of the present application. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The computer instructions can be stored in a computer-readable storage medium or transferred from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions can be transferred from one website, computer, server, or data center to another website, computer, server, or data center through a wired (for example, coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (for example, infrared, wireless, microwave, etc.) manner. The computer-readable storage medium can be any available medium accessible by a computer or a data storage device such as a server, data center, etc. that includes one or more available media sets. The available medium can be a magnetic medium (for example, a floppy disk, a hard disk, a magnetic tape), an optical medium (for example, a DVD), or a semiconductor medium (for example, a solid state disk (SSD)), etc.
[0087] The embodiments of the present application are described with reference to flowcharts and / or block diagrams of the method, terminal device (system), and computer program product according to the embodiments of the present application. It should be understood that each flow and / or block in the flowcharts and / or block diagrams, and the combination of the flows and / or blocks in the flowcharts and / or block diagrams can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing terminal devices to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing terminal devices produce the functions described in the flowcharts and / or block diagrams. Figure 1 The functions described in a flow or multiple flows and / or blocks Figure 1 The functions described in a flow or multiple flows and / or blocks
[0088] These computer program instructions can also be stored in a computer-readable memory that can cause the computer or other programmable data processing terminal devices to work in a predictive manner, so that the instructions stored in the computer-readable memory produce a manufactured product including instruction devices that implement the processes described in the flowcharts and / or block diagrams. Figure 1 The functions described in a flow or multiple flows and / or blocks Figure 1 The functions described in a flow or multiple flows and / or blocks
[0089] These computer program instructions can also be loaded into computer or other programmable data processing devices to cause a series of operational steps to be performed on the computer or other programmable devices to produce a computer-implemented process such that the instructions which execute on the computer or other programmable devices provide steps for implementing the functions specified in the flowchart block or blocks. Figure 1 one or more flowcharts and / or blocks Figure 1 one or more flowcharts and / or blocks
[0090] Although preferred embodiments of the present application have been described, those skilled in the art will be able to make additional modifications and variations to these embodiments without departing from the scope of the present application. Accordingly, the appended claims are intended to encompass all such modifications and variations as falling within the scope of the present application.
[0091] Each of the embodiments in the present specification is described in a related manner, and the same or similar parts between each of the embodiments can be referred to each other. Each of the embodiments mainly explains the difference from other embodiments. Especially, for the system embodiments, since they are basically similar to the method embodiments, the description is relatively simple, and the related parts can be referred to the part of the method embodiments.
[0092] It should be noted that the acquisition of various data related processes in the embodiments of the present application are performed under the premise of complying with the corresponding data protection regulations and policies of the country where the device is located, and with the authorization given by the owner of the corresponding device.
[0093] Finally, it should be noted that in the present document, the terms such as first and second are used only to distinguish one entity or operation from another, and do not necessarily require or imply these entities or operations have any such actual relationship or order. Moreover, the terms "comprising", "including" or any other variant thereof are intended to cover a non-exclusive inclusion, so that a process, method, article or terminal device including a series of elements not only includes those elements, but also includes other elements not explicitly listed or inherent to such a process, method, article or terminal device. Without more limitations, the element defined by the statement "comprising a" does not exclude the presence of additional identical elements in the process, method, article or terminal device including the element.
[0094] The above describes in detail the message transmission method, device, electronic equipment and readable storage medium provided by the present application. The principles and implementation manners of the present application are described by using specific examples. The above example is only used to help understand the method of the present application and its core idea. Meanwhile, for those skilled in the art, according to the idea of the present application, the specific implementation manners and application ranges will be changed. In conclusion, the content of the specification should not be understood as a limitation of the present application.
Claims
1. A message transmission method, the method being applied to a network on chip, characterized in that: The topology of the network on chip includes at least one missing corner; the method includes: In response to a message transmission request, determining a start node and a target node corresponding to the message transmission request; In a case where the starting node is located in the missing corner routing area corresponding to the missing corner, determining a target routing algorithm from an XY dimensional order routing algorithm and a YX dimensional order routing algorithm based on the vertical coordinates of the starting node and the target node; The message to be transmitted indicated by the message transmission request is controlled to be transmitted from the starting node to the target node along the path indicated by the target routing algorithm.
2. The method according to claim 1, characterized in that In a case where the missing corner is located in an upper area of the topology, determining a target routing algorithm from an XY-dimensional order routing algorithm and a YX-dimensional order routing algorithm based on the vertical coordinates of the starting node and the target node includes: In a case where the ordinate of the target node is not less than the ordinate of the starting node, determining the XY dimensional order routing algorithm as the target routing algorithm; When the ordinate of the target node is smaller than the ordinate of the starting node, the YX dimensional order routing algorithm is determined as the target routing algorithm.
3. The method according to claim 1, characterized in that In a case where the missing corner is located in a lower area of the topology, determining a target routing algorithm from an XY-dimensional order routing algorithm and a YX-dimensional order routing algorithm based on the vertical coordinates of the starting node and the target node includes: In a case where the ordinate of the target node is not greater than the ordinate of the starting node, determining the XY dimensional order routing algorithm as the target routing algorithm; In a case where the ordinate of the target node is greater than the ordinate of the start node, the YX dimensional order routing algorithm is determined as the target routing algorithm.
4. The method according to claim 1, wherein The method further comprises: In a case where the starting node is not located in the missing corner area, the XY dimensional order routing algorithm is determined as the target routing algorithm.
5. The method according to claim 1, wherein The method further comprises: For any node in the network on chip, if the vertical coordinate of the node is within the vertical coordinate range of the missing corner, it is determined that the node is located in the missing corner routing area corresponding to the missing corner.
6. The method according to any one of claims 1 to 5, characterized in that The controlling the message to be transmitted indicated by the message transmission request to be transmitted from the starting node to the target node according to the path indicated by the target routing algorithm includes: Adding an algorithm identifier to the routing information corresponding to the message to be transmitted indicated by the message transmission request, wherein the algorithm identifier is used to represent the target routing algorithm; Taking the starting node as a node to be transmitted, so that the node to be transmitted determines a target routing algorithm based on the algorithm identifier, and determines a next node corresponding to the node to be transmitted based on the target routing algorithm, and transmits the message to be transmitted to the next node; The next node is used as a new node to be transmitted, and the operation of determining the target routing algorithm based on the algorithm identifier for the node to be transmitted, determining the next node corresponding to the node to be transmitted based on the target routing algorithm, and transmitting the message to be transmitted to the next node is performed again until the next node is the target node.
7. A message transmission device, applied to a network on chip, characterized in that: The topology of the network on chip includes at least one missing corner; the device includes: A first determining module is configured to determine, in response to a message transmission request, a starting node and a target node corresponding to the message transmission request; A second determining module is configured to determine a target routing algorithm from an XY-dimensional order routing algorithm and a YX-dimensional order routing algorithm based on the vertical coordinates of the starting node and the target node when the starting node is located in the missing corner routing area corresponding to the missing corner; The transmission module is used to control the message to be transmitted indicated by the message transmission request to be transmitted from the starting node to the target node according to the path indicated by the target routing algorithm.
8. An electronic device, characterized in that: It includes a processor, a communication interface, a memory and a communication bus, wherein the processor, the communication interface and the memory communicate with each other via the communication bus; Memory for storing computer programs; A processor, configured to implement the method according to any one of claims 1 to 6 when executing a program stored in a memory.
9. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the program is executed by a processor, the method according to any one of claims 1 to 6 is implemented.
10. A computer program, characterized in that When the computer program is executed by a computer, the method according to any one of claims 1 to 6 is implemented.
Citation Information
Patent Citations
Link layer fault tolerance circuit design suitable for on-chip network system
CN102724115A
Routing method, device, equipment, medium and computer program product
CN118827528A
Network message path planning method and device, medium and computer program product
CN118869574A
Network-on-chip simulation method and device, electronic equipment and storage medium
CN119397720A
Universal topological quantum computers based on majorana nanowire networks
US20170141287A1