图 1. 加载字节扩展地址
描述
从存储器位置加载字节(8 位),此存储器位置源自于通过将寄存器 rs1 与 rs1+1 内容相连接而形成的有效地址。符号扩展数据布局在寄存器 rd 内。rs1 寄存器编号必须为偶数。保留错误对齐(奇数编号)的寄存器以作他用。
如果物理存储器访问 (PMA) 检查不成功,或者从存储器读取时如果发生错误,就会发生加载访问故障异常。
造成加载页故障异常的原因是虚拟存储器有效地址转换不成功。
伪代码
Addr ← (rs1 + 1) (rs1)
(rd)[24:31] ← Mem(Addr)[24:31]
(rd)[0:23] ← Mem(Addr)[24]
更改的寄存器
rd,除非发生陷阱,发生陷阱时寄存器保持不变
时延
- 1 个周期,
C_OPTIMIZATION= 0、2 或 3 - 2 个周期,
C_OPTIMIZATION= 1
注释
- 该指令仅在以下情况下有效:MicroBlaze V 配置为使用扩展地址 (
C_ADDR_SIZE> 32),且已禁用 PMP;或者仅在 M_AXI_DP 接口上使用扩展地址(C_PMP_ENTRIES= 0 或C_USE_AXI_DP_EXT_ADDR= 1),并搭配 RV32I 基础整数指令集 (C_DATA_SIZE= 32)。 - 对指令进行解码时,会忽略指令位 20-24 和 26-28。