ARMv8 is fairly new ISA but despite of that its synchronization primitives remain of the traditional type of exclusive load and store. They have added load acquire and store release but as I understand it, they were added to conform the memory model and could be emulated previously but at the expense of performance.
What I think is very much needed today is the new type of synchronization with transactional memory. Intel recently added this with their TSX extension which is what I and many programmers wants. Making even basic algorithms and data structures concurrent is very hard and often ends up in algorithms that is hard to understand and with much more code than the original non-concurrent version. Small fast locks like spinlocks are virtually useless in user space due to preemption which can have nasty side effects and therefore seldom used.
The limitation of the CAS has been known for a very long time and transactional memory has been proposed for some time now, so I think ARM really took the cheap route by not including this.
Dissapointment with ARMv8 limited synchronization primitives
-
- Member
- Posts: 595
- Joined: Mon Jul 05, 2010 4:15 pm
- Combuster
- Member
- Posts: 9301
- Joined: Wed Oct 18, 2006 3:45 am
- Libera.chat IRC: [com]buster
- Location: On the balcony, where I can actually keep 1½m distance
- Contact:
Re: Dissapointment with ARMv8 limited synchronization primit
And what share of programmers would that be?and many programmers wants
-
- Member
- Posts: 595
- Joined: Mon Jul 05, 2010 4:15 pm
Re: Dissapointment with ARMv8 limited synchronization primit
Alright, if you think about all those who never see system level code, they perhaps never care. How about, the benefits of transactional memory instead then? Anyway, that wasn't the point with my post.Combuster wrote:And what share of programmers would that be?
- Owen
- Member
- Posts: 1700
- Joined: Fri Jun 13, 2008 3:21 pm
- Location: Cambridge, United Kingdom
- Contact:
Re: Dissapointment with ARMv8 limited synchronization primit
Every attempt at transactional memory so far has been a massive silicon area intensive power consuming flop.
If I were ARM I wouldn't be putting something so heavy into chips with TDPs of 1W either.
If I were ARM I wouldn't be putting something so heavy into chips with TDPs of 1W either.