复杂模型机设计实验
和前面的实验相比,复杂模型机实验指令多,寻址方式多,只用一种测试已不能满足设计要求,为此指令译码电路需要重新设计。
本实验中要用到四个通用寄存器 R3„R0,而对寄存器的选择是通过指令的低四位,为此还得设计一个寄存器译码电路,在 IR 单元的 REG_DEC(GAL16V8)中实现。
一、实验目的
综合运用所学计算机组成原理知识,设计并实现较为完整的计算机。
二、实验设备
PC 机一台,TD-CMA 实验系统一套。
三、实验原理
五、实验步骤
1. 按图 5-3-6 连接实验线路,仔细检查接线后打开实验箱电源。
2. 写入实验程序,并进行校验,分两种方式,手动写入和联机写入。
1) 手动写入和校验
(1) 手动写入微程序
① 将时序与操作台单元的开关 KK1 置为‘停止’档,KK3 置为‘编程’
档,KK4 置为‘控存’档,KK5 置为‘置数’档。
② 使用 CON 单元的 SD05——SD00 给出微地址,IN 单元给出低 8 位
应写入的数据,连续两次按动时序与操作台的开关 ST,将 IN 单元的数据写到该单元的低 8 位。
③ 将时序与操作台单元的开关 KK5 置为‘加 1’档。
④ IN 单元给出中 8 位应写入的数据,连续两次按动时序与操作台的
开关 ST,将 IN 单元的数据写到该单元的中 8 位。IN 单元给出高 8 位应写入的数据,连续两次按动时序与操作台的开关 ST,将 IN 单元的数据写到该单元的高 8 位。
⑤ 重复①、②、③、④四步,将表 5-3-5 的微代码写入 2816 芯片中。
(2) 手动校验微程序
① 将时序与操作台单元的开关 KK1 置为‘停止’档,KK3 置为‘校验’
档,KK4 置为‘控存’档,KK5 置为‘置数’档。
② 使用 CON 单元的 SD05——SD00 给出微地址,连续两次按动时序与
操作台的开关 ST,MC单元的指数据指示灯 M7——M0 显示该单元的低 8 位。
③ 将时序与操作台单元的开关 KK5 置为‘加 1’档。
④ 连续两次按动时序与操作台的开关 ST,MC 单元的指数据指示灯 M15——M8 显示该单元的中 8 位,MC 单元的指数据指示灯 M23——M16 显示该单元的高 8 位。
⑤ 重复①、②、③、④四步,完成对微代码的校验。如果校验出微代
码写入错误,重新写入、校验,直至确认微指令的输入无误为止。
(5) 手动写入机器程序
① 将时序与操作台单元的开关 KK1 置为‘停止’档,KK3 置为‘编程’
档,KK4 置为‘主存’档,KK5 置为‘置数’档。
② 使用 CON 单元的 SD7——SD0 给出地址,IN 单元给出该单元应写
入的数据,连续两次按动时序与操作台的开关 ST,将 IN 单元的数据写到该存储器单元。
③ 将时序与操作台单元的开关 KK5 置为‘加 1’档。
④ IN 单元给出下一地址(地址自动加 1)应写入的数据,连续两次按
动时序与操作台的开关 ST,将 IN 单元的数据写到该单元中。然后地址会又自加 1,只需在 IN 单元输入后续地址的数据,连续两次按动时序与操作台的开关 ST,即可完成对该单元的写入。
⑤ 亦可重复①、②两步,将所有机器指令写入主存芯片中。
(6) 手动校验机器程序
① 将时序与操作台单元的开关 KK1 置为‘停止’档,KK3 置为‘校验’
档,KK4 置为‘主存’档,KK5 置为‘置数’档。
② 使用 CON 单元的 SD7——SD0 给出地址,连续两次按动时序与操作
台的开关 ST,CPU 内总线的指数据指示灯 D7——D0 显示该单元的数据。
③ 将时序与操作台单元的开关 KK5 置为‘加 1’档。
④ 连续两次按动时序与操作台的开关 ST,地址自动加 1,CPU 内总线
的指数据指示灯 D7——D0 显示该单元的数据。此后每两次按动时序与操作台的开关 ST,地址自动加 1,CPU 内总线的指数据指示灯 D7——D0 显示该单元的数据,继续进行该操作,直至完成校验,如发现错误,则返回写入,然后校验,直至确认输入的所有指令准确无误。
⑤ 亦可重复①、②两步,完成对指令码的校验。如果校验出指令码写
入错误,重新写入、校验,直至确认指令的输入无误为止。
2) 联机写入和校验
联机软件提供了微程序和机器程序下载功能,以代替手动读写微程序和机器程序,但是微程序和机器程序得以指定的格式写入到以 TXT 为后缀的文件中,本次实验程序如下,程序中分号‘;’为注释符,分号后面的内容在下载时将被忽略掉。
图 5-3-6 实验接线图
选择联机软件的“【转储】—【装载】”功能,在打开文件对话框中选择上面所保存的文件,软件自动将机器程序和微程序写入指定单元。
选择联机软件的“【转储】—【刷新指令区】”可以读出下位机所有的机器指令和微指令,
并在指令区显示,对照文件检查微程序和机器程序是否正确,如果不正确,则说明写入操作失败,应重新写入,可以通过联机软件单独修改某个单元的指令,以修改微指令为例,先用鼠标左键单击指令区的‘微存’TAB 按钮,然后再单击需修改单元的数据,此时该单元变为编辑框,输入 6 位数据并回车,编辑框消失,并以红色显示写入的数据。
3. 运行程序
方法一:本机运行
方法二:联机运行(软件使用说明请看附录 1)
五、实验程序流程图
六、实验思考题
结合实验输入,给出循环次数,并说明控制循环次数的方式?
控制循环次数的方式为
$P 0E 72 ; INC RI 变址寄存加 1,指向下一数据 $P 0F 63 ; LDI R3,01H 装入比较值
$P 10 01
$P 11 8C ; SUB R0,R3
$P 12 F0 ; BZC RESULT 相减为 0,表示求和完毕 $P 13 16
$P 14 E0 ; JMP LOOP 未完则继续
利用变址寻址方式找出下一数据,并通过与比较值比较来控制循环方式。 循环次数:(A+变址寻址次数)《比较值
七、实验心得与感想
本次实验属于一次探究性的实验。
和前面的实验相比,复杂模型机实验指令多,寻址方式多,实验过程中,通过从IN单元输入一个任意数据,读出该数据的低四位,可求得从1到该数的累加和,最终结果以十六进制在OUT单元中显示出来。不同的数据会有不同的结果,通过改变测试条件也可以控制程序循环的次数。在循环过程中,利用变址寄存器可以使CPU在主存内依次访问不同的指令。
本实验需要输入较多的微命令,所以不适合手动输入,联机装载即可。在程序运行过程,将KK2大成单节拍,观察完整过程,并了解每一过程的含义。
实验的连线较前几次都多,连接完毕后要连接检查线路。