正文内容 评论(0

AMD复仇之剑:Bulldozer推土机预览及展望
2011-05-25 23:11:46   编辑:上方文Q     评论(0)点击可以复制本篇文章的标题和链接

突破传统,Bulldozer设计思路大不同

自从X86架构成型以来,Intel和AMD等厂商的CPU设计思路几乎是一成不变,为了获得更强的性能,采取的多是优化或者加入新指令集,加大L2缓存(cache)容量,引入L3缓存等方式,这些年除了HT与QPI直连总线算得上创新之外,CPU内核部分并没有太大改变。进入多核时代后,设计思路则转向多核心以及多线程两种方式。

CMP(Chip MultiProcessors)也就是增加核心数量,现在桌面级CPU拥有四核心乃至六核已不是什么新鲜事,而服务器领域也有十二核、十六核CPU出现。用CMP方式提升性能是显而易见的,但是它的缺点是成本要随核心数增加而不断提高,内核数量达到一定程度性能提升也不成比列。

SMT(Simultaneous Multithreading)也就是我们常说的超线程技术,它可以让一个CPU核心的多个线程共享资源并同步执行,硬件上几乎不需要增加成本。虽然服务器领域应用SMT多线程技术已有多年,但把SMT技术带入桌面领域还要归功于Intel,P4时代以HT(Hyper-Threading)身份登场,不幸遭遇P4的疲糜,之后的Core时代HT超线程技术销声匿迹,直到Nehalem架构上重新启用并一直延续到现在的SNB架构,只是现在的超线程技术与与P4时代的HT超线程在技术原理上早已不完全相同。

AMD的CPU并不支持SMT超线程技术,目前AMD在市场上实行的“田忌赛马”策略实质上就是用CMP技术对抗Inte的SMT技术,相近价位下用四核以及三核对抗Intel的双核,用六核对决Intel的高端四核。这种策略看似高明,但是二者在成本上差异明显,是苦是乐只有AMD自己知道了。

之所以扯这么多CMP和SMT的差别,就是因为AMD的Bulldozer架构的设计思路不同于当前的CMP以及SMT,而是走上了第三条路,既非硬件上增加CPU核心数,也不是软件上虚拟多线程。

AMD复仇之剑:Bulldozer推土机预览及展望
Bulldozer不走寻常路

AMD在设计Bulldozer时考虑的是如何最大化提高多核心多线程的效能,传统的CMP与SMT各有自己的优点,同时也存在着局限性,SMT不如CMP效率高,而CMP代价(不单单是成本)比SMT高。为此Bulldozer一改传统CPU核心设计思路,设计了一个模块(Module),每个模块中又有两个独立又关联的内核,借此实现了一个模块同时运行两个线程的目的。

AMD复仇之剑:Bulldozer推土机预览及展望
Bulldozer一改传统而采取模块化设计实现了SMT多线程

组成Bulldozer的一个功能单元的不再是传统的整数+浮点单元内核,AMD称之为一个模块(Module),每个模块中拥有两个整数单元(Integer Unit)和一个共享的弹性浮点单元(Flex Floating Point),其中整数单元各自配备了一个调度器(Scheduler),因此可以同时执行两路线程,AMD称自己的多线程技术为CMT(Cluster Multithreading)。

理想情况下,需要计算的数据恰好全是整数型,那么经预读(Fetch)、译码(Decode)之后数据会分别经两个调度器分配至相应的整数单元进行计算,同一时间内可以有两个线程在运行,而且这两个线程都是实打实的硬件计算,效率远超HT超线程这样的软件模拟。之前有传言AMD在搞的是逆线程(anti-HT),可以将多个线程合并为一个线程,这个技术的存在与否并没有谁来证实,不过看看现在的Bulldozer架构,两个整数单元可以同时运算一个任务,从模块的角度看就相当于把两个线程合并为一个,与逆线程的思路有异曲同工之妙。

AMD复仇之剑:Bulldozer推土机预览及展望
增加的一个整数单元只占用一个模块面积的12%,占整个核心的面积

据AMD称,目前CPU中超过80%的运算都是整数运算,增加一个整数单元的好处是显而易见的,用增加5%的核心面积的微小代价即可换来80%的整数性能提升。

最终设计出来的Bulldozer架构如何呢?

AMD复仇之剑:Bulldozer推土机预览及展望
4模块8核心Bulldozer的架构图(来源:chip-architect)

这张图来自chip-architect.com,也是目前最为详细的揭露Bulldozer架构的一张图,结合AMD官方公布的一些消息可以确认图中的大部分信息还是很准确的。

上图中显示每MB L3缓存的面积为3.85mm2,对此结果笔者存疑,因为缓存通常都要占用很大面积,不过09年的时候AMD曾和T-RAM公司达成合作,未来的32nm工艺将会使用T-RAM作为缓存,如果Bulldozer上使用了技术先进的T-RAM缓存,那么缓存的占用面积会更小,上述缓存面积还有可信度。

Bulldozer每个模块的核心面积为18.0mm2(不含L2缓存),包含2MB L2缓存的情况下每个模块核心面积则为30.9mm2,集成2.13亿个晶体管。与之对比的是SNB架构每个核心的面积为18.4mm2,同时集成512KB L2缓存。那么由此估算下,Bulldozer的每个核心可以看作集成1MB L2缓存的同时面积约为15.5mm2,核心面积要小于SNB。AMD的Bulldozer在新工艺的支持下,同等级别下的核心面积已经接近Intel的水平(甚至更低),远高于K10时代的水准。

这里只考虑了CPU部分的核心面积,还要注意到SNB和Bulldozer都会集成了GPU核心,它们对核心面积的大小也有重要影响。SNB中GPU分为HD 2000和HD 3000系列,双核CPU的核心面积分别为131mm2和149mm2,不过Bulldozer目前集成的GPU消息不明,所以这个无从对比。

责任编辑:

  • 支持打赏
  • 支持0

  • 反对

  • 打赏

文章价值打分

当前文章打分0 分,共有0人打分
  • 分享好友:
  • |
本文收录在
#快讯

  • 热门文章
  • 换一波

  • 好物推荐
  • 换一波

  • 关注我们

  • 微博

    微博:快科技官方

    快科技官方微博
  • 今日头条

    今日头条:快科技

    带来硬件软件、手机数码最快资讯!
  • 抖音

    抖音:kkjcn

    科技快讯、手机开箱、产品体验、应用推荐...