RISC-V:实施SLLI,SRLI和SRAI

时间:2016-09-14 11:29:27

标签: cpu-architecture riscv

在RISC-V指令集手册中,shift立即指示:

  1. SLLI(立即左移逻辑)。
  2. SRLI(Shift Right Logical Immediate)。
  3. SRAI(立即右移算术)。
  4. 手册中提到

      

    通过常数移位被编码为I类型的特化   格式。要移位的操作数在rs1中,移位量为   在I-immediate字段的低5位编码。正确的转变   type被编码在I-immediate的高位中。 SLLI是合乎逻辑的   左移(零移位到低位); SRLI是合乎逻辑的   右移(零位移到高位);和SRAI是一个   算术右移(原始符号位被复制到   空出的高位)。

    据说

      

    移位量在I-immediate的低5位中编码   字段。

    如何准确编码?

    另一件事是否意味着需要多个时钟周期才能按照I-immediate的低5位指定移位?或者这可以在一个时钟周期内完成? enter image description here

1 个答案:

答案 0 :(得分:6)

您可以直接在RISC-V规范中找到答案。

Encoding of SARI, SLLI and SRLI

 imm[11:5]    imm[4:0]   rs1    func3   rd   opcode    inst
------------------------------------------------------------
 0000000      shamt      rs1    001     rd   0010011   SLLI
 0000000      shamt      rs1    101     rd   0010011   SRLI
 0100000      shamt      rs1    101     rd   0010011   SRAI

至于延迟,ISA只处理架构而非微架构。 这意味着符合两个RISC-V的CPU可以在不同的时钟周期内执行移位。