iocoder wrote:
Compared to x86_64, I feel that aarch64 (as an architecture - in an abstract sense) is more well-designed than amd64.
Thank you, Captain Obvious. AMD64 is the tail-end of a development that started on 8-bit microprocessors and tried to maintain some form of compatibility ever since. The reason for the weird and wasteful way segmentation works in 16 bit mode (21 bits of information encoded in 32 bits of data? At a time when the time stamps of the file system only could record in two-second granularity, since they couldn't spare that one bit? Sheesh) was that this way, the programs would rarely have to be changed (much).
Then 16-bit protected mode happened, and it hobbles the format of the descriptor tables to this day. 64-bit mode was actually a way to clean up much of the superfluous features of 32-bit mode that nobody ever used. But there's a limit to what you can clean up before it stops being compatible.
Most RISC architectures have a better designed interrupt system than x86. All the ones I know (ARM, PowerPC, Microblaze) only have a single vector for external interrupts, leaving the differentiation of interrupt sources to external hardware. This means, you have the IRQ available as data. Whereas on x86, you only get different entry points for your different IRQs, and most OSes end up having all of those push the IRQ number on stack and branching to a unified handler. So, using software to get what RISC hardware is giving you already.
Most RISC architectures also have more registers. Admittedly not ARM, which clocks in at 16 (and four of those are special-purpose), but both PowerPC and Microblaze have 32 registers. Well, OK, one of Microblaze's registers is permanently set to zero. They have so may, they can afford to spend one reg for that. It means they don't need special instructions for many things.
There are problems with other architectures, though. Most RISC architectures have a code density problem, meaning the same C code assembles to larger object code. However, in this day and age, I doubt the difference matters. And ARM has Thumb mode, if it does start to become burdensome.
However, I do not see ARM or any other architecture taking over the Desktop space. Too much inertia. For better or worse, for the foreseeable future we're stuck with this slapped together abomination that is AMD64. Replacement has been attempted in the past, and it has never worked. Technical merit does not matter to the consumer, they just want their MS Office to work.