1.RISC-V历史
RISC-V是由美国加利福尼亚大学伯克利分校开发和设计的,其中的“V”是5的意思,也可以翻译成第五代精简指令集,因为在此之前伯克利分校已经完成了4代RISC体系结构的设计。
早在2010年加利福尼亚大学伯克利分校的研究人员在对比市面上所有的RISC体系结构发现,现代的指令集原来越复杂和臃肿,而且授权使用费极高,于是他们打算自己开发一套全新的开源指令集。
2015年,RISC-V基金会成立,旨在维护指令集以及体系结构规范的标准化和完整性。除此之外,他们还成立了SiFive公司,以推动RISC-V的快速发展。
2020年三月出于规避潜在政治风险和保证开源技术和软件持续支持的考量,RISC-V基金会将总部迁移至瑞士,并更名为RISC-V国际基金会(RISC-V International Association)。
截至2022年底,RISC-V国际基金会已经在70个国家/地区拥有超过3180名会员单位,这些会员单位包括了高通、英特尔、谷歌、阿里平头哥、华为、紫光展锐等众多头部芯片企业。此外,还有数据显示,到2022年底时,RISC-V国际基金会的会员数量已经增长至超过3600名。到了2023年,RISC-V国际基金会的会员数量继续增长。有报道指出,在2023年的某个时间点,RISC-V国际基金会的会员单位已经超过了3664位,相比2019年12月时的435位,增长了超过742%。而在2024年,RISC-V国际基金会的会员数量再次得到刷新,已经有超过4000家会员单位,实现了超10倍的增长。
2.RISC-V指令集优点
设计简洁
RISC-V采用精简指令集(RISC)设计理念,指令集相对简单,易于理解、实现和优化。这有助于降低处理器的复杂性,提高执行速度和降低功耗。RISC-V的指令集由一组简单、固定长度的指令组成,便于硬件实现和优化。
模块化
RISC-V指令集采用模块化设计思想。它具有一个最小指令集,这个指令集可以完整的实现一个软件栈,然后通过模块化的方式实现其他拓展功能的指令,如浮点数乘法和除法指令、矢量指令等。模块化的RISC-V体系结构使用户能够灵活的选择不同模块的组合,以适应不同的应用场景,从嵌入式设备到服务器都可以使用RISC-V体系结构进行设计。
开源
RISC-V指令集采用BSD开源协议授权,这意味着任何人都可以自由地使用、修改和分发。这种开放性促进了全球范围内的创新与合作,有助于推动RISC-V生态系统的快速发展。由于RISC-V是完全开源的,任何人或公司都可以免费使用、修改和扩展,这消除了昂贵的授权费用,使其特别适合初创公司和学术研究。
丰富的软件生态
目前大部分开源软件都支持RISC-V指令集,包括但不限于linux内核、GCC等。
多语言支持
RISC-V架构支持多种编程语言,如C、C++、Rust等。开发者可以根据自己的需求选择适合自己的编程语言,这有助于降低开发难度和提高开发效率。
广泛的产业支持
许多公司和研究机构已经加入RISC-V生态系统,包括NVIDIA、西部数据、高通、Google、Intel、CEVA、Codasip、华为和阿里巴巴等知名企业。这进一步推动了RISC-V的发展和应用。随着越来越多的企业和开发者加入RISC-V生态系统,RISC-V的生态系统正在不断完善和成熟。
安全性和稳定性
RISC-V架构的安全性和稳定性得到了验证。例如,行业内已大范围开始使用基于RISC-V架构的嵌入式控制内核,并逐渐进入设备的顶层芯片。
RISC-V指令集拓展
RV32I
RV32I是RISC-V针对32位处理器的最小指令集,表示32位基础整形指令集,它大约包含40条指令,可以在32位处理器上实现一个完整的软件栈。
RV32I是RISC-V指令集中固定不变的最小指令集。
RV64I
RV64I是RISC-V针对64位处理器的最小指令集,表示64位基础整形指令集,RV64I在RV32I的基础上除了将所有寄存器都扩展到了64位,而且还添加了对字(word)、双字(double word)、和长整型(long)版本指令的支持。
RISC-V拓展指令集
在RV32I和RV64I的基础上,RISC-V指令集还支持模块化拓展,以支持更多特性,RISC-V拓展指令集如下表所示:
拓展指令集 | 说明 |
F | 单精度浮点数拓展指令集 |
D | 双精度浮点数拓展指令集 |
Q | 4倍精度浮点数拓展指令集 |
M | 整型乘法和除法拓展指令集 |
C | 压缩指令集 |
A | 原子操作指令集 |
B | 位操作指令集 |
E | 为嵌入式设计的整型指令集 |
H | 虚拟化拓展指令集 |
K | 密码运算拓展指令集 |
V | 可伸缩矢量拓展指令集 |
P | 打包SIMD(packed-SIMD)拓展指令集 |
J | 动态翻译语言拓展指令集 |
T | 事务内存指令集 |
N | 用户态中断指令集 |
除此之外,RISC-V还提供了一个稳定的指令集集合,称为RV32G/RV64G。其中,G表示IMAFD,实现基础整型指令集、整型乘法和除法拓展指令集、原子操作指令集、单精度浮点数拓展指令集和双精度浮点数拓展指令集。
RISC-V商业化发展
首先RISC-V的发明者Krste Asanović创办了SiFive公司,为RISC-V的商业化推广起到了示范作用,目前为止赛昉科技、芯来科技、兆易创新、睿思芯科、希姆计算、中科物栖、紫荆半导体、蓝芯算力等等科技公司已经开发出商用的RISC-V芯片。
目前,RISC-V芯片主要应用于MCU(微控制单元)和IoT(物联网)设备上。这类设备的关注度虽然不如智能手机、平板电脑等消费电子产品高,但RISC-V在智能家居等物联网领域的应用已经相当广泛。根据RISC-V基金会的统计,RISC-V架构芯片的出货量在持续增长。例如,2022年7月RISC-V架构芯片的出货量已经突破100亿颗,并有望在2025年突破800亿颗。
展望未来,RISC-V有望向智能驾驶、航空航天、AI超算等高端场景渗透。