CPU 的基本结构
CPU 的功能
CPU 的功能
CPU 是计算机的核心部件,主要功能包括:
- 指令控制:取指令、分析指令、执行指令。
- 操作控制:产生控制信号,指挥各部件完成操作。
- 时间控制:控制各操作的执行时序。
- 数据加工:完成算术运算和逻辑运算。
- 处理中断和异常:响应外部中断,处理执行过程中出现的异常。
CPU 的基本组成
CPU 的基本组成
CPU 主要由运算器和控制器两大部分组成。运算器
- ALU:算术逻辑单元。
- GPR:通用寄存器组。
- ACC:累加寄存器。
- PSW:程序状态字寄存器。
- 暂存寄存器、移位器等。
- PC:程序计数器。
- IR:指令寄存器。
- ID:指令译码器。
- CU:控制单元。
- 时序与控制电路。
不同处理器的具体结构有所区别;MAR、MDR 等寄存器是否划归 CPU 内部,也取决于教材采用的模型。
运算器与控制器的区别
运算器与控制器的区别
记忆:运算器负责“算”,控制器负责“指挥”。
CPU 中的寄存器:用户可见与用户不可见
这里的“用户”指机器指令程序员,而不是普通计算机使用者。用户可见寄存器
用户可见寄存器
程序员能够通过机器指令直接或间接访问的寄存器。
补充:PC 通常属于程序员可见的控制类寄存器,但某些体系结构对其访问方式有限制。教材的分类口径可能略有不同。
用户不可见寄存器
用户不可见寄存器
主要供 CPU 内部控制和执行使用,通常不能被普通机器指令直接访问。
必考辨析
必考辨析
- PC:存放指令地址。
- IR:存放指令内容。
- MAR:存放访存地址。
- MDR:存放访存数据。
- PSW:保存程序状态及条件标志。
口诀:PC 找指令,IR 存指令;MAR 找数据,MDR 存数据。
指令周期:IF、ID、EX、MEM、WB
五个阶段的含义
五个阶段的含义
- IF(Instruction Fetch,取指):从指令存储器中取出指令,送入指令寄存器或流水线寄存器,并更新 PC。
- ID(Instruction Decode,译码):解析操作码,识别指令类型、源操作数和目的操作数,读取寄存器。
- EX(Execute,执行):进行算术逻辑运算、计算有效地址或判断分支条件等。
- MEM(Memory Access,访存):对需要访问数据存储器的指令进行读写操作。
- WB(Write Back,写回):将运算结果或读取的数据写回寄存器。
IF、ID、EX、MEM、WB 是经典五段流水线的划分,并不等同于所有处理器的统一指令周期定义。不同指令可能不需要执行全部阶段。
不同指令的执行过程
不同指令的执行过程
这里使用的是典型 RISC 五段流水线模型。
指令周期与时钟周期
指令周期与时钟周期
- 指令周期:完成一条指令所需的时间。
- 时钟周期:处理器时钟的基本时间单位。
- 机器周期:传统模型中完成一个基本操作所需的时间。
数据通路的组成
数据通路是 CPU 内部用于数据传送、存储和运算的硬件路径。主要由组合逻辑元件、时序逻辑元件以及连接它们的总线和选择电路构成。组合逻辑元件
组合逻辑元件
组合逻辑电路的输出只取决于当前输入,不具有独立的状态记忆功能。
时序逻辑元件
时序逻辑元件
时序逻辑电路的输出不仅与当前输入有关,还与存储的状态有关。
核心区别:组合逻辑负责计算,时序逻辑负责记忆状态。
数据通路的组织与分类
数据通路的组织与分类
常见分类方式:
- 按数据传送方式:单总线、双总线、多总线结构。
- 按功能组织:专用数据通路与共享数据通路。
- 按处理方式:非流水数据通路与流水数据通路。
单总线数据通路
单总线数据通路
单总线结构中,多个寄存器和功能部件共享一条内部总线:R1、R2、R3 等寄存器与 ALU、暂存寄存器都挂在 CPU 内部总线上,运算结果再通过数据通路写回寄存器。单总线结构的特点这只是抽象的操作序列,实际需要几个时钟周期取决于 ALU 的输入连接方式、寄存器设置和控制信号设计。
- 结构简单,硬件成本相对较低。
- 同一时刻通常只能有一个数据源驱动总线。
- 需要两个操作数的运算,可能需要分多次传送。
- 暂存寄存器常用于保存先读出的操作数或中间结果。
- 微操作的并行性受到总线资源限制。
微程序控制器
基本概念
基本概念
微程序控制器将机器指令的执行过程分解为一系列微操作,并用存放在控制存储器中的微指令控制这些操作。基本工作过程:
- 机器指令。
- 微地址形成与控制存储器寻址。
- 取出微指令。
- 产生控制信号,执行微操作。
- 形成下一条微指令地址。
微程序控制器的主要组成
微程序控制器的主要组成
不同教材或实现对寄存器的命名可能不同,复习时应以王道所用术语为准。
微指令的组成
微指令的组成
一条微指令通常包含两类信息:
- 操作控制字段:规定本条微指令要执行哪些微操作。
- 顺序控制字段:帮助确定下一条微指令的地址或转移方式。
微指令编码方式
微指令编码方式
考点:编码越紧凑,通常越需要译码;直接表示则更容易实现并行控制,但可能需要更长的微指令字。
硬布线控制器与微程序控制器
硬布线控制器与微程序控制器
注意:两者的实际速度取决于具体设计,表中的比较是考研常见的基本结论。
异常和中断
基本概念与分类
基本概念与分类
异常和中断都会使 CPU 暂时改变正常的指令执行流程,转而执行相应的处理程序。
在传统 408 复习框架中,常将异常进一步区分为故障、自陷和终止。
不同体系结构对异常类别的定义存在差异,考试时应优先遵循题目和教材的定义。
中断处理过程
中断处理过程
- 发现中断请求。
- 判断中断是否允许响应。
- 保存断点和必要的现场信息。
- 根据中断类型转入处理程序。
- 执行中断服务程序。
- 恢复现场并返回。
- 断点:被中断程序恢复执行时需要返回的位置。
- 现场:恢复程序运行所需的寄存器内容和状态信息。
- 中断服务程序:负责处理相应中断请求的程序。
中断响应的条件
中断响应的条件
通常需要综合考虑:
- 是否存在有效的中断请求。
- 中断是否被屏蔽。
- 当前 CPU 状态是否允许响应。
- 中断优先级和当前处理状态是否满足要求。
中断响应与中断处理不是同一个概念。响应是 CPU 决定接受请求并转入处理流程,处理是执行具体的服务程序。
中断与异常的易错点
中断与异常的易错点
- 中断通常异步,异常通常同步。
- 中断可能来自外设,异常通常由当前指令执行引起。
- 中断响应可能受屏蔽位和优先级影响。
- 异常处理后不一定都能恢复执行原程序。
- 流水线中发生异常时,处理器可能需要冲刷错误路径上的指令,并维护精确异常状态。
指令流水线
基本原理
基本原理
指令流水线把指令执行过程划分为多个阶段,让不同指令在不同阶段重叠执行。经典五段流水线为:例如,第一条指令在 ID 阶段时,第二条指令可以在 IF 阶段取指。如果没有冒险或资源冲突,多个阶段可以同时工作。
流水线的主要目标是提高指令吞吐率,而不是必然缩短单条指令的执行延迟。
流水线性能计算
流水线性能计算
设:
- :流水段数;
- :指令条数;
- :每个流水段的时钟周期;
- 忽略流水线寄存器开销、停顿和其他冒险。
计算示例
计算示例
假设五段流水线,每段耗时 ,执行 100 条指令,忽略一切额外开销。流水线执行时间:非流水执行时间:加速比:流水线效率:
结论:流水线段数为 5,并不意味着执行任意数量的指令都能获得 5 倍加速;指令数量较少时,流水线建立和排空的开销占比更大。
三类流水线冒险
三类流水线冒险
数据冒险:RAW、WAR、WAW
- RAW(写后读):后续指令需要读取前一条指令产生的数据。
- WAR(读后写):后续指令写入的位置与前一条指令要读取的位置相同。
- WAW(写后写):两条指令写入同一目的位置,写入顺序可能产生冲突。
流水线的其他考点
流水线的其他考点
- 流水线时钟周期:通常由最慢的流水段及流水寄存器开销决定。
- 流水线停顿:某阶段等待条件满足,导致后续指令暂时无法推进。
- 流水线冲刷:丢弃错误路径或不应继续执行的指令。
- 超标量:一个时钟周期可以启动多条指令。
- 超流水线:将执行过程划分为更细的阶段,以提高工作频率为目标。
多处理器的基本概念
多处理器的含义
多处理器的含义
多处理器系统利用多个处理器或处理核心协同完成任务,以提高系统的并行处理能力。需要区分:
- 多核处理器:一个处理器芯片中集成多个核心。
- 多处理器系统:系统中具有多个处理器,可以通过共享或互连结构协同工作。
- 多线程:通过多个执行线程组织程序,并不意味着一定有多个物理处理器。
常见体系结构
常见体系结构
注意:SMP 与 UMA 经常一起出现,但两者强调的角度不同;NUMA 也可以支持共享地址空间。
多处理器的性能问题
多处理器的性能问题
多处理器的性能并不等于处理器数量乘以单处理器性能,原因包括:
- 程序中存在不能并行执行的部分。
- 处理器之间需要通信和同步。
- 多个处理器可能竞争内存带宽或共享资源。
- 缓存一致性与数据依赖可能带来额外开销。
本章高频考点与易错点
高频考点
高频考点
- 运算器和控制器的组成与区别。
- 用户可见与用户不可见寄存器的划分。
- PC、IR、MAR、MDR、PSW 的作用。
- IF、ID、EX、MEM、WB 的含义。
- LOAD、STORE、ADD、分支指令的执行过程分析。
- 组合逻辑与时序逻辑的区别。
- 单总线结构及微操作序列。
- 微程序控制器的组成、微指令格式与编码方式。
- 硬布线控制器与微程序控制器的区别。
- 异常与中断、断点与现场的区分,中断响应与处理流程。
- 流水线执行时间、加速比、效率和吞吐率的计算。
- 结构、数据、控制冒险及解决方法。
- SMP、UMA、NUMA、MPP 的区分。
- 并行加速比的限制。
易错点
易错点
- PC 与 IR:PC 存放指令地址,IR 存放指令内容。
- MAR 与 MDR:MAR 存放访存地址,MDR 存放访存数据。
- PC 的可见性:PC 常归为程序员可见的控制类寄存器,但具体口径依教材而定。
- 指令周期不等于时钟周期:一条指令可包含多个时钟周期,流水线下多条指令可以重叠。
- 数据通路周期数:要根据部件连接和控制信号判断,不能只凭运算表达式。
- 中断与异常:中断通常异步、来自外部;异常通常同步、由当前指令引起。
- 断点与返回地址:断点不一定等于当前 PC 的值。
- 流水线性能:分清吞吐率、加速比、效率和单条指令延迟。
- RAW / WAR / WAW:按序五段流水线重点考 RAW,WAR、WAW 多见于乱序执行。
- 多处理器加速比:受不可并行部分限制,。
考前自查
1. CPU 的基本结构
1. CPU 的基本结构
- 掌握运算器和控制器的组成与区别。
2. CPU 中的寄存器
2. CPU 中的寄存器
- 区分用户可见与用户不可见寄存器。
- 掌握 PC、IR、MAR、MDR、PSW 的作用。
3. 指令周期
3. 指令周期
- 掌握 IF、ID、EX、MEM、WB 的含义。
- 能分析 LOAD、STORE、ADD、分支指令的执行过程。
4. 数据通路
4. 数据通路
- 区分组合逻辑和时序逻辑。
- 掌握单总线结构及微操作序列。
5. 微程序控制器
5. 微程序控制器
- 掌握主要组成、微指令格式与编码方式。
- 区分硬布线控制器和微程序控制器。
6. 异常和中断
6. 异常和中断
- 区分异常与中断、断点与现场。
- 掌握中断响应与处理流程。
7. 指令流水线
7. 指令流水线
- 会计算执行时间、加速比、效率和吞吐率。
- 掌握结构、数据、控制冒险。
8. 多处理器
8. 多处理器
- 区分 SMP、UMA、NUMA、MPP。
- 理解并行加速比的限制。
建议复习优先级:数据通路与微操作、流水线计算、寄存器与指令周期、微程序控制器、异常与中断、多处理器概念。前三项尤其适合结合王道课后题进行专项训练。