1.什么是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公司、国内的阿里平头哥、芯来科技等公司。
4. RISC-V技术上有什么优势?
技术优点总结起来就一句话:短小精悍、扩展性强。处理器发展了非常多年,里面的坑坑洼洼都被研究的清清楚楚,但是由于ARM和X86的指令集一路走来,需要兼容的东西多,包袱越来越重,导致指令集越来越复杂。RISC-V吸取了这些经验后指令集每个功能都被安排的明明白白,所以够精简。RISC-V最基础的指令数目仅仅有40多条。同时,RISC-V采用了模块化的设计,对于不同处理需求的加速芯片都是兼容的。
RISC-V(读作"RISC-FIVE")是基于精简指令集计算(RISC)原理建立的开放指令集架构(ISA),V表示为第五代RISC(精简指令集计算机),表示此前已经四代RISC处理器原型芯片。它虽然不是个开源的的指令集(ISA),但它很重要,因为它个被设计成可以根据具体场景可以选择适合的指令集的指令集架构。基于RISC-V指令集架构可以设计服务器CPU,家用电器cpu,工控cpu和用在比指头小的传感器中的cpu。
一、命名规范
我们在实现基于RISCV架构的处理器时,根据应用场景的需要我们可以选择只实现架构中的部分指令,或者对于处理器的位宽有不同的选择。我们需要根据一些命名规范来对选择的RISCV子架构进行命名。
RISCV ISA 命名格式:RV[###][abc……xyz]
RV:用于标识 RISC-V 体系架构的前缀,即 RISC-V的缩写。
[###]:{32, 64, 128} 用于标识处理器的位宽,也就是处理器的寄存器的宽度(单位为 bit)
[abc…xyz]:标识该处理器支持的指令集模块集合。如RV32IMA,RV64GC。
二、模块化ISA
RISC-V采用模块化的指令集,易于扩展、组装。
RISCV ISA = 1 个基本整数指令集(I) + 多个可选的扩展指令集
其中强制要求实现的基础指令集,其他指令集都是可选的扩展模块。RISC-V 允许在实现中以可选的形式实现其他标准化和非标准化的指令集扩展。
RISC-V指令集模块包括
RV32I指令集有47条指令,能够满足现代操作系统运行的基本要求,47条指令按照功能可以分为如下几类。
整数运算指令:实现算术、逻辑、比较等运算。
分支转移指令:实现条件转移、无条件转移等运算,并且没有延迟槽。
加载存储指令:实现字节、半字、字的加载、存储操作,采用的都是寄存器相对寻址方式。
控制与状态寄存器访问指令:实现对系统控制与状态寄存器的原子读-写、原子读-修改、原子读-清零等操作。
系统调用指令:实现系统调用、调试等功能。
三. 寄存器
RISC-V 的 Unprivileged Specification 定义了 32 个通用寄存器以及一个 PC对RV32I/RV64I/RV128I都一样
如果实现支持 F/D 扩展则需要额外支持 32个浮点(FloatPoint)寄存器。
RV32E(E表示嵌入式系统)将32个通用寄存器缩减为16个。
每个寄存器具体编程时有特定的用途以及各自的别名,如下表:
RISC-V 是一个基于精简指令集(RISC)原则的开源指令集架构(ISA)。
优点:
低功耗:通常每个 AI 芯片在 CPU 上的耗能非常高,会致使整个续航能力下降。而 RISC-V 适合用于高效设计实现,开发者可根据应用需求灵活剪裁,再加上其全部 RISC-V 指令不超过 50 个,因此其内核面积更小,相应的功耗越低,能以极低的能耗来实现高效的 AI 元器件的运行
低成本:RISC-V 允许任何人免费设计、制造和销售 RISC-V 芯片和软件
无需像 ARM 那样购买昂贵的架构许可证。
开源开放:从国内本土芯片厂商来说,采用 RISC-V 指令,不会受制于人。因此,RISC-V 在中国的发展会非常快。这一点相当重要。无论是 X86 还是 ARM,都需要得到授权。
如果一旦授权被切断,企业发展就会遇到巨大障碍。
灵活:可以根据实际需要,增加一些厂商自己定义的指令集内容。
是个被设计成可以根据具体场景、可以选择适合的指令集的指令集架构。基于 RISC-V 指令集架构可以设计服务器 CPU,家用电器 cpu,工控 cpu 和用在比指头小的传感器中的 cpu。
当下 RISC-V 的生态正在茁壮成长,主要展现在软件生态、应用生态、及开发者生态三个方面。
一、在软件生态方面:现在中国产学研各界正在迅速推进高性能 RISC-V芯片研发,为此,芯片设计需要与基础软件和应用软件全方位适配,经过社区的共同努力,目前 RISC-V 与国际主流的 RTOS、Linux、安卓等等操作系统有了良好的适配,在中国,各家操作系统厂商,如麒麟、统信、龙蜥、鸿蒙、酷开等等都在全力支持。为了加速 RISC-V软件生态的成熟。
二、在应用生态方面:RISC-V 最早应用于 IoT 领域,现正逐步走向更广阔的应用领域。RISC-V 不仅可以在工业控制、物联网、智能家居等等对算力要求不高的领域得到推广,现在也正在向对算力有更高需求的桌面应用、边缘计算等领域发展。
三、在开发者生态方面:中国已经有数百家企业加入 RISC-V 国际基金会,在 RVI 的组织下,RVI 中国成员在 RISC-V 社区中作出了巨大的贡献,推动着 RISC-V 生态的发展。
应用领域:
已成功应用于微控制器、工业控制、智能家电、智能电网、图像处理、人工智能、多媒体和汽车电子等领域