一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

向量移位方法、处理器及电子设备与流程

2022-04-09 02:42:45 来源:中国专利 TAG:

技术特征:
1.一种向量移位方法,其特征在于,所述方法包括:接收指令,所述指令包括:寄存器标识和移位参数;其中,所述寄存器标识包括源寄存器标识和目的寄存器标识;所述源寄存器标识用于表征源寄存器,所述源寄存器为存储执行向量移位操作时被操作的源元素的寄存器;所述目的寄存器标识用于表征目的寄存器,所述目的寄存器为存储执行所述向量移位操作后得到的目标元素的寄存器;所述移位参数用于指示对所述源元素执行向量移位操作时所依据的规则;执行所述指令,以根据所述移位参数对从所述源寄存器获取的源元素执行向量移位操作,并获取所述向量移位操作后的目标元素;将所述目标元素写入所述目的寄存器。2.根据权利要求1所述的方法,其特征在于,根据所述移位参数对从所述源寄存器获取的源元素执行向量移位操作,并获取所述向量移位操作后的目标元素,包括:根据所述移位参数,确定移位量和移位运算规则;其中,所述执行向量移位操作的源元素为至少一个;根据所述移位量和所述移位运算规则,对所述源寄存器中的源元素执行相应的移位运算,生成移位运算结果;将所述移位运算结果中元素确定为目标元素。3.根据权利要求2所述的方法,其特征在于,所述移位参数包括移位量和操作码;所述移位量用于指示执行所述向量移位运算时被操作源元素的移位位数;所述操作码用于表征对所述源寄存器中源元素和目的寄存器中目标元素所执行的移位运算规则;根据所述移位量和所述移位运算规则,对所述源寄存器中的源元素执行相应的移位运算,生成移位运算结果,包括:根据所述操作码,从所述源寄存器中选取执行所述向量移位运算的源元素,并将选取的所述源元素确定为被操作数;以及根据所述操作码,对所述被操作数执行相应的移位运算,生成移位运算结果;将所述移位运算结果中元素确定为目标元素之后,将所述目标元素写入所述目的寄存器,包括:根据所述操作码,确定所述目标元素在所述目的寄存器中的存储方式;按照所述存储方式,将所述目标元素存储至所述目的寄存器中。4.根据权利要求3所述的方法,其特征在于,所述移位量为立即数;所述源寄存器包括第一源寄存器和第二源寄存器。5.根据权利要求4所述的方法,其特征在于,所述操作码为第一类型向量操作码;根据所述操作码,从所述源寄存器中选取执行所述向量移位运算的源元素,并将选取的所述源元素确定为被操作数,包括:根据所述第一类型向量操作码,将第一源寄存器中的所有源元素确定为一被操作数,并将第二源寄存器中的所有源元素确定为被操作数;根据所述操作码,对所述被操作数执行相应的移位运算,生成移位运算结果,包括:根据所述第一类型向量操作码,将所述第一源寄存器中的被操作数和所述第二源寄存器中的被操作数拼接后,生成第一拼接向量;根据所述立即数,对所述第一拼接向量中每个源元素均进行移位舍入饱和至半宽操
作,生成第一初始移位运算结果;对所述第一初始移位运算结果执行取位操作,生成移位运算结果;其中,所述取位操作包括对所述第一初始移位运算结果中包含的每个元素均取连续低半部分数据,对所述第一初始移位运算结果中包含的每个元素均取连续高半部分数据,对所述第一初始移位运算结果中包含的每个元素均取中间连续指定位元素数据,对所述第一初始移位运算结果中包含的每个元素均取非连续指定位数据中的任意一种。6.根据权利要求5所述的方法,其特征在于,所述第一类型向量操作码为第一向量操作码;根据所述立即数,对所述第一拼接向量中每个源元素均进行移位舍入饱和至半宽操作,生成第一初始移位运算结果,包括:根据所述立即数,对所述第一拼接向量中每个源元素均进行逻辑右移舍入有符号饱和至半宽操作,生成第一初始移位运算结果;对所述第一初始移位运算结果执行取位操作,生成移位运算结果,包括:分别选取所述第一初始移位运算结果包含的每个元素中连续低半部分数据,将选取操作后的所述元素确定为移位运算结果。7.根据权利要求5所述的方法,其特征在于,所述第一类型向量操作码为第二向量操作码;根据所述立即数,对所述第一拼接向量中每个源元素均进行移位舍入饱和至半宽操作,生成第一初始移位运算结果,包括:根据所述立即数,对所述第一拼接向量中每个源元素均进行算术右移舍入有符号饱和至半宽操作,生成第一初始移位运算结果;对所述第一初始移位运算结果执行取位操作,生成移位运算结果,包括:分别选取所述第一初始移位运算结果包含的每个元素中连续低半部分数据,将选取操作后的所述元素确定为移位运算结果。8.根据权利要求5所述的方法,其特征在于,所述第一类型向量操作码为第三向量操作码;根据所述立即数,对所述第一拼接向量中每个源元素均进行移位舍入饱和至半宽操作,生成第一初始移位运算结果,包括:根据所述立即数,对所述第一拼接向量中每个源元素均进行逻辑右移舍入无符号饱和至半宽操作,生成第一初始移位运算结果;对所述第一初始移位运算结果执行取位操作,生成移位运算结果,包括:分别选取所述第一初始移位运算结果包含的每个元素中连续低半部分数据,将选取操作后的所述元素确定为移位运算结果。9.根据权利要求5所述的方法,其特征在于,所述第一类型向量操作码为第四第一类型向量操作码;根据所述立即数,对所述第一拼接向量中每个源元素进行移位舍入饱和至半宽操作,生成第一初始移位运算结果,包括:根据所述立即数,对所述第一拼接向量中每个源元素进行算术右移舍入无符号饱和至半宽操作,生成第一初始移位运算结果;
对所述第一初始移位运算结果执行取位操作,生成移位运算结果,包括:分别选取所述第一初始移位运算结果包含的每个元素中连续低半部分数据,将选取操作后的所述元素确定为移位运算结果。10.根据权利要求4所述的方法,其特征在于,所述操作码为第二类型向量操作码;根据所述操作码,从所述源寄存器中选取执行所述向量移位运算的源元素,并将选取的所述源元素确定为被操作数,包括:根据所述第二类型向量操作码,分别在第一源寄存器和第二源寄存器中执行选取操作,得到第一被操作数和第二被操作数;其中,所述选取操作包括对所述第一源寄存器和第二源寄存器中每个元素均选取连续低半部分数据、对所述第一源寄存器和第二源寄存器中每个元素均选取连续高半部分数据、对所述第一源寄存器和第二源寄存器中每个元素均选取中间连续指定位数据、对所述第一源寄存器和第二源寄存器中每个元素均选取非连续指定位数据中的任意一种;并将所述第一源寄存器中除所述第一被操作数之外的数据确定为第三被操作数,将所述第二源寄存器中除所述第二被操作数之外的数据确定为第四被操作数;根据所述操作码,对所述被操作数执行相应的移位运算,生成移位运算结果,包括:将所述第一被操作数和第二被操作数进行拼接后,生成第二拼接向量,以及将第三被操作数和第四被操作数进行拼接后,生成第三拼接向量;其中,所述第二拼接向量和所述第三拼接向量中包含元素的数据类型均为半字、字、双字、四字中的任一种;根据所述立即数,对所述第二拼接向量中每个元素均进行移位舍入饱和至半宽操作,生成第二初始移位运算结果;并根据所述立即数,对所述第三拼接向量中每个元素均进行移位舍入饱和至半宽操作,生成第三初始移位运算结果;对所述第二初始移位运算结果执行取位操作,生成第一移位运算结果;以及,对所述第三初始移位运算结果执行取位操作,生成第二移位运算结果;其中,所述执行取位操作包括对所述第二初始移位运算结果中包含的每个元素和所述第三初始移位运算结果中包含的每个元素均取连续低半部分数据、对所述第二初始移位运算结果中包含的每个元素和所述第三初始移位运算结果中包含的每个元素均取连续高半部分数据、对所述第二初始移位运算结果中包含的每个元素和所述第三初始移位运算结果中包含的每个元素均取中间连续指定位数据、对所述第二初始移位运算结果中包含的每个元素和所述第三初始移位运算结果中包含的每个元素均取非连续指定位数据中的任意一种;按照所述存储方式,将所述目标元素存储至确定的存储位置,包括:根据所述第一移位运算结果的取位操作位置,将所述第一移位运算结果写入所述目的寄存器相应的存储位置;并根据所述第二移位运算结果的取位操作位置,将所述第二移位运算结果写入所述目的寄存器相应的存储位置。11.根据权利要求10所述的方法,其特征在于,所述第二类型向量操作码为第五向量操作码;所述第一被操作数为所述第一源寄存器中每个元素连续低半部分组成的数据;所述第二被操作数为所述第二源寄存器中每个元素连续低半部分组成的数据;所述第三被操作数为第一源寄存器中每个元素连续高半部分组成的数据;所述第四被操作数为第二源寄存器中每个元素连续高半部分组成的数据;
根据所述立即数,对所述第二拼接向量中每个元素均进行移位舍入饱和至半宽操作,生成第二初始移位运算结果;并根据所述立即数,对所述第三拼接向量中每个元素均进行移位舍入饱和至半宽操作,生成第三初始移位运算结果,包括:根据所述立即数,对所述第二拼接向量中每个源元素均进行逻辑右移舍入有符号饱和至半宽操作,生成第二初始移位运算结果;以及根据所述立即数,对所述第三拼接向量中每个源元素均进行逻辑右移舍入有符号饱和至半宽操作,生成第三初始移位运算结果;对所述第二初始移位运算结果执行取位操作,生成第二移位运算结果;以及,对所述第三初始移位运算结果执行取位操作,生成第三移位运算结果,包括:分别选取所述第二初始移位运算结果中包含的每个元素的连续低半部分数据,将选取的所述数据确定为第一移位运算结果;并分别选取所述第三初始移位运算结果中包含的每个元素的连续高半部分数据,将选取的所述数据确定为第二移位运算结果;其中,根据所述第一移位运算结果中包含的数据确定至少一个第一目标元素,根据所述第二移位运算结果中包含的元素确定至少一个第二目标元素;根据所述第一移位运算结果的取位操作位置,将所述第一移位运算结果写入所述目的寄存器相应的存储位置,包括:将所述第一移位运算结果中包含的每个第一目标元素,分别写入所述目的寄存器中每个第一目标元素所在位置的低半部分;根据所述第二移位运算结果的取位操作位置,将所述第二移位运算结果写入所述目的寄存器相应的存储位置,包括:将所述第二移位运算结果中包含的每个第二目标元素,分别写入所述目的寄存器中每个第二目标元素所在位置的高半部分。12.根据权利要求10所述的方法,其特征在于,所述第二类型向量操作码为第六向量操作码;所述第一被操作数为所述第一源寄存器中每个元素连续低半部分组成的数据;所述第二被操作数为所述第二源寄存器中每个元素连续低半部分组成的数据;所述第三被操作数为第一源寄存器中每个元素连续高半部分组成的数据;所述第四被操作数为第二源寄存器中每个元素连续高半部分组成的元素;根据所述立即数,对所述第二拼接向量中每个元素均进行移位舍入饱和至半宽操作,生成第二初始移位运算结果;并根据所述立即数,对所述第三拼接向量中每个元素均进行移位舍入饱和至半宽操作,生成第三初始移位运算结果,包括:根据所述立即数,将所述第二拼接向量中每个源元素均进行算术右移舍入有符号饱和至半宽操作,生成第二初始移位运算结果;以及根据所述立即数,将所述第三拼接向量中每个源元素均进行算术右移舍入有符号饱和至半宽操作,生成第三初始移位运算结果;对所述第二初始移位运算结果执行取位操作,生成第二移位运算结果;以及,对所述第三初始移位运算结果执行取位操作,生成第三移位运算结果,包括:分别选取所述第二初始移位运算结果中包含的每个元素的连续低半部分数据,将选取的所述数据确定为第一移位运算结果;并分别选取所述第三初始移位运算结果中包含的每个元素的连续高半部分数据,将选取的所述数据确定为第二移位运算结果;其中,根据所述第一移位运算结果中包含的数据确定至少一个第一目标元素,根据所述第二移位运算结果中包含的元素确定至少一个第二目标元素;
根据所述第一移位运算结果的取位操作位置,将所述第一移位运算结果写入所述目的寄存器相应的存储位置,包括:将所述第一移位运算结果中包含的每个第二目标元素,分别写入所述目的寄存器中每个第二目标元素所在位置的低半部分;根据所述第二移位运算结果的取位操作位置,将所述第二移位运算结果写入所述目的寄存器相应的存储位置,包括:将所述第二移位运算结果中包含的每个第一目标元素,分别写入所述目的寄存器中每个第一目标元素所在位置的高半部分。13.根据权利要求10所述的方法,其特征在于,所述第二类型向量操作码为第七向量操作码;所述第一被操作数为所述第一源寄存器中每个元素连续低半部分组成的数据;所述第二被操作数为所述第二源寄存器中每个元素连续低半部分组成的数据;所述第三被操作数为第一源寄存器中每个元素连续高半部分组成的数据;所述第四被操作数为第二源寄存器中每个元素连续高半部分组成的数据;根据所述立即数,对所述第二拼接向量中每个元素均进行移位舍入饱和至半宽操作,生成第二初始移位运算结果;并根据所述立即数,对所述第三拼接向量中每个元素均进行移位舍入饱和至半宽操作,生成第三初始移位运算结果,包括:根据所述立即数,对所述第二拼接向量中每个源元素均进行逻辑右移舍入无符号饱和至半宽操作,生成第二初始移位运算结果;以及根据所述立即数,对所述第三拼接向量中每个源元素均进行逻辑右移舍入无符号饱和至半宽操作,生成第三初始移位运算结果;对所述第二初始移位运算结果执行取位操作,生成第二移位运算结果;以及,对所述第三初始移位运算结果执行取位操作,生成第三移位运算结果,包括:分别选取所述第二初始移位运算结果中包含的每个元素的连续低半部分数据,将选取的所述数据确定为第一移位运算结果;并分别选取所述第三初始移位运算结果中包含的每个元素的连续高半部分数据,将选取的所述数据确定为第二移位运算结果;其中,根据所述第一移位运算结果中包含的数据确定至少一个第一目标元素,根据所述第二移位运算结果中包含的元素确定至少一个第二目标元素;根据所述第一移位运算结果的取位操作位置,将所述第一移位运算结果写入所述目的寄存器相应的存储位置,包括:将所述第一移位运算结果中包含的每个第一目标元素,分别写入所述目的寄存器中每个第一目标元素所在位置的低半部分;根据所述第二移位运算结果的取位操作位置,将所述第二移位运算结果写入所述目的寄存器相应的存储位置,包括:将所述第二移位运算结果中包含的每个第二目标元素,分别写入所述目的寄存器中每个第二目标元素所在位置的高半部分。14.根据权利要求10所述的方法,其特征在于,所述第二类型向量操作码为第八向量操作码;所述第一被操作数为所述第一源寄存器中每个元素连续低半部分组成的数据;所述第二被操作数为所述第二源寄存器中每个元素连续低半部分组成的数据;所述第三被操作数为第一源寄存器中每个元素连续高半部分组成的数据;所述第四被操作数为第二源寄存
器中每个元素连续高半部分组成的数据;根据所述立即数,对所述第二拼接向量中每个元素均进行移位舍入饱和至半宽操作,生成第二初始移位运算结果;并根据所述立即数,对所述第三拼接向量中每个元素均进行移位舍入饱和至半宽操作,生成第三初始移位运算结果,包括:根据所述立即数,对所述第二拼接向量中每个源元素均进行算术右移舍入无符号饱和至半宽操作,生成第二初始移位运算结果;以及根据所述立即数,对所述第三拼接向量中每个源元素均进行算术右移舍入无符号饱和至半宽操作,生成第三初始移位运算结果;对所述第二初始移位运算结果执行取位操作,生成第二移位运算结果;以及,对所述第三初始移位运算结果执行取位操作,生成第三移位运算结果,包括:分别选取所述第二初始移位运算结果中包含的每个元素的连续低半部分数据,将选取的所述数据确定为第一移位运算结果;并分别选取所述第三初始移位运算结果中包含的每个元素的连续高半部分数据,将选取的所述数据确定为第二移位运算结果;;其中,根据所述第一移位运算结果中包含的数据确定至少一个第一目标元素,根据所述第二移位运算结果中包含的元素确定至少一个第二目标元素;根据所述第一移位运算结果的取位操作位置,将所述第一移位运算结果写入所述目的寄存器相应的存储位置,包括:将所述第一移位运算结果中包含的每个第一目标元素,分别写入所述目的寄存器中每个第一目标元素所在位置的低半部分;根据所述第二移位运算结果的取位操作位置中包含的每个第一目标元素,分别将所述第二移位运算结果写入所述目的寄存器相应的存储位置,包括:将所述第二移位运算结果中包含的每个第二目标元素,分别写入所述目的寄存器中每个第二目标元素所在位置的高半部分。15.根据权利要求3所述的方法,其特征在于,所述指令还包括移位量寄存器标识,所述移位量寄存器标识用于表征移位量寄存器,所述移位量寄存器为存储移位量的寄存器。16.根据权利要求15所述的方法,其特征在于,所述操作码为第三类型向量操作码;所述源寄存器包括第一源寄存器;根据所述操作码,从所述源寄存器中选取执行所述向量移位运算的源元素,并将选取的所述源元素确定为被操作数,包括:根据所述第三类型向量操作码,在所述第一源寄存器中执行选取操作,得到第五被操作数;其中,所述选取操作包括对所述第一源寄存器中每个元素均选取连续低半部分数据、对所述第一源寄存器中每个元素均选取连续高半部分数据、对所述第一源寄存器中每个元素均选取中间连续指定位数据、对所述第一源寄存器中每个元素均选取非连续指定位数据的任意一种;根据所述操作码,对所述被操作数执行相应的移位运算,生成移位运算结果,包括:根据所述第三类型向量操作码和所述移位量,对所述第五被操作数进行移位舍入饱和至半宽操作,生成第四初始移位运算结果;对所述第四初始移位运算结果执行取位操作,生成移位运算结果;其中,所述取位操作包括分别对所述第四初始移位运算结果包含的每个元素中取连续低半部分数据、分别对所
述第四初始移位运算结果包含的每个元素中取连续高半部分数据、分别对所述第四初始移位运算结果包含的每个元素中取中间连续指定位数据、分别对所述第四初始移位运算结果包含的每个元素中取非连续指定位数据中的任意一种;按照所述存储方式,将所述目标元素存储至所述目的寄存器中,包括:将所述移位运算结果中的数据,依次写入所述目的寄存器中的相应位置;并根据所述第三类型向量操作码,设置所述目的寄存器中未写入所述数据位置的值。17.根据权利要求16所述的方法,其特征在于,所述第三类型向量操作码为第九向量操作码,所述第五被操作数为所述第一源寄存器中任意连续的源元素;根据所述第三类型向量操作码和所述移位量,对所述第五被操作数进行移位舍入饱和至半宽操作,生成第四初始移位运算结果,包括:根据所述移位量,对所述第五被操作数包含的每个元素均进行逻辑右移舍入有符号饱和至半宽操作,生成第四初始移位运算结果;对所述第四初始移位运算结果执行取位操作,生成移位运算结果,包括:分别选取所述第四初始移位运算结果中包含每个元素的连续低半部分元素,将选取操作后的元素确定为移位运算结果;将所述移位运算结果中的数据,依次写入所述目的寄存器中的相应位置;并根据所述第三类型向量操作码,设置所述目的寄存器中未写入所述数据位置的值,包括:根据预设值对目的寄存器中的存储位置进行划分,并确定每个目标元素的存储区;将所述移位运算结果中的数据,依次写入每个存储区的低半部分;并分别将每个存储区中未写入所述数据位置的值置零。18.根据权利要求16所述的方法,其特征在于,所述第三类型向量操作码为第十向量操作码,所述第五被操作数为所述第一源寄存器中任意连续的源元素;根据所述第三类型向量操作码和所述移位量,对所述第五被操作数进行移位舍入饱和至半宽操作,生成第四初始移位运算结果,包括:根据所述移位量,对所述第五被操作数包含的每个元素均进行算术右移舍入有符号饱和至半宽操作,生成第四初始移位运算结果;对所述第四初始移位运算结果执行取位操作,生成移位运算结果,包括:分别选取所述第四初始移位运算结果中包含每个元素的连续低半部分元素,将选取操作后的元素确定为移位运算结果;将所述移位运算结果中的数据,依次写入所述目的寄存器中的相应位置;并根据所述第三类型向量操作码,设置所述目的寄存器中未写入所述数据位置的值,包括:根据预设值对目的寄存器中的存储位置进行划分,确定每个目标元素的存储区;将所述移位运算结果中的数据,依次写入每个存储区的低半部分;并分别将每个存储区中未写入所述数据位置的值置零。19.根据权利要求16所述的方法,其特征在于,所述第三类型向量操作码为第十一向量操作码,所述第五被操作数为所述第一源寄存器中任意连续的源元素;根据所述第三类型向量操作码和所述移位量,对所述第五被操作数进行移位舍入饱和至半宽操作,生成第四初始移位运算结果,包括:根据所述移位量,对所述第五被操作数包含的每个元素均进行逻辑右移舍入无符号饱
和至半宽操作,生成第四初始移位运算结果;对所述第四初始移位运算结果执行取位操作,生成移位运算结果,包括:选取所述第四初始移位运算结果中包含的每个元素的连续低半部分元素,将选取操作后的元素确定为移位运算结果;将所述移位运算结果中的数据,依次写入所述目的寄存器中的相应位置;并根据所述第三类型向量操作码,设置所述目的寄存器中未写入所述数据位置的值,包括:根据预设值对目的寄存器中的存储位置进行划分,确定每个目标元素的存储区;将所述移位运算结果中的数据,依次写入每个存储区的低半部分;并分别将每个存储区中未写入所述数据位置的值置零。20.根据权利要求16所述的方法,其特征在于,所述第三类型向量操作码为第十二向量操作码,所述第五被操作数为所述第一源寄存器中任意连续的源元素;根据所述第三类型向量操作码和所述移位量,对所述第五被操作数进行移位舍入饱和至半宽操作,生成第四初始移位运算结果,包括:根据所述移位量,对所述第五被操作数包含的每个元素均进行算术右移舍入无符号饱和至半宽操作,生成第四初始移位运算结果;对所述第四初始移位运算结果执行取位操作,生成移位运算结果,包括:分别选取所述第四初始移位运算结果中包含每个元素的连续低半部分元素,将选取操作后的元素确定为移位运算结果;将所述移位运算结果中的数据,依次写入所述目的寄存器中的相应位置;并根据所述第三类型向量操作码,设置所述目的寄存器中未写入所述数据位置的值,包括:根据预设值对目的寄存器中的存储位置进行划分,去顶每个目标元素的存储区;将所述移位运算结果中的数据,依次写入每个存储区的低半部分;并分别将每个存储区中未写入所述数据位置的值置零。21.根据权利要求1-3、16-20任一项所述的方法,其特征在于,所述源寄存器数量为一个或多个,所述目的寄存器数量为一个;所述源寄存器标识与所述目的寄存器标识相同或不同。22.根据权利要求1-15任一项所述的方法,其特征在于,所述源寄存器数量为多个,所述目的寄存器数量为一个;所有所述源寄存器中每一个源寄存器标识均与所述目的寄存器标识不同;或者,所有所述源寄存器中存在一个源寄存器标识与所述目的寄存器标识相同。23.一种处理器,其特征在于,包括:多个向量寄存器,所述多个向量寄存器包括源寄存器与目的寄存器,源寄存器用于存储执行向量移位操作时被操作的源元素;指令译码单元,用于译码向量移位指令;其中,所述向量移位指令包括:寄存器标识和移位参数,所述寄存器标识包括:源寄存器标识和目的寄存器标识,所述源寄存器标识用于表征源寄存器,所述目的寄存器标识用于表征目的寄存器;执行单元,响应于所述向量移位指令,根据所述移位参数对从所述源寄存器获取的源元素执行向量移位操作,获取所述向量移位操作后的目标元素,并将所述目标元素写入所述目的寄存器。
24.根据权利要求23所述的处理器,其特征在于,所述执行单元,根据所述移位参数,确定移位量和移位运算规则;其中,所述执行向量移位操作的源元素为至少一个;根据所述移位量和所述移位运算规则,对所述源寄存器中的源元素执行相应的移位运算,生成移位运算结果;将所述移位运算结果确定为目标元素。25.根据权利要求24所述的处理器,其特征在于,所述移位参数包括移位量和操作码;所述移位量用于指示执行所述向量移位运算时被操作源元素的移位位数;所述操作码用于表征对所述源寄存器中源元素和目的寄存器中目标元素所执行的移位运算规则;所述执行单元,根据所述操作码,从所述源寄存器中选取执行所述向量移位运算的源元素,并将选取的所述源元素确定为被操作数;以及根据所述操作码,对所述被操作数执行相应的移位运算,生成移位运算结果;根据所述操作码,确定所述目标元素在所述目的寄存器中的存储方式;按照所述存储方式,将所述目标元素存储至所述目的寄存器中。26.根据权利要求25所述的处理器,其特征在于,所述移位量为立即数;所述源寄存器包括第一源寄存器和第二源寄存器。27.根据权利要求26所述的处理器,其特征在于,所述操作码为第一类型向量操作码;所述执行单元,根据所述第一类型向量操作码,将第一源寄存器中的所有源元素确定为一被操作数,并将第二源寄存器中的所有源元素确定为被操作数;根据所述第一类型向量操作码,将所述第一源寄存器中的被操作数和所述第二源寄存器中的被操作数拼接后,生成第一拼接向量;根据所述立即数,对所述第一拼接向量中每个源元素均进行移位舍入饱和至半宽操作,生成第一初始移位运算结果;对所述第一初始移位运算结果执行取位操作,生成移位运算结果;其中,所述取位操作包括对所述第一初始移位运算结果中包含的每个元素均取连续低半部分数据,对所述第一初始移位运算结果中包含的每个元素均取连续高半部分数据,对所述第一初始移位运算结果中包含的每个元素均取中间连续指定位元素数据,对所述第一初始移位运算结果中包含的每个元素均取非连续指定位数据中的任意一种。28.根据权利要求27所述的处理器,其特征在于,所述第一类型向量操作码为第一向量操作码;所述执行单元,根据所述立即数,对所述第一拼接向量中每个源元素进行逻辑右移舍入有符号饱和至半宽操作,生成第一初始移位运算结果;分别选取所述第一初始移位运算结果包含的每个元素中连续低半部分数据,将选取操作后的所述元素确定为移位运算结果。29.根据权利要求27所述的处理器,其特征在于,所述第一类型向量操作码为第二向量操作码;所述执行单元,根据所述立即数,对所述第一拼接向量中每个源元素均进行算术右移舍入有符号饱和至半宽操作,生成第一初始移位运算结果;分别选取所述第一初始移位运算结果包含的每个元素中连续低半部分数据,将选取操作后的所述元素确定为移位运算结果。30.根据权利要求27所述的处理器,其特征在于,所述第一类型向量操作码为第三向量操作码;
所述执行单元,根据所述立即数,对所述第一拼接向量中每个源元素均进行逻辑右移舍入无符号饱和至半宽操作,生成第一初始移位运算结果;分别选取所述第一初始移位运算结果包含的每个元素中连续低半部分数据,将选取操作后的所述元素确定为移位运算结果。31.根据权利要求27所述的处理器,其特征在于,所述第一类型向量操作码为第四向量操作码;所述执行单元,根据所述立即数,对所述第一拼接向量中每个源元素进行算术右移舍入无符号饱和至半宽操作,生成第一初始移位运算结果;分别选取所述第一初始移位运算结果包含的每个元素中连续低半部分数据,将选取操作后的所述元素确定为移位运算结果。32.根据权利要求26所述的处理器,其特征在于,所述操作码为第二类型向量操作码;所述执行单元,根据所述第二类型向量操作码,分别在第一源寄存器和第二源寄存器中执行选取操作,得到第一被操作数和第二被操作数;其中,所述选取操作包括对所述第一源寄存器和第二源寄存器中每个元素均选取连续低半部分数据、对所述第一源寄存器和第二源寄存器中每个元素均选取连续高半部分数据、对所述第一源寄存器和第二源寄存器中每个元素均选取中间连续指定位数据、对所述第一源寄存器寄存器和第二源寄存器中每个元素均选取非连续指定位数据中的任意一种;并将所述第一源寄存器中除所述第一被操作数之外的数据确定为第三被操作数,将所述第二源寄存器中除所述第二被操作数之外的数据确定为第四被操作数;将所述第一被操作数和第二被操作数进行拼接后,生成第二拼接向量,以及将第三被操作数和第四被操作数进行拼接后,生成第三拼接向量;其中,所述第二拼接向量和所述第三拼接向量中包含元素的数据类型均为半字、字、双字、四字中的任一种;根据所述立即数,对所述第二拼接向量中每个元素均进行移位舍入饱和至半宽操作,生成第二初始移位运算结果;并根据所述立即数,对所述第三拼接向量中每个元素均进行移位舍入饱和至半宽操作,生成第三初始移位运算结果;对所述第二初始移位运算结果执行取位操作,生成第一移位运算结果;以及,对所述第三初始移位运算结果执行取位操作,生成第二移位运算结果;其中,所述执行取位操作包括对所述第二初始移位运算结果中包含的每个元素和所述第三初始移位运算结果中包含的每个元素均取连续低半部分数据、对所述第二初始移位运算结果中包含的每个元素和所述第三初始移位运算结果中包含的每个元素均取连续高半部分数据、对所述第二初始移位运算结果中包含的每个元素和所述第三初始移位运算结果中包含的每个元素均取中间连续指定位数据、对所述第二初始移位运算结果中包含的每个元素和所述第三初始移位运算结果中包含的每个元素均取非连续指定位数据中的任意一种;根据所述第一移位运算结果的取位操作位置,将所述第一移位运算结果写入所述目的寄存器相应的存储位置;并根据所述第二移位运算结果的取位操作位置,将所述第二移位运算结果写入所述目的寄存器相应的存储位置。33.根据权利要求32所述的处理器,其特征在于,所述第二类型向量操作码为第五向量操作码;所述第一被操作数为所述第一源寄存器中每个元素连续低半部分组成的数据;所
述第二被操作数为所述第二源寄存器中每个元素连续低半部分组成的数据;所述第三被操作数为第一源寄存器中每个元素连续高半部分组成的数据;所述第四被操作数为第二源寄存器中每个元素连续高半部分组成的数据;所述执行单元,根据所述立即数,对所述第二拼接向量中每个元素均进行逻辑右移舍入有符号饱和至半宽操作,生成第二初始移位运算结果;以及根据所述立即数,对所述第三拼接向量中每个元素均进行逻辑右移舍入有符号饱和至半宽操作,生成第三初始移位运算结果;分别选取所述第二初始移位运算结果中包含的每个元素的连续低半部分数据,将选取的所述数据确定为第一移位运算结果;并分别选取所述第三初始移位运算结果中包含的每个元素的连续高半部分数据,将选取的所述数据确定为第二移位运算结果;其中,根据所述第一移位运算结果中包含的数据确定至少一个第一目标元素,根据所述第二移位运算结果中包含的元素确定至少一个第二目标元素;将所述第一移位运算结果中包含的每个第一目标元素,分别写入所述目的寄存器中每个第一目标元素所在位置的低半部分;将所述第二移位运算结果中包含的每个第二目标元素,分别写入所述目的寄存器中每个第二目标元素所在位置的高半部分。34.根据权利要求32所述的处理器,其特征在于,所述第二类型向量操作码为第六向量操作码;所述第一被操作数为所述第一源寄存器中每个元素连续低半部分组成的数据;所述第二被操作数为所述第二源寄存器中每个元素连续低半部分组成的数据;所述第三被操作数为第一源寄存器中每个元素连续高半部分组成的数据;所述第四被操作数为第二源寄存器中每个元素连续高半部分组成的元素;所述执行单元,根据所述立即数,将所述第二拼接向量中每个元素均进行算术右移舍入有符号饱和至半宽操作,生成第二初始移位运算结果;以及根据所述立即数,将所述第三拼接向量中每个元素均进行算术右移舍入有符号饱和至半宽操作,生成第三初始移位运算结果;分别选取所述第二初始移位运算结果中包含的每个元素的连续低半部分数据,将选取的所述数据确定为第一移位运算结果;并分别选取所述第三初始移位运算结果中包含的每个元素的连续高半部分数据,将选取的所述数据确定为第二移位运算结果;其中,根据所述第一移位运算结果中包含的数据确定至少一个第一目标元素,根据所述第二移位运算结果中包含的元素确定至少一个第二目标元素;将所述第一移位运算结果中包含的每个第二目标元素,分别写入所述目的寄存器中每个第二目标元素所在位置的低半部分;将所述第二移位运算结果中包含的每个第一目标元素,分别写入所述目的寄存器中每个第一目标元素所在位置的高半部分。35.根据权利要求32所述的处理器,其特征在于,所述第二类型向量操作码为第七向量操作码;所述第一被操作数为所述第一源寄存器中每个元素连续低半部分组成的数据;所述第二被操作数为所述第二源寄存器中每个元素连续低半部分组成的数据;所述第三被操作数为第一源寄存器中每个元素连续高半部分组成的数据;所述第四被操作数为第二源寄存器中每个元素连续高半部分组成的数据;
所述执行单元,根据所述立即数,对所述第二拼接向量中每个元素均进行逻辑右移舍入无符号饱和至半宽操作,生成第二初始移位运算结果;以及根据所述立即数,对所述第三拼接向量中每个元素均进行逻辑右移舍入无符号饱和至半宽操作,生成第三初始移位运算结果;分别选取所述第二初始移位运算结果中包含的每个元素的连续低半部分数据,将选取的所述数据确定为第一移位运算结果;并分别选取所述第三初始移位运算结果中包含的每个元素的连续高半部分数据,将选取的所述数据确定为第二移位运算结果;其中,根据所述第一移位运算结果中包含的数据确定至少一个第一目标元素,根据所述第二移位运算结果中包含的元素确定至少一个第二目标元素;将所述第一移位运算结果中包含的每个第一目标元素,分别写入所述目的寄存器中每个第一目标元素所在位置的低半部分;将所述第二移位运算结果中包含的每个第二目标元素,分别写入所述目的寄存器中每个第二目标元素所在位置的高半部分。36.根据权利要求32所述的处理器,其特征在于,所述第二类型向量操作码为第八向量操作码;所述第一被操作数为所述第一源寄存器中每个元素连续低半部分组成的数据;所述第二被操作数为所述第二源寄存器中每个元素连续低半部分组成的数据;所述第三被操作数为第一源寄存器中每个元素连续高半部分组成的数据;所述第四被操作数为第二源寄存器中每个元素连续高半部分组成的数据;所述执行单元,根据所述立即数,对所述第二拼接向量中每个元素均进行算术右移舍入无符号饱和至半宽操作,生成第二初始移位运算结果;以及根据所述立即数,对所述第三拼接向量中每个元素均进行算术右移舍入无符号饱和至半宽操作,生成第三初始移位运算结果;分别选取所述第二初始移位运算结果中包含的每个元素的连续低半部分数据,将选取的所述数据确定为第一移位运算结果;并分别选取所述第三初始移位运算结果中包含的每个元素的连续高半部分数据,将选取的所述数据确定为第二移位运算结果;;其中,根据所述第一移位运算结果中包含的数据确定至少一个第一目标元素,根据所述第二移位运算结果中包含的元素确定至少一个第二目标元素;将所述第一移位运算结果中包含的每个第一目标元素,分别写入所述目的寄存器中每个第一目标元素所在位置的低半部分;将所述第二移位运算结果中包含的每个第二目标元素,分别写入所述目的寄存器中每个第二目标元素所在位置的高半部分。37.根据权利要求25所述的处理器,其特征在于,所述指令还包括移位量寄存器标识,所述移位量寄存器标识用于表征移位量寄存器,所述移位量寄存器为存储移位量的寄存器。38.根据权利要求37所述的处理器,其特征在于,所述操作码为第三类型向量操作码;所述源寄存器包括第一源寄存器;所述执行单元,根据所述第三类型向量操作码,在所述第一源寄存器中执行选取操作,得到第五被操作数;其中,所述选取操作包括对所述第一源寄存器中每个元素均选取连续低半部分数据、对所述第一源寄存器中每个元素均选取连续高半部分数据、对所述第一源
寄存器中每个元素均选取中间连续指定位数据、对所述第一源寄存器中每个元素均选取非连续指定位数据的任意一种;根据所述第三类型向量操作码和所述移位量,对所述第五被操作数进行移位舍入饱和至半宽操作,生成第四初始移位运算结果;对所述第四初始移位运算结果执行取位操作,生成移位运算结果;其中,所述取位操作包括分别对所述第四初始移位运算结果包含的每个元素中取连续低半部分数据、分别对所述第四初始移位运算结果包含的每个元素中取连续高半部分数据、分别对所述第四初始移位运算结果包含的每个元素中取中间连续指定位数据、分别对所述第四初始移位运算结果包含的每个元素中取非连续指定位数据中的任意一种;将所述移位运算结果中的数据,依次写入所述目的寄存器中的相应位置;并根据所述第三类型向量操作码,设置所述目的寄存器中未写入所述数据位置的值。39.根据权利要求38所述的处理器,其特征在于,所述第三类型向量操作码为第九向量操作码,所述第五被操作数为所述第一源寄存器中任意连续的源元素;所述执行单元,根据所述移位量,对所述第五被操作数包含的每个元素均进行逻辑右移舍入有符号饱和至半宽操作,生成第四初始移位运算结果;分别选取所述第四初始移位运算结果中包含每个元素的连续低半部分元素,将选取操作后的元素确定为移位运算结果;根据预设值对目的寄存器中的存储位置进行划分,并确定每个目标元素的存储区;将所述移位运算结果中的数据,依次写入每个存储区的低半部分;并分别将每个存储区中未写入所述数据位置的值置零。40.根据权利要求38所述的处理器,其特征在于,所述第三类型向量操作码为第十向量操作码,所述第五被操作数为所述第一源寄存器中任意连续的源元素;所述执行单元,根据所述移位量,对所述第五被操作数包含的每个元素均进行算术右移舍入有符号饱和至半宽操作,生成第四初始移位运算结果;分别选取所述第四初始移位运算结果中包含每个元素的连续低半部分元素,将选取操作后的元素确定为移位运算结果;根据预设值对目的寄存器中的存储位置进行划分,确定每个目标元素的存储区;将所述移位运算结果中的数据,依次写入每个存储区的低半部分;并分别将每个存储区中未写入所述数据位置的值置零。41.根据权利要求38所述的处理器,其特征在于,所述第三类型向量操作码为第十一向量操作码,所述第五被操作数为所述第一源寄存器中任意连续的源元素;所述执行单元,根据所述移位量,对所述第五被操作数包含的每个元素均进行逻辑右移舍入无符号饱和至半宽操作,生成第四初始移位运算结果;选取所述第四初始移位运算结果中包含的每个元素的连续低半部分元素,将选取操作后的元素确定为移位运算结果;根据预设值对目的寄存器中的存储位置进行划分,确定每个目标元素的存储区;将所述移位运算结果中的数据,依次写入每个存储区的低半部分;并分别将每个存储区中未写入所述数据位置的值置零。42.根据权利要求38所述的处理器,其特征在于,所述第三类型向量操作码为第十二向
量操作码,所述第五被操作数为所述第一源寄存器中任意连续的源元素;所述执行单元,根据所述移位量,对所述第五被操作数包含的每个元素均进行算术右移舍入无符号饱和至半宽操作,生成第四初始移位运算结果;分别选取所述第四初始移位运算结果中包含每个元素的连续低半部分元素,将选取操作后的元素确定为移位运算结果;根据预设值对目的寄存器中的存储位置进行划分,去顶每个目标元素的存储区;将所述移位运算结果中的数据,依次写入每个存储区的低半部分;并分别将每个存储区中未写入所述数据位置的值置零。43.根据权利要求23-25、38-42任一项所述的处理器,其特征在于,所述源寄存器数量为一个或多个,所述目的寄存器数量为一个;所述源寄存器标识与所述目的寄存器标识相同或不同。44.根据权利要求23-37任一项所述的处理器,其特征在于,所述源寄存器数量为多个,所述目的寄存器数量为一个;所有所述源寄存器中每一个源寄存器标识均与所述目的寄存器标识不同;或者,所有所述源寄存器中存在一个源寄存器标识与所述目的寄存器标识相同。45.一种电子设备,其特征在于,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行如权利要求1-22中一个或多个所述的向量移位方法。

技术总结
本申请提供了一用向量移位方法、处理器及电子设备。所述方法包括:接收指令,该指令包括:寄存器标识和移位参数;寄存器标识包括源寄存器标识和目的寄存器标识;源寄存器标识用于表征源寄存器,源寄存器为存储执行向量移位操作时被操作的源元素的寄存器;目的寄存器标识用于表征目的寄存器,目的寄存器为存储执行向量移位操作后得到的目标元素的寄存器;移位参数用于指示对源元素执行向量移位操作时所依据的规则;执行指令,根据移位参数对从源寄存器获取的源元素执行向量移位操作,并获取向量移位操作后的目标元素;将目标元素写入目的寄存器。本申请能够通过一条指令实现特定功能的向量移位操作,提高了特定功能的执行效率。提高了特定功能的执行效率。提高了特定功能的执行效率。


技术研发人员:汪文祥
受保护的技术使用者:龙芯中科技术股份有限公司
技术研发日:2021.12.10
技术公布日:2022/4/8
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献