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×1的地砖是最简单的,只要给大家说:A你从第一块开始铺,B从100块开始,C从200块开始。。。。。。这样大家可以同步工作了
而如果ABCDEFG.....大家各用各自规格的地板砖来开工,CPU准得急死!
简单说,时钟(周期)就是为了规定一个最小单位的地板砖。
转自:为什么 CPU 需要时钟才能工作? - 知乎