Multi-core chips enable parallel computing and other functionality within computing devices, such as personal computers, servers, mobile devices, etc., for non-limiting examples. A multi-core chip may include a network of nodes, referred to interchangeably herein as tiles, and each node may include its own processor, local memory, and other supportive device(s) for non-limiting example. The nodes may communicate via messages. The network may connect each node directly to only a few other nodes, referred to as neighbors. The nodes may be interconnected on the multi-core chip via an on-chip interconnect of routing channels, such as wire conductors or other transmission media.
A topology of the network may define which nodes are neighbors and a node may communicate to a non-neighboring node through one of its neighbors. A routing method may be implemented at a node to determine a route path for routing a message. The route path may include turns along the interconnect. In a network topology that employs a two-dimensional (2D) interconnect, a turn may include a ninety-degree change in a traveling direction of the message.
In a 2D interconnect, turns may include an East-South (ES) turn, that is, a turn which involves a change in direction from East to South, as well as South-West (SWE), West-North (WN), North-West (NW), West-South (WS), South-East (SE), East-North (EN), and North-East (NE) turns. The turns may be classified into clockwise (CW) turns, i.e., NE, ES, SWE, and WN turns, and counter-clockwise (CCW, anti-clockwise) turns, i.e., NW, WS, SE, and EN turns.
According to an example embodiment, a method comprises determining a route path for a flit within a chip based on a mixed-dimension order routing method. The flit originates at an origin. The mixed-dimension order routing method employs, based on the origin of the flit, vertical-to-horizontal dimension routing or horizontal-to-vertical dimension routing. The method further comprises routing the flit via an interconnect of the chip based on the route path determined. The interconnect is associated with a two-dimensional (2D) coordinate system. The vertical-to-horizontal dimension routing and horizontal-to-vertical dimension routing are relative to the 2D coordinate system.
The flit may be a portion of a packet or the packet in its entirety.
The 2D coordinate system may include an x-axis and a y-axis. The vertical-to-horizontal dimension routing may include turning from a vertical direction to a horizontal direction. The horizontal-to-vertical dimension routing may include turning from the horizontal direction to the vertical direction. The horizontal direction and vertical direction may be parallel to the x-axis and y-axis, respectively.
The interconnect may form a 2D mesh structure of a plurality of nodes (also referred to interchangeably herein as “tiles”). A node of the plurality of nodes may include a switch. The routing may include transmitting, via the switch, the flit to another node of the plurality of nodes. The switch may be referred to interchangeably herein as a SW or a mesh switch (MSW) of a tile/node.
The mixed-dimension order routing method may include employing the horizontal-to-vertical dimension routing in an event the origin is a device located at an edge of the interconnect of the chip, and employing the vertical-to-horizontal dimension routing otherwise.
Positive y-coordinates and positive x-coordinates of the 2D coordinate system may be associated with rows and columns of the interconnect, respectively. The positive x-coordinates may increase in an east direction of the interconnect. The edge may be a right edge of the interconnect. The right edge may be located in the east direction.
The method may further comprise avoiding routing deadlock by employing the mixed-dimension order routing method. The routing deadlock may otherwise prevent transmission of the flit via the interconnect.
The method may further comprise reducing congestion in the interconnect by employing the mixed-dimension order routing method. The congestion may be reduced relative to employing a different routing method that employs the horizontal-to-vertical dimension routing, exclusively, or the vertical-to-horizontal routing, exclusively.
The interconnect may include a top row, bottom row, and a plurality of columns. The reducing may include reducing the congestion in the top row, the bottom row, a column of the plurality of columns, or a combination thereof. The congestion in the top row, bottom row, or column may be due to traffic received from a respective edge device coupled to the top row, bottom row, or column. The respective edge device may be external to the interconnect.
The mixed-dimension order routing method may include prohibiting, at most, a first turn type and a second turn type. The first turn type and second turn type may be from a plurality of clockwise turn types and a plurality of counter-clockwise turn types, respectively.
The positive y-coordinates may decrease in a north direction. The positive x-coordinates may increase in an east direction. The mixed-dimension order routing method may include prohibiting the flit from traversing the interconnect in the east direction and turning to traverse the interconnect in the north direction.
A top row of the interconnect may be associated with the north direction. The prohibiting may include an exception. The exception may enable the flit, traversing the interconnect in the east direction, to turn to traverse the interconnect in the north direction, in an event the flit is heading in the east direction along the top row and turning in the north direction to a traffic sink.
The positive y-coordinates may increase in a south direction. The mixed-dimension order routing method may include prohibiting the flit from traversing the interconnect in the east direction and turning to traverse the interconnect in the south direction.
A bottom row of the interconnect may be associated with the south direction. The prohibiting may include an exception. The exception may enable the flit, traversing the interconnect in the east direction, to turn to traverse the interconnect in the south direction, in an event the flit is heading in the east direction along the bottom row and turning in the south direction to a traffic sink.
According to another example embodiment, a circuit comprises an interconnect, associated with a two-dimensional (2D) coordinate system, and a switch coupled to the interconnect. The switch is configured to determine a route path for a flit based on a mixed- dimension order routing method. The flit originates at an origin. The mixed-dimension order routing method employs, based on the origin of the flit, vertical-to-horizontal dimension routing or horizontal-to-vertical dimension routing. The switch is further configured to route the flit via the interconnect of the circuit based on the route path determined. The vertical-to-horizontal dimension routing and horizontal-to-vertical dimension routing are relative to the 2D coordinate system.
Further alternative circuit embodiments parallel those described above in connection with the example method embodiment.
According to another example embodiment, an apparatus comprises means for determining a route path for a flit within a chip based on a mixed-dimension order routing method. The flit originates at an origin. The mixed-dimension order routing method employs, based on the origin of the flit, vertical-to-horizontal dimension routing or horizontal-to-vertical dimension routing. The apparatus further comprises means for routing the flit via an interconnect of the chip based on the route path determined. The interconnect is associated with a two-dimensional (2D) coordinate system. The vertical-to-horizontal dimension routing and horizontal-to-vertical dimension routing are relative to the 2D coordinate system.
Further alternative apparatus embodiments parallel those described above in connection with the example method embodiment.
It should be understood that example embodiments disclosed herein can be implemented in the form of a method, apparatus, system, or computer readable medium with program codes embodied thereon.
The patent or application file contains at least one drawing executed in color. Copies of this patent or patent application publication with color drawing(s) will be provided by the Office upon request and payment of the necessary fee.
The foregoing will be apparent from the following more particular description of example embodiments, as illustrated in the accompanying drawings in which like reference characters refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating embodiments.
A description of example embodiments follows.
A flow control unit (flit), as referred to herein, refers to a packet (message) or portion of the packet. The packet may represent a command or response for non-limiting examples. While an example embodiment disclosed herein may be described as being implemented on a mobile device, it should be understood that an example embodiment disclosed herein is not limited to being implemented on the mobile device.
Central processor units (CPUs), also referred to interchangeably herein as application processors (APs), processors, processor cores, or cores, often need to send flits to other blocks in a multi-core system. Such other blocks may be other APs, last-level cache (LLC) slices, also referred to interchangeably herein as Tag and Data (TAD) devices, or memory controllers. Such flits may be sent between the blocks through an interconnect fabric that may be referred to interchangeably herein as an interconnect, mesh interconnect, or mesh. The interconnect may form a two-dimensional (2D) mesh structure that includes a plurality of nodes, also referred to interchangeably herein as “tiles,” and each node may include a switch, also referred to interchangeably herein as a mesh switch (MSW), which allows flits to be passed from one node to another. Each switch may be coupled to neighboring node switches that may be located in cardinal directions (e.g., four connections) in the 2D mesh structure. Coupling between nodes may be performed via a routing channel (RC) that may also be referred to interchangeably herein as a link. Each switch may be further coupled to local devices, such as an AP and TAD of the node.
In a 2D mesh, routing deadlock has the potential to occur when a circular waiting loop of flits is formed. The waiting loop occurs when a series of flits across four or more nodes are each dependent on flits in the loop being transmitted in order to be transmitted themselves. When this dependency forms a loop, deadlock will occur. To avoid this issue, a routing method may be employed to prevent such a loop from forming. In a 2D mesh, there are two loops to consider, a clockwise loop (CW) and a counter-clockwise (CCW, anti-clockwise) loop. Each loop includes four “turns.” For example, a flit heading east that is then sent north would be one turn in a CCW loop. By eliminating a set of turns from each loop, neither a CW loop nor CCW loop can be formed since all turns of such loops are not available and, thus, the waiting loop described above cannot be formed and deadlock can be prevented.
Dimension order routing is a method which makes use of this idea by only allowing flits to be routed in one direction and then the other, such as vertically and then horizontally. This eliminates two turns from each loop, preventing deadlock. A generic dimension order routing method can, however, have negative effects on mesh congestion. Hot-spots (regions of congestion) may be created when mesh traffic results in large amounts of flits being routed in a single row or column of the interconnect.
For example, flits received from memory controllers external to the interconnect for transmission to TADs may all traverse a top row and bottom row of the interconnect in an exclusive horizontal-to-vertical routing method, while flits being transmitted from other external devices, such as input/output blocks (IOBs) for non-limiting example, may all need to traverse a rightmost column of the interconnect in an exclusive vertical-to-horizontal routing method. As such, exclusive use of either of such types of dimension order routing would result in bottlenecks with an area of high mesh congestion and, thus, degrade mesh performance.
Other solutions to avoid deadlock are to use virtual channels or real-time deadlock detection mechanisms. Such solutions, however, can be expensive in terms of area and power consumption. An example embodiment disclosed herein employs a new routing method referred to herein as mixed-order dimension routing, or MIDOR. With mixed-order dimension routing, flits can be routed in both a vertical-to-horizontal manner and, partially, in a horizontal-to-vertical manner, while being deadlock avoidant by construction. The horizontal-to-vertical manner may be used, partially, since horizontal-to-vertical routing may only be allowed in the case where the flit originates in the right edge of the mesh according to a non-limiting example embodiment.
An example embodiment of the mixed-order dimension routing method ensures deadlock is prevented as there are two turns being prohibited, one in the CCW loop and one in the CW loop. Specifically, routing in which a flit is heading east and then turns north or south may be prohibited. An exception to such restriction may, however, be employed, that is, when a flit is heading east along the top row of the mesh and turns north to a traffic-sink, or when a flit is heading east along the bottom row and turns south to a traffic-sink. Since these flits are leaving the mesh and can no longer contribute to routing deadlock, such turns may be deemed acceptable.
An advantage of an example embodiment of a mixed-dimension order routing method disclosed herein is that such embodiment prevents deadlock by construction and, simultaneously, reduces mesh congestion by allowing flits to be routed in a manner more suitable to the traffic patterns of their sources. An example embodiment of a mixed-dimension order routing method disclosed herein accomplishes this without the logical complexity of a real-time deadlock identification system, and without the area and power overhead of virtual channels.
Traffic originating from an edge device, at an edge of the interconnect, such as an input/output bridge (IOB) for non-limiting example, may be routed horizontally first and then vertically, preventing mesh congestion in the rightmost column of the mesh by eliminating the need for flits to be routed along that column first before then being routed to their destination. Likewise, traffic coming from memory controllers is typically sent to the various TADs throughout the mesh. By routing such traffic vertically and then horizontally, the need for flits to be routed along the top and bottom rows first, before then being sent to the destination TADs, may be eliminated, thereby preventing congestion in these areas. A device that may employ such mixed-order dimension routing on a chip is disclosed below with reference to
The mixed-dimension order routing method 206 may select, based on the origin of the flit 218, whether to employ the vertical-to-horizontal dimension routing or the horizontal-to-vertical dimension routing, as disclosed further below with regard to
The 2D coordinate system 214 may include an x-axis 208 and a y-axis 209. The vertical-to-horizontal dimension routing may include turning from a vertical direction (not shown) to a horizontal direction (not shown). The horizontal-to-vertical dimension routing may include turning from the horizontal direction to the vertical direction. The horizontal direction and vertical direction may be parallel to the x-axis 208 and y-axis 209, respectively. The interconnect 212 may form a 2D mesh structure of a plurality of nodes, such as disclosed below with regard to
Such local components may be sources for creating flits to be transmitted from the node 220 or sink devices that may serve as a final destination for a flit, such as the flit 218. The switch 216 enables flit communications with the local components (223a, 223b, 223c) via respective local switch-RX ports (not shown) and respective local switch-TX ports (not shown) of a plurality of local switch-RX ports (not shown) and a plurality of local switch-TX ports (not shown), respectively, such as disclosed in U.S. patent application Ser. No. 17/934,017, entitled “Directional Link Credit-Based Packet Transmission” and filed on Sep. 21, 2022 (the “'017 Patent Application”), the entire teachings of which are incorporated herein by reference.
The switch 216 may be further configured to route the flit 218 by transmitting the flit 218 to another node of the plurality of nodes (220-1-1, . . . 2202-r-c). In the network topology 227, the plurality of nodes (220-1-1, . . . 2202-r-c) are arranged in columns (e.g., 1, . . . , c) and rows (e.g., 1, . . . , r), and such network topology may be based on a cartesian coordinate system in which such nodes are assigned x- and y- coordinates. Based on an origin of the flit 218, the mixed-dimension order routing method 206 may employ vertical-to-horizontal dimension order routing or horizontal-to-vertical dimension order routing. As such, based on an x-y coordinate pair of the flit 218, the mixed-dimension order routing method 206 may select between vertical-to-horizontal dimension order routing or horizontal-to-vertical dimension order routing in determining a route path for the flit 218. Such a route path may be employed by the switch 216 to determine, for non-limiting example, a next hop for the flit 218.
It should be understood that such next hop may not be an immediate next hop. For example, the switch 216 may receive the flit 218 with route information designated the immediate next hop. The switch 216 may employ the mixed-order dimension routing method to determine a further hop for the flit 218 to be taken at the immediate next hop (e.g., neighboring node), such as disclosed in the '017 Patent Application. The switch 216 may update routing information of the flit 218 to designate such next hop based on a route path (not shown) determined via the mixed-dimension order routing method 206. An example embodiment of the routing information is disclosed further below with regard to
Continuing with reference to
The flit 218 may include a target ID and a source ID stored in the target ID field 213 and source ID field 215, respectively. With reference to
The target ID represented in the target ID field 213 may further represent a local TX port (not shown) of the destination node coupled to a local component (e.g., 223a, 223b, or 223c) at which to sink the flit 218. The local TX port may be local to the destination node. The source ID may further represent a local RX port (not shown) coupled to a local component (e.g., 223a, 223b, or 223c) of the source node. The local RX port may be local to the source node and coupled to a local component of the source node. The local component may be local to the source node and an originator of the flit 218, initially.
The network topology 227 may be based on a cartesian coordinate system for non- limiting example. The target ID and source ID represented in the target ID field 213 and source ID field 215, respectively, may represent a destination (sink) node, destination (sink) edge device, source node, or source edge device via respective x- and y- coordinates associated with such elements in the cartesian coordinate system, for non-limiting examples. The flit 218 may further include a payload in the payload field 219. The payload may include data sent from the source node/edge device to the destination node/edge device. An edge device may be located at an edge of the interconnect 212, such as disclosed below with regard to
Continuing with reference to
Continuing with reference to
According to an example embodiment, the mixed-dimension order routing method 206 may include employing the horizontal-to-vertical dimension routing in an event an origin of the flit 218 is a device located at a particular edge of the interconnect 212 of the chip, and employing the vertical-to-horizontal dimension routing otherwise. The positive y-coordinates and positive x-coordinates of the 2D coordinate system 214 may be associated with rows and columns of the interconnect 212, respectively. The positive x-coordinates may increase in the east 242 direction of the interconnect 212. For non-limiting example, the particular edge may be the right edge 252 of the interconnect 212 which is located in the east 242 direction.
The switch 216 may be further configured to reduce congestion in the interconnect 212 by employing the mixed-dimension order routing method 206. The congestion may be reduced relative to the switch 216 employing a different routing method that employs the horizontal-to-vertical dimension routing, exclusively, or the vertical-to-horizontal routing, exclusively. Such congestion is disclosed further below with regard to
Continuing with reference to
The positive y-coordinates may decrease in a north direction 238. The positive x-coordinates may increase in an east direction 242. By employing the mixed-dimension order routing method 206, the switch 216 may be further configured to prohibit the flit 218 from traversing the interconnect 212 in the east direction 242 and turning to traverse the interconnect 212 in the north direction 238.
As disclosed above, the top row 247 of the interconnect 212 may be associated with the north 238 direction. The mixed-dimension order routing method 206 may include an exception. Based on the exception, the switch 216 may be further configured to enable the flit 218, traversing the interconnect 212 in the east 242 direction, to turn to traverse the interconnect 212 in the north 238 direction in an event the flit 218 is heading in the east direction 242 along the top row 247 and turning in the north 238 direction to a traffic (flit) sink.
The positive y-coordinates may increase in the south 240 direction. By employing the mixed-dimension order routing method 206, the switch 216 may be further configured to prohibit the flit 218 from traversing the interconnect 212 in the east 242 direction and turning to traverse the interconnect 212 in the south 240 direction.
As disclosed above, the bottom row 249 of the interconnect 212 may be associated with the south 240 direction. The mixed-dimension order routing method 206 may include an exception and, based on the exception, the switch 216 may be further configured to enable the flit 218, traversing the interconnect 212 in the east 242 direction, to turn to traverse the interconnect 212 in the south 240 direction in an event the flit 218 is heading in the east 242 direction along the bottom row 249 and turning in the south 240 direction to a traffic sink. The mixed-dimension order routing method 206 may include prohibiting, at most, a first turn type and a second turn type, such as disclosed below with regard to
If, however, the check (405) determines that the flit is not at the destination node, the method proceeds to employ horizontal-to-vertical dimension routing and checks (406) for whether the flit is at a node in a destination column of the interconnect. If yes, the method routes (408) the flit vertically to the destination row and the method thereafter ends (410) in the example embodiment. If no, the method checks (412) for whether the flit is at a node in the rightmost column of the interconnect and the destination is at the right edge of the interconnect.
If the flit is at a node in the rightmost column of the interconnect and the destination is at the right edge of the interconnect, the method checks (416) for whether the flit is at a node in the destination row. If yes, the method routes the flit east to the destination column and the method thereafter ends (410) in the example embodiment. If, however, the flit is not at a node in the destination row, the method routes (408) the flit vertically to the destination row and the method thereafter ends (410) in the example embodiment. If, however, the check (412) is negative, the method routes the flit west to a node in the destination column and the method thereafter ends (410) in the example embodiment.
If the check (404) determines that the flit did not originate from an edge device located in the right edge of the interconnect, the method checks (419) for whether the flit is at the destination node. If yes, the method routes (407) the flit to the target device at the destination node, sinks (409) the flit, and the method thereafter ends (410) in the example embodiment. If, however, the check (419) determines that the flit is not at the destination node, the method proceeds to employ vertical-to-horizontal routing and checks (420) for whether the flit is at a node in the destination row. If yes, the method routes (422) the flit horizontally to a node in the destination column and the method thereafter ends (410) in the example embodiment.
If, however, the check (420) determines that the flit is not at a node in the destination row, the method checks (424) for whether the flit is at a node of the top row of the interconnect and the destination in the top edge of the interconnect. If yes, the method checks (426) for whether the flit is at a node in the destination column and, if so, routes (430) the flit north to the destination row and the method thereafter ends (410) in the example embodiment. If, however, the check at (426) determines that the flit is not at a node in the destination column, the method routes (428) the flit horizontally to the destination column and the method thereafter ends (410) in the example embodiment.
If the check (424) is negative, the method checks (432) for whether the flit is at a node at the bottom row of the interconnect and the destination in the bottom edge of the interconnect. If not, the method routes (434) the flit vertically to the destination row and the method thereafter ends (410) in the example embodiment. If, however, the check (432) is positive, the method checks (436) for whether the flit is at a node in the destination column. If yes, the method routes (438) the flit south to the destination row and the method thereafter ends (410) in the example embodiment.
If, however, the check (436) determines that the flit is not at a node in the destination column, the method routes (428) the flit horizontally to a node in the destination column and the method thereafter ends (410) in the example embodiment.
An advantage of the routing methods of
According to an example embodiment traffic (flits) originating from edge devices, such as IOBs for non-limiting example, may be routed horizontally first and then vertically, preventing congestion in a rightmost column of the interconnect by eliminating the need for flits to be routed along that column first before then being routed to their destination.
In the east 542 direction, a right edge device 534 includes a plurality of peripheral component interconnect express (PCIe) controllers coupled to the interconnect 512 via a RC (not shown) of the interconnect that is coupled to the plurality of PCIe controllers for sourcing and sinking traffic. In the south 540 direction, a bottom edge device 536 includes a plurality of DDRS PHY devices and a plurality of DMCs (not shown) for non-limiting example. The bottom edge device 536 is coupled to the interconnect 512 via a RC (not shown)of the interconnect.
Traffic coming from the memory controllers, such as the DMCs of the top edge device 532 or bottom edge device 536 may be sent to the various TADs throughout the interconnect 512 (mesh). Such TADs are last-level cache (LLC) slices and are each represented as an LLC in the layout 528. It should be understood that each instance of a TAD includes a RC (not shown). Based on an origin of a flit, an example embodiment of a mixed-dimension order routing method may select routing vertically and then horizontally, that is, in a vertical direction 507 and then a horizontal dimension 505. Such a routing selection eliminates a need for flits to be routed along a top row 547 and bottom row 549 first, before then being sent to the destination TADs, preventing congestion in these areas.
The elements of the block and flow diagrams described herein may be combined or divided in any manner in software, hardware, or firmware. If implemented in software, the software may be written in any language that can support the example embodiments disclosed herein. The software may be stored in any form of computer readable medium, such as random-access memory (RAM), read-only memory (ROM), compact disk read-only memory (CD-ROM), and so forth. In operation, a general purpose or application-specific processor or processing core loads and executes software in a manner well understood in the art. It should be understood further that the block and flow diagrams may include more or fewer elements, be arranged or oriented differently, or be represented differently. It should be understood that implementation may dictate the block, flow, and/or network diagrams and the number of block and flow diagrams illustrating the execution of embodiments disclosed herein.
The teachings of all patents, published applications, and references cited herein are incorporated by reference in their entirety.
While example embodiments have been particularly shown and described, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the scope of the embodiments encompassed by the appended claims.
This application claims the benefit of U.S. Provisional Application No. 63/395,955, filed on Aug. 8, 2022. The entire teachings of the above application are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
63395955 | Aug 2022 | US |