[發明專利]一種軟硬件結合加速器及其實現方法無效
| 申請號: | 201110414065.7 | 申請日: | 2011-12-13 |
| 公開(公告)號: | CN102520907A | 公開(公告)日: | 2012-06-27 |
| 發明(設計)人: | 楊波;徐功益;邱柏云;賀曉明 | 申請(專利權)人: | 杭州晟元芯片技術有限公司 |
| 主分類號: | G06F7/575 | 分類號: | G06F7/575 |
| 代理公司: | 杭州九洲專利事務所有限公司 33101 | 代理人: | 陳繼亮 |
| 地址: | 310012 浙江省杭州*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 軟硬件 結合 加速器 及其 實現 方法 | ||
技術領域
本發明涉及計算方法的實現領域,尤其是一種軟硬件結合加速器及其實現方法。
背景技術
隨著通訊技術的發展,信息的安全問題也越來越重要。如何保證傳輸的信息安全、完整和不可抵賴性已經成為傳輸中需要解決的重要問題。為此出現了各種信息加密、解密技術。
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)、長度n的大數A{A[n-1]……A[2]A[1]A[0]},長度m的大數B{B[m-1]……B[2]B[1]B[0]}相乘。將大數B中B[0]和大數A相乘,得到長度n+1的中間結果大數{C[n][0]……C[2][0]C[1][0]C[0][0]},重復上述過程,將B[1]、B[2]……B[m-1],分別和大數A相乘,總計得到m個中間結果大數;最終將這些中間結果分別左移,相加,最終得到一個長度m+n的結果大數;
(2)、大數乘法加速器中增加硬件邏輯從高速RAM將數據裝載入單周期乘法器,增加硬件邏輯將乘法結果和目標高速RAM中數據相加,再輸出到目標高速RAM中;
(3)、在單周期乘法器運行時,讀取下一次乘法運算數據,同時讀取目標RAM數據,每次運算平均需要乘法1個周期,加法和寫回目標RAM數據1個周期,每次2個周期。
所述的單周期乘法器,在單周期內完成一個32bit*32bit的乘法,但是結果輸出需要2個周期;所述的高速RAM,在單周期內完成一次讀操作,或者一次寫操作。
本發明有益的效果是:本發明中提出了一種軟硬件結合實現大數計算的方法。在充分利用處理器現有硬件資源的基礎上,僅增加少量硬件資源,處理大數計算最耗時部分,其他部分由軟件完成。這樣在成本僅略有增加的情況下,大幅提高大數計算的速度,從而達到了成本和性能上的平衡。從而適合嵌入式、對成本要求比較嚴格的場合使用。
附圖說明
圖1為軟件方式進行大數運算的示意圖;
圖2為硬件方式進行大數運算的示意圖;
圖3為本發明進行大數運算的示意圖;
圖4為大數乘法原理示意圖;
圖5為n*1大數乘法原理示意圖;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于杭州晟元芯片技術有限公司,未經杭州晟元芯片技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110414065.7/2.html,轉載請聲明來源鉆瓜專利網。





