6.3.10 · D3Interconnects, Buses & SoC

Worked examples — IP cores and SoC bus fabric

2,232 words10 min readBack to topic

This page is the "prove it on every case" companion to the parent topic. The parent told you what AXI channels, crossbars, and APB/AHB/AXI throughput are. Here we grind through every kind of numeric question this topic can throw at you — the small easy ones, the degenerate ones (one master, zero outstanding transactions), the limiting ones (infinite burst length), a real-world word problem, and an exam-style twist that hides a trap.

Before any formula appears we rebuild it in plain words, so you never meet a symbol you have not been introduced to.


The scenario matrix

Every question on bus fabric throughput and crossbar sizing falls into one of these case classes. Think of it as a checklist: if you can answer one example from each row, nothing on an exam can surprise you.

# Case class What makes it tricky Covered by
A Simple throughput (fixed cycles/transfer) just plug numbers Ex 1
B Burst amortization (overhead spread over N beats) the "+overhead" term Ex 2
C Degenerate input — burst length = 1 overhead dominates, formula must still work Ex 3
D Limiting input — burst length → ∞ throughput approaches a ceiling Ex 4
E Parallelism (multiple outstanding transactions) multiply, but watch the real bottleneck Ex 5
F Crossbar sizing (counting switches/arbiters) growth, degenerate Ex 6
G Real-world word problem — meet a bandwidth budget translate MB/s ↔ bits, pick a protocol Ex 7
H Exam twist — the trap: bus width vs. clock vs. efficiency all change at once don't mix up bits and bytes Ex 8

The two tools we reuse everywhere:


Ex 1 — Case A: the plain APB transfer

Forecast: guess before reading — will it beat or lose to a 1-cycle bus? (It must lose, because 2 cycles is slower than 1.)

Steps

  1. Identify bits, cycles-per-transfer , Hz. Why this step? Tool 1 needs exactly these three numbers; naming them first stops us mixing them up.

  2. Apply Tool 1: Why this step? This is the raw bit-rate before converting units.

  3. Convert bits → bytes (divide by 8): Why this step? MB/s is the unit the question asked for.

Verify: Sanity — 2 cycles is half the speed of a 1-cycle bus, and a 1-cycle 32-bit 100 MHz bus is MB/s. Half of 400 is 200 ✓. Matches the parent note's APB figure.


Ex 2 — Case B: AHB burst, overhead amortized

Forecast: more than 200 MB/s (better than APB) but less than the ideal 400 MB/s — because 2 wasted cycles are hiding among the 8 useful ones.

Steps

  1. Plug , , into Tool 2. Why this step? This is exactly the "useful cycles vs total cycles" idea.

  2. Convert to bytes: . Why this step? Answer requested in MB/s.

Verify: Efficiency . And of the ideal MB/s MB/s ✓.


Ex 3 — Case C: degenerate burst,

Forecast: this should collapse toward APB-like numbers, because with only 1 useful word the 2 overhead cycles dominate.

Steps

  1. Put into Tool 2. Why? A degenerate case must not break the formula — plug it in honestly.

  2. Convert: .

Verify: Efficiency . This is worse than APB's 200 MB/s — makes sense: an un-batched single word wastes most cycles on setup, so bursting is pointless for lone accesses. That's the whole reason bursts exist.


Ex 4 — Case D: limiting behaviour,

Forecast: it should approach the ideal 400 MB/s but never exceed it — the fixed 2 cycles become negligible when spread over millions of beats.

The figure shows efficiency climbing toward 1 as grows:

Figure — IP cores and SoC bus fabric

Steps

  1. Take the limit of Tool 2 as . Why a limit? "As grows huge" is precisely the question a limit answers — it tells us the value the curve creeps up to but never crosses. (Divide top and bottom by : .)

  2. So throughput bits/s .

Verify: Look at the red curve in the figure: it flattens toward the dashed ceiling and never touches it — exactly what a limit describes. The overhead is amortized to zero.


Ex 5 — Case E: AXI parallelism (multiple outstanding)

Forecast: roughly 4× a single burst — but only if the slave and wires can actually carry it.

Steps

  1. Single-burst throughput (Tool 2): Why this step? We need the per-transaction number before multiplying.

  2. Multiply by 4 outstanding transactions: Why this step? Outstanding transactions overlap in time, so their throughputs add — up to a limit.

Verify: MB/s ✓ (matches the parent's ≈1400 MB/s estimate).


Ex 6 — Case F: crossbar sizing (and degenerate )

Forecast: (a) switches grow as so expect 32; arbiters and comparators one-per-slave = 8 each. (b) with one master there's nothing to arbitrate.

The crossbar grid — each red dot is one switch:

Figure — IP cores and SoC bus fabric

Steps

  1. Switches . Why? Every master needs a possible path to every slave; that's one crosspoint per (master, slave) pair — count the red dots.

  2. Arbiters . Why? Each slave might be requested by several masters at once; one referee per slave picks a winner.

  3. Address comparators . Why? Each slave owns an address range; one comparator decides "is this address mine?"

  4. Degenerate : switches , but arbiters still exist structurally, though each has only one requester → they never actually arbitrate. Why note this? An exam may claim "you can drop the arbiters when ." Structurally they're one-per-slave; logically they degenerate to pass-through. Say both.

Verify: Complexity is : doubling to 8 gives switches — exactly double. Linear in each dimension ✓.


Ex 7 — Case G: real-world word problem

Forecast: 4K60 is famously "a few GB/s". A 64-bit 200 MHz link is GB/s at peak — this will be close, so compute carefully.

Steps

  1. Bytes per frame: bytes. Why? Total data per frame is width × height × bytes-per-pixel.

  2. Required bandwidth: frames/s: Why? 60 frames every second, so multiply per-frame by 60.

  3. Link peak: bits at Hz:

  4. Usable at : . Why? Real fabrics never reach peak; the efficiency factor accounts for overhead cycles.

  5. Compare: need MB/s, have MB/s. The link is NOT enough — short by MB/s.

Verify: ✓, so the answer "no" is correct. Fix options: widen to 128-bit, raise clock, or add compression. Units check: bytes/s vs bytes/s throughout ✓.


Ex 8 — Case H: the exam twist (everything changes at once)

Forecast: don't eyeball it — the numbers are engineered to be close.

Steps

  1. Bus X: bits/s . Why? Tool 1 with 1 cycle/transfer reduces to .

  2. Bus Y: bits/s .

  3. Compare: Bus X wins, MB/s. Why the surprise? Width and clock both matter as a product. The narrower bus's higher clock more than compensates. Never assume "wider = faster".

Verify: and ; ratio , so Bus X is faster ✓. In bytes: vs ✓.


Recall

Recall Why does a burst of

make AHB slower than APB? With one useful word and 2 overhead cycles, efficiency is ; bursting only pays off when many words share one address phase. ::: Overhead dominates a single-word transfer.

Recall As burst length

, what throughput does approach and why? It approaches — the ceiling — because the fixed cycles are amortized to zero. ::: The peak width×clock rate.

Recall On a single 32-bit channel, why can't 4 outstanding AXI transactions give 4× bandwidth?

The wire still carries only bits/s; outstanding transactions hide latency, not add wire capacity. Real 4× needs multiple physical channels. ::: The channel is still the physical bottleneck.

Recall Full crossbar with

masters and slaves: how many switches, arbiters, comparators? switches, arbiters, comparators. ::: NM, M, M.

See also: Interconnect Topologies · DMA · Memory-Mapped I/O · DRAM Controllers · PCIe · Cache Coherence Protocols · Power Management