当所有功能模块都调试正常后,进入总调试。可以使用单步微指令方式执行工作程序,也可以直接使用连续方式执行程序。在执行过程中,可以通过联机软件的数据通路图查看信息在计算机中的传送路径,更有利于掌握数据的通路结构。这样也可以直接验证程序和微程序的正确性。
如果运行结果不正确,需要返回来修改程序或微程序,每次修改后,需要重新完成第11步,将程序和微程序下载到实验箱中。
3.2、准备知识
微程序控制器的基本任务是完成当前指令的翻译和执行,即将当前指令的功能转换成可以控制硬件逻辑部件工作的微命令序列,以完成数据传输和各种处理操作。它的执行方法就是将控制各部件动作的微命令的集合进行编码,即将微命令的集合仿照机器指令一样,用数字代码的形式表示,这种表示称为微指令。这样就可以用一个微指令序列表示一条机器指令,这种微指令序列称为微程序。微程序存储在一种专用的存储器中,该存储器称为控制存储器。
(1)TDN-CM+计算机组成原理实验台主要单元电路见附录三。 (2)微程序控制电路
2
微程序控制电路如图1所示。其中控制存储器采用3片2816EPROM,具有电保护功能,微命令寄存器18位,用两片8D触发器(273)和一片4D(175)触发组成。微地址寄存器6位,用三片正沿触发的双D触发器(74)组成,它们带有清“0”端和预置端。在不判别测试的情况下,T2时刻打入微地址寄存器的内容即为下一条微指令地址。当T4时刻进行测试判别时,转移逻辑满足条件后输出的负脉冲通过强制将某一触发器置为“1”状态,完成地址修改。
在该实验电路中设有一个编程开关(位于实验板右上方),它具有三种状态:PROM(编程)、READ(校验)、RUN(运行)。当处于“编程状态”时,学生可根据微地址和微指令格式将微指令二进制代码写入到控制存储器2816中。当处于“校验状态”时可以对写入控制存储器中的二进制代码进行验证,从而可以判断写入的二进制代码是否正确。当处于“运行状态”时,只要给出微程序的入口微地址,则可根据微程序流程图自动执行微程序。图中微地址寄存器输出端增加了一组三态门,目的是隔离触发器的输出,增加抗干扰能力,并用来驱动微地址显示灯。
图1:微程序控制电路
(3)微指令格式
微指令字长共24位,其控制位顺序如下表所示:
A字段 15 14 13 选择 0 0 0 0 1 1 1 0 0 1 1 0 0 1 0 1 LDRi 12 0 0 0 0 1 1 1 B字段 11 0 0 1 1 0 0 1 10 0 1 0 1 0 1 0 选择 RS-B RD-B RI-B 9 0 0 0 0 C字段 8 0 0 1 1 0 0 1 7 选择 0 1 P(1) 0 P(2) 1 P(3) 0 P(4) 1 AR 0 LDPC 0 LDDR1 1 LDDR2 0 1 0 LDIR LOAD LDAR 299-B 1 ALU-B 1 PC-B 1
表中uA0~uA5为6位的下一条微指令的地址,A、B、C为3个译码字段,分别由三个控制位译码出多位。C字段中的P(1)~P(4)是四个测试字位。其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的微地址入口,从而实现微程序的顺序、分支、循环运行,其原理如图2所示。图中I7~I2为指令寄存器的7~2位输出,SE5~SE1为微控器单元微地址锁存器的强制端输出。AR为算术运算是否影响进位及判零标志控制位,其为零有效。B字段中的RS-B、R0-B、RI-B分别为源寄存器选通信号、目的寄存器选通信号及变址寄存器选通信号,其功能是根据机器指令进行三个工作寄存器R0、R1及R2的选通译码,其原理图如图3所示,图中I0~I3为指令积存器的第0~3位,LDRi为打入工作寄存器信号的译码器使能控制位。
图2:指令译码电路
图3: 寄存器译码
(4)控制台
为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,还必须设计三个控制台操作微程序。
? 存储器读操作(KRD):拨动总清开关CLR后,控制台开关SWB、SWA为\时,按START微动开关,可对RAM连续手动读操作。
? 存储器写操作(KDE):拨动总清开关CLR后,控制台开关SWB、SWA置为\时,按START微动开关可对RAM进行连续手动写入。 ? 启动程序:拨动总清开关CLR后,控制台开关SWB、SWA置为\时,按START微动开关,即可转入到第01号“取址”微指令,启动程序运行。
上述三条控制台指令用两个开关SWB、SWA的状态来设置,其定义如下:
SWB 0 0 1
控制台操作微程序如图4所示:
控制台操作为P(4)测试,它以控制台开关SWB、SWA作为测试条件,出现了三路分支,占用三个固定微地址单元。当分支微地址单元固定后,剩下的其他单元就可以一条微指令占用控制存储器一个微地址单元,其单元地址随意填写。注意:微程序流程图上的单元地址为八进制。
SWA 0 1 1 控制台指令 读内存(KRD) 写内存(KWE) 启动程序(RP)
图4控制台操作微程序流程图