VSSE8.V 的 stride 单位是什么?
stride 是 x[rs2] 中的字节数。它不是元素个数,也不会按 EEW 再隐式乘一次;若编码为 rs2=x0,则 x0 恒为 0。
把 vs3 的 8 位向量元素按 x[rs2] 字节跨步存到 x[rs1] 地址序列。
VSSE8.V 是 RISC-V V 扩展的 8 位跨步向量存储指令。活动 body 元素使用地址 x[rs1] 加 lane index 乘以 x[rs2];x[rs2] 是字节数 stride,可表示正、负或零跨步。vm=0 时由 v0.t 选择元素,被掩码关闭的元素不访问内存。
从编码字段解析 8 位跨步存储,再逐元素计算 x[rs1] + i * x[rs2] (16 bytes)。
教学环境:V 1.0、向量状态已启用、合法受支持 vtype;固定 XLEN=64、VLEN=4096、SEW=EEW=8、LMUL=EMUL=m1、vstart=0,VLMAX=512。rs1=x0 时基址为0;同名 rs1/rs2 必须具有相同值。v0 提供 EEW=1 掩码时不能同时作数据源。假定活动写入均成功;未对齐访问要求环境支持,未建模陷入。只显示逐元素存储事件,不表示最终字节内存映像;访问无序,重叠地址不保证最终值。rs2=x0 只展示候选访问,允许合并;非x0零stride仍要求每个活动元素一次访问。VL=0、inactive和tail不访问内存;源寄存器不变,正常完成后vstart=0。步骤是教学分解,不是处理器周期。
动画从 32 位向量内存指令编码开始,按官方位段显示 nf、mew、mop、vm、rs2/vs2 或 lumop/sumop、width、寄存器字段和 opcode。
VSSE8.V 是 RVV 8 位跨步向量存储:每个活动元素的内存地址是 x[rs1] 加 lane index 乘以 x[rs2],其中 x[rs2] 是字节 stride。vl 和 v0.t 掩码决定哪些 body 元素参与内存访问。
vs3提供存储数据,rs1提供基址,rs2提供字节stride;x0恒为0。EEW=8固定,EMUL=(EEW/SEW)×LMUL须在1/8..8,组起点对齐;不是要求SEW必须等于EEW。
32位STORE-FP:opcode=0100111,nf=000、mew=0、mop=10、width=000;vm在bit25、rs2在bits24:20、rs1在bits19:15、vs3在bits11:7。vm=0使用v0.t,省略为vm=1。
活动元素地址=x[rs1]+i×x[rs2],stride不按EEW缩放,支持正、负、零值。rs2=x0允许少于每个活动元素一次访问;非x0寄存器值为0时,每个活动元素仍须一次访问。所有跨步元素访问无序,不保证重叠地址最终值。
要求V 1.0、已启用向量状态、vill=0和受支持vtype/EEW。v0不能同时作为EEW=1掩码和数据源。仅vstart≤i<vl且掩码允许的元素访问内存;inactive/tail无访问,vstart≥vl(含vl=0)无访问。未对齐访问可成功或异常,活动访问仍可能陷入。源寄存器不变;正常完成后vstart=0。
假定V/VS已启用、合法e8,m1,ta,ma、VLEN=4096、XLEN=64、a0=0x8000、a2=4、v8=[10,20,30,40]、v0.mask[0..3]=1011,内存可写且访问成功。示例vsetvli后vl=4、vstart=0,li设置t0=4字节;活动元素0、2、3分别写入[0x8000,0x8008,0x800c]=[10,30,40]。元素1和tail不访问内存;源不变。地址列表不表示实际访问顺序;正常完成后vstart=0。
假定V/VS已启用、合法e8,m1,ta,ma、VLEN=4096、XLEN=64、a0=0x8000、a2=4、v8=[10,20,30,40]、v0.mask[0..3]=1011,内存可写且访问成功。示例vsetvli后vl=4、vstart=0,li设置t0=4字节;活动元素0、2、3分别写入[0x8000,0x8008,0x800c]=[10,30,40]。元素1和tail不访问内存;源不变。地址列表不表示实际访问顺序;正常完成后vstart=0。
假定V/VS已启用、合法e8,m1,ta,ma、VLEN=4096、XLEN=64、a0=0x8000、a2=4、v8=[10,20,30,40]、v0.mask[0..3]=1011,内存可写且访问成功。示例vsetvli后vl=4、vstart=0,li设置t0=4字节;活动元素0、2、3分别写入[0x8000,0x8008,0x800c]=[10,30,40]。元素1和tail不访问内存;源不变。地址列表不表示实际访问顺序;正常完成后vstart=0。
stride 是 x[rs2] 中的字节数。它不是元素个数,也不会按 EEW 再隐式乘一次;若编码为 rs2=x0,则 x0 恒为 0。
单位步长按连续 1 字节访问;VSSE8.V 使用 x[rs2] 给出的字节 stride,因此可以访问结构体字段、矩阵列或反向序列。
rs2=x0 时允许少于每个活动元素一次的内存操作;rs2≠x0 且 x[rs2]=0 时每个活动元素必须访问一次;两者均无序。
不会。vm=0 且对应 v0.t 位为 0 的 body 元素不会执行该元素的存储写入内存访问。