6. Arbitration
139
PowerSpan II User Manual
80A1010_MA001_09
Integrated Device Technology
www.idt.com
6.2.1.2
Requesting the PCI Bus
When the bus is idle a master requesting the bus has 16 clocks from the detection of Px_GNT# asserted
to drive Px_FRAME# asserted. If the 16 clocks is exceeded, the arbiter assumes the master is unable to
drive the bus and re-arbitrates the bus to another requesting master. PCI masters unable to assert
Px_FRAME# within 16 clocks of detecting Px_GNT# asserted lose their turn to access the PCI bus.
Functioning and Non-functioning PCI Masters
A master that does not respond to the Px_GNT# signal in 16 clocks is considered a non-functioning
master by the PowerSpan II PCI
x
Arbiter when the Status enable (STATUS_EN) bit is set to 1 in the
“PCI-1 Bus Arbiter Control Register” on page 284
. The STATUS_EN bit enables an internal monitor
in the PowerSpan II PCI
x
Arbiter that checks that no PCI Master waits longer than 16 PCI clock cycles
before starting a transaction.
When a master takes longer than 16 clocks before starting a transaction, the STATUS bit is set to 1 in
the
“PCI-1 Bus Arbiter Control Register” on page 284
. When the STATUS bit is set to 1 by the
PowerSpan II PCI
x
arbiter, the PowerSpan II arbiter does not include the non-functioning PCI Master
in its arbitration algorithm. When the bit is set to 0, the operating status of the PCI Master is considered
by the arbiter to be functioning and the PCI Master is included in the arbitration algorithm used by
PowerSpan II.
When PowerSpan II is reset, all masters are considered functioning
—
the STATUS bit is set to 0.
Refer to
“Bus Parking on a Non-functioning Master” on page 141
for more information on bus parking
on a master that is non-functioning.
6.2.1.3
PCI Master Driving the PCI Bus
A PCI master accessing the PCI bus has extended assertion of Px_GNT# by the arbiter if no other
masters are attempting to access the bus. The arbiter keeps Px_GNT# asserted for the PCI master
actively driving the bus. This enables the PCI master to extend its PCI access beyond the Latency
Timer.
The Px_GNT# to the driving PCI master remains asserted for the duration of the transaction, regardless
of the state of the master’s Px_REQ# signal. The arbiter does not try to park the bus on another master
while the present master is actively driving the bus with Px_REQ# negated.
The arbiter negates all Px_GNT# lines for all masters except the PCI master accessing the PCI bus if
another PCI master asserts Px_REQ# to gain the bus. Px_GNT# is negated for the duration of the
active access. The PowerSpan II arbiter updates the arbitration when it detects Px_FRAME# negated
and Px_IRDY# asserted — which occurs in the last data phase of the transaction. The arbitration
update is designed to minimize the latency to higher priority PCI masters which may have asserted
their Px_REQ# while the present transaction was active.
The arbitration algorithm is illustrated in
.
The PCI bus is idle when both Px_FRAME# and Px_IRDY# are negated.