logo

您所在位置网站首页 > 海量文档  > 经济企管 > 综合

数电实验2报告lab 28 流水线CUP.doc 45页

本文档一共被下载: ,您可全文免费在线阅读后下载本文档。

  • 支付并下载
  • 收藏该文档
  • 百度一下本文档
  • 修改文档简介
全屏预览

下载提示

1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
下载地址
需要金币:180    文档纠错   收藏文档   下载帮助
支付并下载
实验报告 课程名称:__ __数字系统设计实验2_ __ ___指导老师:__唐奕等______成绩:__________________ 实验名称: _流水线MIPS微处理器设计_ _实验类型:____ 设计型__ __同组学生姓名: 一、实验目的和要求(必填) 二、实验内容和原理(必填) 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得 一、实验目的和要求 1、了解提高CPU性能的方法 2、掌握流水线MIPS微处理器的工作原理 3、离结数据冒险,控制冒险的概念以及流水线冲突的解决办法 4、掌握流水线MIPS微处理器的测试方法 二、实验内容和原理 实验内容:设计一个32位流水线MIPS微处理器,具体要求如下: 至少运行下列MIPS32指令:算术运算指令(ADD、ADDU、SUB、SUBU、ADDI、ADDIU)逻辑运算指令(AND、OR、NOR、XOR、ANDI、ORI、XORI、SLT、SLTU、SLTI、SLTIU)移位指令(SLL、SLLV、SRL、SRLV、SRA)条件分支指令(BEQ、BNE、BGEZ、BGTZ、BLEZ、BLTZ)无条件跳转指令(J、JR)数据传送指令(LW、SW)空指令(NOP) 采用5级流水线技术,对数据冒险实现转发或阻塞功能 在XUP Virtex-2Pro开发系统中实现MIPS微处理器,要求CPU的运行速度大于25MHz。 实验原理:1总体设计:IF、ID、EX、MEM、WB,对应CPU的 实验名称: 流水线MIPS微处理器设计 姓名: 李增一 学号: 3090101793 五个处理阶段。如下图: 宏观来讲如下: 2、流水线冒险 在流水线CPU中,多条指令同时执行,由于各种各样的原因,在下一个时钟周期中下一条指令不能执行,这种情况称为冒险。冒险分为三类: 实验名称: 流水线MIPS微处理器设计 姓名: 李增一 学号: 3090101793 结构冒险:硬件不支持多条指令在同一个时钟周期内执行。MIPS 指令集专为流水线设计,因此在MIPS CPU中不存在此类冒险。 (2)数据冒险:在一个操作必须等待另一操作完成后才能进行时,流水线必须停顿,这种情况称为数据冒险。数据冒险又分为两类: a.数据相关:流水线内部其中任何一条指令要用到任何其它指令的计算结果时,将导致数据冒险。通常可以用数据转发(数据定向)来解决此类冒险。 解决方法: (1)三阶数据相关: 这两条指令在第5时钟周期内同时读写同一个寄存器。这类数据相关称之为三阶数据相关。 假设寄存器的写操作发生在时钟周期的上升沿,而读操作发生在时钟周期的下降沿,那么读操作将读取到最新写入的内容。在这种假设条件下将不会发生数据冒险。这就要求流水线中的寄存器具有“ 先写后读(Read After Write)”的特性。 这类“ 写操作发生在时钟周期的上升沿,读操作发生在时钟周期的下降沿” 的寄存器虽然在理论上是可实现的,但是不适合应用于同步系统,因为它不但影响系统的运行速度,而且影响系统的稳定性,是不可取的。 因此,我们采用“ 转发” 机制来解决三阶数据相关冒险。该部分转发电路我们放在寄存器堆的设计中完成。 数字系统设计实验 转发条件: ① WB级的指令需要 写回寄存器,即 RegWrite_wb=1 实验名称: 流水线MIPS微处理器设计 姓名: 李增一 学号: 3090101793 ②在WB级的指令在写回时 目标寄存器不能是寄存 器$0,即 RegWriteAddr_wb≠0 ③在WB级的指令写回时的目标寄存 器与在ID级的指令的源寄存器是 同一寄存器,即 RegWriteAddr_wb=RsAddr_id 或RegWriteAddr_wb=RtAddr_id (2)二阶数据相关(MEM冒险): sub指令在第5时钟周期写回寄存器,而or指令也在第5时钟周期对sub指令的结果提出了请求,很显然or指令读取的数据是未被更新的错误内容。这类数据相关称之为二阶数据相关。 如前所述,or指令在第5时钟周期向sub指令结果发出请求时,sub指令的结果已经产生。所以,我们同样采用“ 转发” ,即通过MEM/WB流水线寄存器,将sub指令结果“ 转发” 给or指令,而不需要先写回寄存器堆。 转发条件: ①WB级的指令需要 写回寄存器,即 RegWrite_wb=1 ②在WB级的指令在写回时,目标寄存器不能是寄存 器$0,即 RegWriteAddr_wb≠0 ③在WB级的指令写回时的目标寄存器 与在EX级的指令

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码: 点击我更换图片

©2010-2013 max.book118.com在线文档投稿赚钱网. All Rights Reserved 蜀ICP备08101938号