******软件学院
《计算机组成原理》
实验报告
专 业:
班 级:
学 号:
日 期:
学生姓名:
指导教师:
运算器组成实验
一、实验目的
1.熟悉双端口通用寄存器堆的读写操作。
2.熟悉简单运算器的数据传送通路。
3.验证运算器74LS181的算术逻辑功能。
4.按给定数据,完成指定的算术、逻辑运算。
二、实验电路
三、实验设备
1. TEC-5计算机组成实验系统1台
2. 逻辑测试笔一支(在TEC-5实验台上)
3. 双踪示波器一台(公用)
4. 万用表一只(公用)
四、实验内容
1. 按图2.1所示,将运算器模块与实验台操作板上的线路进行连接。由于运算器模块内部的连线已由印制板连好,故我们的接线任务仅仅是完成数据开关、控制信号模拟开关、与运算器模块的外部连线。
2. 用开关SW7—SW0向通用寄存器堆RF内的R0—R3寄存器置数。然后读出R0—R3的内容,在数据总线DBUS上显示出来。
3. 验证ALU的正逻辑算术、逻辑运算功能。
令DR1=55H,DR2=0AAH,Cn#=1。在M=0和M=1两种情况下,令S3—S0的值从0000B变到1111B,列表表示出实验结果。实验结果包含进位C,进位C由指示灯显示。
注意:进位C是运算器ALU最高位进位Cn+4#的反,即有进位为1,无进位为0。
五、实验结果
(1)实验内容2 的实验结果如下:(假定令R0=34H,R1=21H,R2=52H,R3=65H)
1. 置K2(RS0)=0,K3(RS1)=0,K4(SW_BUS#)=1,K5(RS_BUS#)=0, K6(LDRi)=0,在DBUS上将观察到DBUS=34H。
2. 置K2(RS0)=1,K3(RS1)=0,K4(SW_BUS#)=1,K5(RS_BUS#)=0, K6(LDRi)=0,在DBUS上将观察到DBUS=21H。
3. 置K2(RS0)=0,K3(RS1)=1,K4(SW_BUS#)=1,K5(RS_BUS#)=0, K6(LDRi)=0,在DBUS上将观察到DBUS=52H。
4. 置K2(RS0)=1,K3(RS1)=1,K4(SW_BUS#)=1,K5(RS_BUS#)=0, K6(LDRi)=0,在DBUS上将观察到DBUS=65H。
(2)实验内容3的实验结果如下
表2.1 实验任务3实验结果(DR1=55H,DR2=0AAH
实验感想:
通过这次实验我了解到了双端口通用寄存器的读写操作,虽然有点陌生,但是通过这次小小的动手实验,我也感受到了它就在我们身边,感觉它的神奇和它对我们的功劳!另外,我也熟悉了简单运算器的数据传送通路,通过实验验证了运算器74LS181的算术逻辑功能,以及按给定数据,完成指定的算术、逻辑运算。那么实验之外,我也体会到了小组的合作力量,我们有分析数据的,有负责接线的,有记录数据的等,按照实验步骤,经过我们的努力,实验结果就自然的呈现在实验仪器上,呵呵,感觉实验是那么有趣,不仅让我们学到了动手能力和团结能力,也让我们班有了一次小小的“热闹活动”,真的很感激这次实验带给我们的知识、能力和乐趣!
中原工学院软件学院
《计算机组成原理》
实验报告
专 业: 软件工程
班 级: rjB网络101
学 号: **
日 期: 20**/12/12
学生姓名: **
指导教师: **
存储器实验
一、实验目的
1. 了解双端口静态存储器IDT7132的工作特性及其使用方法
2. 了解半导体存储器怎样存储和读取数据。
3. 了解双端口存储器怎样并行读写,并分析冲突产生的情况。
二、实验电路
图2.2示出了双端口存储器的实验电路图。这里使用一片IDT7132(2048×8位),两个端口的地址输入A8-A10引脚接地,因此实际使用的存储容量为256字节。左端口的数据输出接数据总线DBUS,右端口的数据输出端接指令总线IBUS。
三、实验设备
1. TEC-5计算机组成原理实验系统1台
2. 逻辑测试笔一支( 在TEC-5实验台上)
3. 双踪示波器一台(公用)
4. 万用表一只(公用)
四、实验内容
1. 按图7所示,将有关控制信号和二进制开关对应接好,仔细复查一遍,然后接通电源。
2. 将二进制数码开关SW7-SW0(SW0为最低位)设置为00H,将其作为存储器地址置入AR;然后将二进制开关的00H作为数据写入RAM中。用这个方法,向存储器的10H、20H、30H、40H单元依次写入10H、20H、30H和40H。
3. 使用存储器的左端口,依次将第2步存入的5个数据读出,观察各单元中存入的数据是否正确。记录数据。注意:禁止两个或两个以上的数据源同时向数据总线上发送数据!在本实验中,当存储器进行读出操作时,务必将SW_BUS#的三态门关闭。而当向AR送入数据时,双端口存储器也不能被选中。
4. 通过存储器的右端口,将第2步存入的5个数据读出,观察结果是否与第3步结果相同。记录数据。
5. 双端口存储器的并行读写和访问冲突。
将CEL#、CER#同时置为0,使存储器的左右端口同时被选中。当AR和PC的地址不相同时,没有访问冲突;地址相同时,由于都是读操作,也不会冲突。如果左右端口地址相同,且一个进行读操作,一个进行写操作,就会发生冲突。检测冲突的方法:观察两个端口的“忙”信号输出指示灯BUSYL#和BUSYR#。BUSYL#/BUSYR#灯亮(为0)时,不一定发生冲突,但发生冲突时,BUSYL#/BUSYR#必定亮。
五、实验结果
(1)从左端口读出存储器00H、10H、20H、30H、40H的内容。
1.令K0(LDAR#)=0,K2(CEL#)=1,K4(RAM_BUS#)=1,K5(CER#)=1,K6(SW_BUS#)=0。置SW7-SW0=00H,按QD按钮,将00H打入地址寄存器AR。
2.先令K6(SW_BUS#)=1,再令K2(CEL#)=0,K3(LR/W#)=1,K4(RAM_BUS#)=0,K5(CER#)=1,则在数据总线 DBUS上显示出存储器单元00H的内容00H。
3.重复1和2的方法,只是改变1中的SW7_SW0的值为10H、20H、30H、40H,则可在数据总线DBUS上观察到存储器单元10H、20H、30H、40H的内容为10H、20H、30H、40H。
(2)从右端口读出存储器00H、10H、20H、30H、40H的内容。
1.令K1(LDPC#)=0,K2(CEL#)=1,K4(RAM_BUS#)=1,K5(CER#)=1,K6(SW_BUS#)=0。置SW7-SW0=00H,按QD按钮,将00H打入PC。
2.令K6(SW_BUS#)=1,K2(CEL#)=1,K5(CER#)=0,则在指令总线IBUS上显示出存储器单元00H的内容00H。
3.重复1和2的方法,只是改变1中的SW7_SW0的值为10H、20H、30H、40H,则可在指令总线IBUS上观察到存储器单元10H、20H、30H、40H的内容为10H、20H、30H、40H。
(3)双端口存储器的并行读写和访问冲突。
1.令K0(LDAR#)=0,K1(LDPC#)=0,K2(CEL#)=1,K4(RAM_BUS#)=1,K5(CER#)=1,K6(SW_BUS#)=0。置SW7-SW0为30H。按QD按钮,将30H打入地址寄存器AR和程序计数器PC。
2.置K6(SW_BUS#)=1,K3(LR/W#)=1,K4(RAM_BUS#)=0。先令K5(CER#)=0,K2(CEL#)=1,这时BUSYL#指示灯不亮。令K2(CEL#)=0,这时BUSYL#指示灯亮,表示左端口在右端口之后和右端口同时对同一个地址读,数据总线DBUS显示30H,指令总线IBUS也显示30H。再令K2(CEL#)=1,BUSYL#指示灯恢复不亮。
3.置K6(SW_BUS#)=1,K3(LR/W#)=1,K4(RAM_BUS#)=0。先令K2(CEL#)=0,K5(CER#)=1,这时BUSYR#指示灯不亮。令K5(CER#)=0,这时BUSYR#指示灯亮,表示右端口在左端口之后和左端口同时对同一个地址读,数据总线DBUS显示30H,指令总线IBUS也显示30H。再令K5(CER#)=1,BUSYR#指示灯恢复不亮。
实验感想:
这次实验,我们主要是了解双端口静态存储器IDT7132的工作特性及其使用方法,了解半导体存储器怎样存储和读取数据,以及双端口存储器是怎样并行读写,并分析冲突产生的情况。有了上次实验的经验,我们沉着冷静,分工进行。由于这次实验的接线量大,为保证接线的正确性,我们加大了接线的人员,就是一人接线,一人监督确定。就这样我们很轻松的就把实验结果顺利展示出来,我感觉实验需要人的不仅要有兴趣,还要有细心和耐心,这次实验我们费了好大精力,但是最终还是让我们克服了,我们相信自己,也由衷地佩服那些开发人员!
中原工学院软件学院
《计算机组成原理》
实验报告
专 业: 软件工程
班 级: rjB网络101
学 号: **
日 期: 20**/12/14
学生姓名: **
指导教师: ***
数据通路组成实验
一、实验目的
1. 进一步熟悉计算机的数据通路。
2. 将双端口通用寄存器堆和双端口存储器模块连接,构成新的数据通路。
3. 掌握数字逻辑电路中的一般规律,以及排除故障的一般原则和方法。
4. 锻炼分析问题和解决问题的能力,在出现故障的情况下,独立分析故障现象,并排除故障。
二、实验电路
数据通路实验电路图如图2.3所示。它是将双端口存储器模块和双端口通用寄存器堆模块连接在一起形成的。存储器的指令端口(右端口)不参与本次实验。通用寄存器堆连接运算器模块,本次实验涉及其中的DR1。
由于双端口存储器是三态输出,因而可以直接连接到DBUS上。此外,DBUS还连接着通用寄存器堆。这样,写入存储器的数据由通用寄存器提供,从RAM中读出的数据也可以放到通用寄存器堆中保存。
三、实验设备
1. TEC-5计算机组成原理实验系统1台
2. 逻辑测试笔一支(在TEC-5实验台上)
3. 双踪示波器一台(公用)
4. 万用表一只(公用)
四、实验内容
1. 将实验电路与控制台的有关信号进行连接。
2. 用8位数据开关SW7-SW0向RF中的四个通用寄存器分别置入以下数据:R0=0FH、R1=0F0H、R2=55H、R3=0AAH。
3. 用8位数据开关向AR送入地址0FH,然后将R0中的数据0FH写入双端口存储器中。用同样的方法,依次将R1、R2、R3中的数据分别置入RAM的0F0H、55H、0AAH单元。
4. 分别将RAM的0AAH单元数据写入R0,55H单元数据写入R1,0F0H单元数据写入R2,0FH单元数据写入R3。然后将R0-R3中的数据读出,验证数据的正确性,并记录数据。
五、实验结果
1.令K0(RS0)=0,K1(RS1)=0,K6(LDRi)=0,K8(RS_BUS#)=0,K9(SW_BUS#)=1,K10(ALU_BUS#)=1,K11(RAM_BUS#)=1,读出R0的内容在数据总线上。数据总线DBUS指示灯为0AAH。
2.令K0(RS0)=1,K1(RS1)=0,K6(LDRi)=0,K8(RS_BUS#)=0,K9(SW_BUS#)=1,K10(ALU_BUS#)=1,K11(RAM_BUS#)=1,读出R1的内容在数据总线上。数据总线DBUS指示灯为55H。
3.令K0(RS0)=0,K1(RS1)=1,K6(LDRi)=0,K8(RS_BUS#)=0,K9(SW_BUS#)=1,K10(ALU_BUS#)=1,K11(RAM_BUS#)=1,读出R2的内容在数据总线上。数据总线DBUS指示灯为0F0H。
4.令K0(RS0)=1,K1(RS1)=1,K6(LDRi)=0,K8(RS_BUS#)=0,K9(SW_BUS#)=1,K10(ALU_BUS#)=1,K11(RAM_BUS#)=1,读出R3的内容在数据总线上。数据总线DBUS指示灯为0FH。
实验感想:
通过这次实验我们熟悉计算机的数据通路,将双端口通用寄存器堆和双端口存储器模块连接,构成新的数据通路。以及,掌握了数字逻辑电路中的一般规律,以及排除故障的一般原则和方法。通过锻炼分析问题和解决问题的能力,在出现故障的情况下,我们又独立分析故障现象,并排除故障。按计划圆满地完成了此实验,我们信心倍增,动手能力有提高了好多!
中原工学院软件学院
《计算机组成原理》
实验报告
专 业: 软件工程
班 级: rjB网络101
学 号: **
日 期: 20**/12/19
学生姓名: **
指导教师: **
常规型微程序控制器组成实验
一、实验目的
1. 掌握时序发生器的组成原理。
2. 掌握微程序控制器的组成原理。
二、实验电路
1. 时序发生器
本实验所用的时序电路见图2.4。电路由一个500KHz晶振、2片GAL22V10、一片74LS390组成,可产生两级等间隔时序信号T1-T4、W1-W3,其中一个W由一轮T1-T4组成,相当于一个微指令周期或硬连线控制器的一拍,而一轮W1-W3可以执行硬连线控制器的一条机器指令。另外,供数字逻辑实验使用的时钟由MF经一片74LS390分频后产生。
图2.4 时序信号发生器
三、实验设备
1. TEC-5计算机组成原理实验系统1台
2. 逻辑测试笔一支(在TEC-5实验台上)
3. 双踪示波器一台(公用)
4. 万用表一只(公用)
四、实验内容
1. 按实验要求,连接实验台的电平开关K0-K15、时钟信号源和微程序控制器。连接完成后仔细检查一遍,然后才可以加上电源。
2. 观察时序信号。
用双踪示波器观测时序发生器的输入、输出信号:MF、T1-T4、W1-W3。比较相位关系,画出其波形图,并标注出测量所得的脉冲宽度。观察时须将DB、DP开关置为0状态,然后按QD按钮。
熟悉启停控制按钮的功能,并熟练使用这些控制按钮或开关。
3. 熟悉微指令格式的定义,按此定义将图2.7所示的全部微程序变换成二进制代码,并列表登记。
4. 控制台操作的功能由SWC、SWB、SWA三个二进制开关的状态配合P0判断来决定。用单拍(DP)方式执行控制台操作微程序,观察判别字段和微地址指示灯的显示,跟踪微指令的执行情况,并与上表数据对照。
5. 深刻理解0FH微指令的功能和P1测试的状态条件(IR7-IR4),用二进制开关设置IR7-IR4的不同状态,观察ADD至OUT八条机器指令对应微程序的微命令信号,特别是微地址转移的实现,并与上面表格进行对照。
五、实验结果
(1)观察时序信号的波形
置DP=0,DB=0。先按CLR#按钮复位,再QD按钮。则时序部分开始不停止地运行,直到按CLR#按钮为止。用双踪示波器观察MF、T1、T2、T3、T4、W1、W2、W3信号。观察的方法是同时观察两路信号,以便于比较相位。可按下述顺序进行观察:MF和T1,T1和T2,T2和T3,T3和T4,T1和W1,W1和W2,W2和W3。根据观察的结果,可绘出波形图。
MF的周期为2000毫秒,占空比为50%。
(3)控存代码表
表2.4 控存代码表
(4) 控制台操作微指令编码测试
控制台微代码在58C65的D0—D7输出,D0是最低位,D7是最高位,CM0是最低字节,CM3是最高字节。D0—D7对应于28C64的引脚11、12、13、15、16、17、18、19。对于控存的输出,有相应的32个指示灯指示。
置DP = 1,DB =0,使实验系统处于单拍状态。置SWC = 0、SWB = 0、SWA = 1,实验系统处于写存储器WRM工作模式。按CLR#按钮,使实验系统处于初始状态,微地址为00H,测得的微码是00H 00H 00H 48H。按一次QD按钮,微地址为09H,测得的微码是00H 08H 84H 04H。按一次QD按钮,微地址为04H,测得的微码是01H 08H 00H 05H。按一次QD按钮,微地址为05H,测得的微码是00H 00H 44H 04H。按一次QD按钮,微地址为04H。由于微地址又返回04H,停止测试。
置DP = 1,DB =0,使实验系统处于单拍状态。置SWC = 0、SWB = 1、SWA = 0,实验系统处于读存储器RRM工作模式。按CLR#按钮,使实验系统处于初始状态,微地址为00H,测得的微码是00H 00H 00H 48H。按一次QD按钮,微地址为0AH,测得的微码是00H 08H 80H 02H。按一次QD按钮,微地址为02H,测得的微码是03H 40H 04H 03H。按一次QD按钮,微地址为03H,测得的微码是00H 00H 40H 02H。按一次QD按钮,微地址为02H。由于微地址又返回02H,停止测试。
置DP = 1,DB =0,使实验系统处于单拍状态。置SWC = 0、SWB = 1、SWA = 1,实验系统处于写寄存器WRF工作模式。按CLR#按钮,使实验系统处于初始状态,微地址为00H, 测得的微码是00H 00H 00H 48H。按一次QD按钮,微地址为0BH,测得的微码是00H 08H 0A4H 1DH。按一次QD按钮,微地址为1DH,测得的微码是01H 08H 00H 0DH。按一次QD按钮,微地址为0DH,测得的微码是00H 80H 0CH 0EH。按一次QD按钮,微地址为0EH,测得的微码是00H 0CH 04H 1DH。按一次QD按钮,微地址为1DH。由于微地址又返回1DH,停止测试。
置DP = 1,DB =0,使实验系统处于单拍状态。置SWC = 1、SWB = 0、SWA = 0,实验系统处于读寄存器工作模式。按CLR#按钮,使实验系统处于初始状态,微地址为00H, 测得的微码是00H 00H 00H 48H。按一次QD按钮,微地址为0CH,测得的微码是00H 08H 0A4H 1EH。按一次QD按钮,微地址为1EH,测得的微码是01H 08H 00H 06H。按一次QD按钮,微地址为06H,测得的微码是00H 80H 08H 07H。按一次QD按钮,微地址为07H,测得的微码是00H 10H 04H 1EH。按一次QD按钮,微地址为1EH。由于微地址又返回1EH,停止测试。
置DP = 1,DB =0,使实验系统处于单拍状态。置SWC=0、SWB = 0、SWA = 0,实验系统处于PR工作模式。按CLR#按钮,使实验系统处于初始状态,微地址为00H。按一次QD按钮,微地址为08H,测得的微码是00H 08H 20H 0FH。按一次QD按钮,微地址为0FH,测得的微码是00H 80H 08H 90H。由于以后的微码与机器指令有关,停止测试。
(5) 深刻理解0FH微指令的功能和P1测试的状态条件(IR7-IR4),用二进制开关设置IR7-IR4的不同状态,观察ADD至OUT八条机器指令对应微程序的微命令信号,特别是微地址转移的实现。
0FH微指令的功能是根据程序计数器PC从存储器取指令,送往指令寄存器IR。0FH微指令的下一微指令地址是10H。不过,10H只是一个表面的下一微地址,由于该微指令中P1 = 1,因此实际的微指令地址的低4位要根据IR7—IR4确定,实际微地址为10H + IR7 IR6 IR5 IR4。
1. 置DP = 1,DB =0,使实验系统处于单拍状态。选择SWC = 0、SWB = 0、SWA = 0,按CLR#按钮,使实验系统处于初始状态,微地址是00H。按一次QD按钮,微地址变为08H,微代码为00H 08H 20H 0FH。按一次QD按钮,微地址变为0FH,微代码为00H 80H 08H 90H。令K4(IR7) = 0,K3(IR6)=0,K2(IR5)= 0,K1(IR4)= 0,相当于ADD指令的操作码。按一次QD按钮,微地址变为10H,微代码是00H 03H 00H 18H。按一次QD按钮,微地址变为18H,微代码是90H 24H 10H 0FH。按一次QD按钮,微地址回到0FH。
2. 置DP = 1,DB =0,使实验系统处于单拍状态。选择SWC = 0、SWB = 0、SWA = 0,按CLR#按钮,使实验系统处于初始状态,微地址是00H。按一次QD按钮,微地址变为08H,微代码为00H 08H 20H 0FH。按一次QD按钮,微地址变为0FH,微代码为00H 80H 08H 90H。令K4(IR7) = 0,K3(IR6)=0,K2(IR5)= 0,K1(IR4)= 1,相当于SUB指令的操作码。按一次QD按钮,微地址变为11H,微代码是00H 03H 00H 19H。按一次QD按钮,微地址变为19H,微代码是64H 24H 10H 0FH。按一次QD按钮,微地址回到0FH。
3. 置DP = 1,DB =0,使实验系统处于单拍状态。选择SWC = 0、SWB = 0、SWA = 0,按CLR#按钮,使实验系统处于初始状态,微地址是00H。按一次QD按钮,微地址变为08H,微代码为00H 08H 20H 0FH。按一次QD按钮,微地址变为0FH,微代码为00H 80H 08H 90H。令K4(IR7) = 0,K3(IR6)=0,K2(IR5)= 1,K1(IR4)= 0,相当于AND指令的操作码。按一次QD按钮,微地址变为12H,微代码是00H 03H 00H 1AH。按一次QD按钮,微地址变为1AH,微代码是0B8H 24H 10H 0FH。按一次QD按钮,微地址回到0FH。
4. 置DP = 1,DB =0,使实验系统处于单拍状态。选择SWC = 0、SWB = 0、SWA = 0,按CLR#按钮,使实验系统处于初始状态,微地址是00H。按一次QD按钮,微地址变为08H,微代码为00H 08H 20H 0FH。按一次QD按钮,微地址变为0FH,微代码为00H 80H 08H 90H。令K4(IR7) = 0,K3(IR6)=0,K2(IR5)= 1,K1(IR4)= 1,相当于STA指令的操作码。按一次QD按钮,微地址变为13H,微代码是00H 11H 80H 1BH。按一次QD按钮,微地址变为1BH,微代码是01H 20H 10H 0FH。按一次QD按钮,微地址回到0FH。
5. 置DP = 1,DB =0,使实验系统处于单拍状态。选择SWC = 0、SWB = 0、SWA = 0,按CLR#按钮,使实验系统处于初始状态,微地址是00H。按一次QD按钮,微地址变为08H,微代码为00H 08H 20H 0FH。按一次QD按钮,微地址变为0FH,微代码为00H 80H 08H 90H。令K4(IR7) = 0,K3(IR6)=1,K2(IR5)= 0,K1(IR4)= 0,相当于LDA指令的操作码。按一次QD按钮,微地址变为14H,微代码是00H 10H 80H 1CH。按一次QD按钮,微地址变为1CH,微代码是03H 44H 10H 0FH。按一次QD按钮,微地址回到0FH。
6. 置DP = 1,DB =0,使实验系统处于单拍状态。选择SWC = 0、SWB = 0、SWA = 0,按CLR#按钮,使实验系统处于初始状态,微地址是00H。按一次QD按钮,微地址变为08H,微代码为00H 08H 20H 0FH。按一次QD按钮,微地址变为0FH。令K4(IR7) = 0,K3(IR6)=1,K2(IR5)= 0,K1(IR4)= 1,相当于JC指令的操作码。按一次QD按钮,微地址变为15H,微代码是00H 00H 11H 0FH。令K0(C)=0。按一次QD按钮,微地址变为0FH,微代码为00H 80H 08H 90H。按一次QD按钮,微地址变为15H。令K0(C)=1,按一次QD按钮,微地址变为1FH,微代码是00H 10H 20H 0FH。按一次QD按钮,微地址回到0FH。
7. 置DP = 1,DB =0,使实验系统处于单拍状态。选择SWC = 0、SWB = 0、SWA = 0,按CLR#按钮,使实验系统处于初始状态,微地址是00H。按一次QD按钮,微地址变为08H,微代码为00H 08H 20H 0FH。按一次QD按钮,微地址变为0FH,微代码为00H 80H 08H 90H。令K4(IR7) = 0,K3(IR6)=1,K2(IR5)= 1,K1(IR4)= 0,相当于STP指令的操作码。按一次QD按钮,微地址变为16H,微代码是00H 00H 14H 0FH。按一次QD按钮,微地址回到0FH。
8. 置DP = 1,DB =0,使实验系统处于单拍状态。选择SWC = 0、SWB = 0、SWA = 0,按CLR#按钮,使实验系统处于初始状态,微地址是00H。按一次QD按钮,微地址变为08H,微代码为00H 08H 20H 0FH。按一次QD按钮,微地址变为0FH,微代码为00H 80H 08H 90H。令K4(IR7) = 0,K3(IR6)=1,K2(IR5)= 1,K1(IR4)= 1,相当于OUT指令的操作码。按一次QD按钮,微地址变为17H,微代码是00H 10H 14H 0FH。按一次QD按钮,微地址回到0FH。
实验感想:
这次实验,我们主要是了解并掌握时序发生器的组成原理,以及微程序控制器的组成原理。需要我们了解示波器的使用,熟悉指令格式的定义,并会正确操作部分控制台。我们小组还是分工合作,一步一步按照实验步骤,耐心的完成了这次实验。这次实验我们身体力行,获得了满意的效果!
中原工学院软件学院
《计算机组成原理》
实验报告
专 业: 软件工程
班 级: rjB网络101
学 号: **
日 期: 20**/12/21
学生姓名: **
指导教师: **
整机实验
一、实验目的
1. 将微程序控制器同执行部件(整个数据通路)联机,组成一台模型计算机。
2. 用微程序控制器控制模型计算机的数据通路。
3. 通过TEC-5执行由8条机器指令组成的简单程序,掌握机器指令与微指令的关系,牢固建立计算机的整机概念。
二、实验电路
本次实验将前面几个实验中的所有电路,包括运算器、存储器、通用寄存器堆、微程序控制器等模块组合在一起,构成一台简单的模型机。
在前面的实验中,实验者本身作为“控制器”,完成了对数据通路的控制。而在本次实验中,数据通路的控制将交由微程序控制器来完成。TEC-5从内存中取出一条机器指令到执行指令结束的一个指令周期,是由微程序完成的,即一条机器指令对应一个微程序序列。
三、实验设备
1. TEC-5计算机组成原理实验系统1台
2. 逻辑测试笔一支(在TEC-5)上
3. 双踪示波器一台(公用)
4. 直流万用表一只(公用)
四、实验内容
1. 对机器指令组成的简单程序进行译码。将下表的程序按机器指令格式手工汇编成二进制机器代码。
2. 按照下面框图,参考前面实验的电路图完成连线,工作量大概是:控制台、时序部件、数据通路和微程序控制器之间的连线。控制器是控制部件,数据通路是执行部件,时序发生器是时序部件。注意通用寄存器堆RF的RD1、RD0、RS1、RS0、WR1、WR0与IR3-IR0间的连线。
3. 将内容1中的程序代码用控制台指令存入内存中,并根据程序的需要,用数码开关SW7-SW0设置通用寄存器的数据。注意:由于设置通用寄存器时会破坏存储器单元的数据,因此应先设置寄存器中的数据,再设置存储器中的程序和数据。要求使用两组寄存器数据,一组寄存器数据在执行 ADD R1,R0指令时产生进位,一组寄存器数据在执行ADD R1,R0指令时不产生进位,以观察同一程序程序的不同执行流程。
4. 用单拍(DP)方式执行一遍程序,记录最后得到的四个寄存器的数据,以及由STA指令存入RAM中的数据,与理论分析值比较。执行时注意观察各个指示灯的显示,以跟踪程序执行的详细过程(可观察到每一条微指令的执行过程)。
5. 用连续方式再次执行程序。这种情况相当于计算机正常的工作。程序执行到STP指令后自动停机。读出寄存器中的运算结果,与理论值比较。
五、实验结果
(1)对机器指令系统组成的简单程序进行译码。
(2)设置通用寄存器R0、R1、R2和R3的值,在本操作中,我们使R0=35H,R1=43H,R2=10H,R3=07H
●用单拍(DP)方式执行一遍程序。
置SWC=0,SWB=0,SWA=0,DP=1,DB=0,使实验系统处于单拍运行状态。置SW7—SW0=00H,使程序从地址00H开始执行。按CLR#按钮,使实验系统处于初始状态,然后一次一次按QD按钮,使程序一拍一拍的执行。
在单拍执行过程中,首先要随时监测AR、PC、µA5—µA0和IR的值,以判定程序执行到何处,正在执行哪条指令和微指令。对照微程序流程图,可以判断出微指令的地址和正在进行的微操作。程序执行的结果如下:
初值:R0=35H,R1=43H,R2=10H,R3=07H。存储器10H单元的内容为55H。
1.ADD R1,R0
执行结果 R0=35H,R1=78H,R2=10H,R3=07H。存储器10H单元的内容为55H。无进位C。
2.JC R3
执行结果 R0=35H,R1=78H,R2=10H,R3=07H。存储器10H单元的内容为55H。PC为02H。进位C不变。
3.STA R1,[R2]
执行结果 R0=35H,R1=78H,R2=10H,R3=07H。存储器10H单元的内容为78H。
4.LDA R2,[R2]
执行结果 R0=35H,R1=78H,R2=78H,R3=07H。存储器10H单元的内容为78H。
5.AND R2,R0
执行结果 R0=35H,R1=78H,R2=30H,R3=07H。存储器10H单元的内容为78H。
6.SUB R2,R3
执行结果 R0=35H,R1=78H,R2=29H,R3=07H。存储器10H单元的内容为78H。进位C为1。
7.OUT R2
执行结果 R0=35H,R1=78H,R2=29H,R3=07H。存储器10H单元的内容为78H。可在数据总线DBUS指示灯上观察到29H。
8.STP
执行结果 R0=35H,R1=78H,R2=29H,R3=07H。存储器10H单元的内容为78H。
最后的执行结果可通过控制台的读寄存器操作和读存储器操作观察到,在观察最后结果之前,首先应按CLR#按钮,使实验系统处于初始状态。
●用连续方式执行一遍程序。
1.由于上面的单拍执行程序,已破坏了寄存器R1、R2和存储器10单元的内容(程序没有破坏),因此需要重新设置寄存器R1、R2和存储器10单元的值。初值:R0=35H,R1=43H,R2=10H,R3=07H。存储器10H单元的内容为55H。
2.置SWC=0,SWB=0,SWA=0,DP=0,DB=0,使实验系统处于连续运行状态。置SW7—SW0=00H,使程序从地址00H开始执行。按CLR#按钮,使实验系统处于初始状态,然后按一次QD按钮,则程序自动连续运行到地址为07H的STP指令。
执行结果 R0=35H,R1=78H,R2=29H,R3=07H。存储器10H单元的内容为78H。
最后的执行结果可通过控制台的读寄存器操作和读存储器操作观察到,在观察最后结果之前,首先应按CLR#按钮,使实验系统处于初始状态。
(3)设置通用寄存器R0、R1、R2和R3的值,在本操作中,我们使R0=86H,R1=88H,R2=10H,R3=07H
●用单拍(DP)方式执行一遍程序。
置SWC=0,SWB=0,SWA=0,DP=1,DB=0,使实验系统处于单拍运行状态。置SW7—SW0=00H,使程序从地址00H开始执行。按CLR#按钮,使实验系统处于初始状态,然后一次一次按QD按钮,使程序一拍一拍的执行。
在单拍执行过程中,首先要随时监测AR、PC、µA5—µA0和IR的值,以判定程序执行到何处,正在执行哪条指令和微指令。对照微程序流程图,可以判断出微指令的地址和正在进行的微操作。程序执行的结果如下:
初值:R0=86H,R1=88H,R2=10H,R3=07H。存储器10H单元的内容为55H。
1.ADD R1,R0
执行结果 R0=86H,R1=0EH,R2=10H,R3=07H。存储器10H单元的内容为55H。有进位C。
2.JC R3
执行结果 R0=86H,R1=0EH,R2=10H,R3=07H。存储器10H单元的内容为55H。PC为07H。进位C不变。
3.STP
执行结果 R0=86H,R1=0EH,R2=10H,R3=07H。存储器10H单元的内容为55H,进位C为1。
最后的执行结果可通过控制台的读寄存器操作和读存储器操作观察到,在观察最后结果之前,首先应按CLR#按钮,使实验系统处于初始状态。
●用连续方式执行一遍程序。
1.由于上面的单拍执行程序,已破坏了寄存器R1内容(程序没有破坏),因此需要重新设置寄存器R1的值。初值:R0=86H,R1=88H,R2=10H,R3=07H。存储器10H单元的内容为55H。
2.置SWC=0,SWB=0,SWA=0,DP=0,DB=0,使实验系统处于连续运行状态。置SW7—SW0=00H,使程序从地址00H开始执行。按CLR#按钮,使实验系统处于初始状态,然后按一次QD按钮,则程序自动连续运行到地址为07H的STP指令。
执行结果 R0=86H,R1=0EH,R2=10H,R3=07H。存储器10H单元的内容为55H。
实验感想:
这次实验,我们是将微程序控制器同执行部件(整个数据通路)联机,组成一台模型计算机。用微程序控制器控制模型计算机的数据通路。通过TEC-5执行由8条机器指令组成的简单程序,掌握机器指令与微指令的关系,牢固建立计算机的整机概念。由于本次实验将前面几个实验中的所有电路,包括运算器、存储器、通用寄存器堆、微程序控制器等模块组合在一起,构成一台简单的模型机。
由于在前面的实验中,实验者本身作为“控制器”,完成了对数据通路的控制。而在本次实验中,数据通路的控制将交由微程序控制器来完成。我们努力按照实验步骤完成了实验,达到了实验的目的,我们受益匪浅!