第1页:架构全面调整 推土机多线程/HT对比
近期随着AMD下一代处理器Bulldozer推土机流片的消息透露出来,大家对AMD下一代处理器变得非常关心,今天我们就此整理了Bulldozer处理器的架构资料,主要是其中的集群多线程设计,为大家做一个诠释,同时我们还对比了Intel的HT超线程技术。接下来让我们来一一了解。
AMDBulldozer推土机采用集群多线程设计 Bulldozer采用了基于集群的多线程技术,AMD通过在处理器模块中紧密结合2个CPU内核来实现多线程计算,并且这两个内核,共享2个128-bit FMAC浮点单元,共享L2、L3缓存,集成有内存控制器。
AMD CPU架构变化图(点击放大) AMD公司此前在2009年财务分析师大会(2009 Financial Analyst Day)上公布了下一代CPU架构“Bulldozer”的详情。对AMD来说,这是自K7以来AMD CPU架构的一次根本性变革(作为内核架构来说,K8是K7的升级版本)。
第2页:AMD Bulldozer集群结构展示解析
AMD公司技术群组总经理Chekib Akrout作了如下说明:“尽管它被称为Bulldozer内核,但实际上它是一个模块。两个内核被紧密地集成到一个模块中,来实现最高密度。”Bulldozer“模块”是一个可以并行运行两个线程的处理组件。尽管双核、Hyper-Threading和Bulldozer在线程并行执行方面是相同的,但是内核的分区却截然不同。
AMD Bulldozer集群结构 下面是与用于PC的CPU多线程架构对比。图片中最上面是普通的多核架构,AMD通常称之为CMP(Chip Multi-Processor)。中间的是Bulldozer架构,AMD称之为基于集群的多线程,或者集群化架构。最下面的是SMT(Simultaneous Multithreading)架构,典型代表是Intel的Hyper-Threading。 这三种方法都是并列地执行两个线程。然而,这种情况下内核共享了两个线程的资源多少、各线程所占哪个分区都是有很大不同的。
多线程架构的比较(点击放大) 除去L2、L3缓存,HT(超线程)这样的两个线程的SMT(同步多线程)技术通过5%左右的微架构晶体管增加达到了30%左右的吞吐量提升;而理想的双核CMP架构则通过100%的微架构晶体管提升达到理论上100%的吞吐量提升;Bulldozer则看起来通过50%左右的晶体管数量提升达到了80%的吞吐量提升。增加的晶体管不仅仅用于额外的4个运算单元及配套的调度器、L1缓存,还要包含其他对应双线程处理的部件。
第3页:三种多线程结构优缺点全面对比
● 资源分区的不同
第一个CMP类型的双核是最简单的。两个内核只执行一个线程。在这种情况下是没有资源共享的,缓存等也被限制在一定范围内。因此,各个CPU内核之前完全不会相互干扰,各自跑各自的线程。
多线程架构的比较(点击放大) 尽管CMP的性能较高,但是由于2个CPU内核是作为一个整体资源的,所以成本很高。理论上讲,性能提高100%的话,CPU内核的成本也提高100%。如果翻倍的话,双核变四核,所需资源是原来的4倍。
最下面的SMT让1个CPU内核跑两个线程,除了运算资源之外,两个线程共享例如缓存、调度机制、指令的获取和解析等大部分资源。Intel方面称,每个线程只共享寄存器和缓冲等资源,SMT的优点在于加载成本较低。Intel解释说,SMT本身加载的资源所占比例很小,然而,性能上的提升也是有限的,这是因为线程之间会不可避免地发生冲突。AMD认为,Intel Hyper-Threading技术提高系统性能最多大约在25%。
因此可以说,SMT是一项极耗费CPU资源、不追求双线程性能的技术理念。尽管Intel称加载成本大约只占几个百分点,不过实际中可能更多。
如果SMT要提高性能的话,CPU内核就需要更多运算资源和更广泛的指令调度。AMD曾经指出,CPU内核提高性能的确是一个难题(当然,Intel的Nehalem架构体现了加强的指令调度与Hyper-Threading是无关的)。
不管怎样,AMD预计部署SMT的成本要比Intel所说的多,因此,似乎可以看出,SMT并不是一项高效的技术,实际上并不是这样。
第4页:成本/性能兼顾的集群多线程技术
● 针对高吞吐量的集群多线程
因此,AMD提出了自己的多线程技术——基于集群的多线程,集群化架构的理念是让双核模块更高效。也就是融合了两个CPU内核,两个内核共享浮点运算单元和命令解码器等资源,因此实现了高效率的双核计算。
Bulldozer多线程计算模型(点击放大) 因为线程要竞争共同资源,所以基于集群的架构无法像CMP的双核那样完全成倍提升性能。不过据称,这样设计大多数情况下也能充分利用每个线程资源(整数运算单元和整数调度等),所以可以大幅度提升性能。
第5页:Bulldozer不是Hyper-Threading追随者
这并不是AMD独有的技术,而且到目前为止有很多个相似的例子。例如,Sun和Oracle开发的Niagara/Niagara2(UltraSPARC T1/UltraSPARC T2)。尤其是,Niagara2更接近于Bulldozer,它的每个内核有2个整数运算通道和1个浮点运算通道。
Sun的SPARC架构(点击放大) 基于集群的多线程共享的资源要远远少于CMP双核,AMD解释说,资源增加50%,单个内核的吞吐量提高80%,双核资源增加75%,双核的性能提高90%。
● Bulldozer并不是Hyper-Threading追随者
Bulldozer开发负责人、AMD资深工程师Chuck Moore自2004年加入AMD以后就开发着手集群化架构的开发,并且AMD从2005年就曾提到过类似的技术。有人得出结论说,这是AMD追赶Intel多线程技术的最好方法。
AMD副总裁兼服务器业务总经理Patrick Patla在分析师日上这样表示:“有些人问我‘这是不是AMD对Hyper-Threading的回应?’。这可以说是对我们的不尊重。原因是,这是我们一直期盼的结果,现在实现了,绝对不是说为了追赶谁而实现的。(Bulldozer架构)是一种多线程、多任务和多核。这是我们通过Bulldozer模块提升性能的最好途径。”
实际上,Bulldozer模块这种基于集群的多线程在分区比率方面接近SMT技术;而与CMP双核比较,Bulldozer在使用更少的晶体管的情况下,也能达到不错的性能提升。因此,Bulldozer与Hyper-Threading有着很大的区别。
转自硬派网
|