
Chapter 4. Memory Coherency
4-11
4.5.1 PowerPC 603 Processor lwarx/stwcx. Implementation
Due to the 603’s three-state MEI protocol and absence of address-only broadcast transfers,
the
lwarx/stwcx.
instruction pair is different from the 601 and 604. All global reads
snooped by the 603 (except for a RWNITC) invalidate a cache block, and all reads
originating from the 603 are RWITMs (except for reads from cache-inhibited pages).
Therefore, a potential deadlock can occur if RWITMs cancel a reservation as in the 601 and
604. The following operations are required for the 603
lwarx/stwcx.
implementation:
RWITM invalidates the cache, but does not clear the reservation.
Only writes on the bus can clear a reservation.
stwcx.
is treated as a write-through bus operation.
Clearing the reservation on all writes including castouts and snoop pushes (nonglobal)
require snooping for all global and nonglobal address transfers for reservation address
register monitoring; however, a snoop on a nonglobal address transfer does not change any
cache states.
4.5.2 Cache Set Element Signals
The cache set element signals, CSE
n
, are output signals that indicate which set member of
the cache is involved for cache block reads and writes. Note that because of the different
sizes and structures of the caches, the number of signals required to identify a cache set vary
from processor to processor. There are three cache set element signals on the 601 (CSE[0–
2]), one on the 603 (CSE), and two on the 604 (CSE[0–1]).Table 4-2 defines these signals
for a four-way set-associative cache, such as is implemented in the 604. For more
information, see Section 2.4.12, “Cache Set Element (CSEn)—Output.”
4.5.3 Address Retry Sources
Snooping devices use SHD and ARTRY to respond to snoop requests. Because these
signals are wire-ORed among many potential snoopers that can have different snoop
responses, little significance can be attached to the particular combination of the two bits
that appears on the bus.
An assertion of ARTRY, regardless of whether SHD is asserted, indicates either that at least
one snooper had a pipeline collision or a snoop hit to a modified block and that the address
must be retried. Assertion of SHD alone indicates that at least one snooper had a snoop hit
on a shared cache block. The 603 does not implement SHD.
Table 4-2. CSE[0–1] Signals
CSE[0–1]
Cache Set Element
00
Block 0
01
Block 1
10
Block 2
11
Block 3