您尚未登录。

楼主 # 2021-06-22 17:36:56

echo
会员
注册时间: 2020-04-16
已发帖子: 85
积分: 82

RISC-V代码密度相比Cortex-M差距明显

自己的Xboot工程,在ARM的M0/M3/M4/M23/M33平台下面,全部可以在7kB闪存以内实现,几个架构差异不大,7kB闪存普遍剩余一两百个字节。

最近把它移植到RISC-V上,芯片型号GD32VF103CBT6,同样的一套代码,使用gcc编译,-Os面积优化,固件尺寸11520字节。超过11kB了,速度优化代码尺寸超过16kB。

ARM算7kB,两者对比,7*1024/11520*100%=62.2%,也就是说,同样的功能,Cortex-M只需要RISC-V六成多一点的代码就能实现。

当然还有一个变量要考虑,ARM使用AC6编译,RISC-V使用gcc编译,编译器的效率也会有一定差异。

调试方面RISC-V只能用JTAG(GDLink可以支持),相比之下Cortex-M的SWD调试用起来更方便一些。

至此GD32家的M3/M4/M23/M33/RISC-V五种核心全部盘完了。

离线

#1 2021-06-22 17:45:09

cube
会员
注册时间: 2021-03-11
已发帖子: 95
积分: 44.5

Re: RISC-V代码密度相比Cortex-M差距明显

压缩指令选项应该开了吧?RISCV指令精简程度比ARM更高,大一点也不奇怪。

离线

#2 2021-06-22 18:06:04

kekemuyu
会员
注册时间: 2018-12-13
已发帖子: 712
积分: 668.5

Re: RISC-V代码密度相比Cortex-M差距明显

这样比没有用的,编译器的因素影响太大。都用汇编还好点,不过理论上thum2的代码密度确实比riscv的精简指令要高。

最近编辑记录 kekemuyu (2021-06-22 18:07:49)

离线

楼主 #3 2021-06-22 19:59:40

echo
会员
注册时间: 2020-04-16
已发帖子: 85
积分: 82

Re: RISC-V代码密度相比Cortex-M差距明显

差了近40%,这个差距十分明显了,同样核心芯片都是按照FLASH容量定价格的,核心省下来的授权费说不定还不够买多用的FLASH。
还是Cortex-M香。

离线

楼主 #4 2021-06-22 20:00:51

echo
会员
注册时间: 2020-04-16
已发帖子: 85
积分: 82

Re: RISC-V代码密度相比Cortex-M差距明显

cube 说:

压缩指令选项应该开了吧?RISCV指令精简程度比ARM更高,大一点也不奇怪。

差了近40%,不是不能算是“一点”了。10%以内的话还可以接受。

离线

楼主 #5 2021-06-22 20:02:20

echo
会员
注册时间: 2020-04-16
已发帖子: 85
积分: 82

Re: RISC-V代码密度相比Cortex-M差距明显

kekemuyu 说:

这样比没有用的,编译器的因素影响太大。都用汇编还好点,不过理论上thum2的代码密度确实比riscv的精简指令要高。

RISC-V目前除了GCC还有其它编译器支持吗?

离线

#6 2021-06-22 20:05:22

cube
会员
注册时间: 2021-03-11
已发帖子: 95
积分: 44.5

Re: RISC-V代码密度相比Cortex-M差距明显

echo 说:
kekemuyu 说:

这样比没有用的,编译器的因素影响太大。都用汇编还好点,不过理论上thum2的代码密度确实比riscv的精简指令要高。

RISC-V目前除了GCC还有其它编译器支持吗?

据说IAR支持了。

离线

楼主 #7 2021-06-22 20:19:32

echo
会员
注册时间: 2020-04-16
已发帖子: 85
积分: 82

Re: RISC-V代码密度相比Cortex-M差距明显

cube 说:
echo 说:
kekemuyu 说:

这样比没有用的,编译器的因素影响太大。都用汇编还好点,不过理论上thum2的代码密度确实比riscv的精简指令要高。

RISC-V目前除了GCC还有其它编译器支持吗?

据说IAR支持了。

https://www.iar.com/products/architectures/risc-v/iar-embedded-workbench-for-risc-v/
In current version of the toolchain, code density is already small comparing to other available tools
看来代码密度确实是RISC-V的大问题,IAR这里 other available tools 指的应该就是GCC。

离线

#8 2021-07-11 00:09:15

3DA502
会员
注册时间: 2018-08-18
已发帖子: 15
积分: 14.5

Re: RISC-V代码密度相比Cortex-M差距明显

标准版的rv32imac指令集比arm差的比较多。简单的例子,没有地址自增指令
arm在漫长的历史上,吸收了一些复杂指令集的骚操作,例如ldm 加载多个寄存器
以后,riscv指令集会有很多魔改扩展出现的,riscv已经预留了魔改的空间

离线

#9 2021-07-16 15:38:27

xiaohui
会员
注册时间: 2019-01-15
已发帖子: 221
积分: 175.5

Re: RISC-V代码密度相比Cortex-M差距明显

之前看到有大佬讨论说,gcc编译risc-v的代码的时候负优化挺严重的,关掉优化可能会有意想不到的效果

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn