当前位置:首页 > 电子 > 正文内容

单片机时钟周期,机器周期,指令周期的区别

admin7年前 (2018-01-03)电子4655

时钟周期

 
       时钟周期也称为振荡周期,定义为时钟脉冲的倒数(时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时钟周期就是1/12us),是计算机中的最基本的、最小的时间单位。
       在一个时钟周期内,CPU仅完成一个最基本的动作。时钟脉冲是计算机的基本工作脉冲,控制着计算机的工作节奏。时钟频率越高,工作速度就越快。
 
       8051单片机把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。
 

机器周期

 
       计算机中,常把一条指令的执行过程划分为若干个阶段,每一个阶段完成一项工作。每一项工作称为一个基本操作,完成一个基本操作所需要的时间称为机器周期。8051系列单片机的一个机器周期由6个S周期(状态周期)组成。 一个S周期=2个节拍(P),所以8051单片机的一个机器周期=6个状态周期=12个时钟周期。
 
       例如外接24M晶振的单片机,他的一个机器周期=12/24M 秒;
 

指令周期

 

        执行一条指令所需要的时间,一般由若干个机器周期组成。指令不同,所需的机器周期也不同。


CPU 周期信号、节拍周期信号、节拍脉冲信号三者之间的关系是什么?

      一小块石英晶体加电后产生压电反应,在固定频率振动,产生出电压按照固定周期变化的脉冲信号。这个高频率的信号通向分频器(frequency divider),转化为比较低频的信号。

( electronics-tutorials.ws/counter )

     以上图为例,分频器分出来的信号有四个频率。题目中所说 CPU周期信号、节拍周期信号、节拍脉冲信号本质上都是时钟脉冲的不同分频,主要区别在于用途上。

     通常来说,CPU 周期信号最“慢”,它决定 CPU 所处的状态。CPU 执行一条指令的周期叫做指令周期(instruction cycle),指令周期可以划分为 fetch、decode、和 execute 三个部分,所以也叫 fetch-decode-execute cycle。假设上图与 QD 频率相同的信号有三个,QD1、QD2、QD3,它们分别依次处于高电位,那么就可以用它们来控制 CPU 处于 fetch、decode、还是 execute 状态,这就是 CPU 周期信号。

     节拍周期信号是控制信号,调整电路的功能。比如,现在 CPU 处于 fetch 状态,仍旧以上图为例,假设 QC 这个比 QD “快”的信号有 QC1、QC2、QC3……QCi 个,分别对应电路的不同功能(比如,应该将从内存中取来的数字作为指令解释,还是送给寄存器存起来),谁处于高电位,CPU 就能执行谁决定的功能。

      节拍脉冲信号则是触发信号,决定电路的实际工作起点。以上图的 QB 为例,假设 QD1 决定 CPU 处于 fetch 阶段,QC1 决定 CPU 的功能是去内存取一个数字,那么 QB 的上升沿会触发整个电路切实地执行这个功能。

      可以这样类比:

      某诊所周一二三门诊,周四五看复诊病人,周六日不办公
——对应三个 CPU 周期

      诊所星期一二三 8:00 开始门诊,12:00 午休,13:00 继续门诊,17:00 关门
——对应节拍周期

      某个病人星期二 9:00 去看了病
——对应脉冲信号

    (注意上面的说法极度简化,实际的实现要复杂很多,比如振动源不一定是石英,每个 CPU 周期未必等长,CPU 也并不是在某一时刻只能处于单独一种周期状态里(详见 pipelining),乃至周期层级也未必就是三层等等。)

扫描二维码推送至手机访问。

版权声明:本文由视觉博客发布,如需转载请注明出处。

本文链接:http://www.cqroom.cn/post/50.html

“单片机时钟周期,机器周期,指令周期的区别” 的相关文章

物联网 WIFI 一键配置原理(smartconfig) ESP8266/QCA4004

物联网 WIFI 一键配置原理(smartconfig) ESP8266/QCA4004

物联网 WIFI 一键配置原理(smartconfig) ESP8266/QCA4004 自从物联网问世以来,如何使得物 能够联网有了很多的方式,目前运用非常广的WIFI,今天就总结下自这个方面,也对于有需要的盆友也希望有抛砖引玉之效果。 来看个知乎...

内存堆和栈的区别

内存堆和栈的区别

在计算机领域,堆栈是一个不容忽视的概念,我们编写的C语言程序基本上都要用到。但对于很多的初学着来说,堆栈是一个很模糊的概念。 堆栈:一种数据结构、一个在程序运行时用于存放的地方,这可能是很多初学者的认识,因为我曾经就是这么想的和汇编语言中的堆栈一词混为一谈。我身边的一些编程的朋友以...

锂电池充电的原理

锂电池充电的原理

    锂离子电池的充电过程可以分为四个阶段:涓流充电(低压预充)、恒流充电、恒压充电以及充电终止。     锂电池充电器的基本要求是特定的充电电流和充电电压,从而保证电池安全充电。...

linux系统 硬盘自动挂载 自动格式化 脚本

mkdir /data1 mkdir /data2 mkdir /data3 mkdir /data4  mkfs.xfs /dev/sdb1 echo "/dev/sdb...

电源模块中隔离电压3000VDC有什么用?

电源模块中隔离电压3000VDC有什么用?

随着嵌入式行业的快速发展,在各种行业应用中电源要求也越来越高,为保证系统的稳定性,隔离电源应运而生。但隔离电源中关键指标——隔离电压指的是什么?与爬电距离有什么关系?本文将从隔离电源的原理为你揭晓。 微电子行业的高速发展,产品使用场合的电磁环境也越来越复杂,产品的稳定性也受到很大的...

 运算放大器应用(三)-对数和指数运算电路分析

运算放大器应用(三)-对数和指数运算电路分析

 基本对数电路缺点:   运算精度受温度影响大;   小信号时exp(VD/VT)与1差不多大,所以误差很大;   二极管在电流较大时伏安特性与PN结伏安特性差别较大,所以运算只在较小的电流范围内误差...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。