VSM.V 和 VSE8.V 有什么区别?
VSM.V 存储 packed mask bits,长度为 ceil(vl/8) 字节;VSE8.V 存储 8-bit 数据元素。
从 x[rs1] 起存储源寄存器的 ceil(vl/8) 个完整字节。
VSM.V 是未掩码的单位步长 mask store,EEW=8、EMUL=1。源位 i 对应字节 floor(i/8) 的位 i mod 8;末字节中索引≥vl 的源位也会被存储,不自动清零。
从编码字段解析 packed mask 存储,再逐元素计算 x[rs1] + floor(i/8)。
教学环境:V 1.0、VS已启用、合法vtype,VLEN=4096、SEW=8、LMUL=m1、vstart=0,无访问异常。EEW=8、EMUL=1,vm=1;rs1=x0 时基址为0。VL=0 不访问内存;否则存储完整 ceil(VL/8) 字节,末字节中的所有源位也会写入。逐bit步骤仅解释映射,不表示访问顺序或处理器周期。
动画从 32 位向量内存指令编码开始,按官方位段显示 nf、mew、mop、vm、rs2/vs2 或 lumop/sumop、width、寄存器字段和 opcode。
VL=9、vstart=0 时写 2 个完整字节,即源寄存器的位 0..15;源寄存器本身不变。
vs3 是单个源向量寄存器(v0–v31);rs1 是整数基址寄存器,x0 提供地址0。
32位 STORE-FP:opcode=0100111、nf=000、mew=0、mop=00、vm=1、sumop=01011、width=000;vs3 在 bits11:7,rs1 在 bits19:15。无 v0.t 操作数。
EEW=8、EMUL=1,evl=ceil(vl/8)。从字节 vstart 起存储完整源字节;源位 i 对应地址 x[rs1]+floor(i/8) 的 bit i mod 8,末字节中 i≥vl 的源位也会写入。
vstart 以字节计;vstart≥evl(含vl=0)不访问内存。单位步长不保证各字节访问顺序;访问可能陷入。示例假设vstart=0、内存可写,源寄存器不变。
要求 V 1.0、向量状态已启用及合法受支持 vtype/SEW;正常完成后 vstart=0。动画是教学分解,不代表处理器周期。
假定 V/VS 已启用、合法受支持 m1、VLEN=4096、XLEN=64、vstart=0,源已初始化且内存写入成功。VL=9, v0 bits[0..15]=1000000000000001, a0=0x8000 → [0x8000]=0x01, [0x8001]=0x80。按索引递增书写bit串;完整末字节包含VL之外的源位。
假定 V/VS 已启用、合法受支持 m1、VLEN=4096、XLEN=64、vstart=0,源已初始化且内存写入成功。VL=9, v0 bits[0..15]=1000000000000001, a0=0x8000 → [0x8000]=0x01, [0x8001]=0x80。按索引递增书写bit串;完整末字节包含VL之外的源位。
假定 V/VS 已启用、合法受支持 m1、VLEN=4096、XLEN=64、vstart=0,源已初始化且内存写入成功。VL=9, v0 bits[0..15]=1000000000000001, a0=0x8000 → [0x8000]=0x01, [0x8001]=0x80。按索引递增书写bit串;完整末字节包含VL之外的源位。
VSM.V 存储 packed mask bits,长度为 ceil(vl/8) 字节;VSE8.V 存储 8-bit 数据元素。
不是。语法源操作数是 vs3,可以是向量 mask register;v0 只是常见掩码寄存器。