原创
关于 FLASH LATENCY 和 指令周期
单片机集成FLASH作为程序存储器,程序在FLASH中运行,一般是取指,译码执行这样。
FLASH的速度是有限的,有时并不能与核心频率一样,按手册要求,当主频为24MHz或以下时,可以将LATENCY设置为0,48MHz时设置为 1,主频72MHz 需要插入2个等待,将速度降到72/3=24Mhz否则有可能取指不稳定。
意思就是不管HCLK有多高,取指令的速度最高为24Mhz。如果程序中单周期指令占绝大多数,简单核心中没有cache,即使使用流水线,实际指令运行速度也就是24M。
如果指令是多周期的,一次取指要多个时钟周期才能执行完成,这部分指令运行速度会按HCLK提高。
比如32位乘法,M0核心没有硬件乘法器,也没有硬件除法器,做乘除法时,需要32个时钟周期才能完成。而M0+核心号称有单周期硬件乘除法,这样乘除法的运算速度显然会比M0快上很多。
程序运行速度受FLASH速度影响,高HCLK会时候会有用呢?比如需要高精度的PWM,HCLK作为TIMER的时钟。PWM的分辨率就可以做得高。对于多周期才能完成的指令,更高的HCLK还是可以提高运行速度的。
作者: southcreek, 来源:面包板社区
链接: https://mbb.eet-china.com/blog/uid-me-408807.html
版权声明:本文为博主原创,未经本人允许,禁止转载!
文章评论(0条评论)
登录后参与讨论