The process of determining which competing bus master will be allowed access to the bus is called Bus Arbitration.
- Multiple devices may need to use the bus at the same time so must have a way to arbitrate multiple requests. Arbitration allows more than one module to control the bus at one particular time. Arbitration may be centralized or distributed.
i. Single hardware device controls bus access: Bus Controller/Arbiter
ii. It is usually a part of Processor.
i. Each module may claim the bus
ii. Access control logic is on all modules
iii. Modules work together to control bus
Bus arbitration schemes usually try to balance:
i. Bus priority: The highest priority device should be serviced first.
ii. Fairness: Even the lowest priority device should never be completely locked out from the bus.
- With bus arbitration, an I/O module must first gain control of the bus before it can raise the interrupt request line. Only one module can raise the line at a time. When the processor detects the interrupt, it responds on the interrupt acknowledge line. The requesting module then places its vector on the data lines.
- Therefore mentioned techniques serve to identify the requesting I/O module. They also provide a way of assigning priorities when more than one device is requesting interrupt service. With multiple lines, the processor just picks the interrupt line with the highest priority. With software polling, the order in which modules are polled determines their priority. Similarly, the order of modules on a daisy chain determines their priority. Finally, bus arbitration can employ a priority scheme.
Bus arbitration schemes can be divided into four as follows:
Daisy chain arbitration
- Centralized, parallel arbitration
- Distributed arbitration by self-selection
- Distributed arbitration by collision detection
Daisy chain arbitration:
- The daisy chain arbitration scheme is shown in Figure 2. It got its name from the structure for the grant line which chains through each device from the highest priority to the lowest priority. The higher priority device will pass the grant line to the lower priority device only if it does not want it so priority is built into the scheme.
- The advantage of this scheme is that it is simple.
The disadvantages are:
i. It cannot assure fairness. A low priority device may be locked out indefinitely.
ii. Also, the daisy chain grant line will limit the bus speed.
- In the centralized, parallel arbitration scheme, the devices independently request the bus by using multiple request lines as shown in Figure 3.
- A centralized arbiter chooses from among the devices requesting bus access and notifies the selected device that it is now the bus master via one of the grant line.
- Consider an example where A has the highest priority and C the lowest. Figure 3 shows how bus is granted to different bus masters for the example. Since A has the highest priority, Grant A will be asserted even though both requests A and B are asserted.
- Device A will keep Request A asserted until it no longer needs the bus so when Request A goes low, the arbiter will disable Grant A.
- Since Request B remains asserted (Device B has not gotten the bus yet) at this time, the arbiter will then assert Grant B to grant Device B access to the bus.
- Similarly, Device B will not disable Request B until it is done with the bus.