Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors
August 2006
Developer’s Manual
Order Number: 306262-004US
687
Expansion Bus Controller—Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network
Processors
12.4.3.1
Internal Arbitration
The request signal is called EX_REQ_N/EX_REQ_GNT_N and the grant signal is called
EX_GNT_N/EX_GNT_REQ_N. The arbitration is a round-robin mechanism that also
supports priority of an external master grant and masking requests of external
masters. The arbiter will perform a round-robin arbitration cycle when the Expansion
bus is idle and not in an active T1-address timing or T5-recovery phase if the Expansion
bus controller has bus ownership. During the arbitration cycle, the arbiter will grant the
highest priority master. If an external master is granted the bus and GrantRemove in
the EXP_MST_CONTROL register is clear, the external master will not lose grant until
that master deasserts request. If the external master keeps its request asserted, it can
transfer several separate data transfers without ever losing the Expansion Bus. After
that master deasserts request, the arbiter performs a round-robin arbitration cycle and
grant the next requesting master. The GrantRemove bit must be static once configured.
External masters can assert and deassert request in any cycle. However, the arbiter will
only assert grant to a new requesting master when the Expansion bus is idle
(EX_SLAVE_CS_N and EX_CS_N deasserted). This will guarantee that a data transfer
will not be interrupted before its complete. The arbiter will always assert grant for at
least two cycles. This allows a master one extra cycle to start a transaction without
risking losing the ownership of the Expansion bus. However a master can only start a
data transfer if its grant is asserted in the previous cycle. Refer to the arbitration timing
diagrams in
“Expansion Bus Arbiter Timing Diagrams” on page 698
for more details.
If GrantRemove is set, an external master may lose grant in any cycle, however that
master still owns the bus until EX_SLAVE_CS_N and EX_CS_N are deasserted. The
external master must start a data transfer within two cycles of acknowledging grant or
risk losing bus ownership. If the master loses grant, the master cannot start a new
transaction.
The arbiter also supports masking of all 4 external requests if ArbMask# in the
EXP_MST_CONTROL register is clear. This bit can be set and cleared at any time. If an
external master is granted the bus while ArbMask# is being cleared, that external
master will not lose grant until it deasserts its request if GrantRemove is clear or until
the Expansion bus is idle if GrantRemove is set. If ArbMask# is clear and once the
IXP45X/IXP46X network processors are granted the Expansion bus, the processors will
not lose the Expansion bus until ArbMask# is set by software. This functionality allows
atomic accesses by the Intel XScale processor and allows higher performance for
critical outbound accesses to the Expansion bus.
After reset, the arbiter will not start arbitration until the ArbMask# is set by software.
When no bus masters are requesting the Expansion bus, the arbiter will park grant on
IXP45X/IXP46X network processors. Park grant means that grant will be awarded to
the IXP45X/IXP46X network processors. When an external master is granted the bus,
the IXP45X/IXP46X network processors will tri-state the following shared Expansion
bus signals: EX_ALE, EX_ADDR, EX_BE_N, EX_CS_N, EX_DATA, EX_PARITY, EX_RD_N,
EX_WR_N.
External board pull-ups are required on EX_CS_N to ensure this signal remains
deasserted so that a spurious transfer does not start due to board noise. Additionally,
the system designer is responsible for ensuring that all the tri-stated signals do not
become indeterminate. If they become indeterminate, excessive power consumption
will occur in the PAD input buffers. When the IXP45X/IXP46X network processors are
granted or parked on the Expansion bus, the processors will drive the shared Expansion
bus signals to a de-asserted or stable state to minimize power consumption. Due to the
arbitration between the IXP45X/IXP46X network processors and external masters, the
Expansion bus will float for a few cycles during the arbitration; however this typically is
not a problem due to the capacitance on the board and the required pull-ups on
EX_CS_N.