反击酷睿——AMD新一代K8L架构剖析

技术空间

今年下半年,Intel采用Core微架构的处理器将全面上市,面对竞争对手咄咄逼人的攻势,AMD会采取什么样的措施应对?按照CPU架构的更新周期,K8架构的继任者也该浮出水面了,它才是AMD对抗Core(酷睿)架构的利器。近日,AMD终于公布了改良的K8L架构的详细信息。K8L架构究竟有哪些值得炫耀的地方?

重中之重——扩展浮点单元

1.倍增的浮点加法器和乘法器

从K7架构开始,浮点性能强劲就是AMD处理器引以为荣的优势。进入K8时代以后,AMD更是把这种优势延续下来。作为K8架构的接班人,K8L的浮点性能同样值得我们期待。事实上,K8L的浮点性能应该在现有基础上进一步提升。对比K8和K8L的浮点构成单元,你就会发现其中的玄机。

图1是K8的浮点构成单元,图2是K8L的浮点构成单元,其中FP SCHEDULER为浮点调度器,FMOV浮点数据搬移器,64-bit FMUL为双精度浮点乘法器,64-bit FADD为双精度浮点加法器。不难看出,K8L增加了一个双精度浮点加法器和一个双精度的浮点乘法器,而且FMOV操作的数据宽度还被加倍。通过倍增的浮点加法器和浮点乘法器,K8L实现了浮点性能的提升,但我们最关心的还是提升幅度有多大?事实上,由于CPU要处理的指令比较复杂,某些指令会达到双倍的效果,但某些指令就要打些折扣了。

23-d12-2.jpg
(图1 K8的浮点构成单元)
23-d12-3.jpg
(图2 K8L的浮点构成单元)

如果只是进行单纯的浮点加法运算,K8L可以通过倍增的浮点加法器,轻易地把K8的1个双精度浮点加法/时钟,提升至2个双精度浮点加法/时钟。浮点乘法运算也存在类似的情形。这种性能提升并不需要新的指令集进行帮助。但要注意的是,由于AMD在一个浮点单元内同时集成了浮点加法器和浮点乘法器,如果要让这个浮点单元处于饱和的工作状态,就必须要求这个单元可同时执行浮点加法和乘法运算。AMD当然深知这一点,K8L的浮点单元就具备了执行浮点乘法/加法指令(简称FMAC)的能力,当程序使用这个指令进行优化时,K8L就可以实现两个双精度浮点乘法和加法运算,程序的浮点执行效率将得到显著提升。

由此看来,K8L的浮点性能要得到充分发挥,还须加大新指令集的推广力度,但从以往的表现来看,我们还是不禁为AMD捏一把汗。想当年,3DNow!的推出时间比SSE还要早,但到最后AMD还不得不向Intel妥协。时至今日,SSE4(正式名称未定)是否会支持FMAC指令还是个未知数。有消息称,Intel已经准备在SSE4中撤消对FMAC指令的支持,看来“寄人篱下”的日子确实不好过。

注:也有消息称,K8L还在继续改进,有可能会在解码或调度阶段实现自动转化FMAC,但这样一来无疑会加大解码或调度的实现难度,在Core产品线咄咄逼人的情况下,AMD能否来得及实现尚未可知,但从AMD表示计算峰值仅提高50%的幅度来推测,K8L最终使用自动转化FMAC的可能性并不大。

2.谁的浮点性能强

与Core架构相比,K8L的浮点性能能否占据优势?Core在x87浮点程序中只能实现1个双精度浮点加法运算、1个双精度浮点乘法运算或1个双精度浮点乘法和加法运算,但在SSE2/3浮点程序中,它却可以实现两个双精度浮点加法运算、两个双精度浮点乘法运算或两个双精度浮点乘法和加法运算。显而易见,K8L在x87浮点程序中具备一定的优势,但在SSE2/3浮点程序中它就要逊色一些了。

K8架构执行128位的SSE2指令需要两个时钟周期,而K8L通过倍增的浮点加法器和乘法器,已具备单周期吞吐执行同一种并行SSE2指令的能力。虽说有了不小的进步,但它执行SSE2指令的最高水平只有Core的一半,到底是什么限制了K8L能力的发挥?答案如图3所示,Core架构是把两个双精度加法器联合在一起,从而构成一个128位SSE浮点加法器,一条SSE2并行加法指令只须经过一个端口(Port)便可发送至该浮点单元执行,SSE浮点乘法器也存在类似的情形。

23-d12-4.jpg
(图3 Core架构执行SSE2指令的情形)

由于SSE浮点加法器和SSE浮点乘法器是彼此分开的,在一个时钟内Core架构便可同时执行一条SSE2并行加法指令和一条SSE2并行乘法指令。反观K8L,由于两个双精度加法器分布在两个不同的浮点单元中,一条SSE2并行加法指令须占用两个端口才有可能发送至两个不同的浮点单元中执行,SSE2并行乘法指令也存在类似的情形(图4)。同一种类型运算器的分布式排列,这就限制了K8L在执行SSE2指令时的性能。

23-d12-5.jpg
(图4 K8L架构执行SSE2指令的情形)

如虎添翼——支持协处理器

说起Cell处理器,大家印象最深刻的当数其超强的浮点性能,高达256Gigaflops(即每秒进行2560亿次浮点运算)的浮点运算能力,恐怕得让现有桌面处理器追赶很多年了。事实上,Cell的秘密武器就在于其革命性的构造,即采用协处理器专门负责浮点运算(图5)。据悉,Intel在长远规划中也将吸纳类似的设计思想。面对协处理器这块诱人的蛋糕,AMD又怎能坐视不理?K8L也将支持协处理器,不过与其他厂商不同的是,AMD把协处理器的任务交给了第三方厂商。

23-d12-6.jpg
(图5 Cell采用了“PPE主处理单元+SPE协处理器”的设计)

AMD是如何进行主处理器和协处理器的连接?我们知道,多路Opteron的表现之所以让大家赞不绝口,灵活高速的Hyper Transport总线功不可没,因为各个CPU可通过高速的Hyper Transport总线进行连接,彼此之间的传输瓶颈被打破了。在K8L架构中,Hyper Transport总线将扮演更厉害的角色,它可以挂接协处理器,即主处理器和协处理器将通过Hyper Transport总线进行通讯(图6)。但要实现这一点,AMD必须解决两个问题:一是主处理器与协处理器的任务协作问题,即主处理器进行运算任务的分派工作,协处理器在接收到任务时,可以按照主处理器的要求进行运算并将结果返还给主处理器,K8L就可以扮演这样的角色;二是完成硬件连接标准的制订,以实现主处理器和协处理器的有机连接。

23-d12-7.jpg
(图6 Hyper Transport总线可以将主处理器和协处理器有机地连接起来)

Hyper Transport协处理器方案的杀手锏就在于它的共生模式,通过把Hyper Transport协处理器授权给其他的专业IC设计公司,AMD可以实现同其他厂商共同赢利的目的。第三方厂商可以通过销售协处理器获利,而AMD不但可以通过平台授权获取额外利润,还可以在第三方公司的帮助下提高市场份额,终端用户也可以根据需要灵活选购自己需要的协处理器。要知道,协处理器不仅可以针对浮点计算,还可以专门针对HDTV视频解码、Java语言执行、图形任务处理、物理运算等任务,AMD所倡导的友好生态系统非常值得我们期待,K8L也有望掀起协处理器革命的风暴。

适应形势——弹性的内存控制器

K8架构的优秀表现同整合的内存控制器是分不开的。不过凡事往往有利就有弊,整合内存控制器无疑增加了CPU的设计难度,而且由于主流内存规格多变,如果CPU来不及做出改变或者对主流内存的判断出现错误,CPU的销售就会受到影响。就目前的情形来说,DDR2内存已逐渐普及,但支持DDR2的K8产品才上市,这在一定程度上影响了不少用户的购买决心。为了避免在内存规格更迭之际产生不可挽回的损失,K8L架构的内存控制器将更富弹性,它可以支持DDR2、DDR3和FB-DIMM内存,厂商和用户可以根据需要自行决定。另外K8L架构也将新增48位内存寻道支持,它支持的最大内存容量为256TB。

小知识:FB-DIMM的英文全称是“Fully Buffered-DIMM”,中文名为”全缓冲双列内存模组”。这种内存使用DDR2、DDR3等传统并行内存芯片,通过串并行信号转换芯片,它的外部总线将工作在串行模式下。FB-DIMM的出现让在低成本下制造高性能、高容量内存模块成为了可能。

多多益善——四核处理器到来

就在双核CPU的普及刚刚开始,Intel和AMD已经紧锣密鼓准备各自的四核处理器产品了。2007年第三季度,AMD计划推出基于K8L核心的四核处理器Deerhound,四个核心仍然使用独立的二级缓存,每个核心拥有各自的1MB二级缓存,但为了更好地适应多核心的处理需要,AMD决定引入共享三级缓存设计,四个核心将共享2MB的三级缓存。

为了节约多核CPU的功耗输出,K8L架构允许单独控制每个核心的工作电压,在处理比较简单的任务时将某些核心暂时关闭。除此之外,K8L架构还允许独立于CPU核心之外修改主板北桥芯片的工作电压,这也是目前K8架构无法做到的。此外,四核CPU对数据吞吐量的需求也急剧攀升,为了更好地适应这一形势,K8L将使用第三代Hyper Transport总线,新一代总线的最大传输带宽能达到惊人的41.6GB/s,足以满足未来一段时间多核CPU及多路CPU的应用需求。

结语

在Intel和AMD的力推下,双核CPU已成为2006年处理器市场主旋律。与此同时,双方在四核处理器领域的竞争也拉开了帷幕。在Intel统一Core架构和65nm制造工艺战略的步步紧逼下,AMD要想巩固或扩大现有市场地位份额,必须有所行动,而预定在2007年问世的K8L架构就是它反击的武器之一。尽管K8L并非革命性产品,但相比现有K8架构,其增强的浮点性能和支持协处理器这两大亮点非常值得我们期待。可以预见,基于K8L架构的AM2平台将是今后人们关注的焦点。