中央处理器
复习
- 第三十六章:了解了程序、程序计数器与指令译码
- 第三十七章:了解了控制器如何产生控制信号、协调各部件
TL;DR
- CPU 主要由运算器(ALU)、控制器和寄存器组三部分构成
- 它按“取指 → 译码 → 执行 → 写回“的循环不停工作
- 前面造的 ALU、寄存器、存储器、控制器,到这里终于拼成了整机的大脑
正文
终于凑齐了
回头看看这一路:我们造出了 ALU(第十八章)、寄存器和存储器(第十八、二十二章)、时钟(第二十五章)、控制器(第三十七章)。它们各自都能干活,但一直散落着。这一章,把它们装到一起——这就是中央处理器(CPU,Central Processing Unit)。
CPU 的核心部件有三块:
- 运算器:就是 ALU,负责算术和逻辑运算
- 控制器:负责译码指令、按节拍发出控制信号
- 寄存器组:包括通用寄存器,以及程序计数器(PC)、指令寄存器(IR)、状态寄存器(PSW)等专用寄存器
再加上连接它们的数据通路,一台能“执行程序“的机器就成型了。
指令执行周期
CPU 的工作,说白了就是不断重复下面这个循环:
- 取指:按照 PC 的地址,从存储器里把指令取出来,放进 IR,同时让 PC 指向下一条
- 译码:控制器分析 IR 里的指令,搞清“要做什么运算、操作数在哪“
- 执行:驱动 ALU 或其他部件完成运算
- 访存(不一定有):如果指令要读/写内存,就访问存储器
- 写回:把结果写回寄存器或内存,更新状态标志
然后,回到第 1 步,继续下一条。这个循环快得惊人——现代 CPU 每秒能重复几十亿次。
数据通路
数据在各部件之间怎么流动,由数据通路决定。典型路径有:
- 寄存器 ↔ ALU:操作数送进 ALU,结果送回寄存器
- 存储器 ↔ 寄存器:取指令、读写数据
- 控制器 → 各部件:控制信号决定“谁开门、谁关门“
可以把它想象成城市的道路网,数据是车,控制信号是红绿灯。
一个完整的例子
来算 (a + b) * c,其中 a = 2、b = 3、c = 4:
MOV R1, #2 ; a = 2
MOV R2, #3 ; b = 3
MOV R3, #4 ; c = 4
ADD R4, R1, R2 ; R4 = a + b = 5
MUL R5, R4, R3 ; R5 = R4 * c = 20
CPU 会这样一步步走:
取指 MOV R1,#2 → 执行 R1 = 2
取指 MOV R2,#3 → 执行 R2 = 3
取指 MOV R3,#4 → 执行 R3 = 4
取指 ADD R4,R1,R2 → 执行 R4 = 5
取指 MUL R5,R4,R3 → 执行 R5 = 20
不管程序多复杂,拆开来都是这样一条条指令首尾相接。
分支与循环
程序不总是老老实实往下走。遇到 if、for 时,就需要跳转:
CMP R1, #0 ; 比较 R1 和 0
BLE ELSE ; 若 R1 <= 0,跳到 ELSE
MOV R2, #1 ; 否则 y = 1
JMP END
ELSE:
MOV R2, #0 ; y = 0
END:
CMP 会设置状态标志,BLE 根据标志决定要不要修改 PC。一旦 PC 被改成别处,程序就跳走了。循环本质上就是“往回跳“。
让 CPU 更快
照上面的流程,一条指令要好几拍才走完,听着就慢。工程师们想了两条路:
- 流水线:让多条指令的不同阶段重叠起来,就像工厂流水线一样,同一时刻有好几道工序在忙。这是第三十九章的内容。
- 缓存:CPU 比内存快太多,每次去内存取数据都要等半天。把常用数据放进缓存(第三十一章),能大幅减少等待。
这两招是现代 CPU 性能的两大支柱,后面都会讲到。
思考题
假设 CPU 按“取指 → 译码 → 执行 → 写回“四步执行,每一步要 1 个时钟周期。那么一条指令要 4 个周期,1000 条指令要 4000 个周期。
如果让这四步像工厂流水线一样重叠起来,理想情况下 1000 条指令大约需要多少个周期?为什么?
小结
知识点
- CPU 的三大组成部分
- 指令执行周期:取指、译码、执行、访存、写回
- 数据通路的概念
- 分支与循环的硬件实现
- 性能优化的两个方向:流水线与缓存
参考资料
- Wikipedia(zh):中央处理器:CPU 的基本概念和工作原理
- Wikipedia(zh):指令周期:CPU 执行指令的基本过程
- Wikipedia(zh):数据通路:数据通路的概念
推荐
思考题答案(仅供参考)
理想情况下约需要 1000 + 4 - 1 = 1003 个周期。因为流水线填满后,每个时钟周期都能完成一条指令,只有最开始“填流水线“的那几拍是额外的。相比 4000 个周期,速度提升了近 4 倍,这正是流水线的威力——也是第三十九章要展开的内容。
协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
封面图
设计师 | 南国微雪