VLUXEI64.V 的地址偏移单位是什么?
索引装载的 vs2 元素是无符号字节偏移。
以 x[rs1] 为基址,使用 vs2 中 64 位无符号字节偏移执行无序 indexed load。
VLUXEI64.V 是 RISC-V V 扩展的无序索引向量装载指令。每个活动元素把 vs2[i] 的 64 位无符号字节偏移加入 x[rs1] 形成地址。V 1.0 不支持 RV32 的 64 位索引,本页使用 RV64。ei64 表示索引 EEW=64,不是数据元素宽度。无序形式不保证元素访问按元素编号顺序被观察。vm=0 时 v0.t 关闭的元素不访问内存。
从编码字段解析 64 位索引装载,再逐元素计算 x[rs1] + vs2[i]。
V 扩展不支持 RV32 上的索引 EEW=64;本动画固定 RV64,不提供 RV32 执行路径。通用宽索引取低 XLEN 位规则不能覆盖此支持范围限制。
教学环境:XLEN=64,VLEN=4096,SEW=32,LMUL=m1,VLMAX=128,索引 EMUL=2,合法 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。
VLUXEI64.V 的 vs2 是字节偏移向量,不是元素编号;无序形式不能依赖元素访问顺序。
32 位 LOAD-FP:opcode=0000111、nf=000、mew=0、mop=01、width=111。vd 为数据目标组,rs1 为整数基址,vs2 为无符号字节偏移;不隐式缩放。
数据 EEW=SEW、EMUL=LMUL;索引 EEW=64、EMUL=(EEW/SEW)×LMUL,须在 1/8..8 内且组起点合法。V 1.0 不支持 RV32 的 64 位索引,本页使用 RV64。rs1=x0 时基址为 0。
省略 v0.t 为 vm=1,给出 v0.t 为 vm=0。masked vd 不能重叠 v0;同一寄存器不可同时作为 EEW=1 掩码和不同 EEW 数据源。不同 EEW 的目的/源重叠须满足低端/高端规则,合法重叠强制 ma/ta。
要求 V 1.0、VS 已启用、合法 vtype 和所需宽度受支持;prestart 不更新,body 为 vstart≤i<vl。VL=0 或 vstart≥vl 不更新任何目标(包括 tail);正常完成后 vstart=0,vl 不变。
仅活动元素访问内存,无序索引不保证元素访问顺序。未对齐可成功或触发未对齐异常,仍须满足地址访问权限;inactive/tail 按 vma/vta,可保留旧值或写全 1。
假定 RV64 V;VS 已启用、合法 vtype、VLEN≥128、所需宽度受支持;vsetvli 后 vl=4、vstart=0、ta/ma,未掩码。x10=0x8000, x11=4; e32,m1; v2 byte offsets=[0,8,16,24]; addresses=[0x8000,0x8008,0x8010,0x8018]; observed memory=[10,20,30,40] → v1=[10,20,30,40]。内存访问均成功,地址列表不是访问顺序保证。tail 不保证清零;正常完成后 vstart=0。
假定 RV64 V;VS 已启用、合法 vtype、VLEN≥128、所需宽度受支持;vsetvli 后 vl=4、vstart=0、ta/ma,未掩码。x10=0x8000, x11=4; e32,m1; v2 byte offsets=[0,8,16,24]; addresses=[0x8000,0x8008,0x8010,0x8018]; observed memory=[10,20,30,40] → v1=[10,20,30,40]。内存访问均成功,地址列表不是访问顺序保证。tail 不保证清零;正常完成后 vstart=0。
索引装载的 vs2 元素是无符号字节偏移。
vm=0 时用 v0 选择活动元素,vm=1 时所有 body 元素都参与;非活动和尾部元素按当前策略处理。