User`s guide
The XMI
2.5.3 Interlock Read Transaction
An Interlock Read (IREAD) transaction (see Figure 2–13), combined with a
corresponding Unlock Write Mask transaction, permits mutually exclusive
access to memory space locations. The effect of an IREAD transaction
depends on the state of the interlock bit and the ownership bit in memory.
If the memory block is not locked or owned, this request "locks" the
memory to further Interlock Read and Ownership Read requests to the
referenced location and provides the data contained in the addressed
location(s) to the commander.
Figure 2–13 Interlock Read Command
6
3
6
0
5
9
5
8
5
7
4
8
4
7
3
2
3
1
3
0
2
90
DON’T CARE ADDRESS<29:0>
LENGTH 00 = Hexword
01 = Longword
10 = Quadword
11 = Octaword
msb−p186−89
0010 MBX
ADDRESS<39:30>
INTERLOCK READ COMMAND
If the memory block is already locked, due to a previous IREAD or
OREAD, it responds to this read request with a Locked Response (LOC)
and no data is returned. The commander interprets LOC as meaning that
the shared memory block is not available.
Memory has one lock for each hexword on hexword boundaries. If the
memory is already locked, memory responds to IREAD with a Locked
Response, and no data is returned. This tells the commander that the
shared memory structure is not available at this time. The commander
responds to the locked response by repeating the IREAD.
If the memory is not locked, memory locks itself to further IREADs upon
receipt of an IREAD and provides the data contained in the addressed
location(s) to the commander. Unlocking the memory requires a UWMASK
transaction. IREADs to memory are quadword-, octaword-, and hexword-
length; memory locks the appropriate hexword.
Although the primary use of IREAD transactions is to manipulate memory,
the use of this transaction in I/O space is implementation dependent.
Most I/O locations treat an Interlock Read like a regular READ. Only
longword-length transactions can be used in I/O space.
2–35