作者:廖恒
大学时上的计算机系,清华九号楼宿舍里熄灯后的夜谈话题除了现实及金庸、古龙虚拟世界中的牛肉汤、小师妹,就是软硬件的华山论剑。到底是软件更牛,还是硬件更牛?是计算机系还是电子系更牛?
清华计算机有优良的硬件传统,还在闭关锁国的时代就设计了国家发导弹要用到的计算机。后来师从这些计算机的设计者时,常听到他慨叹一个时代的过去,清华计算机硬件的没落。老师常指责国家领导人的短视,把硬件传统抛弃而转向人工智能等软件技术,乃至于悲叹可能带来战略亡国等后果。这是八九十年代的冷战思维。
今天,中国不但成为了世界上最大的计算机硬件制造公司,还吞并了IBM的硬件业务,几乎所有的电子硬件产品都在中国生产。中国可谓是个硬件“强国”。作者也在国内外软硬行业中从业多年,已进入了脱发脱离,要每天检测血液心跳的年龄,这个云数据中心的时代的华山论剑却依然在继续。
在九号楼的时代,我是表里不一的。嘴巴上不承认十号楼里电子系人才济济,但偷偷拷贝来盗版的Tango学画线路板,彻夜不眠地破解Altera的FPGA设计软件的软件狗,乃至于后来读研时费尽心思要上计算机系唯一还在做硬件研究的体系结构方向。对一个自以为精通软件的高手,硬件是那么神秘,甚至让人感到不可触碰的恐惧。相信今天的应用软件工程师也会怀用同样的恐惧吧。如果非要去写和硬件打交道的驱动程序,嵌入系统编程,多数人会本能地想,最好还是找别人吧。继续呆在Java/Python的虚拟世界要安全得多。干吗不呢:应用软件关联用户体验,直接创造价值,要是你说微信/快的是你写的,会引来多少羡慕的目光,还有高薪,无与伦比的工作机会在等着你。软件比较而言是在这场论剑的现实层面占了上峰,当了武林盟主。看看我们熟悉的国内三大数据中心:百度,腾讯,阿里,他们拥有成千上万的软件工程师,每天辛勤地为大众创造最新的应用,最佳的用户体验,但是在这三家巨头中从业的硬件工程师,加起来不过百人。国外的Google,Facebook等巨头,也少有差别。而IBM, HP, Dell等硬件巨头,有插草标卖身的,有退市的,还有在股市中苦苦支撑的。这个硬件的气宗是否已到了古墓消沉,乃至灭绝的境地?
即已完胜,软件的剑宗,为什么还要关心硬件气宗的那些练功方法?
就拿目前热卖的SSD为话题,从延迟和IOPS上来说SSD比硬盘要快上百千倍。现在的互联网软件构架师就不能不考虑这一基础因素来重新考虑软件体系的设计:是否有些数据结构可以放到SSD上,是否过去费尽心思为减少硬盘读写所发明的复杂手段可以大大简化?再进一步,如果所有数据都能放到内存,是否会让你推翻整个软件构架重新来过?如果整个机群可以直接共享内存呢?如果在机器掉电后内存的内容仍然可以保留是否就可以完全不考虑数据写盘了呢?
硅谷吸引了无数国家和地方政府多年来一次次的考察、模仿,从此有了波士顿的硅谷、慕尼黑的硅谷、东京的硅谷、上海张江的硅谷、无锡的硅谷,却从来没有被超越。原因是否在于,SiliconValley有圣何塞的“硅”——是以硬件为基础的。
下面谈谈冷存储的话题,软件构架师如何一次次拒绝气宗示好的故事。
大约六年前,我们(PMC-Sierra)看到了冷存储的趋势,大量的非结构化数据爆炸式生成(其中对个人可能是如初恋日记一样的宝藏,对社会是无用的垃圾)并需要在云上存储。这些数据必须要scale-out才有可能放得下,也就是要分散在非常多的简单节点上。我们试图推出一款SOC芯片,它能直联很多盘(24个),片上集成了足够性能的嵌入式MIPS CPU,可以直接跑Linux和分布式文件系统,可以直接驱动网口。总而言之,单片就能解决冷存储节点的问题。硬件成本缩减到一台同等x86服务器的1/5,功耗也减到1/10。于是我们信心满满地开始拜访全球互联网的各大巨头,试图说服他们的软件工程师采用这个单片的云存储方案。几轮下来,性能评估结果不错,但是这样的“好”方案却无一例外地被软件构架师封杀。说到底,软件构架师不愿意去考虑硬件的诉求,甚至是害怕去触碰和硬件打交道的代码。于是就有了:噢,我的schedule要推后一年,我的人力要翻倍才能用上,公司急需交付的新功能必须要放一放了,还要成立新的平台软件团队来维护非x86的操作系统等等理由。
对我们做芯片的构架师来说,这是一个冷酷的教训:我为你做了这么多考虑,为什么一再被拒绝呢?
天下熙熙,皆为利来,天下攘攘,皆为利往。个体利益必须要得到保障才能兼顾团体的利益,眼前利益必须兼顾才能考虑长期的利益。这样的方案可能对数据中心长期的大规模运营是有益的,但对软件构架师来说,手头的项目才是安身立命之本。我们的方案要求他们放下自己最大的关切去降低未来整个公司的TCO是我们的错。
相比之下,另一种示好的方法,受到的阻力就少了很多。既然软件不接受非x86的CPU、不熟悉的开发环境,那可否保留这些软件人员想要的呢? 至少有两种方法:大大增加每个节点带的盘数---采用最常用的XEON CPU然后带上高性能的SAS控制器,通过SAS Expander连接机箱内或外部JBOD中的60-80个盘。因此出现了高密度存储服务器(2U/4U)和其他HBA+JBOD等变种。 PMC的这个方案就得到了广泛的采用。还有一种方法,那就是集成一个较低性能的x86 CPU到SOC的内部,用来构筑尺寸较小的节点(1U1,1U2)等。这些方案我们都在推。前者完全维护了软件构架师的所有关切,但是导致机械尺寸过于庞大(要2个壮汉才能抬起),还有故障域变得很大,增加了数据保护和恢复的难度。后者要求软件工程师针对较低性能的CPU提供优化软件,带来了一些软件构架师不想做的事(谁用惯了快的机器都不想用慢的),但是系统的成本、可维护性较佳,利于部署。
再回到SOC的设计。这个话题和目前媒体上很热门的“微服务器”相关。前面讲到,我们的MIPS SOC在互联网数据中心遭到了拒绝,ARM服务器会不会受到更佳的待遇呢?和MIPS相比, ARM有更广泛的生态体系,主要借助在手机、平板等广泛的应用领域的用户群。但是,和x86相比,在互联网服务器领域还是有天壤之别。要看清这个问题,还是要回到一个基本点:利益。
从技术上,不同的指令集是程序员(经过编译器处理后)向CPU传达指令的语言。这和人类的多国语言类似,从本质上基本的优劣是相当的。当CPU都很初等的时候,不同的指令集可能带来指令读取,解码等电路的开销有些差别,因此一定程度上影响CPU的成本、功耗等特性。但是,在服务器等级的高性能处理,这些语言(指令集)带来的差异已经到了可以忽略不计的程度。这就是说:为了达到某个等级的处理性能,采用不同指令集的CPU所需要的电路成本和功耗是基本相当的。这是因为CPU的Cache、并行执行部件、流水线发射和乱序管理、总线单元、一致性单元等等是和指令集基本无关的,而和指令集相关的解码等部件仅仅只占了很小的部分。
既然x86是大家通用的指令集,并有所有互联网公司所需要的软件生态,有什么宏观因素驱动另一种指令集(ARM,Power PC, MIPS)的生存空间呢?其实就是利益。
Intel在服务器领域的一家独大,AMD的无所作为导致了互联网公司购买服务器CPU时没有第二个选择。目前全球服务器市场总量大约为8百万台,前十名的互联网公司每年服务器采购总量估计在2百万台左右。因此云服务器大约占了采购量的20%。当这么强大的购买力被集中在少数几个买家的时候,买家的话语权就很强大。这在硬件系统级产品上得到了充分体现,就是互联网公司的利益最大化,而OEM硬件供应商被压缩到几乎亏损的境地(也直接导致了几个硬件OEM巨头的萎缩)。但是Intel由于在服务器CPU上的不二选择的地位,并没有感受到同等的压缩。因此互联网公司需要引入x86以外的CPU选择,从而继续压缩CPU的成本。当然,这一切要在前面提到的软件构架师的关切都被兼顾的前提下才能得到逐步实施。因此,5年来非x86微服务器一直就是雷声大雨点小,几乎没有见到规模部署。而第一轮投资这个领域的现行者已开始破产关门(Calxeda)。
在此大前提下,出现了Google/IBM宣布的Power PC的联盟。还有充斥国内外媒体的ARM微服务器。
我们来试图分析一下ARM进军服务器市场的胜算。基于前面的理论分析和假设,我们认为ARM和x86在同等级的CPU上,性能、成本、功耗等基本面上没有本质差别。差异化只能出现在两个方面:提供非Intel的第二选择,产品定位在不同等级上。第一点不用多说,第二点是许多芯片厂商正在尝试的。不同的等级体现在多个方面,例如采用不同的SOC组合、提供网络接口、存储接口的集成。这些SOC可能在特定的用途领域取得很好的成绩(如PMC的Storage SOC产品线)以实现相对专用的硬件系统。但是在通用领域,它面临Intel的持续向低端覆盖的压力(Avaton, ATOM)。
对于提供ARM核IP的ARM Technology来说,我们来算一笔帐:假设它能覆盖的市场总量为1000万个CPU,CPU的平均售价为200美金,那整个CPU的TAM= 2BUSD.基于目前ARM通过IPLicense来获利的商业模式,它能获取的TAM= 2B * 3% = 60M USD。也就是在最佳情况(ARM完全取代Intel)下, ARM Technology 可从服务器市场中得到6千万美金的收入,熟悉芯片行业的人都知道这绝对不足以支付高性能CPU研发团队所需的每年持续投入。也就是说,除非ARM采用不同的商业模式,在服务器市场上,它难以直接盈利。
那看看其他芯片厂商的玩家,有的采用了ARM Technology的核心IP,有的获取了ARM指令集授权,完全独立地开发ARM CPU。从前面的分析看来,采用核心IP的厂商恐怕难以长期生存,根本原因在于ARM Technology不能在不盈利的情况下持续开发提供有竞争力的服务器等级的CPU核供第三方集成。独立开发ARM核的厂商则可能有长期生存的空间,但这是个群雄逐鹿的时代,差异化完全在执行层面,即看看哪家的气功练(即开发和销售高性能CPU的能力)可以和Intel持续抗衡并且持续盈利。
这些探讨,已远远超出作者服务的公司的产品领域,更像是江湖术士在空谈战国争霸的宏图大略。在中国,关切这些话题的行业还基本在婴儿期。联想起乔布斯帮主去世时,电视上国内领导和高校校长们有关中国如何“创新”、“扶持硅谷”的谈话。这些才是官本位的空谈,创新本来就存在,只要有合适的土壤就能发芽,硅谷有何曾被扶持过,乔布斯恐怕也没有上过名校的创新教育的课程。
分享这些术士之见,无非是想结交些有共同兴趣的同行,以彼此勉励。软硬工程师们能脱离宗派之间,克服恐惧心理,多看看跨越阴阳二界的基本面,作些有关潮流和破除潮流的思考。硅谷也不过是集中了几十万个术士,让他们心心相惜,彼此契合的地方。
时逢清华校庆,当年华山论剑的校友们,今已各赴前程。借此致敬,并希望今天在练剑宗或气宗的网友,能继续练武功,不要轻易转销售哦。