本发明专利技术提供了一种面向通用处理器的FFT计算地址产生方法,首先优化FFT计算中蝶形运算操作数的选取顺序,然后扩展通用处理器的循环寻址模式,最后通过扩展的循环寻址模式产生每一级FFT计算操作数的地址。本发明专利技术优化了FFT计算中蝶形运算操作数对的选取顺序,扩展了通用处理器的循环寻址模式,使通用处理器可以连续、快速的产生FFT计算的操作数地址,提高了通用处理器进行所述复杂运算的执行效率,可应用于通用处理器的地址产生模块。
【技术实现步骤摘要】
本专利技术属于计算机
,涉及数字信号处理领域的算法实现。
技术介绍
通用处理器通常都具有专门的地址产生模块,用于处理器访存操作时产生操作数的地址,地址产生模块支持多种寻址模式,可根据处理器指令中指定的寻址方式快速产生操作数的地址。为了便于对一块存储区间进行循环操作,大多数通用处理器都支持循环寻址模式,地址产生模块根据循环寻址的范围产生一定区间的操作数地址。循环寻址需要关注两个信息基地址和偏移地址,基地址通常指向一块存储体或存储区间,偏移地址表示操作数·在指定存储区间内的相对位置。进行循环寻址时,地址产生模块根据循环区间的大小对偏移地址进行取模操作,并产生最终的操作数地址。常用的取模循环操作可以满足大多数计算的寻址需求,但是在进行一些复杂计算时则显得不够灵活,比如进行数字信号处理时常用的FFT (Fast Fourier Transform:快速傅里叶变换)计算。FFT计算通常被分解为M级的基2蝶形运算,级数由FFT计算的点数N确定M =Iog2N-I ;每一级FFT计算都选取N/2组操作数对进行蝶形运算。常用的基于时域抽取的基2 FFT算法,其蝶形运算的公式如下—i-V- i I ( ) = (厂)+()八+ 1\公式 I Uw (《)=xm O) - WnrXm {q)式中为蝶形运算的旋转因子,一般通过查找表的方式获得。式中p、q为选取的一组操作数对,对于N点FFT计算,每一级计算都要选取N/2组操作数对进行公式I的计算,其P、Q满足公式q-p = 2m公式 2以8点FFT计算为例,其进行第一级蝶形运算的操作数对为(0、2)、(1、3)、(4、6)、(5、7);进行第二级蝶形运算的操作数对为(0、4)、( 1、5)、(2、6)、(3、7),可见其操作数地址的排列顺序不具备递增性。正是由于每次选取的操作数对P、q不具备递增性,因此通用处理器在进行每一级FFT计算时,无法通过常用的取模循环寻址方式连续产生操作数的地址,而需要频繁插入寄存器赋值指令更改操作数地址,这就增加了通用处理器进行FFT计算的复杂度,降低了 FFT计算的效率。针对FFT计算的地址产生方法已经有很多方面的研究,例如将蝶形运算的操作数地址分为高位地址和低位地址,通过引入隐含位并增加移位计数器实现操作数地址的快速产生。这一类地址产生方法可应用于专用的FFT计算模块,但由于不能有效利用通用处理器地址产生模块已有的资源,在通用处理器中实现的代价比较大,因此有必要设计一种通用处理器进行FFT计算时的地址产生方法,使得通用处理器能够连续快速地产生FFT计算时的操作数地址。
技术实现思路
为了克服现有技术操作数地址产生比较复杂的不足,本专利技术提供一种面向通用处理器的FFT计算地址产生方法,能优化FFT计算时操作数的排列顺序,扩展通用处理器中常用的循环寻址模式,使得通用处理器可以连续产生FFT计算的操作数地址。本专利技术解决其技术问题所采用的技术方案包括以下步骤I.优化FFT计算中蝶形运算操作数的选 取顺序每一级FFT计算都要选取N/2组操作数对进行蝶形运算,每次选取的操作数对表示为(Pt,qt) ,0 彡 t 彡 N/2-1 ;第M级FFT计算的操作数对从地址O开始选取,目卩Ptl = O ;pt、qt 满足 qt-pt = 2m ;操作数的选取满足公式 [qt+2mqt+2m <N-lP,+ι = Il((i/,.+2)m0d(,V —1)) + 1qt+2m>N-l·2.扩展通用处理器的循环寻址模式增加循环超界地址加一、循环超界地址加二和循环超界地址加四;3.通用处理器通过扩展的循环寻址模式产生每一级FFT计算操作数的地址通用处理器进行第M级的N点FFT计算时都从地址O开始选取操作数对进行蝶形运算,并按照偏移量为2m、循环界限为N-I的循环超界地址加一模式顺序产生操作数地址。本专利技术的有益效果是本专利技术优化了 FFT计算中蝶形运算操作数对的选取顺序,扩展了通用处理器的循环寻址模式,使通用处理器可以连续、快速的产生FFT计算的操作数地址,提高了通用处理器进行所述复杂运算的执行效率,可应用于通用处理器的地址产生模块。附图说明图I是进行基于时域抽取的8点FFT计算的流程图。具体实施例方式本专利技术采用如下的技术解决方案I.优化FFT计算中蝶形运算操作数的选取顺序每一级FFT计算都要选取N/2组操作数对进行蝶形运算,每次选取的操作数对表示为(pt,qt),其中O彡t彡N/2-1。第M级FFT计算的操作数对从地址O开始选取,目卩Ptl = O ;pt、qt的选取依然满足公式2 qt-pt = 2m ;操作数的选取满足公式 \qt+TCJt+2m <N-Irx jpM公式 3 Ι( /, -I-1) rnocK N - Π) +1 if q; -r 2 > N -1公式3说明每次选取的一组操作数中的pt+1由上一次选取的一组操作数中的qt决定,两者相差2m,如果qt+2m超过了 FFT计算的点数N_l,则按照取模mod(N-l)加一的方法产生Pt+1。优化后的操作数P的地址由上一组操作数q的地址偏移加2m决定,而操作数q的地址由本组操作数P的地址偏移加2m产生,这就使每一级FFT计算操作数的排列顺序具备了一定的递增性。2.扩展通用处理器常用的循环寻址模式通用处理器常用的循环寻址方式为取模循环,为了实现上述优化后的蝶形运算操作数对的选取顺序,便于通用处理器连续产生FFT计算操作数的地址,需要扩展通用处理器已有的循环寻址模式,增加循环超界地址加一、循环超界地址加二和循环超界地址加四这三种模式,其中后两种模式是为了实现基于频域抽取的FFT计算的地址产生。扩展的循环寻址模式如表I所示。3.通用处理器通过扩展的循环寻址模式产生每一级FFT计算操作数的地址通用处理器进行第M级的N点FFT计算时都从‘0’地址开始选取操作数对进行蝶形运算,并按照偏移量为2m、循环界限为N-I的循环超界地址加一模式顺序产生操作数地址。 下面结合附图和实施例对本专利技术进一步说明。图I是进行基于时域抽取的8点FFT计算的流程图。8点FFT计算分为三级(第O级、第I级、第2级),每一级FFT计算中蝶形运算操作数对的地址按照优化后的顺序选取,其中第O级的选取顺序为(0、1)、(2、3)、(4、5)、(6、7);第I级的选取顺序为(0、2)、(4、6)、(1、3)、(5、7);第 2 级的选取顺序为(0、4)、(1、5)、(2、6)、(3、7)。通用处理器在进行所述8点FFT计算时,地址产生模块按照循环超界地址加一的模式顺序产生操作数地址。地址产生模块通常维护三种与寻址相关的寄存器地址寄存器(AR)、偏移量寄存器(IR)、循环寻址寄存器(IRM)。所述寄存器均可由处理器通过指令写入数据,地址寄存器(AR)还可由地址产生模块更新写入数据。进行第O级FFT计算时,处理器通过指令设定起始地址AR为O、偏移量IR为2° =I、循环界限IRM为8-1=7,并通过连续8次普通循环寻址顺序产生4对操作数的地址(0、1)、(2、3)、(4、5)、(6、7)。在进行第I级FFT计算时,如表2所示,处理器通过指令设定起始地址AR为O、偏移量IR为21 = 2、循环界限IRM为8-1 = 7本文档来自技高网...
【技术保护点】
一种面向通用处理器的FFT计算地址产生方法,其特征在于包括下述步骤:1)优化FFT计算中蝶形运算操作数的选取顺序:每一级FFT计算都要选取N/2组操作数对进行蝶形运算,每次选取的操作数对表示为(pt,qt),0≤t≤N/2?1;第M级FFT计算的操作数对从地址0开始选取,即p0=0;pt、qt满足qt?pt=2m;操作数的选取满足公式:pt+1=qt+2mqt+2m<N-1((qt+2m)mod(N-1))+1qt+2m≥N-1;2)扩展通用处理器的循环寻址模式:增加循环超界地址加一、循环超界地址加二和循环超界地址加四;3)通用处理器通过扩展的循环寻址模式产生每一级FFT计算操作数的地址:通用处理器进行第M级的N点FFT计算时都从地址0开始选取操作数对进行蝶形运算,并按照偏移量为2m、循环界限为N?1的循环超界地址加一模式顺序产生操作数地址。
【技术特征摘要】
1.一种面向通用处理器的FFT计算地址产生方法,其特征在于包括下述步骤I)优化FFT计算中蝶形运算操作数的选取顺序每一级FFT计算都要选取N/2组操作数对进行蝶形运算,每次选取的操作数对表示为 (pt,qt),0 彡 t 彡 N/2-1 ;第M级FFT计算的操作数对从地址O开始选取,即Ptl = O ;Pt、Qt 两足 Qt-Pt = 2...
【专利技术属性】
技术研发人员:杨靓,于飞,王丹,
申请(专利权)人:中国航天科技集团公司第九研究院第七七一研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。