赞
踩
一、实验目的
1:将微程序控制器同执行部件(整个数据通路)联机,组成一台模型计算机。
2:用微程序控制器控制模型机数据通路。
3:通过CPU运行几条机器指令(排除中断指令)组成的简单程序,掌握机器指令与微指令的关系,牢固建立计算机的整机概念。
二、实验设备
TEC-4计算机组成原理实验系统(实验箱)和仿真软件。
三、实验内容
1:机器指令系统组成的简单程序进行译码
存储地址 | 指令 | 机器代码 |
00H | LDA R0,[R2] | 0101 1000 |
01H | LDA R1,[R3] | 0101 1101 |
02H | ADD R0,R1 | 0000 0100 |
03H | STP | 0110 0000 |
2:根据框图完成连线
控制器是控制部件,数据通路(包括数据通路总图中运算器、存储器及输入输出等各模块)是执行部件,时序产生器是时序部件。
1)将跳线开关J1用短路子短接。时序发生器的输入TJI接控制存储器的输出TJ。控制器的输入C接运算器ALU的C。控制器的输入IR7、IR6、IR5、IR4依次指令寄存器IR的输出IR7、IR6、IR5、IR4。共6条线。
2)控制器的输出LDIR(CER)、LDPC(LDR4)、PC_ADD、PC_INC、M4、LDIAR、LDAR1(LDAR2)、AR1_INC、M3、LDER、IAR_BUS#、SW_BUS#、RS_BUS#、ALU_BUS、CEL#、LRW、WRD、LDDR1(LDDR2)、M1(M2)、S2、S1、S0依次与数据通路的对应信号连接。共27条线。
3)指令寄存器IR的输出IR0接双端口寄存器堆的RD0、WR0,IR1接RD1、WR1,IR2接RS0,IR3接RS1。共6条线。
以仿真面板为例,各部件(微程序控制器、数据通路、控制台)之间所需要的连线如下图所示:
最终的连线结果如下图所示:
3:存程序机器代码,设置通用寄存器R2、R3及内存相关单元的数据
● 设置通用寄存器R2、R3的值
第一步:令DP=0,DB=0,DZ=0,使实验系统处于连续运行状态。令SWC=0、SWB=1、SWA=1,使实验系统处于寄存器加载工作方式KLD。按CLR#按钮,使实验系统处于初始状态。
第二步:令SW=1111 1111,按下QD。即把RAM中的FF内存单元供设置通用寄存器使用,此步为选中RAM中的FF内存单元.
第三步:令SW=0000 0010,按下QD。即把通用寄存器R2的寄存器号写入IR中。
第四步:令SW=0110 0000,按下QD。即把60H写入IR指定的R2寄存器中。
第五步:令SW=0000 0011,按下QD。即把通用寄存器R3的寄存器号写入IR中。
第六步:令SW=0110 0001,按下QD。即把61H写入IR指定的R3寄存器中。
第七步:按下CLR#,使实验系统恢复到初始状态。
● 存程序机器代码
第一步:令DP=0,DB=0,DZ=0,使实验系统处于连续运行状态。令SWC = 0、SWB = 1、SWA = 0,使实验系统处于写双端口存储器工作方式KWE。按CLR#按钮,使实验系统处于初始状态。
第二步:令SW=0000 0000,按下QD。将00H写入AR1。
第三步:令SW=0101 1000,按下QD。将58H写入存储器00H单元。AR1自动加1,变为01H。
第四步:令SW=0101 1101,按下QD。将5DH写入存储器01H单元。AR1自动加1,变为02H。
第五步:令SW=0000 0100,按下QD。使AR1+1,AR1此时为03H。
第六步:令SW=0110 0000,按下QD。使AR1+1。AR1此时为04H。
第七步:按CLR#,令SW=0110 0000,按下QD。将60H写入AR1。
第八步:令SW=0010 0100,按下QD。将24H写入存储器60H单元。AR1自动加1,变为61H。
第九步:令SW=1000 0011,按下QD。将83H写入存储器61H单元。
第十步:按CLR#,使实验系统恢复到初始状态。
第十一步:查询01H、02H、03H、04H、60H、61H存储单元中在之前步骤中所存储的数据是否正确。
4:用单拍(DP)方式执行一遍程序
设置SWC=0,SWB=0,SWA=0,计算机处于PR启动程序阶段,同时设置DP=1,DB=0,DZ=0,用SW7-SW0设置这几条指令的起始地址00H,按QD单拍执行。观察执行过程微地址变化和执行结果如下表所示:
QD次数 | 后继微地址 | 执行内容 |
1 | 000111 | 取指 |
2 | 000101 | 译码 |
3 | 010101 | 加载寻址 |
4 | 110110 | 读取 |
5 | 110100 | 写入 |
6 | 001111 | 取指 |
7 | 000101 | 译码 |
8 | 010101 | 加载寻址 |
9 | 110110 | 读取 |
10 | 110100 | 写入 |
11 | 001111 | 取指 |
12 | 000101 | 译码 |
13 | 010000 | 加法寻址 |
14 | 111011 | 运算加法 |
15 | 110100 | 写入 |
16 | 001111 | 取值 |
17 | 000101 | 译码 |
18 | 010110 | 停机 |
最终运行结果如下图所示:保存在R0处的数据为两数相加的结果A7(1010 0111)。
5:比较单拍和单指方式执行程序
两种条件下寄存器的数据如下表所示:
单拍模式 | 单指模式 | |
R0 | 0010 0100 | 1010 0111 |
R1 | 1000 0011 | 1000 0011 |
R2 | 0110 0000 | 0110 0000 |
R3 | 0110 0001 | 0110 0001 |
四、实验数据通路总图
五、分析问题
1:为什么IR0,IR1对应接RD0、RD1, 还要接WR0、WR1?
RDl、RD0选择从A端口读出的寄存器,WR0、WR1选择被写入的寄存器。由于运算结果需写回寄存器中,因此需要同时指WRl、WR0,即IR0和IR1需要同时连接RD0、RD1和WR0、WR1。
2:KLD方式的功能是什么?为什么要用到内存的一个存储单元?
KLD的功能是加载寄存器堆。该存储单元供设置通用寄存器使用,在设置通用寄存器值的时候,该存储单元会暂存寄存器的编号。该存储器地址最好是不常用的一个地址,以免设置通用寄存器操作破坏重要的存储器单元的内容0。在本次实验中选用的为FFH。
3:总结实验出现的问题、解决办法,实验体会。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。