Hey Cliff,
I was wondering if you would mind having a read of this and giving your thoughts….
Is RISC-V only for embedded systems, or can it compete on the desktop and server rooms as well?
link.medium.com
and his thoughts on ARM and RISC-V vector extensions:
A comparison of the RISC-V vector extension (RVV) and ARM scalable vector extension (SVE/SVE2).
link.medium.com
Erik made the following statement that were of particular interest to me, especially to see the number of required instructions for MAFD put into context - although, as you or perhaps leman mentioned previously, modern desktop by necessity (and from a generated code complexity perspective) end up needing many many more instructions than these:
I'm not Cliff but I think it may help you to know that this guy you've linked to is clearly a software dude who doesn't really know what he's talking about, has a fixation on RISC-V taking over the world (I've seen that before in a different software dude, some of them are really convinced that 'open source' matters in ISA design), and is reaching hard to find anything which reassures him that it will.
For example, that stuff you quoted implying it's bad that Arm has more instructions? That's not something anyone who designs CPUs would say. The quantity of instructions you have to implement isn't nearly as important as their qualities. Are there any which make it difficult to track dependencies? which are unfriendly to power consumption? or are likely to limit clock speed? These questions are much more important than whether RISC-V has 238 instructions and Arm A64 1000 (or whatever the actual numbers are).
And as far as those numbers go, how do you define instruction count? Because it turns out the reason Arm A64 has lots of different opcodes is not that there's a thousand totally unique things an A64 instruction can do, but rather because for each basic operation, A64's designers thought through whether it would be useful to have any variants. So it's really a lot fewer types of instruction, and for each type of instruction you can implement all the variants with the same hardware at a fairly low cost.
The only thing RISC-V is arguably better at is a single ISA encoding which scales from ultra-minimalist low performance embedded CPU cores to high performance application processor (AP) cores. In the Arm world, due to legacy reasons, there's a different ISA encoding for 32- and 64-bit code, and the 32-bit ISA is quite different from the 64-bit. (in fact, for other legacy reasons there's two completely different encodings for 32-bit code!)
The question you should be asking yourself, though, is: does this matter? It doesn't, because there's no need for deep embedded cores to run the same ISA as the main AP cores. Nobody cares if the dozens of little helper cores in an Apple M1 SoC run the same ISA as the Firestorm and Icestorm cores (iirc, they don't), because user code doesn't (and shouldn't) run on them - everything they execute is firmware supplied by Apple.
The flip side of that: real world results show that every core an application can run code on should implement exactly the same ISA features as all the rest. Anything else tends to devolve into insanity quick, so much so that Intel disabled some instructions in Alder Lake's Golden Cove cores to minimize their ISA differences with the Gracemont efficiency cores.
So, Engheim's thesis has already been proven wrong by reality. When there's a chance any given bit of code could run on different types of core, you want all those cores to provide exactly the same ISA, but otherwise you just don't care.
For a really wild example, Intel has long used embedded microcontrollers in their x86 chips to govern dynamic voltage and frequency scaling (DVFS), known as Turbo Boost Technology in Intel marketing speak. Sometimes they've used a 486 core for this microcontroller. Other times they've used a Synopsys ARC core - a deep embedded RISC descended from the SuperFX accelerator chip used in the Super Nintendo game "StarFox". (Yes, really!) Users never knew the difference, nor should they have.