为什么CPU需要时钟

为什么CPU需要时钟

为什么CPU需要时钟这样一个概念?

什么是时钟脉冲,CPU为什么需要时钟,时钟信号是怎么产生的?

image-20230410204922604

上面这个图的方波就是一个脉冲,类比于人类的脉搏跳动。一个脉冲称之为CPU的一个时钟信号,或者时钟脉冲。一个脉冲周期就叫CPU时钟周期,一个时钟周期内时钟信号震荡一次。

接下来我们先来看这个电路图:

image-20230410201705096

在上图中,起初 A = B = 1 A=B=1 A=B=1时, Q = 0 Q=0 Q=0.当输入信号发生变化时,逻辑元件不会立即对输入变化做出反应,会有一个传播时延(propagation delay)。当这个B变化为0时,由于B也作为XOR直接输入,所以XOR异或门会立即感知一个输入变化为0的状态变化,XOR输出变为了1。但是由于传播时延的作用,与门的输出会过一小段时间才变为0,XOR们的输出会在变为1后隔一小段时间重新变回0.可以通过下图来看这个变化的过程:

image-20230410202335096

上面的这种现象叫做空翻(race condition),即指出现了一个不希望有的脉冲信号。可以看到虽然AB是一样的结果,但是输出的Q却得到了不一样的结果,对应Q中突起的那一小块。

为了解决这种传输时延带来的错误结果,最简单的方法就是在输出端放置一个边沿触发器:

image-20230410202804227

可以看到我们在原来电路的基础上,添加上了一个CLK。边沿触发器的作用就是只有当CLK端输入从0变为1时,数据端D的输入才会影响边沿触发器的输出。这样,所有的传播时延都会被边沿触发器所隐藏掉,这个时候Q端的输出将变得稳定(不会受传送时延的影响)。比如:

image-20230410203053710

上图中Q中的灰色部分代表没有边沿触发器时Q端状态的输出。我们可以看出,当有了边沿触发器之后,Q端的输出变得稳定,基本消除了传播时延。

根据上图我们进一步理解前面说的边缘触发器的作用。在上述的电路中,只有当CLK处于高电频的时候输出端Q才会接收输入。所以只要AB运作时的传输时延控制在CLK低电频率的时间段内,传输时延产生的影响就会被输出端屏蔽掉。

通过上面的例子我们可以看出CPU为什么要时钟:目前大多数的微处理器都是呗同步时序电路所驱动,而时序电路由各种逻辑门组成。正如上面说的那样,逻辑门需要一小段时间对输入的变化做出反应。所以需要时钟周期来容纳传播时延,并且时钟周期应当打到容乃所有逻辑门的传输时延

当然,还有一种异步逻辑电路(Asynchronous sequential logic),即不需要时钟信号做同步。但是这种异步逻辑电路虽然速度比同步时序电路快,然而设计起来比同步时序电路复杂的多,并且可能会遇上前面说的空翻现象。所以,现在绝大多数的CPU还是需要时钟做信号同步的。

关于计算机中的时钟脉冲是如何产生的?

计算机中的时钟脉冲是由一个叫晶振部件辅助产生的,这里不细讲。可以理解的是通过晶振可以稳定的脉冲信号,可以作为上图中的CLK。

参考

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值