gpt4 book ai didi

riscv - 为什么商店说明有自己的格式

转载 作者:行者123 更新时间:2023-12-01 00:09:45 24 4
gpt4 key购买 nike

加载和存储指令对编码有相同的要求:两个寄存器和一个 12 位立即数。然而,存储指令(sb、sh、sw)具有称为 S 型的专用格式,而加载指令使用与 addi 指令相同的 I 型格式。

我不明白为什么加载和存储不共享指令格式,但存储只有自己专用的指令格式( S-type )。

最佳答案

我相信这两种格式是不同的,以简化解码。查看 I 和 S 指令的格式,您会看到:

I: |    imm[11:0]        |  rs1  |  funct3 | rd       | opcode |
S: | imm[11:5] | rs2 | rs1 | funct3 | imm[4:0] | opcode |

负载 rd与需要 rd 的所有其他指令位于指令的相同位位置(I、R、U 和 UJ 格式都将 rd 放在同一位置)。相比之下,Store 指令没有目标寄存器,而是有一个地址寄存器和一个我们要存储其值的寄存器,因此 rd 所需的位而是用作立即编码的一部分。

如果您自己尝试实现 RISC-V(在 FPGA、Logisim 或您选择的任何方式中),您会发现 rd 是多么方便。总是在同一个地方。

总结一下为什么 S 指令具有独特的格式:它们是唯一一种指令,在 load/store 中。像RISC-V这样的架构,不修改寄存器的内容。其余的指令确实修改了一个寄存器,所以需要一个 rd .

关于riscv - 为什么商店说明有自己的格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59668370/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com