一種浮點數乘法的舍入方法及裝置的制造方法
【技術領域】
[0001] 本發明屬于集成電路設計中的浮點乘法運算技術領域,確切地說,屬于IEEE 754 標準的浮點乘法的尾數舍入技術領域。
【背景技術】
[0002] 隨著數字信號處理技術的不斷發展,人們對數據的精確性和處理實時性要求日益 提高。浮點數據運算已經被數字信號處理(DSP)領域廣泛采用。
[0003] 浮點乘法器是DSP處理器和高性能計算系統的重要組成部分,有研宄表明,在涉 及浮點的操作中,有31%左右是乘法操作。在以往的設計中,浮點乘法是整個系統的關鍵路 徑所在,主要原因為浮點乘法器進行尾數處理時間較長。
[0004] IEEE 754定義的浮點表示由符號位,帶偏移指數部分和尾數部分組成。浮點乘法 可以分為三部分:符號位異或,指數相加與尾數相乘。這三部分運算可以并行計算,并在相 應階段做出調整。因為在浮點表示中,尾數位寬固定,尾數相乘后的結果須舍棄一部分,對 此,IEEE 754標準定義了四種舍入模式:就近舍入,向零舍入,向正無窮舍入和向負無窮舍 入。在尾數的處理中,何處是臨界的舍入點與尾數相乘的結果有關,這也是浮點乘法中最易 出錯和最耗時的部分。
[0005] 所以,本發明提出一種適用于IEEE 754標準的單雙精度各種舍入模式的快速浮 點乘法舍入裝置,以提高浮點乘法器的性能。
【發明內容】
[0006] (一)要解決的技術問題
[0007] 有鑒于此,本發明的主要目的在于提供一種快速浮點乘法舍入裝置,通過歸納 IEEE 754的舍入模式和在尾數處理中部分積壓縮時提前引入一個與舍入相關的特殊值,簡 化后續尾數舍入。
[0008] (二)技術方案
[0009] 本發明提出了一種浮點數乘法的舍入方法,其特征在于,在進行部分積壓縮時,弓丨 入預定數據作為部分積參與部分積壓縮;所述預定數據根據浮點乘法結果的舍入方式不同 而不同,具體如下取值:
[0010] (1)舍入是向零舍入時,特殊數為0 ;
[0011] (2)舍入是就近取偶舍入時,特殊數為2N1
[0012] (3)舍入是向正無窮舍入時,如果結果的符號位是正,取值為2M-1,否則是0 ;
[0013] (4)舍入是向負無窮舍入時,如果結果的符號位是負,取值為2M-1,否則是0 ;
[0014] 其中,N表示浮點數尾數的長度。
[0015] 本發明還提出了一種浮點數乘法的舍入裝置,其特征在于,包括:
[0016] 部分積壓縮模塊,其在進行部分積壓縮時,引入預定數據作為部分積參與部分積 壓縮;所述預定數據根據浮點乘法結果的舍入方式不同而不同,具體如下取值:
[0017] (1)舍入是向零舍入時,特殊數為0 ;
[0018] (2)舍入是就近取偶舍入時,特殊數為2N1
[0019] (3)舍入是向正無窮舍入時,如果結果的符號位是正,取值為2M-1,否則是0 ;
[0020] (4)舍入是向負無窮舍入時,如果結果的符號位是負,取值為2M-1,否則是0 ;
[0021] 其中,N表示浮點數尾數的長度。
[0022] (三)有益效果
[0023] 從上述技術方案可以看出,本發明具有以下有益效果:
[0024] 本發明完全適用于IEEE 754單、雙精度及擴展精度四種舍入模式的乘法舍入,由 于在部分積壓縮階段提前引入一個與舍入相關的特殊值,簡化了后續尾數計算階段的邏 輯。該特殊值產生的負面影響,如面積、延遲等相比于其帶來的性能提高可以忽略不計。實 踐證明,采用該裝置的浮點乘法器能顯著提高性能。
【附圖說明】
[0025] 圖1是現有技術中12X5行列乘法計算過程示意圖;;
[0026] 圖2是現有技術中16行部分積利用華萊士樹結構壓縮為2個部分積過程的示意 圖;
[0027] 圖3是現有技術中全加器的結構示意圖;
[0028] 圖4是現有技術中半加器結構示意圖;
[0029] 圖5是本發明中引入特殊數據后17行部分積利用華萊士樹結構壓縮為2個部分 積過程的示意圖;
[0030] 圖6是本發明中浮點數乘法的舍入裝置結構示意圖;
[0031] 圖7是本發明具體實施例中浮點數乘法的舍入裝置結構示意圖;
【具體實施方式】
[0032] 為使本發明的目的、技術方案和優點更加清楚明白,以下以IEEE 754單精度浮點 乘法器舍入作為具體實施案例,對本發明進一步詳細說明。
[0033] 本發明提出了一種針對浮點乘法有效的舍入方法,其包括:
[0034] 在進行部分積壓縮時,引入特殊數據作為部分積參與部分積壓縮;所述特殊數據 根據浮點乘法結果的舍入方式不同而不同,具體如下取值:
[0035] (1)舍入是向零舍入時,特殊數為0 ;
[0036] (2)舍入是就近取偶舍入時,特殊數為2,
[0037] (3)舍入是向正無窮舍入時,如果結果的符號位是正,取值為2M-1,否則是0 ;
[0038] (4)舍入是向負無窮舍入時,如果結果的符號位是負,取值為2M-1,否則是0 ;
[0039] 其中,N表示浮點數尾數的長度。
[0040] 本發明提出的上述方法能夠實現IEEE 754標準定義的四種舍入:就近舍入,向零 舍入,向正無窮舍入和向負無窮舍入,其中的向正無窮舍入和向負無窮舍入在舍入時與結 果的正負有關,可以轉換為向零舍入和向無窮舍入進行處理。
[0041] 輸入數據可以是規格化數也可以是非規格化數,當輸入數據是非規格化數時,可 以通過擴展指數表示范圍,轉換成規格化數處理。
[0042] 用N表示浮點數尾數總長度,本發明在傳統的部分積壓縮基礎上,引入一個特殊 數據同時參與壓縮,獲取兩個部分積Sum和Carry,這個特殊數的產生、壓縮引起的面積、延 遲等代價非常小,與其帶來的性能提高相比可以忽略。
[0043] 兩個N位的尾數相乘,其中N為自然數,結果至多是2N位,所以中間結果只保留所 需的2N位,超出范圍的直接舍去,對最終結果沒有影響。并且由于處理的是規格化數,結果 位數從0開始編號,結果的第2N-1位和第2N-2位至少有一位是1。
[0044] 下面就現有技術中的浮點數乘法運算與本發明的浮點數乘法運算進行比較說明。
[0045] 現有技術中,如圖1所示,以簡單乘法12X5為例,介紹部分積及部分積壓縮的過 程,其進行行列乘法的過程中,先生成4項每項4位的部分積,然后對這些部分積適當移位 對齊后求和,可并行進行壓縮得到兩個結果Sum和Carry,然后對Sum和Carry進行求和, 得到最終結果。數據壓縮過程為:第一行部分積1100、第二行部分積〇〇〇〇、第三行部分積 1100對齊后進行3 : 2壓縮,得到部分積000100和11100,與第四行部分積進行對齊后壓 縮,得到Sum和Carry :0000100和011100,將此兩個數進行對齊后相加,得到最終的計算結 果00111100,以上部分積壓縮過程中所述位寬不等長,在實際運算中會根據具體算法對位 寬進行處理,比如補0操作。
[0046] 以上所述部分積壓縮過程可以通過多種形式完成,比如華萊士樹壓縮,以16行部 分積壓縮為2個部分積為例,示意如圖2所示。
[0047] 華萊士樹壓縮,其并行地對部分積求和而非順序地求和,為了將16個部分積輸入 減少到2個部分積輸出,華萊士樹需要
【主權項】
1. 一種浮點數乘法的舍入方法,其特征在于,在進行部分積壓縮時,引入預定數據作為 部分積參與部分積壓縮;所述預定數據根據浮點乘法結果的舍入方式不同而不同,具體如 下取值: (1) 舍入是向零舍入時,特殊數為O ; (2) 舍入是就近取偶舍入時,特殊數為2N1 (3) 舍入是向正無窮舍入時,如果結果的符號位是正,取值為2N4-1,否則是O ; (4) 舍入是向負無窮舍入時,如果結果的符號位是負,取值為2^-1,否則是O ; 其中,N表示浮點數尾數的長度。
2. 如權利要求1所述的方法,其特征在于:所述預定數據作為部分積的一行與其他部 分積同時進行壓縮。
3. 如權利要求1或2所述的方法,其特征在于:在引入預定數據參與部分積壓縮得到 的部分積壓縮結果為兩個2N位的和與進位,該方法還包括: 將所述兩個2N位的和與進位的高N+1位輸入至半加器進行運算,得到兩個N位寬的第 一結果和一個1位寬的第二結果; 將所述兩個2N位的和與進位的低N-I位輸入至加法器進行運算,得到第N-I位的進位 Carry [N-1]、第N-2位的和Round以及第N-3位至第O位的加法結果,并將所述加法結果進 行或操作得到或結果Sticky ; 將所述兩個N位寬的