时钟周期、机器周期、指令周期

1 时钟周期

例如51单片机,外部晶振为12MHz,则时钟周期为1/(12M),也就是(1/12)微秒。

2 机器周期

用C语言写的程序,会被转换成一条一条的指令,不同的指令执行的时间不同。

而这个时间的最小衡量单位是机器周期。

简单指令需要一个机器周期,复杂指令可能需要两个或两个以上的机器周期。

对于51单片机,一个机器周期等于12个时钟周期。

也就是一个时钟周期为1us。以前用_nop();进行1us延时就是这个道理。

3 指令周期

不同的指令,执行的时间是不同的,但基本的衡量单位是机器周期。

4 STM32的时钟周期、机器周期与指令周期

STM32时钟树如下图所示。

从时钟树可以看出,HCLK、PCLK以及FCLK都是由SYSCLK分频或倍频得到的。

STM32时钟树里缩略词说明如下图所示。

缩略词 英文 中文
SYSCLK System Clock 系统时钟
HCLK

High Performance Bus Clock

高性能总线时钟
PCLK Periphral Bus Clock 外围设备总线时钟
FCLK Free Runing Clock 自由运行时钟

 

如下图所示,内核(core)的时钟为72MHz。

 

正点原子:“STM32有三级流水线,指令周期不定的,arm给出的是1.25MIPS/Mhz,一个平均执行速度。”

“就是1Mhz的频率,每秒钟可以执行1.25M指令。72M,那么就是72*1.25。”

MIPS(Million Instructions Per Second):每秒处理1百万条指令。

5 参考

51、430、stm32周期和执行一条语句需要多长时间的问题

https://blog.csdn.net/helenie/article/details/52810046

计算机组成原理:时钟周期、机器周期和指令周期

https://blog.csdn.net/billbonaparte1/article/details/51297189

STM32的一个指令周期是多少个时钟周期呀?

http://www.openedv.com/posts/list/13937.htm

posted on 2020-05-07 17:22  辉哥54110  阅读(3552)  评论(0编辑  收藏  举报