搜索
bottom↓
回复: 13

STM32H750VB外挂QSP与内部FLASH运行代码效率比较?

[复制链接]

出0入4汤圆

发表于 2021-2-8 12:08:55 | 显示全部楼层 |阅读模式
有哪位大神测试过运行效率区别?

H750外挂一个133M 的W25Q也要几元钱,几K以下的量选择H743VI吧

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入10汤圆

发表于 2021-2-8 12:51:52 来自手机 | 显示全部楼层
内部的应该快点

出0入54汤圆

发表于 2021-2-8 14:45:17 | 显示全部楼层
有cache的话应该不会差太多吧。
我在RT1052上测试程序 跑外部串行flash和加载到内部SDRAM是相差不多,当然要求高的代码我是加载到ITCM上跑的,比如中断处理程序。

出0入0汤圆

发表于 2021-2-8 15:01:36 | 显示全部楼层
使用分散加载,实时性高的代码放内部FLASH里,普通代码放外部FLASH里。

出15入178汤圆

发表于 2021-2-8 16:57:53 | 显示全部楼层
内部Flash和QSPI性能一样,使用外部SDRAM性能下降2.5%,基本可以忽略。

出0入442汤圆

发表于 2021-2-8 17:01:03 来自手机 | 显示全部楼层
本帖最后由 wye11083 于 2021-2-8 17:03 编辑
lusson 发表于 2021-2-8 14:45
有cache的话应该不会差太多吧。
我在RT1052上测试程序 跑外部串行flash和加载到内部SDRAM是相差不多,当然 ...


差不多是不可能的。。内部flash能做到准实时效率,qspi再快也只可能有25mip/s(thumb,50mhz,100mhz也不过50mip/s),加上cache也没太大用处,除非你代码量很小,几十k那种循环体,或者代码是纯随机sdram访问,这样cpu在不停地刷新cache line。

我曾经在fpga soc上用过spi otf,4字节指令数据+1字节校验,然后所有人都在抱怨卡成死狗。。然后我又改回sram了。如果不加校验码,那么可以做到连续取址,然而一点点时序问题就随机飞了,这是最要命的地方。

有cache在连续访问的地方确实能快不少,比如我在stm32f4上用nqueen算法测过sdram效率,f4没有cache,在itcm/dtcm上跑一个算法是70ms?在sdram上跑记得是200ms左右,整整慢了3倍。

出0入25汤圆

发表于 2021-2-8 17:29:58 | 显示全部楼层
wye11083 发表于 2021-2-8 17:01
差不多是不可能的。。内部flash能做到准实时效率,qspi再快也只可能有25mip/s(thumb,50mhz,100mhz也不 ...


肯定是可以做到差不多的,,

电脑上16个G的内存配16M的Cache都能做到90%以上的命中率,,单片机上16M的QSPI Flash配16K的Cache肯定也能做到差不多的效果,,甚至更好(毕竟单片机不会像电脑那样跑几十个线程来回切)

QSPI Flash + Cache这种方案的主要问题不是效率,,而是实时性和安全性

Cache的整体命中率虽然很高,但对于ISR来说一旦它不在Cache中,就要等几十个时钟周期才能取到指令,,这对实时性伤害很大,,所以ISR代码需要放到RAM里面去(而且ISR中调用的函数、以及它们调用的函数也都要放到RAM中去,,有一层不在RAM里就会影响实时性)

另一个就是程序放在QSPI Flash里很容易被别人读走,,不利于保护开发成果,,

出300入477汤圆

发表于 2021-2-8 20:07:18 来自手机 | 显示全部楼层
XIVN1987 发表于 2021-2-8 17:29
肯定是可以做到差不多的,,

电脑上16个G的内存配16M的Cache都能做到90%以上的命中率,,单片机上16M的 ...

16K当作代码cache差不多应该够了。
常见的ARM9默认就是16k+16k,至少90%命中率应该是有的。
电脑cpu三级cache有十几二十兆,但那不太重要,速度最快的第一级cache也就是每个cpu才32k+32k

出0入54汤圆

发表于 2021-2-9 19:51:16 | 显示全部楼层
XIVN1987 发表于 2021-2-8 17:29
肯定是可以做到差不多的,,

电脑上16个G的内存配16M的Cache都能做到90%以上的命中率,,单片机上16M的 ...

不要用极端例子嘛,我只是说不会差太多,肯定是在程序优化的基础上啊,这些耗时关键的程序放到内部Ram就好了

出0入24汤圆

发表于 2021-2-10 10:30:40 来自手机 | 显示全部楼层
ST有个跑分对比的文档,用的好像是OSPI

出0入4汤圆

 楼主| 发表于 2021-2-20 01:51:36 | 显示全部楼层
lusson 发表于 2021-2-9 19:51
不要用极端例子嘛,我只是说不会差太多,肯定是在程序优化的基础上啊,这些耗时关键的程序放到内部Ram就 ...

外部FLASH 跑代码真的慢,老老实实用STM32H743VI有2MB的内部FLASH

出0入54汤圆

发表于 2021-2-20 09:12:47 | 显示全部楼层
vvzhaodan 发表于 2021-2-20 01:51
外部FLASH 跑代码真的慢,老老实实用STM32H743VI有2MB的内部FLASH

我现在有项目就是用外部norflash,不过不是ST的,是NXP的RT1052,跑得很好啊

出100入101汤圆

发表于 2021-2-20 10:57:10 来自手机 | 显示全部楼层
外部flash,一般有预取操作

出0入4汤圆

 楼主| 发表于 2021-2-22 11:28:54 | 显示全部楼层
fengyunyu 发表于 2021-2-20 10:57
外部flash,一般有预取操作

是的,你可以对比试试
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-24 12:23

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表