Deutsch   English   Français   Italiano  
<vcsphq$2sh9d$1@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!news.roellig-ltd.de!open-news-network.org!weretis.net!feeder8.news.weretis.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com>
Newsgroups: comp.arch
Subject: Re: Is Intel exceptionally unsuccessful as an architecture designer?
Date: Mon, 23 Sep 2024 15:19:37 -0700
Organization: A noiseless patient Spider
Lines: 88
Message-ID: <vcsphq$2sh9d$1@dont-email.me>
References: <memo.20240913205156.19028s@jgd.cix.co.uk>
 <vcda96$3p3a7$2@dont-email.me>
 <21028ed32d20f0eea9a754fafdb64e45@www.novabbs.org>
 <RECGO.45463$xO0f.22925@fx48.iad> <20240918190027.00003e4e@yahoo.com>
 <vcfp2q$8glq$5@dont-email.me> <jwv34lumjz7.fsf-monnier+comp.arch@gnu.org>
 <vckpkg$18k7r$2@dont-email.me> <vckqus$18j12$2@dont-email.me>
 <920c561c4e39e91d3730b6aab103459b@www.novabbs.org>
 <vcl6i6$1ad9e$1@dont-email.me>
 <d3b9fc944f708546e4fbe5909c748ba3@www.novabbs.org>
 <%dAHO.54667$S9Vb.39628@fx45.iad> <vcna56$1nlod$2@dont-email.me>
 <a7708487530552a53732070fe08d9458@www.novabbs.org>
 <vcprkv$2asrd$1@dont-email.me>
 <e2c993172c11a221c4dcb9973f9cdb86@www.novabbs.org>
 <vcqe6f$2d8oa$1@dont-email.me>
 <4f84910a01d7db353eedadd7c471d7d3@www.novabbs.org>
 <20240923105336.0000119b@yahoo.com>
 <6577e60bd63883d1a7bd51c717531f38@www.novabbs.org>
 <vcsmvq$2s1qd$2@dont-email.me>
 <23d9473740db6c0ecc7e1d4a2179c75e@www.novabbs.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 24 Sep 2024 00:19:39 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="cc0aa948cfee330c0e613beeb38c6255";
	logging-data="3032365"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX18CSk2/ohl2OdqbgHI6rnbYmQglLpI0sbY="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:N8yjVCFqoWM+aLTrYPM0J9p6eZo=
Content-Language: en-US
In-Reply-To: <23d9473740db6c0ecc7e1d4a2179c75e@www.novabbs.org>
Bytes: 5985

On 9/23/2024 2:58 PM, MitchAlsup1 wrote:
> On Mon, 23 Sep 2024 21:35:53 +0000, Chris M. Thomasson wrote:
> 
>> On 9/23/2024 1:59 PM, MitchAlsup1 wrote:
>>> On Mon, 23 Sep 2024 7:53:36 +0000, Michael S wrote:
>>>
>>>> On Mon, 23 Sep 2024 01:34:55 +0000
>>>> mitchalsup@aol.com (MitchAlsup1) wrote:
>>>>
>>>>> On Mon, 23 Sep 2024 0:53:35 +0000, jseigh wrote:
>>>>>
>>>>>> On 9/22/2024 5:39 PM, MitchAlsup1 wrote:
>>>>>
>>>>>> Speaking of memory models, remember when x86 didn't have
>>>>>> a formal memory model.  They didn't put one in until
>>>>>> after itanium.  Before that it was a sort of processor
>>>>>> consistency type 2 which was a real impedance mismatch
>>>>>> with what most concurrent software used a a memory model.
>>>>>
>>>>> When only 1 x86 would fit on a die, it really did not mater
>>>>> much. I was at AMD when they were designing their memory
>>>>> model.
>>>>>
>>>>>> Joe Seigh
>>>>
>>>>
>>>> Why # of CPU cores on die is of particular importance?
>>>
>>> Prior to multi-CPUs on a die; 99% of all x86 systems were
>>> mono-CPU systems, and the necessity of having a well known
>>> memory model was more vague. Although there were servers
>>> with multiple CPUs in them they represented "an afternoon
>>> in the FAB" compared to the PC oriented x86s.
>>>
>>> That is "we did not see the problem until it hit us in
>>> the face." Once it did, we understood what we had to do:
>>> presto memory model.
>>>
>>> Also note: this was just after the execution pipeline went
>>> Great Big Our of Order, and thus made the lack of order
>>> problems much more visible to applications. {Pentium Pro}
>>
>> Iirc, been a while, I think there was a problem on one of the Pentiums,
>> might be the pro, where it had an issue with releasing a spinlock with a
>> normal store. I am most likely misremembering, but it is sparking some
>> strange memories. Way back on c.p.t, Alex Terekhov (hope I did not
>> butcher the spelling of his name), anyway, wrote about it, I think...
>> Way back. early 2000's I think.
> 
> Many ATOMIC sequences start or end without any note on the memory
> reference that it bounds an ATOMIC event. CAS has this problem
> on the value to ultimately be compared (the start), T&S has this
> problem on ST that unlocks the lock (the end). It is like using
> indentation as the only means of signaling block structure in
> your language of choice.

_Strong_ CAS in C++ terms, ala cmpxchg, will only fail if the comparands 
are different. This can be implemented with LL/SC for sure. Scott 
mentioned something about a bus lock after a certain amount of 
failures... (side note) Weak CAS can fail even if the comparands are 
identical to each other ala LL/SC. This reminds me of LL/SC. the ABA 
problem can worked around and/or eliminated without using LL/SC. I 
remember reading papers about LL/SC getting around ABA, but then read 
about how they can have their own can of worms. Pessimistic vs 
optimistic sync... Wait/ Lock / Obstruction free things... ;^)

Fwiw, getting rid of the StoreLoad membar in algorithms like SMR is 
great. There is a way to do this in existing systems. So, no hardware 
changes required, and makes the system run fast.

Think of allowing a rouge thread to pound a CAS with random data wrt the 
comparand, trying to get it to fail... Of course this can be modifying a 
reservation granule wrt LL/SC side of things, right? Pessimistic (CAS) 
vs Optimistic (LL/SC)?




> 
> Both are bad practice in making HW that can perform these things
> efficiently. But notice that LL-SC does not have this problem.
> Neither does ESM.
> 
>>>> According to my understanding, what matters is # of CPU cores with
>>>> coherent access to the same memory+IO.
>>>> For x86, 4 cores (CPUs) were relatively common since 1996. There
>>>> existed few odd 8-core systems too, still back in the last century.