
8-8
PowerPC Microprocessor Family: The Bus Interface for 32-Bit microprocessors
8.8.1.5 Write-Through Reservation-Canceling Snoops
The following operations cancel a reservation held on a semaphore that is write-through
cacheable as they involve transfer of ownership of the address to some other processor:
RWITM—another processor gains ownership before completing a store.
RWITM atomic—another processor gains ownership before completing an
stwcx.
.
Write and flush—another processor stores into a shared block.
Because an address can be treated as both write-through and write-back by different
processors, both of the previous sets of operations should be snooped for clearing
reservations.
8.8.1.6 Noncanceling Bus Operations
Because the following bus operations do not transfer ownership, they do not cancel the
reservation to another processor regardless of the effect they may have on the state of the
data in the cache:
Clean block—another processor executing
dcbst
Flush block—another processor executing
dcbf
These operations can be viewed as transferring ownership back to main memory. They are
often followed by an attempt to gain ownership, but these operations in themselves do not
transfer ownership to another processor or cancel the reservation:
8.8.2 Filtering Options for Reservations
An L2 cache must also participate in bus operations to ensure correct operation of
reservations. There is a range of options for filtering reservations. The following sections
describe two much different approaches and the hardware required for each. This section
assumes that bus operations are passed on to support reservations; clearly an operation may
be passed either for supporting reservations, coherency, or both.
8.8.2.1 Minimal Reservation Support
The simplest approach to reservation filtering relies only on an indication that a reservation
exists; for example assertion of the RSRV signal. In this case, when no reservation is
indicated by the processor (RSRV negated) no reservation-influencing operation (or read-
influenced operation, for example, read/read atomic operations that might need to have
SYS_SHD asserted) need to be passed on to the processor. When a reservation is held by
the processor (RSRV asserted) all reservation-influencing operations are passed on to the
processor. All reservation-influenced operations are responded to with
SYS_SHD asserted.