Comment by starspangled
10 months ago
Yeah m68k is still around too and it has more than a decade on alpha.
People use and maintain them and they have very little impact outside arch/ nowadays so they're on the happy side of cost/benefit I guess.
10 months ago
Yeah m68k is still around too and it has more than a decade on alpha.
People use and maintain them and they have very little impact outside arch/ nowadays so they're on the happy side of cost/benefit I guess.
I guess the biggest difference is that Coldfire parts are still being produced (c.f: MCF52256CVN66).
I'm not sure if Alphas are even being made anymore, even 15-20 years ago.
M68k has the advantage that it has a fairly typical memory model.
Alpha's memory model has problems with providing atomic access to single bytes, which i'd imagine in a kernel is a bit annoying :-)
And then there's just the social aspect, m68k was used in the Amiga/Atari/Mac/QL/x68k, so there is a whole generation of us m68k fans who are willing to keep it alive.
Alpha has it's fans (me included!), but it's not exactly the same. So in a way it's no surprise it's slowly bitrotting away.
Since the C compiler can hide that, for core kernel code I think the more problematic thing was Alpha's memory consistency model where (data-)dependent loads accesses did not imply ordering, which is unusual and more burdensome to the programmer than any other ISA.
That required this smp_read_barrier_depends() through the kernel, but actually in recent years that has basically been subsumed by other concurrent access primitives that all the core kernel must use, so I think alpha is no longer much of a problem outside arch/alpha
Ah, my favorite instructions, 'hw_ldl/l', 'hw_stl/c', 'ldl_l', 'stl_c' and their quadword siblings.