IDF技术亮点预览:Nehalem处理器最新特性剖析

Nehalem三级高速缓存结构

对于2008年,英特尔公司预测他们高端处理器单元销售的绝大部分将主要是四核处理器,2009年可能还会延续下去。四核处理器将是英特尔主要的销售重点,Nehalem处理器也是英特尔的首次尝试。不过,与上一代处理器每个处理核心共享L2高速缓存的做法不同,Nehalem处理器的设计与AMD公司的巴塞罗那处理器更加类似。

这就意味着每个处理器核心都有一个小型的专用L1和L2高速缓存,但是所有的处理器核心都共享一个共同的大型L3高速缓存。下面的图示是Nehalem处理器的高速缓存结构:

每个核心L1高速缓存(32KB指令和32KB数据)–与英特尔目前的核心微体系架构类似

每个核心L2高速缓存(256KB,低延迟)

L3高速缓存(8MB,所有核心共享)–采用独占高速缓存策略

随着Nehalem处理器采用集成内存控制器来直接与内存互联并使用QPI总线技术来加速处理器之间的通信,英特尔就无需象在使用现有的FSB体系架构的高端至强处理器(至少使用了12MB L2高速缓存)的一贯做法那样部署大量的高速缓存。因此,Nehalem处理器每个核心只使用了小型的L1和L2高速缓存,但是英特尔仍然给处理器分配了大容量的8MB L3高速缓存(尽管它只是巴塞罗那处理器L2高速缓存的一半,但确是其L3高速缓存速度的4倍)。L3高速缓存所采用的独占高速缓存策略也能确保将探听流量降低到最小化。巴塞罗那处理器采用的是非独占高速缓存策略。

为了保证模块结构能轻松的实现处理器的设计和扩展,L3高速缓存事实上并非主核心的组成部分,而是处理器额外的构建模块。同样,核心,QPI和集成内存控制器都是组成Nehalem处理器基础设计的构建模块。以下来自英特尔的图示较好的阐述了这些构建模块在实现处理器设计时的用途,并以图例的形式对期待中的四核处理器与可能的8核处理器进行了对比。按照英特尔的想法,他们甚至有可能在中央处理器中集成一个图形核心。但是对于这种可能性还没有什么可靠消息。或许也等到今年底Nehalem处理器出炉之时才能知晓,因此对于将来有可能出现的集成图形核心的细节确实很有很多值得期待。

深度解析Nehalem

以上已经介绍了Nehalem处理器平台及微体系架构最重要的几个部分即英特尔QPI总线技术,中央处理器的集成DDR3内存控制器和最新的三级高速缓存。不过中央处理器的处理模块也同等重要。Nehalem处理器每个核心都采用4-issue执行引擎设计(首次出现是在Conroe台式机处理器上),在高效性上都有了进一步的提升和改进:

增强并行计算功能–自英特尔目前的多数处理器都采用了乱序执行体系架构以来,进一步增强并行计算能力的的方法之一就是增大乱序窗口的尺寸来允许执行更多的指令,尽可能减少延迟使更多的并行独立运作成为可能。在Core体系架构上,并行计算可以同时处理96个微指令(mico-ops),Nehalem处理器将乱序窗口尺寸扩大了33%,这样就能同时处理128个微指令。同时增加了调度程序和其他相关的缓冲模块来提供支持。

更加高效的运算法则–英特尔采用最新的微体系架构对其运算法则,能加速处理分支的错误预测。每个核心新增了二级分支预测。提高了硬件的预取能力。多线程软件中的线程同步也有助于性能的提升。

增强分支预测–除了用于处理分支预测更为有效的运算法则之外,Nehalem处理器还能执行二级分支目标缓存(BTB),对于数据库这样的大型代码脚本非常有用。二级分支目标缓存(BTB)不仅能预测分支的路径,而且能够通过分支对信息进行高速缓存,这样能有助于减少性能损耗。因此如果发生了错误预测,BTB就能利用其它分支的高速缓存信息。硬件执行重命名堆栈返回缓存(RSB)能避免指令错误预测的公共回路。

同步多线程(SMT)–英特尔的超线程技术正在卷土重来,但是这次是作为同步多线程(SMT)横空出世,英特尔宣称这是之前技术的加强版。如果你回想一下硬件的超线程技术,你会发现同步多线程(SMT)就是最新的多核心处理器,英特尔重申虽然这是同一个概念,但最优化方面却有所不同。当处理器是单核心时,采用超级线程技术在未使用的处理器注册器上同步执行两个线程能提升处理器的性能和有效性。当多核处理器面世后,我们都知道超线程技术就不再适用了,因为它只能使执行变得更糟。

随着时间的推移,主要针对多核处理器设计的同步多线程拥有了更多的缓存,更大的内存带宽和资源,能支持更多的应用程序。如今英特尔在Nehalem处理器上将超线程技术老话重提。同步多线程(SMT)实现了在每个核心上同步运行的所有线程数量的翻倍。因此首次采用Nehalem微体系架构的四核处理器将具备同步执行8线程的能力。这也取决于每个核心的资源实用性。同步多线程技术能将应用软件的性能提升20%到30%,能量消耗也会有轻微上扬。因此应用软件和工作负载使用越多的线程,就能获取更佳的性能。

英特尔SSE4.2指令集–这并非新的SSE标准而是英特尔公司除了SSE4支持外为最新的应用软件目标加速器定义的指令集。SSE4指令集所提供的支持与Penryn处理器是一样的,但是英特尔在Nehalem处理器中增加了七个最新的应用软件目标加速器来提升体系架构加速字符串和文本处理程序(诸如XML)的处理能力。SSE4.2指令集对XML无论是在应用软件还是在数据库中的应用,都对其性能的提升有所帮助。

改进的虚拟化性能–自从Nehalem处理器首次在服务器和工作站领域亮相以来,英特尔公司对Nehalem处理器在虚拟化环境中性能的提升也做出了努力。Nehalem处理器将是首个支持英特尔扩展页面表(Extended Page Table,EPT)特点的服务器,EPT也是英特尔Nested
Paging特点的一个版本,AMD公司的第二代和第三代皓龙处理器也有这个特性。