计算机组成原理实验教程
山西大学计算机与信息技术学院
实验三 微程序控制器实验
3.1 实验目的
(1) 掌握微程序控制器的组成原理。
(2) 掌握微程序的编制、写入,观察微程序的运行过程。
3.2 实验设备
PC 机一台,TD-CMA 实验系统一套。
3.3 实验原理
微程序控制器的基本任务是完成当前指令的翻译和执行,即将当前指令的功能转换成可以控制的硬件逻辑部件工作的微命令序列,完成数据传送和各种处理操作。它的执行方法就是将控制各部件动作的微命令的集合进行编码,即将微命令的集合仿照机器指令一样,用数字代码的形式表示,这种表示称为微指令。这样就可以用一个微指令序列表示一条机器指令,这种微指令序列称为微程序。微程序存储在一种专用的存储器中,称为控制存储器,微程序控制器原理 框图如图 3-1 所示。
指令寄存器IR
OP 状态条件 ...
地址译码 控制存储器 微地址寄存器 地址转移逻辑 微命令信号 P字段 控制字段
图 3-1 微程序控制器组成原理框图
控制器是严格按照系统时序来工作的,因而时序控制对于控制器的设计是非常重要的,从
前面的实验可以很清楚地了解时序电路的工作原理,本实验所用的时序由时序单元来提供,分为四拍 TS1、TS2、TS3、TS4。
微程序控制器的组成见图 3-2,其中控制存储器采用 3 片 2816 的 E2PROM,具有掉电保护功能,微命令寄存器 18 位,用两片 8D 触发器(273)和一片 4D(175)触发器组成。微地址寄存器 6 位,用三片正沿触发的双 D 触发器(74)组成,它们带有清 “0” 端和预臵端。在不判别测试的情况下,T2 时刻打入微地址寄存器的内容即为下一条微指令地址。当 T4 时刻进行测试判别时,转移逻辑满足条件后输出的负脉冲通过强臵端将某一触发器臵为 “1” 状态,完成地址修改。
在实验平台中设有一组编程控制开关 KK3、KK4、KK5(位于时序与操作台单元),可实现对存储器(包括存储器和控制存储器)的三种操作:编程、校验、运行。考虑到对于存储器(包括存储器和控制存储器)的操作大多集中在一个地址连续的存储空间中,实验平台提供了便利的手动操作方式。以向 00H 单元中写入 332211 为例,对于控制存储器进行编辑的具体操作步骤如下:首先将 KK1 拨至‘停止’档、KK3 拨至‘编程’档、KK4 拨至‘控存’档、KK5 拨至‘臵数’档,由 CON 单元的 SD05—SD00 开关给出需要编辑的控存单元首地址(000000), IN 单元开关给出该控存单元数据的低 8 位(00010001),连续两次按动时序与操作台单元的开关ST(第一次按动
9
iPDRR_B A 3 >2M ABRSAAIUBBT 12>3>4>CPII MODDDDL_B_B_B__NRDSDIPC<< M14 M9 M8 M6 SE0 SE1 SE2 图GND SE3 3-2 74LS273 CLK CLR 74LS273 CLK CLR 74LS175 CLK SE4 CLR SE5 M23-M0微代码显示 . . . . . . 微程序控制器原理图 . . . . . . . . . D7 ... D0 D7 ... D0 D7 ... D0 2816 CS 2816 CS WE WE WE 2816 CS A5 ... A0 OE A5 ... A0 OE . . . . . . A5 ... A0 OE . . . ... MA5...MA0 74LS245 G 74LS245 G 74LS245 G 74LS245 G . . . . . . . . . . . . 编程逻辑 T2 SD27 ... SD20 SD17 ... SD10 SD07 ... SD00 SA5 ... SA0 P2.2 P2.1 P2.0 CLR 单片机 CON单元 10 计算机组成原理实验教程 山西大学计算机与信息技术学院 计算机组成原理实验教程 山西大学计算机与信息技术学院 后MC 单元低 8 位显示该单元以前存储的数据,第二次按动后显示当前改动的 数据),此时 MC 单元的指示灯 MA5—MA0 显示当前地址(000000),M7—M0 显示当前数据(00010001)。然后将 KK5 拨至‘加 1’档,IN 单元开关给出该控存单元数据的中 8 位(00100010), 连续两次按动开关 ST,完成对该控存单元中 8 位数据的修改,此时 MC 单元的指示灯 MA5—MA0 显示当前地址(000000),M15—M8 显示当前数据(00100010);再由 IN 单元开关给 出该控存单元数据的高 8 位(00110011),连续两次按动开关 ST,完成对该控存单元高 8 位数据的修改此时 MC 单元的指示灯 MA5—MA0 显示当前地址(000000),M23—M16 显示当 前数据(00110011)。此时被编辑的控存单元地址会自动加 1(01H),由 IN 单元开关依次给出 该控存单元数据的低 8 位、中 8 位和高 8 位配合每次开关 ST 的两次按动,即可完成对后续单元的编辑。 编辑完成后需进行校验,以确保编辑的正确。以校验 00H 单元为例,对于控制存储器进行 校验的具体操作步骤如下:首先将 KK1 拨至‘停止’档、KK3 拨至‘校验’档、KK4 拨至‘控 存’档、KK5 拨至‘臵数’档。由 CON 单元的 SD05—SD00 开关给出需要校验的控存单元 地址(000000),连续两次按动开关 ST,MC 单元指示灯 M7—M0 显示该单元低 8 位数据 (00010001);KK5 拨至‘加 1’档,再连续两次按动开关 ST,MC 单元指示灯 M15—M8 显示该单元中 8 位数据(00100010);再连续两次按动开关 ST,MC 单元指示灯 M23—M16 显示该单元高 8 位数据(00110011)。再连续两次按动开关 ST,地址加 1,MC 单元指示灯 M7—M0 显示 01H 单元低 8 位数据。如校验的微指令出错,则返回输入操作,修改该单元的数据 后再进行校验,直至确认输入的微代码全部准确无误为止,完成对微指令的输入。 位于实验平台 MC 单元左上角一列三个指示灯 MC2、MC1、MC0 用来指示当前操作的微程序字段,分别对应 M23——M16、M15——M8、M7——M0。实验平台提供了比较灵活的手动操作方式,比如在上述操作中在对地址臵数后将开关 KK4 拨至‘减 1’档,则每次随着开关 ST 的两次拨动操作,字节数依次从高 8 位到低 8 位递减,减至低 8 位后,再按动两次开关 ST,微地址会自动减一,继续对下一个单元的操作。微指令字长共 24 位,控制位顺序如表 3-1: 11 计算机组成原理实验教程 表 3-1 微指令格式 山西大学计算机与信息技术学院 8-6 5-0 23 22 21 20 19 18-15 14-12 11-9 M23 M22 WR RD IOM S3-S0 A字段 B字段 C字段 MA5-MA0 A字段 14 0 0 0 0 1 1 1 1 13 0 0 1 1 0 0 1 1 12 0 1 0 1 0 1 0 1 选择 NOP LDA LDB LDR0 保留 保留 保留 LDIR B字段 C字段 11 0 0 0 0 1 1 1 1 10 0 0 1 1 0 0 1 1 9 0 选择 NOP 8 0 0 0 0 1 1 1 1 7 0 0 1 1 0 0 1 1 6 0 选择 NOP 1 ALU-B 0 1 0 1 0 1 R0-B 保留 保留 保留 保留 保留 1 P<1> 0 1 0 1 0 1 保留 保留 保留 保留 保留 保留 其中 MA5…MA0 为 6 位的后续微地址,A、B、C 为三个译码字段,分别由三个控制位译 码出多位。C 字段中的 P<1>为测试字位。其功能是根据机器指令及相应微代码进行译码,使微 程序转入相应的微地址入口,从而实现完成对指令的识别,并实现微程序的分支,本系统上的 指令译码原理如图 3-3 所示,图中 I7…I2 为指令寄存器的第 7…2 位输出,SE5…SE0 为微控器单元微地址锁存器的强臵端输出,指令译码逻辑在 IR 单元的 INS_DEC中实现。 从图 3-2 中也可以看出,微控器产生的控制信号比表 3-1 中的要多,这是因为实验的不同,所需的控制信号也不一样,本实验只用了部分的控制信号。 本实验除了用到指令寄存器(IR)和通用寄存器 R0 外,还要用到 IN 和 OUT 单元,从微控 器出来的信号中只有 IOM、WR 和 RD 三个信号,所以对这两个单元的读写信号还应先经过译 码,其译码原理如图 3-4 所示。IR 单元的原理图如图 3-5 所示,R0 单元原理如图 3-7 所示, IN 单元的原理图如图 2-3 所示,OUT 单元的原理图如图 3-6 所示。 P<1> I[2] I[6] I[7] P<1> I[3] I[6] I[7] I[4] SE0 I[5] SE1 T4 T4 P<1> T4 I[6] SE2 P<1> T4 I[7] SE3 图 3-3 指令译码原理图 12 计算机组成原理实验教程 山西大学计算机与信息技术学院 图 3-4 读写控制逻辑 图 3-5 IR 单元原理图 图 3-6 OUT 单元原理图 图 3-7 R0 原理图 本实验安排了四条机器指令,分别为 ADD(0000 0000)、IN(0010 0000)、OUT(0011 0000) 和 HLT(0101 0000),括号中为各指令的二进制代码,指令格式如下: 助记符 IN ADD OUT HLT 机器指令码 0010 0000 0000 0000 0011 0000 0101 0000 说明 IN R0 R0 + R0 R0 R0 OUT 停机 实验中机器指令由 CON 单元的二进制开关手动给出,其余单元的控制信号均由微程序控制器 自动产生,为此可以设计出相应的数据通路图,如图 3-8 所示。 几条机器指令对应的参考微程序流程图如图 3-9 所示。图中一个矩形方框表示一条微指令,方框中的内容为该指令执行的微操作,右上角的数字是该条指令的微地址,右下角的数字是该条指令的后续微地址,所有微地址均用 16 进制表示。向下的箭头指出了下一条要执行的指令。P<1>为测试字,根据条件使微程序产生分支。 13