You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MIPS指令集中lh/lb(载入半字/载入字节)的符号扩展发生在哪个环节?

单周期MIPS中lb/lh指令的符号扩展执行阶段解答

你观察到的简化原理图没有在回写阶段标注符号扩展逻辑,是因为这个操作的位置并不在回写(WB)阶段,而是整合在内存访问(Mem)阶段的输出通路中,属于数据存储器输出后的可选处理环节,大部分教学用简化原理图会把这部分逻辑合并到数据存储器模块,不会单独画出。

具体实现逻辑如下:

  • 当控制单元解码出当前执行的是lb/lh指令时,会生成对应的符号扩展控制信号,给到数据存储器输出端的位宽扩展模块
  • 该模块会根据指令类型选择处理逻辑:
    • lb:从内存返回的32位数据中截取对应的8位字节,做符号扩展为32位
    • lh:从内存返回的32位数据中截取对应的16位半字,做符号扩展为32位
    • lbu/lhu:对应位宽数据做零扩展为32位
    • lw:直接透传32位内存数据
  • 经过扩展后的32位数据会直接送到WB阶段的寄存器写入端口,整个扩展操作在Mem阶段就完成了,所以WB阶段不需要额外的处理步骤,这就是你在WB阶段看不到符号扩展逻辑的原因。

这个位宽扩展模块和I类指令的立即数符号扩展模块是完全独立的两套逻辑:立即数扩展在指令译码(ID)阶段执行,为ALU提供操作数;load指令的位宽扩展在Mem阶段执行,为寄存器写入提供符合格式要求的32位数据,两者不会共用资源,位置也完全不同。

内容的提问来源于stack exchange,提问作者gost1212

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 21:36:05