| CPC H04L 49/55 (2013.01) [H04L 49/109 (2013.01); H04L 49/25 (2013.01)] | 7 Claims |

|
1. A method of designing a network-on-chip (NoC), the method comprising:
searching for a potential deadlock in a topology of the NoC, the potential deadlock caused by an external dependency in which input of data into the NoC is dependent on output of data from the NoC;
modifying the NoC topology to resolve the potential deadlock;
searching for at least one additional potential deadlock in the topology and modifying the NoC topology to resolve each additional deadlock,
wherein the NoC includes a plurality of network interface units configured to interface with initiators (initiator NIUs) and a plurality of network interface units configured to interface with targets (target NIUs),
wherein the NoC includes a plurality of network interface units configured to interface with initiators (initiator NIUs) and a plurality of network interface units configured to interface with targets (target NIUs) and wherein searching for a potential deadlock includes examining the topology for segments that form loops with respect to an initiator NIU and a target NIU having an external dependency, a potential deadlock detected if a loop is detected,
wherein searching for a potential deadlock includes examining the topology for segments that form loops with respect to an initiator NIU and a target NIU having an external dependency, a potential deadlock detected if a loop is detected,
wherein for each target NIU, a chain of dependent segments is traversed to determine whether the chain forms a loops,
wherein examining the topology for segments that form loops includes:
creating a first list of segments in the NoC topology, where each segment is a directed connection between two components in the NoC topology;
adding to the first list segments between target NIUs having external dependencies to initiator NIUs;
for each segment in the first list, creating a second list of downstream dependent segments, where each dependent segment depends on forward progress of packets from an upstream segment, whereby a set of second lists is created; and
for each initiator NIU in the topology, traversing the set of second lists of dependent segments until reaching a target NIU with no external dependencies or until finding at least one loop.
|