
详述RSIC-V的过去与未来
最近ARM禁售高性能IP的消息,引起了大家的强烈关注,若Arm无法供应最先进芯片设计,必将使Arm未来市场发展受挫。而对中国企业来说,也将是一大损失,但发展不能停。事实上,中美之间日益紧张的关系已经迫使一些中国芯片公司考虑使用一种开源替代方案来替代ARM的设计,称为RISC-V。下面的章节向大家详细介绍一下RISC-V来龙去脉。
开放指令集与开源芯片的兴起
芯片设计高门槛现状
芯片领域的创新门槛之高、投入之大业内公认。设计与制造一款芯片涉及多个环节,包括EDA开发环境搭建、外围IP模块选型、芯片前端逻辑设计、后端物理设计、流片与封装测试等,每个环节都需要巨额的资金与大量的人力投入。
以28nm工艺研制一款SoC芯片为例,比较完整的EDA工具版权费便超过500万元,购买内存控制器、PCIe控制器等外围IP费用往往高达500~1000万元,流片费用由芯片面积大小而定,但往往也会达到1000万,封装相对便宜,大约需要50万左右。简单估算,研制这款
芯片所需要的资金投入便已经超过2000万元。另一方面,芯片的研发往往需要数十位工程师,花上一年的时间来设计与验证,仅工资开销就需要上千万元。但是,芯片设计与验证时哪怕出现一个很小的错误,都有可能导致芯片最终无法工作。不光前期的投入打水漂,还不得不再花上千万元重新流片。
芯片领域的高门槛客观上严重阻碍了创新。在互联网领域,得益于开源软件,拥有创新想法的互联网初创公司,往往只需几百万元甚至几十万元,便可以在几个月时间内推出原型产品进行迭代优化。相比而言,芯片领域的初创公司却需要数千万的资金,而且迭代优化的时间周期很长,所以很难想象风险投资人愿意把资金投入到这类初创公司。
事实上,半导体、大规模集成电路发展的黄金期是上世纪六七十年代,当时芯片规模都很小、成本较低,却又具有很高的收益,吸引了美国、日本、中国台湾等大量优秀的人才投入到半导体领域创办公司,也吸引了大量资本投入到这个领域,但中国大陆错过了这个黄金时代。经过半个世纪的发展,少数发达国家和地区通过市场机制自然地形成了技术积累与产业优势,同时构建了极高的创新门槛,不仅让后来者追赶无望,也让芯片成为他们“卡别人脖子”的利器。
如今中国的半导体产业要想改变现状,已经很难完全依靠初创企业与风险资本来追赶了,必须通过必要的产业政策来引导。借鉴中国互联网产业的成功经验,降低芯片设计的创新门槛是关键。
传统芯片设计模式
传统的芯片设计模式是芯片开发者提出芯片设计目标,将需求分解为各个功能模块。通用性比较强的功能模块,比如处理器核、内存控制器、PCIe控制器、网络控制器、存储控制器、视频编解码器等,采取购买商用IP的形式获得。对于领域专用功能模块,可能没有商用IP可以采购或者出于技术保密考虑,采用自己研发的形式完成。在主要功能模块就绪之后,将所有功能模块采用总线形式进行互联。随后进入正常的芯片设计流程,即进行芯片的验证及后端设计开发。
传统芯片设计模式中包含大量的第三方商用IP并采用商用EDA工具开发,形成极高的开发门槛,极大限制了普通开发者的参与,不利于芯片开发的普及和创新。
开放指令集趋势
和开源软件对于中国互联网产业的作用类似,开源芯片生态如果能形成气候,则会大幅降低芯片领域创新门槛,将会对中国乃至全世界半导体产业产生深远和积极的影响。
构建开源芯片生态是伟大的理想,而基于RISC-V开放指令集的处理器有可能像Linux那样成为开源芯片生态的基石。但是,只有RISC-V又远远不够,还需要开源的EDA工具链、IP模块、工艺库等协同合作,才能实现真正的开源芯片生态。
这正如今天的开源软件生态除了Linux以外,还包括大量构建于Linux之上的其他开源工具与开源软件,例如GCC、LLVM、MySQL、Apache等。RISC-V还只是星星之火,但却已展露出燎原之潜力。从当前发展势头来看,RISC-V很有可能像Linux那样成为主宰世界的开放指令集标准。
开源芯片的意义与可行性
经过多年的发展,开源芯片已经具备良好的基础,已经有了比较丰富的开源芯片设计资源。例如,研制一款180nm工艺的芯片,可以使用开源的Magic (包含Xcircuit、IRSIM、NetGen、Qrouter和Qflow)EDA工具链,可以使用兼容WISHBONE总线协议的开源IP模块,并有多种180nm开源工艺库供选择,流片费用也并不高。综合起来,研制一款180nm工艺的芯片可能只需要几千美元便可实现,门槛已经大为降低。
然而,对于中高端的芯片,还缺乏完整的开源芯片设计EDA工具链与工艺库资源。畅想一下,如果全世界也拥有了价值上百亿美元的芯片设计所需的开源EDA工具链、IP模块、工艺库等,使得中高端芯片研制成本降低两个数量级,从数千万元降至数十万元级别,那么芯片领域的创新将会像今天的互联网那样层出不穷,中国半导体产业卡脖子的问题也将会迎刃而解。
RISC-V开放指令集生态现状
RISC-V起源
2010年,加州大学伯克利分校的David Patterson教授与Krste Asanovic教授研究团队正在准备启动一个新项目,需要选择一种处理器指令集。他们分析了ARM、MIPS、SPARC、X86等多个指令集,发现它们不仅设计越来越复杂,而且还存在知识产权问题。于是伯克利的研究团队临时组建一个四人小组,开展一个3个月的暑期小项目——从零开始设计一套全新的指令集。这个小项目的目标是新指令集能满足从微控制器到超级计算机等各种尺寸的处理器,能支持从FPGA到ASIC到未来器件等各种实现,能高效地实现各种微结构,能支持大量的定制与加速功能,能和现有软件栈与编程语言很好的适配。还有最重要的一点就是要稳定——不会改变,不会消失。
2011年5月,第一版指令集正式发布。该指令集设计非常简单,采用了基础指令集与扩展指令集的方式。基础指令集只包含了不到50条指令,但已经可以用于实现一个具备定点运算和特权模式等基本功能的处理器。扩展指令集提供了一些常用的原子操作指令、浮点运算指令等,用户也可以需要自身需求进行自定义。这样,这套指令集既保留了“简单”这个大优点,又赋予了用户足够的灵活性。伯克利的研究团队在发布时还做了两个重大的决定:
一是将新的指令集命名为RISC-V(读作RISC-Five),表示为第五代RISC(精简指令集计算机)。下图展示了此前的四代RISC处理器原型芯片。每一代RISC处理器都由David Patterson教授领导与参与。也正是他与学生David Ditzel在1980年发表的那篇经典论文“The case for the reduced instruction set computer”中创造了RISC一词。
图 1. 五代 RISC 处理器
二是将RISC-V指令集彻底开放,使用BSD License开源协议设计了开源处理器核Rocket。伯克利研究团队认为,指令集ISA作为软硬件接口的一种说明和描述规范,不应该像ARM、PowerPC、X86等指令集那样需要付费授权才能使用,而应该开放(Open)和免费(Free)。他们选择的BSD开源协议给予使用者很大自由,允许使用者修改和重新发布开源代码,也允许基于开源代码开发商业软件发布和销售。因此BSD开源协议对商业集成很友好,很多的企业在选用开源产品时都会首选BSD开源协议。
于是,一套全新的开放指令集RISC-V诞生了——全世界任何公司、大学、研究机构与个人都可以开发兼容RISC-V指令集的处理器,都可以融入到基于RISC-V构建的软硬件生态系统,而不需要为指令集付一分钱。伯克利研究团队对RISC-V寄予厚望,希望它能被应用到各种场合,从微控制器到超级计算机;也希望它能像Linux通过开源成为全世界操作系统的事实标准之一,最终成为全世界处理器指令集的事实标准,为下一个50年计算机系统设计与创新做出奠基性贡献。
RISC-V指令集特点
RISC-V开源的特点保证了它的稳定性,因为它只属于一个开放的、非盈利性质的基金会。而商用指令集的盛衰往往与该商业公司的发展息息相关,历史上由于商业公司倒闭或者被收购而导致其商用指令集消失的例子比比皆是。
指令集设计者对以往指令集取其精华、去其糟粕后才得到了RISC-V。例如,对于分支跳转指令,RISC-V没有采用MIPS和SPARC等指令集中被广为诟病的分支延迟槽。零寄存器的存在,使得RISC-V可以省略很多在没有零寄存器的ARM和x86中所必需的指令,简化了指令集设计。
RISC-V最为重要的一个特点是模块化。传统的增量指令集架构设计要求保持向后的二进制兼容,因此新处理器必须负重前行,在实现所有历史设计的基础上实现新的设计,这使得指令集架构的复杂度随时间持续增长。RISC-V的做法是将指令集划分为几个标准的子集,称为扩展,并保持一些基础的扩展(例如RV32I)永远不变。这一约定给编译器和操作系统相关的开发人员提供了稳定的目标。并且这些扩展是可选的,处理器的设计者可以根据需求选择实现不同的扩展,这对于嵌入式应用至关重要。
RISC-V主要的指令扩展如下:
● I 扩展:整数扩展(RV32I)为RISC-V的基础整数指令集,所有实现都必须支持。RV32I极度精简,仅有38条指令,但是功能齐全,执行通用计算所必须的整数计算、访存、分支以及系统调用等指令一应俱全。处理器仅需支持RV32I,便可以运行完整RISC-V软件栈。
● M 扩展:乘法扩展(RV32M)为RISC-V整数乘除法扩展指令集,M扩展支持整数的有符号以及无符号乘除法运算。
● F 扩展/ D 扩展:单精度浮点扩展(RV32F)和双精度浮点扩展(RV32D)为RISC-V的浮点指令集。共用一组独立于整数寄存器的浮点寄存器,拥有常规的访存和运算指令,也有一些包括乘加指令在内的融合运算指令,使得运算过程更精简而准确。另外为了有助于数学库的编写,还包括了有助于符号操作的符号注入指令和测试操作数属性的分类指令。F和D扩展没有包括浮点分支指令,取而代之的是浮点比较指令,可以根据浮点数的比较结果设置寄存器的值,并用于条件分支。
● A 扩展:原子扩展(RV32A)为RISC-V的原子操作指令集,为同步操作提供了必要的支持。RV32A扩展为不同的使用场景提供了两种对应的原子操作。其中加载保留(lr)指令和条件存储(sc)指令保证了原子的比较-交换(compare-and-swap)的实现;AMO指令在多处理器系统中的可扩展性比lr和sc更好,可以实现I/O通信中的总线原子读写,从而简化设备驱动,提高I/O性能。
● G 扩展:通用扩展(RV32G)为RISC-V基础整数指令集RV32I 加上标准扩展(M、F、D、A),统称RV32G。
● C 扩展:压缩扩展(RV32C)为RISC-V的压缩指令集。包括了与标准32位RISC-V一一对应的短指令,它们只对汇编器和链接器可见,因此编译器编写者和汇编语言程序员可以忽略它们。以往的ISA设计在重新设计短指令集时,会为处理器和编译器的设计增加负担,而RISC-V通过上述设计避免了这一缺陷。
● V 扩展:向量扩展(RV32V)为RISC-V向量指令集,与其它指令集中的单指令多数据流(SIMD)指令不同的是,RV32V将内部向量寄存器的宽度与指令集解耦,解决了SIMD指令集每一代升级宽度时,带来的上层软件适配问题。向量指令集支持向量计算、向量load/store、向量条件运算等操作。
RISC-V的特权模式架构的特点
与其它指令集一样,RISC-V为操作系统和其它场景提供了更高的权限模式。除了通常的用户模式(U模式)以外,RISC-V架构还包括最底层的机器模式(M模式)和为操作系统提供的监管者模式(S模式)。M模式是所有标准的RISC-V处理器必须实现的,拥有对硬件的完全控制权。简单的嵌入式系统只需要支持M模式即可,在此模式下可以处理异常和中断。M模式和U模式的组合可以实现简单的基于地址寄存器比较的内存隔离,而更复杂的基于分页的虚拟内存方案需要依靠S模式来实现。默认情况下,所有异常都会交由M模式处理,但对于那些实现了S模式的系统,RISC-V提供了一套异常委托机制,可以选择性地将中断和同步异常交给S模式处理,完全绕过M模式,从而避免了异常处理效率的降低。这两种权限模式各有一组控制状态寄存器(CSR),而嵌套中断需要配合软件用栈实现。
RISC-V基金会
RISC-V基金会(RISC-V Foundation)是一个非盈利性组织,负责RISC-V指令集架构及其软硬件生态的标准化、保护和推广。RISC-V基金会的会员可以参与RISC-V指令集规范以及相关软硬件生态的开发,并决定RISC-V未来的推广方向。
RISC-V基金会每年举办全球性大会,以整合其广阔的生态系统,探讨RISC-V的最新项目与实现,并推动RISC-V指令集架构的未来发展。大会邀请顶尖科技公司和学术机构,讨论RISC-V的架构、开源实现和商业实现、软件、芯片、向量和安全、应用和加速器、模拟器基础设施等等。
RISC-V基金会成立于2015年8月,会员条约于2016年12月形成。RISC-V基金会遵循的原则包括:
1) RISC-V指令集及相关标准必须对所有人开放且无须授权;
2) RISC-V指令集规范必须能够在线下载;
3) RISC-V的兼容性测试套件必须提供源码下载。
为了保护RISC-V标准,只有基金会会员可以使用“RISC-V”及相关商标,并且只能用于已经通过RISC-V兼容性测试套件测试的产品。
基金会的董事会由来自Bluespec、谷歌、Microsemi、英伟达、恩智浦半导体、加州大学伯克利分校和西部数据的七名代表组成。董事会成员的变更须由董事会投票决定。董事会可修改会员条约,须经过三分之二赞成票通过。董事会可决定建立委员会来处理关于RISC-V的具体事务,并任命下属委员会的主席。目前已经建立的委员会包括技术委员会和营销委员会。
RISC-V基金会目前有超过210名成员,包括机构、学术和个人会员,覆盖25个国家,这些国家占据世界人口的55%。基金会自2015年成立以来,会员数的年增长率超过100%。当前的成员包括:中科院计算所、阿里巴巴、华为、谷歌、镁光、英伟达、高通、三星、西部数据、日立、IBM、联发科、希捷、海力士等。下图展示了RISC-V基金会的部分成员。
图2.RISC-V基金会部分成员
RISC-V软硬件生态
芯片技术是信息技术产业链中的重要基石,也是我国大幅落后于国际水平的技术领域之一。发展自主可控的芯片技术,并打破Intel、高通、ARM等芯片巨头的技术垄断,已成为当下亟待解决的问题。
处理器指令集是软硬件的接口,是构建芯片生态和发展芯片技术的核心部分,其重要性不言而喻。2011年,加州大学伯克利分校发布了开放指令集RISC-V,并很快建立起一个开源软硬件生态系统。由于RISC-V的指令标准清晰,并且开源免授权等特性,在芯片领域受到广泛关注。已有包括Google、NVidia等在内的200多个公司和高校在资助和参与RISC-V项目。其中,部分企业已经开始将RISC-V集成到产品中。例如全球第一大硬盘厂商西部数据(Western Digital)最近宣布将把每年各类存储产品中嵌入的10亿个处理器核换成RISC-V;Google利用RISC-V来实现主板控制模块;NVidia也将在GPU上引入RISC-V等等。此外,国内阿里巴巴、华为、联想等公司都在逐步研究各自的RISC-V实现;上海市将RISC-V列为重点扶持项目;印度政府也正在大力资助基于RISC-V的处理器项目,使RISC-V成为了印度的事实国家指令集。这表明RISC-V已经逐渐成为芯片设计领域的主流指令集之一,且广受各大厂商青睐。
下面从RISC-V指令集、生态系统和已有的RISC-V实现等几个方面介绍RISC-V的发展现状。
RISC-V指令集清晰且开源,与现有商用指令集相比,RISC-V更加精简。此外,RISC-V支持在标准指令集之外,自定义扩展指令集,兼顾了灵活性。目前,基于RISC-V的指令扩展已经发展得颇为丰富,如 SiFive、LowRISC、ORCA等已经发展出了面向矢量化、虚拟化、硬件安全和特定领域加速等的多种扩展指令集,极大提升了RISC-V应对真实场景下应用需求的能力。
RISC-V的生态系统日趋完善。良好的生态系统对发展芯片技术,以及形成良性可持续的芯片产业循环是至关重要的。与其它开源指令集(如OpenSPARC和OpenPOWER)相比,RISC-V在社区支持方面更完善,支持包括Linux、SeL4、BSD等通用操作系统,支持FreeRTOS和RT-thread等实时操作系统,支持GCC、LLVM等通用编译和调试工具链,支持C/C++、Java、Python、OpenCL和Go等主流编程语言。近年来国内外兴起的RISC-V的研究热潮也将持续完善其生态系统,借助该生态系统,可以使得优秀的RISC-V实现迅速落地并形成产业影响力。
目前已经出现了面向各种目标设计的开源RISC-V实现(如下表)。其中大部分RISC-V实现,如Rocket Core和LowRISC等,面向嵌入式和低功耗的场景应用,采用单发射顺序执行技术,获得良好的性能功耗比。而面向工业级处理器的BOOM采用超标量乱序执行技术,性能提升巨大。
表1.部分开源的RISC-V实现
鉴于RISC-V指令集开源、规范清晰、扩展灵活并已经具备完整的生态系统支持,已成为当下芯片技术研究的热点。虽然面向嵌入式场景的RISC-V实现已经百花齐放,但目前还没有一个开源且实用的高性能RISC-V实现来应对复杂场景下的应用需求。为填补此空白,占领未来芯片技术发展的先机,研究可靠实用的高性能RISC-V核心已经迫在眉睫。
中国联盟与组织
随着RISC-V的知名度与关注度不断增加,2018年在中国成立了三家与RISC-V相关的联盟组织。虽其侧重点略有不同,但都在为RISC-V在中国的宣传发展及生态建设凝聚力量。
1) 中国RISC-V产业联盟(简称CRVIC联盟)
2018年9月20日,中国RISC-V产业联盟宣布成立,上海芯原控股有限公司担任联盟首任理事长单位。中国RISC-V 产业联盟致力于集聚和整合国内RISC-V创新力量,助推RISC-V产业生态的建设,提升中国企业在RISC-V指令集创新、标准制定中的影响力,同时,加快RISC-V的市场推广和产业化应用
2) 中国开放指令生态(RISC-V)联盟 (简称CRVA联盟,网址:http://crva.io)
2018年11月8日,中国开放指令生态(RISC-V)联盟在第五届互联网大会上宣布成立,联盟理事长由倪光南院士担任。CRVA联盟旨在召集从事RISC-V指令集、架构、芯片、软件和整机应用等产业链各环节企事业单位及相关社会团体,自愿组成一个全国性、综合性、联合性和非营利性的社团组织。此联盟将围绕RISC-V指令集,整合各方资源,通过产、学、研、用深度融合,力图推进RISC-V生态在国内的快速发展。
3) RISC-V基金会中国顾问委员会
2018年11月8日,在中国乌镇举行的世界互联网大会(World Internet Conference)上,RISC-V基金会(RISC-V Foundation)宣布成立中国顾问委员会,将就RISC-V基金会的教育和应用推广战略提供指导。半导体行业资深人士方之熙(Jesse Zhixi Fang)博士被任命为RISC-V基金会中国顾问委员会主席。RISC-V基金会在中国的影响力不断扩大,覆盖超过25个组织机构与大学,在此基础上,中国顾问委员会将对RISC-V基金会的教育与应用推广战略提供指导意见,以进一步加速RISC-V生态系统在该地区的发展。
文章转载自公众号:智车Robot
