POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
查看: 11146|回复: 94
打印 上一主题 下一主题

AMD的希望之星--Barcelona深度剖析

[复制链接]
跳转到指定楼层
1#
发表于 2007-6-17 18:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
AMD的希望之星--Barcelona深度剖析前言

  在过去的几年中,Intel在微处理器的设计上采取了多路径策略。在P6架构上取得成功后,Intel成立了两个研发小组:一组致力于研发NetBurst架构,即Pentium 4的基础;另一小组则开发低成本、低能耗、高集成度的核心,最终造就了Pentium M。(不要将鸡蛋放在同一个篮子里)

 我们都知道故事发展的结果,随着NetBurst的不断改进,Pentium M架构的潜力也在被发掘。“Dothan”则是最早的一次Pentium M架构改进,它对老核心Banias的一些性能缺陷进行了修正。它拥有更高的时钟频率,更大的缓存,并在IPC(每时钟周期实际执行指令数)上也有一定改善。
 Intel的以色列研发中心(IDC)将Dothan架构重组,通过共享同一个二级缓存,而作为原生双核解决方案。从Dothan到Yonah核心的进步比从Banias到Dothan要显著的多,这不仅仅因为Yonah是双核心,还由于在Yonah中有着许多的架构改进。
 Intel采取的下一步举措是我们所熟知的,一次彻底的革命发生在发展历史短暂的Pentium M上。Intel采用了Yonah,并令其更广、更深、拥有更高的效率。在此基础上,随着Core 2处理器破茧而出,Intel从AMD的Athlon 64手中重新夺回了名誉,在众望所归下,再次登上了性能之王的宝座。
  尽管许多人对初代Pentium M核心Banias存在争议,认为其仅仅是P6架构的一个现代化版本。事实上,如今的Core 2和11年前的Pentium Pro完全没有可比性,今天的P6核心是Intel经过漫长的努力及改进而诞生的。
 AMD在过去的几年中显得相当保守,这一切都要从优秀的K7核心取得了成功,成为Intel P6架构的强有力竞争者开始。当Intel的研发小组在忙于研发一个AMD与Intel以往都没有尝试过的新产品时,AMD无力同时进行两个强大的处理器项目。最终方案是改进K7核心,并没有采取冒险的方法去研发一个全新的核心架构。K8核心就是从K7演变而来,其在流水线上有所加深,结构上有所改进,北桥更为完善。K8是AMD在K7之后的一次出色进步。尽管Dothan和Yonah在某些性能是非常相似的,但Core 2 Duo事实上要优于K8。在此不得不承认,AMD最终败在Core 2上的原因之一,在于资本的不足。
 AMD在K8上取得了戏剧化的成功.时至今日,K8架构仍然是吸引大家目光的焦点,有传闻说K9和K10也会取得相同的成绩。而Intel能够赶超AMD的重要一点是,当Intel的Pentium 4小组在遵循着每5年一个微结构变化的周期,为Pentium M小组稳妥地作后盾时,IDC的Pentium M小组每年都在更新架构。在四年的时间里Pentium M架构出现了Banias,Dothan,Yonah和Merom/Conroe,而在同样的时间里,AMD的K8架构一直没有改变。
 如果Pentium M架构像Pentium 4/NetBurst一样继续遵循着5年设计周期的话,那他们将和AMD一样结果。但是Intel有着极其雄厚的实力,足以应付两个小组同时研发微处理器,而其中一个取得了非常好的成绩。AMD也意识到了每几年应该在性能上有一些小的改进,这要比在4-5年间都驻足不前要好。因此Barcelona项目应运而生,尽管在它Intel Core 2 Duo夺得桂冠一年之后才成立,但Barcelona仍将成为AMD的强力反击武器。
 Barcelona其实机会渺茫,它能否成功要看Intel过渡到45nm技术的情况。Intel已公开声明,将对Core 2架构进行升级,核心命名为Penryn,该处理器将在2007年底上市。然而现在看来,要想量产还得等到2008年。如果Intel的45nm Penryn处理器能比预期要晚面市,那么Barcelona若在2007年第三季度成功面世,还是比较适时的。
虚拟化技术的改进

  Barcelona性能上的提升,还表现在更快的虚拟地址转换。在虚拟软件堆栈中,当有多客户操作系统在主机系统管理程序上运行时,就需要新形式的内存地址转换:客户操作系统到主机系统管理程序地址的转换,而每个客户操作系统都有自己独立的内存管理。当前,AMD用软件来控制这个新的地址转换层,这一技术叫做shadow paging。Barcelona提供了一个与shadow paging不同的硬件加速,AMD将其称作Nested Paging。

 想象一下,AMD从客户机和主机的硬件页表中将能够占用75%管理程序时间的shadow pages去除了。转换过的地址被缓存在Barcelona的大容量TLB里以进一步提升性能。AMD指出Barcelona所支持的Nested Paging实现起来非常简单,只要设置一个模式就可以了,对软件商来说非常容易达成。



电源管理

 AMD透露,Barcelona中考虑最多的设计内容就是电源管理。尽管Barcelona四个核心都在同样的电压下工作,但北桥是在一个独立的电压下工作。Barcelona的核心和北桥的电压可以在0.8V-1.4V间单独变化。

 在常规的平台结构上,北桥和处理器工作在各自独立的电压下。这种架构优点在于,两个芯片的电压可以各自独立调整。因此当内存控制器空闲时候,可以降低电压到所需要的水平。在AMD K8中,北桥和CPU核心并不在同一个电压下工作,在Barcelona他们也是独立工作的,这样可以提高电源能效。
 每个独立的处理器核心仍然使用相同的参考电压,但每个核心都有自己的PLL,这样他们可以根据各自的负载状况在不同的时钟频率下工作。而四个核心的电压必须相同,时钟频率可以根据负载相应减少,以在低使用率的情况下减少耗电。这在桌面电脑系统上很有用处,因为大多数桌面系统很少能够让所有的核心工作在100%的负荷下。
 Barcelona每个核心都拥有5个独立的p-states,它们只在时钟速率上有差别。p-states是完全由硬件控制的,不再像K8那样需要一个驱动程序来为其提供支持。AMD也将Barcelona的时钟控制阀门增加,无论是block level还是logic level都要比K8更多,AMD没有就此给出更细节的说明。
 Barcelona的效率提高,加上电源管理的升级,更有时钟控制和65nm制造工艺,这让AMD第一个四核心处理器拥有和目前Opteron处理器相当的发热量。



总结

  Intel的Core 2处理器,性能有着革命性的提升,这是近年来性能提升幅度最大的处理器。Core 2的成功很大程度上是由于它合理的架构,但也不能否认Intel得到了一个合适的时机。

 所有的Conroe,Merom和Woodcrest都必须胜过Intel基于Pentium 4处理器的NetBurst架构。而做到这点对AMD来说很容易,早在2000年发布的处理器就已经占有很大的优势了。没有了来自Intel的竞争,AMD懈怠了许多。尽管K8有着优秀的架构,但也逐渐老化了。K8自从2003年面市以来,在架构上没有根本的变化。结果,AMD给Intel树立了一个较固定目标。在对Pentium M架构的不断改进中,Intel距离自己的Athlon 64杀手越来越近,并最终发布了这样产品--Core 2 Duo。
 去年,并没有神秘的力量使Intel在微处理器设计上领先,Core 2有着合理的架构和非常出色的时序。极其讽刺的是,和当初K7、K8架构的成功一样,同样拥有优秀架构的Core 2也是在其对手得意自满时横空出世的。
 至于现实产品的发布,基于AMD最新架构的第一批产品,将是今年年中上市的新一代Opteron处理器。AMD开始会定位在2.1GHz到2.3GHz,但年底就将有更高的时钟速率产品出现。在桌面处理器上,会有与Barcelona相对应的Agena核心,主频定在2.7-2.9 GHz。而Kuma作为Agena的双核心版本,将在2.0-2.9 GHz。
 Barcelona将会是AMD的一个成功产品,是经历了漫长等待之后的一次架构升级,在性能上将会有很大的改善和提升,特别是在现在K8的不足之处(例如视频编码)。对于Athlon 64 X2 6000+的分析中可以看出,具有着竞争性的价格优势将使AMD逐渐发展到可以与Intel抗衡的状态。在现有的价格上,我们期待Barcelona可以缩小现在AMD和Intel之间的差距。我们可能看不到AMD通过价格战来推动新的核心,但希望AMD可以维护一个有序的竞争市场。
 这里真正要关注的是,Barcelona之后会是什么?我们前面提到,Intel现在的成功是在一个稳定的架构上发展演变而来的。随着多年Pentium M的升级,Intel像滚雪球一样发展壮大,很难停止下来。对于AMD来说,为避免再出现如今的劣势局面,也应该作出相似的努力,这一点是非常必须的。


2#
 楼主| 发表于 2007-6-17 19:00 | 只看该作者
The Chip

  Barcelona是AMD第一款四核心处理器,四个核心将被构建于一个65nm的Die上。与Intel的Kentsfield四核心处理器不同,Barcelona并不是由两个双核Die拼凑而成,所以AMD把它叫做真正意义上的四核心。尽管AMD的方法在技术上有着优势,但我们不能确定这一优势是否可以在实际的处理器性能中能显现出来。

 Barcelona以AMD的65nm制造工艺为基础,有着比K8更为复杂的设计,需要总共11层的金属层。而K8需要9层,Core 2则只需要8层。在过去的几年中,AMD在同代处理器中的金属层一向比Intel多,所以Barcelona也不例外。更多的金属层使制造更为复杂,但对终端用户来说,区别不大。
 
  Barcelona在一个Die上有着四颗核心,还有一个2 MB的三级缓存,总共集成了4.63亿个晶体管,相比Kentsiefield的5.82亿晶体管要少1.19亿。晶体管越少,缓存容量就越小,每个Barcelona核心有128 KB一级缓存和512 KB二级缓存,四个核心共享2 MB三级缓存,所以一个Die上共有4.5 MB缓存。而由两个Die组成的Kentsfield,有两个核心,每个核心有64 KB一级缓存和4 MB二级缓存,一个Kentsfield处理器在总共有8.25 MB缓存,比Barcelona多80%,所以在晶体管总数量上要多25.6%。
 同时,Barcelona的晶体管数目也比一个四核心的K8处理器要多得多。我们估计一个没有缓存的Athlon 64 X2双核心处理器晶体管数量大约是0.94亿,Barcelona是2.47亿。就算将其晶体管数量乘2(以达到4颗核心)也不及到Barcelona的数量。注意,将0.94亿这个数字乘以2,还是不能和Barcelona的一个On-Die北桥相比。其实,在Barcelona中,除了多核心和缓存应用外,为了架构上的增强还增加了6000万个晶体管(每核心1500万)。

SSE128

在Barcelona上的许多“主要”改进都是由一个意义重大的变革而引发的,AMD称之为SSE128。在K8架构中,AMD可以并行处理两个SSE操作,而其SSE执行单元只有64-bits宽。对于128-bit的SSE操作,K8必须将其分为两个64-bit来完成。这也就是说,当一个128-bit SSE指令被取出时,它首先解码为两个micro-ops(每个都是64-bit半指令),然后对于单个的指令再进行一次特别的解码。Barcelona将SSE操作从64-bits扩展为128-bits,所以现在128-bit SSE操作不需要分为两个64-bit来处理。这也意味着可以用单个的micro-op来处理128-bit  SSE指令,浮点调度程序可以更好的应对128-bit SSE任务。

 SSE执行带宽的增加,在核心中引起了其他一些变化。自从在执行128-bit SSE指令时可以得到更高的带宽后,AMD又发现了新的瓶颈:指令读取带宽。这些128-bit SSE指令都比较大,为了最大化并行解码的数量,Barcelona核心现在可以每周期读取32-bytes,而K8为16-bytes。32B指令读取能力不仅对SSE代码有益,对整数代码也有好处。通常,高并行处理指令数会以显著性能提升的形式表现出来。

 现在你可以读取和解码更多的指令,那就还需要为执行核心提供更多的数据。所以AMD对一级数据缓存和Barcelona的SSE寄存器间的接口进行了扩展。Barcelona现在可以在一级数据缓存中每周期运行双128-bit SSE负载,而在K8里是双64-bit负载。AMD接着扩展了二级缓存和内存控制器之间的接口,现在每个周期可以传输128-bits,使上述改进再次平衡。

 SSE128改进的顶峰,类似于从Yonah到Merom的改变。在Conroe/Merom之前,Yonah在FP/SSE性能上不能和K8相比。在一般应用上Yonah和K8基本一样,但在用到视频编码的时候,专业的3D和游戏的表现上,就明显不能与K8相比了。

 Yonah的SSE性能有过一系列的改进,但直到Intel的Core 2处理器出现才使得Intel真正在视频编码的测试上胜过K8。不论这些改进是否是因为Core 2中提高了单周期SSE吞吐量或者更宽的前端,还是二者兼而有之,编码性能是AMD如今的心中隐痛,而SSE128的改进可以对此有些帮助。



内核调整


  Barcelona的诸多进步中,SSE128还只是冰山一角。Barcelona性能提升的清单中,第一个就是分支预测。
  
  一般而言,CPU的分支预测精度决定了你的设计可以作到多宽和多深。在预测前的误报指令平均数,决定了可以运行指令的数量,以此也控制了可以有多少个执行单元保持反馈。K8的分支预测非常好,并且为其架构进行了优化,在Intel Pentium M和Pentium 4上的一些优点,AMD也可以从中得到借鉴。

 Barcelona增加了512条间接分支预测,用来预测间接分支。一个间接分支就是一个由内存地址指向分支对象的位置。换句话说,一个分支有着多个对象,分支并没有直接指向一个分支指令里的标签,而是由CPU向内存位置发送了间接分支指令,其中包含了要到达的指令地址。误预测分支数量越少,处理器的效率越高(这样可以降低能耗)。出于这一考虑,Intel在Pentium M处理器上增加了间接分支预测。Intel Prescott核心处理器也在NetBurst架构上用到间接分支预测,来弥补性能的不足。

 在Prescott中,仅仅增加间接分支预测就可以在SPEC CPU2000测试中降低12%的误报。而AMD和Intel在误报算法上具体有什么不同,并没有公开,我们期待当间接分支普及的时候,处理器性能会有很大的提升。在SPEC CPU2000的253.perlbmk测试中,Prescott误报分支的减少是非常显著的,达到了55%。对于Barcelona,越少的分支误报意味着越高的整体IPC和越高的效率。尽管AMD不用去像Intel那样为Prescott“深不可测”的流水线担忧,但效率的改进还是有意义的。

 Barcelona中的改进不仅仅是一个间接分支预测,新核心中的返回栈容量是K8的两倍。在很深层的呼叫链中,比如编码调用许多子程序(例如递归函数),CPU为持续跟踪来路会彻底用完所有的空间,一旦开始丢失返回地址,将失去预报分支的能力。Barcelona将返回栈容量翻倍来缓解这一问题。这样的改进一般在制造CPU时,通过软件模仿来实现,所以我们询问AMD在Barcelona中使用了什么样的软件。AMD没有给我们具体的说明,而是说,返回栈大小的改进,是根据“大软件商”的要求来实现的。(盖茨同学?)

 比K8分支预测更进步的最后一项改进是通过正常的途径——Barcelona比其前辈跟踪了更多的分支。在分支预测上没有什么神秘的技术:一个处理器监视处理分支就是依靠历史数据,历史数据保存的越多,分支预测就越准确。这就像象棋游戏将大量棋谱、路数保存在内,让电脑选择合适招数应对。K8设计为130nm的制造工艺,最初的Barcelona设计为65nm,AMD有着足够的Die空间来追踪更多的分支历史数据。







边带堆栈优化器


  Intel的初代Pentium M引入了一个Intel称之为专用堆栈管理器的功能。顾名思义,专用堆栈管理器用来处理所有x86堆栈操作(也就是push、pop、call、return)。堆栈管理器的用途就是将这些在代码中经常被函数调用的堆栈操作与其他发往CPU的x86指令流分开。专用堆栈管理器将完成解码和“执行”这些操作,这样他们就不会阻塞处理器的解码和在流水线中滞后执行单元。Intel卸下了一些分离硬件的操作,以“扩展”核心。

 在Barcelona中,AMD引入了类似的技术,称为边带堆栈优化器。堆栈指令不再通过三方解码器,堆栈操作也不再通过整数执行单元,在最少的成本上有效扩展了Barcelon。边带堆栈优化器,就象Intel的专用堆栈管理器一样,使用自己的加法器来处理所有的堆栈操作。这一小小的改进可以使整体性能有所提高,值得AMD去实现这个功能。

更快的加载
 观察Athlon 64和Intel Core 2处理器的性能,我们很容易理解为什么Intel在应用上有着更强的性能,因为大量使用了SSE。但AMD使用了集成在Die中的内存控制器,为什么没有在游戏和商务应用上更出色呢?Core 2的大容量二级缓存和强大的预取能力已经可以胜过AMD的On-Die内存控制器了吗?

 Intel的Core微架构中,一个主要的优势就是它拥有允许load指令绕过先前的load和store指令的能力。平均来说,程序中大约有1/3的指令是以load来结束的,那么如果能提高加载性能,就能够在整体的性能上有所提升。在Intel Core微架构上,loads是可以被重新排列的,这样可以确保指令根据loads来读取所需数据,不需要等待内存访问。

 Core还允许loads排在stores之前,这在以前是不允许的,因为可能会导致刚加载的数据使之前存储的数据无效。Intel认为在load后接着需要store的可能性很小,大概只有1-2%,所以在store前要求load时,使用一个适当精确的预测器你就可以进行正确地估算。Intel Core 2处理器的特点是逻辑预测,看store和load是否共享内存地址。如果预测器发现它们并未共享内存地址,那么就允许在store之前进行load。如果过万一预测器不准,那么load必须重新完成(与处理器误预测分支相类似)。

 AMD K8架构与上述不同,在其他loads和stores之前不允许次序颠倒的load命令。所以,就算没有On-Die内存控制器,Intel也可以做到在一些内存操作上比AMD更快。不过Barcelona解决了这一问题,采用的是与INTEL Core 2处理器上相类似的解决方案。

 Barcelona现在可以像Core 2处理器那样在其他loads之前进行loads重新排序,还可以在load和store不共享内存地址时,将loads在其他stores之前执行。Intel使用了预测器来测定load和store是否共享地址,而AMD在这一点上就比较保守。Barcelona需要等待store地址计算出来后,再确定是否将load提前执行。Barcelona采用这种方式的好处是绝对不会出错,也就不存在误预报的可能性。AMD的设计人员本来是想向Intel那样用一个预测器,但发现那样的设计并不能得到性能的提升。因为AMD在每个时钟上可以产生三个store地址,它有三个地址生成单元(Address Generation Units),而Intel只有一个。所以,AMD选择先计算store地址再进行判断的方法并不会造成性能下降,非常符合其设计。在该方面,应该说AMD占有一定优势。

 在Barcelona中乱序加载处理的改进,将证明他们比Core 2更为有效。AMD以往在Int/FP程序上不能做任何的re-ordering load,而Core Duo在一定范围内可以进行re-ordering。







更多的改进


  Translation Lookaside Buffers简称为TLBs,可以称作旁路转换缓冲或者页表缓冲,它在系统中用来储存虚拟地址到物理地址的转换图表。TLB的命中率一般十分高,但随着程序越来越大,就产生了更高的内存需求量,微处理器设计人员必须修正TLB的容量来适应需求。在K8中,AMD在K7的基础上增加了TLB的容量,在Barcelona中,AMD又一次采用了这一措施。

 Barcelona的TLB比K8要稍大一些,不过它们都支持1G的页面,这在数据库应用和虚拟负载方面很实用。AMD在Barcelona中还引入了128条2M二级TLB,有助于处理使用更大页面的新程序。Barcelona中对TLB的改进对于桌面应用没有实际的影响,但在有着较大的内存需求量的服务器应用上还是有所改善的。

 当Intel引入第二代Pentium M--Dothan的时候,它的一个主要改进就是更低的integer divide latency。在那时这一细节是没什么价值的,如今AMD表示要花精力去减少Barcelona的integer divide latency。我们不能确定AMD是否会以类似Dothan所采用的方式来实现,但可以确定在实际的应用中不能期待它能带来显著的性能提升。这些调整只能综合在一起对整体的性能有些提高,不是说某一个改进就可以将性能翻倍。

 为了在不增加众多数量晶体管的情况下提升Barcelona,AMD将几个微代码指令注入fastpath解码指令当中。一个微代码指令将花很长时间来解码,要比通过核心里的fastpath解码器的时间要长的多。CALL和RET-Imm指令现在已经作为fastpath而存在,它们为Barcelona的边带堆栈优化做出了贡献。MOVs从SSE寄存器到整形寄存器也已经经过fastpath处理。
  
  在“指令”这个话题中,AMD还介绍了一些新的ISA扩展。包含有两个新的二进制指令:LZCNT和POPCNT。Leading Zero Count(LZCNT)将一个OP中的前导零进行记数,而Pop Count将OP中的前导1进行记数,两个指令都是用于密码应用的。AMD还引入了四个新的SSE扩展:EXTRQ/INSERTQ, MOVNTSD/MOVNTSS。前两个扩展是将操作结合到一个单个的指令中,后两个是梯状流存储器(可以以梯形操作进行存储)。在Penryn和其他未来的Intel处理器中,我们也会看到类似的指令。

[ 本帖最后由 ilovejulia 于 2007-6-17 19:02 编辑 ]
回复 支持 反对

使用道具 举报

3#
 楼主| 发表于 2007-6-17 19:01 | 只看该作者
更快的内存控制器


  当AMD集成了On-Die内存控制器时,就意味着每当有新的AMD处理器出现的时候,在内存控制器功能上都会有一些增强。在Barcelona上,内存的性能有着切实的提升。

 Intel的FB-DIMM架构用于Xeon服务器系统,主要原因是可以对高级内存缓冲(advanced memory buffer,AMB)同时执行读写命令。使用普通DDR2内存,你只能够执行读/写其中的一项任务,在两种操作之间切换是有时间上的损耗的。如果读写命令很随机地混合在一起,那么两者之间的切换就会非常消耗时间,而将所有的读命令都顺序执行,然后再切换到写命令,这样就会快很多。K8的内存控制器就是先执行读命令,再执行写的命令。
  
  在Barcelona中,内存控制器更为智能化。当写命令一旦出现,先不执行而是存在缓存里,当缓存达到一个事先设定的阈值时,控制器就将写命令顺序执行。这就避免了花费大量的读/写切换时间,增加了带宽并减少了响应时间。

 K8核心(Socket-940/939/AM2)具有一个单独的128-bit内存控制器。而在Barcelona中,AMD将内存控制器分成两个独立的64-bit控制器,每个控制器可以独立运行,这样将在效率上有所提高。特别是当四核运行的时候,每个核心都可以工作在独立的线程,并有各自的内存访问模式。

 Barcelona的北桥也能够处理比以前更高的带宽。它有着更大缓存,提供更高的带宽利用率,而且北桥本身也为以后的内存技术(比如DDR3)做了准备。我们期待AMD将会在Barcelona后的一到两个版本中变更内存技术,但新的核心刚出来时肯定也要支持DDR2。

新的预取器(Prefetcher)


  预取技术在系统中的许多领域都有应用,它是由许多不同部分组成的。当nVIDIA推出了nForce2芯片后,强调的是它的智能预取器的运用范围非常广,可以使用在当时的128-bit内存总线上。最近Intel推出的Core 2处理器系列,其每个核心都有三个预取器,彻底减少了所能察觉到的内存响应时间。

 AMD的K8处理器每核心有两个预取器,一个负责指令,一个负责数据。Barcelona核心的预取器数目维持不变,但有了改进。最大的变化就是数据预取器现在能够直接将数据装入一级数据缓存,而在K8中是传到二级缓存。AMD观察了核心预取器的准确度并发现它们工作十分正常,所以将数据预取进低响应时间的一级缓存,避免造成二级缓存的浪费。AMD还增加了一级指令缓存预取器的适应能力。

 咋看上去,Intel Core 2中的预取器比AMD的Barcelona更好,至少在数量上是如此。记得在Intel Core 2处理器中,每核心有两个数据预取器和一个指令预取器,再加上另外两个二级缓存预取器,所有的安排都非常合理,不会侵蚀掉“需要的”带宽。然而,我们必须记住Intel需要这些预取器来弥补处理器到主内存之间的延迟,因为Intel并没有在CPU中继承内存控制器。从CPU的观点来看,Intel的优势是很明显的,但从平台角度出发,很难决定真正的赢家是谁。

 每个Barcelona核心都有着自己的数据预取器和指令预取器,但最大的改进是增加了一个新的预取器:DRAM预取器,它就在内存控制器里。这个首次出现的DRAM预取器负责所有的内存请求,并试着将它认为将来有用的数据选出来。这个预取器会满足四个独立核心的需要,它为整个芯片的性能提升提供了帮助。DRAM预取器并不将数据放在二级/三级缓存中,而是存放在自己的缓存里以避免浪费其他缓存的空间。这个缓存大约有20-30个cache lines,正好与前面提到的Barcelona的write bursting缓存大小相同。







晶体管的堆砌品--三级缓存


  AMD在缓存的竞争中落后Intel很长时间了,但这只是和制造能力有关。AMD也明白无法和Intel的能力相抗衡,无法在短期内实现在更小的处理器上做出更多的晶体管。所以退而求其次,集成一个内存控制器以应对。K8的On-Die内存控制器减少了对大缓存的需要,所以现在的Athlon 64 X2处理器也只有每核心512 KB的二级缓存,而Intel早在2002年推出的Northwood核心就拥有512 KB二级缓存。

 现如今,两个Core 2核心共享4 MB的二级缓存,而AMD顶级产品的二级缓存仅有这个数据的一半。随着Barcelona的出现,这个差距还会更大,每个核心只有512KB二级缓存,四核心的Barcelona芯片一共有2 MB二级缓存。而四核心的Intel Kentsfield处理器已经拥有8 MB的二级缓存。今年年底,Intel的Penryn将会配备12 MB的二级缓存。

 为了将Die尺寸大小保持在可控制范围内,Barcelona的每个核心都只有128 KB一级缓存和512 KB二级缓存,这和多数基于主流K8架构的产品相同。然而,多线程应用的时代要求多核心处理器能够拥有一些共享高速内存,以保证处理器拥有最高的效率。



 由于四核共同分享一个Die,AMD不想因引入大容量共享二级缓存使得设计复杂化。取而代之的是,它采用了标准的K8缓存结构,但增加了一个共享三级缓存。在65nm的产品中,一个四核心Barcelona处理器将有一个2 MB的三级缓存。

 Barcelona中是这样分层的:二级缓存充满了一级缓存“看不上”的数据。当某个缓存满了以后,目前不用的数据将被“驱逐”出去,以接纳缓存控制器所“看中”的新数据。在victim cache结构中,被“驱逐”的的数据将被放在一个称作“victim缓存”的存储区域里,而不是直接从缓存中全部删除。如果这些数据将被使用,那么缓存控制器只要把它们从victim缓存中取出就可以了,这比从主内存中读取要快的多。对于Barcelona的一级缓存来说,二级缓存就是它的victim缓存,从一级缓存中驱逐出来的数据,就存放在二级缓存里面。

 新加入的三级缓存被作为二级缓存的victim缓存,所以当二级缓存装满之后,被驱逐的数据就传到容量更大的一直待命的三级缓存中。支配三级缓存操作的运算规则是为了向多核心提供数据而设计的。若处理器读取了一些代码,那么将会在三级缓存中留一个备份,因为可能这些代码会被四个核心共同使用。纯粹的数据加载就需要一个相对独立的过程,缓存控制器会检查历史数据,如果这个数据曾经被共享过,那么L3 cache中就会保留备份,否则就无效。

 一级缓存和二级缓存的设计没有变化,它们仍然分别是2路和16路联合。然而新的三级缓存是32路联合。其设计目的是要在比竞争对手小得多的缓存上增加命中率。



虚拟化技术的改进


  Barcelona性能上的提升,还表现在更快的虚拟地址转换。在虚拟软件堆栈中,当有多客户操作系统在主机系统管理程序上运行时,就需要新形式的内存地址转换:客户操作系统到主机系统管理程序地址的转换,而每个客户操作系统都有自己独立的内存管理。当前,AMD用软件来控制这个新的地址转换层,这一技术叫做shadow paging。Barcelona提供了一个与shadow paging不同的硬件加速,AMD将其称作Nested Paging。

 想象一下,AMD从客户机和主机的硬件页表中将能够占用75%管理程序时间的shadow pages去除了。转换过的地址被缓存在Barcelona的大容量TLB里以进一步提升性能。AMD指出Barcelona所支持的Nested Paging实现起来非常简单,只要设置一个模式就可以了,对软件商来说非常容易达成。







电源管理


 AMD透露,Barcelona中考虑最多的设计内容就是电源管理。尽管Barcelona四个核心都在同样的电压下工作,但北桥是在一个独立的电压下工作。Barcelona的核心和北桥的电压可以在0.8V-1.4V间单独变化。

 在常规的平台结构上,北桥和处理器工作在各自独立的电压下。这种架构优点在于,两个芯片的电压可以各自独立调整。因此当内存控制器空闲时候,可以降低电压到所需要的水平。在AMD K8中,北桥和CPU核心并不在同一个电压下工作,在Barcelona他们也是独立工作的,这样可以提高电源能效。

 每个独立的处理器核心仍然使用相同的参考电压,但每个核心都有自己的PLL,这样他们可以根据各自的负载状况在不同的时钟频率下工作。而四个核心的电压必须相同,时钟频率可以根据负载相应减少,以在低使用率的情况下减少耗电。这在桌面电脑系统上很有用处,因为大多数桌面系统很少能够让所有的核心工作在100%的负荷下。

 Barcelona每个核心都拥有5个独立的p-states,它们只在时钟速率上有差别。p-states是完全由硬件控制的,不再像K8那样需要一个驱动程序来为其提供支持。AMD也将Barcelona的时钟控制阀门增加,无论是block level还是logic level都要比K8更多,AMD没有就此给出更细节的说明。

 Barcelona的效率提高,加上电源管理的升级,更有时钟控制和65nm制造工艺,这让AMD第一个四核心处理器拥有和目前Opteron处理器相当的发热量。







总结


  Intel的Core 2处理器,性能有着革命性的提升,这是近年来性能提升幅度最大的处理器。Core 2的成功很大程度上是由于它合理的架构,但也不能否认Intel得到了一个合适的时机。

 所有的Conroe,Merom和Woodcrest都必须胜过Intel基于Pentium 4处理器的NetBurst架构。而做到这点对AMD来说很容易,早在2000年发布的处理器就已经占有很大的优势了。没有了来自Intel的竞争,AMD懈怠了许多。尽管K8有着优秀的架构,但也逐渐老化了。K8自从2003年面市以来,在架构上没有根本的变化。结果,AMD给Intel树立了一个较固定目标。在对Pentium M架构的不断改进中,Intel距离自己的Athlon 64杀手越来越近,并最终发布了这样产品--Core 2 Duo。

 去年,并没有神秘的力量使Intel在微处理器设计上领先,Core 2有着合理的架构和非常出色的时序。极其讽刺的是,和当初K7、K8架构的成功一样,同样拥有优秀架构的Core 2也是在其对手得意自满时横空出世的。

 至于现实产品的发布,基于AMD最新架构的第一批产品,将是今年年中上市的新一代Opteron处理器。AMD开始会定位在2.1GHz到2.3GHz,但年底就将有更高的时钟速率产品出现。在桌面处理器上,会有与Barcelona相对应的Agena核心,主频定在2.7-2.9 GHz。而Kuma作为Agena的双核心版本,将在2.0-2.9 GHz。

 Barcelona将会是AMD的一个成功产品,是经历了漫长等待之后的一次架构升级,在性能上将会有很大的改善和提升,特别是在现在K8的不足之处(例如视频编码)。对于Athlon 64 X2 6000+的分析中可以看出,具有着竞争性的价格优势将使AMD逐渐发展到可以与Intel抗衡的状态。在现有的价格上,我们期待Barcelona可以缩小现在AMD和Intel之间的差距。我们可能看不到AMD通过价格战来推动新的核心,但希望AMD可以维护一个有序的竞争市场。

 这里真正要关注的是,Barcelona之后会是什么?我们前面提到,Intel现在的成功是在一个稳定的架构上发展演变而来的。随着多年Pentium M的升级,Intel像滚雪球一样发展壮大,很难停止下来。对于AMD来说,为避免再出现如今的劣势局面,也应该作出相似的努力,这一点是非常必须的。

[ 本帖最后由 ilovejulia 于 2007-6-17 19:03 编辑 ]
回复 支持 反对

使用道具 举报

4#
发表于 2007-6-17 19:05 | 只看该作者
AMD必须整合整个平台,INTEL可以多线盈利,CPU利润拉低,一样可以在芯片组赚黑心钱,原来AMD优势技术闪存业务也给INTEL弄得亏损,这些得好好调整
回复 支持 反对

使用道具 举报

5#
发表于 2007-6-17 19:06 | 只看该作者
Barcelona~ 你是AMD希望的火星!
另外,居然说AMD 2000年凭K7就领先了?文章还真是无耻!
即使K8的时候,不管是Dothan还是Yonah,也没少让AMD,满地找牙的~
回复 支持 反对

使用道具 举报

6#
发表于 2007-6-17 19:17 | 只看该作者
先抢个板凳,慢慢看
回复 支持 反对

使用道具 举报

7#
发表于 2007-6-17 19:19 | 只看该作者
AMD的落后就在于它的骄傲自满,一朝得志,就横的不知道天高地厚了。
这回让INTEL打回原型了,INTEL吃了大亏,不太会让历史重演了。
回复 支持 反对

使用道具 举报

8#
发表于 2007-6-17 19:21 | 只看该作者
录音带……

5,6月份有测试放出,不过看来一个cinebench还是说服力不够啊:p

[ 本帖最后由 the_god_of_pig 于 2007-6-17 19:28 编辑 ]
回复 支持 反对

使用道具 举报

9#
发表于 2007-6-17 19:52 | 只看该作者

我是墙头草

2边倒(_( 哪个好用那个

[ 本帖最后由 系统崩溃 于 2007-6-17 19:53 编辑 ]
回复 支持 反对

使用道具 举报

10#
发表于 2007-6-17 20:14 | 只看该作者
原帖由 the_god_of_pig 于 2007-6-17 19:21 发表
录音带……

5,6月份有测试放出,不过看来一个cinebench还是说服力不够啊:p

还有一个pov-ray,不过K10的表现更差。
回复 支持 反对

使用道具 举报

cogitata 该用户已被删除
11#
发表于 2007-6-17 20:37 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

12#
发表于 2007-6-17 21:48 | 只看该作者
至少我们中国还不会做这么高难度的东西
回复 支持 反对

使用道具 举报

13#
 楼主| 发表于 2007-6-17 21:49 | 只看该作者
龙芯  才赛扬 800MHZ的水平
回复 支持 反对

使用道具 举报

14#
 楼主| 发表于 2007-6-17 21:50 | 只看该作者
龙芯  才赛扬 800MHZ的水平
回复 支持 反对

使用道具 举报

15#
发表于 2007-6-17 21:52 | 只看该作者
原帖由 itany 于 2007-6-17 19:06 发表
Barcelona~ 你是AMD希望的火星!
另外,居然说AMD 2000年凭K7就领先了?文章还真是无耻!
即使K8的时候,不管是Dothan还是Yonah,也没少让AMD,满地找牙的~


你直接点说1G的K7不如P3 733行了,还有Yonah也把X2打的满地找牙,对吧
回复 支持 反对

使用道具 举报

16#
发表于 2007-6-17 22:12 | 只看该作者
:blink: 想当年300×9的3000+炒到16××的时代,还好忍住没买~
回复 支持 反对

使用道具 举报

17#
发表于 2007-6-17 22:18 | 只看该作者
这个帖子很老了

给我第三方评测, 其他免谈 :a)
回复 支持 反对

使用道具 举报

18#
发表于 2007-6-17 22:34 | 只看该作者
给我在地球上发布,今年以内,其他免谈
回复 支持 反对

使用道具 举报

19#
发表于 2007-6-17 23:56 | 只看该作者
原帖由 elisha 于 2007-6-17 22:34 发表
给我在地球上发布,今年以内,其他免谈

哈哈。。。希望大啊。。。2407
回复 支持 反对

使用道具 举报

20#
发表于 2007-6-18 02:24 | 只看该作者
原帖由 89度热水 于 2007-6-17 21:52 发表


你直接点说1G的K7不如P3 733行了,还有Yonah也把X2打的满地找牙,对吧


当然是1G的铜矿 VS  1G的雷鸟了~
凭什么P3 733呢?
Yonah在某些项目上同频是完全可以让*2满地找牙的~ 综合性能也不落下风
我们假设同样在桌面应用的话,Yonah的频率也不会低于*2~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

广告投放或合作|网站地图|处罚通告|

GMT+8, 2025-7-28 10:13

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

快速回复 返回顶部 返回列表