您的位置:电脑秀首页 > CPU频道 > 硬用 > 正文

变革进行时全面解析英特尔新架构

PCSHOW.net 作者:微型计算机 2007-06-13

  三、指令融合和分支预测体系

  此次英特尔从NetBurst架构到Core架构的转型,还有一项非常明显的改进。那就是x86指令的融合,它可以说是Core架构独有的特性之一(图3)。

  在处理器内部,x86指令被称为Macro-ops,而内部指令被称为uops,而Macro-ops融合可以将两个Macro-ops融合成一个uops。举个例子来说,我们可以把x86 Compare(比较)指令与x86 Jump(跳转)指令融合在一起,生成一条单独的uops(比较并跳转指令)。在Core中每个解码器都可以完成这样的优化工作,但是每周期内最多只能有一个解码器完成这样的融合,所以最大指令解码带宽是每周期4+1个x86指令。

Conroe;cpu;Pentium D;英特尔

Conroe;cpu;Pentium D;英特尔

Conroe;cpu;Pentium D;英特尔

对比英特尔不同架构中的提取指令/译码单元,可以看到Core要比Yonah和Pentium 4更加复杂

  这种融合的好处是显而易见的:首先,融合之后需要执行的指令变少了,这等于直接提高了处理器的执行性能;其次,乱序执行可以因此变得更有效率,因为融合的过程实际上就是让指令窗口检查更多的程序代码,更大限度地发现指令之间的并行性,从而提高处理器的执行效率。不过颇具讽刺意味的是,从某种程度上来看这种x86指令的融合机制使得x86处理器更加RISC(简单指令集)化而不是CISC(复杂指令集)化。

  为了降低长流水线带来的负面影响,英特尔曾经在NetBurst架构的分支预测上花费了相当大的精力,其分支预测的错误率号称比上一代架构下降了33%以上,而Core架构的分支预测能力在NetBurst的基础上又有进步。

  在新架构中,英特尔不仅保留了上一代架构的跳转目标缓冲区、跳转地址计算器以及返回地址堆栈,而且还采用两种新的预测算法—“循环探测”能够正确探测(程序的)循环退出,而“间接分支预测”可以基于全局的历史信息获取(预测)正确的目标地址。除此之外,Core架构还引入了其它的一些新特性,例如在原先的架构中,跳转命令总会引入一个周期的流水线空置,但是在Core架构中引入了一个用于存储跳转发生位置的队列,大部分的流水线空置都将被消除。诸多新特性的引入,使得Core的分支预测能力空前强大,从性能上来说无异于如虎添翼。

  四、乱序引擎和执行单元

  熟悉Yonah架构的朋友一眼就会发现Core的乱序引擎与前者有太多“神似”的地方,所以我们说Core的乱序引擎是Yonah的“翻版”也并不为过。它们确实有太多相似的结构,包括寄存器别名表,寄存器分配器以及重序缓冲(ROB)。

Conroe;cpu;Pentium D;英特尔

Core架构中的乱序引擎只是比Yonah增加了更多的执行单元,这样有利于同时处理更多的指令并更好地挖掘指令之间的并行度

  Pentium 4(桌面级,下同)和Yonah架构的最大吞吐量都是每周期3 uops,而Core架构的设计为每周期4 uops。除此之外,Core的保留站(Reservation station)也比Yonah大得多(32vs.24 );不过这个值与Pentium 4直接对比有些困难,因为在Pentium 4中使用的是分布式调度器而不是保留站(Pentium 4共有46个调度项空间,8个用于内存操作指令,剩下38个用于ALU和FPU)。

  Core架构在设计上比Pentium 4和Yonah多一个额外的分发端口,所以它可以每周期持续执行三条指令。更重要的是,Core有更平衡的执行单元分配机制—在Pentium 4处理器中,很多操作都集中在一号端口,这样很容易产生严重的冲突,而Core有效避免了这一点。

Conroe;cpu;Pentium D;英特尔

Conroe;cpu;Pentium D;英特尔

Conroe;cpu;Pentium D;英特尔

在Core架构中有三个端口用于执行单元,其中包括3个128bit SSE单元、2个浮点单元和3个64bit整数单元,其中一号端口上(Port 1)的整数单元还可以用于处理128bit移位和循环移位操作。所有端口都可以分发浮点Move指令,FPU和SSE单元在某种程度上可以实现部分硬件电路的共享。这种设计非常高效,Yonah和Pentium 4远不能与之相提并论

  除了对整数计算能力的优化之外,Core架构同样也大幅提高了浮点和SSE计算的能力。在Core架构中三个SSE单元并不是完全对等的,但它们之间的差别非常小;而且SSE 单元采用完全流水线化的设计,每个单元都可以在单个周期内执行相应的128bit SSE指令。相比之下Pentium 4中的SSE单元相对不足,它的两个64bit SSE单元需要两个周期才能执行一条128bit SSE指令。

匿名评论 登录后评论
[按 CTRL + ENTER 键快速发表评论]
返回页面顶部↑