当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于执行紧缩数据元素的双有符号和无符号乘法的装置和方法制造方法及图纸

技术编号:20796709 阅读:19 留言:0更新日期:2019-04-06 10:20
公开了用于执行紧缩数据元素的双有符号和无符号乘法的装置和方法。用于执行紧缩数据元素的双同时乘法的装置和方法。例如,处理器的一个实施例包括:解码器,用于对第一指令解码以生成经解码的指令;第一源寄存器,用于存储第一多个紧缩字节数据元素;第二源寄存器,用于存储第二多个紧缩字节数据元素;执行电路,用于执行经解码的指令,该执行电路包括:乘法器电路,用于同时将第一多个紧缩字节数据元素中的每一个与第二多个紧缩字节数据元素中对应的紧缩字节数据元素相乘以生成多个乘积;加法器电路,用于将乘积的所指定的集合相加以生成针对乘积的每一个集合的临时结果;零扩展或符号扩展电路,用于对针对每一个集合的临时结果进行零扩展或符号扩展以生成针对每一个集合的扩展临时结果;累加电路,用于将扩展临时结果中的每一个扩展临时结果与存储在第三源寄存器中的所选择的紧缩数据值组合以生成多个最终结果;以及目的地寄存器,用于将多个最终结果作为多个紧缩数据元素存储在所指定的数据元素位置中。

Devices and methods for performing double signed and unsigned multiplication of compact data elements

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)和引退寄存器堆)的一个或多个动态分配的物理寄存器。除非另外指定,否则短语“寄存器架构”、“寄存器堆”和“寄存器”在本文中用于指代对软件/编程者以及对指令指定寄存器的方式可见的寄存器架构、寄存器堆和寄存器。在需要区分的情况下,形容词“逻辑的”、“架构的”,或“软件可见的”将用于指示寄存器架构中的寄存器/寄存器堆,而不同的形容词将用于规定给定微型架构中的寄存器(例如,物理寄存器、重新排序缓冲器、引退寄存器、寄存器池)。乘法-累加是常用的数字信号处理操作,该操作计算两个数的乘积并将该乘积加到累加值。现有的单指令多数据(SIMD)微架构通过执行指令序列来实现乘法-累加操作。例如,可利用乘法指令,随后是4路加法,并且然后是利用目的地四字数据的累加来执行乘法-累加,以生成两个64位饱和结果。附图说明结合以下附图,从以下具体实施方式可获得对本专利技术更好的理解,其中:图1A和图1B是图示出根据本专利技术的实施例的通用向量友好指令格式及其指令模板的框图;图2A-图2C是图示出根据本专利技术的实施例的示例性VEX指令格式的框图;图3是根据本专利技术的一个实施例的寄存器架构的框图;以及图4A是示图出根据本专利技术的实施例的示例性有序取出、解码、引退流水线以及示例性寄存器重命名的乱序发布/执行流水线两者的框图;图4B是图示出根据本专利技术的实施例的要包括在处理器中的有序取出、解码、引退核的示例性实施例和示例性寄存器重命名的乱序发布/执行架构核的框图;图5A是单个处理器核以及它与管芯上互连网络的连接的框图;图5B图示出根据本专利技术的实施例的图5A中的处理器核的部分的展开图;图6是根据本专利技术的实施例的具有集成存储器控制器和图形器件的单核处理器和多核处理器的框图;图7图示出根据本专利技术的一个实施例的系统的框图;图8图示出根据本专利技术的实施例的第二系统的框图;图9图示出根据本专利技术的实施例的第三系统的框图;图10图示出根据本专利技术的实施例的芯片上系统(SoC)的框图;图11图示出根据本专利技术的实施例的、对照使用软件指令转换器将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图;图12图示出可在其上实现本专利技术的实施例的处理器架构;图13图示出根据一个实施例的包含实值和复值的多个紧缩数据元素;图14A-图14B图示出紧缩数据处理架构的实施例;图15图示出根据本专利技术的一个实施例的方法;图16图示出根据本专利技术的另一实施例的方法;图17图示出用于基于立即数来右移多个数据元素并且将所指定的部分写入到目的地的一个实施例;图18图示出用于基于源值来右移多个数据元素并且将所指定的部分写入到目的地的一个实施例;图19图示出用于基于立即数来左移多个数据元素并且将所指定的部分写入到目的地的一个实施例;图20图示出用于基于源值来左移多个数据元素并且将所指定的部分写入到目的地的一个实施例;图21图示出根据本专利技术的一个实施例的方法;以及图22图示出根据本专利技术的另一实施例的方法。具体实施方式在下面的描述中,出于解释的目的,阐述了众多具体细节以便提供对下文所描述的本专利技术的实施例的透彻理解。然而,对本领域技术人员显而易见的是,可在没有这些具体细节中的一些细节的情况下实施本专利技术的实施例。在其他实例中,公知的结构和设备以框图形式示出,以避免使本专利技术的实施例的基本原理变得模糊。示例性处理器架构、指令格式和数据类型指令集包括一种或多种指令格式。给定的指令格式定义各种字段(位的数量、位的位置)以指定将要执行的操作(操作码)以及将对其执行该操作的(多个)操作数等等。通过指令模板(或子格式)的定义来进一步分解一些指令格式。例如,可将给定指令格式的指令模板定义为具有该指令格式的字段(所包括的字段通常按照相同顺序,但是至少一些字段具有不同的位的位置,因为较少的字段被包括)的不同子集,和/或定义为具有以不同方式进行解释的给定字段。由此,ISA的每一条指令使用给定的指令格式(并且如果经定义,则按照该指令格式的指令模板中的给定的一个指令模板)来表达,并包括用于指定操作和操作数的字段。例如,示例性ADD(加法)指令具有特定的操作码和指令格式,该特定的指令格式包括用于指定该操作码的操作码字段和用于选择操作数(源1/目的地以及源2)的操作数字段;并且该ADD指令在指令流中出现将使得在操作数字段中具有选择特定操作数的特定的内容。本文中所描述的(多条)指令的实施例能以不同的格式体现。另外,在下文中详述示例性系统、架构和流水线。(多条)指令的实施例可在此类系统、架构和流水线上执行,但是不限于详述的那些系统、架构和流水线。通用向量友好指令格式向量友好指令格式是适于向量指令(例如,存在专用于向量操作的特定字段)的指令格式。尽管描述了其中通过向量友好指令格式支持向量和标量操作两者的实施例,但是替代实施例仅使用通过向量友好指令格式的向量操作。图1A-图1B是图示根据本专利技术的实施例的通用向量友好指令格式及其指令模板的框图。图1A是图示根据本专利技术的实施例的通用向量友好指令格式及其A类指令模板的框图;而图1B是图示根据本专利技术的实施例的通用向量友好指令格式及其B类指令模板的框图。具体地,针对通用向量友好指令格式100定义A类和B类指令模板,这两者都包括无存储器访问105的指令模板和存储器访问120的指令模板。在向量友好指令格式的上下文中的术语“通用”是指不束缚于任何特定指令集的指令格式。尽管将描述其中向量友好指令格式支持以下情况的本专利技术的实施例:64字节向量操作数长度(或尺寸)与32位(4字节)或64位(8字节)数据元素宽度(或尺寸)(并且由此,64字节向量由16个双字尺寸的元素组成,或者替代地由8个四字尺寸的元素组成);64字节向量操作数长度(或尺寸)与16位(2字节)或8位(1字节)数据元素宽度(或尺寸);32字节向量操作数长度(或尺寸)与32位(4本文档来自技高网...

【技术保护点】
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

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1