今天是个好日子,一个对于全球AMD粉丝都激动非常的日子。正是今天,AMD将在中国首发最新一代架构的皓龙处理器产品,也就是我们熟知的Bulldozer——推土机。回想上一次AMD在国内高调发布Barcelona(巴塞罗那),已经过去了整整四个年头。在这四年里,不管你承认还是不承认,AMD始终难以在处理器,特别是企业级处理器中赢得足够的赞誉,一直被老对手英特尔所压制。
环顾这四年的路程,英特尔沿着Tick-Tock战略发布了一个又一个的处理器,比如我们熟知的Nehalem-EP、Westmere-EP、Nehalem-EX和最新的E3、E7等产品。AMD方面,继Barcelona(巴塞罗那)之后,Shanghai(上海)、Istanbul(伊斯坦布尔)、Magny-Cours(马尼库尔)等产品也纷纷面世。看起来两家似乎是旗鼓相当,但就架构来说,英特尔经历了2次大的革新,才到了最新一代的SandyBridge;而AMD方面继K8之后过渡到了K10,后者仅仅是K8的补充和改良。
从市场份额、从品牌影响力、从用户满意度来说,AMD的确是太需要一款能够证明自己实力的产品,市场也需要AMD能够尽快的推出一款具备与英特尔抗衡的产品。正是在这样的情况下,AMD Bulldozer出现了,这款产品在架构上进行了非常大的调整,从而也被用户和媒体寄予厚望,甚至有人将其称为“AMD的复仇之剑”。如今,这把剑终于出鞘了,究竟是披荆斩棘还是两败俱伤,只有等待时间来检验。
当然,AMD也并非是一无是处,起码在核心数量的比拼上,AMD一直遥遥领先于竞争对手。在巴塞罗那的时代,大家都是4核心的产品,甚至英特尔那时候的4个核心还并非是原生的。而在伊斯坦布尔的时代,英特尔更新到了Nehalem-EP的最新架构,而AMD则领先一步的推出的6核心的伊斯坦布尔。当英特尔在Westmere-EP中做到了6核心之时,AMD却在马尼库尔中将核心数量提升了1倍,达到了12核心。如今,AMD Bulldozer更是具备了多达16个物理核心。在这一点上,AMD确实是值得骄傲的。
实现多核心并非是像粘卡片那么简单,这其中需要更复杂的工艺和全新的架构设计,而多核心的出现恰好对应了当下虚拟化应用的蓬勃发展。相比超线程或者多线程技术来说,实实在在的物理核心更能体现出虚拟化应用的优势,这也是为什么AMD马尼库尔大受欢迎的原因。
今天,借着AMD发布新一代皓龙Bulldozer的时机,我们也将回顾AMD这四年来的风雨历程,重新审视那些陪伴我们成长的AMD处理器。尽管它们如今已经是英雄迟暮或步履蹒跚,但毕竟它们曾为皓龙处理器的发展增添了浓墨重彩的一笔。
#p# 2007年9月10日,AMD在中国北京发布了皓龙Barcelona处理器,并将本次发布会命名为——真芯可鉴 四核无双。所谓“真芯可鉴 四核无双”,正是对应了那一代的英特尔至强E5300、E5400系列。因为在那时,英特尔至强还处于双核“胶水”的状态,这正是AMD所要竭力宣传原生四核心的原因所在。正是从四核新开始,处理器才进入了多核心的竞争,原本的主频竞争正式谢幕。不过让AMD没有想到的时候,几年之后,自己也会被“胶水”这个名字所折磨。
每瓦特性能是关键
性能和功耗已经成为芯片厂商在对其产品进行准确定位的两大关键因素。据了解,Bacelona将是业界首次在同一硅片上集成4个计算处理核心的x86处理器,采用65nm绝缘硅工艺制造,基于AMD创新的直连架构,内置增强内存控制器,集成了2MB三级缓存,加上采用了增强的CPU内核,从而大大改进了内核的总体效率和性能。
巴塞罗那处理器首次采用2MB三级缓存,与内存控制器结合的2MB L3缓存可以增加处理器的性能,巴塞罗那每核有独立的L1缓存和L2缓存,然后所有的核共同分享三级缓存。这样,在工作负载非常大的情况下,就有更大的可拓展性。在AMD的K10架构中,如果一个核上面跑的应用占据了整个的L3缓存,那么剩下的三个核还可以使用各自的一级和二级缓存为其他应用服务。这种做法,从性能以及从拓展性方面来讲更好一些。
在节能方面,Barcelona引入了增强的Power NOW、CoolCore电源管理等技术,从而能够实现其性能既比双核高,而功耗和散热保持不变,达到更高的每瓦特性能。
增强的虚拟化技术
尽管如今虚拟化技术已经成为2011年度的热门词汇,但是在2007年,虚拟化这个名词还仅限于趋势型的概念。在Barcelona中,AMD引入代号为Nested Paging 的虚拟化技术Rapid Virtualization Indexing(RVI)。RVI可以让虚拟机与内存直接进行对话,无须经过其他中间环节,从而大大提升虚拟机的性能,跟上一代双核产品相比,带有RVI功能的Barcelona可将性能提升79%。
企业用户需要稳定平台
一直以来AMD尽量让平台保持三到四年的延续期。比如在2003年推出的第一代皓龙处理器平台(支持DDR内存)上,AMD先后推出了130nm的单核产品和90nm的双核产品;到2006年下半年,AMD开始推出支持DDR2的Rev F服务器新平台,在这第二代平台上,AMD会推出三代兼容这一平台的产品,分别是90nm的双核产品(2006年8月已推出)、65nm的四核产品(2007年9月推出,即Barcelona)以及于2008年推出的45nm四核产品(代号Shanghai)。
回顾总结:AMD皓龙Barcelona的发布是除本次Bulldozer之外AMD为数不多高调发布产品的一次。但是从产品的实际反馈上,B2版本的Bug问题在发布之初就收到了广泛的质疑,这也让一些OEM厂商备受打击。2008年初,在B3步进版本的Bug修复之后,巴塞罗那成为了当时AMD的主打型号。不过仅仅在几个月之后,新产品Shanghai的推出就改过了巴塞罗那的风头。应该说,巴塞罗那虽然命运多舛,但在出生之初就已经完成了自己的使命——正式向世界宣告AMD皓龙Barcelona是唯一的原生4核心处理器。
#p# 2008年11月13日,AMD在美国正式发布了代号为"Shanghai"、“上海”的最新一代处理器,这也是目前为止唯一以中国地名命名的AMD处理器。相比巴塞罗那来说,上海的发布非常低调,这或许是吸取了巴塞罗那的经验,或许AMD也认为只要产品好,采用怎么样的发布形式都是次要的;这就好比现在高调结婚的某某明星,上千万的巨额费用也不能保证他们的婚姻万无一失。相比巴塞罗那,上海所作的更多的是改进,而非革命。
AMD Shanghai/上海,采用了45nm工艺制程(这也是AMD CPU第一次采用45nm),集成了7.05亿晶体管,拥有共享6M的三级缓存,增强的双通道内存控制器可以同时支持DDR2内存和DDR3内存,内置了4条Hyper Transport总线以支持组建大规模并行系统,“上海”还支持AMD的快速虚拟化索引(RVI)的AMD-V虚拟化技术,同时具备48位物理寻址能力,寻址空间可以达到(256TB)。“上海”还兼容Socket F(1207),旧有的系统只需要升级BIOS就可以支持新的CPU,从而可以保护用户的投资。
作为AMD从65nm工艺转向45nm工艺的首款产品,AMD Shanghai在架构方面和上一代处理器Barcelona很相似,其实,处理器新架构的研发无不耗资甚巨,因此一个长生命力的架构对整个生态圈都是有利的,例如K8架构就一直沿用到现在,NetBurst架构也顽强地存活了近十年。如此这般,AMD Shanghai的架构也是在上一代产品上进行的改进,使用更先进的工艺制程,提高性能并提供新的功能。
仔细看,上海的架构(上)与巴塞罗那的架构(下),是不是很有相似之处?
在同样的价格下,买到的Shanghai处理器的频率要比Barcelona要高,并且具有更强的性能
AMD 45nm Shanghai Opteron 2378实物照
概括起来,AMD上海的改进有:
1、45nm沉浸式光刻技术,更低的功耗和更高的主频
2、更大的三级高速缓存,容量达到了6MB(上一代是2MB)
3、内存控制器的更新:支持DDR2-800, 比上一代DDR2-667的内存带宽提高10%。
4、AMD内存优化技术,增强的预取技术,2倍的核心探测带宽
5、支持HyperTransport 3.0总线,带宽增加到17.6GB/s(2.2GHz HT3,预计在2009年春)
6、增强的虚拟化技术:RVI,提升虚拟机切换速度并提供虚拟化迁移功能
回顾点评:Shanghai的重点放在提升制程方面而不是架构方面,AMD Shanghai的指导思想就是让客户可以用很低的成本从Barcelona平滑过渡到Shanghai,为了保护用户的投资,Shanghai还采用了和Barcelona一样的Socket F 1207插槽。由于包括TLB问题在内的各种困扰,Barcelona一路坎坷,Shanghai的推出就是为了挽回市场,因此必须很平易近人。Shanghai的确做到了这一点:良好的兼容性、更好的性能、更低的功耗以及更低的价格。
#p# 时间进入到2009年,核心数量已经成为了英特尔和AMD继主频大战之后的另一个关注领域。2009年6月1日,(美国当地时间),AMD发布了其Shanghai/上海更新换代的产品:Istanbul/伊斯坦布尔,将核心数量从上海的四个全面升级到六个。Istanbul/伊斯坦布尔是第一个采用直联架构的六核心服务器处理器。
Istanbul/伊斯坦布尔继承了AMD处理器采用F1方程式赛车赛道命名的传统,它仍然采用了45nm SOI制程工艺,并且基于Shanghai核心。和上一代的Shanghai相比,Istanbul最大的变化就是核心数量的提升。 作为Shanghai的升级产品,Istanbul在架构/微架构方面都和上一代比较相似。
AMD Shanghai/上海架构图
AMD Barcelona/巴塞罗那架构图
就图上看,很明显的一个提升是HT总线的速率:Shanghai是24GB/s,Istanbul是57.6GB/s,不过真实的情况是:Shanghai标的速率是基于HT 1.0,Istanbul是HT 3.0。Shanghai也能提供HT 3.0总线的支持,不过由于芯片组的缘故,只能使用HT 1.0。本来AMD打算Istanbul发布的时候同时推出新的芯片组,但用于自家的AMD Fiorano芯片组迟迟未能到位,还是采用了来自第三方的解决方案。
据称在相同的功耗下提升了30%的性能,至于“完美的执行”看一下就算了
除了6个核心、双通道DDR2-800集成内存控制器和最多三条HT 3.0总线之外,Istanbul还提供了进化版的AMD-V 2.0,让“伊斯坦布尔”的虚拟化性能再度提升,并加入了新的AMD-P技术来更完美地控制处理器功耗,配合CoolCore和Smart Fetch技术可以限制内核功耗甚至关闭内核。
HT Assist:降低维持缓存一致性所需要的步骤,图上是从10个事务降低到只需要2个事务
HyperTransport technology Assist (HT Assist):降低多个处理器之间的缓存探测,降低交通量,从而提升4路/8路服务器的性能,优化如数据库、虚拟化这样的缓存敏感应用以及计算密集型的应用。
缓存探测是什么?为了维护内容的一致性,在多个处理器共享的缓存内存必须要保持一致——也就是维持缓存一致性。在其中的一份页面被修改的时候,其他处理器通过“缓存探测”来检测到这个操作,从而进行维持一致性的举动。这个举动在不同的系统上可以不同,既可以是更新复制被修改过的的页面,也可以是使其他的副本无效。实际上,这个HT Assist和Intel 5000X芯片组上的Snoop Filter缓存功能是差不多的,只是它占用的是L3缓存,也因此在双路配置的时候,必须把HT Assist功能——通常BIOS里面叫做Probe Filter的选项关闭。
Extended Migration扩展迁移:兼容所有的单核/双核/四核/六核处理器,允许虚拟机在不同系统之间进行自由迁移。
AMD-Vi:I/O级别的虚拟化,允许多个虚拟机分别直接与I/O设备沟通(需要Fiorano平台:SR5690/SR5670芯片组),提供更好的设备隔离安全性和虚拟I/O性能。
功耗:在功耗上,Istanbul/伊斯坦布尔虽然多了50%的核心,然而通过工艺上的进步,以及电源管理技术上的改进,最后仍然维持了和Shanghai处理器一致的ACP平均功耗,当然,对于这点,我们期望后面的测试可以给出准确的数值。
远程电源管理界面APML:提供一个远程监视、控制平台功耗的界面,无需进入BIOS调整。对于大规模数据中心来说,逐台服务器进入BIOS调整电源管理参数是很麻烦的,APML就是个很方便的解决方法。
回顾总结:从巴塞罗那、上海到伊斯坦布尔,虽然看起来经过了3代,但要算本质上,后两者都是巴塞罗那的补充和完善。虽然其间经历了核心数量的调整,但在整体架构上并没有明显的改变。可以说,上海和伊斯坦布尔都继承了巴塞罗那的衣钵,从这个角度来说,巴塞罗那虽然昙花一现,倒也为后世积累了宝贵的财富。
#p# 核心大战的序幕一旦拉开,就没有停止的时间。不仅仅是英特尔和AMD,就连其他非X86架构厂商都要来参与一下。前几天在济南进行的HPC China 2011会上,国产“神威蓝光”以16核心拔得了通用处理器核心数量的头筹。而在此之前,通用处理器核心数量,尤其是X86处理器核心数量一直被AMD所把持着,也就是我们即将看到的皓龙Magny-Cours。
和Istanbul一样,Magny-Cours仍然是基于45nm SOI工艺,实际上,它就是将两个Istanbul封装在了一起,并做了一些改进,这个工艺就是业界常见的MCM(Multi Chip Module,多芯片模块)封装。
核心 方面也必须做出改变,为了核心能直接连接,要额外多设计些HT总线才成,因此,每一个Magny-Cours核心的HT总线从Istanbul的3条增加到了4条。
通过HT链路分割技术,Magny-Cours不仅实现了内部通过1.5个全链接互联的结构,还可以将4个外部全链接分割为8个半链接,从而形成一个8路96核心、包含8个I/O芯片的大型SMP系统。每一个Magny-Cours处理器可以支持达4通道的DDR3 1333内存,比起上一代的Istanbul(双通道800)也是一个不小的飞跃。
回顾总结:如今,在许多四路和八路服务器上都能够看到皓龙Magny-Cours的身影,事实证明多核心的设计非常适合虚拟化应用,这也是AMD在市场中的成功之处。不过谈到AMD如何在短短一年时间就将处理器的核心数量翻倍了?这事儿可是一个敏感话题。正如我们前面说的,伊斯坦布尔有6个核心,而皓龙Magny-Cours仅仅是将2颗伊斯坦布尔核心封装在了一起。就此事笔者曾经在皓龙Magny-Cours还未发售的时候进行过分析,所谓“胶水”的说法受到了AMD的强烈反对。既然这个词汇如此敏感,我们这里还是不提了,不过真相是什么,大家一看就清楚。
#p# 好了,万众期待的皓龙Bulldozer介绍来了。看过之前的内容,相信大家已经清楚的意识到,AMD这么多年的产品一直延续了巴塞罗那的架构,无论是稍作改动的上海,增加核心的伊斯坦布尔还是当前主力的马尼库尔。毕竟,这些处理器都已成为了历史。今天,皓龙Bulldozer正是发布了,一切围绕它的谜团都要揭开,一切皓龙Bulldozer的信息都会曝光。之前,众多媒体对于皓龙Bulldozer都有了详细的报道,我们今天要给大家呈现的,是这些报道之外的最新内容,也是皓龙Bulldozer白皮书中的内容。
AMD的“Bulldozer”是在K10之后推出的全新一代处理器架构,对AMD来说,这是自K7以来AMD处理器架构的一次根本性变革,在核心架构及功能性商都较K10有较大的改变。相对于目前AMD主流处理器的架构,Bulldozer核心最大的亮点就是引入了模块化设计,这让处理器在功能更加灵活的基础上更容易控制成本。
Up to 8 Compute Units (CUs) with 2 cores per CU——在新一代的皓龙Bulldozer架构中,每两个核心组成一个单独的单元(Compute Unit),最多有8个这样的CU模块出现,也就是说皓龙Bulldozer最高可以具备16个核心。这是一个独创的设计,有了CU,无论是双核、四核、八核甚至更多核心都可以信手拈来,因为架构是固定的。
同时,处理器使用四种不同的缓存加速指令执行和数据加工:L1指令缓存,L1数据缓存,计算单位共享二级缓存,共享L3缓存芯片(平台支持)。
除此之外,皓龙Bulldozer处理器包含一系列保障预测数据缓存与128位端口。这是一个写入缓存,支持多达128个字节负荷周期。它分为16组,每组16个字节宽。此外,该级缓存是保护单个位错误并使用奇偶校验。有一个硬件预取器,所带来的数据到数据缓存避免错过。L1数据缓存有一个冲程load-to-use延迟数据缓存。
#p# Bulldozer架构中的另一个新元素就是采用了基于集群的多线程技术。Bulldozer的内核模块是一个可以同时运行两个线程的处理组件,两个内核可以执行两个完全不会相互干扰的线程,有点类似于Intel的双核处理器的超线程奇数。
尽管双核、多线程和Bulldozer在线程并行执行方面是相同的,但是内核的分区却截然不同。多线程就是在一个单个的处理核心内同时运行多个工作线程的技术,和CMP芯片多处理器技术不同,后者是通过集成多个处理内核的方式让系统的处理能力提升,现在主流的多喝处理器都是用了CMP技术,而像Pentium 4、Core i7这样的处理器带的“超线程技术”则属于多线程奇数,而Bulldozer是基于集群化多线程架构,Cluster-Based Multi-threading:CMT,也称多簇式多线程技术。
皓龙Bulldozer的加载存储单元掌管着数据的出入。每个计算单元或每个核心中有两个加载存储单元(建成LS单元)。有24个项目存储队列这队列缓冲区存储的数据,直到它被写入数据缓存。
相对于传统超线程或双核技术,Bulldozer这种设计集群化架构的理念是让双核模块在多线程运算中更高效。Bulldozer每一个模块中加入了额外的执行单元,每一个模块都具备可以将一个大任务细分为多个并行任务的能力,这些生产线可以按需要任意整合,不会对整个装配线的效能造成影响。因此CMT技术的效能要高于传统的多线程方案。
#p# 事实上,相比全新的架构和多线程技术,皓龙Bulldozer在HT总线及内存设计上并没有更多的改变。从我们拿到的资料来看,皓龙Bulldozer的HT总线和内存控制器部分更多的是延续,延续了马尼库尔所支持的DDR3内存,只是HT总线提升至3.1规范,而内存控制器最多可以支持四通道DDR3。
正如我们之前提到的,HT技术是在巴塞罗那时代就存在,只是那时还处于HT1.0的阶段。从上海开始,AMD处理器正式支持到HT3.0,但是因为那时候AMD还在使用第三方的平台,而平台芯片组的更新过于缓慢,所以直到伊斯坦布尔我们也没有看到HT3.0的实际作用。本次,皓龙Bulldozer的发布将采用HT3.1总线。相比上一代HT 3.0总线的2.6GHz来说,HT 3.1可提供最高每位6.4GT/s的数据传输率,32-bit带宽可达51.2GB/s,相比上一代HT总线有利很大提升。
内存方面,DDR3已经很早就被采用了,这次只是将内存频率由DDR3 1333MHz升级到1866MHz,这主要是带来了内存带宽的提升。不过在实际应用中,因为英特尔还在采用DDR3 1333MHz的频率,所以皓龙Bulldozer仅仅是具备了支持的可能性,真正能不能用到这样的带宽还不一定。
有一个值得注意的地方是,皓龙Bulldozer提供了软件预读取。软件预取可以隐藏内存延迟,但不能提高总内存带宽。多回路有限的内存带宽,而不是处理器速度,如图所示。在这种情况下,最好的软件预取可以做的是确保足够的内存请求“飞行”,并保持内存系统所有时间都处于繁忙状态。
总结:如今,最新的皓龙Bulldozer已经在中国正式发布了,关于皓龙Bulldozer更多的技术细节及市场前景分析也越来越明朗。IT168已经成为本次AMD 皓龙Bulldozer发布的全球官方唯一指定评测媒体,用于评测的皓龙Bulldozer已经飘洋过海,很快大家就可以看到由IT168发布的独家首测。