RISC-V:S格式指令表

时间:2017-10-30 01:38:17

标签: riscv isa

enter image description here

我有这个S格式指令表。你能告诉我imm[11:5]funct3是什么吗?我知道funct表示它的大小有点,有时它是000或010.我不确切知道它为什么存在。此外,imm[11:5]也是所有0的7位。

请帮忙!

1 个答案:

答案 0 :(得分:0)

imm[4:0]imm[11:5]表示立即操作数的位表示形式的闭合间隔。

S格式用于编码商店指令,即:

sX rs2, offset(r1)

有不同类型的商店说明,例如 store-byte sb), store-half-word sh), store-word ({ sw)等。funct3部分用于编码类型(即0b00-> sb0b010-> sw,{ {1}}-> 0b011等)。这允许仅使用一个(主要)操作码,同时仍具有多种类型的存储指令-而不用浪费多个(主要)操作码。 IOW,sd对指令的次要操作码进行编码。

立即数对偏移量进行编码。如果您问自己为什么要这样分割-它可以增加编码中其余部分与其他指令格式的相似性。例如,操作码,rs1和funct3部分位于R型,I型和B型指令格式中的确切位置。 rs2部件放置与R型和B型指令格式共享。这些相似之处有助于简化指令解码器。

这意味着偏移量是12位宽且使用伪代码:

funct3

另请参阅RISC-V Base specification(批准的2019-06-08)第2.6节(加载和存储指令)中的第一个数字:

RISC-V S-type instruction format