RTUEE / EC / EEEYr 2024 · Sem 52024

Q4Computer Architecture

Question

4 marks

Q.4. Describe in detail about the bus arbitration techniques in DMA.

Answer

Bus arbitration in DMA resolves conflicts when multiple devices request bus access simultaneously; common techniques are daisy chaining (priority by physical position), polling (software-based sequential checking), and independent request/grant lines (centralized/distributed arbitration).

In a system with Direct Memory Access (DMA), multiple devices may simultaneously request control of the system bus to transfer data directly with memory, bypassing the CPU. Bus arbitration is the process/protocol used to determine which requesting device gains control of the bus at any given time, ensuring orderly, conflict-free access.

Daisy Chaining: all devices needing bus access are connected in series, and a single bus-grant signal from the bus controller propagates sequentially through each device in the chain. A device that needs the bus intercepts the grant signal and does not pass it further; otherwise, it passes the signal to the next device. This is simple to implement (requires only one grant line for all devices) but gives fixed, position-based priority (devices closer to the controller get higher priority), and if a device fails, subsequent devices in the chain can be blocked.

Polling (software poll): the bus controller sequentially polls/queries each device (via an address on a set of poll lines) to check if it is requesting the bus, granting access to the first device found requesting it. Priority is determined by the polling sequence programmed by software, offering flexibility to change priority dynamically, but it is slower since multiple polling cycles may be needed before a request is serviced, especially for lower-priority devices.

Independent Request/Grant lines (parallel/centralized arbitration): each device has its own dedicated bus-request and bus-grant line directly connected to a central bus controller (arbiter), which uses fixed or dynamic priority logic to grant access to the highest-priority requester. This is the fastest method since decisions are made in a single step without sequential propagation, but it requires more hardware (dedicated lines per device), making it more expensive to scale to many devices. A related decentralized variant allows each device to independently examine bus-busy status and arbitrate among themselves using shared priority/arbitration lines, avoiding a single central controller bottleneck.

Back to Paper