Transcript 微命令
计算机组成原理第六章 知识点四:控制器设计 主讲教师:秦磊华 问题引入 指令操作流程每个步骤中所需要的控制信号到底是如何产 生的?又是如何进行同步控制保证指令功能正常执行的? 学习建议 系统观:控制信号产生与同步过程中要用到数字逻辑设 计的知识;优化控制信号的设计,能缩短指令执行时间、 提高性能。 构造观:控制信号产生与同步的实现 。 1.中央处理机的时间与控制 1) CPU内的时序体制—多级时序体制 最基本的是T周期,属于脉冲信号类型; 第二层次是CPU周期,包含多个T周期,属于电位信号; 第三层次是指令周期,包含多个CPU周期。 2) 时序产生电路 T周期、CPU周期、指令周期三级时序(硬布控制器)。 环行脉冲发生器,T周期产生电路 CPU周期发生器 3) 启停控制逻辑 T0 T1 T2 T3 & & & & 0 T0 0 T2 0 T1 Q D 保证节拍的完整性(每 0 T3 通过原始时钟周期信 Q Cr 号 T3 R 0 T3 & & RST 启动 次都是从T0 ~ T3) 停机 0 来控制 2.微程序控制的基本概念 1)微命令与微操作 微命令:控制部件向执行部 件发出的各种控制命令; 微操作:执行部件收到微命 令后所进行的操作。 2) 微操作的分类 互斥性微操作:不能在同一个CPU 周期中并行执行的微操作; 相容性微操作:能在同一T周期或同 一CPU周期中并行执行的微操作; 3)互斥性的微命令 所有向总线输出的控制信号; +1、ADD、SUB 4) 相容性的微命令 从总线接收信息的输入命令; 5) 微指令的格式 操作控制字段 测试字段 下地址字段 操作控制字段:微命令的承载体; 测试字段:选择被测试的条件; 下地址字段:指出一段微程序中后续微指令的地址。 6)微程序控制的基本思想 仿照程序设计的基本方法,将实现指令功能所 需要的控制信号,按照一定的规则编写成若干条微指令, 构成一段微程序,并将其存入控制存储器。当机器运行 指令时,依次从控制存储器中逐条取出对应于该指令的 微指令,发出微命令控制相应部件执行规定的操作,完 成指令的功能。 微程序控制器的设计采用了存储技术和程序设计 技术,使复杂的控制逻辑得到简化,从而推动了微程序 控制器的广泛应用 。 7)指令、程序、微指令及与微程序之间的关 系 微指令 OP 微指令 微程序 指令A 微指令 指令B 指令C OP 程序 微指令 微指令 微指令 微程序 3.微程序控制器的结构 控制存储器(简称控存) : 存放微程序。 微指令寄存器 : 存放微指令,由多个部分组成。 地址转移逻辑: 实现微程序分支。 微地址寄存器: 存放下一条微指令的地 址。 4.微指令中微命令编码方法 1)直接表示法 微指令中操作控制字段的内容 2) 字段直接译码法 每组的微命令都是互斥性微命令; 微指令字段为2位时,最多只能表示3个互斥性的微命令; 可缩短微指令的长度。 5.微程序中后续微地址的形成—多路转移 三种情况下需要实现微程序转移: (1)取指后根据OP转移到对应于该指令的微程序入口; (2)根据操作数的寻址方式,转移到不同的微程序入口; (3)对于条件转移指令,通过判别测试字段P检测待测试 的“状态条件”,当测试条件满足时,就修改微地址寄 存器的部分位,实现微程序分支。 6.微程序控制器设计举例 1)对指令操作流程中的控制信号进行时间分配 T周期 (1)取指周期的控制信号同 步 操作 对应的控制信号 T0 MAR (PC) ,X (PC) T1 Z ALU T2 PC (Z), MDR (M[MAR]) Zout=PCin= DREin=1 T3 IR MDR PCout =ARin=1= Xin=1, Read整个取指周期有效 +1 有效 DRIout=IRin=1 原来的取指周期操作流程(知识点三) 序号 操作 对应的控制信号 1 MAR (PC) 2 MEM (MAR) 3 MDR (M[MAR]) Read=DREin=1 4 IR ( MDR) DRIout=IRin=1 5 X (PC) PCout= Xin=1 6 ALU (X) 直接传送,不需要控制信号 7 Z ALU +1 8 PC (Z) Zout=PCin=1 PCout=ARin=1 直接传送,不需要控制信号 (2) LOAD指令执行周期控制信号时间分配 T周期 操作 对应的控制信号 T0 MAR (IRA) IRout=ARin=1, Read整个取数周期有效 T1 T2 MDR(M[MAR]) DREin=1 T3 R[0] (MDR) DRIout=R0in=1 (3) STORE 指令执行周期控制信号时间分配 阶段 T周期 送地址 T0 T1 操作 对应的控制信号 MAR (R[2]) R2out=ARin=1 T0 T1 MDR (R[0]) R0out=DRIin=1 T2 T3 M[R[2]] (MDR) DREout=Write=1 T2 T3 存数 … 2)设计微指 令 A为控制ALU执行不同操作的控制信号, 01表示 +1操作, 10表示ADD,11表示SUB ; P 表示判别测试。 3)设计微程序并存入控存 控存 指令 地址 取指公 0000 操作 LOAD 0010 MOVE ADD STORE 0100 0111 1001 1010 JMP 1011 26 25 24 23 22 21 20 19 10 9 8 7 6 5 4 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 001 1 1 001 1 0 000 0 0 000 0 0 000 0 0 010 1 0 000 1 1 01 0 0 00 0 0 00 1 0 10 0 0 00 0 0 00 0 1 00 18 17 16 15 14 13 12 11 1 0 1 0 1 1 3 2 1 0 0000 1 0 1 0 0 0 0000 0 0 0 0 0 0 0000 0 0 0 0 1 0 0000 1 0 0 0 0 0 1010 0 1 0 1 0 0 0000 0 0 0 0 0 0 0000 01 00 00 00 00 00 00 4) 微命令的同步 分析所有指令操作流程图中的每一个控制信号; 对每个控制信号进行综合与同步。 学生所设计的微程序控制器实物 知识点四 回顾 CPU时序体制及其设计; 掌握微程序控制器的设计思想; 掌握微程序控制器的设计方法 (总线结构CPU)