蒙哥马利模数乘法器及其方法.pdf

上传人:111****112 文档编号:1151025 上传时间:2018-04-02 格式:PDF 页数:22 大小:1MB
返回 下载 相关 举报
摘要
申请专利号:

CN200410042261.6

申请日:

2004.05.09

公开号:

CN1550975A

公开日:

2004.12.01

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回|||实质审查的生效|||公开

IPC分类号:

G06F7/72; H04L9/10

主分类号:

G06F7/72; H04L9/10

申请人:

三星电子株式会社;

发明人:

孙熙宽

地址:

韩国京畿道

优先权:

2003.05.09 KR 29445/2003; 2003.12.17 US 10/736,838

专利代理机构:

北京市柳沈律师事务所

代理人:

邵亚丽;马莹

PDF下载: PDF下载
内容摘要

一种对执行模数乘法的蒙哥马利模数乘法模块进行降低功率和增加计算速度的方法。编码方案减少了用于选择部分乘积和模数倍数的汉明间距,并且减少了多路复用运算和功耗。同步寄存器对向减少故障和/或提高计算速度的累加器输入的部分乘积和模数倍数值同步。寄存器提供了先前值的存储并减少了需要从多路复用器获取值,并且减少了多路复用器的运算和/或降低了功耗。

权利要求书

1: 一种布期处理器,包括: 布期重编码器;以及 布期寄存器,其中对布期寄存器的输入是来自所述布期重编码器的至少 一个输出。
2: 根据权利要求1所述的布期处理器,其中所述布期寄存器是反馈寄 存器,该反馈寄存器存储将反馈回所述布期重编码器的布期重编码器的至少 一个输出值。
3: 根据权利要求2所述的布期处理器,其中所述输出值是部分乘积选 择信号,该部分乘积选择信号用来选择部分乘积值。
4: 根据权利要求1所述的布期处理器,其中所述布期寄存器是流水线 型寄存器,所述流水线型寄存器存储所述布期重编码器的输出值。
5: 一种模数处理器,包括: 模数重编码器;以及 模数反馈寄存器,其中对反馈寄存器的输入是来自所述模数重编码器的 至少一个输出。
6: 根据权利要求5所述的模数处理器,其中所述模数反馈寄存器存储 将反馈回所述模数重编码器的模数重编码器的至少一个输出值。
7: 根据权利要求5所述的模数处理器,其中输出值是模数倍数选择信 号,该模数倍数选择信号用来选择模数倍数值。
8: 一种乘法器,包括: 布期重编码器; 部分乘积同步寄存器,其中对所述部分乘积同步寄存器的输入是来自所 述布期重编码器的至少一个输出; 模数重编码器;以及 模数倍数同步寄存器,其中对所述模数倍数同步寄存器的输入是来自所 述布期重编码器的至少一个输出,使用该部分乘积同步寄存器和模数倍数同 步寄存器以同步来自所述布期重编码器和所述模数重编码器的输出。
9: 根据权利要求8所述的乘法器,还包括: 布期与门,其中将来自所述部分乘积同步寄存器的至少一个值输入到布 期与门。
10: 根据权利要求8所述的乘法器,还包括: 模数与门,其中将来自所述模数倍数同步寄存器的至少一个值输入到模 数与门。
11: 一种乘法器,包括: 模数重编码器; 模数反馈寄存器,其中对所述模数反馈寄存器的输入是来自所述模数重 编码器的至少一个输出; 布期重编码器;以及 布期寄存器,其中对所述布期寄存器的输入是来自所述布期重编码器的 至少一个输出,该模数反馈寄存器和布期寄存器保存使乘法器中能够减少计 算功率的使用的值。
12: 根据权利要求11所述的乘法器,其中所述布期寄存器是反馈寄存 器,该反馈寄存器存储将反馈回所述布期重编码器的所述布期重编码器的至 少一个输出值。
13: 根据权利要求12所述的乘法器,其中所述输出值是部分乘积选择信 号,该部分乘积选择信号用来选择部分乘积值。
14: 根据权利要求11所述的乘法器,其中所述布期寄存器是流水线型寄 存器,该流水线型寄存器存储布期重编码器的输出值。
15: 根据权利要求11所述的乘法器,其中模数反馈寄存器存储将反馈回 所述模数重编码器的所述模数重编码器的至少一个输出值。
16: 根据权利要求15所述的乘法器,其中所述输出值是模数倍数选择信 号,该模数倍数选择信号用来选择模数倍数值。
17: 根据权利要求11所述的乘法器,还包括: 布期与门,其中将来自所述布期寄存器的至少一个值输入到该布期与 门。
18: 根据权利要求11所述的乘法器,还包括: 模数与门,其中将来自所述模数反馈寄存器的至少一个值输入到该模数 与门。
19: 一种部分乘积产生器,包括: 布期重编码器;以及 多路复用器,其中该多路复用器输入来自所述布期重编码器的至少一个 输出,该布期重编码器和多路复用器用来获得部分乘积。
20: 根据权利要求19所述的部分乘积产生器,还包括: 布期与门,其中将来自所述多路复用器的至少一个值输入到该布期与 门。
21: 根据权利要求19所述的部分乘积产生器,其中所述布期重编码器 产生部分乘积选择信号,以及根据所述部分乘积选择信号的先前值将位模式 分配给禁止的部分乘积选择信号的任何值。
22: 根据权利要求21所述的部分乘积产生器,其中选择所述位模式, 以便减少在部分乘积选择信号的当前值和部分乘积选择信号对应的先前值 之间的汉明间距。
23: 根据权利要求21所述的部分乘积产生器,其中选择所述位模式, 以便减少在部分乘积选择信号的当前值和部分乘积选择信号对应的先前值 之间的平均时间的汉明间距。
24: 根据权利要求21所述的部分乘积产生器,其中所述布期重编码器 还包括: 第一多路复用器,其中该第一多路复用器输入先前部分乘积选择信号的 值的第一部分,以及输出当前部分乘积选择信号的第一部分;以及 第二多路复用器,其中该第二多路复用器输入先前部分乘积选择信号的 值的第二部分,以及输出当前部分乘积选择信号的第二部分。
25: 根据权利要求24所述的部分乘积产生器,其中所述第一多路复用 器和所述第二多路复用器是8∶1多路复用器。
26: 一种模数倍数产生器,包括: 模数重编码器;以及 多路复用器,其中如果使能信号没有预定的值,则所述模数重编码器产 生当前模数倍数选择信号,如果使能信号有预定的值,则不产生模数倍数选 择信号而使用选择信号的先前值,该选择信号用来选择模数倍数值。
27: 根据权利要求26所述的模数倍数产生器,还包括: 模数与门,其中将来自多路复用器的至少一个值输入到模数与门。
28: 根据权利要求26所述的模数倍数产生器,其中所述模数重编码器 还包括: 第一多路复用器,其中该第一多路复用器输入先前选择信号的值的第一 部分,以及输出当前模数倍数选择信号的第一部分;以及 第二多路复用器,其中该第二多路复用器输入先前选择信号的值的第二 部分,以及输出当前模数倍数选择信号的第二部分。
29: 根据权利要求28所述的模数倍数产生器,其中所述第一多路复用 器和所述第二多路复用器是8∶1多路复用器。
30: 一种乘法器,包括: 模数重编码器; 模数反馈寄存器,其中对该模数反馈寄存器的输入是来自所述模数重编 码器的至少一个输出; 模数同步寄存器,其中对该模数同步寄存器的输入是来自所述模数重编 码器的至少一个输出; 布期重编码器; 布期同步寄存器,其中对该布期同步寄存器的输入是来自所述布期重编 码器的至少一个输出;以及 布期寄存器,其中对该布期寄存器的输入是来自所述布期重编码器的至 少一个输出,所述模数反馈寄存器和该布期寄存器保存使在乘法器中能够减 少计算功率使用的值,以及所述布期同步寄存器和所述模数同步寄存器用来 同步来自所述布期重编码器和所述模数重编码器的输出以减少故障。
31: 根据权利要求30所述的乘法器,其中所述布期寄存器是反馈寄存 器,该反馈寄存器存储将反馈回所述布期重编码器的所述布期重编码器的至 少一个输出值。
32: 根据权利要求31所述的乘法器,其中所述输出值是部分乘积选择 信号,该部分乘积选择信号用来选择部分乘积值。
33: 根据权利要求30所述的乘法器,其中所述布期寄存器是流水线型 寄存器,该流水线型寄存器存储所述布期重编码器的输出值。
34: 根据权利要求30所述的乘法器,其中所述模数反馈寄存器存储将 反馈回所述模数重编码器的所述模数重编码器的至少一个输出值。
35: 根据权利要求34所述的乘法器,其中所述输出值是模数倍数选择 信号,该模数倍数选择信号用来选择模数倍数值。
36: 根据权利要求30所述的乘法器,还包括: 布期与门,其中将来自所述布期同步寄存器的至少一个值输入到所述布 期与门。
37: 根据权利要求30所述的乘法器,还包括: 模数与门,其中将来自所述模数同步寄存器的至少一个值输入到所述模 数与门。
38: 根据权利要求30所述的乘法器,其中通过使用来自所述模数同步 寄存器的值和来自所述布期同步寄存器的值来同步模数倍数值和部分乘积 值。
39: 一种提高基数2 N 蒙哥马利乘法的计算速度的方法,其中N>1,该 方法包括: 向布期重编码器提供输入; 存储所述布期重编码器的输出;以及 累加蒙哥马利乘法的结果,其中及时地交错执行所述存储和累加。
40: 根据权利要求39所述的方法,其中将所述布期重编码器的输出存 储在流水线存储器中。
41: 一种减小基数2 N 蒙哥马利乘法的功耗的方法,其中N≥1,该方法 包括: 接收模数、乘数和被乘数; 同步相对于模数、乘数和被乘数的值; 将所述值进行累加以产生蒙哥马利乘法的结果。
42: 根据权利要求41所述的方法,还包括: 使用至少一个模数、乘数和被乘数来计算模数倍数;以及 使用至少一个模数、乘数和被乘数来计算部分乘积,其中所述模数倍数 和所述部分乘积是同步的值。
43: 根据权利要求41所述的方法,其中所述同步步骤还包括: 在同步寄存器中存储与模数、乘数和被乘数相关的至少两个输入。
44: 根据权利要求42所述的方法,还包括: 匹配部分乘积和模数倍数到达累加器的时间,减少蒙哥马利整个乘法的 功耗。
45: 一种减小基数2 N 蒙哥马利乘法的功耗的方法,其中N>1,该方法 包括: 向布期重编码器提供输入; 使用所述布期重编码器来产生选择信号; 基于先前选择信号的值来向禁止的任何选择信号的值分配反转位模式; 以及 存储所述布期重编码器的输出。
46: 根据权利要求45所述的方法,还包括: 选择反转位模式,以便使在当前选择信号的值和先前选择信号的值之间 的汉明间距最小。
47: 根据权利要求45所述的方法,其中选择位模式,从而使在当前选 择信号的值和与当前选择信号对应的先前值之间的汉明间距最小。
48: 一种减小基数2 N 蒙哥马利乘法的功耗的方法,其中N≥1,该方法 包括: 确定第n次迭代结果信号的值; 向电路提供使能信号和第n次迭代结果信号的值; 如果所述使能信号提供第n+1次无意义的迭代结果信号的值,则不对所 述第n+1次的迭代结果信号的值进行计算; 反馈第n次迭代结果信号的值;以及 使用第n次迭代结果信号的值,而不使用第n+1次的迭代结果信号的值。
49: 根据权利要求48所述的方法,其中由组合逻辑确定第n次和第n+1 次迭代结果信号的值。
50: 根据权利要求49所述的方法,其中组合逻辑由多路复用器执行。
51: 一种减少模数重编码器的功耗的方法,包括: 确定第n个模数倍数选择信号的值; 选择寄存器中的第n个模数倍数选择信号的值; 产生第n+1个使能信号,其中使能信号的预定值选择0为模数倍数值; 以及 如果第n+1个使能信号的值是预定值,则使用第n个模数倍数选择信号 的值而不确定第n+1个模数倍数选择信号的值。
52: 根据权利要求51所述的方法,还包括: 使用模数倍数选择信号来选择模数倍数值,其中当使能信号是所述预定 值时,不执行选择步骤。
53: 一种蒙哥马利乘法器,包括: 用于输入的装置,其中该用于输入的装置输入模数、乘数和被乘数的值; 用于布期存储的装置,其中该用于布期存储的装置存储至少一个从布期 重编码器输出的值; 用于模数存储的装置,其中该用于模数存储的装置存储至少一个从模数 重编码器输出的值; 用于产生部分乘积的装置,其中该用于产生部分乘积的装置使用来自用 于输入的装置的输入产生部分乘积值; 用于产生模数倍数的装置,其中该用于产生模数倍数的装置使用来自用 于输入的装置的输入来产生模数倍数; 用于同步的装置,其中该用于同步的装置同步所述部分乘积值和模数倍 数值;以及 用于累加的装置,其中该用于累加的装置输入同步部分乘积值和模数倍 数值并产生蒙哥马利乘法器的结果。

说明书


蒙哥马利模数乘法器及其方法

    本申请要求2003年5月9日在韩国提交的申请号为P2003-29445的韩国申请的优先权,将其全部合并在此以做参考。

    【技术领域】

    本发明涉及密码系统的领域,尤其涉及蒙哥马利模数乘法器。

    背景技术

    由于网络系统使用的增长,所以网络通信的保护变得更为重要。对数据的整体性和保密性的保护成为一个问题。

    代码传送和对消息进行解码的基本过程包括:获得消息(明码文本)、调整(加密)该明码文本为(密文)、向接收器发送密文、以及解调(解密)该密文以恢复原始的消息。

    在密码系统中,使用加密匙来对明码文本进行加密。将所述密文发送到接收器,并且接收器使用解密匙对密文进行解密,然后回到原始的明码文本。所述加密匙和解密匙经常称作密匙对。

    例如,公共和私有密匙对可以是两个或多个大的质数的函数。每个函数(加密和解密)依赖于大的质数,并且被称作密匙对。对于整个系统(加密和解密)存在两个密匙对(P,Q)。为了加强安全性,可以选择相等的P和Q字长,以便根据比特长度不能够区别它们,接着计算乘积M:

    M=P*Q                                   (1)

    随机地选择加密匙KE,以便KE和(P-1)(Q-1)是互质数。所以,能够使用满足下列等式的扩展的欧几里得算法来计算解密匙KD:

    KD=KE-1mod((P-1)(Q-1))---(2)]]>

    数字KD和M也可以是互质数。这些数字(KE和M)可以是用来对数据加密的加密匙(或公共密匙),以及数字(KD和M)是用来对数据解密的解密匙。在生成密匙后,通过执行下列计算对原始消息进行加密。

    C=TKEmodM---(3)]]>

    其中T是原始消息(明码文本),C是加密的消息(密文)。为了对加密的数据进行解密,进行下列计算:

    T′=CKDmodM---(4)]]>

    其中T′是解密地消息。T′应该与原始消息T相同。如所能够知道的,执行几个模数乘法。

    在一些加密系统中,通常,多于512比特的长的字长常用来满足安全的需要。然而,长的字长限止了快速执行,要求增加计算速度。为了计算的速度,快指数计算变得愈加重要。存在几种方法,例如,H-算法、L-算法等,这些方法能够用来加速指数计算。一种这样的算法是蒙哥马利模数乘法算法,其能够在高执行指数计算算法中用作核心运算。蒙哥马利模数乘法算法也提高了加密和解密运算的效率。

    提供蒙哥马利模数乘法算法来计算结果的n位数:

    R=A*B*r-1modM,  (其中,基数r=2n)      (5)

    在模数指数算法中要求,其中A、B和M分别是被乘数、乘数以及模数,并且每个具有n位。示例的基数2蒙哥马利迭代模数乘法算法是:

    S0=0;

    for(I=0;I<N;I++){

    qI=(SI+bIA)mod2;

    SI+1=(SI+bIA+qIM)/2;}

    if(SN>=M)SN=SN-M;

    其中bIA(=PPI)是部分乘积;qIM(=MMI)是模数倍数,其使(SI+PPI)的一个最低位(LSB)成为零(0)值;N是模数M的位长;SI是先前周期的部分累加结果;SI+1是具有N位的当前周期的部分累加结果;以及SN是最终计算结果。示例的基数4蒙哥马利迭代模数乘法算法是:

    S0=0;

    for(I=0;I<N;I++){

    qI=(((SI+bIA)mod4)*M′)mod4;

    SI+1=(SI+bIA+qIM)/4;}

    if(SN>=M)SN=SN-M;

    其中N=n/2。基数2和基数4的过程是生成迭代数据的迭代过程;该数据的值随着在I=0;I<N;I++循环内的迭代而变化。模数的运算速度影响系统性能。所以,如果位长非常长,则系统性能下降。为了计算MMI(=qIM),首先计算PPI=(bIA),然后相加所计算的PPI和SI。所以,由于累加器执行两次逻辑计算,因此增加了功耗。

    图1示出了传统的蒙哥马利模数乘法算法的硬件实现,其利用两个进位传送加法器91和92(其后缩写为CPA)。第一个CPA 91用作乘法运算,其接收先前的计算结果和从与逻辑电路93输出的ai和B进行与运算的结果,该与逻辑电路93接收ai和B。第二个CPA 92用于模数运算,其接收第一个CPA 91的输出结果和来自与逻辑电路94的qi和N与运算的结果。使用移位器95使CPA 92的输出向右移1位,以便将输出结果除2,从而生成一次迭代的计算结果。

    为了完成512位蒙哥马利模数乘法,要进行512次迭代,则花费高的时间代价。结果,512位RSA加密/解密的速度仍然低于当前网络传输带宽的速度。

    蒙哥马利模数乘法可能是耗时的并影响在包括密码计算器件的数字设备中的运算。为了生产高性能的数字设备,提高模数运算的速度通常是必要的。

    除了速度,另外所关注的是功耗。期望较低的功耗,例如,在智能卡和移动产品中,低功耗尤为重要。智能卡和移动产品使用密码计算器件来使数据安全,并且提高器件的效率能够改善这些器件的功耗特性。附加计算的器件消耗许多功率,并且大部分功率是由模数乘法消耗的。尤其,当位长增加时,模数运算中要求更多的功率。

    【发明内容】

    本发明的示例性实施例提供了通过使用流水线型寄存器和/或处理数据到达累加器的时间来加速蒙哥马利模数乘法的速度和/或减小了功耗的方法。

    在本发明的实施例中,流水线型方法能够用在蒙哥马利乘法器的布期重编码器中来加快蒙哥马利模数乘法的速度。

    在本发明的实施例中,在累加器上第I次迭代的部分乘积(PPI)的到达和第I次迭代的模数倍数(MMI)几乎同时到达,蒙哥马利模数乘法中有助于减小功耗,从而,减少了加法器的计算运算。

    在本发明的实施例中,反馈寄存器的使用减少了多路复用运算的数量。如果选择当前迭代的部分乘积PPI或模数倍数MMI值为“0”,其中“0”意味着该值不必进行相加,在没有多路复用运算的情况下使用先前迭代的值。从而,没有必要进行多路复用运算(其中多路复用运算数量是大于“n”)。

    在本发明的实施例中,减小了平均汉明间距,其中汉明间距是相同的位位置的不同值的数量。从而,较少的位变化能够导致减少输出端的加载。

    其后所提供的详细说明将使本发明的实施例的进一步可应用的范围变得明显。应该理解详细的说明和特定的示例,同时表示本发明的示例性实施例仅确定为说明的目的并不意味着限制本发明的范围。

    【附图说明】

    根据详细的说明和附图,本发明的实施例将变得完全可理解。

    图1是蒙哥马利模数乘法算法的背景技术硬件实现的图解;

    图2是本发明的示例性实施例的模数乘法器的图解;

    图3是本发明的示例性实施例中说明模数MMI的倍数的选择标准的表格;

    图4是本发明的示例性实施例中说明部分乘积PPI的选择标准的表格;

    图5是本发明的示例性实施例中基数2模数乘法器的图解。

    【具体实施方式】

    下列示例性实施例的说明实际上仅仅是说明性的,并不意味着限制本发明、它的应用或使用。

    图2是本发明示例性实施例的模数乘法器1000的图解。乘法器1000能够包括存储在寄存器1中的模数(M)、存储在寄存器3中的被乘数(A)、存储在寄存器7中的乘数(B)、布期处理器301、模数处理器300、辅助模数倍数MMI计算的多路复用器(MUX)10、辅助部分乘积PPI计算的MUX 20、以及辅助模数乘法计算的累加器100。累加器100输入部分乘积值PPI和模数倍数值MMI,并且产生用于蒙哥马利乘法器的结果。在本发明的示例性实施例中,正值M能够有n位(M[n-1:0])。正或负值A能够有n+1位(A[n:0]),一位用于符号位。结果,B能够是正或负。因此,如果n是偶数,则B具有n+2位,两位是符号位,或者,如果n是奇数,则B具有n+1位,一位是符号位。

    在本发明的实施例中,寄存器1提供模数M和M,其中M是M的补码。同样,寄存器3提供被乘数A和A,其中A是A的补码。

    如等式(5)所示,乘法器1000在迭代过程中对模数乘法求解。模数处理器300和多路复用器10用来选择模数倍数(MMI)值。为了选择MMI值,模数处理器300从累加器100接收迭代数据。迭代数据SPPI[1:0]是累加器的总记录中的值的两个LSB(SI[1:0])和部分乘积值的两个LSB(PPI[1:0])的组合。SI[1:0]和PPI[1:0]在2位加法器40中进行组合以形成SPPI[1:0]。除了SPPI[1:0],模数处理器300输入模数的第二个有效位M[1]。模数处理器300使用SPPI[1:0]和M[1]来产生输出信号,该输出信号确定模数倍数MMI值的选择。在本发明的另一示例性实施例中,SPPI值能够是多于两个值和/或位数的倍数的组合,此处所给的示例应当不限制本发明的范围。

    模数处理器300能够输出倍数信号(例如,模数倍数选择信号SEL_MM[1:0]、模数倍数使能信号EN_MM、非模数倍数信号NEG_MM,...)。在本发明的示例性实施例中,模数处理器300向多路复用器10输出SEL_MM[1:0],该多路复用器10使用SEL_MM[1:0]的值来选择MMI的值(例如,2M、M、0、-M,...)。多路复用器(MUX)10输入模数M和模数倍数选择信号的两个LSB_SEL_MM[1:0],并且输出MMI值。非模数倍数信号NEG_MM和MMI在累加器100组合,其中NEG_MM用来表示位倒置,获得-M的MMI值。

    每个MUX运算消耗功率和能量,因此,当使用新的SEL_MM[1:0]值时,执行MUX运算以改变设置并选择MMI值。在不改变设置中使用先前的SEL_MM[1:0]结果值,因此不进行MUX运算。在MMI的选择中减少必要的MUX运算的数量将降低乘法器1000的整个功耗。

    在本发明的示例性实施例中,模数处理器300还包括模数倍数反馈寄存器61和模数重编码器70。反馈寄存器61存储先前迭代的SEL_MM[1:0]值作为SEL_MM_D[1:0]值。当期望值MMI=0的时,模数处理器300输出值为0的模数倍数使能信号EN_MM。该信号EN_MM输入到与门31。与门31输入多路复用器10的输出,该多路复用器10使用模数倍数选择信号SEL_MM[1:0]的先前值,从而不使用MUX运算,并且与门31输出MMI=0的值。没有MUX运算的MMI=0的安排降低了乘法器1000的功耗。在图3中示出了类似于上述的编码方案。

    图3图解说明了根据本发明的示例性实施例的编码方案。尽管图3示出了到模数重编码器70的三个输入,本发明根据设计标准存在多种输入和输出,例如,图2示出附加的输入SEL_MM_D[1:0]。图3中的编码方案图解说明了对于EN_MM=0的值,所选择的MMI值是0,并且SEL_MM[1:0]的值=SEL_MM_D[1:0]。

    在本发明的另一示例性实施例中,能够使用具有布期处理器301的降低功率的类似方法。如以上提到的,乘法器1000在迭代过程中对模数乘法求解,该求解包括向累加器100提供MMI和部分乘积值(PPI)。布期处理器301和多路复用器20被用来选择部分乘积(PPI)值(例如,0、A、2A、-2A、-A...)以提供给累加器100。布期处理器301输入两个被乘数(A[1:0])的LSB、两个乘数(B[1]和B[0])以及B[r]的LSB,B[1]的先前迭代值。

    为了选择PPI值,布期处理器301向多路复用器20输出部分乘积选择信号SEL_PP[1:0]。多路复用器20接收被乘数(A)的值和SEL_PP[1:0],并且向与门32输出值。与门32接收来自复用器20的输入和来自布期处理器301的部分乘积使能信号EN_PP。然后,与门32输出所选择的部分乘积值(PPI),将该PPI提供给累加器100。

    类似于以上讨论的过程,布期处理器301可以包括布期重编码器80和部分乘积反馈寄存器64。PPI的0值能够在部分乘积反馈寄存器64中通过存储SEL_PP_D[1:0](先前的SEL_PP[1:0]的值)来选择。当期望PPI=0的值,布期处理器301输出具有0值的的部分乘积使能信号EN_PP。该信号EN_PP输入到与门32。与门32将多路复用器20的输出作为输入,多路复用器20使用模数倍数选择信号SEL_PP_D[1:0]的先前值,此处,不使用MUX运算,以及与门32输出PPI=0的值。没有MUX运算的PPI=0的安排降低了乘法器1000的功耗。图4中示出了类似于上述的编码方案。

    图4图解说明了根据本发明的示例性实施例的编码方案。尽管图4中示出了对布期重编码器70的三个输入,本发明能根据涉及标准而有各种输入和输出,例如图2示出的附加输入SEL_PP_D[1:0]和A[1:0]。图4中的编码方案图解说明了对于EN_PP=0的值,所选择的PPI的值是0,以及SEL_PP[1:0]=SEL_PP_D[1:0]的值。

    此外,在本发明的示例性实施例中,在图4中图解说明的编码方案的示例减少了平均汉明间距。汉明间距是相同位的位置的不同值的数量。例如,如果在第(I-1)次迭代中SEL_PP[1:0]对应于PPI的“A”值具有值“00”,则在第I次迭代中SEL_PP[1:0]对应于PPI的“2A”值具有值“11”,导致二(2)的汉明间距。减少两个值间的汉明间距是所期望的,从而降低了位倒置的数量和计算功率的使用。通过选择编码方案,其中如果先前的迭代PPI值是A或2A,则随后的迭代PPI值受限制,并不可能是2A;如果先前的迭代PPI值是-A或-2A,则随后的迭代PPI值受限制,不不可能是-2A。图4图解说明了不同的编码方案的位值,然而,本发明的示例性实施例的编码方案应该不限于图4中所示的位模式。例如,对于“A”的PPI的值能够对应于SEL_PP[1:0]的值10,而不是所示的00。

    如上讨论的PPI值的选择,类似的汉明间距编码方案能够应用于MMI值的选择。

    尽管图2图解说明了4∶1多路复用器的使用,本发明的示例性实施例不限于特定的多路复用器的比率值。

    在传统迭代中,模数处理器300和布期处理器301依次运行。然而,布期处理器301独立于多路复用器1000的求解的迭代特性。在本发明的示例性实施例中,布期处理器301提供部分乘积的两个LSB(PPI[1:0]),将该两个LSB加到由累加器100提供的先前迭代的累加的结果(SI[1:0]),产生SPPI[1:0]。在其他示例性实施例中,能够使用不同的位和位数来产生SPPI。由模数处理器使用值SPPI[1:0],同时寄存器7(存储B的值)向右移两位。在对寄存器7移位后,不依赖于模数处理器300的活动,将B[1]、B[0]和B[r]的新值输入到布期处理器301。从而,能够运算布期处理器301的同时运算模数处理器300。流水线型寄存器210将布期处理器(301)输出的SEL_PP[1:0]、EN_PP、NEG_PP和PPI[1:0]分别存储在子寄存器64-67中。流水线型寄存器通过减少关键路径的长度来提高乘法器的硬件性能。可以重复上述步骤,直到B[1]是乘数B的最高位。布期处理器301和模数处理器300的同时运算增加了整个乘法器1000的计算速度。

    如上面所讨论的,乘法器1000输入模数倍数MMI和部分乘积PPI。通常,首先将PPI输入到累加器100,然后将MMI输入到累加器100。为了计算MMI,首先进行计算PPI的第一逻辑运算,然后进行组合PPI和SI的第二逻辑运算,接着由模数处理器计算SEL_MM[1:0]和EN_MM的如上所述的第三逻辑运算。不在相同的时间输入两个值MMI和PPPI,这是由于每个值行进于不同的路径。所以,由于累加器执行逻辑运算两次,因而增加了功耗。如果两个值MMI和PPI同时或几乎同时到达累加器100,则功耗能够减少。

    在本发明的示例性实施例中,可以提供同步寄存器,用来对到累加器的PPI和MMI的到达时间进行同步。如上所述,布期处理器301分布向多路复用器20和与门32提供SEL_PP[1:0]和EN_PP,以便选择部分乘积PPI。同样的,模数处理器300分布向多路复用器10和与门31提供SEL_MM[1:0]和EN_MM,以便选择模数倍数值MMI。在同步寄存器中保存值SEL_PP[1:0]、EN_PP和/或SEL_MM[1:0]和EN_MM允许MMI和PPI的同步。

    在本发明的示例性实施例中,提供模数倍数同步寄存器240和/或部分乘积同步寄存器220。对于乘法器1000中的其他寄存器的时钟相位,同步寄存器220和240使用反向时钟相位。模数倍数同步寄存器240能够在子寄存器62和63中分别存储SEL_MM[1:0]和EN_MM的值。如果使用部分乘积同步寄存器220,则它能够在子寄存器68和69中分别存储SEL_PP[1:0]和EN_PP的值。能够使用一个或两个寄存器,并且此处的讨论不限于针对一个同步寄存器的本发明的示例性实施例。在示例性实施例中,在使用两个同步寄存器时,在子寄存器62和68中分别存储SEL_MM[1:0]和SEL_PP[1:0],同时在子寄存器63和69中分别存储EN_MM[1:0]和EN_PP[1:0]。响应时钟信号CK,分别将SEL_MM[1:0]和SEL_PP[1:0]几乎同时输入到多路复用器10和多路复用器20,同时分别将EN_MM和EN_PP几乎同时输入到与门31和与门32。从而,MMI和PPI同步并被提供到累加器100。因此每个数据集MMI和PPI能够执行一个逻辑运算,正好相反于传统的两个逻辑运算,这样明显地减少了乘法器1000的功耗。

    从而,所讨论的本发明的示例性实施例的变化和组合确定是在本发明的范围之内。

    本发明的示例性实施例不被蒙哥马利乘法的基数所限制;本发明的示例性实施例能够在基于乘法器的各种基数中应用。例如,图5图解说明了具有模数倍数同步寄存器36和/或另一个同步寄存器37的基数2的系统,用于存储乘法器的值(B)。如上面所讨论的,同步寄存器36和37能够几乎同时用来向累加器200提供减小乘法器2000的功耗和提高乘法器2000的速度的MMI和PPI的值。本发明的其他示例性实施例能够使用一个或两个同步寄存器。

    本发明的说明实际上仅仅是示例性的,从而,不偏离本发明的要点的变化确定是在本发明的实施例的范围之内。这样的变化不认为是偏离了本发明的精神和范围。例如,多路复用器10和20能够具有各种比率值。模数倍数同步子寄存器62能够起到作为模数倍数反馈寄存器而不具有附加的独立的模数倍数反馈寄存器230的双重目的的作用。同样地,部分乘积反馈寄存器64能够起到作为部分乘积同步寄存器220的子寄存器从而不需要子寄存器68和反馈寄存器64的双重作用。在其他变化中,能够不使用诸如流水线型寄存器和/或反馈寄存器的其他寄存器而使用同步寄存器220和240。

蒙哥马利模数乘法器及其方法.pdf_第1页
第1页 / 共22页
蒙哥马利模数乘法器及其方法.pdf_第2页
第2页 / 共22页
蒙哥马利模数乘法器及其方法.pdf_第3页
第3页 / 共22页
点击查看更多>>
资源描述

《蒙哥马利模数乘法器及其方法.pdf》由会员分享,可在线阅读,更多相关《蒙哥马利模数乘法器及其方法.pdf(22页珍藏版)》请在专利查询网上搜索。

一种对执行模数乘法的蒙哥马利模数乘法模块进行降低功率和增加计算速度的方法。编码方案减少了用于选择部分乘积和模数倍数的汉明间距,并且减少了多路复用运算和功耗。同步寄存器对向减少故障和/或提高计算速度的累加器输入的部分乘积和模数倍数值同步。寄存器提供了先前值的存储并减少了需要从多路复用器获取值,并且减少了多路复用器的运算和/或降低了功耗。 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1