Sun Microelectronics
93
7. UltraSPARC External Interfaces
4.
S_REPLY acknowledgment is generated by the system to the processor on
point-to-point unidirectional wires, which initiates transfer of data. It is
generated in response to a P_REQ or P_REPLY from that processor.
Any UltraSPARC event (such as a load or store miss) that causes an interconnect
transaction completes before any snoop activity can result in the invalidation or
copyback of that line. This is a necessary condition to avoid livelock, which may
otherwise arise if a line is shuttling back and forth among multiple requesters
and no requester is able to make any incremental progress.
7.5.1 Cache Line and Writeback Buffer Ownership Windows
It is important to understand the relationship between S_REPLYs and S_REQ /
P_REPLY combinations for transferring ownership of a line.
UltraSPARC is the owner of a line starting the cycle after it receives an S_REPLY
for that line.
The SC must not issue an S_REPLY for a request with the same cache index (that
is, for each coherent read or Writeback) during the window between an S_REQ
and P_REPLY for that same index. This presents a race condition with indetermi-
nate results. Figure 7-19 shows the window during which SC must not issue an
S_REPLY. (The figure shows that the P_REQ can come either before or after the
S_REQ.) In this case, SC must not reply to P_REQ until the UltraSPARC has re-
plied to S_REQ.
Figure 7-19
S_REQ / P_REPLY Window
In addition, when the No Dual Tag Present (NDP) option is being used to allow
S_REQs to interrogate the UltraSPARC for the presence of a line, if an S_REQ to
the same index as an outstanding miss arrives before both the read and the Write-
back are completed:
1.
If UltraSPARC receives the S_REQ for a clean cache block after the S_RBU/
S_RBS reply for the victimizing read transaction at the same cache index, it
returns P_SNACK.
S_REQ
P_REQ
P_REPLY
S_REPLY
Window
Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com