0

为什么 RISC V 架构中的 PC 连接的是 PC+4 而不是 PC+2 或 PC+1。我认为这取决于指令存储器(IMEM)的存储单元的宽度。如果宽度是 16 位,那么我们需要加载两个相邻的地址来填充 32 位指令,或者如果宽度是 32 位,我们只需要加载一个地址来获取完整的指令。

4

1 回答 1

0

RISC-V 处理字节地址中的所有内容(来自ISA 手册的第 19 页:“RV32I 提供了一个 32 位用户地址空间,它是字节寻址和小端序的”)。因此,当使用字节地址时,将 PC 视为递增 4 是有意义的,因为每个 RV32 指令都是 4 个字节。

当我们说 RISC-V 将 PC 增加 4 时,这意味着对于X32 位 RISC-V 指令的任何给定字节地址,下一条指令将从内存中的 address 开始X+4。(请注意,当使用压缩指令时,即 16 位/2 字节,PC 会增加 2)。

16 位 IMEM 读取宽度意味着需要从 IMEM 读取 2 次才能获得完整指令,而 32 位 IMEM 读取宽度意味着只需从 IMEM 读取 1 次即可获得完整指令。但这些是实现方面的考虑,而不是 ISA 方面的考虑——您可以假设使用任一类型的 IMEM 实现符合 ISA 的 RISC-V 处理器。

于 2020-09-16T09:10:40.433 回答