2019年7月,阿里巴巴旗下半导体公司平头哥正式发布玄铁910,打出“业内最强处理器之一”的口号,号称性能比肩arm v8架构cortex a7x系列。
围观群众一面沸腾叫好,一面互相打听:risc-v是啥?
cpu本质是一块集中了不同功能电路的芯片,要使用这些功能电路,cpu需要调用对应的指令——也就是由0、1组成的二进制数。而用来规定指令格式的东西就叫做指令集架构(一般简称为架构),不同的架构反映了设计者对同一功能的不同实现思路,risc-v就是全球前三大指令集架构。
不过这个“全球前三大”可谓水分十足。另外两大指令集中,由英特尔主导的x86架构应用于绝大部分pc和服务器;英国公司arm的arm架构则用于全球99%以上的智能手机。
相比之下,risc-v虽然排名上紧随其后,但实际的份额还不到前两者的零头。
而这三种架构,又分别代表了三种经营模式:
x86架构由英特尔和amd牢牢掌握话语权,其他芯片公司想用也用不了;
arm架构虽然由arm公司所有,但授权开放,需要花钱购买;
risc-v最特殊,不属于任何机构或国家,开源免费,想用就用,运营成本全靠基金会的兄弟们帮衬。
在这个语境下,risc-v之于2019年的中国公司的意义就不难理解。
当时,国内半导体产业初尝制裁大棒,risc-v基金会恰好又将总部从美国迁至中立国瑞士,原因是“担心可能出现的地缘政治破坏”,其免费开源的特点,意味着没有人可以以“国家安全”为托词,限制他人使用risc-v。
risc-v成立之初,基金会的中方成员只有阿里巴巴、华为和中科院计算所,到了2022年中,基金会19个高级会员里,中国大陆芯片企业占据12个席位。
春风亦如边鼓,催促着risc-v备胎转正。然而四年过去,risc-v似乎依然没走出备胎的困境。
合格的备胎
三大指令集中,x86为复杂指令集架构(cisc),arm和risc-v为精简指令集架构(risc)。两者的区别顾名思义:
cisc尽可能将任务一次性做完,高效但费脑(性能高、功耗大),risc则是将任务拆解,分次做完,虽然对个人能力要求不高(性能低、功耗小),代价是效率更低。
1985年,英国公司艾康电脑开发出arm架构,恰逢苹果自研芯片,双方一拍即合,arm公司由此诞生。没想到熬了快20年,直到凭借iphone的a系列芯片横空出世,arm架构才在移动处理器市场熬出了头。
risc-v的发展更为曲折。risc架构最由图灵奖得主、当前谷歌tpu团队负责人david patterson在1971年发明,随后经历了risc-i到risc-iv四代,却始终未能得到重视。
david patterson(左),1981年
2010年,加州大学伯克利分校krste asanović教授决定开发一个开放原始代码的电脑系统,x86不在考虑范围内,arm费用太高,于是便找来david patterson,risc-v由此诞生。
“开源”、“可修改”,几乎可以概括risc-v本质上与arm的区别:
如果以武侠小说中的“功法”来比喻芯片架构,arm是武林秘籍,外人可以花钱看,但不能随便改;risc-v可能只是某个武林高手的练功心得,可供各路好汉不断修订。
可修改的好处在过去一直很难体现,但随着软件定义产品的时代到来,根据软件定制芯片的需求越发旺盛,尤其是物联网和汽车领域,芯片架构的灵活性,可以帮助终端厂商平衡性能和成本。
不过更现实的意义是,由于risc-v开源免费,也不挂靠在任何机构下,从根本上杜绝了“卡脖子”的可能性。2015年,伯克利团队宣布成立risc-v基金会,把中立的宗旨摆在了台面上。risc-v由此成为了担忧“架构霸权”的开发者的隐藏备胎。
2019年前后,美国制裁大棒袭来,risc-v的“备胎”地位迅速凸显。除了前文的平头哥,小米供应链的华米科技、华为海思等公司,都有基于risc-v架构的芯片产品,一时间,risc-v在中国风头无两。
而且,打着risc-v“备胎”主意的,并不只是中国芯片公司。
arm不是“活菩萨”
2022年8月,arm一纸诉讼把大客户高通告上法庭,导火索是高通刚刚收购的nuvia。后者由苹果和谷歌的芯片工程师组建,获得arm授权后开发了一系列高性能cpu内核,被高通相中。
根据高通原本的计划,这一年年末将推出基于nuvia技术的定制cpu内核“oryon”,用于更高性能的骁龙soc平台中,在pc市场对抗苹果m系列。
但arm不干了,声称高通采用nuvia基于arm授权(于2022年3月停止授权)的技术侵犯自己的利益,要求高通要么销毁芯片,要么给予经济补偿。
arm授权协议分为两种:*种是技术许可协议(tla),客户购买arm的ip,可做部分修改,典型代表就是高通的骁龙系列;
第二种是架构许可协议(ala),客户购买arm指令集架构,在此基础上开发ip及处理器内核,典型代表是苹果,矛盾中心的nuvia也属此类。
这场纠纷的核心矛盾在于:被收购前的nuvia已经与arm签订了ala,并基于arm架构开发了ip。高通认为,自己与arm已经签订的tla,有权力直接使用nuvia的ip,arm却认为高通需事先取得自己的同意(再交钱),或者直接再付一笔费用。
这件事情在一定程度上暴露了arm的脆弱性:虽然贵为移动终端的基础设施,却没有对应的“征税权”。
芯片架构的地位更多来自“生态”:即有多少下游客户愿意采用这种架构设计芯片。
x86的成功就来自英特尔对兼容性的坚持。上世纪80年代,东京大学教授坂村健以日本政府it顾问的身份,提出了一个雄心勃勃的tron计划,意在建立一个日本版的cpu 操作系统生态。但不同于英特尔的兼容路线,坂村健认为英特尔为了兼容性牺牲了cpu的性能,应该从零开始开发架构、搭建生态。
显然,英特尔的路线笑到了最后。和tron一样,ibm的power架构也选择了牺牲兼容追求性能的思路,同样败给了英特尔。
“生态”的壁垒在于“双边规模效应”:以arm为例,采用arm架构的芯片越多,围绕在arm架构的软件开发者和用户也就越多,反过来新的芯片公司和开发者也就更倾向于arm架构。
举一个类似的例子:如果美团的用户越多,那么商户就更倾向于入驻美团;而商户变多后,用户也就越倾向于使用美团。但有一个关键前提——美团的配送费和佣金维持在合理的区间。
而且,美团的客户大部分是中小型商家,而arm的客户都是有钱有势的芯片巨头。
归根结底,arm架构更像是芯片公司投票选出来的代表,一旦arm坐地起价或抢生意(他们已经在这么做了),芯片公司就有动力投票选个新代表。
与arm同样依赖“生态”的是android系统和英伟达的cuda,前者是开源的,后者理论上也是免费的,只是与英伟达的gpu绑定。这个时候,risc-v免费开源的好处就体现出来了。
risc-v,再次获选
如今的risc-v基金会可谓群星云集,除了在社区时期就已入局的谷歌、ibm等,现在还有英伟达、镁光、恩智浦、西部数据,加上受arm“迫害”最严重的高通,芯片设计公司转投risc-v的意愿肉眼可见。
risc-v基金会成员;图片来源:semiwiki
最近,高通联手恩智浦、英飞凌等多家汽车芯片巨头在德国成立公司,目标是推广risc-v架构芯片,*目标是汽车芯片,然后凯发k8国际首页登录的业务范围将逐渐扩大到移动和物联网领域。
另一个被认为很可能决定了risc-v发展走向的入局者是传奇人物jim keller。
作为硅谷一段活着的传说,jim keller在90年代末主持了amd athlon系列处理器的研发,凭借一己之力把让amd和英特尔平起平坐,一度使得英特尔放弃了4ghz奔腾4的开发计划。
跳槽到苹果后(pa半导体,2008年被苹果收购),jim keller又打造了a系列处理器的开山之作a4。后来jim keller重回amd,领导开发zen架构处理器成功逆袭英特尔。
2020年,跳槽积极分子jim keller从英特尔毕业,可能是硅谷大公司能待的都待过了,jim keller转头加入了一家名不见经传的加拿大初创企业tenstorrent。
这家公司主要生产采用risc-v架构的ai芯片,jim keller以cto的身份入职,三年后转为ceo——这是他职业生涯*次担任ceo。
jim keller的入局给risc-v的备胎转正之路增添了不少底气,但另一家公司的前车之鉴告诉我们,备胎上位没那么简单。
mips的教训
在risc-v出现前,arm的*对手是mips。
mips与arm、risc-v溯本同源,均为上文提及的risc架构,也都诞生在pc开始普及的80年代。英国爱康公司着手研发arm架构同时,斯坦福大学前校长john leroy hennessy与他的团队一起创立了mips,双方均在1985年推出了各自的*代架构。
当爱康依靠*的苹果订单惶惶度日时,mips已初尝商业化果实,1988年推出的第三款产品r3000销售过亿,并借由索尼playstation打入游戏机市场。随后又发布了*64位处理器r4000,进入服务器和超级计算机市场,成为x86头号威胁。
然而,mips此后却一直走下坡路,控制权在二十多年间多次易手。2018年,从imagenation手中收购了mips的wave computing取消授权费用,效仿risc-v将mips架构完全免费开源,也难挽颓势。最后wave computing宣布终止开发,加入risc-v基金会。
mips和arm都有ip授权和架构授权两种授权模式,但双方的思路差别很大:
arm倾向于客户在不改动架构的情况下、直接采用ip搭建芯片,mips则鼓励客户做架构创新。
mips的理念看似给了开发者*程度的自由,却无形中垫高了芯片设计的门槛。
如果把芯片设计比作搭积木,arm的方案是做好各种各样的零件让消费者自行拼装;mips的方案则是直接给消费者各种各样的木头,让他们自己设计零件,难度可想而知。
此外,架构的确定,相当于给硬件、软件确立了一个通用的规则,遵循这个规则设计出来的芯片、操作系统、软件等,可以排列组合,最多做一些接口的改动,便可相互适配。
而mips鼓励架构授权,支持客户添加、修改指令,实际上便是对通用规则(标准化)一定程度的放弃,造成“碎片化”,也就是产业链各环节各自为政,无法“共同富裕”。一个架构往往改来改去变成了忒修斯之船,生态就更难建设。
mips和risc-v都属于开源架构,risc-v还是免费的。虽然开发者准入门槛降低了,但这反而可能导致更严重的指令集架构碎片化。
因此,risc-v阵营的支持者们,也一直试图在定制化和标准化之间做平衡:
一种思路,是将“无限的自由”转变为“有限的自由”:
比如提出指令集修改规范,这种规范需要*程度地考虑软件的兼容性,并鼓励硬件开发者对指令的修改按照这种规范进行,以此解决架构开源带来的软、硬件不兼容问题。
一个典型的例子是阿里平头哥玄铁c908,就通过了risc-v根据其指令集修改规范设置的兼容性测试,这意味着大部分第三方软件开发者都不需要担心软件不适配的问题。
另一种思路,是完善基础指令集,使得开发者无需再进行增添修改:
比如risc-v会在开发者社区对实现某一种功能的指令热情度很高,那么基金会就会考虑将在基础的指令集架构中增添这种指令的标准版,开发者便不需要各自添补指令了。
目前,在risc-v基金会以及巨头成员们的有意引导下,两种思路都已经开始实施,但道阻且长。
参考资料
[1] why risc-v is succeding,semiengineering
[2]risc-v grows open source processor membership 130% in 2021,venturebeat
[3] 指令集、架构、处理器、内核,芯片之间的关系,csdn
[4] 都是精简指令集,risc-v拿什么挑战arm?与非网
[5] risc-v vs. arm vs. x86 – what’s the difference?microcontrollertips
[6]mips已死,转身投靠risc-v,csdn
[7]risc-v词条,维基百科
[8] mips词条,维基百科