CN102929582A - 一种面向通用处理器的fft计算地址产生方法 - Google Patents

一种面向通用处理器的fft计算地址产生方法 Download PDF

Info

Publication number
CN102929582A
CN102929582A CN2012103639361A CN201210363936A CN102929582A CN 102929582 A CN102929582 A CN 102929582A CN 2012103639361 A CN2012103639361 A CN 2012103639361A CN 201210363936 A CN201210363936 A CN 201210363936A CN 102929582 A CN102929582 A CN 102929582A
Authority
CN
China
Prior art keywords
address
fft
operand
butterfly computation
addressing mode
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.)
Granted
Application number
CN2012103639361A
Other languages
English (en)
Other versions
CN102929582B (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.)
771 Research Institute of 9th Academy of CASC
Original Assignee
771 Research Institute of 9th Academy of CASC
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 771 Research Institute of 9th Academy of CASC filed Critical 771 Research Institute of 9th Academy of CASC
Priority to CN201210363936.1A priority Critical patent/CN102929582B/zh
Publication of CN102929582A publication Critical patent/CN102929582A/zh
Application granted granted Critical
Publication of CN102929582B publication Critical patent/CN102929582B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

本发明提供了一种面向通用处理器的FFT计算地址产生方法,首先优化FFT计算中蝶形运算操作数的选取顺序,然后扩展通用处理器的循环寻址模式,最后通过扩展的循环寻址模式产生每一级FFT计算操作数的地址。本发明优化了FFT计算中蝶形运算操作数对的选取顺序,扩展了通用处理器的循环寻址模式,使通用处理器可以连续、快速的产生FFT计算的操作数地址,提高了通用处理器进行所述复杂运算的执行效率,可应用于通用处理器的地址产生模块。

Description

一种面向通用处理器的FFT计算地址产生方法
技术领域
本发明属于计算机技术领域,涉及数字信号处理领域的算法实现。
背景技术
通用处理器通常都具有专门的地址产生模块,用于处理器访存操作时产生操作数的地址,地址产生模块支持多种寻址模式,可根据处理器指令中指定的寻址方式快速产生操作数的地址。
为了便于对一块存储区间进行循环操作,大多数通用处理器都支持循环寻址模式,地址产生模块根据循环寻址的范围产生一定区间的操作数地址。循环寻址需要关注两个信息:基地址和偏移地址,基地址通常指向一块存储体或存储区间,偏移地址表示操作数在指定存储区间内的相对位置。进行循环寻址时,地址产生模块根据循环区间的大小对偏移地址进行取模操作,并产生最终的操作数地址。
常用的取模循环操作可以满足大多数计算的寻址需求,但是在进行一些复杂计算时则显得不够灵活,比如进行数字信号处理时常用的FFT(Fast Fourier Transform:快速傅里叶变换)计算。
FFT计算通常被分解为M级的基2蝶形运算,级数由FFT计算的点数N确定:M=log2N-1;每一级FFT计算都选取N/2组操作数对进行蝶形运算。常用的基于时域抽取的基2 FFT算法,其蝶形运算的公式如下:
x m + 1 ( p ) = x m ( p ) + W n r x m ( q ) x m + 1 ( q ) = x m ( p ) - W n r x m ( q ) 公式1
式中
Figure BDA00002192500400012
为蝶形运算的旋转因子,一般通过查找表的方式获得。
式中p、q为选取的一组操作数对,对于N点FFT计算,每一级计算都要选取N/2组操作数对进行公式1的计算,其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计算的操作数地址。
本发明解决其技术问题所采用的技术方案包括以下步骤:
1.优化FFT计算中蝶形运算操作数的选取顺序:
每一级FFT计算都要选取N/2组操作数对进行蝶形运算,每次选取的操作数对表示为(pt,qt),0≤t≤N/2-1;
第M级FFT计算的操作数对从地址0开始选取,即p0=0;
pt、qt满足qt-pt=2m
操作数的选取满足公式:
p t + 1 = q t + 2 m q t + 2 m < N - 1 ( ( q t + 2 m ) mod ( N - 1 ) ) + 1 q t + 2 m &GreaterEqual; N - 1
2.扩展通用处理器的循环寻址模式:
增加循环超界地址加一、循环超界地址加二和循环超界地址加四;
3.通用处理器通过扩展的循环寻址模式产生每一级FFT计算操作数的地址:通用处理器进行第M级的N点FFT计算时都从地址0开始选取操作数对进行蝶形运算,并按照偏移量为2m、循环界限为N-1的循环超界地址加一模式顺序产生操作数地址。
本发明的有益效果是:本发明优化了FFT计算中蝶形运算操作数对的选取顺序,扩展了通用处理器的循环寻址模式,使通用处理器可以连续、快速的产生FFT计算的操作数地址,提高了通用处理器进行所述复杂运算的执行效率,可应用于通用处理器的地址产生模块。
附图说明
图1是进行基于时域抽取的8点FFT计算的流程图。
具体实施方式
本发明采用如下的技术解决方案:
1.优化FFT计算中蝶形运算操作数的选取顺序:
每一级FFT计算都要选取N/2组操作数对进行蝶形运算,每次选取的操作数对表示为(pt,qt),其中0≤t≤N/2-1。
第M级FFT计算的操作数对从地址0开始选取,即p0=0;
pt、qt的选取依然满足公式2:qt-pt=2m
操作数的选取满足公式:
p t + 1 = q t + 2 m q t + 2 m < N - 1 ( ( q t + 2 m ) mod ( N - 1 ) ) + 1 if q t + 2 m &GreaterEqual; N - 1 公式3
公式3说明每次选取的一组操作数中的pt+1由上一次选取的一组操作数中的qt决定,两者相差2m,如果qt+2m超过了FFT计算的点数N-1,则按照取模mod(N-1)加一的方法产生pt+1
优化后的操作数p的地址由上一组操作数q的地址偏移加2m决定,而操作数q的地址由本组操作数p的地址偏移加2m产生,这就使每一级FFT计算操作数的排列顺序具备了一定的递增性。
2.扩展通用处理器常用的循环寻址模式:
通用处理器常用的循环寻址方式为取模循环,为了实现上述优化后的蝶形运算操作数对的选取顺序,便于通用处理器连续产生FFT计算操作数的地址,需要扩展通用处理器已有的循环寻址模式,增加循环超界地址加一、循环超界地址加二和循环超界地址加四这三种模式,其中后两种模式是为了实现基于频域抽取的FFT计算的地址产生。扩展的循环寻址模式如表1所示。
3.通用处理器通过扩展的循环寻址模式产生每一级FFT计算操作数的地址:
通用处理器进行第M级的N点FFT计算时都从‘0’地址开始选取操作数对进行蝶形运算,并按照偏移量为2m、循环界限为N-1的循环超界地址加一模式顺序产生操作数地址。
下面结合附图和实施例对本发明进一步说明。
图1是进行基于时域抽取的8点FFT计算的流程图。8点FFT计算分为三级(第0级、第1级、第2级),每一级FFT计算中蝶形运算操作数对的地址按照优化后的顺序选取,其中第0级的选取顺序为:(0、1)、(2、3)、(4、5)、(6、7);第1级的选取顺序为(0、2)、(4、6)、(1、3)、(5、7);第2级的选取顺序为(0、4)、(1、5)、(2、6)、(3、7)。
通用处理器在进行所述8点FFT计算时,地址产生模块按照循环超界地址加一的模式顺序产生操作数地址。地址产生模块通常维护三种与寻址相关的寄存器:地址寄存器(AR)、偏移量寄存器(IR)、循环寻址寄存器(IRM)。所述寄存器均可由处理器通过指令写入数据,地址寄存器(AR)还可由地址产生模块更新写入数据。
进行第0级FFT计算时,处理器通过指令设定起始地址AR为0、偏移量IR为20=1、循环界限IRM为8-1=7,并通过连续8次普通循环寻址顺序产生4对操作数的地址(0、1)、(2、3)、(4、5)、(6、7)。
在进行第1级FFT计算时,如表2所示,处理器通过指令设定起始地址AR为0、偏移量IR为21=2、循环界限IRM为8-1=7,并通过连续8次循环超界地址加一的寻址模式顺序产生优化后的4对操作数地址(0、2)、(4、6)、(1、3)、(5、7)。
在进行第2级FFT计算时,如表3所示,处理器通过指令设定起始地址AR为0、偏移量IR为22=4、循环界限IRM为8-1=7,并通过连续8次循环超界地址加一的寻址模式顺序产生优化后的4对操作数地址(0、4)、(1、5)、(2、6)、(3、7)。
通用处理器采用本发明设计的循环寻址方式进行N点FFT计算时,只需在每一级FFT计算之前通过指令设定一次寻址寄存器组,地址产生模块便可根据扩展的循环寻址模式顺序产生蝶形运算操作数对的地址。若不采用本发明设计的寻址方式,除第0级以外的其他各级FFT计算,由于操作数地址不具备递增性,处理器均无法通过普通的循环寻址模式顺序产生操作数地址,因此需要通过指令设定N/2次寄存器组,当进行点数较多(例:1024点)的FFT计算时,处理器的控制将更加复杂,计算效率大大降低。
表1
Figure BDA00002192500400061
表2
Figure BDA00002192500400071
(*)循环超界地址+1
表3
Figure BDA00002192500400072
(*)循环超界地址+1

Claims (1)

1.一种面向通用处理器的FFT计算地址产生方法,其特征在于包括下述步骤:
1)优化FFT计算中蝶形运算操作数的选取顺序:
每一级FFT计算都要选取N/2组操作数对进行蝶形运算,每次选取的操作数对表示为(pt,qt),0≤t≤N/2-1;
第M级FFT计算的操作数对从地址0开始选取,即p0=0;
pt、qt满足qt-pt=2m
操作数的选取满足公式:
p t + 1 = q t + 2 m q t + 2 m < N - 1 ( ( q t + 2 m ) mod ( N - 1 ) ) + 1 q t + 2 m &GreaterEqual; N - 1 ;
2)扩展通用处理器的循环寻址模式:
增加循环超界地址加一、循环超界地址加二和循环超界地址加四;
3)通用处理器通过扩展的循环寻址模式产生每一级FFT计算操作数的地址:
通用处理器进行第M级的N点FFT计算时都从地址0开始选取操作数对进行蝶形运算,并按照偏移量为2m、循环界限为N-1的循环超界地址加一模式顺序产生操作数地址。
CN201210363936.1A 2012-09-26 2012-09-26 一种面向通用处理器的fft计算地址产生方法 Active CN102929582B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210363936.1A CN102929582B (zh) 2012-09-26 2012-09-26 一种面向通用处理器的fft计算地址产生方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210363936.1A CN102929582B (zh) 2012-09-26 2012-09-26 一种面向通用处理器的fft计算地址产生方法

Publications (2)

Publication Number Publication Date
CN102929582A true CN102929582A (zh) 2013-02-13
CN102929582B CN102929582B (zh) 2015-04-08

Family

ID=47644396

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210363936.1A Active CN102929582B (zh) 2012-09-26 2012-09-26 一种面向通用处理器的fft计算地址产生方法

Country Status (1)

Country Link
CN (1) CN102929582B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109657192A (zh) * 2018-12-10 2019-04-19 西安微电子技术研究所 一种用于fft中旋转因子乘运算的操作数地址生成方法
CN112231626A (zh) * 2020-10-19 2021-01-15 南京宁麒智能计算芯片研究院有限公司 一种fft处理器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5091875A (en) * 1990-03-23 1992-02-25 Texas Instruments Incorporated Fast fourier transform (FFT) addressing apparatus and method
CN101221555A (zh) * 2008-01-24 2008-07-16 复旦大学 用于基-2快速傅立叶变换同址运算的地址产生方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5091875A (en) * 1990-03-23 1992-02-25 Texas Instruments Incorporated Fast fourier transform (FFT) addressing apparatus and method
CN101221555A (zh) * 2008-01-24 2008-07-16 复旦大学 用于基-2快速傅立叶变换同址运算的地址产生方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
杨靓等: "一种高效的FFT处理器地址快速生成方法", 《信号处理》 *
段来仓等: "DSP处理器循环寻址和位翻转寻址的设计", 《微电子学与计算机》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109657192A (zh) * 2018-12-10 2019-04-19 西安微电子技术研究所 一种用于fft中旋转因子乘运算的操作数地址生成方法
CN109657192B (zh) * 2018-12-10 2022-10-11 西安微电子技术研究所 一种用于fft中旋转因子乘运算的操作数地址生成方法
CN112231626A (zh) * 2020-10-19 2021-01-15 南京宁麒智能计算芯片研究院有限公司 一种fft处理器

Also Published As

Publication number Publication date
CN102929582B (zh) 2015-04-08

Similar Documents

Publication Publication Date Title
CN103970718B (zh) 一种快速傅里叶变换实现装置及方法
CN103955447B (zh) 基于dsp芯片的fft加速器
CN105701068B (zh) 基于分时复用技术的cholesky矩阵求逆系统
CN109522674A (zh) 基2-2算法的快速傅里叶变换硬件设计方法
CN103488459B (zh) 一种改进的高基cordic方法及基于其的复数乘法运算单元
WO2013187862A1 (en) A FAST MECHANISM FOR ACCESSING 2n±1 INTERLEAVED MEMORY SYSTEM
CN101354700B (zh) 一种蝶形运算fft处理器
CN102571342B (zh) 一种rsa算法数字签名方法
CN103631759B (zh) 一种实现快速傅立叶变换/离散傅立叶变换的装置及方法
CN102929582B (zh) 一种面向通用处理器的fft计算地址产生方法
CN103034621B (zh) 基2×k并行fft架构的地址映射方法及系统
CN102637124B (zh) 一种基4fft算法的并行处理装置及方法
CN103020015A (zh) 点数为非2次幂的离散傅里叶变换快速计算的实现方法
US7693926B2 (en) Modular multiplication acceleration circuit and method for data encryption/decryption
CN104657334B (zh) 一种快速傅里叶变化的基2-4-8混合基蝶算器及其应用
CN103262067B (zh) 一种数据处理方法、数据处理装置和通信系统
CN102541813B (zh) 一种多粒度并行fft蝶形计算的方法及相应的装置
CN101938329A (zh) 产生lte prach基带信号的方法及其系统
CN103902506B (zh) 一种基于龙芯3b的fftw3优化方法
CN102023963B (zh) 高速多模式时频域变换方法
CN101354701B (zh) 一种实现基4fft/ifft计算的fft处理器
CN102880592A (zh) 一种顺序输出的高精度3780点fft处理装置和方法
CN101833540A (zh) 信号处理方法和装置
CN202281998U (zh) 一种标量浮点运算加速器
CN115982527B (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