Skip to content

CPU的功能与基本结构

考情分析

CPU结构是第五章的基础,选择题常考各寄存器的功能、数据通路的连接关系。408真题中曾多次直接考"某操作将数据写入哪个寄存器",属于必掌握内容。

CPU的功能

CPU负责控制程序执行,具体包括:

  • 指令控制:按顺序取指、译码、执行
  • 操作控制:向各功能部件发送控制信号
  • 时间控制:控制各操作的时序关系
  • 数据加工:对数据进行算术运算和逻辑运算
  • 中断处理:响应并处理异常与外部中断

CPU的基本组成

CPU=运算器(ALU)+控制器(CU)

运算器

执行算术运算和逻辑运算,主要部件:

部件名称功能
ALU算术逻辑单元执行加减法、与或非等操作
ACC累加器存放操作数和运算结果
MQ乘商寄存器乘除法时存放操作数/商
X通用操作数寄存器暂存参与运算的操作数
PSW程序状态字寄存器存放运算结果的标志位(CF、ZF、SF、OF)

控制器

解释指令、产生控制信号,主要部件:

部件名称功能
PC程序计数器存放下一条指令的地址,自动 +1(或 +指令字节数)
IR指令寄存器存放当前正在执行的指令
MAR存储器地址寄存器存放要访问的存储器地址
MDR存储器数据寄存器存放从存储器读出或要写入存储器的数据
CU控制单元对 IR 中的操作码进行译码,产生各种控制信号

内部寄存器详解

PC — 程序计数器

  • 宽度 = 存储器地址位数
  • 顺序执行时,每取一条指令后自动递增
  • 转移指令执行时,由指令给出新地址写入 PC
  • 408 中通常认为对用户程序不可见(不能直接通过普通指令读写 PC 的值),但可以通过转移指令间接修改。部分架构(如 ARM 中 PC 为 R15)允许直接访问,具体需看题目约定

IR — 指令寄存器

  • 宽度 = 指令字长
  • 存放当前指令,供 CU 译码
  • 程序员不可见

MAR — 存储器地址寄存器

  • 宽度 = 存储器地址位数,决定最大寻址空间
  • 每次访问内存前,先将地址送入 MAR
  • CPU 内部的寄存器,不是主存的一部分

MDR — 存储器数据寄存器

  • 宽度 = 存储器数据位数(通常等于机器字长)
  • 读内存:数据先送到 MDR,再传给 CPU 内部其他寄存器
  • 写内存:CPU 先将数据写入 MDR,再由 MDR 写入内存

PSW — 程序状态字寄存器

常见标志位:

标志含义
CF(进位标志)无符号运算产生进/借位
ZF(零标志)运算结果为 0
SF(符号标志)运算结果为负
OF(溢出标志)有符号运算溢出

数据通路

CPU 内部数据通路是寄存器与运算部件之间传送数据的路径。

  PC ──→ MAR ──→ 地址总线 ──→ 主存

  IR ←── MDR ←── 数据总线 ←──┘

  CU ──→ 控制信号 ──→ ALU、各寄存器

  ACC ←─────────────── ALU 运算结果

数据通路的实现方式:

  • CPU 内部单总线:所有寄存器连到一条内部总线,简单但同一时刻只能传一个数据
  • CPU 内部多总线:多条内部总线并行传输,提高效率
  • 专用数据通路:部件间专用连线,速度最快但电路复杂

考点清单

  • CPU = 运算器 + 控制器,MAR 和 MDR 在 CPU 内部(不在主存中)
  • PC 存放下条指令地址;IR 存放当前指令
  • MAR 宽度决定寻址空间大小;MDR 宽度通常等于机器字长
  • PSW 由运算器负责更新,控制器读取用于条件判断
  • 取指令时:PCMAR主存MDRIR,同时 PC+1

真题练习