Jeffrey D. Smith wrote:
Just back-up a bit in the PoPs and read the "Block-Concurrent
References" paragraph. It all depends on the size of the block.
All CPU must be using the same block-size to ensure consistent
views. A full-word block is not the same as a double-word block.
The full-word store-type access is not necessarily "widened" to
a double-word access (or quad-word on Z machines). The CPU must
be using the same alignment and block width. The PoPs does not
say that different accesses to different block sizes is concurrent.
The full-word store is not a double-word concurrent store. Therefore
the double-word fetch is not protected from inconsistent results.
The block sizes are different. The specification only applies to
the same block access (alignment and width).
Huh???! That paragraph in PoOps says:
"When a fetch-type reference is specified to appear to be concurrent within
a block, no store access to the block by another CPU is permitted during
the time that bytes contained in the block are being fetched."
This statement is simple, not complex. It says, without caveats or
exceptional language of any kind, that the (entire) block is protected
from being updated by other CPUs until the block-concurrent fetch is
complete. It does not stipulate that another CPU's store access must be
on the same block boundary/width in order to be delayed.
--
Edward E Jaffe
Phoenix Software International, Inc
5200 W Century Blvd, Suite 800
Los Angeles, CA 90045
310-338-0400 x318
[EMAIL PROTECTED]
http://www.phoenixsoftware.com/
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html