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

一、指令周期(Instruction Cycle)

        CPU从存储器中取出并执行一条指令所需的全部时间称之为指令周期。

二、时钟周期(cycle,clock cycle)

        主频:计算机内部主时钟的频率,通常以MHz或者GHz为单位,是生产设计CPU时就已经确定下来的。主频越高,CPU的运算速度越快,时钟周期越短,硬件技术水平的提高可以提升主频。

三、机器周期(Machine Cycle)

         在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。完成一个基本操作所需要的时间称为机器周期。机器周期又叫做CPU周期(CPU Cycle),机器周期是人为规定的,实际上是对一条指令执行过程阶段的划分

机器周期的规定:CPU内部操作速度很快,但访问内存速度却慢很多。 每条指令都需要从内存里面加载而来,所以一般把从内存里面读取一条指令的最短时间(与数据通路相关),规定为机器周期

四、时钟周期、机器周期与指令周期关系总结

        指令周期由若干个机器周期组成,而机器周期又包含若干个时钟周期,基本总线周期由4个时钟周期组成

五、51单片机中的_nop_()

        C语言中没有_nop_()函数。在51C中一般包含在#include "intrins.h" 头文件中。该函数是在51单片机中用的延时函数,表示执行一条没有什么意义的指令延时一个指令周期,有的指令周期是两个或两个以上的机械周期,但是_nop_()指令需要的只是一个机械周期也就是12个时钟周期(震荡周期)。

        以MCS-51单片机为例,它有固定的机器周期,一个机器周期包含六个状态例如,取指令、存储器读、存储器写等。即机器周期等于6个状态周期,而一个状态周期是2个时钟周期,因此一个机器周期又等于12个时钟周期。那么晶振频率为12MHz的的单片机的机器周期 T = 12*Tosc = 1 us。如果只用的是12MHZ的晶振,那么 一个机械周期就是1us;也就是说:_nop_(); 指令的延迟时间为 1us。

六、nop指令的作用:

1)就是通过nop指令的填充(nop指令一个字节),使指令按字对齐,从而减少取指令时的内存访问次数。(一般用来内存地址偶数对齐,比如有一条指令,占3字节,这时候使用nop指令,cpu 就可以从第四个字节处读取指令了。)
2)通过nop指令产生一定的延迟,但是对于快速的CPU来说效果不明显,可以使用rep前缀,多延迟几个时钟。
3)i/o传输时,也会用一下 nop,等待缓冲区清空,总线恢复;
4)清除由上一个算术逻辑指令设置的flag位; 

  • 9
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值