RISC-V架构特点对于取指的简化
1:指令长度编码放在低位
- 得益于后发优势和多年来处理器发展的教训,所有RISC-V处理器的指令长度指示码都放在了低位,可以方便取指逻辑在取指过程中以最快的速度译码出当前指令的长度,极大地简化了硬件的设计
- 另外,16位压缩指令子集是可选的,假设处理器仅支持32位的而不支持16位的,甚至可以把后两位忽略不存储,因为肯定固定为(11),从而减少了6.25%的指令缓存
- RISC-V不同指令长度的后几位定义如下图所示,不过除了32位和16位,其他的指令长度格式并不常用
2:简单的分支跳转指令
- 无条件直接分支跳转指令,jal(跳转和链接)指令,用于进入子程序调用,同时将子程序的返回地址存在jal指令的目标寄存器(连接寄存器,link register)。
- 无条件间接分支跳转指令,jalr(jump and link-register)指令,用于子程序返回指令,通过将jal指令(跳转进入子程序)保存的连接寄存器地址,作为jalr指令的基地址寄存器,则可以从子程序返回。
- 带条件分支跳转指令,共有六条,他有两个操作数,