VLUXEI16.V 的地址偏移单位是什么?
索引装载的 vs2 元素是无符号字节偏移。
以 x[rs1] 为基址,使用 vs2 中 16 位无符号字节偏移执行无序 indexed load。
VLUXEI16.V 是 RISC-V V 扩展的无序索引向量装载指令。每个活动元素使用 x[rs1] + zero_extend(vs2[i]) 形成地址;指令名中的 ei16 表示索引 EEW=16,索引是无符号字节偏移,不是元素编号。无序形式不保证元素访问按元素编号顺序被观察。vm=0 时 v0.t 关闭的元素不访问内存。
从编码字段解析 16 位索引装载,再逐元素计算 x[rs1] + zero_extend(vs2[i])。
教学环境:XLEN=64,VLEN=4096,SEW=32,LMUL=m1,VLMAX=128,索引 EMUL=0.5,合法 vtype,VS 已启用,vstart=0,ta/ma。假定所选访问均成功,未建模陷入;未对齐访问仅在环境支持时适用。rs1=x0 的基址固定为 0。memory elements 输入表示每次活动读取观察到的值,允许内存随访问变化,并非静态字节内存映像。逐元素步骤不表示处理器周期或实际访问顺序,无序索引不保证元素顺序。inactive/tail 的“-”表示结果未显示,可保留旧值或写全 1;VL=0 不更新目标,正常完成后 vstart=0。
动画从 32 位向量内存指令编码开始,按官方位段显示 nf、mew、mop、vm、rs2/vs2 或 lumop/sumop、width、寄存器字段和 opcode。
VLUXEI16.V 的 vs2 是字节偏移向量,不是元素编号;无序形式不能依赖元素访问顺序。
语法 vluxei16.v vd, (rs1), vs2[, v0.t];省略 v0.t 为 vm=1,给出为 vm=0。vd 为向量组,rs1 为整数基址寄存器,x0 基址为 0。32 位 LOAD-FP:opcode=0000111、nf=000、mew=0、mop=01、width=101。
ei16 是索引 EEW,不是数据宽度。数据 EEW=SEW、EMUL=LMUL;索引 EMUL=(16/SEW)×LMUL。偏移按字节,不隐式缩放;窄于 XLEN 时先零扩展,等宽时直接相加。
索引宽度须受支持,EMUL 在 1/8..8 内,组起点须合法。不同 EEW 重叠须满足低端/高端限制,合法不同宽重叠强制 ma/ta;同一寄存器不能同时作为 EEW=1 掩码和不同 EEW 的索引源。
V 1.0 支持 RV32/RV64;要求合法 vtype、VS 已启用。仅 vstart≤i<vl 且掩码开启的元素访问内存;masked vd 不能与 v0 重叠。prestart 保持不变,inactive/tail 按 vma/vta;agnostic 可保留旧值或写全 1。
本页跨步和无序索引形式均不保证元素访问顺序。非自然对齐可成功或触发未对齐异常,实际地址还须满足访问权限。VL=0 或 vstart≥vl 不更新目标;正常完成后 vstart=0、vl 不变。
假定 V/VS 已启用、所需宽度受支持、VLEN≥128、x10=0x8000、x11=4,内存访问均成功;vsetvli 后 vl=4、vstart=0、ta/ma。e32,m1; v2 byte offsets=[0,8,16,24]; addresses=[0x8000,0x8008,0x8010,0x8018]; memory values=[10,20,30,40] → v1=[10,20,30,40]。省略 v0.t,未掩码;agnostic 可保留旧值或写全 1,tail 不保证清零;地址列表不是实际访问顺序。
假定 V/VS 已启用、所需宽度受支持、VLEN≥128、x10=0x8000、x11=4,内存访问均成功;vsetvli 后 vl=4、vstart=0、ta/ma。e32,m1; v2 byte offsets=[0,8,16,24]; addresses=[0x8000,0x8008,0x8010,0x8018]; memory values=[10,20,30,40] → v1=[10,20,30,40]。省略 v0.t,未掩码;agnostic 可保留旧值或写全 1,tail 不保证清零;地址列表不是实际访问顺序。
假定 V/VS 已启用、所需宽度受支持、VLEN≥128、x10=0x8000、x11=4,内存访问均成功;vsetvli 后 vl=4、vstart=0、ta/ma。e32,m1; v2 byte offsets=[0,8,16,24]; addresses=[0x8000,0x8008,0x8010,0x8018]; memory values=[10,20,30,40] → v1=[10,20,30,40]。省略 v0.t,未掩码;agnostic 可保留旧值或写全 1,tail 不保证清零;地址列表不是实际访问顺序。
索引装载的 vs2 元素是无符号字节偏移。
vm=0 时用 v0 选择活动元素,vm=1 时所有 body 元素都参与;非活动和尾部元素按当前策略处理。