第6章 中央处理器

CPU 是控制计算机自动完成取出指令和执行指令任务的部件,是计算机的核心,由数据通路和控制器两部分组成。

6.1 CPU 的功能和组成

CPU 的主要功能

  • 取指令:从存储器中取出指令
  • 译码:分析指令的操作码和地址码
  • 执行:控制数据通路完成运算
  • 中断处理:响应外部中断

CPU 的基本组成

CPU
├── 数据通路(Data Path)
│   ├── 通用寄存器
│   ├── 专用寄存器(PC、IR、MAR、MDR、PSW)
│   ├── 算术逻辑单元(ALU)
│   └── 数据总线
└── 控制器(Controller)
    ├── 指令部件
    ├── 时序部件
    ├── 微操作信号发生器(CU)
    └── 中断控制逻辑

6.2 CPU 中寄存器的设置

通用寄存器

  • 程序员可见,用于暂存数据或地址
  • 数量因 ISA 而异(RISC 通常较多)

专用寄存器

寄存器 功能
PC(程序计数器) 存放下一条指令的地址
IR(指令寄存器) 存放当前正在执行的指令
MAR(存储器地址寄存器) 存放访问主存的地址
MDR(存储器数据寄存器) 存放从主存读出或写入的数据
PSW(程序状态字) 存放标志位(溢出、进位、零等)

6.3 控制器的组成和功能

控制器的功能

功能 说明
指令控制功能 完成取指令、分析指令和执行指令的操作
时序控制功能 产生时序信号,保证各部件有节奏地工作
操作控制功能 产生微操作控制信号

控制器的基本组成

控制器
├── 指令部件
│   ├── 程序计数器(PC)
│   ├── 指令寄存器(IR)
│   ├── 指令译码器(ID)
│   └── 地址形成部件
├── 时序部件
│   ├── 脉冲源:产生基准时钟脉冲信号
│   ├── 启停控制逻辑:可靠地开放或封锁脉冲,保证首尾脉冲完整
│   └── 节拍信号发生器(脉冲分配器):产生各机器周期中的节拍信号
├── 微操作信号发生器(CU):产生微操作控制信号
└── 中断控制逻辑:控制中断处理的硬件逻辑

控制单元的输入输出

输入:时序信号 + 指令操作码译码信号 + 各部件状态反馈信号
输出:CPU 内部控制信号 + 送至主存/外设的控制信号

控制器的硬件实现方法

实现方法 特点
组合逻辑型(硬布线) 门电路 + 触发器构成的树形网络,速度快,设计复杂
存储逻辑型(微程序) 微指令存于控制存储器,可编程,灵活
组合逻辑和存储逻辑结合型 两者结合

6.4 时序系统

时序层次

层次 定义 持续时间
指令周期 从取指令到执行完该指令所需的全部时间 若干机器周期
机器周期(CPU 周期) CPU 完成一个基本操作的时间 若干时钟周期
时钟周期 主频的倒数,CPU 中最小的时间元素 固定
  • 每个机器周期都有一个对应的周期状态触发器
  • 通常以主存的工作周期(存取周期)为基础来规定 CPU 周期
  • CPU 访问主存也是一次总线传送,因此也称为总线周期

节拍和工作脉冲

时序信号 作用 说明
节拍电位 信息的载体,在数据通路中起开关作用 一个机器周期分为若干相等时间段
工作脉冲 打入脉冲,起到定时触发的作用 将稳定结果打入寄存器

节拍电位和工作脉冲的配合:节拍电位是控制信号,工作脉冲是定时触发信号。

多级时序系统

  • 小型计算机常用:指令周期 → 机器周期 → 节拍 → 工作脉冲(三级)
  • 微型计算机常用:指令周期 → 机器周期 → 时钟周期

在只设置机器周期和时钟周期的微型机中,时钟周期既可作电位信号,其前沿/后沿又可作脉冲触发信号。

6.5 控制方式

三种控制方式

控制方式 特点 优点 缺点
同步控制(固定时序) 统一时序信号控制,统一节拍数 设计简单,易于实现 有较多空闲时间浪费
异步控制(可变时序) 不采用统一时序,完成即发回答信号 无时间浪费,效率高 控制较复杂
联合控制 大部分同步,小部分特殊指令异步 折中

同步控制的特点:

  1. 以微操作序列最长的指令为标准确定节拍数
  2. 控制器产生统一的、顺序固定的、周而复始的节拍
  3. 简单指令可空着部分节拍不用

异步控制的特点:

  1. 每条指令需要多少节拍就产生多少节拍
  2. 指令执行完毕发出回答信号
  3. 控制器收到回答信号即开始执行下条指令

6.6 指令周期

方框图语言

采用方框图语言表示一条指令的指令周期:

符号 含义
□(方框) 一个 CPU 周期,框内表示数据通路操作
◇(菱形) 判别/测试,不单独占用 CPU 周期
~(公操作符号) 公操作(如中断查询)

信息传送路径

指令:     M → MDR → DBUS → IR
地址:     PC → ABUS → MAR → (取决于寻址方式)
数据:     寄存器↔寄存器:总线直接传送
           寄存器↔存储器:Ri → DBUS → MDR → M(写)
                         M → MDR → BUS → Ri(读)

双总线结构数据通路示例

数据通路结构:CPU 内部有 A 总线和 B 总线,控制信号 G 控制门电路。

ADD R2, R0 — (R0)+(R2)→ R0

PC → AR           (PC0, G, ARi)
M → DR            (R/W=R)
DR → IR           (DR0, G, IRi)
R2 → Y            (R2o, G, Yi)
R0 → X            (R0o, G, Xi)
R0 + R2 → R0      (+, G, R0i)
~                  (公操作)

SUB R1, R3 — (R3)-(R1)→ R3

PC → AR           (PC0, G, ARi)
M → DR            (R/W=R)
DR → IR           (DR0, G, IRi)
R3 → Y            (R3o, G, Yi)
R1 → X            (R1o, G, Xi)
R3 - R1 → R3      (-, G, R3i)
~                  (公操作)

6.7 微程序控制器

基本思想

将微操作控制信号按一定规则进行信息编码(代码化)形成控制字(微指令),一条机器指令对应一段微程序,存放在控制存储器中。

基本概念

概念 定义
微命令 控制部件向执行部件发出的最小控制命令
微操作 执行部件接受微命令后进行的操作
微指令 一个 CPU 周期中一组微命令的组合
微程序 微指令序列,一条机器指令对应一段微程序
控制存储器 存放微程序的高速存储器(简称控存)
微地址 控制存储器单元的地址

机器指令与微指令的关系

对比 主存储器 控制存储器
存储内容 机器指令和数据 微指令(微程序)
地址来源 PC → MAR 微地址寄存器 μAR
数据去向 MDR → IR 微指令寄存器 μIR

微程序控制器的工作过程

1. 从控存取"取机器指令"微程序(公用,通常放 0 号单元)
2. 完成从主存读取机器指令送往 IR
3. 机器指令操作码通过微地址形成部件产生对应微程序入口地址
4. 逐条取出微指令,执行微操作
5. 执行完对应微程序后,返回到取指微程序入口

微指令的编制方法举例

十进制加法指令(BCD 码加法,加 6 修正):

微程序流程图:

取指微程序 → R1+R2 → R2 → R2+R3 → R2 → 判断 Cy → Cy≠0 结束 / Cy=0 减 6

微地址的形成

微程序入口地址的确定

方式 说明
一级功能转移 操作码位数和位置固定,直接映射到微地址
多级功能转移 操作码位数和位置不固定时,先按类型转移,再按操作码细分
PLA/PROM 方式 操作码位数和位置都不固定时,用 PLA 或 PROM 翻译

后继微地址的产生

方式 说明 特点
计数器方式(增量方式) 设置 μPC,顺序执行时 μPC+1,转移时由微指令给出 微指令字较短,速度低,不易实现多路转移
断定方式(下址字段法) 微指令中设顺序控制字段,直接指定后继微地址 速度高,灵活性强

计数器方式中微指令格式:

微操作控制字段 | BAF(转移地址字段) | BCF(转移控制字段)

BCF 编码示例:

BCF 含义
000 顺序执行(μPC+1)
001 由操作码产生微地址
010 无条件转移(BAF → μPC)
011 条件转移(由测试结果确定)
100 测试循环
101 转微子程序
110 返回

微指令编码方式

编码方式 说明 并行度 字长
直接控制 1 位控制 1 个微操作
字段直接编码 分字段,每个字段编码控制一组互斥微操作 较短
字段间接编码 字段间有依赖关系,一个字段的译码受另一字段影响 更短

6.8 硬布线控制器(组合逻辑控制器)

基本思想

把控制部件看作产生固定时序控制信号的组合逻辑电路,由门电路和触发器构成树形网络。

控制信号 = f(操作码, 时序节拍, 状态标志)

模型机数据通路

全机采用中线结构,分为内部单总线和存储器总线(系统总线):

  • ALU(算术逻辑部件)
  • 通用寄存器组 R0~R3
  • Y(ALU 输入端寄存器)
  • Z(ALU 输出寄存器)
  • MAR、MDR、IR、PC

设计方法

1. 绘制指令流程图
   → 按指令类型分类,将每条指令归纳为微操作序列

2. 列出微操作时间表
   → 将微操作序列安排在对应机器周期的节拍和脉冲中

3. 微操作的逻辑综合
   → 以每个微操作为单位进行"同类项合并"
   → 用逻辑关系式综合,简化

微操作逻辑表达式示例

PCOUT = T0
MARIN = T0 + T3·JZ
READ  = T0 + T3·(STR + JZ)
MDROUT = T1 + T4·(ADD + AND)
MDRIN  = T4·STR
IRIN   = T1
ADDROUT = T3·JZ + T4·Z·JZ
RIN    = T4·LD + T6·(ADD + AND)
RIOUT  = T4·STR + T5·(ADD + AND)
YIN    = T4·(ADD + AND)
WRITE  = T4·STR

硬布线 vs 微程序

对比项 硬布线控制器 微程序控制器
速度 较慢
灵活性 低(修改需重新布线) 高(修改微程序即可)
设计复杂度 复杂 较简单
适用 RISC、高速处理器 CISC、复杂指令集
成本 较低

6.5 流水线工作原理

基本概念

流水线是将指令执行过程分解为多个子过程,各子过程由独立的功能部件并行处理,实现指令级并行。

典型5级流水线

IF(取指)→ ID(译码)→ EX(执行)→ MEM(访存)→ WB(写回)

理想情况下,流水线每个时钟周期完成一条指令,吞吐量提高到5倍。

流水线冒险

冒险类型 说明 解决方法
结构冒险 硬件资源冲突(如同一周期访问同一存储器) 分离指令Cache和数据Cache
数据冒险 后续指令依赖前面指令的结果 转发(旁路)、插入气泡、编译器调度
控制冒险 分支指令改变指令流 分支预测、延迟槽

6.6 CPU举例

RISC CPU

RISC处理器的典型特征:大量通用寄存器、固定指令长度、LOAD/STORE架构、硬布线控制、简单的寻址方式。代表:SPARC、MIPS、ARM、RISC-V。

Pentium微处理器

Intel x86架构的典型代表,采用CISC外部接口+RISC内部微操作的混合设计。指令流水线、分支预测、超标量执行等技术的综合应用。

6.7 计算机的供电

计算机系统对供电的基本要求:电压稳定、电流充足、散热良好。

  • 电源:将交流电转换为稳定的直流电(±5V、±12V等),现代CPU需多路独立供电
  • 散热:CPU功耗随主频提高而增加,需风冷/水冷等散热方案
  • 节能:动态电压频率调整(DVFS)、休眠状态等降低功耗的技术

考试重点

★★★ 第一梯队(必考)

考点 典型题型
微指令的编制方法(微指令格式设计) 设计题
微地址形成(一级/多级功能转移、计数器/断定方式) 设计题
指令周期方框图语言 + 微操作序列 分析 + 设计
硬布线控制器微操作逻辑综合 逻辑表达式推导

★★☆ 第二梯队

考点 典型题型
指令周期/机器周期/时钟周期关系 概念 + 关系
控制方式(同步/异步/联合) 对比简答
机器指令和微指令的关系 简答
微指令编码方式(直接/字段) 简答

★★☆ 第二梯队

考点 典型题型
流水线工作原理和冒险 分析 + 简答

★☆☆ 第三梯队

考点 典型题型
CPU 的组成和寄存器功能 简答
控制器的组成(指令部件/时序部件) 简答
硬布线 vs 微程序对比 对比表
时序系统(节拍/脉冲配合) 简答
流水线5级结构 简答
CPU举例(RISC/Pentium) 简答
计算机的供电 简答