近来,越来越多的芯片开源项目引起了大家的关注。开源指令集RISC-V的旗舰公司SiFive刚完成5000万美元的新一轮融资,而Nvidia的开源NVDLA则宣布与ARM进行深度合作,将进入ARM的Trillium人工智能硬件平台。开源是否会成为下一代芯片设计的新范式?
一直以来,硅工和码农孰优孰劣都是一个很有趣的话题,其实类似讨论的背后也反映出了软件行业和芯片行业的区别。软件行业有“不要重新发明轮子”的说法,因为软件行业可以方便地实现设计复用,之前设计的代码可以方便地使用到新的设计中。而开源项目的出现更是加快了软件行业的开发周期,因为公司只需要把主要精力集中到整体项目中最核心的那部分就行,其他的周边都可以用开源代码完成,避免了反复劳动,大大提升了效率。开源不仅对公司有利,对于整体工程师社区也很有帮助,因为工程师可以用业余时间去做开源项目,这样能大大开阔其技术视野并紧跟技术前沿潮流,并且通过开源项目可以与其他工程师交流。因此,我们看到的软件行业是一个快速实施,快速迭代且工程师社区相当健全的行业,这一切都离不开开源项目的支持。
芯片行业就远远不是这样。与软件项目相比,芯片设计出了bug很难有补救的机会,因此每个模块的设计和验证都要付出很大代价,这也让开源项目在传统芯片行业难以找到位置。设计复用的概念一般仅存在于同一家公司之中,根本不存在软件行业这样的全行业设计复用,因此新公司成立时往往要首先自己把轮子造一遍,这就大大降低了芯片设计行业的整体效率。
在过去的十几年里,半导体芯片行业的趋势还是打造一个能兼容大部分应用的大一统平台(例如PC时代的Intel处理器以及移动时代的Qualcomm Snapdragon),并且该平台随着半导体工艺节点的改进能跟上应用的需求。打造通用平台式大芯片的厂商通常是半导体巨头,整个公司都围绕一两款核心产品,而且有雄厚的实力能支持基础模块的独立研发和维护, 因此设计复用不是大问题。然而,随着摩尔定律接近尾声,这样的通用型平台芯片的性能已经难以改进,难以跟上应用需求的不断进步。取而代之的是异构计算的模式——针对每个应用都有专门优化的从底层硬件到上层软件接口设计,从而保证用底层芯片和硬件级设计上的更新(而不是靠半导体工艺的革新)来跟上应用需求的提升。
这样一来,整个芯片市场就不再是围绕一两款核心芯片平台展开,而是会成为一个长尾市场,各路小公司纷纷出现占领各种应用市场,而大公司也不能再围绕一两款产品而必须拉长战线开发各类产品。物联网就是一个典型的此类市场,对于功耗的严格限制使得效率较低的通用平台无法满足物联网应用,而取而代之的是为各种应用量身定做的芯片。因此,传统芯片设计流程中的设计复用问题在摩尔定律走到瓶颈的时候就成了一个大问题,如何在设计定制化芯片的时候尽可能复用之前已经有人做过的设计,而只在核心要点上做定制以减小设计成本加速上市时间成了半导体公司的痛点,尤其是资源非常有限的小公司。可以说,在异构计算的时代,能满足市场各种细分需求的半导体小公司将成为整个半导体生态中非常重要的一环。这些小公司犹如森林里的灌木丛,虽然不像巨头一样是半导体行业的标志性苍天巨木,但是整个森林生态能否繁荣却很大程度上取决于灌木丛能否健康生长。而现在的开源芯片,就是这些灌木丛的养料——可以说,开源芯片生态有可能是决定未来半导体行业能否继续繁荣的关键!
开源芯片项目的历史其实已经很久了。早在1999年,OpenCores就开始了一系列开源芯片项目,包括OpenRISC,Wishbone等等。然而,开源芯片项目其实也是有门槛的,项目的参与度和成熟度一定要过了某个阈值才能获得广泛认可进入正循环。这是因为芯片一旦流片后有bug修正起来的成本就很高,因此如果开源项目的成熟度不高,那么公司宁可让自己的员工重新做设计,也不会去冒险使用开源设计。这就要求开源芯片项目必须有一个强有力的组织在背后提供足够支持,包括代码的仿真验证甚至流片验证等等,而之前的开源项目始终没有能跨过这样一个门槛,因此没有得到广泛应用,更不用说形成生态了。
RISC-V是加州大学伯克利分校开源的处理器指令集项目,项目的背后主导者是David Patterson,是RISC指令集的开创者之一,也是微处理器架构领域的宗师级人物。Patterson教授深感芯片设计领域的低效率以及社区建设不成熟,于是将在伯克利开发的第五代RISC指令集作为开源项目推出(RISC-V中的V是罗马数字五,指的就是第五代RISC)。更重要的是,RISC-V项目是迄今为止芯片领域最认真的开源项目,其前前后后都经过深思熟虑,为了推广生态成了的RISC-V基金会获得了业界广泛支持也汇集了诸多资源,项目的质量远高于之前的开源芯片项目,因此目前已经取得了很大成功。
RISC-V生态已经获得了众多半导体业界巨头的支持,离大规模应用并不遥远
首先,RISC-V核心开源项目并不是一个具体的软硬核,而是指令集。指令集是一个很好的开源目标。因为指令集对于处理器来说至关重要,但是又不直接设计具体实现,因此用户有很多灵活性,可以很轻松地在开源指令集的基础上做自己的定制。另一方面,指令集较为抽象,验证较容易,有成熟的性能仿真工具,不需要使用复杂的EDA工具就可以参与。而且目前来看,业界对于开源指令集确实是有非常强的需求。ARM和x86作为两套商业的指令集并不开源,但是随着物联网和异构计算的快速发展,半导体业界会需要大量低成本高质量且设计灵活的处理器核,这样RISC-V的指令集就满足了这些新的设计趋势。RISC-V社区以指令集为核心,还开发了一系列衍生的开源项目,包括使用RISC-V指令集的开源软核,乃至一些周边互联IP等等。
另外,RISC-V抓住了核心指令集,可以快速推进生态。RISC-V组织提供经过验证的开源指令集, 如果需要硬件实现可以有入门级的免费开源芯片设计,也可以有高质量经过流片验证的硬软核IP,从而整个行业各取所需。例如大公司出于版权和时间考量没有自己的指令集,但是有资源设计具体处理器核并做一些定制,因此可以用指令集而用公司资源设计电路。中小公司需要硬软核,可以根据需求使用简单开源核或者付费使用一些高级核心。IP公司可以提供RISC-V软硬核设计而获利。这样整个生态环境能能搭建起来。我们目前已经看到了许多大公司在使用RISC-V指令集(包括Nvidia这样的巨头),也看到了基于RISC-V做设计或提供IP的初创公司如雨后春笋一般出现。
可以说目前RISC-V生态已经初见雏形,未来发展空间巨大,RISC-V可望被应用在从IoT到高性能计算在内的各种场景中。例如,RISC-V一个重要的应用场景就是IoT中的MCU。随着IoT终端设备的快速普及,相关的MCU需求量也随之上升,而且MCU指令位宽也处于转到32-bit的潮流中。相比于传统的基于ARM核心的32-bit MCU,基于RISC-V的32-bit MCU无需支付授权费用,因此成本可以做到更适合IoT。另外,随着边缘计算的流行,基于RISC-V的MCU可扩展性更好,可以较容易地加入边缘计算特性,这一点也成为了RISC-V MCU的一大亮点。未来如何在指令集中加入矢量计算、深度学习加速等和边缘计算相关的新特性并将其标准化将是RISC-V生态社区中的重要事件,甚至会决定未来MCU等相关处理器的格局。
之前RISC-V旗舰企业SiFive获得5000万美金风险投资,而在SiFive投资人名单中,刚在美国上市的华米作为领投方赫然在列。这也说明了以华米为代表的IoT类消费电子公司对于RISC-V体系的押注:他们重金投资SiFive,并不仅仅是为了从SiFive那里获得MCU芯片或处理器IP,更关键的是能获得RISC-V生态中的话语权,从而对于IoT类消费电子中举足轻重的MCU市场施加自己的影响,其战略眼光可谓深远。而随着华米等消费电子厂商的入局,RISC-V也将会与终端市场结合更紧密,真正走入各大电子产品中。
除了SiFive之外,RISC-V生态中的整个生态链上其他公司的发展也很不错。如前所述,RISC-V开发生态链上分为几类公司:第一类公司是用RISC-V作为SoC中的控制或处理器模块,或者说是用RISC-V架构开发IP给自己用;第二类公司是用RISC-V做处理器/MCU芯片,RISC-V是其处理器/MCU芯片的主要部分;第三类公司是做基于RISC-V的IP并授权给其他公司使用。第一类公司中,有Nvidia(使用RISC-V指令集做下一代GPU上的周边微控制器Falcon),西数(计划在下一代近存储计算芯片中使用RISC-V核,并宣布预计每年将出货10亿片以上使用RISC-V的芯片)这样的巨头,也有OURS(使用RISC-V和LiDAR集成在一块SoC上)这样的后起之秀。
第二类公司中,有Greenwaves这样采用多核RISC-V做高效率边缘计算MCU的初创公司,而且预计未来会有更多使用RISC-V MCU的初创公司进入市场,因为在MCU这样对于成本非常敏感的市场,RISC-V的开源无授权费相对于ARM是一个重要优势。第三类公司包括Microsemi,CEVA,Andes等公司,它们都已经发布了基于RISC-V的IP。我们预期在2018年,市场上就能看到许多使用RISC-V的芯片产品,而且在接下来的数年内RISC-V将会在一些细分应用(如低成本32-bit MCU)中占据优势。
最后必须指出的是,RISC-V对于中国半导体行业来说也是一个巨大的机会。处理器对于中国来说一直是一块短板,因为处理器需要长期的技术积累,所以虽然这几年中国半导体可以说是突飞猛进,但是之前在处理器领域的落后却不是一朝一夕能追上的。所以即使到了今天,中国仍然没法拿出一款令人满意的具有完整知识产权的处理器,知识产权仍然主要掌握在Intel,ARM等巨头手里。而随着RISC-V开源处理器的出现,所有人在RISC-V领域都处于同一起跑线上,因此中国公司和科研机构完全有机会利用开源的RISC-V做出具有完整知识产权而且性能处于全球领先地位的处理器,从而令中国半导体行业的版图能填补上处理器的空白。可喜的是,在RISC-V基金会中,我们看到了华为,中科院计算所等来自中国的公司和机构的身影,我们希望未来中国力量在RISC-V生态中产生举足轻重的作用!
Nvidia在去年公布了开源项目NVDLA,这个项目是面向终端SoC的深度学习推理(inference)加速IP。近年来,Nvidia在人工智能领域获得了巨大的成功,时至今日人工智能事实上已经成为了Nvidia股价的支撑点。然而,Nvidia的GPU虽然在云端人工智能应用中获得了巨大成功,但是在移动终端却始终乏力。在移动端最大的手机市场,Nvidia的Tegra系列SoC始终没法打开局面,只能眼睁睁看着手机人工智能芯片市场被传统ARM Mali以及新一代寒武纪NPU等占领;在手机端之外的无人机、安防摄像头等应用场景,Nvidia虽然发布了TX系列,但是其高昂的售价以及较高的功耗(10W左右)始终在限制Nvidia在移动端的占有率。另一方面,移动端人工智能的市场需求是巨大的,Nvidia不去占领就会有其他公司去占领,所以我们看到了许多面向终端人工智能的芯片初创公司在近几年纷纷出现。
NVDLA + Project Trillium,Nvidia和ARM两大巨头由此成为了合作伙伴
在这样一种情况下,Nvidia并没有和移动端的其他公司硬杠,而是发布了开源NVDLA供大家免费试用,从而把自己的生态蔓延到移动端。Nvidia如果想亲自占领每一个终端芯片市场,就必须增设多条产品线(摄像头,语音,智能家电…),每款芯片在拥有深度学习加速的同时还要兼容这些芯片的原有功能,另外还要面临这些市场里的原有芯片公司的竞争, 反而无法集中精力把自己最擅长的深度学习加速做好。Nvidia的思路是既然自己没有办法照顾到每个移动端市场,那么不妨开源IP,让有需要的SoC厂商自己去按照需求修改。使用IP不用付费,但是归根到底还是会使用Nvidia生态下的其他工具,例如用CUDA去编写程序,用TensorRT去优化深度学习模型等等。事实上,Nvidia只求能把生态覆盖到移动端,至于是否要在移动端收费并不重要——反正你在Nvidia的生态环境中早晚是要付真金白银给Nvidia的。
而且这么一来,和很多厂商就能化干戈为玉帛,本来会成为竞争对手的厂商现在反而会和Nvidia结成同盟。ARM就是一个很好的例子,如果Nvidia自己做移动端势必和ARM是竞争关系,但是现在Nvidia开源了NVDLA,于是就和ARM成了合作关系,NVDLA还进入了ARM的Trillium人工智能平台,由ARM帮忙站台宣传。
开源芯片项目是未来芯片设计行业的重要趋势,因为它从本质上解决了芯片设计周期长,设计无法复用的效率问题。开源项目一旦背后有足够的支持,就能实现足够好的品质,从而被广泛使用并进入正循环。RISC-V和NVDLA是两个重要的开源芯片项目的例子。RISC-V开源了以指令集为核心的一系列IP,在RISC-V基金会的帮助下成功建立了自己的生态,预期在未来的异构计算和IoT领域都会得到广泛应用。NVDLA则是Nvidia使用生态打法覆盖移动端的尝试,可谓是四两拨千斤,用一个开源IP就能将众多移动端SoC厂商纳入自己的生态中。我们希望在未来看到更多这样高质量的开源芯片项目,从而为芯片设计行业带来新的发展方向。
(本文转载自微信公众号矽说)