Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1863793
  • 博文数量: 343
  • 博客积分: 10342
  • 博客等级: 上将
  • 技术积分: 2892
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-15 12:34
个人简介

你必须非常努力,才能看起来毫不费力!

文章存档

2012年(3)

2011年(5)

2010年(2)

2009年(40)

2008年(293)

分类: 系统运维

2008-11-25 10:41:37

1.发展趋势

  (1)工艺的影响。在过去30多年的发展过程中,高性能基本上都是按照著名的摩尔定律在发展。根据世界半导体行业共同制订的2003年国际半导体技术发展路线图及其2004年更新,未来15年集成电路仍将按摩尔定律持续高速发展。预测到2010年,高性能CPU芯片上可集成的晶体管数将超过20亿个(到2018年超过140亿个)[4]。半导体技术的这些进步,为处理器的设计者提供了更多的资源(无论是晶体管的数量和种类)来实现更高性能的芯片,从而有可能在单个芯片上创造更复杂和更灵活的系统。

  随着晶体管集成度的越来越高、频率和计算速度的越来越快,芯片的功耗问题、晶体管的封装、芯片的蚀刻等越来越难以处理。这些因素使得摩尔定律本身的发展及其对处理器的影响发生了一些深刻的变化。

  首先,根据上述的路线图,摩尔定律指出的发展趋势已经变缓,由原来的1.5年一代变为2-3年一代。除了技术本身的难度增加以外,集成电路生产线更新换代的成本越来越昂贵,生产厂家需要更多的时间来收回生产线成本也是一个重要原因。

  其次,处理器主频正在和摩尔定律分道扬镳。摩尔定律本质上是晶体管的尺寸以及晶体管的翻转速度的变化的定律,但由于商业的原因,摩尔定律同时被赋予每1.5年主频提高一倍的含义[4,5,6]。事实上过去每代微处理器主频是上代产品的两倍中,其中只有1.4倍来源于器件的按比例缩小,另外1.4倍来源于结构的优化,即流水级中逻辑门数目的减少。但目前的高主频处理器中,指令流水线的划分已经很细,很难再细分。例如,Pentium IV的20级流水线中有两级只进行数据的传输,没有进行任何有用的运算。另外,集成度的提高意味着线宽变窄,信号在片内传输单位距离所需的延迟也相应增大,连线延迟而不是晶体管翻转速度将越来越主导处理器的主频。功耗和散热问题也给进一步提高处理器主频设置了很大的障碍。因此,摩尔定律将恢复其作为关于晶体管尺寸及其翻转速度的本来面目,摩尔定律中关于处理器主频部分将逐渐失效。

  此外,虽然集成度的提高为处理器的设计者提供了更多的资源来实现更高性能的芯片,但处理器复杂度的增加将大大增加设计周期和设计成本。

  针对上述问题,芯片设计越来越强调结构的层次化、功能部件的模块化和分布化,即每个功能部件都相对地简单,部件内部尽可能保持通信的局部性。

  (2)结构的影响。在计算机过去60年的发展历程中,工艺技术的发展和结构的进步相得益彰,推动着计算机功能和性能的不断提高。工艺技术的发展给结构的进步提供了基础,而结构的进步不仅给工艺技术的发展提供了用武之地,同时也是工艺技术发展的动力[3]。

  在过去60年的发展历程中,计算机的体系结构每20年左右就出现一个较大突破,已经经历了一个由简单到复杂,由复杂到简单,又由简单到复杂的否定之否定过程。最早期的处理器结构由于工艺技术的限制,不可能做得很复杂,一般都是串行执行;后来随着工艺技术的发展,处理器结构变得复杂,流水线技术、动态调度技术、CACHE技术、向量机技术被广泛使用,典型的代表如IBM 360系列的机器以及Cray的向量机;RISC技术的提出使处理器结构得到一次较大的简化;但后来随着工艺技术的进一步发展以及多发射技术的实现,RISC处理器的结构变得越来越复杂。以Intel和HP为代表研制的EPIC结构的实现并没有从根本上对处理器结构进行本质简化。在上述过程中,每一次由简单到复杂的变革都蕴涵着进一步简化的因素,例如在早期的复杂处理器CDC 6600以及Cray向量机中,已经有了只由load和store进行访存的概念,IBM 360/91中的Tomasulo算法被后来的RISC处理器普遍使用。同样,每一次由复杂到简单的变革,也蕴涵着再次复杂的基础,例如RISC结构的特点使得它可以充分利用多发射以及乱序执行来提高性能,而多发射和乱序执行又会增加处理器的复杂度。

  以近年来RISC微处理器结构没有大的突破为标志,RISC结构已经成熟。现在的RISC微处理器普遍能允许几十到上百条指令乱序执行,如Alpha 21264处理器的指令队列最多可以容纳80条指令,MIPS R10000为32条,HP 8700为56条,POWER 4为200多条,PIV为106条(PIV 处理器虽然指令系统是CISC,但内部的微操作则具备了很多RISC的特征)[7,8,9,12,13]。目前,包括超标量RISC和EPIC在内的指令级并行技术使得处理器核变得十分复杂,通过进一步增加处理器核的复杂度来提高性能已经十分有限。

  同时,由于以下原因,通过结构的方法细分流水线来提高主频的方法将来很难再延续下去:一是不可能使用少于6-8个FO4(等效4扇出反相器)产生出波形好的时钟脉冲;二是随着流水级的增加流水线结构的效率会越来越低;三是由封装承受能力引起的热包封限制使得难以实施很深的互连流水线结构;四是结构和电路的创新将越来越多地用于减轻给互连RC效应带来的不良影响而不太可能直接改善频率响应。目前的高主频处理器中,一级流水级只有10-15级FO4的延迟,考虑到控制流水线的锁存器本身的延迟,实际留给有效处理工作的逻辑只有6-9级FO4,已经难以再降低。

  因此,传统的高主频复杂设计遇到了越来越严重的障碍,需要探索新的结构技术来在简化结构设计的前提下充分利用摩尔定律提供的片内晶体管,以进一步提高处理器的功能和性能。

  (3)功耗问题。随着主频的不断提高,功耗问题越来越突出。现代的通用处理器功耗峰值已经高达上百瓦。例如,Alpha 21364为100瓦,AMD Opteron是90瓦,Intel的安腾2已超过100瓦。相应地,主板上向CPU供电的电流已接近100安培,跟发动汽车时蓄电池需要供出的电流差不多。最近,Intel公司利用90nm工艺重新实现了Pentium 4(简称P4)。但新的P4竟然和原先用0.13微米工艺制造出来的P4跑一样高的主频(不超过4GHz)。这主要是因为Intel没有办法把芯片在高频工作时的功耗降下来,如果进一步提高主频,芯片的功耗太大,芯片产生的热量散不出去导致片内温度升高,反过来导致芯片的性能和芯片的稳定性下降。有的发烧友通过提高芯片电压并在芯片上加了异常复杂的散热和冷却装置后,已经把P4超频工作到6.5GHz了(当然这种工作状态是不能持续太长的时间的)。事实上,超过150瓦的功耗,无论是目前芯片的封装还是主板的供电能力,都已经难以为继了。在移动计算领域,功耗更是压倒一切的指标。因此如何降低功耗的问题已经十分迫切。

  CMOS电路的功耗与主频和规模都成正比,跟电压的平方成正比,而主频在一定程度上又跟电压成正比。降低功耗需要包括工艺技术、物理设计、体系结构设计、系统软件以及应用软件的共同努力。如果说传统的CPU设计追求的是每秒运行的次数(performance )以及每一块钱所能买到的性能(performance per dollar),那么在今天,每瓦特功耗所得到的性能(performance per watt)已经成为越来越重要的指标。因此,必须探索新的结构,通过包括工艺技术、物理设计、体系结构设计、系统软件以及应用软件的共同努力来降低功耗。

  (4)应用的变化。在计算机发展的初期,处理器性能的提高主要是为了满足科学和工程计算的需求,非常重视浮点运算能力;而且主频不是很高,功耗的问题不是很突出。随着Internet和媒体技术的迅猛发展,服务和移动计算逐渐成为一种非常重要的计算模式,这一新的计算模式迫切要求微处理器具有响应实时性、处理流式数据类型的能力、支持数据级和线程级并行性、更高的和I/O带宽、低功耗、低设计复杂性和设计的可伸缩性;要求缩短芯片进入和退出市场的周期。

  此外还应该看到,以个人电脑(PC)为主要应用模式的桌面应用已经逐渐趋向饱和。一方面,对于大部分的桌面用户(如上网、办公、家庭应用等),目前的PC性能已经足够,再通过定义新的应用来提高PC机的用户对性能的要求(象Intel和Microsoft一直做的那样)已经有较大难度。另一方面,使用PC机的人群已经趋向稳定,如果需要大幅度增加计算机的使用人群,就需要通过使用模式等的革命大幅度降低计算机的购买和使用成本。与此相对应的是,虽然科学计算计算机已经不是市场的主流产品,但人类对科学计算的需求是永无止境的,技术在航空航天、石油勘探和开发、大范围气象预报、核爆炸模拟、材料设计、药物设计、基因信息学、学、人工智能、经济模型、数字电影等领域起着重要的作用。高性能计算机可以对所研究的对象进行数值模拟和动态显示,获得实验很难得到甚至得不到的结果,从而产生了除了理论科学和实验科学以外的第三类科学,即计算科学。

  在上述情况下,需要处理器的结构充分利用集成度的提高带来的海量晶体管资源,在满足新型的网络服务和媒体的应用的同时兼顾传统的科学计算的应用。

  根据上述工艺、结构、功耗、应用等几个方面的趋势,需要对处理器的微体系结构进行突破性的变革,这场变革应该是一场由复杂到简单的变革,应该面向网络服务和媒体的应用,应该考虑低功耗的要求,应该采用层次的结构简化物理设计的复杂度。目前,片内多处理器及多线程技术作为较好符合上述趋势的处理器结构技术正在成为处理器体系结构设计的热点。 

 


2.国内外现状

  目前国外高性能微处理器的研制有两个明显的趋势。一是研制高性能处理器的公司在市场的洗牌中越来越集中到少数几家;二是单处理器性能的继续提高在主频、结构、功耗等方面都碰到了明显的障碍,因此各微处理器公司都纷纷推出多核结构的微处理器。

  在九十年代末生产主流通用处理器的厂家很多,如Intel、AMD、IBM、HP、SUN、DEC、SGI等公司,形成了在通用处理器市场群雄逐鹿的局面。然而,经过近十年的市场洗牌,很多公司由于市场原因退出了通用处理器领域。目前,DEC、HP、SGI已经逐渐退出了处理器设计的角逐。

  最早退出通用处理器市场的是DEC 的Alpha处理器。Alpha处理器无论从结构设计还是物理设计的角度都堪称技术的经典,甚至被很多教科书所采用,尤其是Alpha 21264采用0.35um的工艺实现四发射乱序执行的结构达到了600MHz的目标,现在也很难找到另外一支队伍能做出来。但在处理器市场中一个经验的规律是:技术越先进的公司,越没有市场。在DEC公司实现把同时多线程结构做到极致的Alpha 21464过程中,DEC公司就在1998被Compaq收购了。

  具有讽刺意义的是,Alpha处理器的最早收购者,Compaq公司却比它更早消失。惠普公司在经过一笔富有争议的交易中合并了Compaq公司(这次的交易甚至导致了惠普层与包括惠普家族在内的部分股东的长时间的剧烈冲突)却马上面对一个个棘手的问题,即在扩展基于新的64位构架(IA64)系统生产线的同时,是否还要生产正在走下坡路的另外两个系列的产品(PA-RISC和Alpha)。目前,HP公司已经宣布原Compaq的所有Alpha处理器开发和服务都将逐步中止(至2010年),而原先EV8的开发小组已经完整地被Intel招募了并且马上就投入了IA64架构的研发工作中,Alpha退出历史舞台已经是不争的事实。HP公司自己开发的PA8000系列处理器在2004年1月发布双核的PA8800芯片后也很久没有看到新产品推出[10]。

  生产MIPS系列高性能处理器的SGI公司以2002年宣布停止MIPS 18000的研发为标志,也退出了处理器研发的历史舞台。由于连续十几年的亏损,SGI公司已经难以为继。

  在剩下的几个微处理器生产厂商IBM、Intel、AMD和SUN中,前三者目前还看不到停止研发处理器的迹象,但IBM已经宣布不再对外销售Power系列处理器。SUN公司是否继续研发处理器则很大程度上取决于其雄心勃勃的Ultra SPARC V能否取得成功。下面对上述几个公司在多核处理器的研发方面的情况做简单介绍。

  (1)IBM是最先推出多核微处理器的厂商,在高度自动化的MPU开发工艺上采用0.13微米工艺实现的Power4+已成为多核微处理器的代表性产品。IBM在蓝色基因巨型机中使用自己的双核芯片,奠定了其在多核微处理器研制方面的领先地位。

  2001年发布的Power4片内集成两个Power3处理器核,每个核为8路超标量处理器,乱序执行,一级Cache私有,分别含有32KB的数据Cache和64KB的指令Cache,共享片内1.5MB的二级Cache。Power4采用180nm制造工艺铜互连,7层金属布线,大约集成了1.74亿个晶体管[13]。

  2004年IBM又发布了Power5,Power5是双核同时多线程微处理器,集成两个处理器核,每个核为同时多线程(Simultaneous Multi-Threading, 简称SMT)处理器,能够同时执行2个线程。Power5由Power4扩展而来,改造为SMT仅增加了24%的芯片面积。Power5片内集成了1.92MB的二级Cache,此外还集成了三级Cache的目录以及存储控制器。Power5采用130nm制造工艺,集成了大约2.76亿个晶体管,工作频率在1.90GHz左右[14]。Power4/Power5主要用于高性能和适度规模并行计算机系统。

  2006年发布的Power6采用IBM的65nm SOI工艺,10层金属层,目标是5G Hz。相对于90 nm的工艺,在同样功耗的情况下,性能提高了30%,主要原因是采用DSL(dual-stress line)技术,该技术通过在CMOS channel加上不同的应力来达到提高电子或电洞迁移率。Power6中主要通过电路设计提高主频,其处理器核的频率达到5GHz。Power6是两路的多核处理器(Chip Multi-Processor,简称CMP)设计,集成了两个同时多线程的处理器核,每个核含有私有的L2 cache。4个Power6可以封装在一个多芯片模组中(MCM),包括32MB的L3 victim cache。

  (2)Intel在过去一直不断对外表示,要推出超过十亿晶体管的处理器以捍卫摩尔定律,而Montecito就是Intel带给全世界的答案:17.2亿晶体管[18]。在晶体管数目的竞赛中,Intel凭借Montecito取得遥遥领先的地位。Montecito是一款双核多线程处理器,同时开发指令集并行性和线程级并行性,每个处理器核在Itanium2的基础上增加了2路阻塞多线程机制。Montecito采用90nm的制造工艺,片内集成17.2亿晶体管,每个处理器核分别含有16KB 一级指令Cache、16KB一级数据Cache、1MB二级指令Cache、256KB二级数据Cache以及12MB 三级Cache,最大功耗大约为100W,但CPU会根据当时的情况自动超频或降频运行,最低功耗可减少到70W。Montecito被Microprocessor Report评为2004最佳的服务器处理器,于2005年下半年发布。Intel在自己微处理器的发展蓝图中指出,今后各个领域的CPU都将采用多核结构。Intel基于P4系列的双核处理器为SmithField,采用90nm工艺,将两个P4的处理器直接封装在芯片上采用共享前端总线的结构,Yonah的处理器为共享L2 caches和系统接口,可以部分消除之前的前端总线竞争冲突问题。

  2006年Intel推出了基于Core构架的处理器Conroe(酷睿2),处理器核基于Pentium M,最重要的一点是增加了流水线的宽度,由处理3条x86指令到能处理4条x86指令,增强了SSE功能,由64位通路增加到128位的通路,以及能执行128位的读指令(load),在cache共享上,能动态调节cache的分配,最优化cache的性能。Intel的数据表明Conroe比上一代处理器在性能上提高了40%,而功耗降低了40%。

  (3)AMD和Intel一直是全球处理器市场上的两大宿敌。面对处理器高功耗的制约,Intel和AMD不约而同地将目光转向了多核处理器。AMD发展64位多核CPU的步伐走在了Intel前面,2004年8月演示了双核Opteron,其产品供货于2005年中期开始。双核Opteron片内集成2个x86-64核,每个处理器核有独立的L2 cache,通过crossbar互联处理器核和系统请求接口,片内集成的内存控制器,此外还集成互连和I/O控制器,包含3个HyperTransport 接口,能够方便地实现多处理器互连和I/O通信。双核Opteron采用90nm制造工艺,晶体管数量在2亿个以上,功耗小于95W,大大提高了微处理器的实际效能,相对于Intel早期推出的双核处理器,AMD有极大的性能和功耗有效性优势[17,21]。

  (4)SUN和IBM一直在高端服务器市场竞争激烈。2001年,IBM率先发布了它的双核处理器POWER4 ,而SUN公司直到2004年上半年才发布了它的第一款双核微处理器UltraSPARC IV,并在下半年推出了UltraSPARC IV+。UltraSPARC IV采用CMT(chip multithreading)技术,片上集成了两个UltraSPARC III的内核、二级Cache的tag体和MCU,外部缓存16MB,每个内核独享8MB。UltraSPARC IV由德州仪器生产,采用0.13微米工艺,主频1.2GHz,功耗100W,和UltraSPARC III管脚兼容,实现系统的平滑升级。UltraSPARC IV+是UltraSPARC IV的0.09微米工艺的升级版本,而且增加了片上高速缓存的容量,主频1.8GHz。根据Sun公司内部人士透露,Sun公司即将推出片内8个处理器核,每个处理器核4线程的UntraSPARC V[15]。

  2004年Sun公司公布了Niagara,也称为UltraSPARC T1,包括8个处理器核,每个核支持4个线程,共支持32个线程[16]。2006年8月,Sun公司推出了Niagara-2,包括8个Sparc的处理器核,每个核支持8个线程,共享4MB的L2 cache,分为8个bank,16路组相联,使用Crossbar把处理器核和L2 cache互联,含有4个双通道的FBDIMM(fully buffered DIMM)内存控制器,含有两个网络端口,1个PCI-E x8的端口,其信号管脚为711个,管脚的总数为1831。

  与国外微处理器设计厂家不断合并相对应的是国内微处理器设计能力在“十五”期间的快速增长。在过去的五年中,国内微处理器设计主要包括以下特点:(1)在通用处理器和嵌入式处理器的研发方面都蓬勃展开;(2)产业化刚开始起步,还需要较长时间形成规模产业化;(3)主要集中在单处理器核的设计方面,部分研究单位在单处理器的研发方面已经达到很高的水平,可望在“十一五”期间展开多核处理器的研发。

  在国家863计划和中国科学院知识创新工程资助下,中科院计算所从事龙芯系列高性能通用处理器的研制,先后完成32位的龙芯1号、64位的龙芯2号和龙芯2号增强型处理器(简称龙芯2E)的研制。龙芯2E兼容MIPS III指令系统,采用四发射的动态超标量超流水线结构,实现了先进的转移猜测、寄存器重命名、动态调度等乱序执行技术,以及非阻塞的Cache访问、取数猜测(Load Speculation)、存数合并缓存(Store Fill Buffer)等动态存储访问机制。龙芯2E的浮点部件能够支持SIMD结构的媒体运算以及双单精度(Paired-Single)的浮点运算。龙芯2E片内含64KB一级指令高速缓存、64KB一级数据高速缓存、以及512KB二级高速缓存,片内集成了DDR内存控制器。龙芯2E采用意法半导体(ST)90nm工艺设计,主频达到1GHz,具有低功耗(5-8瓦)、高性特点,SPEC CPU2000的定点/浮点实测分值均达到500分,性能与中档的Intel P4处理器相当。基于龙芯2E的Linux-PC系统可以满足绝大多数的桌面应用,包括运行浏览器、办公套件、播放多媒体视频等。龙芯2E于2006年9月通过中科院组织的鉴定,鉴定专家组一致认为:“龙芯2E高性能通用CPU芯片在单处理器设计方面已达到国际先进水平,居国内通用CPU研制领先水平”。基于龙芯2E的低成本龙梦电脑、龙芯笔记本等样机已经研制出来,正进入试点阶段,产业化前景良好[1,2]。

  目前,计算所正进行龙芯3号多核处理器的研制。龙芯3号将采用可扩展设计,处理器核数目很容易从几个扩展到几十个;将采用超级虚拟机技术,使得多种指令集(包括MIPS、Sun Sparc、X86)应用能够同时运行。此外,对于传统的如何利用多处理器核加速单线程问题,龙芯3号也将会采用软硬件结合的并行虚拟机方式加以解决。根据龙芯发展路线图,龙芯3号的第一个原型芯片将于2007年底推出。

  2003年,国防科技大学承担了863计划《高性能通用CPU芯片》重大研究课题(YHFT64-I),2005年国防科大又承担了该项目的滚动支持项目。YHFT64-I采用目前EPIC技术,利用软硬件方法实现Intel 指令集兼容,能够并发执行8条指令。芯片设计采用了大量先进的微体系结构技术,如:多级分支预测技术、寄存器堆栈技术、控制前瞻/数据前瞻、谓词执行技术以及低功耗技术等,能够有效开发指令集并行性,极大提高处理器性能。YHFT64-1支持通用操作系统,支持多处理器结构,支持数据库、WEB等服务器应用。该芯片所有设计已经完成,采用Chartered 0.13μm Nominal 1P8M工艺,核心逻辑规模5800万晶体管,采用HPBGA封装,功耗12瓦,面积10X10mm2,引腿696个,工作频率300MHz,在2005年上半年完成投片。

  此外,中芯微电子和北京大学、清华大学、同济大学等单位也已研制成功嵌入式CPU以及有关的SOC。

 


3. 高性能微处理器发展前沿

  3.1 研究中的几种新型体系结构的处理芯片

  下面简单介绍国外研究中的几种新型体系结构的处理芯片。

  (1) IBM开发中的千万亿次(PetaFLOPS)计算机蓝色基因(Blue Gene)中的核心处理芯片是探索新型高性能CPU体系结构的重要一步。该芯片中含32个简单的PowerPC处理器及内嵌的DRAM,峰值性能可达到32GFLOPS。将DRAM集成在片内,使处理器到存储器的访问延迟大为缩短,访问带宽大大提高,也很大程度上减少了能量的消耗。为了通过精简设计提高运算速度和极大地降低功耗,每个处理器能执行的指令的数量都大大地减少了,但每个处理器仍可支持8个同时执行的线程以提高处理器利用率。片上还集成了6个2GB/s带宽的通道以实现与系统中其它同类芯片的通信。另外,考虑到构建超大规模计算系统时不可避免地会碰到因某个(些)结点失效而影响整体系统可用性的情况,它尝试采用自稳定和自修复的技术,即自动地从个别处理器或线程的失效中恢复过来。为此,在硬件上,处理器和通信链路上都采用了大量的冗余设计,在软件上,也需要特别增加分布式控制和恢复的机制。

  (2) MIT研究的可重构RAW处理芯片采用了另一种思路[27]。RAW在单个芯片上将几百个非常简单的处理单元,用可重构逻辑连接起来,实现高度并行的体系结构。RAW允许编译器(或其它相当的软件工具)重新构建硬件体系结构的低层细节,对每个要加速的应用实现最佳的资源分配。这种结构设计简单,单元内部和单元之间的互连线短,能充分地支持流水线并行性,特别适于未来线宽变窄的半导体制造工艺。RAW的研究者认为,开始时,RAW体系结构还只适于流式的信号处理计算,但RAW方法未来将发展成为普适的。

  图1给出了RAW中一个处理器的框图。其中下半部分就是一个普通的RISC流水线处理器(其复杂度跟龙芯1号差不多)。其特殊之处在于在执行部件前的旁路部分,除了常规从寄存器中取出的操作数和从功能部件刚算出的操作数外,还有通过通信网络从别的处理器那里送过来的操作数。在灵活的互连网络的配合下,这个机制巧妙地把多个处理器的功能部件耦合在一起,构成功能复杂、动态重构的并行处理系统。

  (3) 在2005年国际固态电路会议(ISSCC)上,IBM、Sony和Toshiba首次公开介绍了设计中的Cell高性能处理芯片[30]。这三个企业联合设计Cell芯片的工作始于2001年3月。Cell的一个主要用途是Sony的第三代Playstation游戏机PS3,但IBM同时也宣称,Cell将是片上超级计算机(supercomputer-on-a- chip)。从ISSCC2005上披露的第一款Cell芯片的情况来看,它确实能同时满足前述两个方面的应用要求。Cell处理芯片可在4GHz频率下工作,其宣称的峰值浮点运算速度为256GFLOPS,可惜这只是单精度且不符合IEEE 754标准的浮点运算(如果针对游戏应用,这是合适的,因为速度比精度更重要)。Cell同时也支持完全符合IEEE 754标准的双精度浮点运算,但速度约是单精度的十分之一,估计为25-30GFLOPS。即使这个速度,也达到了当前主流高性能微处理芯片的5-10倍。因此,基于Cell处理芯片,在一个机柜里就可以实现足以跻身TOP500排行榜前列的超级计算机。

  Cell采用了与主流高性能处理芯片全然不同的片内分布式体系结构(图2)。总体上看,它由一个相对比较简单的支持同时双线程并行的双发射64位PowerPC内核(称为PPE)和8个SIMD型向量协处理器(称为SPE)构成。片内有一个高带宽的环状高速总线(EIB)把PPE、SPE及RAMBUS内存接口控制器(MIC)、FlexI/O外部总线接口控制器(BIC)连接起来。PPE主要负责控制并执行操作系统,SPE完成主要的计算任务。SPE的SIMD执行部件是128位宽的,从而可在一个时钟周期里完成4个32位的定点或浮点乘加运算。SPE里内置了256KB的SRAM作为局部存储器(它的编址独立于片外的DRAM)。不采用自动调配数据的cache机制,使SPE更像一个向量处理器,从而也更多地依赖程序员或编译器的作用来发挥性能。同样,SPE里没有动态分支预测机制。所以,SPE配备了较大的寄存器堆(128个128位的寄存器)来尽量减少对存储器的访问,并尽可能地展开循环、减少分支。

  Cell虽然实现了很高的性能,但也存在一些问题。例如,如果要往游戏或多媒体以外的应用发展,编程模型和软件开发问题还没有很好解决。又如,前面提到的芯片设计的复杂度和功耗问题也没有很好地解决。Cell的第一款芯片用 90纳米SOI工艺全定制实现,8层铜连线,芯片面积为221mm2,含2.34亿晶体管。这个复杂度已经超过了Intel的安腾二代,如果想用在家用游戏机里,成本是个大问题(据说Sony计划在PS3里采用只包括4个SPE的Cell版本)。Cell芯片采用42.5mm42.5mm尺寸的BGA封装,共1236个接触点,其中506个是信号。据估计在1.1V供电4GHz运行时,芯片功耗约50-80瓦(据说1.4V供电时可运行到5.6GHz,功耗180瓦)。
  (4) IBM和德克萨斯州立大学联合开发中的TRIPS(Tera-Op Reliable Intelligently adaptive processing System)芯片是设计具有每秒万亿次运算能力芯片的第一个尝试[28,29]。TRIPS结构采用粗粒度的处理器内核,以便在有较高指令级并行性的单线程应用上实现更高的性能;并在同一芯片上重复设置许多这样的内核,便于扩充。片上还集成了存储部件和通信部件,并允许软件调度程序对它们灵活配置,以获得最佳性能。图3给出了TRIPS结构的一个大略框图。左边是其总体框图,包括八个网格处理器(黑色大方块)、若干可配置的存储体(灰色小方块)和一些连接片外存储器(DRAM阵列)的接口通道(黑点)。右边是网格处理器的具体结构,其中圆点是处理单元,外围的一圈长方块里有共享的寄存器堆、高速缓存、分支预测器等。

  TRIPS的目标是在35纳米的工艺条件下,达到5TFLOPS的峰值浮点运算性能。TRIPS同时还兼顾桌面应用和服务器应用,希望到2010年,能把桌面PC、高性能计算、数字信号处理、服务器应用等都统一到同一类型的CPU芯片上。

  (5) AMD正在逐步公布其技术路线图,尤其是四核处理器的计算技术。该四核处理器采用65纳米技术,其具有2MB三级缓存、512KB二级缓存和64KB一级缓存。该设计的四个核共享硅底板和隔热层,与现有的Socket F(1207)兼容。这样,用户就能轻松实现性能升级,而无须担心图像管理问题。该技术突出之处在于65纳米SOI处理技术、经过改进的Power Now!性能、集成的存储器控制器和直接互连架构。AMD四核处理器技术还将包括:改进的分支预测、乱序Load执行、双128位SSE数据流、位级控制扩展和SSE扩展。另外,还包括8GB/秒的HyperTransport连接、改进的Crossbar、DDR2支持技术。

  (6) Intel开发万亿级研究芯片。2006年9月26日,在Intel开发者论坛中,Intel公司的首席技术官Justin Rattner首次介绍了Intel的“万亿级”研究原型芯片及其三个主要的技术突破。“万亿级”研究原型芯片是世界上第一个达到每秒1万亿次浮点运算(one trillion floating-point operations-per-second,TeraFLOP)的处理器,包括80个处理器核,频率为3.1 GHz。该研究原型芯片综合了Intel公司近来在硅光子学方面的技术突破,达到了万亿次级计算操作的三个主要要求:即TeraOPS的性能、每秒万亿字节的访存带宽以及每秒万亿比特的I/O速度。尽管这些技术的商业应用可能在未来数年才能实现,不过这毕竟是在计算机和服务器中进行万亿次级操作方面跨出的激动人心的第一步。第一个创新点是:与其他现有芯片的晶体管排列方式不同,“万亿级”芯片包括了80个瓦片(tile),排成8×10的行列结构。每一个瓦片都包括一个带简单指令设置的小型核心,用于处理浮点数据,但是与Intel的结构不兼容。第二个创新点是:有一个20兆字节的SRAM内存芯片,其被重叠绑定在处理器模上。与处理器模的叠放使数百个芯片互连成为可能,并且可在内存和核心之间提供超过每秒万亿字节的带宽。第三个创新点是采用混合硅激光芯片,该技术可以形成每秒万亿比特的光学通路。


3.2 多核处理器面临的挑战和机遇

  本节阐述了多核处理器面临的基本理论问题以及实现上必须面对的问题。对多核处理器而言,这些问题既是必须面临的挑战,也是难得的发展机遇,他们决定了未来多核处理器的发展方向[23,24,25,26]。

  (1)多核处理器面临的基本理论问题

  目前的计算机结构以图灵机理论为基础,属于冯.诺依曼体系结构。本质上,图灵机理论和冯.诺依曼体系结构是一维串行的,而多核处理器则属于分布式离散的并行结构,需要解决二者的不匹配问题。

  首先,串行的图灵机模型和物理上分布实现的多核处理器的匹配问题。图灵机模型意味着串行的编程模型。串行程序很难利用物理上分布实现的多个处理器核获得性能加速.与此同时,目前并行编程模型并没有获得很好的推广,仅仅局限在科学计算等有限的领域.研究者应该寻求合适的机制来实现串行的图灵机模型和物理上分布实现的多核处理器的匹配问题或缩小二者之间的差距,解决“并行程序编程困难,串行程序加速小”的问题。

  在支持多线程并行应用方面,未来多核处理器应该从如下两个方向加以考虑。第一是引入新的能够更好的能够表示并行性的编程模型。由于新的编程模型支持编程者明确表示程序的并行性,因此可以极大的提升性能。比如Cell处理器提供不同的编程模型用于支持不同的应用。其难点在于如何有效推广该编程模型以及如何解决兼容性的问题。第二类方向是提供更好的硬件支持以减少并行编程的复杂性。并行程序往往需要利用锁机制实现对临界资源的同步、互斥操作,编程者必须慎重确定加锁的位置,因为保守的加锁策略限制了程序的性能,而精确的加锁策略大大增加了编程的复杂度。一些研究在此方面做了有效的探索。比如,Speculative Lock Elision机制允许在没有冲突的情况下忽略程序执行的锁操作,因而在降低编程复杂度的同时兼顾了并行程序执行的性能。这样的机制使得编程者集中精力考虑程序的正确性问题,而无须过多地考虑程序的执行性能。更激进的,Transactional Coherence and Consistency(TCC)机制以多个访存操作(Transaction)为单位考虑数据一致性问题,进一步简化了并行编程的复杂度[45,46,48]。

  尽管目前主流的商业多核处理器主要针对并行应用,但是如何利用多核加速串行程序仍然是一个值得关注的问题。其关键技术在于利用软件或硬件自动地从串新程序中派生出能够在多核处理器上并行执行的代码或线程。多核加速串行程序主要有三种方法,包括并行编译器、推测多线程以及基于线程的预取机制等。在传统并行编译中,编译器需要花费很大的精力来保证拟划分线程之间不存在数据依赖关系[34]。但是,编译时存在大量模糊依赖,尤其是在允许使用指针(如C程序)的情况下,编译器不得不采用保守策略来保证程序执行的正确性。这大大限制了串行程序可以挖掘的并发程度,也决定了并行编译器只能在狭窄范围使用。为解决这些问题,人们提出推测多线程以及基于线程的预取机制等。然而,从这种概念提出到现在为止,这个方向的研究大部分局限于学术界,仅有个别商业化处理器应用了这种技术,并且仅仅局限于特殊的应用领域。我们认为动态优化技术和推测多线程(包括基于线程的预取机制)的结合是未来的可能发展趋势[35,36,37,38,39,40,41,42,43,44,60,61]。

  其次,冯.诺依曼体系结构的一维地址空间和多核处理器的多维访存层次的匹配问题。本质上,冯.诺依曼体系结构采用了一维地址空间。由于不均匀的数据访问延迟和同一数据在多个处理器核上的不同拷贝导致了数据一致性问题。该领域的研究分为两大类:一类研究主要是引入新的访存层次。新的访存层次可能采用一维分布式实现方式。典型的例子是增加分布式统一编址的寄存器网络。全局统一编址的特性避免了数据一致性地考虑。同时,相比于传统的大容量cache访问,寄存器又能提供更快的访问速度。TRIPS和RAW都有实现了类似得寄存器网络。令另外,新的访存层次也可以是私有的形式。比如每个处理器和都有自己私有的访存空间。其好处是更好的划分了数据存储空间,已洗局部私有数据没有必要考虑数据一致性问题。比如Cell处理器为每个SPE核设置了私有的数据缓冲区。另一类研究主要涉及研制新的cache一致性协议。其重要趋势是放松正确性和性能的关系。比如推测Cache协议在数据一致性未得到确认之前就推测执行相关指令,从而减少了长迟访存操作对流水线的影响。此外,Token Coherence和TCC也采用了类似的思想[32,33,49,50]。

  最后,程序的多样性和单一的体系结构的匹配问题。未来的应用展现出多样性的特点。一方面,处理器的评估不仅仅局限于性能,也包括可靠性,安全性等其他指标[51,52,53]。另一方面,即便考虑仅仅追求性能的提高,不同的应用程序也蕴含了不同层次的并行性。应用的多样性驱使未来的处理器具有可配置、灵活的体系结构。TRIPS在这方面作了富有成效的探索,比如其处理器核和片上存储系统均有可配置的能力,从而使得TRIPS能够同时挖掘指令级并行性、数据级并行性及指令级并行性。

  (2)多核处理器面临的实现上的一些问题

  除了上述理论问题之外,多核处理器也必须依考虑到物理实现上面临的一些问题。这些问题主要与实现工艺密切相关,包括处理器的访存瓶颈,可靠性问题,功耗问题等。

  首先,处理器的访存瓶颈(Memory Wall)[54,55]。随着逻辑运算与存储部件的速度差距不断拉大,传统的以处理器为中心的计算与存储分离设计导致为解决访存延迟问题而大大增加了处理器的复杂性,使得访存速度成为未来提高处理器性能的主要瓶颈。根据目前片上并行处理技术的发展趋势,不久就会出现当处理器发射数百甚至上千条指令时只能取一个值到片上存储器的情况。因此,要求将处理器和存储器能做在同一块芯片上,把应用执行期间的工作集尽可能放到片上。另一种缓解访存瓶颈的方法是预取技术. 传统的硬件或软件预取,属于基于结果的预测技术,适合于具有规则访存行为的应用程序。而基于线程的预取技术利用空闲的多线程硬件资源,通过动态地执行地址预测代码进行预取,属于基于执行踪迹(trace)的预测技术,具有更高的预取准确率,不仅可以加速具有规则访存行为的应用程序,而且能够有效地加速访问模式不规则的应用。多核处理器为基于线程的预取机制提供了很好的计算平台.另外,Power5处理器在CMP基础上引入SMT技术,智能的线程切换技术也有助于容忍访存延迟[22,31]。同时,单个芯片上的I/O引脚数目由于物理技术的限制不能同晶体管数目同比例增长,使得计算能力的增长与片外带宽的增长不匹配。从180纳米到35纳米,晶体管数与信号引脚数的比率增加了45倍。这意味着尽管随着晶体管数目的增加,单个芯片上可以容纳的处理器核数目能够相应增加,但芯片与系统中其它部分的通信带宽即并不会同比例增加,使多个核不得不共享同一条访存或通信通路。有限的片外带宽将成为影响性能和可扩展性的瓶颈,并在实际上限制单个芯片上处理器数目的有效增加(尽管有更多的晶体管资源可用)。因此,在结构设计时,我们需要寻找在固定带宽上可容纳的处理器核数、处理器核的复杂度、不同应用的存储模式、以及片上存储容量之间的平衡关系。

  其次,可靠性问题。随着摩尔定律的延续,芯片特征尺寸进一步按比例缩小,在单芯片上集成数十亿元件(晶体管)已成为可能。与此同时,由制造过程中工艺参数的涨落或内部原子级效应引起的器件参数离散性不断增加;越来越薄的栅氧化层导致因隧穿而影响可靠性的机率不断增加;越来越多的片内存储器(单个存储单元的尺寸越来越小)给单粒子效应等因素导致的软失效提供了越来越多的机会;芯片供电电压的不断降低和漏电流的不断增加,使传统的可靠性筛选方法(如动态老化、Iddq测量、施加过压应力等)越来越难以实施;等等。随着缺陷密度增加,芯片的成品率不断下降、芯片的失效速率不断攀升,使芯片的高可靠性设计成为延长硅集成电路摩尔定律最迫切的需求之一。传统的考虑故障容忍的容错方法成本较高,且其有效性受到失效速率上升的严重影响。必须研究使电路和系统从故障中自动恢复的新原理,从缺陷容忍、故障容忍和差错容忍等三个层次上研究支持芯片高可靠设计的新结构、新方法,从而提高芯片成品率,降低成本,构造稳定可靠、性能可预测的系统。研究者提出线程级的容错方法,即通过硬件或软件自动产生冗余线程以确保程序运行的正确性。比如Slipstream Processor以及DIVA处理器均采用类似思想[51,52,53]。

  最后,功耗问题。随着摩尔定律的进一步延续,芯片产生的功耗与封装及系统允许的功耗之间会产生巨大的缺口。功耗问题已经成为微处理芯片设计第一位的限制因素。可以采取多个不同层次的工作去降低功耗。例如,通过设计新的算法,可以减少程序执行过程中运算操作的次数,以减少能量消耗;可以通过设计新的power-efficient指令系统,如EDGE指令系统;也可以采用异构处理器结构,使得简单处理器核运行简单任务,复杂处理器核运行复杂任务,从而取得合理的能量消耗[57];因为访问寄存器比访问存储器的功耗小,所以可以由编译优化减少访存次数来减少功耗;可以通过操作系统的帮助,关闭当前不用的功能部件甚至处理器核来减少功耗,或者通过操作系统动态调整处理器核的运行时钟频率或电压达到控制功耗的目的;可以重新设计总线的编码方式,减少同时跳变的信号个数,来降低功耗;可以通过对内存数据的压缩来减少片上内存(cache)容量,从而降低功耗;等等。在逻辑和电路层次上的低功耗设计方法就更多了,如门控时钟、门控电源、双阈值电压、动态电压变换、半频率时钟、异步逻辑等等[56,59]。

  随着晶体管特征尺寸的大幅度缩小和相应芯片规模的扩大,片上互连线不仅在信号传输延迟上极大地影响了微处理器的性能,而且其能耗已经超过了晶体管电容充放电所消耗的能量。美国斯坦福大学的William J. Dally教授指出,在片上10mm长度传输32位数据所消耗的能量与一次32位ALU操作、一次寄存器读操作和一次8KB存储器读操作所消耗的能量,在130nm和50nm工艺下,对应比例分别为20:1:10:2和56:1:28:5.6。可以清楚地看到,互连线设计对于纳米级低功耗处理芯片设计是非常重要的。处理芯片上的互连线包括系统级(全局)连接网络、片上存储器总线、寄存器堆总线、流水线数据旁路网络、时钟分布网络等。低功耗的互联网络设计也是未来多核处理器的重要研究方向之一[58]。

4. 结束语

  通过分析回顾微处理器的发展历史,根据工艺、结构、功耗、应用等几个方面的趋势,本文预测微处理器的体系结构面临突破性的变革机会,这场变革应该是一场由复杂到简单的变革,应该面向网络服务和媒体的应用,应该考虑低功耗的要求,应该采用层次的结构简化物理设计的复杂度。目前,片内多处理器及多线程技术作为较好符合上述趋势的处理器结构技术正在成为处理器体系结构设计的热点。进一步的,本文分析了目前国内外的发展现状,介绍了高性能微处理器发展前沿,详细分析了研究中的几种新型体系结构的处理芯片。提出并分析了多核处理器面临基本理论问题以及实现上可能面临的问题。

  总之,高性能微处理器的发展正处在历史的转折点上。互连网的普及正在悄悄改变着计算机的应用模式,主频至上的处理器设计理念正在终结,性能功耗比继性能价格比之后正在成为计算机的主要设计指标。在快速发展的计算机领域,很少有人能够预测未来5-10年的发展。不过有两点是可以肯定的:第一、未来5-10年必将迎来高性能处理期的一个激动人心的发展时期;第二、技术转型期也是后来者的重要机遇期,中国应该紧紧抓住机遇,发挥后发优势,实现跨越发展。

阅读(2755) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~