不久前,特斯拉加入RISC-V基金会,并考虑在新款芯片中使用免费的RISC-V设计。至此,已有IBM、NXP、西部数据、英伟达、高通、三星、谷歌、华为等100多家科技公司加入RISC-V阵营。
出现这种现象的原因一方面是由于ARM的授权费用实在太贵了,另一方面也是由于RISC-V提供指令集彻底开放,非常有希望成为CPU领域的Linux。正是由于看好RISC-V的未来,不少科技巨头在RISC-V还是潜力股的时候趁早下注。
RISC-V的诞生
在2010年,加州大学伯克利分校的一个研究团队正在准备启动一个新项目,而要设计CPU,必然要选中一种指令集,然而,X86指令集被英特尔控制的死死的,ARM的指令集授权费又非常贵,MIPS、SPARC、PowerPC也存在知识产权故障。
在这种情况下,伯克利的研究团队决定从零开始设计一套全新的指令集。且这款新指令集要能满足从微控制器到超级计算机等各种尺寸的解决器。正如行业内常说的,设计一套指令集并非黑科技,用这套指令集去实现CPU才是真正具有含金量的工作。伯克利的研究团队直用了3个月就完成了RISC-V的指令集开发,并公开发布了第一版指令集。
该指令集的第一个版本只包含了不到50条指令,可以用于实现一个具备定点运算和特权模式等基本功能的解决器。如果网友需要的话,也可以依据自己的需求自定义新指令。
这样一来,这套指令集兼具精简和灵活两大特点。随后,伯克利的研究团队将这个新指令集命名为RISC-V,RISC指的是精简指令集的意思,V是罗马字母,代表第五代的意思。由于伯克利分校的DavidPatterson教授在此之前已经研制了四代解决器芯片。
更关键的是,伯克利研究团队将RISC-V指令集彻底开放,使用BSDLicense开源协议,这就使RISC-V不像ARM、PowerPC等指令集那样需要付费授权才能使用。而且BSD开源协议给予使用者很大自由,允许使用者修改和重头发布开源代码,也允许基于开源代码开发商业软件发布和销售。如何说呢,像Linux的GPL协议,就限制了商业公司的行为。而BSD开源协议则不同,苹果的iOS就基于BSD内核,但使用开源软件以后,由于BSD开源协议给了苹果很大的自由度,苹果依旧可以将iOS闭源并在商业市场赚钱。
对于大学和科研院所等学术机构来说,RISC-V也是非常有价值的。中科院计算所包云岗研究员团队在做一个项目时,最初选中了SUN的OpenSparcT1,然而这款解决器的社区活跃度和软件支持都不行,而且独立性比较差。然后又选中了MicroBlaze,然而这款解决器却不开源。最后把目光转向了RISC-V,并完成了科研项目。相关技术成果被华为用在海思的ARM服务器CPU上。
正是由于RISC-V选中了对商业公司非常友好的BSD开源协议,以及RISC-V兼具精简和灵活等优点,众多商业公司纷纷关注RISC-V。
RV12RISC-V解决器
RISC-V有望复制Linux的成功
目前,在CPU上,X86和ARM是两大霸主。然而这两位霸主都非常霸道,英特尔根本不允许除AMD和VIA之外的一点一家公司使用X86指令集,而且一旦AMD被收购,X86指令集授权都要重头谈判。即便是全美达想通过翻译打插边球,结果也被英特尔用专利诉讼拖死了。
类似的,ARM虽然比英特尔好一些,但也仅仅是好一些而已。在指令集授权上也非常吝啬,获取ARM32授权的公司一只手都能数的过来,ARM64授权虽然多一些,但授权费却异常昂贵,法国芯片创业公司Greenwave表示,他们如果使用ARM架构,要花掉1500万美元的授权费。而且授权到期后,是不继续授权和授权费用都要重头谈判。
正是由于X86和ARM在授权上异常苛刻,许多大公司都对英特尔和ARM非常不满,而这恰恰给了RISC-V这样的后起之秀机会。包括谷歌、华为、IBM、镁光、英伟达、高通、三星、西部数据等商业公司,以及加州大学伯克利分校、麻省理工学院、普林斯顿大学、ETHZurich、印度理工学院、洛伦兹国家实验室、新加坡南洋理工大学以及中科院计算所等学术机构纷纷加盟RISC-V。在2017年11月召开的第7届RISC-VWorkshop上,全球共有138个公司、35所大学与研究机构参会。
除了商业公司和学术机构之外,印度政府更是对RISC-V情有独钟。在2011年,印度开始实施解决器战略计划,在全国范围资助2-3个研制解决器的项目。印度理工学院马德拉斯分校的G.S.Madhusudan与V.Kamakoti教授在该计划支持下启动了SHAKTI解决器项目。SHAKTI项目就选中了RISC-V,并获取印度政府超过9000万美元的经费支持。
在2016年,印度先进计算发展中心获取印度电子信息技术部4500万美元的资助,目标研制一款基于RISC-V指令集的2GHz四核解决器。
在过去数年中,印度政府资助的解决器相关项目都开始向RISC-V靠拢,RISC-V成为了印度的事实国家指令集。
目前,伯克利研究团队已经完成了基于RISC-V指令集的顺序执行的64位解决器核心(代号为Rocket),并前后基于45nm与28nm工艺进行了12次流片。Rocket芯片主频大于1GHz,与ARMCortex-A5相比,实测性能较之高10%,面积效率高49%,单位频率动态功耗仅为Cortex-A5的43%。在嵌入式领域,Rocket已经可以和ARM争市场了。
正是因此,西部数据声明,每年将使用10亿个RISC-V核;英伟达也宣布,将把RISC-V用于GPU内部的控制器。美国DARPA也资助一些公司基于RISC-V设计航天器的宇航芯片;还有众多商业公司计划基于RISC-V开发面向IoT的智能芯片,面向安全的芯片,以及服务器上的主板管理控制器等。在软件生态方面,也逐步在完善,比如调试工具链、中断控制器、JVM、LLVM、Python等开发者常用的软件工具都在完善之中。
正是依靠开源和免费,全世界的商业公司、学术机构都可以开发兼容RISC-V指令集的解决器,而且不需要支付一分钱的费用。这使RISC-V有望被全球的开发者广泛应用,并复制Linux的奇迹。何况RISC-V的BSD开源协议,比GPL协议对商业公司更加友好,使商业公司有很强的动力去推动这件事。
结语
诚然,依靠开源和免费,RISC-V非常受大学和科研院所青睐,并有望在教学领域大展拳脚,而这又会给RISC-V培养源源不断的后备军。对于商业公司来说,因为ARM的授权费实在是太贵了,也有较强的动力去做RISC-V,给自己留一个备份,避免被绑死在ARM上。
不过,RISC-V也存在一个隐忧,那就是缺乏强有力的主导者,进而导致破碎化的故障。当年的MIPS其实也非常学院派,MIPS阵营的商业公司可以自由添加指令,比如龙芯就以MIPS为基础添加了1000多条新指令,进而造成了自己的指令集LoongISA。这又使开发软件的时候,即便同样属于MIPS,也必须分为龙芯版和MIPS版……
因为RISC-V也允许网友自己加新指令,这就有大概使RISC-V破碎化,也许未来华为、高通、谷歌开发出的RISC-V解决器虽然都属于RISC-V,但却不能跑同样一套软件。
毕竟完全开放与有力的领导是一对矛盾,如果没有法处理这个故障,恐怕RISC-V很难成长到能与X86和ARM争雄的水平。