US 12,438,829 B2
System and method for deadlock detection in network-on-chip (NoC) having external dependencies
Benoit de Lescure, Campbell, CA (US); and Moez Cherif, Santa Cruz, CA (US)
Assigned to ARTERIS, INC., Campbell, CA (US)
Filed by ARTERIS, INC., Campbell, CA (US)
Filed on Sep. 27, 2022, as Appl. No. 17/953,350.
Claims priority of provisional application 63/250,111, filed on Sep. 29, 2021.
Prior Publication US 2023/0096061 A1, Mar. 30, 2023
Int. Cl. H04L 49/55 (2022.01); H04L 49/109 (2022.01); H04L 49/25 (2022.01)
CPC H04L 49/55 (2013.01) [H04L 49/109 (2013.01); H04L 49/25 (2013.01)] 7 Claims
OG exemplary drawing
 
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.