科技时代新浪首页 > 科技时代 > 硬件 > 正文

英特尔Core微架构全面解析(3)


http://www.sina.com.cn 2006年04月27日 14:21 Ocer.net


  接下来,我们将对 Core 微架构的各个功能单元进行更加详细的分析。

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

英特尔Core微架构全面解析(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),取得微指令序列。

  微指令融合(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指令。

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

英特尔Core微架构全面解析(3)
图7 没有宏指令融合技术
 
英特尔Core微架构全面解析(3)
图8 采用宏指令融合技术

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

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

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

[上一页] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]
 [11] [下一页]

发表评论

爱问(iAsk.com)



评论】【硬件论坛】【收藏此页】【 】【多种方式看新闻】【下载点点通】【打印】【关闭




科技时代意见反馈留言板 电话:010-82628888-5595   欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

Copyright © 1996 - 2006 SINA Corporation, All Rights Reserved

新浪公司 版权所有