
Sun Microelectronics
116
UltraSPARC User’s Manual
tions proceed asynchronously and may complete in any order. As long as either
the read or the Writeback is outstanding, UltraSPARC maintains the victimized
block in the coherence domain.
While the victimized block is in the coherence domain, UltraSPARC must honor
Copyback requests for the block from SC. However, since the read and Writeback
requests might complete at any time, it is possible that SC could issue a Copy-
back request for a line that was present when the S_REQ was issued, but absent
by the time UltraSPARC attempts to return the requested block. Since P_SNACK
is not a legal reply for Copyback requests in systems with Dtags, there is no way
for UltraSPARC to tell SC about this case. Thus, it is SC’s responsibility to elimi-
nate this potential race condition before it occurs.
Whenever SC receives a P_REQ for a line that has been victimized in another pro-
cessor, it must not issue its S_REPLY to the initial request until after it sends the
S_REQ for Copyback and receives the P_REPLY from the processor holding the
victimized line. This sequence closes the window of vulnerability in the processor
holding the victimized block. See the discussion accompanying Figure 7-19 on
page 93 for more information.
7.12 Interrupts (P_INT_REQ)
UltraSPARC can both send and receive interrupt requests. Interrupt requests are
used to report interrupts from I/O devices, to report asynchronous event and er-
rors, and to post software cross-calls to other UltraSPARCs. Interrupts deliver a
64-byte block of data to the destination, but UltraSPARC uses only the low order
64-bits of each of the first three 128-bit data words. UltraSPARC cannot send an
interrupt to itself. These three 64-bit words are written into the UltraSPARC’s In-
coming Interrupt Vector Data registers.
Interrupt sends are always in Class 1. There is no ordering requirement for inter-
rupts with respect to other transactions.
The interrupt transaction packet does not contain a physical address. Instead, it
carries an Interrupt Target ID. The system routes the interrupt packet to the
UltraSPARC port specified by the Target ID.
When UltraSPARC receives an interrupt:
1.
SC sends the P_INT_REQ transaction to UltraSPARC on the SYSADDR
bus; it sends an S_SWIB reply to transfer the interrupt data on the
SYSDATA bus. The low order 64-bits of each of the first three 128-bit data
words are captured in the Incoming Interrupt Vector Data registers. An
interrupt_vector
trap is taken if PSTATE.IE (Interrupt Enable) is set.
Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com