主题 3 · 硬件
CPU 与取指-译码-执行周期
冯·诺依曼体系结构,CPU 的寄存器和总线,取指-译码-执行周期,以及什么能让 CPU 更快。
第 1 课,共 4 课大纲 3.1更新于 2026年10月31日
CPU 做什么
中央处理器(CPU)负责处理指令和数据。程序及其数据存放在内存(RAM)中。CPU 从内存取出每条指令,弄清它的含义,再执行它,每秒数十亿次。
在冯·诺依曼体系结构中,指令和数据一起存放在同一个内存里,CPU 一次处理一条指令。
CPU 内部
CPU 有三类部件:控制器、算术逻辑单元,以及一组叫作寄存器的小而极快的存储单元。
| 部件 | 作用 |
|---|---|
| CU 控制器 | 对指令译码,并发出控制信号管理 CPU 的其余部分和内存。 |
| ALU 算术逻辑单元 | 进行计算(+、−)和逻辑运算(AND、OR、比较)。 |
| PC 程序计数器 | 保存下一条要取的指令的地址。 |
| MAR 存储器地址寄存器 | 保存即将读取或写入的内存地址。 |
| MDR 存储器数据寄存器 | 保存刚从内存读出、或即将写入内存的数据或指令。 |
| CIR 当前指令寄存器 | 保存正在译码和执行的指令。 |
| ACC 累加器 | 保存 ALU 计算的结果。 |
总线
总线是连接 CPU 和内存的一组并行导线:
- 地址总线:把地址从 MAR 送到内存。只能单向传输。
- 数据总线:在 CPU 和内存之间传送数据和指令。双向传输。
- 控制总线:传送来自 CU 的读、写和时钟脉冲等信号。双向传输。
取指-译码-执行周期
在下面逐步演示这个周期。内存里有一个很小的程序:LDA 0110 的意思是“把地址 0110 中存放的值装入累加器”。看看值如何在寄存器之间移动。
取指-译码-执行可交互
取指 1:PC 保存下一条指令的地址
程序计数器中是 0100,也就是下一条指令的地址。
步骤 1 / 8
什么能让 CPU 更快
| 因素 | 是什么 | 为什么有帮助 |
|---|---|---|
| 时钟频率 | 每秒的时钟周期数,单位 GHz | 每秒时钟周期越多,指令处理得越快 |
| 核心 | 一个 CPU 内部相互独立的处理单元 | 可以同时处理多条指令 |
| 高速缓存 | CPU 内部极快的存储器 | 常用的数据和指令无需再到较慢的 RAM 去取 |
注意: 核心数翻倍不一定让速度翻倍。有些程序无法拆成能同时运行的部分,而且多个核心之间还需要协调。
指令集与嵌入式系统
指令集是 CPU 能理解和执行的所有机器码命令的列表,例如装入、加法、存储和跳转。
嵌入式系统是内置在更大设备中、只做一项专门工作的计算机,例如洗衣机、微波炉、汽车发动机管理系统或供暖恒温器中的控制器。嵌入式系统体积小、成本低、耗电少,但很难升级。
关键术语
- 冯·诺依曼体系结构
- 指令和数据共用同一个内存的设计。
- 寄存器
- CPU 内部小而极快的存储单元。
- 总线
- 传送地址、数据或控制信号的一组并行导线。
- 高速缓存
- CPU 中存放常用数据和指令的小而快的存储器。
- 嵌入式系统
- 内置在设备中、执行专门功能的计算机系统。
自我检测
哪个寄存器保存下一条指令的地址?查看答案
程序计数器(PC)。
描述取指阶段 MAR 和 MDR 中发生了什么。查看答案
PC 中的地址被复制到 MAR;该地址处的指令经数据总线从内存读入 MDR。
为什么更大的高速缓存能提升性能?查看答案
更多常用的数据和指令可以留在高速缓存中,CPU 等待较慢 RAM 的时间更少。
举出两个嵌入式系统的例子。查看答案
例如:洗衣机控制器、微波炉、智能恒温器、汽车防抱死系统。