AMD的反击:四核心Barcelona架构分析

AMD的反击:四核心Barcelona架构分析 - 电脑DIY - 电脑教程网

AMD的反击:四核心Barcelona架构分析

日期:2007-01-31   荐:
  在过去的几年中,Intel的处理器发展规划路线并不固定。为了延续P6架构核心的成功,Intel采用了两个开发团队并进的策略,其中一个团队继续发展Pentium 4采用的NetBurst架构,另一个团队将对代号Banias的Pentium M进行重新设计,目标是更低成本、更低功耗的高集成度核心。最终的结果是NetBurst架构的发展被Banias的进化超越。Dothan是Banias第一个进化成果,它拥有更高的时钟频率和更多的缓存,为进一步的发展奠定了基础。随后Intel的以色列发展中心(IDC)以Dothan为基础提出了原生双核心和共享二级缓存解决方案,这就是代号Yonah的Core Duo处理器,也是首款双核心Intel处理器。从Dothan到Yonah的演进具有远比Banias到Dothan更重大的意义,不仅仅只因为Yonah是首款Intel双核心处理器,最重要的是Yonah拥有更多架构上的改进。接下来Intel又对Yonah进行了改进,这就是让Intel从竞争对手AMD手中夺回技术领先地位的Core 2系列处理器。

  和对手Intel相比,AMD近几年的发展策略显得相对保守,自从K7核心在技术上领先于Intel之后,角色发生了巨大的转变,他们从先前的追赶者变成了领先者,突然的角色互换使他们失去了发展的动力,加之他们没有足够的财力可以像Intel那样同时进行两个处理器开发计划。他们最终选择了继续K7核心的开发,而没有采用重新研发新架构的高风险计划。由K7进化而来的K8进行了轻微的架构改进并且整合了北桥芯片,可以说K7到K8的进步非常大。但是不得不承认Intel从Dothan到Yonah的递进做的更为出色。而造成Intel追上AMD的更为重要的原因是,Intel的NetBurst架构开发团队以每五年为一个微架构更新周期,另一个Pentium M开发团队在IDC的微架构更新周期竟然达到了每年一次,从Banias、Dothan、Yonah到 Merom/Conroe仅仅只用了四年时间。而在这期间K8几乎没有任何发展。如果Intel仍然继续NetBurst架构向下发展,以五年为一个微架构更新周期,或许AMD的K8仍然在保持领先地位。最终的结果证明,Intel采取双线并进的研发计划是非常明智的选择,成为了决胜的关键。

  幸运的是AMD提早认识到要与Intel竞争必须缩短研发周期,他们把原先4-5年一个微架构更新周期缩短到了两年,这也造就了Barcelona计划。尽管Barcelona架构比Core 2 Duo迟了一年左右,但是它仍然被AMD寄予厚望,担当起重新夺回技术领先地位的重任。Intel过渡到45nm制造工艺计划是Barcelona的最好机会。按照目前的消息来看,Intel采用45nm制造工艺的代号Penryn的Core 2 Duo处理器将会在2007年底上市,但是从目前的情况来看全面上市至少要到2008年。也就是说,Intel过渡到采用45nm制造工艺的Penryn可能需要比预期更长的时间,而采用Barcelona架构的服务器版本将会在2007年中上市,桌面处理器也会在第三季度上市这可能会使AMD在时间上抢得先机。

  认识Barcelona架构:

  Barcelona是AMD首款四核心处理器,采用65nm制造工艺,和Intel的四核Kentsfield处理器由两个双核心组成的架构不同,Barcelona是单处理器集成四个核心的架构是真正的原生四核处理器。不过,尽管在技术上要优于Intel的Kentsfield,我们还是不确信Barcelona在现实中的性能会大幅超越Kentsfield。

  Barcelona的设计比K8要复杂的多,需要多达11个金属层,而K8和Core 2 Duo分别只有9个和8个。而更多的金属层只会使制造过程更为复杂增加成本,对于最终的用户来说并没有太大意义。Barcelona拥有463百万个晶体管,比Kentsfield少了119百万个。晶体管数量少是因为缓存减少的原因,Barcelona上的每个核心都拥有128KB一级缓存和512MB二级缓存,再加上四个核心共享的2MB三级缓存,缓存的总量为4.5MB。而Kentsfield的缓存总量达到了8.25MB,比Barcelona多了80%。不过Barcelona的缓存仍然远远要比四核心K8要多,如果不计算缓存晶体管,一个双核Athlon 64 X2处理器的晶体管数量大约为94百万个,而Barcelona的晶体管数量大约为247百万个。即使两个双核Athlon 64 X2处理器的晶体管数量也没有Barcelona多。


  SSE128:

  在从K8到Barcelona的众多改进中有一个非常重要的改变,AMD把它称为SSE128。在K8架构中可以同时执行两个SSE指令,但是SSE的执行带宽仅仅只有64-bit。在K8中执行一个128-bit的SSE指令,必须要分成两个64-bit指令来执行。这意味着执行一个128-bit的SSE指令需要占用一个额外的解码通道。Barcelona把K8的64-bit SSE的执行带宽提高到了128-bit,因此执行一个128-bit的SSE指令不用再进行分解。这样一来不但可以获得更多可用的解码带宽,而且指令的执行效率也大大提高。增加SSE指令的执行带宽也会造成核心内部的很多改变。由于获得了更多的解码带宽,在执行128-bit的SSE指令时有出现了一个新的瓶颈,那就是指令取得带宽。Barcelona的指令取得带宽已经从K8的每周期16byte提高到了32byte。32byte的指令取得带宽不仅仅有益于SSE编码,对整数编码也同样非常有好处。更大的指令取得带宽会明显推进处理器性能。


  在Barcelona上你可以取得和解码更多的指令,这意味着你需要获得更多的数据到执行核心,因此AMD加宽了L1缓存和SSE寄存器之间的传输界面。现在Barcelona可以每周期执行两个来自L1-D缓存的128-bit SSE指令,原理和K8每周期执行两个64-bit指令一样。加上AMD同时加宽了L2缓存可内存控制器之间的传输界面,从而解决了指令取得带宽的瓶颈。事实上SSE128的改进非常类似于Yonah到Merom的改进。在Conroe/Merom之前Yonah的FP/SSE性能还不如K8。这在Yonah和K8的性能对比测试中有很明显的表现,虽然两者在大多数应用程序、3D渲染和游戏性能中的性能表现非常接近,但是在视频编码性能测试中K8明显要优于对手。但是Core 2处理器的出现使这种情况发生了逆转,视频编码性能大幅度超越K8。也许SSE128的改进会使这种情况有所改变。

[1] [2] [3]  


  更高级的分支预测器:

  尽管SSE128被AMD称为Barcelona的最大改进,但是这只是冰山一角而已。在技术改进清单中排在最前面的是分支预测器。分支预测器的工作原理很简单,如果分支编码结果之前曾经被取用过,那么它将最有可能在下一次被提取。所以分支预测器的用途在于监测正在被CPU执行的指令,并且相应的对指令被执行的次数进行记录,来统计特定地址的分支编码结果被提取的概率。一旦计数器内部累积足够的数据,分支预测器就可以相对比较精确的对分支结果是否会被提取进行预测。通常来讲,CPU的分支预测器性能会直接影响数据处理的精确度。K8的分支预测器就非常好,对它的架构做了专门的优化。不过Intel的Pentium M和Pentium 4采用的分支预测器技术要更为出色。在Barcelona中将增加了一个512通路的间接分支预测器,更多的分支预测器将使Barcelona比K8获得和预测更多的历史数据,而更多的历史数据也会使支预测器更加精确。

  频带堆栈优化和更快的加载速度:

  Intel在Pentium M上首次提出了一个叫做专用堆栈管理器的功能,顾名思义就是用一个堆栈管理器来操作所有的X86堆栈运转。简单来说就是通过独立的堆栈管理器减轻了处理的负担。在Barcelona上AMD采用了相类似的技术,称为Sideband Stack Optimizer(频带堆栈优化),不但可以单独处理所有的堆栈运转,而且对堆栈处理器进行了优化,使其不浪费执行单元的位宽。

  Barcelona还将具有Out-of-order load execution(乱序载入处理)能力,某些指令在实际运行当中可以绕过其他指令的处理,而且指令的存储也可以不按顺序进行,这在某些环境下对效率的提高有着很关键的作用。

  更快速的内存控制器:

  从以往的经验来看,AMD每推出一款新的处理器都会对内存控制器进行一次增强,Barcelona也不例外,它的内存控制器改进将会使内存性能得到很大的提升。和K8相比Barcelona的内存控制器将更加智能化。K8(Socket-940/939/AM2)处理器整合的是一个128-bit内存控制器,而在Barcelona中这个内存控制器被分离成两个64-bit控制器。每个控制器都可以独立运行,从而使内存控制的效率更高。尤其是四个核心分别处理不同的任务时它的优点更加明显。另外,Barcelona的北桥也将拥有比K8更高的带宽,考虑到高带宽的利用这个北桥将支持未来的DDR3内存标准。不过照目前的消息来看,起初发布的Barcelona仍然只支持DDR2内存。

  新的Prefetcher单元:

  Prefetcher(预取)单元的作用是预先取得内存中的数据放到缓存中备用,以加快内存的潜伏期。Intel的Core 2处理器每个核心有三个Prefetcher单元。K8处理器每个核心有两个Prefetcher单元,一个用来预取指令,一个用来预取数据。Barcelona每核心的Prefetcher单元数量仍然和K8一样,但是对它们进行了改进。最大的改变是数据Prefetcher单元会直接将数据储存到L1缓存中,而K8的数据Prefetcher单元是把数据储存到L2缓存中。把数据预取到潜伏期更低的L1缓存,会增加核心预取的精确性而且还可以避免占用L2缓存。而最大的改进是,在Barcelona的内存控制器内部加入了一个DRAM Prefetcher单元,这个DRAM Prefetcher单元用于整体的内存需求,它不会把数据储存到L2或L3缓存,而是储存到自带的缓存器中,这将会增强整个核心的性能。

  三级缓存架构和虚拟化技术:

  AMD在缓存部分一直都落后于Intel。我们知道双核Core 2处理器采用的是共享的4MB二级缓存,是目前双核K8的两倍。而这一差距在四核心处理器的竞争中还将继续拉大,Barcelona每个核心单独享有512KB二级缓存,四个核心的二级缓存总量仅仅只有2MB,而Intel的四核心Kentsfield却拥有高达8MB的二级缓存。预计年低推出的Penryn将拥有总数高达12MB的二级缓存。Barcelona没有像K8一样每个核心采用128KB的一级缓存和512KB的二级缓存,它的一级缓存仅仅只有64KB,但是AMD为Barcelona加入了四核心共享的2MB三级缓存,这将弥补二级缓存容量不足的问题。三级缓存的容量是可变化的,不同型号的处理器可能会配备不同容量的三级缓存。Barcelona在性能方面的改进还包括提升虚拟地址转换速度的增强虚拟化技术。目前进行地址转换,通常hypervisor是通过一种叫做shadow paging的技术来实现的,而是Barcelona采用的是一种硬件加速shadow paging技术,AMD把它称作Nested Paging。这样一来hypervisor进行地址转换所用的时间就会大大缩短。


  电源管理:

  Barcelona的四个核心仍然采用同样的电压,但是北桥的供电和CPU采用分离式电源管理设计,核心电压和北桥电压可以单独在0.8V - 1.4V之间改变,也就是说改变其中一个电压不会对另一个电压产生影响,这会有效的降低功耗。尽管Barcelona的四个核心的电压不能单独改变,但是它们可以运行在不同的时钟频率,在运行不需要四个核心满载的任务时,其它空闲的核心会自动降低时钟频率以达到省电的目的。Barcelona的每个核心都支持5种p-states模式来改变时钟频率,这种p-states模式是完全的硬件控制,因此你需要专用的驱动程序来激活这种电源控制功能。可以说Barcelona的电源管理模式为将来的多核心处理器增强功耗比提供了一个新的思路。

  结论:

  毫无疑问Intel的Core 2处理器的发布对于处理器性能提升有革命性的意义,它也是近几年来性能提升幅度最大的新处理器。Core 2最大的成功在于它的全新架构,但是不得不承认对于Intel来说Core 2的出现并不是最佳时机。

 [1] [2] [3]  


  按照目前的产品发布计划,AMD采用Barcelona架构的新一代Opteron服务器处理器将在2007年中发布。起初的频率是2.1GHz 到2.3GHz,但是年底我们会看到更高频率的Opteron处理器。桌面处理器方面,采用Barcelona架构的Agena处理器的频率将达到2.7GHz 到2.9GHz,而双核心的Kuma处理器的频率范围为2.0GHz 到2.9GHz。可以说Barcelona架构是AMD复兴的希望,它的性能将会比目前的K8有大幅度提升,特别是在视频编码性能方面。遗憾的是,根据目前的状况来看采用Barcelona架构的新一代处理器的价格将会和Intel的同级产品非常接近,也许AMD传统的价格竞争策略将就此终结。从AMD的整体战略来看,他们在和Intel打一个时间差,Barcelona推出之后将先在性能上压制目前的Conroe/Merom,然后再凭借提前抢占市场的价格优势来对抗Penryn。但是Barcelona能不能赶在Intel的Penryn处理器之前抢先普及市场是AMD取得这次大反攻胜利的关键,可以说这将是一场惨烈的时间之战!

(出处:http://www.sheup.com)


 [1] [2] [3] 

(出处:http://www.sheup.com/)


 [1] [2] [3] [4] 

标签: