Lecture 17:知识 - CPU 的功能与结构
408 学习笔记:Lecture 17:知识 - CPU 的功能与结构。保留原有知识内容、公式与图示;有对应原件时提供查看和下载入口。
本页目录
描述:CPU 不只是 ALU:它通过控制器按时间发出微操作信号,让运算器、寄存器、主存与 I/O 协同。读结构图时,先分出运算器与控制器,再追踪数据通路和控制信号。
5.1 CPU 的基本功能
| 功能 | 含义 |
|---|---|
| 指令控制 | 取指、分析、执行,完成程序顺序控制 |
| 操作控制 | 从指令导出各部件所需控制信号,并让部件按要求动作 |
| 时间控制 | 按正确时序提供控制信号,协调各微操作 |
| 数据加工 | 完成算术、逻辑、移位等处理 |
| 中断处理 | 响应异常情况和特殊请求,并转入相应服务流程 |
- 一条机器指令在硬件上会分解为若干微操作;“操作控制”说明做什么,“时间控制”说明何时做,两者缺一不可。
- CPU 的工作建立在存储程序之上:PC 给出取指地址,控制器解释 IR 中的指令,再驱动数据通路完成执行。
flowchart LR
PC["PC:下一条待取指令地址"] --> MAR["MAR:主存地址"]
MAR --> MEM["主存"]
MEM <--> MDR["MDR:主存数据缓冲"]
MDR --> IR["IR:当前指令"]
IR --> CU["控制器 CU"]
CU -. "控制与时序信号" .-> DP["运算器与寄存器数据通路"]
MDR <--> DP
DP --> PSW["PSW:状态/条件码"]
PSW --> CU
5.2 程序员可见与不可见寄存器
| 类别 | 寄存器 | 原因/作用 |
|---|---|---|
| 可见 | PC | 汇编程序、转移与调试可涉及程序地址 |
| 可见(受限) | BR | 基址寄存器可见但通常由 OS 控制,普通用户不可任意修改 |
| 可见 | PSW | 程序状态/条件码,影响条件转移与状态切换 |
| 可见 | 通用寄存器 | 程序显式保存操作数、地址、中间结果 |
| 不可见 | MAR、MDR、IR、微指令寄存器 | CPU 内部完成访存、取指和微控制,程序员不直接编码访问 |
- “程序员可见”是 ISA/汇编层面可用或可观察的资源;不表示任何用户态程序都拥有完整修改权限。表中 BR 的分类遵循源 PDF 的教材模型:它对系统程序可见但由 OS 控制;实际 ISA 可能用专用重定位寄存器、页表基址寄存器或普通通用寄存器承担类似作用,权限也可能不同。
- MAR 保存访问主存的地址,MDR 暂存主存数据,IR 保存当前指令,微指令寄存器服务于微程序控制;它们不应与普通通用寄存器混淆。
5.3 运算器基本结构
| 部件 | 主要职责 |
|---|---|
| ALU | 算术与逻辑运算 |
| 通用寄存器组 | 暂存源/目的操作数、中间结果和地址,如 AX、BX、CX、DX、SP |
| 暂存寄存器 | 缓存来自主存的数据,避免覆盖通用寄存器已有内容 |
| 累加寄存器 ACC | 暂存 ALU 结果,常用于累加式运算 |
| PSW | 保存 OF、SF、ZF、CF 等状态/条件标志,参与条件微操作形成 |
| 移位器 | 对结果逻辑/算术移位 |
| 计数器 | 控制乘除等迭代操作步数 |
- SP 是栈顶指针,既属于寄存器组,又在过程调用中承担特定寻址职责。
- 暂存寄存器与 ACC 的存在反映了微操作期间需要中间缓冲:不能随意占用程序可见寄存器,否则会破坏原有操作数。
5.3.1 原图中的组合元件与时序元件
原 PDF 第 4 页把运算器拆成两类,不能只记 ALU 和通用寄存器:
| 类别 | 元件与作用 |
|---|---|
| 组合逻辑 | ALU 做算术/逻辑或直送;加法器做加减(减法可由补码加法实现);乘法器/除法器承担相应运算;三态门决定是否驱动公共线;MUX 从多路输入中选一路;译码器把编码后的选择信号转换成具体某一路的使能信号 |
| 时序存储 | MAR、MDR、IR、PC、PSW 等专用寄存器,运算用暂存寄存器,以及由读/写使能和寄存器编号选择的通用寄存器组 |
若有 $2^n$ 个备选功能或输入,通常用 $n$ 位控制码选择其一;译码器可把 $n$ 位编码转换为至多 $2^n$ 条互斥选择线。这里的“组合”指输出由当前输入决定,“时序”指寄存器能跨时钟边界保存状态;三态门的高阻态表示暂不驱动总线,不能当作第三个普通二进制值。
原图还列出可带的寄存器附加功能:移位(包括用左移表示乘 $2^k$ 的有限条件)、自增/自减(如顺序取指中的 PC 更新)、符号扩展、零扩展和按位取反。符号扩展复制符号位,零扩展补 0;二者对最高位为 1 的窄数据给出不同宽数据,不能混用。具体寄存器是否内建这些功能由数据通路设计决定,不意味着每个通用寄存器都必须具备。
5.4 ALU 与寄存器的连接方式
5.4.1 专用数据通路
按指令执行过程中数据/地址的流向专门铺设连线,常以 MUX 多路选择器或三态门安排多源选择。
| 优点 | 缺点 |
|---|---|
| 数据冲突少、可并行传输、性能高 | 连线和控制复杂、硬件量大、不易实现 |
5.4.2 单总线数据通路
所有寄存器输入端、输出端连接到同一公共总线。
| 优点 | 缺点 |
|---|---|
| 结构简单、硬件较省、易实现 | 同一时刻总线通常只能由一个源驱动,传输冲突多、微操作需分时,性能较低 |
定义:#三态门
三态门除 0、1 外还可呈高阻态,用于把寄存器受控接入公共总线。例如 SRout 有效时开放 SR 输出三态门,使 SR 驱动总线;无效时 SR 与总线断开。多源共用单总线时,必须保证不会有多个输出三态门同时使能。
5.5 控制器在整体中的位置
控制器接收 IR 的操作码、PSW 状态、时钟/中断等信息,产生寄存器读写、ALU 功能选择、总线驱动、主存读写等控制信号。运算器负责“算”,控制器负责“让谁在何时经哪条路算”。
- 运算器数据通路与控制器并不是互相独立:控制器通过微操作信号选择 MUX、打开三态门、装入寄存器、发起存储器读写。
- 后续的硬布线控制、微程序控制、指令周期和流水线,都是围绕“如何更快更正确地产生这些控制信号”展开。
题型:#CPU结构辨析
第一部分:判断方法
- 题问“保存当前指令”答 IR;“保存待访问主存地址”答 MAR;“暂存读/写主存数据”答 MDR;“程序顺序地址”答 PC。
- 题问“哪项可被汇编程序直接使用”优先选通用寄存器、PC/PSW 等 ISA 可见资源;微指令寄存器、MAR/MDR/IR 是内部资源。
- 题问总线冲突或硬件量:专用通路性能高而复杂,单总线简单而需分时。
相关知识
- 科目导航:计算机组成原理导航
- 阅读顺序:上一篇:高级语言与机器级代码的对应 · 下一篇:指令执行过程
- 关联专题:进程、线程与现场
5.6 本节复盘
- CPU 具有指令、操作、时间、数据加工和中断处理五项核心功能;控制信号由“做什么”和“何时做”两部分决定。
- 运算器含 ALU、寄存器、PSW、移位器、计数器等;控制器驱动这些部件协同。
- PC、PSW、通用寄存器等程序可见,MAR、MDR、IR 与微指令寄存器等为内部不可见资源。
- 专用数据通路快但复杂,单总线简单但易冲突;三态门实现寄存器对公共总线的受控接入。