




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验报告课程名称:计算机系统的结构实验学院:计算机科学与工程学院专家:计算机科学和技术指导教师:好老师学生名:喜欢学习的哥哥66实验成绩:日期: 2017年5月26日电子科技大学计算机学院实验中心电子科技大学实验报告一、实验项目名称:解决风险二、实验室名称:主楼A2-412实验时间: 2017年5月26日三、实验目的基于给定流水线代码添加ID电平的写入使能信号以解决不适当的分支指令影响。 通过完成本次实验,加深对风险现象发生和风险控制原理的理解,提高编程和测试能力。四、实验原理(一)与搬迁有关的问题;传输指令变更按程序顺序执行的特性。 因为是流水线操作,所以在发生传输之前,在流水线处理器中读入了若干传输指令的后续指令。 这是与转移有关的问题,并且也可以被称为控制问题。回顾我们先前介绍的处理搬迁相关问题的四项技术这两种方法都会固定硬件,在编译时根据硬件机制和传输行为调度代码,以获得最佳性能。(2)消除无条件转移命令下列命令的影响:各指令在ID时判断当前处于EXE阶段的操作码寄存器的值是否是无条件转移指令如果是,不使用当前ID阶段的命令的WZ、WMEM、WREG的信号,该命令的执行不影响程序的逻辑。(3)条件转移指令条件分支命令的实现思想与无条件分支命令类似,但并不完全相同。 首先,对于条件分支命令本身,需要判断是否能够使用z标记。 如果z标志尚未准备好,请暂停管线的一个时钟周期。 这一点与判定数据非常相似。 然而,由于传送命令仅仅改变PC并且不改变其他状态,所以无需阻止WZ、WMEM和WREG (在传送命令中,这些信号本来为零)。如果处于解码电平的是条件分支命令且处于EXE电平的是ALU类型的命令(将z标志写入流水线寄存器z ),则ALU命令在写入z之后暂停一个周期(或插入如上所述的nop命令)以确定是否存在分支。用于条件分支命令的下一个命令的处理方法不同于无条件命令。 因为下一个条件分支指令可能被执行或不被执行,所以有必要将无条件分支的指令的处理策略扩展该条件分支的下一命令在ID时判断当前在EXE阶段的码元栈的值是否是条件分支命令,判断分支是否成功(z的值不变化),如果判定为成功,则不使用当前在ID阶段的命令的WZ、WMEM、WREG的信号,由此执行该命令如果发现转移不成功,则该命令是有效命令,使得当前位于ID阶段的命令的WZ、WMEM、WREG信号有效,该命令可以成功执行。五、实验内容基于给定流水线代码添加ID电平的写入使能信号以解决不适当的分支指令影响。六、实验器材(设备、部件)ISE Design Suite 14.7集成开发环境,编程语言: Verilog HDL硬件描述语言七、实验程序1、新项目复制解决上一次实验中完成的数据风险和推送数据的代码2 .在直接跳跃中,有必要废除跳跃指令的下一条件(在跳跃指令被解码的情况下,下一条件已经流出,所以废除)。 在条件跳转中,需要根据z的值来判断是否废除以下命令。 在代码中的解码级别,pcsource定义如下assignpcsource 1=I _ Jr|I _ j|I _ jal; /选择下一个命令的地址,选择00选择PC 4,01选择转换地址、10选择寄存器内的地址、11选择转换地址assignpcsource 0=I _ beqrsrequ|I _ bnersrtequ|I _ j|I _ jal; 加载深度,后台,ID_branch;如果是直接跳跃,则必须废除,如果是pcsource=11,如果是条件跳跃,则废除的条件是pcsource=01,不考虑jr命令,废除以下命令的条件是pcsource=00;3 .向顶级模块添加变量wire wz;/决定是否写z值wire 1:0 exepcsource; /exe pcsource主要用于条件跳转wz需要用id水平计算并传递给exe水平,废除命令后wz=0相反,exepcsource从exe级别被传递到id级别,并指示是否丢弃下一指令。4、添加这两个变量后,顶级模块id级别和exe级别的代码如下所示pipeID id_stage (dpc4,inst,/命令解码id级别wrn、wdi、wwreg、clock、resetnbpc,jpc,PC源,dwreg,dm2reg,dwmemdaluc,daluimm,da,db,dimm,drn,dshift,djal,z,ern,mrn,ewreg,mwreg,idadepend,idbdepend,em2reg,wpc,exepcsource,wz;pipeEXE exe_stage (wz,ealuc,ealuimm,ea,eb,eimm,eshift,ern0,epc4,/命令执行exeejal、ern、ealu、zmalu,wmo,exeadepend,exebdepend;5、加入exepcsource后,根据步骤2的分析,如果是pcsource! 如果=00,则会取消使wref、wmem和wz全部为零的下列命令,但是应该注意的是,wz的值有多种表示方式,wz仅用于控制冒险,并且wreg=wmem=wz用于控制冒险您可以在此直接将wref值赋予wz=execsource 0 (PC source 0=I _ beqrsrtequ|I _ bnersrtequ|I _ j|I _ jal,在条件跳转中pcsource0=i_beqrsrequ|i_bne )assign wreg=(I _ add|I _ sub|I _ mul|I _ and|I _ or|I _ sll|/wreg为1时,写入寄存器堆栈内的寄存器,否则不写入I _ SRL|I _ SRA|I _ addi|I _ Muli|I _ Andi|I _ ori|I _ xori |I _ lw|I _ lui|I _ jal ) WPC (execsource 0=0) (execsource 1=0)assign wmem=I _ sww PC (execsource 0=0) (execsource 1=0)/1时写内存,否则不写assign wz=wregid级别的cu模块的完整代码如下所示模块化pipeidcu (rsrtequ、func )op,wreg,m2reg,wmem,aluc,regrt,aluimmsext、pcsource、shift、jal/*要在数据之前添加的参数*/exe_rd,mem_rd,exe_wreg,mem_wreg,idadepend,idbdepend,rs,rt,rd,exe_m2reg,wpc,exepcsource,wz;input 1:0 exepcsource;input 4:0 exe_rd,mem_rd,rs,rt,rd;输入exe_m2reg,mem_wreg,exe_m2reg;output 1:0 idadepend,idbdepend;输出WPC;/是否写/wreg寄存器/dm2reg为1时将存储数据写入寄存器,否则将ALU结果写入寄存器/dwmem为1时写入内存,否则不写入如果/daluimm为1,则ALUb输入端使用即时计数/dshift为1时,ALUa输入端使用移位位数/djal为1时执行jal指令。 否则不执行输入rsrtequ;input 5:0 func,op;output wz,wreg,m2reg,wmem,regrt,aluimm,sext,shift,jal;output 4:0 aluc;output 1:0 PC源;wire i_add,i_sub,i_mul,i_and,i_or,i_xor,i_sll,i_srl,i_sra,i_jr; /解码命令wire i_addi,i_muli,i_andi,i_ori,i_xori,i_lw,i_sw,i_beq,i_bne,i_lui,i_j,i_jal;and(i_add、op5、op4、op3、op2、op1、op0、func2、func1、func0 ) .and(i_sub、op5、op4、op3、op2、op1、op0、func2、func1、func0 ) .and(i_mul、op5、op4、op3、op2、op1、op0、func2、func1、func0 ) .and(i_and,op5、op4、op3、op2、op1、op0、func2、func1、func0 ) .and(i_or、op5、op4、op3、op2、op1、op0、func2、func1、func0 ) .and(i_xor、op5、op4、op3、op2、op1、op0、func2、func1、func0 ) .and(i_sra、op5、op4、op3、op2、op1、op0、func2、func1、func0 ) .and(i_srl、op5、op4、op3、op2、op1、op0、func2、func1、func0 ) .and(i_sll、op5、op4、op3、op2、op1、op0、func2、func1、func0 ) .and(i_jr,op5、op4、op3、op2、op1、op0、func2、func1、func0 ) .and(i_addi,op5、op4、op3、op2、op1、op0 ) .and(i_muli,op5,op4,op3、op2、op1、op0 ) .and(i_andi,op5、op4、op3、op2、op1、op0 ) .and(i_ori、op5、op4、op3、op2、op1、op0 ) .and(i_xori,op5、op4、op3、op2、op1、op0 ) .and(i_lw,op5、op4、op3、op2、op1、op0 ) .and(i_sw,op5、op4、op3、op2、op1、op0 ) .and(i_beq,op5,op4、op3、op2、op1、op0 ) .and(i_bne,op5、op4、op3、op2、op1、op0 ) .and(i_lui,op5、op4、op3、op2、op1、op0 ) .and(i_j,op5、op4、op3、op2、op1、op0 ) .and(i_jal,op5、op4、op3、op2、op1、op0 ) .wirei _ RS=I _ add|I _ sub|I _ mul|I _ and|I _ xor|I _ Jr|I _ addi|I _ MuliI _ Andi|I _ ori|I _ xori|I _ lw|I _ beq|I _ bne;wirei _ rt=I _ add|I _ sub|I _ mul|I _ and|I _ xor|I _ SRA|I _ sll|I _ SW|I _ beq|I _ bne;一个人,一个人,一个人,一个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 健康管理基础知识培训课件
- 便秘的西医治疗课件
- 广西钦州市第十三中学2025-2026学年高二上学期第一周考试历史试卷(含答案)
- 2025年全国中医类别医师资格定期考核理论试题及答案
- 企业电焊工安全培训总结课件
- 企业春节节前安全培训课件
- 网络餐饮管理办法评价
- 2025年中医内科试题及答案
- 新疆维吾尔自治区高级导游等级考试(导游综合知识)考前冲刺试题及答案(2025年)
- 紧急冲淋、洗眼器操作规程
- 手术室多重耐药菌感染防控与管理
- 水生物病害防治员职业技能鉴定经典试题含答案
- 尿道狭窄护理查房
- 新教材八上《历史》第一单元必背知识(背诵版+默写版)
- 中国产业发展
- 小学生种植实践课件
- 白内障术后并发症
- 2025至2030糖生物学行业调研及市场前景预测评估报告
- 2025年官方兽医答题题库附答案详解(达标题)
- 稻谷与大米全产业链解析
- 生态环境监测机构资质认定补充要求解读
评论
0/150
提交评论