FLASH预取

FLASH预取

在stm32中,我们的代码都是放在flash中的,内核是M3,内核要读flash中的code,它是一条一条读一条一条执行的。读完第一条,还没读第二条代码时,内核先会把将要读的读的第二条代码先取好,放好等待它去读,这个过程称为预取指。

Cortex处理器采用的是三级流水线的哈佛结构,一条指令的执行分为:取指阶段(Fetch stage)、译码阶段(Decode stage)、执行阶段(Execute stage)。

在这里插入图片描述
CPU 通常需要 4 个周期( 72Mhz下, 2 个等待周期)读取 64 位数据进入指令缓冲.
CPU 通常需要 1 到 2 个周期执行一条指令(16位或者32位).

类比:工厂里面的流水线,工人加工一个产品需要2个周期,产品运送到工人目前需要4个周期。

没预取:相当于工人加工完一个产品,传送带动一次。
预取:相当于工人一边加工,传送带一边在运行

CPU的运行频率高,而内部FLASH的运行频率低,所以预取指令能够加快CPU的执行速度,

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值