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

包括由具有三个操作数引用的指令可驱动的双乘双加运算符的处理器制造技术

技术编号:34005402 阅读:14 留言:0更新日期:2022-07-02 13:14
本发明专利技术涉及由处理器处理数据的方法,该方法包括:由处理器接收包括与三个寄存器引用相关联的运算符代码的指令,三个寄存器引用指定被配置为包含乘法操作数对和加法操作数的寄存器以及被配置为接收运算符结果的结果寄存器,运算符代码指定被配置为计算乘法操作数对的乘积并将乘积与加法操作数相加的运算符;由处理器的指令解码器对指令进行解码,以确定要被执行的运算符以及包含要被提供给运算符的操作数和运算符的结果的寄存器;由处理器的算术电路使用在由寄存器引用指定的寄存器中的操作数来驱动运算符;以及将运算符的结果存储在所指定的结果寄存器中。在所指定的结果寄存器中。在所指定的结果寄存器中。

【技术实现步骤摘要】
包括由具有三个操作数引用的指令可驱动的双乘双加运算符的处理器


[0001]本专利技术涉及处理器核的数字处理硬件运算符的实现,特别是通过乘法和加法运算组合几个数的运算符。

技术介绍

[0002]被操纵的数可以以不同的格式被编码,诸如定点或浮点、单精度或双精度、整数和伽罗瓦域(Galois field)元素表示。组合运算可以包括例如多项式求值运算、复数算术运算、以及矩阵或向量乘法运算。
[0003]许多应用涉及数的乘积之和。例如,对于矩阵乘法或者诸如三角函数和对数函数的超越函数,就是这种情况,它们通过多项式来逼近。诸如深度学习的人工智能技术使用可能有数百个行和列的矩阵乘法以及线性组合计算。
[0004]在主要的通用处理器核中,通过依赖执行融合乘加(FMA)的硬件运算符来执行数的乘积之和。具体地,该运算符通过以下方式来执行具有三个操作数a、b、c(其可以是浮点数)的a
·
b+c运算:首先计算操作数a和b的乘积,然后将乘积与操作数c相加。加法的结果被四舍五入为可以浮点格式表示的数。该数可被存储在寄存器中,以用于使用该结果作为新的FMA运算的加法操作数的目的。
[0005]通常,处理器核指令集中的指令接受采用处理器核寄存器标识符形式的不超过三个的显式操作数,即,两个源寄存器标识符包含操作数的值,目的地寄存器标识符旨在接收运算的结果。
[0006]为了性能的原因,期望实现具有组合多个乘法和加法的硬件运算符的处理器核,并对处理器核的指令集添加激活该硬件运算符的指令。
[0007]因此,期望提供一种处理器核指令集,该指令集包括可以组合超过三个操作数而不使用超过三个寄存器标识符的指令,以便使用最少数量的指令来对例如多项式、复数乘法或矩阵乘法求值。

技术实现思路

[0008]实施例涉及一种由处理器处理数据的方法,该方法包括以下步骤:由处理器接收包括与三个寄存器引用相关联的运算符代码的指令,该三个寄存器引用指定被配置为包含乘法操作数对和加法操作数的寄存器以及被配置为接收运算符结果的结果寄存器,运算符代码指定被配置为计算乘法操作数对的乘积并将乘积与加法操作数相加的运算符;由处理器的指令解码器对指令进行解码,以确定要被执行的运算符以及包含要被提供给运算符的操作数和运算符的结果的寄存器;由处理器的算术电路使用在由寄存器引用指定的寄存器中的操作数来驱动运算符;以及将运算符的结果存储在所指定的结果寄存器中。
[0009]根据实施例,寄存器引用包括分别指定以下项的两个寄存器引用:寄存器组的两对连续寄存器,其被配置为包含乘法操作数;或者寄存器组的两组N个连续寄存器,其被配
置为包含乘法操作数,其中,运算符被配置为通过将两组中的一组中的寄存器与两组中的另一组中的相应寄存器相关联来从N对寄存器中计算N个乘积。
[0010]根据实施例,寄存器引用包括:指定被配置为包含加法操作数并接收由运算符提供的结果的相同寄存器的寄存器引用;或者指定寄存器组的两个连续寄存器的寄存器引用,该两个连续寄存器分别被配置为包含加法操作数和接收由运算符提供的结果;或者指定被配置为包含加法操作数的寄存器的寄存器引用,以及指定被配置为接收由运算符提供的结果的寄存器的寄存器引用。
[0011]根据实施例,乘积被同时计算,并且加法被同时执行。
[0012]根据实施例,寄存器引用指定多个操作数集,并且每个所指定的寄存器包括每个操作数集中的一个操作数,同时在每个操作数集上执行运算符,所指定的结果寄存器包含使用操作数集的运算符的结果。
[0013]根据实施例,该方法包括以下步骤:由处理器接收用于对多项式求值的指令系列,其中,该指令系列中的指令指定运算符和五个操作数,每个指令被配置为对二次多项式的涉及变量的两个项求值,其中该二次多项式是从要被求值的多项式的分解中产生的,并且每个指令被配置为计算两个项与二次多项式的第三项之和;将该指令系列中的指令的结果寄存器在该指令系列的后续指令中指定为要与变量的平方相乘的乘积操作数寄存器;以及由处理器连续地执行指令系列中的指令,以计算要被求值的多项式的涉及变量的值。
[0014]根据实施例,要被求值的多项式被预先分解为两个多项式,该两个多项式分别将包含被升到偶数次幂的变量的项和包含被升到奇数次幂的变量的项分组,该指令系列包括分别用于计算两个多项式的两个指令系列。
[0015]根据实施例,该方法包括以下步骤:由处理器接收用于对两个向量的点积求值的指令系列,该指令系列包括指定运算符的指令,该指令被配置为每一个计算乘积的两个项并将它们与通过执行指定运算符的指令系列中的前一指令而获得的结果相加;以及由处理器连续地执行指令系列中的指令。
[0016]根据实施例,指令包括选择性地指示在计算和之前要反转每一个乘积的符号的参数。
[0017]根据实施例,指令包括选择性地指示由寄存器引用之一指定的指定乘法操作数的寄存器在计算乘积之前要被成对交换的参数。
[0018]根据实施例,该方法包括以下步骤:由处理器接收用于对两个复数的乘积求值的指令系列,该指令系列包括指定运算符和分别包含两个复数的实部和虚部的寄存器对的两个指令,两个指令中的一个指令被配置为计算乘积的实部,两个指令中的另一个指令被配置为计算乘积的虚部;以及由处理器执行指令系列中的指令。
[0019]根据实施例,操作数以下列格式之一被编码:单精度或双精度浮点,定点,整数,以及属于伽罗瓦域的数。
[0020]根据实施例,处理器的算术计算电路被配置为通过舍入运算来计算乘积以及和,而不损失精度。
[0021]实施例还可以涉及被配置为实现先前定义的方法的处理器。
[0022]根据实施例,处理器包括多个处理单元,该多个处理单元用于并行地驱动用于计算乘积并将乘积与加法操作数相加多个运算符。
[0023]根据实施例,处理器包括运算符,该运算符包括多个乘法器和加法器,每个乘法器计算操作数对的乘积,加法器将乘积一起与加法操作数相加。
附图说明
[0024]将在下面与附图相结合地描述本专利技术的实施例的示例,其中:
[0025]图1是双乘双加运算符的示意图。
[0026]图2示出可用作本专利技术的基础的处理器核架构的示例。
[0027]图3是融合双乘双加运算符的示例的示意图。
[0028]图4是融合双乘双加运算符的另一个示例的示意图。
具体实施方式
[0029]本公开提供一种处理器核,在它的指令集中具有用于驱动组合两个乘法和两个加法的FDMDA运算符以执行a1
·
b1+a2
·
b2+c运算的指令。该运算符执行等效于两个FMA运算。在实施例中,FDMDA运算符与三个寄存器引用相组合,以指定运算符的五个操作数并指定接收运算的结果的寄存器。
[0030]图1示出融合乘加运算符FDMDA。该运算符与两个乘法操作数对或者被乘数(a1,b1)和(a2,b2)以及加法操作数c相关联。被乘数对(a1,b1本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种由处理器处理数据的方法,所述方法包括以下步骤:由所述处理器接收包括与三个寄存器引用相关联的运算符代码的指令,所述三个寄存器引用指定被配置为包含乘法操作数对和加法操作数的寄存器以及被配置为接收运算符结果的结果寄存器,所述运算符代码指定被配置为计算所述乘法操作数对的乘积并将所述乘积与所述加法操作数相加的运算符;由所述处理器的指令解码器对所述指令进行解码,以确定要被执行的运算符以及包含要被提供给所述运算符的操作数和所述运算符的结果的寄存器;由所述处理器的算术电路使用在由所述寄存器引用指定的寄存器中的操作数来驱动所述运算符;以及将所述运算符的结果存储在所指定的结果寄存器中。2.根据权利要求1所述的方法,其中,所述寄存器引用包括分别指定以下项的两个寄存器引用:寄存器组的两对连续寄存器,其被配置为包含所述乘法操作数,或者所述寄存器组的两组N个连续寄存器,其被配置为包含所述乘法操作数,其中,所述运算符被配置为通过将所述两组中的一组中的寄存器与所述两组中的另一组中的相应寄存器相关联来从N对寄存器中计算N个乘积。3.根据权利要求1所述的方法,其中,所述寄存器引用包括:指定被配置为包含所述加法操作数并接收由所述运算符提供的结果的相同寄存器的寄存器引用,或者指定所述寄存器组的两个连续寄存器的寄存器引用,所述两个连续寄存器分别被配置为包含所述加法操作数和接收由所述运算符提供的结果,或者指定被配置为包含所述加法操作数的寄存器的寄存器引用,以及指定被配置为接收由所述运算符提供的结果的寄存器的寄存器引用。4.根据权利要求1所述的方法,其中,所述乘积被同时计算,并且所述加法被同时执行。5.根据权利要求1所述的方法,其中,所述寄存器引用指定多个操作数集,并且每个所指定的寄存器包括每个操作数集中的一个操作数,所述运算符同时在每个操作数集上被执行,所指定的结果寄存器包含使用所述操作数集的所述运算符的结果。6.根据权利要求1所述的方法,包括以下步骤:由所述处理器接收用于对多项式求值的指令系列,其中,所述指令系列中的指令指定所述运算符和五个操作数,每个指令被配置为对二次多项式的涉及变量的两个项求值,其中所述二次多项式从要被求值的多项式的分解中产生,并且每个指令被配置为计算所述两个项与所述二次多项式的第三项之和;将所述指令系列中的指令的...

【专利技术属性】
技术研发人员:B
申请(专利权)人:卡尔雷公司
类型:发明
国别省市:

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

1