单周期和多周期专用CPU设计【毕业论文】.doc

上传人:文初 文档编号:17381 上传时间:2018-04-26 格式:DOC 页数:41 大小:1.30MB
下载 相关 举报
单周期和多周期专用CPU设计【毕业论文】.doc_第1页
第1页 / 共41页
单周期和多周期专用CPU设计【毕业论文】.doc_第2页
第2页 / 共41页
单周期和多周期专用CPU设计【毕业论文】.doc_第3页
第3页 / 共41页
单周期和多周期专用CPU设计【毕业论文】.doc_第4页
第4页 / 共41页
单周期和多周期专用CPU设计【毕业论文】.doc_第5页
第5页 / 共41页
点击查看更多>>
资源描述

1、本科毕业设计(20届)单周期和多周期专用CPU设计所在学院专业班级计算机科学与技术学生姓名学号指导教师职称完成日期年月摘要【摘要】随着CPU技术发展的日新月异,我们对于CPU及其结构的关注度也越来越高。CPU作为计算机的核心设备,在整个计算机体系中发挥了至关重要的作用。CPU一般分为通用CPU和专用CPU。本课题通过对硬布线控制知识的分析,充分理解单周期和多周期专用CPU的工作原理,并对原理图以及数据通路图进行探究,首先设计单周期专用CPU,并在单周期专用CPU设计的基础上,进行多周期专用CPU设计的拓展,通过专用指令程序的执行验证CPU的正确性。【关键词】硬布线控制器;单周期CPU;多周期C

2、PU;有限状态机IIABSTRACT【ABSTRACT】WITHTHERAPIDDEVELOPMENTOFCPUTECHNOLOGY,WEARECONCERNEDMOREABOUTTHECPUASWELLASITSARCHITECTUREASTHECOREOFTHECOMPUTERSYSTEM,CPUHASPLAYEDACRUCIALROLECPUISGENERALLYDIVIDEDINTOGENERALPURPOSECPUANDASPECIALCPUINORDERTOFULLYUNDERSTANDINGTHEWORKINGPRINCIPLEOFSINGLECYCLEANDMULTICYCLE

3、CPU,WEEXPLORESCHEMATICANDDATAACCESSBYHARDWIREDKNOWLEDGEBASEDONTHESINGLECYCLECPUDESIGN,WECOMPLETETHEMULTICYCLECPUDESIGNEXPERIMENTALRESULTSSHOWTHATTHESPECIALCPUSRUNINCORRECTANDSATISFYREQUIREMENTS【KEYWORDS】HARDWIREDCONTROLLERSINGLECYCLECPUMULTICYCLECPUFINITESTATEMACHINEIII目录摘要IABSTRACTII目录III1绪论111CPU的

4、发展史1111CPU的作用以及演变过程1112CPU近年来的发展应用212CPU的种类和内部结构2121通用CPU和专用CPU3122CPU内部结构组成313专用CPU功能实现的意义32单周期和多周期专用CPU421单周期专用CPU5211组成部件的设计要求6212原理图822多周期专用CPU设计13221组成部件的设计要求14222原理图1623单周期和多周期专用CPU的比较263单周期专用CPU和多周期专用CPU设计的实现2731QUARTUSII软件的基本介绍2732运用QUARTUSII软件进行单周期专用CPU的设计27321单周期专用CPU内部部件的组成图27322单周期专用CPU的

5、数据通路图2933运用QUARTUSII软件进行多周期专用CPU的设计29331多周期专用CPU内部部件的组成图304设计的运行结果3241单周期专用CPU的运行结果32411单周期专用CPU运行的指令32412指令产生的仿真波形图3242多周期专用CPU的运行结果33421多周期专用CPU运行的指令33422指令产生的仿真波形图3443仿真波形图的评估355总结3651本课题研究的收获3652对本课题未来的展望36参考文献37致谢错误未定义书签。1绪论随着信息技术的迅猛发展,计算机技术也在不断革新,而计算机已经成为了人们日常生活中不断或缺的一个组成部分,在经济全球化和网络普及化的今天,计算机

6、对于人们的影响也越来越大,而作为计算机的核心设备,CPU也在不停地更新换代并越来越受到人们的关注和重视,多线程,多核心理论的产生,使得CPU的革新速度又得到进一步的提升。本课题旨在通过对硬布线控制器知识的分析,对单、多周期专用CPU设计进行探究,熟练掌握CPU原理图和数据通路图,实现指令的功能。11CPU的发展史任何事物的发展和壮大都会经历一个曲折的过程,计算机技术的发展过程中,CPU技术的贡献是不可磨灭的。作为计算机体系的核心构件,CPU的发展一直备受关注。CPU的发明可以追溯到1971年。40年前,当时还处在起步发展阶段的INTEL公司推出了世界上第一台微处理器,即4004。虽然当时400

7、4含有2300个晶体管,功能相当有限,而且运行速度也非常慢,但不可否认的是,4004在CPU的发展史上是具有里程碑的意义的。从此以后,INTEL公司便和CPU便结下了不解之缘。所以有这样一种说法,CPU的历史发展其实也是INTEL公司的X86系列CPU的发展过程,在接下来几节中,我们将对CPU的发展进行介绍。111CPU的作用以及演变过程中央处理器(CENTRALPROCESSINGUNIT,CPU),是电子计算机的主要设备之一。其功能主要是执行计算机中的指令以及处理计算机软件中的数据。所谓的计算机的可编程性主要是指对CPU的编程。CPU作为计算机系统的核心,对计算机系统的运行来说是非常重要的

8、。它的基本功能包括以下几点(1)指令控制,即程序的顺序控制。(2)操作控制,CPU控制操作信号送往相应的部件,并控制部件完成功能。(3)时间控制,各个指令在执行的过程中要受到时间的严格定时。(4)数据加工,即对数据进行算术运算和逻辑运算处理。上述4点基本概括了CPU的功能,下面我们介绍一下衡量CPU性能的主要指标(1)主频主频也被叫做时钟频率,它用来表示CPU的内核工作时钟频率。(2)外频外频指的是CPU和主板间同步运行时的速度,它是衡量CPU性能的一个重要指标。2(3)前端总线FSB频率总线是将计算机中的微处理器与内存的芯片以及与之通信的设备连接起来的一个硬件通道。人们常常以MHZ表示的速度

9、来描述总线频率。数据传输最大带宽与同时传输的数据宽度和传输的频率有关。(4)CPU的位和字长计算机发展史中,CPU也经历了从8位处理器,16位处理器直到32位处理器,64位处理器,我们都可以看到每一次的发展,都是CPU性能的提升。(5)倍频系数倍频系数指的是CPU主频与外频之间的比例关系。在相同的外频下,倍频越高,CPU的频率也越高。(6)缓存缓存大小也是CPU的重要指标之一,缓存对CPU速度的影响非常大,CPU内缓存的运行频率很高,工作效率大于内存和硬盘。而在我们实际的计算机使用过程中,如果缓存容量增大,则可以大幅度提升CPU读取数据的命中率,也不用反复在内存和硬盘中进行查找,这样一来,系统

10、的运行性能便得到了很大的提升。(7)CPU扩展指令集我们都知道,CPU内部是依靠指令来计算数据和控制组件,以达到系统运行要求,每个CPU在设计时就规定了一系列与硬件相匹配的指令系统。指令的多少也是衡量CPU性能的一个重要指标。1971年,早期的INTEL公司推出了世界上第一台微处理器4004,随后便是8080处理器和8085等8位处理器的推出。紧接着,INTEL公司的8086微处理器研制成功,它是16位处理器的典型代表。随后,80386,80486以及后续的486,586的出现,标志着CPU发展的日新月异,而其中INTEL“奔腾”系列又有着划时代的意义。随着20实际的到来,CPU的研发成为了I

11、NTEL和AMD两大巨头的争夺。2004年,AMD和INTEL公司都先后推出了64位处理器。随后的日子里,又推出了双核甚至4核的处理器,这也无疑将CPU的发展带向了一个崭新的时代。112CPU近年来的发展应用进行21世纪以来,CPU技术的发展速度又进一步得到了提升,双核,4核处理器的推出,使得CPU进入到了前所未来的繁华时代,未来的CPU将是一个兼备超高性能、能效和丰富功能的芯片,这就需要我们在技术上和结构上同时革新,才能更好地提升其性能。12CPU的种类和内部结构一般的CPU可分为通用CPU和专用CPU。3121通用CPU和专用CPU通用CPU,顾名思义,就是能够广泛应用的CPU。作为通用C

12、PU,它的高性能化和高功能化是非常必要的,这样即使最普通的大众用上去也觉得简单和容易上手。通常而言,通用CPU的功能只限于CPU的功能,即控制功能和运算功能,而将对输入输出管理的功能转移到其他芯片上,从而可以适应各种领域。专用CPU对于通用CPU而言,是一个可编程处理器,针对某一特定类型的应用进行了优化。这些特定类型的应用具有共同的特点,例如嵌入式控制、数字信号处理等。在专用CPU的设计过程中,设计者可针对现实中的应用对通用处理器的数据通路进行修改和优化,可以是增加专门的功能单元执行指令以及去掉无需使用的的功能单元。122CPU内部结构组成现在的CPU基本分为运算器、CACHE以及控制器三大块

13、。运算器的作用是将导入CPU的数据进行算术运算或者是逻辑运算,它是数据加工处理的部件。它一般由ALU、通用寄存器、数据缓冲寄存器和状态条件寄存器组成。而控制器则是决定指令的操作的部件,由程序计数器、指令译码器、指令寄存器、操作控制器和时序产生器组成。13专用CPU功能实现的意义专用CPU的意义,在于它可以针对制作者本身的要求对数据路图及相关组件进行修改,增添相关的单元,从而使得处理器能够达到最高的应用效率。42单周期和多周期专用CPU硬布线控制器又被称作组合逻辑控制器,它的目标是使用最少元件和取得最高操作速度。硬布线控制器将控制部件做成产生专门固定时序控制信号的逻辑电路,产生各种控制信号,所以

14、它的组成结构是固定的。而一旦控制部件构成后,除非重新设计并对它重新布线,否则很难增加新的控制功能。硬布线控制器是计算机中比较复杂的逻辑部件。当执行不同的机器指令时,通过激活一系列彼此很不相同的控制信号来实现对指令的解释,其结果使得控制器往往很少有明确的结构而变得杂乱无章。结构上的这种缺陷使得硬布线控制器的设计和调试非常复杂且代价很大。就是因为如此,有一段时间,硬布线控制器有被微程序控制器所取代的趋势。但是,与微程序控制器相比,硬布线控制的处理速度较快。其原因是微程序控制中每条微指令都要从控制存储器中读取一次,这会影响速度,而硬布线控制主要取决于电路延迟。另外,随着新一代机器及VLSI技术的不断

15、发展与进步,硬布线逻辑设计思想又重新得到了重视,现代新型计算机体系结构如RISC中多采用硬布线控制逻辑。硬布线控制器逻辑设计中所需要注意的事项1采用适宜指令格式,合理分配指令操作码;2确定机器周期、节拍与主频;3确定机器周期数及一周期内的操作;4进行指令综合;综合所有指令的每一个操作命令,写出逻辑表达式,并进行化简。5明确组合逻辑电路。将简化后的逻辑表达式用组合逻辑电路来实现。操作命令的控制信号先用逻辑表达式列出,进行化简,考虑各种条件的约束,合理选用逻辑门电路、触发器等器件,采用组合逻辑电路的设计方法产生控制信号。总之,控制信号的设计与实现,技巧性较强,虽然目前已有一些专门的开发系统或工具供

16、逻辑设计使用,但是,对于整体上的设计和操作,还需要我们进行有效的研究和探讨,生成相关的方案。下面我们再来看看硬布线控制器与微程序控制器的比较。硬布线控制器与微程序控制器相比较,在操作控制信号的形成上有较大的区别外,其它没有本质的区别。对于实现相同的一条指令,不管是采用硬布线控制还是采用微程序控制技术,都可以采用多种逻辑设计方案,导致了各种不同的控制器在具体实现方法和手段上的区别以及性能上的差异。硬布线控制与微程序控制的主要区别归纳为如下方面1实现方式5微程序控制器的控制功能是在存放微程序存储器和存放当前正在执行的微指令的寄存器直接控制下实现的,而硬布线控制的功能则由逻辑门组合实现。微程序控制器

17、的电路比较规整,各条指令信号的差别集中在控制存储器内容上,因此,无论是增加或修改指令都只要增加或修改控制存储器内容即可,若控制存储器是ROM,则要更换芯片,在设计阶段可以先用RAM或EPROM来实现,验证正确后或成批生产时,再用ROM代替。硬布线控制器的控制信号先用逻辑式列出,经化简后用电路来实现,因此,显得零乱复杂,当需要修改指令或增加指令时就必须重新设计电路,非常麻烦而且有时甚至无法改变。因此,微操作控制取代了硬布线控制并得到了广泛应用,尤其是指令复杂的计算机,一般都采用微程序来实现控制功能。2性能方面在同样的半导体工艺条件下,微程序控制的速度比硬布线控制的速度低,因为执行每条微程序指令都

18、要从控制存储器中读取,影响了速度;而硬布线控制逻辑主要取决于电路延时,因而在超高速机器中,对影响速度的关键部分如核心部件CPU,往往采用硬布线逻辑实现。近年来,在一些新型计算机系统中,例如,RISC精简指令系统计算机中,一般都选用硬布线逻辑电路。本章通过对硬布线单周期专用CPU和多周期专用CPU设计的研究,讲述硬布线控制器设计的方法。21单周期专用CPU单周期专用CPU的主要特点是每一条指令的执行都需要一个时钟周期,一条指令执行完毕后再执行下一条指令。由于每一个时钟周期的时间长短都是一样的,所以在时钟周期时,需要考虑到最复杂的一条指令执行所需要花费的时间。取指令过程如图21所示一般来说,一个C

19、PU在处理指令时需要经过以下几个步骤(1)取指令(IF)CPU要根据程序计数器PC中的指令地址,从存储器中取出一条指令,然后转换到译码状态。同时,在PC中产生取下一条指令需要的指令地址。(2)指令译码(ID)对取指令操作中得到的指令进行译码,确定这条指令需要完成的操作,从而产生相应的控制信号,驱动执行状态中的各种动作。取指令IF指令译码ID指令执行EXE存储器访问MEM结果写回WD图21单周期CPU指令处理过程6(3)指令执行(EXE)根据指令译码得到的控制信号,具体地执行指令动作,然后,转移到结果写回状态。(4)存储器访问(MEM)所有需要访问存储器的操作都将在这个步骤中执行,该步骤给出访问

20、存储器的数据地址,把数据写入到存储器中数据地址所指示的位置或者从存储器中的得到数据地址所指示的数据。(5)结果写回(WB)该步骤负责把指令执行的结果或者访问存储器中得到的数据写回到相应的目的寄存器中。在CPU中,执行的是MIPS指令。MIPS有32个通用的寄存器,编号从0到31。我们把这些通用寄存器称之为寄存器堆。MIPS的指令格式有3种(1)R类型的指令从寄存器堆中读取两个源操作数,计算结果写回寄存器堆。312625212016151110650OPRSRTRDSAFUNC6位5位5位5位5位6位(2)I类型的指令使用一个16位的立即数作为一个源操作数。312625212016150OPRS

21、RTIMMEDIATE6位5位5位16位(3)J类型的指令使用一个26位立即数作为跳转的目标地址。3126250OPTARGET6位26位这其中OP表示的是指令操作吗,RS表示的是源操作数的寄存器号,RD表示的是目的寄存器号,RT既可以表示源寄存器号,又可以表示为目的寄存器号,FUNC是扩展的操作码,SA则是由移位指令使用,定义移位位数,IMMEDIATE是16位立即数,使用之前由指令进行0的扩展或者是符号扩展。26位TARGET由JUMP指令使用,用于产生跳转的目标地址。接下来,我们来选择以下几条指令,并生成单周期专用CPU的工作原理图。211组成部件的设计要求(1)ADDRS,RT,IMM

22、EDIATE000000RS(5位)RT(5位)RD(5位)RESERVED本条指令完成的功能RDRSRT。(2)LWRT,OFFSETBASE7100011BASE(5位)RT(5位)OFFSET16位本条指令完成的功能16位OFFSET经符号扩展到32位,与寄存器BASE中的值相加,并把结果作为地址,以此地址取字保存到寄存器RT。(3)SWRT,OFFSETBASE101011BASE(5位)RT(5位)OFFSET16位本条指令完成的功能为16位OFFSET经符号扩展到32位,与寄存器BASE中的值相加,并把结果作为地址,同时将寄存器RT值保存到此地址内存中。4JTARGET000010

23、TARGET(26位)本条指令完成功能将26位地址经零扩展到32位成跳转的目标地址。根据上述几条指令,我们需要进行单周期专用CPU工作原理图的设计。在单周期CPU中,所包含的主要器件有程序存储器、数据存储器、寄存器堆、PC、ALU以及控制部件。而且,对于上述4条指令,我们还需要通过一部分控制信号来进行指令的执行REGDST、ALUSRCB、ALUOP、REGWRITE、MEMTOREG、MEMWR、PCSOURCE等。下面我们在表21中介绍一下这些信号的作用。表21控制信号作用信号名无效时信号作用为(0)有效时信号作用为(1)REGDST写寄存器在寄存器堆的地址来自于RT字段写寄存器在寄存器堆

24、的地址来自于RD字段ALUSRCB寄存器堆DATA2输出符号扩展的立即数ALUOP无加法REGWRITE无加法MEMTOREG送往寄存器堆写数据输入的值来自ALU送往寄存器堆写数据输入的值来自存存储器MEMWR无在时钟上升沿时,写存储器PCSOURCEPC1扩展的立即数8图22单周期CPU数据通路原理图图22是单周期CPU数据通路原理图。在单周期专用CPU设计中,很重要的一点就是理清数据在CPU各个组件之间的数据传输和通路,从而可以设计出控制器。212原理图以下我们讨论ADD,LW,SW,J4条指令的指令处理过程,在原理图中,粗线为当前有效通路,控制器上斜体为当前有效控制信号。9图23ADD指

25、令处理过程图从图23可以看到,经过一个时钟后PC自动完成加1。从存储器取出指令,3126进入控制器译码产生控制信号,2521和2016作为寄存器地址从寄存器堆中取出两加数到ALU,ALU运算结果在时钟下一个上升沿写回寄存器地址1511。因此有效控制信号REGDST、ALUOP、REGWRITE均为1,其余控制信号为0。10图24LW指令处理过程图从图24可以看到,指令3126进入控制器译码产生控制信号,2521作为寄存器地址读出基地址,150立即数符号扩展,与基地址在ALU相加,作为存储器地址。存储器从B口读出数据,在时钟下一个上升沿写到寄存器堆地址2016中。因此有效控制信号ALUSRCB、

26、ALUOP、REGWRITE、MEMTOREG均为1,其余控制信号为0。11图25SW指令处理过程图从图25可以看到,指令3126进入控制器译码产生控制信号,2521作为寄存器地址读出基地址,150立即数符号扩展,与基地址在ALU相加,作为存储器地址。寄存器堆地址2016读出数据到存储器的DATA端,在时钟下一个上升沿保存。因此有效控制信号ALUSRCB、ALUOP、MEMWR均为1,其余控制信号为0。12图26J指令处理过程图从图26可以看到,指令3126进入控制器译码产生控制信号,立即数250扩展为32位,在时钟下一个上升沿保存到PC,完成跳转。因此有效控制信号PCSOURCE为1,其余控

27、制信号为0。这样我们可以从4条指令的执行过程中设计控制器了,我们综合上面四条指令的数据通路原理图,得到表22表22控制信号控制信号ADDLWSWJREGDST1000ALUSRCB0110ALUOP1110REGWRITE1100MEMTOREG010013MEMWR0010PCSOURCE0001由于ADD指令码为000000,LW指令码为100011,SW指令码为101011,J指令码为000010,因此012345REOPOPOPOPOPOPADDGDST012345012345OPOPOPOPOPOPOPOPOPOPOPOPSWLWALUSRCB类似地,可以写出所有控制信号的组合逻辑,

28、经化简后,最后我们可以完成控制器并设计出数据通路图。具体的通路图设计我们将在第三章进行展示。22多周期专用CPU设计单周期CPU每条指令的执行需要一个时钟周期,而每个时钟周期的时间长短都是一定的,因此在确定时钟周期的时间长度时,要保证每条指令都已经正确完成,因此要考虑指令集中最复杂的指令执行时所需时间。上面四条指令中最复杂的指令是LW。以LW3,772为例,来说明在该周期中所做的工作。该指令的任务是从存储器中取来数据,放入寄存器堆的寄存器3中;存储器的地址由两个数相加得到,其中的一个数是寄存器2中的内容,另一个是指令中的立即数77。执行该指令需要5个步骤1使用PC作为存储器地址,从存储器中把指

29、令取来。2从寄存器堆中寄存器2读出数据;把立即数77符号扩展为32位。3把上述两个数相加。4使用相加的结果作为地址,从存储器中取来数据。(5把取来的数据写入寄存器3中。假设以上的每个步骤需要1NS,则共需5NS。由此可以确定CPU的时钟(CLOCK)最高频率为200MHZ。然而有些指令,类似ADD这样的指令根本不需要访问数据存储器,可以把ALU计算出的结果直接写回寄存器堆。再比如J指令比LW简单得多,执行该指令需要3个步骤1使用PC作为存储器地址,从存储器中把指令取来。2把立即数跳转地址扩展为32位。3更新PC。因此J指令并不需要5NS。但是在单周期CPU中,简单的J指令也需要执行一个时钟周期

30、。所以,所有指令采用同一周期效率是比较低的。这也浪费了CPU很多宝贵的执行的时间。14为了解决上述问题,我们可以把单周期CPU的时钟周期分成几个小的周期,比较简单的指令少用几个周期,复杂的指令就多用几个周期。为提高指令执行的效率,可以考虑根据不同的指令,给出不同的执行时间,这就要设计多周期CPU控制器了。在单周期CPU设计中,每一条指令的执行过程分成了5个执行步骤,分别是取指令(IF)、指令译码(ID)、指令执行(EXE)、存储器访问(MEM)和结果写回(WB)。在多周期CPU设计中,沿用这5个执行步骤。当然,在多周期CPU中,这5个执行步骤将在5个不同的时钟周期中执行。每条指令需要经历的执行

31、步骤不尽相同,这样,指令使用的时钟周期也就各不相同,一条指令便会用到几个周期。这就是多周期CPU这一名称的由来。221组成部件的设计要求在多周期CPU中,要解决最大的问题是设计控制部件CU。在单周期CPU设计中,由于每条指令都是在一个周期内运行完成的,每条指令在解码之后,可以使用组合逻辑给出各种控制信号。这些控制信号在指令周期内部不需要改变,直至下一个周期到来,开始执行下一条指令。然而,在多周期CPU中,指令不是在一个周期内运行完成的,这样,就需要控制部件CU能够知道在每一个周期要做什么事情。不同的指令,指令执行中需要的周期数量是不同的,每个周期中做的事情也是不一样的。要做到根据指令的不同,在

32、各个周期内完成不同的任务,这就需要使用有限状态机FINITESTATEMACHINE来实现。一个有限状态机是由一组状态及状态间的装换规则组成。转换规则由一个后继状态函数确定,它将现有状态和输入映射到一个新的状态。当用一个有限状态机描述控制时,每个状态都对应一组控制信号输出。在本章的多周期CPU设计采用有限状态机的方式来实现控制部件CU的设计。根据不同的指令,控制部件CU给出不同的控制时序。在每一个周期内,控制部件CU需要给出相应的控制信号。多周期专用CPU执行以下5条指令(1)ADDRS,RT,IMMEDIATE000000RS(5位)RT(5位)RD(5位)RESERVED本条指令完成的功能

33、为RDRSRT。(2)LWRT,OFFSETBASE100011BASE(5位)RT(5位)OFFSET16位本条指令完成的功能为16位OFFSET经符号扩展到32位,与寄存器BASE中的值相加,并把结果作为地址,以此地址取字保存到寄存器RT。15(3)SWRT,OFFSETBASE101011BASE(5位)RT(5位)OFFSET16位本条指令完成的功能为16位OFFSET经符号扩展到32位,与寄存器BASE中的值相加,并把结果作为地址,同时将寄存器RT值保存到此地址内存中。4JTARGET000010TARGET(26位)本条指令完成的功能为将26位地址经零扩展到32位成跳转的目标地址。

34、(5)BEQRS,RT,OFFSET000100RS(5位)RT(5位)OFFSET16位本条指令完成的功能为16位OFFSET经符号扩展到32位,与PC1相加,结果作为新地址。如果RSRT,则PC置为新地址,完成跳转。如果RSRT,则顺序执行。接下来我们来探讨能执行上述5条指令的工作原理图。我们最重要的是如何解决各个指令的周期数不同的问题,因此我们需要一种称为“有限状态机”的技术来设计多周期CPU的控制部件,使得不同的指令能够有不同数量的时钟周期。首先我们需要列出各个指令处理时的步骤,这在表23中进行了具体说明。表23指令周期分配表(1表示需要执行该步骤,0表示不需要执行该步骤)指令IFID

35、EXEMEMWBADD11101LW11111SW11110BEQ11100J11100从表中可以看出,这5条指令的执行至少需要5种状态,而且不同指令的同一状态有可能操作也不一样,如ADD和J指令的EXE状态,其操作肯定不一样。状态的转移有些是无条件的,如IF状态转到ID状态。但有些转移要根据条件来确定的,如ID状态转到ADD的EXE状态还是到J的EXE状态,这是不同的。这要根据指令码和当前状态来确定。表24反应了上述状态16表24不同指令在每个周期要完成的动作步骤ADDLWSWBEQJIFIRMEMORYPCPCPC1IDAREGRSBREGRTCPC符号扩展的指令150EXECAADDBC

36、A符号扩展的指令150若AB0则PCCPC0扩展的指令250MEMREGRDCDRMEMORYCMEMORYCBWDREGRTDR然后我们要再单周期专用CPU的基础上实现多周期专用CPU的设计原理图。在这之前,我们要得到相应的有限状态机图。222原理图17图27完整的有限状态机(10个状态)图27是有限状态机图,然后据此我们分析并得到多周期专用CPU的数据通路工作原理图。18图28多周期专用CPU数据通路和控制线路原理图图28是多周期专用CPU数据通路和控制线路原理图然后根据有限状态机的顺序在原理图中,分析图27中的10个状态,得出控制器的内部结构。图29状态019图29状态0在该周期中,以P

37、C为地址从存储器取出指令到指令寄存器IR的输入端,PC与1相加结果返回PC输入端。当下一个时钟上升沿到来时,IR和PC均做更新。图210状态1图210状态1指令的3126进入控制器进行译码。同时,指令2521、2016作为地址读出两寄存器数到寄存器A和B的输入端。PC加指令的150,结果到寄存器C的输入端,为BEQ指令准备。20图211状态2图211状态2完成LW和SW指令中存储地址的计算。基地址在寄存器A中,偏移量在指令150,相加结果作为地址到寄存器C的输入端。图212状态321图212状态3完成读存储器到寄存器DR。寄存器C为存储器地址,存储器的数据到寄存器DR输入端。图213状态4图2

38、13状态4从存储器读出的数据已经在DR,现在将此数据到寄存器堆输入端,将指令2016作为寄存器堆的地址,在下一个时钟上升沿可以写入。22图214状态5图214状态5存储器的地址在寄存器C中,数据在寄存器B中,在下一个时钟周期上升沿写入。图215状态623图215状态6状态1取出的两加数在寄存器A和B中,在状态6执行加法,结果到寄存器C的输入端。图216状态7图216状态7数据在寄存器C中,要写入的地址在指令1511中,在下一个时钟上升沿写入。图217状态824图217状态8要改写的地址在上一个周期已经算出,存放在寄存器C中,并送到PC输入端。状态8计算寄存器A和B中两数差,如为0,则PCWRI

39、TE1,使PC能在下一周期改掉;如为1,则PCWRITE0,使PC能够保持。图218状态9图218状态9更改的地址为指令250,在下一时钟上升沿更改。综合上述10个状态图,我们最后得到控制器的框图如图219所示25图219控制器框图根据有机状态图(图27)和控制器框图(图219),我们可以得到以下的状态转换表表25状态转移表当前状态Q3Q2Q1Q0指令码下一状态D3D2D1D000000X1000110001SW或者LW2001010001ADD6011010001BEQ8100010001J9100120010LW3001120010SW5010130011X4010040100X00000

40、50101X0000060110X7011170111X0000081000X0000091001X00000对应我们可以得到D3状态1BEQ状态1J;26D2状态1ADD状态2SW状态3状态6等等。状态10123QQQQ状态20123QQQQ012345OPOPOPOPOPOPBEQ012345OPOPOPOPOPOPJ最后可以得到PCWRITEQ3Q2Q1Q0ZEROQ3Q2Q1Q0;WRCQ3Q2Q1Q0Q3Q2Q1Q0Q3Q2Q1Q0等状态,然后得到控制信号设计出控制器。具体部件图我们将在下一章给出。23单周期和多周期专用CPU的比较经过上述的讨论,我们可以发现,多周期专用CPU设计是

41、建立在单周期专用CPU设计基础上的,单周期CPU每条指令的执行需要一个时钟周期,而每个时钟周期的时间长短都是一样的,因此在确定时钟周期的时间长度时,要保证每条指令都已经正确完成,因此要考虑指令集中最复杂的指令执行时所需时间。在单周期CPU设计中,由于每条指令都是在一个周期内运行完成的,每条指令在解码之后,可以使用组合逻辑给出各种控制信号。这些控制信号在指令周期内部不需要改变,直至下一个周期到来,开始执行下一条指令。然而,在多周期CPU中,指令不是在一个周期内运行完成的,这样,就需要控制部件CU能够知道在每一个周期要做什么事情。不同的指令,指令执行中需要的周期数量是不同的,每个周期中做的事情也是

42、不一样的。273单周期专用CPU和多周期专用CPU设计的实现31QUARTUSII软件的基本介绍QUARTUSII是ALTERA公司出产的第四代可编程逻辑器件集成开发环境,它提供了从设计输入到器件编程的全部功能。QUARTUSII可以产生并识别VHDL、VERILOGHDL等文件,为其它EDA工具提供了方便的接口;可以在QUARTUSII集成环境中自动运行其它EDA工具。通过QUARTUSII软件开发的过程,可以分为设计输入、设计编译、设计定时分析、设计仿真和器件编程五个步骤。(1)设计输入,即VHDL文件的添加。(2)设计编译,对逻辑信息进行编译处理,实现仿真。(3)设计定时分析,设置各项参

43、数,与实际进行比较。(4)设计仿真,即产生波形图。(5)即对有特别功能的器件进行编程。32运用QUARTUSII软件进行单周期专用CPU的设计QUARTUSII软件的一个优点是,一方面它可以通过电路图完成设计实现功能,另一方面它也可以通过VHDL语言来实现功能,而电路图和VHDL之间可以互相转换。应用QUARTUSII软件进行单周期专用CPU设计,首先我们要文件目录下新建一个工程,然后在工程目录下创建BLOCKSYMBOLFILE,然后进行部件的研究,并依照原理图的设计,将各个部件通过线路完整连接。由于部分部件模块应用较多,在软件中会有一部分的模板,而我们只需要设置其中的数据位数。321单周期

44、专用CPU内部部件的组成图设计部件组成图,最重要的是要了解该部件在系统数据通路图中的作用,以此达成部件之间的连接,最后得到完整的系统数据图,以下是我们通过分析第二章中单周期专用CPU工作原理图所编译出来的一些系统部件(1)控制器CU控制指令信号的部件。如图31所示28图31控制器CU(2)ALU主要负责取指令后数据的处理。如图32所示图32ALU(3)EXPAND将16位的地址指令扩展成32位。如图33所示图33EXPAND(4)INSTMEMORY负责指令的存储。如图34所示图34存储器(5)寄存器堆将寄存器内的数据执行算术及逻辑运算;存于寄存器内的地址可用来指向内存的某29个位置。如图35

45、所示图35寄存器堆322单周期专用CPU的数据通路图通过上述的研究,我们在QUARTUSII平台上综合得出整个系统数据通路图,如图36所示图36系统数据通路图33运用QUARTUSII软件进行多周期专用CPU的设计多周期与单周期设计的不同之处指令执行周期不同,在单周期CPU中执行所花费的时间为一个;在多周期专用CPU中指令所花费的时钟周期数由指令类型决定。最主要的是CPU中控制器(CU)的不同在多周期CPU中由于多周期数据通路中指令执行有多个周期,所以要采用给予有限状态机来进行描述。30运用QUARTUSII软件进行多周期专用CPU设计的过程与单周期专用CPU设计过程大致相同,最后我们也将得到

46、相应的数据通路图。331多周期专用CPU内部部件的组成图(1)ALU实现相关指令的功能的计算,如图37所示图37ALU(2)EXTENDER32位的扩展,如图38所示图38EXTENDER(3)STATEMENTMACHINECTR有限状态机,由时钟控制产生不同的状态,不同的状态对应不同的控制信号,如图39所示图39STATEMENTMACHINECTR(4)YIWEI_32BITS实现四种移位算术/逻辑左/右移位,如图310所示31图310YIWEI_32BITS324设计的运行结果应用QUARTUSII软件进行系统数据通路图的设计,通过专用指令程序的执行验证CPU的正确性。在设计完成单周期

47、和多周期专用电路图后,我们首先要在已建立的工程目录下对电路图进行编译,编译成功之后在工程目录下新建一个VECTORWAVEFORMFIL文件,引入已经设置好的引脚,导入时钟信号,产生仿真波形图,以此啦验证CPU的正确性。41单周期专用CPU的运行结果411单周期专用CPU运行的指令ASSIGNRAM032H00000820ADD指令ASSIGNRAM132H20020004ADDI指令ASSIGNRAM232H00001820ADD指令ASSIGNRAM332H8C240000LW指令ASSIGNRAM432H20210004ADDI指令ASSIGNRAM532H00641820ADD指令AS

48、SIGNRAM632H2042FFFFADDI指令ASSIGNRAM732H10400001BEQ指令ASSIGNRAM832H08000003J指令ASSIGNRAM932HAC230000SW指令ASSIGNRAM1032H8C240000LW指令ASSIGNRAM1132H0800000BJ指令412指令产生的仿真波形图如图41所示33图41仿真波形图42多周期专用CPU的运行结果421多周期专用CPU运行的指令RAMDATA132B10000000000000000000000000000001/JIARAMDATA232B1000000000000000000000000000001

49、1/JIASIGANDUNSIG/JIANRAMDATA332B00000001000000100000001100000100/1234RAMDATA432B00000100000000110000001000000001/4321RAMDATA532B00000001000000100000001100000100/1234RAMMEM332B00000001000000100000001100000100/1234RAMINSTRUCTION032B00000000001000101111100000100000/ADDRAMINSTRUCTION132B00000000001000101111000000100001/ADDURAMINSTRUCTION232B00100000010111011111111111111111/ADDIRAMINSTRUCTION332B00100100010111001111111111111111/ADDIURAMINSTRUCTION432B00000000001000101101100000100010/SUBRAMINSTRUCTION532B00000000001000101101000000100011/SUBURAMINSTRUCT

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。