Devices and methods for performing double signed and unsigned multiplication of compact data elements are disclosed. Devices and methods for performing double simultaneous multiplication of compact data elements. For example, an embodiment of a processor includes: a decoder for decoding the first instruction to generate decoded instructions; a first source register for storing the first plurality of compact byte data elements; a second source register for storing the second plurality of compact byte data elements; and an execution circuit for executing decoded instructions, which includes a multiplier circuit; Used for multiplying each of the first and second compact byte data elements simultaneously to generate multiple products; adder circuit for generating temporary results for each set of products by adding the specified sets of products; zero or symbol expansion circuit for each set of products A combined temporary result is extended zero or symbolically to generate an extended temporary result for each set; a cumulative circuit is used to combine each extended temporary result in the extended temporary result with the selected compact data value stored in the third source register to generate multiple final results; and a destination register to generate multiple final results as multiple compact results Data elements are stored in the specified data element location.
【技术实现步骤摘要】
用于执行紧缩数据元素的双有符号和无符号乘法的装置和方法
技术介绍
本专利技术的实施例总体上涉及计算机处理器的领域。更具体地,实施例涉及用于执行紧缩数据元素的双有符号和无符号乘法的装置和方法。相关技术描述指令集或指令集架构(ISA)是计算机架构中涉及编程的部分,包括原生数据类型、指令、寄存器架构、寻址模式、存储器架构、中断和异常处置、以及外部输入和输出(I/O)。应当注意,术语“指令”在本文中一般是指宏指令——即,提供给处理器以供执行的指令——而不是微指令或微操作——即,该微指令或微操是处理器的解码器对宏指令进行解码的结果。微指令或微操作可以被配置成用于指示处理器上的执行单元执行操作以实现与宏指令相关联的逻辑。ISA与微架构不同,微架构是用于实现指令集的处理器设计技术的集合。具有不同微架构的处理器可以共享公共指令集。例如,奔腾4(Pentium4)处理器、酷睿TM(CoreTM)处理器、以及来自加利福尼亚州桑尼威尔(Sunnyvale)的超微半导体有限公司(AdvancedMicroDevices,Inc.)的多个处理器实现几乎相同版本的x86指令集(具有已随更新的版本加入的一些扩展),但具有不同的内部设计。例如,ISA的相同寄存器架构在不同的微架构中可使用公知的技术以不同方法来实现,包括专用物理寄存器、使用寄存器重命名机制(例如,使用寄存器别名表(RAT)、重排序缓冲器(ROB)和引退寄存器堆)的一个或多个动态分配的物理寄存器。除非另外指定,否则短语“寄存器架构”、“寄存器堆”和“寄存器”在本文中用于指代对软件/编程者以及对指令指定寄存器的方式可见的寄存 ...
【技术保护点】
1.一种处理器,包括:解码器,用于对第一指令解码以生成经解码的指令;第一源寄存器,用于存储第一多个紧缩字节数据元素;第二源寄存器,用于存储第二多个紧缩字节数据元素;执行电路,用于执行经解码的指令,所述执行电路包括:乘法器电路,用于同时将所述第一多个紧缩字节数据元素中的每一个与所述第二多个紧缩字节数据元素中对应的紧缩字节数据元素相乘,以生成多个乘积;加法器电路,用于将乘积的所指定的集合相加以生成针对乘积的每一个集合的临时结果;零扩展或符号扩展电路,用于对针对每一个集合的临时结果进行零扩展或符号扩展以生成针对每一个集合的扩展临时结果;累加电路,用于将扩展临时结果中的每一个扩展临时结果与存储在第三源寄存器中的所选择的紧缩数据值组合,以生成多个最终结果;以及目的地寄存器,用于将所述多个最终结果作为多个紧缩数据元素存储在所指定的数据元素位置中。
【技术特征摘要】
2017.09.29 US 15/721,4121.一种处理器,包括:解码器,用于对第一指令解码以生成经解码的指令;第一源寄存器,用于存储第一多个紧缩字节数据元素;第二源寄存器,用于存储第二多个紧缩字节数据元素;执行电路,用于执行经解码的指令,所述执行电路包括:乘法器电路,用于同时将所述第一多个紧缩字节数据元素中的每一个与所述第二多个紧缩字节数据元素中对应的紧缩字节数据元素相乘,以生成多个乘积;加法器电路,用于将乘积的所指定的集合相加以生成针对乘积的每一个集合的临时结果;零扩展或符号扩展电路,用于对针对每一个集合的临时结果进行零扩展或符号扩展以生成针对每一个集合的扩展临时结果;累加电路,用于将扩展临时结果中的每一个扩展临时结果与存储在第三源寄存器中的所选择的紧缩数据值组合,以生成多个最终结果;以及目的地寄存器,用于将所述多个最终结果作为多个紧缩数据元素存储在所指定的数据元素位置中。2.如权利要求1所述的处理器,其中,所述零扩展或符号扩展电路将每一个临时结果的位宽增加到等于存储在所述第三源寄存器中的所选择的备份数据值的宽度。3.如权利要求1或2所述的处理器,其中,所述第三源寄存器和所述目的地寄存器是同一物理寄存器。4.如权利要求1或3所述的处理器,其中,乘积的所述所指定的集合包括四个四乘积集合,所述加法器电路用于将每一个集合中的四个乘积中的每一个乘积相加以生成四个临时结果。5.如权利要求4所述的处理器,其中,所述四个临时结果中的每一个都具有17位的宽度,所述零扩展或符号扩展电路将所述17位的宽度增加到32位以生成扩展临时结果。6.如权利要求4或5所述的处理器,其中,所述累加电路用于将扩展临时结果中的四个扩展临时结果与所述第三源寄存器中的四个不同的紧缩双字数据元素相加。7.如权利要求1或6所述的处理器,其中,所述第一源寄存器、所述第二源寄存器和所述第三源寄存器是128位的紧缩数据寄存器,并且其中,所述第一源寄存器和所述第二源寄存器存储16个紧缩字节数据元素,并且所述第三源寄存器存储4个紧缩双字数据元素。8.如权利要求1或7所述的处理器,进一步包括:临时寄存器或其他临时存储位置的集合,用于存储针对乘积的每一个集合的临时结果。9.一种方法,包括:对第一指令解码以生成经解码的指令;将第一多个紧缩字节数据元素存储在第一源寄存器中;将第二多个紧缩字节数据元素存储在第二源寄存器中;同时将所述第一多个紧缩字节数据元素中的每一个与所述第二多个紧缩字节数据元素中对应的紧缩字节数据元素相乘,以生成多个乘积;将乘积的所指定的集合相加以生成针对乘积的每一个集合的临时结果;对针对每一个集合的临时结果进行零扩展或符号扩展以生成针对每一个集合的扩展临时结果;将扩展临时结果中的每一个扩展临时结果与存储在第三源寄存器中的所选择的紧缩数据值累加,以生成多个最终结果;以及将所述多个最终结果作为多个紧缩数据元素存储在所指定的数据元素位置中。10.如权利要求9所述的方法,其中,零扩展或符号扩展电路将每一个临时结果的位宽增加到等于存储在所述第三源寄存器中的所选择的备份数据值的宽度。11.如权利要求9或10所述的方法,其中,所述第三源寄存器和所述目的地寄存器是同一物理寄存器。12.如权利要求9或11所述的方法,其中,乘积的所述所指定的集合包括四个四乘积集合,加法器电路用于将每一个集合中的四个乘积中的每一个乘积相加以生成四个临时结果。13.如权利要求12所述的方法,其中,所述四个临时结果中的每一个都具有17位的宽度,零扩展或符号扩展电路将所述17位的...
【专利技术属性】
技术研发人员:V·马杜里,E·乌尔德阿迈德瓦尔,J·考博尔,M·查尼,R·凡伦天,B·杨,
申请(专利权)人:英特尔公司,
类型:发明
国别省市:美国,US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。