CPU跑多快,看三个“拖后腿”的:Flash、门延迟、功耗
短文标题:CPU跑多快,看三个“拖后腿”的:Flash、门延迟、功耗

你有没有想过一个问题:STM32F103最高能跑72MHz,能不能超到100MHz?能跑,但不一定稳。 时钟频率受三个因素制约:Flash读取速度、门延迟、功耗。频率高了,Flash跟不上(要插入等待周期),信号来不及稳定,热量也压不住。
制约一:Flash等待周期,STM32的Flash读取速度约24MHz(零等待),CPU跑72MHz时读Flash必须插入等待周期(2~3个周期)。
- CPU执行一条指令的时间 = 取指时间(Flash等待)+ 执行时间
- 频率提升≠性能线性提升(等待周期比例增大)
关键代码放RAM里跑更快(RAM零等待)。
制约二:门延迟(信号传播),CPU内部由无数逻辑门(与门、或门、非门)组成,信号每经过一个门都有传播延迟。频率越高,留给信号稳定的时间越短。建立时间+保持时间:信号必须在时钟边沿前稳定(建立时间),边沿后保持一段时间(保持时间)。频率过高,信号来不及稳定,逻辑错误。

制约三:功耗,CMOS功耗公式:P = C × V² × f(频率翻倍,功耗翻倍)72MHz跑得欢,功耗也大。电池供电设备必须在性能和功耗之间权衡。工厂为什么设72MHz?官方最高频率是保证在所有条件下(温度-40~85℃、电压2.0~3.6V)都能稳定运行的值。超频可以,但可能:
- 信号完整性下降(门延迟超限)
- Flash读取出错(等待周期不足)
- 芯片发热严重
- 寿命缩短
外设时钟独立开关(省电),外设时钟可独立开关:用前使能,用完关闭。
不用的外设关掉时钟,省电从细节做起。这个故事的启示,CPU频率不是越高越好。Flash等待周期、门延迟、功耗——三个因素拖后腿,72MHz是权衡后的安全值。写在最后,超频前想清楚三个问题:Flash跟得上吗?信号来得及稳定吗?散热压得住吗?够用就好,稳定第一。

(本文灵感源于于振南《新概念ARM32单片机》教程第2.1节、第2.4节、第2.7节。)
觉得有用?点赞、转发,让更多人看懂CPU频率背后的三个制约因素。

更多推荐

所有评论(0)