为什么在RISC V架构的PC机上连接PC+4而不是PC+2或PC+1,我认为这取决于指令存储器的存储单元的宽度。如果宽度是16位,那么我们需要加载两个相邻的地址来填充32位指令,或者如果宽度是32位,我们只需要加载一个地址来获取完整的指令。
发布于 2020-09-16 17:10:40
RV32I-V处理字节地址中的所有内容(摘自the ISA manual的第19页:“RISC提供了一个字节寻址和低端的32位用户地址空间”)。因此,在使用字节地址时,将PC视为递增4是有意义的,因为每条RV32指令都是4字节。
当我们说RISC-V将PC递增4时,这意味着对于32位RISC-V指令的任何给定字节地址X,下一条指令将在内存中的地址X+4处开始。(请注意,当使用16位/2字节的压缩指令时,PC递增2)。
16位的IMEM读取宽度意味着需要从IMEM读取2次才能获得完整的指令,而32位的IMEM读取宽度意味着只需要从IMEM读取1次就可以获得完整的指令。但是这些是实现方面的考虑因素,而不是ISA方面的考虑--假设您可以使用任一类型的IMEM实现一个符合ISA的RISC-V处理器。
https://stackoverflow.com/questions/63904609
复制相似问题