基于NetBurst微架构的所有CPU将于2007年底全部停产,Intel也基本不再继续对其进行开发。屈指算来,从2000年威廉的发布到07年底的停产,它陪伴我们将有7年的时间。这7年,NetBurst为我们带来了太多宝贵经验与教训,值得我们反思。这里将以Prescott为基础进行一些讨论,其中一些内容其实无关于NetBurst,但也是Pentium 4系列发展中遇到的问题。
经常看到这样的说法:“Pentium 4高频长流水线设计,使得它的效率下降,发热和功耗上升,数据命中率下降,错误率提高,流水线清空带来的损失巨大,性能损失严重。”其实只要对CPU的运算原理有所了解,就该知道把风马牛不相及的几个要素拼凑在一起的这个说法是多么的荒唐了。
作为一款通用型处理器,无论它架构如何,它的最终目的都是为了运行各种不同的软件。而任务的处理就不得不提到他所处的环境与条件,要讨论这个,不得不先从我们的系统环境说起。
如果说我们现在绝大多数人所使用的X86系统、指令集是一个很是落后的古老产物,是上个世纪才用的东西,估计会有很多人难以接受。但事实就是如此。X86原则上是逐周期,逐指令进行操作,一个周期执行一条指令。可我们的需求不止是每周期一个指令,为此,单指令多数据流——SIMD诞生了。现在我们日常用的民用级CPU一般每个周期能够执行3~4条指令,这对于民用级的产品来说已经够用了。SIMD其实不难理解,例如SSE2、SSE3、3D NOW!这些都属于SIMD。
在我们的日常运算里,用的最多的无非是两种:整数运算与浮点运算。最早时的CPU其实几乎不具备浮点运算能力,但Pentium MMX改变了这个现状,在加入了一个名为MMX的SIMD指令集后,CPU开始具备了初级的浮点运算能力,其实上面提到的几个指令集,都与浮点运算有关。
至于整数与浮点的具体作用,举几个简单的例子,整数运算应用比较多的地方,例如科学计算,浮点运算应用的比较多的地方,例如视频处理,游戏等。在这里再提一下X87—整数浮点转换指令。估计这是个让Pentium 4刻骨铭心的名字。
那么,以具体的型号来做下对比,再说Prescott Pentium 4与K8 Athlon 64的性能。就单核的同档次产品来讲,Pentium 4与Athlon 64的表现有着很大差异。如果是专业设计,3DMAX或者是播放高码率HDTV之类的应用,Pentium 4要领先对手一大截,而如果是游戏,Athlon 64的表现却可以让Pentium 4很郁闷。经常见到有人拿“长流水线高频率在大数据量,多任务下有优势,而游戏讲究效率。”来解释。可是仔细想想,3DMAX可以轻载,要调动到大数据量大高要求的游戏也不少,似乎这样的解释是毫无道理的。
业界内有一个大的趋势,那就是加强整数运算,弱化浮点运算。Pentium4的设计实际上遵从了这个趋势,强化X86,弱化X87。但就游戏来讲,对浮点运算依旧有着较高的需求。
仔细看一下Pentium 4与Athlon 64的设计,Pentium 4拥有3个整数单元(其中有两个双倍速的快速执行引擎,等效于4个,近日的G80也采用了类似的技术。)2个浮点单元,串行的流水线设计。Athlon 64拥有3个整数单元,3个浮点单元,3发并行的流水线设计。
就SIMD来说,Intel强调整数运算性能,但也推出了如SSE2、SSE3这样的多媒体指令集(这两个指令集并非是单纯的浮点指令集,而是包含了整数与浮点)。而Athlon 64强化了X87性能,加强浮点运算能力(也许有人想提3D NOW!实际上这已经是很老的东西了,在现在的应用里作用有限)。
从上面的比较中就可以看出造成两者性能差异的原因了,这似乎与超长流水线没有什么关系。Intel曾推出SSE2、SSE3指令集以求加强游戏性能,但结果却很不成功。
既然谈到了软件,就不得不谈“软件优化”。再搬出工厂做比喻,一般为工厂做优化都会考虑什么呢?工厂有几个门,每个门多大,用什么运输,流水线怎么运行,每运行一次周期有多长,有多少工人,哪个工人拧螺丝快,哪个工人擦玻璃快......要为CPU优化是件复杂的任务。CPU架构也直接影响了对它的优化设计,但超长的流水线不一定会增加优化的难度。从本人的认识看来,Prcscott的架构十分烦琐复杂,甚至于有些怪异到难以理解,例如第11级与12级流水线间上行可以达到256bit,而下行就只有8bit。
这样的设计无疑为厂家为其优化增加了难度,降低了软件商的热情。这就是为什么很多对Pentium 4与Athlon 64都有深入优化的软件(包括游戏),P4的性能都不会输给对方。但是毕竟这么做的厂家并不多,Prcscott的不成功,软件是一个很重要的原因。
在X86继任者的问题上,Intel选择了IA64,而微软选择了X64。当初Intel宣称威廉是末代X86 CPU,显然没有预料到今日的X86-64,IA32(EM64T)。虽然至今我们都没有从“伪64位”技术中获得多少实质上的性能。
- 第4页:NetBurst为我们留下的遗产与反思一
- 第5页:NetBurst为我们留下的遗产与反思二