<p>The Bubble NoC is simple, but still provides outstanding performance. Flow control is implemented by <em>bubbles</em>, which are inserted between the flits. The algorithm resembles a traffic situation where a vehicle only moves if the next position is empty. When a flit moves, a bubble is created behind it, and when there is a blocking the bubbles are collapsed as the flits behind are packed together. Even when the Bubble NoC is saturated, it degrades gracefully, and the execution continues.</p>
<p>Deterministic prerouting is used, with the address stored as markers in a 2-out-of-32 code. The XY routing algorithm shifts the address one step at each hop, and turns or finishes when there is a marker first in the address.</p>
<p>The physical implementation is a mesh of <em>lanes</em> containing time-division multiplexed links of 38 wires carrying a 32-bit payload. Signaling is made by current injection that charges the wires. A switch is placed in a four-way crossing, with a fifth local connection into a lane. The switch has an input register for each approaching lane. Straight ahead traffic is simply let through, and a diagonal gate is used for the turning traffic.</p>
<p>All switches are transmission gates, and the control is distributed as a sidewalk in a few µm of the periphery that surrounds the intersection. In a 14 nm technology, the lanes are 7 μm wide, the crossing is 17 μm in square, the hop frequency 3.3 GHz, and the energy for a datapath 4.1 fJ/bit/hop (150 μm).</p>