高通 Hexagon V65 HVX 编程参考手册(20)

高通 Hexagon V65 HVX 编程参考手册(20)

5.12 HVX/SCATTER-DOUBLE-RESOURCE

HVX/SCATTER-DOUBLE-RESOURCE 指令子类包括对向量 TCM 执行分散操作的指令。

Vector scatter
向量分散指令对向量 TCM 执行分散操作。分散操作将值从寄存器文件复制到 VTCM 中的区域。该内存区域由两个标量寄存器指定:Rt32 是基数,Mu2 指定该区域的长度为 1(以字节为单位)。该区域必须位于 VTCM 中并且不能跨越页面边界。矢量寄存器 Vvv32 指定该区域中的字节偏移量。由 Vw32 指定的半字或字粒度的元素被发送到每个元素的 Rt + Vvv32 指向的地址。在内存中,元素要么写入内存,要么随内存累加(scatter-accumulate)。

如果将多个值写入同一内​​存位置,则无法保证顺序。这适用于单个散点或多个散点。

偏移量向量 Vvv32 可以包含以字长指定的字节偏移量。向量对包含下向量中的偶数元素偏移量和上向量中的奇数元素偏移量。对于常规分散操作,最终元素地址不必按字节对齐。但是,对于分散累积指令,地址是对齐的。如果偏移量穿过分散区域的末尾,则将其丢弃。偏移量必须为正,否则将被丢弃。

在这里插入图片描述
在这里插入图片描述

注意

  • 此指令使用任何一对HVX资源(乘以或移位/置换)。
    在这里插入图片描述
    在这里插入图片描述

5.13 HVX/SCATTER

HVX/散点指令子类包括对向量TCM执行散射操作的指令。

Vector scatter
向量分散指令对向量 TCM 执行分散操作。分散操作将值从寄存器文件复制到 VTCM 中的区域。该内存区域由两个标量寄存器指定:Rt32 是基数,Mu2 指定该区域的长度为 1(以字节为单位)。该区域必须位于 VTCM 中并且不能跨越页面边界。矢量寄存器 Vv32 指定该区域中的字节偏移量。由 Vw32 指定的半字或字粒度的元素被发送到每个元素的 Rt + Vv32 指向的地址。在内存中,元素要么写入内存,要么随内存累加(scatter-accumulate)。

如果将多个值写入同一内​​存位置,则无法保证顺序。

偏移向量 Vv32 可以包含以半字或字大小指定的字节偏移。对于常规分散操作,最终元素地址不必按字节对齐。但是,对于分散累积指令,地址是对齐的。如果偏移量穿过分散区域的末端,则它会被丢弃。偏移量必须为正,否则它们将被丢弃。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_38498942/article/details/129852607
今日推荐