小编san*_*naj的帖子

为什么RV64为32位操作而不是64位操作引入了新的操作码

在通过RISC-V规范时,我注意到64位版本与32位版本的不同之处在于,

  1. 将寄存器扩展到64位
  2. 更改了指令以对整个64位范围执行操作。
  3. 添加了新指令以执行32位操作

这使得RV32代码不兼容RV64。但是,如果64位版本已经实施方式:

  1. 将寄存器扩展到64位
  2. 重命名ADD/SUB/SHL/..ADDW/SUBW/SHLW/..与标志让他们只能在32位操作系统上延伸。
  3. 添加新的指令ADD/SUB/SHL/..ADDD/SUBD/SHLD/..在全部64位行为

这样,RV32程序也可以在RV64上运行。为了实现CPU,工作量将保持不变,因为在两种情况下都必须实现64位和32位指令,而只有64位和32位版本的操作码将被交换。符合规范。(除了乘法指令。)

那么,为什么RISC-V为什么决定将新的操作码分配给RV64中的32位操作而不是64位操作?

assembly instruction-set opcode 32bit-64bit riscv

5
推荐指数
1
解决办法
453
查看次数

标签 统计

32bit-64bit ×1

assembly ×1

instruction-set ×1

opcode ×1

riscv ×1