CPU可以粗略地认为是。充满电算1,不充电算0。每次计算都是这些小电容器的充放电。
许多小电容组成基本模块,如0011输出0100
但从输入0011到实际输出0100有延迟。因为前面说过,
这些小模块形成了复杂的功能。也就是说,前小模块的输出将被后模块用作输入。
那就有问题了。一方面,后面的模块如何知道前面的模块是充放电还是充放电?另一方面,路径越长,从开始输入到最终输出的时间越长,即不同的路径延迟是不同的,所以很难确保每根针脚上的数据同时严格到达。
因此引入了时钟机制。
用统一的时钟脉冲同步每个小模块。
你可以认为时钟脉冲来了,CPU移动一下。脉冲不会在下一一个时钟,CPU一直不动。
对于同一个CPU频率越高,速度越快(移动次数越多)。
但动一下不见得能执行一条指令。其实执行一个指令需要很多动作。
要动多少次?这件事很难说,要看CPU架构及设计。
因此,不同的结构CPU通过频率直接比较性能很难。
(但并不是说不同的架构CPU我们做同样的宏观任务,比如渲染网页,看谁快?
结构相同CPU确实可以比较。
所以有超频技术,说白了就是。但是超频会带来很多问题,单位时间位时间充放电会导致电流增加,即CPU整体加热量大大增加。此外,充放电存在速度问题。频率过快会导致一些小电容器未能及时完成充放电,导致不稳定。
适当的电压可以加速充放电过程,增加超频后的稳定性。但副作用是CPU更热,而且。
引入时钟最重要的作用是
也有无时钟CPU;但是,CPU一个人完成工作是不可能的, 没有固定频率(即时钟)CPU与周边工作单位合作时,由于步调不一致,沟通效率会降低, 想象一下,大BOSS就是CPU分配工作,时刻提醒自己,记得告诉自己RAM:你准备好了,我要在0.000000000000123456...在几秒钟内调用你的数据,然后再次Modem说:0.000000234567...秒开始给我下载,啊,键盘,老子很忙,你这个时候给我提交输入不是添乱!。。。。。。。。哎哟,大家都很累,好吗!
引入时钟(周期)的话,这些都简化了:比如
比如: CPU我接手了为广场铺砖的工作,于是带了一群只懂铺砖的人RAM、Modem、key、、用边长1去工作×只要告诉大家:A从第一块开始,B从100块开始,C从200块开始。。。这样大家可以同步工作了
而如果ABCDEFG...每个人都用自己规格的地砖开工,CPU准得急死!
简单说,时钟(周期)是指最小单位的地砖。
转自:为什么? CPU 工作需要时钟吗? - 知乎