不支持Flash
|
|
|
分析:AMD与Intel展开四核拉锯战http://www.sina.com.cn 2007年10月26日 15:09 计世网
(记者 吴挺) 从双核到四核,AMD与Intel的竞争不断升级,新品迭出,技术更新频率不断加快。而多核之路并非一条:是做一个不断追求技术完美的狂热拥趸,还是更多着眼于快速商业化?也许从技术上来看,最后的结局不过是殊途同归。但是,对于这两个企业而言,在这场拉锯战中,谁又会笑到最后? AMD的四核终于来了 说起芯片市场,再没有比AMD与Intel之争更热闹的了。虽然AMD在双核处理器的发布上占了先,四核处理器却落后了对手将近1年的时间。就在它发布Barcelona的前几天,Intel还发布了MP系列的四核产品,颇有示威的意味。其实,Intel大可不必如此——它在四核之战上已然占据了先机。根据数据,出货已经半年的Intel四核产品总量超过100万颗,而那时,AMD的Barcelona还停留在样品阶段。不过,在很多行内人看来,AMD错失良机的原因是过于执著——为了践行自己的原生多核概念,错过了通过拼接两个双核构成四核处理器的机会,结果,把好不容易抢来的、在双核上的领先旗帜拱手让给了Intel。 从这点上来说,AMD陷入了自己的死胡同。本来,是否原生牵扯的恐怕主要不是技术问题,而是成本问题。虽然在技术上,需要对拼接的四核产品进行一定的改进才能够做成原生的四核产品,但是否原生其实早已经不重要,通过平台设计完全可以巧妙规避拼接带来的一些问题,而拼接在成本上的优势却是原生四核产品远远无法比拟的。 AMD一再延迟推出四核产品的原因很多,一方面是技术上还不够成熟,另外一方面也是制造方面的瓶颈,成品率不够高。 四核需要大幅度降低处理器的尺寸,不得已只能拿缓存开刀,在Intel大幅度增加缓存的时候,AMD似乎还是原地踏步,二级缓存每个核心只有512KB,三级缓存也只有2MB。笔者认为,并非AMD不想增加二级缓存,也并非它做不到,如果把所有的缓存倍增,Barcelona也能够生产出来,但是会付出巨大的成本代价,这样生产出来的产品没有几个人买得起。而且,Barcelona内核之间是直接连接的,这些链路让多核设计变得复杂,不得不考虑牺牲一些缓存来保证整个处理器在工程上可行。 于是,我们看到,AMD在处理器互联方面,采取了一种比较折衷的方案,通过环状网络将四个核联系起来,因而所有核只有跟自己临近的核才可能有直接连接,跳过一个核心就面临数据通信的仲裁问题,内核之间的连接反而成为掣肘。因而,通过添加三级缓存来缓解这个问题,未尝不是一个聪明的办法。就以Barcelona的结构来看,没有三级缓存,所谓的原生四核也就如同空中楼阁一样毫无意义。那就是说,四个邻居虽然在一层楼上,但是却老死不能往来,通行都需要下到地面再坐电梯上来,岂不谬乎? 就此,最近有消息说,AMD要推出三核版本处理器。这并不新鲜。早在2005年,IBM提供给微软的XBOX360处理器就是三核的PowerPC,从技术上来说没有问题。我们想知道的是,三核与四核只一核之差,奈何AMD会如此看重?原因很明显,制造成本是元凶,虽然只是少了个核心,成本降低恐怕不只是1/4这么简单,加上成品率的随之上升,或者制造四核过程中坏了一个的,自然就变成三核的版本,说不定有好事者又可以打开那个不可靠的第四核。从架构上来看,最可能的原因乃是三核的通信效率要比四核高,并且可能推出没有三级缓存的版本,从而增加二级缓存的容量,都是有可能的。 以目前的技术,三个核心几乎可以算是全连接。这个时候处理器之间的数据交换要高效得多,其中任何两个处理器都可以直接互联,如果不采用全连接方式,在四核处理器中无法达到目的。到现在为止,包含四核在内的超过四核的系统中,只有IBM做到了全连接,也只有Power6能够做到全连接,显然目前的条件无法让Barcelona这种级别的处理器全连接。 还有必要谈论真假四核吗 今年早些时候,笔者曾撰文《四核不问真假》,做不做原生四核在于制造工艺、成本的综合考量,而不是违背这个原则特意要走不同的路,那样伤己不伤人,徒劳无益。 AMD自己首先提出真假四核的概念,不过稍嫌惨白:虽然在双核占据了先机,却在四核的时代自受其害,如果不是因为要坚持原生,估计也早出来了四核。 当然也有人提出异议。难道AMD不愿像Intel那样做么?他们也是迫不得已,一方面话已经放出去了,总不好自己打自己嘴巴,另外一方面也确实是有难度:AMD处理器的架构恐怕也要做一些改变才能拼接,总之最后也只能孤注一掷、一条道跑到黑了。 就在Barcelona闹得沸沸扬扬的时候,Intel也在潜心做着改变。首先在工艺上,拿出了45nm的样品,很重要的是,他们的四核产品也开始了原生的进程。而Intel此举并不完全是技术决定的,而是成本决定的。 在这么做之后,架构也有些改变,内部处理器的连接通过QuickPath实现,因为在拓扑上与AMD的处理器有类似的情状,AMD说Intel在抄袭他们的设计。AMD此言未免有些过激,Barcelona新添加的Superforword以及Writecombining技术,在Intel的Core架构已然能够实现,况且,技术专家在设计上有共同认识也是正常的,难道说为了避免抄袭,每个品牌的汽车都需要不同数量的轮子么? 实际上,AMD所骄傲的并非“原生”的这些东西,而是HyperTransport这个概念,把处理器当做一个数据传输的HUB,而不仅仅是一个计算单元,的确是其独到的地方,这要超脱Intel的设计,借以在服务器市场上立足。桌面处理器只是托福借光而已,我们也可以看到,只有在四路以上,AMD64系统才更受欢迎,这也合乎AMD64架构设计的最初目的。而且AMD也是借用alpha的概念,一旦Intel采取类似的策略,未来很难预料。 至于多核的“真”与“假”并无实际意义。从上面的分析看出,在四路以下,AMD64架构的优势并不明显,尤其是在一些偏向计算的运算中,不是仰赖处理器的外围带宽,而是凭借内部的运算单元和资源搭配,加上AMD工艺上要落后一些,在Core架构之后,AMD64架构没有优势。何况,Intel可以用大量的生产提供双核/四核类似的价格,那么左右市场的自然不是技术的先进与否,而是成本和价格了。并且,Intel在系统设计上似乎更有经验…… 三级缓存拯救Barcelona 正是因为前有强大的敌手,Barcelona拥有了很多新亮点,包含为定点运算和浮点运算提供了三条流水线,而且通过优化内部流水线结构,大大提高了效率。比如在分 支预测这种不新鲜的技术之外,还提高了load/store命令的效率,安排更为灵活,可以实现多种格式的存取甚至混合格式的存取。 可以认为,Barcelona是AMD精心设计的产品。 通过添加第三级缓存,巧妙解决了四核产品在原生状态下的互联,而且避免为了实现各个核之间的直接数据读取导致的总线壅塞状况。 AMD处理器缓存的设计思路与Intel的不一样,采取的是非包含式的设计,也就是说依次层级的缓存之间没有相同的数据,下一级是上一级别的备注,只有上一级缓存中需要替换的,才写入下一级。根据这个设计思路,三级缓存被设计成为“非包含式剔除(non-inclusive victim cache)”缓存,意思就是只保存从二级缓存中剔除的或者写回的数据,主要提供四核核的数据交换用。如果可能会被另外一个核或者多个核利用到,整个系统的带宽将大大提高。 三级缓存提供了一个很好的链路,解决了多核内部的全连接问题,三级缓存成了一个通道的作用。根据最近得到的消息,原生四核的Intel处理器也将拥有三级缓存,解决的恐怕也是这个问题。 在此之前,Intel在服务器的主板上,附加了一个缓存用于解决两个核心之间以及双路之间的数据共享问题,三级缓存的使用大抵如此。 由于是直接把数据从内存中读取到一级缓存中,Barcelona的一级缓存容量相当大,数据和指令缓存分别是64KB,这是从Athlon时代AMD相对于Intel的弱小优势,同时也是为处理器的缓存结构设计决定。目前,Intel的同级别处理器一级缓存容量是AMD同级处理器的一半。但是由于是备份式的缓存结构,这并不是问题。 但是,Barcelona的一级缓存的组相连策略只有2路,这将大大带来不命中的危险,虽然在替换的时候能够节省很多时间,但是一旦发生冲突,这将是灾难性的。而且,自个组相连策略长时间没有改变,对于现在容量越来越大的软件并不是一件好事。 这将可能导致反复的数据读取,从而大大浪费系统带宽,AMD系统的短时延的内存优势也将淡然无存。很有意思的是,AMD在Barcelona设计的时候,并没有固定安排二级缓存的策略,开发人员可以根据需要安排从0~128路的组相连策略,这大大高于Intel只有16路组相连的灵活度。笔者发现,一些文献说Barcelona的二级缓存只有8路组相连,这是不准确的。 笔者认为,这是与一级缓存的良好搭配。估计是考虑到一级缓存冲突导致的不命中率比较高,需要比较容易地替换数据,另外,允许用户针对不同的应用环境采取比较优化的策略。可惜的是二级缓存都不大,如果能够大一些,恐怕很多事情做起来会容易得多。 在缓存结构上,我们也注意到,因为目前还是双通道的64位内存接口,爆发式读取为4,因而缓存的线宽度依然为64bytes。以现在的系统结构,串行内存恐怕会更合适。
【发表评论 】
不支持Flash
|