“芯”光灿烂——CPU技术回顾与展望 李庆丰 1999年 第31期 20版 近一年来,CPU的发展达到了一个前所未有的速度,在主频上实现了从350MHz到600MHz的飞跃,CPU指令集也得到极大的丰富,以往看来有些夸张的摩尔定律现在看来反而有点保守了。在这世纪交替之际,让我们一起来看一看CPU技术的过去、现在和未来。 #1 回顾篇 去年4月,Intel为了占领低端市场,推出了一种廉价CPU——Celeron(中文名赛扬)。赛扬采用与PentiumⅡ相同的SEC(单边接触盒)封装方式,但是去掉了电路板上的L2 Cache,大大降低了生产成本。由于赛扬没有L2 Cache,性能大打折扣,整数性能甚至赶不上PentiumMMX。 去年5月28日,AMD发布了K6-2(如^312001a^),依靠其3DNow!技术来挑战Intel的PentiumⅡ。3DNow!技术的最大突破在于它开创了CPU 3D指令集的先河,通过21组新增指令来支持SIMD(Single Instruction Multiple Data,单指令多数据)浮点运算和整数运算,并通过一条新的“Prefetch”指令解决了MMX指令与FPU指令切换过于频繁的问题,从而大大提高了指令的执行效率,每个时钟周期最多可执行四条浮点运算指令。在制造工艺上K6-2由0.35μm提高到了0.25μm,并且采用了全新的半导体封装技术,使得CPU的芯片尺寸由K6的168mm2缩小到了68mm2,而晶体管数量却没有减少,反而增加了50万个。制造工艺的提高使得K6-2 CPU的核心电压由原来的2.9V降到了2.2V,工作频率也迅速提高到了350MHz以上。 面对AMD K6-2的冲击,Intel于去年夏天推出了一种代号为Mendocino的新型赛扬CPU,通过在CPU芯片内集成128K与CPU同步运行的L2 Cache,使得CPU的性能较老赛扬提高了30%,整体性能不输给同频率的PentiumⅡ多少。新赛扬的性能之所以能有这样翻天覆地的变化,集成于片内(On-Die)的128K Cache起到了至关重要的作用,这种技术在此后的K6-Ⅲ中也被采用。   进入1999年,为了进一步占领低端市场,降低CPU的生产成本,Intel放弃了Slot1,将赛扬CPU迁移到了Socket平台上,从而诞生了Socket370的赛扬(如^312001b^)。在性能上Socket370的赛扬与Slot1的赛扬没有差别,仅仅是接口不同。 #1 现状篇 目前市场上能够见到的高性能CPU的代表,无疑是Intel PentiumⅢ和AMD K6-Ⅲ。是什么原因使得这两种CPU如此出色?无疑,是先进的技术在发挥作用。 我们先来看看PentiumⅢ的过人之处。PentiumⅢ(如^312001c^)支持包含70条新指令的SSE(Streaming SIMD Extensions,数据流单指令多数据扩展)指令集(原来称作MMX2或KNI),以更高的核心频率运行(目前已达到600MHz以上)。SSE指令集包括浮点数据类型的SIMD指令,而浮点运算能力的强弱决定了3D处理能力,所以利用SIMD浮点指令能够大幅提高3D的性能。SSE可以说是将Intel的MMX及AMD的3DNow!技术相结合的产物,当初MMX的诞生是为了加快多媒体应用程序的运行速度,但事实上,MMX只有整数运算指令,在常见的整数运算密集的多媒体应用中,MMX技术确实可以提高这些应用的性能,而对于浮点运算密集的3D图形处理、语音识别、数字信号处理、3D环绕音效等应用,MMX就有些力不从心,难以胜任了。AMD的3DNow!技术便是针对MMX指令集的不足,添加了SIMD单精度浮点运算指令,重点突出了3D的概念,终于一炮打响,取得了成功。SSE指令集与K6-2的3DNow!指令集类似,这些新指令将大大提升CPU芯片对3D应用程序的处理能力。与3DNow!相比,SSE推出晚了大半年,所以面对拥有了大量用户的3DNow!,SSE能不能得到市场的承认还有待观察。但是SSE比3DNow!更强大,所以今后的软件可能会同时支持这两组3D指令集。 SSE之所以被认为会比3DNow!强大,并不仅仅是因为它的开发者是Intel,也不是因为它的指令数目多于3DNow!。首先,由于3DNow!使用的是浮点寄存器方式,从而无法较好地同步进行正常的浮点运算;而SSE使用了分离的寄存器方式,从而可以全速同步运行,保证了与浮点运算的并行性。其次,二者所使用的寄存器也不是一个等级:3DNow!是64位,而SSE是128位,比3DNow!宽了一倍。此外SSE还有一个新的特性——“内存流”,它和3DNow!的Prefetch指令十分相似,作用是在数据被使用之前把它们装载到L1 Cache。它们的不同之处在于PentiumⅢ芯片有数个Prefetch指令,不只是从L1 Cache中取得缓存数据,还可以从所有Cache中选择缓存数据,因此SSE将比3DNow!快。 面对Intel新产品的威胁,AMD在PentiumⅢ面世之前抢先发布了K6-Ⅲ处理器(如^312001d^)。在此前的各种测试中,K6-Ⅲ的样品表现出了非凡的整数性能,在权威测试软件Winstone99中,K6-Ⅲ的得分超过了同频的PentiumⅡ甚至PentiumⅢ,令人刮目相看。是什么原因让K6-Ⅲ如此强大?秘密就在于K6-Ⅲ芯片内集成的256K全速L2 Cache。K6-Ⅲ依然基于K6-2的CXT核心(即K6-2 380和400的较新核心,支持6倍频),但与K6-2的最大不同之处在于K6-Ⅲ内部集成了256K的L2 Cache!虽然这对于Intel的CPU来说已经不是什么新东西,从Pentium Pro开始已经采用过了,但AMD家族的CPU却是首次在内部加入L2 Cache,可谓意义重大。因为在过去很长一段时间里,AMD系列CPU的L2 Cache都放在主板上,其运行速度只能同步于主板的外部总线频率,一般在66MHz到100MHz之间,而目前的CPU的核心频率早已经高达400MHz以上,这就造成了严重的性能瓶颈,使得提高CPU内频的作用变得越来越小。K6-Ⅲ芯片中的L2 Cache虽是首次加入,但优势很明显:K6-Ⅲ中的L2 Cache是与CPU同步运行的,即对于K6-Ⅲ 400MHz来说,其L2 Cache同样运行在400MHz上,而L2 Cache的速度还将会随CPU核心频率的提高而提高。大家一定清楚新赛扬的性能,虽然它的L2 Cache的容量只有PentiumⅡ的1/4,但由于PentiumⅡ的L2 Cache运行频率为CPU核心频率的一半,实际表现并不比新赛扬强多少,这就是全速L2 Cache的功劳。同样刚发布的Pentium Ⅲ也有512K的L2 Cache,比K6-Ⅲ多一倍,但由于它的L2 Cache速度较慢,所以其整数性能反而不如K6-Ⅲ。 既然K6-Ⅲ内部加入了L2 Cache,那么原来主板上集成的L2 Cache如何处理?K6-Ⅲ的解决办法是使用TriLevel Cache(三级高速缓存)技术,可以自动把主板上的L2 Cache当作L3 Cache来使用。这一技术使K6-Ⅲ可以在某一个确定的Cache层次(如L1或L2)中同时读和写,而且可以同一时间访问所有层次(L1、L2和L3)的Cache。这将使得K6-Ⅲ拥有总容量高达2368K的三个不同速度层次的Cache,应用程序重复使用的数据越多,从Cache中的得到的性能提升就越明显,K6-Ⅲ与其它CPU之间的性能差别就越大。 今年7月底,AMD正式发布了其最新的CPU产品Athlon(旧称K7)。Athlon(如^312001e^)不使用现有的Slot1、Socket7或Socket370接口,而是采用了类似Slot1结构的SlotA架构,但是与Slot1的电气特性、线路构造完全不同。这种架构对我们来说是完全陌生的,它又具有什么优势呢?首先,也是最惊人的,是这种总线可以运行在400MHz的频率上(Athlon目前仅使用200MHz的总线频率)!目前Intel连133MHz的外部总线频率都尚未正式支持。其次,这种架构可以使用高速度的RDRAM或DDR SDRAM(速度可达到同频SDRAM的两倍)。最后,这种架构可以支持SMP(对称多处理器),支持多CPU。 抛开总线上的优势不谈,AMD Athlon本身的优秀设计同样令人心动。首先,Athlon具有128K的L1 Cache,是PentiumⅡ的4倍,K6-2的2倍。L1 Cache容纳着程序最频繁使用的一些数据,L1 Cache越大,CPU读写这些数据的速度就越快,从而获得更高的性能;其次,Athlon可以在CPU内集成512K~8M的L2 Cache,运行速度可与CPU核心频率相同,也可以为CPU频率的1/2或1/3,这要看应用程序的需要和市场的定位而定;再次,Athlon内部拥有三条并行的浮点运算通道,再配以AMD的拿手好戏3DNow!,使得Athlon的浮点运算第一次真正走在了Intel的前面;最后,Athlon还是AMD第一个具有SMP能力的桌面系统CPU,用户将能够用Athlon构造双处理器甚至四处理器系统,在高档工作站、服务器系统中将会大显身手。这一点还有一个特殊的意义:AMD从此不再仅仅扮演廉价产品供应者的角色,Athlon的诞生使AMD形成了完整的高、中、低档产品系列。 以上出色的设计使得Athlon性能超群,在测试中Athlon的整数性能比同频率的PentiumⅢ略胜一筹,而在AMD一直头痛的浮点性能上,Athlon打了一个翻身仗:测试结果表明Athlon的浮点性能超出同频PentiumⅢ15%以上! #1 展望篇 面对AMD的挑战,Intel自然不甘落后,让我们来看看Intel手中还有哪些武器: 代号Coppermine的改进型PentiumⅢ:采用0.18μm工艺制造,片内集成256K全速Cache,正式支持133MHz总线频率,使用Direct RDRAM。由于制造工艺的改善,Williamette的核心频率将达到800MHz以上,这种CPU将于今年底配合Intel 820芯片组面世。 Merced:这是Intel的超级武器,预期浮点性能将是Pentium Pro的20倍,核心频率在600MHz以上, 采用0.18μm工艺制造,是第一款EPIC架构的处理器,预定2000年中期发布。谈到Merced,我们就不得不提到Intel引以自豪的EPIC:EPIC是“显式并行指令计算”的简称,它最重要的思想就是“并行处理”。目前的处理器必须动态分析代码,以判断最佳执行路径。而采用并行技术后,EPIC处理器可让编译器提前完成代码的排序,我们称之为“显式并行”——代码已明确排布好了,直接执行便可。正因如此,EPIC处理器必须能并行处理大量数据。这种处理器需要采用多个指令管道,一般还需要大量的寄存器、很宽的数据通路以及其他专门技术(如数据预装载等),确保代码能顺利执行,避免由处理器造成瓶颈。显然,EPIC最大的一个优点就是它的执行效率,尽管执行效率在很大程度上取决于编译器,但EPIC处理器无论何时都能充分发挥自己的能力,完成有意义的运算。此外,由于采用了指令断定、数据预装以及显式并行技术,显著减少了分支预测的错误,因为大多数代码都在执行前已组织好了。 我们再来看看目前处境艰难的Cyrix:随着美国国家半导体退出微处理器行业,并出售了Cyrix,MⅡ似乎成了Cyrix CPU的绝唱,但实际上Cyrix并没有放弃,日前VIA(威盛)收购了Cyrix,使我们得以继续目睹Cyrix新产品的风采:代号为Jalapeno的MⅢ(暂定名称),运行在600MHz以上的核心频率上,采用全新设计的浮点运算单元(这一直是Cyrix的致命缺陷),内置3D图形加速功能,片内集成256K全速Cache,以0.18μm工艺制造。 CPU的世纪大战即将在Intel、AMD、Cyrix之间展开,CPU的核心频率也将很快攀升至1GHz以上,到底谁能够笑到最后,让我们拭目以待。 编后:CPU是一种技术含量非常高的电脑主要部件,只有不断地提高技术,才能保证CPU产品不被淘汰。在过去的一年中,Intel和AMD大打技术战,而Cyrix由于技术实力不足而几近倒闭,IDT也因创新不足而退出CPU的竞争,这正是优胜劣汰的结果。我们期待着各大CPU生产厂商推出更加优秀的处理器,期待着更多实用高效的设计思想,为下一世纪写下更多的辉煌。