Intro to On-Chip Networks
I read this article https://chipinsights.substack.com/p/understanding-on-chip-networks and here are my take aways! I thought this article was super easy to read even for beginners.
He talked about the 4 methods that can be used to organize nodes through an analogy about flight paths:
1) simply connecting node to node / one flight going from point A to point B
cons of this method:
- can be expensive having a new bus / flight for each route → hard to scale
- inefficient
2) Arbitration
having more routes available only when there is a higher demand. i.e flying to miami only during a holiday/weekends as opposed to a daily New York City to San Fransisco flight
there are also multiple types of arbitration:
- round robin → where each node gets a turn to use the bus, and then waits till all of the nodes have used the bus to go again
- collision-based → checking if one flight is inactive, it cancels and then focuses on other flights
and many others…..
cons:
- the bandwidth is still limited despite not being as heavy on resources
- since it is reliant on one bus, if anything happens the entire system falls
3) Cross-bar
having a cross bar that all communications go through that make sure everything runs smoothly. this allows all nodes to communicate with each other without needing direct lines. In the flight analogy, it is like how Dubai serves as the hub for Emirates airlines. This allows people to be able to access all locations by flying through Dubai. This allows the airline/chip to have fewer connections without sacrificing communication.
The disadvantage of this is that maintaining the cross bar can be complex and take up more space on the chip.
While it is fewer connections that simply connecting each node, it is still a large amount of connectors for a large number of nodes. This still poses scaling issues.
4) The Network
Connects each node to each other in a ring allowing only 2 connections per node, but allowing communication to each node. Connections can also be made in between to increase connectivity (Node 2 to Node 5)