AMBA AXI · Module 8
Why Outstanding Transactions Exist
How AXI's outstanding transactions hide memory latency and lift throughput — the latency-bound problem, how independent channels and IDs let a manager keep many transactions in flight, and the Little's-law relationship between depth, latency, and bandwidth.
Module 8 turns from what a transaction is to how many can be in flight at once — and why that's the single most important lever for AXI performance. An outstanding transaction is one that's been issued but hasn't completed yet. AXI lets a manager have many outstanding at the same time: it can fire off transaction after transaction without waiting for earlier responses. This chapter explains why that capability exists — the latency-bound problem it solves — how AXI's structure enables it, and the simple law (throughput = outstanding ÷ latency) that tells you how deep you need to go to saturate a bus. Everything else in Module 8 (IDs, ordering, dependencies) exists to make outstanding transactions work correctly; this chapter is about why they're needed.
1. What "Outstanding" Means
A transaction is outstanding from the moment its address is accepted until its final response completes it (the B response for a write, the last R beat for a read). A manager that supports multiple outstanding transactions can issue transaction 2's address while transaction 1 is still waiting for its data/response — and transaction 3's, and so on. The number it can have in flight at once is its outstanding depth (its issuing capability; a subordinate has a matching acceptance capability).
The opposite — a manager that issues one transaction and waits for it to fully complete before issuing the next — is said to have an outstanding depth of 1. As we'll see, that's a performance disaster on any real memory system.
2. The Problem — Latency Would Bind Throughput
Memory and slaves have latency: many cycles pass between accepting an address and returning the first data (DRAM, a multi-hop interconnect, a clock-crossing bridge all add cycles). Suppose that round-trip latency is L cycles. With an outstanding depth of 1, the manager issues a transaction, waits L cycles for it to complete, then issues the next — so it completes one transaction every L cycles, no matter how much bandwidth the data bus has. The bus sits idle during the wait. Throughput is latency-bound, often a small fraction of what the wires could carry.
With multiple outstanding transactions, the manager fills those idle cycles: while transaction 1 is in flight, it issues 2, 3, 4, …. The responses then stream back one after another, and the bus stays busy. Throughput becomes bandwidth-bound — limited by how fast data can move, not by the latency of any single transaction. This is exactly pipelining applied to bus transactions: overlap the latency of many operations instead of paying it serially.
outstanding-pipeline — addresses pipelined ahead of returning data
8 cycles3. What AXI Provides to Make It Possible
Outstanding transactions aren't free — the protocol must let a manager issue ahead and still sort out the responses. Three AXI features make it work:
- Independent channels. The address channels (
AW/AR) handshake separately from the data/response channels. An address is accepted on its own, without waiting for that transaction's data — so the manager can keep issuing addresses while data is still in flight (the foundation laid in the five-channel model). - Transaction IDs (
AxID). Each transaction carries an ID, and responses carry the matching ID (BID/RID). This lets the manager (and interconnect) match a returning response to its request even when many are outstanding — and even when responses come back in a different order across IDs (Chapter 8.2). - Decoupled handshakes. Because every channel uses independent
VALID/READY, the address phase of a later transaction can complete before the data phase of an earlier one — the protocol never forces a transaction to finish before the next can start.
So outstanding capability is an emergent property of AXI's structure: separate channels let you issue ahead, IDs let you reconcile the results, and the handshakes keep it all decoupled. (Ordering rules then govern what's guaranteed about completion order — Chapter 8.3.)
4. How Deep — Little's Law
How many outstanding transactions do you need? The relationship is Little's law:
Throughput = Outstanding ÷ Latency, so to reach a target throughput, Outstanding ≥ Throughput × Latency.
In words: the number of transactions you must keep in flight to saturate the data path equals the bandwidth-latency product. If a memory round-trip is 20 cycles and you want to complete one transaction per cycle, you need ~20 outstanding transactions to cover the latency; with only 4 in flight you'd complete at most 4 every 20 cycles — 20% utilization. Deeper pipelines (more latency) and wider/faster buses (more throughput target) both demand more outstanding depth to stay bandwidth-bound.
This is why outstanding depth is a first-class design parameter: a manager's issuing capability and a slave/interconnect's acceptance capability must be large enough to cover the system's latency, or the bus runs latency-bound no matter how fast the wires are.
5. Common Misconceptions
6. Debugging Insight
7. Verification Insight
8. Interview Questions
9. Summary
Outstanding transactions are AXI's central performance mechanism. A transaction is outstanding from address acceptance until its response completes, and AXI lets a manager hold many in flight at once. The reason is latency: with depth 1 a manager completes one transaction per round-trip latency, leaving a fast bus mostly idle (latency-bound); by issuing many transactions ahead, it fills those cycles so data streams back continuously and throughput approaches the bus bandwidth (bandwidth-bound) — bus pipelining. The capability is enabled by AXI's structure: independent channels (issue address ahead of data), transaction IDs (match responses to requests), and decoupled handshakes (phases independent). And Little's law sizes it: the depth needed to saturate the path is the bandwidth-latency product (Outstanding ≥ Throughput × Latency).
The practical upshot: when a fast bus underperforms, the cause is almost always too few outstanding transactions (at the manager, slave, or interconnect) relative to the latency — and the fix is more concurrency, not a wider bus. Outstanding depth is therefore a first-class design and verification parameter. The rest of Module 8 makes outstanding transactions correct: next, transaction IDs — how AxID tags transactions so their responses can be matched and reordered.
10. What Comes Next
You've got the why; next, the mechanism that keeps concurrency correct:
- 8.2 — Transaction IDs (coming next) — how
AxIDtags transactions so many can be in flight and their responses matched and reordered. - 8.3 — Same-ID Ordering Rules (coming soon) — the guarantee that same-ID transactions complete in order.
Previous: 7.8 — Strobe Behavior in Bursts. Related: 6.3 — AxID for the ID signal, and Independent Channels for the structural basis. For the broader protocol catalog, see the AMBA family overview doc.