Hacker News new | ask | show | jobs
by raverbashing 3930 days ago
Though the arguments are interesting, I'm not convinced

Sure, the semantic gap exists. But ARM and x86 have evolved and have overcome a lot of difficulties.

People like to bash x86 but it has a big advantage: it's compact. ARM Thumb is compact but not so much.

Also remember how big the last 'new ISA' (Itanium) success was?

Compiler and processor front-end beat "perfect ISA" today

4 comments

The reason other ISAs have failed to get traction is compatibility. They couldn't run any existing binaries, and everyone wanting to use it would have to develop and adopt new tools. But Apple don't care about interoperability and completely control the entire software tools and distribution stack from top to bottom. They don't have to ask anyone else to do anything at all that they aren't doing already. No previous ISA vendor has even been in that position. Not even IBM with their mainframes. Furthermore the architecture of LLVM decouples it from particular processor architectures in ways that previous compiler architectures didn't, greatly easing the migration process at a technical level.

But what's the benefit? Maybe a few percent speed/power efficiency boost? We've already seen that Apple will go to extraordinary lengths for a few percent improved performance, particularly when it comes to power efficiency. A few percent here, a few more there and soon you're talking an hour+ extra battery life.

I think this is highly plausible. There just doesn't seem to be any particular reason why they wouldn't do it, and plenty of reasons why they would.

> Furthermore the architecture of LLVM decouples it from particular processor architectures in ways that previous compiler architectures didn't, greatly easing the migration process at a technical level.

How is LLVM IR (which I am told is arch specific) different from GCC with RTL?

> No previous ISA vendor has even been in that position.

Remember the transition from VAX to Alpha? And they kept the binary and source compatibility in quite an inventive way (with both binary translation and by making MACRO32 just another high level language).

Itanium is 20 year old technology, A lot of things changed since. I wouldn't be surprised if they come up with a completely new ISA and produce their own chips now. If they can squeeze a few more dollars per device because of a such move, with the added bonus of more efficient and faster operation they will do it.

Margins is the only important thing for Apple, nothing else matters.

New ISAs keep appearing - in the GPU world nobody cares about any backward compatibility. Domain-specific ISAs make a lot of sense, and given the growing diversity of the Apple devices needs, they may really be ready to explore this possibility.
> People like to bash x86 but it has a big advantage: it's compact.

x86-64 isn't. I've measured this: the average instruction length is just about 4 bytes. REX prefixes add up quick.

Is that really the definitive metric though? Seems like you'd want to compare overall program-text size between equivalent binaries for x86[-64] and $otherarch (i.e. x86 may be able to get away with fewer of those ~same-size instructions due to each of them doing slightly more on average).