Conroe优势分析 Core vs K8架构解析

互联网 | 编辑: 2006-07-21 17:00:00编译 一键看全文

宽动态执行(Wide Dynamic Execution),高级数字多媒体增强技术(Advanced Digital Media Boost),智能内存访问技术(Smart Memory Access),高级智能缓存技术(Advanced Smart Cache)――这些都是 Intel 的市场部人员重点宣传的技术,所有的这些技术造就了 Intel 新推出

2

自从 Banias 处理器之后,上面的load操作和ALU操作就可以用一条微指令来完成了。Intel 把该技术称为微指令融合技术(Micro-Op Fusion)。这项技术不是一件容易的事情:在旧的设计中,把load操作与ALU操作一起进行会导致对应的那一级流水线延迟加大,从而降低处理器所能达到的最高频率。(在处理器设计中,可能达到的最高频率取决于最慢的那一级流水线的延迟时间,即所谓的木桶效应。)只有可以并行执行、设计优秀的电路才使得在引入微指令融合技术的同时不显著降低处理器的频率。

  在预解码的阶段,处理器会识别可以应用微指令融合技术的指令。在解码阶段,类似 ADD [mem], EAX 的复杂指令就可以生成比旧架构数量更少的微指令。与宏指令融合技术带来的效果类似,这可以带来更大的解码带宽,更少的空间占用,更低的调度负载和更高的效率。

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

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

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

  接下来让我们来看一下这有趣的对比:Core 微架构的3组简单解码单元与1组复杂解码单元 vs. K8 处理器的3组复杂解码单元。

K7 处理器有2种解码方法,向量路径(Vector Path)和直接路径(Direct Path)。向量路径解码会生成多于2条的类似RISC的指令(AMD称为Macro-Op,即宏指令)。直接路径解码会生成1条或者2条宏指令。K7 处理器的每组解码单元都可以进行向量路径解码和直接路径解码,但是从性能的角度讲,直接路径解码无疑是更好的选择,因为它会生成数量较少的宏指令。怎么,你觉得突然谈论 K7 处理器有点奇怪?不,因为就像 Core 微架构是基于 P6 微架构一样,K8 处理器很大程度上也是基于 K7 处理器的。

K7 处理器的3组复杂解码单元是强大的,可以解码绝大多数X86指令,只有很少一部分指令需要使用向量路径解码。它们仅有的缺点是一些浮点指令和SSE指令需要使用向量路径解码。而 K8 处理器拥有更强大的复杂解码单元――几乎所有的浮点指令和SSE指令都可以使用直接路径解码了。这是因为K8 处理器的取指与解码单元的流水线比 K7 处理器的更长。当涉及到SIMD指令时,K8 处理器尤其强于 K7 处理器。

  显然,Intel 的宏指令融合技术在AMD 的 K8 处理器上并不存在。但是,AMD拥有与微指令融合技术类似的技术。首先需要注意的是,Intel 与 AMD 使用的名词“宏指令”与“微指令”具有不同的含义,很容易使人混淆。这里我们给出下面的表格,对它们进行分辨。

 名词辨析

  在 Athlon 处理器中,也存在有微指令融合技术。例如,一条 ADD [mem], EAX 指令在真正执行前中始终保持为一条指令。因此,它在缓冲区中也只会占据1个单元的空间。不过,在 Core 微架构中 load 操作和 SSE 操作等也可以被融合,而 K8 处理器则不行,它会把SSE操作解码成2条宏指令。

  那么,在解码单元方面,Intel 的 Core 微架构与 AMD 的 K8 处理器比较的结果是什么呢?就目前的资料来看,还很难确切的说到底哪个更加有实力。不过,我们有一个初步的看法:Core 微架构要更具有优势。因为在一般情况下,它每个时钟周期可以解码4条X86指令,加上宏指令融合技术的话则最多可以解码5条X86指令。而 AMD 的 K8 处理器每个时钟周期只能解码3条。

  总而言之,AMD 的3组复杂解码单元胜过 Core 微架构的3组简单解码单元加上1组复杂解码单元的情况不大可能发生。仅当多条复杂指令同时需要复杂解码单元进行解码的时候,K8 处理器的解码单元会胜过 Core 微架构的解码单元。但是考虑到实际程序中的绝大多数X86指令对应简单解码单元的事实,这种情况不大可能发生。

  为了使读者更加清晰的了解AMD K8 处理器与 Intel Core 微架构的区别,我们使用相同的风格制作了下面的图表。

 Core 微架构

 K8 处理器

  从图上可以看到Core 微架构与K8 处理器的明显区别。Core 微架构拥有更大的乱序缓冲区――96 entry,再考虑到它的宏指令融合技术,其实际容量比 K8 处理器的72 entry要大的多。而最初的 P6 微架构只有40 entry,在Banias、Dothan 及 Yonah 处理器中增加到了80 entry,而现在的 Core 微架构进一步增加到了96 entry。为了看起来清晰、直观,我们制作了下面的表格来比较这几代处理器的重要特性。

 几代处理器特性比较

Core 微架构采用集中式保留站(central reservation station),而 K8 处理器采用分布式调度器(distributed scheduler)。集中式保留站的优势是拥有更高的利用率,而分布式调度器能容纳更多的表项。NetBurst 微架构也采用分布式调度器。

提示:试试键盘 “← →” 可以实现快速翻页 

一键看全文

本文导航

相关阅读

每日精选

点击查看更多

首页 手机 数码相机 笔记本 游戏 DIY硬件 硬件外设 办公中心 数字家电 平板电脑