【发布时间】:2020-07-09 03:43:26
【问题描述】:
Riscv32 和 Riscv64 有什么区别?我一直在研究 ISA 文档,但在任何地方都找不到明确提及的内容,现在很困惑。
很遗憾,我无法从谷歌找到任何关于此的文档。有指针吗?
【问题讨论】:
-
它只是内核中寄存器的宽度。寄存器的宽度也会改变指令的宽度。
Riscv32 和 Riscv64 有什么区别?我一直在研究 ISA 文档,但在任何地方都找不到明确提及的内容,现在很困惑。
很遗憾,我无法从谷歌找到任何关于此的文档。有指针吗?
【问题讨论】:
RISC V 有很多选择。 RV32I 和 RV64I 是基本指令集,分别为 32 位和 64 位。还有一个 128 位版本 RV128I 和一个较小的 32 位版本 RV32E,它只有 16 个通用寄存器,而其他有 32 个寄存器。
对于基本指令集,它们添加了可选的扩展,例如用于浮点数、乘法和除法等,所以像 RV32IMAC 是基于带有 M、A 和 C 扩展的 RV32I。
RV32I、RV64I 和 RV128I 之间的主要区别在于寄存器的宽度,宽度为 32、64 或 128 位。
还有一些操作码差异。较大的宽度增加了一些指令来处理较大的尺寸。例如,RV64I 使用与 RV32I 相同的操作码进行加法,但表示 64 位加法而不是 32 位加法,而 RV64I 中有一个新的操作码用于仅进行 32 位加法 (addw)。 RV64I 使用与 RV32I 相同的操作码进行加载和存储,但包含用于加载/存储 64 位值的新操作码。
另见:
【讨论】:
Risc 64 位架构具有相同的指令长度(32 位),但 CPU 的寄存器是 64 位宽,而不是 risc 32 位版本中的 32 位宽。
【讨论】: