国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于密碼雜湊算法的壓縮方法及裝置與流程

      文檔序號:12375518閱讀:262來源:國知局
      一種基于密碼雜湊算法的壓縮方法及裝置與流程
      本發(fā)明涉及通信
      技術領域
      ,尤其涉及一種基于密碼雜湊算法的壓縮方法及裝置。
      背景技術
      :隨著信息技術和計算機技術的發(fā)展和廣泛應用,人們對信息數據的可信度要求也越來越高。在高速密碼芯片中,密碼雜湊算法(CryptographicHashAlgorithm,縮寫:SM3)密碼雜湊算法已經越來越多的用于商用密碼應用中的數字簽名和驗證、消息認證碼的生成與驗證以及隨機數的生成。SM3密碼雜湊算法是國家密碼管理局于2010年12月公布的一種國產密碼算法。SM3密碼雜湊算法適用于商用密碼應用中的數字簽名和認證、消息認證碼的生成與驗證以及隨機數的生成,可以滿足多種密碼應用的安全需求,同時還可為安全產品生產商提供產品和技術的標準定位以及標準化的參考,提高安全產品的可信性與互操作性。目前,SM3算法分為消息填充、迭代壓縮和雜湊值三步。圖1為現有的單周期SM3算法的壓縮步驟的結構示意圖,請參閱圖1,j為待壓縮字的序號,范圍是0~15,Wj為待壓縮的字,A-H為變量字,tj為常量,Wcj為擴展后的字。在每一周期中,通過布爾函數、壓縮函數、加法器以及移位,來實現對A-H字寄存器中值的壓縮。但是,這種電路結構造成電路的關鍵路徑比較長,在當前的壓縮輪數中,壓縮A或E的關鍵路徑需要經過三個加法器,由于加法器的時延較大,會導致電路的時鐘頻率和吞吐率較低。公開于該
      背景技術
      部分的信息僅僅旨在增加對本發(fā)明的總體背景的理解,而不應當被視為承認或以任何形式暗示該信息構成已為本領域一般技術人員所公知的現有技術。技術實現要素:有鑒于此,本發(fā)明要解決的技術問題是,如何提供一種高吞吐率的基于密碼雜湊算法的壓縮方法及裝置。為解決以上技術問題,本發(fā)明在第一方面提供一種基于密碼雜湊算法的壓縮方法,包括:獲取各變量字的初值,所述初值為上一周期各變量字的壓縮結果或各變量字的初始值,所述變量字包括:第一變量字、第二變量字、第三變量字、第四變量字;獲取預計算擴展字,其中,所述預計算擴展字為擴展字與所述第四變量字初值的和;對所述第一變量字、所述第二變量字、所述第三變量字的初值進行布爾函數處理;將所述預計算擴展字、所述第一變量字的初值、補償結果以及布爾函數處理后的結果進行壓縮加和處理,其中,所述補償結果為進行預設位數移位后的常數與預設的補償值的和;對所述壓縮加和處理后的結果進行選擇;對所述選擇后的加和處理后結果進行置換運算,得到當前周期的所述第一變量字的壓縮結果。在一種可能的實現方式中,所述變量字還包括:第五變量字;所述將所述預計算擴展字、所述字寄存器初值、補償結果以及布爾函數處理后的結果進行壓縮加和處理,包括:獲取所述第五變量字的初值,對所述第五變量字的初值進行預設位數的移位;將所述移位后的第五變量字的初值、所述預計算擴展字、所述第一變量字初值、所述補償結果以及所述布爾函數處理后的結果,進行三次壓縮處理;對所述三次壓縮處理后的結果進行加和。在一種可能的實現方式中,所述對所述壓縮加和處理后的結果進行選擇,包括:獲取所述移位后的第五變量字的初值;將所述移位后的第五變量字的初值、所述第一變量字的初值和所述移位后的常數進行壓縮處理;將所述壓縮處理后的結果加和,并記錄第一加法器的進位輸出位作為第一控制位;將所述壓縮處理后的結果進行預設位數的移位,對移位后的結果進行加和,并記錄第二加法器的進位輸出位作為第二控制位,根據所述第一控制位和所述第二控制位,對所述壓縮加和處理后的結果進行選擇。在一種可能的實現方式中,所述補償值包括第一補償值、第二補償值、第三補償值和第四補償值;所述補償結果包括第一補償結果、第二補償結果、第三補償結果、第四補償結果;所述第一補償結果為所述第一補償值與所述移位后的常數的和;所述第二補償結果為所述第二補償值與所述移位后的常數的和;所述第三補償結果為所述第三補償值與所述移位后的常數的和;和所述第四補償結果為所述第四補償值與所述移位后的常數的和。在一種可能的實現方式中,所述根據所述第一控制位和所述第二控制位,對所述壓縮加和處理后的結果進行選擇包括:建立所述第一控制位、所述第二控制位與所述第一補償結果、所述第二補償結果、所述第三補償結果、所述第四補償結果之間的對應關系;根據所述第一控制位、所述第二控制位以及所述對應關系,選擇所述壓縮加和處理后的結果。本發(fā)明在第二方面提供一種基于密碼雜湊算法的壓縮裝置,包括:獲取模塊,用于獲取各變量字的初值,所述初值為上一周期各變量字的壓縮結果或各變量字的初始值,所述變量字包括:第一變量字、第二變量字、第三變量字、第四變量字;所述獲取模塊,還用于獲取預計算擴展字,其中,所述預計算擴展字為擴展字與所述第四變量字初值的和;布爾函數處理模塊,用于對所述第一變量字、所述第二變量字、所述第三變量字的初值進行布爾函數處理;壓縮加和處理模塊,用于將所述預計算擴展字、所述第一變量字的初值、補償結果以及布爾函數處理后的結果進行壓縮加和處理,其中,所述補償結果為進行預設位數移位后的常數與預設的補償值的和;選擇模塊,用于對所述壓縮加和處理后的結果進行選擇;置換運算模塊,用于對所述選擇后的加和處理后結果進行置換運算,得到當前周期的所述第一變量字的壓縮結果。在一種可能的實現方式中,所述獲取模塊中的變量字還包括:第五變量字;所述壓縮加和處理模塊,用于獲取所述第五變量字的初值,對所述第五變量字的初值進行預設位數的移位;將所述移位后的第五變量字的初值、所述預計算擴展字、所述第一變量字初值、所述補償結果以及所述布爾函數處理后的結果,進行三次壓縮處理;對所述三次壓縮處理后的結果進行加和。在一種可能的實現方式中,所述選擇模塊用于:獲取所述移位后的第五變量字的初值;將所述移位后的第五變量字的初值、所述第一變量字的初值和所述移位后的常數進行壓縮處理;將所述壓縮處理后的結果加和,并記錄第一加法器的進位輸出位作為第一控制位;將所述壓縮處理后的結果進行預設位數的移位,對移位后的結果進行加和,并記錄第二加法器的進位輸出位作為第二控制位,根據所述第一控制位和所述第二控制位,對所述壓縮加和處理后的結果進行選擇。在一種可能的實現方式中,所述壓縮加和處理模塊中的所述補償值包括第一補償值、第二補償值、第三補償值和第四補償值;所述補償結果包括第一補償結果、第二補償結果、第三補償結果、第四補償結果;所述第一補償結果為所述第一補償值與所述移位后的常數的和;所述第二補償結果為所述第二補償值與所述移位后的常數的和;所述第三補償結果為所述第三補償值與所述移位后的常數的和;和所述第四補償結果為所述第四補償值與所述移位后的常數的和。在一種可能的實現方式中,所述選擇模塊用于:建立所述第一控制位、所述第二控制位與所述第一補償結果、所述第二補償結果、所述第三補償結果、所述第四補償結果之間的對應關系;根據所述第一控制位、所述第二控制位以及所述對應關系,選擇所述壓縮加和處理后的結果。本發(fā)明提供的基于密碼雜湊算法的壓縮方法及裝置,通過將預計算擴展字、第一變量字的初值、補償結果以及布爾函數處理后的結果進行壓縮加和處理并選擇與本輪壓縮中對應的壓縮加和處理后的結果,可以縮短密碼雜湊算法的關鍵路徑,降低關鍵路徑時延,提高電路的吞吐率。根據下面參考附圖對示例性實施例的詳細說明,本發(fā)明的其它特征及方面將變得清楚。附圖說明包含在說明書中并且構成說明書的一部分的附圖與說明書一起示出了本發(fā)明的示例性實施例、特征和方面,并且用于解釋本發(fā)明的原理。圖1為現有的單周期SM3算法的壓縮步驟的結構示意圖;圖2為電路級優(yōu)化后的單周期SM3算法的壓縮步驟的結構示意圖;圖3為本發(fā)明實施例一提供的基于密碼雜湊算法的壓縮方法的流程圖;圖4為本發(fā)明實施例一提供的基于密碼雜湊算法的壓縮電路結構示意圖;圖5為本發(fā)明實施例二提供的基于密碼雜湊算法的壓縮方法的流程圖;圖6為本發(fā)明實施例二提供的基于密碼雜湊算法的壓縮電路結構示意圖;圖7為實現壓縮加和處理的五輸入兩輸出壓縮加法器的結構示意圖;圖8示出本發(fā)明實施例三提供的基于密碼雜湊算法的壓縮裝置的結構示意圖。具體實施方式下面結合附圖,對本發(fā)明的具體實施方式進行詳細描述,但應當理解本發(fā)明的保護范圍并不受具體實施方式的限制。為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。除非另有其它明確表示,否則在整個說明書和權利要求書中,術語“包括”或其變換如“包含”或“包括有”等等將被理解為包括所陳述的元件或組成部分,而并未排除其它元件或其它組成部分。在這里專用的詞“示例性”意為“用作例子、實施例或說明性”。這里作為“示例性”所說明的任何實施例不必解釋為優(yōu)于或好于其它實施例。另外,為了更好的說明本發(fā)明,在下文的具體實施方式中給出了眾多的具體細節(jié)。本領域技術人員應當理解,沒有某些具體細節(jié),本發(fā)明同樣可以實施。在一些實例中,對于本領域技術人員熟知的方法、手段、元件未作詳細描述,以便于凸顯本發(fā)明的主旨。國家密碼管理局公布的SM3密碼雜湊算法中,規(guī)定了SM3的計算方法和計算步驟。SM3密碼雜湊算法分為消息填充、迭代壓縮和雜湊值三步。其中,消息填充是將長度小于264-bit的消息m,填充為長度為512-bit的整倍數的消息塊m’;迭代壓縮是SM3算法的核心,把填充后的消息m’按照固定的512-bit進行分組,得到消息分組B(0)B(1)…B(n-1),然后對每個512-bit分組B(i)逐次壓縮,最終得到整個消息m’的256-bit的雜湊值(hashvalue),其中,n=消息m’的長度/512。迭代壓縮過程包括迭代過程、消息擴展和壓縮函數,其中,消息擴展和壓縮函數的具體算法如下:1、消息擴展將消息分組B(i)按以下方法擴展生成132個字W0;W1;…W67;W’0;W’1;…W’63,用于壓縮函數CF。其中,68個W和64個W’,均是32-bit的字。a)將消息分組B(i)劃分為16個字W0;W1;…W15。b)FORj=16TO67Wj=P1(Wj-16⊕Wj-9⊕(Wj-3<<<15))⊕(Wj-1<<<7)⊕Wj-6]]>ENDFORc)FORj=0TO63W,j=Wj⊕Wj+4]]>ENDFOR2、壓縮函數令A,B,C,D,E,F,G,H為32-bit字寄存器,SS1,SS2,TT1,TT2為32-bit中間變量,壓縮函數Vi+1=CF(V(i),B(i)),0≤i≤n-1。計算消息分組B(i)的雜湊值V(i+1)過程描述如下:ABCDEFGH=V(i);FORj=0TO63;SS1=((A<<<12)+E+(Tj<<<j))<<<7;SS2=SS1⊕(A<<<12);]]>TT1=FFj(A,B,C)+D+SS2+W’j;TT2=GGj(E,F,G)+H+SS1+Wj;D=C;C=B<<<9;B=A;A=TT1;H=G;G=F<<<19;F=E;E=P0(TT2);ENDFOR;V(i+1)=ABCDEFGH⊕V(i);]]>其中,Tj=79cc45190≤j≤157a879d8a16≤j≤63;]]>P0(X)=X⊕(X<<<9)⊕(X<<<17);]]>P1(X)=X⊕(X<<<15)⊕(X<<<23);]]>32比特異或運算;32比特非運算;+:mod232算術加運算;<<<k:循環(huán)左移k比特運算。在上述計算步驟中,可以看出,針對A、E的路徑最長。在實際運算過程中,路徑E的計算時間最長,因此稱為關鍵路徑。本發(fā)明主要針對參數E的計算進行研究,參數A的硬件實現與E基本相同,在此不做贅述。圖2為電路級優(yōu)化后的單周期SM3算法的壓縮步驟的結構示意圖,圖2與圖1相比,是針對參數E的壓縮結構示意圖,使用壓縮器CSA對上一輪中的E和tj進行壓縮,壓縮后通過加法器,減少了一個加法器的時延。由于經過CSA和加法器的結果需要進行移位,因此無法合并下一個加法器。此時,為不改變算法的前提下,單周期最優(yōu)的實現電路。實施例1圖3為本發(fā)明實施例一提供的基于密碼雜湊算法的壓縮方法的流程圖,圖4為本發(fā)明實施例一提供的基于密碼雜湊算法的壓縮電路結構示意圖,如圖3、圖4所示,該方法包括:步驟S1,獲取各變量字的初值,所述初值為上一周期各變量字的壓縮結果或各變量字的初始值,所述變量字包括:第一變量字、第二變量字、第三變量字、第四變量字。具體地,變量字存儲在寄存器中,第一變量字可以對應算法中的E,第二變量字可以對應算法中的F,第三變量字可以對應算法中的G,第四變量字可以對應算法中的H,第五變量字可以對應算法中的A。步驟S2,獲取預計算擴展字,其中預計算擴展字為擴展字與所述第四變量字初值的和。具體地,擴展字對應Wj,預計算擴展字對應Wj+H。其中,可以通過使用預計算,在上一時鐘設置加法器,實現Wj+H運算,并不會增加關鍵路徑的時延,提高工作頻率。Wj的計算方法請參閱SM3算法的消息擴展部分。步驟S3,對所述第一變量字、所述第二變量字、所述第三變量字的初值進行布爾函數處理;具體地,布爾函數的表達式請參閱下式。其中,X,Y,Z分別對應本實施例中的E,F,G。步驟S4,將所述預計算擴展字、所述第一變量字的初值、補償結果以及布爾函數處理后的結果進行壓縮加和處理,其中,所述補償結果為按照預設位數移位后常數與預設的補償值的和。常數對應算法中的Tj,按照預設位數移位后常數對應Tj<<<j,也就是Tj左移j位。Tj計算公式請參閱公式(2)。Tj=9cc45190≤j≤157a879d8a16≤j≤63---(2)]]>步驟S5,對所述壓縮加和處理后的結果進行選擇;具體地,可以通過設置選擇器,對壓縮加和處理后的結果進行選擇。步驟S6,對所述選擇后的加和處理后結果進行置換運算,得到當前周期的所述第一變量字的壓縮結果。置換運算函數為P0,請參閱公式3。其中,X為字,對應步驟6中的對所述選擇后的加和處理后結果。實施例中,通過將預計算擴展字、第一變量字的初值、補償結果以及布爾函數處理后的結果進行壓縮加和處理并選擇與本輪壓縮中對應的壓縮加和處理后的結果,可以縮短密碼雜湊算法的關鍵路徑,降低關鍵路徑時延,提高電路的吞吐率。實施例2圖5為本發(fā)明實施例二提供的基于密碼雜湊算法的壓縮方法的流程圖,圖6為本發(fā)明實施例二提供的基于密碼雜湊算法的壓縮電路結構示意圖,在圖5中與圖3采用相同附圖標記的步驟,均與圖3適用于相同的文字說明,在此不再贅述。本實施例中,變量字還可以包括:第五變量字;步驟S4可以包括:步驟S401,獲取所述第五變量字的初值,對所述第五變量字的初值進行預設位數的移位;第五變量字對應算法中的A變量字。步驟S402,將所述移位后的第五變量字的初值、所述預計算擴展字、所述第一變量字初值、所述補償結果以及所述布爾函數處理后的結果,進行三次壓縮處理;具體地,對第五變量字的初值進行預設位數的移位,可以為,對上一輪的計算結果A或A的初始值,進行左移12位的位移。第一變量字初值為E變量字初值。在一種可能的實現方式中,補償值可以包括第一補償值、第二補償值、第三補償值和第四補償值;補償結果包括第一補償結果、第二補償結果、第三補償結果、第四補償結果;所述第一補償結果為所述第一補償值與所述移位后常數的和;所述第二補償結果為所述第二補償值與所述移位后常數的和;所述第三補償結果為所述第三補償值與所述移位后常數的;和所述第四補償結果為所述第四補償值與所述移位后常數的和。步驟S403,對所述三次壓縮處理后的結果進行加和。其中,本實施例中對實施例一中的壓縮加和處理進行進一步限定,壓縮加和處理中可以包括三次壓縮處理以及一次加和處理。圖7為實現壓縮加和處理的五輸入兩輸出壓縮加法器的結構示意圖。請參閱圖7和圖6,可以通過分別設置與第一補償結果、第二補償結果、第三補償結果、第四補償結果對應的四個壓縮加法器來實現上述步驟。更為具體的,第一壓縮加法器的輸入為移位后的第五變量字的初值、預計算擴展字、第一變量字初值、第一補償結果以及所述布爾函數處理后的結果;第二壓縮加法器的輸入為移位后的第五變量字的初值、預計算擴展字、第一變量字初值、第二補償結果以及所述布爾函數處理后的結果;第三壓縮加法器的輸入為移位后的第五變量字的初值、預計算擴展字、第一變量字初值、第三補償結果以及所述布爾函數處理后的結果;第四壓縮加法器的輸入為移位后的第五變量字的初值、預計算擴展字、第一變量字初值、第四補償結果以及所述布爾函數處理后的結果。由此,通過使用五輸入三輸出的壓縮加法器,五輸入三輸出的壓縮加法器包括三個壓縮器CSA和一個加法器,可以將加法器的數量降為一個,這樣可以將關鍵路徑上的加法器減少,關鍵路徑的縮短可以獲取高速的工作頻率,從而達到高吞吐率的目的。相應的,可以通過以下步驟實現對壓縮加和處理后的結果進行選擇。步驟S5可以包括:步驟S501,獲取所述移位后的第五變量字的初值;步驟S502,將所述移位后的第五變量字的初值、所述第一變量字的初值和所述移位后的常數進行壓縮處理;步驟S503,將所述壓縮處理后的結果加和,并記錄第一加法器的進位輸出位作為第一控制位;具體地,可以通過設置三輸入兩輸出的壓縮器和加法器來實現。將所述移位后的第五變量字的初值、所述第一變量字的初值和所述移位后的常數輸入三輸入兩輸出的壓縮器,將壓縮器的輸出結果輸入第一加法器的輸入端,記錄第一加法器的進位輸出位作為第一控制位。步驟S504,將所述壓縮處理后的結果進行預設位數的移位,對移位后的結果進行加和,并記錄第二加法器的進位輸出位作為第二控制位,具體地,將所述移位后的第五變量字的初值、所述第一變量字的初值和所述移位后的常數輸入三輸入兩輸出的壓縮器后,壓縮器的輸出結果進行預設位數的移位,左移7位,并記錄第二加法器的進位輸出位作為第二控制位。步驟S505,根據所述第一控制位和所述第二控制位,選擇所述壓縮加和處理后的結果。在一種可能的實現方式中,步驟S505可以通過以下方式實現。建立所述第一控制位、所述第二控制位與所述第一補償結果、所述第二補償結果、所述第三補償結果、所述第四補償結果之間的對應關系;根據所述第一控制位、所述第二控制位以及所述對應關系,選擇所述壓縮加和處理后的結果。為了最大化減少關鍵路徑的延時,可以突破算法的限制,即通過改變現有電路中如圖1、圖2,加數加和再移位的算法約束,減少加法器,后續(xù)通過補償運算保證運算功能的正確。由于電路中存在圖2中對CSA和加法器的輸出左移7位的限制,現有的電路無法對預計算擴展字、第一變量字初值、補償結果以及布爾函數處理后的結果先進行壓縮,壓縮后在使用加法器進行加和。而本發(fā)明通過將所有的加數先行相加,經過三次CSA壓縮后,再經過一個加法器得出一個結果。但是由于實際上,移位后相加和移位前相加會存在最高位是否存在溢出的情況。即移位后有進位,移位后無進位,移位前有進位,移位前無進位,四種情況,所以可以將這四種情況分別計算出來,最后再進行統(tǒng)一的選擇。具體地,預設關系可以為:設置當第一控制位和第二控制位為00時,對應第一補償結果,第一補償結果為0。當第一控制位和第二控制位為01時,對應第二補償結果,第二補償結果為FFFFFF80。當第一控制位和第二控制位為10時,對應第三補償結果,第三補償結果為1。當第一控制位和第二控制位為11時,對應第四補償結果,第四補償結果為FFFFFF81。請再次參閱圖6,第一壓縮加法器的輸入端為第一補償結果即移位后的Tj與第一補償值的和、預計算擴展字即wj+H、布爾函數處理后的結果即GGj(E,F,G),第一變量字初值即E以及移位后的第五變量字的初值即A左移12位后的值。第二壓縮加法器、第三壓縮加法器、第四壓縮加法器的輸入端分別為第二補償結果、第三補償結果、第四補償結果,其余四個輸入與第一壓縮加法器的輸入相同,在此不在贅述。選擇器接收上述四個壓縮加法器的輸出結果。將移位后的Tj、移位后的A、E的值通過CSA壓縮,并將壓縮后結果經過加法器加和后得到的進位輸出端作為第一控制位。將移位后的Tj、移位后的A、E的值通過CSA壓縮,壓縮后進行移位,將移位后的壓縮后結果經過加法器加,得到的進位輸出端作為第二控制位。選擇器根據第一控制位和第二控制位的值,可以判斷出移位前后是否存在溢出位,從而實現對壓縮加和結果進行準確選擇。由此,通過將移位后的第五變量字的初值、預計算擴展字、第一變量字初值、所述補償結果以及布爾函數處理后的結果先行通過壓縮加法器進行壓縮加和,根據第一控制位、第二控制位以及預先設定的對應關系,選擇所述壓縮加和處理后的結果。實現了減少關鍵路徑上的加法器各數,提工作頻率,從而提高吞吐率。需要說明的是,本發(fā)明實施例中附圖給出的只是一種實現方式,并不是對本發(fā)明實施例執(zhí)行先后順序進行的限定。實施例3圖8示出本發(fā)明實施例三提供的基于密碼雜湊算法的壓縮裝置的結構示意圖,如圖8所示,該裝置10包括:獲取模塊110、布爾函數處理模塊120、壓縮加和處理模塊130、選擇模塊140、置換運算模塊150。獲取模塊110,用于獲取各變量字的初值,所述初值為上一周期各變量字的壓縮結果或各變量字的初始值,所述變量字包括:第一變量字、第二變量字、第三變量字、第四變量字;所述獲取模塊110,還用于獲取預計算擴展字,其中,所述預計算擴展字為擴展字與所述第四變量字初值的和;布爾函數處理模塊120,用于對所述第一變量字、所述第二變量字、所述第三變量字的初值進行布爾函數處理;壓縮加和處理模塊130,用于將所述預計算擴展字、所述第一變量字的初值、補償結果以及布爾函數處理后的結果進行壓縮加和處理,其中,所述補償結果為進行預設位數移位后的常數與預設的補償值的和;選擇模塊140,用于對所述壓縮加和處理后的結果進行選擇;置換運算模塊150,用于對所述選擇后的加和處理后結果進行置換運算,得到當前周期的所述第一變量字的壓縮結果。實施例中,通過將預計算擴展字、第一變量字的初值、補償結果以及布爾函數處理后的結果進行壓縮加和處理并選擇與本輪壓縮中對應的壓縮加和處理后的結果,可以壓縮第一變量字的關鍵路徑,降低關鍵路徑時延,提高電路的吞吐率。進一步地,所述獲取模塊110中的變量字還包括:第五變量字;所述壓縮加和處理模塊130,用于獲取所述第五變量字的初值,對所述第五變量字的初值進行預設位數的移位;將所述移位后的第五變量字的初值、所述預計算擴展字、所述第一變量字初值、所述補償結果以及所述布爾函數處理后的結果,進行三次壓縮處理;對所述三次壓縮處理后的結果進行加和。進一步地,所述壓縮加和處理模塊130中的所述補償值包括第一補償值、第二補償值、第三補償值和第四補償值;所述補償結果包括第一補償結果、第二補償結果、第三補償結果、第四補償結果;所述第一補償結果為所述第一補償值與所述移位后的常數的和;所述第二補償結果為所述第二補償值與所述移位后的常數的和;所述第三補償結果為所述第三補償值與所述移位后的常數的和;和所述第四補償結果為所述第四補償值與所述移位后的常數的和。由此,通過使用五輸入三輸出的壓縮加法器,五輸入三輸出的壓縮加法器包括三個壓縮器CSA和一個加法器,可以將加法器的數量降為一個,這樣可以將關鍵路徑上的加法器減少,關鍵路徑的縮短可以獲取高速的工作頻率,從而達到高吞吐率的目的。進一步地,所述選擇模塊140用于:獲取所述移位后的第五變量字的初值;將所述移位后的第五變量字的初值、所述第一變量字的初值和所述移位后的常數進行壓縮處理;將所述壓縮處理后的結果加和,并記錄第一加法器的進位輸出位作為第一控制位;將所述壓縮處理后的結果進行預設位數的移位,對移位后的結果進行加和,并記錄第二加法器的進位輸出位作為第二控制位,根據所述第一控制位和所述第二控制位,對所述壓縮加和處理后的結果進行選擇。進一步地,所述選擇模塊140用于:建立所述第一控制位、所述第二控制位與所述第一補償結果、所述第二補償結果、所述第三補償結果、所述第四補償結果之間的對應關系;根據所述第一控制位、所述第二控制位以及所述對應關系,選擇所述壓縮加和處理后的結果。由此,通過將移位后的第五變量字的初值、預計算擴展字、第一變量字初值、所述補償結果以及布爾函數處理后的結果先行通過壓縮加法器進行壓縮加和,根據第一控制位、第二控制位以及預先設定的對應關系,選擇所述壓縮加和處理后的結果。實現了減少關鍵路徑上的加法器各數,提工作頻率,從而提高吞吐率。前述對本發(fā)明的具體示例性實施方案的描述是為了說明和例證的目的。這些描述并非想將本發(fā)明限定為所公開的精確形式,并且很顯然,根據上述教導,可以進行很多改變和變化。對示例性實施例進行選擇和描述的目的在于解釋本發(fā)明的特定原理及其實際應用,從而使得本領域的技術人員能夠實現并利用本發(fā)明的各種不同的示例性實施方案以及各種不同的選擇和改變。本發(fā)明的范圍意在由權利要求書及其等同形式所限定。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部模塊來實現本實施例方案的目的。本領域普通技術人員在不付出創(chuàng)造性的勞動的情況下,即可以理解并實施。當前第1頁1 2 3 
      當前第1頁1 2 3 
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1