AMD“推土机”和Intel Xeon 5600以及 Xeon E7性能评测对比

时间:2011-12-17   来源:   网友评论:0   人气: 2033 作者: ZNET


AMD新一代处理器架构Bulldozer(推土机)在两年前就已经引起业界的广泛注意,由于其新颖的“物理双线程”设计让很多人对于AMD首次涉足多线程领域的表现非常期待。2009年11月11日,AMD正式明确了Bulldozer的架构,而随着日后Bulldozer的细节公布,本站也做了相应的报道,其双核模块的设计确实让人眼前一亮,好奇心也因此更上一层楼。近日,桌面版的Bulldozer处理器率先亮相,8核心的FX8100与4核心的FX4100的评测已经铺天盖地,而11月14日,面向企业级应用市场的皓龙(Opteron)版Bulldozer终于正式亮相,分别是最高16核心/8模块的Opteron 6200系列与最高8核心/4模块的Opteron 4200系列。由此也正式向世人宣布了AMD的最新服务器平台。在AMD的声明中强调,新一代基于Bulldozer的皓龙处理器将为云时代提供强大的动力,同时也为企业带来高效、节能的基础运算平台。那么从理论到实践,从期盼到现实,Bulldozer能为将来的云“推”出多大 的天空任其驰骋呢?我们今天就来做一分析,而重点就是Opteron 6200系列。

Opteron 6200处理器新特性简介

有关Bulldozer处理器架构的介绍,已经有很多了,但为了文章的完整性,我们今天也在此做一简单的回顾与介绍(参见上面提到的本站专文),首先要明确的是,从Bulldozer开始,传统意义上的“CPU核心”的概念已经有了变化。
1.jpg 

Bulldozer的“模块”架构图,可以看作是两个整数处理核心共享一个浮点处理单元的设计 ,因为日常的处理运算中,更多的是整数处理,所以这就变向的等于在一个模块可以同时处理两个整数处理线程,而无需共享处理管线

AMD当初开发Bulldozer架构的初衷在于,经调查发现日常的IT应用主要集中于整数运算,而浮点运算相对较少。为了提高多线程处理的性能,AMD设想可不可以用2+1的方式来解决,即两个整数处理核心+1个浮点处理单元,以组成一个新架构的处理单元——Module(模块)。 众所周知,在多线程处理方面,英特尔最早提出了Hyper-Threading(超线程)的理念,可以使操作系统或者应用软件的多个线程,同时运行于一个超线程处理器上,其内部的两个逻辑处理器共享一组处理器执行单元。而AMD CPU的两个线程使用各自的单元,但两个线程是共享命令解码器和浮点运算等资源的。因为是整数运算,所有线程之间没有冲突,因此吞吐量有所提高。
2.jpg 

从芯片级别看Bulldozer模块,每个模块拥有自己的L2缓存,L3缓存则为晶片级共享

 


Opteron 6200与4200的晶片设计图,4200由单晶片(功能单元略有不同)构成,最多4个模块(8核心),6200由两块该晶片组成,最多8个模块(16个核心)

由于这种2+1的核心设计,在Bulldozer的架构中,其核心(Core)的概念已经与传统认识有了较大的不同,单一的核心并不是一个具备完整功能的处理单位,所以AMD一直在用Bulldozer Module来表示Bulldozer处理器的处理单元,所以在后文的介绍中,对于Opteron 6200我们也将用模块和核心两个概念表述——在这里,核心是指组成模块中的整数处理单元,它们共享一个弹性浮点处理单元(Flex FP)。
4.jpg 

Opteron 6200的内部架构图,相当于用两块4200组成,两个芯片之间由HyperTransport总线互联

在Bulldozer架构中,非常值得一提的是由两个整数处理核心共享的Flex FP处理单元与新增加的独家指令集。这一Flex FP由两个128bit FMAC(Fused Multiply–Add Capability,混合乘加)处理单元组成,之所以称为弹性(Flex),是因为这两个单元可以各自独立,为每个整数核心提供独享的128bit浮点处理单元(此时可以认为是两个具备有整数运算+128bit浮点运算单元的处理核心,组成了Bulldozer Module),也可以组合成一个256bit的浮点处理单元为一个模块提供服务,这其实给编程人员提供了很好的弹性,但也预示着对现有的应用需要进一步的优化。


 

文章评论