Bus Arbitration
Bus Arbitration
The device that is allowed to initiate data transfers on the bus at any given time is called
the bus master. In a computer system there may be more than one bus master such as
processor, DMA controller etc.
They share the system bus. When current master relinquishes control of the bus, another
bus master can acquire the control of the bus.
Bus arbitration is the process by which the next device to become the bus master is
selected and bus mastership is transferred to it. The selection of bus master is usually
done on the priority basis.
There are two approaches to bus arbitration: Centralized and distributed.
1. Centralized Arbitration
In this mechanism there are three bus lines which are Bus busy, Bus request and Bus grant
which are arranged in daisy chaining fashion. This is simple to achieve and only contains
three extra bus lines. This method has the poor fault tolerance and has the hardwired priority.
a. Each devices checks, if bus is not busy then make bus request to the master.
b. Then master see the bus request like high, and then it activates the bus grant.
c. Then bus grant line travel from one device to another, in this time if a device gets a
bus grant, mark the bus busy.
It is simple and cheaper method. All masters make use of the same line for bus request.
In response to the bus request the controller sends a bus grant if the bus is free.
The bus grant signal serially propagates through each master until it encounters the first
one that is requesting access to the bus. This master blocks the propagation of the bus
grant signal, activities the busy line and gains control of the bus.
Therefore any other requesting module will not receive the grant signal and hence
cannot get the bus access.
b) Polling method
In this the controller is used to generate the addresses for the master. Number of address
line required depends on the number of master connected in the system.
For example, if there are 8 masters connected in the system, at least three address lines
are required.
In response to the bus request controller generates a sequence of master address. When
the requesting master recognizes its address, it activated the busy line ad begins to use
the bus.
c) Independent request
This is the fastest mechanism in which also dynamic priority is possible. This is a mechanism
in which we have request and grant lines for each of the devices with master. This
mechanism has 2n lines for the n devices.
In this scheme each master has a separate pair of bus request and bus grant lines and
each pair has a priority assigned to it.
The built in priority decoder within the controller selects the highest priority request
and asserts the corresponding bus grant signal.
2. Distributed Arbitration
In distributed arbitration, all devices participate in the selection of the next bus master.
In this scheme each device on the bus is assigned a4-bit identification number.
The number of devices connected on the bus when one or more devices request for the
control of bus, they assert the start-arbitration signal and place their 4-bit ID numbers
on arbitration lines, ARB0 through ARB3.
These four arbitration lines are all open-collector. Therefore, more than one device can
place their 4-bit ID number to indicate that they need to control of bus. If one device
puts 1 on the bus line and another device puts 0 on the same bus line, the bus line status
will be 0. Device reads the status of all lines through inverters buffers so device reads
bus status 0as logic 1. Scheme the device having highest ID number has highest priority.
When two or more devices place their ID number on bus lines then it is necessary to
identify the highest ID number on bus lines then it is necessary to identify the highest
ID number from the status of bus line. Consider that two devices A and B, having ID
number 1 and 6, respectively are requesting the use of the bus.
Device A puts the bit pattern 0001, and device B puts the bit pattern 0110. With this
combination the status of bus-line will be 1000; however because of inverter buffers
code seen by both devices is 0111.
Each device compares the code formed on the arbitration line to its own ID, starting
from the most significant bit. If it finds the difference at any bit position, it disables its
drives at that bit position and for all lower-order bits.
It does so by placing a 0 at the input of their drive. In our example, device detects a
different on line ARB2 and hence it disables its drives on line ARB2, ARB1 and ARB0.
This causes the code on the arbitration lines to change to 0110. This means that device
B has won the race.
The decentralized arbitration offers high reliability because operation of the bus is not
dependent on any single device.