RISC-V作为处理器领域的新秀频繁出现于学术与产业新闻。本文将通过8个问题讲述RISC-V相关内容。
- 什么是RISC-V?
RISC-V, 其中文名称是第五代精简指令集(Reduced Instruction Set Computing)。该指令集是由加州大学伯克利分校发布的一套用于处理器的指令集。2010年,该学校的研究团队准备做一个CPU,但是Intel和ARM高昂的授权费用让他们下决心自己做一套开源的指令集。于是经过了几个月的努力,后来就有了RISC-V。该指令集一经推出就受到了广泛关注,后来成立了RISC-V基金会,专门负责RISC-V的维护与推广。
2. 什么是指令集,指令集与处理芯片之间有什么关系?
处理器是一块芯片。而芯片并不会自己工作,需要有人告诉它该做什么操作。例如告诉芯片下个操作做加法,这就是一条指令。在人类社会中指令基本上是以语言或者声音的形式存在,而在计算机系统中,指令是以二进制数存在的。一个芯片指令的合集就叫指令集。指令集规定了二进制数的格式、寻址方式、操作类型等。市面上常见的指令集有PC机常用的X86指令集、ARM的指令集等等。一般来讲,先有指令集,才会有芯片来支持指令集。所以指令集可以说是芯片的早期蓝图。指令集类似一种标准,定义了芯片支持的功能。而芯片是一个实物,实现指令集定义的功能。所以你常听的RISC-V处理器,实际上是支持了RISC-V指令集的处理器芯片。
3. 为什么RISC-V在国内如此受关注?
RISC-V作为较新的指令集,技术上是有一定的优势,但在国内如此受关注,其实最大的原因是这个指令集是开源免费的,基于这套指令集设计的芯片无论用于科研和商业均无需给Intel和ARM上税。目前市面上常见的指令集都是要收费的,例如华为麒麟芯片,就购买了ARM家的指令集。这些有指令集知识产权的公司均为国外公司,非常不利于我国实现关键芯片的自主可控。目前,国内外已经有非常多的RISC-V核心RTL代码,好多是开源的,如果你感兴趣可以下载一个研究研究。比较有名几个例如Rocket Core、Boom Core、LowRISC SoC均提供源代码。如果用于商用,国内外也有许多商业公司提供稳定的RISC-V IP核心。例如国外的SiFive公司、Microsemi公司、国内的阿里平头哥、芯来科技等公司。
RISC-V的出现其实给直接竞争对手ARM带来了巨大压力,以至于ARM公司某天突发奇想,偷偷上线了一个域名为http://riscv-basics.com的网站,专门用来黑RISC-V。从安全性和生态系统从头喷到脚。而后RISC-V反击,上线一个域名为http://arm-basics.com的网站,反喷了回去。最后此事以ARM发言人宣布下线http://riscv-basics.com告终。由此可以看出RISC-V对传统厂商的冲击。
4. RISC-V技术上有什么优势?
技术优点总结起来就一句话:短小精悍、扩展性强。处理器发展了非常多年,里面的坑坑洼洼都被研究的清清楚楚,但是由于ARM和X86的指令集一路走来,需要兼容的东西多,包袱越来越重,导致指令集越来越复杂。RISC-V吸取了这些经验后指令集每个功能都被安排的明明白白,所以够精简。RISC-V最基础的指令数目仅仅有40多条。同时,RISC-V采用了模块化的设计,对于不同处理需求的加速芯片都是兼容的。同时,RISC-V还支持自定义指令,你要是觉得官方提供的指令用的不爽,完全可以自己编一条指令放进去,扩展潜力巨大。
5. RISC-V指令集与芯片目前还有哪些问题?
最大的问题是RISC-V作为一个开源的指令集架构,其相关的编译器、开发环境、甚至成品芯片等相关生态仍然还在建立之中,生态不够强大,大规模应用还需要一个过程。
6. RISC-V指令集里有什么?
RISC-V作为一个模块化的指令集,其指令集分成了若干模块。又分为32bit和64bit版本。所以叫RV32, RV64。常用的模块有以下几个:
I: 与整数相关的指令集。RISC-V唯一必须支持的模块。只要是RISC-V处理器,必定支持这个模块。包含了整数的加减以及相关的逻辑跳转等指令。
M: 整数的乘法与除法指令。
A:包含了存储相关的原子操作等。比如想实现从存储里取数据,然后计算完写回存储可以用此类指令。
F:单精度浮点指令。
D:双精度浮点指令,如果要支持D,那F显然要支持。
C:压缩指令,16bit的短指令。用来减少指令体积。
一般来讲,RV32IMAFD比较常见,所以缩写一下就叫TV32G,通用(General Purpose)的意思。除了上述指令,RISC-V还预留了很大的空间用于自定义指令。也既自定义一个指令,在RISC-V实现核心时自定义一个加速单元,专门执行该指令。
所有指令集均在RISC-V官方网站公开。感兴趣的小伙伴可以自行查看。
7. RISC-V的核心是如何与AI加速核心集成的?
从整体实现方式上来讲,共有两种方式可以实现AI加速核心与RISC-V计算核心的集成。方法一是总线外设方案,该方案可以直接把AI加速核心当作一个总线高速外设挂载于SOC系统。方案二是RISC-V指令集独有的办法,扩展RISC-V核心方案。利用RISC-V指令集可扩展的特性,添加专门的AI指令,在设计微内核时加入一个指令派送单元,将AI加速指令直接派送给AI加速核心。
实际上,由于神经网络计算的过程中几乎不需要条件判断等操作,规律的乘加操作占据大多数运行时间,两种实现方案并无本质差别。扩展RISC-V核心的方案优势在于当总线外设较多时,共用了微内核资源,减少了总线开销。而扩展RISC-V核心方案的缺点是对RISC-V编译工具链要做少许修改,增加额外的工作量。
8. 最后,总结来讲,RISC-V需要了解什么?
- RISC-V是一种处理器指令集。
- RISC-V处理器指支持RISC-V指令集的芯片。
- RISC-V主要优势在于开源免费、短小精炼、扩展性强。
- RISC-V目前的问题在于生态不成熟。
- RISC-V与加速核心集成有总线方案和扩展指令集方案。
最后的最后,我个人是很看好RISC-V的发展前景的。也许我国在这个领域里会出现下一个Intel或者ARM实现真正的处理器强国梦。但目前阶段RISC-V也确实存在各种各样的问题。生态不全面等等问题会给商业化带来不小的挑战。同时,似乎现在都喜欢炒概念,从可穿戴设备到VR/MR/AR,共享经济,再到AI,再到RISC-V,物联网等等。一个又一个风口,如何鉴别哪些是概念哪些真的可以改变世界还是得多学习。例如RISC-V和AI,我个人觉得从技术角度来讲RISC-V可以给AI加速SOC提供一些灵活度,但是远达不到颠覆AI加速器的程度,只是相比于ARM家的处理器解决了一些痒点而已。希望国内RISC-V可以稳步发展,不盲目追热点,找准其优势。要么出现一批拳头产品,打破垄断。要么干脆做到旧时王谢堂前燕飞入寻常百姓家,把CPU做成Linux一样彻底开源的东西。