Gpdsp中定點(diǎn)和浮點(diǎn)混合除法的實(shí)現(xiàn)方法
【專利摘要】本發(fā)明公開一種GPDS中定點(diǎn)和浮點(diǎn)混合除法的實(shí)現(xiàn)方法,步驟為:1)輸入除數(shù)和被除數(shù),若為定點(diǎn)整數(shù),轉(zhuǎn)入執(zhí)行步驟2);若為浮點(diǎn)數(shù)據(jù),轉(zhuǎn)入執(zhí)行步驟3);2)除數(shù)和被除數(shù)根據(jù)前導(dǎo)0個(gè)數(shù)進(jìn)行移位并計(jì)算出執(zhí)行除法迭代的迭代次數(shù),根據(jù)定點(diǎn)數(shù)據(jù)類型以及迭代次數(shù)執(zhí)行一級(jí)或多級(jí)SRT算法的迭代;將商結(jié)果進(jìn)行移位后得到最終的商結(jié)果,并根據(jù)最終商結(jié)果得到最終的余數(shù);3)計(jì)算出除數(shù)和被除數(shù)的尾數(shù),采用SRT算法執(zhí)行尾數(shù)的除法迭代計(jì)算并將迭代計(jì)算通過一級(jí)或截?cái)酁槎嗉?jí)執(zhí)行;根據(jù)浮點(diǎn)數(shù)據(jù)類型以及迭代計(jì)算所執(zhí)行的級(jí)數(shù)將商結(jié)果的尾數(shù)進(jìn)行規(guī)格化。本發(fā)明具有除法功能全面且實(shí)現(xiàn)方法簡單、執(zhí)行周期短、延時(shí)小、除法執(zhí)行效率高的優(yōu)點(diǎn)。
【專利說明】GPDSP中定點(diǎn)和浮點(diǎn)混合除法的實(shí)現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及GPDSP中除法運(yùn)算【技術(shù)領(lǐng)域】,尤其涉及一種GPDSP中定點(diǎn)和浮點(diǎn)混合除法的實(shí)現(xiàn)方法。
【背景技術(shù)】
[0002]在早期的計(jì)算機(jī)中,除了除法本身的復(fù)雜性外,除法的不頻繁使用導(dǎo)致了人們對(duì)除法效率的忽略。隨著VLSI技術(shù)的發(fā)展,針對(duì)各個(gè)應(yīng)用領(lǐng)域的處理器相繼提出,這些處理器的應(yīng)用需求使得除法應(yīng)用越來越廣泛。有從業(yè)者指出SPECfp92測(cè)試套件中浮點(diǎn)除法指令僅占總指令數(shù)的3%,但是除法的計(jì)算開銷卻占總時(shí)間開銷的40%,除法的性能已經(jīng)成為了影響這些處理器整體性能的瓶頸。同時(shí),各種應(yīng)用的處理器對(duì)計(jì)算速度、芯片面積以及功耗大小的要求也對(duì)除法的實(shí)現(xiàn)提出了挑戰(zhàn),因此設(shè)計(jì)并實(shí)現(xiàn)高速低開銷的除法器是十分重要的。
[0003]除法算法可以分為三類:查表法、函數(shù)迭代和數(shù)字迭代,其中查表法使用簡單,當(dāng)精確度要求不高時(shí)可以直接使用得到結(jié)果;函數(shù)迭代算法包括Newton-Raphson和Goldschmidt算法,這類算法具有收斂速度快的特點(diǎn),通常與查表法相結(jié)合使用來降低迭代次數(shù);函數(shù)迭代算法每次迭代時(shí)都涉及到多次乘法操作,所以需要較大的乘法器,面積較大。
[0004]數(shù)字迭代方法是基本函數(shù)實(shí)現(xiàn)中最廣泛的一類算法,其以簡單的加減法和移位操作為基礎(chǔ),每次迭代后獲得固定位數(shù)的商。在目前的處理器中,使用最多的數(shù)字循環(huán)算法是SRT (Sweeney Robertson and Robertson)算法,該算法由 Sweeney、Robertson 以及 Tocher三人同時(shí)獨(dú)立提出。目前,Intel Pentium CPUs、ARM處理器和IBM FPUs使用基為4的SRT(SRT-4)算法實(shí)現(xiàn)浮點(diǎn)除法,Intel Core2處理器則實(shí)現(xiàn)了基為16的SRT(SRT_16)算法除法。
[0005]構(gòu)建高基可以提高降低迭代次數(shù),但是增大基數(shù)的同時(shí)也會(huì)增加硬件設(shè)計(jì)的復(fù)雜度、以及除法部件的延遲和面積。在 GPDSP (General-Purpose Digital Signal Processor,通用數(shù)字信號(hào)處理器)中,常用的浮點(diǎn)加減、乘法等指令的執(zhí)行周期一般不超過七拍,而僅只有浮點(diǎn)除法指令的執(zhí)行周期為數(shù)十拍,例如基16的雙精度的浮點(diǎn)除法需要14次迭代周期,這增大了中斷處理邏輯的硬件復(fù)雜度,因此高基SRT算法除法器仍然不適合在處理器中實(shí)現(xiàn)。TMS320C6000整數(shù)除法中所需的周期數(shù)也較多,且根據(jù)商的位數(shù)變化而變化,對(duì)于32位定點(diǎn)無符號(hào)除法根據(jù)求商的位數(shù)需要18?42個(gè)周期,而對(duì)于32位定點(diǎn)有符號(hào)除法根據(jù)求商的位數(shù)則需要16?41個(gè)周期。
【發(fā)明內(nèi)容】
[0006]本發(fā)明要解決的技術(shù)問題就在于:針對(duì)現(xiàn)有技術(shù)存在的技術(shù)問題,本發(fā)明提供一種能夠?qū)崿F(xiàn)64位、32位定點(diǎn)整數(shù)除法以及IEEE-754標(biāo)準(zhǔn)雙精度浮點(diǎn)除法、單精度浮點(diǎn)除法,功能全面且實(shí)現(xiàn)方法簡單、執(zhí)行周期短、延時(shí)小、除法執(zhí)行效率高的GPDSP中定點(diǎn)和浮點(diǎn)混合除法的實(shí)現(xiàn)方法。
[0007]為解決上述技術(shù)問題,本發(fā)明提出的技術(shù)方案為:
[0008]一種GPDSP中定點(diǎn)和浮點(diǎn)混合除法的實(shí)現(xiàn)方法,具體實(shí)施步驟為:
[0009]I)數(shù)據(jù)類型判斷:輸入待運(yùn)算的除數(shù)和被除數(shù),若為64位或32位定點(diǎn)整數(shù),轉(zhuǎn)入執(zhí)行步驟2);若為IEEE-754標(biāo)準(zhǔn)雙精度或單精度浮點(diǎn)數(shù)據(jù),轉(zhuǎn)入執(zhí)行步驟3);
[0010]2)定點(diǎn)除法:所述除數(shù)和被除數(shù)根據(jù)前導(dǎo)O個(gè)數(shù)進(jìn)行移位并計(jì)算出執(zhí)行除法迭代的迭代次數(shù),根據(jù)定點(diǎn)數(shù)據(jù)類型以及所述迭代次數(shù)執(zhí)行一級(jí)或多級(jí)迭代計(jì)算,其中每級(jí)執(zhí)行次數(shù)不超過GPDSP的最大指令周期數(shù)的SRT算法的迭代,迭代計(jì)算完成后得到商結(jié)果;將所述商結(jié)果進(jìn)行移位后得到最終的商結(jié)果,并根據(jù)最終商結(jié)果得到最終的余數(shù);
[0011]3)浮點(diǎn)除法:計(jì)算出所述除數(shù)和被除數(shù)的尾數(shù),采用SRT算法執(zhí)行所述尾數(shù)的除法迭代計(jì)算并將迭代計(jì)算通過一級(jí)或截?cái)酁槎嗉?jí)執(zhí)行,其中每級(jí)執(zhí)行次數(shù)不超過GPDSP的最大指令周期數(shù)的 SRT算法的迭代,迭代計(jì)算完成后得到商結(jié)果和余數(shù);根據(jù)浮點(diǎn)數(shù)據(jù)類型以及迭代計(jì)算所執(zhí)行的級(jí)數(shù)將所述商結(jié)果的尾數(shù)進(jìn)行規(guī)格化,得到最終的商結(jié)果。
[0012]作為本發(fā)明進(jìn)一步改進(jìn),所述步驟2)的具體實(shí)施步驟為:
[0013]2.1)定點(diǎn)預(yù)處理:判斷是否為有符號(hào)數(shù),若為有符號(hào)數(shù),對(duì)除數(shù)和被除數(shù)取絕對(duì)值,若為無符號(hào)數(shù),不進(jìn)行取絕對(duì)值操作;對(duì)被除數(shù)和除數(shù)進(jìn)行前導(dǎo)0,得到被除數(shù)和除數(shù)的前導(dǎo)O個(gè)數(shù)分別為M和N后將被除數(shù)左移M位、除數(shù)左移N位;根據(jù)除數(shù)和被除數(shù)的前導(dǎo)O個(gè)數(shù)M和N按照下式計(jì)算得到除法迭代的迭代次數(shù)L,其中當(dāng)M>N時(shí),得到商為0,退出計(jì)算;
[0014]L = N-M+1(I)
[0015]2.2)定點(diǎn)迭代計(jì)算:根據(jù)定點(diǎn)數(shù)據(jù)類型以及所述步驟2.1)計(jì)算得出的迭代次數(shù)L獲取迭代計(jì)算級(jí)數(shù)NUM,執(zhí)行NUM級(jí)迭代計(jì)算,每級(jí)執(zhí)行多次SRT算法的迭代,迭代計(jì)算完成后得到商結(jié)果和余數(shù);
[0016]2.3)定點(diǎn)結(jié)果后規(guī)整:將所述商結(jié)果右移(N-M)位,得到最終的商結(jié)果;將除數(shù)與商相乘,得到相乘結(jié)果MID,被除數(shù)減去所述相乘結(jié)果MID得到最終的余數(shù)。
[0017]作為本發(fā)明進(jìn)一步改進(jìn),所述步驟2.2)中根據(jù)定點(diǎn)數(shù)據(jù)類型以及所述步驟2.1)計(jì)算得出的迭代次數(shù)L獲取迭代計(jì)算級(jí)數(shù)NUM的具體實(shí)施方法為:通過查詢預(yù)先建立的迭代次數(shù)L與迭代計(jì)算級(jí)數(shù)對(duì)應(yīng)關(guān)系表獲取到迭代計(jì)算級(jí)數(shù)NUM。
[0018]作為本發(fā)明進(jìn)一步改進(jìn),所述步驟2)中根據(jù)定點(diǎn)數(shù)據(jù)類型以及迭代次數(shù)執(zhí)行一級(jí)或多級(jí)迭代計(jì)算的具體實(shí)施方法為:當(dāng)為64位定點(diǎn)整數(shù)時(shí),若所述迭代次數(shù)不大于24,執(zhí)行一級(jí)迭代計(jì)算,若所述迭代次數(shù)大于24且不大于48,執(zhí)行兩級(jí)迭代計(jì)算,若所述迭代次數(shù)大于48且不大于64,執(zhí)行三級(jí)迭代計(jì)算,其中每級(jí)迭代計(jì)算執(zhí)行6次基為16的SRT算法的迭代計(jì)算,執(zhí)行下一級(jí)迭代計(jì)算時(shí),將上一級(jí)迭代計(jì)算輸出的商和余數(shù)作為下一級(jí)迭代計(jì)算的輸入;當(dāng)為32位定點(diǎn)整數(shù)時(shí),若所述迭代次數(shù)不大于12,執(zhí)行一級(jí)迭代計(jì)算,若所述迭代次數(shù)大于12且不大于24,執(zhí)行兩級(jí)迭代計(jì)算,若所述迭代次數(shù)大于24且不大于32,執(zhí)行三級(jí)迭代計(jì)算,其中每級(jí)迭代計(jì)算執(zhí)行3次基為16的SRT算法的迭代計(jì)算,執(zhí)行下一級(jí)迭代計(jì)算時(shí),將上一級(jí)迭代計(jì)算輸出的商和余數(shù)作為下一級(jí)迭代計(jì)算的輸入。
[0019]作為本發(fā)明進(jìn)一步改進(jìn),所述步驟3)中采用SRT算法執(zhí)行所述尾數(shù)的除法迭代計(jì)算并將迭代計(jì)算通過一級(jí)或截?cái)酁槎嗉?jí)執(zhí)行的具體實(shí)施方法為:采用基為16的SRT算法并將迭代計(jì)算截?cái)酁槿?jí)執(zhí)行,其中當(dāng)為雙精度浮點(diǎn)數(shù)據(jù)時(shí),每級(jí)執(zhí)行5次基為16的SRT算法的迭代計(jì)算;當(dāng)為單精度浮點(diǎn)數(shù)據(jù)時(shí),每級(jí)執(zhí)行2次基為16的SRT算法的迭代計(jì)算。
[0020]作為本發(fā)明進(jìn)一步改進(jìn),所述步驟3)中根據(jù)浮點(diǎn)數(shù)據(jù)類型以及迭代計(jì)算所執(zhí)行的級(jí)數(shù)將所述商結(jié)果的尾數(shù)進(jìn)行規(guī)格化的具體實(shí)施方法為:當(dāng)為雙精度浮點(diǎn)數(shù)據(jù)時(shí),若迭代計(jì)算所執(zhí)行的級(jí)數(shù)為一級(jí),將所述商結(jié)果的尾數(shù)規(guī)格化為20位,若迭代計(jì)算所執(zhí)行的級(jí)數(shù)為兩級(jí),將所述商結(jié)果的尾數(shù)規(guī)格化為40位,若迭代計(jì)算所執(zhí)行的級(jí)數(shù)為三級(jí),將所述商結(jié)果的尾數(shù)規(guī)格化為53位;當(dāng)為單精度浮點(diǎn)數(shù)據(jù)時(shí),若迭代計(jì)算所執(zhí)行的級(jí)數(shù)為一級(jí),將所述商結(jié)果的尾數(shù)規(guī)格化為8位,若迭代計(jì)算所執(zhí)行的級(jí)數(shù)為兩級(jí),將商結(jié)果的尾數(shù)規(guī)格化為16位,若迭代計(jì)算所執(zhí)行的級(jí)數(shù)為三級(jí),將商結(jié)果的尾數(shù)規(guī)格化為24位。
[0021]作為本發(fā)明進(jìn)一步改進(jìn):所述基為16的SRT算法通過兩次基為4的SRT算法實(shí)現(xiàn)。
[0022]與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:
[0023]I)本發(fā)明通過對(duì)定點(diǎn)數(shù)據(jù)進(jìn)行預(yù)處理、不同級(jí)的除法迭代計(jì)算以及結(jié)果后規(guī)整實(shí)現(xiàn)定點(diǎn)除法運(yùn)算,對(duì)浮點(diǎn)數(shù)據(jù)執(zhí)行截?cái)酁槎嗉?jí)的尾數(shù)除法迭代、商的尾數(shù)規(guī)格化實(shí)現(xiàn)浮點(diǎn)除法運(yùn)算,并根據(jù)數(shù)據(jù)類型執(zhí)行不同次數(shù)的SRT算法迭代,從而可實(shí)現(xiàn)64位定點(diǎn)、32位定點(diǎn)、雙精度浮點(diǎn)和單精度浮點(diǎn)的混合除法運(yùn)算;通過復(fù)用關(guān)鍵的迭代計(jì)算部分,使得能夠在同一硬件平臺(tái)上實(shí)現(xiàn)定點(diǎn)和浮點(diǎn)的混合除法運(yùn)算,除法運(yùn)算的功能全面且所需的面積開銷小;
[0024]2)本發(fā)明采用SRT-16算法實(shí)現(xiàn)除法迭代計(jì)算,所需的執(zhí)行周期短,且通過調(diào)用一次指令執(zhí)行一級(jí)迭代計(jì)算,每一級(jí)執(zhí)行的迭代計(jì)算次數(shù)不超過處理器的最大指令周期,從而減少執(zhí)行的指令周期及中斷處理邏輯的硬件復(fù)雜度,使得高基除法能夠直接在處理器中實(shí)現(xiàn);
[0025]3)本發(fā)明的定點(diǎn)除法中通過求商的精度控制調(diào)用迭代計(jì)算執(zhí)行的級(jí)數(shù),能夠有效減少執(zhí)行周期;浮點(diǎn)除法中則根據(jù)迭代計(jì)算執(zhí)行的級(jí)數(shù)調(diào)整和控制商的運(yùn)算精度,能夠滿足多種應(yīng)用需求。
[0026]4)本發(fā)明通過采用兩次SRT-4算法嵌套實(shí)現(xiàn)SRT-16算法的除法迭代計(jì)算,降低除法實(shí)現(xiàn)的復(fù)雜度,除法運(yùn)算性能高、結(jié)構(gòu)簡單且易于設(shè)計(jì)和實(shí)現(xiàn)。
【專利附圖】
【附圖說明】
[0027]圖1是本實(shí)施例GPDSP中定點(diǎn)和浮點(diǎn)混合除法的實(shí)現(xiàn)方法流程示意圖。
[0028]圖2是本實(shí)施例GPDSP中定點(diǎn)和浮點(diǎn)混合除法的具體指令實(shí)現(xiàn)流程示意圖。
[0029]圖3是本實(shí)施例中迭代次數(shù)與迭代指令對(duì)應(yīng)關(guān)系表示意圖。
[0030]圖4是本實(shí)施例定點(diǎn)除法中迭代指令執(zhí)行的控制原理示意圖。
[0031]圖5是本實(shí)施例中浮點(diǎn)結(jié)果規(guī)格化指令實(shí)現(xiàn)原理示意圖。
[0032]圖6是本實(shí)施例浮點(diǎn)除法中商規(guī)格化實(shí)現(xiàn)方法示意圖。
[0033]圖7是本實(shí)施例GPDSP中定點(diǎn)和浮點(diǎn)混合除法具體實(shí)施原理示意圖。
[0034]圖8是本實(shí)施例中SRT-16算法實(shí)現(xiàn)結(jié)構(gòu)示意圖。
【具體實(shí)施方式】[0035]以下結(jié)合說明書附圖和具體優(yōu)選的實(shí)施例對(duì)本發(fā)明作進(jìn)一步描述,但并不因此而限制本發(fā)明的保護(hù)范圍。
[0036]以下以采用基為16的SRT(SRT-16)算法實(shí)現(xiàn)除法迭代計(jì)算為例對(duì)本發(fā)明進(jìn)行說明。
[0037]如圖1所示,本實(shí)施例GPDSP中定點(diǎn)和浮點(diǎn)混合除法的實(shí)現(xiàn)方法,步驟為:
[0038]I)數(shù)據(jù)類型判斷:輸入待運(yùn)算的除數(shù)和被除數(shù),若為64位或32位定點(diǎn)整數(shù),轉(zhuǎn)入執(zhí)行步驟2);若為IEEE-754標(biāo)準(zhǔn)雙精度或單精度浮點(diǎn)數(shù)據(jù),轉(zhuǎn)入執(zhí)行步驟3);
[0039]2)定點(diǎn)除法:除數(shù)和被除數(shù)根據(jù)前導(dǎo)O個(gè)數(shù)進(jìn)行移位并計(jì)算出執(zhí)行除法迭代的迭代次數(shù),根據(jù)定點(diǎn)數(shù)據(jù)類型以及所述迭代次數(shù)執(zhí)行一級(jí)或多級(jí)迭代計(jì)算,其中每級(jí)執(zhí)行次數(shù)不超過GPDSP的最大指令周期數(shù)的SRT算法的迭代,迭代計(jì)算完成后得到商結(jié)果;將商結(jié)果進(jìn)行移位后得到最終的商結(jié)果,并根據(jù)最終商結(jié)果得到最終的余數(shù);
[0040]3)浮點(diǎn)除法:計(jì)算出所述除數(shù)和被除數(shù)的尾數(shù),采用SRT算法執(zhí)行所述尾數(shù)的除法迭代計(jì)算并將迭代計(jì)算通過一級(jí)或截?cái)酁槎嗉?jí)執(zhí)行,其中每級(jí)執(zhí)行次數(shù)不超過GPDSP的最大指令周期數(shù)的SRT算法的迭代,迭代計(jì)算完成后得到商結(jié)果和余數(shù);根據(jù)浮點(diǎn)數(shù)據(jù)類型以及迭代計(jì)算所執(zhí)行的級(jí)數(shù)將所述商結(jié)果的尾數(shù)進(jìn)行規(guī)格化,得到最終的商結(jié)果。
[0041]本實(shí)施例中,可以輸入定點(diǎn)整數(shù)數(shù)據(jù)執(zhí)行定點(diǎn)除法,也可以輸入浮點(diǎn)數(shù)據(jù)執(zhí)行浮點(diǎn)除法,其中定點(diǎn)除法中包括輸入64位或32位的有符號(hào)、無符號(hào)定點(diǎn)整數(shù),進(jìn)行64位有符號(hào)、無符號(hào)定點(diǎn)整數(shù)除法,或32位有符號(hào)、無符號(hào)定點(diǎn)整數(shù)除法,浮點(diǎn)除法中包括輸入IEEE-754標(biāo)準(zhǔn)雙精度浮點(diǎn)(以 下簡稱雙精度浮點(diǎn)數(shù)據(jù))數(shù)據(jù)或IEEE-754標(biāo)準(zhǔn)單精度浮點(diǎn)(以下簡稱單精度浮點(diǎn))數(shù)據(jù),進(jìn)行雙精度浮點(diǎn)除法或單精度浮點(diǎn)除法。
[0042]本實(shí)施例中,通過定義混合浮點(diǎn)指令集分別實(shí)現(xiàn)64位有符號(hào)和無符號(hào)定點(diǎn)整數(shù)除法、32位有符號(hào)和無符號(hào)定點(diǎn)整數(shù)除法、IEEE-754標(biāo)準(zhǔn)雙精度浮點(diǎn)除法和單精度浮點(diǎn)除法,指令包括實(shí)現(xiàn)64位有符號(hào)和無符號(hào)定點(diǎn)整數(shù)除法的組合指令(ABS、LZD、SHFLL、SUB、TIME, ISRT64、SUBU, SHFLR和MULU)、32位有符號(hào)和無符號(hào)定點(diǎn)整數(shù)除法的組合指令(ABS32、LZD32、SHFLL32、SUB32、--ΜΕ32、ISRT32、SUBU32、SHFLR32 和 MULU32),雙精度浮點(diǎn)除法的組合指令(FMAND、FSim^PFNORMD)和單精度浮點(diǎn)除法的組合指令(FMANS、FSRTS和FN0RMS)。各指令完成的功能如下表所示:
[0043]表1混合浮點(diǎn)指令集功能描述
【權(quán)利要求】
1.一種GPDSP中定點(diǎn)和浮點(diǎn)混合除法的實(shí)現(xiàn)方法,其特征在于具體實(shí)施步驟為: 1)數(shù)據(jù)類型判斷:輸入待運(yùn)算的除數(shù)和被除數(shù),若為64位或32位定點(diǎn)整數(shù),轉(zhuǎn)入執(zhí)行步驟2);若為IEEE-754標(biāo)準(zhǔn)雙精度或單精度浮點(diǎn)數(shù)據(jù),轉(zhuǎn)入執(zhí)行步驟3); 2)定點(diǎn)除法:所述除數(shù)和被除數(shù)根據(jù)前導(dǎo)O個(gè)數(shù)進(jìn)行移位并計(jì)算出執(zhí)行除法迭代的迭代次數(shù),根據(jù)定點(diǎn)數(shù)據(jù)類型以及所述迭代次數(shù)執(zhí)行一級(jí)或多級(jí)迭代計(jì)算,其中每級(jí)執(zhí)行次數(shù)不超過GPDSP的最大指令周期數(shù)的SRT算法的迭代,迭代計(jì)算完成后得到商結(jié)果;將所述商結(jié)果進(jìn)行移位后得到最終的商結(jié)果,并根據(jù)最終商結(jié)果得到最終的余數(shù); 3)浮點(diǎn)除法:計(jì)算出所述除數(shù)和被除數(shù)的尾數(shù),采用SRT算法執(zhí)行所述尾數(shù)的除法迭代計(jì)算并將迭代計(jì)算通過一級(jí)或截?cái)酁槎嗉?jí)執(zhí)行,其中每級(jí)執(zhí)行次數(shù)不超過GPDSP的最大指令周期數(shù)的SRT算法的迭代,迭代計(jì)算完成后得到商結(jié)果和余數(shù);根據(jù)浮點(diǎn)數(shù)據(jù)類型以及迭代計(jì)算所執(zhí)行的級(jí)數(shù)將所述商結(jié)果的尾數(shù)進(jìn)行規(guī)格化,得到最終的商結(jié)果。
2.根據(jù)權(quán)利要求1所述的GPDSP中定點(diǎn)和浮點(diǎn)混合除法的實(shí)現(xiàn)方法,其特征在于,所述步驟2)的具體實(shí)施步驟為: 2.1)定點(diǎn)預(yù)處理:判斷是否為有符號(hào)數(shù),若為有符號(hào)數(shù),對(duì)除數(shù)和被除數(shù)取絕對(duì)值,若為無符號(hào)數(shù),不進(jìn)行取絕對(duì)值操作;對(duì)被除數(shù)和除數(shù)進(jìn)行前導(dǎo)O,得到被除數(shù)和除數(shù)的前導(dǎo)O個(gè)數(shù)分別為M和N后將被除數(shù)左移M位、除數(shù)左移N位;根據(jù)除數(shù)和被除數(shù)的前導(dǎo)O個(gè)數(shù)M和N按照下式計(jì)算得到除法迭代的迭代次數(shù)L,其中當(dāng)M>N時(shí),得到商為O,退出計(jì)算; L = N-M+1(I) 2.2)定點(diǎn)迭代計(jì)算:根據(jù)定點(diǎn)數(shù)據(jù)類型以及所述步驟2.1)計(jì)算得出的迭代次數(shù)L獲取迭代計(jì)算級(jí)數(shù)NUM,執(zhí)行NUM級(jí)迭代計(jì)算,每級(jí)執(zhí)行多次SRT算法的迭代,迭代計(jì)算完成后得到商結(jié)果和余數(shù); 2.3)定點(diǎn)結(jié)果后規(guī)整:將所述商結(jié)果右移(N-M)位,得到最終的商結(jié)果;將除數(shù)與商相乘,得到相乘結(jié)果MID,被除數(shù)減去所述相乘結(jié)果MID得到最終的余數(shù)。
3.根據(jù)權(quán)利要求2所述的GPDSP中定點(diǎn)和浮點(diǎn)混合除法的實(shí)現(xiàn)方法,其特征在于,所述步驟2.2)中根據(jù)定點(diǎn)數(shù)據(jù)類型以及所述步驟2.1)計(jì)算得出的迭代次數(shù)L獲取迭代計(jì)算級(jí)數(shù)NUM的具體實(shí)施方法為:通過查詢預(yù)先建立的迭代次數(shù)L與迭代計(jì)算級(jí)數(shù)對(duì)應(yīng)關(guān)系表獲取到迭代計(jì)算級(jí)數(shù)NUM。
4.根據(jù)權(quán)利要求1所述的GPDSP中定點(diǎn)和浮點(diǎn)混合除法的實(shí)現(xiàn)方法,其特征在于,所述步驟2)中根據(jù)定點(diǎn)數(shù)據(jù)類型以及迭代次數(shù)執(zhí)行一級(jí)或多級(jí)迭代計(jì)算的具體實(shí)施方法為:當(dāng)為64位定點(diǎn)整數(shù)時(shí),若所述迭代次數(shù)不大于24,執(zhí)行一級(jí)迭代計(jì)算,若所述迭代次數(shù)大于24且不大于48,執(zhí)行兩級(jí)迭代計(jì)算,若所述迭代次數(shù)大于48且不大于64,執(zhí)行三級(jí)迭代計(jì)算,其中每級(jí)迭代計(jì)算執(zhí)行6次基為16的SRT算法的迭代計(jì)算,執(zhí)行下一級(jí)迭代計(jì)算時(shí),將上一級(jí)迭代計(jì)算輸出的商和余數(shù)作為下一級(jí)迭代計(jì)算的輸入;當(dāng)為32位定點(diǎn)整數(shù)時(shí),若所述迭代次數(shù)不大于12,執(zhí)行一級(jí)迭代計(jì)算,若所述迭代次數(shù)大于12且不大于24,執(zhí)行兩級(jí)迭代計(jì)算,若所述迭代次數(shù)大于24且不大于32,執(zhí)行三級(jí)迭代計(jì)算,其中每級(jí)迭代計(jì)算執(zhí)行3次基為16的SRT算法的迭代計(jì)算,執(zhí)行下一級(jí)迭代計(jì)算時(shí),將上一級(jí)迭代計(jì)算輸出的商和余數(shù)作為下一級(jí)迭代計(jì)算的輸入。
5.根據(jù)權(quán)利要求4所述的GPDSP中定點(diǎn)和浮點(diǎn)混合除法的實(shí)現(xiàn)方法,其特征在于,所述步驟3)中采用SRT算法執(zhí)行所述尾數(shù)的除法迭代計(jì)算并將迭代計(jì)算通過一級(jí)或截?cái)酁槎嗉?jí)執(zhí)行的具體實(shí)施方法為:采用基為16的SRT算法并將迭代計(jì)算截?cái)酁槿?jí)執(zhí)行,其中當(dāng)為雙精度浮點(diǎn)數(shù)據(jù)時(shí),每級(jí)執(zhí)行5次基為16的SRT算法的迭代計(jì)算;當(dāng)為單精度浮點(diǎn)數(shù)據(jù)時(shí),每級(jí)執(zhí)行2次基為16的SRT算法的迭代計(jì)算。
6.根據(jù)權(quán)利要求1~5中任意一項(xiàng)所述的GPDSP中定點(diǎn)和浮點(diǎn)混合除法的實(shí)現(xiàn)方法,其特征在于,所述步驟3)中根據(jù)浮點(diǎn)數(shù)據(jù)類型以及迭代計(jì)算所執(zhí)行的級(jí)數(shù)將所述商結(jié)果的尾數(shù)進(jìn)行規(guī)格化的具體實(shí)施方法為:當(dāng)為雙精度浮點(diǎn)數(shù)據(jù)時(shí),若迭代計(jì)算所執(zhí)行的級(jí)數(shù)為一級(jí),將所述商結(jié)果的尾數(shù)規(guī)格化為20位,若迭代計(jì)算所執(zhí)行的級(jí)數(shù)為兩級(jí),將所述商結(jié)果的尾數(shù)規(guī)格化為40位,若迭代計(jì)算所執(zhí)行的級(jí)數(shù)為三級(jí),將所述商結(jié)果的尾數(shù)規(guī)格化為53位;當(dāng)為單精度浮 點(diǎn)數(shù)據(jù)時(shí),若迭代計(jì)算所執(zhí)行的級(jí)數(shù)為一級(jí),將所述商結(jié)果的尾數(shù)規(guī)格化為8位,若迭代計(jì)算所執(zhí)行的級(jí)數(shù)為兩級(jí),將商結(jié)果的尾數(shù)規(guī)格化為16位,若迭代計(jì)算所執(zhí)行的級(jí)數(shù)為三級(jí),將商結(jié)果的尾數(shù)規(guī)格化為24位。
7.根據(jù)權(quán)利要求4或5所述的GPDSP中定點(diǎn)和浮點(diǎn)混合除法的實(shí)現(xiàn)方法,其特征在于,所述基為16的SRT算法通過兩次基為4的SRT算法實(shí)現(xiàn)。
【文檔編號(hào)】G06F7/537GK103984522SQ201410227927
【公開日】2014年8月13日 申請(qǐng)日期:2014年5月27日 優(yōu)先權(quán)日:2014年5月27日
【發(fā)明者】彭元喜, 鄧子椰, 雷元武, 陳書明, 郭陽, 萬江華 申請(qǐng)人:中國人民解放軍國防科學(xué)技術(shù)大學(xué)