A two-level heirarchy of bridged rings is sometimes a sweetspot for SoC design.
For example, IBM Cell Broadband Engine uses dual rings.
At moderate size, using a fat ring (wide bus links) is better than a thin X-bar design for same throughput in terms of power consumption and area use.
A two-by-two switch element enables formation of rings (and other NoC structures).
The switch element is registered: hence ring network can span the chip.
A higher-radix element allows more devices to be connected at a `station'.
Performance: Single ring: throughput=2. Dual counter-rotating rings: throughput=4.
With ring (and certainly with all more complex NoCs) IP block protocol/interface needs to support decoupled requests and response packets.
Ring has local arbitration in each element, but global policies are required to avoid deadlock and starvation.
Ring gives priority to traffic already on the ring and uses LAN-like buffering at source, hence no requirement for queuing in element.
Ring does not carry interrupts or other sideband signals.