一种软硬件结合加速器及其实现方法

文档序号:6440988阅读:518来源:国知局
专利名称:一种软硬件结合加速器及其实现方法
技术领域
本发明涉及计算方法的实现领域,尤其是一种软硬件结合加速器及其实现方法。
背景技术
随着通讯技术的发展,信息的安全问题也越来越重要。如何保证传输的信息安全、 完整和不可抵赖性已经成为传输中需要解决的重要问题。为此出现了各种信息加密、解密技术。RSA公钥加密算法是目前最具影响力的公开密钥算法。RSA公钥加密算法是1977 年由Ron Rivest、Adi Shamir和LenAdleman在美国麻省理工学院开发的,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。RSA算法基于一个十分简单的数论事实将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。RSA算法中包含的数据都是非常大的,越大则越难被破解,一般用二进制表示都有512位,1024位,甚至2048位,这样的数我们称之为大数。 ECC算法也是一种公开密钥算法,具体原理我们不做阐述,其中运算的数据也是大数。还有其他加解密算法等场合,均需要进行大数的运算。一般处理器字长32位、或者64位,远远小于大数的位数,因而无法直接进行大数的直接计算。大数由于位数多,导致大数计算的运算量非常大,采用软件实现大数运算(图 1)成本低廉但是由于运算量大,速度慢,性能低,对处理器要求高,在某些场合(例如嵌入式应用)是无法接受的。如果完全硬件实现,采用硬件实现大数运算(图2、速度可以很快, 性能高,但是需要的硬件资源较多,即成本会比较高。在进行大数运算的处理器上本身就会有一定的硬件资源,如乘法器、高速RAM 等。软件实现大数运算实际上就是调用了处理器现有的资源进行运算。通过软件调用,同一时刻只能有某个特定硬件资源工作,不能做到几个硬件资源同时工作,例如某个时刻仅运行乘法器做乘法运算,某个时刻仅读取RAM……这样,处理器硬件资源由于不能并行工作而无法发挥到最大的性能。根据大数运算的需要,和处理器原有硬件资源的特点,通过修改处理器,增加辅助逻辑的方法,让大数计算时,处理器的硬件资源发挥最大性能。这样仅添加少量硬件、增加少量成本,即可显著提高大数计算性能,从而达到最佳的性价比。

发明内容
本发明的目的正是要解决上述技术存在的不足,而提供一种软硬件结合加速器及其实现方法,采用软硬件结合方法实现大数的乘、除运算,仅增加少量成本就能达到较高的性能,可以达到成本性能之间的平衡。本发明解决其技术问题采用的技术方案这种软硬件结合加速器,在处理器上增加连接有大数乘法加速器,大数乘法加速器中增加硬件逻辑从高速RAM将数据装载入单周期乘法器,增加硬件逻辑将乘法结果和目标高速RAM中数据相加,再输出到目标高速RAM 中。
本发明所述的软硬件结合加速器的实现方法,具体如下
(1)、长度η的大数A{A[n-l]……A[2]A[1]A
},长度m的大数B{B[m_l]…… B[2]B[1]B
}相乘。将大数B中B
和大数A相乘,得到长度n+1的中间结果大数{C[η]
……C [2]
C [1]
C

},重复上述过程,将B [1]、Β [2]……B [m_l],分别和大数A 相乘,总计得到m个中间结果大数;最终将这些中间结果分别左移,相加,最终得到一个长度m+n的结果大数;
O)、大数乘法加速器中增加硬件逻辑从高速RAM将数据装载入单周期乘法器,增加硬件逻辑将乘法结果和目标高速RAM中数据相加,再输出到目标高速RAM中;
(3)、在单周期乘法器运行时,读取下一次乘法运算数据,同时读取目标RAM数据, 每次运算平均需要乘法1个周期,加法和写回目标RAM数据1个周期,每次2个周期。
所述的单周期乘法器,在单周期内完成一个32bit*32bit的乘法,但是结果输出需要2个周期;所述的高速RAM,在单周期内完成一次读操作,或者一次写操作。
本发明有益的效果是本发明中提出了一种软硬件结合实现大数计算的方法。在充分利用处理器现有硬件资源的基础上,仅增加少量硬件资源,处理大数计算最耗时部分, 其他部分由软件完成。这样在成本仅略有增加的情况下,大幅提高大数计算的速度,从而达到了成本和性能上的平衡。从而适合嵌入式、对成本要求比较严格的场合使用。


图1为软件方式进行大数运算的示意图
图2为硬件方式进行大数运算的示意图
图3为本发明进行大数运算的示意图4为大数乘法原理示意图5为n*l大数乘法原理示意图6为n*l大数乘法加速器工作示意图
图7为10进制乘法示意图8为现有技术的处理器结构;
图9为本发明的处理器结构。
具体实施方式
下面结合附图和实施例对本发明作进一步说明
一个大数乘法加速器实现的例子
1、大数乘法计算原理
总所周知普通10进制乘法我们可以采用竖式乘法(图7),大数乘法计算方法的原理和普通10进制乘法原理一致,也可以采用竖式乘法的方式(图4);
如大数A有η个32bit,则称大数A长度n,长度η的大数A{Α[η_1]……Α[2]Α[1] A
},长度m的大数B {B [m-1]……B [2] B [1] B W]}相乘。将大数B中_和大数A相乘, 得到长度n+1的中间结果大数{C[η]
……C[2]
C[1]
C

},重复上述过程,将 B[1]、B[2]……B [m-1],分别和大数A相乘,总计得到m个中间结果大数。最终将这些中间结果分别左移,相加,最终得到一个长度m+n的结果大数。
2、实际处理器拥有资源1)单周期乘法器,可在单周期内完成一个32bit*32bit的乘法,但是结果输出需要2个周期。2)高速RAM,可在单周期内完成一次读操作,或者一次写操作。3、计算量分析如果m和η均为32,处理器字长为32bit,上述计算,总计大约需要IOM次乘法, 2080次加法,每次运算需要输入2个数据,耗时2个周期、保存1个数据,耗时1个周期,每次乘法运算完成得到结果需要2个周期,每次乘法运算需要1个周期,每次加法运算需要1 个周期,这样最少需要10 * (2+1+2+1)+2080* 0+1+1) = 14464个周期。4、大数乘法加速器设计原理处理器乘法运算速度很快只需要1个周期,但是乘法结果输出却需要2个周期,每次乘法、加法进行输入输入需要1个周期,输出数据需要1个周期,实际运算外消耗时间比运算时间还要多。这样设计大数乘法加速器增加硬件逻辑自动从高速RAM将数据装载入单周期乘法器。增加硬件逻辑自动将乘法结果和目标高速RAM中数据相加,再输出到目标高速RAM 中。(图8、图9)在乘法器运行时,可以读取下一次乘法运算数据,同时读取目标RAM数据,这样每次运算平均仅需要乘法1个周期,加法和写回目标RAM数据1个周期,每次2个周期。这样 m和η均为32bit,一次大数乘法大约要32*32*2 = 2048个周期。仅为软件计算理论周期数的14. 16%,计算速度大为提升。下面演示长度η的乘数A和长度1的乘数B相乘,加速器具体工作方式记长度η的乘数Α,每32bit数据为A W]、A[l]、A[2]……A[n_l],长度1的乘数 B,数据为B
。A放置在高速RAM地址A中,B放置在高速RAM地址B中,相乘结果C,长度为(n+1),每32bit数据为C
、C[l]、C[2]……C[η]放置在高速RAM地址C中。如图6,第3个周期得到结果以0],第5个周期得到结果C[l],第7个周期将得到 C[2]……5、大数乘法加速器优点分析1)充分利用了 CPU的原有资源,单周期32bit乘法器、高速RAM,仅增加了 3个 RAM读取逻辑,1个RAM写入逻辑,1个加法逻辑,需要的硬件资源非常少。总所周知,单周期32bit乘法器、高速RAM需要的硬件资源是远大于加法逻辑和读写逻辑的。最终该加速器设计仅使用5千门左右,而硬件方式实现需要8万门左右。2)对CPU改动比较少,仅添加一些新的控制逻辑,不影响CPU原有逻辑的使用。通过分析,找到大数运算最耗时部分。添加辅助硬件逻辑,充分利用处理器已有硬件资源,将该最耗时部分运算实现,从而大幅度提高大数运算性能。同时成本仅略微增加。除上述实施例外,本发明还可以有其他实施方式。凡采用等同替换或等效变换形成的技术方案,均落在本发明要求的保护范围。
权利要求
1.一种软硬件结合加速器,其特征在于在处理器上增加连接有大数乘法加速器,大数乘法加速器中增加硬件逻辑从高速RAM将数据装载入单周期乘法器,增加硬件逻辑将乘法结果和目标高速RAM中数据相加,再输出到目标高速RAM中。
2.一种采用如权利要求1所述的软硬件结合加速器的实现方法,其特征在于(1)、长度η的大数A{A[n-l]……A[2]A[1]A
},长度m的大数B{B[m_l]……B[2]B[1] B
}相乘。
3.将大数B中B
和大数A相乘,得到长度n+1的中间结果大数{C[η]
……C[2]
C[1]
C

},重复上述过程,将B[1]、B[2]……B[m_l],分别和大数A相乘,总计得到m个中间结果大数;最终将这些中间结果分别左移,相加,最终得到一个长度m+n的结果大数;(2)、大数乘法加速器中增加硬件逻辑从高速RAM将数据装载入单周期乘法器,增加硬件逻辑将乘法结果和目标高速RAM中数据相加,再输出到目标高速RAM中;(3 )、在单周期乘法器运行时,读取下一次乘法运算数据,同时读取目标RAM数据,每次运算平均需要乘法1个周期,加法和写回目标RAM数据1个周期,每次2个周期。
4.根据权利要求1所述的软硬件结合加速器的实现方法,其特征在于所述的单周期乘法器,在单周期内完成一个32bit*32bit的乘法,但是结果输出需要2个周期;所述的高速RAM,在单周期内完成一次读操作,或者一次写操作。
全文摘要
本发明涉及一种软硬件结合加速器及其实现方法,在处理器上增加连接有大数乘法加速器,大数乘法加速器中增加硬件逻辑从高速RAM将数据装载入单周期乘法器,增加硬件逻辑将乘法结果和目标高速RAM中数据相加,再输出到目标高速RAM中。在单周期乘法器运行时,读取下一次乘法运算数据,同时读取目标RAM数据,每次运算平均需要乘法1个周期,加法和写回目标RAM数据1个周期,每次2个周期。本发明有益的效果是在充分利用处理器现有硬件资源的基础上,仅增加少量硬件资源,处理大数计算最耗时部分,其他部分由软件完成。这样在成本仅略有增加的情况下,大幅提高大数计算的速度,从而达到了成本和性能上的平衡。
文档编号G06F7/575GK102520907SQ20111041406
公开日2012年6月27日 申请日期2011年12月13日 优先权日2011年12月13日
发明者徐功益, 杨波, 贺晓明, 邱柏云 申请人:杭州晟元芯片技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1