RISCV32 与 RISCV64 对比

RISCV32 vs RISCV64

Riscv32 和 Riscv64 有什么区别?我一直在查看 ISA 文档,但找不到任何地方清楚地提到它,所以现在很困惑。

不幸的是,我无法从 google 中找到任何关于此的文档。任何指针?

RISC V 有很多选项。 RV32I 和 RV64I 是基本指令集,分别是 32 位和 64 位。还有一个 128 位版本 RV128I,和一个较小的 32 位版本 RV32E,它只有 16 个通用寄存器,而其他版本有 32 个寄存器。

对于基本指令集,他们添加了可选的扩展,例如用于浮点、乘法和除法等。所以像 RV32IMAC 是基于 RV32I 的 M、A 和 C 扩展。

RV32I、RV64I 和 RV128I 之间的主要区别在于寄存器的宽度,宽度为 32、64 或 128 位。

操作码也有一些差异。较大的宽度添加了一些指令来处理较大的尺寸。例如,RV64I 使用与 RV32I 相同的操作码来进行添加,但意味着 64 位添加而不是 32 位添加,而 RV64I 中有一个新的操作码用于仅进行 32 位添加 (addw)。 RV64I 使用与 RV32I 相同的操作码进行加载和存储,但包含用于 loading/storing 64 位值的新操作码。

另请参阅:

Risc 64 位架构具有相同的指令长度(32 位),但 CPU 的寄存器为 64 位宽,而不是 RISC 32 位版本中的 32 位宽。