“推土机”征服世界?——AMD 新一代Bulldozer处理器技术解析
技术空间
虽然AMD近年来在处理器市场混得也算不错,特别是几款高性价比的双核、三核和四核处理器的上市赚足了消费者眼球,也挣到了银子。不过随着Core i系列的推出,AMD的处理器在性能上没有任何优势,特别是在Intel的“Tick-Tock”战略压制下,AMD始终不曾在桌面处理器领域获得主动权,同时AMD在处理器领域玩的“田忌赛马”策略也逐渐呈现颓势,在Intel强悍的技术实力和领先的市场份额面前,AMD显得有点力不从心。因此,AMD只有再次进行技术创新,才有希望改变一直被Intel所压迫的局面。在今年8月底,AMD向外界发布了大量下一代处理器Bulldozer(中文代号“推土机”)的信息。很显然,AMD将希望全部寄托在了Bulldozer处理器身上!
内核设计全面模块化
AMD的“Bulldozer”是AMD在K10之后推出的全新一代处理器架构,对AMD来说,这是自K7以来AMD处理器架构的一次根本性变革,在核心架构及功能性上都较K10有改大的改变。相对于目前AMD主流处理器的架构,Bulldozer核心最大的亮点就是引入了模块化设计,这让处理器在功能更加灵活的基础上更容易控制成本。我们都知道AMD目前无论是羿龙(Phenom)四核、三核还是双核的内核结构都是固化的——统一采用四核(或者更多核)的物理结构,再根据市场价格策略来决定对内核进行有选择的屏蔽。这对产品以性价比取胜的AMD来说难以控制成本,而且要想在目前架构上开发出更多核心的产品几乎要重新设计基板布局。
而Bulldozer处理器所引入的模块化设计刚好可以解决这个问题。Bulldozer在核心设计方面每两个核心组成一个单独的单元(称之为“核心模块”,两个物理内核集成到一个模块中),比如双核处理器只需要集成一个模块就可以了,即使是八核处理器也只需集成四个模块,这让产品生产及成本控制更加具有灵活性。处理器核心模块的两个核心各自拥有一级缓存,但共享二级缓存和预取、解码单元,所有的“核心模块”共享8MB三级缓存和与北桥模块。
那么以后AMD处理器内核数量如何定义呢?未来的新架构四核心处理器指的是四个这样的模块呢,还是四个计算核心呢?AMD对此给出的回复是:“将每个拥有双整数核心的推土机模块视为一个独立的单元就对了。”显然,AMD在这里刻意回避了单纯的核心数量问题,更强调两两组成的有机整体,所以在面对推土机架构处理器的时候我们可以说它是四核心、八核心的,也可以说是双模块、四模块的。只不过未来AMD或许不会再有奇数核心的处理器了。
高效的集群多线程架构
Bulldozer架构中的另一个新元素就是采用了基于集群的多线程技术。Bulldozer的内核模块是一个可以同时运行两个线程的处理组件,两个内核可以执行两个完全不会互相干扰的线程,有点类似于Intel双核处理器的超线程技术。
尽管双核、多线程和Bulldozer在线程并行执行方面是相同的,但是内核的分区却截然不同。多线程就是在一个单个的处理核心内同时运行多个工作线程的技术,和CMP(Chip Multi-Processing,芯片多处理)不同,后者是通过集成多个处理内核的方式来让系统的处理能力提升。现在主流的多核处理器都使用了CMP技术,而像Pentium 4、Core i7这样的处理器带的“超线程技术”则属于多线程技术。而Bulldozer是基于集群化多线程架构(Cluster-Based Multi-Threading:CMT,也称簇式多线程)的技术。
在Intel的超线程方案中,采用的是复制处理器架构状态的方法来实现超线程,核心内部并没有增设一套额外的硬件执行单元来处理多线程,只是增加了处理器中存储线程有关数据的单元数量,并在硬件执行单元空闲时将这些数据送往其中处理,以便增加处理器执行单元的利用率。这种设计有一定的缺点,比如它只使用了一个指令窗口来负责两个线程的调度、执行和引退,效率并不高。这就像是生产线只有一名管理调度人员,一个人显然很难同时处理两个任务,这样有时候便会出现生产线故障,而处理器在碰到这种情况时性能则会出现明显的下降。
相对于传统超线程或双核技术,Bulldozer这种设计集群化架构的理念是让双核模块在多线程运算中更高效。Bulldozer每一个模块中加入了额外的执行单元,每一个模块都具备可以将一个大任务细分为多个并行任务的能力,这些生产线可以按需要任意整合,不会对整个装配线的效率造成影响。因此CMT技术的效能要高于传统的多线程方案。根据AMD介绍,单个“推土机模块”可以达到80%左右的多线程性能提升,而且所用的晶体管数目似乎并不比Intel的超线程技术更多,这是一个相当鼓舞人心的成就。
根据路线图,Bulldozer 架构会推出四核心、六核心和八核心的版本,其中四核心的整数性能大约比频率类似的Phenom II X4高出10%~35%。需要说明的是,CMT并不是AMD独有的技术,例如Sun和Oracle开发的Niagara/Niagara2(UltraSPARC T1/UltraSPARC T2)服务器处理器,尤其是Niagara2都采用与Bulldozer类似的线程设计。
更强的浮点和整数计算性能
Bulldozer所采用的集群化多线程架构之所以能实现如此高的效能,其中一大原因就是AMD增加了CPU的运算单元——每个模块中的两个线程都具有独立的整数运算单元,只有浮点单元是共享的,这被称为具有两个整数运算单元“簇”。Bulldozer这种将两个线程的整数运算独立开来的设计可以更有效提高处理器在基本应用中的性能。由于Intel的Nehalem架构的超线程技术是两个硬件线程共享3组运算单元,冲突在所难免,而Bulldozer则是两个硬件线程独享4个整数运算单元,性能提升将会更加明显。根据AMD公布的Bulldozer执行单元的结构图,负责整数运算的整数执行单元和负责地址计算的载入/存储单元一共有4组(每单元两组)。(在K7/K8/K10中这样的单元也仅有3组,刚好对应K7/K8/K10的每周期处理3条宏指令的能力。)
需要说明的是,Bulldozer这种双“簇”也让AMD在产品设计上具有更高的灵活性上,未来处理器的分级可以通过控制“簇”数量来实现:比如以后的Bobcat处理器就是切掉一个整数运算“簇”的Bulldozer。此外,Bulldozer的每个模块还具备两条128bit FMAC(乘法累加单元)流水线,这将能够满足Bulldozer中新加入AVX指令集扩展的需求,这种指令集扩展中包含大量128bit多媒体指令。
制程“两级跳”,接口又升级
随着内核的倍增,处理器对生产工艺也提出了更高的要求,因此近几年来半导体厂商也会通过各种各样新技术的使用来维持摩尔法则的“More Moore”。在处理器生产工艺应用上,Intel一直走在AMD的前面,酷睿采用32nm制程已经差不多半年,但AMD的产品目前仍停留在45nm!这种情况将随着Bulldozer的诞生而得到改变,Bulldozer将采用32nm制程。预计32nm工艺将于2010年第三季度开始试产,并在2011年为AMD提供产能,28nm工艺于2010年第四季度上马,超低功耗版28nm工艺则安排在2011年第一季度。它们都会使用HKMG技术。这意味着AMD将在2010年完成产品生产工艺升级的“两级跳”,从45nm进化至32nm后迅速再次进化至28nm,追回被Intel落下的时间。
此前,AMD已经展示了它们28nm产品的晶圆图,看来新技术似乎已经非常接近最后可用的程度。如果真的能实现工艺两级跳,那么长期困扰AMD的工艺制程问题有可能得到巨大改善,AMD将走出目前的窘境,进入全新发展的时代。
Bulldozer架构将采用新的AM3+接口,拥有941个针脚(AM3是938针、AM2+/AM2是940针),不同于目前938个针脚的Socket AM3接口,其好处是可以支持DDR3 1866内存和高级节能技术。需要说明的是,AM3+是AMD的最后一代针脚栅格阵列(PGA)封装,之后将改用触点栅格阵列(LGA),等到Fusion融合处理器降临的时候就会使用LGA AF1新接口,触点多达1591个。针对兼容性方面,按照AMD 的说法,AM3+新接口处理器不能使用在目前的AM3插座主板上,但是现在的AM3接口处理器却能用于未来的AM3+新插座主板。其实AMD 最初也考虑过让Bulldozer沿用AM3接口,但是随后意识到必须做出一个选择,是继续提供AM3而损失新架构的一些新特性,还是升级接口而带来更好的功能和性能?最终为了长远利益,AMD 选择了后者。
Bulldozer处理器将会首先用于服务器,预计首批芯片将是代号为“Interlagos”的服务器处理器,核心数在12个~16个之间,预计在明年发布。而针对桌面处理器市场,Bulldozer将会有4/6/8个核心三个版本,三级缓存容量为8MB,支持DDR3 1866,首款采用Bulldozer架构的桌面处理器产品代号为Zambezi,将成为AMD下一代高端桌面平台Scorpius的核心。





结语>>
肩负着AMD未来的重托,Bulldozer能否如这个名称一样,有着将Intel“推”下宝座的能力?这仍需要时间来证明。考虑到Bulldozer这一架构本身就是为服务器应用所优化,因此Bulldozer可能会带来较强的冲击波。但在主流桌面领域,Bulldozer架构要击败英特尔的Core i则任重而道远。不过,如果将Bulldozer内核与GPU部分结合,形成新一代Fusion处理器的话,其市场竞争力应该会进一步提升,因为Intel在GPU方面的劣势远比AMD在CPU方面的劣势大得多,此外Bulldozer在浮点处理上的弱势还可以被强大的GPU部分所弥补。总之,向Bulldozer架构的转换意味着AMD向多样化发展的趋势,也标志着CPU架构也开始从多核时代向系统级集成时代转变。