科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航



ZDNet>服务器频道>芯片>全面解析AMD Bulldozer集群多线程架构

全面解析AMD Bulldozer集群多线程架构

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

AMD公司近日在2009年财务分析师大会(2009 Financial Analyst Day)上公布了下一代CPU架构“Bulldozer”的最新详情。对AMD来说,这是自K7以来AMD CPU架构的一次根本性变革(作为内核架构来说,K8是K7的升级版本)。

来源:ZDNet编译 2009年11月24日

关键字:Bulldozer AMD

● 介于双核和Hyper-ThreadingHyper-Threading中间的Bulldozer

AMD公司近日在2009年财务分析师大会(2009 Financial Analyst Day)上公布了下一代CPU架构“Bulldozer”的最新详情。对AMD来说,这是自K7以来AMD CPU架构的一次根本性变革(作为内核架构来说,K8是K7的升级版本)。

更重要的是,Bulldozer采用了基于集群的多线程技术。AMD通过在处理器模块中紧密结合2个CPU内核来视线多线程。AMD公司技术群组总经理Chekib Akrout作了如下说明。

AMD CPU架构的推移(点击放大)

“尽管它被称为Bulldozer内核,但实际上它是一个模块。两个内核被紧密地集成到一个模块中,来实现最高密度。”

Bulldozer“模块”是一个可以并行运行连个线程的处理组件,是Intel双核处理器的Hyper-Threading(Hyper-Threading)的一个体现。尽管双核、Hyper-Threading和Bulldozer在线程并行执行方面是相同的,但是内核的分区却截然不同。

下面是与用于PC的CPU多线程架构对比。第一个是普通的多核架构,AMD通常称之为CMP(Chip Multi-Processor)。中间的是Bulldozer架构,AMD称之为基于集群的多线程,或者集群化架构。最下面的是SMT(Simultaneous Multithreading)架构,典型代表是Intel的Hyper-Threading。

这三种方法都是并列地执行两个线程。然而,这种情况下内核共享了两个线程的多少资源,各线程所占哪个分区都是有很大不同的。

多线程架构的比较(点击放大),对于多线程的执行效率,物理双核心,在成本提升一倍的情况下性能也提高一倍,而Bulldozer架构则让双核成本增加75%,但双核的性能提高90%,相比这下英特尔的超线和技术,所需的额外成本最低,但所获得的性能提升也最小

● 资源分区的不同

第一个CMP类型的双核是最简单的。两个内核只执行一个线程。在这种情况下是没有资源共享的,缓存等也被限制在一定范围内。因此,各个CPU内核之前完全不会相互干扰,各自跑各自的线程。

尽管CMP的性能较高,但是由于2个CPU内核是作为一个整体资源的,所以成本很高。理论上讲,性能提高100%的话,CPU内核的成本也提高100%。如果翻倍的话,双核变四核,所需资源是原来的4倍。

最下面的SMT让1个CPU内核跑两个线程,除了运算资源之外,两个线程共享例如缓存、调度机制、指令的获取和解析等大部分资源。Intel方面称,每个线程只共享寄存器和缓冲等资源。SMT的优点在于加载成本较低。Intel解释说,SMT本身加载的资源所占比例很小。然而,性能上的提升也是有限的,这是因为线程之间会不可避免地发生冲突。AMD认为,IntelHyper-Threading技术提高系统性能大约在25%。

因此可以说,SMT是一项太过耗费CPU资源、不追求双线程性能的技术理念。尽管Intel称加载成本大约占到几个百分点,不过实际中可能更多。

如果SMT要提高性能花,CPU内核就需要更多运算资源和更广泛的指令调度。AMD曾经指出,CPU内核提高性能的确是一个难题(然而,Intel的Nehalem架构体现了加强的指令调度与Hyper-Threading是无关的)。

不管怎样,AMD预计部署SMT的成本要比Intel所说的多,因此,似乎可以看出,SMT并不是一项高效的技术。

● 针对高吞吐量的集群多线程

因此,AMD提出了自己的多线程技术——基于集群的多线程。集群化架构的理念是让双核模块更高效。也就是融合了两个CPU内核,两个内核共享浮点运算单元和命令解码器等资源。因此实现了高效率的双核。

因为线程要竞争共同资源,所以基于集群的架构无法像CMP的双核那样完全发挥性能。不过据称,因为大多数情况下每个线程占用资源(整数运算单元和整数调度等)都被使用了,所以可以大幅度提升性能。

这并不是AMD独有的技术,而且到目前为止有很多个相似的例子。例如,Sun和Oracle开发的Niagara/Niagara2(UltraSPARC T1/UltraSPARC T2)。尤其是,Niagara2更接近于Bulldozer,它的每个内核有2个整数运算通道和1个浮点运算通道。

Sun的SPARC架构(点击放大)

基于集群的多线程共享的资源要远远少于CMP双核。AMD解释说,资源增加50%,单个内核的吞吐量提高80%。这样计算的话,双核资源增加75%,双核的性能提高90%。

因为吞吐量提高了,每个印模的密度也随之增加,从而导致成本增加。而且,资源竞争中每个线程的执行性能降低,这是一个优点。反而SMT每个线程的性能有降低的可能,基于集群的性能也有可能降低。

Bulldozer架构(点击放大)

● 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有着很大的区别吧。

综合评分:8.07 分
云能力:7.1 分
营业额:54.2亿美元[2012]
云服务:AMD虚拟化

查看更多 >>

邮件订阅

如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅ZDNet技术邮件将是您的最佳途径之一。