预备知识-流水线相关与冒险.pdfVIP

  1. 1、本文档共57页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
预备知识-流水线相关与冒险

流水线相关与冒险 流水线的相关与冒险  一个经典的5段流水线  介绍一个经典的5段RISC流水线  首先讨论在非流水情况下是如何实现的 1. 一条指令的执行过程分为以下5个周期:  取指令周期 (IF)  IR ← Mem[PC] 。  PC值加4。(假设每条指令占4个字节) 流水线的相关与冒险  指令译码/读寄存器周期 (ID)  译码。  用IR中的寄存器编号去访问通用寄存器组,读出所 需的操作数。  执行/有效地址计算周期 (EX) 不同指令所进行的操作不同:  存储器访问指令:ALU把所指定的寄存器的内容与偏 移量相加,形成用于访存的有效地址。  寄存器-寄存器ALU指令:ALU按照操作码指定的操 作对从通用寄存器组中读取的数据进行运算。 流水线的相关与冒险  寄存器-立即数ALU指令:ALU按照操作码指定的操 作对从通用寄存器组中读取的第一操作数和立即数 进行运算。  分支指令:ALU把偏移量与PC值相加,形成转移目标 的地址。同时,对在前一个周期读出的操作数进行 判断,确定分支是否成功。  存储器访问/分支完成周期 (MEM) 该周期处理的指令只有load、store和分支指令。 其他类型的指令在此周期不做任何操作。 流水线的相关与冒险  load和store指令 load指令:用上一个周期计算出的有效地址从存储器中 读出相应的数据。 store指令:把指定的数据写入这个有效地址所指出的存 储器单元。  分支指令 分支“成功”,就把转移目标地址送入PC。 分支指令执行完成。 流水线的相关与冒险  写回周期 (WB) ALU运算指令和load指令在这个周期把结果 数据写入通用寄存器组。 ALU运算指令:结果数据来自ALU。 load指令:结果数据来自存储器系统。 在这个实现方案中:  分支指令需要4个时钟周期(如果把分支指令的执行 提前到ID周期,则只需要2个周期)。  store指令需要4个周期。  其他指令需要5个周期才能完成。 2. 将上述实现方案修改为流水线实现  一个经典的5段流水线  每一个周期作为一个流水段。  在各段之间加上锁存器(流水寄存器)。 流水线的相关与冒险  5段流水线的两种描述方式  第一种描述 (类似于时空图) 第二种描述 (按时间错开的数据通路序列) 流水线的相关与冒险 3. 采用流水线方式实现时,应解决以下几个问题:  要保证不会在同一时钟周期要求同一个功能段做 两件不同的工作。 例如,不能要求ALU同时做有效地址计算和算术运算。  避免IF段的访存(取指令)与MEM段的访存(读/ 写数据)发生冒险。  可以采用分离的指令存储器和数据存储器;  一般采

您可能关注的文档

文档评论(0)

dajuhyy + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档