專利名稱:包含超越函數計算的處理器實現裝置的制作方法
技術領域:
本發明涉及一種包含超越函數計算的處理器實現裝置,屬數字信號處理器技術 領域。
背景技術:
目前,計算機對超越函數的計算,通常是采用軟件來實現的。由于采用軟件的方式 實現超越函數的求解,其速度較慢,故無法滿足對計算速度要求較高的場合,特別是無法滿 足數字信號處理領域中對對數及反三角函數之類的超越函數的快速求解。
發明內容
本發明的目的在于提供一種能夠快速實現對定點反正切、浮點倒數、浮點自然對 數和浮點開方進行計算的包含超越函數計算的處理器實現裝置。其技術方案是一種包含超越函數計算的處理器實現裝置,其特征在于所述實 現裝置依次由地址發生器和第一數據寄存器構成的取數級,由tab0、tabl、兩個乘加模塊和 第二數據寄存器構成的執行級,以及由截位模塊和標志生成模塊構成的寫回級組成三級流 水的架構;
取數級,根據控制信號和輸入數據,用于在地址發生器內產生查表所需的地址,并將執 行級和寫回級所需的控制信號、變換后的輸入數據以及地址信號寄存送到執行級計算; 執行級,用于完成定點反正切、浮點倒數、浮點自然對數和浮點開方的計算; 寫回級,用于標志的生成以及運算結果的截位輸出。其技術效果是本發明首先通過取數級將接收的數據表示成定點或浮點的形式, 將其作為執行超越函數計算的輸入值;然后通過執行級將特定函數按照泰勒公式展開,根 據計算精度要求提取泰勒級數部分分項構成乘加形式,并通過查找表的方式獲取部分分項 值,在1個時鐘周期內完成超越函數的近似值計算;最后通過寫回級對中間計算結果進行 修正,獲取最終結果,從而實現對定點反正切、浮點倒數、浮點自然對數和浮點開方的快速 計算。
圖1為本發明的電路框圖。圖2為定點反正切arctg(X)的實現流程圖。圖3為浮點倒數1/x的實現流程圖。圖4為浮點自然對數In(X)的實現流程圖。圖5為浮點開方sqrt(x)的實現流程圖。
具體實施例方式如圖1所示,一種包含超越函數計算的處理器實現裝置,依次由取數級、執行級和寫回級組成三級流水的架構。取數級由地址發生器和第一數據寄存器構成,根據控制信號和輸入數據,用于在 地址發生器內產生查表所需的地址,并將執行級和寫回級所需的控制信號、變換后的輸入 數據以及地址信號寄存送到執行級計算。執行級由tabO、tabl、兩個乘加模塊和第二數據寄存器構成,主要用于完成1/x、 sqrt(x)和In (χ)的計算。其中,tabO中包含有用于查詢的rec_tab、rec2_tab、sqr_tab、 recsqr_tab 禾口 ln_t£ib 21 ; ^ Tabl ^^fSWfflTSi^W arctg_tabO> arctg_tabl> sqr_ tab_fix和recsqr_tab_fix四張表,以及一個用于計算expxhi(2)的IStoxlgto的乘法器。 通過Tabl可以完成arctanOO以及浮點指數為奇數的開方運算。TabO的查表結果通過乘 加模塊后可以直接得到1/x的計算結果。計算開方sqrt(x)時只能得到源操作數的浮點指 數(無偏)為偶數的值,即sqrt(^+Xl)= sqrtC^J + O.Sx^/sqrtCso),浮點指數(無偏)為奇數 的值需根據tabl中查表結果計算,最終的計算結果要根據指數的奇偶性通過選擇輸出。計 算In(X)時利用tabO計算得到1^(^) + 111(14 / ),利用tabl計算得到邵xln(2),最終合
成In (2) = In (X0)+ In (1.+X1 /x0) +expxln(2)。寫回級由截位模塊和標志生成模塊構成,主要用于標志的生成以及運算結果的截 位輸出。標志寄存器分為浮點溢出,定點溢出及浮點非數,能夠產生浮點溢出標志的主要有 兩種情況一是計算浮點倒數時輸入數據為浮點0 ;二是計算浮點開方時輸入數據為浮點 的無窮大。當浮點運算的輸入源操作數為非數時,將產生浮點非數標志。只有計算ln(o) 時才會產生定點溢出標志。截位模塊主要完成計算結果的修正,并將最終結果截斷成32位 數據輸出。其實現定點反正切arctg(X),浮點倒數l/χ,浮點自然對數In (χ)及浮點開方sqrt (χ)計算的流程如下
1、完成32位定點數據的反正切計算反正切的計算結果為16位定點數。在數學意義 上,本發明實現arctg(X)所能接受的源操作數X,是一個大于等于-1,小于1的數。所得到 結果,是把W,65536)區間歸一化到
=2_鄉 χ (1 / χ0) χ[1 — X1 / χ0 + (X1 / S0)2 -(S1Zz0)3+............]
= 2-βφχ[1/χ0- VV +............](5)
如圖3所示,在地址發生器中,首先提取浮點χ的尾數和無偏指數exp。其中& 作為查找表的入口地址,&、X1、無偏指數exp及χ的正負標識被寄存下來,下一時鐘節拍進 入執行級開始計算。需要得到16位精度的結果,執行級只需計算1/χ=2_-41/ -巧/q2]。本裝置 中存儲有reC_tab = l/ 和reC2_tab = -1/ 2兩張表,結果都保留到16位精度,最終的計
算結果可以表示為
Ifx- 2—— x[rec_tab + X1 xrec2_tab](6)查詢執行級 tabO 中的 rec_tab 和 rec2_tab 得到 IZx0 和-IZx02。rec_tab 和 rec2_tab都是深度為256,字寬為18位的查詢表。通過與tabO相連的乘加模塊完成 rec_tab + x1xrec2_tab的計算,并將該計算結果、χ的正負標識及無偏指數exp寄存。由于rec_tab + x1xrec2_tab是一個大于等于0. 5小于!的值,需要將其左移一位
后才能作為l/χ的浮點尾數,并調整計算結果的無偏指數為up-1。規格化運算結果后輸 出。這些操作全部在寫回級完成。本發明對浮點倒數l/χ計算結果的尾數可以精確到小數點后第16位。3、完成浮點自然對數In(X)的計算原操作數χ需要大于等于0。計算結果按照 16位定點方式輸出。實現裝置中,In(X)的結果輸出還受一個4位控制信號cutnum的控 制。若Oitoum = O則輸出計算結果的整數部分,cutourn =1則輸出計算結果的整數部分加一 位小數,cutmim = 2則輸出計算結果的整數部分加兩位小數,以此類推。
權利要求
1.包含超越函數計算的處理器實現裝置,其特征在于所述硬件電路依次由地址發生 器和第一數據寄存器構成的取數級,由tab0、tabl、兩個乘加模塊和第二數據寄存器構成的 執行級,以及由截位模塊和標志生成模塊構成的寫回級組成三級流水的架構;取數級,根據控制信號和輸入數據,用于在地址發生器內產生查表所需的地址,并將執 行級和寫回級所需的控制信號、變換后的輸入數據以及地址信號寄存送到執行級計算; 執行級,用于完成定點反正切、浮點倒數、浮點自然對數和浮點開方的計算; 寫回級,用于標志的生成以和運算結果的截位輸出。
2.根據權利要求1所述的包含超越函數計算的處理器實現裝置,其特征在于所述 tabO ΦyEl^-WfflTSi^J W rec_tab> rec2_tab> sqr_tab> recsqr_tab 禾口 ln_t£ib 21 ; ^
3.根據權利要求1所述的包含超越函數計算的處理器實現裝置,其特征在于所述 Tabl 中包含有用于查詢的 arctg_tabO、arctg_tabl、sqr_tab_fix 禾口 recsqr_tab_fix 四張表,以及一個用于計算expxln(2)的IStoxlBto的乘法器。
4.根據權利要求1所述的包含超越函數計算的處理器實現裝置,其特征在于所述乘 加模塊為+ 。
全文摘要
包含超越函數計算的處理器實現裝置,屬數字信號處理器技術領域。其目的是提供一種能夠快速實現定點反正切、浮點倒數、浮點自然對數和浮點開方計算的硬件。該硬件電路依次由地址發生器和第一數據寄存器構成的取數級,由tab0、tab1、兩個乘加模塊和第二數據寄存器構成的執行級,以及由截位模塊和標志生成模塊構成的寫回級組成三級流水的架構;取數級用于產生查表所需的地址,并將執行級和寫回級所需的控制信號、變換后的輸入數據以及地址信號寄存送到執行級計算;執行級用于完成定點反正切、浮點倒數、浮點自然對數和浮點開方的運算;寫回級用于標志的生成以及運算結果的截位輸出。
文檔編號G06F7/544GK102109973SQ20111005003
公開日2011年6月29日 申請日期2011年3月2日 優先權日2011年3月2日
發明者劉小明, 宋何娟, 洪一, 鐘小艷, 龔曉華 申請人:中國電子科技集團公司第三十八研究所