芯片战争: 开源架构RISC-V前世今生
2020-10-08
来源:芯路芯语
至今,已有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是罗马字母,代表第五代的意思。因为伯克利分校的David Patterson教授在此之前已经研制了四代处理器芯片。
更关键的是,伯克利研究团队将RISC-V 指令集彻底开放,使用BSD License开源协议,这就使 RISC-V不像ARM、PowerPC 等指令集那样需要付费授权才能使用。而且 BSD 开源协议给予使用者很大自由,允许使用者修改和重新发布开源代码,也允许基于开源代码开发商业软件发布和销售。怎么说呢,像Linux 的GPL协议,就限制了商业公司的行为。而BSD开源协议则不同,苹果的iOS就基于BSD内核,但使用开源软件之后,因为BSD开源协议给了苹果很大的自由度,苹果依旧可以将iOS闭源并在商业市场赚钱。
对于大学和科研院所等学术机构来说,RISC-V 也是非常有价值的。中科院计算所包云岗研究员团队在做一个项目时,最初选择了SUN的Open Sparc T1,然而这款处理器的社区活跃度和软件支持都不行,而且独立性比较差。然后又选择了Micro Blaze,然而这款处理器却不开源。最后把目光转向了RISC-V并完成了科研项目。相关技术成果被华为用在海思的ARM服务器CPU上。
正是因为RISC-V选择了对商业公司非常友好的BSD开源协议,以及RISC-V 兼具精简和灵活等优点,众多商业公司纷纷关注 RISC-V。
RV12 RISC-V 处理器
RISC-V有望复制Linux 的成功。目前,在CPU上,X86和ARM是两大霸主。然而这两位霸主都非常霸道,英特尔根本不允许除AMD和VIA之外的任何一家公司使用 X86 指令集,而且一旦AMD被收购,X86 指令集授权都要重新谈判。即便是全美达想通过翻译打插边球,结果也被英特尔用专利诉讼拖死了。
类似的,ARM虽然比英特尔好一些,但也仅仅是好一些而已。在指令集授权上也非常吝啬,获得ARM32授权的公司一只手都能数的过来,ARM64授权虽然多一些,但授权费却异常昂贵,法国芯片创业公司Greenwave 表示,他们如果使用ARM架构,要花掉1500万美元的授权费。而且授权到期后,是否继续授权和授权费用都要重新谈判。
正是因为X86和ARM在授权上异常苛刻,很多大公司都对英特尔和ARM非常不满,而这恰恰给了RISC-V 这样的后起之秀机会。包括谷歌、华为、IBM、镁光、英伟达、高通、三星、西部数据等商业公司,以及加州大学伯克利分校、麻省理工学院、普林斯顿大学、ETH Zurich、印度理工学院、洛伦兹国家实验室、新加坡南洋理工大学以及中科院计算所等学术机构纷纷加盟 RISC-V。在 2017年11月召开的第7届 RISC-V Workshop 上,全球共有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,与ARM Cortex-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争雄的水平。