Just to do a quick and dirty comparison of several popular ISAs, I compiled a simple C application that calculates primes using the Sieve of Eratosthenes using the following command:
gcc -O2 -c -o prime.o prime.c
Then, I compared the output binaries just on memory size using the ELF size command. I used the ARM and THUMB outputs as a benchmark for comparison.
$ size prime.arm text data bss dec hex filename 244 0 0 244 f4 prime.arm $ size prime.mb text data bss dec hex filename 316 0 0 316 13c prime.mb $ size prime.riscv text data bss dec hex filename 324 0 0 324 144 prime.riscv $ size prime.thumb text data bss dec hex filename 140 0 0 140 8c prime.thumb $ size prime.msp text data bss dec hex filename 134 0 0 134 86 prime.msp
As we can see from the output of the simple programme, the ARM instruction set is truly compact as it uses only 244 bytes of instruction memory to do the work while the THUMB instruction uses only 140 bytes. Nice!
However, our focus was on the RISC-V which shows that it uses the most instruction memory. However, it is not very different from the existing Microblaze result. Therefore, it is a viable alternative ISA for the processor.
What would be more interesting would be to pit the future RISC-V 16-bit extensions against the THUMB and MSP to see how it performs.
Notes: A more robust comparison would include practical code from various software such as various RTOS etc. However, that is beyond the scope at the moment. Also, although code size is a simple metric for comparison, it is not an indicator of speed.
0 Comments