当前位置: 华文星空 > 知识

为什么 CPU 需要时钟才能工作?

2019-12-16知识

其实你上个理工类的本科,尤其是计算机系就都懂了。有具体的课程系统的给你讲这个事。

暂时没这个机会的话,我就尽量用简单的语言来解释一下这个事情。能听懂多少算多少哈。

CPU里可以粗略的认为是很多很多很多小电容。

充满电了算1,没充电算0。

每次计算就是这些小电容翻来覆去的充电放电。

很多小电容组成一个个基本的模块,比如输入0011输出0100

但从输入0011到实际输出0100是有一个延迟的。因为前面说了,电容要充电放电,这个需要时间。

这些小模块各种连接,组成复杂的功能。也就是前面小模块的输出会被后面模块当成输入。

那就有问题了,一方面,后面的模块要如何知道前面的模块到底是已经完成充电/放电了呢,还是正在充电放电呢?另一方面,路径越长从最开始输入到最终的输出的时间就越长,也就是路径长度不同延迟就不同,所以你很难保证每个针脚上的数据严格的同时到达。

所以就引入了时钟机制。

用一个统一的时钟脉冲来同步各个小模块。

脉冲没来,大家抓紧时间充电放电,脉冲来了,大家一起动。

你可以认为时钟脉冲来一下,CPU就动一下。下个时钟脉冲一直不来,CPU就一直不动。

对于同一个CPU来说自然是频率越高速度越快(动的次数越多)。

但动一下不见得能执行一条指令。实际上需要动很多下才能执行一条指令。

那到底要动几下呢?这事很难说,取决于CPU的架构和设计。

所以,不同架构的CPU很难直接通过频率比较性能。

(但不是说不同架构的CPU不能比,大家做同一个宏观任务,比如渲染网页,看谁快呗?)

相同架构和结构的CPU确实可以比。

所以才有超频这种技术,说白了就是加快时钟脉冲频率。但超频会带来许多问题,单位时间更多次数的充电放电会导致电流增大也就是CPU整体发热大大增加。另外充电放电有个速度问题,频率太快会导致有些小电容没有及时完成充电放电,进而发生不稳定的情况。

适当加电压可以加速充电放电的过程,可以增加超频后的稳定性。但副作用是CPU更热了,而且小电容实在太小了,电压稍微高一点可能就击穿了。