文件名称:基本指令格式-maven3种打包方式中maven-assembly-plugin的使用详解
文件大小:3.65MB
文件格式:PDF
更新时间:2024-06-29 10:59:17
risc-v
2.2 基本指令格式 在基本ISA中,有四种核心指令格式(R/I/S/U),如图 2.2所示。所有的指令都是固定 32位长度的,并且在存储器中必须在4字节边界对齐。当发生一个条件分支或者无条件转移 而且目标地址不是对齐到4字节时,将会产生一个指令地址不对齐的异常。如果条件分支没 有发生(not taken),那么将不会产生一个取指不对齐异常。 31 25 24 20 19 15 14 12 11 7 6 0 funct7 rs2 rs1 funct3 rd opcode R类 imm[11:0] rs1 funct3 rd opcode I类 imm[11:5] rs2 rs1 funct3 imm[4:0] opcode S类 imm[31:12] rd opcode U类 图 2.2:RISC-V 基本指令格式 在所有格式中,RISC-V ISA将源寄存器(rs1和rs2)和目标寄存器(rd)固定在同样的位 置,以简化指令译码。在指令中,立即数被打包,朝着最左边可用位的方向,并且是分配好 的,以减少硬件复杂度。特别地,所有立即数的符号位总是在指令的第31位,以加速符号扩 展电路。 解码寄存器区分符通常处于实现的关键路径上,因此指令格式选择将所有 寄存器区分符,在所有格式中,都固定在相同的位置。这是有代价的,不得不 把立即数的一些位分散到格式中(这是与 RISC-IV,也就是 SPUR[14],相同的 特性)。 事实上,绝大多数立即数要么很小,要么需要所有的 XLEN 位。我们选择