《组成基本知识-采用微程序控制器的模型机CPU设计.doc》由会员分享,可在线阅读,更多相关《组成基本知识-采用微程序控制器的模型机CPU设计.doc(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、,课程设计报告课程名称: 计算机组成原理 设计题目:采用微程序控制器的模型机CPU设计院 系: 班 级: 设 计 者: 学 号: 指导教师: 目 录 课程设计(大作业)报告1昆明学院课程设计(大作业)任务书2一、课题分析5二、总体设计5(1)实验模型机结构5实验模型机结构61 运算器单元(ALU UINT)62 寄存器堆单元(REG UNIT)63 指令寄存器单元(INS UNIT)64 时序电路单元(STATE UNIT)65 微控器电路单元(MICROCONTROLLER UNIT)66 逻辑译码单元(LOG UNIT)67 主存储器单元(MAIN MEM)68 输入输出单元(INPUT/
2、OUTPUT DEVICE)6(2)机器指令的结构和功能71 算术逻辑指令72 访存指令及转移指令83 I/O指令84 停机指令8(3)指令系统81 本模型机共有16条基本指令。82微指令格式9三、分步设计11我们小组共有三位成员,分工分别为:按图连接实验线路,写程序,运行程序。下面为运行程序的具体步骤。11运行程序11四、设计成果(重点)11五、存在问题及改进建议12六、实验器材12七、参考文献及相关网址12课程设计(大作业)报告(注:针对设计题目1)一、 课题分析微程序控制器由控制存储器、微地址寄存器、微命令寄存器和地址转移逻辑几部分组成。微地址寄存器和微命令寄存器两者的总长度即为一条微指
3、令的长度,二者合在一起称为微指令寄存器。经过我们小组成员讨论,设计顺序大致如下:首先画出了程序的流程,然后写出了汇编程序,并且写出了机器指令,其次我们完成了总体的流程图,然后根据流程图写出了微指令以及微指令代码,将机器指令代码与微指令代码写成了一个txt文档用机器录入,运行程序,对照程序上面显示的图与我们画的流程图进行对照,检查来判断这次试验的成功与否。二、 总体设计(1)实验模型机结构1 运算器单元(ALU UINT)运算器单元由以下部分构成:两片74LS181构成了并串型8位ALU;两个8位寄存器DR1和DR2为暂存工作寄存器,保存参数或中间运算结果。ALU的S0S3为运算控制端,Cn为最
4、低进位输入,M为状态控制端。ALU的输出通过三态门74LS245连到数据总线上,由ALU-B控制该三态门。2 寄存器堆单元(REG UNIT)该部分由3片8位寄存器R0、R1、R2组成,它们用来保存操作数用中间运算结构等。三个寄存器的输入输出均以连入数据总线,由LDRi和RS-B根据机器指令进行选通。3 指令寄存器单元(INS UNIT)指令寄存器单元中指令寄存器(IR)构成模型机时用它作为指令译码电路的输入,实现程序的跳转,由LDIR控制其选通。4 时序电路单元(STATE UNIT)用于输出连续或单个方波信号,来控制机器的运行。5 微控器电路单元(MICROCONTROLLER UNIT)
5、微控器主要用来完成接受机器指令译码器送来的代码,使控制转向相应机器指令对应的首条微代码程序,对该条机器指令的功能进行解释或执行的工作。由输入的W/R信号控制微代码的输出锁存。由程序计数器(PC)和地址寄存器(AR)实现程序的取指功能。6 逻辑译码单元(LOG UNIT)用来根据机器指令及相应微代码进行译码使微程序转入相应的微地址入口,从而实现微程序的顺序、分支、循环运行,及工作寄存器R0、R1、R2的选通译码。7 主存储器单元(MAIN MEM)用于存储实验中的机器指令。8 输入输出单元(INPUT/OUTPUT DEVICE)输入单元使用八个拨动开关作为输入设备,SW-B控制选通信号。输出单
6、元将输入数据置入锁存器后由两个数码管显示其值。*该CPU数据结构通路框图如下:(2)机器指令的结构和功能部件实验过程中,各部件单元的控制信号是人为模拟产生的,而本次课设是在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能。这里,计算机数据通路的控制将由微程序控制器来完成,CPU从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。模型机设计四大类指令共十六条,其中包括算术逻辑指令、IO指令、访问存储器及转移指令和停机指令。1 算术逻辑指令设计9条算术逻辑指令并用单字节表示,寻址方式采用寄存器直接寻址,其格式如下:D7 D6 D
7、5 D4 D3 D2 D1 D0OP-CODE RsRd其中,OP-CODE为操作码,Rs为源寄存器,Rd为目的寄存器,并规定:选中的寄存器(Rs或Rd)R0R1 R2 寄存器的编码0001102 访存指令及转移指令模型机设计2条访问指令,即存数(STA)、取数(LDA)、2条转移指令,即无条件转移(JMP)、结果为零或有进位转移指令(BZC)。其格式如下:D7 D6 D5 D4 D3 D2D1 D0D7D0OP-CODEM OP-CODE RdD其中,OP-CODE为操作码, Rd为目的寄存器,D为位移量(正负均可),M为寻址方式,其定义如下:寻址方式 有效地址 说 明 00 E=D直接寻址
8、01E=(D)间接寻址10E=(RI)+DRI 变址寻址11E=(PC)+D相对寻址本模型机规定变址寄存器RI指定为寄存器R2。3 I/O指令输入和输出指令采用单字节指令,其格式如下:D7 D6 D5 D4 D3 D2 D1 D0OP-CODE addrRd其中,addr=01 时,表示选中“输入单元”中的开关组作为输入设备,addr=10时,表示选中“输出单元”中的数码管作为输出设备。4 停机指令这类指令只有1条,即停机指令HALT,用于实现停机操作,指令格式如下:D7 D6 D5 D4 D3 D2 D1 D00 1 1 0 0 00 0(3)指令系统1 本模型机共有16条基本指令。其中,算
9、术逻辑指令9条,访问内存指令和程序控制指令4条,输入输出指令2条,其他它指令1条。表1列出了各条指令的格式、汇编符号、指令功能。表1 复杂模型机指令系统序号 汇编符号 指令格式 功能说明 1CLR Rd0111 00 Rd0Rd 2MOV RS,Rd1000 RS RdRSRd 3ADC RS,Rd1001 RS RdRSRdCyRd 4SBC RS,Rd1010 RS RdRSRdCyRd 5INC Rd1011 - RdRd1Rd 6AND RS,Rd1100 RS RdRSRdRd 7COM Rd1101 00 RdRdRd 8RRC RS,Rd1110 RS RdRS带进位右循环一位,
10、RSRd 9RLC RS,Rd1111 RS RdRS带进位左循环一位,RSRd10LDA M,D, Rd00 M 00 Rd,DERd11STA M,D, Rd00 M 01 Rd,DRdE12JMP M,D00 M 10 00,DEPC13BZC M,D00 M 11 00,D当CY=1或ZI=1时,EPC14IN addr, Rd0100 01 RdaddrRd15OUT addr, Rd0101 10 RdRdaddr16HALT 0110 00 00停机2微指令格式表2 复杂模型机微指令结构图微程序242322212019181716151413121110987654321控制信号
11、S3S2S1S0MCNRDM17M16 A B PuA5uA4uA3uA2uA1uA0 A字段B字段P字段151413控制信号121110控制信号987控制信号000000000001LDRI001RS_G001P1010LDDR1010RD_G010P2011LDDR2011RI_G011P3100LDIR100299_G100P4101LOAD101ALU_G101AR110LDAR110PC_G110LDPC其中uA5uA0为6位的后续微地址,A、B、P为三个译码字段,分别由三个控制位译码出多位。P字段中的P1P4是四个测试字位,其功能是根据机器指令及相应微代码进行译码,使微程序转入相应
12、的为地址入口,从而实现微程序的顺序、分支、循环运行。具体来说,P1测试用于“取指令”微指令,它用下址低四位(uA3uA0)与指令寄存器高四位(IR7IR4)相或得到各路分支;P2测试用下址低2位(uA1uA0)与指令寄存器的IR3IR2相或得到各路分支;P3测试用于条件转移,它用下址的uA4与(ZI +CY)相或得到各路分支;P4测试用于控制台操作,它用下址低2位(uA1uA0)与SWB、SWA相或得到各路分支。在上述各测试下址中未用到的位均直接保留。AR为算术运算是否影响进位及判零标志控制位,其为零有效。B字段中的RS_G、RD_G、RI_G分别为源寄存器选通信号,目的寄存器选通信号及变址寄
13、存器选通信号,其功能是根据机器指令来进行三个工作寄存器R0、R1及R2的选通译码。三字段中的其他位类似与此,均是某芯片的选通信号,它们的功能都是根据机器指令来进行相应芯片的选通译码。为了向RAM中装入程序和数据,检查写入是否正确,并能启动程序执行,还必须设计三个控制台操作微程序。存储器读操作(READ):拨动总清开关CLR后,控制台开关SWB、SWA为“00”时,按START微动开关,可对RAM连续手动读操作。存储器写操作(WRITE):拨动总清开关CLR后,控制台开关SWB、SWA为“01”时,按START微动开关,可对RAM进行连续手动写入。启动程序:拨动总清开关CLR后,控制台开关SWB
14、、SWA置为“11”时,按START微动开关,即可转入到第01号“取址”微指令,启动程序运行。上述三条控制台指令用两个开关SWB、SWA的状态来设置,其定义如下:SWB SWA 控制台指令001 0 1 1读内存写内存启动程序三、 分步设计我们小组共有三位成员,分工分别为:按图连接实验线路,写程序,运行程序。下面为运行程序的具体步骤。运行程序.单步运行程序A 使编程开关处于”RUN的状态,STEP为”STEP” 状态,STOP为”RUN”状态B 拨动总清处于CLR (0_1),微地址清零,程序计数器清零,程序首址为00H.C 单步运行一条微指令,每按动一次START键,即单步运行一条指令,对照
15、微程序流程图,观察微地址显示是否和流程一致.D 当运行结束后.可检查存数单元中的结果是否和理论植一致. 连续运行程序A 使”START UNIT” 中的STEP开关置为”ECEX”状态.STOP开关置为”RUN”状态. B 拨动CLR开关,清微地址及程序计数器,然后按动START,系统连续运行程序,稍后将”STOP”拨至”STOP”时,系统停机.C 停机后,可检查存数单元结果是否正确. 若联机运行程序时,进入DEBUG调试界面,总清开关CLR 清零后,程序首址为00H. 按相应功能键既可联机运行调试程序。四、 设计成果(重点)我们小组在这次的课程设计中,通过我们的相互配合基本完成了微程序控制器
16、的模型机CPU设计,我们分工明确,此外我们还做了简单模型机与复杂模型机的实验。截图为复杂模型机接线图:五、 存在问题及改进建议我们设计的这个CPU的一个较明细的不足是效率不高。若用组合逻辑控制实现,三到四个周期就能做完一条指令,而这里光是取指令就四个周期。这也跟原来要求灵活的设计方案有关。理论上,只要把组合逻辑的真值表看作微程序放进ROM中,则微程序控制的效率与组合逻辑控制是一样的,只是组合逻辑控制存储的是语法,微程序控制存储的是语义。但这样设计就太死板,还不如直接用组合逻辑方便。实际的CPU设计应该在灵活性与性能之间根据需要折中。另一个不足是微指令格式还是不够合理。如现在是二地址,目的与源共
17、享地址,造成有些操作极不方便,而不方便性仅仅是编码的缺陷引入的。这有两点原因:一是经验不足,二是当时设计时过分追求编码的紧凑。六、 实验器材1、 湖北众友公司ZY15CompSys12BB计算机组成原理及系统结构教学实验箱;2、 PC机与网络。七、 参考文献及相关网址1、 计算机组成原理(第四版立体化教材),白中英主编,08年1月第四版,科学出版社。2、 计算机组成原理及系统结构实验指导书(V1.01),湖北众友科技实业股份有限公司。3、 (美)普拉持(Platt,DS)著黄慧萍等译MicrosoftNET精髓北京:机械工业出版社。 4、 计算机组成原理实验指导书. 王诚,宋佳兴,董长洪编著. 清华大学出版社,2002.5、 计算机组成原理学习指导与训练 . 旷海兰等编著. 中国水利水电出版社, 2004.