新ちゃん 发表于 2020-8-18 09:44:08

RISC-V这块蛋糕,如何才能做大?

尽管RISC-V的基础指令集和基础架构已经在2014年前后基本成型,旨在指导未来发展并推广RISC-V ISA普及的RISC-V基金会也早在2015年8月成立了,但直到大概去年5月的时候,RISC-V这个话题才持续占据各相关媒体的热点版面,关于RISC-V的各种宣传活动也逐渐地多了起来。

这种现象的出现,可能是由于一些商业公司的开发有了一些眉目,他们的宣传力度提高了,但更主要的一个因素是中国国内的大环境所导致,国家加大了对半导体行业的支持力度。当然,也不乏一些炒作的因素在里面。
本文不打算探讨RISC-V技术的优劣,也不打算探讨它是否能解决我们当前所面临的种种问题,我只想先来谈谈对这项技术的基本认识以及它对整个产业链各个环节的意义,然后重点说说RISC-V怎样才能更好地普及,并成功地融入到各式各样的应用领域中,最后粗略地谈一下RISC-V在发展过程中可能遇到的一些问题。RISC-V的优势是什么?RISC-V是一个按照精简指令集的基本原则开发的CPU指令集架构, 与之对应的Arm指令集架构和x86指令集架构处于同等地位。CPU的设计人员,可以按照这样的指令集架构设计CPU的内部架构和具体实现方式。例如Arm的Cortex-M内核目前已经有多达9款产品,但都是基于Armv6-M、Armv7-M和Armv8-M指令集架构构建的。

可以把CPU指令集架构(ISA)与操作系统的POSIX接口规范做个类比。在遵循一个相同ISA的原则下,芯片设计人员可以按照不同的要求做出不同的设计实现,从而设计出不同性能等级、侧重不同应用的CPU产品。例如,某个实现侧重于低功耗但速度不是最快,另一个实现则可能是侧重运算速度快但芯片面积比较大,或者侧重于某种计算类型(浮点、矩阵计算等)。同理,遵循POSIX规范的操作系统可以是服务器级别的,也可以是桌面的或嵌入式级别的。
从底层的使用者角度看,一个CPU的指令集架构就是以程序员的视角所看到的CPU,例如有多少寄存器、寻址方式是什么样的,以及指令的字长和寻址空间等。对于使用相同指令集的不同CPU,原则上它们上面运行的代码都是二进制级兼容的,倘若程序在具有这些CPU的芯片间进行迁移,基本上只需要适配底层的设备驱动即可,绝大部分的系统和应用程序都是可以不经重新编译而直接运行的。
与其他主流的指令集架构相比,例如x86、Arm等,开源是RISC-V的最大特点,使用RISC-V进行CPU设计的人或机构,无须像使用其他指令集架构那样,向原开发者付费才能使用该ISA自行设计CPU并对之进行修改和扩展,这个费用往往非常高昂并且条件比较苛刻。例如,目前知名的商业公司中,只有AMD获得x86指令集的使用权,只有苹果、三星、高通、华为等获得了Arm指令集的使用权,可以自主开发基于相应指令集架构的CPU芯片。
一方面,RISC-V的指令集架构是开源的,它允许开发者自行组合已有的指令子集或添加自己的指令集,这极大地扩大了RISC-V的应用范围,使它几乎可以适合各种应用场景,相比其他不能自行扩展的指令集架构,具有明显的优势。当然,同时也可能会带来严重的碎片化问题,这一点会在本文后面探讨。
另一方面,RISC-V不仅仅是一个开放的CPU指令系统,而且是一个连接半导体产品的设计人员和应用开发人员的开放的生态系统。对芯片(尤其是CPU芯片)的设计人员来说, 可以按照应用特点设计出相应的CPU产品, 而不必担心因为缺少相应的开发工具或合适的软件中间件而导致没有人使用自己的产品。更重要的是,对于CPU芯片的使用者而言,可以在更大的范围里选择适合自己应用的芯片,而不必担心因为指令系统的兼容性问题找不到熟悉的开发环境,找不到合适的开发人员,以及找不到成熟的应用组件或中间件。
完善的生态是RISC-V取得商业成功的关键!这样一个开源的、免授权费的指令集架构,自然让很多人兴奋不已,尤其是在IC设计行业中,每个人都有机会按照自己的特长找到合适的商机。事实也确实如此,但同时也有一个严峻的问题摆在我们面前,那就是谁会来买单呢?下面就以MCU为主来探讨一下。

要能够用好一款MCU产品,需要很多配套的东西做支撑。我们知道,世界上出现过很多有特色的CPU指令集架构,也有不少基于它们的芯片产品,例如Arm、MIPS、x86、PSoC、8051、Power ISA、Z80/Z8000等。这些ISA各有特色,但它们的应用范围和市场份额却有较大的差别。对于终端用户或产品的开发者而言,其实他们并不太在意CPU的指令系统是什么,他们只在意一款MCU芯片本身的性能、价格、适用范围等是否满足应用需求,在这些因素都满足的情况下,就要比较哪种架构的生态系统更加宽广、更加完善。目前,在一些通用的应用领域中,市场上大多数MCU不管其采用何种CPU架构,都能够满足应用需求,价格也都在可接受的范围内,此时完善的生态系统就成为客户选型首要考虑的问题。
简单地说,一款MCU产品的生态系统,决定着这款产品的开发者所能接触到的开发资源和开发支持是否全面多样化、是否方便使用、是否易学易懂、是否稳定可靠等。以通用的MCU为例,通常这些资源和支持大概包含图1中的内容。
图 1
资料文档:主要包括芯片本身的数据手册、参考文档、应用笔记、参考例程、设计指南、学习教程、常见问题等。
开发工具:包含编译器、开发板/套件、调试工具、IDE、生产工具(主要是编程器)、性能优化/评测工具、故障诊断工具、芯片内部资源的配置工具等。
软件模块:所有的软件产品都属于这个范畴,既包括芯片厂商所提供的基本底层驱动库,以及相关的操作系统BSP、各种软件库(例如C/C++的运行时库、DSP库、算术运算库等),也包括各种中间件、协议栈、图形GUI库,以及诸如电机控制、图像处理甚至人工智能等的专用软件库。
市场资源:涵盖信息来源的多样性、网站建设、开发者论坛、样片和产品的购买渠道、供货周期和稳定性、培训机构及大学计划等。对于市场信息的反馈机制、产品的ROADMAP,以及对公司策略及品牌的宣传与认知度,也可以归于市场资源这一类。
人力支持:在客户需要时,能够提供相应的人力资源支持,包括设计验证、疑难问题的调试、芯片缺陷的分析和解决方案、特殊培训,甚至参与客户的项目开发等。当然,也包括协助客户的产品市场宣传以及对客户的非技术性服务等。
参考方案:针对市场需求,开发者能够从芯片原厂,特别是从第三方得到相应的参考方案。
外包服务:主要是指大量涉及各个应用方面的设计公司, 他们能够提供各种各样的软件库设计、应用方案设计、电路板设计、整体方案设计等。
配套器件:基本是与MCU芯片配套的存储器、扩展的互联产品、显示产品、传感器等,开发设计人员能够方便地找到和使用合适的外围器件。相应的遴选条件包括:接口类型速率、工作电压范围、价格、相关生态等。
以上的这些内容中,MCU芯片厂商只能提供一些极为基本的东西,而绝大部分内容需要其他相关者提供,因此如何培养和动员产业链上所有的相关方积极地参与基于某种架构的生态系统建设,使得这个生态系统日臻完善,将成为该种架构取得商业成功的关键。基于Arm架构的MCU应用市场能取得今天的辉煌,正是由于其拥有一个非常健壮的生态系统。
RISC-V要想在竞争非常激烈的CPU市场,尤其是MCU市场上取得成功,就必须重视生态系统的建设,减轻开发负担,让开发人员在遇到问题时能很快地找到解决方案,以缩短终端产品的开发周期。
标准化和多元化是RISC-V快速发展的基石前面提到RISC-V的一大优势是开源,在一个相同的指令集架构下,各家可以做出适合各种需求的CPU/MCU产品,从高端到低端、从低功耗到高性能,广阔的应用领域十分有利于其生态系统的壮大。处在这个生态链上各个环节的开发者,可以用较小的代价支持更广泛的市场需求,使得各个相关参与方的积极性更高。但是这里一个重要的前提是标准化,每款芯片都要遵守和使用RISC-V定义的基本和扩展指令集,只有这样各级开发支持工作才能统一有效。

换个角度看,RISC-V开源的优势可以允许各家在设计芯片时,按照自己的特殊需要添加定制化的指令,满足特定应用的特殊需求,或在投票成为标准之前,将先进的创新成果先行在自己的产品中实现。对于这种非标准的部分,将较难受益于丰富的生态机制,因此要求其生产厂家自行提供相应的支持和配套的解决方案,例如需要修改编译器以支持新的指令、需要增改配置调试工具以适应新的总线或存储接口等。
当这种自行添加的定制化指令逐渐增多,又不能被吸收进标准规范中时,就会产生碎片化的问题,也就会给生态链上的某些环节造成困扰和成本的增加,也必将削弱生态环境的健全性,至少在RISC-V普及发展的初期,会阻碍或延缓生态系统的完善。
当然,RISC-V基金会为了鼓励多元化的发展,成立了各种指令集的工作小组,统一讨论协调特定领域的RISC-V指令扩展,这些模块化的指令扩展讨论一旦定案后,就会成为标准供所有人在特定应用里使用。多元化和碎片化的区别就在于,多元化是在充分讨论协商的前提下的创新,并纳入标准化的进程,再最终开放给所有人使用;而碎片化则是各说各话,无约束地自由发展,这是RISC-V基金会要尽量避免的现象。
在目前RISC-V生态还比较脆弱的建设初期,可以依托现有标准化进程的成果,以一个相对标准稳定的平台为基础,让应用领域的开发人员尽快地熟悉这种新的技术,让他们能在一个相同的平台上互相交流、相互支持,尽快打通生态链上的各个部分,让雪球滚起来!正是基于这样的考虑,open-isa发布了VEGAboard,让MCU的开发者能够以很低的门槛接触和体验RISC-V的基本配置和一个基础的开发环境。做编译器、IDE的公司,可以直接在这个基础上测试开发相应的产品;做各种系统软件和算法库的企业,也可以在上面尝试移植自己已有的产品,快速地建立起来一个基础的BSP包,为未来正式的商业开发奠定基础;而应用产品的开发者,则可以更加深入地理解和体验RISC-V将会怎样影响他们的未来,同时对其他环节的开发者提出他们的需求和看法,不断完善相关的工具及方案等。总之,在正式商业运作开发之前,大家可以在这样一个低成本的基础上,做很多先期的入门铺垫,熟悉、尝试并打造最适合的开发途径。
要让RISC-V能够健康地成长,需要在标准化和自行定制化之间找到一个平衡点,而目前我们注重的着力点,应向有利于强大生态系统建设的方向倾斜,把蛋糕做大,然后再逐步走向多元化,走向协同发展的道路。
本篇完,感谢关注:RISC-V单片机中文网
页: [1]
查看完整版本: RISC-V这块蛋糕,如何才能做大?