PCEVA,PC绝对领域,探寻真正的电脑知识
打印 上一主题 下一主题
开启左侧

经典文章共赏:Intel Core微架构解析

[复制链接]
跳转到指定楼层
1#
石头 发表于 2012-9-28 20:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
点击数:9848|回复数:35
此文为清华大学硕士生雨潇撰写,于2006年5月发布在超频网。本文创作背景是,当时intel发布酷睿2在即,国外很多网站都有非常多的架构分析文章。为了让国内的读者更熟悉这款产品,我找到当时的热心读者雨潇,找他约稿。他通过对外文资料的阅读与理解,将很多内容编纂到一起,并加入了自己大量原创的分析,最终成文。文章内容深入浅出,将酷睿2架构进行了全面的分析,堪称经典,值得长久的收藏与回味,也能学到大量的处理器相关知识,并作为典范级技术流玩家的能力展示于此。

Intel Core微架构解析

作者:雨潇
时间:2006-04-26

引言

近年来,Intel 原本寄以厚望、号称频率将提升至10GHz的 NetBurst 微架构屡遭重创。采用90nm制造工艺的 Prescott 遭遇功耗过高、散热困难的问题,原定推出的4GHz的 Pentium 4 580被无限期推迟。而后继产品,原定时脉超过5GHz的 Tejas 惨遭腰斩,6GHz的 Nehalem 也无疾而终。NetBurst 微架构遭遇无法解决的功耗问题,发展受阻,固然有90nm制造工艺漏电严重的影响,但是 Intel 同样采用90nm制造工艺的移动平台的 Dothan 处理器却在功耗方面有良好的表现。这使我们不得不认为,功耗问题多半是由 NetBurst 微架构先天设计上的缺陷引起的。与此同时,竞争对手 AMD 的 K8 处理器在性能和功耗两方面都表现良好,正在桌面和服务器平台上侵占原本属于 Intel 的市场,势头迅猛。这也迫使 Intel 只能选择重新研发兼具高性能与低功耗的微架构。

2006年3月上旬,Intel 于美国旧金山举办了2006年度的春季 IDF 大会(Intel Developer Forum)。在这届 IDF 大会上,有一个万众瞩目的焦点:Intel 宣布下一代处理器将采用的 Core 微架构。这也使得今年的 IDF 大会成为近几年来最激动人心的一次。在去年秋季的 IDF 大会的开幕主题演讲中,Intel 的执行长官 Paul Otellini 就曾经指出,未来处理器的技术发展重点将是“性能功耗比”(Performance per Watt)。而这届 IDF 大会的主题更加明确:功耗最优化平台(Power-Optimized Platforms)——与 Core 微架构紧密相关。根据 Intel 的说法,采用新的 Core 微架构的处理器将在整数性能和商业计算方面得到极大的飞跃,肯定将超过竞争对手 AMD 的产品。更加美妙的是,拥有这样强悍性能的 Core 微架构在功耗方面将比前任大幅下降,从而完美的体现了这届 IDF 大会的主题。

Core 微架构是由 Intel 位于以色列海法的研发团队负责设计的。该以色列团队早在2003年就因为设计出兼具高性能与低功耗的 Banias 处理器而闻名天下,Core 微架构也是他们在 Yonah 微架构之后的最新杰作。Core 微架构很早就出现在 Intel 的计划之中了,早在2003年夏天 Intel 就曾经隐约提到过,原定是 Centrino 平台的第三代 Napa 平台后期和第四代 Santa Rosa 平台所采用的处理器。没想到由于 NetBurst 微架构的失败,Core 微架构被 Intel 改弦易辙,推上前台,被赋予了取代 NetBurst 微架构、一统桌面、移动与服务器平台的历史使命。

之前,Intel 最新的 X86 微架构是出自以色列设计团队之手的 Yonah 微架构。而 Yonah 微架构被认为是从古老的 Pentium Pro 架构(P6 微架构)演变而来的。与之前 Pentium 4 采用的 NetBurst 微架构发布时提供的详细文档和资料相比,对 Yonah 微架构,Intel 只披露了很少的相关资料,而且 Intel 很可能将继续对关于 Core 微架构的详细资料守口如瓶。在这种情况下,本文集中了目前可以得到的所有资料,将是业界详细了解 Core 微架构的好机会。

Intel 的新核心已经拥有多个名字。以色列团队在设计之初,采用 Merom 作为开发代号。Merom的原意是约旦河附近的一个湖,这也是 Intel 的一个有趣的习惯——采用研发团队居住地附近的地名作为产品的开发代号。然后,Intel 在2005年开始大规模宣传该微架构的时候,把它描述为“下一代微架构”(Next Generation Micro-Architecture,简称NGMA)。而在今年的IDF大会上,Intel 把它正式宣布为“Core 微架构”(Core Micro-Architecture)。本文也将采用“Core 微架构”作为对新核心的正式称谓。在 Intel 的 Roadmap 上,“Core 微架构”的移动平台的产品代号为“Merom”——以色列团队一开始采用的研发代号,桌面平台的产品代号为“Conroe”,而服务器平台的产品代号为“Woodcrest”。

听完了 Intel 的说法,你也许还是对 Core 微架构的性能没有一个清晰的概念,或者有所怀疑。那么,在进入正文之前,我们先看一看下面展示的 Core 微架构的桌面产品 Conroe 在 SuperPi 1M测试中的表现:3.1GHz下16s时间完成!已经打破之前的世界纪录。采用 NetBurst 微架构的 Pentium 4 处理器超频到6GHz左右,或者 AMD 的 K8 处理器超频到4GHz左右,在这个测试中的速度都是20s左右。当然,SuperPi 测试并不能全面反映处理器的性能,而且,在进一步阅读了后面的 Core 微架构的更全面的测试之后,你会发现 SuperPi 测试算是对 Core 微架构最有利的测试之一。不过,这并不影响 Core 微架构给我们带来的震撼感。


图1  Conroe 处理器进行 SuperPi 测试

本文中,我们首先将带领读者来了解 Core 微架构的秘密,并对其中各个功能单元进行详细的分析。为使读者对 Core 微架构的改进有清晰的概念,我们总是把 Core 微架构和 Yonah 微架构以及 NetBurst架构放到一起进行对比。如果你只想知道采用 Core 微架构的处理器在性能上究竟能达到怎样的高度,那么可以跳过前面的架构解析部分,直接阅读后面的性能评测部分。如果你不仅想“知其然”,还想“知其所以然”,那么,架构解析部分应该可以给你一个比较清晰的概念。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
2#
石头  楼主| 发表于 2012-9-28 20:34 | 只看该作者
关于 Core 微架构

Intel 的 Yonah 处理器是第一个共享式二级缓存的双核处理器设计,然而,共享式二级缓存的优势在移动平台上却不能完全发挥出来。共享式二级缓存的芯片级多处理器(Chip Multi-Processer,简称CMP)设计的最大优势在于它可以不考虑缓存一致性问题,而分别独占二级缓存的多核处理器需要时刻注意保持缓存一致。这正是工作站和服务器需要面对的一个主要问题,而相比之下移动平台和桌面平台并不迫切需要解决这个问题。基于这种考虑,采用 Core 微架构的Woodcrest 处理器将比之前的服务器芯片有质的提高,因为之前的芯片没有任何一款采用共享式二级缓存的设计。此外,Intel 还表示,Core 微架构可以在两个核心的一级数据缓存之间直接传输数据,但是 Intel 的工程师拒绝再继续透露更多相关的细节。下面的图片对比了NetBurst 微架构、Yonah 微架构和 Core 微架构的总体架构。


图2  Intel 三代架构总体对比

从总体架构来看,Core 微架构继承了 Yonah 微架构的设计方式,包括共享式二级缓存和前端总线。同时,Core 微架构的内部连接单元的带宽与 NetBurst 微架构的连接带宽接近,远远超过 Yonah 微架构——片上缓存与内核通讯的带宽远超 Yonah 微架构,与外部的连接带宽更是达到了 Yonah 微架构的2倍。跟前面提到的一样,这些改进虽然对移动平台和桌面平台意义不太大,但是对多路服务器系统来说非常有用。

Intel 将在今年下半年陆续发布 Woodcrest、Conroe 和 Merom,服务器、桌面和移动平台三箭齐发,其中 Woodcrest 和 Conroe 应该会早一些,Merom 应该到今年第四季度才能看到。为什么这样说?如果你熟悉目前的处理器市场的情况,你就会知道,在移动平台的市场方面,得益于 Intel 的极其成功的 Centrino 平台,Intel 占据了绝对主动的地位,并且在短时间内应该不会有什么意外的情况发生,并且 Yonah 处理器在今年一月份刚刚发布;在服务器平台的市场方面,应该说 Intel 已经稍微落在了 AMD 的后面;而目前桌面平台的市场是对 Intel 最不利的。所以,对 Intel 来说,更重要的是尽快发布 Woodcrest 和 Conroe,改变自己在服务器平台和桌面平台的竞争力。至于移动平台,要排到后面去了。况且,从财政方面考虑,Intel 肯定不愿意 Yonah 处理器的生命周期过短。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
3#
石头  楼主| 发表于 2012-9-28 20:36 | 只看该作者
总体架构

作为 Intel 的新旗舰,Core 微架构拥有双核心、64bit指令集、4发射的超标量体系结构和乱序执行机制等技术,使用65nm制造工艺生产,支持36bit的物理寻址和48bit的虚拟内存寻址,支持 Intel 所有的扩展指令集。Core 微架构的每个内核拥有 32KB 的一级指令缓存、32KB 的双端口一级数据缓存,然后2个内核共同拥有 4MB 的共享式二级缓存。Core 微架构在今年内发布的最高频率将是 Conroe XE 的3.33GHz。每种产品拥有自己的最高 TDP:Merom 最高35W,Conroe 最高65W,Woodcrest 最高80W。此外,针对不同客户的要求也可以提供低功耗的版本。例如,低电压版本的 Woodcrest 将会定位于刀片系统,通过降低频率等方法使 TDP 低达40W。

下图是 Core 微架构的内核总体架构图。图中各个功能单元用不同的颜色来划分。左上角的紫色单元是取指单元,负责从指令缓存中取出指令并进行分支预测等工作;橙色的部分是解码单元,负责把取出的指令解码,并生成微指令;黄色的部分是微指令缓冲区和微指令调度单元;蓝色的部分是执行单元;绿色的单元是存储单元。
作为比较,Yonah 微架构和 NetBurst 微架构的核心架构图也列在下面。


图3  Core 微架构


图4  Yonah 微架构


图5  NetBurst 微架构

让我们提示一下 Core 微架构中的每个核心在每个周期可以做的工作:在最好的情况下,每周期可以取指160bit以上(Intel 没有透露更具体的数字),解码5条X86指令,发射7条微指令,重排序和重命名4条微指令,发送6条微指令至执行单元,完成并退出4条微指令。从任何一个方面来看,这个架构都是比 NetBurst 微架构或者 Yonah 微架构更宽的架构,拥有更宽的流水线、更高的并行度。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
4#
石头  楼主| 发表于 2012-9-28 20:36 | 只看该作者
流水线级数

Intel 声称 Core 微架构拥有14级“有效”流水线。与 Banias 同出于一个设计团队,Core 微架构仅有14级的整数流水线,并不让人意外。但是,究竟什么是14级“有效”流水线?

在过去的几年里,有关流水线级数的几个概念经常被混淆。我们首先澄清一下,流水线的“条数”与“级数”是完全不同的概念。能够完整执行各种指令的一系列功能单元组成“一条”流水线。而关于流水线级数,可以这样简单理解:在传统意义上,一条流水线所包含的功能单元一般可以被划分为多个部分,它可以被划分成几个部分,就称这条流水线是“几级”的。

然后让我们来了解一下“有效流水线”的定义,这也是在过去容易造成误解之处。简而言之,所谓的有效流水线,就是指发生分支预测错误时,所需要重新执行的流水线级数。以采用 NetBurst 微架构的处理器来说,Willamette、Northwood与Prescott核心的有效流水线级数分别是20、20和31,而原始的P6 微架构的处理器则是10级。

不过,对于现代的普遍采用乱序执行方式的X86处理器来说,有效流水线级数并不能代表真正意义上的流水线级数。NetBurst 微架构的处理器仅仅是 Trace Cache 的 Trace 建立过程,就有起码10级;P6 微架构的完整流水线级数应该是12至15(10级有效流水线加上指令执行完毕后的 Retire 动作,与可能出现的 Reorder Buffer延迟)。随着乱序执行引擎的工作方式越来越复杂,X86处理器流水线级数的概念也日益模糊。换言之,Core 微架构真正意义上的流水线级数并不会只有14。

Core 微架构的14级有效流水线与 Prescott 核心的31级有效流水线的对比,也只有参考意义。那些仅仅根据这个数字的对比就断言 Core 微架构只能达到很低的频率的说法是不具有足够的说服力的。Conroe XE 3.33GHz 处理器的存在已经让很多相信这个说法的用户大吃一惊。而实际上,已经有玩家声称,Conroe 处理器可以在风冷的情况下达到4GHz以上的频率。Core 微架构的频率到底能够到达什么样的高度,让我们拭目以待。

接下来,我们将对 Core 微架构的各个功能单元进行更加详细的分析。
5#
石头  楼主| 发表于 2012-9-28 20:38 | 只看该作者
四组解码单元

首先我们可以明确的指出,毫无疑问,Core 微架构是一个比 NetBurst 微架构或者 Yonah 微架构更宽的设计。下图是这三代微架构在前端的比较,三者的解码单元的构成可以初步表明这一点:Core 微架构拥有4组解码单元,每周期可以生成7条微指令;Yonah 微架构拥有3组,每周期可以生成6条微指令;而 NetBurst 微架构由于解码方式不同,不容易比较解码单元的数目,但是我们可以知道,NetBurst 微架构每周期只能生成3条微指令。


图6  Intel 三代微架构前端对比

在对 Core 微架构的解码单元进行详细介绍之前,我们先来了解一下 Yonah 微架构的解码单元。实际上,Yonah 微架构基本上是沿用了古老的 P6 微架构的解码单元设计,采用3组解码单元,由2组简单解码单元和1组复杂解码单元组成。其中2个简单解码单元负责处理对应1条微指令的简单X86指令,而1个复杂解码单元负责处理对应4条微指令的复杂X86指令,这样的解码单元每周期最多能生成6条微指令。P6 微架构的这种历史久远的解码方式被形象的称为“4-1-1”规则。

实际上,这种把简单指令与复杂指令分而治之的做法,并非是 P6 微架构的专利。从全世界第一个流水线化的X86处理器——80486开始,为了加速简单指令的执行,这原则就已经开始主导所有高速X86处理器的微架构。就算是号称提供三组“完整解码单元”的 AMD K7、K8 处理器,实际上也有类似的限制。

不过,Yonah 微架构在指令解码单元上的改进,以及 SSE 指令解码方式的改变,却带给我们另一个思考的方向。与原始的 P6 微架构不同,Yonah 微架构的2组简单解码器都可以进行128bit SSE 指令的解码。而在过去,这只有复杂解码单元才能胜任。换言之,如果 Core 微架构的所有4组解码单元都具备了这样的能力,结合更强的微指令融合技术和宏指令融合技术(见后文),Core 微架构的解码单元的实力将几乎等同于“4-2-2-2”,甚至“4-4-4-4”。

Core 微架构把解码单元增加到4组,这个变化可以说是 Core 微架构最大的特色之一。自从 AMD 失败的 K5 设计之后,已经有超过十年的时间,X86处理器的世界再也没有出现过4组解码单元的设计。因为X86指令集的指令长度、格式与定址模式都相当混乱,导致X86指令解码器的设计是非常困难的。Intel甚至在 NetBurst 微架构的设计中引入 Trace Cache 来取代占用大量晶体管的复杂解码单元。而增加解码单元,特别是复杂解码单元,固然会大大增强处理器的解码能力,但是解码单元复杂的电路也必然会提高内核的复杂度和处理器的功耗。

在处理器频率不可能达到 NetBurst 微架构那种高度的前提下,为了能显著提高处理器的性能,最有效的途径就是增加执行单元的数量。就像你将在后文看到的那样,Core 微架构执行单元的数量比 Yonah 微架构增加了50%。而仍然采用与 Yonah 微架构相同的3组解码单元是不可能“喂饱”这样庞大的执行资源的。所以,我们甚至可以说,Intel 是“被逼”选择增加解码单元的数量的。权衡利弊,Intel 最终选择了增加1组简单解码单元的折衷方案。至少从最终的效果来看,这样的选择还不算差。

为了配合这超宽的4组解码单元,Core 微架构的取指单元也需要加宽。Intel 没有透露取指单元的具体宽度,但是我们可以从其它指标中估计出这个数字:Core 微架构每个周期可以解码最多5条指令,而X86指令的平均长度大约为32bit,因此取指单元的宽度至少为160bit。目前有一种尚未得到证实的说法声称,Core 微架构取指单元的宽度为192bit,仅供参考。

取回的指令被送到预解码缓冲区,该缓冲区还存放了关于指令长度和解码边界的信息。预解码缓冲区至少可以容纳10条X86指令,很可能可以容纳更多(Intel 也没有透露更加具体的数字)。

现在让我们总结一下 Core 微架构的解码单元:Intel 在 Core 微架构上取消了 NetBurst 微架构上的有些令人失望的追踪缓存(Trace Cache),而是安置了多达4个解码单元,其中,有3个简单解码单元来处理对应1条微指令的简单X86指令,而1个复杂解码单元来处理对应4条微指令的复杂X86指令。并且,与 Yonah 微架构一样,所有的SSE指令都可以被简单解码单元处理,生成1条微指令。我们可以把解码部分简单的总结为“4-1-1-1”方式。此外,如果遇到非常复杂的指令,复杂解码单元还可以借助旁边的微码存储器(Microcode Sequencer),取得微指令序列。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
6#
石头  楼主| 发表于 2012-9-28 20:40 | 只看该作者
微指令融合与宏指令融合

微指令融合(Micro-Op Fusion)是从 Banias 核心开始出现的技术,随后的 Yonah 微架构和 Core 微架构也都具备该技术,并不断进行改进。该技术通过减少X86指令解码后生成的微指令的数目,来降低乱序执行引擎和执行单元的压力,从而达到提升处理器效率的目的。

首先让我们解释一下什么是微指令(Micro-Op)。由于X86指令集的指令长度、格式与定址模式都相当复杂,为了简化数据通路(Data Path)的设计,从很久以前开始,X86处理器就采用了将X86指令解码成1个或多个长度相同、格式固定、类似RISC指令形式的微指令的设计方法,尤其是涉及存储器访问的 load 及 store 指令。所以,现在的X86处理器的执行单元真正执行的指令是解码后的微指令,而不是X86指令。

微指令融合技术,以及 Intel 的专属栈引擎技术(Dedicated Stack Engine),目的都在于减少微指令的数目。处理器内部执行单元的资源有限,如果可以减少微指令的数目,就代表实际执行的X86指令增加了,可以显著提升执行效能。而且,微指令的数目减少还有助于降低处理器功耗,可谓有益无害。

微指令融合技术所支持的范围,包括了整数运算、浮点运算和SSE2指令集等各种扩展指令集。根据 Intel 的官方说法,通过微指令融合技术,整数运算大约可以提升5%的性能,浮点运算大约可以提升9%的性能。

如今SSE、SSE2和SSE3等扩展指令集的重要性与日俱增,但是这些SIMD指令的存储器访问操作——尤其是128bit的操作——一般都需要解码成多条微指令,造成执行效率不高。在 Yonah 微架构与 Core 微架构中,这种类型的操作在很多时候可以解码成1条微指令,从而降低了后端执行单元的压力,对提高SIMD指令的执行效率有不小的帮助。

细心的读者可能会发现,我们前面曾经提到,Core 微架构每个周期最多可以解码5条X86指令。奇怪的是,这里只有4个解码单元。那么,怎样才可以做到解码5条指令呢?这就需要介绍 Intel 在 Core 微架构的前端引入的一项新的技术——宏指令融合(Macro-op Fusion)。

所谓宏指令(Macro-Op),即X86指令。宏指令融合技术的引入使得 Core 微架构在前端可以把2条宏指令融合为1条微指令。例如,X86指令中的cmp指令或者test指令可以与jmp指令融合,产生仅1条微指令。而宏指令融合技术也可以与程序中常见的 if-then-else 结构很好的配合。还有传言声称,Core 微架构还可以将某些连接在一起、有依赖关系的浮点乘法与加法指令结合为1条微指令。最后,4个解码单元中的任何一个都可以执行宏指令融合操作,然而每个周期最多只能有1个解码单元执行宏指令融合,所以最大的解码宽度为每周期5条X86指令。

下面的例子显示了宏指令融合技术的工作方式与效果。


图7  没有宏指令融合技术


图8  采用宏指令融合技术

虽然 Intel 再次拒绝透露宏指令融合技术的具体效果,但是一些估算表明,宏指令融合技术可以把处理器需要执行的微指令的数目降低10%——已经是非常巨大的提升了。

宏指令融合技术的优点是显而易见的,降低处理器需要执行的微指令的数目可以在两个方面提高处理器性能。首先,也是十分直观的,执行单元只需执行更少的微指令,直接提高处理器性能。其次,微指令缓冲区相当于容纳了更多的X86指令,乱序执行引擎可以从中更有效的发现能够并行的指令,也就是说,有利于实现更高的指令级并行度(Instruction Level Parallelism,简称ILP)。当然,这些优点与以前 Yonah 微架构就拥有的微指令融合技术(Micro-Op Fusion)十分相似所带来的十分相似。但是,同时拥有宏指令融合技术和微指令融合技术使得 Core 微架构可以比 Yonah 微架构节省更多的执行单元资源和拥有更好的指令级并行度。也许,具有讽刺意义的是,宏指令融合技术和微指令融合技术正在使得 X86 处理器的内核更加接近 CISC 架构,而不是 RISC 架构。这与 Intel 当年推出 IA-64 架构的想法正在背道而驰。

结合微指令融合与宏指令融合技术,与之前的 Intel X86处理器相比较,Core 微架构的解码单元的实际能力,还要远远大于表面上所看到的4组解码单元的数量。

Core 微架构前端的改进还包括分支预测单元。分支预测行为发生在取指单元部分。首先,它使用了很多人们已经熟知的预测单元,包括传统的 NetBurst 微架构上的分支目标缓冲区(Branch Target Buffer,简称BTB)、分支地址计算器(Branch Address Calculator,简称BAC)和返回地址栈(Return Address Stack,RAS)。然后,它还引入了2个新的预测单元——循环回路探测器(Loop Detector,简称LD)和间接分支预测器(Indirect Branch Predictor,简称IBP),其中循环回路探测器可以正确预测循环的结束,而间接分支预测器可以基于全局的历史信息做出预测。Core 微架构在分支预测方面不仅可以利用所有这些预测单元,还增加了新的特性:在之前的设计中,分支转移总是会浪费流水线的一个周期;Core 微架构在分支目标预测器和取指单元之间增加了一个队列,在大部分的情况下可以避免这一个周期的浪费。看起来很微不足道?要知道,对微内核设计来说,节省每一个可以节省的周期就是最大的目标;对已经发展了很多年的设计进行改进也是非常非常困难的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
7#
石头  楼主| 发表于 2012-9-28 20:41 | 只看该作者
乱序执行引擎

Core 微架构的乱序执行引擎与 Yonah 微架构的设计类似,但是引入了更多的资源。如下图所示,Core 微架构与 Yonah 微架构在乱序执行引擎方面非常相似,包括寄存器别名表(Register Alias Table),分配器(Allocator)和乱序缓冲区(Reorder Buffer,简称ROB)。区别在于,所有的这些单元都被加大加宽,这样才可以配合更强劲的前端,容纳和调度更多的微指令,寻求更高的指令级并行度。


图9  Intel 三代微架构乱序执行引擎对比

NetBurst 微架构和 Yonah 微架构的最大吞吐量都是每周期3条微指令。相比之下,Core 微架构的最大吞吐量是每周期4条微指令。NetBurst 微架构的乱序缓冲区容量是126项,对 Yonah 微架构来说是多于40项,而 Core 微架构的乱序缓冲区容量是96项。

Core 微架构的保留站(Reservation Station)同样被加大:从 Yonah 微架构的24项增大到32项。这方面与 NetBurst 微架构的比较有一些困难,因为 NetBurst 微架构采用了分布式调度器(Distributed Scheduler),而不是保留站。不过我们还是可以了解一些数字:NetBurst 微架构拥有46个调度槽(Scheduler Slot),存储单元使用8个,执行单元使用38个。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
8#
石头  楼主| 发表于 2012-9-28 20:43 | 只看该作者
执行单元

Intel 没有过多的透露关于乱序执行引擎的资料,但是对执行单元子系统的相关资料毫不吝啬,言之甚详。Core 微架构的执行单元部分拥有3个调度端口,通过这3个端口来调度执行单元。执行单元包括3个64bit的整数执行单元(ALU)、2个128bit的浮点执行单元(FPU)和3个128bit的SSE执行单元,或者更准确的说法应该是,向量执行单元或SIMD执行单元。其中,位于端口1的整数执行单元可以处理128bit的Shift和Rotate操作。而2个浮点单元和3个SSE单元共享某些硬件资源。NetBurst 微架构和 Yonah 微架构的执行单元子系统也在图中列出作为比较。


图10  Intel 三代微架构执行单元对比

很明显,我们首先注意到 Core 微架构拥有3个调度端口——比 NetBurst 微架构和 Yonah 微架构的2个端口增加了1个。所以,Core 微架构的执行单元子系统每个周期最多可以执行3条操作,而 Yonah 微架构最多只能执行2条。需要注意的是,对于 NetBurst 微架构来说,并不是2条。NetBurst 微架构的调度机制使得每个周期最多可以执行4条操作,但是这种情况会相当罕见——必须是4个简单的整数单元操作。并且,NetBurst 微架构在执行64bit指令时会有额外的延迟。更重要的是,Core 微架构的功能单元的统筹安排相对平衡,对于整数操作,可以在多个周期内保持单周期执行3个操作的吞吐量。而 NetBurst 微架构在很多情况下只能单周期执行1个操作。

Core 微架构所拥有的3个64bit的整数执行单元并非完全相同。与解码单元部分类似,3个整数执行单元也分为1个复杂整数执行单元和2个简单整数执行单元。不过,Core 微架构是 Intel 的X86架构处理器第一次可以在一周期内完成一次64bit的整数运算。之前的 NetBurst 微架构虽然也可以完成64bit的整数运算,但是需要2个时钟周期。另外,因为3个整数执行单元占据了不同的端口,所以采用 Core 微架构的处理器可以在一周期内最多执行3组64bit的整数运算。

Core 微构架拥有2个浮点执行单元,位于端口0的浮点执行单元负责加减等简单的浮点运算,而端口1的浮点执行单元则负责乘除等浮点运算。这样,在Core 微架构中,浮点加减指令与浮点乘除指令被划分成两部分,使其具备了在一周期中完成两条浮点指令的能力。

Core 微架构在 SSE 运算方面的性能也比它的前任有很大的提高。它的3个128bit的 SSE 单元并不是完全相同的,在移位和乘法的资源方面有微小的差异,但是都可以在单周期内完成1个128bit的 SSE 操作。相比之下,NetBurst 微架构的 SSE 单元无论在数量上还是质量上都有所不如:只有2个64bit的 SSE 单元,需要2个周期来执行1个128bit的操作。Yonah 微架构同样只有2个64bit的 SSE 单元。从SSE指令的执行资源来看,Core 微架构比 NetBurst 微架构和 Yonah 微架构有3倍的提升!

128bit的SSE执行单元有什么样的意义?让我们从 Intel 最初支持128bit的向量执行指令开始说起。当 Intel 最初兼容128bit向量执行的时候,也就是在 P6 微架构上开始出现 SSE 指令集的时候,P6 微构架的向量执行单元单周期内只能进行64bit的运算,对于处理128bit数据的指令,P6 微构架必须把该指令解码成2条处理64bit数据的微指令来执行。这样的执行方案一直沿用了下来,包括采用 NetBurst 微架构的处理器和 Yonah 处理器。

Core 微架构终于拥有了完整的128bit的向量处理单元。配合多达3组的执行单元以及load、store 存储单元,Core 微架构可在一个时钟周期内,同时执行一个128bit乘法操作、一个128bit加法操作、一个128bit load操作与一个128bit store操作,另外还有可能再加上一条经过宏指令融合的cmp/jmp指令——相当于单周期6条指令!真是令人叹为观止的指令级并行处理能力。做出如此大幅改进的 SSE 处理能力,使得 Core 微架构更加有利于多媒体方面的应用。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
9#
石头  楼主| 发表于 2012-9-28 20:44 | 只看该作者
存储单元

Core 微架构有着数量众多的执行单元,形成了超乎寻常的处理资源。这庞大的执行单元不仅要求前端提供更多的微指令来喂饱自己,也对存储单元的处理能力提出了更高的要求。下图是 Core 微架构、Yonah 微架构和 NetBurst 微架构的存储单元对比,注意 NetBurst 微架构利用“fast ALU”来计算存储地址,因此并没有独立的存储地址单元。Core 微架构的存储系统源自 Yonah 微架构的设计,但是却拥有 NetBurst 微架构的超高带宽,实在是难能可贵。


图11  Intel 三代微架构存储单元对比

Core 微架构和 Yonah 微架构的一级缓存与二级缓存都采用“写回”(Write Back)的存储方式,以64字节为存储单位。而对于 NetBurst 微架构来说,一级数据缓存采用“写直达”(Write Through)的存储方式,以64字节为存储单位;而二级缓存采用“写回”的存储方式,以128字节为存储单位。

Intel 没有给出 Core 微架构的缓存延迟,但是其一级数据缓存的延迟很可能是2个时钟周期,最多为3个时钟周期。并且,Core 微架构中的2个核心的一级数据缓存之间有一条附加的数据通路,使得2个核心可以直接交换一级数据缓存中的数据。Intel 仍然没有给出更多的资料,这种数据交换的发生是否频繁,每次数据交换传输多少数据,一次这种数据交换是否可以替代一次对二级缓存的访问,这些都还没有答案。

Core 微架构的存储单元还拥有新的预取器设计,协同共享式二级缓存进行工作。每个核心的一级数据缓存各自拥有多个预取器。而共享式二级缓存自然是共用多个预取器,在运行时,这些预取器根据改进的“Round-Robin算法”把带宽动态分配给2个内核。共享的前端总线也采用类似的方法进行仲裁。

Core 微架构的存储系统还使用了一种新的技术来解决内存混淆问题(Memory Aliasing Problem)。我们将在下面的部分详细介绍关于内存混淆问题和这种新的解决方案。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
10#
石头  楼主| 发表于 2012-9-28 20:45 | 只看该作者
内存混淆问题与相关性预测

我们首先来解释一下什么是内存混淆问题:采用乱序执行方式的处理器在面对多个load和store操作的时候也可以进行乱序执行,但是首先需要保证程序进行load和store操作的正确性。直观上这个问题与缓存一致性问题类似。下图是一个内存混淆现象的例子:第2个store操作与第9个load操作针对的是同样的内存地址,因此第9个操作不能移动到第2个操作之前执行,否则程序会得到错误的结果。但是很明显,第9个操作可以移动到第8个操作之前执行,因为它们针对的是不同的内存地址。然后,因为不知道第5个操作针对的内存地址,所以也就不能确定第9个操作是否可以移动到第5个操作之前执行。


图12  内存混淆问题示例

判断2个内存操作(通常是一个load操作与一个store操作)是否针对同一个内存地址的过程,也就是判断是否会发生内存混淆现象的过程,称为内存相关性预测(Memory Disambiguation)。如果这2个操作针对不同的内存地址,那么它们就可以乱序执行。看似很简单,但是问题在于:为了对1个load操作的相关性进行预测,存储单元需要把它与缓冲区内所有的store操作进行比较,代价十分昂贵。

在古老的 P6 微架构中,这个问题是这样解决的:把store操作分成2步,首先计算内存地址,然后再真正存储数据。这样,store操作的内存地址就可以提前获得,从而可以比较容易的检测内存混淆问题。P6 微架构的内存乱序缓冲区(Memory Reorder Buffer,简称MOB)采用如下的规则:如果在乱序执行窗口中存在与某load操作内存地址相同的store操作,则该load操作不能提前执行;如果在乱序执行窗口中存在内存地址未知的store操作,则任何load操作不能提前执行;某store操作不能提前到另外一个store操作之前执行。

这样的规则虽然可以保证程序进行load和store操作的正确性,但是也丧失了一些本来可以提高执行效率的机会:比如当某load操作之前存在某内存地址未知的store操作的时候,很可能内存地址是不同的,因此该load操作本来可以提前执行的。研究表明,实际发生内存混淆现象的概率非常小。所以,一个更加合理的做法是:假设所有的load操作与store操作之间都不发生内存混淆现象,而当错误发生的时候再进行恢复。这样做显然会有更高的效率。

Core 微架构正是采用了这种更加高效的做法:P6 微架构和 NetBurst 微架构中采用的保守的规则被丢弃了,load 操作可以在内存地址未知的store操作之前执行。这样的话,当有错误发生的时候,处理器流水线将不得不暂停运转。然而就像前面讲到的,这种情况并不多见。为了最大限度的避免这种情况的出现,Core 微架构加入了一个动态的内存相关性预测器,根据历史信息来预测load操作的移动是否可行。据有关人员透露,该预测器的预测正确率达到90%以上。

下图的例子说明了Core 微架构的这种工作方式在多数情况下会带来的性能提升:P6 微架构需要9个时钟周期才能执行完的操作,Core 微架构只需要5个时钟周期。


图13  Core 微架构的内存相关性预测

为了使读者真正认识到内存相关性预测和Core 微架构在内存相关性预测方面的改进的重要意义,我们举另外一组数据来说明。实际的X86程序中,一般有1/6左右的操作是store操作,1/3左右的操作是load操作。Core 微架构的乱序执行窗口能容纳96个操作,假如没有内存解疑技术,那么,占据乱序执行窗口一半左右的40~60个操作将只能顺序执行,这肯定将造成极大的资源浪费。这个时候,效率良好的内存相关性预测功能将带来本质上的性能提升。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
11#
石头  楼主| 发表于 2012-9-28 20:45 | 只看该作者
新指令集及其它新特性

我们已经看到,Core 微架构的每一个子单元都比以前的架构有很大的提升。除此以外,Core 微架构还引入了几项新技术,我们再一起来了解一下。

Core 微架构终于加入了对EM64T指令集的支持,弥补了 Yonah 微架构的最大缺憾。随着 Windows Vista 的到来以及 Intel、AMD 全面更换到64bit处理器,64bit计算的普及只是时间问题。

Core 微架构支持新的指令集——SSE4指令集。Intel 原本打算把该指令集用在采用 NetBurst 微架构的 Tejas 核心上。但是在由于功耗问题取消 Tejas 之后,该指令集出现在了 Core 微架构上。SSE4 指令集会带来一些性能上的提高,但是可能不会像 SSE2 指令集那样带来巨大的提升,因为 SSE4 指令集其中的大部分指令用于某些特殊的目的。

Core 微架构拥有增强的电源管理功能,并且2个核心可以分别进行管理。各功能单元以及内部总线在电路设计方面也考虑了节电的问题。与 Yonah 微架构一样,Core 微架构中的大部分功能单元在不使用的时候都可以进入睡眠状态以降低耗电,例如微码存储器等。另外,Core 微架构内部的多条总线为了提高总的传输带宽,加大了宽度,但是多数情况下并不需要如此大的传输宽度,于是 Intel 的工程师让这些总线平时只开放一般的宽度,甚至在没有信号传输的时候也可以进入睡眠状态。这种芯片可以部分关闭的能力早已是Core 微架构整个设计思想的一部分,使得我们只需要为我们使用的那部分电路“付款”。

Core 微架构开始支持 Virtualization Technology,即 Intel的硬件虚拟化技术。这项技术为处理器虚拟化提供了芯片级支持,使得在一个处理器上同时运行多个操作系统成为可能。还有从 Dothan 时代就开始加入的硬件防病毒功能,在采用 Core 微架构的处理器上已经成为必不可少的功能。

Core 微架构内建“数字温度传感器”(Digital Thermal Sensor),其作用当然是侦测处理器的温度,保证处理器的安全,与以前的温度二极管的作用一样。此外,还有传言声称,数字温度传感器如果认为当前的温度并不高,那么有可能会提高处理器的频率以获得更高的性能。是不是与某些显卡和主板的“OverDrive”功能很类似?如果这项技术真的实施,那么也可能只是用于 Conroe 和 Woodcrest,而不会用于 Merom,因为用提高功耗的方法来获得更高的性能并不符合移动平台处理器的设计思想。

Core 微架构针对笔记本电脑提供第2代功率状态报告功能(Power Status Indicator 2,简称PSI-2),可以通知系统现在的耗电状况,从而作为动态调整电压的依据,让系统可以更有效率的节电。

Core 微架构可以通过平台环境控制接口(Platform Environment Control Interface,简称PECI)把处理器的实际温度报告给系统,从而作为调整散热风扇运作模式的依据,对控制系统散热、噪音等方面很有帮助。
12#
石头  楼主| 发表于 2012-9-28 20:49 | 只看该作者
P6 微架构终极形态?

我们对 Core 微架构的内核单元及其新特性的介绍到这里就结束了。与超长流水线、追求超高频率、充满争议的 NetBurst 微架构相比,Core 微架构可以说是十分的传统。而如果你仔细看过了前面的每一张 Core 微架构与 Yonah 微架构的对比图,那么,你一定有和我一样的感受:Core 微架构与 Yonah 微架构的内核构成太相似了——一样的解码流程,一样的简单解码单元与复杂解码单元相配合的设计,一样的乱序执行的流程,一样的一级指令缓存与一级数据缓存分离的设计,一样的共享式二级缓存的设计……再看一遍下面的2个架构的总体对比图,你会发现抛开解码单元与执行单元的数量、内部总线的宽度以及各个缓冲区的容量这些数字上的区别,2个架构的设计可以说是完全相同的!这与许多媒体不加分辨就宣称“全新架构”的说法大相径庭。


图14  Core 微架构


图15  Yonah 微架构

所以 Core 微架构可以说是 Yonah 微架构的放大版,我们把几个主要指标的大致放大倍数列表如下。


图16  Core 微架构 vs Yonah 微架构

其中,提升最为明显的是各类执行单元的计算能力,提高都达到100%以上。配合有史以来最强大的执行资源,各单元的吞吐量也有了比较大的提升。其中,需要注意的是前端解码部分,4组解码单元配合新引入的宏指令融合技术,Core 微架构的指令解码吞吐量的实际增幅远在16%以上。总体上,在各单元均比 Yonah 微架构有大幅提升的情况下,Core 微架构的性能提升幅度在20%以上是可以预期的。

按照 Intel 的说法,采用 Core 微架构的各个产品都会比其对应的上一代产品有巨大的性能提升:Merom 比 Yonah 提升20%,Conroe 比 Pentium D 提升40%,Woodcrest 比 Paxville DP 提升80%。同时,桌面产品 Conroe 和服务器产品 Woodcrest 的功耗也会比其对应的上一代产品有大幅下降30%或者更多:Conroe 的TDP是65W,Woodcrest 的TDP是80W。如果这些数据都没有水分的话,那么,在 Intel 提出的性能功耗比这项新的衡量处理器优越性的指标上,采用 Core 微架构的这一代产品将毫无疑问占据最高点。

Yonah 微架构发布后业界就一直流传着这样的看法:Yonah 微架构实际上是在 P6 微架构基础上发展而来的,其本质与古老的 P6 微架构没有什么不同。Intel 对此不置可否,而这闪闪烁烁的态度其实已经说明了 Yonah 微架构与 P6 微架构至少有着及其密切的联系。实际上,从 Banias 核心处理器面世之后,Pentium M 处理器是以色列团队在采用 P6 微架构的Pentium III 处理器基础上改进而来的说法就开始流传。时至今日,Intel 已经发布的三代移动核心本质上都是 P6 微架构的延续,已经算是公开的秘密。既然如此,Core 微架构又与 Yonah 微架构如此相似,把 Core 微架构也归为 P6 微架构是理所应当的事情。不过,拥有宏指令融合、4组解码单元、庞大执行资源和庞大共享式二级缓存的 Core 微架构似乎应该拥有一个更响亮的名字,不如叫作“P6 微架构最终形态”?

虽然笔者一样认为 Core 微架构本质上还是 P6 微架构的一种,但是并不同意某些人的看法,认为这十年内X86处理器的微架构设计没有任何本质的进步,甚至认为重拾十年前的架构是一种倒退。从头开始进行一个高效的微处理器内核的设计是非常非常困难的,在已有成果的基础上进行改进是明智的,几乎也是唯一的选择。而且,虽然 Core 微架构还是沿用了 P6 微架构的设计思想,但是各种各样新加入的技术已经使得它面目全非,其执行效率已经与最初的 P6 微架构不可同日而语。其功耗最优化的设计思想与电源管理等先进功能更是 P6 微架构不曾考虑过的——试问十年前有谁想到机箱内的处理器可以关闭部分电路来达到省电的目的?用户需要的不是一个全新的内核,他不会在意花钱买来的是叫做 NetBurst 的内核还是叫做 Core 的内核,或是什么别的核心,他的要求很简单:一台快速、省电、静音的电脑。

写到这里,也应该给 Core 微架构的种种特性做一个总结了。Core 微架构是 Intel 的以色列设计团队在 Yonah 微架构或者说是 P6 微架构基础之上全力改进而来的新一代微架构。它设计之初的目标就是构建一个高效的双核心架构,因此采取共享式二级缓存设计,2个核心共享多达4MB的二级缓存。其内核采用高效的14级有效流水线设计。每个核心都内建32KB一级指令缓存与32KB一级数据缓存,而且2个核心的一级数据缓存之间可以直接传输数据。每个核心内建4组指令解码单元,支持微指令融合与宏指令融合技术,每个时钟周期最多可以解码5条X86指令,并拥有改进的分支预测功能。每个核心内建5个执行单元,执行资源庞大。采用新的内存相关性预测技术。加入对EM64T与SSE4指令集的支持。支持增强的电源管理功能。支持硬件虚拟化技术和硬件防病毒功能。内建数字温度传感器。还可提供功率报告和温度报告等,配合系统实现动态的功耗控制和散热控制。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
13#
石头  楼主| 发表于 2012-9-28 20:54 | 只看该作者
性能揭秘

看过 Core 微架构的种种技术改进之后,你也许已经迫不及待想要看看它的性能表现了。Anandtech 在3月份的时候发布了一篇 Conroe 处理器的测试报告,把它与现在的桌面双核心处理器最强者——Athlon FX-60——进行对比。这真是再合适不过的对比了。

测试对比了运行于2.66GHz的 Conroe 处理器与超频至2.8GHz的 FX-60 处理器。其中,Conroe 处理器的测试是在 Intel 的975X主板上进行的,而 FX-60处理器的测试在 DFI 的采用 ATi RD480 芯片组的主板上进行。显卡采用同样的2片 ATi Raedon X1900XT 组成 CrossFire。详细的测试系统如下:


图17  测试系统

测试结果:


图18  测试结果(1)


图19  测试结果(2)


图20  测试结果(3)


图21  测试结果(4)


图22  测试结果(5)


图23  测试结果(6)


图24  测试结果(7)


图25  测试结果(8)


图26  测试结果(9)


图27  测试结果(10)

不用怀疑你看到的结果。是的,运行于2.66GHz的 Conroe 处理器在每一项测试中都大幅领先于超频至2.8GHz的 FX-60 处理器。为了让读者更加清晰的了解两者的性能对比,我们作了下面的总结表格。


图28  测试总结

无论是游戏还是音视频编码测试,Conroe 处理器都大幅领先于FX-60处理器。领先幅度最小的测试是 iTunes 音频编码测试,为10.8%;领先幅度最大的是DivX视频编码测试,为41.9%。游戏中的领先幅度大约在20%到30%之间。如果你注意到 Conroe 处理器是在运行频率比 FX-60 处理器低5%的情况下获得如此大的领先幅度,那么,你就会相信,Conroe 处理器的综合性能将毫无疑问的领先同频的 AMD Socket 939 处理器20%以上——Intel 把以往属于 AMD 的高效率发挥的淋漓尽致。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
14#
石头  楼主| 发表于 2012-9-28 20:57 | 只看该作者
更多测试

玩家中流行着一个测试处理器性能的小程序——SuperPi,通过记录计算Pi值使用的时间来评价处理器的性能,一般把计算1M位所用的时间作为对处理器性能的评价标准。虽然早已另外出现了很多算法更加优秀的Pi的计算程序,但是流行已久的 SuperPi 还是广大玩家的首选,甚至有专门统计测试结果的 SuperPi 排行榜。测试 SuperPi 已经不是单纯的为了展示处理器的性能,况且古老的 SuperPi 程序也不能完全反映处理器的真实性能。通过超频、调试系统,追求更好的 SuperPi 测试成绩已经成为了玩家的一种乐趣。

早在 Banias 处理器出现的时候,广大玩家就发现,它的 SuperPi 测试成绩相当好。Dothan处理器出现以后,更是长时间把持 SuperPi 成绩的排行榜头名。Yonah 处理器的成绩也非常令人惊讶,在风冷的情况下就可以轻松的占领原本由 Dothan 和 Pentium 4 把持的 SuperPi 排行榜。那么,把 Yonah 微架构发扬光大的 Core 微架构会给我们带来什么样的惊奇呢?

仔细看过文章开头的读者一定记起来了:超频至3.1GHz的 Conroe 处理器的 SuperPi 1M的测试成绩是16s,轻松打破原世界纪录。实际上,除去 Anandtech 的测试,目前可以见到的 Core 微架构处理器的测试基本上都是极少数玩家手中的工程样品的 SuperPi 测试。这里,我们把这些测试集中起来,让读者看个过瘾。不过再次提醒一下读者,SuperPi 测试不能全面反映处理器的性能,我们把 SuperPi 成绩汇总,也仅仅是为了在没有更多测试的情况下作为仅有的参考数据。


图29  Merom 2.0G 25s on 945GM


图30  Merom 2.16G 23s on 945GT


图31  Merom 2.4G 21s on 975X


图32  Merom 2.8G 18s on 975X


图33  Conroe 2.4G 21s on G965


图34  Conroe 3.1G 16s


图35  Woodcrest 3.0G 17s

Core 微架构在 SuperPi 测试中的惊人表现不是偶然的。SuperPi 是相当古老的程序,一般认为其内存访问是相当无序的。这种情况下,从 P6 微架构演变而来的 Core 微架构,辅以容量高达 4M 的二级缓存,取得如此惊人的成绩也就可以理解了。虽然 SuperPi 不能代表处理器性能的全部,但是在传统的 SuperPi 程序中有如此良好的表现,我们有理由相信,在传统的办公软件中采用 Core 微架构的处理器将很可能会有非常好的表现。这也恰恰符合 Intel 的宣传——采用 Core 微架构的处理器将在整数性能和商业计算方面得到极大的飞跃。

Intel 在台湾的 IDF 大会上的展示证实了我们的推测。在办公软件的测试对比中,2.66GHz的 Conroe 处理器耗时11.376s,而3.4GHz的采用 Presler 核心的 Pentium D 950处理器耗时31.427s,Conroe 处理器的性能提高了176%!


图36  Pentium D 3.4GHz耗时31.427s


图37  Conroe 2.66GHz耗时11.376s

如果说 SuperPi 的测试和 Intel 的展示使我们初步了解了 Core 微架构运行传统的办公软件的威力,那么下面这张测试图使我们对 Core 微架构未来的多媒体性能更加期待。


图38  Conroe 2.4GHz的多媒体理论性能测试

初看测试图,我们吃惊不小:一颗定位仅中高端的 Conroe 处理器的整数SSE执行性能怎么可能达到上一代的顶级双核处理器的3倍之多!然而仔细想想,在前面的介绍 Core 微架构的执行单元的部分,我们就曾经指出,“从 SSE 指令的执行资源来看,Core 微架构比 NetBurst 微架构和 Yonah 微架构有3倍的提升!”这个说法在这里得到了最好的验证。如此出色的整数 SSE 执行性能配合完整的SSE2、SSE3指令集支持和全新加入的SSE4指令集,相信会给多媒体软件的处理速度带来质的飞跃。

相比之下,Conroe 处理器的浮点SSE执行性能虽然也比采用 NetBurst 微架构的处理器和 AMD 的 K8处理器大幅提高,却显得比整数SSE执行性能逊色了许多。我们猜测,Core 微架构的2个浮点单元和3个SSE单元共享某些硬件资源是可能的原因之一。而且,我们也开始理解 Intel 为什么把宣传的重点放在 Core 微架构的整数性能上,也确信之前开始流传的把 Core 微架构称作“整数怪物”的说法是名副其实的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
15#
石头  楼主| 发表于 2012-9-28 20:59 | 只看该作者
超频性前瞻

笔者前面已经指出,X86处理器的流水线级数的概念正在日益模糊。仅凭 Core 微架构的14级有效流水线就断言 Core 微架构只能达到很低的频率的说法是不具有足够的说服力的。虽然我们可以断定采用 Core 微架构的处理器的频率肯定不能达到 NetBurst 微架构所能达到的高度,但是实际上,Conroe XE 3.33GHz 处理器的频率已经距离采用 NetBurst 微架构的正式产品中频率最高的3.8GHz不远。

按照笔者的看法,Conroe XE 3.33GHz的频率距离 Core 微架构真正的极限频率还有一段距离。因为,即使是低于3GHz的 Conroe 处理器,竞争对手 AMD 已经无力抵挡。如果没有足够的把握和良率的保证,Intel 没有必要勉强推出3.33GHz的产品,以免重蹈 Pentium III 1.13GHz的覆辙。而且,具有12级有效流水线的 AMD K8处理器在 IBM 的90nm制造工艺的帮助下风冷极限已经可以达到3GHz以上,具有14级有效流水线并且采用65nm制造工艺的 Conroe 处理器有理由达到比K8高出一截的频率。如此看来,某些玩家声称自己手里的 Conroe 处理器可以风冷超频至4GHz以上的说法也有可能不假。

Core 微架构较低的功耗也有助于玩家的超频。前文中超频至3.1GHz的 Conroe 处理器创造的16s的 SuperPi 世界纪录,实际上就是在下图中的系统上完成的,散热器仅仅采用 Intel 原装的 Prescott FMB2 风扇。与采用 NetBurst 微架构的处理器超频时需要的巨大的散热片和吵闹的风扇相比,这个散热器实在是小的可爱。


图42  Conroe 处理器的超频平台

与 Conroe 处理器所能达到的频率极限相比,玩家更应该担心的是芯片组的超频能力。看看上一页表格中的未来的主流处理器——Conroe E6000系列处理器,频率跨度非常大,从最高端的3.2GHz一直到最低端的1.33GHz,最高频是最低频的2.4倍。低端的几个型号肯定会拥有强劲的超频能力。但是,注意一下前端总线——所有的型号都是1066MHz的前端总线,包括最低端的1.33GHz的E6100处理器。即使E6100处理器本身拥有100%以上的超频潜力(非常有可能),但是算一下E6100超频100%以后的前端总线——2133MHz,而 Intel 未来的主流芯片组P965的官方规格不过是1066FSB——能够超频100%的芯片组在 Intel 芯片组的历史上似乎还没有出现过。

再仔细算一下,不仅仅对E6100处理器的超频会遭遇芯片组瓶颈的问题,即使是中高端的2.4GHz的E6600处理器,按照“风冷4GHz”的说法,也需要1800MHz左右的前端总线。如果因为芯片组的原因不能发挥 Conroe 处理器的全部实力,对超频玩家来说,实在是莫大的遗憾。

幸运的是,从一些测试图中,我们已经可以看到与 Conroe 处理器搭配的芯片组的实力。还是前文中超频至3.1GHz、创造16s的 SuperPi 世界纪录的 Conroe 处理器,也就是上面那张模糊的平台图片。仔细看看下面的CPU-Z截图,前端总线已经达到了1550MHz。也就是说,在上面那张模糊的图片下躲藏起来不愿意露出真面目的芯片组,可以比较轻松的超频到到1550MHz以上的前端总线。而且,现在这个阶段的主板,应该还不是最终产品,还有继续成熟、提高的余地。虽然我们还无从知道它的真面目(笔者猜测应该是965系列芯片组之一),但是至少我们可以知道,会有能够超频到1600MHz前端总线的主板来配合超频能力强劲的 Conroe 处理器供玩家选用。

如此一来,在拥有完整的4M二级缓存和 Core 微架构完整特性的处理器中频率最低的2.4GHz的E6600处理器,将有机会超频50%,达到1600MHz的前端总线和3.6GHz的频率,巨大的潜力和不算太高的价格必然会成为中高端玩家的首选。而更高频率的型号也有机会去验证“风冷4GHz”的说法。而此时作为 Conroe 最低端系列的E4200更是将成为最有性价比的选择:如果把800MHz前端总线、1.6GHz的E4200处理器超频至1600MHz前端总线、3.2GHz,那么,仅仅是少了一半二级缓存和对普通用户意义不大的VT技术的E4200处理器,将拥有接近E6900处理器甚至E8000处理器的性能,而它的价格仅仅是E6900处理器的1/6和E8000处理器的1/7。

从古老的 Celeron 566处理器之后,X86处理器市场就再也没有出现过能够大面积稳定超频100%的处理器了。不出意外的话,Intel 在 Conroe 处理器上展开的跨度极大的产品线将使得超频能力达到100%的处理器大量涌现。不知道发烧友们能够在X86处理器世界的超频幅度榜上给我们带来多大的惊讶?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
16#
石头  楼主| 发表于 2012-9-28 21:01 | 只看该作者
结束语

Core 微架构毫无疑问是一个优秀的设计,在任何方面都比它的前任有所提升,尤其出色的正是今天被关注的焦点——性能功耗比,或者说是每单位功耗的性能。同频下的性能比竞争对手 AMD 的 Socket 939处理器高出20%以上,最高频率3.33GHz比对手的2.6GHz高出近30%,95W的功耗比对手110W的功耗低10%以上——Intel 宣传的全面超过竞争对手一点都不为过。高效的内核加上合理的功耗,使得采用 Core 微架构的处理器在距离 Intel 正式发布还有几个月时间的时候就已经被普遍看好。当然,几个月后 Core 微架构正式发布的时候,AMD也不会停在原地。两大厂商越来越激烈的竞争,一定会给消费者带来越来越优秀的产品。

除去技术上的创新,Core 微架构的出现还具有更重要的意义——扭转业界的态度。在过去的两年里,Intel 承受了很多的批评。如今随着 Core 微架构的出现,Intel 不仅将大大增强其在处理器市场上的竞争力,而且还使得媒体惊呼原来那个锐意进取、总能给人带来惊喜的 Intel 回来了。看起来,Intel 不但清楚的认识到了 NetBurst 微架构的缺陷,推出了性能和功耗相当平衡的Core 微架构,更加重要的是,NetBurst 微架构最后的失败极大的刺激了 Intel,使得 Intel 把更多的精力投入到了研发新产品上面。有了正确的方向,加上长久以来积累的雄厚实力,随之而来的将是 Intel 的一个崭新的时期。

不过,Core 微架构并非完美。当 Core 微架构推出4核心甚至8核心处理器的时候,采用共享式二级缓存带来的在双核架构上的优势有可能会被多核心共享前端总线的蹩脚设计削弱。而 AMD K8 处理器及其后继的产品所采用的集成内存控制器与利用 HyperTransport 总线互连的设计使它可以在多路系统中紧逼 Intel。打江山易,保江山难。希望 Intel不要减慢前进的步伐。有传言声称,Intel 将争取在2008年左右再次革新架构,汲取AMD的优点,推出集成内存控制器和CSI高速互连总线的新一代处理器。联想到国内著名硬件网站GZeasy在《NetBurst体系何去何从,透视英特尔PARROT架构》一文中披露的PARROT架构,看起来,这个传说2008年出现的新一代的处理器,才有可能是真正具有划时代意义的架构。

Intel 在去年还曾经透露过一项 Core 微架构可能支持的新技术——被称为第2代硬件虚拟化技术的 Rockton Technology(简称RT),这是用来改善Java与dotNet执行效率的技术。读者也许会很疑惑,Java和dotNet与虚拟化技术有什么关系?事实上,Java代码的执行环境Java虚拟机(Java Virtual Machine,简称JVM)与dotNet的 Common Langage Runtime(简称CLR)本质上都是一种虚拟机器,拥有独立的堆叠式指令集架构,并不仅仅是单纯的程序语言。简而言之,Rockton Technology就是利用处理器的硬件资源来加快Java和dotNet代码执行效率的技术。原以为这项技术会应用在 Core 微架构上,但是 Intel 在今年的 IDF 大会上却只字未提,不知道未来还有没有机会再看到这项技术的应用。

Intel P6 微架构的总工程师之一,Robert Colwell,在其回忆录《The Pentium Chronicles: The People, Passion, and Politics Behind Intel's Landmarks Chips》一书中,表示他之所以离开 Intel,主要就是因为他并不认同 Intel 在 NetBurst 微架构中所选择的设计路线,因为他相信“The future is mobile”,如何在维持省电与最长电池续航能力的前提下,达到足够的运算效能,才是处理器技术发展的未来方向。NetBurst 微架构的失败,与 P6 微架构的复兴,恰恰证明了 Intel 之前策略的失败和他的远见。

P6 微架构随着1995年 Pentium Pro 处理器的发布开始出现,到1997年的 Pentium II 处理器(Klamath、Deschutes)、1999年的 Pentium III 处理器(Katmai、Coppermine、Tualatin)、2003年的Pentium M 处理器(Banias、Dothan),再到今天的 Yonah 与 Core 微架构,经历了十年的风雨历程,有过辉煌的过去,有过被封杀的经历,最后又重新站到了X86处理器世界的最前沿。十年前 P6 微架构面世的时候,人们认为这已经是X86处理器的极致。没想到十年后的今天,已经发生了翻天覆地变化的 P6 微架构的后代,仍然称不上是 X86 处理器的顶峰。


本文的架构解析部分有一些资料是参考 Real World Technologies 网站于今年3月份发表的《Intel's Next Generation Microarchitecture Unveiled》一文,作者 David Kanter,原文见http://www.realworldtech.com/page.cfm?ArticleID=RWT030906143144。测试部分的一些数据来自 AnandTech 网站于今年3月发表的评测文章《Conroe Performance Preview Follow-Up》,作者 Anand Lal Shimpi,原文见http://www.anandtech.com/tradeshows/showdoc.aspx?i=2716。另外一部分测试数据来自国内外的广大玩家。在此一并表示感谢。

(全文完)
17#
durui0926 发表于 2012-9-28 21:24 | 只看该作者
好文,支持下慢慢看~~~
18#
血牛嘎嘎 发表于 2012-9-28 21:32 | 只看该作者
虽然是老文了,但是果断还是要顶啊
19#
zhoujin2046 发表于 2012-9-28 21:46 | 只看该作者
但是果断还是要顶啊
20#
wsy2220 发表于 2012-9-28 23:16 | 只看该作者
占座慢慢看
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部