中山大学计算机组成原理实验报告.doc

上传人:laozhun 文档编号:3427638 上传时间:2023-03-13 格式:DOC 页数:14 大小:378KB
返回 下载 相关 举报
中山大学计算机组成原理实验报告.doc_第1页
第1页 / 共14页
中山大学计算机组成原理实验报告.doc_第2页
第2页 / 共14页
中山大学计算机组成原理实验报告.doc_第3页
第3页 / 共14页
中山大学计算机组成原理实验报告.doc_第4页
第4页 / 共14页
中山大学计算机组成原理实验报告.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《中山大学计算机组成原理实验报告.doc》由会员分享,可在线阅读,更多相关《中山大学计算机组成原理实验报告.doc(14页珍藏版)》请在三一办公上搜索。

1、实 验 报 告实 验 人:郑熙霖 学 号:09388334 日 期:2011-04-10 院(系):软件学院 专业(班级):09软件工程(数字媒体技术) 实验题目:TEC-2实验计算机运算器实验 一. 实验目的1 了解和掌握Am2901运算器的组成结构和工作原理2 认识和掌握TEC-2机运算器的组成和工作原理3 了解和掌握TEC-2机运算器相关控制信号的含义和使用方法4 了解和掌握运算器的进位时间的测试方法,及进一步掌握双踪示波器的使用方法。二. 实验原理(一)概述运算器部件是计算器五大功能部件中的数据加工部件。运算器的首要功能是完成对数据的算术和逻辑运算,由算术逻辑运算部件(ALU)实现,它

2、在给出运算结果的同时,还给出运算结果的标志,如溢出否、进位否、结果为零否和符号正负等,这些标志都保存在一个状态寄存器中。运算器的第二项功能,是暂存将参加运算的数据和中间结果,由其内部的一组寄存器来承担。因为这些寄存器可以被汇编程序直接访问与使用,因此将他们称为通用寄存器,以区别于那些计算机内部设置的、不能为汇编程序员访问的专用寄存器。为了用硬件线路完成乘除指令运算,运算器内一般还有一个能自行左右移位的专用寄存器,称为乘商寄存器。TEC-2试验机的运算核心组成部分是Am2901。Am2901芯片是一个4位的位片结构的完整的运算器部件。(二)Am2901运算器1 Am2901芯片内部组成结构图I

3、Am2901内部结构图 4 位的ALU,实现实种运算功能,其每一位上的2个输入端数据分别用R和S表示,则这8种功能是R+S,S-R,R-S 3种算术运算和R S, R S, /R S, R S,/(R S)5咱逻辑运算,这8种功能的选择控制,是用外部送入的3位编码值I5I3实现的。ALU还能给出CN+4,F,OVR和F = 0000 4位状态信息,并能接收最低位的一个进位输入信号CN。ALU还给出了超前进位信号/G和/P。 16个4位的通用寄存器组,用R0-R15表示,和1个4位的Q寄存器。通用寄存器组为双端口读出(用A地址与B地址选取择每个寄存器)和单端口(用B地址选取择)控制写入的运行方式

4、,而且运算后的结果经一个移位器实现写入(左移,不移,右移)。Q寄存器本身具有左移,右移功能且能接收ALU的运算结果,左右移位时,就有移出,移入信号RAM3,RAM0,Q3,Q0, 4个入号,它们都通过具有双向传送功能的三态门实现的。 该芯片能接收外部送入的4位数据D3-D0,并输出奇制胜们的数据Y3-Y0。Y3-Y0可以是通用寄存器A端口上的输出或ALU的运算结果F,并还受输出允许控制信号/OE的控制,仅在/OE为低时,Y3-Y0才有输出,否则处于高阻态。 从图上可以看到,ALU的两个输入端R和S分别可以接收D输入,A端口或逻辑0数据,和A端口,B端口,Q寄存器或逻辑0数据,Am2901器件只

5、选取用了它们可能的全部12种组合中的8种,即A-Q,A-B,0-Q,0-B,0-A,D-A,D-Q,和D-0这8种,并用外部送来的3位控制码I2-I0来选择这是种组合。 Am2901还采用另外来货位外部送来的控制信号I8-I6,一是选择向外部送出的数据的来源(A口数据还是ALU运算结果),二是选择其内部的通用寄存器组和Q寄存器接收不接收和如何接收数据库写入(左移,右移,直送)。 通用寄存器组通过A端口,B端口读出内容的输出处均有锁存器线路支持,以保证在执行诸如A+B结果送B运算时操作的正确性。2 Am2901的操作时序Am2901芯片要用一个CLK(CP)时钟信号作为芯片内通用寄存器、锁存器和

6、Q寄存器的打入信号。其有关规定如图II所示。图II Am2901的时钟信号的作用3 Am2901芯片的控制信号及其控制码与操作Am2901芯片的控制信号有9个,即I8-I0,这回个控制信号分成三组,它们是:I8、I7、I6(B30-28):选择运算结果或有关数据以何种方式送往何处;I5、I4、I3(B26-24):选择ALU的运算功能,共8种;I2、I1、I0(B22-20):选择送入ALU进行运算的两个操作数据R和S来源,共有8种组合。这三组控制信号与相应控制码的关系如下表:表III Am2901 9个控制信号I8I0控制码I8、I7、I6I5、I4、I3I2、I1、I00 0 0FQFR

7、+ SAQ0 0 1无FS RAB0 1 0FBAR S0Q0 1 1FBFR S0B1 0 0F/2BQ/2QFR S0A1 0 1F/2BF/R SDA1 1 02FB2QQFR SDQ1 1 12FBFR SD0寄存器结果选择Y输出选择运算功能选择RS注:R、S中的“0”为逻辑0。4 TEC-2机运算器(1) TEC-2机运算器主体构造由4片Am2901 芯片级联构成TEC-2机的运算器,4片间的连接关系是:(1)16位的数据 输入由4片各自的D3-D0组成,其位序号人高位芯片向低位芯片顺序排成D15-D0(2)16位的数据 输出由4片各自的Y3-Y0组成,其位序号人高位芯片向低位芯片顺

8、序排成Y15-Y0.(3)有高低位进位关系的3组信号,在高低位相邻芯片间连接关系是:高位芯片的RAM0与低位芯片的RAM3相连:高位芯片的Q0与低位芯片的Q3相连:在串行进位方式下,高位芯片的Cn与低位芯片的Cn+4相连;若选用AM2902芯片(与74LS182芯片功能相同,两者可以互换使用)实现并行进位,则低位的3个芯片的并行进位信号/G和/P应送往Am2902的相并没有管脚,并将各自对应的片间进位输出信号送入相邻高位芯片Am2901的Cn管脚。同时支持串,并行丙种方式,有利于教学实验中方便地观察与测量每种进位方式的进位延迟时间。此时,最低位芯片的RAM0与Q0是该16位的运算器的最低位的移

9、入/出信号,最高位芯片的RAM3与Q3是运算器最高位的移入/出信号,均需有另外的逻辑电路与之连接,最低位的Cn是整个运算器的最低位进位输入信号。最高位的CN+4是16位完整运算器的进位输出信号。同理,只有最高们芯片的F3和OVR有意义,低位的3个芯片的F3和OVR不被使用。4个芯片的F=0000管脚连接在一起,并经一个电阻接到+5V电源,已得到16位的ALU的运算结果为“0”的标志位信号。(4)其它的几组输入信号,支4片Am2901器件来说应有相同的值,包括/OE(控制选 通Y的输出),A地址,B地址,I8-80(控制Am2901的运算功能,数据来源,结果的处置)和工作脉冲CP,故应将4个芯片

10、的这些的各对应管脚连接在一起。完整的16位运算器的组成框图如下:图 完整的16位运算器的组成框图(2) 通用寄存器16个16位通用寄存器R0R15,其中R4(SP)堆栈指针、R5(PC)程序计数器、R6(IP)指令地址寄存器(存放当前正在执行的指令地址)为系统所用。此外,还有一个Q寄存器。(3) 移位器运算的结果经一个移位器实现写入操作(左移、不移、右移),Q寄存器本身具有左、右移或不移功能且能接收ALU(F)的运算结果。左、右移位时,对于通用寄存器来说,就有移出、移入信号RAM15、RAM0;对于Q寄存器来说,有移出、移入信号Q15、Q0。移位否由I8I6控制信号决定。5 TEC-2机运算器

11、部件的辅助组成部分(1) 运算结果的标志位标志位的含义及取值:C:进/借位标志,有进/借位产生,则C=1,否则为C=0;Z:运算结果标志,运算结果为0,则Z=1,否则为Z=0;V:溢出标志,有溢出,则V=1,否则V=0;S:符号标志,结果为负数,则S=1,否则S=0。(2) 微指令中三位微码(SST)与标志位的关系三位微码与这8种处理的对应关系,已用表格形式给出。表 三位微码与状态位的关系表SST编码状态位输入说 明B34 B33 B32CZVS0 0 0CZVS四个标志位的值保持不变0 0 1CYF=0OVF15接收ALU的标志位输出值0 1 0IB7IB6IB5IB4恢复标志位现场值0 1

12、 10ZVS置C为0,另三个标志不变1 0 01ZVS置C为1,另三个标志不变1 0 1RAM0ZVS右移操作,另三个标志不变1 1 0RAM15ZVS左移操作,另三个标志不变1 1 1Q0ZVS联合右移,另三个标志不变(3) 运算器最低位进位信号的给出与控制(SCi)运算器最低位的进位信号Cin,可能为0、1、C标志的值,为了调试与实验的方便,有时可送入一个连续的方波信号,当运算器执行16位全1与这个最低位的进位方波信号相加时,则加法器每一位的输出结果均为方波,有利于观察与调试。表SCi编码(B11、B10)00011011Cin取值01CTCLK方波(4) 运算器最高位、最低位的输入信号(

13、SSH)移入通用寄存器中的移入信号RAM15和RAM0,以及乘商寄存器中的移入信号Q15和Q0。左移时,向RAM0,或者RAM0与Q0移入数据;右移时,向RAM15,或RAM15与Q15移入数据。我们把5条移位指令和剩除法计算中的联合移位都考虑进去,可以归纳出如下4种结果,并用两位微码SSH区分它们。移位控制码SSH如下表所示:表控制码SSH左 移右 移说 明B9 B8RAM0 Q0RAM15 Q150 00 X0 X通用寄存器逻辑位移0 1C XC X通用寄存器与C循环移位1 0Q15 /F15CY RAM0原码除(左移)乘(右移)1 1X XF15OVR RAM0右移用于补码乘法说明: 表

14、中“X”为任意值,表示取任意值都不受影响 当通用寄存器本身移位时,Q寄存器不受影响 乘除法运算要求通用寄存器与Q寄存器联合移位,没有Q寄存器单独移位功能 左右移是由指令功能确定的 SSH为0,用于逻辑移位指令为1,用于循环移位指令为2,用于乘除法运算的联合移位及上商为3,用于算术右移指令,或补码乘法计算三. 实验内容1 脱机实验实验中所述将开关置为“1”,即表示将开关向上拨;将某开关置为“0”,即表示将开关向下拨。(1)将TEC-2机功能开关FS4置为“1”。(2)主脉冲置为单步方式,STEP/CONT开关拨向STEP一边,STEP为单脉冲方式,CONT为连续脉冲方式;(3)用D0+0R0将立

15、即数D0(从数据开关输入:A000H)置入寄存器R0。(4)用D1+0R1将立即数D1(从数据开关输入;4000H)置入寄存器R1。(5)对R0和R1进行各种算术、逻辑运算。将开关S2 S1 S0置于“110”时,指示灯将显示ALU的运算结果;将开关S2 S1 S0置于“000”时,指示灯将显示SVZC的状态,(H25=S,H26=V,H27=Z,H28=C)。2 联机实验(1)将FS1FS4置成1010.,STEP/CONT置成CONT,启动TEC-2机,进入监控程序。(2)在联机状态下,在命令行状态用“A”命令输入程序。(3)用“G”命令运行程序。(4)用“R”命令观察运行结果及状态。(5

16、)用“T”或“P”命令单步执行。四. 实验器材TEC-2机一台,电脑一台五. 实验分析与设计1.脱机实验根据Am2901 9个控制信号I8I0与相应控制码的关系,设计实现各功能的指令微码脱机实验步骤:(1)将TEC-2机功能开关FS4置为“1”。(2)主脉冲置为单步方式,STEP/CONT开关拨向STEP一边,STEP为单脉冲方式,CONT为连续脉冲方式;(3)用D0+0R0将立即数D0(从数据开关输入:A000H)置入寄存器R0。波特率开关数据开关SW2(共12位,最末三位未用)SW1(共12位)MI876MI543MI210未用A口B口(R0)SCiSSHD15D0011000111000

17、000000000000A000H 按上表设置各控制信号(MI8MI0)为垂直板元件V60 SW2,A口、B口、SCi、SSH为垂直板元件V61 SW1。 按上表设置十六位数据开关(为“A000H”,即“1010 0000 0000 0000B”)。 按压一次STEP键后,立即数D0即置入寄存器R0中。(4)用D1+0R1将立即数D1(从数据开关输入;4000H)置入寄存器R1。波特率开关数据开关SW2(共12位,最末三位未用)SW1(共12位)MI876MI543MI210未用A口B口(R1)SCiSSHD15D00110001110000000000100004000H 按上表设置各控制信

18、号(MI8MI0)为垂直板元件V60 SW2,A口、B口、SCi、SSH为垂直板元件V61 SW1。 按上表设置十六位数据开关(为“4000H”,即“0100 0000 0000 0000B”)。 按压一次STEP键后,立即数D0即置入寄存器R1中。(5)根据指令微码输入各控制信号,将开关S2 S1 S0置于“110”时,指示灯将显示ALU的运算结果;将开关S2 S1 S0置于“000”时,指示灯将显示SVZC的状态(H25=S,H26=V,H27=Z,H28=C),按压STEP前,记录ALU的输出、SVZC状态;按压STEP,记录按压后ALU的输出、SVZC状态,然后输入下个微码。(6)按照

19、设计的微码,逐个测试并记录。设计思路:(a) 根据表III Am2901 9个控制信号I8I0,明确I8I6用于选择运算结果或数据传送到什么寄存器中,I5I3用于选择ALU的运算功能,I2I0用于选择送入ALU的操作数据的来源。(b) 根据功能需要,例如R1+R0R0,将两个通用寄存器R1和R0的数值进行加法运算后,结果保存在寄存器R0中,那么,就可以让A口选择R1,B口选择R0,即A口设为0001,B口设为0000;由于传入ALU的两个数值分别来源于A口和B口,所以I2I0选择001(即R为A,S为B);I5I3明显应该选择加法000;运算结果保存到寄存器B,故I8I6选择011(FB)。这

20、样就完成了一条微码的设计。(c) 按压STEP前纪录ALU输出的值,还有SVZC的值;在TEC-2模拟机上,开关S2 S1 S0为110则查看ALU输出(16个灯),为000则查看SVZC的值(末尾4个灯)。(d) 按压STEP后纪录ALU输出的值,还有SVZC的值。(e) 其他各条微码按照(b)(d)的步骤设计并逐条测试。(f) 当有进位端参与计算时,如R1+R0+CR0和R0+1R0,根据表,此时需要把SCi分别设置为10和01;10表示进位端参与计算;01表示直接在寄存器的值+1。(g) 当没有进位端参与计算时,其余情况均将SCi设置为00。(h) 最终得到结果如下:表功 能MI86MI

21、5MI20A口B口按压 STEP 前按压 STEP 后ALU输出SVZCALU输出SVZCR1+R0R001100000100010000E000H00002000H10000+R0R001100001100000000E000H1000E000H1000R0-R1R001100100100010000A000H10006000H10000+R0R001100001100000000A000H1000A000H1000R1R0R001101100100010000E000H1000E000H10000+R0R001100001100000000E000H1000E000H1000R1R0R00

22、11100001000100004000H10004000H00000+R0R0011000011000000004000H00004000H0000R1R0R0011110001000100000000H00004000H00100+R0R0011000011000000000000H00100000H0010R1+R0+CR0011000001000100004000H00108000H00000+R0R0011000011000000004000H00004000H0000R0*2R0 111000011000000004000H00008000H00000+R0R00110000110

23、00000008000H00008000H1000R0+1R0011000011000000008001H10008002H10000+R0R0011000011000000008001H10008001H1000SCi的设置:R0+R1+CR0,SCi= 10 ;R0+1R0,SCi= 01 其余SCi= 00说明:表中ALU输出用16进制数表示,而SVZC用二进制数表示。2.联机实验(1)将FS1FS4置成1010.,STEP/CONT置成CONT,启动TEC-2机,进入监控程序。(2)在联机状态下,在命令行状态用“A”命令输入程序。A8000800: MOV R0,A000 MOV R1

24、, 40000804: ADD R0, R1 SUB R0,R1 OR R0,R1 AND R0, R1 XOR R0, R1 ADC R0,R1 SHL R0 INC R0 RET(3)用“G”命令运行程序。在命令行提示符状态下输入:G800执行上面输入的程序(4)用“R”命令观察运行结果及状态。在命令行提示符状态下输入:R观察运行结果及状态屏幕显示:R0=8001 R1=4000 R2=0000 R3=0000 SP=FFFF PC=0800 IP=080C R7=0000 R8=0000R9=0000 R10=0000 R11=0000 R12=0000 R13=0000 R14=000

25、0 R15=0000 F=000111110800: 2C00 A000 MOV R0, A000(5) 用“T”或“P”命令单步执行。在单步执行之前,先将寄存器R0、R1清空,输入命令:RR08000:-0RR14000:-0在命令行提示符状态下输入:T 或 P执行之后,观察运行结果及状态屏幕显示:TR0=A000 R1=0000 R2=0000 R3=0000 SP=OFD0 PC=0802 IP=00CD R7=016A R8=0000R9=0000 R10=0000 R11=0000 R12=0000 R13=0000 R14=0000 R15=0000 F=000111110802:

26、 2C10 4000 MOV R1, 4000TR0=A000 R1=4000 R2=0000 R3=0000 SP=OFD0 PC=0804 IP=00CD R7=016A R8=0000R9=0000 R10=0000 R11=0000 R12=0000 R13=0000 R14=0000 R15=0000 F=000111110804: 0401 ADD R0, R1TR0=E000 R1=4000 R2=0000 R3=0000 SP=OFD0 PC=0805 IP=00CD R7=016A R8=0000R9=0000 R10=0000 R11=0000 R12=0000 R13=0

27、000 R14=0000 R15=0000 F=000111110805: 0C01 SUB R0, R1TR0=A000 R1=4000 R2=0000 R3=0000 SP= OFD0 PC=0806 IP=00CD R7=016A R8=0000R9=0000 R10=0000 R11=0000 R12=0000 R13=0000 R14=0000 R15=0000 F=000111110806: 5801 OR R0, R1TR0=E000 R1=4000 R2=0000 R3=0000 SP= OFD0 PC=0807 IP=00CD R7=016A R8=0000R9=0000 R

28、10=0000 R11=0000 R12=0000 R13=0000 R14=0000 R15=0000 F=000111110807: 5001 AND R0, R1TR0=4000 R1=4000 R2=0000 R3=0000 SP= OFD0 PC=0808 IP=00CD R7=016A R8=0000R9=0000 R10=0000 R11=0000 R12=0000 R13=0000 R14=0000 R15=0000 F=000011110808: 5401 XOR R0, R1TR0=0000 R1=4000 R2=0000 R3=0000 SP= OFD0 PC=0809

29、IP=00CD R7=016A R8=0000R9=0000 R10=0000 R11=0000 R12=0000 R13=0000 R14=0000 R15=0000 F=010011110809: 0801 ADC R0, R1TR0=4000 R1=4000 R2=0000 R3=0000 SP= OFD0 PC=080A IP=00CD R7=016A R8=0000R9=0000 R10=0000 R11=0000 R12=0000 R13=0000 R14=0000 R15=0000 F=00001111080A: 6000 SHL R0TR0=8000 R1=4000 R2=00

30、00 R3=0000 SP= OFD0 PC=080B IP=00CD R7=016A R8=0000R9=0000 R10=0000 R11=0000 R12=0000 R13=0000 R14=0000 R15=0000 F=00001111080B: 7400 INC R0TR0=8001 R1=4000 R2=0000 R3=0000 SP= OFD0 PC=080C IP=00CD R7=016A R8=0000R9=0000 R10=0000 R11=0000 R12=0000 R13=0000 R14=0000 R15=0000 F=00011111080C: AC00 RET六

31、. 思考题1. 在脱机方式下进行运算器实验室,在按STEP键之前和按STEP键之后,ALU的输出结果及状态SVZC有何不同,为什么?根据Am2901运算器的组成结构及其工作原理加以说明。从Am2901运算器的组成结构可以看出,A口和B口的寄存器在将数据传入ALU之前,会经过对应的A锁存器和B锁存器。而由图IIAm2901时钟信号的作用图中可以看出,在一个时钟周期内,CP高电平时寄存器的内容通过两个锁存器传送到输入端R和S中,且通用寄存器不接收数据。由于ALU是组合逻辑电路,不受时钟信号影响,因而ALU输出的数据即为当前状态下的运算结果。在按下STEP前ALU输出当前运算结果,SVZC显示当前的

32、状态结果;当按下STEP后,CP下降沿到来时,A、B锁存器锁存数据,通用寄存器开始接收新数据,此时在下降沿,ALU将输出的结果存入通用寄存器中,ALU则根据通用寄存器中新的数据再次进行运算,因而ALU输出新的运算结果,而SVZC状态寄存器则将上次的状态记录下来。2. 写出实现以下功能操作微码:(按下表形式书写)A. (R0+R10)Q R0Q,联合左移。B. D B B,其中D为数据,B为B口寄存器。C. 0 R0,要求不要用立即数传送实现。功能操作MI876MI543MI210A口地址B口地址A(R10+R0)QR0Q联合左移11000000110100000功能操作MI876MI543MI

33、210A口地址B口地址BD B BB Q00000001100000000D Q B01101011000000000C0 R0R0 R0 R001111000100000000七. 实验心得本次实验是第一次在TEC-2实验机上完成,一开始对庞大的TEC-2实验机的知识体系感到恐惧,想要做起实验也相当困难。但是后来认真地阅读了实验手册上前3章关于TEC-2实验机及其指令系统的介绍后,特别是对于图I Am2901内部结构图的认真研究之后,渐渐明白了其工作原理。本次实验最大的收获就是基本理解Am2901的工作原理。对于Am2901,认识到它是用来实现算数和逻辑运算的,结合第一次实验设计4位ALU,

34、明白ALU只是一个组合逻辑电路,它能直接对输入的数据进行运算,不会受到时钟信号的影响。芯片有16个4位通用寄存器,通过A、B地址的选择,可以选择其中的两个寄存器参与当前的运算,但这两个寄存器的内容在传入ALU前,还必须经过对应的A、B锁存器才能进入ALU的两个输入端口,这是用来确保运算过程中数据一致性的问题的。而锁存器只有在脉冲信号的边沿端才会起作用,因此实验中会涉及到按压STEP手动产生脉冲信号,使数据锁存。另外,对于ALU的运算结果,它可以输出到Y,同时又可以将结果保存在B通用寄存器或Q寄存器中。立即数数据不可以经过寄存器传入ALU,它必须直接通过R输入端进入ALU。其中还没有完全弄明白的

35、是移位器的工作原理。对于如何选择左移和右移的控制码SSH以及为什么要进行对应的操作比较不理解。算数移位和逻辑移位又应该在什么情况下使用和操作,以及它与标志位状态寄存器之间的关系都还有待进一步学习理解。基本了解了TEC-2的工作原理后,设计起指令微码来也相对比较轻松。联机实验则让我明白了每一步汇编指令在寄存器内部发生的变化。以后还必须继续深入了解其工作原理,为以后的汇编实验设计打下基础。经过这次实验更加进一步体会到模拟机的强大,它在验证我的指令微码时起到重要作用,用起来也相当方便。总之实验的过程中不需要担心内容繁杂难懂,边学边做,边做边理解,不断回滚之前学过的掌握的知识,就可以比较顺利地理解和完成实验内容。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号