我手头有三款RISC-V RV32单片机(GD32VF103兆易创新、CH32V103江苏沁恒、CH2601阿里平头哥),RISC-V(发音为“risk-five”)是一个基于精简指令集(RISC)原则的开源指令集架构(ISA)。这里说明一点RISC-V只是一个ISA。也就是一个指令集规范而已,不是指某种什么芯片。所以想设计出基于该指令集的芯片还需要其它的体系结构设计,这点与ARM是不同的,ARM不但是一种指令集,而且还是一种设计好的内核。只有如高通、intel(后来卖给Marvell)那样的公司只使用指令集自己设计内核架构。所以同时代的ARM芯片高通的性能要比其它的强一些。其它的公司都是买来ARM的全套内核,在与自家的外设结合设计自己的CPU或MCU,有的直接全套买来直接生产了事比较省心。但是RISC-V是没有内核的需要自己设计内核。据说国内就有一家卖“内核”的公司(不知真假)。 与大多数指令集相比,RISC-V指令集可以自由地用于任何目的,允许任何人设计、制造和销售RISC-V芯片和软件。虽然这不是第一个开源指令集,但它具有重要意义,设计者除需要考虑到了这些用途中的性能与功率效率外,还需要考虑该指令集的整个产业生态。该指令集具有众多支持的软件,这就是完整的生态系统。这解决了新指令集通常的弱点。
RISC-V指令集只是一个规范,内核五花八门。RISC-V的CPU就和ARM的M0、M3、M4、A7差不多,指令集规定了一个最低的标准,如RV32[I]是必须要实现的,[M][A][F][D]C[P]是可以选择的,F是单精度浮点,D是双精度浮点,C是压缩指令,P是DSP扩展。只要知道是什么指令集就可以知道使用什么编译编译器了。目前只有GNU的编译器是完整的,其它的如LLVM/CLANG还不是很完善。通过测试三家的MCU,只有GD32VF103的工具链比较符合“标准”与SiFive比较象,也使用openODC的工具,其它的都是自己家的工具。所以两家的开发工具都是套壳的GNU工具和自己改的调试器。这让我不明白的是国产软件为什么非要个什么“壳”出来。费事不说而且还不好用。看到CDK的一些文件使用了VIM的语法提示和高亮模型,老老实实的做好BSP库不是更好吗。而且平头哥的资料少的可怜,一切信息都靠从源码中猜,虽然都使用了ARM公司的AMBA总线,但是各家是不是有改动就不知道了。最近intel收购了SiFive,看来RISC-V和ARM的战场看来更加的激烈啦。不过依intel的脾气肯定会大幅的在自家的产品中夹带私货,这会增加RISC-V出现碎片化的可能。
各家套壳工具链这个我不知道什么原因,但是担心国产的RISC-V只是一场圈钱游戏。这里的水太深,我是局外人。建议国家应该给一定的强制"指导"。不标准的套壳一律自己掏腰包。这样把创新的水分去掉,这样才有利于RISC-V的发展。
关于行业推广的问题,我把自己的想法说一下:对于一个小公司来说他们的市场主要是一些边缘性的市场没有什么规模。产品的利润比较高,物料的成本压力不大。但是如果产品的品质出现问题了那客户就没有了,公司也就领盒饭了。所以更换芯片体系的可能性不大。推广的化我建议使用在玩具、音响、小型家电设备等可靠性要求不高的场合比较适合。而且这些产品的规模也较大容易体现价格优势。技术支持如果有国家队出来更好,没有的化能给社区注入一定的资金,把挤掉的水分出来的钱也足够社区这些游泳爱好者娱乐的了。
|