Network-on-Chip (NoC)
A network-on-chip is a packet-switched communication fabric that connects the many processing cores, memory controllers, accelerators, and peripherals of a large integrated circuit. Rather than wiring every block to a shared set of bus signals, a network-on-chip distributes small routers across the die and links them with point-to-point channels. Data travels as packets that hop from router to router toward a destination, much as traffic moves through a road network. This organization decouples communication from computation, allowing the interconnect to scale in bandwidth as the number of connected blocks grows.
The motivation for on-chip networks arose from the limits of shared buses. As designs integrated tens and then hundreds of communicating blocks, a single shared medium became a bottleneck: only one transfer could proceed at a time, the electrical load of many attached blocks slowed signaling, and the wires spanning the chip grew long and power-hungry. A network-on-chip replaces the global bus with structured, segmented, and concurrent communication. The remainder of this article examines the topologies that define a network's structure, the routing and flow-control policies that govern how packets move, the router microarchitecture that implements those policies, and the quality-of-service and deadlock-avoidance mechanisms that keep the network correct and predictable.
Topologies
The topology of a network-on-chip describes how its routers are connected. Topology determines the number of hops a packet must traverse, the bisection bandwidth available between halves of the chip, the wiring cost, and the regularity that simplifies physical implementation. Because on-chip wires occupy a planar surface and routers consume area at every node, on-chip topologies favor regular, low-dimensional structures that map naturally onto a two-dimensional die.
Mesh and Torus
The two-dimensional mesh is the most widely used on-chip topology. Routers occupy the points of a grid, and each router connects to its neighbors to the north, south, east, and west, plus a local port to the block it serves. A mesh maps directly onto the rectangular floorplan of a chip, uses uniformly short links, and offers path diversity because multiple routes connect most pairs of nodes. Its drawback is that the edges and corners of the grid have fewer connections than the center, so traffic and contention concentrate toward the middle. The mesh is the workhorse of many-core designs: Tilera's TILE64, an early commercial tiled processor, arranged sixty-four cores on a mesh of per-core switches, and later server-class processors from major vendors adopted two-dimensional meshes to interconnect dozens of cores, cache slices, and memory controllers.
A torus addresses the edge effect by adding wraparound links that join the opposite edges of the mesh, so that the rightmost router in each row connects back to the leftmost, and likewise for columns. This halves the worst-case distance across the network and balances the load more evenly, but the wraparound links are physically long if implemented directly. A folded torus interleaves the nodes so that every link spans roughly the same short distance, recovering uniform link length at the cost of a more intricate layout.
Ring
A ring connects routers in a single closed loop, with each node linked to its two immediate neighbors. Rings are simple, inexpensive in wiring, and easy to lay out, which makes them attractive for connecting a modest number of agents such as the cores and last-level cache slices of a processor. Several generations of mainstream client processors used bidirectional ring interconnects for exactly this reason, joining a handful of cores, their cache slices, the graphics block, and a system agent on a single loop. The limitation is that average latency and the longest path grow linearly with the number of nodes, so a single ring does not scale to very large node counts. Designers mitigate this with bidirectional rings, which let packets travel in whichever direction is shorter, and with hierarchical arrangements of multiple rings joined by bridges.
Other and Hierarchical Topologies
Beyond these regular structures, designers employ trees, fat trees, and crossbars for specific needs. A flattened or concentrated mesh attaches several blocks to each router to reduce the number of network nodes. Hierarchical topologies combine structures at different levels, for example a local crossbar or ring within a cluster of cores and a global mesh between clusters. The choice always weighs the bandwidth and latency a workload demands against the area and wiring a topology consumes.
Routing Algorithms
A routing algorithm decides the path each packet follows from source to destination. The choice of algorithm affects latency, the uniformity with which traffic spreads across links, the network's tolerance of congestion and faults, and, critically, whether the network can deadlock. Routing algorithms are commonly classified as deterministic, oblivious, or adaptive, and as minimal or non-minimal.
Deterministic Routing
A deterministic algorithm always sends packets between a given source and destination along the same path. Dimension-order routing is the canonical example: in a mesh, a packet travels along one dimension until it reaches the destination's coordinate in that dimension, then turns and travels along the next. The familiar form on a two-dimensional mesh routes fully in the X direction before routing in Y, and is therefore called XY routing. Deterministic routing is simple to implement, preserves the order of packets between any pair of endpoints, and, when the turns it permits are chosen carefully, is inherently free of deadlock. Its weakness is that it cannot route around congestion or faults, so a hot spot on the fixed path degrades performance.
Oblivious and Adaptive Routing
An oblivious algorithm may choose among several paths but does so without regard to network conditions, often randomly. Valiant's algorithm, which routes each packet first to a randomly chosen intermediate node and then to its destination, is the classic example; it spreads adversarial traffic patterns evenly across the network at the cost of longer average paths.
An adaptive algorithm selects the next hop using live information about congestion, such as the occupancy of neighboring buffers or the availability of output channels. Adaptive routing can steer packets around hot spots and, in fault-tolerant designs, around failed links and routers, improving throughput under irregular or bursty traffic. The cost is added complexity in the router, the possibility of packets arriving out of order, and a greater burden in proving the network deadlock-free. Minimal adaptive routing restricts choices to shortest paths, while fully adaptive and non-minimal schemes allow longer paths for greater flexibility. The turn model and related techniques constrain which turns a router may make so that adaptivity is gained without creating the cyclic dependencies that cause deadlock.
Flow Control
Flow control governs how the buffers and links of the network are allocated to packets as they advance, and how a router signals an upstream neighbor that it is ready to accept more data. Flow control determines how efficiently the network uses its storage and bandwidth and how gracefully it behaves under load.
Granularity: Packets, Flits, and Phits
A message is divided into one or more packets, and each packet is further divided into flits, the flow-control units that the network allocates and moves as a group. The head flit carries the routing information and reserves resources along the path, body flits carry the payload, and a tail flit releases the resources as it passes. A flit may be transmitted over a physical link in one or several phits, the unit of data transferred in a single cycle, depending on how the link width compares with the flit size. Operating on flits rather than whole packets lets a packet occupy several routers at once and keeps buffer requirements modest.
Store-and-Forward, Virtual Cut-Through, and Wormhole
Under store-and-forward flow control, a router receives an entire packet into its buffers before forwarding any of it, which is simple but adds the full packet's transmission time as latency at every hop and demands a buffer as large as a packet. Virtual cut-through allows a router to begin forwarding a packet as soon as the head flit's output is granted, without waiting for the whole packet to arrive, reducing latency; it still requires buffer space for a complete packet because a blocked packet must be absorbed at a single node.
Wormhole flow control forwards each flit as soon as it arrives and is the dominant scheme on chip because it needs only a few flits of buffering per port. The flits of a packet follow the head like a worm through a burrow, spread across multiple routers. The cost of this efficiency is that a blocked packet stalls in place and continues to occupy buffers and links at every router it spans, blocking other traffic that needs those resources. This head-of-line blocking is the principal motivation for virtual channels.
Buffer-Level Signaling
At the lowest level, a router must not send a flit to a neighbor that has no room to store it. Credit-based flow control tracks the free buffer slots of the downstream router with a credit count, decrementing it on each flit sent and replenishing it as the neighbor frees space; it uses buffers efficiently but requires credit signaling. Simpler on-off and acknowledgment schemes trade some efficiency for reduced signaling. In all cases, the mechanism applies backpressure that propagates congestion upstream and prevents buffer overflow.
Virtual Channels
A virtual channel multiplexes several independent buffer queues onto a single physical link, so that one channel may carry one packet while another carries an unrelated packet over the same wires. Virtual channels are among the most important techniques in on-chip network design because they address several problems at once.
Their first purpose is to relieve head-of-line blocking. When a wormhole packet stalls, it occupies only its own virtual channel; packets assigned to other virtual channels on the same link continue to make progress, raising the utilization of the physical link. Their second purpose is deadlock avoidance: by reserving certain virtual channels for certain classes of traffic or stages of a route, designers break the cyclic resource dependencies that would otherwise deadlock the network. Their third purpose is to separate classes of traffic that must not interfere, such as the request and response messages of a cache-coherence protocol, or high-priority and best-effort flows, which supports quality of service.
These benefits are not free. Each virtual channel requires its own buffer storage and its own state, and the router must arbitrate among the active virtual channels competing for each output, which enlarges the crossbar's effective contention and lengthens the control path. Designers therefore choose the number of virtual channels per port to balance the gains in throughput and correctness against the added area, power, and timing pressure.
Routers and Switches
The router, sometimes called a switch, is the active building block of a network-on-chip. It receives flits on its input ports, decides where each should go, and forwards them on the appropriate output port. The microarchitecture of the router largely determines the network's per-hop latency, clock frequency, area, and power.
Router Components
A typical input-queued router contains input buffers, organized as one queue per virtual channel, that store arriving flits; route computation logic that determines the output port for each head flit; a virtual-channel allocator that assigns an output virtual channel to a waiting packet; a switch allocator that grants the use of the crossbar to flits whose output is free; and a crossbar switch that physically connects any input to any output. The number of crossbar ports equals the number of neighbors plus the local port, so a mesh router has five ports. Control logic sequences these components and applies the chosen routing and flow-control policies.
Pipelining and Latency
To reach a high clock frequency, a router pipelines the stages that a flit traverses: route computation, virtual-channel allocation, switch allocation, and switch traversal, followed by link traversal to the next router. A flit therefore incurs several cycles of latency at each hop, and the total latency of a packet is the sum of its per-hop costs plus the time to inject the packet's flits serially. Because hop count multiplies this per-hop cost, low-latency router design is a central concern. Speculative allocation, which attempts switch allocation in parallel with virtual-channel allocation, and lookahead routing, which computes a packet's next turn one hop in advance, reduce the number of pipeline stages. Express virtual channels and bypass paths let flits skip the full pipeline at intermediate routers along a straight path, lowering the effective latency of long journeys.
Quality of Service
Many systems carry traffic with differing requirements over the same network. A processor's memory references demand low latency, a display controller's reads demand guaranteed bandwidth delivered on time, and bulk transfers tolerate delay but consume capacity. Quality of service is the set of mechanisms that lets a single network meet these differing requirements rather than treating all traffic identically.
The simplest approach is prioritization. Traffic is divided into classes, often carried on separate virtual channels, and routers arbitrate in favor of higher-priority classes so that latency-sensitive packets advance ahead of best-effort ones. Prioritization improves the experience of favored traffic but offers no firm numerical guarantee and can starve lower-priority flows if it is not bounded.
Stronger guarantees require regulating how much traffic each source may inject and reserving capacity for it. Rate limiting and traffic shaping at the network interface cap the injection rate of each flow, while bandwidth reservation dedicates a share of link capacity to a flow regardless of competing demand. Some networks provide guaranteed service by establishing virtual circuits with time-division-multiplexed slots, so that a reserved flow receives a fixed allocation of bandwidth and a bounded latency. A common design pairs a guaranteed-service mechanism for critical traffic with a best-effort mechanism that uses the remaining capacity efficiently, combining predictability for the flows that need it with high utilization overall.
Deadlock, Livelock, and Starvation
A network-on-chip must not only deliver packets quickly but also guarantee that every packet is eventually delivered. Three pathologies threaten this guarantee, and a correct design must preclude all of them.
Deadlock and Its Avoidance
Deadlock occurs when a set of packets each hold some network resources, typically buffers, while waiting for resources held by another packet in the set, forming a cycle in which none can advance. Because the held resources are never released, the involved packets and often much of the network around them halt permanently. The standard way to prevent deadlock is to eliminate cyclic dependencies among resources. Dimension-order routing achieves this by forbidding the turns that would close a cycle. The turn model generalizes the idea, prohibiting just enough turns to break every cycle while leaving as much path diversity as possible. Where adaptive routing or wraparound links would otherwise create cycles, designers add virtual channels and require packets to use them in a strict order, so that the dependency graph remains acyclic. An alternative, deadlock recovery, permits deadlock to form but detects it and breaks it, for example by draining a blocked packet onto a dedicated escape channel; recovery suits networks in which deadlock is rare.
Livelock and Starvation
Livelock arises when packets remain in motion yet never reach their destinations, a hazard chiefly of non-minimal and misrouting schemes that may send a packet away from its destination to avoid congestion. Bounding the number of misroutes a packet may suffer, or guaranteeing eventual progress toward the destination, prevents livelock. Starvation occurs when a packet is perpetually denied a resource that is repeatedly granted to others, typically because of an unfair arbitration or priority policy. Fair arbitration, such as round-robin service or age-based priority that advances long-waiting packets, ensures that every packet is eventually served.
Scalability Compared with Buses and Crossbars
The decisive advantage of a network-on-chip over a shared bus is scalability. On a bus, all attached blocks share one medium, so aggregate bandwidth is fixed regardless of how many blocks contend for it, only one transfer proceeds at a time, and the electrical load and wire length of the shared signals worsen as blocks are added. A network-on-chip instead provides many short links and many routers operating concurrently, so that several transfers proceed in parallel and the total bandwidth grows with the size of the network. The segmented, point-to-point links are short and can be pipelined, which sustains a high clock frequency as the chip grows, whereas a global bus becomes slower as it lengthens.
A full crossbar connecting every block directly offers very high bandwidth but does not scale either, because its area and wiring grow with the square of the number of ports, quickly becoming prohibitive for large port counts. A network-on-chip can be viewed as a structured, distributed alternative that approximates the connectivity of a crossbar while keeping area and wiring growth manageable. These advantages carry costs that designers must weigh: each router adds area, power, and a few cycles of latency, so for a system with only a handful of communicating blocks a bus or a small crossbar is simpler, smaller, and lower in latency. The network-on-chip earns its overhead when the number of communicating blocks and the demand for concurrent bandwidth are large, which is precisely the regime of modern many-core processors and large systems-on-chip.
Summary
A network-on-chip carries communication across a large integrated circuit as packets routed through a distributed fabric of small routers, replacing the shared global bus that cannot scale to many communicating blocks. The topology, most often a mesh, torus, or ring, fixes the structure, hop distances, and wiring cost. Routing algorithms ranging from simple deterministic dimension-order routing to congestion-aware adaptive schemes choose each packet's path, while flow control, typically wormhole switching with credit-based buffer signaling, governs how buffers and links are allocated as flits advance. Virtual channels relieve head-of-line blocking, separate classes of traffic, and break the cyclic dependencies that would cause deadlock. The router microarchitecture, with its input buffers, allocators, and crossbar, determines per-hop latency and clock frequency, and pipeline optimizations reduce both. Quality-of-service mechanisms let differing traffic classes coexist with appropriate priority or guarantees, and careful design precludes deadlock, livelock, and starvation. Together these elements make the network-on-chip the scalable interconnect of choice for many-core processors and large systems-on-chip, where its router overhead is repaid by concurrent bandwidth that a bus or crossbar cannot provide.
Related Topics
- System-on-Chip Design - the single-die integration whose on-chip interconnect a network-on-chip provides as it scales beyond buses.
- System Architecture - the partitioning and interface decisions that determine how much on-chip communication a network must carry.
- Multi-Chip Modules - the in-package interconnect that extends networks across several dies through die-to-die links.
- Bus Standards and Protocols - the shared-bus and crossbar fabrics whose scaling limits motivate the network-on-chip.
- Timing and Synchronization - the clocking and clock-domain-crossing concerns that arise when routers span a large die.
- Network and Communication Processors - the off-chip packet-switching architectures whose principles parallel those of on-chip networks.