專利名稱::一種用于浮點除法和平方根運算的預(yù)處理電路結(jié)構(gòu)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及浮點運算單元設(shè)計,是一種用于實現(xiàn)浮點除法和浮點平方根運算的預(yù)處理電路結(jié)構(gòu)。
背景技術(shù):
:近年來,由于計算機的計算復(fù)雜度大大增加,浮點處理器的應(yīng)用十分廣泛。同時工業(yè)界廣泛采用性能評測標(biāo)準(zhǔn),促使處理器設(shè)計者投入更多的精力開發(fā)浮點運算單元?;谔囟☉?yīng)用的系統(tǒng),例如高性能的圖像處理系統(tǒng),對處理器提出了更高的要求,這些都需要高速的浮點運算單元來滿足。浮點運算單元一般具有加法、乘法、除法、平方根運算等基本功能。其中,實現(xiàn)除法和平方根運算的一種算法是基于乘法迭代的方法。這種算法的優(yōu)點是每次迭代精度增加一倍,需要迭代的次數(shù)少;由于共用乘法單元,需要增加的面積相對少。但同時,這種方法需要首先得到運算所需的初始值,這就需要增加一個預(yù)處理階段。在預(yù)處理階段中,通過查找表及其他邏輯得到輸入操作數(shù)的倒數(shù)或平方根倒數(shù)的近似值,作為迭代算法的初始值。一種使用預(yù)處理結(jié)構(gòu)的浮點運算單元的結(jié)構(gòu)示意圖見圖1。二進(jìn)制數(shù)可以用這種形式表示(-1)S×(b0b1b2…bn-1)×2E。其中,f=b1b2…bn-1。這樣一個數(shù)存儲在一個32位二進(jìn)制段的三個字段中,即為單精度浮點數(shù)的存儲格式,見圖2。其中包括符號s(1位)0表示正,1表示負(fù)。指數(shù)e(8位)指數(shù)的表示方法稱為偏值表示法,一個固定的偏值從字段中減去,才得到真正的指數(shù),對于32位的單精度浮點數(shù),偏值為127(例如,如果真正的指數(shù)為0,則e=01111111)。尾數(shù)f(23位)小數(shù)點的位置約定在最左(最高)有效位的右邊,即小數(shù)點左邊有1位,對于規(guī)格化數(shù),這位是1,小數(shù)點右邊的部分稱為尾數(shù)(即f),只有這部分存儲于字段中。對于浮點除法B/A和平方根運算令操作數(shù)A的符號位為0,指數(shù)為01111111,尾數(shù)不變,記為a,需要得到1/a、和的近似值,作為迭代的初始值。這就需要在存儲器的對應(yīng)地址中存儲按一定算法得到的值,這樣就形成了一個查找表。在預(yù)處理階段,將a的尾數(shù)的一部分作為地址,到存儲器中查找,得到對應(yīng)地址中存儲的值,再經(jīng)過一些其他運算,就可以得到所需要的初始值。初始值精度越高,需要迭代的次數(shù)越少,但是查找表需要的面積大大增加。如果是單精度計算,且希望僅通過一次迭代得到單精度的計算結(jié)果,就需要尾數(shù)為14位精度的初始值。查找表有很多不同的算法和實現(xiàn)方式,其中一種算法是對稱雙向查找表(參考文獻(xiàn)Approximatingelementaryfunctionswithsymmetricbipartitetables)。這種算法由Taylor級數(shù)展開得到,下面對它的原理作簡要介紹。這里,將a的尾數(shù)記為y,將需要得到近似值的函數(shù)記為f(y)。首先,將y分為四段,y0、y1、y2、y3,其對應(yīng)的值為y=y(tǒng)0+y1+y2+y3,四段的位數(shù)分別是n0、n1、n2、n3。要使用兩個查找表分別存儲一定位數(shù)的a0、a1,位數(shù)根據(jù)所需精度決定,計算公式是a0(y0,y1)=f(1+y0+y1+δ2+δ3)a1(y0,y2)=f′(1+y0+δ1+δ2+δ3)(y2-δ2)其中,y0、y1、y2分別為其在y中對應(yīng)的值,a0(y0,y1)的存儲地址為y0、y1的各位連接,a1(y0,y2)的存儲地址為y0、y2的各位連接。具有了這樣的查找表后,就可以通過查找得到f(y)的近似值。y輸入后,截取y0、y1、y2,將y0、y1的各位連接作為地址查找,得到對應(yīng)地址中存儲的a0;將y0、y2的各位連接作為地址查找,得到對應(yīng)地址中存儲的a1。然后,a0、a1相加,就近舍入,就得到了所需的近似值f(y)=a0(y0,y1)+a1(y0,y2)。所謂對稱,指的是a1的查找。將y2去掉最高位后剩下的位記為y2′。存儲a1的查找表只要存儲y2的最高位為0時的a1(y0,y2)的值即可,存儲地址為y0、y2′的各位連接,這樣可以節(jié)約一半的面積。查找過程是如果y2最高位是0,則由y2剩下的位y2′作為地址查找a1(y0,y2);如果y2最高位是1,則將y2剩下的位取反后作為地址查找a1(y0,y2),然后將查得的值取反即可。這種查找表算法可以用于實現(xiàn)除法和平方根運算的預(yù)處理結(jié)構(gòu)。
發(fā)明內(nèi)容本發(fā)明的目的在于設(shè)計一種用于浮點除法和平方根運算的預(yù)處理電路結(jié)構(gòu),它適用于基于乘法迭代方法實現(xiàn)的浮點除法和平方根運算,能夠得到除法和平方根運算所需的初始值。本發(fā)明的特征在于,含有操作數(shù)處理電路、尾數(shù)截取電路、第一異或電路、第一地址寄存器、第二地址寄存器、第一至第六共六個存儲器、補位電路、第一選擇電路、第二異或電路、加法電路、和處理電路,以及第二選擇電路,其中,操作數(shù)處理電路,輸入是單精度操作數(shù)operand_A,輸出是a_man,操作數(shù)operand_A的23位尾數(shù);exp_odd_even,單精度浮點數(shù)存儲格式中操作數(shù)operand_A的指數(shù)的最低位;尾數(shù)截取電路,輸入是所述數(shù)據(jù)a_man,輸出為所述數(shù)據(jù)a_man的高6位y0、第7至第10位y1、第11位c,以及第12至第15位y2;第一異或電路,輸入是所述尾數(shù)截取電路輸出的數(shù)據(jù)c,以及y2,在對所述數(shù)據(jù)y2的每一位與數(shù)據(jù)c作異或后,得到y(tǒng)2_xor,共4位;第一地址寄存器,輸入是所述尾數(shù)截取電路輸出的數(shù)據(jù)y0和y1,共10位,用s0表示;第二地址寄存器,輸入是所述尾數(shù)截取電路輸出的數(shù)據(jù)y0,以及所述第一異或電路輸出的數(shù)據(jù)y2_xor,共10位,用s1表示;第一存儲器,作倒數(shù)查找表用,地址位為10位,數(shù)據(jù)位為15位,在地址h中存儲的數(shù)據(jù)是d=1/(1+h1×2-6+h2×2-10+δ2+δ3),h1為地址h的高6位,h2為地址h的低4位,δ2=2-11-2-16,δ3=2-16-2-24,d就近舍入得到16位有效數(shù)字,其中第一位是1,在地址h中只存儲后15位,所述第一存儲器的輸入是所述第一地址寄存器輸出的地址s0,輸出是數(shù)據(jù)Q1;第二存儲器,作平方根查找表1用,地址位為10位,數(shù)據(jù)位為15位,在地址h中存儲的數(shù)據(jù)是h1為地址h的高6位,h2為地址h的低4位,δ2=2-11-2-16,δ3=2-16-2-24,d就近舍入得到16位有效數(shù)字,其中第一位是1,在地址h中只存儲后15位,所述第二存儲器的輸入是所述第一地址寄存器輸出的地址s0,輸出是數(shù)據(jù)Q2;第三存儲器,作平方根查找表2用,地址位為10位,數(shù)據(jù)位為15位,在地址h中存儲的數(shù)據(jù)是h1為地址h的高6位,h2為地址h的低4位,δ2=2-11-2-16,δ3=2-16-2-24,d就近舍入得到16位有效數(shù)字,其中第一位是1,在地址h中只存儲后15位,所述第三存儲器的輸入是所述第一地址寄存器輸出的地址s0,輸出是數(shù)據(jù)Q3;第四存儲器,也作倒數(shù)查找表用,地址位為10位,數(shù)據(jù)位為5位,在地址h中存儲的數(shù)據(jù)是d=-[1/(1+h1×2-6+δ1+δ2+δ3)2]×(h2×2-15-δ2),h1為地址h的高6位,h2為地址h的低4位,δ1=2-7-2-11,δ2=2-11-2-16,δ3=2-16-2-24,d截取前5位有效數(shù)字,存儲在地址h中,所述第四存儲器的輸入是所述第二地址寄存器輸出的地址s1,輸出是數(shù)據(jù)Q4;第五存儲器,也作平方根查找表1用,地址位為10位,數(shù)據(jù)位為4位,在地址h中存儲的數(shù)據(jù)是h1為地址h的高6位,h2為地址h的低4位,δ1=2-7-2-11,δ2=2-11-2-16,δ3=2-16-2-24,d截取前4位有效數(shù)字,存儲在地址h中,所述第五存儲器的輸入是所述第二地址寄存器輸出的地址s1,輸出是數(shù)據(jù)Q5;第六存儲器,也作平方根查找表2用,地址位為10位,數(shù)據(jù)位為4位,在地址h中存儲的數(shù)據(jù)是h1為地址h的高6位,h2為地址h的低4位,δ1=2-7-2-11,δ2=2-11-2-16,δ3=2-16-2-24,d截取前4位有效數(shù)字,存儲在地址h中,所述第六存儲器的輸入是所述第二地址寄存器輸出的地址s1,輸出是數(shù)據(jù)Q6;補位電路,六個輸入端分別依次與所述第一至第六存儲器的輸出端相連,分別輸入數(shù)據(jù)Q1至Q6,該補位電路在數(shù)據(jù)Q1、Q2、Q3前各補01,依次得到r1、r2和r3,在數(shù)據(jù)Q4前補12位0,得到r4,在數(shù)據(jù)Q5、Q6前各補13位0,得到r5、r6,從r1至r6的每一個數(shù)據(jù)均為17位;第一選擇電路,分別設(shè)有數(shù)據(jù)exp_odd_even、以及操作狀態(tài)信號operation_in的輸入端,operation_in=0表示需要除法運算的初始值,operation_in=1表示需要平方根運算的初始值,所述第一選擇電路還設(shè)有六個輸入端,分別與所述補位電路的六個輸出端相連,輸入數(shù)據(jù)r1、r2、r3、r4、r5和r6,當(dāng)operation_in=1且exp_odd_even=1時,所述第一選擇電路輸出r2和r5,當(dāng)operation_in=1且exp_odd_even=0時,所述第一選擇電路輸出r3和r6,在其他情況下,所述第一選擇電路輸出r1和r4,所述第一選擇電路的兩個輸出分別用a0、a1表示;第二異或電路,兩個輸入端分別與所述尾數(shù)截取電路的數(shù)據(jù)c的輸出端、所述第一選擇電路的數(shù)據(jù)a1的輸出端相連,將數(shù)據(jù)a1的每一位與數(shù)據(jù)c作異或,得到a1_xor,共17位;加法電路,兩個數(shù)據(jù)輸入端分別與所述第一選擇電路的數(shù)據(jù)a0的輸出端、所述第二異或電路的數(shù)據(jù)a1_xor的輸出端相連,首先把數(shù)據(jù)a0和a1_xor相加,得到17位的和,再把這17位的和就近舍入到15位,當(dāng)?shù)?6位是1時則進(jìn)位,是0時則截斷,得到和sum,共15位;和處理電路,輸入端與所述加法電路的sum輸出端相連,截取sum的第3位到第15位,再在前面補001111110,后面補10個0,得到seed1,共32位;再截取sum的第2位到第15位,前面補001111111,后面補9個0,得到seed2,共32位;再截取sum的第1位,得到flag;第二選擇電路,控制信號輸入端與所述和處理電路的flag信號輸出端相連,兩個數(shù)據(jù)輸入端分別與所述和處理電路的seed1、seed2數(shù)據(jù)輸出端相連,當(dāng)flag=0時,選擇seed1輸出,當(dāng)flag=1時,選擇seed2輸出,輸出結(jié)果x0即為所述預(yù)處理電路結(jié)構(gòu)的輸出結(jié)果,共32位,作除法或平方根運算的初始值用。本發(fā)明的預(yù)處理電路結(jié)構(gòu)可以得到基于乘法迭代實現(xiàn)的單精度浮點除法和平方根運算所需的初始值,是用相對較小的面積和較快的速度實現(xiàn)的。由于使用了對稱雙向查找表,比直接查找的查找表節(jié)省了很大的面積,另外由于對稱性,比一般的雙向查找表也節(jié)省了很多面積。由于本電路結(jié)構(gòu)只需要查找操作和一步加法操作,而不需要乘法操作,可以達(dá)到較快的速度。本發(fā)明的預(yù)處理電路結(jié)構(gòu)可以用在基于乘法迭代實現(xiàn)的單精度浮點除法和平方根運算的多種不同的電路結(jié)構(gòu)之前,得到尾數(shù)為14位精度的初始值輸入后面的電路結(jié)構(gòu)。圖1是一種使用預(yù)處理結(jié)構(gòu)的浮點運算單元的結(jié)構(gòu)示意圖;圖2是單精度浮點數(shù)的存儲格式;圖3是本發(fā)明的預(yù)處理結(jié)構(gòu)的結(jié)構(gòu)框圖。具體實施例方式為實現(xiàn)上述目的,本發(fā)明提供了一種預(yù)處理電路結(jié)構(gòu),它使用了對稱雙向查找表算法,能夠得到單精度浮點除法和平方根運算所需的尾數(shù)為14位精度的初始值,也就是得到操作數(shù)的倒數(shù)的近似值或平方根倒數(shù)的近似值。本發(fā)明提供的預(yù)處理結(jié)構(gòu)具有查找表、加法電路以及其他邏輯,它的結(jié)構(gòu)框圖見圖3,含有操作數(shù)處理電路、尾數(shù)截取電路、第一異或電路、第一地址寄存器、第二地址寄存器、第一存儲器、第二存儲器、第三存儲器、第四存儲器、第五存儲器、第六存儲器、補位電路、第一選擇電路、第二異或電路、加法電路、和處理電路、第二選擇電路,其中,第一存儲器和第四存儲器作為倒數(shù)查找表;其中,第一存儲器的地址位為10位,數(shù)據(jù)位為15位,在地址h中存儲的數(shù)據(jù)是d=1/(1+h1×2-6+h2×2-10+δ2+δ3),其中,h1為h的高6位,h2為h的低4位,δ2=2-11-2-16,δ3=2-16-2-24,d就近舍入得到16位有效數(shù)字,其中第一位是1,只存儲后15位在地址h中;第四存儲器的地址位為10位,數(shù)據(jù)位為5位,在地址h中存儲的數(shù)據(jù)是d=-1/(1+h1×2-6+δ1+δ2+δ3)2×(h2×2-15-δ2),其中,h1為h的高6位,h2為h的低4位,δ1=2-7-2-11,δ2=2-11-2-16,δ3=2-16-2-24,d截取前5位有效數(shù)字,存儲這5位在地址h中;第二存儲器和第五存儲器作為平方根查找表1;其中,第二存儲器的地址位為10位,數(shù)據(jù)位為15位,在地址h中存儲的數(shù)據(jù)是其中,h1為h的高6位,h2為h的低4位,δ2=2-11-2-16,δ3=2-16-2-24,d就近舍入得到16位有效數(shù)字,其中第一位是1,只存儲后15位在地址h中;第五存儲器的地址位為10位,數(shù)據(jù)位為4位,在地址h中存儲的數(shù)據(jù)是其中,h1為h的高6位,h2為h的低4位,δ1=2-7-2-11,δ2=2-11-2-16,δ3=2-16-2-24,d截取前4位有效數(shù)字,存儲這4位在地址h中;第三存儲器和第六存儲器作為平方根查找表2;其中,第三存儲器的地址位為10位,數(shù)據(jù)位為15位,在地址h中存儲的數(shù)據(jù)是其中,h1為h的高6位,h2為h的低4位,δ2=2-11-2-16,δ3=2-16-2-24,d就近舍入得到16位有效數(shù)字,其中第一位是1,只存儲后15位在地址h中;第六存儲器的地址位為10位,數(shù)據(jù)位為4位,在地址h中存儲的數(shù)據(jù)是其中,h1為h的高6位,h2為h的低4位,δ1=2-7-2-11,δ2=2-11-2-16,δ3=2-16-2-24,d截取前4位有效數(shù)字,存儲這4位在地址h中;預(yù)處理結(jié)構(gòu)的輸入信號有單精度操作數(shù)operand_A和操作狀態(tài)信號operation_in(operation_in=0表示需要除法運算的初始值,operation_in=1表示需要平方根運算的初始值);輸入操作數(shù)operand_A輸入操作數(shù)處理電路,該電路截取operand_A的23位尾數(shù)(即operand_A的后23位),得到a_man,并截取operand_A的指數(shù)的最低位(即operand_A的第9位),得到exp_odd_even;a_man輸入到尾數(shù)截取電路,該電路截取a_man的高6位y0(共6位),截取a_man的第7位到第10位y1(共4位),截取a_man的第11位c,截取a_man的第12位到第15位y2(共4位);c和y2輸入第一異或電路,y2的每一位與c作異或,得到y(tǒng)2_xor(共4位);y0和y1連接,存入第一地址寄存器,記為s0(共10位);y0和y2_xor連接,存入第二地址寄存器,記為s1(共10位);將s0作為地址信號輸入第一存儲器、第二存儲器、第三存儲器,3個存儲器分別輸出相應(yīng)地址中存儲的數(shù)據(jù)Q1、Q2、Q3(分別為15位);將s1作為地址信號輸入第四存儲器、第五存儲器、第六存儲器,3個存儲器分別輸出相應(yīng)地址中存儲的數(shù)據(jù)Q4(共5位)、Q5(共4位)、Q6(共4位);Q1、Q2、Q3、Q4、Q5、Q6輸入補位電路,在Q1前補01,得到r1,在Q2前補01,得到r2,在Q3前補01,得到r3,在Q4前補12位0,得到r4,在Q5前補13位0,得到r5,在Q6前補13位0,得到r6(r1、r2、r3、r4、r5、r6均為17位);r1、r2、r3、r4、r5、r6輸入第一選擇電路,輸入操作狀態(tài)信號operation_in和輸入操作數(shù)處理電路得到的exp_odd_even作為第一選擇電路的控制信號,當(dāng)operation_in=1且exp_odd_even=1時,選擇r2和r5輸出,當(dāng)operation_in=1且exp_odd_even=0時,選擇r3、r6輸出,當(dāng)其他情況時,選擇r1和r4輸出,第一選擇電路的兩個輸出分別記為a0、a1;a1和尾數(shù)截取電路中得到的c輸入第二異或電路,a1的每一位與c作異或,得到a1_xor(共17位);a0和a1_xor輸入加法電路,加法電路首先將a0和a1_xor相加,得到17位的和,然后將這17位的和就近舍入到15位(如果第16位是1則進(jìn)位,如果第16位是0則截斷),得到sum(共15位);sum輸入和處理電路,截取sum的第3位到第15位,前面補001111110,后面補10個0,得到seed1(共32位),截取sum的第2位到第15位,前面補001111111,后面補9個0,得到seed2(共32位),截取sum的第1位,得到flag;seed1、seed2輸入第二選擇電路,flag作為第二選擇電路的控制信號,當(dāng)flag=0時,選擇seed1輸出,當(dāng)flag=1時,選擇seed2輸出,第二選擇電路的輸出結(jié)果x0(共32位)即為預(yù)處理結(jié)構(gòu)的輸出結(jié)果,即除法或平方根運算需要的初始值。為了得到尾數(shù)為14位精度的初始值,倒數(shù)查找表需要的面積是(210×15+210×5)bit=20Kb,其中,第一存儲器的面積是(210×15)bit,第四存儲器的面積是(210×5)bit。對于平方根,由于a的指數(shù)為奇數(shù)和偶數(shù)的情況不同,為了避免在指數(shù)是奇數(shù)時在計算中增加乘以的乘法操作,平方根倒數(shù)需要兩個查找表,平方根查找表1和平方根查找表2,面積都是(210×15+210×4)bit=19Kb,其中,第二存儲器和第三存儲器的面積是(210×15)bit,第五存儲器和第六存儲器的面積是(210×4)bit。對于浮點除法B/A和平方根運算令操作數(shù)A的符號位為0,指數(shù)為01111111,尾數(shù)不變,記為a。如果是除法操作,通過倒數(shù)查找表得到1/a的近似值;如果是平方根操作,且A的指數(shù)末位是0,則通過平方根查找表1得到的近似值;如果是平方根操作,且A的指數(shù)末位是0,則通過平方根查找表2得到的近似值。這樣,得到的近似值就是除法或平方根運算所需要的迭代的初始值x0。權(quán)利要求1.一種用于浮點除法和平方根運算的預(yù)處理電路結(jié)構(gòu),其特征在于,含有操作數(shù)處理電路、尾數(shù)截取電路、第一異或電路、第一地址寄存器、第二地址寄存器、第一至第六共六個存儲器、補位電路、第一選擇電路、第二異或電路、加法電路、和處理電路,以及第二選擇電路,其中,操作數(shù)處理電路,輸入是單精度操作數(shù)operand_A,輸出是a_man,操作數(shù)operand_A的23位尾數(shù);exp_odd_even,單精度浮點數(shù)存儲格式中操作數(shù)operand_A的指數(shù)的最低位;尾數(shù)截取電路,輸入是所述數(shù)據(jù)a_man,輸出為所述數(shù)據(jù)a_man的高6位y0、第7至第10位y1、第11位c,以及第12至第15位y2;第一異或電路,輸入是所述尾數(shù)截取電路輸出的數(shù)據(jù)c,以及y2,在對所述數(shù)據(jù)y2的每一位與數(shù)據(jù)c作異或后,得到y(tǒng)2_xor,共4位;第一地址寄存器,輸入是所述尾數(shù)截取電路輸出的數(shù)據(jù)y0和y1,共10位,用s0表示;第二地址寄存器,輸入是所述尾數(shù)截取電路輸出的數(shù)據(jù)y0,以及所述第一異或電路輸出的數(shù)據(jù)y2_xor,共10位,用s1表示;第一存儲器,作倒數(shù)查找表用,地址位為10位,數(shù)據(jù)位為15位,在地址h中存儲的數(shù)據(jù)是d=1/(1+h1×2-6+h2×2-10+δ2+δ3),h1為地址h的高6位,h2為地址h的低4位,δ2=2-11-2-16,δ3=2-16-2-24,d就近舍入得到16位有效數(shù)字,其中第一位是1,在地址h中只存儲后15位,所述第一存儲器的輸入是所述第一地址寄存器輸出的地址s0,輸出是數(shù)據(jù)Q1;第二存儲器,作平方根查找表1用,地址位為10位,數(shù)據(jù)位為15位,在地址h中存儲的數(shù)據(jù)是h1為地址h的高6位,h2為地址h的低4位,δ2=2-11-2-16,δ3=2-16-2-24,d就近舍入得到16位有效數(shù)字,其中第一位是1,在地址h中只存儲后15位,所述第二存儲器的輸入是所述第一地址寄存器輸出的地址s0,輸出是數(shù)據(jù)Q2;第三存儲器,作平方根查找表2用,地址位為10位,數(shù)據(jù)位為15位,在地址h中存儲的數(shù)據(jù)是h1為地址h的高6位,h2為地址h的低4位,δ2=2-11-2-16,δ3=2-16-2-24,d就近舍入得到16位有效數(shù)字,其中第一位是1,在地址h中只存儲后15位,所述第三存儲器的輸入是所述第一地址寄存器輸出的地址s0,輸出是數(shù)據(jù)Q3;第四存儲器,也作倒數(shù)查找表用,地址位為10位,數(shù)據(jù)位為5位,在地址h中存儲的數(shù)據(jù)是d=-[1/(1+h1×2-6+δ1+δ2+δ3)2]×(h2×2-15-δ2),h1為地址h的高6位,h2為地址h的低4位,δ1=2-7-2-11,δ2=2-11-2-16,δ3=2-16-2-24,d截取前5位有效數(shù)字,存儲在地址h中,所述第四存儲器的輸入是所述第二地址寄存器輸出的地址s1,輸出是數(shù)據(jù)Q4;第五存儲器,也作平方根查找表1用,地址位為10位,數(shù)據(jù)位為4位,在地址h中存儲的數(shù)據(jù)是h1為地址h的高6位,h2為地址h的低4位,δ1=2-7-2-11,δ2=2-11-2-16,δ3=2-16-2-24,d截取前4位有效數(shù)字,存儲在地址h中,所述第五存儲器的輸入是所述第二地址寄存器輸出的地址s1,輸出是數(shù)據(jù)Q5;第六存儲器,也作平方根查找表2用,地址位為10位,數(shù)據(jù)位為4位,在地址h中存儲的數(shù)據(jù)是h1為地址h的高6位,h2為地址h的低4位,δ1=2-7-2-11,δ2=2-11-2-16,δ3=2-16-2-24,d截取前4位有效數(shù)字,存儲在地址h中,所述第六存儲器的輸入是所述第二地址寄存器輸出的地址s1,輸出是數(shù)據(jù)Q6;補位電路,六個輸入端分別依次與所述第一至第六存儲器的輸出端相連,分別輸入數(shù)據(jù)Q1至Q6,該補位電路在數(shù)據(jù)Q1、Q2、Q3前各補01,依次得到r1、r2和r3,在數(shù)據(jù)Q4前補12位0,得到r4,在數(shù)據(jù)Q5、Q6前各補13位0,得到r5、r6,從r1至r6的每一個數(shù)據(jù)均為17位;第一選擇電路,分別設(shè)有數(shù)據(jù)exp_odd_even、以及操作狀態(tài)信號operation_in的輸入端,operation_in=0表示需要除法運算的初始值,operation_in=1表示需要平方根運算的初始值,所述第一選擇電路還設(shè)有六個輸入端,分別與所述補位電路的六個輸出端相連,輸入數(shù)據(jù)r1、r2、r3、r4、r5和r6,當(dāng)operation_in=1且exp_odd_even=1時,所述第一選擇電路輸出r2和r5,當(dāng)operation_in=1且exp_odd_even=0時,所述第一選擇電路輸出r3和r6,在其他情況下,所述第一選擇電路輸出r1和r4,所述第一選擇電路的兩個輸出分別用a0、a1表示;第二異或電路,兩個輸入端分別與所述尾數(shù)截取電路的數(shù)據(jù)c的輸出端、所述第一選擇電路的數(shù)據(jù)a1的輸出端相連,將數(shù)據(jù)a1的每一位與數(shù)據(jù)c作異或,得到a1_xor,共17位;加法電路,兩個數(shù)據(jù)輸入端分別與所述第一選擇電路的數(shù)據(jù)a0的輸出端、所述第二異或電路的數(shù)據(jù)a1_xor的輸出端相連,首先把數(shù)據(jù)a0和a1_xor相加,得到17位的和,再把這17位的和就近舍入到15位,當(dāng)?shù)?6位是1時則進(jìn)位,是0時則截斷,得到和sum,共15位;和處理電路,輸入端與所述加法電路的sum輸出端相連,截取sum的第3位到第15位,再在前面補001111110,后面補10個0,得到seed1,共32位;再截取sum的第2位到第15位,前面補001111111,后面補9個0,得到seed2,共32位;再截取sum的第1位,得到flag;第二選擇電路,控制信號輸入端與所述和處理電路的flag信號輸出端相連,兩個數(shù)據(jù)輸入端分別與所述和處理電路的seed1、seed2數(shù)據(jù)輸出端相連,當(dāng)flag=0時,選擇seed1輸出,當(dāng)flag=1時,選擇seed2輸出,輸出結(jié)果x0即為所述預(yù)處理電路結(jié)構(gòu)的輸出結(jié)果,共32位,作除法或平方根運算的初始值用。全文摘要一種用于浮點除法和平方根運算的預(yù)處理電路結(jié)構(gòu),屬于浮點運算單元設(shè)計領(lǐng)域,其特征在于,先用操作數(shù)處理電路把操作數(shù)分為23位尾數(shù)和指數(shù)最低位,再用尾數(shù)截取電路從高到低截取15位尾數(shù),依次分為高6位、中間4位、低1位和低4位,經(jīng)處理后作為地址從對稱雙向查找表中得到六個部分和數(shù)據(jù),經(jīng)補位后,在表示除法或平方根運算的操作狀態(tài)信號及指數(shù)最低位的控制下,用選擇電路得出相應(yīng)運算下的兩個部分和,再經(jīng)加法、和處理及再次選擇后,得到操作數(shù)的倒數(shù)或平方根倒數(shù)的尾數(shù)為14位精度的近似值,作為單精度浮點除法和平方根運算用的最終的初始值。本發(fā)明具有速度快、查找表占用硬件面積小的優(yōu)點。文檔編號G06F7/57GK101216753SQ20081005561公開日2008年7月9日申請日期2008年1月4日優(yōu)先權(quán)日2008年1月4日發(fā)明者李兆麟,張昕悅,李恭瓊申請人:清華大學(xué)