打印

请教STM32的指令速度问题

[复制链接]
4571|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
电子科技|  楼主 | 2008-11-28 09:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教STM32-103,我有点想不明白的就是:
1:假如CPU可以在72M下执行指令,那FLASH会在1个时钟周期下取指吗,如果不可以的话,那必然回有等待周期,这样不论你的流水线是怎么设计,那指令还是跑不到72M,不知道我的理解对吗?
2:假如在用外扩的FLASH或RAM中执行指令,那是不是会更慢呀,因为这样还要加入地址选择的周期,比如说我从外扩的FLASH中取指令,然后把数据放到外扩的RAM中。

谢谢大家,我刚打算用这个芯片,不太懂。
沙发
香水城| | 2008-11-28 10:47 | 只看该作者

关于STM32的指令速度问题

关于你的第一个问题,请看我的博客,如有问题然后再讨论。

关于你的第二个问题,你可以参考FSMC的时序图,看看地址选择周期所占用的时间。
相关链接:http://blog.**/STM32/103871/message.aspx

使用特权

评论回复
板凳
电子科技|  楼主 | 2008-11-28 11:38 | 只看该作者

STM32的指令速度问题

香版主:我看过你的**了,谢谢。
1:看来STM32在正常执行指令时,程序在片内FLASH中运行,估计应该可以达到50M左右吧。
2:但是用外部FLASH的话,由于总线服用问题(不太清楚),肯定做不到这样的速度吧,应该会很慢,不过实际中这样的应用不会太多,因为内部的FLASH已经做到512看来。

使用特权

评论回复
地板
香水城| | 2008-11-28 13:44 | 只看该作者

程序放在外部的FLASH里面运行肯定比在内部Flash慢

一般应把程序放在内部Flash,而数据放在外部Flash,前几天就讨论过这个问题,现抄录如下:



原因有三:
1)内部Flash与CPU之间有一个Flash加速器,即使Flash有等待周期,也能够保证CPU的取指不被拖慢。
2)STM32的Cortex-M3核心是指令总线与数据总线分开的所谓哈佛结构,内部Flash在指令总线上,但外部Flash在数据总线上,程序在外部Flash中运行时会与取数据使用相同总线,没有发挥哈佛结构的优势。
3)使用外部总线每次都要经过仲裁线路,这肯定不如使用内部Flash快。


关于第一个问题,综合评估下你的估计差不多,实际可能还会略快10~20%。

使用特权

评论回复
5
电子科技|  楼主 | 2008-11-28 16:50 | 只看该作者

不错,谢谢大家

使用特权

评论回复
6
a7_cool| | 2009-1-12 12:51 | 只看该作者

本人的疑问也等到了解答!

因为本人以前一直都没有用过ARM。用的是TI的tm320f28x系列的DSP较多。为了提高程序的执行速度,必须把程序COPY到RAM中运行,才能发挥100多MHz的DSP内核的性能!因为FLASH的执行速度成为了瓶颈!

使用特权

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

本版积分规则

11

主题

15

帖子

1

粉丝