1、第十章控制单元的设计 控制单元 CU 的设计方法主要有三种 区别在于如何产生微操作控制信号 第一种 组合逻辑 硬布线 设计方法 第二种 微程序设计方法 或称存储逻辑设计方法 第三种 门阵列设计方法 实际上是前面两种方法相结合的技术 022n 1 组合逻辑设计 组合逻辑控制单元框图 IR 时序产生器 指令译码器 CU n位操作码 状态标志及请求 M1 Mi T1 Ti CP1 CPk CLK C1C2Cm 时序产生器时序产生器产生全机运行所需要的全部时序信号 它主要由机器周期标志触发器和节拍发生器组成 节拍发生器可以由循环移位寄存器或节拍计数器和节拍译码器组成 组合逻辑控制单元动画演示 swf
2、微操作的节拍安排在第九章我们以四类典型的指令为例 分析了每类指令在不同机器周期所要完成的微操作序列 若机器采用同步控制方式 每个机器周期包含三个节拍 我们必须对每个节拍中的微操作进行安排 使各个微操作有序执行 安排微操作节拍的原则如下 1 若有些微操作的次序是必须保证的 应根据先后次序安排在连续的节拍中 2 不同执行部件的微操作 若能在一个节拍内执行 应尽可能安排在同一个节拍内 以节省时间 3 若有些微操作所占时间不长 应将他们安排在一个节拍完成 并且允许有先后次序 根据第九章分析的结果 对微操作所在节拍进行安排 假定MAR和MDR分别直接和地址总线及数据总线相连 假定每个CPU周期包含3个时
3、钟周期 取指令周期微操作的节拍安排T0 PC MAR 1 R 原则2 T1 M MAR MDR PC 1 PC 2 T2 MDR IR OP IR ID 3 2 间址周期微操作的节拍安排T0 Ad IR MAR 1 RT1 M MAR MDRT2 MDR Ad IR 3 执行周期微操作的节拍安排 1 非访存指令 CLA指令T0 T1 T2 0 AC 通常是借助于ALU实现的 SHR指令T0 T1 T2 L AC R AC AC0 AC0 CSL指令T0 T1 T2 R AC L AC AC0 ACn STP指令T0 T1 T2 0 G 2 访存指令 ADD指令T0 Ad IR MAR 1 RT
4、1 M MAR MDRT2 AC MDR AC 实际上该操作包括AC ALU MDR Y ALU ALU AC STAX指令T0 Ad IR MAR 1 WT1 AC MDRT2 MDR M MAR LDAX指令T0 Ad IR MAR 1 RT1 M MAR MDRT2 MDR AC 3 转移类指令 JMPX指令T0 T1 T2 Ad IR PC 4 中断周期微操作的节拍安排T0 SP MAR 1 WT1 PC MDR 0 EINTT2 MDR M MAR 向量地址 PC 原则2 组合逻辑设计步骤1 列出微操作命令的操作时间表2 写出微操作命令的最简逻辑表达式即Ci f Im Bj Mi T
5、k 3 画出微操作命令的逻辑图 微操作命令产生过程演示 swf 组合逻辑控制单元的特点1 设计方法简单 早期计算机中普遍使用 2 设计过程繁琐 且修改困难 后来逐步被微程序控制单元所替代 3 控制信号形成速度快 提高了整机处理速度 随着VLSI技术的发展 其技术又重新受到重视 在RISC技术中普遍采用 微程序设计 微程序设计思想 将微命令二进制代码化 即用一位二进制信息1 0来表示一个微命令的有 无 将一段时间内所有微命令位组织在一起 形成一个控制字 称为 微指令 将一条机器指令完成的功能 用若干条微指令编程实现 称为 微程序 将全部微程序存在一个特定的存储器中 称为 控制存储器CM 通过执行
6、微程序实现全部控制功能 微程序控制单元框图及工作原理 微程序控制单元框图 至CPU内部和系统总线的控制信号 IR 微指令的基本格式 操作控制字段 指出该条微指令的操作性质 即由该字段能产生全部相应微操作控制信号 顺序控制字段 指出下一条微指令在控存的地址 即对微程序级的执行顺序进行控制 微程序控制单元工作原理 以由四条指令构成的小程序为例 假定它存于以2000H为首址的主存空间内 LDAXADDYSTAZSTP 程序执行过程 1 取指周期 将取指周期微程序首地址M CMAR 取第一条微指令 CM CMAR CMDR 产生微操作命令 PC MAR 1 R 形成下一条微指令地址 M 1 CMAR
7、取第二条微指令 CM CMAR CMDR 产生微操作命令 M MAR MDR PC 1 PC 形成下一条微指令地址 M 2 CMAR 如此进行下去 至到取出最后一条微指令并发出微操作命令 此时 LDAX指令取至IR 2 执行周期 形成LDAX指令微程序首地址P CMAR 取第一条微指令 CM CMAR CMDR 产生微操作命令 Ad IR MAR 1 R 形成下一条微指令地址 P 1 CMAR 取第二条微指令 CM CMAR CMDR 产生微操作命令 M MAR MDR 形成下一条微指令地址 P 2 CMAR 如此进行下去 至到取出最后一条微指令并发出微操作命令 此时 LDAX指令执行结束 如
8、此循环取指周期和执行周期 至到执行完STP指令 此程序运行结束 微程序设计技术 微程序控制单元的设计主要包括三方面的工作 1 设计微指令格式及相应的逻辑结构 2 设计控存结构 3 编制微程序 这三方面设计中 CM结构设计采用存储技术完成 微程序编制采用程序设计技术完成 因此 微程序控制单元的设计主要解决微指令结构问题 微指令结构设计的基本原则 1 有利于缩短微指令长度 2 有利于减小控存容量 3 有利于提高微程序的执行速度 4 有利于对微指令进行修改 5 有利于微程序设计的灵活性 由于微指令的基本结构由两部分组成 因此 微指令的设计涉及微命令的编码技术和微地址的形成方法两个方面 微命令的编码方
9、式 主要解决微指令的操作控制字段的格式安排 常用的方法主要有三种 思想 将微操作控制字段分为若干小字段 把一组互斥微命令组织在一起 用一个小字段编码表示 将相容的微命令安排在不同字段内 在某一时刻 每个字段通过译码产生一条微命令 不同字段可以发出多条微命令 示意图 教材P400 图10 7能有效压缩微指令的长度 但由于译码稍影响速度特点 注意 为每个字段分配编码时 应考虑无操作的情况 即n位通常仅能安排2n 1个微命令 2 字段直接编码方式微操作 微命令 间的关系 相容和互斥 相容 能同时 并行 执行的微操作 互斥 不能同时执行的微操作 3 混合编码方式当分段直接编码方式中某些小字段的位数少到
10、只有一位时 就可认为是直接编码方式和字段直接编码方式的混合编码方式 特点 可改善分段直接编码方式的灵活性和执行速度 微地址的形成方法 在指令执行的不同阶段获得下一条微指令地址 后继微地址 的方法不同 主要有以下几种 1 直接由微指令的顺序控制字段给出 下地址方式 特点 简单 但微指令字长较长 2 计数器方式 增量方式 类似于指令的顺序寻址方式 由 CMAR 1 CMAR获得后继微地址 若微程序需要转移时 通过专门的转移类微指令实现 微指令字长较短 3 增量方式与转移地址 下址字段 相结合方式微指令格式 特点 每条微指令都具有转移功能 但仅能实现两路转移 4 断定方式与前面几种方式的根本区别是不
11、设uPC 微指令常用格式如下 非测试地址 编程时直接给定 通常是后继微地址的高位部分 测试地址 编码时要指出要测试的机器状态 根据所测的状态值选择后继微地址的低位部分 可实现多分支转移 操作控制字段 非测试地址 测试地址 5 微程序入口地址的形成 当电源加电后 第一条微指令 即取指令周期第一条微指令 由硬件电路自动产生 PC的值也由硬件自动产生 不同机器指令所对应的微程序首地址 通过指令操作码译码形成 中断周期微程序首地址 可由硬件产生 间址周期微程序首地址 也可由硬件产生 后继微地址形成原理图 P402 图10 10 微指令格式 1 水平型微指令一条微指令中定义并执行多个并行操作的微命令 2
12、 垂直型微指令一条微指令只要求提供1 2种微命令 微指令格式与指令相似 3 两种微指令结构比较主要从并行操作能力 微程序和微指令长度 使用的难易程度来比较 动态微程序设计若采用EPROM或RAM作为CM时 微程序设计便称为 动态微程序设计 采用这种技术可以实现机器仿真 控制存储器的操作执行一条微指令的过程基本上分为两步 即将微指令从控存中取出 和执行微指令所规定的操作 根据这两步是串行还是并行进行而具有两种方式 1 串行方式执行一条微指令所需要的时间称为微周期 在串行方式下微周期的安排及时序如下 微周期1 取微指令1 微周期2 执行微指令1 取微指令2 执行微指令2 置CMAR启动CM 微指令
13、 CMDR 微命令执行 置执行结果 2 并行方式为了提高微程序的执行速度 将执行本条微指令与去下一条微指令在时间上重叠起来 在并行方式下微周期的安排及时序如下 毫微程序设计在微程序下面再设一级微程序 称为 毫微程序级 毫微程序解释执行微程序 通过微程序级采用垂直型微指令 毫微程序级采用水平型微指令 可以有效压缩控存和毫微控存容量 但两次访问控存执行速度受到影响 微程序设计举例 以前两章分析过的10条典型机器指令为例 编写相应的微程序 设计步骤 1 对每个机器周期微操作序列进行分析 安排微操作的节拍 2 确定微指令格式 3 编写微程序 微程序设计举例 1 分析每个机器周期的微操作序列可以采用微程
14、序流程图来分析 为了简化起见 不考虑间接寻址和中断周期的情况 采用微程序流程图分析 PC MAR 1 R M MAR MDR PC 1 PC MDR IR OP IP 微地址形成部件 功能转移 CLA指令微程序 COM指令微程序 SHL指令微程序 CSL指令微程序 STP指令微程序 ADD指令微程序 STA指令微程序 LDA指令微程序 JMP指令微程序 BAN指令微程序 取微指程令序段 T0 T1 T2 CLA微程序流程图 COM微程序流程图 SHL微程序流程图 AC AC T2 T2 T2 CSL微程序流程图 STP微程序流程图 ADD微程序流程图 T2 T2 STA微程序流程图 LDA微程
15、序流程图 JMP微程序流程图 BAN微程序流程图 2 确定微指令格式 1 微指令编码方式 采用直接编码方式 2 后继微指令地址形成方式 采用功能转移和微指令的下址字段两种方式 3 微指令字长 24位操作控制字段 6位下地址字段 共18个微操作 19条微指令 CLA 取指 微指令 二进制代码 29 操作控制字段 下地址字段 COM SHR CSL STP ADD STA LDA BAN JMP 00 01 02 03 04 05 06 07 10 11 12 13 14 15 16 17 20 21 22 3 编写微指令码点 本章总结 1 组合逻辑控制单元微操作的节拍安排设计步骤组合逻辑控制单元特点2 微程序控制单元微指令和微程序的关系微程序控制单元工作原理微命令编码方式微地址形成方法微指令格式及其特点 本章作业 P41213 17 19 OP PC MAR MM读 PC 1 PC MDR IR STA PCo MARi1 R 1 图中未标出 可与前一步并行 MDRo IRi STAR1 R2 流程