SFC2021
SFC2021 总版主

267枚
铜币

334点
威望

0个
银元

计算机体系架构基础 -RISC-V 指令集现状介绍

2021-03-26 09:17

2540

图片:RISC-V International:RISC-V正在走向手机和HPC 1.png



截至今年,RISC-V 已经发展了十年了,这几年,笔者也算是经历了RISC-V指令集在中国的传播,发展,以及爆发。因此,本文主要整理截至目前,RISC-V指令集架构的发展情况,以便给读者提供关于RISC-V相关信息的汇总,后续的更新,则会介绍RISC-V指令集的相关知识。

RISC-V 的官网为www.riscv.org

在2018年前后,众所周知的RISC-V指令集可分为:IMACFD
I   整型基本指令集
M 乘除基本指令集
A  原子操作指令集
C  压缩指令集
F  单精度浮点指令集
D  双精度浮点指令集

经过这几年开源工作组的推动,目前RISC-V指令集的发展现状为:
                             
指令集
                             
版本
                             
状态
                             
描述
                             
网址
                             
RV32E
                             
v1.9
                             
Draft
                             
32-bit基本整型指令集(16个寄存器)
                             
https://github.com/riscv/riscv-isa-manual
                             
RV32I
                             
v2.1
                             
Ratified
                             
32-bit基本整型指令集
                             
RV64I
                             
v2.1
                             
Ratified
                             
64-bit基本整型指令集
                             
RV128I
                             
v1.7
                             
Draft
                             
128-bit基本整型指令集
                             
RVWMO
                             
v2.0
                             
Ratified
                             
RISC-V 内存模型
                             
M
                             
v2.0
                             
Ratified
                             
乘除指令集
                             
A
                             
v2.1
                             
Ratified
                             
原子操作指令集
                             
C
                             
v2.0
                             
Ratified
                             
压缩指令集
                             
F
                             
v2.2
                             
Ratified
                             
单精度浮点指令集
                             
D
                             
v2.2
                             
Ratified
                             
双精度浮点指令集
                             
Q
                             
v2.2
                             
Ratified
                             
四精度浮点指令集
                             
Zicsr
                             
v2.0
                             
Ratified
                             
CSR 访问指令集,从I指令集分离
                             
Zifencei
                             
v2.0
                             
Ratified
                             
ICache 与DCache 同步指令集,从I指令集分离
                             
Counter
                             
v2.0
                             
Ratified
                             
读取架构计数器指令集,从I指令集分离
                             
M-Mode
                             
v1.11
                             
Ratified
                             
RISC-V 特权模式Machine-Mode
                             
S-Mode
                             
v1.11
                             
Ratified
                             
RISC-V 特权模式SuperVisor-Mode
                             
H-Mode
                             
v0.6.1
                             
Draft
                             
RISC-V 特权模式Hypervisor-Mode
                             
U-Mode
                             
-
                             
-
                             
RISC-V 非特权模式User-Mode
                             
V
                             
v0.10
                             
Draft
                             
Vector 指令集
                             
https://github.com/riscv/riscv-v-spec
                             
B
                             
v0.93
                             
Draft
                             
比特操作指令集
                             
https://github.com/riscv/riscv-v-spec
                             
P
                             
-
                             
Draft
                             
Pack-SIMD 指令集
                             
https://github.com/riscv/riscv-p-spec
                             
J
                             
-
                             
Draft
                             
动态翻译语言指令集
                             
https://github.com/riscv/riscv-j-extension
                             
Debug
                             
v1.0
                             
Ratified
                             
RISC-V Debug 架构
                             
https://github.com/riscv/riscv-debug-spec
                             
Trace
                             
v1.0
                             
Ratified
                             
RISC-V Trace 架构
                             
https://github.com/riscv/riscv-trace-spec




































































以上是指令集目前进展,这里笔者补充几点:

1.  在RISC-V 架构中,必须实现RV32I , RV32E, RV64I, RV128I 基本指令集的一种,以及RVWMO的内存模型。
2.  在RISC-V指令集架构中,RV32I/RV32E, RV64I, RV128I 是互相独立的基本指令集,即,假设64位处理器只实现了RV64I,那么在Linux操作系统中,如果执行的程序基于RV32I指令集编译,那么无法在Linux 操作系统暂时无法执行该程序。不过RISCV架构也描述64位处理执行32位程序的特权架构,但是目前Linux还未对这方面进行支持,有兴趣的读者可以参与到这部分的工作中来。
3.  V指令集和P指令集其实在一定程度上存在冲突,至于两者以后是同时存在,还是只留其一,笔者不好判断,但不管如何V指令集还是正统。
4.  B指令集的设计者还是挺牛逼的,把标准,电路实现和编译器的工作都做完了,且开源,省了其他人设计的功夫,但笔者个人觉得B指令集设计还是过于复杂,可以仅仅实现其中的部分指令。
5.  H-Mode 将会是RISC-V走向成熟的一个标志性的标准,是目前笔者最期待的一个标准。
6.  J指令集貌似一直没有太大的进展。
7.  C指令集提高了RISC-V指令的代码密度,但是目前仍然有很多工程师在评估RISC-V时,觉得RSICV的代码密度还是比ARM 的代码密度大,RSIC-V也有代码密度相关的组,具体在https://github.com.cnpmjs.org/riscv/riscv-code-size-reduction,希望能提供一定的帮助。

以上是指令集的相关情况,对于软硬件的实现,RISC-V也提供了相应的开源支持,希望感兴趣的读者参与,详细的信息可以查阅网址https://riscv.org/exchange

处理器:
                             
处理器
                             
开发语言
                             
描述
                             
网址
                             
rocket
                             
Chisel
                             
5-stage 顺序流水线
                             
https://github.com/chipsalliance/rocket-chip
                             
boom
                             
Chisel
                             
乱序流水线
                             
https://github.com/riscv-boom/riscv-boom
                             
NutShell
                             
Chisel
                             
乱序流水线,由中科院"一生一芯“计划演进的高性能流水线
                             
https://github.com/OSCPU/NutShell











工具链:
                           
工具链
                           
网址
                           
GCC
                             
https://github.com/riscv/riscv-gcc
                             
LLVM
                             
https://github.com/llvm





仿真器:
             
        
仿真器
                             
描述
                             
网址
                             
spike
                             
RISC-V 指令功能模拟器,但仅限于指令功能,暂时无法在上面运行Linux等操作系统
                             
https://github.com/riscv/riscv-isa-sim
                             
qemu
                             
RISC-V 指令功能模拟器,能够比较运行Linux等操作系统,是在没有硬件条件下,进行程序开发的最好模拟工具
                             
https://github.com/riscv/riscv-qemu








操作系统:
                             
操作系统
                             
网址
                             
Linux Kernel
                             
https://github.com/riscv/riscv-linux
                             
RT-Thread
                             
https://github.com/RT-Thread
                             
LiteOS
                             
https://github.com/LiteOS/LiteOS_Lab/






本文转载自SoC设计基础,目的在于传播更多信息,版权归原作者所有。


返回顶部