| 14级指令执行管线
在架构变化中,Core核心第一个变化就是处理器流水线缩短了---仅采用14级指令执行管线设计。此前,Northwood和Willamette核心的流水线为20级,相对于当时的PIII或者Athlon XP的10级左右的流水线来说,增长了几乎一倍。到现在市场上采用Proscott核心的PD和Celeron流水线为31级。众所周知,流水线越长,频率提升潜力越大,但是一旦分支预测失败或者缓存不中的话,所耽误的延迟时间越长。如果一旦发生分支预测失败或者缓存不中的情况,Prescott核心就会有39个周期的延迟。这要比其他的架构延迟时间多得多。
可以说,NetBurst架构的流水线很长,而流水线是一把双刃剑,使用得不好的话,未伤人先伤己。由于Core新架构要将控制能耗作为最主要的目标,因此不会将时钟频率提升得太高,不再需要太长的流水线。而且就算是使用较长的流水线,但芯片发热量的问题没有解决之前,频率也不会得到大幅提升,现在的Prescott就是最好的例子。
因此,参照现在的Pentium M和Athlon 64架构,Core新架构将采用14级流水线,至少可以在原来Pentium 4的基础上提升执行效率,不过想要在短期之内看到突破4GHz频率的CPU变成了一个不可能实现梦。但新架构中最令人关注的变化是不支持超线程技术。当然现在还不确定是否超线程技术就被Intel彻底废弃了,但至少第一批基于这一架构的CPU将不支持HT技术。
如果深入到超线程技术中探求一番就会发现,只有像NetBurst架构那样多的空闲执行单元,才有条件使用超线程技术,否则为什么Intel不在Pentium M中使用这项技术?现在新架构中仅采用14级级执行管线,这个深度和Pentium M大致相当,自然没有富余的空闲执行单元用于超线程应用。
三、四组指令编码器
除了执行管线有所精简外, Core微处理器架构另一特色莫过于内建四组指令编码器,可在一个频率周期(clock cycle)内,同时编码四个x86指令。自从AMD失败的K5之后,有超过十年的时间,x86的世界从没出现过四组指令编码器的设计。因x86的指令长度、格式与寻址模式都相当的紊乱,导致x86指令编码器是非常难作的东西,甚至连Intel先前的NetBurst微处理器架构,就通过导入Trace Cache存放编码后的微指令,企图替代高性能复数指令编码器,但改进并不是很明显。因此在Core微处理器架构上,Intel最后还是被逼着走回头路,引入了四组指令编码器设计。
Core延续先前P6与Banias微处理器架构的方式,由三组简单编码器(simple decoder)与一组复杂编码器(complex decoder)所组成的"4-1-1-1"结构,四组指令编码器中,仅有复杂编码器可处理最多由四个微指令所组成的复杂x86指令;如果不幸碰到非常复杂的指令,复杂编码器就必须呼叫微码循序器(Microcode Sequencer),以取得微指令序列。
为了配合四组编码单元,Core微处理器架构的指令撷取单元在一个频率周期内,从第一阶指令缓存中,撷取(fetch)六个x86指令至指令编码缓冲区(Instruction Queue),判定是否有符合宏指令融合的配对后,将最多五个x86指令,交派给四组指令编码器。四组指令编码器在每个频率周期中,发给(issue)保留站(Reservation Station)四个编码后的微指令,保留站再将存放的微指令交派(dispatch)给五个执行单元。执行指令数越多,意味着其处理能力越强,表现出来的性能越高,安腾CPU就是一个很好的例子。 |