2006~2007年CPU新技术一览
2006~2007年IT新
2006年在繁忙中转瞬即逝,CPU领域从延续多年的单核过渡到了双核;Intel、AMD完成了架构的转换;传统的频率之争也转变为了功耗之争;不同领域的CPU架构也得到了统一……总之,2006年对于CPU来说无疑是振奋人心的,2007年呢?
一、4核浪潮掀起:Kentsfield & K8L
当你正为使用上双核CPU所带来的性能快感而欢呼不已时,你是否会想想当双核已不再让你激动时,厂商会使用什么手段让你重新找回本有的激情呢?答案是:多核!
1.Intel:延续Prescott到Smithfield做法
众所周知,Intel CPU架构从单核过渡到双核采用了将两颗Prescott内核芯片集成在一起而成为第一代双核Smithfield,而从双核到4核架构过渡时将采用类似手法——将两颗Conroe集成到一起,因此成为第一代4核Kentsfield CPU。
事实上,Kentsfield从技术上来说与当前的Core 2 Duo并没有什么区别,它只不过是将两个Conroe核心整合到同一块基板上。换句话说,Intel新的4核心处理器其实就是两个基于Core 微处理器架构的双核心处理器的结合体。
(1)多达4组解码单元
处理器要对各种指令进行计算,首先需要对指令进行解码。解码操作的实质在于将不同长度的X86指令分解成多个固定长度的微指令,以提高处理器后续的操作效率。所以,一个优秀的处理器设计首先必须具备高效的解码单元。
在现阶段问世的所有X86处理器中,Conroe拥有最多的解码单元。在Conroe处理器中有1个复杂解码单元和3个简单解码单元,由于一个复杂解码器最多可以处理由4个微指令组成的动态指令。由此,Conroe处理器的解码器就变为4-1-1-1结构,这样Conroe在每个周期就能处理7条微指令。相比之下,Pentium 4处理器的Netburst架构在每个周期仅能提供3条微指令的吞吐量。
更让人惊喜的是,Conroe的所有解码单元都提供了对128bit SSE指令解码的支持,要知道这样的操作在以前的X86处理器中只有复杂解码单元才能实现。因此在绝大部分情况下,Conroe的4组解码单元在性能方面的表现相当。而只有1个复杂解码单元的设计,明显降低了处理器的规模和晶体管占用。
更为强大的解码单元设计,也为Conroe后面的执行单元做好了铺垫,使得执行单元不会因为处理器解码能力不够而处于空闲状态。最后,由于Conroe解码单元的性能空前强大,Intel还在Conroe处理器中取消了类似于Pentium 4的追踪缓存(Trace Cache)以进一步节省处理器的晶体管数量。图1示意了Conroe的“前端”。

(2)微指令融合与宏指令融合
要了解指令融合技术,我们首先需要回顾X86处理器的设计。
在Pentium M处理器上,我们就见识了微指令融合(Micro-Op Fusion)技术的威力。事实上,在很久以前,X86处理器已经开始大量借鉴RISC(精简指今集)处理器的设计。对比新的X86处理器和RISC处理器架构我们就不难发现,2种类型不同的CPU在解码单元之后的设计如出一辙。这其中的奥秘就在于,所有的X86指令在经过CPU前端的解码单元之后,都会被拆分成1个或多个长度和格式都相同的微指令,而所有指令的长度和格式相同正是RISC处理器拥有更高效率的原因。
既然需要把X86指令拆成若干个微指令,怎么拆就大有讲究了。Intel的微指令融合正是从这方面入手,将原本多个微指令合并成一个。对于处理器来说,微指令数量的降低,就意味着实际执行X86指令的增加。值得一提的是,Conroe的解码单元提供了对128bit SSE指令集的微指令融合支持,这样原本X86中最复杂的128bit SSE指令在经过解码之后也只生成1条微指令。
至于宏指令融合技术,同样也是将多条命令合并为一条执行以提升处理器的指令吞吐量。但是,此时融合的对象换成了尚未解码的X86指令。在Intel的官方数据中表明,尽管Conroe一共只有4个解码单元,但是在单个周期内却能完成5条指令的解码。究其原因,就在于宏指令融合技术将其中的2条X86指令集合并为1条交给处理器解码。单一周期内X86指令集吞吐量提升,处理器性能的提升也就不言而喻了。
(3)共享缓存的实现
在Intel早期双核处理器中,两个核心分别占用自己的二级缓存,因此被称为独享二级缓存。而Conroe处理器通过引入Advanced Smart Cache(智能快取)技术,实现了两颗独立核心能够对二级缓存资源进行共享,即共享缓存技术。
独享二级缓存的弊端在哪里呢?由于缓存的独立性设计,缓存之间缺乏直接沟通的渠道,导致两颗核心无法进行紧密协作。当两颗核心同时执行一个任务时,为了保持指令执行的步调一致,两个核心的缓存数据必须保持一致,但独立的二级缓存彼此“闭门造车”、缓存数据同步效率低下:如果CPU 0的二级缓存需要读取CPU 1的二级缓存,只能经由前端总线、芯片组再到内存,从内存中获取数据进行同步更新,这个繁琐过程不仅消耗了大量的时钟周期,且占用大量的前端总线带宽资源。Advanced Smart Cache技术便能较好地解决上述问题,让两枚处理核心共同分享二级缓存。
为了解决二级缓存容量分配的问题,Conroe处理器引入了Shared Bus Router(共享总线路由)控制逻辑:当遇到两个核心工作量不等时,例如CPU 0负载高于CPU 1,Advanced Smart Cache就可以给CPU 0分配更多的缓存资源,保证系统效能的最大化。此外,Smart Cache技术还增加了L2 & DCU Data Pre-fetchers及Deeper Write output两个缓冲存储器,有效提升了Cache的命中率,这也对提高CPU执行效率起到积极的影响。图2示意了Advanced Smart Cache的工作原理。

(4)多媒体性能的增强
在Conroe架构中,Intel仍然采用了SSE3指令集,但对SSE执行单元作了改进,提出“Advanced Digital Media Boost”概念:Conroe处理器的SSE执行单元首次提供完整的128位支持,每个单元都可以在一个时钟周期内执行一个128位SSE指令。
在128位SSE执行单元的共同作用下,Conroe微架构可以在一个时钟周期内同时执行128位乘法、128位加法、128位数据载入以及128位数据回存,或者可以同时执行4个32位单精度浮点乘法和4个32位单精度浮点加法。显而易见,SSE性能增强的最大受益者自然是多媒体应用。
(5)智能内存访问技术
由于Conroe处理器像Intel以前的产品一样,并没有整合内存控制器,这样造成内存的访问时间较长,降低了处理器的整体效能。为了克服这个难题,Intel特别开发了Smart Memory Acess智能内存访问技术,它包括:内存数据相依性预测(Memory Disambiguation)和强化的预取机制。它的应用,将有效地优化CPU的内存访问动作从而提升其访存性能。
内存数据相依性预测:它实际上是在CPU执行写入指令的同时预测后续读取指令是否操作相同的内存地址,如果地址不同,就可以并行执行写入、读取动作,而无需等到写入指令完成。该项技术可以大幅改善乱序指令的执行效率。
强化的预取机制:预取包括指令预取和数据预取两类。其中,指令预取机制与CPU执行指令的延迟有关。而数据预取机制则是与内存延迟相关。Conroe处理器的每个核心都拥有两组数据预取逻辑,并且通过内建的两组二级缓存控制器,可将预取的数据动态分配到不同核心。这样,程序数据可以被尽量放在缓存单元内、从而减少CPU访问内存的次数,达到提升效能的目的。
2.AMD:大锤又将敲下
许多人认为,AMD K10系列处理器将会快速地推出。可惜的是,这款全新4内核设计的处理器产品在开发之初就命途多舛。到了2005年底,AMD更是宣布K10处理器架构再次延期。而为了抗衡Intel Core处理器,AMD将会在2007年推出K8L系列处理器。下面我们就K8L架构做简单介绍。
(1)模块化CPU设计
AMD认为,通过采用模块化设计,能够更快研发和优化出各种不同的CPU架构。
如果我们仔细探究当今的微处理器设计,就不难看出,现代CPU中所有的功能被分成了10~15个不同的主要单元,这些单元之间采用了相互独立且截然不同的设计。这也是为什么我们能够在CPU架构中轻易分辨出各种ALU(算术逻辑单元)、FPU(浮点运算单元)、取指令单元、Cache的原因。尽管各个部分都相对独立,但是各个单元之间的链路和接口却相当模糊。在绝大部分的CPU核心图中,我们无法清晰地分辨出各种单元之间是以什么形式相互连接的。AMD的模块化CPU设计,则在设计CPU初期就对各个CPU单元之间的接口链路进行明确的定义,这样就能快速的开发出各种不同种类的CPU。
在AMD的模块化设计中,处理器被分成C(Computer Core,计算核心)、HT(Hyper Transport)、MC(Memory Controller,内存控制器)、CB(Crossbar Switch,交错交换器)、IO(I/O Interface,IO接口)、CL(Clocks,时钟频率)、CO(Controls,控制器)、L1(L1Cache,L1缓存)、L2(L2 Cache,L2缓存)、L3(L3 Cache,L3缓存)等10大模块。在未来AMD的处理器架构设计上,AMD将不断对这些已经设计好的CPU模块,进行排列、增减、组合,就能开发出各种各样的CPU。图3示意了模块化CPU设计。

例如,在强调运算能力的环境中,AMD的CPU将会整合更多的C模块以提供更高性能。在多路服务器市场上则通过加入更多的HT模块来提供更强的多路性能。这样做还能带来一个好处,就是CPU终于可以像GPU增减渲染管线那样来取舍各种运算单元,以区分市场。从此,低端处理器即便有着再高的超频能力,也无法和高端产品抗衡。
(2)原生4内核设计
AMD在K8L设计时就将其定位于4内核CPU,这样一来,4个内核都各自拥有独立的L1和L2缓存,只有L3缓存才能被4个内核所共享。与此同时,加强的直接连接架构,也让内核与整合的内存控制器之间的带宽显著增加,改良之后的交错交换器也能进一步发挥4内核处理器的威力。HyperTransport 3.0的引入还实现了5.2GT/s的CPU互连传输率。
(3)K8L指令调度单元
在执行单元中,Macro Op(宏操作)从Instruction Dispatch送出后,还要先送往整数/地址指令处理单元或往浮点/多媒体指令执行单元各自的指令调度器(Integer/FPU Scheduler)中作进一步处理。指令调度器对超标量处理器的执行效率意义重大,我们以整数/地址指令调度器(Integer Scheduler)为例介绍指令调度器。
它的工作大致可分以下三部分:第一,负责在指令执行相对较慢的整数单元和指令送出速度相对较快的Instruction Dispatch单元之间起到缓冲作用;第二,负责将Instruction Dispatch送来的μOp根据其类型,将其分别送往(issue)AGU(Advanced Graphics Upgrade)或ALU;第三,根据存放操作数的寄存器以及AGU/ALU的空闲状况,负责安排好μOp送往AGU/ALU单元的次序。
我们知道,指令调度器内部所能存放的μOp条数与缓冲能力成正比。从现有AMD所公布的资料来看,K8L浮点/多媒体指令执行单元的μOp条数并没有增加,同样保持了36条。
(4)整数执行单元和浮点/多媒体指令执行单元
由于K8L的架构和K8一脉相承,因此AMD K8L在整数运算方面并没有太大的变化,依然维持和K8相同的算术运算单元:保持3个ALU单元和3个AGU单元。尽管ALU部分没有太大的变化,但是AMD着重加强了K8L处理器的浮点运算单元部分。
K8L CPU的浮点加法器和浮点乘法器都比K8增加了整整一倍,AMD官方数据表示K8L的浮点运算能力将会是K8的150%。浮点运算单元的加强,一般来说将会带动前端指令解码发送单元和乱序执行单元的改进,但是从AMD官方最新公布的架构上来看,K8L依然只是维持了K8上的3路指令解码发送和乱序执行单元。
在K8L中,浮点运算单元调度器拥有3个发射端口用于对应3个浮点单元,而每个端口在单时钟周期内能发射1条微指令,这就意味着K8L的浮点指令最大吞吐量为3条。必须指出的是,在K8L的3个浮点运算单元中,其中一个单元只负责FMOV(浮点运算搬移),尽管这个浮点单元的功能单一,但是由于操作宽度的倍增,使得该单元在执行FMOV时具有更高的效率。而另外两个浮点运算单元在拥有FMOV的同时还提供128bit双精度乘法器和128bit双精度加法器。通过这样的设计,K8L一共有2个双精度浮点乘法器和2个双精度浮点加法器以及3个FMOV数据搬移器,相对于K8的1个双精度浮点乘法器和1个双精度浮点加法器, K8L极大增强和扩展了浮点计算峰值性能。K8L的浮点运算单元还能够在一个周期内实现2个双精度浮点乘法和加法操作,这样K8L的浮点运算性能将会与Intel Core 2系列处理器相当,达到K8的2倍。
(5)Cache缓存单元
K8L架构缓存单元的设计也是公布较为透彻的一部分。最为引人注目的便是4颗核心除了独享64KB L1和512KB L2以外还可以共享高达2MB以上的L3。其中,每颗核心的缓存控制单元通过2条128Bit带宽与L1相连,剩下的L2和L3分别采用一条128Bit带宽与其相连。L3的共享性可以有效解决一颗内核进行繁重的处理的同时,其他内核进行轻微的处理情况下,处理轻微任务的处理器所拥有的L3部分并不能让繁重负荷处理器所调用的情况。
在K8L架构中,即便在某些情况下,只有一颗内核处于运行状态其仍然能够调用整个L3容量!当然任何事物都具有两面性,缓存共享的设计同样也是这样,要求缓存控制器(Cache Control)功能设计足够完善,这样才能针对核心任务强度的不同调节每颗核心缓存容量占用大小。图4示意了K8L架构缓存单元逻辑。

(6)动态单内核调整
AMD的动态单内核调整技术与Yonah Dynamic Power Coordination非常相似,通过该技术可以使得4颗核心根据实际的任务强度,动态调整工作频率以达到降低功耗的目的。通过Intel Dynamic Power Coordination表现来看,其效果非常显著,并且每颗核心不可能完全一直处于100%使用率情况下。产生疑问的是,对比Intel Dynamic Power Coordination允许每颗核心有6种(C0、C1.C2.C3.C4和DC4)不同强度工作频率,而动态单内核调整技术能够允许几种呢?再有疑问的便是,AMD是否为K8L的4颗核心分别装配了时钟发生器PLL和电压转换器(Voltage Regulator)呢?如果答案是肯定的,那么K8L在功耗的降低幅度方面将会有着较Yonah更为出色表现,原因在于K8L架构中4颗核心可以处于不同的工作电压下进行任务处理,而Yonah中的两颗核心不能。
二、多核心才是方向:Tera-scale & CELL
2006年是“双核年”,2007年是“4核年”,那么未来CPU核心将会是什么样呢?答案是:多核!
1.Intel:Tera-scale
在IDF Fall 2006论坛上,Intel向我们展示了代号为Tera-scale的多核心产品。
Tera-scale具有灵活的架构,允许产品内部集成10~100+的内核以满足不同领域对运算量的要求,例如,掌上电脑、桌面电脑、笔记本甚至服务器。就单个核心来说,Intel并没有打算开放一款全新的架构来满足Tera-scale,而是选用当前优秀的CPU架构作为Tera-scale组成部分。
在这里,我们大胆猜想,Intel还会采用Pentium M架构,当然可能还会在功耗等方面进行一些改良。Tera-scale内部所有核心除了共享一定容量的缓存外,每颗内核还具备本地缓存,当然就缓存大小而言,肯定会低于现有CPU 2MB/4MB。图5示意了Tera-scale单颗内核的结构。

其实,Tera-scale也具备协处理器的概念,内核可以根据实际需要而更换专用处理单元,比如集成一个或一个以上的HD Video、DSP等特殊处理单元。由于专用处理单元在设计之初就有了明确的针对性,因此往往能够以比普通CPU快几十倍的速度完成特定工作。更为可观的是,由于这些专用处理单元逻辑电路相对简单,由此一来,不论是完成同样强度所使用的功耗还是后期工作频率的提升都较现有处理器更具有优势。
Intel为Tera-scale设计了一个Router(路由),其任务便是平衡整个Tera-scale内部核心的工作强度。例如,Tera-scale矩阵中第二行第七列、第三行第七列和第三行第八列内核处于高强度负荷,此时其便可以将部分任务分配给其余空闲核心;另外,可以将问题核心当前所处理的任务转移给其他内核。如此一来,不仅可以提高整体效率也可以控制功耗。
那么众多核心又是如何被工程师们连接起来让其能够相互通信的呢?Intel给出的解决方案为环状网络连接法。此外,Router还具备智能选取路径的功能,可以绕开那些有问题的内核进行任务转派。Tera-scale将采用Point-to-Point型号连接,提供高达20Gb/s的数据带宽。根据现有资料来看,这条总线类似于现有AMD HyperTransport。
那么又如何解决如此多的内核所需的带宽问题呢?我们从IDF Fall 2006得知,Tera-scale需要一条高达1.2 Terabytes/s的内存带宽才能使得内核都能够及时获取数据。Intel给我们这样的回答:在每颗内核之下附加一个容量为256MB的SRAM。由于该方案可以使得SRAM与Tera-scale之间有成千上万支连接针脚,这样可以到达想象不到的带宽总线,另外还可以大大降低内存迟延。如此一来,Intel声称能够为每颗内核提供40GB/s带宽,而整个Tera-scale总带宽则高达3 Terabytes/s。
2.IBM:CELL
CELL是由索尼、东芝与IBM所共同研发的高性能多核心微处理器,以IBM的PowerPC微处理器为基础,具备独特的非对称多核心设计与庞大的总线与内存带宽,拥有高性能的浮点数运算性能。
CELL将应用于高清晰数字影音家电、游戏机、计算机图形、科学运算等领域的产品上,其中以索尼旗下的SCE推出的PS3主机为相关应用中最受瞩目、规模也最为庞大的产品。第一代的CELL微处理器将具备1个PPE微处理器核心与8个SPE协同处理器,由2.5亿个晶体管所构成,PS3采用频率3.2GHz的版本,并保留1个SPE作为备用,实际可用的SPE为7个。
提示:为了叙述方便,CELL处理器将在下一节内容中详细介绍。
三、协处理器,卷土重来:AMD Torrenza IBM CELL
可能不少用户对于协处理器这个概念已经淡化了,毕竟其离我们有一段时间了。可是,今天我们又不得不再对这个概念有所了解。为什么这样说呢?从各大公司趋势来看,协处理器将卷土重来!
1.理解协处理器
协处理器不是什么新鲜名词,对于较早接触电脑的用户来说,被众多386 PC机搭载的Intel 80387芯片就是一款不折不扣的协处理器。由于当时半导体集成度的限制,人们不可能在一个芯片封装中实现包括ALU和FPU在内的所有功能。因此在进行芯片设计时,往往把当时应用得不多的FPU部分独立出去,放在另外一个封装中供消费者选择。
Intel 80387正是这一时代的产物,80387芯片的主频与CPU速度匹配。在应用软件的支持下,80387可以为应用程序提供算术运算、三角、指数及对数函数等在80386指令系统中不提供的各种指令,从而大大改善了系统的浮点运算性能。随后由于芯片制造工艺的提升,这类协处理器被融合到了CPU中。在80486之后问世的所有CPU产品,都具备了ALU和FPU运算单元,协处理器遍地开花的日子戛然而止。
尽管在主流PC市场,协处理器销声匿迹,但是协处理器产品在专业领域依然相当活跃。对于高端的3D动画师来说,他们往往选择基于PCI接口的各种专门针对RayTrace(光线追踪)渲染器设计的协处理器,以便加速整个3D场景的渲染速度。与此同时,各种高吞吐量的网络设备也往往采用专门的协处理器以增加处理加密数据时的效率。在我们每天使用的手机上,NVIDIA GeForce、ATi Imagion协处理器也被逐步采用以提升手机的图形处理能力。
2.AMD Torrenza协处理之道
一直以来,协处理器与CPU进行连接的方式都是个比较“暧昧”的问题。一方面每个协处理器产品都在标榜自己的惊人效率和明显的性能提升幅度,而另一方面这些协处理器产品都在极力回避所采用的接口以及在系统中与CPU之间的协作关系。
事实上,即便如今大部分主板上已经拥有PCI Express插槽,但是对于协处理器来说,PCI Express插槽依然有着不可回避的硬伤。除去PCI Express ×1带宽有限,很少有主板提供超过2个PCI Express ×16接口等问题外,PCI Express设备还需要通过PCI Express控制器、主板芯片组才能和CPU进行数据交换。这样的过程会带来更多的传输延迟,让协处理器的性能无从发挥。
就在此时,HyperTransport 3.0的HTX连接标准便派上了用场,其最主要的特性就是为用户带来芯片与芯片之间的超低延迟传输功能。此次推出的HTX接口,实际上正是HyperTransport接口外部物理化的版本(HTX是第一个Hypertransport总线的扩展接口规范,其目的是加速HyperTransport 3.0技术在高性能系统市场的扩展应用,例如K8L协处理器的HTX扩展卡)。
在没有HTX接口以前,基于HyperTransport标准的设备往往是通过单独设计的布线进行芯片与芯片之间互联,这样设备与设备之间就不具备了选择性。而HTX接口定义了一个专用的主板插槽,这样用户就能选择在这个插槽上插入HTX设备。与此同时,由于HTX采用的HyperTransport接口能够直接与CPU互联,因此相对于PCI Express,HTX接口产生的传输延迟就更低了。由此可见,HTX接口的出现成功的开辟了CPU与协处理器的快车道,搬走了协处理器的最后一块绊脚石。
AMD首先将各种协处理器分成了几类不同的Accelerator(加速器),其中就包括了采用HTX接口的加速器、采用PCI Express接口的加速器、芯片组内置的加速器和基于Socket F插槽的加速器,甚至是CPU内部的加速器。
值得一提的是,由于HTX接口标准只定义了HyperTransport连接技术的物理规格,因此HTX能够实现多高的传输率完全由HyperTransport设备所决定。在K8L处理器中的HyperTransport 3.0技术能够轻松达到5.2GT/s的传输率。而采用HTX接口的协处理器也将会和CPU直接交换数据,提升效率。而HTX也将会和PCI Express接口一起构成AMD协处理器附加卡的标准接口。
在AMD将内存控制器整合入CPU之后,支持AMD处理器的主板芯片组的设计变得十分简单。而在AMD的Torrenza平台上,AMD给主板芯片组开辟了一条新的发展道路。在Torrenza平台上主板芯片组也能够内置各种各样的协处理器,同时通过芯片组与CPU之间的HyperTransport 3.0连接协同工作。这样对于AMD主板芯片组制造商来说开发出更多元的产品将会轻而易举。而将物理运算加速逻辑整合入主板芯片组中,也正是ATi和NVIDIA正在不断努力的方向。也许在Torrenza上我们还能够看到各种主板芯片组提供网络加密数据加速等各种各样的协处理器功能。
对于那些多路平台上的空余Socket F CPU插槽,AMD也没有放过。这些空置的CPU插槽也可以安装上协处理器,这样就会出现1个AMD Opteron CPU搭配1个专用协处理器的双路平台。最后AMD还给自己留了一手,在K8L CPU内部也依然可能集成各种协处理器,以便提升性能。AMD表示,在一个Opteron系统中最多允许3个协处理器同时运行。
纵观AMD的Torrenza协处理器架构,我们不难看出。所谓的协处理器架构很大程度上就是HyperTransport 3.0链路功能的延伸而已。基于HTX插槽、Socket F插槽和芯片组内置的协处理器(AMD称作加速器)无一不是通过HyperTransport总线与CPU连接。而AMD宣称的最多3个协处理器并行工作,也应该是受限于K8L处理器HyperTransport 3.0链路数量而言。通过HyperTransport连接,AMD正在试图通过HyperTransport将芯片之间的互联应用不断扩展,Torrenza平台带来的协处理器架构也只不过是开始而已。
3.IBM CELL协处理器之道
众所周知,IBM联合索尼、东芝所推出的CELL平台将集成9颗处理核心,当然它并不如我们现有的双核心处理器那样每颗核心处于相同的处理地位。在这9颗处理核心当中,只有1颗名为PPE的逻辑单元具有现有处理器所具备的完整功能,而其余8颗名为SPE的逻辑单元都是专门用于处理浮点数据的协处理器。图6示意协处理器在CELL中占据重要地位。

这里我们主要介绍CELL中协处理器和协处理器怎么样与“中枢”PPE进行通信。
每一颗SPE单元都是CELL协处理器,其中包括了自己完整的计算单元,是专门为处理32位单精度优化的4路多媒体SIMD(Single Instruction Multi Data)指令数据而设计的。每个SPE有128个低延迟128位寄存器,集成庞大的寄存器主要是为了能存放更多的数据值,降低访问LS(Load Store,本地存储)的次数。而且SPE的指令集源自PowerPC的向量扩展VMX和PlayStation2 Emotion Engine的向量单元指令集,支持能够对3个源地址和一个目的地址进行操作的(F)MADD指令(MADD指令包含MUL(乘法指令)和ADD(加法指令))。
当CELL处理器在4.0GHz频率下工作时,8个SPE单元能够提供高达256GigaFLOPS(1个GigaFLOPS等于每秒10亿次的浮点运算)单精度浮点性能。在性能和精度两个重要指标中,似乎SPE更在乎性能!8个SPE单元在每一个周期内,都采用单精度模式进行数据运算。从这点来看,我们也可以认为SPE单元是由索尼公司的PlayStation2中的Emotion Engine改进而来。原因在于,SPE同Emotion Engine一样在每一个周期中都采用了单精度模式进行数据运算;不同的是SPE内部含有双精度运算单元,允许SPE运行双精度应用程序,而这在Emotion Engine是无法实现的。由于SPE是针对于单精度数据设计,自然采用双精度运算模式进行数据运算是以牺牲性能为代价的。据IBM预测,采用双精度模式运算数据时性能仅仅是单精度模式时性能的十分之一左右,也就是说当采用双精度模式计算数据的时候性能只有25~30GigaFLOPS!另外,SPE并不具备现有流行的多线程技术,一方面原因是IBM为每颗SPE配置了大量寄存器和足够大空间的 LS,在进行数据处理的时候,不会有由于快取命中失败造成的性能损失;另一方面,如果给SPU增加多线程技术,调度问题可能变得更加复杂并且导致管芯面积显著增大。
而SPE协处理器与PPE进行通信的通道为EIB(Element Interconnect Bus,单元内部连接总线)。EIB总线由4条128Bit带宽的数据通道组成,在这4条通道中,相邻的通道之间数据传输方向是不同的,根据简单的物理知识可以知道,这样的设计可以大大减小数据通道之间的信号干扰。特别是,EIB总线中的数据通道只能为平行或者垂直的,这样的设计原因也是为了减小总线中的信号干扰。EIB数据总线不会因为SPE协处理器单元数目的多少而进行较大的改变,这样的好处就是CELL处理器能够针对不同需求来决定SPE数目的多少而不需要对CELL处理器做太大的改变。这样,数据在EIB总线中的迟延仅仅与SPE单元的数目有关系。
四、传输总线升级在即:HyperTransport 3.0 & CSI
HyperTransport总线的提出,从市场实际情况来看无疑是成功的。但AMD和其制定组织并没有被胜利所冲昏头脑,而是接着制定并发布了更特殊的HyperTransport 3.0总线。AMD老对手此时也没有闲着,看着HyperTransport所取得的胜利难免有些眼红,此时拿出CSI总线进行抗衡无疑是最好的证明。
1.HyperTranspot 3.0普及
对于普通消费者来说,最熟悉的HyperTransport应用恐怕就是AMD K8系列CPU了。由于整合了内存控制器,新的CPU一举消灭了困扰众多处理器的前端总线。但这样一来,CPU也需要一条高速低延迟的总线与主板芯片组连接。作为HyperTransport标准的倡导者,AMD很自然地就将HyperTransport总线加入到了自己的CPU中。除此以外,在许多主板南北桥芯片组之间的连接HyperTransport也起到了巨大的作用:NVIDIA自nForce4 Intel Ediiton开始就采用了HyperTransport来连接主板的南北桥芯片。图7示意了nForce4 Intel Ediiton主板芯片组连接结构。

遗憾的是,由于K8设计时间久远,所以当时只集成了HyperTransport 1.0版本总线,这使得AMD CPU在1GHz的频率下HyperTransport总线只能获得2000MT/s的传输率。为了适应多核发展的潮流,AMD将引入HyperTransport 3.0标准,从而使得处理器和主板芯片组之间数据交换的速度进一步提升。
在各项改进当中,性能的提升必然会引起大家关注。HyperTransport 3.0工作频率从HyperTransport 2.0最高的1.4GHz提升到了2.6GHz,提升幅度几乎达到一倍。如果按照HyperTransport 2.0标准的1.0GHz来计算带宽,在16Bit位宽条件下可以提供8.0GB/s数据带宽(1000MHz×16Bit×4/8)。退一步讲,HyperTransport 2.0最高规格的1.4GHz状态下也就能够提供11.2GB/s带宽(1400×16Bit×4/8)。随着系统数据交换量的不断增大,提高系统总线带宽成为必要发展。HyperTransport 3.0在提高运行频率的同时还可以增加位宽,可使得带宽进一步增加。正是在高频率(2.6GHz)、高位宽(32Bit)的方式下,HyperTransport 3.0为我们提供了41.6GB/s总线带宽(2600×32Bit×4/8),而就算是在16Bit位宽下也可以为我们提供20.8GB/s带宽(2600×16Bit×4/8)。
Hypertransport联盟还制定了HTX接口,HTX是第一个HyperTransport总线的扩展接口规范。新HTX接口标准目标为加速HyperTransport 3.0技术应用在高性能系统市场的扩展。具有HTX接口的主板/扩展卡规范定义了8位以及16位接口标准,带宽最高达到1.6GB/s(时钟频率800MHz),包括所有控制信号在内(也包括同步参考信号)。其连接器信号工作电压包括12V以及3.3V两种。SMBus界面(3.3v)支持JTAG缆线,而且支持采用传统4层PCB工艺制造主板以及各类扩展卡。HTX规范可以随意兼容标准扩展ATX主板(12〞×13〞),而且在封装方式上兼容采用标准PCI接口的板卡使用现有的基板设计方法。
在现有的DC模式 的基础之上引入了AC模式。AC模式可以使得总线在最高时钟频率下的最大信号传输距离延伸到1米左右范围。由于AC模式的引入使得HyperTransport总线最大信号传输具有稍微偏短的现状有所改善。当然AC模式在带宽和迟延方面的表现略差于DC模式,厂商可以根据实际情况来选择采用DC模式还是AC模式。两种模式的灵活性也相当强,在一个系统中既采用单一模式也可以采用混和模式,使系统的设计最优化。
HyperTransport 3.0加入了一种全新的Un-Ganging模式。由于该模式的引入,使得HyperTransport总线能够允许操作过程中进行带宽资源动态分配。举一个简单例子来说明,当系统总线上存在一个1×16Bit模式下的连接,而此连接可以被重新配置为虚拟2×8Bit连接模式。转化以后的CPU架构形成一种SMT处理器(多线程处理器),但是每一个核心将会独立拥有一条位宽为8Bit的HyperTransport总线连接;而当在SMT处理机制完成后,CPU可以被重新配置为单核心处理器,此时,HyperTransport总线还原成为一条位宽为16Bit供单核心处理器使用。由此可见,Un-Ganging模式使得HyperTransport总线将更加有利于未来处理器发展方向。
在众多改进当中,加入对热插拔(Hot Plugging)的支持是HyperTransport 3.0创新之处,由此,HyperTransport从原有的系统总线扩展到了外部总线。我们能够像使用USB接口、IEEE 1394设备一样方便地插上或者移除掉采用HyperTransport规范的周边设备。就目前情况而言,采用HyperTransport规范的产品不论在种类和数量上肯定不能和USB、IEEE 1394等相提并论,但随着HyperTransport联盟以及HyperTransport技术的不断努力与普及,相信会有越来越多的HyperTransport出现在市场上。
2.Intel不甘寂寞,CSI强力出击
CSI是Common System Interconnect的缩写,其矛头直接指向了HyperTransport——无论是速度、带宽、每个针脚的带宽、功耗等一切规格都超越了HyperTransport总线。另外Intel表示,CSI不会是HyperTransport的重导,它将拥有比HyperTransport低得多的延迟,更重要的是,CSI可以与“通用平台设计”相配合,在同一台服务器中同时使用两种处理器,从而降低系统开发成本。同时Intel希望能够降低Itanium系统的成本,增强该平台在高端服务器和大型计算机市场的竞争力。而对桌面和移动产品来说,CSI总线带来的增益相对有限,毕竟桌面和移动平台的瓶颈不在于此。
五、制程升级:45nm & 65nm SOI
制程是对某套完整半导体工艺的统称,这其中主要包括该套工艺制造出来的半导体线宽(Line Width)、门长度(Gate Length)的大小、逻辑电路层层数、逻辑电路层互连金属种类、使用的晶圆大小等指标。
下面对其中几个概念做一个简单说明。线宽指的是该制程工艺可在芯片上达到的最小导线宽度;门长则是晶体管左壁到右壁之间的距离;我们所说的多少nm制程一般指的就是半导体的线宽。
1.为什么需要引入先进制程
(1)提高产品集成度,让芯片越来越小
性能的增加或多或少与晶体管数量存在着联系。Pentium 4便告诉我们这个“规律”:采用Willamette核心Pentium 4集成4200万只晶体管,发展到Northwood核心时晶体管增加到了5500万只,而Prescott核心的晶体管数目则达到了1亿2500万只。
我们知道,CPU缓存单元都是SRAM,而SRAM保存1bit数据需要6个晶体管。所以,一副CPU微架构图中,缓存单元总是占据了很大面积。每当厂商对其产品进行缓存的扩大时,都得增加上千万个晶体管。
制程工艺的进步主要体现在线长的不断缩短方面。那么在缩短导线长度之后能给用户带来哪些好处呢?下面让我们简单地了解一下。由于晶体管之间都是由导线进行连接,提升工艺制程可以缩短导线的长度,这意味着任意两只晶体管之间的导线都会因为制程的提升而缩短。此外,制程工艺的提升还能让晶体管门长度变得更短,这样可以让处理器核心的面积减小得更加彻底。
(2)降低产品成本,提升性价比
对于CPU来说是从一块晶园所切割下来的,如此一来,一定面积下的晶园,所能够切下的CPU越多就意味着单块CPU成本越低。从上文的叙述中,我们已经在头脑中形成这样一条主线,一般情况下,CPU性能的提升离不开晶体管数目的增加,而晶体管数目的增加无疑会使得核心面积上升,这样便会让同等面积大小的晶园所能够切割的单块产品数量下降并由此导致成本增加;如果要尽可能保持较低成本,那么可以使用更为先进的制程让晶体管数目不变甚至小幅度上升的情况下能降低产品核心面积。
(3)降低产品功耗
就目前制造工艺而言,CPU主要是由CMOS门电路所构成,而CMOS门电路的功耗可以由计算公式P=CfV^2(P:功耗,C:CMOS门电容,f:晶体管频率,V:供电电压)所得出。每次制程工艺的提升都会在线长和门长度的大小上有所体现,缩短其长短带来的好处便是使得驱动电流减弱,电流与功耗两者之间存在着正比关系,从而降低工作电流,间接让CMOS门电路的功耗得以降低。
另一方面,由于门长度的缩减使晶体管的体积随之减小,而晶体管体积和电容之间又存在着正比的关系。据Intel官方文档显示,从90nm转换到65nm晶体管电容C降低了20%。同样根据功耗公式可以看出,千万只甚至上亿只晶体管的整体功耗下降程度是较为明显的。
从以上两个方面来看,制程工艺的提升能很好地使整个CMOS门电路功耗大大降低。由于CPU功耗的降低,使得对散热设备的要求随之降低,更重要的是,可以进一步提升CPU工作频率以获取更好的性能。在这一点上,AMD Athlon XP就是一个很好的例子,因为制造工艺的不断升级,工作频率越来越高,这使得它在市场上的寿命长达5年之久!
2.Intel:45nm是2007年主导
在即将与我们见面的45nm(纳米)除了具备以上特征之外,还引入了两项我们关注已久的技术:High-K(高介电常数材料介电质)和Metal(金属门电极)。前者在于取代沿用多时的SiO2(二氧化硅),后者则会配套High-K替换Polysilicon(多晶硅)。
这两项技术转变能为我们带来什么呢?
鉴于传统的SiO2作为门和通道之间的绝缘层已经显现出问题而SOI技术又不能从根本上解决这一问题,而High-K材料对电子泄漏的阻隔效果比SiO2强很多。为此Intel决定用用用High-K的氧化物材料来制造晶体管的栅极。这种材料对电子泄漏的阻隔效果可以达到传统材料二氧化硅的10000倍,电子泄漏基本被阻断,这样就可以在绝缘层厚度降低到0.1nm时仍然具有较好的电子隔绝效果。
是什么原因使得看似如此简单的技术迟迟不能应用?虽然High-K材料很多,但这类材料在制造中和使用中的稳定性、缺陷率指标等都与SiO2相差甚远。比如,High-K材料的门限电压可能飙升到500毫伏甚至更高,芯片在运行过程中受热升温以后,晶体管的门限电压也将来回变化,最终会影响CPU/GPU的稳定性。到目前为止,Intel也并没有表示未来将采用何种High-K材料。
第二项关键技术便是使用金属类材料取代现有的多晶硅。多晶硅作为最为基层的导电从而形成RC延迟电路,由于其电阻较大,根据RC延迟电路延迟周期T=2π RC可以知道迟延周期较大。如果采用导电率较高的金属类材料栅电极,能彻底解决栅极耗尽的问题:金属材料电阻较小。但是,它如同High-K材料应用一样存在着困难,主要体现在工艺复杂程度方面——使用金属类材料的栅极之前,需要使用替代栅技术,通常的多晶硅栅极制造完成以后再清除那些多晶硅,重新布上金属材料的栅极。这样一来,仅仅在布置栅极上面就需要两道工序。
总的来说,45nm工艺带来的直接益处是,集成度提高了2倍左右;晶体管开关速度提高了20%,或者降低了5倍的电流泄漏。
3.AMD:我们将全面进入65mn SOI
AMD引入的65nm SOI(绝缘体硅)制程同样满足于半导体制程提升的总体特性,但对于AMD 65nm SOI来说,SOI技术是其特色之一。那么SOI技术能起到何种功效呢?SOI技术能够有效隔断各电极向衬底流动的漏电流,使其只能通过晶体管流动,但SOI技术对于同一层面的晶体管之间的阻隔效果并不理想。
AMD从2006年6月就开始采用65nm进行处理器生产,并于2006年9月真正进入产量阶段,如果一切顺利,2007年AMD 65nm SOI制程的CPU将会遍及整个市场。