发明内容
本申请的主要目的在于提供一种蒙哥马利算法的模乘器和电子设备,以解决现有技术中实现蒙哥马利算法的模乘器的延时较大的问题。
根据本发明实施例的一个方面,提供了一种蒙哥马利算法的模乘器,包括M个依次连接的处理单元,每个所述处理单元中包括至少一个加法器,所述模乘器中的所述加法器的总数为M+1个,多个所述处理单元由依次连接的一个第一处理单元和多个其他处理单元组成,其中,所述第一处理单元的输入包括第一输入段、第二输入段、第三输入段和第四输入段,所述第一处理单元的输出为第一加和的进位、第一乘积的高K位和第二乘积的高K位,所述第一乘积为第一输入段和第二输入段的乘积,所述第一输入段为所述模乘器的第一输入数据的一段,所述第一输入数据分为m段且每段为K位,所述第二输入段为所述模乘器的第二输入数据的第一段,所述第二输入数据分为m段且每段为K位,所述第二乘积为所述第三输入段和所述第四输入段的乘积,所述第三输入段为所述模乘器的第三输入数据的第一段,所述第三输入数据分为m段且每段为K位,所述第四输入段为所述第二输入段与第一预定值的比值,所述第一加和为所述第一乘积的低K位、所述第二乘积的低K位以及第二预定值的低K位的和,m和K均为正整数且均大于1;所述其他处理单元的输入包括所述第一输入段、第一预定段、第二预定段、第四输入段、第一初始加和的进位、第一初始乘积的高K位和第二初始乘积的高K位,所述第一预定段为输入至前一个所述处理单元的所述第二输入数据的下一段、所述第二预定段为输入至前一个所述处理单元的所述第三输入数据的下一段,所述其他处理单元的输出为第一预定乘积的高K位、第二预定乘积的高K位、预定加和的低K位以及所述预定加和的进位,所述第一预定乘积为所述第一输入段和所述第一预定段的乘积,所述第二预定乘积为所述第二预定段和所述第四输入段的乘积,所述预定加和为所述第一预定乘积的低K位、所述第二预定乘积的低K位、所述第一初始加和的进位、所述第一初始乘积的高K位和所述第二初始乘积的高K位的和,在所述其他处理单元的前一个所述处理单元为所述第一处理单元时,所述第一初始加和为所述第一加和,在所述其他处理单元的前一个所述处理单元为所述其他处理单元时,所述第一初始加和为前一个所述其他处理单元对应的所述预定加和,所述第一初始乘积为前一个所述处理单元得到的所述第一预定乘积,所述第二初始乘积为前一个所述处理单元得到的所述第二预定乘积,最后一个所述处理单元的输出还包括最后一个所述处理单元得到的所述第一预定乘积的高K位、所述第二预定乘积的高K位以及所述预定加和的进位的和。
可选地,所述第一处理单元包括第一乘法器、第二乘法器和第一加法器,其中,所述第一乘法器用于计算所述第一输入段和所述第二输入段的乘积且得到所述第一乘积;所述第二乘法器用于计算所述第三输入段和所述第四输入段的乘积且得到所述第二乘积;所述第一加法器的输入端分别与所述第一乘法器的输出端、所述第二乘法器的输出端分别电连接,所述第一加法器用于计算所述第一乘积的低K位、所述第二乘积的低K位以及所述第二预定值的低K位的和且得到所述第一加和。
可选地,所述第一加法器包括K个第一一位全加器和第一K位全加器,其中,所述第一一位全加器的输入端与所述第一乘法器的输出端以及所述第二乘法器的输出端分别连接,一个所述第一一位全加器用于计算所述第一乘积的低K位中的第Q位、所述第二乘积的低K位的第Q位以及所述第二预定值的低K位的第Q位的和,其中,1≤Q≤K,所述第一一位全加器的输出为第一本位的和位和第一向前一级的进位;所述第一K位全加器的输入端与各所述第一一位全加器的输出端分别电连接,所述第一K位全加器用于对K个所述第一一位全加器的输出进行K位全加,得到所述第一加和。
可选地,所述其他处理单元包括第三乘法器、第四乘法器和第二加法器,其中,所述第三乘法器用于计算所述第一输入段和所述第一预定段的乘积器,且得到所述第一预定乘积;所述第四乘法器用于计算所述第四输入段和所述第二预定段的乘积器,且得到所述第二预定乘积;所述第二加法器的输入端与所述第三乘法器、所述第四乘法器和前一个所述处理单元的输出端分别连接,所述第二加法器用于计算所述第一预定乘积的低K位、所述第二预定乘积的低K位、所述第一初始加和的进位、所述第一初始乘积的高K位和所述第二初始乘积的高K位的和,并得到所述预定加和。
可选地,所述第二加法器包括第一加法器组、第二加法器组、第三加法器组和第二K位全加器,其中,所述第一加法器组与前一个所述处理单元的输出端电连接,所述第一加法器组包括K个第二一位全加器,各所述第二一位全加器用于对所述第一预定乘积的低K位、所述第二预定乘积的低K位、所述第一初始加和的进位的对应的一位进行相加,得到K个第二本位的和位和K个第二向前级的进位;所述第二加法器组与所述第一加法器组和所述第三乘法器分别电连接,所述第二加法器组包括K个第三一位全加器,所述第三一位全加器用于对K个所述第二本位的和位、K个第一预定进位以及所述第一初始乘积的高K位的对应的一位进行相加,得到K个第三本位的和位和K个第三向前级的进位,其中,K个所述第一预定进位为K个所述第二向前级的进位左移一位得到的;所述第三加法器组与所述第二加法器组以及所述第四乘法器分别电连接,所述第三加法器组包括K个第四一位全加器,所述第四一位全加器用于对K个所述第三本位的和位、K个第二预定进位以及所述第二初始乘积的高K位的对应的一位进行相加,得到K个第四本位的和位和K个第四向前级的进位,其中,K个所述第二预定进位为K个所述第三向前级的进位左移一位得到的;所述第二K位全加器与所述第三加法器组电连接,所述第二K位全加器用于对K个所述第四本位的和位和K个第三预定进位进行加和,得到所述预定加和,其中,K个所述第三预定进位为K个所述第四向前级的进位左移一位得到的。
可选地,多个所述其他处理单元中包括多个第二处理单元和第三处理单元,所述第三处理单元为多个所述其他处理单元中的最后一个,所述第二处理单元为连接在所述第一处理单元和所述第三处理单元之间的所述处理单元。
可选地,所述第三处理单元还包括第三加法器,所述第三加法器与所述第三处理单元中的所述第二加法器的输出端、所述第三处理单元中的所述第三乘法器以及所述第三处理单元中的第四乘法器电连接,所述第三加法器用于计算所述第三处理单元得到的所述第一预定乘积的高K位、所述第二预定乘积的高K位以及所述预定加和的进位的和。
根据本发明实施例的另一方面,还提供了一种电子设备,包括任一种所述的蒙哥马利算法的模乘器。
本申请的蒙哥马利算法的模乘器,包括M个依次连接的处理单元,每个所述处理单元中包括至少一个加法器,所述模乘器中的所述加法器的总数为M+1个,多个所述处理单元由依次连接的一个第一处理单元和多个其他处理单元组成。相比现有技术中延时较大的问题,本申请的模乘器中,第一处理单元不需要把最终结果计算出来,只需把第一加和的进位传给下一个处理单元,其他处理单元也不需要把最终结果计算出来,而是把中间的进位传给下一个处理单元,这样可以较好地缓解延时的问题,保证了模乘器的计算速度较快。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出了根据本申请的实施例的蒙哥马利算法的模乘器的示意图;
图2示出了根据本申请的实施例的第一处理单元的示意图;
图3示出了根据本申请的实施例的第一加法器的示意图;
图4示出了根据本申请的实施例的其他处理单元的示意图;
图5示出了根据本申请的实施例的第二加法器的示意图;
图6示出了根据本申请的实施例的第三处理单元的示意图;
图7示出了根据本申请的实施例的第三加法器的示意图。
其中,上述附图包括以下附图标记:
10、第一处理单元;20、其他处理单元;30、Quotient函数器;40、控制器;50、多路复用器;100、第一乘法器;101、第二乘法器;102、第一加法器;103、第一一位全加器;104、第一K位全加器;200、第三乘法器;201、第四乘法器;202、第二加法器;203、第二K位全加器;204、第二一位全加器;205、第三一位全加器;206、第四一位全加器;300、第三加法器;301、第三K+1位全加器;302、第五一位全加器;303、第六一位全加器。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应该理解的是,当元件(诸如层、膜、区域、或衬底)描述为在另一元件“上”时,该元件可直接在该另一元件上,或者也可存在中间元件。而且,在说明书以及权利要求书中,当描述有元件“连接”至另一元件时,该元件可“直接连接”至该另一元件,或者通过第三元件“连接”至该另一元件。
正如背景技术中所说的,现有技术中的实现蒙哥马利算法的模乘器的延时较大,为了解决上述问题,本申请的一种典型的实施方式中,提供了一种蒙哥马利算法的模乘器和电子设备。
根据本申请的一种典型的实施例,提供了一种蒙哥马利算法的模乘器,如图1所示,上述模乘器包括M个依次连接的处理单元,每个上述处理单元中包括至少一个加法器,上述模乘器中的上述加法器的总数为M+1个,多个上述处理单元由依次连接的一个第一处理单元10和多个其他处理单元20组成,其中,上述第一处理单元10的输入包括第一输入段ai、第二输入段B0、第三输入段N0和第四输入段qi,上述第一处理单元10的输出为第一加和的进位、第一乘积的高K位和第二乘积的高K位,上述第一乘积为第一输入段ai和第二输入段B0的乘积,上述第一输入段ai为上述模乘器的第一输入数据的一段,上述第一输入数据分为m段且每段为K位,上述第二输入段B0为上述模乘器的第二输入数据的第一段,上述第二输入数据分为m段且每段为K位,上述第二乘积为上述第三输入段N0和上述第四输入段qi的乘积,上述第三输入段N0为上述模乘器的第三输入数据的第一段,上述第三输入数据分为m段且每段为K位,上述第四输入段为上述第二输入段B0与第一预定值N’的比值,通过Quotient(商)函数器30得到,上述第一加和为上述第一乘积的低K位、上述第二乘积的低K位以及第二预定值S0的低K位的和,m和K均为正整数且均大于1;上述其他处理单元的输入包括上述第一输入段ai、第一预定段Bm-1、第二预定段Nm-1、第四输入段qi、第一初始加和的进位、第一初始乘积的高K位和第二初始乘积的高K位,上述第一预定段Bm-1为输入至前一个上述处理单元的上述第二输入数据的下一段、上述第二预定段Nm-1为输入至前一个上述处理单元的上述第三输入数据的下一段,上述其他处理单元的输出为第一预定乘积的高K位、第二预定乘积的高K位、预定加和的低K位以及上述预定加和的进位,上述第一预定乘积为上述第一输入段和上述第一预定段的乘积,上述第二预定乘积为上述第二预定段和上述第四输入段的乘积,上述预定加和为上述第一预定乘积的低K位、上述第二预定乘积的低K位、上述第一初始加和的进位、上述第一初始乘积的高K位和上述第二初始乘积的高K位的和,在上述其他处理单元的前一个上述处理单元为上述第一处理单元时,上述第一初始加和为上述第一加和,在上述其他处理单元的前一个上述处理单元为上述其他处理单元时,上述第一初始加和为前一个上述其他处理单元对应的上述预定加和,上述第一初始乘积为前一个上述处理单元得到的上述第一预定乘积,上述第二初始乘积为前一个上述处理单元得到的上述第二预定乘积,最后一个上述处理单元的输出还包括最后一个上述处理单元得到的上述第一预定乘积的高K位、上述第二预定乘积的高K位以及上述预定加和的进位的和。
上述的蒙哥马利算法的模乘器,包括M个依次连接的处理单元,每个上述处理单元中包括至少一个加法器,上述模乘器中的上述加法器的总数为M+1个,多个上述处理单元由依次连接的一个第一处理单元和多个其他处理单元组成。相比现有技术中延时较大的问题,本申请的模乘器中,第一处理单元不需要把最终结果计算出来,只需把第一加和的进位传给下一个处理单元,其他处理单元也不需要把最终结果计算出来,而是把中间的进位传给下一个处理单元,这样可以较好地缓解延时的问题,保证了模乘器的计算速度较快。
在实际的应用过程中,如图1所示,上述模乘器还包括控制器40和多路复用器50,上述控制器40与上述第一处理单元10和上述多路复用器50分别电连接,上述多路复用器与多个上述处理单元电连接,上述多路复用器50保证了上述处理单元的多路数据信息可以共享一路通道。一种具体的实施例中,上述控制器包括有限状态机,当然,上述控制器还可以包括其他的设备。
根据本申请的一种具体的实施例,如图2所示,图2中的S0即为S0,上述第一处理单元10包括第一乘法器100、第二乘法器101和第一加法器102,其中,上述第一乘法器100用于计算上述第一输入段ai和上述第二输入段B0的乘积且得到上述第一乘积;上述第二乘法器101用于计算上述第三输入段N0和上述第四输入段qi的乘积且得到上述第二乘积;上述第一加法器102的输入端分别与上述第一乘法器100的输出端、上述第二乘法器101的输出端分别电连接,上述第一加法器102用于计算上述第一乘积的低K位、上述第二乘积的低K位以及上述第二预定值的低K位的和且得到上述第一加和。通过上述第一处理单元得到了上述第一加和,方便了后续处理单元的运算,进一步地缓解了延时的问题,进一步地保证了模乘器的计算速度较快。
根据本申请的另一种具体的实施例,如图3所示,上述第一加法器102包括K个第一一位全加器103和第一K位全加器104,其中,上述第一一位全加器103的输入端与上述第一乘法器100的输出端以及上述第二乘法器101的输出端分别连接,一个上述第一一位全加器103用于计算上述第一乘积的低K位中的第Q位、上述第二乘积的低K位的第Q位以及上述第二预定值的低K位的第Q位的和,其中,1≤Q≤K,上述第一一位全加器103的输出为第一本位的和位和第一向前一级的进位;上述第一K位全加器104的输入端与各上述第一一位全加器103的输出端分别电连接,上述第一K位全加器104用于对K个上述第一一位全加器103的输出进行K位全加,得到上述第一加和。上述第一加法器包括K个第一一位全加器103和第一K位全加器104,进一步地保证了可以较为快速地得到上述第一加和,便于后续的运算。
在实际的应用过程中,如图4所示,图4中的Si即为Si,上述其他处理单元20包括第三乘法器200、第四乘法器201和第二加法器202,其中,上述第三乘法器200用于计算上述第一输入段和上述第一预定段的乘积器,且得到上述第一预定乘积;上述第四乘法器201用于计算上述第四输入段和上述第二预定段的乘积器,且得到上述第二预定乘积;上述第二加法器202的输入端与上述第三乘法器200、上述第四乘法器201和前一个上述处理单元的输出端分别连接,上述第二加法器202用于计算上述第一预定乘积的低K位、上述第二预定乘积的低K位、上述第一初始加和的进位、上述第一初始乘积的高K位和上述第二初始乘积的高K位的和,并得到上述预定加和。通过上述其他处理单元可以较为快速准确地得到上述预定加和,进一步地方便了后续处理单元的运算,进一步地缓解了延时的问题,进一步地保证了模乘器的计算速度较快。
本申请的再一种具体的实施例中,如图5所示,上述第二加法器202包括第一加法器组、第二加法器组、第三加法器组和第二K位全加器203,其中,上述第一加法器组与前一个上述处理单元的输出端电连接,上述第一加法器组包括K个第二一位全加器204,各上述第二一位全加器204用于对上述第一预定乘积的低K位、上述第二预定乘积的低K位、上述第一初始加和的进位的对应的一位进行相加,得到K个第二本位的和位和K个第二向前级的进位;上述第二加法器组与上述第一加法器组一一对应电连接,上述第二加法器组与上述第三乘法器200电连接,上述第二加法器组包括K个第三一位全加器205,上述第三一位全加器205用于对K个上述第二本位的和位、K个第一预定进位以及上述第一初始乘积的高K位的对应的一位进行相加,得到K个第三本位的和位和K个第三向前级的进位,其中,K个上述第一预定进位为K个上述第二向前级的进位左移一位得到的;上述第三加法器组与上述第二加法器组一一对应电连接,上述第三加法器组与上述第四乘法器201分别电连接,上述第三加法器组包括K个第四一位全加器206,上述第四一位全加器206用于对K个上述第三本位的和位、K个第二预定进位以及上述第二初始乘积的高K位的对应的一位进行相加,得到K个第四本位的和位和K个第四向前级的进位,其中,K个上述第二预定进位为K个上述第三向前级的进位左移一位得到的;上述第二K位全加器203与上述第三加法器组电连接,上述第二K位全加器203用于对K个上述第四本位的和位和K个第三预定进位进行加和,得到上述预定加和,其中,K个上述第三预定进位为K个上述第四向前级的进位左移一位得到的。上述第二加法器包括第一加法器组、第二加法器组、第三加法器组和第二K位全加器,进一步地保证了可以较为快速地得到上述预定加和,便于后续的运算。
本申请的又一种具体的实施例中,多个上述其他处理单元中包括多个第二处理单元和第三处理单元,上述第三处理单元为多个上述其他处理单元中的最后一个,上述第二处理单元为连接在上述第一处理单元和上述第三处理单元之间的上述处理单元。
根据本申请的另一种具体的实施例,如图6所示,图6中的Si即为Si,上述第三处理单元还包括第三加法器300,上述第三加法器300与上述第三处理单元中的上述第二加法器202的输出端、上述第三处理单元中的上述第三乘法器200以及上述第三处理单元中的第四乘法器201电连接,上述第三加法器300用于计算上述第三处理单元得到的上述第一预定乘积的高K位、上述第二预定乘积的高K位以及上述预定加和的进位的和。上述第三处理单元包括第三加法器,进一步地实现了对上述第一预定乘积的高K位、上述第二预定乘积的高K位以及上述预定加和的进位的和的计算。
一种具体的实施例中,如图7所示,上述第三加法器300包括第四加法器组、第五加法器组和第三K+1位全加器301,其中,上述第四加法器组与前一个上述处理单元的输出端电连接,上述第四加法器组包括K个第五一位全加器302,上述第五加法器组与上述第四加法器组一一对应电连接,上述第五加法器组包括K个第六一位全加器303,上述第三K+1位全加器301与上述第五加法器组电连接。
在实际的应用过程中,上诉第一处理单元、多个上述第二处理单元和上述第三处理单元的运算可以在一个周期内完成,当然,也可以将上述处理单元分成几个周期来完成运算。
在实际的应用过程中,采用本申请的模乘器的延时,比现有技术中的模乘器的延时减少了33%,采用本申请的模乘器的运算速度,比现有技术中的模乘器的运算速度提高了50%。
根据本申请的另一种典型的实施例,还提供了一种电子设备,上述电子设备包括任一种上述的蒙哥马利算法的模乘器。
上述的电子设备,包括任一种上述的蒙哥马利算法的模乘器。相比现有技术中延时较大的问题,本申请的电子设备中,第一处理单元不需要把最终结果计算出来,只需把第一加和的进位传给下一个处理单元,其他处理单元也不需要把最终结果计算出来,而是把中间的进位传给下一个处理单元,这样可以较好地缓解延时的问题,保证了电子设备的计算速度较快。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例上述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
从以上的描述中,可以看出,本申请上述的实施例实现了如下技术效果:
1)、本申请的蒙哥马利算法的模乘器,包括M个依次连接的处理单元,每个上述处理单元中包括至少一个加法器,上述模乘器中的上述加法器的总数为M+1个,多个上述处理单元由依次连接的一个第一处理单元和多个其他处理单元组成。相比现有技术中延时较大的问题,本申请的模乘器中,第一处理单元不需要把最终结果计算出来,只需把第一加和的进位传给下一个处理单元,其他处理单元也不需要把最终结果计算出来,而是把中间的进位传给下一个处理单元,这样可以较好地缓解延时的问题,保证了模乘器的计算速度较快。
2)、本申请的电子设备,包括任一种上述的蒙哥马利算法的模乘器。相比现有技术中延时较大的问题,本申请的电子设备中,第一处理单元不需要把最终结果计算出来,只需把第一加和的进位传给下一个处理单元,其他处理单元也不需要把最终结果计算出来,而是把中间的进位传给下一个处理单元,这样可以较好地缓解延时的问题,保证了电子设备的计算速度较快。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。