The PowerPC Core
MOTOROLA
MPC801 USER’S MANUAL
6-29
6
6.5.7 Little-Endian Mode Support
The load/store unit implements little-endian mode in which the modified address is issued
to the data cache. When an individual scalar unaligned transfer or the execution of a
multiple/string instruction occurs, an alignment exception is generated.
6.5.8 Atomic Update Primitives
The
lwarx
and
stwcx
instructions are atomic update primitives. Storage reservation
accesses made by the same processor are implemented by the load/store unit. The external
bus interface module implements storage reservation as it is related to accesses made by
external bus masters. Accesses made by other internal masters to internal memories
implements storage reservation as it relates to special internal bus snoop logic. This logic is
implemented in the data cache.
When a
lwarx
instruction is executed the load/store unit issues a cycle to the data cache
with a special attribute. In the case of an external memory access, this attribute causes the
external bus interface module to set a storage reservation on the cycle address. The
external bus interface module is then responsible for snooping the external bus or getting
an indication from external snoop logic if the storage reservation is broken by some other
processor accessing the same location. When an
stwcx
instruction to external memory is
executed, the external bus interface module checks to see if a reservation was lost. If loss
of reservation has occurred, the cycle is blocked from going to the external bus and the
external bus interface module notifies the load/store unit of a
stwcx
failure.
The MPC801 storage reservation supplies hooks for the support of storage reservation
implementation in a hierarchical bus structure. Refer to
Section 13.4.9 Storage
Reservation Protocol
for a full description of the storage reservation mechanism. In case
of storage reservation on internal memory, a
lwarx
indication causes the on-chip snoop
logic to latch the address. This logic notifies the load/store unit in the case of an internal
master store access, then the reservation is reset. If a new
lwarx
instruction address phase
is successfully executed it replaces any previous storage reservation address at the
appropriate snoop logic. However, when an
stwcx
instruction is executed, the storage
reservation is canceled, unless an alignment interrupt condition is detected.
6.5.9 Instruction Timing
The following table summarizes the different load/store instructions timing for zero wait state
memory references on a parked bus. With external memory accesses, pipelined external
accesses are assumed.