目录
1 指令简介
2 RISC-V指令集
指令集体系结构(Instruction-Set Architecture, ISA):一个处理器支持的指令和指令的字节级编码就是这个处理器的ISA。
在RISC-V指令集规范中,强制要求实现的是由字母I表示的基础整数指令集,其他指令集均为扩展可选,一般使用的扩展指令集包括M/A/F/D/C,如下所示。
处理器指令集架构的宽度和指令的编码长度没有关系。就是 并不是说64位架构的指令长度为64位,而是说处理器一次能处理64位的数据(其寄存器的位宽为64位)。
以上模块的一个特定组合“IMAFD”,由于大多数RISCV处理器都会实现,所以也被称为通用组合,用英文字母G表示。因此RV32G表示RV32IMAFD,RV64G表示RV64IMAFD。
2.1 基础整数指令集
在RISCV架构中,除了压缩指令集外,其余的指令长度都为32位,也就是4个字节。整数指令集中的指令主要包括以下几类:
- 整数计算:主要是算术运算和逻辑运算类指令,实现加、减、与、或等功能计算。
- 地址访问:主要是Load和Store类指令,实现读写地址功能。
- 程序跳转:主要是分支跳转类和无条件跳转类指令,实现程序跳转功能。
- 控制状态:主要是系统控制状态寄存器访问类指令,实现对系统寄存器的访问。
2.2 RV32I 指令格式
用于寄存器-寄存器操作的 R 类型指令,
用于短立即数和访存 load 操作的 I 型指令,
用于访存 store 操作的 S 型指令,
用于条件跳转操作的 B 类型指令,
用于长立即数的 U 型指令
用于无条件跳转的 J 型指令。
具体指令如下: