Level 4 — ApplicationInterconnects, Buses & SoC

Interconnects, Buses & SoC

60 minutes60 marksprintable — key stays hidden on paper

Level: 4 — Application (novel problems, no hints) Time limit: 60 minutes Total marks: 60


Question 1 — PCIe Bandwidth Provisioning (12 marks)

A machine-learning accelerator card must sustain a usable one-way payload throughput of 48 GB/s to host memory. Use the following per-lane per-direction raw bit rates and encoding efficiencies:

Generation Transfer rate Encoding
Gen3 8 GT/s 128b/130b
Gen4 16 GT/s 128b/130b
Gen5 32 GT/s 128b/130b

(a) Derive the usable per-lane per-direction throughput in GB/s for Gen4, showing the encoding factor and the byte conversion. (4)

(b) Determine the minimum lane width (x1/x2/x4/x8/x16) needed at Gen4 and at Gen5 to meet the 48 GB/s requirement. (4)

(c) The card is physically an x16 slot but negotiates down to x8 due to a routing fault. State which generation(s) can still meet the requirement at x8, and justify numerically. (4)


Question 2 — Bus Arbitration Design (12 marks)

A shared parallel bus connects 4 masters (M0–M3). M0 is a real-time video DMA that must never wait more than 3 bus slots. M1–M3 are best-effort CPUs.

(a) A fixed-priority scheme with M0 highest is proposed. Give one scenario where M1–M3 suffer starvation, and explain why. (3)

(b) Design a hybrid arbitration policy that guarantees M0's 3-slot latency bound and provides forward progress to M1–M3. Describe the mechanism precisely. (5)

(c) Under your scheme, if all 4 masters request continuously, compute the worst-case number of slots M3 waits between two of its own grants. (4)


Question 3 — AXI Transaction Analysis (12 marks)

An AXI4 interconnect uses a 128-bit (16-byte) data bus running at 1 GHz. A master issues an INCR burst read.

(a) AXI4 allows up to 256 beats per burst. Compute the maximum data moved in a single burst and the theoretical peak throughput of one such burst assuming 1 beat/cycle. (4)

(b) The read address channel and read data channel are independent. Explain how issuing multiple outstanding read requests (via AXI IDs) hides memory latency, and compute the number of outstanding 256-beat bursts needed to fully hide a 200 ns memory response latency. (5)

(c) Why must a slave return read data for a given ID in order, even though transactions of different IDs may complete out of order? (3)


Question 4 — Choosing an Interconnect (12 marks)

You are architecting a node with 8 GPUs that must exchange gradients in an all-reduce, plus a CPU that manages coherent memory expansion.

(a) Compare PCIe Gen5 x16 vs NVLink for the GPU-to-GPU traffic. Give two concrete technical reasons NVLink is preferred, referencing bandwidth and topology. (4)

(b) For the CPU's memory expansion, explain why CXL (specifically the cxl.mem protocol) is more suitable than plain PCIe, despite CXL running on the PCIe physical layer. (4)

(c) A junior engineer proposes connecting all 8 GPUs in a single shared parallel bus for the all-reduce. Give two scaling reasons (electrical + protocol) why this fails, and name the on-package alternative used in modern multi-die designs. (4)


Question 5 — SerDes & NoC Trade-off (12 marks)

(a) A parallel bus of 32 wires runs at 200 MHz. A SerDes link serializes the same data over 1 differential pair at 8 Gb/s. Compare their aggregate throughput and state which delivers more, showing arithmetic. (4)

(b) Give two physical-design reasons (beyond raw throughput) that SerDes is preferred for chip-to-chip links at high speed. (4)

(c) A Network-on-Chip uses a 2D mesh of 16 nodes (4×4). Compute the maximum hop count (Manhattan diameter) between any two nodes, and compare against a single shared bus in terms of scalability of aggregate bandwidth. (4)


Answer keyMark scheme & solutions

Question 1

(a) Gen4 per-lane raw = 16 GT/s. Encoding efficiency 128b/130b. Useful bits/s = 16×109×128130=15.754×10916 \times 10^9 \times \frac{128}{130} = 15.754 \times 10^9 bits/s. (2 — rate × encoding) Bytes: ÷8=1.969×109\div 8 = 1.969 \times 10^9 B/s 1.97\approx 1.97 GB/s per lane per direction. (2 — byte conversion)

(b) Requirement 48 GB/s.

  • Gen4: lanes =48/1.969=24.4= 48 / 1.969 = 24.4 \Rightarrow round up to next power-of-two width \Rightarrow x32 — not a standard width, so Gen4 cannot meet 48 GB/s (max x16 ≈ 31.5 GB/s). (2)
  • Gen5 per-lane =2×1.969=3.938= 2 \times 1.969 = 3.938 GB/s. Lanes =48/3.938=12.2= 48/3.938 = 12.2 \Rightarrow x16. (2)

(c) At x8:

  • Gen5 x8 =8×3.938=31.5= 8 \times 3.938 = 31.5 GB/s — fails (< 48). (2)
  • No PCIe generation in the table meets 48 GB/s at x8 (Gen5 x8 is the highest = 31.5). So none meet the requirement at x8. (2 — must state none, with number)

Question 2

(a) With fixed priority and continuous M0 requests, M0 wins every arbitration slot; M1–M3 never get the bus \Rightarrow starvation. Even if M0 is bursty, if M0's request rate keeps the bus busy, lower masters wait indefinitely. (3)

(b) Hybrid scheme (5):

  • Reserve M0 at highest fixed priority but cap it: M0 may win at most 1 grant, then is forced to yield for 2 slots (a "credit"/leaky-bucket limiter) so it cannot monopolize. (2)
  • Among M1–M3 use round-robin for the remaining slots, guaranteeing each eventually gets the bus. (2)
  • M0's 3-slot bound: since M0 is highest priority whenever it requests and is never delayed more than the slots it deliberately yields, its next request is served within ≤3 slots. (1)

(c) Worst case for M3: In every window of slots, M0 may take 1 slot per its allowed period, then M1, M2 each get a round-robin turn before M3. Worst-case wait between two M3 grants:

  • Between M3's grants, M0 can insert grants (bounded), plus M1 and M2 each get one round-robin turn.
  • Round-robin among M1–M3 gives M3 one slot per 3 best-effort slots; interleaved with M0 grants (≤1 per M0-period), worst case ≈ 5 slots (M0, M1, M0, M2, then M3). Accept 4–5 with justification. (4)

Question 3

(a) Max burst = 256 beats × 16 B = 4096 bytes. (2) Peak throughput = 16 B × 1 GHz = 16×10916 \times 10^9 B/s = 16 GB/s (128 bit × 1 GHz). (2)

(b) With multiple outstanding IDs, the master can issue new read addresses on the AR channel without waiting for prior read data on the R channel; the interconnect/memory pipelines them, so latency of request N overlaps with data transfer of earlier requests. (2) One 256-beat burst transfers in 256 cycles = 256 ns (at 1 GHz). To hide 200 ns latency you need enough in-flight data to cover the gap while waiting: latency/burst-time =200/256=0.78= 200/256 = 0.78 \Rightarrow 1 outstanding burst already covers 200 ns since one burst's transfer time (256 ns) ≥ 200 ns latency. So ≥1 additional outstanding burst (i.e. 2 in flight) fully hides it. Accept answer of 2 outstanding (1 transferring + 1 queued). (3 — arithmetic + reasoning)

(c) AXI mandates data ordering within a single ID because the master associates returned beats with the request order for that ID; there is no per-beat tag, so out-of-order within an ID would be ambiguous. Different IDs carry independent order info and may interleave/reorder. (3)


Question 4

(a) (4, 2 each)

  • Bandwidth: NVLink provides far higher aggregate GPU-GPU bandwidth (hundreds of GB/s to ~TB/s per GPU) vs PCIe Gen5 x16 ≈ 63 GB/s bidirectional; all-reduce is bandwidth-bound.
  • Topology: NVLink allows direct mesh/switched (NVSwitch) GPU-to-GPU links avoiding host/CPU bottleneck and PCIe root-complex serialization; PCIe funnels peer traffic through the root complex or PCIe switch with lower bisection.

(b) CXL.mem exposes the device memory as cache-coherent, load/store addressable host memory, so the CPU accesses it with normal memory semantics and coherence—unlike PCIe which is a non-coherent, packetized I/O protocol requiring explicit DMA. CXL runs on the PCIe PHY but adds coherence/memory protocols on top, enabling memory pooling/expansion. (4)

(c) (4, 2 each)

  • Electrical: A shared parallel bus's capacitive load and skew grow with each drop; high-speed signaling on many parallel wires across 8 devices is not feasible (reflections, clock skew) — bandwidth per device drops as it's shared/multiplexed.
  • Protocol: A shared bus serializes all traffic (one transfer at a time), so aggregate bandwidth does not scale with node count; all-reduce needs concurrent point-to-point links. Alternative on-package: mesh/fabric interconnect (e.g., Infinity Fabric / NoC mesh) or NVSwitch crossbar.

Question 5

(a) Parallel: 32 wires × 200 Mb/s/wire = 32×0.2=6.432 \times 0.2 = 6.4 Gb/s. (2) SerDes: 1 pair × 8 Gb/s = 8 Gb/s. SerDes delivers more (8 > 6.4 Gb/s). (2)

(b) (4, 2 each) Any two:

  • Fewer wires/pins → lower package cost, easier PCB routing.
  • No inter-wire skew problem (parallel buses limited by skew at high speed); embedded clock in serial stream.
  • Differential signaling → better noise immunity, longer reach.

(c) 4×4 mesh: diameter = (41)+(41)=6(4-1) + (4-1) = 6 hops (corner to corner). (2) Scalability: a shared bus offers fixed aggregate bandwidth shared among all nodes (drops per node as N grows), while a mesh provides multiple concurrent paths—bisection bandwidth scales, so aggregate throughput grows with node count. (2)


[
  {"claim":"Gen4 per-lane usable ~1.97 GB/s","code":"rate=16e9; enc=128/130; Bps=rate*enc/8; result = abs(Bps-1.969e9) < 5e6"},
  {"claim":"Gen5 x16 usable ~63 GB/s meets 48","code":"per_lane=32e9*128/130/8; total=per_lane*16; result = total/1e9 > 48"},
  {"claim":"Gen5 x8 = 31.5 GB/s fails 48","code":"per_lane=32e9*128/130/8; total=per_lane*8; result = total/1e9 < 48"},
  {"claim":"AXI max burst 4096 bytes","code":"result = 256*16 == 4096"},
  {"claim":"AXI 128b@1GHz peak 16 GB/s","code":"result = (16*1e9)/1e9 == 16"},
  {"claim":"Parallel 6.4 < SerDes 8 Gb/s","code":"par=32*0.2; ser=8; result = ser > par"},
  {"claim":"4x4 mesh diameter 6","code":"result = (4-1)+(4-1) == 6"}
]