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

用于有符号双字的向量乘法和累加的装置和方法制造方法及图纸

技术编号:21476855 阅读:24 留言:0更新日期:2019-06-29 04:37
本申请提供了用于有符号双字的向量乘法和累加的装置和方法。在一个实施例中,该装置和方法用于执行指令,该指令用于执行两个紧缩有符号双字的双紧缩乘法以生成两个有符号四字值,这两个有符号四字值随后与来自累加寄存器的两个有符号四字值累加。还描述并要求保护其他实施例。

【技术实现步骤摘要】
用于有符号双字的向量乘法和累加的装置和方法
技术介绍

本专利技术的实施例总体上涉及计算机处理器领域。更具体地,实施例涉及用于执行向量乘法和有符号双字的累加的装置和方法。相关技术描述指令集或指令集架构(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图示出根据一个实施例的包含实值和复值的多个紧缩数据元素;图14图示紧缩数据处理架构的实施例;图15图示出根据本专利技术的一个实施例的方法;以及图16图示出根据本专利技术的一个实施例的方法。具体实施方式在下面的描述中,出于解释的目的,阐述了众多具体细节以便提供对下文所描述的本专利技术的实施例的透彻理解。然而,对本领域技术人员显而易见的是,可在没有这些具体细节中的一些细节的情况下实施本专利技术的实施例。在其他实例中,公知的结构和设备以框图形式示出,以避免使本专利技术的实施例的基本原理变得模糊。示例性处理器架构、指令格式和数据类型指令集包括一种或多种指令格式。给定的指令格式定义各种字段(位的数量、位的位置)以指定将要执行的操作(操作码)以及将对其执行该操作的(多个)操作数等等。通过指令模板(或子格式)的定义来进一步分解一些指令格式。例如,可将给定指令格式的指令模板定义为具有该指令格式的字段(所包括的字段通常按照相同顺序,但是至少一些字段具有不同的位的位置,因为较少的字段被包括)的不同子集,和/或定义为具有以不同方式进行解释的给定字段。由此,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字节)、64位(8字节)、16位(2字节)或8位(1字节)数据元素宽度(或尺寸);以及16字节向量操作数长度(或尺寸)与32位(4字节)、64位(8字节)、16位(2字节)、或8位(1字节)数据元素宽度(或尺寸);但是替代实施例可支持更大、更小和/或不同的向量操作数尺寸(例如,256字节向量操作数)与更大、更小或不同的数据元素宽度(例如,128位(16字节)数据元素宽度)。图1A中的A类指令模板包括:1)在无存储器访问105的指令模板内,示出无存储器访问的完全舍入本文档来自技高网...

【技术保护点】
1.一种处理器,包括:解码器,用于对指令解码以生成经解码的指令,所述指令包括操作码和操作数,所述操作数标识紧缩数据目的地寄存器和多个紧缩数据源寄存器;第一源寄存器,用于存储第一多个紧缩有符号双字数据元素;第二源寄存器,用于存储第二多个紧缩有符号双字数据元素;第三源寄存器,用于存储多个紧缩有符号四字数据元素;执行电路,用于执行经解码的指令,所述执行电路包括:乘法器电路,用于分别将来自所述第一源寄存器的第一紧缩有符号双字数据元素和第二紧缩有符号双字数据元素与来自所述第二源寄存器的第三紧缩有符号双字数据元素和第四紧缩有符号双字数据元素相乘,以生成第一临时有符号四字乘积和第二临时有符号四字乘积,所述乘法器电路用于基于所述指令的所述操作码来选择第一有符号双字数据元素、第二有符号双字数据元素、第三有符号双字数据元素和第四有符号双字数据元素;累加电路,用于将所述第一临时有符号四字乘积与从所述第三源寄存器读取的第一紧缩有符号四字值组合以生成第一经累加的有符号四字结果,并用于将所述第二临时有符号四字乘积与从所述第三源寄存器读取的第二紧缩有符号四字值组合以生成第二经累加的有符号四字结果;目的地寄存器或所述第三源寄存器,用于将所述第一经累加的有符号四字结果存储在第一有符号四字数据元素位置中,并用于将所述第二经累加的有符号四字结果存储在第二有符号四字数据元素位置中。...

【技术特征摘要】
2017.12.21 US 15/850,1801.一种处理器,包括:解码器,用于对指令解码以生成经解码的指令,所述指令包括操作码和操作数,所述操作数标识紧缩数据目的地寄存器和多个紧缩数据源寄存器;第一源寄存器,用于存储第一多个紧缩有符号双字数据元素;第二源寄存器,用于存储第二多个紧缩有符号双字数据元素;第三源寄存器,用于存储多个紧缩有符号四字数据元素;执行电路,用于执行经解码的指令,所述执行电路包括:乘法器电路,用于分别将来自所述第一源寄存器的第一紧缩有符号双字数据元素和第二紧缩有符号双字数据元素与来自所述第二源寄存器的第三紧缩有符号双字数据元素和第四紧缩有符号双字数据元素相乘,以生成第一临时有符号四字乘积和第二临时有符号四字乘积,所述乘法器电路用于基于所述指令的所述操作码来选择第一有符号双字数据元素、第二有符号双字数据元素、第三有符号双字数据元素和第四有符号双字数据元素;累加电路,用于将所述第一临时有符号四字乘积与从所述第三源寄存器读取的第一紧缩有符号四字值组合以生成第一经累加的有符号四字结果,并用于将所述第二临时有符号四字乘积与从所述第三源寄存器读取的第二紧缩有符号四字值组合以生成第二经累加的有符号四字结果;目的地寄存器或所述第三源寄存器,用于将所述第一经累加的有符号四字结果存储在第一有符号四字数据元素位置中,并用于将所述第二经累加的有符号四字结果存储在第二有符号四字数据元素位置中。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

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

1