【RISC-V设计-03】- RISC-V指令集之基本整数指令

【RISC-V设计-03】- RISC-V指令集之基本整数指令

1. 基本指令简介

RV32I 是 RISC-V 指令集体系结构的一个基本指令集,其中“RV”代表 RISC-V,“32”表示 32 位,“I”表示整数(Integer)。这是所有 RISC-V 处理器都必须实现的指令集。RV32I 指令集的指令清单可以分为四大类,包括整数操作、加载与存储、控制转移(条件分支跳转和无条件跳转)以及杂项操作等。

2. 立即数运算指令

I型指令:立即数运算指令
序号指令
31
25
24
20
19
15
14
12
11
7
6
0
1ADDIimm[11:0]rs000rd0010011
2SLTIimm[11:0]rs001rd0010011
3SLTIUimm[11:0]rs011rd0010011
4XORIimm[11:0]rs100rd0010011
5ORIimm[11:0]rs110rd0010011
6ANDIimm[11:0]rs111rd0010011
7SLLI0000000shamtrs001rd0010011
8SRLI0000000shamtrs101rd0010011
9SRAI0100000shamtrs101rd0010011

3. 寄存器运算指令

R型指令:寄存器运算指令
序号指令
31
25
24
20
19
15
14
12
11
7
6
0
1ADD0000000rs2rs1000rd0110011
2SUB0100000rs2rs1000rd0110011
3SLL0000000rs2rs1001rd0110011
4SLT0000000rs2rs1010rd0110011
5SLTU0000000rs2rs1011rd0110011
6XOR0000000rs2rs1100rd0110011
7SRL0000000rs2rs1101rd0110011
8SRA0100000rs2rs1101rd0010011
9OR0000000rs2rs1110rd0110011
10AND0000000rs2rs1111rd0110011

4. 加载与存储指令

I和S型指令:加载与存储指令
序号指令
31
25
24
20
19
15
14
12
11
7
6
0
1LBimm[11:0]rs000rd0000011
2LBUimm[11:0]rs100rd0000011
3LHimm[11:0]rs001rd0000011
4LHUimm[11:0]rs101rd0000011
5LWimm[11:0]rs010rd0000011
6SBimm[11:5]rs2rs1000imm[4:0]0100011
7SHimm[11:5]rs2rs1001imm[4:0]0100011
8SWimm[11:5]rs2rs1010imm[4:0]0100011

5. 无条件长跳转指令

U和UJ型指令:长跳转指令
序号指令31
30
21
20
19
15
14
12
11
7
6
0
1JALimm[20]imm[10:1]imm[11]imm[19:12]rd1101111
2JALRimm[11:0]rs000rd1101111

6. 有条件分支指令

SB型指令:条件分支指令
序号指令31
30
25
24
20
19
15
14
12
11
8
7
6
0
1BEQimm[12]imm[10:5]rs2rs1000imm[4:1]imm[11]1100011
2BNEimm[12]imm[10:5]rs2rs1001imm[4:1]imm[11]1100011
3BLTimm[12]imm[10:5]rs2rs1100imm[4:1]imm[11]1100011
4BGEimm[12]imm[10:5]rs2rs1101imm[4:1]imm[11]1100011
5BLTUimm[12]imm[10:5]rs2rs1110imm[4:1]imm[11]1100011
6BGEUimm[12]imm[10:5]rs2rs1111imm[4:1]imm[11]1100011

7. 立即数加载指令

U型指令:长立即数指令
序号指令
31
12
11
7
6
0
1LUIimm[31:12]rd0110111
2AUIPCimm[31:12]rd0010111

8. 杂项操作指令

特殊型指令:杂项指令
序号指令
31
28
27
24
23
20
19
15
14
12
11
7
6
0
1FENCE0000predsucc00000000000000001111
2ECALL0000 0000 000000000000000001110011
3EBREAK0000 0000 000100000000000001110011

9. 指令集总结

RV32I 是 RISC-V 最为基础的指令。在之前的版本里,涵盖有 CSR 指令以及 Fence.I 指令。然而,在最新的规范当中,它们从 RV32I 中被移除,转而成为独立的 Z 扩展指令,即 Zicsr 和 Zifencei 。这种改变促使设计变得更为灵活。在某些资源受限但对特定功能需求不高的小型嵌入式系统中,开发者可以根据实际应用场景和资源状况,决定是否要引入这两种指令,从而更好地优化系统性能和成本。像一些简单的传感器控制单元,可能就无需强制实现这两个指令,以节省硬件资源和设计复杂度。

  • 17
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值