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

引言

第五章是全书“主心骨”。

前三章和第四章讲“数据与指令是什么”,本章讲“CPU 如何把它们真的跑起来”。

重点是三条线:

  1. 数据通路(寄存器、ALU、总线)。
  2. 控制通路(硬布线与微程序)。
  3. 时间通路(周期、节拍、流水线)。

图像化理解(Mermaid)


一、CPU 的功能与结构

1. CPU 的核心功能

  1. 指令控制:取指、译码、执行调度。
  2. 操作控制:产生控制信号。
  3. 时间控制:按节拍驱动部件动作。
  4. 数据加工:算术逻辑运算。
  5. 中断处理:响应异常与外部请求。

2. 关键寄存器

  1. PC:下一条指令地址。
  2. IR:当前指令。
  3. MAR:访存地址。
  4. MDR:访存数据。
  5. ACC / AC:部分机器把累加器作为默认运算暂存器。
  6. PSW:保存条件码和控制状态,如 ZF/CF/SF/OF、中断允许位。
  7. 通用寄存器组:保存操作数、中间结果与返回地址等。

3. CPU 组成再细分

  1. 运算器:ALU、暂存寄存器、累加器、状态寄存器。
  2. 控制器:CU、指令译码部件、时序系统、中断控制逻辑。
  3. 寄存器组:通用寄存器和专用寄存器共同承担高速数据交换。
  4. 内部连接结构:单总线、多总线或专用通路决定并行能力。

4. 寄存器的可见性与透明性

  1. 对机器语言或汇编程序员可直接使用的寄存器,称为可见寄存器,如通用寄存器、PC、部分状态寄存器。
  2. 对高级语言程序员而言,大量底层寄存器通常是透明的,由编译器和硬件间接使用。
  3. MAR、MDR、IR 这类寄存器常作为硬件执行流程的一部分出现,是否“可见”取决于机器体系结构定义。
  4. 真题常从“哪个寄存器对程序员可见”这一角度考查 CPU 结构理解。

二、指令周期与机器周期

1. 指令周期

执行一条指令所需全部时间。

2. 机器周期

完成一个基本操作(如一次访存)所需时间。

3. 时钟周期

最小时间单位;若干时钟周期组成机器周期。

4. 常见流程

1
取指周期 -> 间址周期(可选) -> 执行周期 -> 中断周期(可选)

补充理解:不同指令类型执行周期差异明显,访存类通常长于寄存器类。

5. 机器周期与节拍安排

  1. 一个机器周期内部还可细分为若干节拍或时钟拍。
  2. 常见分析层次:指令周期 > 机器周期 > 节拍 > 脉冲。
  3. 三级时序是考题高频点,核心在于说明“哪一个微操作在第几拍发生”。
  4. 定长指令周期控制简单,变长指令周期更利于性能但控制更复杂。

6. 时序控制方式

  1. 同步控制:所有操作受统一时钟节拍约束,实现简单,但常按最慢部件定节拍。
  2. 异步控制:按应答或状态就绪信号推进,适合速度差异大的部件,但电路复杂。
  3. 联合控制:同步与异步折中,既保留统一节拍框架,又允许部分阶段按就绪信号调节。

三、控制器设计

1. 硬布线控制

  1. 用组合时序逻辑直接产生控制信号。
  2. 速度快,但修改与扩展困难。

2. 微程序控制

  1. 把控制信号组织成微指令序列。
  2. 微指令存放在控制存储器(CM)中。
  3. 灵活易扩展,但控制路径可能稍慢。

3. 微指令格式

  1. 水平型:控制位多、并行性高。
  2. 垂直型:编码紧凑、译码开销更大。

4. 硬布线控制的实现思路

  1. 输入通常来自指令译码结果、节拍信号、状态标志和外部请求。
  2. 输出是各条控制线,如寄存器装入、总线选通、ALU 功能选择、读写命令。
  3. 本质是用组合逻辑和时序逻辑直接生成控制信号,因此速度快但修改代价高。

5. 微程序控制器的关键组成

  1. 控制存储器:保存全部微指令。
  2. 微地址寄存器:给出当前微指令地址。
  3. 微指令寄存器:保存当前取出的微指令。
  4. 微地址形成部件:决定后继微地址,可由下地址字段、判别测试或计数器产生。
  5. 编码字段设计需要在“并行性”与“控制存储容量”之间权衡。

6. 微指令操作控制字段表示法

  1. 直接表示法:每个控制信号对应一个控制位,直观、并行性强,但微指令字长较大。
  2. 编码表示法:把一组互斥控制信号编码后再译码,节省控制存储空间,但译码开销更高。
  3. 设计题常问“为何水平型快、垂直型省位”,本质就落在控制字段表示与译码复杂度上。

四、数据通路与微操作

1. 微操作

在一个节拍内由控制信号触发的寄存器传送或 ALU 动作。

2. 典型取指微操作

1
2
3
4
MAR <- PC
MDR <- M[MAR]
IR <- MDR
PC <- PC + 1

3. 并行与冲突

  1. 可并行的微操作可缩短周期。
  2. 对同一总线/寄存器冲突的操作不能同拍执行。

4. 数据通路结构

  1. 单总线结构简单,但同一时刻只能有一条主要传送路径,容易形成拍数瓶颈。
  2. 多总线结构可提高并行度,常用于增强寄存器与 ALU 的协同工作。
  3. 专用数据通路为关键部件提供固定连接,速度高,但硬件代价更大。

五、流水线基础

1. 流水线思想

把指令执行分阶段并重叠,提高吞吐率。

2. 指标

  1. 吞吐率:单位时间完成指令数。
  2. 加速比:流水线时间与非流水线时间比。
  3. 效率:各段忙碌程度。

3. 三类冒险

  1. 结构冒险:硬件资源冲突。
  2. 数据冒险:前后指令数据相关。
  3. 控制冒险:分支跳转导致取指不确定。

4. 常见缓解

  1. 增加资源(分离 I/D Cache)。
  2. 前递与暂停。
  3. 分支预测。

5. 流水线计算模板(补充考点)

若流水线段数为 k,执行指令数为 n,忽略冒险与停顿:

1
流水线拍数 = k + n - 1

该模板是本章最常用速算式。


六、中断与异常

1. 中断响应基本条件

  1. 中断请求有效。
  2. 中断允许位开放。
  3. 当前指令执行到可中断边界。

2. 处理流程

  1. 关中断并保护现场。
  2. 取中断向量,转入服务程序。
  3. 执行完恢复现场并开中断返回。

3. 精确异常与中断现场

  1. 精确异常要求异常点之前的指令结果全部可见,之后的结果全部撤销。
  2. 现场通常包括 PC、通用寄存器、PSW 以及必要的控制状态。
  3. 若采用中断隐指令或硬件压栈,本质目标都是保证“可继续执行原程序”。

4. 中断与异常区别

  1. 中断多由外部事件引发。
  2. 异常多由当前指令执行内部错误引发(如除零、非法指令)。

补充考点:现代流水线强调“精确异常”,即异常点之前指令全部提交,之后指令不生效。

5. 异常的常见分类

  1. 故障(Fault):可在修正原因后重新执行当前指令,如缺页。
  2. 自陷(Trap):指令执行完成后主动转入异常处理,如调试陷阱。
  3. 终止(Abort):严重异常,通常无法精确恢复到原执行点。

6. CPU 支持中断所需的硬件条件

  1. 数据通路侧需要支持保存断点、保存/恢复现场、装入中断向量入口地址。
  2. 控制器侧需要在指令边界判断是否响应中断,并插入中断隐指令序列。
  3. 微程序控制器需要为中断入口、现场保护、返回等动作准备对应微程序。
  4. 硬布线控制器则需要额外逻辑识别中断请求、生成保护现场与转移控制信号。

七、PDF 例题与考点补充(第5章)

例题 1:取指微操作排序

题目:给出 PC、MAR、MDR、IR 的取指流程顺序。

答案:

1
MAR<-PC -> MDR<-M[MAR] -> IR<-MDR -> PC<-PC+1

例题 2:流水线加速比

题目:5 段流水线,执行 20 条指令,忽略冒险。

解:

1
2
3
非流水时间 = 20×5 = 100拍
流水时间 = 5 + (20-1) = 24拍
加速比 = 100/24 ≈ 4.17

例题 3:数据冒险判断

题目:ADD R1,... 后紧跟 SUB ...,R1 属于哪类冒险。

答案:RAW(读后写)数据冒险。

例题 4:中断现场保护

题目:中断服务前为什么必须保护现场。

解:返回后需继续原程序,寄存器与标志必须可恢复。

例题 5:硬布线 vs 微程序

问:哪种更易扩展指令系统。

答:微程序控制。


八、高频易错点

  1. 把“指令周期、机器周期、时钟周期”当同一概念。
  2. 认为流水线一定降低单条指令延迟(通常改善吞吐,不一定缩短单条延迟)。
  3. 忽视中断响应时机必须在指令边界。
  4. 把异常与外中断处理流程完全等同。
  5. 微操作并行时忘记总线冲突。

九、本章速记清单

  1. CPU = 数据通路 + 控制通路 + 时序机制。
  2. 取指四步:MAR, MDR, IR, PC
  3. 控制器两类:硬布线、微程序。
  4. 冒险三类:结构、数据、控制。
  5. 中断流程:保护现场 -> 服务 -> 恢复返回。

总结

第五章把“静态结构”变成“动态执行”。

你要形成一个完整心智模型:

  1. 一条指令如何流经寄存器与ALU。
  2. 控制信号如何按节拍生成。
  3. 流水线和中断如何影响整体执行效率与正确性。

作者:[Austoin]
参考来源:E:\PDF\计算机组成原理(含新大纲考点).pdf、E:\PDF\2027计算机组成原理_高清带书签版.pdf(章节知识点整合)