假定教学机的功能开关拨在1010的位置,表明在从主存的0地址连续执行程序。
加电后按LDMC/RESET键的信号将首先启动装入微码,装入完成的信号,或RESET按键给出的信号/RESET将清零微指令寄存器PLR的B47-B40,使CI的四位为0000,得到AM2910的0#命令码,它使AM2910芯片内的微堆栈清空,并使微地址输出Y11-Y0
(教学机仅用Y9-Y0共10位)为0,故首先要读出并执行保存在控存0号单元中的微指令,从而启动了微程序的执行过程。
头一条微指令是判FS1所处的状态,它为1(开始已假定),按3.5规定,是CC为1,故/CC为低,按AM2910的3#命令规定,应转移,转移地址为10h。接下来应执行10h地址中的微指令。(0地址中的微指令要实现的IB→PC,→AR功能暂不讨论)。
10h中的微指令判FS2为0,使/CC为高,不满足转移条件,应顺序执行下一条微指令11h。
11h中的微指令判FS3为1,则转移到17h。
以上3条微指令完成了判定FS1、FS2、FS3开关为101位置,应进入从主存0地址连续执行程序的操作过程。
17h中的微指令完成把0值送入PC的操作。实现的方案是在运算器中执行R5-R5→R5的操作。R5即是PC。该微指令选用14#命令,表明应顺序执行下一条微指令。
18h中的微指令完成PC送地址寄存器,并将PC的内容保存到IP(即R6)中,以备后面可能有相对转移的地址计算之用。还用14#命令。
19h完成取指 (即读主存储器并将读出来的指令内容打入指令寄存器IR中) 和PC增量的操作。至此,当前指令已取到指令寄存器IR中,并准备好顺序执行指令的指令地址。还用14#命令。
20h选用2#命令,它使输出控制信号/MAP为低电平,则完成从MAPROM取得当前指令对应的微程序段的入口地址。
MAPROM是由2片8位的ROM芯片组成的微指令地址映射部件,其地址输入为IR给出的指令操作码,其输出为该条机器指令对应的微程序段的入口地址,指令操作码与相应微程序段的入口地址的对应关系给出在指令汇总表中(表2.2)。
接下来的微指令开始执行指令的具体功能。
例如,ADD指令将导致进入1Ch微指令,完成 DR+SR→DR的功能;
而ADC指令将导致进入1Eh微指令,完成 DR+SR+C→DR 的功能;
SUB和SBB指令,将通过20h、22h微指令分别完成DR-SR→DR、DR-SR-C→DR的功能,如此等等。
上述4条指令,完成具体的相应运算功能的控制方法,是正确地选择AM2901芯片的3组3位的控制码,和正确选择最低位的进位信号,并使/MIO、REQ、/WE为101,即不执行内存或外设的读写操作,这在运算器部件的教学实验过程中多次处理过。
上述4条指令的相应4条微指令的下地址字段均给出A4,微指令下地址的控制码选为3#,即按测试条件决定是顺序执行还是转移,判断条件是/CC=0,即测试条件通过,则一定转移,故下一条微指令的地址为A4h。
A4h微指令的功能是依据有无中断请求,决定进入中断处理过程,还是顺序执行下 一条指令,这是每条机器指令完成后都应该执行的一项操作。
没有中断请求,则执行A5h微指令。它要依据功能开关FS3的状态,检查是连续方式执行程序(1010或1110)还是单条指令方式执行程序(1100),并完成PC内容送地址寄存器,保留PC值到IP中。为连续执行时,则转回19h进入下一条指令的取指过程。
|
|