《计算机组成原理实验报告.doc》由会员分享,可在线阅读,更多相关《计算机组成原理实验报告.doc(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、计算机组成原理机器号_ 实验报告专业班级: 计算机1308姓 名: 刘鑫伟机器号:59学 号:E-mail:指导教师:总成绩:分步成绩:出勤:实验表现实验报告:实验七 指令/微指令设计实验一 实验目的 1 掌握计算机各种指令的设计和执行过程; 2 掌握指令/微指令的设计方法。二 实验原理 COP2000计算机组成原理实验仪,可以由用户自己设计指令/微指令系统,这样用户可以在现有的指令系统上进行扩充,加上一些较常用的指令,也可重新设计一套完全不同的指令/微指令系统。 做为原理,我们建立一个有如下指令的系统:指令助记符指令意义描述LD A,#II将立即数装入累加器AADD A,#II累加器A加立即
2、数GOTO MM无条件跳转指令OUTA累加器A输出到端口因为硬件系统需要指令机器码的最低两位做为R0-R3寄存器寻址用,所以指令机器码要忽略掉这两位。这四条指令的机器码分别为04H,08H,0CH,10H。其它指令的设计相同。指令系统设计1 打开COP2000组成原理实验软件,选择文件|新建指令系统/微程序,观察软件下方的“指令系统”窗口,所有指令码都“未使用”。2 选择第二行,即“机器码1”为0000 01XX行,在下方的“助记符”栏填入数据装载功能的指令助记符“LD”,在“操作数1”栏选择“A”,表示第一个操作数为累加器A。在“操作数2”栏选择“#II”,表示第二个操作数为立即数。按“修改
3、”按钮确认。3 选择第三行,即“机器码1”为0000 10XX行,在下方的“助记符”栏填入加法功能的指令助记符“ADD”,在“操作码1”栏选择“A”,表示第一操作数为累加器A,在“操作数2”栏选择“#II”,表示第二操作数为立即数。按“修改”按钮确认。4 选择第四行,即“机器码1”为0000 11XX行,在下方的“助记符”栏填入无条件跳转功能的指令助记符“GOTO”,在“操作码1”栏选择“MM”,表示跳转地址为MM,此指令无第二操作数,无需选择“操作数2”。按“修改”按钮确认。5 选择第五行,即“机器码1”为0001 00XX行,在下方的“助记符”栏填入输出数据功能的指令助记符“OUTA”,由
4、于此指令隐含指定了将累加器A输出到输出商品寄存器,所以不用选择“操作码1”和“操作数2”,按“修改”按钮确认。输入完成了四条指令如图,微指令系统设计将窗口切换到“uM微程序”窗口,现在此窗口中所有微指令值都是0FFFFFFH,也就是无任何操作,我们需要在此窗口输入每条指令的微程序来实现该指令的功能。1 程序开始要执行的第一条微指令应是取指操作,因为程序复位后,PC和uPC的值都为0,所以微程序的0地址处就是程序执行的第一条取指的微指令。根据此功能,首先选中“_FATCH_”指令的第一行,观察窗口下方的各控制信号,有“勾”表示信号为高,处于无效状态,去掉“勾”信号为低,为有效状态。要从EM中读数
5、,EMRD必需有效,去掉信号下面的“勾”使其有效;读EM的地址要从PC输出,所以PCOE要有效,允许PC输出,去掉PCOE下面的“勾”,PCOE有效同时还会使PC加1,准备读EM的下一地址;IREN是将EM读出的指令码存入uPC和IR,所以要去掉IREN的“勾”使其有效。这样,取指操作的微指令就设计好了,取指操作的微指令的值为0CBFFFFH。2 第一条指令是把立即数装入累加器A,首先要从EM中读出立即数,并送到数据总线DBUS,再从DBUS上将数据打入累加器A中,按照这个要求,从EM中读数据,EMRD应该有效,EM的地址由PC输出,PCOE必需有效,读出的数据送到DBUS,EMEN也应有效,
6、要求将数据存入A中,AEN也要有效,选中“LD A,#II”指令的第一行,这条微指令的值为0C7FFF7H。为了保证程序的连续执行,每条指令的最后必需是取指令,取出下条将要执行的指令。所以微指令的值为0CBFFFFH。3 第二条指令为立即数加法指令,立即数加可分两步,首先从EM中读出立即数,送到DBUS,并存入工作寄存器W中,从EM中读数,EMRD应有效,读EM的地址由PC输出,PCOE要有效,读出的数据要送到DBUS,EMEN应有效,数据存入W中,WEN应有效,根据描述,这条微指令的值为0C7FFEFH。第二步,执行加法操作,并将结果存入A中。执行加法操作,S2S1S0的值应为000(二进制
7、),结果无需移位直接输出到DBUS,X2X1X0的值就要为100(二进制),从DBUS将数据再存入A中,AEN应有效。与此同时,ABUS和IBUS空闲,取指操作可以并行执行,也就是以PC为地址,从EM中读出下条将要执行指令的机器码,并打入IR和uPC中,根据取指操作的说明,EMRD、PCOE、IREN要有效,根据上面描述,选中该指令的第二行,将EMRD、PCOE、IREN、X2X1X0、AEN、S2S1S0都置成有效和相应的工作方式,此微指令的值为0CBFF90H。4 “GOTO MM”为无条件跳转,所要执行的操作为从EM中读出目标地址,送到数据总线DBUS上,并存入PC中,实现程序跳转。从E
8、M中读数,EMRD要有效,读EM的地址由PC输出,PCOE有效,数据送到DBUS,EMEN要有效,将数据打入PC中,由两位决定,ELP有效,指令寄存器IR的第三位IR3应为1,由于本指令机器码为0CH,存入IR后,IR3为1。选中“GOTO MM”指令的第一行,将上面的EMRD、PCOE、EMEN、ELP设成低,使其成为有效状态,结合指令的第三位,实现程序跳转,这条微指令的值为0C6FFFFH。下条微指令应为取指操作,微指令的值为0CBFFFFH。5 “OUTA”,将累加器的内容输出到输出端口。其操作为累加器A不做运算,直通输出,ALU结果不移位输出到DBUS,DBUS上的数据存入输出端口OU
9、T。累加器A直通输出结果,S2S1S0值要为111(二进制),ALU结果不移位输出到数据总线DBUS,X2X1X0的值要等于100(二进制),DBUS数据要打入OUT,那么OUTEN应有效。与此同时,ABUS和IBUS空闲,取指操作可以并行执行,也就是以PC为地址,从EM中读出下条将要执行指令的机器码,并打入IR和uPC中,根据取指操作的说明,EMRD、PCOE、IREN要有效,综上所述,选中此指令的第一行,将EMRD、PCOE、IREN、OUTEN、X2X1X0、S2S1S0置成有效状态和相应的工作方式,微指令的值为0CBDF9FH。6 选择菜单文件|保存指令系统/微程序功能,将新建的指令系
10、统/微程序保存下来,以便以后调用。为不与已有的两个指令系统冲突,将新的指令系统/微程序保存为“NEW_INST.INS”。三 实验内容 1. 对新设计的指令系统的验证:(1)在源程序窗口输入下面程序LD A,#0LOOP:ADD A,#1OUTAGOTO LOOP(2)将程序另存为NEW_INST.ASM,将程序汇编成机器码,观察反汇编窗口,会显示出程序地址、机器码、反汇编指令。(3)按快捷图标的F7,执行“单微指令运行”功能,观察执行每条微指令时,数据是否按照设计要求流动,寄存器的输入/输出状态是否符合设计要求,各控制信号的状态,PC及uPC如何工作是否正确。(4) 运行过程写入下表:汇 编
11、 指 令程序地址机器码指令说明微程序PC uPC运行时寄存器或存储器的值LD A,#0000400C7FFF7CBFFFF01020405A:00ADD A,#1020801C7FFEFCBFF9003040809W:00OUTA0410CBDF9F0510D:01 OUT:00GOTO LOOP050C02C6FFFFCBFFFF06 020C 0DD:01OUT:012. 设计全新的指令/微指令系统实现无符号二进制整数乘法运算实验: (注意:全新的指令/微指令系统只与实现无符号二进制整数乘法运算有关的指令,无关不用考虑)下面给出实现无符号二进制整数乘法的原理(供参考) M被乘数 1101
12、0 0000 C A1011 Q乘数 初始状态 0 1101 0 011010111101 1 乘数最低位为1,加被乘数 右移位 1 0011 0 10011101 11110 1 乘数最低位为1,加被乘数 右移位 0 1001 0 01001110 11111 0 乘数最低位为0,加0 右移位 1 0001 0 10001111 01111 1 乘数最低位为1,加被乘数 右移位注:下划线数据丢掉 兰色为结果 高位在A中 低位在Q中要求:给出程序清单,并填写下表。(1) 程序运行过程汇 编 指 令程序地址机器码指令说明微程序PC uPC运行时寄存器或存储器的值(2)新的指令集助计符机器码1机器
13、码2指 令 说 明(3)新的微指令集助计符壮态微地址微程序数据打人地址输出运算器移位控制PC uPC(4)程序清单:四、思考题:谈一谈四次实验的体会(必答,不少于300字)大三上学期开设了计算机组成原理课,讲的知识都是很理论性的,比较难学。后来开设了实验课,让理论与实践相结合,更有利于理解计算机组成原理的相关知识。这四周做了四个实验,涵盖了计算机组成原理各个方面,感觉实验比较容易,也比较枯燥,但是深层原理不好理解,比较难以把握。做完这四次实验后马上开始接口技术实验与计算机组成原理课程设计,这些实验都是与这四次九三级组成原理实验息息相关的,相信这四次实验后会对接下来的实验有很大的帮助。五、实验体会及建议实验遇到的问题及解决办法;实验内容是否合适:(内容多,适中,内容少);内容合适对本次实验的建议,以及以后实验内容安排的建议等。