Skip to main content

Priority arbitration

Short answer

Priority arbitration uses a central arbiter with per-device request and grant lines. The arbiter grants the bus to the highest-priority requesting device. After the transfer, the device releases the bus; the arbiter serves the next pending request. Priority can be fixed (simple, may starve) or rotating (fairness).

What is arbitration? Explain priority arbitration with the help of a block diagram and steps (along with its types).

Arbitration is the method of deciding which one of several peripherals (or processors) requesting the system bus at the same time gets control of it. It is needed because only one master can drive the bus at a time.

Priority arbitration

A single priority arbiter hardware unit is connected to the bus masters. Each peripheral has its own request line (Req) to the arbiter and its own grant line (Ack) back from the arbiter. The arbiter decides according to a priority order.

        +---------------------+
 Req1 ->|                     |-> Ack1
 Req2 ->|   Priority arbiter  |-> Ack2
 Req3 ->|                     |-> Ack3
 ...    |                     |
        +----------+----------+
              Req  |  Ack
                   v
              Processor / bus

Steps

  1. A peripheral needing the bus asserts its Req line to the arbiter.
  2. The arbiter checks all active requests and chooses the one with the highest priority.
  3. The arbiter asserts the Ack line of the chosen peripheral (and a bus request to the processor if the CPU owns the bus).
  4. The peripheral uses the bus for its transfer, then drops Req.
  5. The arbiter removes Ack, and selects the next highest-priority pending request.

Types of priority

  • Fixed priority: each device has a permanent rank, e.g. Req1 > Req2 > Req3. Simple, but low-priority devices may starve.
  • Rotating priority (round robin): priority changes after each grant, e.g. the device just served becomes lowest. Fair to all devices.
  • Related method: daisy-chain arbitration, where priority is decided by position along a grant chain.

Advantages: fast, fair if rotating, and the priority can be programmed. Disadvantages: one request/grant pair per device (more wires) and a more complex arbiter.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Embedded System chapter 5 questions →