- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
EPIC的特及其发展应用
EPIC的特性及其发展应用 吴宇亭 033340 李晓红 033341 论文概述 EPIC是由HP及Intel共同开发而成的一种新型的计算机指令架构。EPIC(Explicitly Parallel Instruction Computing )中文称为显示并行指令计算。本文介绍其主要特性:显示并行,断定执行(Predicated execution),捆绑分支(Unbundled branch),控制推测(control speculation),数据预测(data speculation)。另外还介绍了其与其他ILP架构的区别以及一些基本实际应用。 ILP发展 19世纪60年代 ILP初步应用于一些超级计算机 70年代 发展陷入困境 80,90年代 Alan Carlesworth, Josh Fisher, Bob Rau 开始带领研究VLIW(very long instruction word) 与此同时,一些公司也在不断地研究与之相类似的技术,“superscalar” 。1989年,Intel推出首台superscalar微处理器。1993年Intel推出 superscalar Pentium. 到了90年代中期,我们使用的AMD或Intel处理器均使用了这项技术。 1989年,HP开始了FAST(Finegrained Architecture and Software Technologies)研究计划。1994年6月,HP与Intel建立合作关系。HP使用了EPIC来形容他们预想的设计思想与结构类型,这种特定的指令集架构被命名为“IA-64”。而Intel将其命名为IPF(Itanium Processor Family) EPIC的特性 显示并行 断定执行(Predicated execution) 捆绑分支(Unbundled branch) 控制推测(Control speculation) 数据预测(data speculation) 显示并行 所有指令都将被包含在128位的bundle中 0-4位为一个5位的template, 定义了指令的类型和任何Instruction Groups之间的暂停 Instruction Groups是一组无“写后读”或者“写后写”相关,并且可以并行的指令的集合 显示并行(续) 断定执行(Predicated execution) 断定执行就是指基于布尔操作数的操作的条件执行 每条指令断定为true值或false值 将为true和false的指令并行执行。当判断结果出来时,再将断定错误的指令删除。 IPF提供了64个断定寄存器。每个断定寄存器可保存一位(true 或false)。其值由比较指令决定。分支指令使用一对存有相反结果的断定寄存器。 断定执行(续) 捆绑分支(Unbundled branch) EPIC的捆绑分支有三个操作: (1)一个比较,决定是否跳转 (2)计算并提供目的地址 (3)执行。 捆绑分支(续) 将分支分解为三步后,多个比较指令可以并行进行,更早的获取分支条件和计算出多个的目标地址 将耗时复杂的工作提前完成, 执行不需要太多时间,使得延迟降低。 控制推测(Control speculation) 此时,ld后将出现数据相关,造成指令执行有暂停,并行度降低 。 Ld r1, r2 Sub r3, r1,3 更早启动load(或者其他可能运行时间很长的指令)指令,把他们向上移动至分支指令 选出一条可能的路径(包含跳转 ) 控制推测(续1) 控制推测(续2) 防止假的异常 一个EPIC体系结构提供一张load(其他长时间运行的指令)和标签操作数的推测表格。 异常发生时,不处理,只使用标签记录结果。 当有其他非预测指令使用其结果时,再处理异常。 控制推测(续3) 数据预测(data speculation) 为了能够重新安排load和store指令,编译器必须知道指令所指的内存地址。由于存在别名,编译器在编译的时候不能总是做到这一点。 数据预测的load被分为两部分操作:数据预测load(LDS),数据检查(verify)load(LDV)。 两个操作指向相同的内存地址和目标寄存器。当第二个操作确定了正确的最终结果时,第一个操作才启动load。 数据预测(续1) LDS的执行过程如下。它执行一个普通得load,load向目标寄存器返回结果。它也通知硬件开始监测那些将LDS操作的内存地址别名的store。 LDV操作如下。如果没有别名存储,什么都不需要做,LDV操作无效。相反如果有别名存储发生,
文档评论(0)