Skip to content

AMBA AHB · Module 1

Manager / Subordinate Terminology

The precise vocabulary of an AHB system — manager (master) and subordinate (slave), arbiter, decoder, multiplexor, and default subordinate — and why these are roles on a bus, not fixed block types.

This is the last chapter of the AHB Foundations module, and it does a small but essential job: it nails down the vocabulary before the signal-level modules begin. Every later chapter will say "the manager drives this" or "the subordinate responds with that," and if those words are fuzzy, the mechanics built on them will be too. We will define each participant in an AHB system precisely, reconcile the classic master/slave names with the modern manager/subordinate names you will meet in current specifications and RTL, and — most importantly — show that these are roles on a bus, not permanent labels on blocks. It is a short chapter by design; getting the words exactly right is its entire purpose.

1. What Is It?

An AHB system is a small cast of participants, each with one job. Naming them precisely is the whole chapter:

  • A manager (the classic term is master) is a block that initiates transfers — it is the one that wants to read or write somewhere. A processor and a DMA engine are the usual managers.
  • A subordinate (the classic term is slave) is a block that responds to transfers — it is the one being addressed. Memories, peripherals, and bridges act as subordinates.
  • The arbiter decides which manager owns the shared bus when more than one wants it.
  • The decoder examines the address of the current transfer and selects which subordinate should respond.
  • The multiplexor routes the selected subordinate's read data back to the managers.
  • The default subordinate is a safety net that responds to accesses aimed at addresses no real subordinate owns, so an unmapped access cannot hang the bus.
A diagram showing two managers, an arbiter, a decoder, a multiplexor, two subordinates, and a default subordinate, with arrows showing managers feeding the arbiter and the decoder selecting subordinates.
Figure 1 — the participants of an AHB system. Managers initiate transfers; subordinates respond; the arbiter grants the bus to one manager; the decoder selects the addressed subordinate; the multiplexor routes read data back; and the default subordinate safely absorbs accesses to unmapped addresses.

That is the full vocabulary. Most of it you already met informally in the mental-model chapter; here we make it exact and add the two participants that complete the picture — the multiplexor and the default subordinate. By the end you should be able to point at any block in an AHB diagram and name its role without hesitation, in either the classic or the modern vocabulary.

2. Why Does It Exist?

Why does AHB need this specific cast, and why did the terminology change? Two separate questions, both worth answering.

The cast exists because a shared bus has irreducible jobs. Go back to the mental model: one shared bus, masters taking turns, accesses routed to slaves by address. That model requires certain functions to exist. Something must initiate (the manager). Something must respond (the subordinate). Because the bus is shared, something must pick the initiator (the arbiter). Because one bus reaches many destinations, something must pick the responder by address (the decoder) and route the response back (the multiplexor). And because a manager can present any address — including a wrong one — something must safely answer an address no subordinate owns (the default subordinate), or that access would wait forever and hang the bus. Each participant is the minimal answer to one unavoidable need of a shared, addressed bus. None is decorative.

The terminology changed for clarity and inclusivity. Newer AMBA specifications moved from master/slave to manager/subordinate (and in the AXI world you will also see requester/completer). The roles and behaviour are identical — a manager does exactly what a master did. The industry simply adopted less loaded words. The practical consequence for you is not philosophical: it is that real documents and real RTL use both vocabularies, sometimes in the same project, and you must read either fluently.

A two-row mapping with arrows: Master maps to Manager, Slave maps to Subordinate, with a note that only the words changed.
Figure 2 — the terminology mapping. Master becomes manager; slave becomes subordinate. The roles and behaviour are unchanged; only the words differ across specification versions. Because both appear in real documents and code, you must recognize each on sight.

So the chapter exists for a doubly practical reason: to give you the exact cast the shared-bus model demands, and to make sure neither vocabulary trips you up when you read a real spec or a colleague's code.

3. Mental Model

The model to hold is role, not block. A manager is not a kind of block; it is a role a block plays on a particular bus. The same is true of subordinate. The single image that locks this in is a bridge.

A processor (manager) feeding a bridge, which is labelled subordinate on its left interface and manager on its right interface, feeding a peripheral (subordinate).
Figure 3 — manager and subordinate are roles on a bus, not fixed block types. A bridge is a subordinate on its upstream side (it accepts transfers from a manager) and a manager on its downstream side (it initiates transfers to subordinates). The same block plays opposite roles on its two interfaces.

Trace the bridge. On its upstream side, a processor initiates a transfer to it — so on that side the bridge is a subordinate: it accepts and responds. But the bridge's job is to pass that transfer onward, so on its downstream side it turns around and initiates a transfer to a peripheral — so on that side the bridge is a manager. One block, two roles, decided entirely by which interface you are looking at. The question to ask is never "is this block a manager or a subordinate?" but "on this bus, which role does it play?"

This role-not-block model pays off everywhere:

  • A memory controller is a subordinate to the processors that read it, but it may be a manager toward an external memory interface.
  • A DMA engine is a manager when it moves data, but it is a subordinate when the processor configures its registers.
  • The default subordinate is a pure role with no real device behind it — it exists only to occupy the "responder" slot for unmapped addresses so the bus never waits forever.

Hold "role, not block" and the cast stops being a list of device types and becomes a set of positions that blocks step into depending on the bus and the moment. That is the accurate mental model, and it is the one that survives contact with real chips.

4. Real Hardware Perspective

In real RTL and real chips, the cast shows up as interfaces and small logic blocks, and the role-not-block idea is concretely visible in the wiring.

A manager interface is the set of signals by which a block drives out a transfer; a subordinate interface is the set by which a block accepts one and responds. A block that is "a manager" simply has a manager interface wired onto the bus; a block that is both manager and subordinate — like a bridge or a DMA engine — literally has both interface sets, on different sides. You can read a block's roles straight off its port list: a manager interface here, a subordinate interface there. This is why "role, not block" is not abstract hand-waving — it is visible as which interface ports a block exposes.

The arbiter, decoder, and multiplexor are small dedicated logic blocks in the interconnect, not devices in their own right. The arbiter watches the managers' request signals and asserts a grant; the decoder is combinational logic on the address selecting one subordinate; the multiplexor steers the chosen subordinate's read data back toward the managers. The default subordinate is typically a tiny block (or a mode of the decoder) that claims any address region not assigned to a real subordinate and returns a defined error or harmless response, so the protocol completes instead of hanging.

The reason all of this stays cheap — the recurring AHB theme — is that each piece is minimal: an arbiter for a few managers, a decoder for a handful of subordinates, a mux, and a trivial default responder. The vocabulary names six participants, but in silicon they are a small amount of logic wrapped around the shared wires. Knowing the names lets you point at the right few gates when something misbehaves.

5. System Architecture Perspective

At the system level, the vocabulary is the language in which the address map and the interconnect are specified — and a precise vocabulary is what makes a chip's communication intelligible.

An SoC's address map is, in these terms, the assignment of address ranges to subordinates: this range is the memory subordinate, that range is the peripheral subordinate, this other range is the bridge (itself a subordinate here, a manager beyond). The decoder implements the address map directly — it is the block that turns an address into a subordinate selection. So when an architect lays out the address map, they are defining the decoder's job and naming the subordinates. The vocabulary and the architecture are the same thing seen from two angles.

The manager set, meanwhile, defines the contention picture from the previous chapters: each manager is a potential competitor for the shared bus, so the number and activity of managers is exactly what the arbiter must referee and what determines whether the shared bus suffices or an interconnect is needed. Counting managers and mapping subordinates is the first step of sizing a subsystem — which ties this terminology chapter back to the shared-bus-versus-interconnect decision.

The role-not-block view matters here too: because a bridge is a subordinate on one bus and a manager on the next, the chip's communication forms a hierarchy of buses, each with its own managers and subordinates, stitched together by blocks that change role across the boundary. Reading that hierarchy correctly — knowing that the bridge you see as a subordinate from above is a manager to everything below — is essential to understanding how a real multi-bus SoC actually moves data. The vocabulary is what makes that hierarchy describable.

6. Engineering Tradeoffs

A terminology chapter has fewer design tradeoffs than a mechanism chapter, but there are real ones around how the cast is provisioned.

  • How many managers on one bus? Each manager added is another competitor for the shared bus and another input to the arbiter. Few managers keep the arbiter trivial and contention low; many managers grow arbitration complexity and push toward the interconnect topologies of the previous chapter. The tradeoff is capability versus contention, and it is decided by counting managers against the bus's tolerance.
  • How fine-grained the subordinate decode? A coarse address map with few large subordinate regions keeps the decoder tiny but lumps unrelated things together; a fine-grained map with many subordinates gives cleaner separation and protection at the cost of a larger decoder. The tradeoff is decode simplicity versus address-map granularity.
  • Whether to include a default subordinate. Strictly, a perfectly correct system with a complete address map might not need one — but omitting it means any stray access hangs the bus. Including it costs a trivial amount of logic and converts a class of fatal hangs into clean errors. The tradeoff is a tiny area cost versus enormous debuggability, and the sensible choice is almost always to include it.
  • Classic versus modern terminology in a project. A team can standardize on master/slave or manager/subordinate, but mixed-vintage IP and documents mean both will appear. The tradeoff is consistency versus reality; the pragmatic answer is to read both fluently and pick one for your own new work, while expecting to meet the other.

The common thread: provisioning the cast — how many managers, how finely you decode to subordinates, whether you add the default — is itself a set of small architectural decisions, and the vocabulary is what lets you state and reason about them precisely.

7. Industry Example

Make the vocabulary concrete by naming every participant in one real subsystem, including the role changes.

A microcontroller has a processor, a DMA engine, on-chip SRAM, a flash controller, and a bank of peripherals behind an AHB-to-APB bridge. Name the cast:

  • The processor is a manager on the AHB — it initiates instruction fetches and data accesses.
  • The DMA engine is also a manager on the AHB when it moves data — but it is a subordinate when the processor writes its configuration registers. Same block, two roles, decided by which transfer is happening.
  • The SRAM and the flash controller are subordinates on the AHB — they respond when addressed.
  • The bridge is a subordinate on the AHB (it accepts transfers aimed at the peripheral address range) and a manager on the APB beyond it (it re-issues those transfers to the peripherals). It is the textbook role-changing block.
  • The arbiter grants the AHB to either the processor or the DMA when both want it; the decoder routes each access to SRAM, flash, or the bridge by address; the multiplexor returns the addressed subordinate's read data; and the default subordinate stands ready to absorb any access to an address the map does not cover.

Now picture a firmware bug where the processor dereferences a wild pointer into an unmapped address. The decoder finds no real subordinate, the default subordinate responds with a defined error instead of leaving the bus hanging, and the error cleanly flags the bad address. Every behaviour in this subsystem — normal and faulty — is describable in the six-word vocabulary, and the role changes (DMA as manager and subordinate, bridge as subordinate and manager) are exactly the cases where imprecise terminology would have left you confused.

8. Common Mistakes

9. Interview Insight

Terminology questions sound trivial but are real filters — interviewers use them to check that your foundations are exact before they ask anything harder.

A summary card defining manager, subordinate, arbiter plus decoder, with a senior note that these are roles on a bus and a default subordinate prevents bus hangs on unmapped addresses.
Figure 4 — the vocabulary in one card: a manager (master) initiates, a subordinate (slave) responds, the arbiter grants the bus to one manager, the decoder selects the subordinate, and the default subordinate keeps an unmapped access from hanging the bus. The senior point: manager and subordinate are roles, so one block — like a bridge — can be both.

The answer that signals solid foundations defines each role crisply and volunteers the role-not-block insight unprompted: "A manager, formerly called a master, initiates transfers; a subordinate, formerly a slave, responds. The arbiter grants the shared bus to one manager; the decoder selects the addressed subordinate; a multiplexor routes data back; and a default subordinate keeps an access to an unmapped address from hanging the bus. Importantly these are roles — a bridge is a subordinate to the bus above it and a manager to the bus below it." Adding the modern/classic mapping shows you can read any spec.

10. Practice Challenge

Use precise terms throughout — that is the skill.

  1. Name the cast. List the six AHB participants and give each a one-sentence job, in both classic and modern vocabulary where it differs.
  2. Map the terms. Without looking, write the classic-to-modern mapping for the two role names, and note one other vocabulary (used in the AXI world) for the same idea.
  3. Trace a bridge. For an AHB-to-APB bridge, state its role on each side and explain, in role terms, why it is both.
  4. Spot the dual role. Explain when a DMA engine acts as a manager and when it acts as a subordinate, and what determines which.
  5. Justify the default subordinate. Describe, step by step, what happens to a wild-pointer access with and without a default subordinate, and why its presence aids debugging.

11. Key Takeaways

  • The AHB cast is six participants: manager (master) and subordinate (slave), plus arbiter, decoder, multiplexor, and default subordinate — each the minimal answer to one need of a shared, addressed bus.
  • Manager = master, subordinate = slave. The terminology modernized across spec versions; the roles and behaviour did not. Read both fluently.
  • They are roles, not block types. A bridge is a subordinate on one bus and a manager on the next; a DMA engine is a manager when moving data and a subordinate when configured. Ask "which role on which bus?"
  • Arbiter and decoder are distinct: the arbiter picks the manager, the decoder picks the subordinate by address. The address map is the decoder's specification of subordinates.
  • The default subordinate turns silent hangs into clean errors on unmapped accesses — cheap to include, painful to omit.
  • Precise vocabulary is the coordinate system for the signal-level mechanics to come; getting the words exact now makes the next module readable.

12. What Comes Next

This completes the AHB Foundations module. You now have the full conceptual groundwork — why AHB exists, where it fits in the AMBA family, how it compares, where it is used, the mental model it runs on, the topology spectrum it lives in, and the precise vocabulary for its participants. With all of that in place, the next module begins the mechanics: the actual components, the address and data phases at signal level, pipelining, bursts, and the AHB-Lite subset.

  • Module 2 — AHB Architecture (coming soon) — masters, slaves, decoder, and arbiter as real components; the address/control and data phases; pipelined operation; single versus burst transfers; and AHB-Lite.

To revisit the foundations this vocabulary completes, see The AHB Mental Model and Shared Bus vs Interconnect Thinking, along with Why AHB Exists, The AMBA Family Overview, AHB vs APB vs AXI, and Where AHB Is Used in SoCs. For the broader protocol map, see the AMBA family overview.