← Back to Learning Notes

Lecture 17:知识 - CPU 的功能与结构

Chinese-language Computer Science 408 note: Lecture 17:知识 - CPU 的功能与结构. Original source available where applicable.

On this page

This note is currently available in Chinese. The original wording, formulas and diagrams are preserved to avoid an unverified technical translation.

描述: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 与微指令寄存器等为内部不可见资源。
  • 专用数据通路快但复杂,单总线简单但易冲突;三态门实现寄存器对公共总线的受控接入。