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

矢量打包有符号值的相乘、求反和累加的系统、设备和方法技术方案

技术编号:20840947 阅读:73 留言:0更新日期:2019-04-13 08:34
描述了用于处理器中的数据值的乘法、求反和累加的系统、设备和方法的实施例。例如,执行电路执行解码的指令以将来自第一和第二打包数据源操作数中的多个打包数据元素位置的选择的数据值相乘,以生成多个第一结果值,对多个第一结果值求和,以生成一个或多个第二结果值,对一个或多个第二结果值求反,以生成一个或多个第三结果值,累加一个或多个第三结果值与来自目的地操作数的一个或多个数据值,以生成一个或多个第四结果值,以及在目的地操作数中的一个或多个打包数据元素位置中存储一个或多个第三结果值。

【技术实现步骤摘要】
矢量打包有符号值的相乘、求反和累加的系统、设备和方法
本专利技术的实施例涉及计算机处理器架构的领域。更特定地,实施例涉及在被执行时,造成矢量打包有符号数据值的相乘、求反和累加的指令。
技术介绍
指令集或指令集架构(ISA)是与编程有关的计算机架构的一部分,包括原生数据类型、指令、寄存器架结构、寻址模式、存储器架构、中断和异常处理、以及外部输入和输出(I/O)。在这里,术语“指令”通常指的是宏指令,也就是,被提供到处理器以用于执行的指令,其不同于微指令或微操作,也就是,处理器的解码器解码宏指令的结果。微指令或微操作能够配置成指示处理器上的执行单元执行操作以实现与宏指令关联的逻辑。ISA不同于微架构,微架构是用于实现指令集的处理器设计技术的集合。带有不同微架构的处理器能够共享共用指令集。例如,Intel®Pentium4处理器、Intel®CoreTM处理器、和来自加利福尼亚州桑尼威尔(Sunnyvale)的超微半导体有限公司(AdvancedMicroDevices,Inc.)的处理器实现几乎相同版本的x86指令集(带有已经随着较新版本被加入的一些扩展),但具有不同内部设计。例如,ISA的相同寄存器架构可使用公知的技术在不同微架构中以不同方式来实现,包括专用物理寄存器、使用寄存器重命名机制(例如,使用寄存器别名表(RAT)、重新排序缓冲器(ROB)和引退寄存器堆)的一个或多个动态分配的物理寄存器。除非另有说明,否则词语寄存器架构、寄存器堆和寄存器在本文中用于指的是对软件/程序员可见的东西以及指令指定寄存器所用的方式。在要求区分的情况下,形容词“逻辑的”、“架构的”、或“软件可见的”将用于指示在寄存器架构中的寄存器/文件,而不同的形容词将用于指定给定微架构中的寄存器(例如,物理寄存器、重新排序缓冲器、引退寄存器、寄存器池)。乘累加是常见的数字信号处理运算,其计算两个数的积并且将该积与一个累加值相加。现有单指令多数据(SIMD)微架构通过执行指令的序列来实现乘累加运算。例如,乘累加可采用乘法指令、继之以4路加法、并且随后与目的地四倍字长数据累加来执行以生成两个64比特饱和结果。由于为每个运算运行指令的这些序列,因此,这导致了更低的性能。附图说明通过参照用于示出本专利技术的实施例的下面的描述和随附附图,可最好地理解本专利技术。在图中:图1图示了根据实施例的矢量打包有符号乘法、求反和累加指令的示范执行;图2图示了根据实施例的由处理器执行以处理乘法、求反和逻辑指令的方法的一实施例;图3A-3C图示了示范指令格式;图4是根据本专利技术的一个实施例的寄存器架构的框图;图5A-5B图示了有序流水线和有序核;图6A-6B图示了更特定的示范有序核架构的框图,该核将是芯片中的几个逻辑块(包括相同类型和/或不同类型的其它核)之一;图7是根据本专利技术的实施例的可具有多于一个核、可具有集成存储器控制器和可具有集成图形的处理器的框图;图8-11是示范计算架构的框图;以及图12图示了根据本专利技术的实施例的对比用于将源指令集中的二进制指令转换成目标指令集中的二进制指令的软件指令转换器的使用的框图。具体实施方式下面的描述描述了用于实现有符号字值的矢量打包有符号乘法、求反和累加的矢量打包指令的方法和设备。在下面的描述中,陈述了许多特定的细节以便提供本专利技术更详尽的理解,诸如逻辑实现、操作码、指定操作数的方法、资源分区/共享/重复实现、系统组件的类型和相互关系、和逻辑分区/集成选择。然而,本领域的技术人员将理解,可在没有此类特定细节的情况下实践本专利技术。其它实例下,控制结构、栅级电路和全软件指令序列未详细示出以免混淆本专利技术。通过包括的描述,本领域技术人员将能够在不进行不当实验的情况下实现适当的功能性。说明书中对“一个实施例”、“一实施例”、“示例实施例”等的引用指示所描述的实施例可包括特定特征、结构或特性,但每个实施例可不一定包括此具体特征、结构或特性。另外,此类词语不一定指同一实施例。此外,在结合一实施例描述具体特征、结构或特性时,认为结合其它实施例影响此类特征、结构或特性是在本领域技术人员的知识之内,无论是否明确描述。括号内的文本和带虚线边的框(例如,大虚线、小虚线、点虚线及点)可在本文中用于图示将附加特征添加到本专利技术的实施例的可选操作。然而,此类记号不应视为表示这些记号是仅有的选项或可选操作和/或带有实线边的框在本专利技术的某些实施例中不是可选的。在下面的描述和权利要求中,可使用术语“耦合”和“连接”连同其衍生词。应理解的是,这些术语无意做为彼此的同义词。“耦合”用于指示可与彼此直接物理或电接触或不直接物理或电接触的两个或更多个元素相互协作或交互。“连接”用于指示在与彼此耦合的两个或更多个元素之间的通信的建立。有符号字的矢量乘法、求反和累加在一实施例中,公开了实现有符号字值的乘法、求反和累加的新矢量打包指令。鉴于以前的实现要求执行指令的序列以生成对应于有符号字值的乘法、求反和累加的输出,在本文中公开的实施例提供单一指令和关联电路以对矢量源寄存器的字值执行这些运算。这些实施例通过相对于执行多个单独指令,加快这些运算的执行(并且因此一般使用更少功率),改进了计算机本身。如上所指示的,在本文中公开的一个或多个指令的执行促使执行电路(或执行单元)对源数据执行乘法、求反和累加运算。在一些实施例中,乘法、求反和累加指令的执行促使执行电路将来自第一和第二打包数据源操作数中的多个打包数据元素位置的选择的数据值相乘,以生成多个第一结果值;对多个第一结果值求和,以生成一个或多个第二结果值;对一个或多个第二结果值求反,以生成一个或多个第三结果值;将一个或多个第三结果值与来自目的地操作数的一个或多个数据值累加,以生成一个或多个第四结果值;以及在目的地操作数中的一个或多个打包数据元素位置中存储一个或多个第四结果值。在一些实施例中,指令的执行进一步包括使用饱和电路使一个或多个第四结果值饱和,并且在目的地操作数中的一个或多个打包数据元素位置中存储饱和的结果。图1图示了用于执行促使矢量打包有符号值的乘法、求反和累加的指令的电路的一个实施例。乘法、求反和累加指令格式包括用于目的地(打包数据目的地(SRC1/DEST)120)和两个源(矢量打包数据源2(SRC2)102和矢量打包数据源3(SRC3)104)的字段。例如,SRC2102和SRC3104能够每个包括八个字值。尽管在图1的图示示例中每个源是128比特并且每个数据元素是16比特,但本文中描述的基础原理不被限于任何具体源或数据元素大小。例如,在其它实施例中,能够使用128比特、256比特、512比特等的数据源大小。类似地,能够使用32比特、64比特、128比特等的矢量数据元素大小。如所指示的,指令的执行对在SRC2102和SRC3104源中存储的值进行相乘、求反和累加。在此示例中,先执行乘法,之后是输入值的求反,累加和可选饱和。矢量打包数据源2102包括八个打包数据元素(示为打包数据元素位置A-H)。取决于实现,矢量打包数据源2102是打包数据寄存器(例如,XMM、YMM、ZMM、矢量、SIMD、D或S寄存器)或存储器位置。类似地,矢量打包数据源3104包括八个打包数据元素(也示为打包数据元素位置A-H)。取决于实现,矢量打本文档来自技高网...

【技术保护点】
1.一种用于执行指令的方法,所述方法包括:由解码电路解码指令,所述指令具有用于第一和第二打包数据源操作数、和打包数据目的地操作数的字段;通过以下操作由执行电路执行解码的指令:将来自所述第一和第二打包数据源操作数中的多个打包数据元素位置的选择的数据值相乘,以生成多个第一结果值;对所述多个第一结果值求和,以生成一个或多个第二结果值;对所述一个或多个第二结果值求反,以生成一个或多个第三结果值;累加所述一个或多个第三结果值,以生成一个或多个第四结果值;以及在所述目的地操作数中的一个或多个打包数据元素位置中存储所述一个或多个第四结果值。

【技术特征摘要】
2017.09.29 US 15/7215991.一种用于执行指令的方法,所述方法包括:由解码电路解码指令,所述指令具有用于第一和第二打包数据源操作数、和打包数据目的地操作数的字段;通过以下操作由执行电路执行解码的指令:将来自所述第一和第二打包数据源操作数中的多个打包数据元素位置的选择的数据值相乘,以生成多个第一结果值;对所述多个第一结果值求和,以生成一个或多个第二结果值;对所述一个或多个第二结果值求反,以生成一个或多个第三结果值;累加所述一个或多个第三结果值,以生成一个或多个第四结果值;以及在所述目的地操作数中的一个或多个打包数据元素位置中存储所述一个或多个第四结果值。2.如权利要求1所述的方法,其中由所述解码电路执行所述解码的指令进一步包括将来自所述第一和第二打包数据源操作数中的所述多个打包数据元素位置的数据值复用到至少一个乘法器电路。3.如权利要求2所述的方法,其中基于在所述第一和第二打包数据源操作数中共享相同打包数据元素位置的数据值,将来自所述第一和第二打包数据源操作数中的所述多个打包数据元素位置的所述数据值复用到所述至少一个乘法器电路。4.如权利要求1所述的方法,其中所述一个或多个第二结果值由一个或多个加法器网络生成。5.如权利要求1所述的方法,其中存储所述一个或多个第三结果值包括在所述打包数据目的地操作数的上半部分中存储结果值和在所述打包数据目的地操作数的下半部分中存储结果值。6.如权利要求1所述的方法,其中所述将所述选择的数据值相乘包括:执行运算S1H*S2H、S1G*S2G、S1F*S2F和S1E*S2E以及运算S1D*S2D、S1C*S2C、S1B*S2B和S1A*S2A,以生成所述多个第一结果值,其中S1标识所述第一打包数据源操作数,S2标识所述第二打包数据源操作数,并且A、B、C、D、E、F、G和H标识在所述第一和第二打包数据源操作数中从最低到最高数据元素位置排序的所述打包数据元素位置。7.如权利要求6所述的方法,其中对所述多个第一结果值求和包括执行运算(S1H*S2H)+(S1G*S2G)+(S1F*S2F)+(S1E*S2E)和执行运算(S1H*S2H)+(S1G*S2G)+(S1B*S2B)+(S1A*S2A),以生成所述一个或多个第二结果值。8.如权利要求1所述的方法,进一步包括,响应于检测到所述一个或多个第三结果值的某个值高于阈值,在所述目的地操作数的对应位置中存储最大值...

【专利技术属性】
技术研发人员:VR马杜里E奥德艾哈迈德瓦尔R瓦伦丁J科巴尔M查尼
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

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

1