计算机组织与结构课程设计报告模板 201532修订版.docx





《计算机组织与结构课程设计报告模板 201532修订版.docx》由会员分享,可在线阅读,更多相关《计算机组织与结构课程设计报告模板 201532修订版.docx(56页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2022计算机组织与结构 课程设计报告题 目:5段流水CPU设计专 业:计算机科学与技术班 级:学 号:姓 名:电 话:邮 件:完成日期:指导教师: 课程设计任务书一、设计题目基于Logisim软件仿真平台的5段流水CPU设计实现二、设计内容设计模型机系统的总体结构、指令系统和时序信号。在对该模型机系统中的部件功能利用EDA软件的仿真功能进行仿真分析和功能验证的基础上,将部分电路下载到FPGA,并与适当的外围器件相配合,实现模型机的整机系统。要求所设计的整机系统能支持自动和单步运行方式,能正确地执行存放在主存中的程序的功能,对主要的数据流和控制流通过LED适时显示信息。三、 设计要求1) 支持
2、20条基本指令,具体见表1和表2;2) 支持5段流水机制,可处理数据冒险,结构冒险,分支冒险;3) 能运行由自己所设计的指令系统构成的一段测试程序,测试程序应能涵盖所有指令,程序执行功能正确。4) 能运行教师提供的标准测试程序,并统计执行时间。四、设计流程1) 根据课程设计指导书的要求,制定出设计方案;2) 画出自己所设计计算机系统的原理框图,分析所需要的控制信号以及这些控制信号的有效形式;3) 画出各指令的指令周期流程图和所需要的控制信号;4) 设计出实现指令功能的控制器;5) 调试、数据分析、验收检查;6) 课程设计报告和总结。五、成绩评定 成绩评定根据考勤、课程设计的过程、课程设计的效果
3、、课程设计报告质量等进行综合评定;其中设计过程和结果占70%,课程设计报告占30%;课程设计的成绩评定等级为不及格、及格、中、良好、优秀五级;对基本功能进行扩展或设计具有非常鲜明的特征和一定程度的创新,可根据实际情况加分。六、设计报告要求 课程设计报告主要内容包括:设计题目、设计目的、设备器材、设计原理及内容、设计步骤、遇到的问题及解决方法、设计总结、参考文献等。要求在适当位置配合相应的实验原理图、数据通路图、实验接线图等图表进行说明。总结部分主要写设计工作简介以及设计体会。应做到文理通顺,内容正确完整,书写工整,装订整齐。课程设计报告采用计算机组织与结构专用设计报告模板,A4纸双面打印。七、
4、时间安排 课程设计的总体时间为2周,具体安排如下:1) 第1天:到实验室布置任务和集中讲解。2) 第13天:学生查阅资料,开始方案设计。3) 第4天:中期进度检查,单周期CPU验收检查。4) 第6天:中期进度检查,理想流水线多周期CPU验收检查。5) 第10天:最终结果验收。6)八、主要参考文献1 DAVID A.PATTERSON(美).计算机组成与设计硬件/软件接口(原书第4版).北京:机械工业出版社. 2 David Money Harris(美).数字设计和计算机体系结构(第二版). 机械工业出版社3 秦磊华,吴非,莫正坤.计算机组成原理. 北京:清华大学出版社,2011年.4 袁春风
5、编著. 计算机组成与系统结构. 北京:清华大学出版社,2011年.5 张晨曦,王志英. 计算机系统结构. 高等教育出版社,2008年.华 中 科 技 大 学 课 程 设 计 报 告目 录注意目录的格式,系统自动生成的格式和这个有差异,生成目录后按这个格式排版,不要三级目录。1 课程设计概述章节形式,注意每章必须新起一页,具体方法是在上一章尾部增加一个分页符31.1 课设目的二级标题,具体可以可以用格式刷复制31.2 设计任务31.3 设计要求32 实验原理与环境42.1 实验原理42.2 实验环境43 总体方案设计给出方案概要设计,注意这章是设计,不是最终实现,请不要将最终的连线图,代码等放在
6、这一章53.1 需求分析53.2 硬件设计53.3 软件设计74 详细设计与实现撰写具体的实现细节,流程图,原理图,引脚连接等等,微程序实现,微指令实现,控存安排等等细节,上一章主要讲方案,这章描述最终实现细节。94.1 选用芯片94.2 硬件实现94.3 软件实现125 实验过程与调试175.1 仿真XXX如果使用了FPGA,实验结果必须有图和仿真曲线,否则不需要这部分175.2 可自行安排章节175.3 主要故障与调试175.4 功能测试验证系统运行正确的测试细节175.5 实验流程图描述本次课设进度安排与关键时间节点186 设计总结与心得196.1 课设总结196.2 课设心得主要讲课设
7、体会,收获,以及对课设的建议19参考参考文献必须规范,见后续说明文献20511 课程设计概述章节形式,注意每章必须新起一页,具体方法是在上一章尾部增加一个分页符请仔细阅读所有的批注,阅读理解后删除批注模板各个标题下面的内容仅是举例,作者应依照自己思想重写该部分内容1.1 课设目的二级标题,具体可以可以用格式刷复制计算机组成原理是计算机专业的核心专业基础课,讲解了计算机硬件构成以及各部分硬件的功能与实现。课程设计属于设计型实验,不仅锻炼学生简单计算机系统的设计能力,巩固专业知识,而且通过进行设计及实现,进一步提高分析和解决问题的能力,从根本上认识到了计算机工作的原理。本实验要求实现简单CPU的基
8、本功能,结合组成原理对计算机功能部件的讲解,分别进行考虑设计出符合基本要求的各个基本部件,然后对整个系统进行综合考虑,不断调整自己设计的功能部件,以实现能解决较为简单功能程序的CPU。在一步步设计CPU过程中,分步进行不同阶段的CPU设计,以帮助学生从简入深地了解整个计算机的硬件系统。由于计算机硬件系统的设计需要组成原理学到的许多知识,让学生学会理论联系实际,将学到的组成原理知识应用到实际设计中,增加学生的专业素养,提高专业认知。在设计过程中,由于实验需要设计的知识还包括课外的一切内容,因此需要学生自主学习,独自查阅资料,学会获取知识的能力。1.2 设计任务计算机系统设计的总体目标是设计模型机
9、系统的总体结构、指令系统和时序信号。所设计的主机系统能支持自动和单步运行方式执行一些较为简单功能的程序,例如老师给出的跑马灯程序,要求程序每一步的结果都和理论相符,最终的结果与理论结果完全正确。并且要在适当的位置,给出程序运行过程中电路各个功能的执行参数,例如电路跳转的次数,以及不同跳转指令的执行次数等,并能给出电路各个显示部件、寄存器以及存储器的数值结果,以确定功能是否执行正确,并能帮助设计者调试自己的电路。具体设计任务如下:1. 单周期 CPU 设计与实现:要求在一个周期中实现CPU单个功能的电路,能支持 20 条基本指令,能运行自己为电路设计的简单的并能涵盖所设计的所有基本指令的功能程序
10、,能运行老师给出的标准程序,能监控程序的执行过程,并能得出正确结果。2. 理想流水线的多周期 CPU:将以上所述设计的单周期CPU进行改变,将适当的部件组合进行组装,设计成为多周期CPU电路,形成将指令过程分成 5 个阶段 有取指令IF、译码器ID、控制器EX、访存部件MEM以及写回部件WB的五段流水线电路,不同阶段之间设置缓冲接口部件,构建各阶段之间的接口部件,接口定义尽可能简化,流水线应向后续段传递数据信息,控制信息,反馈信息,后续部件对数据的加工处理依赖于前阶段传递过来的信息。ID段译码生成该指令的所有控制信号,控制信号将逐段向后传递(越到最后阶段,信号越少),后续部件控制信号不再单独生
11、成。注意单周期 CPU 中的控制器是可以在ID段复用的。3. 插入气泡式的冒险处理:由于存在数据相关与分支相关,如果要实现功能完整的CPU电路,需要分支相关和消除数据相关,采用插入气泡的方式可以解决数据相关性和分支相关性,对接口进行相应的修改,在分支相关和数据相关时对CPU插入气泡,保证流水线功能的正确性。4. 数据重定向机制的流水线:采用数据重定向到方式也可以实现消除数据相关,选择在适当的阶段完成数据重定向,在适当的阶段进行检测。确定数据重定向的数据来源,以及不同指令需要的数据不同,因此需要如何区分不同的数据对象,分析出采用数据重定向机制后由于Load-Use冲突和分支相关性,因此还需要插入
12、气泡。5. 分支目标缓冲器(BTB)结构的动态分支预测:由于指令的PC操作部件在取指令IF阶段,因此选择在这个阶段进行动态分支预测,考虑如何预测分支相关性,以及预测结果对实际分支指令的执行有无影响并造成的各种影响。限定BTB缓冲区大小为4,可容纳4条分支指令,思考如何进行全相联比较,多余用4条分支指令时LRU算法淘汰,考虑用何种结构用硬件实现。1.3 设计要求根据组成原理理论课程所学的知识,设计出简单计算机系统的总体方案,结合各单元实验积累和课堂上所学知识,选择适当芯片,综合考虑各芯片功能结构,设计简单的计算机系统,具体要求如下:(1) 根据课设指导书的要求,制定设计方案。由于实验要求先要设计
13、出单周期CPU电路,然后再实现理想流水线的多周期CPU,再完成插入气泡式的冒险处理,再完成数据转发式的数据冒险处理,最后实现动态分支预测的分支冒险处理。分析上诉实验过程,可以知道,5段流水线的多周期CPU是在单周期CPU电路的基础上实现的,而插入气泡、数据转发以及分支预测又是在理想流水线上实现的,还有数据转发电路中也存在着插入气泡的功能需求,因此可以知道每一个实验都是需要在上一个实验完成之后才可以进行,不然实验便会进入处处碰壁的状态,在许多个十分麻烦的困难中无法走出来。实验首先是需要设计一个单周期的CPU电路,而整个实验的设计平台是Logisim,因此需要仔细了解设计平台中给出的各个功能部件,
14、比如各个存储器接口的功能,存储器接口的功能使用如果十分巧妙,会使得整个电路的功能十分容易得到实现。然后结合组成原理的理论知识,考虑单周期CPU的设计,由于整个CPU分为取指令IF、译码ID、执行EX、访存MEM以及写回WB五个功能部件,因此可以分别对5个功能部件进行分开设计。先只针对取指令部件,需要有一个PC+1的过程,但是由于存在指令PC的跳转,因此需要一个选择端对下一个PC进行选择。下来再考虑译码阶段,由于单周期CPU需要实现20条不同功能的指令,指令的格式一共有3种,因此在进行译码的时候,需要将整个指令分为3种不同的译码,并根据以后需要实现的功能,例如写入寄存器的选择,进行功能的扩展。然
15、后是执行阶段,由于实际中的CPU只有一个计算器,因此在整个电路中应该尽量少使用计算器中存在的一些计算功能,在执行阶段中,有许多需要对译码器传来的指令进行相应功能的实现,因此应该保持一种尽量减少计算部件的思想设计电路,并且实际的CPU需要考虑耗能问题,因此电路也尽量采用以节约电能的思想设计电路,采用这两种设计思想设计电路,将译码器传来的指令进行相关的操作已形成不同的执行功能,传递到不同的部件中去。然后设计访存MEM阶段,由于这一个阶段只需要将控制阶段中已经形成的功能信号传递到数据存储器,然后数据存储器RAM根据传递过来的指令信号,进行相关的数据写入或读取功能。最后是数据写回的阶段,这一阶段只需要
16、将计算器或者数据存储器中取出的数据根据译码器选择适当的写入寄存器写入寄存器组即可。在5个功能部件都分析完毕之后,还需要考虑到各个功能实现部件的设计,比如寄存器组的设计,需要综合考虑需要实现的功能,以设计相应的寄存器组。接下来考虑理想流水线的多周期电路的实现,由于上一步是实现单周期的CPU,因此并没有将各个功能部件进行相应的封装,有时候为了方便可能将两个功能部件连接在一起,因此这一个只需要将每一个功能部件分离开来,将每一个功能部件控制信息的传递使用接口来实现,然后将每一个已经封装好了的功能部件按序排列,在每一个功能部件之间设置一个锁存器,接收上一个部件传递过来的信息并在下一个时钟到来的时候讲信息
17、传递到下一个功能部件中实现多周期的CPU控制。再实现插入气泡式的冒险处理,由于这一阶段需要实现消除数据相关和分支相关,因此需要综合考虑整个电路的设计。分支相关的消除较为简单,只要在控制器中将指令进行分析,然后根据电路是否跳转,来插入气泡,使得在电路中插入一个NOP指令,将PC下一个地址转换成需要跳转的地址即可,就可以实现分支相关。而消除数据相关稍微要复杂一些,当然并不是只要实现上诉功能就可以完成,电路还需要综合考虑指令的类别,由于我自身考虑设计的电路是在ID阶段对两条相邻的指令进行比较,因此在需要冒泡的时候,需要暂停PC的自增操作,阻止IF/ID段的锁存器继续写入数据,并对ID/EX段的锁存器
18、进行清空处理,只有这样,才可以实现不改变程序进行并达到数据相关消除的目的。然后实现数据转发的数据冒险处理,在这一阶段也需要将上一条指令与当前指令进行比较,在满足数据相关的情况下,将下一阶段或者下二阶段已经计算出来的或者访存取出的数值直接向前传递给计算器的两个操作数之一,即可实现数据转发的方式。但是在这一阶段需要综合考虑指令的类别,以控制传递回来的数值的确是当前计算所需要的数值,而不是其他寄存器数值或者无赶紧要的数值。由于分支相关在上一阶段已经解决,这一阶段又消除了数据冒险,看起来好像已经实现了整个电路,但是我们需要考虑到LOAD指令的特殊性,由于它必须进入第四阶段进行访存控制,将数值取出才是当
19、前正确的数值,然后这已经是一个周期中末期了,然后第三阶段EX需要数值马上进行相应的操作数传入,因此这里就存在了数据相关性,因此采用的解决办法是在存在上一条指令是LOAD指令的时候,依旧采用的是冒泡数据冒险处理,通过插入气泡的方式暂停一个周期,等到取出的数据到达了WB阶段的时候,在传入到EX阶段,这样便可以实现在EX阶段的初期就将需要进入运算器的操作数传递到EX阶段。最后实现动态分支预测的分支冒险处理,在这一阶段因为需要对PC地址进行操作,而这一个操作的过程是在IF阶段进行的,因此考虑动态分支预测利用IF阶段对PC+1的操作来实现,由于动态分支预测采用的是假定每次分支预测都是正确的,但是电路中肯
20、定存在预测错误的可能,因此需要设定一个判定位。由于在程序的进行过程中,不断有新的跳转指令PC的写入,而实验又要求限定BTB缓冲区大小为4,可容纳4条分支指令,分支地址要进行全相联比较,这时候就需要烤炉多余4条分支指令时如何淘汰的问题,实验要求用硬件实现LRU算法来对分支指令PC进行淘汰,而LRU的实现最好的结构就是栈的结构,新到来的分支指令PC放到栈顶,其余的数值向后转移,这样最不常用的指令地址PC就被排除,因此用硬件实现LRU算法同等地可以表示为用硬件实现LRU栈的结构。(2) 画出自己所设计计算机系统的原理图和器件连接头单周期CPU电路所有的电路的功能都是由一个周期驱动的,因此当一个周期完
21、成的时候,电路的一条指令就执行完毕,因此整个电路从取指到最后的写回都是直接连接的,而没有存在寄存器滞后周期的存在。单周期CPU电路如图2.1: 控制器(包括显示等功能) 数据 存储器 RAM计 算 器 指令 存储器 ROMPC图 1.1 单周期CPU电路多周期五段流水线电路将整个CPU功能分为5个部分,分为IF取指令、ID译码、EX执行、MEM访存以及WB写回5个阶段,其中每一个阶段有一个周期驱动,因此一条指令的执行完成就要5个周期才可以实现。其中由于数据冲突以及结构冲突的存在,因此还需要在理想5段流水线上添加上一些处理冲突的功能部件。在五段流水线中,由于数据传递的需要,因此还需要在每一个阶段
22、的电路中间加入锁存器,以便对整个5段流水线数据处理进行控制。多周期5段流水线电路:分 支预 测MEM/WBIF/MEMIF/IDID/EXWBEXMEMIFID插 入 气 泡数 据 重 定 向图 1.2 多周期5段流水线CPU电路(3)设计分析概述由于本次课程设计需要设计两个截然不同的CPU电路,一种是单周期CPU电路,要求整个电路在一个时钟的驱动下完成所有CPU的工作,由于电路本来就需要时钟驱动,又由于实验的设计平台是在理想的状态下实现的,因此,只要把握住电路在每一次时钟跳变的时候,都进行了正确的操作就可以保证CPU电路的实现。第二个需要实现多周期的CPU电路,需要利用流水线的思想构建CPU
23、的工作流程,这里只需要转换思想,将每一个阶段的工作电路看成一个单周期的功能电路,然后对第一步设计的电路进行适当的修改,就可以实现需要的功能。然后针对需要考虑的处理冲突的功能电路,在五段流水线电路中进行相应的信号的传送,处理信息后将处理结果控制信号传到控制的端口对电路进行控制。本实验其他的设计要求及其他注意事项为:1、本课程设计的内容基本无法在一本教科书中弄清楚,请大家按参考文献阅读。u2、在实现CPU时,你可以使用任何logisim内建的电路组件。u3、指令ROM和数据RAM必须在main电路中可见,不能封装在子电路中。 4、显示模块应该在主电路中可见。u5、 寄存器也应该想办法在主电路中可监
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机组织与结构课程设计报告模板 201532修订版 计算机 组织 结构 课程设计 报告 模板 201532 修订版

限制150内