单片机交流
直播中

lique

13年用户 883经验值
擅长:模拟与电源
私信 关注
[问答]

机器周期、时钟周期与指令周期它们分别有什么区别?

什么是机器周期?什么是时钟周期?什么是指令周期?它们分别有什么区别以及联系?

回帖(1)

杨军

2021-7-1 14:58:22
  机器周期:在计算机中,常把一条指令的执行过程划分为若干个阶段,
  每一个阶段完成一项工作。每一项工作称为一个基本操作,完成一个基本操作所需要的时间称为机器周期。
  指令周期:执行一条指令所需要的时间,一般由若干个机器周期组成。
  指令不同,所需的机器周期也不同。
  一个时钟周期 = MCLK晶振的倒数。如果MCLK是8M,则一个时钟周期为1/8us;
  一个机器周期 = 一个时钟周期,即每个动作都能完成一个基本操作;
  一个指令周期 = 1~6个机器周期,具体根据具体指令而定。
  没有设置分频,在8MHZ晶振下 那么机器周期就是1/8M=125ns, 单指令的执行时间就是125ns
  时钟周期是频率的倒数。
  指令周期,就是cpu执行一条汇编指令所需要的时间。
  STM32系列芯片(Cortex-M3)有三级流水线,指令周期不定,ARM给出的Cortex-M3核单片机的平均执行速度是1.25MIPS/Mhz。
  MIPS的全称是Million Instructions Per Second,每秒百万指令(西方或者国际上的计量体系中1M(兆)=100万=1000000);Mhz,是指单片机CPU的主频兆赫兹。
  MIPS/Mhz的意思是(单片机CPU的主频)每兆赫兹下(单片机的指令执行速度)每秒执行1M(兆)条指令。比如,ARM官方给出的STM32F103x系列单片机的平均执行速度是1.25MIPS/Mhz,如果设置单片机A的主频为72MHz,那么单片机A的执行速度=1.25*72=90MIPS,即每秒执行90M条指令,一条指令的执行时间为1/90us=0.011us=11ns。注意,官方说的1.25DMIPS/MHz,是通过测试一些算法来实现的,不是实际测试硬件的结果,只能作为大概的一个参考。
  CPU执行中断时需要时间的,如入栈,出栈,以及其他处理,都需要时间!一般情况下,STM32的中断性能不超过500Khz,也就是中断间隔达到2us一次时,不管你中断函数多精简,基本上CPU就不会干其他什么事情了,因为它都在进出中断了。
  单条指令执行时间:STM32F10X单片机在主频为72MHz下,C语言程序执行一条指令需要的时间可认为10ns~100ns。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分