EPIC的特性及其发展.docVIP

  1. 1、本文档共13页,可阅读全部内容。
  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文档。上传文档
查看更多
EPIC的特性及其发展.doc

EPIC的特性及其发展 姓名:吴宇亭 学号:033340 e-mail:conanxtt@ 姓名:李晓红 学号:033341 e-mail:xiaohong3341@ 1. 摘要 EPIC是由HP及Intel共同开发而成的一种新型的计算机指令架构。EPIC(Explicitly Parallel Instruction Computing )中文称为显示并行指令计算。本文介绍其主要特性:显示并行,断定执行(Predicated execution),捆绑分支(Unbundled branch),控制推测(control speculation),数据预测(data speculation)。另外还介绍了其与其他ILP架构的区别以及一些基本实际应用。 2. 介绍: ILP(Instruction level parallelism) 是指单处理器上多机器指令并行的初始化及执行。在计算机的发展过程中,ILP开始扮演越来越重要的角色。19世纪60年代,一些超级计算机,例如:CDC6600 ,IBM S/360 M91, IBM ACS,开始使用ILP。但是,到了70年代,由于当时编译器产生的程序指令缺乏并行性,它的表现在与其执行时的复杂度相比,权衡利弊之下,不如类似IBM S/360 M85 的简单的基于cache的处理器 和一些多处理器系统,所以,一度陷入困境。 到了80,90年代,它再一次成为提高计算机效率的关键技术。Alan Carlesworth, Josh Fisher, and 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) 3. EPIC的特点 3.1 显示并行 显示程序中的不相关指令信息是EPIC一个显著的特点。让我们以IPF结构为例,所有被传给处理器的指令都将被包含在bundle中, 3个41位的指令被打包在一起,形成一个128位的“bundle”,从而作为一个指令单元来取。如图1所示: 图1, bundle的结构 其中,0-4位为一个5位的template, 定义了指令的类型和任何Instruction Groups之间的暂停。 Instruction Groups是一组无“写后读”或者“写后写”相关,并且可以并行的指令的集合。该概念由Intel定义。一个Instruction Group可包含任意数量的指令,只要它非空。两个相邻的Instruction Group 可以由一个周期的停顿来指出。Instruction Group可以有一个运行时分支来动态的中止。 以下是一个Instruction Group的例子: LD R1, R2 SUB R3, R4, 8 ADD R5, R6, 6 //第一组 SD 0(R5), R3 //第二组 在bundle中可以存在0个,一个或是最多2个停顿。Instruction Group 有时可以跨越不同的Instruction bundle。 图2. groups, bundle, template 图2 中共有2个组A. B .C 。组A中包括两个bundle , 组B中包括bundle 3中的后两条指令,组C中包括了bundle 3中的第一条和bundle 4。该图中bundle的template清楚地画出的bundle的边界。同时,也可以看出group和bundle的划分不是相互依赖的。Instruction Group 有时可以跨越不同的Instruction bundle。一个bundle也可以处于不同的g

文档评论(0)

天马行空 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档