打印
[STM32F4]

STM32F407 FLASH零等待读取加速

[复制链接]
2040|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
在参考手册FLASH 模块中,ART加速器中有这么一句话,凭借ART加速可以使CPU运行168MHZ时的性能相当于零等待。
目的:为了验证开启加速功能时,在168MHZ能否达到零等待。
方法:运行52800条单周期,顺序指令。用的是“MOV R0 #0” "MOV R0 #1",给R0寄存器赋值,从0到20,复制了60次,为了减少指令书写,采用BL跳转自身40次。一共是52800条(包含跳转指令),跳转40次,跳转可忽略,相当于全部顺序执行。MOV在M4中是32位指令。
在第一条指令前拉高管脚,最后一条指令后拉低管脚,开启预取和缓存,设置5个等待周期。然后在示波器中截取管脚拉高的时间,计算出实际值。
计算出理论零等待时间:应该是52800/168=314微秒。
但是得到的实际值是570微秒。远远达不到零等待时间,这是为什么

使用特权

评论回复
沙发
huangchui|  楼主 | 2021-7-6 21:50 | 只看该作者

使用特权

评论回复
板凳
huangchui|  楼主 | 2021-7-6 21:51 | 只看该作者
困扰了我很久,又没有RTL代码,无法仿真出实际怎么运行的。

使用特权

评论回复
地板
zwll| | 2021-7-6 21:54 | 只看该作者
人家是自动加速的,但效率没你想象的那么高

使用特权

评论回复
5
dingy| | 2021-7-6 21:56 | 只看该作者
建议去研究一下DSP的指令架构

使用特权

评论回复
6
huangchui|  楼主 | 2021-7-6 21:58 | 只看该作者
我也觉得效率没那么高,但是他自己参考手册写的加速性能相当于零等待。这不是吹牛呢么

使用特权

评论回复
7
huangchui|  楼主 | 2021-7-7 18:55 | 只看该作者

使用特权

评论回复
8
huangchui|  楼主 | 2021-7-7 19:00 | 只看该作者

使用特权

评论回复
9
pengf| | 2021-7-7 19:04 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
10
heweibig| | 2021-7-7 19:06 | 只看该作者
ST的加速效果在一些特点明显的程序中加速效果显著能达到零等待性能。

使用特权

评论回复
11
heweibig| | 2021-7-7 19:08 | 只看该作者
针对预取的顺序程序,针对cache的循环程序

使用特权

评论回复
12
yszong| | 2021-7-7 19:09 | 只看该作者
但是在大量跳转的程序中虽然达不到零等待,但是加速效果依然显著。

使用特权

评论回复
13
songqian17| | 2021-7-7 19:13 | 只看该作者
对于之前测量中存在的问题,应该是因为在频率过高时,指令数太少,受限于器材的限制,在示波器上显示不出明显效果,。当我把指令数加到10W条或者频率降低后,问题被解决。

使用特权

评论回复
14
huangchui|  楼主 | 2021-7-7 19:16 | 只看该作者
还有什么问题,欢迎大家提出,一起探讨。

使用特权

评论回复
15
renzheshengui| | 2021-8-6 13:39 | 只看该作者
这个是硬件加速吗

使用特权

评论回复
16
paotangsan| | 2021-8-6 13:44 | 只看该作者
其本身速度就很高了

使用特权

评论回复
17
labasi| | 2021-8-6 13:51 | 只看该作者
这个数值相差的有点多啊

使用特权

评论回复
18
木木guainv| | 2021-8-6 13:53 | 只看该作者
这是一种专用的加速器吗

使用特权

评论回复
19
xiaoqizi| | 2021-8-6 13:55 | 只看该作者
并不是说零时间哈

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

918

主题

12323

帖子

4

粉丝