Walt Farrell wrote:
From: "Edward Jaffe" <[EMAIL PROTECTED]>
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.
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.
Your interpretation is correct, Ed. A CPU fetching a doubleword in a
concurrent manner (as LM is defined to do when fetching from a
doubleword boundary) is protected once the fetch starts from any
updates by other CPUs.
Thanks for confirming this, Walt! It's comforting to know I don't have a
lot of "broken" software due to a misreading of the rules of the
architecture! ;-)
--
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