一种数据处理装置及数字信号处理器的制造方法

文档序号:6489323阅读:221来源:国知局
一种数据处理装置及数字信号处理器的制造方法
【专利摘要】本发明公开了一种数据处理装置及数字信号处理器,包括:第一算术逻辑模块、第一乘法器、第二乘法器、第三乘法器、第四乘法器、加法器、减法器、多路选择器。还公开了一种包括数据处理装置的数字信号处理器,数据处理装置,用于对来自寄存器组的数据进行乘法操作处理,并将所得结果存入所述寄存器组。本发明提供的数据处理装置能够支持各种不同数据类型的乘法运算,从而使完成各种类型的乘法运算所需的乘法器件的使用个数减少。
【专利说明】一种数据处理装置及数字信号处理器
【技术领域】
[0001]本发明涉及数据处理,特别涉及一种数据处理装置及DSP (digital signalprocessor,数字信号处理器)。
【背景技术】
[0002]DSP是一种以数字信号来处理大量信息的器件。其工作原理是接收模拟信号,转换为O或I的数字信号,再对数字信号进行修改、删除、强化,并在其它系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。其中,它最值得称道的两大特色是强大数据处理能力和高运行速度。即,DSP是处理大量数据的且能够进行指令执行、逻辑和算术运算的一片电路。
[0003]FFT (Fast Fourier Transform,快速傅立叶变换)运算和数字滤波等运算都需要大量的重复的乘法运算、乘加运算以及蝶形运算等多种数据类型的运算,为了使DSP处理器能够高效地进行更深更复杂的运算和一些相关的访存操作,需要对乘法运算单元进行优选,减少运算所需的电路数量。
[0004]图1为现有DSP结构示意图,如图所示,乘法运算单元是应用于流水线执行级的功能单元,可以用于各种结构的处理器中,如SIMD (Single Instruction Multiple Data,单指令多数据流)、VLIW (Very Long Instruction Word,超长指令字)和超标量处理器等。DSP运行时首先是从指令缓存或程序存储器中取出指令发送给译码单元进行指令译码。在译码过程中,系统会识别出指令将要进行的操作,即产生操作控制信号,并识别出操作数的位置索引等,大多数的DSP都是寄存器寻址。在流水线的执行级,根据操作数的位置索引号访问寄存器堆,相应的操作数被读出,输入到相应的功能单元执行算术逻辑操作或进行访存地址生成操作等。乘法运算单元的输入就来自于寄存器的访问输出,经过乘法运算单元的处理,输出结果最终写回寄存器。
[0005]现有技术的不足在于:现有乘法运算单元只是对不同位数输入数据的乘法操作在灵活性方面提供支持,包括16位乘法和8位乘法的选择等。虽然其过程可用于复数乘法的实部和虚部运算以及32位乘法各个部分运算等,但是仍然不能同时支持所有数据类型的乘法的运算,例如32位的复数乘法运算以及32位的整数乘法运算等。

【发明内容】

[0006]本发明实施例中提供了一种数据处理装置及DSP,用以提供一种能够求得不同数据类型的各种乘法的运算结果的数据处理装置及DSP。
[0007]本发明实施例中提供了一种数据处理装置,包括:第一算术逻辑模块、第一乘法器、第二乘法器、第三乘法器、第四乘法器、加法器、减法器、多路选择器,其中:
[0008]第一算术逻辑模块,用于在接收到第一输入数据与第二输入数据后,将第一输入数据拆分为第一高位数据与第一低位数据后,在对第一高位数据进行扩展后取绝对值得到第一高位绝对值数据,在对第一低位数据进行扩展后取绝对值得到第一低位绝对值数据;以及,将第二输入数据拆分为第二高位数据与第二低位数据后,在对第二高位数据进行扩展后取绝对值得到第二高位绝对值数据,在对第二低位数据进行扩展后取绝对值得到第二低位绝对值数据;
[0009]第一算术逻辑模块还用于向第一乘法器输出第一高位绝对值数据与第二高位绝对值数据、向第二乘法器输出第一高位绝对值数据与第二低位绝对值数据、向第三乘法器输出第一低位绝对值数据与第二高位绝对值数据、向第四乘法器输出第一低位绝对值数据与第二低位绝对值数据;
[0010]第一乘法器,用于对输入的数据进行乘法运算后得到第一数据,并分别向减法器和多路选择器输出第一数据;
[0011]第二乘法器,用于对输入的数据进行乘法运算后得到第二数据,并向加法器输出第二数据;
[0012]第二乘法器,用于对输入的数据进行乘法运算后得到第三数据,并向加法器输出第三数据;
[0013]第四乘法器,用于对输入的数据进行乘法运算后得到第四数据,并分别向减法器和多路选择器输出第四数据;
[0014]加法器,用于对输入的数据进行加法运算后得到第五数据,并向多路选择器输出第五数据;
[0015]减法器,用于对输入的数据进行减法运算后得到第六数据,并向多路选择器输出第六数据;
[0016]多路选择器,用于根据后续运算的需要在第一数据、第四数据、第五数据、第六数据中选择相应的数据输出。
[0017]较佳地,还可以进一步包括:第二算术逻辑模块,用于对多路选择器输出的数据进行后续运算处理。
[0018]本发明实施例中还提供了一种DSP,包括数据处理装置,其中:
[0019]数据处理装置,用于对来自寄存器组的数据进行乘法操作处理,并将所得结果存入所述寄存器组。
[0020]本发明有益效果如下:
[0021]在实施中,由于会将输入的2种数据拆分为高位数据与低位数据,在扩展后取绝对值,通过乘法器以及加法器、减法器进行相应的处理得到4种数据,这4种数据能够满足后续的各种后处理操作,只需通过多路选择器进行相应的选择即可。因此,与现有技术相t匕,本发明实施例中提供的数据处理装置能够支持各种不同数据类型的乘法运算,从而使完成各种类型的乘法运算所需的乘法器件的使用个数减少。
[0022]同时,将输入的数据进行拆分后输入到多个更小位数的并行的乘法器中处理,相比于直接将输入数据输入到一个较大位数的乘法器进行处理,大大减小了延迟。
[0023]进一步的,其他和乘法相关的操作也可以共享此数据处理装置,只要在第二算术逻辑模块中增加对此操作的后处理逻辑即可,因此本装置还具有可扩展性和灵活性。
【专利附图】

【附图说明】[0024]图1为现有DSP结构示意图;
[0025]图2为本发明实施例中数据处理装置结构示意图;
[0026]图3为本发明实施例中第二算术逻辑模块结构示意图;
[0027]图4为本发明实施例中数据处理装置用于蝶形运算的示意图;
[0028]图5为本发明实施例中复数乘法运算流程示意图;
[0029]图6为本发明实施例中DSP结构示意图。
【具体实施方式】
[0030]下面结合附图对本发明的【具体实施方式】进行说明。
[0031]图2为数据处理装置结构示意图,如图所示,在数据处理装置中可以包括:第一算术逻辑模块、第一乘法器、第二乘法器、第三乘法器、第四乘法器、加法器、减法器、多路选择器,其中:
[0032]第一算术逻辑模块,用于在接收到第一输入数据与第二输入数据后,将第一输入数据拆分为第一高位数据与第一低位数据后,在对第一高位数据进行扩展后取绝对值得到第一高位绝对值数据,在对第一低位数据进行扩展后取绝对值得到第一低位绝对值数据;以及,将第二输入数据拆分为第二高位数据与第二低位数据后,在对第二高位数据进行扩展后取绝对值得到第二高位绝对值数据,在对第二低位数据进行扩展后取绝对值得到第二低位绝对值数据;
[0033]第一算术逻辑模块还用于向第一乘法器输出第一高位绝对值数据与第二高位绝对值数据、向第二乘法器输出第一高位绝对值数据与第二低位绝对值数据、向第三乘法器输出第一低位绝对值数据与第二高位绝对值数据、向第四乘法器输出第一低位绝对值数据与第二低位绝对值数据;
[0034]第一乘法器,用于对输入的数据进行乘法运算后得到第一数据,并分别向减法器和多路选择器输出第一数据;
[0035]第二乘法器,用于对输入的数据进行乘法运算后得到第二数据,并向加法器输出第二数据;
[0036]第二乘法器,用于对输入的数据进行乘法运算后得到第三数据,并向加法器输出第三数据;
[0037]第四乘法器,用于对输入的数据进行乘法运算后得到第四数据,并分别向减法器和多路选择器输出第四数据;
[0038]此时,第一数据、第二数据、第三数据、第四数据得到的是无符号数据,即都是正数,需在输出到加法器或减法器或第二算术逻辑单元前,根据原乘法操作数的符号还原成相应的带符号数据。(例如需要进行5*(-4) =-20的运算,第一算术逻辑单元将乘法操作数变成5和4,所以乘法器输出为20,需还原成-20。)
[0039]加法器,用于对输入的数据进行加法运算后得到第五数据,并向多路选择器输出第五数据;
[0040]减法器,用于对输入的数据进行减法运算后得到第六数据,并向多路选择器输出第六数据;
[0041]多路选择器,用于根据后续运算的需要在第一数据、第四数据、第五数据、第六数据中选择相应的数据输出。
[0042]由上述实施例可见,本发明实施例中提出的数据处理装置是一种可以进行多种数据类型的乘法运算的乘法单元,其可以用于DSP中,在该装置中可以包括4个并行的乘法器,每个乘法器含有两个数据输入和一个数据输出。一个加法器与一个减法器,可以进行加法或减法运算。一个多路选择器,进行用于不同数据类型的乘法的输入数据选择。进一步的,还可以包括一片算术逻辑电路,进行不同的算术运算,如蝶形运算中的多个加法和减法操作,saturate和round操作等,其中,saturate和round操作分别是为防止数据溢出进行的操作以及四舍五入操作。即:
[0043]实施中,在数据处理装置中还可以进一步包括:
[0044]第二算术逻辑模块,用于对多路选择器输出的数据进行后续运算处理。
[0045]图3为第二算术逻辑模块结构示意图,如图所示,在增加了第二算术逻辑模块后,数据处理装置所支持的数据类型可以有:整数乘法运算,复数乘法运算,定点数乘法运算,混合类型乘法运算,乘加运算以及蝶形运算等。混合型乘法包括实部和虚部都是整数的复数乘法以及实部和虚部都是定点数的复数乘法。也即:
[0046]实施中,第二算术逻辑模块还可以进一步用于对多路选择器输出的数据进行二进制数据的连接和拆分。
[0047]实施中,第二算术逻辑模块还可以进一步用于对多路选择器输出的数据进行以下之一或者其组合的后续运算处理:整数乘法运算、复数乘法运算、定点数乘法运算、混合型乘法运算、乘加运算、蝶形运算。
[0048]实施中,第二算术逻辑模块还可以进一步用于进行包括实部和虚部都是整数的复数乘法以及实部和虚部都是定点数的复数乘法的混合型乘法运算。
[0049]相应的,在实施中,可以根据在后续需要进行的运算处理来确定多路选择器选择的数据输出。即:
[0050]实施中,多路选择器还可以进一步用于在后续运算处理为复数乘法或混合型乘法运算时,输出第五数据、第六数据;在后续运算处理为整数乘法或定点数乘法或蝶形运算时,输出第一数据、第四数据;在后续运算处理为乘加运算时,定点数的乘加运算输出第一数据和第四数据,复数的乘加运算输出第五数据和第六数据。
[0051 ] 实施中,多路选择器可以进一步用于根据指令的操作码进行选择。
[0052]下面以第一输入数据与第二输入数据为32bit操作数的实施进行说明。
[0053]实施中,第一算术逻辑模块可以进一步用于接收32bit操作数的第一输入数据与第二输入数据,拆分为16位数据的高位数据与16位数据的低位数据,并扩展成17位的绝对值数据。
[0054]实施中,第一算术逻辑模块可以进一步用于接收32bit操作数的第一输入数据与第二输入数据,所述32bit操作数是两个复数,实部为16位,虚部为16位;或者是两个16位的整数或定点数。
[0055]具体实施中,以图2所示的数据处理装置为例,则输入为两个32位的二进制数据,分别记为srcl和src2,它们可以是两个复数,实部为16位,虚部为16位,也可以将srcl和src2分别看成是两个16位的整数或定点数。因此通过图2所示结构可以同时进行16比特整数乘法或16比特定点数乘法以及32比特复数乘法。下面为了便于描述,将srcl和src2的高 16 位和低 16 位分别定义为 srcl_real 和 srcl_img, src2_real 和 src2_img。
[0056]图2中所示的第一算术逻辑模块主要是进行拆分和符号扩展的操作,即将两个32位的输入分别拆分成两个16位的操作数进行运算。同时,为了避免在后续的操作中数据溢出,第一算术逻辑模块内部还包含一个操作就是将得到的4个16bit的数据符号扩展成4个17bit的数据,然后取这些数据的绝对值,并分别把它们连接到不同的乘法器。
[0057]扩展出来的位数用于保证数据的正确性,因为在进行各种数据转换和操作的过程中,可能造成数据溢出,如果没有扩展位,数据就会有出错可能,扩展也是本领域技术人员易于理解的处理手段。
[0058]第一乘法器的输入数据为srcl_real和src2_real,第二乘法器输入数据为srcl_real和src2_img,第三乘法器的输入数据为srcl_img和src2_real,第四乘法器的输入数据为srcl_img和src2_img。4个并行的17bit*17bit乘法器同时运算得到的结果为34位,分别是:
[0059]srcl_real*src2_real,记为 A ;
[0060]srcl_real*src2_img,记为 B ;
[0061]srcl_img*src2_real,记为 C ;
[0062]srcl_img*src2_img,记为 D。
[0063]根据复数乘法的公式(a+bi)*(c+di) = (a*c - b*d) + (a*d+b*c) i,上述四个乘法运算正好对应此复数乘法公式中的4个乘法。接下来,如图2所示,将B和C相加结果记为E,A和D相减结果记为F,这两个操作都由加法器来完成,只是在进行减法操作前被减数进行求补操作即可。目前所得到的4个结果A、D、E、F可以划分成两组,分别是A和D用于整数乘法和定点数乘法以及蝶形运算的后处理,另一组E和F用于复数乘法和混合型乘法运算的后处理。图2中的多路选择器(即MUX)就是用于这两组数据的选择操作,选择条件可以来自于指令的操作码。而第二算术逻辑模块是用于各种数据类型运算的后处理的。所包含的数据类型如图3所示,后处理逻辑大多是一些二进制数据拆分和拼接逻辑以及saturate和round操作,同时乘加运算的后处理逻辑是加法操作,而蝶形运算的后处理逻辑是一些加法或减法操作。同时,在后处理逻辑中得到指定位数的操作结果。
[0064]当减法运算使用加法器来实现时,被减数需要进行求补操作,这是加法运算和减法运算共同用加法来完成的操作,这是本领域技术人员易于理解的处理手段。
[0065]图3中所示的连接到各个后处理逻辑的线代表控制信号,以选择需要执行的逻辑。例如,进行两个32bit的复数乘法运算,两个操作数的实部和虚部分别为16bit,经过图2所示第一算术逻辑模块使得每个操作数的实部和虚部变成17bit的绝对值数据。再根据上面所述的处理之后得到复数乘法结果的实部和虚部,但此时它们分别是34bit,并经过MUX输出进入第二算术逻辑模块,在控制信号的选择下,复数乘法的的后处理逻辑对其进行处理。如果要求得到的结果的实部和虚部分别是16bit数据,那么在复数乘法的后处理逻辑中,可以对34bit数据进行判断是否需要进行saturate操作,如果超出要求的数据范围,可以对其进行saturate操作并选择指定范围的位数输出。
[0066]下面以实例进行说明。
[0067]图4为数据处理装置用于蝶形运算的示意图,如图所示,图4所示的电路结构可作为DSP系统内的基2蝶形运算基本单元,由此可进行扩展,如多个基2蝶形运算基本单元并行运算可实现向量DSP基2蝶形运算。不仅如此,本发明实施例中提出的数据处理装置可用于任意基的蝶形运算,如基4的蝶形运算等,只是使用的乘法运算单元的个数以及对乘法运算单元输出结果的逻辑运算方式不同。
[0068]下面以两个32位数进行复数乘法运算为例进行说明。
[0069]图5为复数乘法运算流程示意图,如图所示,两个32位数进行复数乘法运算。DSP读取寄存器得到两个32位的数,作为复数乘法运算的输入数据。将两个输入数据分别拆分为实部和虚部分别为16位的基础数据。经过第一算术逻辑模块后,每个输入数据的实部和虚部分别拓展为17位的绝对值数据。对所得到的17位绝对值数据取绝对值并保留符号位。
[0070]进行乘法运算:第一高位绝对值数据(实部)乘第二高位绝对值数据数据(实部)得到第一数据;第一高位绝对值数据(实部)乘第二低位绝对值数据(虚部)得到第二数据;第一低位绝对值数据(虚部)乘第二高位绝对值数据(实部)得到第三数据;第一低位绝对值数据(虚部)乘第二低位绝对值数据(虚部)得到第四数据。
[0071]根据符号位对乘法结果进行处理:如果符号位为0,乘法结果保持不变;如果符号位为1,对乘法结果求补。得到新的中间数据。
[0072]对新的中间数据进行运算:第一数据-第四数据;第二数据+第三数据。将上述两个结果输入至复数乘法运算后处理子模块,对输入数据进行saturate操作,使之不超过二进制数据表示范围。截取指定位数的数据并输出。
[0073]下面以两个32位定点数进行乘加运算进行说明。
[0074]DSP读取寄存器得到两个32位的定点数,作为乘法运算的输入数据。将两个输入数据分别拆分为16位的基础数据。经过第一算术逻辑模块后,每个基础数据分别拓展为17位的绝对值数据。对所得到的17位绝对值数据取绝对值并保留符号位。
[0075]进行乘法运算:第一高位绝对值数据乘第二高位绝对值数据得到第一数据;第一高位绝对值数据乘第二低位绝对值数据得到第二数据;第一低位绝对值数据乘第二高位绝对值数据得到第三数据;第一低位绝对值数据乘第二低位绝对值数据得到第四数据。
[0076]根据符号位对乘法结果(即第一至第四数据)进行处理:如果符号位为0,乘法结果保持不变;如果符号位为1,对乘法结果求补。得到新的中间数据。
[0077]将新的中间数据输入至乘加运算后处理子模块中。新的第一数据和来自乘累加寄存器的数据共同输入加法器,对得到的结果截取指定位数,所得值输出;新的第四数据和来自乘累加寄存器的数据共同输入加法器,对得到的结果截取指定位数,所得值输出。两个输出分别代表两个并行的定点数乘法运算的结果。
[0078]本实施例中的乘累加寄存器是在DSP系统中定义的一个寄存器,没有在图中示出,乘累加寄存器可以包含在寄存器堆里,涉及乘累加寄存器的实施是本领域技术人员容易知晓的。
[0079]下面以两个32位复数进行乘加运算进行说明。
[0080]DSP读取寄存器得到两个32位的复数,作为复数乘法运算的输入数据。将两个输入数据分别拆分为实部和虚部分别为16位的基础数据。经过第一算术逻辑模块后,每个输入数据的实部和虚部分别拓展为17位的绝对值数据。对所得到的17位绝对值数据取绝对值并保留符号位。
[0081]进行乘法运算:第一高位绝对值数据(实部)乘第二高位绝对值数据数据(实部)得到第一数据;第一高位绝对值数据(实部)乘第二低位绝对值数据(虚部)得到第二数据;第一低位绝对值数据(虚部)乘第二高位绝对值数据(实部)得到第三数据;第一低位绝对值数据(虚部)乘第二低位绝对值数据(虚部)得到第四数据。
[0082]根据符号位对乘法结果进行处理:如果符号位为0,乘法结果保持不变;如果符号位为1,对乘法结果求补。得到新的中间数据。
[0083]第一数据-第四数据得到减法数据;第二数据+第三数据得到加法数据。
[0084]将减法数据和加法数据输入至乘加运算后处理子模块中。减法数据和来自乘累加寄存器的数据共同输入一个加法器,对得到的结果截取指定位数,得到实部输出值;加法数据和来自乘累加寄存器的数据共同输入另一个加法器,对得到的结果截取指定位数,得虚部输出值。
[0085]下面以数据处理装置实现基2的蝶形运算进行说明。
[0086]如图4所示,利用数据处理装置实现基2的蝶形运算时,运算需要两个乘法运算单元,每个乘法运算单元的输入为两个32位二进制数据作为基2的蝶形运算的操作数,此时,两个乘法单元内部的多路选择器会选择出加法数据和减法数据,即乘法运算结果的实部和虚部,而第二算术逻辑模块中的蝶形运算后处理逻辑是二进制数据截取操作,从而得到指定位数的乘法运算结果的实部和虚部。接下来由乘法运算单元输出的结果进行相应的加法或减法运算。将图4中左侧乘法运算单元的结果分别记为slotl.re, slotl.1m,将右侧乘法运算单元的结果分别记为slot0.re, slot0.1m,其中re代表实部,im代表虚部,因此进行的运算如下:
[0087]slot0.re+slotl.re ;
[0088]slot0.1m+slotl.1m ;
[0089]slot0.re-slotl.re ;
[0090]slot0.1m-slotl.1m ;
[0091]进行上述运算之后的四个32位输出即为蝶形运算的结果。图中分别由符号进行了结果的表不,即 r2.0l.re, r2.0l.1m, r2.ο2.re, r2.02.1m。
[0092]本发明实施例中提出的数据处理装置是一种可以进行多种数据类型的乘法运算的乘法单元,其可以用于DSP中。图6为DSP结构示意图,如图所示,在DSP中可以包括上述实施例中所述的数据处理装置,其中:
[0093]数据处理装置,用于对来自寄存器组的数据进行乘法操作处理,并将所得结果存入所述寄存器组。
[0094]由上述实施例可知,本发明实施例中所提供的数据处理装置对现有技术中的乘法运算单元进行了扩展,不再局限于不同数据范围的乘法的实现,而是可以求得不同数据类型的各种乘法的运算结果。具体的,数据处理装置可以支持多种数据类型的乘法,并共享乘法逻辑操作;支持的数据类型为整数乘法运算,复数乘法运算,定点数乘法运算,混合类型乘法运算,乘加运算以及蝶形运算等,其中混合类型乘法运算包括实部和虚部都是整数的复数乘法以及实部和虚部都是定点数的复数乘法。
[0095]该数据处理装置在进行数据处理时,对于32bit的操作数的输入,在算术逻辑模块分别拆分成高16位和低16位数据,并扩展成17位的绝对值数据。将其输入到4个乘法器中,再经过两个加法器,得到4个结果,进过多路选择器的选择,最后在相应的后处理逻辑单元(第二算术逻辑模块)进行后续的处理以输出最后结果。
[0096]在第二算术逻辑模块中可以包含各种数据类型的乘法的后处理操作,包括整数乘法运算的后处理逻辑,定点数乘法运算的后处理逻辑,复数乘法运算的后处理逻辑,混合型乘法运算的后处理逻辑,以及乘加运算的后处理逻辑和蝶形运算的后处理逻辑等。这些后处理逻辑主要是二进制数据的连接和拆分,saturate和ixnmd操作以及乘加运算的加法操作和蝶形运算的后续运算步骤中的加法和减法操作等。
[0097]与现有技术相比,本发明实施例中提供的数据处理装置能够支持各种不同数据类型的乘法运算,并且各种不同类型的乘法运算包括乘加运算和蝶形运算都可以在此单元中共享乘法操作,从而使完成各种类型的乘法运算所需的乘法器件的使用个数减少。并且,除了实施例中所提到的数据类型,其他和乘法相关的操作也可以共享此乘法单元,只要在第二算术逻辑模块中增加对此操作的后处理逻辑即可,因此本装置还具有可扩展性和灵活性。
[0098]本发明实施例中还提供了一种DSP,包含数据处理装置,该DSP可以用最少的电路来完成多种数据类型的乘法运算,结构合理,使用效果好。由于对输入数据进行了拆分处理,使得所使用的乘法器规模减小,延迟减小,将此乘法单元用在DSP系统中,可减少延迟,提闻处理器性能。
[0099]尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
【权利要求】
1.一种数据处理装置,其特征在于,包括:第一算术逻辑模块、第一乘法器、第二乘法器、第三乘法器、第四乘法器、加法器、减法器、多路选择器,其中: 第一算术逻辑模块,用于在接收到第一输入数据与第二输入数据后,将第一输入数据拆分为第一高位数据与第一低位数据后,在对第一高位数据进行扩展后取绝对值得到第一高位绝对值数据,在对第一低位数据进行扩展后取绝对值得到第一低位绝对值数据;以及,将第二输入数据拆分为第二高位数据与第二低位数据后,在对第二高位数据进行扩展后取绝对值得到第二高位绝对值数据,在对第二低位数据进行扩展后取绝对值得到第二低位绝对值数据; 第一算术逻辑模块还用于向第一乘法器输出第一高位绝对值数据与第二高位绝对值数据、向第二乘法器输出第一高位绝对值数据与第二低位绝对值数据、向第三乘法器输出第一低位绝对值数据与第二高位绝对值数据、向第四乘法器输出第一低位绝对值数据与第二低位绝对值数据; 第一乘法器,用于对输入的数据进行乘法运算后得到第一数据,并分别向减法器和多路选择器输出第一数据 ; 第二乘法器,用于对输入的数据进行乘法运算后得到第二数据,并向加法器输出第二数据; 第二乘法器,用于对输入的数据进行乘法运算后得到第三数据,并向加法器输出第三数据; 第四乘法器,用于对输入的数据进行乘法运算后得到第四数据,并分别向减法器和多路选择器输出第四数据; 加法器,用于对输入的数据进行加法运算后得到第五数据,并向多路选择器输出第五数据; 减法器,用于对输入的数据进行减法运算后得到第六数据,并向多路选择器输出第六数据; 多路选择器,用于根据后续运算的需要在第一数据、第四数据、第五数据、第六数据中选择相应的数据输出。
2.根据权利要求1所述的数据处理装置,其特征在于,进一步包括: 第二算术逻辑模块,用于对多路选择器输出的数据进行后续运算处理。
3.根据权利要求2所述的数据处理装置,其特征在于,第二算术逻辑模块进一步用于对多路选择器输出的数据进行二进制数据的连接和拆分。
4.根据权利要求3所述的数据处理装置,其特征在于,第二算术逻辑模块进一步用于对多路选择器输出的数据进行以下之一或者其组合的后续运算处理:整数乘法运算、复数乘法运算、定点数乘法运算、混合型乘法运算、乘加运算、蝶形运算。
5.根据权利要求4所述的数据处理装置,其特征在于,第二算术逻辑模块进一步用于进行包括实部和虚部都是整数的复数乘法以及实部和虚部都是定点数的复数乘法的混合型乘法运算。
6.根据权利要求4所述的数据处理装置,其特征在于,多路选择器进一步用于在后续运算处理为复数乘法或混合型乘法运算或蝶形运算时,输出第五数据、第六数据;在后续运算处理为整数乘法或定点数乘法时,输出第一数据、第四数据;在后续运算处理为乘加运算时,定点数的乘加运算输出第一数据和第四数据,复数的乘加运算输出第五数据和第六数据。
7.根据权利要求6所述的数据处理装置,其特征在于,多路选择器进一步用于根据指令的操作码进行选择。
8.根据权利要求1至7任一所述的数据处理装置,其特征在于,第一算术逻辑模块进一步用于接收32bit操作数的第一输入数据与第二输入数据,拆分为16位数据的高位数据与16位数据的低位数据,并扩展成17位的绝对值数据。
9.根据权利要求1至5任一所述的数据处理装置,其特征在于,第一算术逻辑模块进一步用于接收32bit操作数的第一输入数据与第二输入数据,所述32bit操作数是两个复数,实部为16位,虚部为16位;或者是两个16位的整数或定点数。
10.一种DSP数字信号处理器,其特征在于,包括如权利要求1至9任一所述的数据处理装置,其中: 数据处理装置,用于对来自寄存器组的数据进行乘法操作处理,并将所得结果存入所述寄存器组。
【文档编号】G06F7/52GK103677735SQ201210366427
【公开日】2014年3月26日 申请日期:2012年9月27日 优先权日:2012年9月19日
【发明者】石晶林, 朱子元, 马洁 申请人:北京中科晶上科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1