
Sun Microelectronics
101
7. UltraSPARC External Interfaces
7.6.4 Cache Coherence Sequence in Systems without Dtags
The following is an example sequence of events for the coherence model shown
in Figure 7-21 on page 99, except that there are no duplicate tags. Typically, this is
a system with a single UltraSPARC and a cache-coherent I/O interface. In this
case, I/O transfers should not be completed to memory until the SC has issued
an S_REQ to snoop the UltraSPARC for the DMA address and it has received the
corresponding P_REPLY.
Every I/O read incurs a copyback S_REQ to UltraSPARC and every I/O 64-byte
write incurs an invalidate S_REQ. SC should wait for a P_REPLY acknowledg-
ment from UltraSPARC for each DMA transaction before reading or writing
memory.
The data is sourced either from the E-Cache (if the P_REPLY was P_SACK or
P_SACKD) or from main memory (if the P_REPLY was P_SNACK).
For I/O 64-byte writes, SC writes data to memory after it receives the invalida-
tion acknowledgment from UltraSPARC.
1.
P_SACKD informs SC that UltraSPARC was initiating or had an
outstanding P_WRB_REQ to the same address<40:6>. Since some other
writer has ownership, this Writeback should not complete to memory,
because the other writer’s modifications may be overwritten.
2.
In systems without Dtags, SC must remember the P_REPLY type from
UltraSPARC if it previously sent an invalidation (S_INV_REQ or
S_CPI_REQ) request (due to P_WRI_REQ from UltraSPARC or DMA, or
P_RDO_REQ from DMA for read-modify-write). If the reply was
P_SACKD, SC must cancel the subsequent Writeback transaction
(P_WRB_REQ) from UltraSPARC.
3.
Upon receiving a P_SACKD reply for S_INV_REQ or S_CPI_REQ, the SC
should treat any subsequent P_SACKD as a P_SNACK until it issues
S_WBCAN to cancel the Writeback. Note that UltraSPARC may issue this
P_SACKD before the P_WRB_REQ becomes visible to the system.
4.
The SC sets NDP (No Dtag Present) in the S_REQ request packet. This
instructs UltraSPARC to generate a P_SNACK reply in response to
S_CPB_REQ, S_CPI_REQ, and S_CPD_REQ requests if it does not have the
requested block.
5.
If UltraSPARC sets the IVA (Invalidate Advisory) bit in a P_WRI_REQ
transaction, SC sends an explicit S_INV_REQ request to the UltraSPARC.
Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com