第六章 控制系统与CPU
6.1 控制器概述 (CU Control Unit)
6.1.1 指令执行的基本步骤
CPU (Central Process Unit) 中央处理器 = 控制器 + 运算器ALU + (Cache)
取指令
- 根据PC提供的指令地址, 从存储器中取出所要执行的指令
分析指令
- 对取出指令译码分析, 产生相应操作的控制电位, 参与形成该指令功能所需要的全部控制命令(微操作控制信号)
- 根据寻址方式, 形成操作数的有效地址 or 转移地址
执行指令
-
根据指令功能, 执行指令所规定的操作
-
根据需要, 保存操作结果
-
若没有异常情况或特殊请求, 取出并执行下一条指令
![](https://i-blog.csdnimg.cn/blog_migrate/220a017ba303a964d051e682041dfed6.png#pic_center)
6.1.2 控制器的基本功能
控制指令的正确执行
-
指令流出控制: 将指令送入IR
-
分析指令和执行指令的控制: 再送入ID译码分析(确定操作性质+形成有效地址), 形成操作控制信号序列
-
指令流向的控制: 下条指令地址的形成控制
控制程序和数据的输入及结果的输出
异常情况和特殊请求的处理
6.1.3 控制器的组成
指令部件
- 程序计数器PC: (1) 增量可由自己也可由ALU (2) 位数与MAR位数相同
- 指令寄存器IR: 存放当前正在执行的指令
- 指令译码器ID: (1) 译码分析指令操作码, 产生操作控制电位 (2) 对寻址方式字段译码分析
- 地址形成部件: 形成操作数有效地址
时序控制部件
微操作序列由严格的时间顺序要求
- 脉冲源: 产生一定频率的主时钟脉冲
- 启停电路: 控制整个机器工作的启动和停止
- 时序信号发生器: 产生各种时序信号(周期, 节拍, 脉冲)
微操作控制信号形成部件
根据ID提供的操作控制电位, 时序部件的时序信号, 有关状态条件, 形成微操作控制信号
中断控制逻辑
程序状态寄存器PSR(Program State Register)
存放内容称做"程序状态字PSW", e.g. 进位, 溢出, 结果零
控制台
实现人与机器通信
6.1.4 控制器的组成方式
采用什么方式形成微操作控制信号
组合逻辑型
(硬联逻辑/硬布线逻辑)其微操作控制信号是由门电路组成的复杂树形网络构成的
优点:速度快
缺点:设计, 调试, 维修较困难; 难以实现自动化; 形成后难以增加/改变控制功能
存储逻辑型
(微程序控制器)把微操作信号代码化, 将机器指令转化为微程序存入控制存储器中
优点: 设计规整; 调试, 维修便利; 扩充/改变控制功能容易; 易实现自动化设计
缺点: 执行速度较慢
组合逻辑与存储逻辑结合型
PLA控制器
组合逻辑型和存储逻辑性结合的产物
小结
这几种控制器只是微操作控制信号发生器的结构和原理不同, 而外部的输入条件和输出结果几乎相同
6.2 控制器的控制方式与时序系统
6.2.1 控制方式
同步控制方式
任何指令的运行或指令中各个微操作的执行, 均有确定的具有统一基准时标的时序信号所控制
(1) 采用中央控制与局部控制相结合的方法
统一节拍的控制称为中央控制(大多数指令能在统一的节拍内完成), 在延长节拍内的控制称为局部控制
不能完成时, 插入若干局部节拍, 再返回中央节拍
(2) 采用不同的机器周期和延长节拍的方法
a. 一条指令执行过程划分为若干机器周期 b.每个周期划分为固定的节拍 c.每个节拍都可根据需要延长一个节拍
(3) 采用分散节拍的方法
需要多少节拍, 时序部件就分发多少节拍
异步控制方式
采用问答方式进行时序协调
没有时间上的浪费, 效率高, 但设计复杂废设备
联合控制方式
在功能部件内部采用同步方式, 功能部件之间采用异步方式
e.g. CPU内部同步, CPU访问外设时异步
6.2.2 时序系统
指令周期
"取指令+分析指令+执行指令"时间
机器周期(CPU周期)
分类为: 取值周期, 取数周期, 执行周期, 中断周期
通常以主存周期为基础来规定CPU周期
节拍
将一个机器周期等分成若干节拍
一个节拍电位信号的宽度取决于CPU完成一个基本操作的时间
脉冲
一个节拍内设置的一个或几个工作脉冲
脉冲前沿用于打入运算结果(或传送), 脉冲后沿用于周期的切换
6.3 CPU总体结构
6.3.1 寄存器设置
(1) 指令寄存器IR (2) 程序计数器PC (3) 累加寄存器AC (4) 程序状态寄存器PSR (5) 地址寄存器MAR (6) 数据寄存器MDR
(2)(3)(4)用户可用
同时还设置暂存器TEMP, 暂存中间结果
(7) 通用寄存器: 一组程序可访问的, 具有多种功能的寄存器
6.3.2 数据通路结构
数据通路: 信息传送的基本路径
CPU内部: 单总线IBUS, 运算器与寄存器之间的信息传输通道
单总线
![](https://i-blog.csdnimg.cn/blog_migrate/c15af6663491db896edaa4bd0f7c89a8.png#pic_center)
双总线
B总线(接收总线) F总线(发送总线)
6.3.3 指令流程分析
基本解题步骤
(1) 写出指令功能
(2) 取指令
(3) 执行部分
(4) 控制信号序列
取指令
单总线取指令
(1) (PC)->MAR, Read, (PC)+1->Z //单总线得送到Z暂存
(2) (Z)->PC
(3) (M->MDR)->IR
双总线取指令
(1) (PC)->MAR, Read
(2) (PC)+1->PC //发送总线会冲突,所以得分开
(3) (M->MDR)->IR
单总线转移指令
JC D IR:(操作码+D)
(1) (PC)->MAR, Read, (PC)+1->Z //单总线得送到Z暂存
(2) (Z)->PC
(3) (M->MDR)->IR
(4) IF C=1 (PC)->Y
(5) (Y)+IR(D部分)->Z
(6) (Z)->PC
控制信号序列问题
双总线结构中, 如果没有总线连接器Gon
用F = B 替换 Gon
注意点
二目运算中, 先访问操作数, 暂存至TEMP
再访问目的数, 直接放到Y
运算后可以直接放入MDR然后写入, 因为地址已经在MAR中
6.4 模型机
字长16位, 双总线结构 主存64K * 16位
6.4.1 一些指令
JSR 转移地址(PC)+D
(1) (SP)-1->SP, MAR
(2) (PC)->MDR, Write
(3) (PC)+D->PC //D: IR(D部分)
RTS
(1) (SP)->MAR, Read
(2) (M->MDR)->PC
(3) (SP)+1->SP
6.4.2 时序系统
机器周期: 每个机器周期可以完成一次主存的读写
FT: 取指周期
ST: 取源周期
DT: 取目的周期
ET: 执行周期
IT: 中断周期 DMA: DMA周期
6.4.3 操作流程
FT
4个节拍
ST
4节拍, 变址寻址需重复一次, 8节拍(先取后面16位变址值, 再和(Rs)相加形成有效地址)
如果是寄存器寻址, 跳过
DT
非MOV: 2节拍, 变址寻址为4+2=6节拍(读2次主存)
MOV: 2节拍, 变址寻址为4节拍(读1次主存)
如果是寄存器寻址, 跳过
ET
MOV指令: 2节拍
双操作数指令: 结果是否要写主存 ? 要: 4节拍 不要: 2节拍
单操作数指令: 2节拍
转移指令: 2节拍
JSR/RTS指令: 4节拍
ppt 159例题
6.4.4 控制信号形成电路
组合逻辑电路, 或如下图的PLA阵列
![](https://i-blog.csdnimg.cn/blog_migrate/7d160b53b94d7a5eeb421365ed3516fa.png#pic_center)
6.5 微程序控制器原理
6.5.1 简介
用规整的存储逻辑代替繁杂的组合逻辑. 是硬件设计者所看到的微程序级–微指令
见6.1.4 存储逻辑部分
6.5.2 基本概念
微命令
直接作用于部件或控制门电路的控制命令, 构成控制信号序列的最小单位
e.g. PC->BUS1
微操作
微操作定义可大可小, 指定一组微命令实现的基本操作
微指令
用以产生一组微命令, 控制完成一组微操作的二进制编码字称为微指令
微指令存放于控制存储器中, 一条微指令通常控制实现数据通路中的一步操作过程
微周期
读取一条微指令并执行相应微操作所需的时间, 微指令的执行采用同步方式.
相容\互斥
相容: 在同一个周期内可以并行执行的微操作(微命令)
互斥: 在同一个周期内不能并行执行的微操作(微命令)
6.5.3 组成结构
控制存储器CM
每个单元存放一条微指令代码, “ ⋅ \cdot ⋅” 代表为1, 否则为0
必须使用速度快的ROM
微指令寄存器 μ \mu μIR
存放控存中的微指令, 分为操作控制字段(产生微命令)和地址控制字段(下条微指令地址)
微地址形成电路
产生起始微地址和后继微地址
微地址寄存器 μ \mu μMAR
为读取微指令准备好控存地址
译码驱动电路
对 μ \mu μMAR译码, 读取微指令至 μ \mu μIR
6.5.4 微程序编译方法
目标
-
缩短微指令字长
-
缩短微程序, 减少所需控存空间
-
提高微程序执行速度
1. 直接控制法(直接编码方式)
每一位表示一个微命令, 1执行0不执行
优点: 结构简单, 并行性强, 操作速度快
缺点: 微指令字太长, 信息效率低
2. 最短编码法
一条微指令只定义一个微命令
缺点: 译码器复杂, 微程序太长
3. 字段直接编码法
互斥的微命令划分在同一字段, 相容的微命令划分在不同字段
每个字段需要额外留出一个状态, 表示本字段不发任何微命令
4. 字段间接编码法
一个字段的某一编码的意义由另一字段的编码来定义
进一步压缩微指令长度
5. 常数源字段的设置
如同立即数一样(赋初值, 修改量, 配合形成转移微地址)
6.5.5 初始微地址形成
由于取指令微程序是必需的, 一般取指令的初始微地址安排在0号控存单元或特定的控存单元
机器指令取到IR后, 将机器指令的操作码转换为该指令所对应的微程序入口地址
一级功能转移
指令操作码直接参与形成微程序的入口地址
二级功能转移
先按指令类型标志转移, 区分是哪一类指令
然后按操作码(哪一条)形成微程序入口地址
适用于机器指令的操作码的位数与位置不固定的情况
PLA实现功能转移
![](https://i-blog.csdnimg.cn/blog_migrate/245a07173afd88bf9f8dd2e1af52efd5.png#pic_center)
6.5.6 后继微地址形成
形成方法对微程序编制的灵活性影响很大
增量方式
由微地址的下地址控制字段设置转移微地址
根据BCF和对应判定条件, 要么顺序执行, 要么转移至BAF
微子程序一般不嵌套, 如果允许子程序嵌套, 则需要使用微堆栈
断定方式
可以实现多路转移
比较复杂, 微程序执行顺序不直观
书p252例题需要掌握