前段会晤了一个多核CPU的厂家,叫做Tilera,最近势头很猛,触角已经探伸到了应用交付云计算、视频、网络流量处理、网络安全设备、防火墙等各个领域。尽管该公司技术人员一再谦逊地强调该CPU在处理四层以下防火墙业务的时候不一定具备优势,但是我认为他可能是因为面对着几个我们公司的相关专业人士感觉有点心虚而已。
以我个人这些年来在CPU体系结构研究方面的积累,我的结论是在如果相同的硬件架构下,各个平台四层网络吞吐的性能是相去不会太远的(当然是基于同档次的CPU)。举个最简单的例子,我们的Cavium在网络四层吞吐方面表现优异,但这是得益于它的包处理硬件单元的助力。如果我们把它的硬件设计成和X86平台一样,所有的网络接口都通过PCI总线扩展,那瞧着吧,它的四层吞吐能力会和X86平台一样的惨不忍睹。
Tilera很有意思的一点是(尽管没有明说),它下一代CPU的规划颇有和Cavium较劲的味道。似乎颇愤愤不平让Cavium占了先机。毕竟先入为主么,起码在网络安全这个领域,如果说到嵌入式平台,首推还是Cavium和RMI(后者还被重创了一把)。Tilera如果想要扳回一城,必须要有超出不止一筹的表现才行。在目前已经量产出货的Tilera上(Pro系列),似乎表现尚嫌乏力,难以撼动Cavium 5系的蒂固根深。
但是Cavium 6系迟迟没能出炉让Tilera嗅到了一丝机会,磨拳擦掌准备在下一代芯片上和Cavium一争长短。Tilera此时发力可以说进可攻退可守,如果先于Cavium 6系发布,那么它会以全系铺设、全系超出的表现重挫Cavium 5系(慢,好像Tilera下一代仍旧没有最低端的产品,anyway,影响不大);如果和Cavium 6系同步发布,最起码也可以和后者在同一起跑线上打一打拉锯战。
后面我从学术角度全面比较一下Cavium下一代产品(OCTEONII)和Tilera下一代产品(GX)的方方面面。
乍一看这个题目比较虚。但其实这是所有IC产业中技术含量最高的一环。为什么Inte CPU的霸主地位无人能够撼动,就因为它在CPU的工艺水准上远超侪辈,它也是几乎唯一个敢于给自己的CPU标称工艺水平的厂家(多少多少纳米)。工艺水平决定了什么:集成度、稳定性、性能、产能、功耗、成本…
每一款IC产品的代系跃迁归根到底都是工艺水平提高推动的。说到这我插一个故事作为佐证。港湾的老同事都记得,我们在散伙前夕推出了一款拳头产品,基于BCM1250的高性能MIPS64架构的硬件平台,名噪一时啊,被《计算机世界报》评为性能最佳奖。可是该款产品稳定性一直很差,即便是厂家的技术支持全程陪护也还是遗留了很多问题。
有一次厂家的人跟我说起硅片加工工艺的时候作了个比喻,就像烤面包似的,两眼一抹黑就开始烤,烤出炉了再筛选,烤的好的就当800MHz的卖;烤得不好的当400MHz的卖。(我真是想问,那烤出799MHz的咋办?)这是一个工艺水平跟不上趟的典型案例。
话说回到我们的Cavium和Tilera上来。这两家的工艺水平我没有第一手的资料,本来不应该妄加评论。可是侧面通过一些蛛丝马迹我能够做出一些大胆的推断。首先Cavium的工艺应该是有问题的,理由是:
回过头来再说说Tilera。我不敢说Tilera的工艺水平有多么高,但感觉上应该是优于Cavium,理由是:
Cavium是标准的mips64核心。Tilera当代是32位mips,下一代是mips64。Tilera的技术人员说得明白:32位的CPU体系结构会给用户的嵌入式产品代码移植造成麻烦。呵呵,这个说法值得玩味了,看来Tilera颇有一统江湖的野心,想把64位CPU市场收入囊中啊,这个矛头指向的明显不是X86(是谁呢?是谁呢?)。因此,下一代产品纯Core性能上两种CPU应该是无差别。Tilera号称在指令pipeline上有些文章但是我个人感觉噱头的成分居多。
再说内部总线架构。Cavium是总线型,而且是比较经典的总线型。指令、数据、IO分开的;Tilera的总线架构叫做iMesh,应该算是一种改良的矩阵式结构。两种体系结构的优点和缺点一目了然:总线型上挂的组件无视物理位置,只要总线空闲即可以最高效率通信,但是存在冲突的问题;矩阵式结构呢,两两组件之间可以同时无冲突通信,但是组件之间有物理距离远近的差别,也就是说离着远了就需要有人在中间传话。
刚才说Tilera的总线有些改良我再多白活两句。Tilera的内部总线号称“立体交换式”的矩阵总线(好一个Matrix)。意思并不复杂,两个含义:
第二回合,我认为平手。
嵌入式CPU么,总得佩些额外的武器在手不然对不起“嵌入”二字。Cavium当代产品在这方面做得相当老到,该有的不该有的反正都有了。Tilera当代产品呢?几乎是空白,于是它恍然意识到这些东东“可以有”,所以在下一代产品上要痛下苦功喽!后面我一一细分对比(这可真是力气活啊):
这个第三回合么,上周我觉得Cavium胜,毕竟人家有内容匹配么,为安全厂商量身定做的。但是这周我改变主意了,第三朵小红花还是给Tilera。因为我认为内容匹配硬件对我们来说仍旧素浮云一朵。。。。。。
Cavium的当代产品在这个特性上的局限让我们百般痛苦(准确地说是让我个人百般痛苦)。国内的网络安全设备在端口规格上的流行风绝对是病态的,随随便便一个设备就要搞十几二十个接口(您以为是做交换机呢?)。于是口不够,片子凑。什么交换芯片、FPGA、MAC汇聚,还一家用一个样。于是我有限的生命就这样献给了各种端口扩展方案的评估事业中。
Cavium和Tilera的下一代产品在这方面都有好消息。总的IO宽度都是40G(又一次较劲吧?);支持万最大兆口的数量都是4;支持千兆口的数量前者是12后者是32。我一直觉得Cavium在工艺上有问题在这里又一次印证了。一个万兆口的资源它只能实现4个千兆口;而Tilara能实现8个。但就是这4和8的区别,意味着如果我们用Cavium,就还得外部扩展;而用Tilera,就反而有富裕。当然,不排除将来设备的端口规格水涨船高了。Tilera胜。
Cavium上我就不多介绍了。业务层面的编程环境叫做SE,裸系统。Tilera很特殊,提供的业务编程环境居然在Linux用户空间!据说还能达到几乎1:1线性。这真让我大跌眼镜。用户空间编程的最大优点是操作系统可用资源丰富,举个最简单的例子,业务处理过程中可以随时访问文件系统。这对我们来说意义重大,将来我们的AV模块很可能是合作开发,如何教会我们的合作伙伴使用SE难度巨大,而且无操作系统编程本身限制多多啊。
对于Tilera的这个用户空间实现业务编程环境,我没有见识过,不知道在核多的情况下性能线形比率会不会有雪崩式的衰退。但是我觉得像Cavium和Tilera这种老外的公司,背后都有很强大的操作系统研究的团队,他们不太能够容忍在软件应用方面自己的产品存在太大的死角。所以我首先保留怀疑,再给Tilera颁发一朵小红花。
结束语。两种解决方案之间的比对其实还有更多的方方面面的PK。比如硬件成熟度、整机成本、硬件供应商和我们的商业契合度等等。但这都不是我有兴趣分析探讨的。仅以此文用直白平易的语言向大家展示一下嵌入式多核CPU的世界。