CN102637124B - 一种基4fft算法的并行处理装置及方法 - Google Patents

一种基4fft算法的并行处理装置及方法 Download PDF

Info

Publication number
CN102637124B
CN102637124B CN201210079044.9A CN201210079044A CN102637124B CN 102637124 B CN102637124 B CN 102637124B CN 201210079044 A CN201210079044 A CN 201210079044A CN 102637124 B CN102637124 B CN 102637124B
Authority
CN
China
Prior art keywords
instruction
complex multiplication
streamline
computing
simd
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210079044.9A
Other languages
English (en)
Other versions
CN102637124A (zh
Inventor
李华
于宗光
张庆文
屈凌翔
王亚强
江鹏
藏鑫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CETC 58 Research Institute
Original Assignee
CETC 58 Research Institute
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CETC 58 Research Institute filed Critical CETC 58 Research Institute
Priority to CN201210079044.9A priority Critical patent/CN102637124B/zh
Publication of CN102637124A publication Critical patent/CN102637124A/zh
Application granted granted Critical
Publication of CN102637124B publication Critical patent/CN102637124B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明提供一种基4FFT算法的并行处理装置及方法,其包括:指令存储单元、指令读取和发射单元、整数指令流水线、SIMD指令流水线、存取指令流水线。基4FFT算法运算包括向量加法操作、复数乘法操作和数据存取操作。本发明利用SIMD指令流水线和整数指令流水线并行执行加速基4FFT运算中的向量加法操作;在SIMD指令流水线进行复数乘法运算过程中进行整数指令操作,得到第二次复数乘法所需要的源操作数,加速基4FFT运算中的复数乘法操作;将复数乘法运算结果的存储顺序进行重排序,充分利用SIMD指令流水线和存取指令流水线之间的并行性,提高基4FFT运算结果的存储速度;依靠上述三个方面的并行处理加快基4FFT算法的运算速度,提高基4FFT算法的执行效率。

Description

一种基4FFT算法的并行处理装置及方法
技术领域
本发明公开了一种应用DSP实现基4FFT算法的并行处理装置及方法,它属于数字信号与系统技术领域,涉及到快速傅立叶变换FFT及数字信号的并行处理,具体设计基于频域抽取基4FFT算法。
背景技术
FFT(Fast Fourier Transformation),即为快速傅立叶变换,是一种将信号从时域变换到频域的变换形式。通常FFT运算可通过基2或者基4算法实现,但是基4运算与基2运算相比,其运算速度快,运算级数少,具有较大的优势,对于长度非4n的FFT运算可以采用分裂基算法,即采用基2蝶形和基4蝶形混合结构以减少FFT的级数和提高运算速度。因此设计基4FFT运算单元具有较大的优势。本发明主要针对频率抽取基4FFT算法。
FFT算法可以采用通用DSP实现也可以通过FPGA来实现。两者相对来讲,DSP开发相对简单,技术成熟,但速度较慢。针对此情况,本发明在DSP的基础上利用整数指令流水线和SIMD指令流水线并行执行加速向量加法操作,利用SIMD指令流水线和整数指令流水线加速复数乘法运算,利用SIMD流水线和存取指令流水线并行执行加速数据的存储,利用较少的资源实现FFT的基4运算,提高基4FFT算法的运算速度,实现基4FFT算法的并行处理。
按频率抽取的N点基4-FFT(N=4M)的推导公式为:
X ( k ) = Σ n = 0 N 4 - 1 x ( n ) W N nk + Σ n = N 4 N 2 - 1 x ( n ) W N nk + Σ n = N 2 3 N 4 - 1 x ( n ) W N nk + Σ n = 3 N 4 N - 1 x ( n ) W N nk
分别令k=4r,k=4r+2,k=4r+1,k=4r+3,而r=0,1,、、、(N/4-1)
X ( 4 r ) = Σ n = 0 N 4 - 1 [ ( x ( n ) + x ( n + N 2 ) ) + ( x ( n + N 4 ) + x ( n + 3 N 4 ) ) ] W N / 4 nr - - - ( 1 )
X ( 4 r + 2 ) = Σ n = 0 N 4 - 1 [ ( x ( n ) + x ( n + N 2 ) ) - ( x ( n + N 4 ) + x ( n + 3 N 4 ) ) ] W N 2 n W N / 4 nr - - - ( 2 )
X ( 4 r + 1 ) = Σ n = 0 N 4 - 1 [ ( x ( n ) - x ( n + N 2 ) ) - j ( x ( n + N 4 ) - x ( n + 3 N 4 ) ) ] W N n W N / 4 nr - - - ( 3 )
X ( 4 r + 3 ) = Σ n = 0 N 4 - 1 [ ( x ( n ) - x ( n + N 2 ) ) + j ( x ( n + N 4 ) - x ( n + 3 N 4 ) ) ] W N 3 n W N / 4 nr - - - ( 4 )
其中
W N r = e - j 2 πr N = cos ( 2 πr N ) - j sin ( 2 πr N )
W N 0 = 1 ; W N N 4 = - j ; W N N 2 = - 1 ; W N 3 N 4 = j ;
上述运算的结果是倒序的,最终的结果要经过变址程序。
根据上述推导即可将16点基4FFT频域抽取信号分成四个4点的FFT,如图2所示,16点基4FFT分解为m=0,m=1两级,m=1级包括四个4点FFT,每一个都是基4FFT的基本单元。
基4FFT的运算是很有规律的,每一级的运算都是由N/4个蝶形运算构成,参与一个蝶形运算的四个节点是很有规律的。如图3所示第m级的一个蝶形运算的4个节点分别为Xm(k),(m=1,k=0),所以每个蝶形运算完成下述基本迭代运算。
X m + 1 ( k ) = [ X m ( k ) + X m ( k + N 4 m ) + X m ( k + 2 N 4 m ) + X m ( k + 3 N 4 m ) ] W N 0 - - - ( 5 )
X m + 1 ( k + N 4 m ) = [ X m ( k ) - jX m ( k + N 4 m ) - X m ( k + 2 N 4 m ) + jX m ( k + 3 N 4 m ) ] W N k - - - ( 6 )
X m + 1 ( k + 2 N 4 m ) = [ X m ( k ) - X m ( k + N 4 m ) + X m ( k + 2 N 4 m ) - X m ( k + 3 N 4 m ) ] W N 2 k - - - ( 7 )
X m + 1 ( k + 3 N 4 m ) = [ X m ( k ) + jX m ( k + N 4 m ) - X m ( k + 2 N 4 m ) - jX m ( k + 3 N 4 m ) ] W N 3 k - - - ( 8 )
公式(5)(6)(7)(8)中的X和W都是复数,由上述式子可以看出完成一个基4蝶形运算需要多步复数加法和复数乘法。利用re表示复数的实部,im表示复数的虚部,利用下面的替换公式将公式(5)(6)(7)(8)进行转化:
xh 0 = re [ X m ( k ) + X m ( k + 2 N 4 m ) ] xh 1 = im [ X m ( k ) + X m ( k + 2 N 4 m ) ]
xl 0 = re [ X m ( k ) - X m ( k + 2 N 4 m ) ] xl 1 = im [ X m ( k ) - X m ( k + 2 N 4 m ) ] (9)
xh 20 = re [ X m ( k + N 4 m ) + X m ( k + 3 N 4 m ) ] xh 21 = im [ X m ( k + N 4 m ) + X m ( k + 3 N 4 m ) ]
xl 20 = re [ X m ( k + N 4 m ) - X m ( k + 3 N 4 m ) ] xl 21 = im [ X m ( k + N 4 m ) - X m ( k + 3 N 4 m ) ]
公式(5)转化为
Xm+1(k)=xh0+xh20+j*(xh1+xh21)                    (10)
公式(6)转化为
X m + 1 ( k + N 4 m ) = [ X m ( k ) - jX m ( k + N 4 m ) - X m ( k + 2 N 4 m ) + jX m ( k + 3 N 4 m ) ] W N k
= { [ X m ( k ) - X m ( k + 2 N 4 m ) ] - j [ X m ( k + N 4 m ) - X m ( k + 3 N 4 m ) ] } W N k
= { re ( X m ( k ) - X m ( k + 2 N 4 m ) ) + im ( X m ( k + N 4 m ) - X m ( k + 3 N 4 m ) ) - - - ( 11 )
+ j [ im ( X m ( k ) - X m ( k + 2 N 4 m ) ) - re ( ( X m ( k + N 4 m ) - X m ( k + 3 N 4 m ) ) ] } W N k
= [ ( xl 0 + xl 21 ) + j ( xl 1 - xl 20 ) ] W N k
= [ xt 1 + j * yt 1 ) ] W N k
其中xt1=xl0+xl21,yt1=xl1-xl20
公式(7)转化为
X m + 1 ( k + 2 N 4 m ) = [ X m ( k ) - X m ( k + N 4 m ) + X m ( k + 2 N 4 m ) - X m ( k + 3 N 4 m ) ] W N 2 k
= { [ X m ( k ) + X m ( k + 2 N 4 m ) ] - [ X m ( k + N 4 m ) + X m ( k + 3 N 4 m ) ] } W N 2 k
= { re ( X m ( k ) + X m ( k + 2 N 4 m ) ) - re ( X m ( k + N 4 m ) - X m ( k + 3 N 4 m ) ) - - - ( 12 )
+ j [ im ( X m ( k ) + X m ( k + 2 N 4 m ) ) - im ( ( X m ( k + N 4 m ) + X m ( k + 3 N 4 m ) ) ] } W N 2 k
= [ ( xh 0 - xl 20 ) + j ( xh 1 - xh 21 ) ] W N 2 k
= [ xt 0 + j * yt 0 ) ] W N 2 k
其中xt0=xh0-xl20,yt0=xh1-xh21
公式(8)转化为
X m + 1 ( k + 3 N 4 m ) = [ X m ( k ) + jX m ( k + N 4 m ) - X m ( k + 2 N 4 m ) - jX m ( k + 3 N 4 m ) ] W N 3 k
= { [ X m ( k ) - X m ( k + 2 N 4 m ) ] + j [ X m ( k + N 4 m ) - X m ( k + 3 N 4 m ) ] } W N 3 k
= { re ( X m ( k ) - X m ( k + 2 N 4 m ) ) - im ( X m ( k + N 4 m ) - X m ( k + 3 N 4 m ) ) - - - ( 13 )
+ j [ im ( X m ( k ) - X m ( k + 2 N 4 m ) ) + re ( ( X m ( k + N 4 m ) - X m ( k + 3 N 4 m ) ) ] } W N 3 k
= [ ( xl 0 - xl 21 ) + j ( xl 1 + xl 20 ) ] W N 3 k
= [ xt 2 + j * yt 2 ) ] W N 3 k
其中xt2=xl0-xl21,yt2=xl1+xl20
进行上述转化后发现,基4FFT运行主要进行xh0、xh1、xl0、xl1、xh20、xh21、xt0、xt1、yt0、yt1、xt2和yt2所需的加法操作以及相应的复数乘法操作。
发明内容
本发明的目的是实现基4FFT的并行处理,提高基4FFT的运算速度,提供一种基4FFT算法的并行处理装置及方法,用于DSP快速实现数字信号的基带处理。
按照本发明提供的技术方案,所述基4FFT算法的并行处理装置包括以下部分:
指令存储单元的输出端连接指令读取和发射单元,指令存储单元用于存放将要执行的指令;
所述指令读取和发射单元的输出端连接整数指令流水线、SIMD指令流水线和存取指令流水线,所述指令读取和发射单元中的发射单元支持单发射、双发射和三发射三种机制;
所述整数指令流水线连接数据ALU,用于控制数据ALU指令的执行;
所述SIMD指令流水线连接双MAC(Multiply-and-Accumulate,乘加单元),用于控制MAC指令的执行,双MAC能够实现4路16*16或2路32*32数据操作;
所述存取指令流水线连接地址ALU,用于控制存取指令的执行。
上述基4FFT算法的并行处理装置的并行处理方法为:利用整数流水线和SIMD指令流水线并行执行加速基4FFT运算中的向量加法操作;利用SIMD指令流水线和整数指令流水线并行执行加速4FFT运算中的复数乘法操作;利用SIMD流水线和存取指令流水线并行执行加速复数乘法结果的存储速度。
其中,所述利用整数流水线和SIMD指令流水线并行执行加速基4FFT运算中的向量加法操作的方法为:基4FFT运算中的向量加法依靠整数指令流水线中的数据ALU和SIMD指令流水线中的累加器进行计算,基4FFT运算中的向量加法的结果是复数乘法的源操作数,在复数乘法的源操作数未得到之前SIMD流水线中的MAC处于空闲状态,利用SIMD流水线中的MAC和ALU的并行性加速向量加法的运算。
所述利用SIMD指令流水线和整数指令流水线并行执行加速4FFT运算中的复数乘法操作的方法,其特征是:SIMD指令流水线包括双MAC,能够单周期完成4个16*16bits操作或者2个32*32bits操作;其中一个MAC采用标量寄存器d,另一个MAC采用向量寄存器v;数据位宽采用32bits,利用SIMD指令流水线中的双MAC结构,第一个周期完成2个32*32bits实数相乘,下一个周期完成另两个实数的乘法运算,并进行相应的加减操作从而完成一个复数的乘法操作;ALU完成数据加法需要一个时钟周期,而MAC完成数据乘法需要两个周期,利用MAC进行数据相乘的过程中,能够利用ALU得到下一个复数乘法所需要的源操作数。
所述利用SIMD流水线和存取指令流水线并行执行加速复数乘法结果的存储速度的方法为:存取指令流水线中的主要部件是地址ALU,采用的寄存器主要来自地址寄存器a;存储指令在基4FFT运算中的并行操作在于:将SIMD复数乘法计算结果的存储顺序重新排序,基4FFT运算总共需要进行1次向量加法操作和3次复数乘法操作,向量加法的结果暂时不进行存储,第一次复数乘法完成后再进行第一步向量加法结果的存储,第二次复数乘法后进行第一次复数乘法结果的存储,第三次复数乘法后进行第二次复数乘法结果的存储,然后再存储第三次复数乘法的结果,存储时间由原来的4个周期减少到1个周期,加速基4FFT运算结果的存储速度。
本发明的优点是:本发明利用DSP的特有结构-2个MAC,1个数据ALU和1个地址ALU,依靠3条独立的流水线-整数指令流水线、SIMD指令流水线和存取指令流水线之间的并行性,采用双发射以及三发射机制,向量加法依靠数据ALU和MAC共同执行,复数乘法采用双MAC和数据ALU共同执行,合理安排结果的存储顺序,实现基4FFT的并行处理,加快基4FFT的运算速度。
附图说明
图1为基4FFT并行处理装置整体框图。
图2为16点基4FFT频域抽取信号流图。
图3为基4FFT第m级蝶形因子信号流图。
图4为基4FFT向量加法优化图。
图5为基4FFT复数乘法优化图。
图6为基4FFT复数结果存储优化图。
具体实施方式
如图1所示,本发明的基4FFT算法的并行处理装置包括:指令存储单元,用于存放将要执行的指令;指令读取和发射单元,将指令代码从指令存储单元中读取并发送到相应的执行单元,支持单、双和三发射三种机制;整数指令流水线,用于控制数据ALU指令的执行;SIMD指令流水线,用于控制MAC指令的执行,实现单指令多数据操作;存取指令流水线,用于控制存取指令的执行。
如图4所示,本发明利用整数指令流水线和SIMD指令流水线并行执行加速基4FFT运算中的向量加法操作。
基4FFT运算中的向量加法主要依靠整数指令流水线中的数据ALU和SIMD指令流水线中的累加器进行计算,本发明利用两者之间的并行处理加速基4FFT运算中的向量加法操作。基4FFT运算中的向量加法的结果是复数乘法的源操作数,在复数乘法的源操作数未得到之前SIMD流水线中的MAC处于空闲状态,所以可以利用其和ALU的并行性加速向量加法的运算,利用ALU和MAC之间的并行性,可以实现1次完成4个32bits的加法操作。
如图5所示,本发明利用SIMD指令流水线和整数指令流水线并行执行加速4FFT运算中的复数乘法操作。
SIMD指令流水线包括双MAC,可实现单周期完成4个16*16bits操作或者2个32*32bits操作。其中一个MAC采用标量寄存器d,另外一个MAC采用向量寄存器v。为了实现FFT运算结果误差小于千分之五的目的,数据位宽采用32bits,利用SIMD中的双MAC结构,第一个周期可实现2个32*32bits实数相乘的运算,得到运算结果xt0*co2和xt0*si2,接下来一个周期完成另两个实数的乘法运算,得到运算结果yt0*co2和yt0*si2并进行相应的加减操作从而完成一个复数的乘法操作,得到运算结果xt0*co2-yt0*si2和xt0*si2+yt0*co2。利用ALU和MAC的并行性,在进行xt0*co2和xt0*si2运算过程中可以依靠数据ALU得到下一个复数乘法所需要的源操作数xt1和yt1,其中xt1=xl0+xl21,yt1=xl1-xl20。同理,在进行第二个复数乘法的过程中可以依靠ALU得到第三个复数乘法所需的源操作数。
如图6所示,本发明利用SIMD流水线和存取指令流水线并行执行加速复数乘法结果的存储速度。
存取指令流水线中的主要部件是地址ALU,采用的寄存器主要来自地址寄存器a。存储指令在基4FFT运算中的并行操作主要在于:将SIMD复数乘法计算结果直接进行存储时,由于数据相关性无法实现SIMD指令流水线和存取指令流水线之间的并行性,会多消耗1个时钟周期,本发明将结果的存放顺序重新排序,基4FFT运算总共需要进行1次向量加法操作和3次复数乘法操作,首次向量加法的结果暂时不进行存储,第一次复数乘法完成后进行第一步向量加法结果的存储,第二次复数乘法后进行第一次复数乘法结果的存储,第三次复数乘法后进行第二次复数乘法结果的存储,再存储第三次复数乘法的结果,存储时间由原来4个时钟周期的减少到现在的1个时钟周期,加速基4FFT运算的结果存储。
第一阶段:向量加法的并行处理。
如图4所示,将双MAC和ALU加法运算的串行操作改为并行处理后,完成公式(9)和(10)10个加法操作所花时间由原来的6个时钟周期减少到现在的4个时钟周期,具体优化过程如下:
首先完成寄存器的加载,参考公式(9),将Xm(k)的实部和虚部分别加载到标量寄存器d0和d1中,将的实部和虚部加载到d4和d5中,将的实部和虚部加载到d2和d3中,将的实部和虚部加载到d6和d7中,并且d0和d1组成寄存器e0,d4和d5组成寄存器e4,d2和d3组成寄存器e2,d6和d7组成寄存器e6。利用ALU完成d0+d4和d1+d5的操作,将结果暂存在e8=[d9,d8]中,同时利用双MAC结构完成e0和e4的减法,将结果存放在e14=[d15,d14]中;利用ALU完成d0=d2+d6,利用MAC计算得到e4=e2-e6,利用ALU完成d1=d3+d7,利用MAC完成e2=d8+e0。经过上述操作后可得到xh0、xh1、xl0、xl1、xh20、xh21、xh0+xh20和xh1+xh21,其中Xm+1(k)=xh0+xh20+j*(xh1+xh21),暂时不进行Xm+1(k)的保存。
汇编指令如下所示:
Add d8,d0,d4
Add d9,d1,d5;完成e8=(xh1,xh0)
Sub.x e14,e0,d4;完成e14=(xl1,xl0),2clk
Add d0,d2,d6
Sub.x e4,e2,e6;完成e4=(xl21,xl20),1clk
Add d1,d3,d7;完成e0=(xh21,xh20)
Add.x e10,e8,e0;完成e10=(xh1+xh21,xh0+xh20),1clk
第二阶段:复数乘法的并行处理。
如图5所示,利用双MAC结构采用SIMD指令执行复数乘法的过程中同时利用数据ALU进行加法运算得到下一步复数乘法的源操作数,从而加快复数乘法部分的执行速度。FFT的基4蝶形因子中的复数乘法优化如下:
参考公式(12),首先双MAC进行减法运算得到xt0和yt0,然后双MAC采用SIMD指令mulr.x操作得到两个实数的乘积,接下来MAC采用SIMD指令maddsur.x得到复数乘法的运算结果,在进行mulr.x和maddsur.x操作过程中可利用整数指令流水线中数据ALU的并行性得到公式(11)所需要的源操作数xt1和yt1。参考公式(12),假定加载到向量寄存器ev2中,利用SIMD的mulr.x操作得到xt0*si2和yt0*si2,利用maddsur.x操作进行实数乘法计算并进行加减运算,得到复数乘法的运算结果xt0*co2-yt0*si2和xt0*si2+yt0*co2。在进行mulr.x和maddsur.x操作运算过程中进行ALU的加减操作得到xt1和yt1。同理在进行复数(xt1,yt1)*(co1,si1)的过程中得到第三次复数乘法所需的源操作数xt2和yt2。
第三阶段:存储结果的并行处理。
如图6所示,基4FFT算法中的存储优化主要来自于SIMD指令流水线和存取指令流水线之间的并行性,采用双发射机制。如果直接进行SIMD结果的保存,会由于数据相关性而无法实现双发射,将结果保存顺序重新排序,基4FFT运算第一个结果不需要进行复数乘法,只进行复数加法,此步运算结果暂时不进行保存,第一次复数乘法完成后进行上一步向量加法结果的存放,第二次复数乘法后进行第一次复数乘法结果的保存,第三次复数乘法后进行第二次复数乘法结果的保存,再保存第三次复数乘法的结果,充分利用SIMD指令流水线和存取指令流水线之间的并行性,减少运算所需的时钟周期数,提高基4FFT的执行效率。

Claims (1)

1. 一种基4FFT算法的并行处理装置的并行处理方法,所述基4FFT算法的并行处理装置,包括以下部分:
指令存储单元的输出端连接指令读取和发射单元,指令存储单元用于存放将要执行的指令;所述指令读取和发射单元的输出端连接整数指令流水线;所述整数指令流水线包含数据ALU,用于控制数据ALU指令的执行;
其特征是,所述指令读取和发射单元的输出端连接SIMD指令流水线和存取指令流水线,所述指令读取和发射单元中的发射单元支持单发射、双发射和三发射三种机制;
所述SIMD指令流水线包含双乘累加单元,用于控制乘累加指令的执行,双乘累加单元能够实现4路16*16或2路32*32数据操作;
所述存取指令流水线包含地址ALU,用于控制存取指令的执行;
所述并行处理方法,包括以下步骤:利用整数流水线和SIMD指令流水线并行执行加速基4FFT运算中的向量加法操作;利用SIMD指令流水线和整数指令流水线并行执行加速基4FFT运算中的复数乘法操作;利用SIMD指令流水线和存取指令流水线并行执行加速复数乘法结果的存储速度;
所述利用整数流水线和SIMD指令流水线并行执行加速基4FFT运算中的向量加法操作的步骤为:基4FFT运算中的向量加法依靠整数指令流水线中的数据ALU和SIMD指令流水线中的双乘累加单元进行计算,基4FFT运算中的向量加法的结果是复数乘法的源操作数,在复数乘法的源操作数未得到之前SIMD指令流水线中的双乘累加单元处于空闲状态,利用SIMD指令流水线中的双乘累加单元和整数流水线中的数据ALU的并行执行加速向量加法的运算;
所述利用SIMD指令流水线和整数指令流水线并行执行加速基4FFT运算中的复数乘法操作的步骤为: SIMD指令流水线包括双乘累加单元,能够单时钟周期完成4个16*16bits操作或者2个32*32bits操作;其中一个乘累加单元采用标量寄存器d,另一个乘累加单元采用向量寄存器v;数据位宽采用32bits,利用SIMD指令流水线中的双乘累加单元结构,第一个时钟周期完成2个32*32bits实数相乘,下一个时钟周期完成另两个实数的乘法运算,并进行相应的加减操作从而完成一个复数的乘法操作;整数指令流水线中的数据ALU完成数据加法需要一个时钟周期,而乘累加单元完成数据乘法需要两个时钟周期,利用乘累加单元进行数据相乘的过程中,能够利用整数指令流水线中的数据ALU得到下一个复数乘法所需要的源操作数;
所述利用SIMD指令流水线和存取指令流水线并行执行加速复数乘法结果的存储速度的步骤为:存取指令流水线包含地址ALU,用于控制存取指令的执行,存取指令在基4FFT运算中的并行操作在于:将SIMD指令流水线复数乘法计算结果的存储顺序重新排序,基4FFT运算总共需要进行1次向量加法操作和3次复数乘法操作,向量加法的结果暂时不进行存储,第一次复数乘法完成后再进行第一步向量加法结果的存储,第二次复数乘法后进行第一次复数乘法结果的存储,第三次复数乘法后进行第二次复数乘法结果的存储,然后再存储第三次复数乘法的结果,存储时间减少到1个时钟周期,加速基4FFT运算结果的存储速度。
CN201210079044.9A 2012-03-22 2012-03-22 一种基4fft算法的并行处理装置及方法 Active CN102637124B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210079044.9A CN102637124B (zh) 2012-03-22 2012-03-22 一种基4fft算法的并行处理装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210079044.9A CN102637124B (zh) 2012-03-22 2012-03-22 一种基4fft算法的并行处理装置及方法

Publications (2)

Publication Number Publication Date
CN102637124A CN102637124A (zh) 2012-08-15
CN102637124B true CN102637124B (zh) 2015-09-30

Family

ID=46621527

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210079044.9A Active CN102637124B (zh) 2012-03-22 2012-03-22 一种基4fft算法的并行处理装置及方法

Country Status (1)

Country Link
CN (1) CN102637124B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9275014B2 (en) * 2013-03-13 2016-03-01 Qualcomm Incorporated Vector processing engines having programmable data path configurations for providing multi-mode radix-2x butterfly vector processing circuits, and related vector processors, systems, and methods
CN104820581B (zh) * 2015-04-14 2017-10-10 广东工业大学 一种fft和ifft逆序数表的并行处理方法
US9830150B2 (en) * 2015-12-04 2017-11-28 Google Llc Multi-functional execution lane for image processor
CN108733352B (zh) * 2017-04-25 2021-06-11 上海寒武纪信息科技有限公司 支持向量排序的装置、方法及应用
CN110780842A (zh) * 2019-10-25 2020-02-11 无锡恒鼎超级计算中心有限公司 基于神威架构的船舶三维声弹性模拟计算的并行优化方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102200964A (zh) * 2011-06-17 2011-09-28 孙瑞琛 基于并行处理的fft装置及其方法
CN102375805A (zh) * 2011-10-31 2012-03-14 中国人民解放军国防科学技术大学 面向向量处理器的基于simd的fft并行计算方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7496618B2 (en) * 2004-11-01 2009-02-24 Metanoia Technologies, Inc. System and method for a fast fourier transform architecture in a multicarrier transceiver

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102200964A (zh) * 2011-06-17 2011-09-28 孙瑞琛 基于并行处理的fft装置及其方法
CN102375805A (zh) * 2011-10-31 2012-03-14 中国人民解放军国防科学技术大学 面向向量处理器的基于simd的fft并行计算方法

Also Published As

Publication number Publication date
CN102637124A (zh) 2012-08-15

Similar Documents

Publication Publication Date Title
CN102637124B (zh) 一种基4fft算法的并行处理装置及方法
CN108733348B (zh) 融合向量乘法器和使用其进行运算的方法
CN103999078A (zh) 具有包含用于fir滤波的矢量卷积函数的指令集的矢量处理器
CN102200964B (zh) 基于并行处理的fft装置及其方法
CN102103487A (zh) 用于在单个指令中执行移位和异或运算的方法和装置
CN103984560A (zh) 基于大规模粗粒度嵌入式可重构系统及其处理方法
CN101874237A (zh) 用于执行算术运算的大小检测的设备和方法
CN101833468B (zh) 在高性能计算系统中生成向量处理指令集结构的方法
CN102567282B (zh) 通用dsp处理器中fft计算实现装置和方法
CN114297571A (zh) 一种适用于格密码算法的多项式乘法硬件实现系统
CN112446471B (zh) 基于异构众核处理器的卷积加速方法
CN104699624A (zh) 面向fft并行计算的无冲突存储访问方法
CN103631759A (zh) 一种实现快速傅立叶变换/离散傅立叶变换的装置及方法
CN105515627A (zh) 一种大规模mimo检测方法及检测装置
CN102945148A (zh) 一种并行指令集的实现方法
CN104657334A (zh) 一种快速傅里叶变化的基2-4-8混合基蝶算器及其应用
CN112559954B (zh) 基于软件定义可重构处理器的fft算法处理方法及装置
CN202217276U (zh) 基于并行处理的fft装置
Zafar et al. Hardware architecture design and mapping of ‘Fast Inverse Square Root’algorithm
Pitkänen et al. Low-power application-specific processor for FFT computations
CN103262067B (zh) 一种数据处理方法、数据处理装置和通信系统
CN102411490B (zh) 一种针对动态可重构处理器的指令集的优化方法
CN103761213A (zh) 基于循环流水计算的片上阵列系统
Ferizi et al. Design and implementation of a fixed-point radix-4 FFT optimized for local positioning in wireless sensor networks
CN108008665B (zh) 基于单片fpga的大规模圆阵实时波束形成器及波束形成计算方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant