【技术实现步骤摘要】
用于无符号双字的矢量乘法和累加的设备和方法
本专利技术的实施例一般涉及计算机处理器的领域。更具体地说,本实施例涉及用于执行无符号双字的矢量乘法和累加的设备和方法。
技术介绍
指令集或指令集架构(ISA)是与编程有关的计算机架构的一部分,包括原生数据类型、指令、寄存器架结构、寻址模式、存储器架构、中断和异常处理及外部输入和输出(I/O)。应注意的是,术语“指令”在本文中通常指宏指令-其是被提供到处理器以便执行的指令-与微指令或微操作相反-其是处理器的解码器解码宏指令的结果。微指令或微操作能够配置成指示处理器上的执行单元执行操作以实现与宏指令关联的逻辑。ISA不同于作为用于实现指令集的一组处理器设计技术的微架构。带有不同微架构的处理器能够共享共用指令集。例如,Intel®Pentium4处理器、Intel®CoreTM处理器和来自加利福尼亚州桑尼威尔(Sunnyvale)的超微半导体有限公司(AdvancedMicroDevices,Inc.)的处理器实现几乎相同版本的x86指令集(其中已采用较新版本来加入了一些扩展),但具有不同内部设计。例如,ISA的相同寄存器架构可使用公知的技术在不同微架构中以不同方式来实现,包括专用物理寄存器、使用寄存器重命名机制(例如,使用寄存器别名表(RAT)、重新排序缓冲器(ROB)和引退寄存器堆)的一个或多个动态分配的物理寄存器。除非另有指定,否则短语寄存器架构(phrasesregisterarchitecture)、寄存器堆和寄存器在本文中用于指对软件/编程器可见的事物以及其中指令指定寄存器的方式。在要求区分的情况下,形容词 ...
【技术保护点】
1.一种处理器,包括:解码器,用于对指令进行解码以生成解码指令,所述指令包括操作码以及标识打包数据目的地寄存器和多个打包数据源寄存器的操作数;第一源寄存器,用于存储第一多个打包双字数据元素;第二源寄存器,用于存储第二多个打包双字数据元素;第三源寄存器,用于存储多个打包四字数据元素;执行电路,用于执行所述解码指令,所述执行电路包括:乘法器电路,用于将来自所述第一源寄存器的第一和第二打包双字数据元素分别与来自所述第二源寄存器的第三和第四打包双字数据元素相乘,以生成第一和第二临时四字乘积,所述乘法器电路基于所述指令的所述操作码选择所述第一、第二、第三和第四双字数据元素;累加电路,用于将所述第一临时四字乘积与从所述第三源寄存器读取的第一打包四字值组合以生成第一累加四字结果,并将所述第二临时四字乘积与从所述第三源寄存器读取的第二打包四字值组合以生成第二累加四字结果;目的地寄存器或所述第三源寄存器,用于将所述第一累加四字结果存储在第一四字数据元素位置中,并将所述第二累加四字结果存储在第二四字数据元素位置中。
【技术特征摘要】
2017.12.21 US 15/8504121.一种处理器,包括:解码器,用于对指令进行解码以生成解码指令,所述指令包括操作码以及标识打包数据目的地寄存器和多个打包数据源寄存器的操作数;第一源寄存器,用于存储第一多个打包双字数据元素;第二源寄存器,用于存储第二多个打包双字数据元素;第三源寄存器,用于存储多个打包四字数据元素;执行电路,用于执行所述解码指令,所述执行电路包括:乘法器电路,用于将来自所述第一源寄存器的第一和第二打包双字数据元素分别与来自所述第二源寄存器的第三和第四打包双字数据元素相乘,以生成第一和第二临时四字乘积,所述乘法器电路基于所述指令的所述操作码选择所述第一、第二、第三和第四双字数据元素;累加电路,用于将所述第一临时四字乘积与从所述第三源寄存器读取的第一打包四字值组合以生成第一累加四字结果,并将所述第二临时四字乘积与从所述第三源寄存器读取的第二打包四字值组合以生成第二累加四字结果;目的地寄存器或所述第三源寄存器,用于将所述第一累加四字结果存储在第一四字数据元素位置中,并将所述第二累加四字结果存储在第二四字数据元素位置中。2.如权利要求1所述的处理器,进一步包括:饱和电路,用于在存储在所述目的地寄存器中之前使所述第一和第二累加四字结果饱和。3.如权利要求1或2所述的处理器,其中所述第一、第二、第三和第四打包双字数据元素是带符号数据元素,并且其中所述第一和第二累加四字结果是带符号数据元素。4.如权利要求1或3所述的处理器,其中所述第一、第二和第三源寄存器包括配置成存储四个打包双字数据元素和/或两个打包四字数据元素的128比特寄存器。5.如权利要求4所述的处理器,其中响应于第一操作码,所述第一和第三打包双字数据元素要分别选自所述第一和第二源寄存器的打包双字位置[31:0],并且所述第二和第四打包双字数据元素要分别选自所述第一和第二源寄存器的打包双字位置[95:64]。6.如权利要求5所述的处理器,其中响应于第二操作码,所述第一和第三打包双字数据元素要分别选自所述第一和第二源寄存器的打包双字位置[63:32],并且所述第二和第四打包双字数据元素要分别选自所述第一和第二源寄存器的打包双字位置[127:96]。7.如权利要求1或6所述的处理器,其中所述第一累加四字结果和第二累加四字结果要进一步与响应于一个或更多附加指令的执行而生成的一个或更多附加临时四字乘积累加。8.一种方法,包括:对指令进行解码以生成解码指令,所述指令包括操作码以及标识打包数据目的地寄存器和多个打包数据源寄存器的操作数;将第一多个打包双字数据元素存储在第一源寄存器中;将第二多个打包双字数据元素存储在第二源寄存器中;将多个打包四字数据元素存储在第三源寄存器中;将来自所述第一源寄存器的第一和第二打包双字数据元素分别与来自所述第二源寄存器的第三和第四打包双字数据元素相乘,以生成第一和第二临时四字乘积,要基于所述指令的所述操作码来选择所述第一、第二、第三和第四双字数据元素;将所述第一临时四字乘积与从所述第三源寄存器读取的第一打包四字值累加以生成第一累加四字结果,并将所述第二临时四字乘积与从所述第三源寄存器读取的第二打包四字值累加以生成第二累加四字结果;将所述第一累加四字结果存储在所述第三源寄存器或目的地寄存器中的第一四字数据元素位置中,并将所述第二累加四字结果存储在所述第三源寄存器或所述目的地寄存器中的第二四字数据元素位置中。9.如权利要求8所述的方法,进一步包括:在存储在所述目的地寄存器中之前使所述第一和第二累加四字结果饱和。10.如权利要求8或9所述的方法,其中所述第一、第二、第三和第四打包双字数据元素是带符号数据元素,并且其中所述第一和第二累加四字结果是带符号数据元素。11.如权利要求8或10所述的方法,其中所述第一、第二和第三源寄存器包括配置为存储四个打包双字数据元素和/或两个打包四字数据元素的128比特寄存器。12.如权利要求11所述的方法,其中响应于第一操作码,所述第一和第三打包双字数据元素要分别选自所述第一和第二源寄存器的打包双字位置[31:0],并且所述第二和第四打包双字数据元素要分别选自所述第一和第二源寄存器的打包双字位置[95:64]。13.如权利要求12所述的方法,其中响应于第二操作码,所述第一和第三打包双字数据元素要分别选自所述第一和第...
【专利技术属性】
技术研发人员:E奥尔德艾哈迈德瓦尔,R瓦伦丁,M查尼,J科巴尔,V马杜里,
申请(专利权)人:英特尔公司,
类型:发明
国别省市:美国,US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。