6.3.11 · D1Interconnects, Buses & SoC

Foundations — Infinity Fabric - mesh interconnects

3,709 words17 min readBack to topic

This page assumes you know nothing. Every letter, symbol, and buzzword the parent note throws at you is built here, in order, with a picture for each. Read top to bottom.


1. The players: what is talking to what?

Before we can draw roads, we need to know who is driving on them.

Building block for prerequisites: if the words "core", "cache", and "memory controller" feel fuzzy, the wiring background in 6.3.1-Bus-ArchitectureBasics is a good companion — this page builds directly on it. (We define every wiring word we use, including bus, in section 2 below, so you can keep reading right here.)

Figure — Infinity Fabric  -  mesh interconnects

Look at the figure: three squares (a core, a cache slice, a memory controller) each with a short stub — that stub is the plug-in point where a road will later attach. (We give this plug-in point its proper name, port, in section 3.) Keep this cast of characters in mind; every topology below just rearranges these same squares.


2. The three road shapes: bus, ring, mesh

Now we connect the squares. There are three shapes the parent note keeps comparing.

Figure — Infinity Fabric  -  mesh interconnects

3. Hop, router, and port

To talk about "fast" and "slow" we need to count.

Figure — Infinity Fabric  -  mesh interconnects

The figure shows a single 5-port router. The four grey arrows are the compass directions to neighbour routers; the magenta arrow going down is the local port to this router's own core. Every mesh in the parent note is just many of these tiles wired edge-to-edge.


4. Coordinates and Manhattan distance

The parent note writes positions like and and computes hops. Here is what those mean.

Why this formula and not straight-line distance? On a grid you cannot cut diagonally through buildings — you must travel along streets, East/West then North/South. So the honest hop count adds the horizontal and vertical legs. That is why it's named after Manhattan's block layout.


5. The symbol and the square root


6. Averages, the symbol, and where comes from

The parent note writes . Don't panic — it's an average.

Deriving (the column part), step by step. We look only at the coordinate. Both and are picked uniformly from the columns , so there are choices for each — ordered pairs in total, each equally likely. The average is the total of all the gaps divided by :

Now we actually compute the sum , not just quote it. Group the pairs by their gap :

  • gap : pairs like — there are of them, contributing .
  • gap : pairs — for each of the adjacent positions there are 2 orderings, so pairs, each contributing .
  • gap in general: there are starting positions and orderings, so pairs, each contributing .

Add them up:

Use the two schoolbook sums and :

Divide by :

For large the is negligible, giving the tidy the parent quotes. The useful came straight out of the step.

The row part is identical (swap for ), giving another . Since Manhattan distance adds the two legs:

Recall Where does the ring's

come from? (Full derivation) On a ring of nodes, from a fixed source the target sits nodes away in one direction, but you always take the shorter arc, so the true distance is . Average over all equally-likely targets: Split the sum at the halfway point (take even). For the shorter arc is ; for it mirrors back down. Each value from up to appears essentially twice, so (The middle sum with does the work; the leftover is the single un-mirrored halfway node.) Divide by : So the is genuinely the sum divided by — the distances spread evenly from to , and the midpoint of that spread is .


7. Bandwidth, cycles, and the clock

The parent's worked examples multiply bytes by frequency. Here is every piece.

For the full memory-side of this arithmetic, see 5.1.7-Memory-BandwidthCalculation.


8. Coherence: why copies must agree


9. Chiplets and NUMA — why "where" matters


10. Real chips aren't perfect grids


11. How it all feeds the topic

cores caches controllers

nodes and tiles

topology bus ring mesh

hops routers ports

coordinates and Manhattan distance

N and sqrt N sizing k

averages E of hops k over 3

clock width bandwidth

bisection bandwidth sqrt N

cache coherence directory home

chiplets and NUMA xGMI

rectangular and irregular meshes

Infinity Fabric and mesh interconnects

Read it as: the raw players become tiles, tiles arrange into a topology, we measure that topology with hops and coordinates, size it with and (or ), average with , price its speed with bandwidth, keep its copies honest with coherence, and finally accept real dies use irregular grids — all of which combine into the parent topic.


Equipment checklist

Cover the right side; can you answer each before moving to the parent note?

What is a node in one sentence?
Any box on the chip (core, cache slice, memory/I-O controller) that sends or receives messages.
Why does a bus jam but a mesh not?
A bus is one shared wire so only one node talks at a time; a mesh gives many parallel roads and shortcuts.
What is a hop?
One step of a message from a node to its immediate neighbour.
Do "router" and "switch" mean different things here?
No — in this topic they are the same component, the 5-port traffic cop at a tile.
How many ports does an Intel mesh router have, and what are they?
5 — North, South, East, West, and one local port to its own core/cache.
Write the Manhattan distance from to .
.
For nodes in a square mesh, what is the side length ?
nodes per edge.
What if is not a perfect square?
Use a rectangular mesh with ; avg hops .
What does mean?
The average (typical) value over all random cases.
Why is the average column gap ?
Grouping pairs by gap gives ; dividing by yields .
Where does the ring's come from?
; dividing by gives .
What assumption makes and valid, and what breaks it?
Uniform random traffic (no favourites); hot-spot / non-uniform traffic breaks it.
Give the bandwidth formula.
Bandwidth = bus width (bytes) × clock frequency (cycles per second); double it for bidirectional.
Compute one-direction bandwidth of a 32 B fabric at 1.8 GHz.
GB/s.
What is the bisection width of a mesh vs a ring?
Mesh links, ring links.
Directory vs broadcast coherence — which scales better and why?
Directory, because it messages only the few sharers () instead of every core ().
What does xGMI stand for, and IFIS?
xGMI = inter-Chip Global Memory Interconnect (die-to-die); IFIS = Infinity Fabric Inter-Socket (package-to-package).
Why do real meshes end up irregular?
A die is a rectangle with I/O and memory controllers fixed at the edges, so the grid gets missing tiles and extra links to match the die shape.

Ready? Head back to the parent topic — every symbol there is now yours.