能否推倒i7?AMD推土机CPU架构全解析

share
                                                         能否推倒i7?AMD推土机CPU架构全解析  AMD终于发布了让人期待已久的Llano高性能APU(加速处理器),APU的真正实力毫无保留的展现在了世人面前,简单来说,APU的表现可谓是喜忧参半,喜的是GPU部分确实强大,绝对可以秒杀主流级独立显卡,性能是Intel SandyBridge集显HD3000的2-3倍甚至更多;忧的是CPU部分原地踏步,与Intel CPU的差距越来越大。  APU的CPU部分,使用的还是Phenom II架构,而且还是没有三级缓存的精简版。Phenom II的架构相比Phenom I改进不大,还停留在Intel Core 2 Quad的级别。而Intel此后已经推出了两代Core i7产品,性能节节攀升,AMD想要与SandyBridge架构的第二代Core i7抗衡,使用老架构简单扩充核心是毫无胜算的。  AMD下一代CPU架构――Bulldozer(推土机)就肩负起了对抗SandyBridge Core i7的重任。现在距离推土机发布已经不远了,相信更多的DIY玩家都在期待AMD全新CPU架构的表现,那么首先我们就来详细了解一下推土机架构到底有什么值得期待之处吧。Intel的杀手锏――HT同步多线程技术  我们知道,在Core 2时代,AMD和Intel的CPU性能差距还不算太大。但Core i7问世之后,性能有了质的提升,其中贡献最大的非HT(Hyper-Threading,超线程)技术莫属。HT技术可以轻易地把4核虚拟成8线程,在任务管理器中看到的“8个核心”不仅仅是看着爽而已,它确实带来了不小的性能增益,进一步与AMD CPU拉开了差距。SMT同步多线程技术的工作原理  SMT(Simultaneous Multi-threading,同步多线程)的设计初衷非常简单,就是为了充分利用CPU物理核心的资源,防止运算能力被浪费。  一般情况下,CPU的物理核心只有一个执行线程,很多时候CPU核心会处在等待内存中关键代码或数据的状态,此时线程为暂停状态,核心运算能力被闲置。而SMT技术可以允许一颗核心运行两个或多个线程,当第一个线程暂停时,将第二个资源准备充分的线程安排给核心处理,这样动态切换的结果就是,CPU的运算能力得到了最大的利用。  简言之,SMT的设计理念就是用多个线程“喂饱”CPU物理核心,尽可能不让CPU运算单元闲置。  SMT是一种非常廉价的技术,因为CPU的物理内核并没有增加,只需要为CPU赋予两套架构寄存器和重命名寄存器即可,而这些寄存器并不会消耗太多的晶体管。最终在操作系统中的呈现方式,和物理核心没有区别,操作系统会把4核8线程的CPU当作8核CPU来使用,并安排运算任务。  SMT技术对那些CPU负载不是很高且支持多路并发处理的线程比较有意义,典型的比如文件压缩解压缩、视频编码解码等。如果两个线程都需要花费较长的时间等待内存和缓存准备数据的话,那么一个双线程SMT核心几乎就可以等同于一个双核处理器。  但SMT的效率根据应用的不同会有很大差异,如果内存和缓存的压力不大,CPU核心一直都在忙于处理线程的话,另一个线程迟迟排不上队,此时SMT核心的效率可能还不如单颗物理核心。这就是此前测试时关闭HT技术反而在部分项目中性能更好的根本原因,  根据Intel公布的数据来看,在真实的应用环境下,超线程技术能够给CPU带来20-30%额外的性能提升,也就是说一颗双线程SMT核心相当于1.2个常规核心的效能。AMD又一次创新――反其道而行之  通过前面的介绍我们可以知道,Intel的同步多线程技术实际上并不能提升CPU的理论运算性能,只是消除了CPU等待指令时的瓶颈,在部分应用中提升了效能。这样HT技术就存在很大的局限性,如果主内存不再是瓶颈,SMT的执行单元就过剩了,而一个SMT核心也就不再比一个单纯的核心更高效,毕竟SMT核心需要增加一些电路设计,比一个单纯的核心成本要高一些。  所以AMD并没有照搬Intel的做法走SMT路线,也不是继续暴力增加CPU的物理核心数目,CPU的未来并不是只有这两条路可走,于是AMD有了一个新的想法:Intel是把一颗物理核心虚拟成两颗来用,而AMD是把两颗物理核心组合成一颗大核心来用――这颗大核心的官方名称叫做“推土机模块”。  为什么要把两颗核心合成一颗来用呢?有两个好处,一是可以共享运算单元和缓存,提升效能;二是共享之后会节约晶体管(重复单元合二为一),而不是像SMT那样增加晶体管(两份寄存器)。  AMD认为,随着CPU的物理内核数目越来越多(4/6/8核甚至更多),CPU的核心面积也会越来越大,功耗成倍增加。传统CMP暴力复制核心的方式会造成大量重复性的电路。而减少冗余电路的最好方法就是整合,把两颗核心整合在一起,共用一套指令发射器和解码器还有缓存。  相信细心的读者已经发现了,AMD并不是简单的把两颗核心放在了一起,而是有所精简――两颗核心的整数运算单元都被完整的保留了下来,而浮点运算单元只留了一份,这又是为什么呢?  数据显示,存在于服务器和超级计算机上80%的操作都是纯粹的整数运算,CPU的浮点运算器利用率很低,所以AMD在开发新一代CPU架构时强化了整数运算而忽视浮点运算。  另一方面,随着CPU和GPU异构计算应用越来越多,GPU将会越来越多的负担起浮点运算的操作,预计未来3-5年的时间内,据大多数浮点运算都将会交给最擅长做浮点运算的GPU,这也就是推土机加强整数运算而精简浮点运算的真正目的,虽然推土机CPU并未整合GPU(因为它定位高端,不论企业还是玩家都需要最强的CPU和GPU),但下一代APU Trinity将会使用推土机的CPU核心加HD6900 4D架构的GPU核心,推土机架构依然在为Fusion APU而准备着,可以说AMD继64bit、整合内存控制器、HT总线、三个层级缓存之后,又一次采用创新的设计理念引领业界,走在了巨头Intel前面!推土机模块化设计的四大优势  其实,在上一页介绍推土机架构的设计理念时,已经将其优势体现了出来,下面就再强调一下。  第一,AMD虽然将两颗物理内核设计成为一个推土机模块,但每个模块依然是真双核设计,操作系统深信不疑;  第二,模块化设计节约了大量重复性晶体管,8核心的推土机CPU在晶体管数、核心面积、功耗发热方面也不会很大,因为它比传统意义上的8核心处理器“瘦身”不少;  第三,一个推土机模块内部的两颗物理内核共享二级缓存,四个推土机模块(共8颗物理内核)共享三级缓存,缓存利用率大大提升;   第四,CPU的单核效能不仅不会下降,而且还可以共享推土模块内部相邻核心的运算资源。Intel处理器开启超线程在部分应用中性能不升反降的情况,在推土机上是不会出现的。  当然,推土机架构的缺点也是很明显的,它虽然拥有8颗物理核心,但浮点运算能力只相当于是传统4核心的水平。理论上,Intel的HT超线程技术能够一定程度上提升多任务性能,每颗物理核心相当于是1.2核的性能,而AMD的每个推土机模块则可以达到1.8核的性能。推土机模块相对于羿龙II的改进  AMD推土机架构的设计理念不难理解,但更多人担心的是其核心执行效率,毕竟这些年来AMD在效能方面改进缓慢。如果CPU内核效率不行的话,整体架构再怎么优秀也不会有很好的综合表现。现在我们就来看看推土机内核相对于羿龙有何改进?根据AMD官方发布的Bulldozer架构资料,尽管AMD并没有详细说明Bulldozer的指令解码部分相对旧款K7/K8/K10作出了什么改进,但我们可以根据这些官方的展示内容,推断出Bulldozer的指令解码宽度将从K7/K8/K10的每时钟周期三条微指令提升为四条。  这里我们把一个推土机的模块看作是一颗核心的话,里面有两个独立的整数核心,每一个都拥有自己的指令、数据缓存。虽然两个整数运算核心要比K10的三个少,但实际上其中任何一个核心的运算能力都要强于Phenom II。  Intel的Core架构无论整数或者浮点,都采用了统一的Scheduler(调度)派发指令。推土机构架使用独立的整数和浮点派发器,而且整数派发器有两个,对应推土机模块里面的两颗核心。  推土机模块的两个核心支持执行两个线程,会共享对延迟要求较高的功能、平缓突发和低效应用、线程间动态分配资源,好处是比两个线程共享一个核心更高的伸缩性和可预测性、多线程负载的吞吐优势、单线程时所有共享资源均可访问、以少得多的面积和功耗提供物理核心80%的性能。  推土机模块的浮点运算单元是两个128位的FMAC(乘加运算器),这两个运算器可以被两个整数核心共享,如果其中一个整数核心获得的线程支持纯粹的整数操作,那么另外一个核心就可以获得全部的浮点执行资源。这样设计的结果就是,推土机的单核效能将会比Phenom II强不少,而多核效能部分,整数运算能力很强,而浮点运算能力也不会太弱。推土机的初步性能:小胜i7-2600K  虽然距离推土机正式发布还有一段时间,但国外网站已经放出了很多工程样品的测试成绩,其中最为可信的当属donanimhaber网站给出的测试报告,我们可以拿它与Intel的当红明星Core i7 2600K做一个简单对比。  Donanimhaber拿到的这颗推土机工程样品默认频率是3.2GHz,借助新的Turbo Core加速技术,8核负载可以加速到3.6GHz,而在4核负载时更可以加速到4.2GHz。而Core i7 2600K的默认主频的3.4GHz,可睿频至3.8GHz。推土机是4模块8核心,而2600K是4核心8线程,两者从哪方面来看都是旗鼓相当。测试结果如下:国际象棋Benchmark测试,推土机每秒14197千步,i7-2600K每秒13759千步,推土机小胜。CineBench R10多线程图形渲染测试,推土机得分为24434,i7-2600K得分为24381,再次小胜。  由于没有更多的成绩作为参考,但基本上在多线程运算方面,8核推土机的性能已经和Intel最强4核8线程处理器相当了。AMD拿什么对抗SandyBridge-E?  通过前面的分析测试我们可以得知,推土机的性能最终也就和i7-2600K一个级别。Intel是把4颗传统物理核心当作8颗用,而AMD是把8颗精简过的物理核心当作4颗用,最终所实现的性能居然旗鼓相当。  我们知道,近年来AMD处理器的单核效能始终要比Intel差一截,这就导致在核心数量大战时代,核心越多,AMD的性能弱势就越明显。在核心微架构不做革命性改进的情况下,想要超越Intel真的是很难。  而推土机这种创新的模块化设计理念,虽然与Intel的超线程技术完全相反,但最终实现的效果就是――同为8线程,多核性能实现了追平甚至反超,不禁令人拍案叫绝。  但是,Core i7 2600K并非Intel最高端的产品,Intel还有6核12线程三通道的产品,未来还将发布8核16线程四通道的SandyBridge-E,这颗怪兽CPU的性能将会达到i7-2600K的两倍左右,AMD将如何应付呢?  不难,AMD将会以彼之道还施彼身,把两颗推土机封装在一起实现16核心,这就是下一代的服务器处理器“Interlagos”。Interlagos和桌面版本的FX推土机架构一致,只不过是双芯FX,所以核心数倍增到16,而且内存也将是四通道(CPU整合内存控制器,两个双通道)。如此一来16核推土机的性能也应该不会输给8核16线程的SandyBridge-E。  可惜的是SandyBrdige-E已经确定登陆桌面级平台,配套芯片组是X79,而AMD暂时没有将16核推土机引入桌面级的打算。8核FX搭配990FX芯片组可能就是AMD的顶级平台了
share