cpu相关

作者: 7d972d5e05e8 | 来源:发表于2020-06-01 23:15 被阅读0次

    一、时钟周期、机器周期、指令周期的概念及三者之间的关系

    时钟周期
    时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12 us),是计算机中最基本的、最小的时间单位。

    在一个时钟周期内,CPU仅完成一个最基本的动作。对于某种单片机,若采用了1MHZ的时钟频率,则时钟周期为1us;若采用4MHZ的时钟频率,则时钟周期为250ns。由于时钟脉冲是计算机的基本工作脉冲,它控制着计算机的工作节奏(使计算机的每一步都统一到它的步调上来)。显然,对同一种机型的计算机,时钟频率越高,计算机的工作速度就越快。但是,由于不同的计算机硬件电路和器件的不完全相同,所以其所需要的时钟周频率范围也不一定相同。我们学习的8051单片机的时钟范围是1.2MHz-12MHz。

    在8051单片机中把一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示)。

    机器周期

    在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。完成一个基本操作所需要的时间称为机器周期。一般情况下,一个机器周期由若干个S周期(状态周期)组成。8051系列单片机的一个机器周期同6个S周期(状态周期)组成。前面已说过一个时钟周期定义为一个节拍(用P表示),二个节拍定义为一个状态周期(用S表示),8051单片机的机器周期由6个状态周期组成,也就是说一个机器周期=6个状态周期=12个时钟周期。

    指令周期

    指令周期是执行一条指令所需要的时间,一般由若干个机器周期组成。指令不同,所需的机器周期数也不同。对于一些简单的的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其它的机器周期。对于一些比较复杂的指令,例如转移指令、乘法指令,则需要两个或者两个以上的机器周期。

    通常含一个机器周期的指令称为单周期指令,包含两个机器周期的指令称为双周期指令。

    原文链接:https://blog.csdn.net/xiebingsuccess/java/article/details/88824389

    时钟周期 < 机器周期 < 指令周期

    为什么需要时钟,cpu才能工作:

    参考文章:始终想不明白CPU为什么要时钟才能工作

    下面是其中一个我认为比较靠谱的回答:

    这个在数字电路中不是有介绍了? “时钟”是时序逻辑电路的必要条件,为什么? 因为时序逻辑电路和组合逻辑电路最大的区别是前者对电路的状态有存储能力,就是存储了在什么时候表现出什么状态,存储这种信息的东西正是存储器(ROM,RAM等)。那么不要时钟信号会怎么样?我们知道数字电路中含有大量的触发器,触发器翻转是需要一定时间的,当一个时钟脉冲到来时电路中的触发器按照存储器中的指引翻转,整个电路的触发器翻转时间不同,有的先完成翻转,有的后完成。一个时钟周期最短要保证电路中所有的触发器都完成翻转保持一个稳定的状态才能进行下次的时钟触发。如果没有时钟信号电路就会发生混乱,一次状态还没完成变换(所有的触发器没翻转完),先完成翻转的触发器又进行了下次的翻转,聪明的电子专业人士想想会怎么样?

    时钟是实现“时序逻辑电路”必备条件。时序电路要求一组电路维持在同一个状态一小段时间,而为了维持这一小段时间,这组电路必须需要有人告知它们,可以进行下一步了。这个人就是时钟。PS:这个时钟周期一定要大于这组电路中处理的最大时间,才能保证同步。时钟太小,在时钟告知它们进行下一步的时候,还有些电路没处理完就GG了,全乱了。

    PC寄存器存储的是指令地址。当前指令地址=上一个指定地址 + 上一个指令操作数所占用的字节数。比如:上一个指定地址是00000000(8位内存,非32位内存)。上一个指令是LOAD,操作数是1个字节。那么下一个指令地址就是:00000010位置。为啥呢?因为0地址存储了上一个指令,1地址存储了上一个指令的操作数。所以它是从2开始。

    相关文章

      网友评论

          本文标题:cpu相关

          本文链接:https://www.haomeiwen.com/subject/adsezhtx.html