Skip to content

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.

Manager sends addresses A1, A2, A3 in succession; subordinate returns D1, D2, D3 later, with the requests overlapping the responses.ManagerSubordinateA1 — addressissuedA2 — addressissuedA3 — addressissuedD1 — data / responseD2 — data / responseD3 — data / response
Figure 1 — outstanding transactions. A manager issues addresses A1, A2, A3 back-to-back (the address channel accepts them without waiting), and the responses/data D1, D2, D3 return later, overlapped. Multiple transactions are in flight at once — that's the outstanding depth. The address phase of later transactions overlaps the latency of earlier ones.

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 cycles
ARVALID issues three addresses in the first cycles; RVALID returns data for those transactions in later cycles, overlapping so the data channel stays busy.3 addresses issueddata streams back, bus busyissue ahead (no waiting)issue ahead (no waitin…latency hidden by pipelininglatency hidden by pipe…aclkarvalidaraddrA1A2A3A3A3A3A3A3rvalidrdata00D1D1D2D2D3D3t0t1t2t3t4t5t6t7
Figure 2 — outstanding-pipeline: addresses issued back-to-back (top) while read data for earlier transactions returns (bottom), overlapped. With depth-1 the data channel would be idle during each transaction's latency; with multiple outstanding, the address phases of later transactions fill that time and the data channel stays busy — latency hidden, throughput approaching bandwidth.

3. 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.)

Independent channels enable issuing ahead, AxID enables response matching, decoupled handshakes keep phases independent — together enabling outstanding transactions.Independent channelsissue address ahead ofdataAxID tagsmatch responses torequestsDecoupled handshakesphases independent12
Figure 3 — what enables outstanding transactions. Independent address vs data/response channels let the manager issue addresses ahead; AxID tags let returning responses (BID/RID) be matched to their requests; decoupled VALID/READY handshakes keep phases independent. Together they let many transactions be in flight and still be sorted out correctly.

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.

Outstanding depth must be at least throughput times latency; too few is latency-bound, enough is bandwidth-bound.depth lowdepth sufficientNeed:Outstanding ≥Throughput ×LatencyToo few →latency-bound(idle bus)Enough →bandwidth-bound(busy bus)
Figure 4 — Little's law for bus pipelining. The outstanding depth needed to keep the data path busy equals throughput × latency (the bandwidth-latency product). Too few outstanding → latency-bound (idle bus); enough → bandwidth-bound (busy bus). Higher latency or higher target throughput both require greater depth.

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:

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.