Sun Microelectronics
97
7. UltraSPARC External Interfaces
Table 7-9 Transitions Allowed for Cache Coherence Protocol
Transition Description
Transaction Req
to/from Port
Acknowledgment
I → E Load miss; data coming from memory to an invalid
line (no other cache has the data).
P_RDS_REQ S_RBU
I → S Load miss; data provided by another cache or memory
to an invalid line (another cache has the data)
I-Cache miss or PREFETCH.
P_RDS_REQ
P_RDSA_REQ
S_RBS
S_RBS
I → M Store miss, atomic miss on invalid line, PREFETCH. P_RDO_REQ S_RBU
E → M Store hit or atomic hit to Exclusive Clean line. No Transaction No Transaction
E → S Request from system to share this line (load miss from
another processor).
S_CPB_REQ,
S_CPB_MSI_REQ
P_SACK | P_SACKD
followed by S_CRAB
E → I i) A clean line is victimized by the processor.
I-Cache miss.
Write miss.
P_RDS_REQ
or
P_RDSA_REQ
or
P_RDO_REQ
S_RBU or S_RBS
S_RBS
S_RBU
ii) Request from system to copyback and invalidate
this line (store miss from another processor).
S_CPI_REQ P_SACK|P_SACKD
followed by S_CRAB
iii) Request from SC to invalidate this line (block store
from another processor)
S_INV_REQ P_SACK|P_SACKD
S → M Store hit, atomic hit to Shared Clean line, PREFETCH. P_RDO_REQ S_OAK
S
→ I i) A Shared Clean line is victimized by UltraSPARC.
I-Cache miss.
Write hit on shared line.
P_RDS_REQ
or
P_RDSA_REQ
or
P_RDO_REQ
S_RBU or S_RBS
S_RBS
S_RBU
ii) Another processor wants to write this shared line. S_INV_REQ
or
S_CPI_REQ
P_SACK|P_SACKD
P_SACK|P_SACKD
followed by S_CRAB
iii) Request from SC to invalidate this line (block store
from another processor).
S_INV_REQ P_SACK|P_SACKD
M
→ O Request from another processor to read a modified
line, memory is not updated (as opposed to M → S).
S_CPB_REQ P_SACK|P_SACKD
followed by S_CRAB
M, O
→ I
i) A Modified line is victimized by the processor
(Writeback).
P_WRB_REQ S_WAB or S_WBCAN
if system takes ownership
before completing Writeback
ii) Request from system to copyback and invalidate
this line (store miss from another processor).
S_CPI_REQ P_SACK|P_SACKD
followed by S_CRAB
iii) Request from system to invalidate this line (block
store from another processor)
S_INV_REQ P_SACK|P_SACKD
M, O
→ S Request from another processor to read this line, mem-
ory is updated so line becomes clean (c.f. M → O)
S_CPB_MSI_REQ P_SACK|P_SACKD
followed by S_CRAB
O
→ M Store hit, atomic hit to Modified line, PREFETCH. P_RDO_REQ S_OAK
Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com