忘掉“频率”与“架构”

时间:2022-07-23 10:42:05

处理器的发展已经到了一个新的关口,英特尔在抛弃高频率路线之后,以多核和内部架构的改进作为主要方向,AMD则开始谋求协处理器加速机制,SUN公司在UltraSparc T1/T2处理器中采用专用化设计,IBM的Cell则以前卫的分布式计算理念打造超级计算系统。无论是传统的x86体系还是RISC体系,都在积极谋求更卓越的运算性能,并妥善解决高性能所带来的高功耗和工艺技术难题。尽管看法各不相同,技术手段也各有差异,但微处理器工业都在朝向共同的目标前进――更高的性能,同时具有更低的成本。

最终目的――提升晶体管效率与能源效率

无论你遇到的是什么应用,例如3D游戏、2D图像处理、多媒体娱乐、上网浏览或者IM交流,它们的本质都是二进制数的加减乘除运算,只是应用不同,所对应的计算类型也各不相同,例如3D游戏、多媒体、图像处理主要涉及浮点运算,其中的多媒体和图像应用需要大量的矢量和矩阵运算,这也是SSE/3D Now等指令集存在的原因;至于网络浏览、办公软件、互联网服务器等应用一般只涉及整数运算。

处理器提供完整的计算功能,它的通用属性允许执行各种各样的计算指令,对于x86平台而言,任务的多样性要求处理器能够提供全面的计算功能,因此x86处理器在整数、浮点方面的性能一般都比较均衡,那么提高性能就意味着两者应该同时获得提升。

然而,性能的提升必定会受到功耗和成本的限制,微处理器厂商的目标都是实现最高的效益――即处理器成本最低,但性能最优。处理器的成本有双层含义,一是芯片本身的制造成本,它由芯片的晶体管集成度、制造工艺和良品率共同决定,不过从设计层面来看,晶体管的多寡决定成本的高低――设计者最希望的是用更少的晶体管实现更出色的性能,这样的任务考验着设计者的技术功底,而衡量设计优劣我们可以引入“每晶体管性能”来评定。

另一个成本是指用户的使用成本,它所说的就是电费支出,由芯片的功耗所决定。个人用户或许对此不算很敏感,但对于拥有大量计算机的企业、网吧、数据中心而言,电费支出往往相当惊人,在性能相同的条件下,低功耗的芯片显然更受欢迎。同时,低功耗芯片发热量更低,能够提供更人性化的使用感受(例如风扇噪音更低),因此也更受欢迎;我们可以采用“每瓦性能”来衡量处理器的能源效率,这也是英特尔在Core平台中高调宣扬的概念之一。

所有的微处理器业者都在追求“每晶体管性能”与“每瓦性能”的最大化,这两项指标直接决定了处理器的竞争力水平――一个新的问题由此产生:要做到两项指标的最大化,应该采用何种设计思路?高频率、优化的架构、多核还是协处理器?

矛盾的平衡术――架构与频率谁是重点?

在漫长的时间内,x86处理器都在寻求频率的增长,频率高低也成为衡量处理器性能的唯一要素,相信大家对1999年英特尔与AMD的1GHz突破记忆犹新,不过随后英特尔拿出Netburst架构的Pentium 4,在频率之争中遥遥领先,并依靠高频率赢得了对K7的胜利,但在K8架构出现之后,低频率的Athlon 64系列处理器凭借优越的微架构在性能上赶超。

这就引起一个新的问题:频率与架构哪一个对CPU性能影响更重要?

CPU的性能是由执行计算任务的能力来衡量的,在相同的时间段内,执行计算任务越多的处理器性能就越高。而决定性能高低的主要有两个指标:其一就是主频,它所指的是CPU在单位时间内能执行多少次指令。打个比方,CPU的主频就好比是人在单位时间内可以走多少步路;其二就是IPC(IPC:Instruction Per Clock),它所指的是CPU在每个时钟周期内可以执行多少条指令,代表指令执行的数量,同样做个比方,IPC就好比是人走每步路的长度。那么,CPu的性能可以用如下公式表达:“处理器(CPU)性能=主频×IPC”。

换言之,二者相辅相成,同等重要,但无论哪一个指标,都无法单独决定CPU的性能。

IPC主要由CPU的架构来决定,事实上,主频与IPC是一对矛盾综合体,在处理器设计中,高频率往往要以低IPC为代价,而高IPC又会遭遇频率难以提升的困扰,芯片设计者必须在两者之间取得平衡。过去的Netburst试图走一条极端化的道路,它通过提升流水线长度来获得高频运作,但同时也导致低IPC的后果,而高频运作还带来高功耗、高热量的弊端,因此虽然Netburst架构可以凭借逼近4GHz的高频率保有高性能,但高功耗的拖累让它不堪重负,也限制了未来发展空间。

此后,英特尔在Core微架构中改变了这种做法,它采用一个新的公式:“处理器(CPU)性能=每瓦性能×功耗”,通过优良的微架构达到每瓦性能的最佳化,从而可以在低功耗条件下获得超越对手的高效能。另外在IPC方面,Core架构的表现极为优异,它可以同时解码4条指令,加上宏操作融合技术与微操作融合技术,Core架构最多可以同时解码5条指令,相比之下,AMD的K8架构只具备同时解码3条指令的能力。由于IPC性能突出,Core架构在较低的频率下就能够获得大幅超越前代产品的性能,英特尔也从此完全抛弃硬伤较多的Netburst架构。

AMD新近推出的K10架构其实也是主频与IPC平衡的一个典范,K10在K8基础上改良而来,主要增强了浮点方面的计算能力,不过在指令解码能力方面,K10没有获得增强:每个周期仍只能解码3条微指令,实际执行能力逊于英特尔的Core架构;不过,K10集成了内存控制器,拥有更卓越的内存性能,加上SSE指令单元扩展到128位,引入2MB三级缓存,以及对微架构进行深度的改良,这些措施都有效提升K10的IPC性能。因此,K10同样没有强调高频运作,但它的性能并不亚于竞争对手,芯片的功耗和发热量也都控制在较好的水平,从而能够保持理想的市场竞争力。

从单核到多核、从巨内核到微内核

处理器从单核发展到多核可以让“每晶体管性能”获得显著的提升,也就是能够以更低的代价获得相当出色的性能。

在单核心时代,处理器提升性能的主要途径是频率与缓存,利用缓存容量作为高低阶产品区分依据的做法相当流行,典型的例子包括Pentium 4与Celeron、Athlon XP与Duron;在缓存容量上,英特尔的产品相对于其他品牌而言从来都占据绝对优势,这很大程度上得益于半导体工艺的领先。但从经济效率角度来看,大缓存设计绝对不是理想方案,例如二级缓存容量从1MB提升到2MB,带来的性能增益在10%以内,但高速缓存为SRAM部件、1bit数据就需占用6个晶体管,1MB缓存需要接近5000万个晶体管,比CPU核心都高出不少。不妨以当年的Northwood为例:Northwood Pentium 4的二级缓存 为512KB、晶体管总量7500万个,而相同核心的Pentium 4 Extreme Edition由于增加了2MB的三级高速缓存,晶体管数量大幅攀升到1.78亿――尽管晶体管数量比前者高出1.37倍,芯片生产成本也高出许多,但性能提升幅度仅在10%左右,这种设计显然非常缺乏经济效益。相反,假如将这些晶体管用于CPU核心的设计,也就是让处理器拥有双核心,那么带来的性能增益可以在80%以上。

英特尔与AMD几乎同时意识到这个问题,因此它们转向了双核体系,到现在为止,双核心处理器已经成为主流,四核产品也在服务器和高阶市场大行其道,多核设计的优势在实用中获得充分的体现。不过随着核心数量的增多与频率提升,处理器的功耗问题又逐渐开始变得严峻,英特尔的Core 2 Quad与AMD的Phenom X4功耗都超过百瓦,主流的双核处理器也都达到89瓦,相当于当年Prescott处理器的水平。假如按照这种轨迹发展下去,多核设计同样将遭遇高功耗的制约、造成性能难以提升的困境。

AMD就这种观点的持有者,它们认为多核处理器在未来将遭遇Netburst的覆辙,必须被更高效率的设计所取代――AMD提出的方案就是Torrenza协处理器加速计划,即采用协处理器来辅助CPU完成计算任务。由于协处理器都采用专用化设计,在特定的应用中效率极高,它的引入能够显著提升平台的效能。另外,AMD还发展出Fusion混合处理器的概念,即将GPU作为协处理器直接整合于CPU内部,两者协同运算,不过这样做的目的主要在于资源的共享。

相比之下,IBM与英特尔的方案更为彻底:IBM认为主一从多核架构效率更高,这种设计在PS3中的Cell处理器中获得体现。在Cell处理器中,只有一个功能简单的主CPU负责任务分派,而真正的指令执行任务则是由数量众多的协处理器完成的;Cell处理器占用2.34亿个晶体管,90纳米、3.2GHz版本的功耗为110瓦,但浮点性能比规格相当的x86处理器高出十倍以上!受此启发,英特尔发展出Many Core计划,它同样是采用主一从多核架构,Many Core处理器最多可拥有80个核心,其中绝大多数都是各种功能的协处理单元(例如浮点加速器、Java解释器、Flash加速器等等),主CPU的数量在4个以内、它们只是负责任务分配和整数运算任务。

无论是IBM Cell、AMD Torrenza/Fusion还是英特尔的Many Core,它们均采用协处理器加速的主从多核设计、隶属于“微内核”体系,而现行的多核处理器属于“巨内核”体系――巨内核的特点是核心设计复杂、要求动用数量庞大的晶体管,但单个核心就可以承担所有的任务,具有更强的通用性。而“微内核”则不同,它的核心设计都非常简单,往往只处理特定的任务,所需的晶体管和能耗当然也少得多,而在执行专用任务时,这些微内核的效率远高于通用的CPU;如果将大量的微内核集成在一起就能够完成各类计算任务,而这种做法无论在能源效率还是晶体管效率指标上都优于现行的“巨内核”设计。英特尔曾举例说明两种设计的差异:若要实现32GFLOPS/4GHz规格的处理器,现行的巨内核设计需要21平方毫米大小的芯片(假设45纳米工艺)才能做到,平均每平方毫米可提供1.5GFLOPS性能,每瓦能耗对应的,性能则是1.4GFLOPS;倘若改用微内核思想来构建32GFLOPS/4GHz处理器,那么芯片尺寸只要区区6平方毫米,平均每平方毫米芯片的性能为6.4GFLOPS,每瓦特性能为5.9GFLOPS。

由于在能源效率、晶体管利用效率方面都具有明显的优势,微内核将会取代巨内核(或者二者融合)成为未来微处理器设计的主导方案,英特尔在Larrabee高并行处理器中就首度采用微内核设计,AMD也在技术蓝图中披露了微内核设计的远景,IBM则在Cell中首开先河,可以说在这一点上,微处理器工业已经形成广泛的共识。

总结:成本决定谁笑到最后

无论微处理器开发朝着什么方向行进,更低成本、更高收益永远都是开发者的目标,频率提升和架构的改良都只是人们看到的表象,设计者总是希望用最少的晶体管、最低的能源消耗来获取最佳的性能,继对等架构的多核心之后,协处理器加速与微内核设计将成为新方向――或许我们可以忘记“频率”、“架构设计”之类的指标,只要关心处理器的购置成本、能源消耗与所能提供的性能水平,微处理器工业的历史早已证明,低成本的产品总会成为最终的胜利者。

上一篇:高清音频时代来临 下一篇:新科技,新畅想