文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2016.03.011
中文引用格式: 尹培培. 非精確浮點數(shù)乘法器設(shè)計[J].電子技術(shù)應(yīng)用,,2016,42(3):38-41,,46.
英文引用格式: Yin Peipei. Design and analysis of inexact floating-point multiplier[J].Application of Electronic Technique,,2016,42(3):38-41,,46.
0 引言
目前,集成電路的設(shè)計工藝已經(jīng)進入深亞微米階段,,工藝水平大幅度提高,,計算機微處理器也不斷更新?lián)Q代,。在微處理系統(tǒng)中,數(shù)據(jù)類型分為定點數(shù)和浮點數(shù),,相對于定點數(shù)的有限范圍及有限精度,,浮點數(shù)可以靈活地表示更大范圍及更高精度的實數(shù),由于以上原因,,浮點數(shù)運算成為微處理器以及信號處理系統(tǒng)中的重要部件之一,。但同時相對于定點數(shù)而言,浮點數(shù)運算需要更復(fù)雜的硬件電路,,消耗更大的面積及能量,,因此為數(shù)據(jù)范圍的拓寬帶來了能量及面積上的消耗。傳統(tǒng)的電路設(shè)計大多運用精確計算算法,,但對于一些圖像處理的可容錯應(yīng)用,,這些系統(tǒng)并不需要絕對的精確性。所以將非精確運算[1]運用到這些系統(tǒng)中可以減小能量損耗及電路面積,,同時也可提高系統(tǒng)的性能,。
非精確的算法設(shè)計作為減少容錯設(shè)備的動態(tài)及靜態(tài)能量損耗的有效方法,它的主要思想是通過減小硬件的復(fù)雜度來提高系統(tǒng)的性能及效率,。目前非精確計算主要集中在定點數(shù)的研究[2-5],,文獻[2]中非精確處理器犧牲了7.58%的相對錯誤率,但速度,、面積比精確處理器速度提高了將近15倍,,能量損耗也減少了將近15倍。研究表明運用非精確算法設(shè)計出的芯片面積更小,,速度更快,,能量損耗更低。雖然定點數(shù)在非精確研究方面取得了較成功的應(yīng)用,,但相對于定點數(shù)而言,,目前對非精確浮點數(shù)運算的研究并不多。由于浮點數(shù)運算電路更復(fù)雜,,能量也消耗更多,,非精確浮點數(shù)算法的研究顯得尤為重要。
文獻[5]設(shè)計了一種非精確的浮點數(shù)加法器,,該設(shè)計通過將低位部分精確加法替代為或門算法實現(xiàn)非精確運算,;文獻[6]研究了一種低功耗的浮點數(shù)乘法器,該研究通過直接截斷浮點數(shù)的數(shù)值位來減少硬件,;文獻[7]設(shè)計了一種高效率的浮點數(shù)乘法器,;文獻[8]利用低精度浮點數(shù)來減小MP3解碼時的內(nèi)存損耗。
本文提出了一種非精確浮點數(shù)乘法器的算法設(shè)計,,同時將該算法應(yīng)用于高動態(tài)范圍圖片的圖像處理中,,并將結(jié)果與精確浮點數(shù)乘法器的應(yīng)用結(jié)果進行對比,。文章內(nèi)容分布如下:在第1節(jié)中,首先簡單介紹了浮點數(shù)構(gòu)成及精確的浮點數(shù)乘法器的結(jié)構(gòu),;在第2節(jié)中提出了非精確乘法器的設(shè)計方法,;在第3節(jié)中將該非精確乘法器應(yīng)用到高動態(tài)范圍圖片中;最后總結(jié)了該設(shè)計算法,。
1 背景簡介
1.1 浮點數(shù)表示方法
在算數(shù)運算中,,數(shù)據(jù)的表示方法有兩個,定點數(shù)和浮點數(shù),。定點數(shù)可以表示以0為中心的一定范圍的正負整數(shù),,由于定點數(shù)小數(shù)點固定,不能表示太大動態(tài)范圍的數(shù),,同時也不能表示過大或過小的數(shù),,此時浮點數(shù)的優(yōu)勢就體現(xiàn)了出來,它可以在不增加位數(shù)的前提下擴展數(shù)據(jù)的動態(tài)范圍,。
在IEEE 754-2008標準中,,浮點數(shù)是一個以3個量表示的二進制位串(如圖1所示),該位串分為3個部分:符號位部分,、指數(shù)位部分和尾數(shù)位部分。
浮點數(shù)的標準表達式為:
其中,,S為符號位,,當(dāng)S=0時表示該浮點數(shù)是一個正值,當(dāng)S=1時表示該浮點數(shù)是一個負值,;E為指數(shù)位,,bias表示偏移量,對于單精度bias=127,,雙精度bias=1023,,則E-bias既可為正數(shù)也可為負數(shù);M為尾數(shù)位,,對于規(guī)格化的尾數(shù),,存儲時默認省去小數(shù)點前的1,則對于非零尾數(shù),,尾數(shù)值為1.M,。
1.2 精確浮點數(shù)乘法器
最初的浮點數(shù)乘法器是依靠軟件實現(xiàn)的,但隨著超大規(guī)模集成技術(shù)的發(fā)展以及乘法器對計算速度要求的提高,,乘法運算逐漸變成一個硬件的部件,,浮點數(shù)乘法的基本原理是將相乘兩數(shù)的指數(shù)和作為乘積的指數(shù),相乘兩數(shù)尾數(shù)的積作為乘積的尾數(shù),,相乘兩數(shù)的符號位異或作為乘積符號位,。
精確的浮點數(shù)乘法器如圖2所示,,默認這里兩個操作數(shù)都已規(guī)格化,如若沒有,,則首先需將輸入的操作數(shù)規(guī)格化,。然后從兩操作數(shù)中分別提取每個操作數(shù)的符號位、指數(shù)位及尾數(shù)位,,并將尾數(shù)位補充省略的第一位1,。浮點數(shù)的乘法只要包括兩個運算:指數(shù)的加法和尾數(shù)的乘法,這兩運算結(jié)束后就是將結(jié)果進行規(guī)格化,,生成符合IEEE 754-2008標準的結(jié)果,。
2 非精確浮點數(shù)乘法器設(shè)計
非精確乘法器的設(shè)計是基于圖2所示的精確計算的算法級設(shè)計,主要是將非精確定點數(shù)乘法器運用到浮點數(shù)尾數(shù)乘法設(shè)計中,,同時考慮到尾數(shù)乘積已是非精確結(jié)果,,舍入單元及規(guī)格化也進行了簡化。
2.1 尾數(shù)乘法器
尾數(shù)乘法器就是計算兩個浮點數(shù)尾數(shù)部分的乘積,,也就是兩個無符號定點數(shù)的乘法,,主要包括3個部分:部分積的生成、部分積壓縮及最終結(jié)果的生成,。本文部分積通過非精確Booth編碼[9]生成,,部分積壓縮通過非精確4-2壓縮器[10]及Wallace樹[11]完成。對于單精度浮點數(shù),,尾數(shù)的乘法是無符號定點24×24位的乘法器,,修正Booth編碼產(chǎn)生了13個部分積;4-2壓縮器,、Wallace樹以及進位存儲加法器將部分積壓縮成2個操作數(shù),;最后48位和進位采用快速超前進位加法器相加。
非精確Booth編碼是在修正Booth編碼算法上改進的,,修正Booth編碼算法的門級電路如圖3(a)所示,,式(2)給出了部分積(Partial Products,PP)與輸入之間的關(guān)系,。非精確Booth編碼的門級電路如圖3(b)所示,,式(3)給出了部分積與輸入之間的關(guān)系。
部分積的壓縮通過4-2壓縮器實現(xiàn),,非精確壓縮器是在精確4-2壓縮器上改進得到,,精確4-2壓縮器的實現(xiàn)方法如圖4(a)所示,式(4)~式(6)給出了壓縮結(jié)果與部分積輸入之間的關(guān)系,。非精確4-2壓縮器的實現(xiàn)方法如圖4(b)所示,,式(7)~式(8)給出了壓縮結(jié)果與部分積輸入之間的關(guān)系。
以單精度浮點數(shù)為例,非精確尾數(shù)乘法器的Wallace樹結(jié)構(gòu)如圖5所示,,由于最終標準化后只取乘積的前24位,,所以進行24×24乘法時0~23位的計算直接舍去,24~42位進行非精確計算,,43~47位進行精確計算,,圖5中實線框中進行非精確Booth編碼及非精確壓縮,虛線框進行精確Booth編碼及精確壓縮,。
2.2 舍入單元
舍入單元的作用是在結(jié)果被返回放回浮點格式時,,將多出來的位舍棄,使得有效數(shù)據(jù)的位數(shù)保持在固定的位數(shù)范圍內(nèi),。在精確浮點數(shù)乘法器中,,IEEE列出了4種不同的舍入方法:舍入到最近(Round To Nearest,RTN),、朝正無窮大方向舍入(Round To Positive Infinity,,RTPI)、朝負無窮大方向舍入(Round To Negative Infinity,,RTNI),、朝0方向舍入(Round To Zero,RTZ),。在非精確設(shè)計中,,乘積結(jié)果已是非精確的,舍入方法的選擇對算法沒有太大意義,,所以在非精確浮點數(shù)乘法器中,,舍入單元將不再考慮。
2.3 非精確浮點數(shù)乘法器結(jié)構(gòu)
基于以上分析,,非精確浮點數(shù)乘法器可以通過設(shè)計非精確無符號定點數(shù)乘法器、簡化規(guī)格化處理及省略舍入單元來實現(xiàn),,具體結(jié)構(gòu)如圖6所示,。
3 圖像處理應(yīng)用
很多非精確浮點數(shù)乘法都應(yīng)用于圖像處理中, OpenEXR是由Industrial Light and Magic開發(fā)的高動態(tài)范圍圖片(High Dynamic-Range,,HDR)的文件格式,,它支持16位及32位浮點。本文采用高動態(tài)范圍圖片來驗證該非精確浮點數(shù)乘法器的有效性,。高動態(tài)范圍可視區(qū)分度檢測(High Dynamic Range Visible Difference Predictor,,HDR-VDP)是度量兩幅圖片區(qū)別的方法,它可以檢測兩幅圖片的可視區(qū)別,。圖7,、圖8分別為精確、非精確浮點數(shù)乘法生成圖片,,兩幅圖片的區(qū)別檢測圖如圖9所示,。
HDR-VDP中整體可視檢測中定義了兩個度量方法,,一個為P_det,定義為兩幅圖片的可視區(qū)別概率,,它的范圍為0~1,,數(shù)值越大,說明兩圖片的區(qū)別人眼越容易察覺,;另一度量方法是Q_MOS,,它定義為圖片的平均觀測質(zhì)量,它的范圍是0~100,,數(shù)值越大說明圖片質(zhì)量越好,。經(jīng)測量本文設(shè)計的非精確浮點數(shù)乘法器的兩個度量值分別為:
度量值P_det表明兩幅圖片的差異不太容易被檢測,度量值Q_MOS表明兩幅圖片質(zhì)量很好,。
4 結(jié)論
本文主要采用非精確定點尾數(shù)乘法器設(shè)計非精確浮點數(shù)乘法器,,并將該乘法器運用到圖像處理中,結(jié)果表明本文所設(shè)計的非精確浮點數(shù)乘法器具有很好的性能,。
參考文獻
[1] PALEM K,,INGAMNENI A.Ten years of building broken-chips:the physics and engineeringofinexact computing[J].ACMTrans.Embedded Computing Systems,2013,,12(2),,87:1-23.
[2] LINGAMNENI A,MUNTIMADUGU A,,ENZ C,,et al.Algorithmic methodologies for ultra-efficient inexact architectures for sustaining technology scaling[J].Proc.ACM Int.Conf.Computing Frontiers,2012:3-12.
[3] YANG Z,,JAIN A,,LIANG J,et al.Approximate XOR XNOR-based Adders for inexact computing[J].Proc.13rd IEEE Conf.Nanotechnol.(IEEE-NANO),,2013:690-693.
[4] Liu Weiqiang,,Chen Linbin,Wang Chenghua,,et al.Design and analysis of inexact floating-point adders[J].IEEE Transactions on Computers,,2016,65(1):308-314.
[5] Liu Weiqiang,,Chen Linbin,,WANG C,et al.Inexact Floating-Point Adder for Dynamic Image Processing[J].Proceedings of the 14th IEEEInternational Conference on Nano-technology Toronto,,Canada,,2014.
[6] TONG J Y,NAGLE D,RUTENBAR R.Reducing power byoptimizingthe necessary precision/rangeof floating-point arithmetic[J].IEEE Trans.Very Large Scale Integr.Syst.2000,,8:273-286.
[7] GUPTA A,,MANDAVALLI S,MOONEY V,,et al.Low power probabilistic floatingpoint multiplier design[J].Proc.IEEE Comput.Soc.Annu.Symp.VLSI,,2011:182-187.
[8] EILERT J,EHLIAR A,,LIU D.Using low precision floating point numbers to reduce memory cost for MP3 decoding[J].Proc. 6th IEEE Workshop on Multimedia Signal Processing,,2004:119-122.
[9] YEH W C,JEN C W.High-speed booth encoded parallel multiplier design[J].IEEE Trans.Computers,,2000,,49(7):692-701.
[10] Amir Momeni,Jie Han,,Paolo Montuschi,,et al.Design and analysis of approximate compressor for multilication[J].IEEE Trans.Computers,2015,,64(4):984-994.
[11] MILLAR B,,MADRID P E,SWARTZLANDER E E.A fast hybrid multiplier combining Booth and Wallace/Dadda algorithms[J].Proceedings of the 35th MidwestSymposium on Circuits and Systems,,1992,,1(8):158-165.