The RISC Deprogrammer
blog.erratasec.com
blog.erratasec.com
> When they upgraded their instruction-set to support 64-bit instead of just 32-bit, they went back and redesigned it from scratch. This allowed them to optimize the new instruction-set for the OoO pipeline, such as removing some dependencies that slow things down.
Yet
> Technically, instruction-sets don't matter, but for business reasons, they still do.
So the ISA matters, yet it doesn’t. Not the most convincing argument.
32-bit ARM works fine, x86 and amd64 work fine. ARM64 might be a smidge better because they had the opportunity/desire/need to make some changes, but it doesn't make a huge difference.
The differences in processors is mostly because of processor design rather than the instruction set. IMHO, memory ordering/consistency models are the biggest important technical differences between the instruction sets, x86/amd64's pretty strict ordering requirement limits the out of order execution; amd64's 16 registers is less than most others' 32, but it's enough; variable length instructions have pluses and minuses, but is generally fine, instruction decode isn't usually a bottleneck outside of very specific benchmarks.
This article though it has lots of valid points sprinkled with inconsistencies and things that just plain miss the point.
One example: not every core is OoO. There have been an awful lot of A53s shipped in the last ten years. Having a power efficient 64 bit in order core has probably mattered a lot for Arm in key markets (eg as part of big.LITTLE). So does the ISA matter in this case? He's silent on this despite having several thousand words to say on the topic.
But, as the article so convincingly reminds us, none of that matters. It's good enough!