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

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

admin6年前 (2018-01-03)电子4214

时钟周期

 
       时钟周期也称为振荡周期,定义为时钟脉冲的倒数(时钟周期就是单片机外接晶振的倒数,例如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),乃至周期层级也未必就是三层等等。)

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

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

本文链接:https://feelsight.cn/post/50.html

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

内存堆和栈的区别

内存堆和栈的区别

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

锂电池充电的原理

锂电池充电的原理

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

stc-isp烧录 下载 协议 过程分析

一、数据封装格式 包头 标示 数据包长度 命令字...

如何看懂电路图(一)--基本的电路符号

如何看懂电路图(一)--基本的电路符号

电子设备中有各种各样的图。能够说明它们工作原理的是电原理图,简称电路图。 电路图有两种,一种是说明模拟电子电路工作原理的。它用各种图形符号表示电阻器、电容器、开关、晶体管等实物,用线条把元器件和单元电路按工作原理的关系连接起来。这种图长期以来就一直被叫做电路图。 另一种...

正点原子阿波罗ST32F767试用

正点原子阿波罗ST32F767试用

一、             硬件整体介绍 1.       底板  &nb...

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

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

发表评论

访客

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