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的执行速度,

posted @ 2022-06-02 18:15  木丨易  阅读(164)  评论(0)    收藏  举报