
| 多核时代的性能扩充  | 多核时代的性能扩充 第 2 节:EPIC 的优势
"英特尔® 安腾® 处理器 仍有长足的发展空间,很可能是有着巨大发展潜力的架构。"
— 资料来源:《安腾——隧道尽头有曙光吗?》,作者 Johan De Gelas,2005 年 11 月 9 日
在这两节介绍的第一节中,我们讨论了当今整个行业转向多核处理器的原因,以及这种转移预计将如何推动处理器性能在未来至少二十年迅速增长。在第二篇文章中,我们介绍英特尔® 安腾® 处理器在多核性能方面的扩充,并介绍了如何能够将更多内核集成到未来版本的产品当中。
1994 年,英特尔和惠普公司刚开始合作一款新处理器来满足不断增长的计算需求,那时便可明显看出,频率增加的时日不会持续太久。为提供新的并行级别,不再依赖更高的时钟频率就可实现快速持续的性能增强,一款新架构应运而生。
就这项技术本身来说,根本上并没有全新的创意。为了增加用于每个时钟周期处理的指令数量,其它处理器架构已经设计了出来。然而,由于英特尔® 安腾® 微体系结构还非常年轻,其设计人员能够充分利用过去的开发经验。该微体系结构整合了诸多此前架构中最优秀的部分,并增加了其它一些创新。由此也诞生了一个全新模型——显式并行指令计算(EPIC)。它的构建用以通过竞争架构无法实施的方式,持续改进指令级和线程级并行性。
为指令级并行注入新活力
"我十分看好 64 位英特尔® 架构(IA-64),因为我们所梦想的编译器将首度出现,不仅能够快速构建和优化,还能生成震撼人心的代码。"
— 资料来源:《CPU 的下一个 20年》,作者 Tom Yager,《计算机世界》,2005 年 9 月 7 日
如前第一节所述,指令级并行(ILP)代表着处理器进行分析以及对线性软件代码进行重新排序、从而使指令能够即时处理或乱序的能力。这种方法的一个主要益处是有助于保持处理器在大部分时间内保持一定的高效率。如果某个代码流在等待数据被检索时停止,那么,在介入时钟周期期间,就能对独立的指令进行处理。有益的工作将继续进行,总体吞吐量也将相应地增加。
与指令级并行(ILP)不同,显式并行指令计算(EPIC)采用一种完全不同的方法。这种方法并不依赖于处理器中复杂的逻辑电路来分析运行时期间的软件代码,而依赖于软件编译器来找出并显式地确定独立指令。编译器不受动态的、硬件 ILP 优化的时间或资源限制。它可提前查看几千条指令(而不是像之前那样只深入查看几条指令),从而寻找到更多的并行机会。
采用这种方法,在到达处理器之前,编译代码就能得到高度的优化,从而可获得较好的并行吞吐率。这样,处理器就不必再完成那些较为苛刻的任务,比如:代码分析、查找并行的机会、对代码重新排序,以及分配处理资源,等等。相反,编译器会把代码分为几批独立的指令。当这些分批指令到达时,处理器仅需接受这些代码包,然后分配其资源,以便尽可能快地执行这些代码包。
为充分利用优化代码的优势,英特尔® 安腾® 2 处理器配备了极其大量的执行资源。它具备 128 个通用寄存器,每周期可执行多达 6 条同步指令(在将来实施中这个数目还可能增加)。这种基于编器优化及高度并行处理的组合,将会导致指令级并行(ILP)更加高效、吞吐量更高。尽管编译器功能持续增强,但它仍然提供了一套经济高效的工具,以进一步提高指令级并行(ILP)的效率。
显式并行指令计算(EPIC)充分利用了许多种用于增强指令级并行(ILP)的技术, 以加快吞吐率并减少延迟。这些实例包括:论断(可消除分支预测代价)、推测(在收到载入命令之前,将数据载入到内存)、数据和指令预取和高速缓存提示。通过大量执行英特尔® 安腾® 2 处理器中的资源,在识别及对独立代码打包的过程中,这些战略得到了高效的执行。大量寄存器减少了对中间结果的需求,从而更多的时钟周期可用于直接执行。
多核设计下显式并行指令计算(EPIC)的潜力
"尽管英特尔® 安腾® 2 处理器在理论上可支持 6 条指令并执行高达 11 条指令,尽管它有大量的寄存器集,其内核使用的晶体管数量比所有竞争对手的都少。"
— 资料来源:《安腾——隧道尽头有曙光吗?)》,作者 Johan De Gelas,2005 年 11 月 9 日
EPIC 依赖编译器来优化 ILP,无需在硬件上执行该功能。这就减少了对长指令流水线和大量复杂的、耗能的逻辑电路的需求。从而,英特尔® 安腾® 2 处理器就有了体积相对较小、性能出色且相当节能的内核。
这听来似乎难以置信,因为英特尔® 安腾® 2 处理器被认作是一款相当大的处理器。然而,它依靠的是其相当大的高速缓存(在当前设计中达 9 MB,在下一代双核设计中将达 24 MB)。和竞争架构相比,其内核本身相当小,同时也更节能。这使英特尔将来可更轻松地在每个处理器中集成更多的内核,同时为大型高速缓存配置留出充足的空间和功率。
每核性能的重要性
多核可增加多线程应用的吞吐量。在统一的环境之下,他们也能提高吞吐率,同时,多个应用和后台任务能够充分利用其它内核。然而,他们并不能加快单个软件线程的执行。这是一个很重要的问题。例如,快速的每线程性能对多数据层应用而言相当关键,在实时商业环境中尤为如此,因为此时只有检索到准确的数据组时交易才能结束。在当今高度集成的计算环境中,这一点变得更为重要,因为单个应用中的处理延迟会对其它应用造成影响。
为避免缓慢的响应速度,企业需要在移植到多核处理器时,注意每核的性能特征。英特尔® 安腾® 处理器目前能够提供非常有竞争力的每核性能,能够通过编译器优化来支持不断增加的指令级并行(ILP),从而有助于支持性能的持续增加。结合在多核部署方面的优势,该处理器在性能扩充方面有着非常大的潜力。
软件兼容性不断向前发展
"……惠普和英特尔对该架构定义给予了密切关注,这意味着您将无需隔两三年就重新设计您的软件,由于该架构设计用于借助未变化的二进制代码来运行,因此,可确保您的软件在新的 whiz-bang CPU 芯片上运行。"
— 资料来源:《英特尔® 安腾® 处理器,架构造就独特魅力》,Stephen Satchell 著
频率增长的关键优势之一便是可为现有代码持续扩充性能。EPIC 设计用来从具体的硬件实施中提取软件并行性,因此提供了相似的优势。因为这一点,软件不必重新编译,就能充分利用未来在硬件资源方面的增长(即,更多寄存器、每时钟周期更多指令,等等)。这将使现有应用能够更加轻松地获得性能上的提升,而无需对软件进行优化。
当然,意识到这种优势适用于运行于单个内核之上的单个软件线程是非常重要的。软件开发人员将仍需线程优化其代码,以便充分利用多核处理器设计的优势,正像他们对所有其它处理器架构那样。
|
|