[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