利用处理器浮点单元进行复数乘和蝶形运算的装置和方法
【专利摘要】本发明提供了一种利用处理器浮点单元进行复数乘和蝶形运算的装置和方法,将浮点单元分为浮点加法单元和浮点乘法单元,通过在浮点加法单元和浮点乘法单元数据端口间增加少量的互联线,使浮点加法单元和浮点乘法单元之间形成特定的数据通路,将复数实部和虚部按照约定的排序规则输入到浮点单元数据端口,在译码单元产生的译码信号控制下能够实现浮点复数乘法和浮点复数蝶形运算。本发明节约了硬件资源,比现有的复数乘和碟形运算功能单元进一步提高了灵活性,而且能够很好地实现大量数据的并行和流水计算,获得更好的实时性能和资源利用率。
【专利说明】利用处理器浮点单元进行复数乘和蝶形运算的装置和方法
【技术领域】
[0001]本发明属于数字电路【技术领域】,适用于数字信号处理中与浮点复数乘及蝶形运算相关的FFT等信号处理算法的快速计算。
【背景技术】
[0002]在数字信号处理中,涉及到大量的浮点复数乘和蝶形运算。由于信号处理中数据量大、处理过程复杂,数字信号处理器不能很好地满足数据处理的实时性要求。随着大规模集成电路技术的飞速发展,越来越多的信号处理算法直接采用硬件形式实现,从而为提高数据处理的实时性能提供了一种全新的方式,不仅减少了系统处理数据的延迟,而且增强了系统可靠性,提高了系统工作效率。
[0003]现有的浮点复数乘和蝶形运算一般采用若干专用集成电路组合或者采用浮点操作指令通过软件方法实现。专用集成电路组合方法具有电路复杂、体积及功耗大、灵活性差等缺点,且电路功能固定,不可配置,在大多数场合硬件资源利用率低;而采用基于浮点操作指令的软件方法,其运算速度慢,不能满足现代数字信号处理实时性要求。
【发明内容】
[0004]为了克服现有技术的不足,本发明提供一种利用已有的浮点单元进行复数乘和碟形运算的装置,通过在处理器浮点单元之间增加少量的连线,在浮点单元间构造出浮点复数乘法和浮点碟形运算的数据通路,实现了对浮点复数乘和浮点碟形运算的支持。本发明电路结构简单,占有硬件资源少,并且执行效率高,灵活性好。
[0005]本发明解决其技术问题所采用的技术方案是:包括一个译码单元Decode、四个浮点乘法单元FmCellO?FmCell3、两组数据选择单元MuxO?Muxl和四个浮点加法单元FaCellO ?FaCell3。
[0006]对于输入的浮点复数Xl+jYl和X2+jY2,所述译码单元Decode根据输入的操作运算类型CType完成电路译码,产生使能和控制信号;
[0007]所述浮点乘法单元FmCellO?FmCell3执行复数乘运算中乘法运算部分;所述浮点乘法单元FmCellO?FmCel 13的数据输入DataA和数据输入DataB端口依次输入复数实部Xl和复数实部X2、复数虚部Yl和复数虚部Y2、复数实部Xl和复数虚部Y2、复数虚部Yl和复数实部X2 ;所述浮点乘法单元FmCellO?FmCell3的使能信号FmEn由译码单元译码产生;当操作运算类型CType为复数乘运算时,译码单元完成译码,使能信号FmEn有效,所述浮点乘法单元FmCellO?FmCell3执行浮点乘法运算,经过若干时钟节拍输出计算结果Result和使能信号EnOut,所述浮点乘法单元FmCellO?FmCell3的计算结果Result依次为X1XX2,Y1XY2, X1XY2和Yl XX2,否则所述浮点乘法单元FmCellO?FmCell3不执行任何操作;当使能信号输出EnOut有效时,表示所述浮点乘法单元FmCellO?FmCell3输出浮点乘法运算结果,否则所述浮点乘法单元运算结果无效;
[0008]所述数据选择单元MuxO?Muxl对输入至浮点加法单元FaCellO?FaCelll的数据进行选择,选择控制信号TypeEn由译码单元译码产生;所述数据选择单元MuxO输入数据为浮点乘法单元FmCellO使能信号输出EnOut、浮点乘法单元FmCellO计算结果Xl XX2、浮点乘法单元FmCelll计算结果Yl X Y2、使能信号FaEn、复数实部Xl和复数实部X2 ;所述数据选择单元Muxl输入数据为浮点乘法单元FmCelll使能信号输出EnOut、浮点乘法单元FmCe 112计算结果XI X Y2、浮点乘法单元FmCe 113计算结果YI X X2、使能信号FaEn、复数虚部Yl和复数虚部Y2,使能信号FaEn由译码单元产生,当操作运算类型CType为复数碟形运算时,经过译码单元译码,使能信号FaEn有效,否则使能信号FaEn无效;当运算操作类型为浮点复数乘时,在控制信号TypeEn的作用下,所述数据选择单元MuxO输出信号MEn、MDataA和MdataB依次选择数据为浮点乘法单元FmCellO使能信号输出EnOut、浮点乘法单元FmCellO计算结果Xl XX2和浮点乘法单元FmCelll计算结果Yl X Y2,否则,所述数据选择单元MuxO输出信号MEn、MDataA和MdataB依次选择数据为输入使能信号FaEn、复数实部Xl和复数实部X2 ;当运算操作类型为浮点复数乘时,在控制信号TypeEn的作用下,所述数据选择单元MuxI输出信号MEn、MDataA和MdataB依次选择数据为浮点乘法单元FmCe 111使能信号输出EnOut、浮点乘法单元FmCell2计算结果Xl X Y2和浮点乘法单元FmCell3计算结果Yl XX2,否则,所述数据选择单元Muxl输出信号MEruMDataA和MdataB依次选择数据为输入使能信号FaEn、复数虚部Yl和复数虚部Y2 ;
[0009]所述浮点加法单元FaCellO?FaCell3执行复数乘和碟形运算中浮点加减操作运算;所述浮点加法单元FaCel 12?FaCel 13的数据输入DataA和数据输入DataB端口依次输入复数实部Xl和复数实部X2、复数虚部Yl和复数虚部Y2 ;所述浮点加法单元FaCell2?FaCell3的使能信号FaEn和模式选择Mode由译码单元译码产生;当操作运算类型CType为复数碟形运算时,译码单元完成译码,所述浮点加法单元FaCell2?FaCell3使能信号FaEn有效,模式选择Mode为浮点减法运算模式,否则,所述浮点加法单元FaCell2?FaCell3使能信号FaEn无效;所述浮点加法单元FaCel 10?FaCel 11的使能信号FaEn、数据输入DataA和数据输入DataB端口依次输入所述数据选择单元MuxO?Muxl的数据MEn、MDataA和MdataB ;模式选择Mode由译码单元译码产生;当操作运算类型CType为复数碟形运算时,译码单元完成译码,所述浮点加法单元FaCellO?FaCelll模式选择Mode为浮点加法运算模式,否则,所述浮点加法单元FaCellO模式选择Mode为浮点减法运算模式,所述浮点加法单元FaCelll模式选择Mode为浮点加法运算模式;所述浮点加法单元FaCellO?FaCel 13执行浮点加或减运算,经过若干时钟节拍输出计算结果。
[0010]所述浮点加法单元FaCell输入信号包含使能信号FaEn、运算模式Mode、数据输入DataA和数据输入DataB,当使能信号FaEn有效时,所述浮点加法单元执行浮点加减操作运算,否则不执行任何操作,运算模式Mode进行浮点加和浮点减法运算选择;所述浮点加法单元FaCell输出信号包含使能信号输出EnOut和数据输出Result,当使能信号输出EnOut有效时,表示所述浮点加法单元输出浮点加减操作运算结果,否则运算结果无效。
[0011]所述浮点乘法单元FmCell输入信号包含使能信号FmEn、数据输入DataA和数据输入DataB,当使能信号FmEn有效,所述浮点乘法单元FmCell执行浮点乘法运算,否则所述浮点乘法单元FmCell不执行任何操作;所述浮点乘法单元FmCell输出信号包含使能信号输出EnOut和数据输出Result,当使能信号输出EnOut有效时,所述浮点乘法单元FmCell输出浮点乘法运算结果,否则运算结果无效。
[0012]本发明还提供一种复数乘和碟形运算方法,实现步骤如下:
[0013]I)译码单元根据运算操作类型完成译码,产生相关的译码控制信号。
[0014]2)当运算操作类型为浮点复数乘时,在译码控制信号的控制下执行浮点复数乘运算,计算过程分为两步计算:第一步,完成浮点复数乘运算乘法部分;将输入操作数Xl+jYl和X2+jY2的实部和虚部分别取出X1、Y1、X2和Υ2,然后Xl与Χ2相乘得到结果Χ1ΧΧ2,Υ1与Υ2相乘得到结果Υ1ΧΥ2,Χ1与Υ2相乘得到结果Χ1ΧΥ2,Υ1与Χ2相乘得到结果Υ1ΧΧ2 ;第二步,完成浮点乘法运算加减部分;将上述乘法计算结果Xl ΧΧ2与YlX Υ2相减得到Χ1ΧΧ2-Υ1ΧΥ2,Χ1ΧΥ2与Υ1ΧΧ2相加得到Χ1ΧΥ2+Υ1ΧΧ2,最终浮点复数乘计算结果为(XIX Χ2-Υ1X Υ2)+j(XIX Y2+Y1X X2);
[0015]3)当运算操作类型为浮点碟形运算时,将输入操作数Xl+jYl和X2+jY2的实部和虚部取出;将Xl与X2相加得到结果X1+X2,Yl与Y2相加得到结果Y1+Y2 ;X1与X2相减得到结果X1-X2,Yl与Y2相减得到结果Y1-Y2 ;最终得到复数碟形计算加法结果为(X1+X2) +j (Y1+Y2),复数碟形计算减法结果为(X1-X2) +j (Y1-Y2)。
[0016]本发明的有益效果是:利用已有的浮点单元模块实现了浮点复数乘和碟形运算。本发明将浮点单元分为浮点加法单元和浮点乘法单元,通过在浮点加法单元和浮点乘法单元数据端口间增加少量的互联线,使浮点加法单元和浮点乘法单元之间形成特定的数据通路,将复数实部和虚部按照约定的排序规则输入到浮点单元数据端口,在译码单元产生的译码信号控制下能够实现浮点复数乘法和浮点复数蝶形运算。本发明利用基本浮点运算单元,在浮点单元间增加少量互联线构造出硬件数据通路,通过时空域上对浮点单元硬件资源复用,实现了浮点复数乘和浮点复数蝶形运算,节约了硬件资源,比现有的复数乘和碟形运算功能单元进一步提高了灵活性,而且能够很好地实现大量数据的并行和流水计算,获得更好的实时性能和资源利用率。
【专利附图】
【附图说明】
[0017]图1为浮点加法单元内部结构示意图。
[0018]图2为浮点乘法单元内部结构示意图。
[0019]图3为浮点复数乘和碟形运算实现电路结构示意图。
[0020]图4为浮点复数乘法运算时的电路结构示意图。
[0021]图5为浮点碟形运算时的电路结构示意图。
【具体实施方式】
[0022]下面结合附图和实施例对本发明进一步说明,本发明包括但不仅限于下述实施例。
[0023]本发明中采用了如下的电路设计方案:
[0024]首先,本发明中将浮点单元设计为浮点加法单元FaCell和浮点乘法单元FmCell。
[0025]所述浮点加法单元FaCell输入信号包含使能信号FaEn、运算模式Mode、数据输入DataA和数据输入DataB,当使能信号FaEn有效时,所述浮点加法单元执行浮点加减操作运算,否则不执行任何操作,运算模式Mode进行浮点加和浮点减法运算选择。所述浮点加法单元FaCell输出信号包含使能信号输出EnOut和数据输出Result,当使能信号输出EnOut有效时,表示所述浮点加法单元输出浮点加减操作运算结果,否则运算结果无效。附图1中画出了以四级流水结构的浮点加法单元FaCelI为例的内部结构示意图。
[0026]所述浮点乘法单元FmCell输入信号包含使能信号FmEn、数据输入DataA和数据输入DataB,当使能信号FmEn有效,所述浮点乘法单元FmCell执行浮点乘法运算,否则所述浮点乘法单元FmCell不执行任何操作。所述浮点乘法单元FmCell输出信号包含使能信号输出EnOut和数据输出Result,当使能信号输出EnOut有效时,所述浮点乘法单元FmCell输出浮点乘法运算结果,否则运算结果无效。附图2中画出了以四级流水结构的浮点乘法单元FmCell为例的内部结构示意图。
[0027]本发明利用处理器浮点单元进行浮点复数乘和碟形运算的方法电路结构包含一个译码单元Decode、四个浮点乘法单元FmCellO?FmCell3、两组数据选择单元MuxO?Muxl、四个浮点加法单元FaCellO?FaCell3和一组连接上述电路连线。
[0028]为了便于说明,本发明中假定输入操作数为浮点复数Xl+jYl和X2+jY2。
[0029]所述译码单元Decode根据输入的操作运算类型CType完成电路译码,产生运算过程中需要的使能和控制信号。
[0030]所述浮点乘法单元FmCellO?FmCell3执行复数乘运算中乘法运算部分。所述浮点乘法单元FmCellO?FmCel 13的数据输入DataA和数据输入DataB端口依次输入复数实部Xl和复数实部X2,复数虚部Yl和复数虚部Y2,复数实部Xl和复数虚部Y2,复数虚部Yl和复数实部X2。所述浮点乘法单元FmCellO?FmCell3的使能信号FmEn由译码单元译码产生。当操作运算类型CType为复数乘运算时,译码单元完成译码,使能信号FmEn有效,所述浮点乘法单元FmCellO?FmCell3执行浮点乘法运算,经过若干时钟节拍输出计算结果Result和使能信号EnOut,所述浮点乘法单元FmCellO?FmCell3的计算结果Result依次为X1XX2,Y1XY2, X1XY2和Yl XX2,否则所述浮点乘法单元FmCellO?FmCell3不执行任何操作。具体执行时钟节拍数由所述浮点乘法单元内部流水结构划分决定。当使能信号输出EnOut有效时,表示所述浮点乘法单元FmCellO?FmCell3输出浮点乘法运算结果,否则所述浮点乘法单元运算结果无效。
[0031]所述数据选择单元MuxO?Muxl对输入至浮点加法单元FaCellO?FaCelll的数据进行选择,其中选择控制信号TypeEn由译码单元译码产生。所述数据选择单元MuxO输入数据为浮点乘法单元FmCellO使能信号输出EnOut、浮点乘法单元FmCellO计算结果Xl XX2、浮点乘法单元FmCelll计算结果Yl X Y2、使能信号FaEn、复数实部Xl和复数实部X2 ;所述数据选择单元Muxl输入数据为浮点乘法单元FmCelll使能信号输出EnOut、浮点乘法单元FmCell2计算结果Xl X Y2、浮点乘法单元FmCell3计算结果Y1XX2、使能信号FaEn、复数虚部Yl和复数虚部Y2,其中使能信号FaEn由译码单元产生,当操作运算类型CType为复数碟形运算时,经过译码单元译码,使能信号FaEn有效,否则使能信号FaEn无效。当运算操作类型为浮点复数乘时,在控制信号TypeEn的作用下,所述数据选择单元MuxO输出信号MEruMDataA和MdataB依次选择数据为浮点乘法单元FmCellO使能信号输出EnOut、浮点乘法单元FmCellO计算结果Xl XX2和浮点乘法单元FmCelll计算结果Yl X Y2,否则,所述数据选择单元MuxO输出信号MEruMDataA和MdataB依次选择数据为输入使能信号FaEn、复数实部Xl和复数实部X2 ;当运算操作类型为浮点复数乘时,在控制信号TypeEn的作用下,所述数据选择单元Muxl输出信号MEn、MDataA和MdataB依次选择数据为浮点乘法单元FmCelll使能信号输出EnOut、浮点乘法单元FmCell2计算结果Xl X Y2和浮点乘法单元FmCell3计算结果Yl XX2,否则,所述数据选择单元Muxl输出信号MEn、MDataA和MdataB依次选择数据为输入使能信号FaEn、复数虚部Yl和复数虚部Y2。
[0032]所述浮点加法单元FaCellO?FaCell3执行复数乘和碟形运算中浮点加减操作运算。所述浮点加法单元FaCel 12?FaCel 13的数据输入DataA和数据输入DataB端口依次输入复数实部Xl和复数实部X2,复数虚部Yl和复数虚部Y2。所述浮点加法单元FaCell2?FaCell3的使能信号FaEn和模式选择Mode由译码单元译码产生。当操作运算类型CType为复数碟形运算时,译码单元完成译码,所述浮点加法单元FaCell2?FaCell3使能信号FaEn有效,模式选择Mode为浮点减法运算模式,否则,所述浮点加法单元FaCell2?FaCell3使能信号FaEn无效。所述浮点加法单元FaCellO?FaCelll的使能信号FaEn、数据输入DataA和数据输入DataB端口依次输入所述数据选择单元MuxO?Muxl的数据MEruMDataA和MdataB。模式选择Mode由译码单元译码产生。当操作运算类型CType为复数碟形运算时,译码单元完成译码,所述浮点加法单元FaCellO?FaCelll模式选择Mode为浮点加法运算模式,否则,所述浮点加法单元FaCellO模式选择Mode为浮点减法运算模式,所述浮点加法单元FaCelll模式选择Mode为浮点加法运算模式。所述浮点加法单元FaCellO?FaCell3执行浮点加或减运算,经过若干时钟节拍输出计算结果,具体执行时钟节拍数由所述浮点加法单元内部流水结构划分决定。本发明中具体电路结构见附图3所示。
[0033]本发明中所述复数乘和碟形运算方法实现步骤如下:
[0034]I)译码单元根据运算操作类型完成译码,产生相关的译码控制信号。
[0035]2)当运算操作类型为浮点复数乘时,在译码控制信号的控制下执行浮点复数乘运算,计算过程分为两步计算。第一步,完成浮点复数乘运算乘法部分。将输入操作数Xl+jYl和X2+jY2的实部和虚部分别取出X1、Y1、X2和Υ2,然后Xl与Χ2相乘得到结果Χ1ΧΧ2,Υ1与Υ2相乘得到结果Υ1ΧΥ2,Χ1与Υ2相乘得到结果Χ1ΧΥ2,Υ1与Χ2相乘得到结果Υ1ΧΧ2 ;第二步,完成浮点乘法运算加减部分。将上述乘法计算结果Xl ΧΧ2与YlX Υ2相减得到Χ1ΧΧ2-Υ1ΧΥ2,Χ1ΧΥ2与Υ1ΧΧ2相加得到Xl X Υ2+Υ1 ΧΧ2,最终浮点复数乘计算结果为(XIXΧ2-Υ1XΥ2)+j(XIXY2+Y1XX2)。
[0036]3)否则,执行浮点碟形运算。将输入操作数Xl+jYl和X2+jY2的实部和虚部取出:X1、Y1、X2和Y2。将Xl与Χ2相加得到结果Χ1+Χ2,Υ1与Υ2相加得到结果Υ1+Υ2 ;X1与X2相减得到结果X1-X2,Yl与Y2相减得到结果Y1-Y2 ;最终得到复数碟形计算加法结果为(X1+X2) +j (Y1+Y2),复数碟形计算减法结果为(X1-X2) +j (Y1-Y2)。
[0037]本实施例中以浮点乘法单元和浮点加法单元的四级流水结构为例,具体实施方案如下:
[0038]I)译码单元根据运算操作类型完成译码,产生相关的译码控制信号。
[0039]2)当运算操作类型为浮点复数乘时,在译码信号的控制下执行浮点复数乘运算,计算过程分为两步计算。第一步,输入两个浮点复数(Xl+jYl)和(X2+jY2),将两个浮点复数的实部和虚部按照如下顺序依次输入到四个浮点乘法单元操作数端口:X1、YU Xl和Yl分别输入到浮点乘法单元FmCellO?FmCell3的输入操作数DataA端口,X2、Y2、Y2和Χ2分别输入到浮点乘法单元FmCellO?FmCell3的输入操作数DataB端口,译码单元产生的译码信号FmEn输入到浮点乘法单元FmCel 10?FmCel 13的使能信号FmEn端口,FmEn为‘ I’有效,经过四个处理器时钟周期后,四个浮点乘法单元FmCellO?FmCell3分别输出结果为:Xl XX2、Yl X Y2、Xl X Y2和Yl XX2,使能输出EnOut有效。第二步,译码单元产生译码信号TypeEn为‘I’,数据选择单元MuxO在译码信号TypeEn的控制下,将浮点乘法单元FmCellO的EnOut、X1XX2和Y1XY2分别输至浮点加法单元FaCellO的使能输入FaEn、输入操作数A和输入操作数B端口。译码单元产生译码信号Mode为‘I’,浮点加法单元FaCellO的使能输入FaEn为‘I’有效,FaCellO执行浮点减法运算。数据选择单元Muxl在译码信号TypeEn的控制下,将浮点乘法单元FmCelll的En0ut、XlXY2和Y1XX2分别输至浮点加法单元FaCel 11的使能输入FaEn、输入操作数A和输入操作数B端口。译码单元产生译码信号Mode为‘0’,浮点加法单元FaCelll的使能输入FaEn为‘I’有效,FaCelll执行浮点加法运算。经过四个处理器时钟周期后,浮点加法单元FaCellO输出浮点复数乘运算结果的实部Xl XX2-Y1 X Y2,浮点加法单元FaCelll输出浮点复数乘运算结果的虚部Xl X Y2+Y1 XX2,最终浮点复数乘法结果为(XI XX2-Y1 X Y2) +j (X1XY2+Y1XX2)。附图4所示为执行浮点复数乘法运算时的电路结构示意图。
[0040]3)否则,执行浮点碟形运算。分别取出输入操作数(Xl+jYl)和(X2+jY2)实部和虚部X1、Yl、X2和Y2,浮点加法单元FaCel 12?FaCel 13的数据输入DataA和数据输入DataB端口依次输入复数实部Xl和复数实部X2,复数虚部Yl和复数虚部Y2。译码单元完成译码,模式选择Mode为‘I’,使能信号FaEn为‘I’有效,浮点加法单元FaCel 12?FaCel 13执行浮点减法运算。译码单元产生译码信号TypeEn为‘0’,数据选择单元MuxO在译码信号TypeEn的控制下,将使能信号FaEn、复数实部Xl和复数实部X2分别输至浮点加法单元FaCellO的使能输入FaEn、输入操作数A和输入操作数B端口 ;数据选择单元Muxl在译码信号TypeEn的控制下,将使能信号FaEn、复数虚部Yl和复数虚部Y2分别输至浮点加法单元FaCelll的使能输入FaEn、输入操作数A和输入操作数B端口。译码单元完成译码,模式选择Mode为‘0’,使能信号FaEn为‘I’有效,浮点加法单元FaCellO?FaCelll执行浮点加法运算。经过四个处理器时钟周期后,浮点加法单元FaCellO输出浮点碟形运算加法结果的实部X1+X2,浮点加法单元FaCelll输出浮点碟形运算加法结果的虚部Y1+Y2,浮点加法单元FaCe 112输出浮点碟形运算减法结果的实部X1-X2,浮点加法单元FaCe 113输出浮点碟形运算减法结果的虚部Y1-Y2,最终得到复数碟形计算加法结果为(Xl+X2)+j(Yl+Y2),复数碟形计算减法结果为(Xl_X2)+j(Yl-Y2)。附图5所示为执行浮点碟形运算时的电路结构示意图。
【权利要求】
1.一种利用处理器浮点单元进行复数乘和蝶形运算的装置,包括一个译码单元Decode、四个浮点乘法单兀FmCellO?FmCell3、两组数据选择单兀MuxO?Muxl和四个浮点加法单元FaCellO?FaCell3,其特征在于: 对于输入的浮点复数Xl+jYl和X2+jY2,所述译码单元Decode根据输入的操作运算类型CType完成电路译码,产生使能和控制信号; 所述浮点乘法单元FmCellO?FmCell3执行复数乘运算中乘法运算部分;所述浮点乘法单元FmCellO?FmCell3的数据输入DataA和数据输入DataB端口依次输入复数实部XI和复数实部X2、复数虚部Y1和复数虚部Y2、复数实部XI和复数虚部Y2、复数虚部Y1和复数实部X2 ;所述浮点乘法单元FmCellO?FmCell3的使能信号FmEn由译码单元译码产生;当操作运算类型CType为复数乘运算时,译码单元完成译码,使能信号FmEn有效,所述浮点乘法单元FmCellO?FmCell3执行浮点乘法运算,经过若干时钟节拍输出计算结果Result和使能信号EnOut,所述浮点乘法单元FmCellO?FmCell3的计算结果Result依次为XI XX2,Y1 X Y2,X1 X Y2和Y1 XX2,否则所述浮点乘法单元FmCellO?FmCell3不执行任何操作;当使能信号输出EnOut有效时,表示所述浮点乘法单元FmCellO?FmCell3输出浮点乘法运算结果,否则所述浮点乘法单元运算结果无效; 所述数据选择单元MuxO?Muxl对输入至浮点加法单元FaCellO?FaCelll的数据进行选择,选择控制信号TypeEn由译码单元译码产生;所述数据选择单元MuxO输入数据为浮点乘法单元FmCellO使能信号输出EnOut、浮点乘法单元FmCellO计算结果X1XX2、浮点乘法单元FmCelll计算结果Y1 X Y2、使能信号FaEn、复数实部XI和复数实部X2 ;所述数据选择单元Muxl输入数据为浮点乘法单元FmCelll使能信号输出EnOut、浮点乘法单元FmCell2计算结果X1XY2、浮点乘法单元FmCell3计算结果Y1XX2、使能信号FaEn、复数虚部Y1和复数虚部Y2,使能信号FaEn由译码单元产生,当操作运算类型CType为复数碟形运算时,经过译码单元译码,使能信号FaEn有效,否则使能信号FaEn无效;当运算操作类型为浮点复数乘时,在控制信号TypeEn的作用下,所述数据选择单元MuxO输出信号MEn、MDataA和MdataB依次选择数据为浮点乘法单元FmCellO使能信号输出EnOut、浮点乘法单元FmCellO计算结果X1XX2和浮点乘法单元FmCelll计算结果Y1 X Y2,否则,所述数据选择单元MuxO输出信号MEn、MDataA和MdataB依次选择数据为输入使能信号FaEn、复数实部XI和复数实部X2 ;当运算操作类型为浮点复数乘时,在控制信号TypeEn的作用下,所述数据选择单元Mux 1输出信号MEn、MDataA和MdataB依次选择数据为浮点乘法单元FmCe111使能信号输出EnOut、浮点乘法单元FmCell2计算结果XI X Y2和浮点乘法单元FmCell3计算结果Y1 XX2,否则,所述数据选择单元Muxl输出信号MEn、MDataA和MdataB依次选择数据为输入使能信号FaEn、复数虚部Y1和复数虚部Y2 ; 所述浮点加法单元FaCellO?FaCell3执行复数乘和碟形运算中浮点加减操作运算;所述浮点加法单元FaCell2?FaCell3的数据输入DataA和数据输入DataB端口依次输入复数实部XI和复数实部X2、复数虚部Y1和复数虚部Y2 ;所述浮点加法单元FaCell2?FaCell3的使能信号FaEn和模式选择Mode由译码单元译码产生;当操作运算类型CType为复数碟形运算时,译码单元完成译码,所述浮点加法单元FaCell2?FaCell3使能信号FaEn有效,模式选择Mode为浮点减法运算模式,否则,所述浮点加法单元FaCell2?FaCell3使能信号FaEn无效;所述浮点加法单元FaCellO?FaCelll的使能信号FaEn、数据输入DataA和数据输入DataB端口依次输入所述数据选择单元MuxO?Muxl的数据MEn、MDataA和MdataB ;模式选择Mode由译码单元译码产生;当操作运算类型CType为复数碟形运算时,译码单元完成译码,所述浮点加法单元FaCellO?FaCelll模式选择Mode为浮点加法运算模式,否则,所述浮点加法单元FaCellO模式选择Mode为浮点减法运算模式,所述浮点加法单元FaCelll模式选择Mode为浮点加法运算模式;所述浮点加法单元FaCellO?FaCell3执行浮点加或减运算,经过若干时钟节拍输出计算结果。
2.根据权利要求1所述的利用处理器浮点单元进行复数乘和蝶形运算的装置,其特征在于:所述浮点加法单元FaCell输入信号包含使能信号FaEn、运算模式Mode、数据输入DataA和数据输入DataB,当使能信号FaEn有效时,所述浮点加法单元执行浮点加减操作运算,否则不执行任何操作,运算模式Mode进行浮点加和浮点减法运算选择;所述浮点加法单元FaCell输出信号包含使能信号输出EnOut和数据输出Result,当使能信号输出EnOut有效时,表示所述浮点加法单元输出浮点加减操作运算结果,否则运算结果无效。
3.根据权利要求1所述的利用处理器浮点单元进行复数乘和蝶形运算的装置,其特征在于:所述浮点乘法单元FmCell输入信号包含使能信号FmEn、数据输入DataA和数据输入DataB,当使能信号FmEn有效,所述浮点乘法单元FmCell执行浮点乘法运算,否则所述浮点乘法单元FmCell不执行任何操作;所述浮点乘法单元FmCell输出信号包含使能信号输出EnOut和数据输出Result,当使能信号输出EnOut有效时,所述浮点乘法单元FmCell输出浮点乘法运算结果,否则运算结果无效。
4.一种利用权利要求1所述装置利用处理器浮点单元进行复数乘和蝶形运算的方法,其特征在于包括下述步骤: 1)译码单元根据运算操作类型完成译码,产生相关的译码控制信号。 2)当运算操作类型为浮点复数乘时,在译码控制信号的控制下执行浮点复数乘运算,计算过程分为两步计算:第一步,完成浮点复数乘运算乘法部分;将输入操作数Xl+jYl和X2+JY2的实部和虚部分别取出X1、Y1、X2和Υ2,然后XI与Χ2相乘得到结果Χ1ΧΧ2,Υ1与Υ2相乘得到结果Υ1ΧΥ2,XI与Υ2相乘得到结果XIXΥ2,Υ1与Χ2相乘得到结果Y1 ΧΧ2 ;第二步,完成浮点乘法运算加减部分;将上述乘法计算结果XIΧΧ2与Υ1ΧΥ2相减得到Χ1ΧΧ2-Υ1ΧΥ2,Χ1ΧΥ2与Υ1ΧΧ2相加得到XI X Υ2+Υ1 ΧΧ2,最终浮点复数乘计算结果为(XIX Χ2-Υ1X Υ2)+j(XIX Y2+Y1X X2); 3)当运算操作类型为浮点碟形运算时,将输入操作数Xl+jYl和X2+jY2的实部和虚部取出;将乂1与X2相加得到结果X1+X2,Y1与Y2相加得到结果Y1+Y2 ;X1与X2相减得到结果X1-X2,Y1与Y2相减得到结果Y1-Y2 ;最终得到复数碟形计算加法结果为(X1+X2) +j (Y1+Y2),复数碟形计算减法结果为(X1-X2) +j (Y1-Y2)。
【文档编号】G06F9/38GK104317774SQ201410542107
【公开日】2015年1月28日 申请日期:2014年10月14日 优先权日:2014年10月14日
【发明者】冯春阳, 闫鑫, 杨靓, 高向强, 周泉 申请人:中国航天科技集团公司第九研究院第七七一研究所