整数计算、控制转移、取数和存数、其他
特点:只有6种指令格式,每种都是32位,简化了指令译码过程;支持3个寄存器操作数;源寄存器、目的寄存器位于同一字段;全为0/1的指令为非法指令;
S-type和B-type的区别在于立即数字段之间的旋转;U-type和J-type的区别同理
RV32I共有x0-x31共32个寄存器,每一个寄存器都有一个ABI的名称,其中x0硬连线为0,PC寄存器为单独的一个寄存器。
详见图寄存器
主要分为简单算术指令(yellow)、逻辑运算指令(green)、移位指令(red)和其他
slt、sltu、slti、sltiu、lui、auipc
RV32I 可通过立即数字段为 0 的 auipc 获取当前 PC
lw、sw;lb、lbu、sb;lh、lhu、sh
beq、bne、bge、blt、bgeu、bltu
jal、jalr
巧妙把rd设为x0/zero
其他类型指令均为I-type
csr指令用于访问程序性能计数器;ecall/ebreak与environment有关;fence与I/O、访存定序有关 fence.i用于同步指令和数据流(这块还不太懂)