AMD处理器双拳出击
纵观现在的桌面级中央处理器(CPU)市场,只剩下了英特尔(Intel)和AMD两个品牌,虽然英特尔仍然是CPU行业的老大,但从Pentium166时代起他和AMD之间的竞争也是愈演愈烈,虽然英特尔在顶级市场占有优势,但AMD凭借优秀的性价比而笼络了大批主流用户,而且AMD也时不时会给英特尔让亮出杀手锏,比如世界上第一颗1GHz桌面级处理器就是AMD打造的,比如现在AMD处理器流行的开核超频也吸引了大批忠实用户。
●两种重新设计的架构
但不得不承认,AMD在早期的产品设计中或多或少的借鉴了英特尔的技术,因此很难再性能上彻底超越英特尔,不过近年来我们看到AMD正在试图摆脱这个怪圈,AMD即将发布的Bobcat和Bulldozer两款新处理器就是其中的代表作。
●16核处理器?
早在去年年底就有消息说AMD将率先推出8核心甚至16核心的CPU,在今年8月举行的Hot Chips 2010大会上,AMD正式公布了这种新处理器的核心架构。可以说这两款新处理器相比此前的K8架构进行了彻底的改变,这也是AMD继K7之后第一款重新设计的处理器架构。
【图】山猫和推土机的市场定位
●高性能和低功耗全线出击
AMD将Bulldozer的对手定位于英特尔的Nehalem,而Bobcat则是针对Atom的产品,也就是说Bulldozer将面向中高端及企业用户,而Bobcat则用于笔记本电脑等低功耗平台。Bulldozer的TDP热设计功耗为10-100W,Bobcat的热设计功耗为1-10W,从这点我们可以看出这两款处理器之间有重合之处。
另有消息称,除Bobcat和Bulldozer之外,AMD还会推出一款定位于主流笔记本平台的Llano处理器,它将是现有Phenom II的衍生产品,仍将采用第三代架构,因此我们可以大胆推测,未来AMD处理器市场的重头仍将是Bobcat和Bulldozer。
Bobcat就是乱序处理的Atom
从Pentium Pro时代起,处理器就开始使用乱序执行微架构,在这种架构下CPU将允许多条指令不按程序规定的顺序执行,而是根据CPU各个处理单元的空闲状态等因素决定优先处理哪条指令,因此极大缩短了CPU的延迟时间。由于乱序执行模式需要更复杂的电路设计,随着性能的提升,带来的是更高的功耗和更大核心面积。
●先进的乱序执行架构
英特尔的Atom处理器为了获得更低的功耗,因此放弃了乱序执行架构,又再次启用了顺序执行架构,而且有消息称英特尔将延续此架构4至5年时间,也就是说在2013年之前的Atom都将采用顺序执行架构。
【图】Bobcat处理器架构
●山猫手机?
对于智能手机来说,英特尔的顺序执行架构是十分有利的,它可以将平均功耗控制在1W一下,而这对于45nm工艺的乱序Atom处理器是很难实现的。
●功耗不高但性能更强
然而对于上网本和笔记本电脑来说,这种牺牲性能带来的功耗降低显然不能满足要求,但目前来说Atom似乎是低价笔记本的唯一选择,虽然大多数用户都对其性能不满,但也无可奈何,显然AMD看到了其中的商机,Bobcat就是为了在低价位提供更高的性能而诞生的产品。
Bobcat猛击Atom软肋
在过去十年间,AMD一直是在尽量避免与英特尔相似的设计,甚至已经开始尝试采用比英特尔更为超前的技术,我们看到64bit的K8,以及大容量缓存的Phenom和Phenom II处理器都在技术上比英特尔更加超前,这一次,AMD再次抓住了Atom的弱点。
●完全不同的架构设计
AMD的Bobcat处理器采用了dual-issue并行处理设计,可以同时处理器矢量和标量数据,他和英特尔Atom处理器最大的区别就在于Bobcat采用了乱序执行架构。
【图】Bobcat管线结构
【图】Atom的管线结构
由于采用了乱序执行架构,因此Bobcat获得了强大单线程处理能力,如果AMD可以进一步提高时钟频率,那么Bobcat可以轻松超越Atom。Bobcat采用15层管线结构,与Atom的16层管线十分相近。
从Bobcat的流水线图中我们可以看到,Bobcat实际上拥有6个fetch提取指令阶段,但其中只有前三个包含在15层管线结构中,据AMD介绍另外三个Fetch被用于分支预测,但AMD并没有对其进行详细介绍。
Bobcat具备两个双接口整数调度器,其中一个对应两个ALU算术逻辑单元,另一个对应两个AGU地址发生器。
【图】Bobcat处理器架构
【图】Bobcat管线运行机制
Bobcat拥有一组双接口的浮点运算调度器用于同时处理两组浮点运算,而英特尔的Atom处理器只有单个接口用于处理浮点乘法。在Bobcat中每个时钟周期下,FP mul和FP add两组运算器可以同时处理单精度浮点乘法和加法,类似于整数运算单元的设计,将FPU浮点运算器做成物理寄存器将进一步降低功耗。
另外Bobcat还支持SSE1-3多媒体指令集,未来还可根据需要加入更多的指令。
【图】Bobcat将是第一款APU
Bobcat拥有3 cycle延迟,8路联合,容量为64KB的L1缓存(32KB用于存储指令,32KB用于数据缓存),16路联合L2二级缓存延迟为17 Cycle,容量为512KB,相比Atom的二级缓存Bobcat的延迟时间更短。
●CPU集成GPU显示核心
与Atom不同,Bobcat并不会采用单个处理器的封装形式,而是集成了GPU显示核心,第一款采用Bobcat架构的处理将在2011早些时候用Ontario的命名上市,Ontario将集成两颗Bobcat核心以及AMD的GPU图形处理器,并采用40nm工艺制造,由TSMC代工,同时这也将是TSMC生产的第一款基于X86架构的处理器。
Bobcat功耗不高性能更强
由于X86架构最多只能有8个寄存器的限制,极大限制了处理器性能,为了解决这一问题,同时保持X86代码的兼容性,现在的处理器大多采用了寄存器重命名技术,用映射的方法建立一个虚拟寄存器表格,从而突破了X86架构中8个寄存器的限制。
●突破X86性能极限
Bobcat应用了物理寄存器文件技术(physical register files)从而进一步降低了处理器功耗,PRF中将存储微指令操作数,而微指令只会携带指向操作数的指针,而非数据本身,因此就尽量避免了大量数据的传输,实际上英特尔从Pentium4开始已经放弃了PRF技术,不过AMD认为这种设计将是未来架构发展的必然趋势。
【图】Bobcat采用乱序执行机制
说起Bobcat的实际性能我们不得不再次会到其架构设计,我们将Bobcat的架构和Atom对比可以发现,Bobcat拥有15层管线,而Atom有16层,两者缓存设计基本相同,频率也都在1.5GHz左右,两者的主要区别就在于Bobcat采用了乱序执行架构,而Atom采用的是效率相对较低的顺序执行架构,这也将是Bobcat成功的关键因素。
●单线程处理更优秀更适合笔记本
而英特尔Atom的优势在于它的每个核心均采用多线程设计,因此当运行大规模多线程程序时,Atom将更占优势。但问题是,目前采用Atom处理器的笔记本电脑由于单线程性能较低而严重影响了用户的使用体验,相比之下Bobcat将有望解决之一问题。
【图】彻底重新设计的架构
另外AMD还有第二种解决方案,前面我们提到过AMD并不会采用单Bobcat核心的方案,而是将在一颗CPU中同时集成2个甚至4个Bobcat核心。因此我们有理由相信,假设Bobcat集成的GPU显示核心强于Atom平台,那么基于Bobcat的双核Ontario处理器,如果能达到足够的频率,将同时获得单线程和多线程性能的平衡,并在笔记本电脑市场挑战Atom的地位。
●达到90%主流笔记本电脑的性能
AMD官方宣称,Ontario的性能将超过目前90%的主流笔记本电脑,同时其核心面积将缩小一半,因此我们看到,AMD其实不仅仅将Atom视为Bobcat的对手,甚至将目标瞄准了CULV超低电压处理器市场,当然结果如何还要等待时间去验证。
●高工艺带来低功耗
AMD称Bobcat的总功耗将低于1W,这也就是说Bobcat将可以应用于Atom所能实现的任何领域,其中也包括智能手机。如果AMD愿意,未来Bobcat将进入手机市场也并非不可能,当然这还需要完善的平台及外围设备的支持。
由于Bobcat采用了40nm工艺,而Atom只有45nm,从这方面看Bobcat似乎将比Atom功耗更低,但另一方面由于Bobcat采用了乱序执行架构,因此其功耗将比Atom更高,不过对于目前的笔记本来说,更高的性能显然比低功耗更为重要。
Bulldozer将率先达成八核心
早在今年年初AMD就曾公布了Bulldozer架构的大量细节,下面我们就来回顾一下。
英特尔在设计Nehalem架构时就使用了大量的模组化方案,因此可以方面的面向不同市场推出不同版本的处理器,而AMD此次也采用了相似的设计。
【图】Bulldozer核心架构
●率先达成八核心
AMD的这种模组化设计相当于把一个CPU分成了若干块积木,可以根据需要增加或减少积木的数量,以提供不同水平的性能,AMD将其中每一块积木称作Bulldozer模块。AMD宣称Bulldozer每个内核都是双核心设计,因为它拥有两组独立的整数运算核心,以及一个共享的浮点运算核心,可以同时处理两个线程的任务。AMD的这种双线程设计使其核心尺寸大于单核心,但却小于传统意义上的双核心架构。
●AMD自己的"超线程技术"
如果其他条件相同,AMD Bulldozer这种核心设计的性能将高于单个超线程核心,但却略低于两个单线程核心,另一方面这种设计还有效的节约的核心die的尺寸。AMD宣称Bulldozer集成的第二个整数核心只占整合核心die尺寸的12%,但却可以显著提升整数运算性能。
【图】Bulldozer的模组化设计
●模块化设计实现更多核心
凭借AMD的Bulldozer单元设计,因此未来这种CPU可以整合2到4颗Bulldozer模块,也就是说将很容易制造出八核处理器。由于在操作系统中是用线程数量来识别处理器的核心数量,因此一颗拥有4组Bulldozer的CPU在Windows任务管理器将被识别为8颗核心。
【图】AMD自己的超线程技术
AMD宣称Bulldozer的模组化设计将为未来硬件性能带来可观的增长,因为对于传统的超线程多核处理器来说,强制多线程进入一颗核心必将使其他核心出现空闲状态,而浪费处理器性能,而Bulldozer则很好的解决了这一问题。
另有消息称,Bulldozer将是AMD第一款32nm制程的处理器。
核心重新设计剑指i7
此前当我们第一次见到AMD的Phenom处理器时不免感到失望,因此Phenom并没有像人们期待的那样与英特尔在架构设计上有明显区别,而且Phenom只是AMD K8架构的一次改良,这样造成的结果就是在过去很长一段时间内英特尔都在每MHz性能上领先于AMD,但在这次的Bulldozer核心中,AMD终于向我们期待的那样对核心架构进行了重新设计。
仔细观察英特尔Westmere处理器你会发现它是将4级架构在两个线程之间共享,从这点上看AMD的Bulldozer采用的也是这种原理,Bulldozer的Fetch抓取逻辑单元可以从两个线程中提取指令,并送入解码器中,其中每一个线程都可以独占前端处理器的带宽。
【图】Bulldozer处理器架构
●Bulldozer推土机颠覆传统
在解码阶段,AMD Bulldozer的解码器数量从K7和Phenom II的3个增加到4个,同时AMD使用了X86体系中的分支技术,它类似于英特尔的宏指令融合(Macro-Fusion)可以有效提高处理器效率,在这里AMD终于赶上了英特尔的设计。
【图】Phenom II处理器架构
Bulldozer架构中的4路解码器与三组独立的schedulers相连,其中拥有两组整数运算单元和一组共享浮点运算单元。
Bulldozer中的每一个整数scheduler都采用了统一的设计,在此前Phenom II的架构设计中,AMD为数学运算和地址运算设计了不同的scheduler,而在Bulldozer中AMD对其进行了重新设计。
【图】Bulldozer处理器的模组化设计
每一组scheduler拥有4个端口与两个ALU算术逻辑运算单元和两个AGU地址发生器相连,相比Phenom II,Bulldozer将ALU和AGU同时减少了1个,AMD宣称Bulldozer的架构已经不需要如此多的运算器,而保持ALU的平衡关系可以避免重新设计外围芯片的麻烦(Bulldozer的整数运算核心仍然沿用了K8的设计)。运算单元的减少确实在一定程度上对性能有所影响,但与此同时AMD却可以进一步缩小核心尺寸,另外AMD还承诺由于采用了4路前端处理机制,因此其性能的增长远大于运算器减少的影响。也就是说虽然Bulldozer的单线程整数运算数量较Phenom II降低,但其效率却获得了提升。
Bulldozer的每一个整数核心独享16KB L1缓存,另外有部分L1缓存为浮点运算单元提供数据存储。
或许你会注意到Bulldozer的L1缓存是不是太小了,其实在现在的处理中L2缓存与L1缓存的延迟已经微乎其微,如果AMD提供超大的L1缓存,似乎就背离了Bulldozer的设计初衷。
一个Bulldozer模块中有两个整数schedulers,以及一个浮点schedulers,它允许两个线程同时共享这个浮点schedulers,而每一个整数核心都有独立的运行机制,这就是AMD的超线程技术。
Bulldozer改进的X86架构
Bulldozer相比Phenom II和Opteron处理器采用了更深的管线结构,由于管线数量的增加,Bulldozer将更容易提高频率,AMD称未来Bulldozer处理器的起步频率甚至可以达到现在高频Phenom II的水平。
【图】Bulldozer的核心特点
为了解决深管线架构造成的延迟问题,Bulldozer应用了分支预测技术(Branch Prediction),但其运行机制相比Phenom II却有了明显变化。
在Phenom II中,分支预测机制和指令抓取是顺序运行的,一旦其中一步受阻,那么另一步也必须进入停滞状态,让Fetch抓取到一个分支指令时,预测单元将开始工作以预测下一步操作,然而如果预测不正确将导致整个操作作废,因此这种设计中存在潜在的性能损耗。
Bulldozer中的分支预测技术进行了改进,预测器将对地址队列中的操作进行预测,因此即使出现一个预测错误,还可以填充队列中的其他数据,以避免出现完全的停滞情况。
●预取机制
AMD的Phenom处理器采用了与英特尔类似的预取机制,在Bulldozer核心中,AMD对这种预取机制做了进一步增强,L1和L2缓存可以预取更多的数据,这样可以有效避免缓存数据读取错误带来的影响。不过AMD并没有对这种新的预取机制做详细介绍,笔者猜测Bulldozer将采用3通道甚至4通道DDR3内存以获得更大的数据带宽。、
●自动超频
Bulldozer的每个核心模块可以拥有独立的时钟频率和功耗,这也就是说用户可以完全关闭其中的一个核心,从而降低整个CPU的功耗,另外也可以通过降低频率来节约功耗。另外笔者相信,AMD也会赋予Bulldozer类似于英特尔Turbo Boost的自动超频技术,由于核心频率和功耗是通过模块来控制,因此可以预见AMD的自动超频技术将更自由。
●上市预测
据悉Bobcat处理器将在今年第四季度量产,OEM厂商将在2011年第一季度推出自己的Bobcat主机,但目前AMD仍然没有给出Bulldozer上市的详细时间表,但它必然会在2011年内与用户见面。笔者预测第一款Bulldozer处理器最早也要在2011年第二季度上市,因为面对英特尔的Sandybridge,AMD肯定等不到2011年的下半年,但是第一款Bulldozer处理器可能是面向服务器的产品。
网友评论