[发明专利]用于打包字节的向量乘法和累加的装置和方法在审
申请号: | 201811582079.8 | 申请日: | 2018-12-24 |
公开(公告)号: | CN110069283A | 公开(公告)日: | 2019-07-30 |
发明(设计)人: | A.海内克;D.达斯;R.瓦伦丁;M.查尼 | 申请(专利权)人: | 英特尔公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/38 |
代理公司: | 中国专利代理(香港)有限公司 72001 | 代理人: | 高苇娟;闫小龙 |
地址: | 美国加利*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 打包 累加 源寄存器 存储 向量乘法 电路 解码器 乘法器电路 加法器电路 结果存储 解码指令 扩展电路 累加电路 寄存器 字位置 处理器 指令 | ||
1.一种处理器,包括:
解码器,用来解码指令;
第一源寄存器,用来存储第一多个打包字节;
第二源寄存器,用来存储第二多个打包字节;
第三源寄存器,用来存储多个打包双字;
执行电路,用来执行第一指令,所述执行电路包括:
扩展电路,用来对第一和第二多个打包字节进行符号扩展或零扩展以生成对应于第一和第二多个打包字节的第一和第二多个字;
乘法器电路,用来使第一多个字中的每个与第二多个字中的对应一个相乘以生成多个临时乘积;
加法器电路,用来使至少第一组临时乘积加起来以生成第一临时和;
累加电路,用来使第一临时和与来自第三源寄存器中的第一双字位置的第一打包双字值组合以生成第一累加双字结果;
目的地寄存器,用来将第一累加双字结果存储在第一双字位置中。
2.根据权利要求1所述的处理器,其中目的地寄存器和第三源寄存器是同一寄存器。
3.根据权利要求1或2所述的处理器,还包括:
饱和电路,用来在目的地寄存器中的存储之前使第一累加双字结果饱和。
4.根据权利要求1或3所述的处理器,其中第一和第二多个打包字节是有符号的,并且其中扩展电路将对第一和第二多个打包字节进行符号扩展。
5.根据权利要求1或4所述的处理器,其中第一、第二和第三源寄存器包括128位、256位或512位寄存器,用来分别存储16个字节、32个字节或64个字节和/或用来分别存储4个双字、8个双字或16个双字。
6.根据权利要求1或5所述的处理器,还包括:
掩蔽电路,用来评估包括多个位的写掩码,每个位与目的地寄存器中的打包数据元素位置相关联。
7.根据权利要求6所述的处理器,其中掩蔽电路要在检测到与第一双字位置相关联的写掩码位的值时确定是否要将第一累加双字结果写到目的地寄存器。
8.根据权利要求7所述的处理器,其中如果掩蔽电路确定不写第一累加双字结果,则将零写到第一双字位置或不实行对第一双字位置的更新。
9.一种方法,包括:
解码指令;
通过如下步骤执行所述指令:
对来自第一和第二源寄存器的第一和第二多个打包字节进行符号扩展或零扩展以生成对应于第一和第二多个打包字节的第一和第二多个字;
使第一多个字中的每个与第二多个字中的对应一个相乘以生成多个临时乘积;
使至少第一组临时乘积加起来以生成第一临时和;
使第一临时和与来自第三源寄存器中的第一双字位置的第一打包双字值累加以生成第一累加双字结果;
将第一累加双字结果存储在目的地寄存器中的第一双字位置中。
10.根据权利要求9所述的方法,其中目的地寄存器和第三源寄存器是同一寄存器。
11.根据权利要求9或10所述的方法,还包括:
在目的地寄存器中的存储之前使第一累加双字结果饱和。
12.根据权利要求9或11所述的方法,其中第一和第二多个打包字节是有符号的,并且其中要对第一和第二多个打包字节进行符号扩展。
13.根据权利要求9或12所述的方法,其中第一、第二和第三源寄存器包括128位、256位或512位寄存器,用来分别存储16个字节、32个字节或64个字节和/或用来分别存储4个双字、8个双字或16个双字。
14.根据权利要求9或13所述的方法,还包括:
评估包括多个位的写掩码,每个位与目的地寄存器中的打包数据元素位置相关联。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811582079.8/1.html,转载请声明来源钻瓜专利网。