MIPS流水线CPU剖析.doc

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MIPS流水线CPU剖析

本科实验报告 课程名称: 计算机组成与设计实验 姓 名: 学 院: 信息与电子工程学院 专 业: 电子科学与技术 学 号: 314010 指导教师: 屈民军、唐奕 2016年 1 月 7 日 实验目的 了解提高CPU性能的方法。 掌握流水线MIPS微处理器的工作原理。 理解数据冒险、控制冒险的概念以及流水线冲突的解决方法。 掌握流水线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-Ⅱ Pro 开发系统中实现MIPS微处理器,要求CPU的运行速度大于25MHz。 实验原理 总体设计 流水线是数字系统中一种提高系统稳定性和工作速度的方法,广泛应用于高档CPU的架构中。根据MIPS处理器的特点,将整体的处理过程分为取指令(IF)、指令译码(ID)、执行(EX)、存储器访问(MEM)和寄存器会写(WB)五级,对应多周期的五个处理阶段。一个指令的执行需要5个时钟周期,每个时钟周期的上升沿来临时,此指令所代表的一系列数据和控制信息将转移到下一级处理。 由于在流水线中,数据和控制信息将在时钟周期的上升沿转移到下一级,所以规定流水线转移变量命名遵守如下格式: 名称_流水线级名称 例如:在ID级指令译码电路(Decode)产生的寄存器写允许信号RegWrite在ID级、EX级、MEM级和WB级上的命名分别为RegWrite_id、RegWrite_ex、RegWrite_mem和RegWrite_wb。在顶层文件中,类似的变量名称有近百个,这样的命名方式起到了很好的识别作用。 流水线中的控制信号 (1)IF级:取指令级。从ROM中读取指令,并在下一个时钟沿到来时把指令送到ID级的指令缓冲器中。该级控制信号决定下一个指令指针的PCSource信号、阻塞流水线的PC_IFwrite信号、清空流水线的IF_flush信号。 (2)ID级:指令译码器。对IF级来的指令进行译码,并产生相应的控制信号。整个CPU的控制信号基本都是在这级上产生。该级自身不需任何控制信号。 流水线冒险检测也在该级进行,冒险检测电路需要上一条指令的MemRead,即在检测到冒险条件成立时,冒险检测电路产生stall信号清空ID/EX寄存器,插入一个流水线气泡。 (3)EX级:执行级。该级进行算术或逻辑操作。此外LW、SW指令所用的RAM访问地址也是在本级上实现。控制信号有ALUCode、ALUSrcA、ALUScrB和RegDst,根据这些信号确定ALU操作、选择两个ALU操作数A、B,并确定目标寄存器。 另外,数据转发也在该级完成。数据转发控制电路产生ForwardA和ForwardB两组控制信号。 (4)MEM级:存储器访问级。只有在执行LW、SW指令时才对存储器进行读写,对其他指令只起到一个周期的作用。该级只需存储器写操作允许信号MemWrite。 (5)WB级:写回级。该级把指令执行的结果回写到寄存器文件中。该级设置信号MemtoReg和寄存器写操作允许信号RegWrite,其中MemtoReg决定写入寄存器的数据来自于MEM级上的缓冲值或来自于MEM级上的存储器。 2)数据相关与数据转发 如果上一条指令的结果还没有写入到寄存器中,而下一条指令的源操作数又恰恰是此寄存器的数据,那么,它获得的将是原来的数据,而不是更新后的数据。这样的相关问题称数据相关。在设计中,采用数据转发和插入流水线气泡的方法解决此类相关问题。 (1)三阶数据相关与转发 转发条件为:(操作数A、B同时满足) ①WB级指令是写操作,即RegWrite_wb=1; ②WB级指令写回的目标寄存器不是$0,即RegWriteAddr_wb≠0; ③WB级指令写回的目标寄存器与在ID级指令的源寄存器是同一寄存器,即RegWriteAddr_wb=RsAddr_id 或 RegWriteAddr_wb=RtAddr_id。 (2)二阶数据相关与转发(MEM冒险) 转发条件: ①WB级指令是写操作,即RegWrite_wb=1; ②WB级指令写回的目标寄存器不是$0,即RegWriteAddr_wb≠0; ③WB级指令写回的目标寄存器与

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档