参考RV32I,我们将分支和跳转指令的最低有效位硬连线为零,以扩展指令的立即数字段中的地址范围,因为我们有字对齐存储器,在LSB中必须有两个零,现在我的问题是,如果我们硬连接跳转和分支指令的立即数的最后两位,那么我们有一个地址范围x4,而不是在立即生成部分中移位符号扩展后的32位。
发布于 2019-09-15 13:07:03
它可以工作,事实上,MIPS,一个RISC V的前身可以做到这一点。
然而,RISC V被设计为允许16位指令的紧凑指令格式(RVC)。事实上,RISC V允许指令扩展可以具有16位(16,32,48,64,80,96,...)的倍数的指令。
为了允许工具在仅支持32位指令和支持16位倍数指令的RISC V的不同版本之间工作,设计人员选择仅将1位硬连线为0,而不是2位。
这意味着,例如,一个库可能符合RV32I,但仍然可以在具有RVC扩展的硬件上正常工作,并在同一进程(以及相同的线程/调用链)中混合使用RVC和该库。
https://stackoverflow.com/questions/57941222
复制相似问题