Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The comparison was not really unbiased, because for RISC-V the compressed instruction extension was used, which artificially makes RISC-V appear to have shorter programs.

RISC-V with the compressed instruction extension should be compared only with ARMv8-M (i.e. Thumb2), nanoMIPS or other such ISA's, which target similar levels of CPU performance, not with ARMv8-A, which is intended to be implemented at much higher levels of performance.

The graph with the number of instructions reveals that the RISC-V programs were not shorter than the AArch64 programs, but longer by more than 12% (all AArch64 and RISC-V instructions have the same length).

RISC-V has only one great feature that is the cause of a significant program length reduction, the combined compare-and-branch instructions, which save one instruction, i.e. one 32-bit word, at each conditional branch, i.e. at every 4 to 5 instructions, in comparison with AArch64.

However the other weaknesses of RISC-V are great enough that even with the compare-and-branch advantage the RISC-V programs end longer than the AArch64 programs.



RV-C is intended to be implemented on high perf systems; it's not some tiny, embedded core only extension like ARMv8-m.

And I don't think it's misleading, instruction count isn't the only metric that matters. I$ pressure is very real. So they show both metrics.


It is meant for high performance implementations. But do they exist already?


The numbers have been run on simulations of large wide cores, and the benefit of RV-C is pretty clear. Although since the release of the M1, I agree that there's probably a need for a BOOMv4 to publicly explore the problem space.

Going into rumor town: my understanding is that all of the companies working on high perf core are implementing RV-C, including those made of ex-Apple employees who worked on their cores. The tiny bit of extra decode complexity more than pays dividends in I$ pressure (which from a design perspective can let you get away with less I$, and therefore lower latency I$).


That's interesting! Is there a short reference on RV-C?


Using RISC-V compressed instructions is not cheating. It's part of the design. It would not be a realistic comparison if you arbitrarily left it out.


In RISCV compressed instructions are just an extension that you can mix with uncompressed instructions. There is no reason to not use them. Thumb2 is a completely different instruction set that is mutually exclusive with the uncompressed instruction set.

If you want to be pendantic then RISC V compression is just adding more 32bit mini VLIW instructions.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: