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