龙芯为啥不开窍?

2009年04月20日

龙芯3号处理器的研发工作正在紧锣密鼓进行,据称采用了很多主流的技术,比如HyperTransport和多核架构。但是我感觉在整体上,它并不够领先。甚至可能龙芯3号一出来,就会遭到抨击。因为,业界已经开始了转型。

 

龙芯3还是采用OOO(Out Of Order)架构设计,这种架构适合制作复杂的处理器,并且只能通过复杂的硬件搭配才能获得比较好的效果。OOO同样需要强大的外围支持,比如对缓存的消耗更大,同时需要很多Buffer。问题是,人们研究分支预测的能力是有极限的,不可能在这个层面无限提高,流水线损失和流水线断流情况将大幅度抵消分支预测的带来的性能提升。Intel的解决办法非常简单,那就是大幅度提高2级缓存的容量,从而有效降低分支预测失效时的性能损失。

龙芯不可能走这条路,否则处理器的功耗会难以控制,实际效果也不见得能有多好。现在业内已经开始反思这种设计,并且尝试把它定位在合适的应用领域内。如果需要处理复杂事物,OOO的方式还有它存在的理由。即便如此,随着多核架构的逐渐普及,处理器对外围的要求也变得很高。在相互之间的数据共享方面,也可能出现很多资源争用的问题,并且越来越严重。

怎么解决呢?一段时间以来,业内都想通过采用Barrel架构解决这个问题,实现真正没有阻塞的流水线。这种架构的处理器,硬线程数量与流水线级数相等,每个时钟更换一个指令,从而让流水线里面前后相继的两个指令毫无关系,以解决数据相关性方面的问题。这样,流水线断流的情况基本上就可以避免了。

但Barrel架构也不是十全十美。通常,处理器的浮点流水线要长一些,这样定点运算和浮点运算的流水线级数不一致,到底针对谁来进行优化呢?从理论上来说,应该以最长级数为准,并且最好是不同级数的最小公倍数。这无法避免地导致单个任务的时间增加,处理器的设计成本也会发生变化。但从长期来看,还是相当值得的。就如同磁带机的音质无论如何怎么改进,也不可能超越CD;汽车怎么快,也不可能拥有飞机的自由度和速度。不同层面的决策决定了产品的形态,也决定了他们未来的发展空间。

我想起了一个故事。火车刚被发明出来的时候,有人骑马跟火车竞速,发现火车远远不是对手,就讥笑火车的无能。几百年过去了,马奔跑的速度没有变,火车速度的提升远远超越了自然进化的速度。

未来,单个处理器不需要非常强大的计算能力,已是不争事实。在此前提下,结构简单的处理器能够获得能耗、体积等方面的优势,占得一部分市场份额。对于处理器制造来说,成本总会越来越低。谁能更好地击中未来需求与应用模式的移动靶,谁就注定能获得成功。所以,选择正确的方向很重要。纵观龙芯目前取得成果的领域,大多都有比较简单的计算模型。而这种低消耗、高产出的模型,实际上更适合多线程Barrel架构。再说,现在龙芯拥有的人力、物力资源,貌似更适合设计这样的处理器。

业界已在转型,Atom和Larrabee就可能改变Intel的方向,Sun的Niagara系列也会获得强大的生机,Ubicom等厂商也意识到这种简单的架构更适合中小规模的应用。龙芯,也请多看看窗外花花草草吧。

观点 龙芯,Intel,Larrabee,Barrel,Niagara,Ubicom,Atom,OOO,Sun

  1. 暂时没有评论.
 
点击换一张验证码