
MOTOROLA
Chapter 3. Instruction and Data Cache Operation
3-21
3.6.8 Operations Causing ARTRY
Assertion
The following scenarios cause the 603e to assert the ARTRY signal:
Snoop hits to a block in the M state (flush or clean)
This case is a normal snoop hit and will result in ARTRY being asserted if the
snooped transaction was a “flush” or “clean” request. If the snooped transaction was
a “kill” request, ARTRY will not be asserted.
Snoop attempt during the last TA of a cache line fill
In no-DRTRY mode, during the cycle that the last TA is asserted to the 603e on a
cache line fill, the tag is being written to its new state by the 603e and is not
accessible. This will result in a collision being signaled by asserting ARTRY. With
DRTRY enabled, the cache tags are inaccessible to a snoop operation one cycle after
the last TA.
Snoop hit after the first TA of a burst load operation
After the first TA of a burst load operation, the data tags are committed to being
written; snoop operations cannot be serviced until the load completes, thereby
causing the assertion of ARTRY.
Snoop hits to line in the cast-out buffer
The 603e's cast-out buffer is kept coherent with main memory, and snoop operations
that hit in the cast-out buffer will cause the assertion of ARTRY.
Snoop attempt during cycles that
dcbz
instruction or load or store operation is
updating the tag
During the execution of a
dcbz
instruction or during a load or store operation that
requires a cache line cast-out, the cache tags will be inaccessible during the first and
last cycle of the operation.
Snoop attempt during the cycle that a
dcbf
or
dcbst
instruction is updating the tag
If the EA of a
dcbf
or
dcbst
instruction hits in the cache, the tag will be changed to
its new state. During that clock, the tag is not accessible and snoop transactions
during that cycle will cause the assertion of ARTRY.
3.6.9 Enveloped High-Priority Cache Block Push Operation
In cases where the 603e has completed the address tenure of a read operation, and then
detects a snoop hit to a modified cache block by another bus master, the 603e provides a
high-priority push operation. If the address snooped is the same as the address of the data
to be returned by the read operation, ARTRY is asserted one or more times until the data
tenure of the read operation is completed. The cache block push transaction can be
enveloped within the address and data tenures of a read operation. This feature prevents
deadlocks in system organizations that support multiple memory-mapped buses.