首页 计算机设计与实践2012秋-第四讲

计算机设计与实践2012秋-第四讲

举报
开通vip

计算机设计与实践2012秋-第四讲第四讲容错与移动计算研究中心舒燕君?实验目的根据计算机组成原理课程所学的知识和本课程所讲的设计思想,设计一个给定指令系统的处理器,包括:?VHDL语言的实现?FPGA芯片的编程实现?对处理器的结构和计算机系统的整体工作过程有深刻的了解?为以后应用和设计处理器系统打下基础实验要求。给出处理器的设计方案。用VHDL语言实现处理器的设计。将设计下载到FPGA实验板中进行实际测试,要求观察显示输出??采用南京伟福实业有限公司研制的“SD2100数字逻辑设计实验台”,通过FPGA核心板在SD2100实验台上完成实验FPGA核...

计算机设计与实践2012秋-第四讲
第四讲容错与移动计算研究中心舒燕君?实验目的根据计算机组成原理课程所学的知识和本课程所讲的设计思想,设计一个给定指令系统的处理器,包括:?VHDL语言的实现?FPGA芯片的编程实现?对处理器的结构和计算机系统的整体工作过程有深刻的了解?为以后应用和设计处理器系统打下基础实验要求。给出处理器的设计 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 。用VHDL语言实现处理器的设计。将设计下载到FPGA实验板中进行实际测试,要求观察显示输出??采用南京伟福实业有限公司研制的“SD2100数字逻辑设计实验台”,通过FPGA核心板在SD2100实验台上完成实验FPGA核心板Xilinx公司的50万门XC3S500E的FPGA芯片?实验开始之前给出处理器的设计方案,要求包括:?指令格式设计?微操作的定义?节拍的划分?处理器结构设计框图及功能描述?各功能模块结构设计框图及功能描述?各模块输入输出接口信号定义(以表格形式给出)?进度安排?在设计方案通过后,方可进入实际设计环节,要求采用结构化设计 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 ,用VHDL语言实现处理器的设计。设计包括:?各模块的详细设计(包括各模块功能详述,设计方法,VHDL语言实现等)?各模块的功能测试(每个模块作为一个部分,包括测试方案、测试过程和测试波形等)?系统的详细设计(包括系统功能详述,设计方法,VHDL语言实现等)?系统的功能测试(包括系统整体功能的测试方案、测试过程和测试波形等)?将设计下载到FPGA实验板的FPGA芯片中进行实际测试????处理器在给定的指令集下构建,支持十条指令;假定主存可以在一个时钟周期内完成一次存取操作,而且可以和CPU同步工作;处理器的地址总线宽度是16位,数据总线宽度也是16位,无论是取指还是数据访问,都使用同一组数据总线;处理器的指令字长为16位(指令可设计为单字长或多字长),一个标志寄存器(至少包含进位标识Cy和零标识Z),1个16位的指令寄存器IR和1个16位的程序计数器PC,8个满足运算要求的通用寄存器R0~R7(8位)。要求设计的处理器支持的十条指令包括:寻址方式指令分类传送指令OPdst,src助记符功能立即直接寄存器间接变址相对MOVA,BADCA,BB→AA加B加Cy→AA-B-Cy→AAandB→AAorB→A0→Cy1→CyAddr→PCZ=1:PC+1+sign→PCCy=1:PC+1+sign→PC√√√√√√双向√√√√√算逻运算指令OPdst,src或OPSBBA,BANDA,BORA,BCLCSTCJMPAddrJZsign*JCsign*√√跳转指令OPopr√数据寻址方式回顾操作码寻址特征形式地址A、B形式地址指令字中的地址有效地址操作数的真实地址1.立即寻址形式地址A、B就是操作数立即寻址特征OP#A、B立即数可正可负补码?传送指令在立即数寻址方式下,B为立即数,A为主存地址2.直接寻址EA=A或B有效地址由形式地址直接给出下图以A为例寻址特征主存MOVAA操作数?传送指令在直接寻址方式下,要求实现以下两种情况:?A为主存地址,B为寄存器地址?B为主存地址,A为寄存器地址3.寄存器寻址EA=Ri有效地址即为寄存器编号寻址特征OPRiR0……Ri操作数…R…n寄存器?指令在寄存器寻址方式下,有效地址A、B是通用寄存器编号4.间接寻址EA=(A)有效地址由形式地址间接提供寻址特征OPA主存OP寻址特征AA1主存AEAA1EA一次间址EA操作数多次间址A10?执行指令阶段2次访存EA操作数多次访存4.间接寻址(寄存器)EA=(Ri)有效地址在寄存器中寻址特征OPR主存iR0……Ri地址操作数…Rn…寄存器?有效地址在寄存器中,操作数在存储器中,执行阶段访存?便于编制循环程序5.变址寻址EA=(IX)+AIX为变址寄存器通用寄存器也可以作为变址寄存器寻址特征OPA主存IXALU操作数?可扩大寻址范围?IX的内容由用户给定?在程序的执行过程中IX内容可变,形式地址A不变6.相对寻址EA=(PC)+signsign是相对于当前指令的位移量(可正可负,补码)寻址特征OPPC10001000ALUsign主存OP…操作数sign相对距离sign?sign的位数决定操作数的寻址范围?用于跳转指令,便于程序浮动一个简单的微处理器设计实例以一条取数指令LDAX为例取T0PC→MAR,1→R指T1M(MAR)→MDR,PC+1→PCT2MDR→IR,OP(IR)→ID执T0AD(IR)→MAR,1→R行T1M(MAR)→MDRT2MDR→ACC?处理器的指令字长为16位,包含?8个8位通用寄存器R0~R7?1个16位的指令寄存器IR?1个16位的程序计数器PC??取指令时,可以直接从主存中提取16位的指令信息(本实例中的指令是单字长)。而进行数据访问时,与主存进行8位的数据交换。处理器的地址总线宽度是16位,数据总线宽度也是16位,无论是取指还是数据访问,都使用同一组数据总线,只是数据信息的宽度不同。????????加法指令ADDRi,Rj减法指令SUBRi,Rj寄存器传送指令MOVRi,Rj立即数传送指令MVIRi,X存数指令STARi,X取数指令LDARi,X条件转移(零则转)指令JZRi,X无条件转移指令JMPX信号名RSTCLKABUSDBUSnMREQ位数1116161方向IIOI/OO来源/去向处理器板处理器板主存储器主存储器主存储器备注高电平复位系统时钟地址总线数据总线存储器片选nRDnWRnBHEnBLE1111OOOO主存储器主存储器主存储器主存储器存储器读存储器写高位字节访问允许低位字节访问允许ADDRi,RjSUBRi,RjMOVRi,RjMVIRi,XLDASTAJMPJZRi,XRi,XXRi,XRiRiRiRi?Ri+Rj?Ri-Rj?Rj?XRi?[R7//X][R7//X]?RiPC?[R7//X]If(Ri=0)ThenPC?[R7//X]?指令是由操作码和地址码两部分组成的,由于固定操作码格式便于硬件设计,指令译码时间短,所以进行RISC处理器设计时采用这种格式?指令系统中指定所有的指令都是二地址指令?通用寄存器的数量为8,需3位地址与之对应?访存的形式地址为8位?定义指令的高5位表示操作码15OP15OP1110AD11110AD187AD2872AD20其他类型指令0寄存器-寄存器型指令操作码占据了5位,最多可支持32种指令的设计。目前的指令系统仅包含了8种操作,下表定义这8种操作的操作码。指令名称无条件跳转条件跳转减法操作加法操作立即数传送寄存器传送存数操作取数操作助记符JMPJZSUBADDMVIMOVSTALDA二进制操作码000000001000100001100100001010011000111015JMPX111000087X0MVIRi,X151110Ri87X00000001000X→RiR7//X→PC15JZRi,X1110Ri87X0MOVRi,Rj00010151110Ri870000032Rj001010Rj→RiifRi=0thenR7//X→PC15SUBRi,Rj1110Ri870000032Rj0STARi,X00100151110Ri87X001100Ri-Rj→Ri15ADDRi,Rj1110Ri870000032Rj0LDARi,X00110Ri→R7//X151110Ri87X001110Ri+Rj→RiR7//X→Ri47010100011100000001:MVIR7,01H?41110100000100010001:MVIR1,11H?61000110000100000000:STAR1,00?三条指令执行后功能:0100单元存入11H?CPU内四个重要寄存器?MAR与地址总线相连,存放欲访问的存储单元地址?MDR与数据总线相连,存放欲写入存储器的信息或最近从存储器中读出的信息?PC存放现行指令的地址,具有自动加1的功能?IR存放现行指令PC→MAR;1→R;?M(MAR)→MDR;?MDR→IR;?PC+1→PC;?不同指令执行阶段的微操作是不同的,本例中的指令可以分为三类:非访存指令、访存指令和转移类指令。?指令中的地址码定义为:??Ad1(IR):IR的8-10位,表示指令的第一个地址码,表示寄存器地址;?Ad2(IR):IR的0-2位,表示指令的第二个地址码,表示寄存器地址;?Ad(IR):IR的0-7位,表示指令的第二个地址码,表示形式地址。????加法指令ADDRi,Rj?Reg(Ad1(IR))+Reg(Ad2(IR))→Reg(Ad1(IR))减法指令SUBRi,Rj?Reg(Ad1(IR))-Reg(Ad2(IR))→Reg(Ad1(IR))寄存器传送指令MOVRi,Rj?Reg(Ad2(IR))→Reg(Ad1(IR))立即数传送指令MVIRi,X?X→Reg(Ad1(IR))只考虑扩充寻址的情况,不考虑其他寻址方式?存数指令STARi,X??Reg(R7)//Ad(IR)→MAR;1→W;?Reg(Ad1(IR))→MDR;?MDR→M(MAR)?取数指令LDARi,X?Reg(R7)//Ad(IR)→MAR;1→R;?M(MAR)→MDR;?MDR→Reg(Ad1(IR))不访问存储器?条件转移(零则转)指令JZRi,X??Zero(Reg(Ad1(IR)))·Reg(R7)//Ad(IR)+Nzero(Reg(Ad1(IR)))·PC→PC表示零值判别操作?无条件转移指令JMPX?Reg(R7)//Ad(IR)→PC取指微操作?运算微操作?访存微操作?其他微操作,包括:??回写PC?回写寄存器?每个指令周期包含4个机器周期?取指周期(MEM)?运算周期(ALU)?访存周期(MEM)?回写周期(REG)?每个机器周期包含1个节拍?取指阶段完成指令的提取,同时改变PC,为下一次取指做准备T:M(PC)→IR,1→R,PC+1→PC??运算阶段完成操作数的准备和实际运算,运算包括数据加减及访存实际地址的计算操作数的准备:?T:Reg(Ad1(IR))→A,Reg(Ad2(IR))→B,Reg(R7)//Ad(IR)→Addr;?运算包括:??????A,B,Addr:临时寄存器当操作码为ADD时,运算内容为A+B→ALUOUT;当操作码为SUB时,运算内容为A-B→ALUOUT;当操作码为MVI时,运算内容为Ad(IR)→ALUOUT;当操作码为MOV时,运算内容为B→ALUOUT;当操作码为JZ时,运算内容为A→ALUOUT;当操作码为STA时,运算内容为A→ALUOUT;ALUOUT:临时寄存器访存阶段完成数据向主存的写入操作,或?从主存中读取数据的操作?对于取数操作:?T:M(Addr)→Rtemp,1→R?对于存数操作:?T:ALUOUT→M(Addr),1→W?回写阶段把访存的结果或运算的结果写入到寄存器中保存,同时根据转移指令的要求更新PC寄存器的内容:?当操作码为LDA时,Rtemp→Reg(A);?当操作码为ADD,SUB,MVI,MOV时,ALUOUT→Reg(A);?当操作码为JMP时,Addr→PC;?当操作码为JZ时,ifA=0thenAddr→PC。?CPU设计的基本思想有组合逻辑设计和微程序设计两种?组合逻辑设计根据微操作的节拍安排,列出微操作命令的操作时间表,然后写出每一个微操作命令的逻辑表达式,最后根据逻辑表达式画出相应的组合逻辑电路图;?微程序设计思想是将一条机器指令编写成一个微程序,每一个微程序包含若干条微指令,每一条微指令对应一个或几个微操作命令,然后把这些微程序存到一个控制存储器中,用寻找用户程序机器指令的办法来寻找每个微程序中的微指令。微程序设计方法虽然简便,但需要占用较大的空间存放微程序在RISC计算机中一般都采用组合逻辑设计方法,这有利于进行流水线的设计,也能大大节省CPU的门数,对于降低CPU的功耗也有好处?这里介绍的设计方法是组合逻辑设计的一种,但设计中不直接使用逻辑表达式,而是根据信息流的思想进行了模块的划分,给出CPU的基本结构框图??根据机器周期的定义,系统划分为四个主要模块?取指管理模块掌管取指周期?运算管理模块掌管运算周期?存储管理模块掌管访存周期?回写管理模块掌管回写周期?在一个指令周期中,取指、运算、访存、回写四个机器周期依次执行,由时钟管理模块统一进行调度控制器CLK时钟管理运算管理运算器取指管理存储管理回写管理主存储器??取指管理模块包含寄存器PC和IR,同时IR的内容将由该模块向其他模块提供;运算管理模块包含运算器,也就包含了通用寄存器,同时也包含了暂存器A、B、Addr、ALUOUT;存储管理模块包含暂存器Rtemp;回写模块包含暂存器Rdata、Raddr、PCnew,前两个用于寄存器回写,第三个用于PC的更新。???通过LDA指令的执行过程展示一下各模块的功能:?在第一个机器周期中,取指管理模块根据PC的内容对主存进行访问,向主存发送16位的地址PC,读回数据总线上的16位数据信息存放到IR寄存器中,同时使PC前进,为下一次取指做准备;?在第二个机器周期中,运算管理模块根据操作码的意义进行访存地址的准备,从R7寄存器和IR的第二地址码两个部分组合形成实际地址Addr;?在第三个机器周期中,存储管理模块根据操作码的意义进行访存,向主存发送16位的地址Addr,读回数据总线上的8位数据信息存放到Rtemp暂存器中;?在第四个机器周期中,回写管理模块根据操作码的意义回写寄存器,将暂存器Rtemp的内容写入指定的Ri寄存器中。在取指周期,存储器的访问是只读的,存储器的地址来自PC,数据去往IR;?在访存周期,存储器的访问可能是读也可能是写;?存储器只有一组,而取指周期和访存周期都可能对其进行访问,而且数据、地址的来源和去向均不同。为避免访问冲突、保证空闲时总线不被占用,应该对存储器的访问加以管理。??在主存储器与各管理模块之间增加一个访存控制模块:。地址,访存后将它接收来自取指管理模块的PC指管理模块;IR内容返回给取。它接收来自运算管理模块的ALUOUT准备;,为访存周期的控制作。模块传送数据总线的它在数据访问读周期向存储管理16位信息。访存控制地址PC输出地址总线Addr主OP存储ALUOUT输出器数据总线取指模块输入存储管理数据?增加了回写管理模块与取指、运算两模块之间的通路,用以支持PC和通用寄存器的更新:?PC寄存器的更新由PCupdate信号控制,内容来自回写管理模块中的暂存器PCnew。?在回写周期里,PCupdate信号将根据指令操作码OP产生,当该信号发出时,取指管理模块将把暂存器PCnew的内容写入PC寄存器中,当下一条指令的取指周期到来时,PC就把更新后的内容传递到地址总线上,读取全新的指令。?通用寄存器的更新由Rupdate信号控制,寄存器的地址来自回写管理模块中的暂存器Raddr,将写入寄存器的内容来自回写管理模块中的暂存器Rdata。在回写周期里,Rupdate信号将根据指令操作码OP产生,当该信号发出时,运算管理模块将把暂存器Rdata的内容写入Raddr所对应的寄存器中。PC修改控制取PCupdate指管PCnew理回写Reg回写控制管Rupdate理运模算Raddr块管理Rdata控制器CLK取指管理PC时钟管理运算管理运算器Reg存储管理回写管理访存控制地址总线数据总线主存储器第五步:各模块输入输出接口信号定义(以表格形式给出)从处理器设计实例中得出的一些提示参见上学期《数字逻辑》课程的实验仪基本部件测试实验——四拍循环?每一拍的输出控制哪些模块??IR送给那些模块哪儿??PC自加何时完成???通用寄存器组如何实现??二维数组根据操作码译码后,哪些指令需要通过运算器运算??操作数的准备?地址的准备?回写地址也在运算模块准备好,避免回写时数据在地址前送到?是否需要译码??访存地址怎么给??存数操作中,数据从哪来??取数操作中,取来的数据放到哪??仍然需要译码?包括回写寄存器和回写PC?回写要注意同时给出回写的地址和数据?地址是在运算模块准备的?回写在什么时间完成(最后一拍完成)??地址线控制?通过取指还是取数区分地址的来源?数据线控制?三态门控制,只在写存储器时将数据给数据总线,其余时刻均设高阻?CPU的所有访存端口都通过访存控制模块输出????一个输出能否直接连接到多个输入上?可以多个输入能否直接连接到一个输出上?不可以按字寻址还是按字节寻址要和主存控制结合每一个模块的波形仿真,要按照节拍给出正确输入?ERROR:Xst:415-Synthesisfailed(多个输入接到一个输出)?WARNING:Xst:528-Multi-sourceinUnitonsignal?ERROR:MapLib:93-IllegalLOConIPADsymbolRSTorBUFGPsymbolRST_BUFGP(outputsignal=RST_BUFGP),IPAD-IBUFGshouldonlybeLOCedtoGCLKIOBsite.?由于在process中某一个信号的扇出电路复杂,出现在综合中将该信号误认为是时钟?解决办法:?减小每个Process的长度?修改XST逻辑综合属性设置?XST按右键-〉Properties-〉XilinxSpecificOptions-〉NumberofClockBuffers,改为0或1具有创新性的设计是成功关键!
本文档为【计算机设计与实践2012秋-第四讲】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_598372
暂无简介~
格式:ppt
大小:5MB
软件:PowerPoint
页数:63
分类:
上传时间:2018-09-18
浏览量:0