AMBA Protocol Family: AXI, AHB, APB and ACE Explained
A closer look at each major member of the AMBA family — what problem it was built to solve, where it sits in an SoC, and how AXI, AHB, APB, and ACE relate to one another before we go signal-by-signal starting Day 3.
On Day 1, we established that AMBA is a family of specifications, not a single protocol, and walked through its evolution from 1996 to today. Now we zoom into the four protocols you'll actually encounter in day-to-day RTL design, verification, and interviews: APB, AHB, AXI, and ACE. Each one exists because the others weren't a good fit for a particular kind of block.
In This Article
1.APB: The Peripheral Bus
APB (Advanced Peripheral Bus) is the simplest protocol in the AMBA family, and that simplicity is the entire point. It was designed for low-bandwidth, low-power peripherals where the priority is minimal gate count and ease of design — not throughput.
- Typical devices: UART, SPI, I2C, GPIO, timers, watchdogs, control/status register blocks.
- Transfer style: Non-pipelined — one transfer completes fully before the next begins.
- Bus topology: Single shared bus with one bridge/controller and multiple peripheral slaves; there's no concept of multiple APB masters.
- Why it stays simple: These peripherals rarely need to move large amounts of data quickly, so paying for AXI-level complexity (multiple channels, burst logic, out-of-order completion) would only add area and power for no real benefit.
We'll go fully signal-level on APB, including its state machine (IDLE → SETUP → ACCESS), on Day 3.
2.AHB: The System Bus
AHB (Advanced High-performance Bus) sits a tier above APB. It was designed as the main system backbone in AMBA 2 era SoCs — connecting the CPU, on-chip memory, and DMA controllers with enough bandwidth for real system traffic, while still being far simpler than AXI.
- Typical devices: On-chip SRAM, simpler memory controllers, DMA engines, and — via bridges — the APB domain.
- Transfer style: Pipelined address and data phases, with burst support (INCR, WRAP).
- Bus topology: A single shared address/data bus with multiplexor-based arbitration between multiple masters — only one transaction is "in flight" on the bus at a time, even though phases can overlap.
- Where it's still used: Smaller microcontroller-class SoCs, and as a mid-tier bridge domain in larger chips between AXI and APB.
Full signal-level AHB — including HREADY, HRESP, and burst types — is Day 4.
3.AXI: The High-Performance Interface
AXI (Advanced eXtensible Interface) is what most modern high-performance SoC interconnects are built on. It was introduced specifically to remove AHB's single-shared-bus bottleneck by splitting a transaction into five independent channels:
- Write Address (AW)
- Write Data (W)
- Write Response (B)
- Read Address (AR)
- Read Data (R)
Because these channels are independent, AXI supports multiple outstanding transactions, out-of-order completion (via transaction IDs), and much higher achievable bandwidth than AHB — at the cost of more verification complexity, which is exactly why AXI dominates verification interview questions.
We spend three full days on AXI: the architecture and handshake fundamentals on Day 5, the AXI4 / AXI4-Lite / AXI-Stream comparison on Day 6, and burst/address calculation on Day 7.
4.ACE: Adding Cache Coherency
ACE (AXI Coherency Extensions) extends AXI4 with the additional signaling needed for hardware cache coherency across multiple CPU clusters. In a multi-core system, each core may cache the same memory location — ACE defines the snoop channels and coherency states (based on the MOESI-style model) that let those caches stay consistent without software intervention.
ACE is beyond this series' beginner-to-intermediate scope, but it's worth knowing conceptually: it's the reason a write from Core A can be correctly "seen" by Core B's cache without an explicit flush, and it's the direct ancestor of CHI, AMBA 5's coherency protocol for even larger multi-core systems.
5.Side-by-Side Comparison
| Aspect | APB | AHB | AXI4 |
|---|---|---|---|
| Channels | Single, shared | Single, shared (pipelined) | 5 independent channels |
| Outstanding transactions | 1 (no pipelining) | Limited (bus-level pipelining only) | Multiple, ID-tagged |
| Burst support | No | Yes (fixed set of burst types) | Yes (INCR, WRAP, FIXED) |
| Typical use | Low-speed peripherals | Mid-tier system bus | High-performance CPU/GPU/memory interconnect |
| Verification complexity | Low | Medium | High |
6.Choosing the Right Protocol for a Block
A useful rule of thumb when reading — or designing — an SoC block diagram: match the protocol to the block's actual bandwidth and latency requirements, not the other way around.
- Does the block move large bursts of data at high frequency, and can it tolerate out-of-order completion? → AXI
- Does it need moderate bandwidth with simple, in-order pipelined access? → AHB
- Is it a low-speed control/status interface where simplicity and low power matter more than throughput? → APB
- Does it need to maintain cache coherency with other CPU clusters? → ACE (or CHI, for larger systems)
Recap: What We Covered Today
- APB is the simple, non-pipelined protocol for low-speed peripherals.
- AHB is a pipelined, burst-capable system bus, but still uses a single shared address/data bus.
- AXI splits transactions into 5 independent channels, enabling multiple outstanding, out-of-order transactions and much higher throughput.
- ACE extends AXI4 with cache-coherency signaling for multi-core coherent systems.
- Real SoCs combine all of these, matched to each block's actual performance needs.
APB Protocol Explained with Example
Tomorrow we go fully signal-level on APB: architecture, every signal, the IDLE/SETUP/ACCESS state machine, and a complete read and write transaction walkthrough.
Comments
Post a Comment