计算机组成原理微程序控制器.doc
《计算机组成原理微程序控制器.doc》由会员分享,可在线阅读,更多相关《计算机组成原理微程序控制器.doc(5页珍藏版)》请在冰豆网上搜索。
计算机组成原理实验报告
评语:
课中检查完成的题号及题数:
成绩:
自评分:
实验报告
实验名称:
微程序控制器
日期:
2012.12.31
本人信息
班级:
学号:
姓名:
同组同学信息
班级:
学号:
姓名:
一、实验目的:
1.
掌握微程序控制器的组成原理。
2.
掌握微程序的编制、写入,观察微程序的运行过程。
3.
可以自行设计一些微程序,更好地掌握微程序控制器及其工作原理。
二、实验内容:
1.
对微控器进行读写操作
首先对微控器进行编程(写)
(1)按图连线;
(2)将MC单元编程开关置为“编程”挡,时序单元状态开关置为“单步”挡,ADDR单元状态开关置为“置数”挡;
(3)使用ADDR单元的低6位SA5……SA0给出微地址MA5……MA0,微地址可以通过MC单元的MA5……MA0微地址灯显示;
(4)CON单元SD27…...SD20,SD17……SD10,SD07……SD00开关上置24位微代码,待写入值由MC单元的M23……M024位LED灯显示;
(5)启动时序电路(按动一次TS按钮),即将微代码写入到EPROM2816的相应地址对应的单元中;
(6)重复(3)(4)(5)3步。
再对微控器进行校验(读)
(1)将MC单元编程开关置为“校验”挡,时序单元状态开关置为“单步”挡,ADDR单元状态开关置为“置数”挡;
(2)使用ADDR单元的低6位SA5……SA0给出微地址MA5……MA0,相应的地址单元的数据将会被读出,重复本步。
2.
运行微程序。
3.
自行按要求设计微程序,要求编写用微程序实现存储器中两个单字节十六进制数的加法运算,结果输出至OUT单元。
要求:
操作数由IN单元R0MEM
MEMR0ALU
ALUR0结果OUT单元输出
三、项目要求及分析:
对于该思考题要求操作数由IN单元输入,经过R0存至MEM,再由MEM中经过R0到ALU进行运算,将运算结果经过R0由OUT单元输出。
可以这样考虑,首先将要输入数据的地址通过IN单元输入至AR中,然后再通过IN单元将要输入的数据通过R0存至MEM中,这样可以将要参与运算的两个数据按其地址存入MEM中,接着可以输入要参与运算的数据的地址来将MEM中的数据通过R0存入ALU中的两个寄存器中,然后ALU进行加法计算,将结果经由R0输出至OUT单元。
四、具体实现:
1.画出指令系统修改后微程序流程图
2.编写微程序
$M00000001;NOP
$M01007070;CON(INS)->IR,P<1>
$M30186004;A加B->R0
$M04103005;IN->AR
$M05001406;MEM->R0
$M06186007;R0->A
$M07103008;IN->AR
$M08002409;MEM->R0
$M0904B201;RO->B
$M3218300A;IN->MEM
$M0A18600B;IN->AR
$M0B200401;IN->R0
$M35000035;NOP
$M33280401;RO->OUT
3.机器指令验证程序
助记符机器指令码说明
IN00100000IN->AR
ADD00000000A+B->R0
OUT00110000R0->OUT
HLT01010000停机
联机装入调试
(1)将微程序用联机软件的【转储】->【装载数据】功能将微程序文件装载入实验系统;
(2)将MC单元的编程开关置为“运行”挡,MEM单元的编程开关也置为“运行”挡,按动CON单元的CLR按钮,将微地址寄存器(MAR)清零,同时也将指令寄存器(IR),ALU单元的暂存器A和暂存器B清零;
(3)将时序单元的开关置为“单拍”挡,然后按动TS按钮;
(4)按动CON单元的CLR按钮,清零微地址寄存器(MAR)等,并将时序单元的状态开关置为“单步”挡;
(5)首先将第一个数据的地址00000000在IN单元置出,按动TS按钮,当MC单元后续微地址显示为000001时,在CON单元的SD27……SD20模拟给出IN指令00100000并继续单步执行,当MC单元后续微地址显示为000001时,说明当前指令已执行完;然后在IN单元将要输入的数据00010011置出,按动TS按钮,将数据存入R0中,再按动按钮数据存入MEM中,重复上述步骤,将第二个数据地址00000001及数据01110010存入;
(6)在CON单元的SD27……SD20给出ADD指令00000000,然后按动TS按钮,接着在IN单元输入要参与运算的数据的地址00000000,按动TS按钮,在显示后续地址为07时输入另一个数据的地址00000001,按动TS按钮直至MC单元后续微地址显示为000001时结束,表明输入的两个数据相加结束;
(7)接下来在CON单元的SD27……SD20给出 OUT指令00110000并继续单步执行,在MC单元后续微地址显示为000001时,观察输出为10000101。
五、调试运行结果:
六、所遇问题及解决方法:
1.本次试验中我们组在连线时由于疏忽而连错线,导致前期试验无法出结果,后经检查发现错误,改正后结果正确;
2.在后来的试验中,由于对于微程序的理解不太够,所以迟迟无法解决思考题的微程序的编写,经过我们组员的努力,仔细学习了课本内容,将问题顺利解决;
3.在试验中,输入数据与其要输入的地址位置相反,后来经检查是连线问题,改正后结果正确。
七、实验总结:
1.
通过本次试验,我对于微程序控制器的组成原理有了更好的理解;
2.
掌握了微程序的编制、写入,对于微程序的运行过程有了更深一层次的理解;
3.
可以通过本次试验学习的内容,来解决一些比较简单的实际操作问题。
5