利用處理器浮點單元進行復數(shù)乘和蝶形運算的裝置和方法
【專利摘要】本發(fā)明提供了一種利用處理器浮點單元進行復數(shù)乘和蝶形運算的裝置和方法,將浮點單元分為浮點加法單元和浮點乘法單元,通過在浮點加法單元和浮點乘法單元數(shù)據(jù)端口間增加少量的互聯(lián)線,使浮點加法單元和浮點乘法單元之間形成特定的數(shù)據(jù)通路,將復數(shù)實部和虛部按照約定的排序規(guī)則輸入到浮點單元數(shù)據(jù)端口,在譯碼單元產(chǎn)生的譯碼信號控制下能夠?qū)崿F(xiàn)浮點復數(shù)乘法和浮點復數(shù)蝶形運算。本發(fā)明節(jié)約了硬件資源,比現(xiàn)有的復數(shù)乘和碟形運算功能單元進一步提高了靈活性,而且能夠很好地實現(xiàn)大量數(shù)據(jù)的并行和流水計算,獲得更好的實時性能和資源利用率。
【專利說明】利用處理器浮點單元進行復數(shù)乘和蝶形運算的裝置和方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于數(shù)字電路【技術(shù)領(lǐng)域】,適用于數(shù)字信號處理中與浮點復數(shù)乘及蝶形運算相關(guān)的FFT等信號處理算法的快速計算。
【背景技術(shù)】
[0002]在數(shù)字信號處理中,涉及到大量的浮點復數(shù)乘和蝶形運算。由于信號處理中數(shù)據(jù)量大、處理過程復雜,數(shù)字信號處理器不能很好地滿足數(shù)據(jù)處理的實時性要求。隨著大規(guī)模集成電路技術(shù)的飛速發(fā)展,越來越多的信號處理算法直接采用硬件形式實現(xiàn),從而為提高數(shù)據(jù)處理的實時性能提供了一種全新的方式,不僅減少了系統(tǒng)處理數(shù)據(jù)的延遲,而且增強了系統(tǒng)可靠性,提高了系統(tǒng)工作效率。
[0003]現(xiàn)有的浮點復數(shù)乘和蝶形運算一般采用若干專用集成電路組合或者采用浮點操作指令通過軟件方法實現(xiàn)。專用集成電路組合方法具有電路復雜、體積及功耗大、靈活性差等缺點,且電路功能固定,不可配置,在大多數(shù)場合硬件資源利用率低;而采用基于浮點操作指令的軟件方法,其運算速度慢,不能滿足現(xiàn)代數(shù)字信號處理實時性要求。
【發(fā)明內(nèi)容】
[0004]為了克服現(xiàn)有技術(shù)的不足,本發(fā)明提供一種利用已有的浮點單元進行復數(shù)乘和碟形運算的裝置,通過在處理器浮點單元之間增加少量的連線,在浮點單元間構(gòu)造出浮點復數(shù)乘法和浮點碟形運算的數(shù)據(jù)通路,實現(xiàn)了對浮點復數(shù)乘和浮點碟形運算的支持。本發(fā)明電路結(jié)構(gòu)簡單,占有硬件資源少,并且執(zhí)行效率高,靈活性好。
[0005]本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:包括一個譯碼單元Decode、四個浮點乘法單元FmCellO?FmCell3、兩組數(shù)據(jù)選擇單元MuxO?Muxl和四個浮點加法單元FaCellO ?FaCell3。
[0006]對于輸入的浮點復數(shù)Xl+jYl和X2+jY2,所述譯碼單元Decode根據(jù)輸入的操作運算類型CType完成電路譯碼,產(chǎn)生使能和控制信號;
[0007]所述浮點乘法單元FmCellO?FmCell3執(zhí)行復數(shù)乘運算中乘法運算部分;所述浮點乘法單元FmCellO?FmCel 13的數(shù)據(jù)輸入DataA和數(shù)據(jù)輸入DataB端口依次輸入復數(shù)實部Xl和復數(shù)實部X2、復數(shù)虛部Yl和復數(shù)虛部Y2、復數(shù)實部Xl和復數(shù)虛部Y2、復數(shù)虛部Yl和復數(shù)實部X2 ;所述浮點乘法單元FmCellO?FmCell3的使能信號FmEn由譯碼單元譯碼產(chǎn)生;當操作運算類型CType為復數(shù)乘運算時,譯碼單元完成譯碼,使能信號FmEn有效,所述浮點乘法單元FmCellO?FmCell3執(zhí)行浮點乘法運算,經(jīng)過若干時鐘節(jié)拍輸出計算結(jié)果Result和使能信號EnOut,所述浮點乘法單元FmCellO?FmCell3的計算結(jié)果Result依次為X1XX2,Y1XY2, X1XY2和Yl XX2,否則所述浮點乘法單元FmCellO?FmCell3不執(zhí)行任何操作;當使能信號輸出EnOut有效時,表示所述浮點乘法單元FmCellO?FmCell3輸出浮點乘法運算結(jié)果,否則所述浮點乘法單元運算結(jié)果無效;
[0008]所述數(shù)據(jù)選擇單元MuxO?Muxl對輸入至浮點加法單元FaCellO?FaCelll的數(shù)據(jù)進行選擇,選擇控制信號TypeEn由譯碼單元譯碼產(chǎn)生;所述數(shù)據(jù)選擇單元MuxO輸入數(shù)據(jù)為浮點乘法單元FmCellO使能信號輸出EnOut、浮點乘法單元FmCellO計算結(jié)果Xl XX2、浮點乘法單元FmCelll計算結(jié)果Yl X Y2、使能信號FaEn、復數(shù)實部Xl和復數(shù)實部X2 ;所述數(shù)據(jù)選擇單元Muxl輸入數(shù)據(jù)為浮點乘法單元FmCelll使能信號輸出EnOut、浮點乘法單元FmCe 112計算結(jié)果XI X Y2、浮點乘法單元FmCe 113計算結(jié)果YI X X2、使能信號FaEn、復數(shù)虛部Yl和復數(shù)虛部Y2,使能信號FaEn由譯碼單元產(chǎn)生,當操作運算類型CType為復數(shù)碟形運算時,經(jīng)過譯碼單元譯碼,使能信號FaEn有效,否則使能信號FaEn無效;當運算操作類型為浮點復數(shù)乘時,在控制信號TypeEn的作用下,所述數(shù)據(jù)選擇單元MuxO輸出信號MEn、MDataA和MdataB依次選擇數(shù)據(jù)為浮點乘法單元FmCellO使能信號輸出EnOut、浮點乘法單元FmCellO計算結(jié)果Xl XX2和浮點乘法單元FmCelll計算結(jié)果Yl X Y2,否則,所述數(shù)據(jù)選擇單元MuxO輸出信號MEn、MDataA和MdataB依次選擇數(shù)據(jù)為輸入使能信號FaEn、復數(shù)實部Xl和復數(shù)實部X2 ;當運算操作類型為浮點復數(shù)乘時,在控制信號TypeEn的作用下,所述數(shù)據(jù)選擇單元MuxI輸出信號MEn、MDataA和MdataB依次選擇數(shù)據(jù)為浮點乘法單元FmCe 111使能信號輸出EnOut、浮點乘法單元FmCell2計算結(jié)果Xl X Y2和浮點乘法單元FmCell3計算結(jié)果Yl XX2,否則,所述數(shù)據(jù)選擇單元Muxl輸出信號MEruMDataA和MdataB依次選擇數(shù)據(jù)為輸入使能信號FaEn、復數(shù)虛部Yl和復數(shù)虛部Y2 ;
[0009]所述浮點加法單元FaCellO?FaCell3執(zhí)行復數(shù)乘和碟形運算中浮點加減操作運算;所述浮點加法單元FaCel 12?FaCel 13的數(shù)據(jù)輸入DataA和數(shù)據(jù)輸入DataB端口依次輸入復數(shù)實部Xl和復數(shù)實部X2、復數(shù)虛部Yl和復數(shù)虛部Y2 ;所述浮點加法單元FaCell2?FaCell3的使能信號FaEn和模式選擇Mode由譯碼單元譯碼產(chǎn)生;當操作運算類型CType為復數(shù)碟形運算時,譯碼單元完成譯碼,所述浮點加法單元FaCell2?FaCell3使能信號FaEn有效,模式選擇Mode為浮點減法運算模式,否則,所述浮點加法單元FaCell2?FaCell3使能信號FaEn無效;所述浮點加法單元FaCel 10?FaCel 11的使能信號FaEn、數(shù)據(jù)輸入DataA和數(shù)據(jù)輸入DataB端口依次輸入所述數(shù)據(jù)選擇單元MuxO?Muxl的數(shù)據(jù)MEn、MDataA和MdataB ;模式選擇Mode由譯碼單元譯碼產(chǎn)生;當操作運算類型CType為復數(shù)碟形運算時,譯碼單元完成譯碼,所述浮點加法單元FaCellO?FaCelll模式選擇Mode為浮點加法運算模式,否則,所述浮點加法單元FaCellO模式選擇Mode為浮點減法運算模式,所述浮點加法單元FaCelll模式選擇Mode為浮點加法運算模式;所述浮點加法單元FaCellO?FaCel 13執(zhí)行浮點加或減運算,經(jīng)過若干時鐘節(jié)拍輸出計算結(jié)果。
[0010]所述浮點加法單元FaCell輸入信號包含使能信號FaEn、運算模式Mode、數(shù)據(jù)輸入DataA和數(shù)據(jù)輸入DataB,當使能信號FaEn有效時,所述浮點加法單元執(zhí)行浮點加減操作運算,否則不執(zhí)行任何操作,運算模式Mode進行浮點加和浮點減法運算選擇;所述浮點加法單元FaCell輸出信號包含使能信號輸出EnOut和數(shù)據(jù)輸出Result,當使能信號輸出EnOut有效時,表示所述浮點加法單元輸出浮點加減操作運算結(jié)果,否則運算結(jié)果無效。
[0011]所述浮點乘法單元FmCell輸入信號包含使能信號FmEn、數(shù)據(jù)輸入DataA和數(shù)據(jù)輸入DataB,當使能信號FmEn有效,所述浮點乘法單元FmCell執(zhí)行浮點乘法運算,否則所述浮點乘法單元FmCell不執(zhí)行任何操作;所述浮點乘法單元FmCell輸出信號包含使能信號輸出EnOut和數(shù)據(jù)輸出Result,當使能信號輸出EnOut有效時,所述浮點乘法單元FmCell輸出浮點乘法運算結(jié)果,否則運算結(jié)果無效。
[0012]本發(fā)明還提供一種復數(shù)乘和碟形運算方法,實現(xiàn)步驟如下:
[0013]I)譯碼單元根據(jù)運算操作類型完成譯碼,產(chǎn)生相關(guān)的譯碼控制信號。
[0014]2)當運算操作類型為浮點復數(shù)乘時,在譯碼控制信號的控制下執(zhí)行浮點復數(shù)乘運算,計算過程分為兩步計算:第一步,完成浮點復數(shù)乘運算乘法部分;將輸入操作數(shù)Xl+jYl和X2+jY2的實部和虛部分別取出X1、Y1、X2和Υ2,然后Xl與Χ2相乘得到結(jié)果Χ1ΧΧ2,Υ1與Υ2相乘得到結(jié)果Υ1ΧΥ2,Χ1與Υ2相乘得到結(jié)果Χ1ΧΥ2,Υ1與Χ2相乘得到結(jié)果Υ1ΧΧ2 ;第二步,完成浮點乘法運算加減部分;將上述乘法計算結(jié)果Xl ΧΧ2與YlX Υ2相減得到Χ1ΧΧ2-Υ1ΧΥ2,Χ1ΧΥ2與Υ1ΧΧ2相加得到Χ1ΧΥ2+Υ1ΧΧ2,最終浮點復數(shù)乘計算結(jié)果為(XIX Χ2-Υ1X Υ2)+j(XIX Y2+Y1X X2);
[0015]3)當運算操作類型為浮點碟形運算時,將輸入操作數(shù)Xl+jYl和X2+jY2的實部和虛部取出;將Xl與X2相加得到結(jié)果X1+X2,Yl與Y2相加得到結(jié)果Y1+Y2 ;X1與X2相減得到結(jié)果X1-X2,Yl與Y2相減得到結(jié)果Y1-Y2 ;最終得到復數(shù)碟形計算加法結(jié)果為(X1+X2) +j (Y1+Y2),復數(shù)碟形計算減法結(jié)果為(X1-X2) +j (Y1-Y2)。
[0016]本發(fā)明的有益效果是:利用已有的浮點單元模塊實現(xiàn)了浮點復數(shù)乘和碟形運算。本發(fā)明將浮點單元分為浮點加法單元和浮點乘法單元,通過在浮點加法單元和浮點乘法單元數(shù)據(jù)端口間增加少量的互聯(lián)線,使浮點加法單元和浮點乘法單元之間形成特定的數(shù)據(jù)通路,將復數(shù)實部和虛部按照約定的排序規(guī)則輸入到浮點單元數(shù)據(jù)端口,在譯碼單元產(chǎn)生的譯碼信號控制下能夠?qū)崿F(xiàn)浮點復數(shù)乘法和浮點復數(shù)蝶形運算。本發(fā)明利用基本浮點運算單元,在浮點單元間增加少量互聯(lián)線構(gòu)造出硬件數(shù)據(jù)通路,通過時空域上對浮點單元硬件資源復用,實現(xiàn)了浮點復數(shù)乘和浮點復數(shù)蝶形運算,節(jié)約了硬件資源,比現(xiàn)有的復數(shù)乘和碟形運算功能單元進一步提高了靈活性,而且能夠很好地實現(xiàn)大量數(shù)據(jù)的并行和流水計算,獲得更好的實時性能和資源利用率。
【專利附圖】
【附圖說明】
[0017]圖1為浮點加法單元內(nèi)部結(jié)構(gòu)示意圖。
[0018]圖2為浮點乘法單元內(nèi)部結(jié)構(gòu)示意圖。
[0019]圖3為浮點復數(shù)乘和碟形運算實現(xiàn)電路結(jié)構(gòu)示意圖。
[0020]圖4為浮點復數(shù)乘法運算時的電路結(jié)構(gòu)示意圖。
[0021]圖5為浮點碟形運算時的電路結(jié)構(gòu)示意圖。
【具體實施方式】
[0022]下面結(jié)合附圖和實施例對本發(fā)明進一步說明,本發(fā)明包括但不僅限于下述實施例。
[0023]本發(fā)明中采用了如下的電路設(shè)計方案:
[0024]首先,本發(fā)明中將浮點單元設(shè)計為浮點加法單元FaCell和浮點乘法單元FmCell。
[0025]所述浮點加法單元FaCell輸入信號包含使能信號FaEn、運算模式Mode、數(shù)據(jù)輸入DataA和數(shù)據(jù)輸入DataB,當使能信號FaEn有效時,所述浮點加法單元執(zhí)行浮點加減操作運算,否則不執(zhí)行任何操作,運算模式Mode進行浮點加和浮點減法運算選擇。所述浮點加法單元FaCell輸出信號包含使能信號輸出EnOut和數(shù)據(jù)輸出Result,當使能信號輸出EnOut有效時,表示所述浮點加法單元輸出浮點加減操作運算結(jié)果,否則運算結(jié)果無效。附圖1中畫出了以四級流水結(jié)構(gòu)的浮點加法單元FaCelI為例的內(nèi)部結(jié)構(gòu)示意圖。
[0026]所述浮點乘法單元FmCell輸入信號包含使能信號FmEn、數(shù)據(jù)輸入DataA和數(shù)據(jù)輸入DataB,當使能信號FmEn有效,所述浮點乘法單元FmCell執(zhí)行浮點乘法運算,否則所述浮點乘法單元FmCell不執(zhí)行任何操作。所述浮點乘法單元FmCell輸出信號包含使能信號輸出EnOut和數(shù)據(jù)輸出Result,當使能信號輸出EnOut有效時,所述浮點乘法單元FmCell輸出浮點乘法運算結(jié)果,否則運算結(jié)果無效。附圖2中畫出了以四級流水結(jié)構(gòu)的浮點乘法單元FmCell為例的內(nèi)部結(jié)構(gòu)示意圖。
[0027]本發(fā)明利用處理器浮點單元進行浮點復數(shù)乘和碟形運算的方法電路結(jié)構(gòu)包含一個譯碼單元Decode、四個浮點乘法單元FmCellO?FmCell3、兩組數(shù)據(jù)選擇單元MuxO?Muxl、四個浮點加法單元FaCellO?FaCell3和一組連接上述電路連線。
[0028]為了便于說明,本發(fā)明中假定輸入操作數(shù)為浮點復數(shù)Xl+jYl和X2+jY2。
[0029]所述譯碼單元Decode根據(jù)輸入的操作運算類型CType完成電路譯碼,產(chǎn)生運算過程中需要的使能和控制信號。
[0030]所述浮點乘法單元FmCellO?FmCell3執(zhí)行復數(shù)乘運算中乘法運算部分。所述浮點乘法單元FmCellO?FmCel 13的數(shù)據(jù)輸入DataA和數(shù)據(jù)輸入DataB端口依次輸入復數(shù)實部Xl和復數(shù)實部X2,復數(shù)虛部Yl和復數(shù)虛部Y2,復數(shù)實部Xl和復數(shù)虛部Y2,復數(shù)虛部Yl和復數(shù)實部X2。所述浮點乘法單元FmCellO?FmCell3的使能信號FmEn由譯碼單元譯碼產(chǎn)生。當操作運算類型CType為復數(shù)乘運算時,譯碼單元完成譯碼,使能信號FmEn有效,所述浮點乘法單元FmCellO?FmCell3執(zhí)行浮點乘法運算,經(jīng)過若干時鐘節(jié)拍輸出計算結(jié)果Result和使能信號EnOut,所述浮點乘法單元FmCellO?FmCell3的計算結(jié)果Result依次為X1XX2,Y1XY2, X1XY2和Yl XX2,否則所述浮點乘法單元FmCellO?FmCell3不執(zhí)行任何操作。具體執(zhí)行時鐘節(jié)拍數(shù)由所述浮點乘法單元內(nèi)部流水結(jié)構(gòu)劃分決定。當使能信號輸出EnOut有效時,表示所述浮點乘法單元FmCellO?FmCell3輸出浮點乘法運算結(jié)果,否則所述浮點乘法單元運算結(jié)果無效。
[0031]所述數(shù)據(jù)選擇單元MuxO?Muxl對輸入至浮點加法單元FaCellO?FaCelll的數(shù)據(jù)進行選擇,其中選擇控制信號TypeEn由譯碼單元譯碼產(chǎn)生。所述數(shù)據(jù)選擇單元MuxO輸入數(shù)據(jù)為浮點乘法單元FmCellO使能信號輸出EnOut、浮點乘法單元FmCellO計算結(jié)果Xl XX2、浮點乘法單元FmCelll計算結(jié)果Yl X Y2、使能信號FaEn、復數(shù)實部Xl和復數(shù)實部X2 ;所述數(shù)據(jù)選擇單元Muxl輸入數(shù)據(jù)為浮點乘法單元FmCelll使能信號輸出EnOut、浮點乘法單元FmCell2計算結(jié)果Xl X Y2、浮點乘法單元FmCell3計算結(jié)果Y1XX2、使能信號FaEn、復數(shù)虛部Yl和復數(shù)虛部Y2,其中使能信號FaEn由譯碼單元產(chǎn)生,當操作運算類型CType為復數(shù)碟形運算時,經(jīng)過譯碼單元譯碼,使能信號FaEn有效,否則使能信號FaEn無效。當運算操作類型為浮點復數(shù)乘時,在控制信號TypeEn的作用下,所述數(shù)據(jù)選擇單元MuxO輸出信號MEruMDataA和MdataB依次選擇數(shù)據(jù)為浮點乘法單元FmCellO使能信號輸出EnOut、浮點乘法單元FmCellO計算結(jié)果Xl XX2和浮點乘法單元FmCelll計算結(jié)果Yl X Y2,否則,所述數(shù)據(jù)選擇單元MuxO輸出信號MEruMDataA和MdataB依次選擇數(shù)據(jù)為輸入使能信號FaEn、復數(shù)實部Xl和復數(shù)實部X2 ;當運算操作類型為浮點復數(shù)乘時,在控制信號TypeEn的作用下,所述數(shù)據(jù)選擇單元Muxl輸出信號MEn、MDataA和MdataB依次選擇數(shù)據(jù)為浮點乘法單元FmCelll使能信號輸出EnOut、浮點乘法單元FmCell2計算結(jié)果Xl X Y2和浮點乘法單元FmCell3計算結(jié)果Yl XX2,否則,所述數(shù)據(jù)選擇單元Muxl輸出信號MEn、MDataA和MdataB依次選擇數(shù)據(jù)為輸入使能信號FaEn、復數(shù)虛部Yl和復數(shù)虛部Y2。
[0032]所述浮點加法單元FaCellO?FaCell3執(zhí)行復數(shù)乘和碟形運算中浮點加減操作運算。所述浮點加法單元FaCel 12?FaCel 13的數(shù)據(jù)輸入DataA和數(shù)據(jù)輸入DataB端口依次輸入復數(shù)實部Xl和復數(shù)實部X2,復數(shù)虛部Yl和復數(shù)虛部Y2。所述浮點加法單元FaCell2?FaCell3的使能信號FaEn和模式選擇Mode由譯碼單元譯碼產(chǎn)生。當操作運算類型CType為復數(shù)碟形運算時,譯碼單元完成譯碼,所述浮點加法單元FaCell2?FaCell3使能信號FaEn有效,模式選擇Mode為浮點減法運算模式,否則,所述浮點加法單元FaCell2?FaCell3使能信號FaEn無效。所述浮點加法單元FaCellO?FaCelll的使能信號FaEn、數(shù)據(jù)輸入DataA和數(shù)據(jù)輸入DataB端口依次輸入所述數(shù)據(jù)選擇單元MuxO?Muxl的數(shù)據(jù)MEruMDataA和MdataB。模式選擇Mode由譯碼單元譯碼產(chǎn)生。當操作運算類型CType為復數(shù)碟形運算時,譯碼單元完成譯碼,所述浮點加法單元FaCellO?FaCelll模式選擇Mode為浮點加法運算模式,否則,所述浮點加法單元FaCellO模式選擇Mode為浮點減法運算模式,所述浮點加法單元FaCelll模式選擇Mode為浮點加法運算模式。所述浮點加法單元FaCellO?FaCell3執(zhí)行浮點加或減運算,經(jīng)過若干時鐘節(jié)拍輸出計算結(jié)果,具體執(zhí)行時鐘節(jié)拍數(shù)由所述浮點加法單元內(nèi)部流水結(jié)構(gòu)劃分決定。本發(fā)明中具體電路結(jié)構(gòu)見附圖3所示。
[0033]本發(fā)明中所述復數(shù)乘和碟形運算方法實現(xiàn)步驟如下:
[0034]I)譯碼單元根據(jù)運算操作類型完成譯碼,產(chǎn)生相關(guān)的譯碼控制信號。
[0035]2)當運算操作類型為浮點復數(shù)乘時,在譯碼控制信號的控制下執(zhí)行浮點復數(shù)乘運算,計算過程分為兩步計算。第一步,完成浮點復數(shù)乘運算乘法部分。將輸入操作數(shù)Xl+jYl和X2+jY2的實部和虛部分別取出X1、Y1、X2和Υ2,然后Xl與Χ2相乘得到結(jié)果Χ1ΧΧ2,Υ1與Υ2相乘得到結(jié)果Υ1ΧΥ2,Χ1與Υ2相乘得到結(jié)果Χ1ΧΥ2,Υ1與Χ2相乘得到結(jié)果Υ1ΧΧ2 ;第二步,完成浮點乘法運算加減部分。將上述乘法計算結(jié)果Xl ΧΧ2與YlX Υ2相減得到Χ1ΧΧ2-Υ1ΧΥ2,Χ1ΧΥ2與Υ1ΧΧ2相加得到Xl X Υ2+Υ1 ΧΧ2,最終浮點復數(shù)乘計算結(jié)果為(XIXΧ2-Υ1XΥ2)+j(XIXY2+Y1XX2)。
[0036]3)否則,執(zhí)行浮點碟形運算。將輸入操作數(shù)Xl+jYl和X2+jY2的實部和虛部取出:X1、Y1、X2和Y2。將Xl與Χ2相加得到結(jié)果Χ1+Χ2,Υ1與Υ2相加得到結(jié)果Υ1+Υ2 ;X1與X2相減得到結(jié)果X1-X2,Yl與Y2相減得到結(jié)果Y1-Y2 ;最終得到復數(shù)碟形計算加法結(jié)果為(X1+X2) +j (Y1+Y2),復數(shù)碟形計算減法結(jié)果為(X1-X2) +j (Y1-Y2)。
[0037]本實施例中以浮點乘法單元和浮點加法單元的四級流水結(jié)構(gòu)為例,具體實施方案如下:
[0038]I)譯碼單元根據(jù)運算操作類型完成譯碼,產(chǎn)生相關(guān)的譯碼控制信號。
[0039]2)當運算操作類型為浮點復數(shù)乘時,在譯碼信號的控制下執(zhí)行浮點復數(shù)乘運算,計算過程分為兩步計算。第一步,輸入兩個浮點復數(shù)(Xl+jYl)和(X2+jY2),將兩個浮點復數(shù)的實部和虛部按照如下順序依次輸入到四個浮點乘法單元操作數(shù)端口:X1、YU Xl和Yl分別輸入到浮點乘法單元FmCellO?FmCell3的輸入操作數(shù)DataA端口,X2、Y2、Y2和Χ2分別輸入到浮點乘法單元FmCellO?FmCell3的輸入操作數(shù)DataB端口,譯碼單元產(chǎn)生的譯碼信號FmEn輸入到浮點乘法單元FmCel 10?FmCel 13的使能信號FmEn端口,F(xiàn)mEn為‘ I’有效,經(jīng)過四個處理器時鐘周期后,四個浮點乘法單元FmCellO?FmCell3分別輸出結(jié)果為:Xl XX2、Yl X Y2、Xl X Y2和Yl XX2,使能輸出EnOut有效。第二步,譯碼單元產(chǎn)生譯碼信號TypeEn為‘I’,數(shù)據(jù)選擇單元MuxO在譯碼信號TypeEn的控制下,將浮點乘法單元FmCellO的EnOut、X1XX2和Y1XY2分別輸至浮點加法單元FaCellO的使能輸入FaEn、輸入操作數(shù)A和輸入操作數(shù)B端口。譯碼單元產(chǎn)生譯碼信號Mode為‘I’,浮點加法單元FaCellO的使能輸入FaEn為‘I’有效,F(xiàn)aCellO執(zhí)行浮點減法運算。數(shù)據(jù)選擇單元Muxl在譯碼信號TypeEn的控制下,將浮點乘法單元FmCelll的En0ut、XlXY2和Y1XX2分別輸至浮點加法單元FaCel 11的使能輸入FaEn、輸入操作數(shù)A和輸入操作數(shù)B端口。譯碼單元產(chǎn)生譯碼信號Mode為‘0’,浮點加法單元FaCelll的使能輸入FaEn為‘I’有效,F(xiàn)aCelll執(zhí)行浮點加法運算。經(jīng)過四個處理器時鐘周期后,浮點加法單元FaCellO輸出浮點復數(shù)乘運算結(jié)果的實部Xl XX2-Y1 X Y2,浮點加法單元FaCelll輸出浮點復數(shù)乘運算結(jié)果的虛部Xl X Y2+Y1 XX2,最終浮點復數(shù)乘法結(jié)果為(XI XX2-Y1 X Y2) +j (X1XY2+Y1XX2)。附圖4所示為執(zhí)行浮點復數(shù)乘法運算時的電路結(jié)構(gòu)示意圖。
[0040]3)否則,執(zhí)行浮點碟形運算。分別取出輸入操作數(shù)(Xl+jYl)和(X2+jY2)實部和虛部X1、Yl、X2和Y2,浮點加法單元FaCel 12?FaCel 13的數(shù)據(jù)輸入DataA和數(shù)據(jù)輸入DataB端口依次輸入復數(shù)實部Xl和復數(shù)實部X2,復數(shù)虛部Yl和復數(shù)虛部Y2。譯碼單元完成譯碼,模式選擇Mode為‘I’,使能信號FaEn為‘I’有效,浮點加法單元FaCel 12?FaCel 13執(zhí)行浮點減法運算。譯碼單元產(chǎn)生譯碼信號TypeEn為‘0’,數(shù)據(jù)選擇單元MuxO在譯碼信號TypeEn的控制下,將使能信號FaEn、復數(shù)實部Xl和復數(shù)實部X2分別輸至浮點加法單元FaCellO的使能輸入FaEn、輸入操作數(shù)A和輸入操作數(shù)B端口 ;數(shù)據(jù)選擇單元Muxl在譯碼信號TypeEn的控制下,將使能信號FaEn、復數(shù)虛部Yl和復數(shù)虛部Y2分別輸至浮點加法單元FaCelll的使能輸入FaEn、輸入操作數(shù)A和輸入操作數(shù)B端口。譯碼單元完成譯碼,模式選擇Mode為‘0’,使能信號FaEn為‘I’有效,浮點加法單元FaCellO?FaCelll執(zhí)行浮點加法運算。經(jīng)過四個處理器時鐘周期后,浮點加法單元FaCellO輸出浮點碟形運算加法結(jié)果的實部X1+X2,浮點加法單元FaCelll輸出浮點碟形運算加法結(jié)果的虛部Y1+Y2,浮點加法單元FaCe 112輸出浮點碟形運算減法結(jié)果的實部X1-X2,浮點加法單元FaCe 113輸出浮點碟形運算減法結(jié)果的虛部Y1-Y2,最終得到復數(shù)碟形計算加法結(jié)果為(Xl+X2)+j(Yl+Y2),復數(shù)碟形計算減法結(jié)果為(Xl_X2)+j(Yl-Y2)。附圖5所示為執(zhí)行浮點碟形運算時的電路結(jié)構(gòu)示意圖。
【權(quán)利要求】
1.一種利用處理器浮點單元進行復數(shù)乘和蝶形運算的裝置,包括一個譯碼單元Decode、四個浮點乘法單兀FmCellO?FmCell3、兩組數(shù)據(jù)選擇單兀MuxO?Muxl和四個浮點加法單元FaCellO?FaCell3,其特征在于: 對于輸入的浮點復數(shù)Xl+jYl和X2+jY2,所述譯碼單元Decode根據(jù)輸入的操作運算類型CType完成電路譯碼,產(chǎn)生使能和控制信號; 所述浮點乘法單元FmCellO?FmCell3執(zhí)行復數(shù)乘運算中乘法運算部分;所述浮點乘法單元FmCellO?FmCell3的數(shù)據(jù)輸入DataA和數(shù)據(jù)輸入DataB端口依次輸入復數(shù)實部XI和復數(shù)實部X2、復數(shù)虛部Y1和復數(shù)虛部Y2、復數(shù)實部XI和復數(shù)虛部Y2、復數(shù)虛部Y1和復數(shù)實部X2 ;所述浮點乘法單元FmCellO?FmCell3的使能信號FmEn由譯碼單元譯碼產(chǎn)生;當操作運算類型CType為復數(shù)乘運算時,譯碼單元完成譯碼,使能信號FmEn有效,所述浮點乘法單元FmCellO?FmCell3執(zhí)行浮點乘法運算,經(jīng)過若干時鐘節(jié)拍輸出計算結(jié)果Result和使能信號EnOut,所述浮點乘法單元FmCellO?FmCell3的計算結(jié)果Result依次為XI XX2,Y1 X Y2,X1 X Y2和Y1 XX2,否則所述浮點乘法單元FmCellO?FmCell3不執(zhí)行任何操作;當使能信號輸出EnOut有效時,表示所述浮點乘法單元FmCellO?FmCell3輸出浮點乘法運算結(jié)果,否則所述浮點乘法單元運算結(jié)果無效; 所述數(shù)據(jù)選擇單元MuxO?Muxl對輸入至浮點加法單元FaCellO?FaCelll的數(shù)據(jù)進行選擇,選擇控制信號TypeEn由譯碼單元譯碼產(chǎn)生;所述數(shù)據(jù)選擇單元MuxO輸入數(shù)據(jù)為浮點乘法單元FmCellO使能信號輸出EnOut、浮點乘法單元FmCellO計算結(jié)果X1XX2、浮點乘法單元FmCelll計算結(jié)果Y1 X Y2、使能信號FaEn、復數(shù)實部XI和復數(shù)實部X2 ;所述數(shù)據(jù)選擇單元Muxl輸入數(shù)據(jù)為浮點乘法單元FmCelll使能信號輸出EnOut、浮點乘法單元FmCell2計算結(jié)果X1XY2、浮點乘法單元FmCell3計算結(jié)果Y1XX2、使能信號FaEn、復數(shù)虛部Y1和復數(shù)虛部Y2,使能信號FaEn由譯碼單元產(chǎn)生,當操作運算類型CType為復數(shù)碟形運算時,經(jīng)過譯碼單元譯碼,使能信號FaEn有效,否則使能信號FaEn無效;當運算操作類型為浮點復數(shù)乘時,在控制信號TypeEn的作用下,所述數(shù)據(jù)選擇單元MuxO輸出信號MEn、MDataA和MdataB依次選擇數(shù)據(jù)為浮點乘法單元FmCellO使能信號輸出EnOut、浮點乘法單元FmCellO計算結(jié)果X1XX2和浮點乘法單元FmCelll計算結(jié)果Y1 X Y2,否則,所述數(shù)據(jù)選擇單元MuxO輸出信號MEn、MDataA和MdataB依次選擇數(shù)據(jù)為輸入使能信號FaEn、復數(shù)實部XI和復數(shù)實部X2 ;當運算操作類型為浮點復數(shù)乘時,在控制信號TypeEn的作用下,所述數(shù)據(jù)選擇單元Mux 1輸出信號MEn、MDataA和MdataB依次選擇數(shù)據(jù)為浮點乘法單元FmCe111使能信號輸出EnOut、浮點乘法單元FmCell2計算結(jié)果XI X Y2和浮點乘法單元FmCell3計算結(jié)果Y1 XX2,否則,所述數(shù)據(jù)選擇單元Muxl輸出信號MEn、MDataA和MdataB依次選擇數(shù)據(jù)為輸入使能信號FaEn、復數(shù)虛部Y1和復數(shù)虛部Y2 ; 所述浮點加法單元FaCellO?FaCell3執(zhí)行復數(shù)乘和碟形運算中浮點加減操作運算;所述浮點加法單元FaCell2?FaCell3的數(shù)據(jù)輸入DataA和數(shù)據(jù)輸入DataB端口依次輸入復數(shù)實部XI和復數(shù)實部X2、復數(shù)虛部Y1和復數(shù)虛部Y2 ;所述浮點加法單元FaCell2?FaCell3的使能信號FaEn和模式選擇Mode由譯碼單元譯碼產(chǎn)生;當操作運算類型CType為復數(shù)碟形運算時,譯碼單元完成譯碼,所述浮點加法單元FaCell2?FaCell3使能信號FaEn有效,模式選擇Mode為浮點減法運算模式,否則,所述浮點加法單元FaCell2?FaCell3使能信號FaEn無效;所述浮點加法單元FaCellO?FaCelll的使能信號FaEn、數(shù)據(jù)輸入DataA和數(shù)據(jù)輸入DataB端口依次輸入所述數(shù)據(jù)選擇單元MuxO?Muxl的數(shù)據(jù)MEn、MDataA和MdataB ;模式選擇Mode由譯碼單元譯碼產(chǎn)生;當操作運算類型CType為復數(shù)碟形運算時,譯碼單元完成譯碼,所述浮點加法單元FaCellO?FaCelll模式選擇Mode為浮點加法運算模式,否則,所述浮點加法單元FaCellO模式選擇Mode為浮點減法運算模式,所述浮點加法單元FaCelll模式選擇Mode為浮點加法運算模式;所述浮點加法單元FaCellO?FaCell3執(zhí)行浮點加或減運算,經(jīng)過若干時鐘節(jié)拍輸出計算結(jié)果。
2.根據(jù)權(quán)利要求1所述的利用處理器浮點單元進行復數(shù)乘和蝶形運算的裝置,其特征在于:所述浮點加法單元FaCell輸入信號包含使能信號FaEn、運算模式Mode、數(shù)據(jù)輸入DataA和數(shù)據(jù)輸入DataB,當使能信號FaEn有效時,所述浮點加法單元執(zhí)行浮點加減操作運算,否則不執(zhí)行任何操作,運算模式Mode進行浮點加和浮點減法運算選擇;所述浮點加法單元FaCell輸出信號包含使能信號輸出EnOut和數(shù)據(jù)輸出Result,當使能信號輸出EnOut有效時,表示所述浮點加法單元輸出浮點加減操作運算結(jié)果,否則運算結(jié)果無效。
3.根據(jù)權(quán)利要求1所述的利用處理器浮點單元進行復數(shù)乘和蝶形運算的裝置,其特征在于:所述浮點乘法單元FmCell輸入信號包含使能信號FmEn、數(shù)據(jù)輸入DataA和數(shù)據(jù)輸入DataB,當使能信號FmEn有效,所述浮點乘法單元FmCell執(zhí)行浮點乘法運算,否則所述浮點乘法單元FmCell不執(zhí)行任何操作;所述浮點乘法單元FmCell輸出信號包含使能信號輸出EnOut和數(shù)據(jù)輸出Result,當使能信號輸出EnOut有效時,所述浮點乘法單元FmCell輸出浮點乘法運算結(jié)果,否則運算結(jié)果無效。
4.一種利用權(quán)利要求1所述裝置利用處理器浮點單元進行復數(shù)乘和蝶形運算的方法,其特征在于包括下述步驟: 1)譯碼單元根據(jù)運算操作類型完成譯碼,產(chǎn)生相關(guān)的譯碼控制信號。 2)當運算操作類型為浮點復數(shù)乘時,在譯碼控制信號的控制下執(zhí)行浮點復數(shù)乘運算,計算過程分為兩步計算:第一步,完成浮點復數(shù)乘運算乘法部分;將輸入操作數(shù)Xl+jYl和X2+JY2的實部和虛部分別取出X1、Y1、X2和Υ2,然后XI與Χ2相乘得到結(jié)果Χ1ΧΧ2,Υ1與Υ2相乘得到結(jié)果Υ1ΧΥ2,XI與Υ2相乘得到結(jié)果XIXΥ2,Υ1與Χ2相乘得到結(jié)果Y1 ΧΧ2 ;第二步,完成浮點乘法運算加減部分;將上述乘法計算結(jié)果XIΧΧ2與Υ1ΧΥ2相減得到Χ1ΧΧ2-Υ1ΧΥ2,Χ1ΧΥ2與Υ1ΧΧ2相加得到XI X Υ2+Υ1 ΧΧ2,最終浮點復數(shù)乘計算結(jié)果為(XIX Χ2-Υ1X Υ2)+j(XIX Y2+Y1X X2); 3)當運算操作類型為浮點碟形運算時,將輸入操作數(shù)Xl+jYl和X2+jY2的實部和虛部取出;將乂1與X2相加得到結(jié)果X1+X2,Y1與Y2相加得到結(jié)果Y1+Y2 ;X1與X2相減得到結(jié)果X1-X2,Y1與Y2相減得到結(jié)果Y1-Y2 ;最終得到復數(shù)碟形計算加法結(jié)果為(X1+X2) +j (Y1+Y2),復數(shù)碟形計算減法結(jié)果為(X1-X2) +j (Y1-Y2)。
【文檔編號】G06F9/38GK104317774SQ201410542107
【公開日】2015年1月28日 申請日期:2014年10月14日 優(yōu)先權(quán)日:2014年10月14日
【發(fā)明者】馮春陽, 閆鑫, 楊靚, 高向強, 周泉 申請人:中國航天科技集團公司第九研究院第七七一研究所