User`s guide
The XMI
2.5.5 Write Mask Transaction
Write Mask (WMASK) transactions (see Figure 2–16) transfer data from
the commander to the responder.
Figure 2–16 Write Mask Command
6
3
6
0
5
9
5
8
5
7
4
8
4
7
3
2
3
1
3
0
2
90
WRITE MASK ADDRESS<29:0>
LENGTH 00 = Hexword
01 = Longword
10 = Quadword
11 = Octaword
msb−p189−89
0111 MBX
ADDRESS<39:30>
WRITE MASK COMMAND
WMASK transactions transfer a pattern of bytes that fit into a longword,
quadword, octaword, or hexword from the commander to the responder.
The longword, quadword, octaword, or hexword is naturally aligned. The
commander gains the XMI and sends a command cycle specifying the
command code, a byte mask, and the desired address. The commander
immediately follows this with one, two, or four cycles of write data in
consecutive cycles, with no null cycles in between.
For I/O space, all I/O nodes on the XMI decode the address, and the node
that recognizes the address becomes the responder. The responder accepts
the command, address, and data and performs the requested write.
For memory space, all MS65A memory modules on the XMI decode the
address, and the node that recognizes the address becomes the responder.
The MS65A memory module responder accepts the command, address, and
data. As soon as the address is received, it starts a lookup to determine
if the targeted memory block is owned. If the block is owned, the MS65A
memory module writes the data into memory but stores the command,
address, and mask bits in a deferred queue. When the Disown Write Mask
(DWMASK) arrives, the MS65A memory module determines that there
is an entry in the deferred queue and only writes the bytes that have
not been written by the conflicting WMASK command. If the block is not
owned, the MS65A memory module writes the data. In either case the
command considers the write transaction complete once the command and
all data cycles are acknowledged.
For longword-, quadword-, and octaword-length transactions, the mask
field that accompanies each command and address is unrestricted. Each
bit in the 16-bit mask field corresponds to a byte of data in the associated
one or two quadwords. If the bit is zero, then that byte is not written; if
2–38