首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么RISC V中的程序计数器应该加4而不是加0或2

为什么RISC V中的程序计数器应该加4而不是加0或2
EN

Stack Overflow用户
提问于 2020-09-15 23:00:57
回答 1查看 1.8K关注 0票数 0

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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处理器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63904609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档