專利名稱:一種低成本的單精度初等函數(shù)運算加速器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種運算加速器,尤其是一種可以完成多種初等函數(shù)運算的加速器,滿足單精度浮點數(shù)據(jù)的精度要求。
背景技術(shù):
隨著移動設備的迅猛發(fā)展,對于移動設備的計算能力也提出了越來越高的要求。而初等函數(shù)運算現(xiàn)如今廣泛的應用于科學計算,數(shù)字信號處理,多媒體圖像等領(lǐng)域當中。對于移動設備而言,在滿足速度要求的前提下,更注重對于成本的控制。通過硬件實現(xiàn)初等函數(shù)的方法主要包括循環(huán)迭代法、泰勒級數(shù)展開法、分段逼近法等。對于中等程度的精度要求來講(例如單精度),分段二次逼近法是目前最為有效的方法,且同一種結(jié)構(gòu)能夠?qū)崿F(xiàn)絕大多數(shù)的初等函數(shù)運算。所謂分段二次逼近法,顧名思義,就是將初等函數(shù)曲線在計算范圍內(nèi)等分成η段,每一段都用一個近似的二次多項式曲線進行擬合,在該段中原函數(shù)的值就用二次多項式的值代替,使得計算結(jié)果逼近真實值。而分段二次逼近法的硬件實現(xiàn)方式,主要由兩部分組成。第一部分是通過輸入的地址找到查找表中對應分段的二次多項的各次項系數(shù)。第二部分則是通過運算模塊完成二次多項式的運算,得到最后逼近的結(jié)果,一般的設計會用到平方運算器,乘法運算器和加法器,因此具備較大的硬件開銷。
發(fā)明內(nèi)容
由于硬件設計對于面積的要求十分苛刻,本發(fā)明提出了一種低成本的單精度初等函數(shù)運算加速器,利用結(jié)構(gòu)上的復用,有效減少用于計算的硬件面積。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案為:
一種低成本的單精度初等函數(shù)運算加速器,誤差可以滿足單精度浮點數(shù)的要求,主要包含以下兩個部分:ROM存儲模塊作為進行系數(shù)查找的查找表,運算模塊輸出二次多項式的運算結(jié)果。所使用的主要運算模塊完成的是二次多項式C0+C1X+C2X2的運算,系數(shù)CO,Cl和C2值跟據(jù)輸入的地址從三個查找表輸出,在硬件實現(xiàn)運算電路的過程中二次多項式的形式變?yōu)镃0+(C1+C2X)X,省去了平方運算模塊。進一步,由于只需要進行一種運算乘加,可以利用結(jié)構(gòu)的復用來完成,該結(jié)構(gòu)由一個用于進行乘加運算的乘加模塊,兩個用于選擇乘加兩次運算時不同的輸入值的選擇器,一個用于控制運算的控制器和一個用于優(yōu)化乘法運算結(jié)構(gòu)的Booth編碼模塊組合。更進一步,控制邏輯需要將第一次乘加的結(jié)果回饋上去,作為下次乘加運算的輸入。因此控制的任務分為兩步,開始時,控制器發(fā)出選擇信號使得選擇器I選通C2,選擇器2選通Cl。經(jīng)過一個時鐘周期,得到第一次乘累加結(jié)果的寄存輸出之后,控制器發(fā)出選擇信號使得選擇器I選通第一次乘累加的結(jié)果,選擇器2選通CO。最核心的運算單元乘加結(jié)構(gòu),乘法部分主要將Booth編碼后生成的部分積進行相力口,通過華萊士樹優(yōu)化結(jié)構(gòu),縮短整個運算的延遲。同時將乘加中的加數(shù),作為特殊的一個部分積插入到華萊士的第二層。進一步,由于本發(fā)明是針對單精度浮點數(shù)據(jù),誤差只需要控制在小數(shù)點后23位(二進制)。因此加速器的輸出值并不需要全精度的加運算結(jié)果,對于華萊士樹只截取2_3°前部分的數(shù)據(jù),可以有效的減少這部分運算電路的面積,所帶來的誤差可以通過適當增加查找表中的存儲系數(shù)位寬彌補,所帶來的硬件代價相對來說十分小。采用本發(fā)明的技術(shù)結(jié)構(gòu),大量的減少了完成二次多項式運算部分帶來的硬件開銷,有效的節(jié)省了成本。
圖1是分段二次插值逼近原函數(shù)的原理 圖2是本發(fā)明初等函數(shù)運算加速器的整體框 圖3是本發(fā)明加速器的原理 圖4是本發(fā)明的乘加模塊的華萊士樹結(jié)構(gòu) 圖5是本發(fā)明對部分積數(shù)據(jù)截取示意圖。
具體實施例方式下面結(jié)合附圖對本發(fā)明作進一步描述。參照圖f圖5,一種低成本的單精度初等函數(shù)運算加速器,主要利用分段二次插值法,完成初等函數(shù)的逼近,達到單精度浮點數(shù)據(jù)的精度要求(見圖1)。主要由ROM存儲模塊與二次項式運算電路兩大部分組成(見圖2)。對于完成特定函數(shù)f (X)的加速,首先需要通過輸入地址X從ROM存儲模塊中找到對應的系數(shù)值,單精度浮點數(shù)輸入數(shù)據(jù)X是其浮點數(shù)的尾數(shù)部分,總共有23位,高7位輸入數(shù)據(jù)Xl作為分段區(qū)間標識選擇特定分段中零次項的系數(shù)CO,一次項的系數(shù)Cl和二次項的系數(shù)C2。與此同時,輸入數(shù)據(jù)的后16位經(jīng)過Booth編碼用以優(yōu)化乘法運算(見圖3 )??刂破魍ㄟ^選擇器I和選擇器2分別選通數(shù)據(jù)C2和Cl,C2先與Booth編碼的數(shù)據(jù)產(chǎn)生9個部分積,并與Cl 一起構(gòu)建了簡化過的華萊士樹(為了節(jié)省面積,部分積被截取,見圖5),數(shù)據(jù)從華萊樹頂部流到華萊樹的底部,最后通過一個全加器得到最后的乘加結(jié)果(見圖4)。在完成第一次乘加運算C1+C2X之后,控制器通過選擇器I和選擇器2分別選通第一次乘加后的數(shù)據(jù)和CO。第一次乘加后的數(shù)據(jù)和CO以及Booth編碼的數(shù)據(jù)利用相同的電路結(jié)構(gòu)再進行一次乘加運算C0+(C1+C2X)X,由此輸出最終的初等函數(shù)值,完成整個加速過程。最后的數(shù)據(jù)的滿足單精度浮點數(shù)的要求,可以精確到小數(shù)點后23位。上述實施例用來解釋說明本發(fā)明,而不是對本發(fā)明進行限制,在本發(fā)明的精神和權(quán)利要求的保護范圍內(nèi),對本發(fā)明做出的任何修改和改變,都落入本發(fā)明的保護范圍。
權(quán)利要求
1.一種低成本的單精度初等函數(shù)運算加速器,包括ROM存儲模塊以及二次多項式運算模塊,其特征在于:所述ROM存儲模塊包含三個查找表,根據(jù)輸入的地址數(shù)據(jù)得到對應的系數(shù);所述二次多項式運算模塊,根據(jù)輸入的數(shù)據(jù)輸出所要求的初等函數(shù)的值;所述的二次多項式運算模塊通過結(jié)構(gòu)的復用來完成運算,其硬件模塊包含一個Booth編碼模塊,一個乘加模塊,兩個選擇器和一個控制器。
2.如權(quán)利要求1所述的一種低成本的單精度初等函數(shù)運算加速器,其特征在于:二次多項式運算模塊中的控制器通過控制乘加模塊,將第一次乘加結(jié)果作為第二次乘加運算的輸入,控制整個二次多項式運算模塊一共完成兩次乘加運算,并得到最后的結(jié)果。
3.如權(quán)利要求1所述的一種低成本的單精度初等函數(shù)運算加速器,其特征在于:二次多項式計算模塊中的乘加模塊有三個輸入口,其中兩個來自選擇器的輸出,一個來自Booth編碼模塊的輸出;乘加模塊有一個輸出口,除了作為最后的輸出結(jié)果外,還作為第二次乘加的輸入之一與其中一個選擇器相連。
4.如權(quán)利要求1所述的一種低成本的單精度初等函數(shù)運算加速器,其特征在于:二次多項式計算模塊中的乘加模塊,主要的作用是生成部分積,構(gòu)成華萊士樹,進行乘加運算;部分積的數(shù)據(jù)并不完整,截去了不必要的硬件邏輯,只取了一部分作為乘加運算的硬件結(jié)構(gòu)。
全文摘要
本發(fā)明公開了一種低成本的單精度初等函數(shù)運算加速器,它是一種能夠?qū)崿F(xiàn)倒數(shù)、均方根、均方根倒數(shù)、指數(shù)、三角函數(shù)等多種函數(shù)運算的低成本電路結(jié)構(gòu)。加速器首先通過輸入的地址找到對應的系數(shù),再通過二次多項式運算模塊輸出最終的初等函數(shù)值,并且本發(fā)明在二次多項式運算模塊中采用了復用乘累加結(jié)構(gòu),可以有效的減少運算部分的硬件面積。
文檔編號G06F17/10GK103176948SQ20131006744
公開日2013年6月26日 申請日期2013年3月4日 優(yōu)先權(quán)日2013年3月4日
發(fā)明者沈海斌, 牛濤, 解志超 申請人:浙江大學