EPIC微体系结构的存储级并行执行模型的研究.pptVIP

EPIC微体系结构的存储级并行执行模型的研究.ppt

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

EPIC微体系结构的存储级并行执行模型的研究;简介;;一 、引言;;1.1、UAL( Unit AssumedLatency) 延迟语义 RISC和超标量处理器都采用UAL延迟语义,这是一种顺序模型, 不能把延迟暴露出来. 程序的虚调度时间( 指令执行的时间单位) 假定每个操作的延迟都为1, 即假定每条指令发射前, 上一指令已经完成. 如果以前的指令延迟大于1, 处理器必须能够保证后续相关指令获得正确的值, 通常办法是, 停顿后续的相关指令. 图1( a) 是一段用UAL延迟语义调度的代码,其相关语义如图1( b) .;;1.2、NUAL延迟语义 NUAL( Non Unit Assumed Latency) 延迟语义是指, 结构中 ( a) 至少有一个操作的延迟为L, L1; ( b) 当前操作完成前, 可发射后面的L- 1条指令, 且程序语义正确. 用NUAL语义调度上述相同代码, 其相关语义见图2. T1 和T2 连续发射两条指令, 尽管第一条指令在T10才产生出结果.;;;二、基本NUAL执行模型;延迟停顿在实现上除了需要保证正确性外, 还要使插入的停顿尽可能少. Rau曾提出了一种修改延迟停顿的简单方法, 该方法可以保证在虚时间上与编译器调度一致。 虚时间停顿后, 处理其它可以按时完成的操作方法有两种: ( 1) 冻结功能流水线上的可按时完成操作, 但不阻塞不可按时完成的NUAL操作. 由于不再发射新指令, 中断也不能使用该冻结的功能部件, 因此, 这种方法可能存在死锁; ( 2) 许可按时完成的操作继续前进, 而不考虑虚时间是否推进. 这种方法的优点是, 当前不能完成的操作可以充分利用停顿虚时间停顿周期, 来减少它完成的时间, 甚至可能完全消除其延迟, 从而使该操作成为可按时完成操作.;延迟停顿的缺点是, 即使不存在相关性, 指令的发射也可能停顿. 不能按时完成操作的其它处理方法还有许多, 这些方法性能很可能更高, 但代价也更大. 例如, 某些锁步方法, 只在必须的时候才停止发射指令, 性能高了, 代价也大了. 传统的顺序锁步( in order interlock) 模型, 常用于顺序性ISA结构, 对操作的虚拟完成时间没有任何控制, 因而不能支持NUAL, 这是与延迟停顿方法的根本区别. 2.3、基本锁步执行模型 NUAL锁步与延迟停顿的方法相似, 区别在于需要记录不能按时完成操作的轨迹. 延迟停顿需要停止发射指令( 写目的的虚时间点) , 而NUAL锁步仅仅把目的寄存器标识为无效, 然后继续发射新指令, 操作完成时, 寄存器再标识为有效. 准备发射指令时, 只在读到一个无效寄存器( 如写后读互锁) 或第二个操作准备写一个无效寄存器( 写后写互锁)时, 才停止指令发射和虚时间推进. 一旦寄存器可用, 立即恢复指令发射. NUAL锁步确保了对寄存器的所有读、写事件的相对顺序, 即程序正确性语义。;;2.4、执行模型比较 NUALEQ语义提供给编译器的信息最确定,因而优化的机会最大 实际上, 与短延迟操作存在反相关的长延迟EQ操作甚至可以在后者之前发射. 相反, LEQ语义中, 如果操作之间存在反相关,则不能在反相关解决之前发射. 另外, EQ功能流水部件需要延迟缓冲区和一个用于选择流水线或延迟缓冲区的开关, 而LEQ操作产生结果的时刻比预计时间早, 于是结果不需保存到延迟缓冲区. 如果应用本身对延迟增长不十分敏感, 那么使用EQ比较有利, 但会增加寄存器的使用压力. 如果实际延迟与假定延迟之间的比值较大, 延迟停顿模型的性能会很差. 如果调度存在某些难以克服的问题, 如事件之间存在相关且事件的调度顺序不能改变, 那么NUAL锁步模型比延迟停顿模型性能上要好得多. 锁步模型中, 程序中复杂的控制流可能导致实际处理过程不流畅, 这是因为编译代码调度不太可能同时使所有路径都最优, 而只能保证某些可能性最大的路径比可能性小的路径要优, 实际上, 很多情况在编译时是很难确定的. 这样, 编译器能开发的理论ILP往往比硬件实际执行时的ILP要高得多。;三、基本EPIC执行模型;假定某EPIC微处理器共有11条流水线( 4条存储流水线, 2条整数流水线, 2条浮点流水线和3条分支流水线) . 主流水线采用8站, 分别为FETCH、PREDICT、ISSUE、RENAME、REG、EXE、COMMIT 和WRB. 整个流程上可以分为前端和后端, 前端包括FETCH和PREDICT, 完成取指令流任务; 后端包括ISSUE、RENAME、REG、EXE、COMMIT 和WRB, 分别实现指令发射、寄存器换名、读操作数、执行、提交和写回. 指令后端流水线在执行( EXE) 阶段之前( 不包括EXE) 都是顺序的, 即顺序发射

文档评论(0)

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

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

1亿VIP精品文档

相关文档