为什么GD32F303代码运行在flash比sram更快?

[复制链接]
2525|10
 楼主| 聚沃科技 发表于 2024-7-21 09:42 | 显示全部楼层 |阅读模式
本帖最后由 聚沃科技 于 2024-7-21 09:47 编辑

我们知道一般MCUflash有等待周期,随主频提升需要插入flash读取的等待周期,以stm32f103为例,主频在72M时需要插入2个等待周期,故而代码效率无法达到最大时钟频率。
图片14.png
所以STM32F103将代码加载到sram运行速度更快。
但使用GD32F303时将代码加载到SRAM后速度反而下降了一些,这是为什么呢?
我们前面了解过GD32F303 flashcode area区是零等待的,
GD32F系列MCU片上FlashCode区和Data区使用解密

零等待访问理论上就应该和在sram运行速度一样,那么为何会比sram更快一些呢?
通过查阅GD32F303用户手册系统架构章节我们可以知道,访问flash时可以直接通过ibussbus专用总线进行访问,而访问sram时通过AHB主机接口通过System BUS进行访问,AHB主机接口下更还有挂载有其他主机和外设总线,共享总线带宽。
图片15.png
所以GD32F303的代码运行在code area零等待区时,效率会比常规加载sram的方式更高。
本教程由GD32 MCU方案商聚沃科技原创发布,了解更多GD32 MCU教程,关注聚沃科技官网,GD32MCU技术交流群:859440462

Dongchen3 发表于 2024-7-22 16:26 | 显示全部楼层
因为这个,对的,这个东西挺复杂的,看一下就还是没动,所以这个的原因就是ram慢的原因吧
地瓜patch 发表于 2024-7-31 21:45 | 显示全部楼层
ram更快的,是不是程序问题
亚瑟 发表于 2024-7-31 22:09 | 显示全部楼层
ram速度很快的吧
小小蚂蚁举千斤 发表于 2024-7-31 23:19 | 显示全部楼层
这个图片东西挺多其实挺复杂的
tpgf 发表于 2024-8-1 11:51 | 显示全部楼层
任何单片机在flash中都比ram快吧
磨砂 发表于 2024-8-10 11:00 | 显示全部楼层
tpgf 发表于 2024-8-1 11:51
任何单片机在flash中都比ram快吧

不对 应该说传统上应该ram比flash要快
晓伍 发表于 2024-8-11 10:05 | 显示全部楼层
好像并不是因为总线的变化引起来的
八层楼 发表于 2024-8-11 17:11 | 显示全部楼层
这个只是在这种情况下ram的速度会比flash速度快是吗
观海 发表于 2024-8-12 08:18 | 显示全部楼层
这个特点仅仅是针对这个系列的芯片才有的吗
guanjiaer 发表于 2024-8-12 13:41 | 显示全部楼层
代码运行在flash中是一种理想状态吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

170

主题

190

帖子

13

粉丝
快速回复 在线客服 返回列表 返回顶部