瞻前顾后,Bulldozer与K10、SNB架构的对比
Bulldozer将会取代AMD的K10架构,它也将直面Intel最新的SNB架构的威胁,Bulldozer必须杀出一条血路,不仅需要完胜当前的K10处理器,而且也要面对SNB甚至未来的Ivy Bridge架构的夹击,那么Bulldozer相比其他两种架构又如何呢?
K10与Bulldozer架构示意图(图片来自anandtech)
前端的指令缓存单元没有变化,依然是64KB 指令缓存,而Decode解码单元从K10的3个增加到四个,因为整数单元增加了一个,需要更多的Decode单元与之匹配,四发射指令的Bulldozer的单核性能会比三发射的K10有提升,理论上其性能应与同为四发射指令的Nehalem/SNB架构持平。
前面提到了Bulldozer设计了两个整数单元,实际上这两个整数单的规格要比K10中的整数单元有所简化,ALU(Arithmetic Logical Unit,算数逻辑单元)和AGU单元(Address Generation Units,地址生成单元)从K10中的各3个减少到各2个,当然总数量方面则是增加到各4个,因此性能方面会有提高。
浮点单元的架构看起来很相似,但是内部设计已经有很大不同,这部分可以参见前面的弹性浮点单元解析。
真正有减少的是整数单元的L1 Data Cache(数据缓存),K10架构中整数单元配置的是64KB数据缓存,而Bulldozer则是两个整数单元各自设计了16KB数据缓存,总的L1数据缓存只有32KB,低于K10的64KB。AMD的解释是现在的乱序指令架构已经可以很容易地隐藏L2缓存的延迟(一般L1缓存是与CPU同速运行,L2则是半速运行,所以会有一定的延迟等待时间),而Bulldozer增大了L2缓存容量,一个模块中拥有2MB L2缓存,而K10架构Phenom II处理器每个核心只有512KB L2缓存,只有Athlon II因为无L3缓存的缘故才有2MB的L2缓存。
Sandy Bridge与Bulldozer架构示意图(图片来自realdowrdtech)
评价SNB与Bulldozer的架构优异就不那么容易了,因为AMD和Intel的设计思路和要求不同,很难说Bulldozer比SNB好或者差,尤其是它们对多线程的处理方式。SNB继续沿用Intel的SMT思路进行软件多线程,在几乎不增加成本的情况下实现了多线程,而Bulldozer则是开创了AMD特色的CMT多线程,利用增加的一个整数核心实现多线程,这是一种硬件级的超线程,理论上效果会比Intel的更好,但是目前并没有实际测试,无法得出准确结论。
同时,这两种架构对待浮点和AVX的方式也不同,Intel的浮点单元改进了寄存器设计,处理AVX指令时是实实在在的256位运算,AMD的Flex FP浮点部分是由两个128位FMAC单元组成,虽然官方宣称它可拆可合,弹性十足,但是在处理256位AVX指令时效率不如原生256位的SNB处理器,还要依赖软件厂商对这种架构进行合理优化。
最终的对比还要等待Bulldozer正式上市,有了实际评测数据后才能下定论。