一、目的和要求
深入了解计算机各种指令的执行过程,以及控制器的组成,指令系统微程序设计的具体知识,进一步理解和掌握动态微程序设计的概念;完成微程序控制的特定功能计算机的指令系统设计和调试。
二、实验环境
TEC-2实验计算机系统(TEC-2模拟机)
PC电脑
三、具体内容
理论分析
TEC-2微指令格式
每条微指令可以表示为B55-B0
(高八位B63-B56
无用),则B55-B46
这8位表示下址。
B43-B40这4位表示CI3-CI0,用于选择AM2910的控制功能,具体规定如下:
每条微指令可以表示为B55-B0
(高八位B63-B56
无用),则B55-B46
这8位表示下址。
B43-B40这4位表示CI3-CI0,用于选择AM2910的控制功能,具体规定如下:
B34-B32
这3位表示SST,用于设置标志位,具体规定如下:
B31
、B27、B23
这3位分别表示/MIO
、REQ
、/WE
,用于控制存储器的读写模式,具体规定如下:
B30-B28、B26-B24、B22-B20这3组4微码分别表示MI8-6、MI5-3、MI2-0,用于控制运算器AM2901的功能,具体规定如下:
B19-B16、B15-B12这两组4位微码分别表示ALU的A口和B口地址。
B11-B10表示SCI,用于设置运算器AM2901最低位的进位,具体规定如下:
B9-B8表示SSH,用于控制运算器AM2901移位器的功能,具体规定如下:
B7的SA、B3的SB两位用于控制运算器AM2901 A口和B口地址的来源,具体规定如下:
B6-4 和 B2-0 的DC1和DC2用于控制送往内部总线IB的数据来源和接收来自内部总线IB数据的寄存器,具体规定如下:
新指令的设计方法
首先选择指令的操作码,TEC-2中剩余11条指令未实现,他们的操作码分别是D4、D8、DC、E0、E4、E8、EC、F0、F4、F8和FC,其对应的微程序入口地址已经写死在MAP中,因此只需选择其中一个操作码作为新指令的操作码,再根据指令功能编写微程序,然后将其装入从操作码对应的入口地址开始的一块控存空间即可。
选定操作码后,需要确定指令的格式(单操作数、双操作数等)和功能,然后设计该指令的执行过程,即分成几步完成,每一步要实现的详细操作细节,各步之间的衔接次序等。将每一步中的操作,用一条微指令实现,即具体设计每条微指令各字段的具体编码值,既包括控制码的各字段,也包括下地址字段,形成下地址用到的条件码等等。
MEM的内容是当前地址寄存器AR所存的地址单元的内容。
寄存器Q的内容可以是立即数,也可以是地址。
11条未定义的机器指令的6位操作码已定,最低两位可用于选择C、Z、V、S四个标志位作为判别条件。
11条未定义的机器指令具有对应的微程序段的入口地址,如D400对应的是100H,D800对应的是110H,E010对应的是130H。
指令一的设计与测试
指令格式
D5 DR SR,DISP 双字指令(控存入口100H)
指令功能
[DR]=[DR] +[[SR]+DISP]
微程序流程和分析
PC→AR, PC+1→PC 0000 0E00 A0B5 5402
MEM→Q 0000 0E00 00F0 0000 把DISP送到Q寄存器
SR→AR 0000 0E00 90C0 008A 把SR里的值作为地址传给AR
MEM+Q→Q 0000 0E01 00E0 0000 这部完成的是[SR]+DISP
Q→AR 0000 0E00 10A0 0002 把[SR]+DISP的值作为地址传给AR
MEM→Q 0000 0E00 00F0 0000 读取[[SR]+DISP]这个地址里面存的值
DR→AR 0000 0E00 90B0 000A 把DR里的值作为地址传给AR
MEM+Q→Q 0000 0E01 00E0 0000 这部完成的是[DR]+ [[SR]+DISP]
Q→MEM 0029 0300 1020 0010 将最后的结果存回内存
功能测试
指令二的设计与测试
指令格式
D8××,ADDR1,ADDR2 三字指令(控存入口110H)
指令功能
[ADDR1]←[ADDR2]
微程序流程和分析
PC+1→PC: 0000 0E00 A0B5 5402
PC→AR: 0000 0E00 90B0 5002 为AR读入第二个操作数的地址做准备
MEM→AR: 0000 0E00 10F0 0002 AR读入第二个操作数的地址
MEM→Q: 0000 0E00 00F0 0000 读第二个操作数送往Q寄存器
PC-1→AR: 0000 0E00 91B0 5402 为AR读入第一个操作数的地址做准备
PC+1→PC: 0000 0E00 B0B0 5400
MEM→AR: 0000 0E00 10F0 0002 AR读入第一个操作数的地址
Q→MEM,CC#=0: 0029 0300 1020 0010 Q寄存器结果送回第一个操作数位置
功能测试
指令三的设计与测试
指令格式
E1 DR SR,DISP 双字指令(控存入口130H, DISP为相对转移地址偏移量)
指令功能
if DR=SR goto (IP)+DISP else 顺序执行
微程序流程和分析
DR-SR 0000 0E01 9190 0088 两个通用寄存器SR、DR相减,结果不保存,根据运算结果重新设置标志位
PC→AR, PC+1→PC 0000 0E00 A0B5 5402
MEM+IP→IP, CC#= /Z 0023 83E0 30D6 6000 这个指令设为条件转移指令,若满足,则跳转到0023,0023处设有指令IP->pc,就跳到目标了
CC#=0 0029 0300 9080 0000 顺序执行后的下条指令是条件转移指令,让CC#置0满足跳转条件,跳到0029结束
当SR!=DR时,顺序执行
当SR=DR时,跳转