文档

主题 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 中存放的值装入累加器”。看看值如何在寄存器之间移动。

取指-译码-执行可交互
CPUCUALUACCPC0100MARMDRCIR控制总线地址总线数据总线内存0100LDA 01100101ADD 01110110000501110003
取指 1:PC 保存下一条指令的地址
程序计数器中是 0100,也就是下一条指令的地址。
步骤 1 / 8
你运行的每个程序,都是这个周期重复数十亿次。

什么能让 CPU 更快

因素是什么为什么有帮助
时钟频率每秒的时钟周期数,单位 GHz每秒时钟周期越多,指令处理得越快
核心一个 CPU 内部相互独立的处理单元可以同时处理多条指令
高速缓存CPU 内部极快的存储器常用的数据和指令无需再到较慢的 RAM 去取

注意: 核心数翻倍不一定让速度翻倍。有些程序无法拆成能同时运行的部分,而且多个核心之间还需要协调。

指令集与嵌入式系统

指令集是 CPU 能理解和执行的所有机器码命令的列表,例如装入、加法、存储和跳转。

嵌入式系统是内置在更大设备中、只做一项专门工作的计算机,例如洗衣机、微波炉、汽车发动机管理系统或供暖恒温器中的控制器。嵌入式系统体积小、成本低、耗电少,但很难升级。

关键术语

冯·诺依曼体系结构
指令和数据共用同一个内存的设计。
寄存器
CPU 内部小而极快的存储单元。
总线
传送地址、数据或控制信号的一组并行导线。
高速缓存
CPU 中存放常用数据和指令的小而快的存储器。
嵌入式系统
内置在设备中、执行专门功能的计算机系统。

自我检测

哪个寄存器保存下一条指令的地址?查看答案

程序计数器(PC)。

描述取指阶段 MAR 和 MDR 中发生了什么。查看答案

PC 中的地址被复制到 MAR;该地址处的指令经数据总线从内存读入 MDR。

为什么更大的高速缓存能提升性能?查看答案

更多常用的数据和指令可以留在高速缓存中,CPU 等待较慢 RAM 的时间更少。

举出两个嵌入式系统的例子。查看答案

例如:洗衣机控制器、微波炉、智能恒温器、汽车防抱死系统。