首页 / 知识库 / 进大厂必备计算机基础 / 计算机组成原理

07 - 时钟、指令、流水线:CPU 为什么越来越快

「CPU 主频 3.0 GHz」「8 核」「性能提升 20%」……这些词到底啥意思?这一章讲清楚 CPU 快慢由什么决定,以及工程师用什么招数让它越来越快。

时钟:CPU 的节拍器

CPU 内部有一个时钟,像节拍器一样滴答滴答,发出一个个节拍(叫时钟周期)。CPU 的所有动作都踩着这个节拍进行,一个节拍走一小步。

  • 主频(时钟频率):一秒钟能打多少个节拍。
  • 单位是 Hz。3.0 GHz 就是一秒 30 亿个节拍

节拍越快,单位时间里能推进的步骤越多,CPU 自然越快。所以早年 CPU 竞赛就是拼主频:从几百 MHz 一路飙到 3、4 GHz。

就像跑步,步频越快跑得越快。主频就是 CPU 的「步频」。

但光提主频,撞墙了

主频不能无限提高。频率越高,CPU 发热越猛、耗电越大,到 4 GHz 左右就很难再往上冲了——再快就要烧掉了。于是工程师换思路,从别的地方榨性能。主要两招:流水线多核

招数一:流水线(让每个节拍都不闲着)

回忆第 04 章,执行一条指令要经过「取指 → 解码 → 执行 →……」好几个阶段。如果老老实实一条干完再干下一条,那么当指令在「执行」阶段时,负责「取指」的部件就闲着——浪费。

**流水线(Pipeline)**的思路:像工厂流水线一样,让各阶段同时忙不同的指令。

不用流水线(一条条来,很多部件在闲着):
指令1: 取指 解码 执行
指令2:            取指 解码 执行
指令3:                       取指 解码 执行

用流水线(错开,每个阶段都不闲):
指令1: 取指 解码 执行
指令2:      取指 解码 执行
指令3:           取指 解码 执行
指令4:                取指 解码 执行

指令 1 在「执行」时,指令 2 正在「解码」、指令 3 正在「取指」——三个部件同时都在干活。虽然每条指令走完全程时间没变,但单位时间里完成的指令数量大大增加,整体吞吐飙升。

就像洗衣店:第一批衣服在烘干时,第二批正在洗、第三批正在收。机器一刻不停,效率翻几倍。

流水线也有代价:万一遇到跳转指令(第 04 章的 if / for),CPU 提前「排好队」的后几条指令可能白排了,得清空重来。所以 CPU 还会「猜」跳转往哪走(叫分支预测),猜对就赚,猜错就得重来。

招数二:多核(人多力量大)

既然单个核心的频率提不上去,那就在一块芯片上塞好几个 CPU 核心,让它们并行干活。这就是「4 核」「8 核」「16 核」的意思。

  • 8 核,理想情况下能同时干 8 件事(真并行,对应操作系统篇第 04 章的「并行」)。
  • 但前提是任务能拆开并行。有些任务天生一步接一步,多核也帮不上忙。这也是为什么核越多不代表所有程序都成比例变快。

一个人挑不动更重的担子了,那就多找几个人一起挑。前提是活儿能分给多个人干。

衡量 CPU 快慢,不能只看主频

所以,判断一颗 CPU 强不强,不能只看主频数字。真正影响性能的因素综合起来有:

  • 主频:步频多快;
  • 核心数:能几路并行;
  • 每个节拍能干多少活(流水线、架构设计的优劣);
  • 缓存大小(第 06 章,缓存大命中率高,少去等内存)。

这就是为什么两颗主频一样的 CPU,性能可能差一大截——架构、缓存、核心数都在起作用。

小结

  • CPU 靠时钟打节拍,主频(如 3.0 GHz = 每秒 30 亿拍)越高越快。
  • 主频受发热和功耗限制,冲不上去,于是转向别的招数。
  • 流水线:让取指/解码/执行等阶段错开同时进行,各部件不闲着,大幅提升吞吐(代价是遇跳转可能白排队)。
  • 多核:一块芯片塞多个核心并行干活,但要求任务能拆开。
  • 衡量 CPU 性能要综合看主频、核心数、架构、缓存,不能只看主频数字。

下一章 → 08 - 负数和小数在计算机里长什么样 | 回到 README 目录