Hacker News new | ask | show | jobs
by userbinator 3118 days ago
ARM is RISC and very successful.

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.

2 comments

Have a look at slide 43 here:

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.

I guess the "even more important" thing you're thinking of is https://arxiv.org/abs/1607.02318 ?

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.

Yes, that what I meant. But the small number of instructions on risc-v means less hardware to implement it. If it wins on code size and micro-ops but has far fewer instructions to deal with, it should result in smaller circuitry to implement. So far it has been implemented with less area and power consumption than ARM cores of similar performance and there doesn't seem to be a reason it can't scale to bigger/faster cores the same way x86 has.
I think the usual argument is that the decoder is a small fraction of the total transistor count in a high-performance core.

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.

While I agree that RISC and CISC is not much of a distinction in 2017 it's worth noting that that Cortex A15 is very far from the state of the art for ARM chips. The Cortex A75 would be about twice as fast, and Apple makes an ARM architecture that beats Intel's best (per MHz) in certain other single thread artificial benchmarks.