超标量乱序处理器最优流水线.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
超标量乱序处理器最优流水线设计建模王芹蒋林洋那为什么需要解析建模呢? 解析建模更加美观, 建模就是我们在充分了解了事物的本质之后,用数学公式将其内部的相互关系表述出来。数学公式可以提供有关系统行为的信息,无需作图或者产生表格。 传统解析模型 首先提出了CPI Stack这个概念:在一个微处理器上,平均CPI可分为两个部分,一个是base CPI,另一个是miss事件影响CPI的成分。CPI Stack可以显示更多有效的信息,比原始的miss率 提供更多的insight。对于一个给定的benchmark,CPI Stack除了可以给出整体的CPI,还可以有其他CPI成分:L1 cache, the L2 cache , the branch predictor , TLB等等。通过比较各自的CPI占比,可以进行最大的性能优化。 为了计算CPI各个成分的精确值,利用interval analysis执行时间按照miss events分为几个离散的intervals。I-cache miss event interval: L1 I-cache misses, L2 instruction misses, and I-TLB misses行为比较相似,以I-cache作为代表。开始时,持续的指令流填充整个流水线。然后在某一点发生了I-cache miss事件导致了fetch级停止,此时前端流水线开始drain,在经历了前段pipeline级数个cycles之后没有指令dispatch,IPC变为了0,一段时间之后指令取回前端pipeline重新fill,此时IPC上升。由此可以看出,front-end和front-end refill的cycle是一样的,因此I-cache的penalty就是它的miss delay。I-cache的interval为[N/D] + CiL1。Interval behavior for a branch misprediction: 开始时,持续的指令流填充整个流水线。然后在某一点fetch了一条错误的branch指令,此时后面fetch进的指令都是无效指令,也就相当于前端pipeline drain。当错误的branch dispatch之后,由于后面的都是无效指令,此时的IPC相当于0。错误预测的指令进入window之后等待执行(这段时间记为branch resolution time),执行时发现这条分支指令预测错误,整条流水线flush后重新fetch正确的分支,前段流水线重新fill,IPC上升。由图可得a branch misprediction的penalty = mispredicted branch后的第一条正确指令进入window的时间和mispredicted branch 进入window的时间之差。也就是图中的branch resolution time + 前段流水线长度。branch misprediction的interval就是[N/D] + Cdr +Cfe(前端流水线长度为 Cfe,the branch resolution time 可以近似等于 the window drain time Cdr)。short Back-End miss——L1 D-cache miss:由于乱序机制的引入,在balanced pipeline 处理器中D-cache penalty可被部分或者是大量掩盖。从绝对时间的角度上,D-cache miss penalty与长延迟指令在数量级上近似相等,例如乘法和除法等指令。因此,我们将这种D-cache miss事件可近似看成是长延迟功能单元的执行事件。long Back-End miss——L2-cache miss and D-TLB miss:开始时,持续的指令流填充整个流水线。然后在某一点fetch一条会发生long D-cache miss的指令,从该指令dispatch进入window到issue执行的时间记为load resolution time。对于定义的balanced pipeline processor,从该指令dispatch进入到window开始堵塞ROB,经过一定的时间之后ROB full,因此ROB fill时间为W/D,并且ROB full之后dispatch停止,即IPC为0。issue执行该指令发现数据cache miss,进入memory取回数据之后commit出去,此时后面指令又可以dispatch进window,IPC上升。由图可得,long D-cache miss penalty = ROB fill ~ 所需data取回之间的时间,也就是主存访问延迟 – miss之后有用指令d

文档评论(0)

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

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

1亿VIP精品文档

相关文档