听说ARM 目标在2020 年拿下两成的服务器市场。
喔齁。
这是遍布地雷的棘手主题,拿捏不好,就会随时引爆「x86 义和团」、「RISC 十字军」与「ARM 亲卫队」的疯狂大乱斗,为此拖稿了整整一周,拖到连塞给TechNews编辑的借口都用光了,所以各位不会在这里看到琳琅满目的技术名词,应该不会对目前市场上与发展中的ARM 服务器芯片品头论足,绝对不会出现随随便便赌上爷爷的名誉而做出盖棺论定的无责任预言,能让各位掌握87% 的全貌,就不算失败了。
大哉问:我要ARM 服务器干么?
现成的软硬件用得好好的,为什么要换?
选择服务器的处理器指令集架构,并不是什么宗教信仰,而是在商言商,有实际的好处和利益(或换句话说:没有明显的坏处和麻烦)。假设你身为公司的IT 人员,总不可能明着跟老板讲「因为从学生时代受的科班教育,让我不得不痛恨CISC 的x86,请赏赐我一大笔预算,把公司万恶的软硬件架构统统换掉」吧?
真的这么讨厌CISC 指令集,强烈建议这些RISC 十字军先去「讨伐」蓝色巨人IBM,为何Project ECLipz「传说」了这么久,雷声大雨点小,仅看到从Power6 和z6 开始共享部分处理器功能单元设计,见证Power 系统取代一大票占领银行核心帐务数十年、仍雄踞服务器世界顶峰的S/360 大型主机后代子孙之日,依旧遥遥无期。
你看看你看看,IBM 喊Power Everywhere 喊了这么久,搞到连苹果都跳船不用了。
回到主题,关于「Why ARM Server」,一般比较常见的下意识回覆,不外乎「ARM 芯片一定比较省电」、「ARM 芯片一定更便宜」、「ARM 生态系享有巨大的软件资源」、「需要Intel 以外的选择」等,但这些近似单细胞反应的「大哉答」,就像用过许久的Copy on Write 文件系统底层区块,根本就是一块块漏洞百出的过期乳酪。
为求谨慎起见,我们先假定要做出可以「完全取代」现行x86 体系的ARM 服务器芯片,看看这些大哉答有哪些显而易见的谬误。
ARM芯片比较省电:从时下的手机芯片和嵌入式系统角度来看,ARM的确比较省电,但一旦要做成兼具高复杂度的微架构核心与服务器等级的多核心芯片,众多追加的「外挂」,如恐龙化的非循序执行核心、单核心同时多执行绪、大型化的多阶层快取记忆体、部撑多处理器延展性的系统汇流排、连接不同类型装置的高速I /O介面等,就会稀释掉指令集本身复杂度带来的额外负担。
至今仍存活于市场上的IBM Power 和Oracle / Fujistu 的SPARC 就是最佳例证,根本省不到哪里去,效能功耗比能占到多少便宜也是一个大问号,反倒微架构设计需兼顾笔电市场的x86 体系,拜Intel 和AMD(与众多消失于历史洪流的小厂,像Cyrix)激烈竞争20 年之赐,反而在这方面还可以占到一些便宜。因市场需求庞大而享有至少领先一到两个世代的先进制程技术优势,更只会让所谓的「精简指令集优势」更荡然无存,20 年前服务器市场的演进和「RISC 诸神的黄昏」已经告诉我们答案了。
ARM芯片更便宜:同理可证,羊毛出在羊身上,这样做出来的东西真的比较便宜?x86体系有巨大的PC与笔电市场,部撑高效能设计的研发投资成本,但以手机市场为主的ARM还无福消受这样的现成利基,除非你愿意自我催眠硬凑现成CPU IP的多核心服务器芯片就是最好的解答,但很明显的,拥有Cortex-A57核心Opteron的AMD和ARM本家并不这么想。
就算硬件采购成本比较低,难道投资在早期评估、软件部署、效能调校、教育训练和承受潜在失败风险的成本就不是「成本」?
当然,设计x86 微架构时,不得不同时兼顾三者(近年的守备范围只会更广,所以才催生Intel 原子小金刚和AMD 山猫家族),也会造成很多设计取舍而无法完全满足特定应用的麻烦事,桌机和笔电市场的萎缩也是潜在的长期危机,这后面再好好谈谈。
ARM生态系享有巨大的软件资源:现在写手机App的人很多,IoT也喊得很响,不代表这些就是「可用的资产」,x86服务器的发展极度受惠于兼顾服务器与桌机应用的作业系统,如从Windows XP开始统一两者的Windows NT系统核心,与众多i386 Unix如Linux和FreeBSD等,以Android为首的手机作业系统可就没这么好运。
可能当下不乏跳出来抗议的有识之士:凭什么断定足以堪称典范转移的重大应用突破,绝不会发生在服务器市场?(原本我很想谈PS3 的Cell 处理器,原始专利提及的潜在应用模式,和Intel 过去在实验室内搞出来的花样,但我不想再增加这篇地雷文的复杂度了)况且又不是只有套装服务器,那么多狂盖大型数据中心的云端服务业者,他们难道不会自己关起门来搞吗?
还是先等有真正「好用」的芯片,再讲吧,这还涉及商业模式和整体持有成本的问题。请保持耐心,后面会提到。
需要Intel以外的选择:先不提AMD的x86产品线,为何非得要整个生态系统还五穷六绝的ARM不可?坚持非RISC不要,现成的IBM Oracle Fujistu难道不行吗?难不成要拿Android来当服务器作业系统?
呆伯特法则包含一条「天底下任何事物都有逻辑上的极限」,「因为ARM 服务器的生态系统尚未完备,只要假以时日,生态系日渐完整,就可一飞冲天,大展鸿图」。那我们就挑战逻辑的极限,假设今天世界上有一间公司,它有数十年的企业服务器经营经验,有庞大的有钱客户,有世界上最顶尖的商用软件解决方案,也有举世屈指可数的企业服务能量,更有领导业界的先进半导体制程与处理器研发能力;「反观」目前这票企图杀出一条血路的ARM 服务器芯片厂商,这间公司只要推出RISC 处理器并愿意用力推广,那早该征服世界了,最起码征服一大半服务器市场──但这件事连IBM 都做不到。
同场加映:关于拥护ARM服务器,笔者听过最瞎的理由,瞎到足以白眼翻到后脑勺去,莫过于「只要RISC指令集能用在服务器,处理器时脉跟得上,CISC的Intel就完蛋了。」根据个人考证,抱持此类「高论」者,87%属于智能型手机时代才突然冒出来,往往连什么是超纯量、指令集架构和处理器微架构的差异,都傻傻搞不清楚的「新锐计算机结构大师」。
根本轮不到ARM,光是计算机工业历史上实际应用在服务器的RISC 指令集就多如过江之鲫,但无不曾风华绝代:
- MIPS:SGI,Irix作业系统,玩3D绘图的老骨头不可能不久仰其大名,还跟当代某位很有钱的RISC大师颇有渊源。
- SPARC:Sun / Fujitsu,Solaris作业系统,普及率最高的商用Unix,好长一段时间都是Oracle数据库ERP跑最快的好所在。
- PA-RISC:HP,HP-UX作业系统,制造业用很凶,后来被Intel IA-64取代。
- Alpha:DEC,OpenVMS与Tru64作业系统,高效能RISC的象征,早期爱国者飞弹系统用的处理器家族,后来也被Intel IA-64取代。
- Power:IBM,AIX作业系统,在Power4处理器整合AS/400与PowerPC后,成为目前高效能处理器世界王者的唯一语言,与SPARC一同硕果仅存,伟大的「超纯量」一词,因它而生,虽然好像还有很多「大师」连近代处理器早就可以同时执行多个指令这件事都还一片茫然。1966年的CDC6600?1985年的IBM America Project?1993年的Intel Pentium?在光芒万丈、尖端科技的智能型手机前全部都是幻觉啦。
现今Windows