Switched networks require switching elements. With a 2x2 element it is easy to build a ring network. The switching element may contain buffering or it may rely on back-pressure to make sources reduce their load.
Single ring: throughput=2. Counter-rotating ring (one ring in each direction): throughput=4 since a packet only travels 1/4 of the way round the ring on average.
Using a network, the delay may be multiple clock cycles and so a write posting approach is reasonable. If an initiator is to have multiple outstanding read requests pending it must put a token in each request that is returned in the response packet for identification purposes.
Although there can be effective local arbitration in each element, a network on a chip can suffer from deadlock. Some implementations uses separate request and response networks, so that a response is never held up by new requests, but this just pushes deadlock to the next higher logical level when some requests might not be serviceable without the server issuing a subsidiary request to a third node. Global policies and careful design are required to avoid deadlock and starvation.
19: (C) 2012-17, DJ Greaves, University of Cambridge, Computer Laboratory. |