← 返回学习笔记

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