System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 融合模乘加运算制造技术_技高网

融合模乘加运算制造技术

技术编号:41670687 阅读:10 留言:0更新日期:2024-06-14 15:27
一种计算机实现的方法包括执行融合模乘加运算以计算d=((a*b)+c)%p,其中a、b和c被提供作为一组操作数。第一乘法累加单元计算二进制乘法以计算a*b。第二乘法累加单元通过使用p更新所述二进制乘法的结果来计算第一中间结果。第三乘法累加单元的累加器用c初始化。第三乘法累加单元利用第一中间结果和c计算第二中间结果。加法器单元从所述二进制乘法的结果的一部分减去第二中间结果的一部分。加法器的输出被提供作为所述融合模乘加运算的结果。

【技术实现步骤摘要】
【国外来华专利技术】


技术介绍

1、本专利技术总体上涉及计算机技术,并且更具体地涉及通过实现融合模乘加(fmma)运算来执行算术运算。

2、计算机通常用于执行算术运算的应用。诸如密码学、区块链、机器学习、图像处理、计算机游戏、电子商务等的若干应用要求高效(例如,快速)执行这样的运算。因此,整数算术的性能已经成为学术和工业研究的焦点。

3、若干现有技术被用来通过实现算术指令来利用计算过程或使计算过程适应硬件架构,来改善计算机(特别是处理器和/或算术逻辑单元)的性能。这样的技术的示例包括将指令拆分成多个操作,其中每个操作被并行执行,两个或更多个操作被组合以减少存储器访问,这些操作被排序以便减少存储器访问时间,操作数以特定次序被存储以减少访问时间等。对于诸如密码学和机器学习的应用,可能需要不同类型的算术运算。


技术实现思路

1、根据本专利技术的一个或多个实施例,一种计算机实现的方法包括:由处理单元接收用于执行融合模乘加运算以计算d=((a*b)+c)%p的指令,其中,a、b和c被提供为一组操作数。所述方法进一步包含由第一乘法累加单元计算二进制乘法以计算a*b。所述方法进一步包含由第二乘法累加单元通过使用p更新所述二进制乘法的结果来计算第一中间结果。所述方法进一步包含以c初始化第三乘法累加单元的累加器。所述方法进一步包括由所述第三乘法累加单元使用所述第一中间结果和c来计算第二中间结果。所述方法进一步包含由加法器从所述二进制乘法的所述结果的一部分减去所述第二中间结果的一部分。所述方法进一步包括输出所述加法器的输出作为所述融合模乘加运算的结果。

2、根据本专利技术的一个或多个实施例,一种系统包括一组寄存器以及包含三个乘法累加单元的一组乘法累加单元,每个乘法累加单元包括乘法器和累加器。该组乘法累加单元与该组寄存器耦合。所述一组乘法累加单元被配置为执行一种用于执行融合模乘加运算以计算d=((a*b)+c)%p的方法,其中a、b和c被提供在所述一组寄存器中。一种用于执行所述融合模乘加运算的方法包括由第一乘法累加单元计算二进制乘法以计算a*b。所述方法进一步包含由第二乘法累加单元通过使用p更新所述二进制乘法的结果来计算第一中间结果。所述方法进一步包含以c初始化来自第三乘法累加单元的累加器。所述方法进一步包括由所述第三乘法累加单元使用所述第一中间结果和c来计算第二中间结果。所述方法进一步包含由加法器从所述二进制乘法的所述结果的一部分减去所述第二中间结果的一部分。所述方法进一步包括输出所述加法器的输出作为所述融合模乘加运算的结果。

3、根据本专利技术的一个或多个实施例,一种计算机程序产品包括计算机可读存储器,所述计算机可读存储器具有存储在其上的计算机可执行指令,所述计算机可执行指令当由处理器执行时使所述处理器执行一种用于执行融合模乘加运算以计算d=((a*b)+c)%p的方法,其中,a、b和c被提供作为操作数,并且其中,执行所述融合模乘加运算。用于执行所述融合模乘加运算的所述方法包括由第一乘法累加单元计算二进制乘法以计算a*b。所述方法进一步包含由第二乘法累加单元通过使用p更新所述二进制乘法的结果来计算第一中间结果。所述方法进一步包含以c初始化来自第三乘法累加单元的累加器。所述方法进一步包括由所述第三乘法累加单元使用所述第一中间结果和c来计算第二中间结果。所述方法进一步包含由加法器从所述二进制乘法的所述结果的一部分减去所述第二中间结果的一部分。所述方法进一步包括输出所述加法器的输出作为所述融合模乘加运算的结果。

4、通过本专利技术的技术实现了附加技术特征和优点。在本文中详细描述了本专利技术的实施例和各方面,并且这些实施例和方面被认为是要求保护的主题的一部分。为了更好的理解,参考详细说明和附图。

本文档来自技高网...

【技术保护点】

1.一种计算机实现方法,包括:

2.根据权利要求1所述的计算机实现的方法,其中,所述加法器具有比所述第一乘法累加单元中的乘法器更宽的位宽度。

3.根据权利要求2所述的计算机实现的方法,其中,所述加法器的位宽度比所述第一乘法器的位宽度大一。

4.根据权利要求1所述的计算机实现的方法,其中,用c初始化所述第三乘法累加单元的所述累加器包括将c的值存储在所述累加器的低阶位中。

5.根据权利要求1所述的计算机实现的方法,其中,计算所述第一中间结果包括执行a*b的二进制乘法的结果与预先计算的常数的第二二进制乘法。

6.根据权利要求5所述的计算机实现的方法,其中,计算所述第二中间结果包括将所述第一中间结果的高阶位与模数p相乘,其中在调用所述指令之前p的值被存储在所述第三相乘法累加单元中。

7.根据权利要求1所述的计算机实现的方法,进一步包括校正所述加法器的输出以确保所述输出在0与p之间。

8.一种系统,包括:

9.根据权利要求8所述的系统,其中,所述加法器具有比所述第一乘法累加单元中的乘法器更宽的位宽度。

10.根据权利要求9所述的系统,其中,所述加法器的位宽度比所述第一乘法器的位宽度大一。

11.根据权利要求8所述的系统,其中,用c初始化来自所述第三乘法累加单元的所述累加器包括将c的值存储在所述累加器的低阶位中。

12.根据权利要求8所述的系统,其中,计算所述第一中间结果包括执行a*b的二进制乘法的结果与预先计算的常数的第二二进制乘法。

13.根据权利要求12所述的系统,其中,计算所述第二中间结果包括将所述第一中间结果的高阶位与模数p相乘,其中在调用指令以执行所述融合乘加运算之前,p的值被存储在所述第三乘法累加单元中。

14.根据权利要求8所述的系统,进一步包括校正所述加法器的输出以确保所述输出在0与p之间。

15.一种包括计算机可读存储器的计算机程序产品,所述计算机可读存储器具有存储在其上的计算机可执行指令,所述计算机可执行指令在由处理器执行时使所述处理器执行一种用于执行融合模乘加运算以计算d=((a*b)+c)%p的方法,其中a、b和c被提供作为操作数,并且其中执行所述融合模乘加运算包括:

16.根据权利要求15所述的计算机程序产品,其中,所述加法器的位宽度比所述第一乘法器的位宽度大一。

17.根据权利要求15所述的计算机程序产品,其中,用c初始化来自所述第三乘法累加单元的所述累加器包括将c的值存储在所述累加器的低阶位中。

18.根据权利要求15所述的计算机程序产品,其中,计算所述第一中间结果包括执行a*b的二进制乘法的结果与预先计算的常数的第二二进制乘法。

19.根据权利要求18所述的计算机程序产品,其中,计算所述第二中间结果包括将所述第一中间结果的高阶位与模数p相乘,其中在调用指令以执行所述融合乘加运算之前,p的值被存储在所述第三乘法累加单元中。

20.根据权利要求15所述的计算机程序产品,还包括校正所述加法器的输出以确保所述输出在0与p之间。

...

【技术特征摘要】
【国外来华专利技术】

1.一种计算机实现方法,包括:

2.根据权利要求1所述的计算机实现的方法,其中,所述加法器具有比所述第一乘法累加单元中的乘法器更宽的位宽度。

3.根据权利要求2所述的计算机实现的方法,其中,所述加法器的位宽度比所述第一乘法器的位宽度大一。

4.根据权利要求1所述的计算机实现的方法,其中,用c初始化所述第三乘法累加单元的所述累加器包括将c的值存储在所述累加器的低阶位中。

5.根据权利要求1所述的计算机实现的方法,其中,计算所述第一中间结果包括执行a*b的二进制乘法的结果与预先计算的常数的第二二进制乘法。

6.根据权利要求5所述的计算机实现的方法,其中,计算所述第二中间结果包括将所述第一中间结果的高阶位与模数p相乘,其中在调用所述指令之前p的值被存储在所述第三相乘法累加单元中。

7.根据权利要求1所述的计算机实现的方法,进一步包括校正所述加法器的输出以确保所述输出在0与p之间。

8.一种系统,包括:

9.根据权利要求8所述的系统,其中,所述加法器具有比所述第一乘法累加单元中的乘法器更宽的位宽度。

10.根据权利要求9所述的系统,其中,所述加法器的位宽度比所述第一乘法器的位宽度大一。

11.根据权利要求8所述的系统,其中,用c初始化来自所述第三乘法累加单元的所述累加器包括将c的值存储在所述累加器的低阶位中。

12.根据权利要求8所述的系统,其中,计算所述第一中间结果包括执行a*b的二进制乘法的结果与预先计算的常...

【专利技术属性】
技术研发人员:R·拉奥
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:

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

1