Hello,
Read this:
About my scalable algorithms..
My scalable algorithms that i have invented are working now on x86.
But i will port them smartly soon to other CPU architecture like ARM..
I think i will port just my scalable MLock and my scalable AMLock for
Delphi and Freepascal so that my scalable algorithms work on ARM CPU
architecture, ARM that is of a weak memory model, here is the Memory
ordering of ARM:
https://en.wikipedia.org/wiki/Memory_ordering
Here is my scalable MLock and my scalable AMLock that i have invented:
https://sites.google.com/site/scalable68/scalable-mlock
and here:
https://sites.google.com/site/scalable68/scalable-amlock
I think x86 is TSO and is the same as Sparc TSO.
About memory models and sequential consistency:
As you have noticed i am working with x86 architecture..
Even though x86 gives up on sequential consistency, it’s among the most
well-behaved architectures in terms of the crazy behaviors it allows.
Most other architectures implement even weaker memory models.
ARM memory model is notoriously underspecified, but is essentially a
form of weak ordering, which provides very few guarantees. Weak ordering
allows almost any operation to be reordered, which enables a variety of
hardware optimizations but is also a nightmare to program at the lowest
levels.
Read more here:
https://homes.cs.washington.edu/~bornholt/post/memory-models.html
Memory Models: x86 is TSO, TSO is Good
Essentially, the conclusion is that x86 in practice implements the old
SPARC TSO memory model.
The big take-away from the talk for me is that it confirms the
observation made may times before that SPARC TSO seems to be the optimal
memory model. It is sufficiently understandable that programmers can
write correct code without having barriers everywhere. It is
sufficiently weak that you can build fast hardware implementation that
can scale to big machines.
Read more here:
https://jakob.engbloms.se/archives/1435
Thank you,
Amine Moulay Ramdane.