[cpp-threads] [Fwd: [Javamemorymodel-discussion]MSDNonMemorymodels]
Alexander Terekhov
alexander.terekhov at gmail.com
Thu Sep 15 21:04:14 BST 2005
On 9/15/05, Boehm, Hans <hans.boehm at hp.com> wrote:
[...]
> b) Newer X86 processors behave the way we all think they do, as opposed
> to the way Intel documents them.
In Intel speak, "memory order[ing]" is "the order in which the processor
issues reads (loads) and writes (stores) through the system bus to system
memory." (7.2. MEMORY ORDERING). Weakened memory and SSE stuff aside for
a moment, the *memory model* is processor consistency (aka processor
ordering in Intel speak) with all loads having acquire semantics. SPO
(Speculative Processor Ordering) implementation doesn't brake it.
"Reads can be carried out speculatively and in any order."
Note that they don't say "and/or". It means that "in any order" applies
to only speculative reads. And "speculative" means that they behave "as
if" in-order reads (at the time of commit), yielding values "as if" in-
oder reads.
regards,
alexander.
More information about the cpp-threads
mailing list