Appearance
CPU的功能与基本结构
考情分析
CPU结构是第五章的基础,选择题常考各寄存器的功能、数据通路的连接关系。408真题中曾多次直接考"某操作将数据写入哪个寄存器",属于必掌握内容。
CPU的功能
CPU负责控制程序执行,具体包括:
- 指令控制:按顺序取指、译码、执行
- 操作控制:向各功能部件发送控制信号
- 时间控制:控制各操作的时序关系
- 数据加工:对数据进行算术运算和逻辑运算
- 中断处理:响应并处理异常与外部中断
CPU的基本组成
运算器
执行算术运算和逻辑运算,主要部件:
| 部件 | 名称 | 功能 |
|---|---|---|
| ALU | 算术逻辑单元 | 执行加减法、与或非等操作 |
| ACC | 累加器 | 存放操作数和运算结果 |
| MQ | 乘商寄存器 | 乘除法时存放操作数/商 |
| X | 通用操作数寄存器 | 暂存参与运算的操作数 |
| PSW | 程序状态字寄存器 | 存放运算结果的标志位(CF、ZF、SF、OF) |
控制器
解释指令、产生控制信号,主要部件:
| 部件 | 名称 | 功能 |
|---|---|---|
| PC | 程序计数器 | 存放下一条指令的地址,自动 +1(或 +指令字节数) |
| IR | 指令寄存器 | 存放当前正在执行的指令 |
| MAR | 存储器地址寄存器 | 存放要访问的存储器地址 |
| MDR | 存储器数据寄存器 | 存放从存储器读出或要写入存储器的数据 |
| CU | 控制单元 | 对 IR 中的操作码进行译码,产生各种控制信号 |
内部寄存器详解
PC — 程序计数器
- 宽度 = 存储器地址位数
- 顺序执行时,每取一条指令后自动递增
- 转移指令执行时,由指令给出新地址写入 PC
- 408 中通常认为对用户程序不可见(不能直接通过普通指令读写 PC 的值),但可以通过转移指令间接修改。部分架构(如 ARM 中 PC 为 R15)允许直接访问,具体需看题目约定
IR — 指令寄存器
- 宽度 = 指令字长
- 存放当前指令,供 CU 译码
- 程序员不可见
MAR — 存储器地址寄存器
- 宽度 = 存储器地址位数,决定最大寻址空间
- 每次访问内存前,先将地址送入 MAR
- CPU 内部的寄存器,不是主存的一部分
MDR — 存储器数据寄存器
- 宽度 = 存储器数据位数(通常等于机器字长)
- 读内存:数据先送到 MDR,再传给 CPU 内部其他寄存器
- 写内存:CPU 先将数据写入 MDR,再由 MDR 写入内存
PSW — 程序状态字寄存器
常见标志位:
| 标志 | 含义 |
|---|---|
| CF(进位标志) | 无符号运算产生进/借位 |
| ZF(零标志) | 运算结果为 0 |
| SF(符号标志) | 运算结果为负 |
| OF(溢出标志) | 有符号运算溢出 |
数据通路
CPU 内部数据通路是寄存器与运算部件之间传送数据的路径。
PC ──→ MAR ──→ 地址总线 ──→ 主存
│
IR ←── MDR ←── 数据总线 ←──┘
│
CU ──→ 控制信号 ──→ ALU、各寄存器
│
ACC ←─────────────── ALU 运算结果数据通路的实现方式:
- CPU 内部单总线:所有寄存器连到一条内部总线,简单但同一时刻只能传一个数据
- CPU 内部多总线:多条内部总线并行传输,提高效率
- 专用数据通路:部件间专用连线,速度最快但电路复杂
考点清单
- CPU = 运算器 + 控制器,MAR 和 MDR 在 CPU 内部(不在主存中)
- PC 存放下条指令地址;IR 存放当前指令
- MAR 宽度决定寻址空间大小;MDR 宽度通常等于机器字长
- PSW 由运算器负责更新,控制器读取用于条件判断
- 取指令时:
,同时