计算机组原课设.doc
《计算机组原课设.doc》由会员分享,可在线阅读,更多相关《计算机组原课设.doc(48页珍藏版)》请在咨信网上搜索。
1、2024计算机组织与结构 课程设计报告题 目:5段流水CPU设计专 业:计算机科学与技术班 级:学 号:姓 名:电 话:邮 件:完成日期:指导教师: 课程设计任务书一、设计题目基于Logisim软件仿真平台的5段流水CPU设计实现二、设计内容设计模型机系统的总体结构、指令系统和时序信号。在对该模型机系统中的部件功能利用EDA软件的仿真功能进行仿真分析和功能验证的基础上,将部分电路下载到FPGA,并与适当的外围器件相配合,实现模型机的整机系统。要求所设计的整机系统能支持自动和单步运行方式,能正确地执行存放在主存中的程序的功能,对主要的数据流和控制流通过LED适时显示信息。三、 设计要求1) 支持
2、20条基本指令,具体见表1;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课程设计概述21.1课设目的21.2设计任务21.3设计要求32实验原理与环境52.1实验原理52.2实验环境63总体方案设计73.1构建单周期CPU73.2可支持理想流水线的多周期CPU设计124详细设计与实现164.1构建单周期CPU164.2可支持理想流水线多周期CPU245实验过程与调试325.1测试用例和功能测试325.2性能分析395.3主要故障与调试395.4实验流程426设计总结与心得436.1课设
6、总结436.2课设心得43参考文献44441 课程设计概述1.1 课设目的计算机组成原理是计算机专业的核心基础课。本课程力图以“培养学生现代计算机系统设计能力”为目标,贯彻“强调软/硬件关联与协同、以CPU设计为核心/层次化系统设计的组织思路,有效地增强对学生的计算机系统设计能力的培养”。课程设计是学完该课程并进行了多个单元实验后,综合利用所学的理论知识,并结合在单元实验中所积累的计算机部件设计和调试方法,设计出一台具有自己指令系统的简单计算机系统。所设计的系统能在基于FPGA的实验平台或Logisim仿真平台上运行一段程序,通过检查程序结果的正确性来判断所设计计算机系统正确性。课程设计属于设
7、计型实验,不仅有助于学生增进对计算机组成相关知识的认知和理解,锻炼学生设计简单计算机系统的能力,而且通过进行主机系统底层电路的实现、故障分析与定位、系统调式等环节的锻炼,有助于进一步提高学生分析和解决问题的能力。1.2 设计任务计算机系统设计的总体目标是设计模型机系统的总体结构、指令系统和时序信号。所设计的主机系统能支持自动和单步运行方式,能正确地执行存放在主存中的程序的功能,对主要的数据流和控制流通过LED显示器适时显示信息。尽可能利用EDA软件或仿真软件对模型机系统中各部件进行仿真分析和功能验证。具体设计任务如下:1) 支持20条基本指令,具体见表1;2) 支持5段流水机制,可处理数据冒险
8、,结构冒险,分支冒险;3) 能运行由自己所设计的指令系统构成的一段测试程序,测试程序应能涵盖所有指令,程序执行功能正确;4) 能运行教师提供的标准测试程序,并自动统计执行时间;5) 能自动统计各种冒险冲突次数,动态预测流水线能自动统计预测成功次数;表1 指令格式#指令1512111098765320指令指令功能1or0rsrtrd00or$rd=$rs|$rt2and0rsrtrd01and$rd=$rs&$rt3add0rsrtrd02add$rd=$rs+$rt4sub0rsrtrd03sub$rd=$rs-$rt5sllv0rsrtrd04sllv$rd=$rs$rt7srav0rsrt
9、rd06srav$rd=$rs$rt8slt0rsrtrd07slt$rd=($rs$rt)?1:09DISP1rsrtimmediate-uDISPDISPimm=$rs10lui2rsrtimmediate-ului$rt=imm?19jump11jump addressjumpjump20halt120halthalt1.3 设计要求根据理论课程所学的知识,设计出简单计算机系统的总体方案,结合各单元实验积累和课堂上所学知识,选择适当芯片,设计简单的计算机系统,具体要求如下:1) 根据课设指导书的要求,制定设计方案;2) 画出自己所设计计算机系统的原理框图,分析所需要的控制信号以及这些控制
10、信号的有效形式;3) 画出各指令的指令周期流程图和所需要的控制信号;4) 选择适当元器件,设计出实现指令功能的微程序控制器或硬布线控制器;5) 调试、数据分析、验收检查;6) 课程设计报告和总结;2 实验原理与环境2.1 实验原理本次实验与之前的单元实验室层层推进的,而本次实验过程也是逐步推进。在前几次单元实验的基础上,结合学过的知识,不难设计出单周期CPU的逻辑电路图。单周期CPU由PC、指令存储器IM、寄存器堆RF、运算器ALU、数据存储器DM五个主要功能部件组成。其电路原理图如图2.1。图2.1 单周期CPU原理图在单周期CPU的基础之上,完成支持理想流水线的多周期CPU的设计。将指令过
11、程分成5个阶段IF、ID、EX、MEM、WB,每两个阶段之间设置缓冲接口部件,即锁存器,构建各阶段之间的接口部件,接口定义尽可能简化,流水线应向后续段传递数据信息、控制信息、反馈信息,后续部件对数据的加工处理依赖于前阶段传递过来的信息。ID段译码器生成每条指令的所有控制信号,控制信号逐段向后传递,后续部件控制信号不再单独生成。由于多周期CPU不是线性的,指令执行过程中可能会产生一些由于相关性造成的冲突,包括数据相关、结构相关、分支相关、Load-Use等等,所以在设计多周期CPU的过程中还要考虑设计能够消除上述相关性的模块。除此之外,还要考虑到效率问题。根据统计,分支指令占所有指令相当大的比例
12、,若每次执行分支指令时都要判断分支结果、计算分支目的地址,效率想必比较低下。为此,需在IF段的PC和指令存储器之间增加分支预测模块,每生成一个新的PC就和分支预测模块中存储的PC作比较,若为分支指令地址,则直接取出对应的分支指令的目的地址,这样节省了判断分支结果和计算分支目的地址的时间,提高了整个CPU的效率。多周期CPU的电路原理图如图2.2。图2.2 多周期CPU原理图2.2 实验环境配置了java环境的计算机操作系统(windows 7、windows 8等均可),Logisim汉化版。 Logisim是一款基于Java的应用程序,可运行在任何支持JAVA环境的平台,方便学生来学习设计和
13、模仿数字逻辑电路。Logisim中的主要组成部分之一就在于设计并以图示来显示CPU。当然Logisim中还有其他多种组合分析模型来对你进行帮助,如转换电路,表达式,布尔型和真值表等等。同时还可以重新利用小规模的电路来作为大型电路的一部分。3 总体方案设计3.1 构建单周期CPU构建单周期CPU的目的是为了熟悉取指令、译码、读写寄存器堆、运算、读写RAM等,为后续5段流水型多周期CPU的设计打好基础。3.1.1 总体设计本次单周期CPU的构建采用的是自顶向下的设计思路。先根据单周期CPU所需要实现的功能,实现这些功能需要执行哪些操作,将其划分为取指令、译码、产生控制信号、读寄存器堆、运算、访存、
14、写回等功能模块,每个功能模块负责其中的一步操作。对于每一个功能模块,根据所要执行的操作,在Logisim软件平台上选择适当的电路部件搭建正确的逻辑电路并进行封装(封装尺寸尽可能小,为后续工作节省空间)。所有模块的逻辑电路搭建封装完成后,根据每个模块所执行的操作在整个指令执行流程中的顺序,将所有模块连接在一起,然后编写一段程序来检验单周期CPU的正确性。单周期CPU的总体结构图如图 3.1所示。图 3.1 单周期CPU总体结构图3.1.2 主要功能部件完整的单周期CPU电路由程序计数器PC、指令存储器ROM、指令译码器DECODE、控制中心CONTROL、寄存器堆Reg、运算器ALU、数据存储器
15、RAM组成。具体设计思路如下。1. 程序计数器PC程序计数器的输出PC有三种选择:当前PC+1、jump指令的目的地址、bne(beq、bgt)指令的目的地址。这三个地址作为一个数据选择器MUX的输入端,数据选择端信号来自控制中心CONTROL产生的控制信号PC_OP,数据选择器的输出端接一个寄存器存放PC,然后将寄存器的输出端输出的数据作为指令的地址。2. 指令存储器ROM指令存储器ROM只由一个地址位宽和数据位宽均为16的ROM组成。3. 指令译码器DECODE指令译码器DECODE的输入是从ROM中取出的指令,使用一个分离器将指令分成16位,再根据指令格式表的要求将对应的bit位合成为r
16、s、rt、rd、offset等。4. 控制中心CONTROL控制中心的输入是每条指令的OP字段和funct字段。由于R型指令的操作选择字段是funct,I型和J型指令的操作选择字段是OP,为了节省硬件成本和一些意想不到的错误,所以想方设法产生一个字段可以对R、I、J三种指令的操作作出选择。此外,以每条指令的OP字段作为解码器的选择端,这样当执行某条指令时,OP字段便会选择解码器的对应输出端为1,其余输出端为0;通过观察分许20条基本指令的特点,将解码器输出端的“0”、“1”信号通过适当的逻辑联系在一起生成新的控制信号,用于控制后续模块的正常工作。5. 寄存器堆Reg寄存器堆Reg由8个寄存器组
17、成,第二列的4个寄存器主要是为了防止电路震荡,因为在单周期CPU中,同一时刻对于同一个寄存器的读写操作可能会造成冲突。涉及到寄存器堆的读操作,需要考虑是要读哪个寄存器。需要设置两个位宽为2的字段R1(即rs)、R2(rt)分别选择读出哪两个寄存器的值作为ALU的两个源操作数,同时需要设置一个使能端控制位reg_r,该控制位由控制中心CONTROL产生。涉及到寄存器堆的写操作,需要考虑是要写入哪个寄存器。需要设置一个位宽为2的字段W(即rt或者rd,因指令不同而不同)来选择向哪个寄存器写入数据。以W作为一个解码器的选择端,选择对应输出端口输出“1”,其余输出端口输出“0”,用这四个输出分别控制四
18、个寄存器的使能端;同时,解码器也需要一个使能控制位reg_w,否则每条指令都有权限向寄存器中写入数据,该控制位也由控制中心CONTROL产生。6. 运算器ALU运算器ALU主要执行算术逻辑运算。运算器有两个输入一个输出,分别表示两个源操作数和一个目的操作数。运算部件由与门、或门、加法器、减法器、移位器(逻辑左移、逻辑右移、算术右移)、比较器组成。两个源操作数均经过这些运算器运算后得到八个结果,然后用一个数据选择器从中选择一个结果作为输出,数据选择器的数据选择端为ALU_OP,由控制中心CONTROL产生。7. 数据存储器RAM数据选择器由一块RAM芯片组成,地址位宽和数据位宽均为16,采用分离
19、的加载和存储数据接口。3.1.3 构造R型指令R型指令包括指令表中的前8条指令,其指令格式和实现的功能如表2所示。表2 R型指令格式表指令1512111098765320指令功能or0rsRtrd00$rd=$rs|$rtand0rsRtrd01$rd=$rs&$rtadd0rsRtrd02$rd=$rs+$rtsub0rsRtrd03$rd=$rs-$rtsllv0rsRtrd04$rd=$rs$rtsrav0rsRtrd06$rd=$rs$rtslt0rsRtrd07$rd=($rs$rt)?1:0这八条R型指令的OP字段和35位均为0,指令功能由指令的funct字段(02)决定,rs(1
20、011)表示第一源操作数的寄存器号,rt(89)表示第二源操作数的寄存器号,rd(67)表示目的操作数的寄存器号。R型指令主要负责与、或、加、减、移位等基本的算术逻辑运算,后面I型指令涉及到的算术逻辑运算也由这八条R型指令功能构成的ALU执行。3.1.4 构造I型指令I型指令是立即数型指令,主要包括一些数据传输、分支、立即数指令,其指令格式和实现的功能如表3所示。表3 I型指令格式表指令1512111098765320指令功能lui2rsRtimmediate-u$rt=imm?这些I型指令的功能由每条指令的OP字段决定。涉及到基本算术逻辑运算的操作由ALU完成。指令的07位为立即数或者分支偏
21、移量。若是双目运算,则将rs的内容和立即数字段的值分别作为第一操作数和第二操作数,结果送rt指定的寄存器中;若是Load/Store指令,则将rs的内容和立即数字段的值经符号位扩展后的内容相加作为Load/Store的存储单元地址;若是分支指令,则对rs和rt寄存器中的数据进行操作码规定的运算,并根据运算的结果决定是否转移。当转移发生时,转移的目标地址采用相对寻址方式获得,即将PC的内容和立即数字段经符号位扩展后的内容相加得到。3.1.5 构造J型指令J型指令的格式如表4所示。表4 J型指令格式表指令1512111098765320指令功能jump11jump addressjumpJ型指令主
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算 机组 原课设
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。