模乘法器电路、FPGA电路和ASIC模块制造技术

技术编号:38422684 阅读:6 留言:0更新日期:2023-08-07 11:22
本发明专利技术提供了一种模乘法器电路、FPGA电路和ASIC模块。该模乘法器电路包括:第一乘法器、第二乘法器、第三乘法器、第一加法器、第二加法器和二路复用器,其中:第一乘法器的输出端输出和的乘积p1,第二乘法器的输出端输出p1与m的乘积p2;第三乘法器的第一输入端接收,第三乘法器的输出端输出和乘积p3,第一加法器的输出端输出p2和p3之间的差值t,第二加法器的输出端输出t与m的差值t

【技术实现步骤摘要】
模乘法器电路、FPGA电路和ASIC模块


[0001]本专利技术涉及电路
,尤其涉及一种模乘法器电路、FPGA电路和ASIC模块。

技术介绍

[0002]在密码学中模乘法操作是非常重要的操作。模乘法可以用如下公式描述:,其中,和是模乘法运算的操作数,m为模乘法运算所采用的模数,n为和的长度。为了避免昂贵的除法运算,通常使用Barrett算法或实现大数模乘法运算。
[0003]Barrett Reduction算法是Barrett在1986年提出的模代数归约算法。Barrett Reduction的基本过程描述如下:(1)(2)(3)(4)(5)(6)(7)由于是2的幂,因此对的除法都可以用简单的位操作代替。可以看到Barrett Reduction仅仅使用了有限的乘法操作,完全避免了昂贵的除法运算。以上(1)至(7)可以实现操作。
[0004]专利技术人研究发现,采用电路实现上述Barrett Reduction(Barrett规约)的模乘法器,大致分两种思路:一种通用性实现,对输入的和m不做约束,能满足各种场景的需求,但是电路结构较为复杂,优化空间较小,性能难以提升; 一种是专用实现,对m做特殊约束,可以据此产生高度优化的电路,但是由于约束条件较强,仅适用于某些特定的应用场景。
[0005]同时,专利技术人进一步研究发现,在以上两类方法中,模乘法器电路均是把乘法操作和模操作使用两个独立的模块实现,即先计算中间结果, 然后计算。如图1所示出的现有技术中乘法器结构图,乘法器(MUL)模块和求模运算(Barrett Reduction)模块是两个独立、分离的模块。如果能打破两个模块的界限,使两个模块融合,则可以降低冗余的计算,减少不必要的中间结果,从而减少硬件成本,提高计算吞吐率。
[0006]因此,如何能减少模乘法器电路的硬件成本,成为本领域亟需解决的技术问题。

技术实现思路

[0007]本专利技术的目的是提供一种模乘法器电路、FPGA电路和ASIC模块,用于解决现有技术中的技术问题。
[0008]一方面,为实现上述目的,本专利技术提供了一种模乘法器电路。
[0009]该模乘法器电路包括:第一乘法器、第二乘法器、第三乘法器、第一加法器、第二加法器和二路复用器,其中:所述第一乘法器的第一输入端接收,所述第一乘法器的第二输入端接收,所述第一乘法器的输出端输出和的乘积p1,其中,和是模乘法运算的操作数,m为模乘法运算所采用的模数,,为常量,n为和的长度;所述第二乘法器的第一输入端连接所述第一乘法器的输出端,所述第二乘法器的第二输入端接收m,所述第二乘法器的输出端输出p1与m的乘积p2;所述第三乘法器的第一输入端接收,所述第三乘法器的第二输入端接收,所述第三乘法器的输出端输出和乘积p3;所述第一加法器的第一输入端连接所述第二乘法器的输出端,所述第一加法器的第二输入端连接所述第三乘法器的输出端,所述第一加法器的输出端输出p2和p3之间的差值t;所述第二加法器的第一输入端连接所述第一加法器的输出端,所述第二加法器的第二输入端接收m,所述第二加法器的输出端输出t与m的差值t

m;所述二路复用器的第一输入端连接第一加法器的输出端,所述二路复用器的第二输入端连接第二加法器的输出端,所述二路复用器的输出端根据t和m的大小关系选择需要输出的结果,其中,当t>=m时,所述二路复用器输出t

m,当t<m时,所述二路复用器输出t。
[0010]进一步地,所述第一乘法器输出乘积p1的最高n比特,所述第二乘法器输出乘积p2的最低n比特,所述第三乘法器输出乘积p3的最低n比特。
[0011]进一步地,所述第一加法器用于将所述第二乘法器的输出结果取反后执行带进位1的加法操作。
[0012]进一步地,模乘法器电路还包括:预计算单元,用于计算,其中,所述第一乘法器的第二输入端用于连接所述预计算单元的输出端。
[0013]另一方面,为实现上述目的,本专利技术提供了一种FPGA电路,该FPGA电路包括本专利技术提供的任一种模乘法器电路,其中,所述模乘法器电路中的乘法器通过DSP实现。
[0014]又一方面,为实现上述目的,本专利技术提供了一种ASIC模块,该ASIC模块包括Barrett电路,该Barrett电路包括本专利技术提供的任一种模乘法器电路。
[0015]本专利技术提供的模乘法器电路、FPGA电路和ASIC模块,针对模乘法一方操作数为常量的应用场景,打破模乘法器硬件实现时乘法操作模块和模操作模块的界限、不计算x0与x1之积,而是使乘法操作模块和模操作模块这两个模块融合为一个模块(即本专利技术提出的模乘法器电路),通过第一乘法器、第二乘法器、第三乘法器、第一加法器、第二加法器和二路复用器构建出一种模乘法器电路,降低模乘法器中冗余的计算,减少不必要的中间结果,从而减少模乘法器电路、FPGA电路和ASIC模块的硬件成本,提高计算吞吐率。
附图说明
[0016]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术
的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1为现有技术中乘法器结构图;图2为本专利技术实施例一提供的模乘法器电路的电路图。
具体实施方式
[0017]为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0018]专利技术人研究发现,在计算机系统中,乘法器实现通常需要更多的电路面积,它也在电路功耗中占主要地位。如果能够减少模乘法器对乘法器的占用,有助于提高系统吞吐率、降低功耗和硬件面积,因此,本专利技术的重点是优化模乘法器电路中所使用的乘法器的数量。
[0019]专利技术人进一步研究发现,针对模乘法器电路的应用场景中,也即在需要执行模乘法操作的应用场景中,通常有一方操作数为常量。例如:在DNN推理任务中,DNN模型的权重是常量;在特征比对任务中,特征库是常量;在加密/解密任务中,密钥是常量;在数论变换(NTT)或者FFT中,旋转因子是常量。因此,模乘法操作可以充分利用这一特点对硬件电路进行优化。
[0020]基于此,不失一般性,假设x1是常量,则通用的Barrett Reduction算法中的第(3)行可以进行如下的改写:显然,是常量,因此可以把合并到第(2)行中,第(2)行改写为:同时,经过误差分析,值可以进一步改写为,减少的位宽,有助于减少乘法器所需的位宽。(其中,乘法器的成本和操作数位宽的平方成正比),因此,可以得到融合后的模乘法器算法如下:(8)(9)(10)(11)(12)(13)(14)(15)上述算法未计算x0与x1之积,而是将x0本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种模乘法器电路,其特征在于,包括:第一乘法器(U0)、第二乘法器(U1)、第三乘法器(U2)、第一加法器(U3)、第二加法器(U4)和二路复用器(U5),其中:所述第一乘法器(U0)的第一输入端接收,所述第一乘法器(U0)的第二输入端接收,所述第一乘法器(U0)的输出端输出和的乘积p1,其中,和是模乘法运算的操作数,m为模乘法运算所采用的模数,,为常量,n为和的长度;所述第二乘法器(U1)的第一输入端连接所述第一乘法器(U0)的输出端,所述第二乘法器(U1)的第二输入端接收m,所述第二乘法器(U1)的输出端输出p1与m的乘积p2;所述第三乘法器(U2)的第一输入端接收,所述第三乘法器(U2)的第二输入端接收,所述第三乘法器(U2)的输出端输出和乘积p3;所述第一加法器(U3)的第一输入端连接所述第二乘法器(U1)的输出端,所述第一加法器(U3)的第二输入端连接所述第三乘法器(U2)的输出端,所述第一加法器(U3)的输出端输出p2和p3之间的差值t;所述第二加法器(U4)的第一输入端连接所述第一加法器(U3)的输出端,所述第二加法器(U4)的第二输入端接收m,所述第二加法器(U4)的输出端输出t与m的差值t

m;所述二路复用器(U5)的...

【专利技术属性】
技术研发人员:请求不公布姓名
申请(专利权)人:北京瑞莱智慧科技有限公司
类型:发明
国别省市:

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

1