3 ms·
Do, please, look at The RISC-V Reader: An Open Architecture Atlas (book). There, ARM and x86 are directly compared with RISC-V. It would appear calling ARM 'w
by GeorgeTirebiter 6y ago
Do, please, look at The RISC-V Reader: An Open Architecture Atlas (book). There, ARM and x86 are directly compared with RISC-V. It would appear calling ARM 'well-designed' is an error. Calling it 'market success' is accurate.
I've been on the RV bandwagon for five years now, and yet...as is usual in the corners of any non-trivial subsystem (arch; compiler; web environment; you name it), sticky unpleasant (even ugly) details emerge. For example, in RISC-V, the bits are 'jumbled up' when encoding constants; the argument is it, ultimately, makes the processing faster (due to the way sign-extension works). And, yes, this sort of detail is swept away into a debugger or other tools, so practically, no big deal. And yet... classic archs like pdp-11 don't have this problem. (it has other performance problems).
And recently, RV supports big endian. Why? I don't know. What is happening is what happens when you get too many cooks: exploding complexity for minimal system gain.
I'm afraid that RISC-V's time has come and gone. It is a 20th century instruction set attempting to serve us well into the 21st century.
In my opinion, I think it's time for a do-over. RISC-VI anyone?
- meekrohprocess 6y ago> For example, in RISC-V, the bits are 'jumbled up' when encoding constants; the argument is it, ultimately, makes the processing faster (due to the way sign-extension works). It's not just sign-extension. You can naïvely gather several immediate bits without knowing what the opcode is, and the source/destination register IDs are also always in the same place. It does help to simplify the digital design, because your decoding logic can pluck out a few fields with no state dependencies. I had the same response to the odd instruction format at first, but it's grown on me over time. >And recently, RV supports big endian. Why? Probably to support networking equipment. They still strongly recommend using little-endian.
- adrian_b 6y agoI was not clear enough by what I meant by "ARM". The traditional 32-bit ARM instruction set is obsolete and it does not matter for any new designs. I was not referring to it. The two modern ARM instruction sets, the 16-bit-encoded ARMv7-M / ARMv8-M (for microcontrollers) and the 64-bit (32-bit-encoded) ARMv8-A, are very different from the traditional ARM ISA and they both are very well designed, incomparably better than RISC-V. RISC-V is primitive even compared to the instructions sets used 50 years ago. It includes a few good ideas and the RISC-V team has the merit of popularizing the fact that the older vector ISAs of the seventies were better than the more recent SIMD ISAs of the nineties, which lead to modern vector ISAs, e.g. the RISC-V vector extension and ARM SVE. However the base RISC-V ISA is extremely weak and its only merit is that it is simple enough to be easy to implement in student projects.