69rlq62d-f714peg4 * Memec (Headquar
ter
s) - Unique
Tec
h,
Insight,
Impact
MAR
VELL CONFIDENTIAL,
UNDER ND
A# 12101050
69rlq62d-f714peg4 * Memec (Headquar
ter
s) - Unique
Tec
h,
Insight,
Impact
MAR
VELL CONFIDENTIAL,
UNDER ND
A# 12101050
69r
lq62d-f714peg4 * Memec (Headquar
ters) - Unique
T
ech, Insight, Impact * UNDER ND
A# 12101050
MAR
VELL CONFIDENTIAL - UNA
UTHORIZED DISTRIB
UTION OR USE STRICTL
Y PR
OHIBITED
System Bus Arbiters
Copyright © 12/13/06 Marvell
CONFIDENTIAL
Doc. No. MV-TBD-00 Rev. A
December 13, 2006
Document Classification: Proprietary Information
Page 443
Not approved by Document Control. For review only.
Note:
Unlike the Marvell PXA27x processor family, there is no need to force the core to have high
performance relative to the other devices. The main core path to memory is now via the switch,
and the core accesses on the system buses are mainly software-configuration commands.
16.4.2
Bus Parking
Parking is designed to reduce the latency of a transaction by speculatively granting the bus to a client in
anticipation of a request from that client. When the bus is not parked, all clients must request (and be granted) the
bus before all transactions. Thus all clients have an equal latency for transactions (assuming equal priority).
When the bus is parked on a client, then the parked client does not have to request the bus before initiating the
transaction, if the bus is idle. This allows for shorter latency for the parked client to initiate transactions when the
bus is idle. However, all other clients incur a two to three core cycle latency penalty when requesting an access
on an idle bus.
The bus is parked with a particular client by setting the park bit corresponding to that client
(ARB_CNTRL_1[30:23] for System Bus #1 and ARB_CNTRL_2[31, 29:26] for System Bus #2). Once the
register is set, the bus is granted to that client if no other client asks for the bus.
An exception to this rule occurs when overriding circumstances exist. For instance, if the LOCK_FLAG is set
and the DMA is designated as the park client (by setting ARB_CNTRL_1[DMA_PARK]) and a SWAP operation
is in progress from the core via the switch, then the park directive is overridden. Other conditions in the system
(such as sleep and retries) may also prevent park from taking effect. In all such conditions, the bus is not parked
with any client.
If no park bits are set, the bus is not given to any client. If more than one park bit is set, the priority is from bit 31
downwards.
Most peripherals have a single connection to the bus, as they only request data from other peripherals or memory.
For example, the LCD controller only requests data, it never writes data to memory. Thus, it only acts as a master
on the bus. However, the DMA controller, USB 2.0 controller and Memory Switch controllers each have two
connections to the buses to which they connect. This is because these peripherals both read and write data
to/from memory and therefore require both a master and slave connection to the bus. The bus can be parked with
either the master or slave controllers.
Note:
Parking the bus with either of the Switch slave controllers is not recommended.
16.4.3
Bus Locking
The processor internal bus incorporates a lock functionality. This feature typically is used to perform an atomic
operation from the core. The arbiter programming model provides for flexibility in allowing other clients to
access the bus while such an operation is in progress.
When the LOCK_FLAG is set, all bus masters except the switch interface are prevented from making new
requests for the bus for the duration of the lock sequence (which could be many transactions long). If
ARB_CNTRL_X[LOCK_FLAG] is clear, all bus masters can access the bus, subject to normal arbitration rules.