跳转到内容

顯式並行指令運算

本页使用了标题或全文手工转换
维基百科,自由的百科全书

显式并行指令运算英文Explicitly Parallel Instruction Computing縮寫EPIC)是一种指令集架构,是 1997 年由惠普-英特尔联盟创造的一个术语 [1] ,用来描述一个自 1980 年代早期以来研究人员一直在探索的计算范式。 [2] 这个范式也被称为独立架构。它是英特尔和惠普开发英特尔 Itanium 架构的基础, [3] 而惠普后来声称“EPIC”只是 Itanium 架构的一个旧术语。 [4] EPIC 允许微处理器通过使用编译器而不是复杂的芯片内电路来控制并行指令执行,从而并行执行软件指令。这旨在实现简单的性能扩展,而无需依赖更高的时钟频率。


原理

[编辑]

其指令中有3位是用来指示上一条运算指令是不是与下一条指令有相关性,是不是要等上一条指令运行完毕后才能运行下一条,如果没有相关性,则两条指令可同时由不同的CPU节点来处理,这样的方式大大提高了CPU并行运算的效率。

实现

[编辑]

EPIC成为IA-64架构的基础(IA代表Intel Architecture,即英特尔架构,与IA-32对应),这是英特尔与惠普共同开发的纯64位微处理器。英特尔的安腾(Itanium)系统处理器采用了这种架构。


基于VLIW的根源

[编辑]

到 1989 年,惠普的研究人员认识到精简指令集计算机(RISC)架构在每个周期只能执行一条指令,达到了极限。 [clarification needed] 他们开始研究一种新架构,后来被命名为 EPIC。 [3] 研究的基础是 VLIW,其中每条指令中编码了多个操作,然后由多个执行单元处理。

EPIC 的一个目标是将指令调度的复杂性从 CPU 硬件转移到软件编译器,这样编译器可以静态地进行指令调度(借助跟踪反馈信息)。这消除了 CPU 中复杂调度电路的需求,从而为其他功能释放了空间和功率,包括额外的执行资源。另一个同样重要的目标是通过使用编译器寻找和利用额外的并行执行机会,进一步利用指令级并行性(ILP)。

VLIW(至少原始形式)有几个缺点,使其未能成为主流:

  • VLIW 指令集在不同实现之间不向后兼容。当构建更宽的实现(更多执行单元)时,宽机器的指令集与较旧的、较窄的实现不向后兼容。
  • 从包括 CPU 缓存和 DRAM 的内存层次加载响应没有确定的延迟。这使得编译器对加载指令的静态调度变得非常困难。

EPIC 架构源于 VLIW 架构,但保留了许多超标量架构的概念。

超越 VLIW

[编辑]

EPIC 架构增加了几个特性以克服 VLIW 的不足:

  • 每组多个软件指令称为一个捆绑包。每个捆绑包都有一个停止位,指示该操作集是否被后续捆绑包依赖。通过这种能力,未来的实现可以并行发出多个捆绑包。依赖信息由编译器计算,因此硬件不必执行操作数依赖检查。
  • 软件预取指令作为一种数据预取使用。此预取增加了加载时缓存命中率的机会,并可以指示在各级缓存中所需的时间局部性程度。
  • 投机加载指令用于在尚不确定数据是否会被使用(绕过控制依赖)或在使用之前是否会被修改(绕过数据依赖)时,投机性地加载数据。
  • 检查负载指令通过检查一个投机负载是否依赖于后续存储,从而帮助投机负载,因此必须重新加载。

EPIC 架构还包括一系列建筑概念,以增加 ILP:

  • 基于条件的执行用于减少分支的发生并增加指令的推测执行。在此功能中,分支条件被转换为谓词寄存器,这些寄存器用于消除未被采取的分支一侧已执行指令的结果。
  • 延迟异常,使用通用寄存器中的一个非事物位,允许在可能的异常之后进行推测性执行。
  • 非常大的架构寄存器文件避免了寄存器重命名的需求。
  • 多路分支指令通过将多个替代分支组合成一个捆绑来提高分支预测。

Itanium 架构还增加了旋转寄存器文件,这是一种对软件流水线有用的工具,因为它避免了手动展开和重命名寄存器的需要。

其他研发

[编辑]

还有其他对 EPIC 架构的研究,这些研究与 Itanium 架构的发展没有直接关系:

  • 伊利诺伊大学厄本那-香槟分校的 IMPACT 项目,由 Wen-mei Hwu 领导,是该主题上许多有影响力研究的来源。
  • HP-labs 的 PlayDoh 架构是另一个重要的研究项目。
  • Gelato 是一个开源开发社区,学术和商业研究人员在其中合作开发更有效的编译器,以支持在 Itanium 服务器上运行的 Linux 应用程序。

另见

[编辑]


参考文献

[编辑]
  1. Schlansker and Rau (February 2000). "EPIC: An Architecture for Instruction-Level Parallel Processors" (PDF). HP Laboratories Palo Alto, HPL-1999-111. Retrieved 2008-05-08.
  1. US 4847755, Morrison, Gordon E.; Brooks, Christopher B. & Gluck, Frederick G., "Parallel processing method and apparatus for increasing processing throughout by parallel processing low level instructions having natural concurrencies", published 1989-07-11, assigned to MCC Development Ltd.
  1. "Inventing Itanium: How HP Labs Helped Create the Next-Generation Chip Architecture". HP Labs. June 2001. Archived from the original on 2012-03-04. Retrieved 2007-12-14.
  1. De Gelas, Johan (November 9, 2005). "Itanium–Is there light at the end of the tunnel?". AnandTech. Retrieved 2008-05-08.


外部链接

[编辑]

EPIC 的历史背景 马克·斯莫瑟曼(2002)《理解 EPIC 架构和实现》