RV32I集的紧凑指令的宽度(以位为单位)是多少?

时间:2019-05-28 21:46:17

标签: riscv

我今天有家庭作业,我需要回答以下问题: 1.RV32I集的精简指令的宽度(以位为单位)是多少? 2.需要多少个连续指令才能将32位值加载到注册表中? 谢谢。

1 个答案:

答案 0 :(得分:0)

我建议阅读RISC-V ISA specification

  

RV32I集的紧凑指令的宽度是多少?

对于RV32I,没有紧凑指令的概念。 RV32I是指32位基本整数指令集(因此RV32I中的I)。

您可能要问的是RV32I的“ C”扩展,名为RV32C。从§12.1开始:

  

RVC使用一种简单的压缩方案,可以提供较短的 16位版本的普通32位RISC-V指令


  

将32位值加载到注册表中需要多少个连续指令?

从第2.4节立即注册整数指令

  

ADDI 将符号扩展的12位立即数添加到寄存器中   rs1

  

LUI 将U中间值放在目标寄存器的高20位中   rd   ,填充最低   带有零的12位。

因此,将32位立即数加载到寄存器中的常见用法是lui(加载高位立即数),后跟addi

lui a0,       %hi(msg)       # load msg(hi)
addi a0, a0,  %lo(msg)       # load msg(lo)

第一条指令将msg的高20位装入寄存器a0的高20位。然后,使用msg填充addi的低12位。