超线程已经是CPU非常重要的功能,以至于Intel将是否具备超线程功能,作为高、中、低端产品线的划分依据,这也是Core i7/i5/i3的重要划分依据。Bulldozer架构同样支持多线程功能,AMD则宣称Bulldozer的特殊设计让它具有更出色的多线程能力。
AMD认为,Intel超线程技术的问题在于,当两个线程同时争抢一个内核资源时,很容易陷入困顿的情况,此时CPU性能不增反降。这在理论上看起来并没有错,但实践证明,Intel有足够多的技术手段解决这个问题,至少在这一代Core ix系列处理器中,它的超线程技术还是非常管用的。
图6 资源高度共享,也让Bulldozer架构在多线程机制上具有效率优势。
那么,我们现在来看看Bulldozer的超线程技术有哪些不同。众所周知,当前的双核、四核和六核处理器事实上由单个处理器简单捆绑而成,这些处理器可以共享L2或L3高速缓存,通过缓存来交换数据,但内部的运算单元本身,却是相互隔离的—这好比就是一个个相互独立的房间,当你要走到另一间,就得首先走出房门、通过走廊,然后进入另一个房间才行。而Bulldozer是基于集群化多线程架构,Cluster-Based Multi-threading:CMT,也称多簇式多线程技术。它一个模块内部的两个整数单元和浮点单元是高度共享的,这些运算单元紧密地联系在一起,动态共享部分资源并协同处理两个线程。每一个模块都具备可以将一个大任务细分为多个并行任务的能力,这些线程处理方式可以按需要任意整合,不会对整个流水线的效能造成影响。因此CMT技术的效能要高于传统的多线程方案。根据AMD介绍,单个“推土机模块”可以达到80%左右的多线程性能提升,而且所用的晶体管数目似乎并不比Intel的超线程技术更多。这样在多线程的模式中,Bulldozer在理论上确实会具有更高的效率。
不过,如果要让Bulldozer架构的潜力能够被充分释放,AMD就需要获得来自软件编程的支持,这主要涉及到操作系统—计算机运作时,操作系统总是与处理器密切协作,并负责管理线程与核心之间的关系。AMD透露它们正在与微软、开源软件社区进行积极的合作,以便软件开发者能够理解如何有效地调度Bulldozer的多个共享计算单元。我们不妨举例来说,如果一个程序的两个线程共享数据,也符合Bulldozer的二级缓存架构,那么在Bulldozer的同一个模块内执行就会具有很高的效率;反之,如果程序没有针对Bulldozer进行优化,或者线程间的独立性很强,那就无法发挥Bulldozer共享计算单元的优势了。AMD希望软件业的配合,能够充分发挥出Bulldozer的潜能,而系统本身也能够运作在更灵活的状态下。
在关于Bulldozer的线程讨论中,有趣的莫过于传说中的“逆向超线程技术”、也就是所谓的Anti-HT。这项技术的理念相当新颖:即将处理器的多个核心虚拟为1个核心,类似于将工作频率提高1倍,由此获得单线程任务的飞速提升!这个传言一出现就获得大量的关注,因为现时80%以上的应用都还无法对多线程提供良好支持,基本都运行在单线程模式下,逆向超线程技术无疑能够大幅度提升CPU的实用表现。
遗憾的是,Anti-HT后被证明是子虚乌有,AMD在会议上对此只字不提,而在关于Bulldozer的博客中,AMD产品经理John Fruehe作出了确定的回复:Bulldozer的一个线程只能运行于一个核心。
Intel的Turbo Boost睿频加速技术在Core i7/i5中发挥出巨大的作用,而在即将推出的Sandy Bridge家族中它们升级到了第二代。与此针锋相对,Bulldozer也将支持更强的Turbo Core动态加速功能,并且将作为全系列处理器都具有的标准特性。
Turbo Core技术早在Phenom Ⅱ系列的六核心处理器中首度引入,它也是一种动态加速技术,在执行那些线程不敏感的应用时关闭部分核心,同时在功耗允许的范围内提升其他核心的电压与工作频率——但由于Phenom架构本身并没有对此作出专业设计,Turbo Core的应用就显得非常有限,灵活性远不如Intel的Turbo Boost方案。
而在Bulldozer架构中,每个模块的供电都是独立的,可以随时根据任务需要切断或者激活,这就赋予新一代Turbo Core更强大的能力。AMD表示,在Bulldozer的Turbo Core模式下,处理器高可获得500MHz的频率提升,从而大大加速单线程的应用。
第二代Turbo Core的来临,让Bulldozer拥有与竞争对手相同的技术特性,当然我们并不认为它能够完全超越Intel的Turbo Boost方案。
在现行的K10体系中,HyperTransport总线就充当中枢神经的作用,这条总线将CPU与芯片组、CPU与其他CPU之间连接为一个有机的整体。
同样,在Bulldozer架构中,HyperTransport总线也具有这样的职能,AMD可以根据需要将任意多个模块整合在一枚芯片之内,或者让多枚芯片也通过Hypertransport总线连接为一个多路计算系统。这种高度模块化的设计能够加速芯片开发、提高产品灵活性——如果你再将目光转移到图形市场,便会发现AMD从RV700系列(Radeon HD 4000系列)以来的成功,便是得益于相似的灵活策略。
图7 Bulldozer具有极佳的可扩展性,理论上说AMD可以在芯片内集成任意多个核心而不会影响其协作效率。
我们不妨来看看Bulldozer架构的几款产品方案,如代号为“英特拉格斯”(Interlagos)”的Opteron 6200服务器处理器将配备6个~8个模块,拥有12个~16个核心,它将取代现行8个~12个核心的Opteron 6100系列;代号为巴伦西亚的Opteron 4200系列则有3个~4个模块即6个~8个核心,它将取代4个~6个核心的Opteron 4100系列。这样新一代的Opteron的核心数量大约增加了33%,而AMD则表示整体性能增益在50%左右,这足以让它有能力应对Intel的下一代Xeon平台。