4–12 Cache and External Interfaces
21264/EV68A Hardware Reference Manual
Cache Coherency
RdBlkModx ReadData
ReadDataShared
ReadDataShared/Dirty
The cache block is filled and marked with a nonwritable status. If the
store instruction that generated the RdBlkModx command is still
active (not killed), the 21264/EV68A will retry the instruction, gener-
ating the appropriate ChangeToDirty command. Succeeding store
commands cannot update the block without external reference.
RdBlkModx ReadDataDirty The 21264/EV68A performs a normal fill response, and the cache
block becomes writable.
RdBlkModx ChangeToDirtySuccess
ChangeToDirtyFail
Both SysDc responses are illegal for read/modify commands.
RdBlkModx ReadDataError The cache block command was to NXM address space. The 21264/
EV68A delivers an all-ones pattern to any dependent load command,
forces a fail action on any pending store commands to this block, and
any store to this block is not retried. The Cbox evicts the cache block
from the cache system (with associated victim processing). The cache
block is marked invalid.
ChxToDirty ReadData
ReadDataShared
ReadDataShared/Dirty
The original data in the Dcache is replaced with the filled data. The
block is not writable, so the 21264/EV68A will retry the store instruc-
tion and generate another ChxToDirty class command. To avoid a
potential livelock situation, the STC_ENABLE CSR bit must be set.
Any STx_C instruction to this block is forced to fail. In addition, a
Shared/Dirty response causes the 21264/EV68A to generate a victim
for this block upon eviction.
ChxToDirty ReadDataDirty The data in the Dcache is replaced with the filled data. The block is
writable, so the store instruction that generated the original command
can update this block. Any STx_C instruction to this block is forced
to fail. In addition, the 21264/EV68A generates a victim for this
block upon eviction.
ChxToDirty ReadDataError Impossible situation. The block must be cached to generate a ChxTo-
Dirty command. Caching the block is not possible because all NXM
fills are filled noncached.
ChToDirty ChangeToDirtySuccess Normal response. ChangeToDirtySuccess makes the block writable.
The 21264/EV68A retries the store instruction and updates the
Dcache. Any STx_C instruction associated with this block is allowed
to succeed.
ChxToDirty ChangeToDirtyFail The MAF entry is retired. Any STx_C instruction associated with the
block is forced to fail. If a STx instruction generated this block, the
21264/EV68A retries and generates either a RdBlkModx (because the
reference that failed the ChangeToDirty also invalidated the cache by
way of an invalidating probe) or another ChxToDirty command.
InvalToDirty ReadData
ReadDataShared
ReadDataShared/Dirty
The block is not writable, so the 21264/EV68A will retry the WH64
instruction and generate a ChxToDirty command.
InvalToDirty ReadDataError The 21264/EV68A doesn’t send InvalToDirty commands offchip
speculatively. This NXM condition is a hard error. Systems should
perform a machine check.
InvalToDirty ReadDataDirty
ChangeToDirtySuccess
The block is writable. Done.
Table 4–5 System Responses to 21264/EV68A Commands and Reactions (Continued)
21264/EV68A
CMD SysDc 21264/EV68A Action