《高性能处理器体系结构》Review of Instruction Sets,Pipelines指令集,管道.ppt

《高性能处理器体系结构》Review of Instruction Sets,Pipelines指令集,管道.ppt

  1. 1、本文档共73页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * I n s t r. O r d e r Time (clock cycles) add r1,r2,r3 sub r4,r1,r3 and r6,r1,r7 or r8,r1,r9 xor r10,r1,r11 IF ID/RF EX MEM WB ALU Im Reg Dm Reg ALU Im Reg Dm Reg ALU Im Reg Dm Reg Im ALU Reg Dm Reg ALU Im Reg Dm Reg Data Hazard Solution: Forwarding “Forward” result from one stage to another * * MEM/WR ID/EX EX/MEM Data Memory ALU mux mux Registers NextPC Immediate mux What circuit detects and resolves this hazard? HW Change for Forwarding * * Reg Time (clock cycles) lw r1,0(r2) sub r4,r1,r3 IF ID/RF EX MEM WB ALU Im Reg Dm ALU Im Reg Dm Reg Forwarding (or Bypassing): What about Loads? Dependencies backwards in time are hazards Data Hazard Even with Forwarding Can’t solve with forwarding ,Must delay/stall instruction dependent on loads * * Reg Time (clock cycles) lw r1,0(r2) sub r4,r1,r3 IF ID/RF EX MEM WB ALU Im Reg Dm ALU Im Reg Dm Reg Stall Forwarding (or Bypassing): What about Loads ? Dependencies backwards in time are hazards Data Hazard Even with Forwarding Can’t solve with forwarding ,Must delay/stall instruction dependent on loads * * Try producing fast code for a = b + c; d = e – f; assuming a, b, c, d ,e, and f in memory. Slow code: LW Rb,b LW Rc,c ADD Ra,Rb,Rc SW a,Ra LW Re,e LW Rf,f SUB Rd,Re,Rf SW d,Rd Software Scheduling to Avoid Load Hazards Fast code: LW Rb,b LW Rc,c LW Re,e ADD Ra,Rb,Rc LW Rf,f SW a,Ra SUB Rd,Re,Rf SW d,Rd Compiler optimizes for performance. Hardware checks for safety. * * I: sub r4,r1,r3 J: add r1,r2,r3 K: mul r6,r1,r7 Three Generic Data Hazards Write After Read (WAR) InstrJ writes operand before InstrI reads it Called an “anti-dependence” by compiler writers. This results from reuse of the name “r1”. Can’t happen in DLX 5 stage pipeline because: All instructions take 5 stages, and Reads are always in stage 2, and Writes are always in stage 5 * * I: sub r1,r4,r3 J: add r1,r2,r3 K: mul r6,r1,r7 Three Generic Data Hazards Write After Write (WAW

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档