以下内容均来自网上查找,并根据个人理解进行整理,刚开始学习单片机,如有不对的地方敬请指正。
先给出结论:
一个振荡周期=一个时钟周期;
一个机器周期=六个状态周期;
一个状态周期=两个节拍;
一个节拍=一个时钟周期;
一个指令周期=N个机器周期;
综上:1个指令周期=N个机器周期=6N个状态周期=12N个节拍=12N个时钟周期=12N个振荡周期
时钟周期:一个脉冲所需要的时间,为时钟晶振频率的倒数
指令周期:执行一条指令所需要的时间,是从取指令、分析指令到执行完指令所需的全部时间
机器周期:计算机中,常把一条指令的执行过程划分为若干个阶段,每一个阶段完成一项工作。每一项工作称为一个基本操作,完成一个基本操作所需要的时间称为机器周期,所以一个指令周期一般由若干个机器周期组成。
以下内容转载自:http://www.eeworld.com.cn/mcu/article_2016092829893.html
时钟周期:单片机外接的晶振的振荡周期就是时钟周期,时钟周期=振荡周期。比方说,80C51单片机外接了一个11.0592M的晶体振荡器,那我们就说这个单片机系统的时钟周期是1/11.0592M,这里要注意11.0592M是频率,周期是频率的倒数。
机器周期:单片机执行指令所消耗的最小时间单位。我们都知道51单片机采用的CISC(复杂指令指令集),所以有很多条指令,并且各条指令执行的时间也可能不一样(有一样的哦),但是它们执行的时间必须是机器周期的整数倍,这就是机器周期的意义所在。8051系列单片机又在这个基础上进行细分,将一个机器周期划分为6个状态周期,也就是S1-S6,每个状态周期又由两个节拍组成,P1和P2,而P1=P2=时钟周期。这也就是经常说的8051系列单片机的时钟频率是晶振频率的12分频,或者是1/12,就是这个意思。现在(截至2012)新的单片机已经能做到不分频了,就是机器周期=时钟周期。
指令周期:指令周期执行某一条指令所消耗的时间,它等于机器周期的整数倍。传统的80C51单片机的指令周期大多数是单周期指令,也就是指令周期=机器周期,少部分是双周期指令。现在(截止2012)新的单片机已经能做到不分频了,并且尽量单指令周期,就是指令周期=机器周期=时钟周期
以下内容转载自:https://blog.csdn.net/cll_caicai/article/details/79163590
时钟周期:一个时钟脉冲所需要的时间。在计算机组成原理中又叫T周期或节拍脉冲。是CPU和其他单片机的基本时间单位。它可以表示为时钟晶振频率(1秒钟的时钟脉冲数)的倒数(也就是1S/时钟脉冲数,比如1/12MHz),对CPU来说,在一个时钟周期内,CPU仅完成一个最基本的动作。时钟脉冲是计算机的基本工作脉冲,控制着计算机的工作节奏。时钟频率越高,时钟周期就越短,工作速度也就越快。时钟周期在CPU的描述里也叫节拍,即将一个机器周期划分成若干个相等的时间段,每一段仅完成一个基本操作,用一个电平信号宽度对应。
个人理解:时钟周期取决于晶振频率,它是机器运行过程中所有时间的最小单位。机器运行过程中按步执行操作,以时钟作为驱动完成每一步。因此时钟周期决定了计算机的工作节奏,进而影响到计算机工作速度。
机器周期:通常用从内存中读取一个指令字的最短时间来规定CPU周期(机器周期),也即CPU完成一个基本操作所需的时间。通常一个机器周期包含12个时钟周期,在8051系列单片机的一个机器周期由6个S周期(状态周期)组成。 一个S周期=2个节拍(P),也就是一个状态周期包含2个时钟周期,所以8051单片机的一个机器周期=6个状态周期=12个时钟周期。又称CPU的工作周期或基本周期,总线周期。
个人理解:机器周期是人为规定的,用以描述和时钟周期的区别。机器的运转需要时钟驱动,这并不意味着一个基本操作就只需要一个时钟周期完成,实际上却需要多个。机器周期是机器完成一个基本操作的时间。
指令周期:执行一条指令所需要的时间,是从取指令、分析指令到执行完指令所需的全部时间,计算机中,常把一条指令的执行过程划分为若干个阶段,每一个阶段完成一项工作。每一项工作称为一个基本操作,完成一个基本操作所需要的时间称为机器周期,所以一个指令周期一般由若干个机器周期组成。指令不同,所需的机器周期也不同,比如一个复杂指令可能需要很多个机器周期才能完成,而每个机器周期又由多个时钟周期完成。
个人理解:指令周期是执行一个指令所用时间的描述,一个指令,是一系列基本操作的集合,不同指令,需要的基本操作复杂度不同,所以指令周期也不同。
总结:时钟周期<机器周期<指令周期(不是固定不变)