从简单纯粹的运算单元,到拥有多指令并行发射机制,再到多级流水线的产生,高速缓存的纳入,频率冲破GHz,再到内存控制器的集成,直至今天GPU的整合,这一切便是过去三十年来x86 CPU架构的进化历程。英特尔和AMD是这个历史的缔造者,它们初基于相同的架构,中途分道扬镳,彼此又不断借鉴对方的优秀创意,在此起彼伏的交锋中共同将x86带向未来。
现在,我们将向你讲述x86处理器架构的发展史,它们也过去三十年IT业发展历程的见证者。
作为x86指令集的创建者,英特尔公司在当年也只能算是一个小角色,这家成立于1968年的半导体企业远远无法同IBM这样的“百年老店”相提并论,它和AMD都是源于仙童半导体的私生子——英特尔的创始人安迪·格罗夫、戈登·摩尔、罗伯特·诺伊斯和AMD的创始人杰瑞·桑德斯都是仙童的同事,后来他们都离职创业,进入半导体领域。
英特尔初的业务是生产存储器,它们成功地拥有了源于仙童的半导体制作工艺,即一种类似于印刷的工艺将大量的电子器件集成在一个硅片中,这就是集成电路的概念。而早在1965年,戈登·摩尔还在仙童的时候,他就在一篇文章中总结出了一个现象:即芯片中的晶体管和电阻器的数量每年会翻番,原因是工程师可以不断缩小晶体管的体积。这就意味着,半导体的性能与容量将以指数级的方式增长,并且这种增长趋势将继续延续下去。1975年,摩尔又修订了这个定律,他认为,每隔24个月,晶体管的数量将翻番。其时,摩尔已经是英特尔公司的联合创始人,这个定律后来也被英特尔奉为经典,当然追本溯源,摩尔定律初描述的对象是半导体存储器。
苹果公司在1976年推出的Apple Ⅰ个人电脑,风靡美国市场,令当时计算机业巨头IBM大感震动。IBM紧急成立了一个项目组,开发针对个人用户的计算机,以同苹果竞争。然而,IBM那些脑袋僵化的工程师们无法理解个人用户要拿计算机来做什么,他们想了半天,结论是大概可以给家庭主妇记录菜单之类的。既然他们认为PC可有可无,自然不愿意花费大力气去开发,而是找了一系列供应商—比如CPU部分,他们就将订单交给英特尔这家小公司,当时IBM虽然有非常顶尖的Power架构,但他们认为这种用在超级计算机的高级货不应该浪费在PC上面。这个决策所导致的终后果就是:IBM失去了PC时代,成就了英特尔、AMD、微软等一系列的IT巨头。
英特尔之所以能拿到IBM的订单,除了价格低廉的优势外,技术和产品成熟也是个关键。因为在英特尔成立之后,除了制造存储器件外,也一直有为其他公司代工设计,生产微处理器的传统。比如早在1971年1月,英特尔公司的霍夫就研制出世界上第一块4位微处理器芯片4004,当然这并不是英特尔高瞻远瞩的结果,而是他们接到日本Busicom公司的订单,Busicom需要一块芯片来生产电算机,就选择英特尔作为供应商。从这个意义来说,x86架构应该是Busicom无意识下的产物,而不是英特尔雄才伟略的结果。
图1 4004处理器,x86的始祖。
4004可以执行4位运算,支持8位指令集和12位寻址,它的高频率为740KHz,当频率在108KHz时,4004可以每秒运算6万次。总的来说,4004处理器的性能与早期电子计算机ENIAC相若——ENIAC是在1946年推出,拥有18000个真空管,机器体积庞大,需占用一个房间。
1972年4月,霍夫等人接着开发出第一个8位微处理器英特尔 8008。由于8008采用的是P沟道MOS微处理器,因此仍属第一代微处理器。次年8月,后续的8080芯片诞生,它以N沟道MOS电路取代了P沟道,成为第二代微处理器。8080芯片的主频提高到2MHz,集成了6000个晶体管,采用的是6微米制造工艺,其运算速度比8008快了10倍,处理速度为0.64MIPS(每秒64万次),并可存取64KB存储器。
微软公司的创始人,比尔·盖茨和保罗·艾伦第一次接触CPU就是从8008开始,那时他们还都是年轻人,两人合力为该芯片编写了简单的Basic编程语言,但是没有成功;但他们终在性能强劲一些的8080处理器上实现了这个目标,并在新墨西哥镇成立了一家软件小公司,这家公司就成为了微软的前身—这也成为英特尔和微软亲密关系的开始。
1978年6月,英特尔推出4.77MHz的8086微处理器,标志着第三代微处理器问世。它采用16位寄存器、16位数据总线和29000个3微米技术的晶体管,售价360美元。8086还有一个精简版的孪生兄弟:8088,它只采用8位数据总线,所以只能称作准16位。
在当时,微处理器工业已形成Zilog、摩托罗拉和英特尔三足鼎立的格局——Zilog公司在1976年开发的Z80微处理器,被广泛用于微型计算机和工业自动控制设备;摩托罗拉推出的M68000 16位微处理器,也占据了相当的市场份额。而在整个处理器工业中,微处理器只是不起眼的小角色,高性能的RISC处理器才是当时的主流。
IBM决定在自己的PC中采用英特尔的芯片,这个决定成就了今天x86的地位。与苹果的封闭做法不同,IBM确立了开放式的PC标准,这也是早的开放策略—与今天安卓在智能手机市场的快速崛起类似,大量的兼容PC也纷纷出现,所有的兼容PC厂商都唯IBM马首是瞻,于是英特尔和微软都沾光分获了大量的订单,作为标准制定者的IBM,由于慷慨到“忘记”注册专利,终就失去了这个市场。
80286处理器诞生于1982年,虽然仍为16位芯片,但它集成了13.4万个晶体管,时钟频率由初6MHz逐步提高到20MHz。80286兼容了8086所有功能,使8086的汇编语言程序可以不做修改直接运行。80286微处理器内部有4个功能部件,即地址部件AU、指令部件IU、执行部件EU和总线部件BU。这四个部件的并行操作,提高了吞吐率,加快了处理速度。
图2 80286处理器
80286处理器推出之后,迅速获得各个PC厂商的采用,也包括IBM。激烈的市场竞争让用户学会了比较PC的性能,这几乎就是比较采用哪一款微处理器,英特尔也逐渐走上了前台,不再是一家被动的供应商。而真正的反客为主则是在80386时代—80386诞生于1985年,它是80x86系列中的第一款32位微处理器,而且制造工艺也有了很大的进步。与80286相比,80386内部内含27.5万个晶体管,时钟频率从12.5MHz(此时每秒钟可执行6百万条指令)开始,后逐渐提高到20MHz、25MHz和33MHz。80386的内部和外部数据总线都是32位,地址总线也是32位,可寻址高达4GB内存。
为了实现兼容,80386采用“类286”总线结构,这样就可以保持软硬件的兼容性,降低整机的开发和制造成本。其次,80386有三种工作模式,适应的操作系统比较多,对现有的程序兼容性比较好。再者,80386首度引入多任务处理机制,这就使它能被各行各业广泛使用。
图3 很多较早购买电脑的家庭,都是从80386DX起步的。
虽然当时80386没有完善和强大的浮点运算单元,但配上80387协处理器,80386就可以顺利完成AutoCAD等需要大量浮点运算的任务,从而顺利进入了主流的商用电脑市场。
针对内存速度相对低下的瓶颈,英特尔为80386设计了高速缓存(Cache),采取预读内存的方法来缓解这个问题。英特尔初计划将L1 Cahce直接内置入80386芯片中,但受到工艺、成本、工期等方面的限制,英特尔终选择了L1 Cache芯片外置主板的方案—从此之后,Cache就和CPU成为了如影随形的东西。Cache的设计也相当大程度影响着CPU的性能。
80386衍生出庞大的家族,除了标准版的80386DX,还包括廉价版的80386SX,以及移动版、低功耗的80386SL和80386DL—从386时代开始,英特尔就一反被动局面,主动推进PC系统的升级。而在市场竞争的驱使下,各个PC厂商都或主动或被动地追随英特尔的脚步,这也是英特尔确立自身在PC产业界地位的开始。
1989年,英特尔推出了新一代80486处理器。它的制造工艺提升到1微米,内部集成了120万个晶体管。80486具备了现代微处理器的主要元素:片内集成浮点运算单元、8KB的cache(L1cache)并支持片外L2 cache,整数处理单元则借鉴了精简指令集RISC结构,提高了指令的执行速度。此外,80486引进时钟倍频技术和新的内部总线结构,从而使主频可以超过100MHz。
在80486时代,英特尔已经开始成为PC业的核心,PC厂商开始新一轮的惯性升级,尽管面临AMD、Cyrix这些厂商的竞争,但英特尔已经稳稳地居于业界的主导。当然,真正让它走向辉煌的还是“奔腾”时代。
1993年,80486时代划上句号,英特尔发布第五代x86架构微处理器,并将其命名为“Pentium”,它同时也有一个响亮的中文名称“奔腾”。Pentium本应命名为80586或 i586,但阿拉伯数字无法用来注册商标,而英特尔又很不希望AMD、Cyr ix这些竞争对手用同样的名字来抢自己的饭碗,所以打算注册一个全新的商标——“Pentium”。这个名字其实也是“第五”的意思,通常认为它是希腊文“五(penta)”加拉丁文中代表名词的接尾语“ium”的造词。
Pentium处理器内部含有的晶体管数量高达310万个,时钟频率由初推出的60MHz和66MHz,后提高到200MHz。即便是66MHz的Pentium微处理器,它的运算性能都比33MHz的80486DX提高了3倍多,而100MHz的Pentium更是快6~8倍。由于Pentium的制造工艺优良,所以整个系列的CPU的浮点性能也是各种各样性能是CPU中强的,可超频性能大。“超频”这种不花钱提升性能的好方法开始在用户中广泛流行起来,这也让Pentium赢得586级处理器的大部分市场。
超标量(Superscalar)架构是Pentium在架构上主要革新之一,它拥有两个资料路径(管线, pipelines),可以达到在一个时钟周期内完成一个以上的指令。一个管线(称为“U”)可以处理任意指令,另外一个(称为“V”)可以处理简单和通用的指令,相当于吸收了传统RISC处理器设计的特色,这种设计显示出两种技术融合的可能性,也提升了x86的运行效率。不过在指令执行机制上,Pentium架构还是顺序执行(in-order),后来在Pentium Ⅱ时代则被乱序执行所取代。
图5 Pentium处理器的逻辑分布图
早期60MHz~100MHz的Pentium处理器在浮点运算单元上存在一个问题,极少数情况下会导致除法运算的精确度降低。这个缺陷在1994年被发现,英特尔随即陷入巨大的窘态,不得不召回有问题的处理器。另外,早期0.8微米工艺的Pentium也由于热量过高备受指责,当然后来制程升级至0.6微米之后才被一一解决。
Pentium-MMX是Pentium架构的一次关键升级,除了采用0.35微米制作工艺外,它引入了57个“MMX”指令集来增进多媒体工作的效率,比如像多媒体的编码与解码操作。这些指令集其实是快速执行的硬件,不过要让程序从中获得好处,就必须在编码时支持MMX指令技术,这种附加指令集机制也成为后来所有x86处理器的基准。由于应用程序都会支持MMX指令,也增强了英特尔在该领域的垄断地位。
1996年,英特尔在Pentium的基础上推出第六代x86处理器(内核代号P6),这便是Pentium Pro(中文称为“高能奔腾”)。Pentium Pro内部含有高达550万个的晶体管,内部时钟频率为133MHz,主频则有150MHz、166MHz、180MHz、200MHz等多种规格。Pentium Pro配置了8KB指令和8KB数据的一级片内缓存,另外在Pentium Pro的处理器封装中,除CPU芯片外还包括有一个256KB的二级缓存芯片,两个芯片之间用高带宽的内部总线互连,处理器与高速缓存的连接线路也被安置在该封装中,这样就使得高速缓存可以容易地运行在高频率上—比如Pentium Pro 200MHz CPU的高速缓存也是运行于200MHz,二者步调一致,这种设计使得Pentium Pro的性能达到优化。
在同等频率下,Pentium Pro处理速度几乎是100MHz的Pentium的2倍,其中的关键就在于Pentium Pro具有一项称为“动态执行”的创新技术,它可以通过分支预测算法来提前执行指令,避免不必要的闲置等待,这是继Pentium在超标量体系结构上实现实破之后的又一次飞跃。可以说到此为止,英特尔x86处理器的架构已经基本成型,之后的Pentium Ⅱ直到Pentium 4,都没有脱离这个体系。
1997年5月,英特尔推出Pentium Ⅱ处理器,第一个版本核心代号为Klamath,使用0.35微米制造工艺,它只有233MHz和266MHz两个版本,使用66MHz前端总线,后期还有300MHz的高频版本。Pentium Ⅱ其实延续了Pentium Pro的架构,加入MMX指令集支持,L1 Cache的容量提升到32KB(16KB指令+16KB数据)。Pentium Ⅱ拥有512KB的L2 Cache,这已经是比较现代的数字了,当然它仍然还是位于芯片外部。Pentium Ⅱ没有继续采用针脚的Socket式插座,而改用了槽式的Slot 1,这种设计也被后来的Pentium Ⅲ沿用。
1998年1月,代号为Deschutes的第二代Pentium Ⅱ处理器发布,它的运行频率为333MHz,前端总线也提升到100MHz,改用更先进的0.25微米制造工艺,发热量获得显著降低。这个版本的Pentium Ⅱ高达到450MHz主频。
Pentium Ⅱ时代的PC有过大量的变革,比如SDRAM内存替代了老式的EDO DRAM,AGP显卡开始引入。另外,削减二级缓存的Celeron(赛扬)处理器和针对服务器的Xeon处理器都开始出现。Xeon拥有一个全速的二级缓存,并且有512KB、1MB、2MB等多个版本。当时笔记本电脑已经开始进入高端商业领域,英特尔也因此开发出Pentium Ⅱ的移动版本,它将256KB二级缓存集成于芯片内部,封装尺寸也更小巧。
图6 Slot 1接口的Pentium Ⅲ处理器
1999年2月,代号为Katmai的第一代Pentium Ⅲ处理器发布,但它其实只是Pentium Ⅱ的改进版:指令集升级为更强大的SSE,一级缓存控制器作一些改进,依旧使用半速的512KB二级缓存、0.25微米制造工艺和Slot 1封装。Pentium Ⅲ大的争议在于加入了CPU序列号,英特尔的说法是为增强网上电子商务的安全,让每一颗Pentium Ⅲ处理器都具有识别用户的号码——事实上,英特尔明显超越了作为芯片厂商的权限,为此不得不随后发布补丁工具允许用户关闭。
第一代Pentium Ⅲ高主频截止到600MHz,后被代号为“Coppermine(铜矿)”的第二代Pentium Ⅲ所取代。一般认为,“铜矿”才是真正意义上的Pentium Ⅲ:它拥有新的架构、新的接口、新的制造工艺,性能的提升也相当巨大。Coppermine发布于1999年10月,它采用了当时先进的0.18微米铜互连技术制造,同时将256K B二级缓存直接集成于CPU内核中,新工艺让Coppermine拥有更低的发热量,CPU也能够工作在更高的主频上——Coppermine从733MHz起跳,它终突破1GHz的关口,在x86微处理器史上值得书下一笔。
Coppermine也奠定了日后英特尔微处理器的基础,它采用三发射设计,同时可以执行三条指令;流水线为12级,32KB一级缓存和256KB二级缓存,通过100MHz~133MHz前端总线与芯片组相连。这套架构影响深远,事实上,后来迅驰平台的Pentium-M,乃至于今天的Core微架构,都是脱胎于Coppermine。
Coppermine有一个短命的后续者,这就是0.13微米工艺的Tualatin(图拉丁)内核,Tualatin将二级缓存的容量提升到512KB,工作频率高突破1.4GHz,在当时性能完全不亚于频率高得多的Pent ium 4。芯片组也支持快速的DDR SDRAM,平台的整体性能颇为出色。问题在于Tualatin的流水线依然只有12级,1.4GHz频率已经到了极限,而当时频率至上的思想相当普遍,Tualatin并没有得到应有的重视。但是在注重低功耗的笔记本电脑领域,Tualatin也广受欢迎,以至于Pentium 4-M备受冷落。
在Coppermine时代,AMD第一次对英特尔构成真正意义上的挑战—虽然此前的K6、K6-2系列获得不菲战绩,但那只是凭借性价比而非性能优势。AMD在发布K7架构的Athlon处理器之后,竞争的天平就开始逆转,Athlon早在Coppermine之前突破1GHz大关,并且性能表现强劲,虽然当时缺乏良好的芯片组支持,但足以证明AMD可以制造出同英特尔相媲美的产品。
2000年11月,备受瞩目的Pentium 4处理器发布,也就是著名的奔腾4。Pentium 4属于英特尔生产的第七代x86处理器,并且也是继1995年出品的Pentium Pro之后的第一次微架构重新设计。
第一款Pentium 4的核心代号是Willamette,它采用0.18微米工艺生产,集成4200万个晶体管,接口方式为Socket 423。Pentium 4的起步频率就达到1.4GHz,前端总线频率也达到400MHz ,这些指标都要比Pentium Ⅲ高出许多,也优于对手Athlon的266MHz速度。但令人意外的是,Pentium 4没有在“整数处理速度”和“浮点性能”这两方面性能上表现出任何优势,原因在于Pentium 4为了追求高频率,采用多达20级的长流水线设计——流水线越长,提高工作频率就越容易,但每个时钟能处理的任务就会变少。因此尽管拥有1.4GHz的高频率,但它的性能却不如高频率的Pentium Ⅲ,基本上属于不进反退的类型。而在实际测试中,Willamet te的表现几乎让人大失所望,它几乎在所有的测试应用中都无法超过AMD Athlon和高频率的Pent ium Ⅲ,甚至对于AMD低端产品Duron处理器也没有太大的优势。而英特尔此时野心膨胀,妄图通过Pentium 4平台控制内存市场,采用了当时技术前卫,但价格奇贵无比的RDRAM作为搭配对象,导致Pentium 4平台的价格更为高昂。幸亏英特尔有众多PC厂商的死撑,Pentium 4平台在高阶PC市场还是获得不错的业绩。
但是从产品层面来看,Willamette绝对是失败之作,姑且不说与RDRAM搭配的做法,就是Willamette核心本身也不够完善。许多业界专家都认为,初1.4GHz和1.5GHz的Pentium 4只是赶工之作,而未能真正体现出它的应有能力。根据这些专家的观点,Willamette的发布是因为当时竞争对手AMD Athlon处理器的性能已经超过了Pentium Ⅲ,并且英特尔之前并没有考虑对Pentium Ⅲ进行深度改进,面对竞争对咄咄逼人的态势,及早推出Pentium 4就显得非常有必要。
英特尔将这套架构称为“Netburst”,号称“网际爆发”,宣传它是与互联网应用佳匹配的架构。事实上,Netburst的美名更多只是市场营销的需要。而在技术理念上,Netbur st的精髓就是通过高频率的法则终获得性能优势,英特尔在发表Pentium 4时向大众宣布说,NetBurst架构能够运行在10GHz。然而,NetBurst架构终在4GHz就遇到了无法解决的高功耗问题。终迫使英特尔在2005年年中放弃了这套架构,转向能效比更高的Pentium-M架构;而在之后的Core架构开发上,英特尔从过去的“频率至上”180度转变到“能效至上”,其实只是对Netburst错误开发思路的反思。
图7 Pentium 4强调“网际爆发”的概念一度深入人心,但无法掩饰其技术失败的事实。
第一代Willamette被公认为失败之作,不过第二代Nor thwood内核则获得一致肯定。这一次,Pentium 4终于表现出性能上的优势,搭配的内存也改用平易的DDR SDRAM——当频率突破2GHz时,Pentium 4终于在性能上击败了对手。这一次,英特尔可以松了口气。Nor thwood的主要改进包括0.13微米工艺、512KB二级缓存,并改用Socket 478接口。
Nor thwood架构寿命较长,早期的400MHz FSB版本,后来的533MHz FSB,后的800MHz FSB,以及Hyper-Threading超线程技术的引入,高频率甚至到了3.4GHz。
Netburst架构的第三位成员就是“Prescott”,它发布于2004年1月,采用了先进的90纳米工艺制作,流水线长度从20级增加到31级,并且支持SSE3指令集,改用饱受争议的LGA 775接口。Prescot t的目标依然是追求更高的工作频率,但更长的流水线设计让它效率更低,加上早期90纳米工艺并不完美,导致Prescott每个时钟周期比Northwood多产生大约60%的热量;插座类型的转换(从Socket 478到LGA 775)原本希望能够将发热降低到可以接受的水平,但是实际上却是产生了相反的效果,同时功率消耗也增加大约10%—终,Prescott的整体功耗轻松超过百瓦大关,基本上属于火炉的标准,几乎所有的评论都是负面的。如果说Prescott有什么新特点,那就是它拥有很多新技术的引入,比如硬件防病毒技术Execute Disable Bit(EDB)、节能省电技术Enhanced Intel SpeedStep Technology(EIST)、虚拟化技术Intel Virtualization Technology(Intel VT),等等,另外在2005年第一季度,英特尔发布了代号为“Prescott 2M”的编号6x0的新版Prescott内核,这让Pentium 4获得了执行64位x86代码的能力。
图8 Pentium D处理器简单的将两颗芯片封装在一起,被对手讥讽为“伪双核”。
Cedar Mill是Pentium 4家族中后的成员,它发布于2006年第一季度,采用65纳米工艺制作,将处理器的功耗降低到86瓦的水准,但在内部架构上,Cedar Mill没有多少建树,它只是修改了Prescott内核电路上的一些Bug,性能未有进步,Cedar Mill的高频率止于3.8GHz,这也是Netburst家族后的光荣。
在2005年第二季度,我们看到双内核Pentium D处理器的诞生——Pentium D在一颗芯片中集成了两个Prescott内核,与传统的多处理器没有什么区别,功耗超过150瓦,可想而知它是一个可怕的电老虎。到Cedar Mill时代,英特尔干脆采用更简单的做法,即将两枚Cedar Mill芯片封装在一块晶片上,达到提高良品率和降低成本的目的,当然,这一代Pentium D的功耗也是相当可怕的。
AMD在2003年9月发布了K8架构,籍由64位指令和整合内存控制器的创新设计,加之在性能、功耗方面的不凡表现,开始给英特尔造成巨大的麻烦。基本上在这个时代,双方打成了平手,AMD一直保持强势的姿态,这种局面直到后来Core微架构的出现才被重新改变。
Pentium 4的高功耗在笔记本电脑市场就遭遇麻烦,Pentium 4-M的功耗达到35瓦,这个数字显然太高了,而架构的先天限制,让Pentium 4根本无法进一步改善节能。为此,英特尔一方面还是依赖Pentium Ⅲ-M来撑撑场面,另一方面则开发新的架构解决问题—英特尔的官方决策是让台式机、服务器选择高频率的Netburst,移动市场则采用新的低功耗架构,这便是后来的Pentium-M。
Pentium-M其实并不是英特尔的正式开发计划,而是英特尔位于以色列研发中心的一些工程师的构想。大约在90年代末,笔记本电脑市场刚刚开始喷涌,以色列研发中心的一些工程师和欧德宁就谈论专门开发笔记本电脑芯片的想法,其目的在于,在提供较长电池使用时间的条件下,也能够获得较高的性能。这个想法获得高层的支持,当Pentium 4毁誉参半的时候,该计划的结晶,也就是Pentium-M却成为新希望所在。
尽管英特尔的官员曾表示Pent ium-M是一款全新设计的芯片。但真相却是,Pentium-M其实是基于Pentium Ⅲ架构之上的重大修改版。当初第一版的Pentium 4反而不如Pentium Ⅲ,饱受外界诟病,以至于AMD的官员嘲笑说:“如何使Pentium 4表现更好?那就采用Pentium Ⅲ。”据英特尔的前首席芯片设计师鲍勃回忆说,当时他们曾经提出了改进Pentium Ⅲ的20~30项措施,使之能够实现显著的性能提升,但计划并没有真正付诸实施,后以色列的设计人员对它进行了改进。Pent ium-M就是在这样的背景下诞生,因此它确实不是一款全新的芯片。该芯片的设计师之一埃登在谈到Pentium-M时说:“它不再强调速度(频率),而是对客户需求的响应。”
Pentium-M的流水线仅有14级,比Pentium 4的20级小得多,只比Pentium Ⅲ的12级略多,这种设计保证了在频率提升空间的同时,又能做到出色的指令性能。其次,Pentium-M的分支预测和预取机制获得大量改进,简单点说它采用了Prescott核心的成果,终使得Pentium-M的分支预测效能比Pentium Ⅲ高出20%。第三,Pentium-M引入Micro Fusion(微操作融合)技术,一些相关性的微操作指令被捆绑在一起执行,此举显著提升了硬件的执行效率——根据测试,这项技术让整数数据的处理速度提升5%,浮点数据的处理速度提升9%。第四,Pentium-M拥有一个1MB的L2 Cahce,并且它被划分为4个部分,每个部分都可以单独访问,这样在运行中的某个时刻,只要有一部分L2 Cahce开启即可,此举将L2 Cahce的功耗降低1/4。而作为Cache的SRAM过去一向是耗能大户。第五,Pentium-M采用Pentium 4的QPB型前端总线,这就让内存与CPU之间拥有更大的数据吞吐量。
上述改进的效果立竿见影,Pentium-M在较低的频率下就表现出强劲的性能——比如说Pentium-M 1.6GHz的实际性能就可以同Pentium 4 2.8GHz相媲美,巨大的反差足以让Pentium 4被判了死刑。
第一代Pentium-M代号为Banias,它发布于2003年2月,采用0.13微米制造工艺,集成了7700万个晶体管,工作频率从1.3GHz~1.6GHz。英特尔标新立异地提出“Centrino(迅驰)”平台的概念:将英特尔的Pentium-M CPU、i855系列芯片组和802.11b无线网卡捆绑在一起,这种行销策略大获成功,也推动了802.11b无线网络的普及。另外,Pentium-M的TDP功耗只有24.5瓦,配合其他节能措施,将笔记本电脑的电池时间提升到3小时以上—而过去无论Pentium Ⅲ-M还是Pentium 4-M,都只有2小时左右的水平。
图9 CPU、芯片组、无线网络的捆绑式设计让迅驰平台大获成功。
2004年10月,代号为Dothan的第二代Pentium-M发布,它采用90纳米工艺制造,二级缓存提高到2MB的规格,晶体管总数也飙升到1.4亿个。相比Banias多出来的那部分,其实基本都用于二级缓存。Dothan的工作频率在1.7GHz~2.0GHz之间,它的性能表现更令人刮目相看,同时芯片TDP功耗还降低到21瓦的水准。基于Dothan的第二代迅驰平台,拥有54Mb/s的802.11g无线网络,带动了整个无线设备市场的更新换代。
后一代Pentium-M架构代号为“Yonah”,它也是英特尔史上第一种原生双核心x86处理器。Yonah以Core品牌发行,国内称之为“酷睿”,但它在本质上只是两个Dothan的整合,主要革新点在于两个CPU可以共享2MB二级缓存,而不是独自占有,此举显著提升了双核处理器的任务配合能力。其次,Yonah加入了SSE3指令集、英特尔虚拟化技术(Intel Virtualization Technology)与英特尔病毒防护技术(Intel Execute Disable Bit),功能特性也比较丰富。
Yonah Core平台发布于2006年1月,制造工艺为65纳米,尽管整合了双核心,它依然保有24瓦的超低功耗水平。Yona h的高频率达到2.33GHz,不过此时其TDP功耗提升到31瓦。此时此刻,Pentium 4即便拥有3.8GHz的高频率,也无法同Yonah相提并论。当然,到此为止,Pentium Ⅲ时代或者说Pentium Pro架构的后荣光,也就划上了句号。
Pentium-M的成功令Pentium 4无地自容,终驱使Pentium 4开发团队引咎辞职,这些人另立门户成立了一个名为Stexar的小公司,其CEO兰迪·斯特克,是Pentium Pro、Pentium Ⅱ、Pentium Ⅲ和Pentium 4开发小组领导人;工程部副总裁Gary Brown,曾任Northwood设计和编程经理;首席架构设计师Darrell Boggs也是Netburst架构的首席设计师,并曾参与Hyperthreading的开发。Stexar公司在2006年9月份被NVIDIA收购,现在这些人估计正在为NVIDIA的Denver计划努力。
尽管Yonah开始拥有“Core”的新商标,但真正意义上的Core架构却是从Merom内核开始的,Merom是英特尔反思Pentium 4教训和汲取Pent ium-M营养的翻身之作,它发布于2006年第三季度。Merom终于能够原生支持64位的EM64T架构,但其成就远不止于此。Merom同样出自以色列人之手。
我们再回头来看Me rom,它伟大的设计就是做到了四发射,也就是同时可解码四道指令—而之前的x86处理器只能做到三道。这意味着在一个时钟周期内,Merom已经在指令解码方面直接获得33%的性能增长。如果是RISC处理器,四发射设计并不困难,绝大多数RISC产品都是这么干,这是RISC产品优于CISC的关键点。深层次原因在于RISC指令系统简单,而x86指令系统仍然较为复杂,硬件强行四发射设计,会出现频率难以提升的陷阱。Merom吸收了RISC的营养,英特尔将指令分为20%的热指令与80%的冷指令,并进行深度优化,从而做到四发射和频率提升的均衡。这项成就迄今为止都是英特尔的技术壁垒,AMD的K10架构无论如何改进都无法突围,据说其新一代“推土机”架构,才实现四发射,但也传闻其遭遇频率难升的麻烦。
Merom另一项关键改进就是Macro Fusion(宏指令融合)技术,宏指令融合技术比微操作融合技术的应用更为广泛,如If和Jump指令结合,这项技术进一步增加了执行效率。总之,在一系列提高效率到牙齿的技术环绕下,Merom的每瓦性能高到不可思议的地步,AMD的Athlon X2系列毫无还手之力,只能依靠性价比取胜。
图10 Core微架构融合了英特尔的经验与教训,并获得压倒性的优势。
在这个时代英特尔也放弃台式机、移动不同架构的做法,将两者重新整合在了一起。显然,英特尔被Pentium 4的高热量吓坏了,这次它优先设计低能耗的Merom,然后再衍生出针对台式机市场的“Conroe”,也就是我们俗称的“扣肉”。
Conroe在内部架构上同Merom没有任何区别,功能上也完全一致,只是作为台式机处理器,它在功耗方面的要求更加宽松,这就使得Conroe也可以做到更高的频率—虽然还无法同Pentium 4比肩,但卓越的指令效率,让它终获得惊人的性能,与Pentium 4拉开了很大的差距。
Merom时代的迅驰平台代号为Santa Rosa,该平台包含四大组件,分别是Merom处理器、i965M系列芯片组、i4965AGN无线模块和Intel Turbo Memory模块。这其中有意义的是无线模块,让300Mb/s的802.11n标准取代了低速的802.11g;而糟糕的当属那个叫做“迅盘”的Intel Turbo Memory模块,它本来应该起到加速作用的,但用户普遍发现它其实会让开关机变得缓慢无比,终这个模块没有继续发展,因为兴起的SSD固态硬盘显然是更好选择。
Merom的接替者是45纳米工艺的Penryn,它发布于2007年11月(台式机版与服务器版)和次年的一季度(移动版),Penryn并没有带来太多的新技术特性,SSE4指令集应该算一个,还有一个就是动态加速技术。Penryn的性能提升幅度也比较小,因为这个时候英特尔已经在性能方面遥遥领先于AMD,所以没有太大必要快马加鞭。不过Penryn时代出现了四核心处理器,这主要针对台式机和服务器市场。得益于先进的45纳米High-K工艺,Penryn的功耗水平更低,移动处理器依然停留在25瓦水平,同时由于节能技术更丰富全面,Penryn平台笔记本电脑的电池续航力仍有一定的提升。
从Penryn开始,英特尔将更新换代的步骤整合为“Tick-Tock”(意指像钟摆一样“滴答”作响的有序步调)工艺与微架构发展战略—Tick指每隔两年的奇数年推出核心面积更小,制作工艺更先进的处理器,即指半导体工艺升级;Tock指每隔两年的偶数年推出新架构的处理器。
那么时间表到了2008年,新一代架构Nehalem出炉,这是Core2架构的首度重大革新,革新点主要两方面:一是将内存控制器整合于CPU内部,可支持三通道DDR3,这种设计可以有效降低内存系统的延迟,借此进一步提高性能;二是引入高速QPI总线技术,便于多处理器的互联与扩展。AMD有足够的理由指责英特尔在抄袭,因为这不过是2003年K8架构就实现的东西;当然AMD其实也在抄袭RISC阵营的设计。
Nehalem在内部设计方面还有大量的改进,但我们认为这些常规的改进不值一提,前面所说的两个革新才是Nehalem获得性能突破的关键。从Merom时代开始,英特尔就一直在CPU性能上占据压倒性的优势,Nehalem时代同样是如此,不过此时AMD吸纳了ATI的图形技术,在市场上给英特尔的威胁反而加大。
图11 Nehalem整合了内存控制器,引入QPI总线,连接架构类似于AMD平台
在Nehalem时代,“迅驰”商标寿终正寝,英特尔开始强调“酷睿”品牌,这其实是一种倒退,实际上我们也认为并非明智之举。既然不再捆绑式销售,PC厂商有自由的选择了么?NO,PC厂商还是必须选择英特尔的处理器、芯片组和无线网络模块。英特尔认为自己通吃比较好,结果它得罪了几乎整个产业界,不断逼出NVIDIA、ARM等更强硬的竞争对手。
图12 Westmere将CPU芯片与GPU芯片封装在一起,构成一枚混合处理器。
到了2009年,英特尔开始将制造工艺升级到32纳米,这便是Westmere。Westmere实现了六核心设计,拥有高达12MB的三级缓存,不过移动版还是以双核心为主。Westmere大的创举还是将GPU整合在处理器内部。当然,你知道,它提供了够用但不强悍的性能,无论3D或高清视频方面都还马马虎虎,虽然无法同NVIDIA、AMD的GPU技术相提并论,但此举让英特尔进一步蚕食了独立图形市场。
虽然将GPU与CPU整合在一起依然是AMD的主意,这也是AMD并购ATI的主要目的之一,但问题是AMD一直停留在纸面谈论阶段,反而让英特尔抢了先机。虽然Westmere仅仅是将GPU芯片同CPU封装在一起,但从今天来看,英特尔这抢先的一步棋着实对“整合”的趋势起到了重要的推动作用。
CPU与GPU的整合大潮,也让NVIDIA的生存空间被挤压殆尽,NVIDIA先期被迫放弃了芯片组市场,低端显卡市场也不断萎缩,但它以GPU通用计算来反戈一击,同时将 Tegra移动芯片发展得风生水起,接着它与微软结盟,准备以ARM架构的Denver进入PC市场,可以说NVIDIA今后将是英特尔巨大的麻烦。
2011年1月,新一代架构Sandy Bridge出炉,这代架构的主要特点则是加入了game instrution AVX(Advanced Vectors Extensions)技术,也就是之前的VSSE。AVX技术将矢量运算的宽度从之前的128bit扩展到256bit。英特尔宣称,使用AVX技术进行矩阵计算的时候将比SSE技术快90%,其重要性堪比1999年 Pentium Ⅲ引入SSE。不过,Sandy Bridge引人注目的地方还是将GPU直接集成于芯片内,做到硬件层面的高度融合,同时CPU、GPU可以共享三级缓存,显著改善了GPU的性能表现。至于GPU本身的架构也得到相当的增强,使得Sandy Bridge的图形性能直逼低端独立显卡。此外,Sandy Bridge中还集成了视频引擎,可以对1080p高清媒体进行硬件解码,这样就不必再消耗CPU资源。内存控制器方面,Sandy Bridge可以支持双通道DDR3-1600。
除了性能的增长外,Sandy Bridge拥有相当多的人性化技术,比如新一代 “Turbo Boost”智能动态加速技术更为有效,CPU、GPU可以分别动态运行,节能效果相当出众。总之,Sandy Bridge是相当值得称道的产品,它不仅在CPU性能方面有10%~30%的提升,GPU性能也接近翻番,该平台的笔记本电脑普遍拥有4~5个小时的续航能力,整体表现极为出众。
然而,尽管新平台如此的出众,英特尔面临的市场竞争压力不仅没有因此变小。作为老对手,AMD在CPU领域的弱势地位一直没有改变,并且性能差距幅度相当可观,但伴随着ATI图
形技术的整合,AMD平台的整体吸引力越来越强——CPU性能过剩已经是共识,高一点或低一点对实际体验影响有限。而图形性能对用户体验影响显著,AMD在这一领域的优势十分显著,它在今年6月份发布Fusion APU,并且提出“异构计算”的理念,籍由GPU来加速高密集度的计算任务,从而获得综合的性能优势。
由于英特尔没有强有力的图形技术,先前开发的Larrabee项目又转向其它并行处理领域,这意味着在异构计算时代它只是一个配角。伴随着OpenCL的确立,我们相信支持异构计算的应用程序将会越来越多,包括多媒体视频编解码、文件压缩、Flash动画、图像处理和音频制作等涉及密集运算量的场合,异构计算将成为标准,无论英特尔拥有多么强大的CPU,都无法同更擅长此道的GPU相对抗,这也是它在未来要面对的严峻局面。
图13“Tick-Tock”的“钟摆”已走到了Sandy Bridge这一步
图14 Sandy Bridge系统的架构示意图
点击阅读《见证“芯”路 30年CPU架构发展史(二) 》。