Part of this may be due to Intel’s lead in manufacturing technology, and have nothing to do with architecture.
(Historically, RISC was much more competitive. Talking about current state of affairs.)
Part of this may be due to Intel’s lead in manufacturing technology, and have nothing to do with architecture.
(Historically, RISC was much more competitive. Talking about current state of affairs.)
Actually, ARM is more CISC-y than MIPS, POWER, SPARC, etc. and recent cores break more complex instructions into uops just like x86.
If you consider uops RISC, then just about every architecture is "RISC-like on the inside". RISC is about a simple and restrictive user-facing ISA, not the internal microarchitecture.
In the long term, CISC makes a lot of sense --- it saves on fetch bandwidth and instruction cache to essentially have the CPU "decompress" complex instructions to execute internally, and the core is many times faster than memory.
IMHO "pure RISC" was an academic exercise, and the only reason why early CISCs were easily beaten was because they were sequential/in-order, and memory bandwidth wasn't a bottleneck at the time. With the growing core speeds, memory becoming a bottleneck, and invention of parallel uop decoding/execution, CISC could do more per clock and with less instructions. You can see this trend here:
https://en.wikipedia.org/wiki/Million_instructions_per_secon...
The best ARM core on that list can do 3.5 DMIPS/MHz, and the best MIPS at 2.3 DMIPS/MHz, while the best x86 core is at >10 DMIPS/MHz.
https://riscv.org/wp-content/uploads/2016/01/Wed1345-RISCV-W...
This is from a couple years ago. Even more important (I can't find it right now) is that risc-v compiles code to fewer bytes than x86 and fewer micro-ops as well. With the smaller/simpler instruction set it also requires less area and power, so it may be just a matter of time now.
So with RISC-V GC + macro fusion of a few common idioms you get slightly less micro-ops than x86-64, armv7, or armv8.
That being said, for high-performance cores such as Skylake, POWER9, or the latest aarch64 server cores the ISA probably doesn't matter that much.
For microcontroller class HW, the x86 ISA might be a crippling disadvantage compared to RISC-V. For a high-performance core, which AFAIK is something like 20-30 million transistors, not so much. The bigger the core, the smaller the advantage of the ISA.
But yes, I don't there is any reason why RISC-V couldn't be used to create a high-performance core competitive with the x86, POWER, ARM of the day. It's just a hugely expensive affair.
Right now the big advantage of RISC in the high end is ease of parallel decode thanks to instructions always starting on 32 bit boundaries. Which is maybe a 5% power advantage at most. 64-bit x86 has lots of historical baggage and the people doing 64-bit ARM were clever so they're actually about equal in instruction density. It was an advantage to have fewer instructions back in the heyday of RISC but it isn't any longer and both ARM and x86 have tons of different instructions.
When you move down from high power OoO cores to in order ones then having 32 registers instead of 16 becomes more of an advantage and the benefits of simpler decode become more significant too.
As for ARM, I think their success has more to do with their business model (licensing instead of fabricating) than with their architecture.