Complexity and flexibility are the real drivers of fabric choice, not the number of initiators and targets.
Since I first helped introduce the concept of applying networking techniques to address SoC integration challenges in 2007, I have been asked many hundreds of times how to determine when and where to best use an on-chip network (NoC) instead of a passive interconnect network (PIN)? Is there a minimum number of initiators and targets below which it makes more sense to use a PIN for the SoC architecture in “smaller” designs?
The answer is yes. For very simple SoC designs of no more than 8 initiators by 8 targets, it does make sense to use a PIN-based architecture. By simple, I mean:
However, in my nearly 20 years of working with SoC designers on interconnect fabrics and SoC architectures, I’ve never seen such a simple design! Let’s examine today’s most common SoC attributes in relation to using NoC versus PIN fabrics in “smaller” – but not necessarily simpler – designs.
Most SoCs mix current protocols like AXI with legacy protocols like AHB. PIN protocol converters are very large. Most SoCs have initiators and targets with differing data widths. PIN fabrics have a single internal data width, so designers must either convert all interfaces to a single width or partition their designs into multiple PINs with different widths. The latter choice adds latency and area. It also can have a detrimental impact on wire routing and timing convergence if the data width partitioning doesn’t match the chip floorplan.
Most SoCs have to deal with multiple asynchronous clock frequencies. PIN asynchronous bridges are very large because they operate on the massive number of signals in a 5-channel AXI interface. Many SoCs have a range of clock frequencies, including some at 800+ MHz to keep up with DRAM speeds. PINs have significant timing closure challenges, even with short wires, around 500 MHz. Their register slice components, needed to operate at moderate frequencies with long wire runs, add substantial area and can be difficult to get placed properly to assist in timing closure.
Most SoCs have relatively long Manhattan distances at the top level of the design between the components connected by the fabric. For an SoC that is 7×7 mm, you can expect to see some endpoints that are 7 to 10 mm apart. With PINs, these require multiple register slices to pipeline the wire runs, with each register slice wide enough to cover the 5-channel AXI protocol and 2 registers deep to provide sequential *VALID/*READY flow control. Furthermore, a PIN implementing an 8×8, 64b wide bus-based crossbar PIN can easily consume over 10 meters of wire, even with a maximum endpoint spacing of 2mm, making routing congesting a huge issue!
The argument for using NoCs in “smaller” SoC designs:
If you have a simple SoC design, PINs do provide a simple interconnect fabric solution. But, if you are one of the SoC majority facing the complex requirements covered here, NoCs are a more effective solution for the reasons I’ve mentioned, even for “smaller” designs.
Great blog on NoC you have define everything so clearly, thanks for sharing.