6180|7

69

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

【询问】72MHz在内置FLASH中运行的速度问题。 [复制链接]

询问的MPU型号: STM32F103ZET6
参考的手册:14611.pdf

问题: MPU在运行在72MHZ的时候,如果程序在FLASH中运行, 执行速率有多少?

因为:手册第一页:
        特性:72 MHz maximum frequency, 1.25 DMIPS/MHz (Dhrystone 2.1)
performance at 0 wait state memory access

手册 5.3.9 存储特性
Read mode fHCLK = 72 MHz with 2 wait states, VDD = 3.3 V。

产品在构想阶段。选择了这块mpu. 不知道运行在72MHZ的时候,到底要插入多少个 WAIT? 如果如5.3.9的说法,是否就是要插入2个WAIT,访问FLASH的速度就需要3个周期?
此帖出自stm32/stm8论坛

最新回复

                                 谢谢大家! 我只是看了 Reading the Flash memory Flash memory instructions and data access are performed through the AHB bus. The prefetch block is used for instruction fetches through the ICode bus. Arbitration is performed in the Flash memory interface, and priority is given to data access on the DCode bus. 这句话,以为还要有冲突。  详情 回复 发表于 2009-10-2 18:25
点赞 关注
 

回复
举报

73

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
zero wait state, if 0 < SYSCLK <= 24 MHz
one wait state, if 24 MHz < SYSCLK <= 48 MHz
two wait states, if 48 MHz < SYSCLK <= 72 MHz

在用户手册RM0008第48页有说明
此帖出自stm32/stm8论坛
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
手册 13902.pdf RM0008 章节 2.3.3 嵌入式闪存
48页 上的内容如您所说
zero wait state, if 0 < SYSCLK <= 24 MHz
one wait state, if 24 MHz < SYSCLK <= 48 MHz
two wait states, if 48 MHz < SYSCLK <= 72 MHz
也就是当我的频率设置在72MHZ全速运行的时候,要插入2个WAIT. 进而访问FLASH需要3个CYCLE.
也就是访问指令的速度只有24MHZ了。 是这样吗? 那是不是72MHZ的核心大部分的时间都在等候指令了呢?速度是否就急剧下降到了只有24MHZ了呢?
    在RM0008的手册中。同样是这章节中
Prefetch buffer (2 x 64-bit blocks): it is enabled after reset; a whole block can be
replaced with a single read from the Flash memory as the size of the block matches the
bandwidth of the Flash memory. Thanks to the prefetch buffer, faster CPU execution is
possible as the CPU fetches one word at a time with the next word readily available in
the prefetch buffer

又有下面这句话,是否又可以提高了速度? 相当于每次获取了8条指令? 但是因为又和DCODE BUS存在总线仲裁,以及跳转等指令,命中失效。是否可以估算是3倍左右。所以实际在内置的FLASH中运行的程序的实际速度应当是24MHZ~72MHZ之间的一个速度呢?是否可以这样理解呢?
zhaoxinzxzx 和其他大侠 我的理解是否正确呢? 因为是设计的产品中一些指令的执行速度要作为参数提供给客户。所以这个是需要的。
此帖出自stm32/stm8论坛
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

4
 
ARM Cortex-M3采用哈佛结构,不存在与DCODE BUS冲突的问题,除非代码在RAM区中,或者数据在FLASH中。Cortex-M3采用的是Thumb-2指令集(部分),对一些简单的判断和跳转做了优化,如果程序和编译器处理得当的话,可以减少很多清空流水线的操作。简单地估算3倍太武断了,对于不同的应用领域,不同的算法,最终测算的结果可能完全不同。
客户提出这个要求只能说客户对处理器内核还是外行,或者只停留在对早期处理器内核的评估水平上。对于非流水线结构的处理器,指令的执行周期可测,并且程序的执行周期可以很容易的估算准确。但是流水线结构的处理器想要根据指令周期就推算出算法或者代码的执行周期就非常困难了。所以现在对处理器的评估都是用一些特定的平台实测的结果作为性能尺度的。
此帖出自stm32/stm8论坛
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

5
 
                                 Thumb-2指令集不只是16位指令,也包括32位指令,所以每次不一定是读8条指令
此帖出自stm32/stm8论坛
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

6
 
楼主您要明白有些指令是1个周期完成不了的,再一个FLASH有预读取。这样的话性能没您想的那么差。
所以FLASH 插入等待是可行的

现在处理器 存储器速度确实落后内核速度 这就是为啥PC机有L1 L2的原因。
此帖出自stm32/stm8论坛
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

7
 
楼主可以看看计算机教材。。
不过话说回来 STM32 要在72M 0 个等待就好了 哈哈
此帖出自stm32/stm8论坛
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

8
 
谢谢大家!

我只是看了
Reading the Flash memory
Flash memory instructions and data access are performed through the AHB bus. The
prefetch block is used for instruction fetches through the ICode bus. Arbitration is performed
in the Flash memory interface, and priority is given to data access on the DCode bus.
这句话,以为还要有冲突。
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表