6.3.4 · D1Interconnects, Buses & SoC

Foundations — NVLink and GPU interconnects

1,679 words8 min readBack to topic

Before you can read the parent note on NVLink and GPU interconnects, you must be fluent in a small pile of symbols and units it throws at you without warning. This page builds each one from absolutely nothing, in an order where every idea leans only on the ones before it. If the Hinglish version is easier for you, read the Hinglish note alongside this.


1. A bit, and what "a wire carrying data" actually means

Picture a single wire. Time runs left to right. The wire's voltage bounces between two levels. Each little time-slot holds one bit.

WHAT the figure shows: a voltage-versus-time trace chopped into equal slots, each slot a 1 or a 0. WHY we need it: every number in the parent note — 20 GT/s, 16 Gb/s, 20 GB/s — is just a way of counting how many of these slots go by per second. Get this picture right and the rest is arithmetic.


2. Counting speed: the "per second" family

Now we count how many bits (or symbols, or bytes) pass a point each second. Each prefix just multiplies by a thousand-ish. We use the clean powers-of-ten convention the parent note uses.

Why three? Because a wire wiggle (a transfer) does not always carry exactly one useful bit. That gap is the next idea.


3. Transfers vs. payload: why 20 becomes 16

WHY overhead exists (8b/10b): if you sent a long run of 0s, the wire would sit flat and the receiver's clock would drift — it loses track of where slots begin. So the sender rewrites every 8 real bits as a 10-bit pattern guaranteed to keep wiggling. That is 8b/10b encoding. You pay 2 extra bits for every 8 → you keep a fraction .

WHAT the figure shows: a 25 GT/s raw stream funneling through an "8-of-every-10" filter, coming out as 20 Gb/s of payload. WHY the topic needs it: this is exactly why the datasheet says "25" but the honest bandwidth is "20". The multiply-by-eight-tenths is the whole trick.


To get a link's speed, add up its lanes:

WHAT the figure shows: two wires forming one lane, eight lanes stacked into one link, and the arithmetic ladder from GT/s → Gb/s → GB/s → link. WHY: every headline "20 GB/s" in the parent note is this ladder climbed once. See the ladder once and you never re-derive it in a panic.


5. Two directions at once: bidirectional / full-duplex


These are independent. A firehose (huge bandwidth) can still be long (some latency). The parent note multiplies them:


7. Turning bandwidth into time: the transfer formula

The parent note's timing estimates all come from one rearrangement: time = amount ÷ speed.


Prerequisite map

bit and byte, small b vs big B

rates per second, giga

transfers GT/s vs payload Gb/s

8b/10b encoding, keep 8 of 10

lanes and links, add them up

bidirectional, add two directions

bandwidth GB/s

latency, ns

bandwidth-delay product

transfer time equals size over bandwidth

NVLink bandwidth numbers


Equipment checklist

Self-test: cover the right side and answer before revealing.

How many bits are in one byte?
8 bits (and note: little-b = bit, big-B = byte).
What does count that does not?
Raw wire transfers/symbols, including overhead — not just useful data bits.
Why does 8b/10b keep only of the raw rate?
2 of every 10 transmitted bits are overhead that forces voltage transitions so the receiver's clock stays locked.
Convert with 8b/10b to payload bytes per lane.
, then .
What is a lane physically?
A differential pair — two wires carrying one signal as their difference .
Link payload for 8 lanes at 20 Gb/s each?
per direction.
Why is bidirectional per link , not ?
Send and receive run at full speed at the same time (full-duplex), so you add the two directions.
Difference between bandwidth and latency?
Bandwidth = how many bytes per second (pipe width); latency = how long one bit takes end to end (pipe length).
What does the bandwidth-delay product tell you?
How many bytes are in flight at once; the receiver buffer must be at least this big to avoid stalls.
Time to move 1.5 GB over a 20 GB/s link?
.