Nehalem的遗憾——英特尔Sandy Bridge处理器分析测试之一

Sina WeiboBaiduLinkedInQQGoogle+RedditEvernote分享




原文发布于《计算机世界》2011年第3期

Nehalem 的遗憾

——英特尔Sandy Bridge 处理器分析测试之一

计算机世界实验室 盘骏

英特尔的“Tick-Tock” 战略已经为人熟知,根据这个策略,英特尔每年都会交替在处理器的制程和微架构上进行更新。上一年,英特尔将处理器工艺从45nm 提升到了32nm,今年,英特尔将处理器架构从Nehalem 升级到最新一代的Sandy Bridge,这个早期被叫做Gesher(希伯来文:桥梁)的处理器微架构担任着特别的桥梁角色。

Bridge 和Gesher 都含有桥梁的意思。而Sandy Bridge 微架构将这个含义发挥到了极致,它是一个集NetBurst 微架构与Nehalem 微架构大成的产品,也是一个首先将CPU和GPU 进行真正融合的产品,更是一个首先将浮点运算密度从128 位引向256 位的X86 处理器产品,它确实像是一个桥梁,引导着芯片设计上和计算模式上的转变。

Sandy Bridge 微架构为什么会是现在这个样子呢? Sandy Bridge 在上一代Nehalem 微架构的基础上进行改进,如果不了解Nehalem 微架构,就无法真正理解Sandy Bridge的进化。

Nehalem 无疑是一个很成功的架构,QPI、IMC 带来的直联架构,再加上超线程的回归,其性能比起上一代提升了一到两倍以上,在企业级市场、主流乃至高端桌面市场以及移动市场的压倒性的占有率充分地说明了Nehalem 的强大。当然,Nehalem 微架构也不是完美的,以笔者的眼光看来,至少有几点Nehalem 微架构是有待改进的:

指令拾取和预解码

Nehalem 微架构在Pentium M微架构的基础上进行改进,整个流水线上几乎所有的组件都得到了增强,变化最少的就是在指令拾取和预解码阶段了。这个阶段的作用是将要执行的指令从L1 I-Cache 中提取到CPU 核心里面来,并随后对其进行预解码。预解码的主要作用就是在一块代码块中辨认每条x86 指令的长度。

和Penryn 一样,Nehalem 以及其改良版Westmere 都仍然采用了16Bytes 的指令拾取宽度,而竞争对手早已经采用了32Bytes 的拾取宽度。由于x86 指令的长度可以从1到15Bytes,因此在很糟糕的情况下,某个时钟周期拾取到的代码块里只包含一个x86 指令,和后端动辄6个、4 个uop(微指令)的能力不相符合。Nehalem 微架构的指令拾取/预解码单元无法跟上后端处理的速度,因此在运行计算密集型的代码中,它很容易成为瓶颈。

寄存器读停顿

这个情形发生在uop 经过RAT(Register Alias Table,寄存器别名表)进行寄存器重命名并发往ROB(ReOrder Buffer,重排序缓冲)之后,在这个被称为ROB-read 的流水线阶段中,uop 们需要读取相关的操作数,也就是读取对应的寄存器,如果这些内容在ROB 当中不存在的话。Nehalem 微架构的RAT 每时钟周期可以输出4 个uop,每个uop可以具有最多两个输入寄存器。这样它最多需要同时读取8 个寄存器。不幸的是,Nehalem 微架构用于保存寄存器的RRF(Retirement Register File,回退寄存器文件)仅具有3 个读取端口,无法充分满足寄存器读取的需求,这很容易导致ROB-read 以及前方流水线的停顿。

访存能力

Nehalem 微架构具有6 个执行端口,其中的3 个运算端口具有充足的计算能力,基本不会是瓶颈。然而,访存能力却不一定足够。Nehalem 微架构只有一个Load 载入端口和一个Store 保存端口。由于Load 操作是如此常见,可以达到uop 总数的1/3,因此相对于3 个运算端口,这个Load 端口是个潜在的瓶颈,特别是对于内存密集型计算来说。

最后, 早期的Nehalem 架构上还存在大页面TLB 数量较少的问题,TLB:Translation Lookaside Buffer,旁路转换缓冲,或称为页表缓冲,里面存放的是虚拟地址到物理地址的转换表。Nehalem 具有较多的标准4KB 页面TLB 项,但是更大容量页面的TLB 很少,因此,相对来说不适合大规模内存下的应用(如大型数据库和大型虚拟化环境,后来的Westmere 通过增加了对1GB 页面的支持缓解了这个问题)。

除了Nehalem 微架构的一些问题之外,英特尔或者说CPU 本身还面临着挑战,来自GPU 的挑战。目前,主要的GPU 厂商包括NVIDIA和AMD ATI 都提供了超越CPU 的强劲浮点处理能力,很多超级计算机通过采用了附加GPU 的方式获得了很强的计算指标。CPU 能力的增强导致了如硬件解压卡、独立声卡被融合进CPU,而GPU 强大的处理能力则被认为是CPU 的有力挑战者。如果运算能力足够强大,CPU 被GPU 取代也不无可能,英特尔怎么应对这个局面? Sandy Bridge 进行了什么样的改进、能不能解决这些问题呢?请看下回分解。

(4个打分, 平均:5.00 / 5)

雁过留声

“Nehalem的遗憾——英特尔Sandy Bridge处理器分析测试之一”有21个回复

  1. 吴朱华 于 2011-01-18 4:52 下午

    听说这次是以色列Team的设计,应该不错

  2. 编译点滴 于 2011-01-18 5:35 下午

    没看到很多关于sandy bridge的内容,期待下一篇

  3. Panabit 于 2011-01-18 5:51 下午

    Lucifer,快上下个章回吧!

  4. coder 于 2011-01-18 5:55 下午
  5. Panabit 于 2011-01-18 6:31 下午

    谢谢楼上coder兄弟,我先读取了. :)

  6. Mine 于 2011-01-18 7:10 下午

    期待下一篇~

  7. coder 于 2011-01-18 8:00 下午

    David Kanter 那个网站好多年了。 Linus 天天在那乱喷….

  8. Lucifer 于 2011-01-18 8:19 下午

    下一篇要等下周啦,早上刚写完

  9. Lucifer 于 2011-01-18 9:33 下午

    媒体界的处理器牛人不多,日本有个,台湾有个……david坚持多年不易那

  10. coder 于 2011-01-18 9:39 下午

    @Lucifer 台湾?水球?

  11. Lucifer 于 2011-01-18 9:46 下午

    @coder 呀,可惜被墙了

  12. coder 于 2011-01-18 9:59 下午

    没事 墙了就靠你了。 他作的figure 都挺好玩的。我还贴到墙上了….

  13. Lucifer 于 2011-01-18 11:16 下午

    嗯,这几个人都各有所长,对每一代处理器的看法也不太一样,挺有趣的

  14. kevin 于 2011-01-19 12:26 上午

    描述太多,数据太少
    这些“遗憾”对软件的影响量化分析是什么。没有

  15. Lucifer 于 2011-01-19 1:44 上午

    是,没有,也不会有,能力有限

  16. Lucifer 于 2011-01-19 2:00 上午

    还有,时间有限,系列文章之二的架构图还在制作当中- -希望到了下周能够完成……

  17. kevin 于 2011-01-19 9:27 上午

    估计是我能力有限吧。
    无法跟作者一同分享这种遗憾的感觉。。。

  18. Lucifer 于 2011-01-19 11:09 上午

    遗憾的东西总是太多- -还是把握现在能做的东西吧

  19. Kory Wiggins 于 2011-01-20 3:10 上午

    …………………………Intel may not release its upcoming Nehalem EX line of Xeon chips for servers that have four or more processors until early next year an Intel executive said. What youll get at the beginning of next year – late this year or the beginning of next year – will be the push into the four-socket eight-socket and above space said Shannon Poulin Xeon platform director in Intels Server Products Group discussing the Nehalem EX release schedule during an interview.Nehalem EX is Intels next-generation line of x86 server chips designed for servers with four or more processors.They are expected to have up to eight cores on a single chip in addition to an on-chip memory controller and support for Intels QuickPath Interconnect technology which greatly increases memory bandwidth.On Intels product roadmap the Nehalem EX processors follow the Nehalem EP chips released Tuesday which are designed for servers and workstations that use one or two processors. The EP variants have up to four cores on a single processor.Intel executives have not given a firm release date for Nehalem EX but they have previously said the chip would likely be released during the second half of this year.In recent years Intel updated its high-end server chips in September suggesting the same might happen this year. For example last year Intel released its six-core Dunnington processors in SeptemberWith the chips now set to hit the market later than September this suggests a slower product release cycle than in recent years.But Poulin said putting the Nehalem EX chips on the market at the beginning of 2010 doesnt mean theyre coming late.

  20. 张弛 于 2011-01-24 4:53 下午

    CNW转走了哈

  21. ivy 于 2011-03-16 7:53 上午

    顶一个