【王道考研·计算机组成原理】第5章 中央处理器(整章完整版)

【王道考研·计算机组成原理】第5章 中央处理器(整章完整版)
Austoin引言
第五章是全书“主心骨”。
前三章和第四章讲“数据与指令是什么”,本章讲“CPU 如何把它们真的跑起来”。
重点是三条线:
- 数据通路(寄存器、ALU、总线)。
- 控制通路(硬布线与微程序)。
- 时间通路(周期、节拍、流水线)。
图像化理解(Mermaid)
mindmap
root((第5章 中央处理器))
CPU组成
运算器
控制器
寄存器组
指令执行
取指
译码
执行
写回
控制器
硬布线
微程序
控制存储器
流水线
吞吐率
加速比
冒险
中断
响应条件
现场保护
返回
一、CPU 的功能与结构
1. CPU 的核心功能
- 指令控制:取指、译码、执行调度。
- 操作控制:产生控制信号。
- 时间控制:按节拍驱动部件动作。
- 数据加工:算术逻辑运算。
- 中断处理:响应异常与外部请求。
2. 关键寄存器
- PC:下一条指令地址。
- IR:当前指令。
- MAR:访存地址。
- MDR:访存数据。
- ACC / AC:部分机器把累加器作为默认运算暂存器。
- PSW:保存条件码和控制状态,如
ZF/CF/SF/OF、中断允许位。 - 通用寄存器组:保存操作数、中间结果与返回地址等。
3. CPU 组成再细分
- 运算器:ALU、暂存寄存器、累加器、状态寄存器。
- 控制器:CU、指令译码部件、时序系统、中断控制逻辑。
- 寄存器组:通用寄存器和专用寄存器共同承担高速数据交换。
- 内部连接结构:单总线、多总线或专用通路决定并行能力。
4. 寄存器的可见性与透明性
- 对机器语言或汇编程序员可直接使用的寄存器,称为可见寄存器,如通用寄存器、PC、部分状态寄存器。
- 对高级语言程序员而言,大量底层寄存器通常是透明的,由编译器和硬件间接使用。
- MAR、MDR、IR 这类寄存器常作为硬件执行流程的一部分出现,是否“可见”取决于机器体系结构定义。
- 真题常从“哪个寄存器对程序员可见”这一角度考查 CPU 结构理解。
二、指令周期与机器周期
1. 指令周期
执行一条指令所需全部时间。
2. 机器周期
完成一个基本操作(如一次访存)所需时间。
3. 时钟周期
最小时间单位;若干时钟周期组成机器周期。
4. 常见流程
1 | 取指周期 -> 间址周期(可选) -> 执行周期 -> 中断周期(可选) |
补充理解:不同指令类型执行周期差异明显,访存类通常长于寄存器类。
5. 机器周期与节拍安排
- 一个机器周期内部还可细分为若干节拍或时钟拍。
- 常见分析层次:指令周期 > 机器周期 > 节拍 > 脉冲。
- 三级时序是考题高频点,核心在于说明“哪一个微操作在第几拍发生”。
- 定长指令周期控制简单,变长指令周期更利于性能但控制更复杂。
6. 时序控制方式
- 同步控制:所有操作受统一时钟节拍约束,实现简单,但常按最慢部件定节拍。
- 异步控制:按应答或状态就绪信号推进,适合速度差异大的部件,但电路复杂。
- 联合控制:同步与异步折中,既保留统一节拍框架,又允许部分阶段按就绪信号调节。
三、控制器设计
1. 硬布线控制
- 用组合时序逻辑直接产生控制信号。
- 速度快,但修改与扩展困难。
2. 微程序控制
- 把控制信号组织成微指令序列。
- 微指令存放在控制存储器(CM)中。
- 灵活易扩展,但控制路径可能稍慢。
3. 微指令格式
- 水平型:控制位多、并行性高。
- 垂直型:编码紧凑、译码开销更大。
4. 硬布线控制的实现思路
- 输入通常来自指令译码结果、节拍信号、状态标志和外部请求。
- 输出是各条控制线,如寄存器装入、总线选通、ALU 功能选择、读写命令。
- 本质是用组合逻辑和时序逻辑直接生成控制信号,因此速度快但修改代价高。
5. 微程序控制器的关键组成
- 控制存储器:保存全部微指令。
- 微地址寄存器:给出当前微指令地址。
- 微指令寄存器:保存当前取出的微指令。
- 微地址形成部件:决定后继微地址,可由下地址字段、判别测试或计数器产生。
- 编码字段设计需要在“并行性”与“控制存储容量”之间权衡。
6. 微指令操作控制字段表示法
- 直接表示法:每个控制信号对应一个控制位,直观、并行性强,但微指令字长较大。
- 编码表示法:把一组互斥控制信号编码后再译码,节省控制存储空间,但译码开销更高。
- 设计题常问“为何水平型快、垂直型省位”,本质就落在控制字段表示与译码复杂度上。
四、数据通路与微操作
1. 微操作
在一个节拍内由控制信号触发的寄存器传送或 ALU 动作。
2. 典型取指微操作
1 | MAR <- PC |
3. 并行与冲突
- 可并行的微操作可缩短周期。
- 对同一总线/寄存器冲突的操作不能同拍执行。
4. 数据通路结构
- 单总线结构简单,但同一时刻只能有一条主要传送路径,容易形成拍数瓶颈。
- 多总线结构可提高并行度,常用于增强寄存器与 ALU 的协同工作。
- 专用数据通路为关键部件提供固定连接,速度高,但硬件代价更大。
五、流水线基础
1. 流水线思想
把指令执行分阶段并重叠,提高吞吐率。
2. 指标
- 吞吐率:单位时间完成指令数。
- 加速比:流水线时间与非流水线时间比。
- 效率:各段忙碌程度。
3. 三类冒险
- 结构冒险:硬件资源冲突。
- 数据冒险:前后指令数据相关。
- 控制冒险:分支跳转导致取指不确定。
4. 常见缓解
- 增加资源(分离 I/D Cache)。
- 前递与暂停。
- 分支预测。
5. 流水线计算模板(补充考点)
若流水线段数为 k,执行指令数为 n,忽略冒险与停顿:
1 | 流水线拍数 = k + n - 1 |
该模板是本章最常用速算式。
六、中断与异常
1. 中断响应基本条件
- 中断请求有效。
- 中断允许位开放。
- 当前指令执行到可中断边界。
2. 处理流程
- 关中断并保护现场。
- 取中断向量,转入服务程序。
- 执行完恢复现场并开中断返回。
3. 精确异常与中断现场
- 精确异常要求异常点之前的指令结果全部可见,之后的结果全部撤销。
- 现场通常包括 PC、通用寄存器、PSW 以及必要的控制状态。
- 若采用中断隐指令或硬件压栈,本质目标都是保证“可继续执行原程序”。
4. 中断与异常区别
- 中断多由外部事件引发。
- 异常多由当前指令执行内部错误引发(如除零、非法指令)。
补充考点:现代流水线强调“精确异常”,即异常点之前指令全部提交,之后指令不生效。
5. 异常的常见分类
- 故障(Fault):可在修正原因后重新执行当前指令,如缺页。
- 自陷(Trap):指令执行完成后主动转入异常处理,如调试陷阱。
- 终止(Abort):严重异常,通常无法精确恢复到原执行点。
6. CPU 支持中断所需的硬件条件
- 数据通路侧需要支持保存断点、保存/恢复现场、装入中断向量入口地址。
- 控制器侧需要在指令边界判断是否响应中断,并插入中断隐指令序列。
- 微程序控制器需要为中断入口、现场保护、返回等动作准备对应微程序。
- 硬布线控制器则需要额外逻辑识别中断请求、生成保护现场与转移控制信号。
七、PDF 例题与考点补充(第5章)
例题 1:取指微操作排序
题目:给出 PC、MAR、MDR、IR 的取指流程顺序。
答案:
1 | MAR<-PC -> MDR<-M[MAR] -> IR<-MDR -> PC<-PC+1 |
例题 2:流水线加速比
题目:5 段流水线,执行 20 条指令,忽略冒险。
解:
1 | 非流水时间 = 20×5 = 100拍 |
例题 3:数据冒险判断
题目:ADD R1,... 后紧跟 SUB ...,R1 属于哪类冒险。
答案:RAW(读后写)数据冒险。
例题 4:中断现场保护
题目:中断服务前为什么必须保护现场。
解:返回后需继续原程序,寄存器与标志必须可恢复。
例题 5:硬布线 vs 微程序
问:哪种更易扩展指令系统。
答:微程序控制。
八、高频易错点
- 把“指令周期、机器周期、时钟周期”当同一概念。
- 认为流水线一定降低单条指令延迟(通常改善吞吐,不一定缩短单条延迟)。
- 忽视中断响应时机必须在指令边界。
- 把异常与外中断处理流程完全等同。
- 微操作并行时忘记总线冲突。
九、本章速记清单
- CPU = 数据通路 + 控制通路 + 时序机制。
- 取指四步:
MAR, MDR, IR, PC。 - 控制器两类:硬布线、微程序。
- 冒险三类:结构、数据、控制。
- 中断流程:保护现场 -> 服务 -> 恢复返回。
总结
第五章把“静态结构”变成“动态执行”。
你要形成一个完整心智模型:
- 一条指令如何流经寄存器与ALU。
- 控制信号如何按节拍生成。
- 流水线和中断如何影响整体执行效率与正确性。
作者:[Austoin]
参考来源:E:\PDF\计算机组成原理(含新大纲考点).pdf、E:\PDF\2027计算机组成原理_高清带书签版.pdf(章节知识点整合)








