您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 26计算机组成原理课程设计报告
1计算机组成原理课程设计实验报告2目录一、程序设计…………………………………………………11、程序设计目的…………………………………………………12、程序设计基本原理………………………………………………1二、课程设计任务及分析…………………………………………6三、设计原理……………………………………………………71、机器指令…………………………………………………………72、微程序流程图……………………………………………………93、微指令代码……………………………………………………104、课程设计实现步骤……………………………………………11四、实验设计结果与分析………………………………………15五、实验设计小结………………………………………………15六、参考文献…………………………………………………151一、程序设计1、程序设计目的(1)在掌握部件单元电路实验的基础上,进一步将其组成系统构造一台基本模型计算机。(2使用简单模型机和复杂模型机的部分机器指令,并编写相应的微程序,具体上机调试掌握整机概念。(3)掌握微程序控制器的组成原理。(4)掌握微程序的编写、写入,观察微程序的运行。(5)通过课程设计,使学生将掌握的计算机组成基本理论应用于实践中,在实际操作中加深对计算机各部件的组成和工作原理的理解,掌握微程序计算机中指令和微指令的编码方法,深入理解机器指令在计算机中的运行过程。2、程序设计基本原理(1)实验模型机结构[1]运算器单元(ALUUINT)运算器单元由以下部分构成:两片74LS181构成了并-串型8位ALU;两个8位寄存器DR1和DR2为暂存工作寄存器,保存参数或中间运算结果。ALU的S0~S3为运算控制端,Cn为最低进位输入,M为状态控制端。ALU的输出通过三态门74LS245连到数据总线上,由ALU-B控制该三态门。[2]寄存器堆单元(REGUNIT)该部分由3片8位寄存器R0、R1、R2组成,它们用来保存操作数用中间运算结构等。三个寄存器的输入输出均以连入数据总线,由LDRi和RS-B根据机器指令进行选通。[3]指令寄存器单元(INSUNIT)指令寄存器单元中指令寄存器(IR)构成模型机时用它作为指令译码电路的输入,实现程序的跳转,由LDIR控制其选通。[4]时序电路单元(STATEUNIT)用于输出连续或单个方波信号,来控制机器的运行。[5]微控器电路单元(MICRO-CONTROLLERUNIT)微控器主要用来完成接受机器指令译码器送来的代码,使控制转向相应机器指令对应的首条微代码程序,对该条机器指令的功能进行解释或执行的工作。由输入的W/R信号控制微代码的输出锁存。由程序计2数器(PC)和地址寄存器(AR)实现程序的取指功能。[6]逻辑译码单元(LOGUNIT)用来根据机器指令及相应微代码进行译码使微程序转入相应的微地址入口,从而实现微程序的顺序、分支、循环运行,及工作寄存器R0、R1、R2的选通译码。[7]主存储器单元(MAINMEM)用于存储实验中的机器指令。[8]输入输出单元(INPUT/OUTPUTDEVICE)输入单元使用八个拨动开关作为输入设备,SW-B控制选通信号。输出单元将输入数据置入锁存器后由两个数码管显示其值。*该CPU数据结构通路框图如下:(2)机器指令的结构和功能部件实验过程中,各部件单元的控制信号是人为模拟产生的,而本次课设是在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能。这里,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令3组成的序列来完成,即一条机器指令对应一个微程序。模型机设计四大类指令共十六条,其中包括算术逻辑指令、I/O指令、访问存储器及转移指令和停机指令。[1]算术逻辑指令设计9条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下:D7D6D5D4D3D2D1D0OP-CODERsRd其中,OP-CODE为操作码,Rs为源寄存器,Rd为目的寄存器,并规定:选中的寄存器(Rs或Rd)R0R1R2寄存器的编码000110[2]访存指令及转移指令模型机设计2条访问指令,即存数(STA)、取数(LDA)、2条转移指令,即无条件转移(JMP)、结果为零或有进位转移指令(BZC)。其格式如下:D7D6D5D4D3D2D1D0D7····D0OP-CODEMOP-CODERdD其中,OP-CODE为操作码,Rd为目的寄存器,D为位移量(正负均可),M为寻址方式,其定义如下:寻址方式有效地址说明00E=D直接寻址01E=(D)间接寻址10E=(RI)+DRI变址寻址11E=(PC)+D相对寻址本模型机规定变址寄存器RI指定为寄存器R2。[3]I/O指令输入和输出指令采用单字节指令,其格式如下:其中,addr=01时,表示选中“输入单元”中的开关组作为输入设D7D6D5D4D3D2D1D0OP-CODEaddrRd4备,addr=10时,表示选中“输出单元”中的数码管作为输出设备。[4]停机指令这类指令只有1条,即停机指令HALT,用于实现停机操作,指令格式如下:D7D6D5D4D3D2D1D001100000(3)指令系统[1]本模型机共有16条基本指令。其中,算术逻辑指令9条,访问内存指令和程序控制指令4条,输入输出指令2条,其他它指令1条。表1列出了各条指令的格式、汇编符号、指令功能。表1复杂模型机指令系统序号汇编符号指令格式功能说明1CLRRd011100Rd0→Rd2MOVRS,Rd1000RSRdRS→Rd3ADCRS,Rd1001RSRdRS+Rd+Cy→Rd4SBCRS,Rd1010RSRdRS-Rd-Cy→Rd5INCRd1011--RdRd+1→Rd6ANDRS,Rd1100RSRdRS∧Rd→Rd7COMRd110100RdRd→Rd8RRCRS,Rd1110RSRdRS带进位右循环一位,RS→Rd9RLCRS,Rd1111RSRdRS带进位左循环一位,RS→Rd10LDAM,D,Rd00M00Rd,DE→Rd11STAM,D,Rd00M01Rd,DRd→E12JMPM,D00M1000,DE→PC13BZCM,D00M1100,D当CY=1或ZI=1时,E→PC14INaddr,Rd010001Rdaddr→Rd15OUTaddr,Rd010110RdRd→addr16HALT01100000停机5[2]微指令格式表2复杂模型机微指令结构图微程序242322212019181716151413121110987654321控制信号S3S2S1S0MCNRDM17M16ABPuA5uA4uA3uA2uA1uA0A字段B字段P字段151413控制信号121110控制信号987控制信号000000000001LDRI001RS_G001P1010LDDR1010RD_G010P2011LDDR2011RI_G011P3100LDIR100299_G100P4101LOAD101ALU_G101AR110LDAR110PC_G110LDPC其中uA5~uA0为6位的后续微地址,A、B、P为三个译码字段,分别由三个控制位译码出多位。P字段中的P1~P4是四个测试字位,其功能是根据机器指令及相应微代码进行译码,使微程序转入相应的为地址入口,从而实现微程序的顺序、分支、循环运行。具体来说,P1测试用于“取指令”微指令,它用下址低四位(uA3~uA0)与指令寄存器高四位(IR7~IR4)相或得到各路分支;P2测试用下址低2位(uA1~uA0)与指令寄存器的IR3IR2相或得到各路分支;P3测试用于条件转移,它用下址的uA4与(ZI+CY)相或得到各路分支;P4测试用于控制台操作,它用下址低2位(uA1~uA0)与SWB、SWA相或得到各路分支。在上述各测试下址中未用到的位均直接保留。AR为算术运算是否影响6进位及判零标志控制位,其为零有效。B字段中的RS_G、RD_G、RI_G分别为源寄存器选通信号,目的寄存器选通信号及变址寄存器选通信号,其功能是根据机器指令来进行三个工作寄存器R0、R1及R2的选通译码。三字段中的其他位类似与此,均是某芯片的选通信号,它们的功能都是根据机器指令来进行相应芯片的选通译码。为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,还必须设计三个控制台操作微程序。存储器读操作(READ):拨动总清开关CLR后,控制台开关SWB、SWA为“00”时,按START微动开关,可对RAM连续手动读操作。存储器写操作(WRITE):拨动总清开关CLR后,控制台开关SWB、SWA为“01”时,按START微动开关,可对RAM进行连续手动写入。启动程序:拨动总清开关CLR后,控制台开关SWB、SWA置为“11”时,按START微动开关,即可转入到第01号“取址”微指令,启动程序运行。上述三条控制台指令用两个开关SWB、SWA的状态来设置,其定义如下:SWBSWA控制台指令001011读内存写内存启动程序二、课程设计任务及分析从输入设备中读取数据X并将其存入以K为直接地址的内存单元,计算2X,取反后加X减1并将结果存入以N为间接地址的内存单元,最后输出。在进行这一次设计之前,我们先明确的这次设计的大体过程,画大体图—汇编程序—流程图—微指令代码—检查,然后我们进行了下一步骤,观察任务在进行这一次的设计之时首先我们看见了在读取与储存时的两种不同的寻址方式,想到了这两种的不同,具体表示在流程图上面就是间接寻址要通过地址先找地址再找数据所以要分两次,然后我们又看了看我们的运算所需要的过程,参考书本后,我们决定了将2X通过一次X加X算术运算来实现,由于2X的取反只需要做非运算即可,非运算书上有,加法运算书上有,减1运算书上面也有,于是我们就决定在预算过程过程中通过4次来实现,所以我们想到了先计算X加X然后在将2X求非再加X最后减1的运算流程,于是一个初步的构想于是就这样形成了,在写汇编程序时候我们也是忠实的按照这个构想来写的。设计顺序大致如下:先画出了程序的流程,然后写出了汇编程序,并且写出了机器指令,其次我们完成了总体的流程图,然后根据流程图写出了微指令以及微指令代码,将机器指令代码与微指令代码写成了7一个txt文档用机器录入,运行程序,对照程序上面显示的图与我们画的流程图进行对照,检查来判断这次试验的成功与否。到此我们这一次的设计过程到这里就结束了,我们充分的参与并且体会了设计一个程序的每一次的收获,充分的体会了其中的设计的快乐与痛苦,对我们的专业能力也有很大的提升。三、设计原理1、机器指令在部件试验中,我们是人为用二进制开关来模拟一些控制信号来完成数据通路的控制。而在本课程设计中,数据通路的控制将由微程序控制器来完成,即一条机器指令对应一个微程序。本设计的规定项目采用五条机器指令:IN(输入)、MOV(将最终计算结果存入间接地址中)、ADD(二进制加法)、NOT(给2X取非)、STA(将X存入直接地址中)、DEC(减1)、OUT(输出)、HLT(保持执行结束状态,不再执行操作),其指令格式如下表1(前四位是操作码):指令助记符操作码地址码功能说明IN0000000000000000“INPUTDEVICE”-R0ADD00100000010000000000001100000110(DR1)+(DR2)-R0NOT0011000000000101DR1-R0STA0011000000000101R0-RAMDEC0101000000001000R0-1-R0MOV0110000000001001R0-RAM,RAM-RAMOUT0100000000000111RAM-LEDHLT0101000000001001停机IN为单字长指令,含义是将输入设备输入的数据放入R0中ADD为双字长指令,其含义是根据指令提供的地址将内存中的数取出放入DR2,与DR1中的数相加,结果放在R0。NOT为单字长指令,含义是将R0的内容取非后放入R0。S
本文标题:26计算机组成原理课程设计报告
链接地址:https://www.777doc.com/doc-3459072 .html