版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
五段流水CPU设计谭志虎2015-3
-2--3-本章主要内容课程设计任务课程设计实验环境课程设计进度安排课程设计评定课程设计路线图-4-课程设计任务在logisim平台或FPGA开发板设计一款支持特定指令系统的5段流水CPU,可运行数据相关,分支相关的测试程序。支持20条基本指令支持5段流水机制,可处理数据冒险,结构冒险,分支冒险;能运行自己编写的测试程序,测试程序应能涵盖所有指令,程序执行功能正确。能运行教师提供的标准测试程序。具有自动统计功能,自动统计执行周期,不同冒险冲突次数,动态预测成功次数。-5-课程设计实验环境Logisim后续路线图均以logisim为例FPGA开发板鼓励方案,同等目标增加15分-6-进度安排课程设计的总体时间为2周,具体安排如下:第1天:到实验室布置任务和集中讲解。第1~3天:学生查阅资料,开始方案设计。第4天:中期进度检查,单周期CPU验收检查。第6天:中期进度检查,理想流水线多周期CPU验收检查第10天:最终结果验收。-7-课程设计评定评定成绩根据考核、课程设计的过程、课程设计的效果、课程设计报告的质量等几部分组成;评分标准为设计过程和结果占70%(含考勤),报告部分占30%;对基本功能进行扩展或设计具有非常鲜明的特征和一定程度的创新,可根据实际情况加分。-8-设计成果评分完成单周期CPU设计与实现,测试程序运行正确:40分完成理想流水线的多周期CPU,测试程序运行正确:50分完成插入气泡式的冒险处理,测试程序运行正确:55分完成数据转发方式的数据冒险处理,测试程序运行正确:60分完成动态预测方式的分支冒险处理,测试程序运行正确:70分完成特色功能扩展的,根据实际情况酌情加分同等目标FPGA方案加15分,总分不超过70分1班:秦磊华教授2班:谭志虎副教授3班:胡迪青副教授ACM班:吴非副教授-9-课程设计报告要求报告规范,清楚表述设计思想、设计思路、设计过程、设计结果,文档资料完整,书写和画图规范:30分满足课程设计报告格式要求,能较清楚表述设计思想、设计思路、设计过程、设计结果,文档资料较完整,书写和画图较规范:20分课程设计报告不规范,内容不完整,不能体现课程设计原理、方法和自己所做的工作:10分课程设计报告严重不规范、内容空洞,完全不能体现课程设计的内容、书写潦草:5分课程设计报告抄袭或被抄袭
0分-10-课程设计纪律要求
独立完成,抄袭,被抄袭同等待遇严格考勤周一~周五8:00-11:3014:00-17:30迟到,早退按缺勤处理验收完成之前仅允许4次缺勤无需请假每日提交工作进度通过金山快盘协作填写表格每日24:00之前必须提交当日进度,未提交按缺勤处理每日记录当日故障,解决方法(课设报告中),否则不验收在线交流平台tower
-11-课程设计路线图构建单周期CPU可支持理想流水线多周期CPU增加流水冲突检测器增加流水冲突处理机制气泡机制数据重定向分支预测指令格式#指令15~1211~109~87~65~32~0指令指令功能1or0rsrtrd00or$rd=$rs|$rt(5~3位无用)2and0rsrtrd01and$rd=$rs&$rt3add0rsrtrd02add$rd=$rs+$rt4sub0rsrtrd03sub$rd=$rs-$rt5sllv0rsrtrd04sllv$rd=$rs<<$rt6srlv0rsrtrd05srlv$rd=$rs>>$rt7srav0rsrtrd06srav$rd=$rs>>$rt算术右移8slt0rsrtrd07slt$rd=($rs<$rt)?1:09DISP1rsrtimmediate-uDISPDISP[imm]=$rs10lui20rtimmediate-ului$rt=imm<<811ori3rsrtimmediate-uori$rt=$rs|imm12andi4rsrtimmediate-uandi$rt=$rs&imm13addi5rsrtimmediate-saddi$rt=$rs+imm14lw6rsrtimmediate-slw$rt=MEM[$rs+imm]15sw7rsrtimmediate-sswMEM[$rs+imm]=$rt16beq8rsrtoffset-sbeqbeq=?17bne9rsrtoffset-sbnebne!=?18bgt10rsrtoffset-sbgtbgt>?19jump11jumpaddressjumpjump20halt120halthalt(时钟暂停)-13-单周期CPU设计一般路线图构建主要功能部件PC指令存储器IM寄存器堆RF运算器ALU数据存储器DM地址转移逻辑NPC控制器logisim中选用适当部件完成前5个部件构造第一条指令选取最简单的R型指令按指令功能构建数据通路,控制信号logisim中连接,测试通过增加其他指令,修改增加线路,逐条调试跳转到上一步,直到所有指令设计完成。主要功能部件,封装实现-15-指令存储器AddrData寄存器堆ReadReg1#WriteReg#ReadReg2#Reg1Reg2Writedata数据存储器AddrReadDataWriteData格式解析IRsRtRdPCABZALU构建主要功能部件PC指令存储器IM寄存器堆RF运算器ALU数据存储器DM具体封装实现,考虑清楚具体控制信号,输入输出
考虑后续流水线布局,功能部件封装尺寸不能过大add$rd,$rs,$rt$rd=$rs+$rt-16-指令存储器AddrData寄存器堆ReadReg1#WriteReg#ReadReg2#Reg1Reg2Writedata数据存储器AddrReadDataWriteData格式解析IRsRtRdPCABZALUaddi$rt,$rs,12$rt=$rs+12-17-指令存储器AddrData寄存器堆ReadReg1#WriteReg#ReadReg2#Reg1Reg2Writedata数据存储器AddrReadDataWriteData格式解析IRsRtRdIMMPCABZALU扩展器10OMUX01OMUXLw$r0,1($r1)$r0=Mem[($r1)+1]-18-指令存储器AddrData寄存器堆ReadReg1#WriteReg#ReadReg2#Reg1Reg2Writedata数据存储器AddrReadDataWriteData格式解析IRRsRtRdIMMPCABZALU01OMUX扩展器01OMUX10OMUX转移部件PCNPCoffset设计基本步骤封装主要功能部件
构建基本数据通路
编写测试程序,熟悉汇编器调试R型指令
调试I型指令
调试J型指令
封装控制器
测试标准测试程序
-19-完整单周期MIPS处理器示意图-20-注意事项本课程设计的内容基本无法在一本书里面弄清楚,建议大家阅读参考文献。在实现CPU时,你可以使用任何logisim内建的电路组件指令ROM和数据RAM必须在main电路中可见,不能封装在子电路中。显示模块应该在主电路中可见。寄存器也应该想办法在主电路中可监测。主要部件之间还是需要适当连线,隧道工具不能过度使用,要能看清楚各部件之间的连接关系。-21-注意事项尽可能的使用标签工具去注释你的电路,包括控制信号,数据通路,显示模块,总线等,这会让你的电路更加容易调试!注意标签以及注释的命名规范,过长的命名都会对后续的画图连接造成影响。Logisim中可以将不同的模块用不同的颜色区分,建议用颜色区分各接口部件和关键模块。接口部件封装尽可能封装的长一点,否则控制线多了以后可能不方便布线。-22-注意事项PC,IR最好一直传递到最后一级,这样方便观测流水线运行的状况。流水线各级是否产生气泡可以用LED指示灯显示,方便观察流水线运行状况。各里程碑版本经过充分测试后,备份后再开新的分支进行新的开发,以避免新版本无法开发成功,老版本又检查不了的悲剧。-23-方案不是唯一的,相信自己的方案是最好的!目标要定在打通关,这样结果才会是最好的!-24-理想流水线所有对象均通过同样的部件(阶段)不同阶段之间无共享资源各段传输延迟一致(取最慢的同步)进入流水线的对象不受其他阶段的影响适合工业流水线,指令处理不适合(相关性大)绿色部件为各段间接口,各段间通过接口传递什么?待加工的数据(处理什么)控制数据加工的控制信号、反馈信号(如何处理)否则后段无法对数据进行处理-25-IDEXMEMWBIF可支持理想流水线的多周期CPU消除通路中结构相关指令数据存储器分离寄存器堆写入和读出过程分离(先写后读,下跳沿写)将指令过程分成5个阶段IFIDEXMEMWB不同阶段之间设置缓冲接口部件构建各阶段之间的接口部件(本质是寄存器)流水线通过接口传递与指令相关的数据信息,控制信息,反馈信息后续部件对数据的加工处理依赖于前阶段传递过来的信息ID段译码生成该指令的所有控制信号控制信号向后传递后续部件控制信号不再单独生成单周期CPU实现中的控制器在ID段复用单周期改五段流水-27-5段流水控制信号传递-28-接口定义(仅供参考,并不一定准确)IFIF/ID数据IRIDID/EX数据IRWriteReg#AB控制ALUOP、IMM、ALUSrc、beq,bne,jmpMemReqMemWriteRegWriteMemReadEXEX/MEM数据IR
WriteReg#AluResultRt控制MemReqMemWriteRegWriteMemReadMEMMEM/WB数据WriteReg#WriteBackData控制RegWritePCIR建议各段均传递,便于观察流水线-29-指令相关检测(冲突冒险检测)ID段进行检测不同类型指令有区分R型指令涉及两个源操作数Rs,RtI型指令涉及一个或两个源操作数Rs(Lui无相关)其他分支指令(Beq,Bne,Bgt)涉及两个源操作数Rs,RtJ型指令(无相关,直接产生分支相关信号)相关数据需与后续段中的结果寄存器编号比较EX.WriteReg
Mem.WriteRegWB.WriteReg???相关检测器封装(仅供参考)输入(?)Rt,Rs,EX.WriteReg
Mem.WriteRegWB.WriteReg指令Opcode与Func输出数据相关信号分支相关信号-31-气泡插入分支相关修改PC的值向前给出流水线阻塞信号清除已经取出的无用指令数据相关向后插入气泡向前给出流水线阻塞信号让IF段暂停,信息保持不变让ID段暂停,信息保持不变避免当前指令被新指令取代数据重定向重定向控制器放在那个阶段?ID?EX?重定向数据来源?由哪个部件给出?采用数据重定向后是否还需要插入气泡?Load-Use冲突如何解决?数据重定向流水控制示意图-34-全冒险处理机制的流水CPU-35-动态分支预测什么阶段进行动态分支预测?如何预测?预测结果对实际分支指令的执行有无影响,何种影响?限定BTB缓冲区大小为4,可容纳4条分支指令如何进行全相联比较,多余4条分支指令时如何淘汰。LRU算法如何用硬件实现-36-单周期CPU设计一般路线问题迭代式设计模式,复杂度高,开发周期长,正确率低新增不同类型指令可能会修改全图复杂度高,图的布局对开发有较大影响错误易传递,修复代价高,修改错误可能导致图的大量变更难以追溯,设计过程难以复现每增加一条指令备份一个版本需要工程化的方法-37-单周期CPU设计工程化路线图选择指令系统构建主要功能部件PC指令存储器IM寄存器堆RF运算器ALU数据存储器DM立即数扩展器地址转移逻辑NPC控制器logisim中选用适当部件完成前5个部件一次性构建所有数据通路(各部件之间数据流动)5大功能部件之间的连接关系不同指令数据通路不一样指令规模越大,连接越复杂,难度提升采用工程化的方法一次性解决构建控制器、地址转移逻辑NPC等部件连接,控点连接,调试构建数据通路工程化方法指令系统数据通路表格描述各部件之间的连接关系记录各部件输入端数据来源忽略控制类信号仅保留数据类信号-39-主要功能部件输入来源表单条指令数据通路构建方法Step1:阅读单条指令,改写成RTL根据RTL功能填写对应指令的数据通路表如发现新增需求,进入Step2Step2:新增需求的处理合并至已有部件(修改已
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024轨道车辆座椅动态舒适性试验技术规范
- 培训课件 -OD组织发展全景图之组织激活
- 大理2024年04版小学4年级下册英语第二单元测验卷
- 农场成本核算-记账实操
- 北京市顺义区2023-2024学年八年级下学期期末英语试题
- 第三单元名著导读《儒林外史》教学设计-2023-2024学年统编版语文九年级下册
- 2023年乙二醇辛醇糠醇资金需求报告
- 三维数字内容制作-三维动画制作流程规范
- 1.2.2 反比例函数的性质 同步练习
- 有关读书短篇演讲稿(3篇)
- 手机游戏独家代理协议模板
- 2023年陇南康县招聘专职社区工作者考试真题
- 2024年审计工作总结(六篇)
- 福建复旦大学附属中山医院厦门医院招聘编外真题
- 中国在线亲子游行业产业链全景图谱、领先企业分析及投资前景预测报告
- 民营猪肉销售合同模板
- 防性侵《学会自我保护,远离人身侵害》讲话稿
- 2024年新华社招聘应届毕业生及留学回国人员历年高频难、易错点500题模拟试题附带答案详解
- 2024-2030年中国腐植酸行业竞争格局与运行形势分析报告
- 篮球 原地运球(课件)-2024-2025学年人教版体育与健康八年级全一册
- 2024年新人教版四年级数学上册《第5单元第5课时 梯形的认识》教学课件
评论
0/150
提交评论