一种快速傅里叶变换处理器技术领域
本发明涉及运算处理器技术领域,特别是涉及一种快速傅里叶变换处理
器。
背景技术
快速傅里叶变换(Fast Fourier Transform,FFT)在计算机、通信、气象
学、光学等多个领域应用广泛,快速傅里叶变换处理器是实现快速傅里叶变
换的高效器件。为了快速得出傅里叶变换的结果,FFT使用抽选法将N点的
离散傅里叶变换DFT分解为两个N/2的DFT,然后继续进行分解,直到分解
为多个2点或4点的DFT。如图1所示,为基2时间抽选法8点FFT算法流
图。从图1中可以看出整个运算过程分为四个阶段:(0)、倒序重排;(1)、
第一次迭代运算;(2)、第二次迭代运算;(3)、第三次迭代运算。每一次迭
代运算都可以使用一个蝶算单元进行计算。对于N点基r的FFT,需要logrN
次迭代运算。
为了提高实际运算速度,人们开发出了级联处理运算的方式,如2所示
为现有的应用级联处理运算的8点基2快速傅里叶变换的处理器的结构示意
图,图3所示为4点基2快速傅里叶变换的处理器的结构示意图。如图2所
示,对于基2时间抽选法8点FFT,可以使用8个存储单元和三个基2蝶算
单元进行计算处理。这种运算方式的好处是:运算速度较高。它的存储结构
采用“乒乓操作”,输入数据流被分配到两个存储单元。在第1个周期,将输
入的数据送入第一存储单元001;在第2个周期,将输入的数据送入第二存储
单元002,同时将第一存储单元001中上一周期存储的数据送到第一基2蝶算
单元021中进行计算处理,将运算的结果存储到第三存储单元003中;在第3
个周期,第一存储单元001再次存入数据,同时第二存储单元002中上一周
期存储的数据被送到第一基2蝶算单元021中进行运算处理,将运算的结果
存储到第四存储单元004中。后面的存储单元和基2蝶算单元按照相似的流
程进行处理,第七存储单元007或第八存储单元008中存储的即为最终计算
结果。整个处理器不停的按照这样的步骤进行处理,每个周期都可以获得一
个最终计算结果,大大提高了运算速度。
随着科学技术的发展,人们对处理器的要求也越来越高,人们要求处理
器更加的小型化,而处理器中存储单元的多少是影响处理器尺寸的重要因素。
现有的级联处理运算需要2logrN+2个存储单元,致使处理器小型化存在困难。
因此,如何减少FFT处理器中存储单元的个数成为了摆在研发人员面前的一
个技术难题。
发明内容
为解决上述技术问题,本发明实施例提供一种快速傅里叶变换处理器,
以实现减小处理器面积的目的,技术方案如下:
一种快速傅里叶变换处理器,包括:N个计算单元以及N+2个存储单元,
所述N为自然数,其中:
对于N+2个存储单元中任一存储单元循环在N+2个时间段内按顺序执行
包括初始数据接收操作、N个不同的数据更新操作以及最终数据输出操作在
内的N+2个操作,在N+2个时间段内的任意一当前时间段中,所述N+2个存
储单元一一对应地执行所述N+2个操作中的一个操作,且在该当前时间段的
下一时间段中,所述N+2个存储单元中的每个存储单元执行该存储单元在所
述当前时间段内所执行操作的下一顺序操作;
其中,所述N个不同的数据更新操作中的任一数据更新操作包括:与该
数据操作所对应的存储单元将所存储的数据发送到相应的计算单元中进行计
算,获得计算结果并替换原存储数据,其中,所述N个计算单元一一对应所
述N个不同的数据更新操作中的计算。
优选的,所述存储单元为随机存储单元RAM。
优选的,所述计算单元为基r蝶算单元,其中r为自然数。
优选的,所述计算单元与所述存储单元之间通过多路选择器进行连接。
与上面的一种快速傅里叶变换出路器相对应,本发明还提供了一种快速
傅里叶变换处理器的工作方法,包括:
为处理器设置N个计算单元以及N+2个存储单元,所述N为自然数;
对于N+2个存储单元中任一存储单元循环在N+2个时间段内按顺序执行
包括初始数据接收操作、N个不同的数据更新操作以及最终数据输出操作在
内的N+2个操作,在N+2个时间段内的任意一当前时间段中,所述N+2个存
储单元一一对应地执行所述N+2个操作中的一个操作,且在该当前时间段的
下一时间段中,所述N+2个存储单元中的每个存储单元执行该存储单元在所
述当前时间段内所执行操作的下一顺序操作;
其中,所述N个不同的数据更新操作中的任一数据更新操作包括:与该
数据操作所对应的存储单元将所存储的数据发送到相应的计算单元中进行计
算,获得计算结果并替换原存储数据,其中,所述N个计算单元一一对应所
述N个不同的数据更新操作中的计算。
优选的,所述存储单元为随机存储单元RAM。
优选的,所述计算单元为基r蝶算单元,其中r为自然数。
优选的,所述计算单元与所述存储单元之间通过多路选择器进行连接。
优选的,当所述N为1时,所述N+2个存储单元中任一存储单元循环在
N+2个时间段内按顺序执行包括初始数据接收操作、N个不同的数据更新操
作以及最终数据输出操作在内的N+2个操作,包括:
接收输入的初始数据;
将该存储单元中的数据发送到计算单元中进行计算,接收计算结果并替
换该存储单元中的数据;
将存储单元中的数据输出。
通过应用以上技术方案,本发明可以在不降低运算速度的前提下使每个
处理器中的存储单元个数减小,因此可以有效减小处理器的尺寸。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实
施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面
描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员
来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为基2时间抽选法8点FFT算法流图;
图2为现有的应用级联处理运算的8点基2快速傅里叶变换的处理器的
结构示意图;
图3所示为现有的应用级联处理运算的4点基2快速傅里叶变换的处理
器的结构示意图;
图4为本发明实施例提供的一种4点基2快速傅里叶变换处理器的结构
示意图;
图5为本发明实施例提供的一种4点基2快速傅里叶变换处理器周期a
的数据处理示意图;
图6为本发明实施例提供的一种4点基2快速傅里叶变换处理器周期a+1
的数据处理示意图;
图7为本发明实施例提供的一种4点基2快速傅里叶变换处理器周期a+2
的数据处理示意图;
图8为本发明实施例提供的一种4点基2快速傅里叶变换处理器周期a+3
的数据处理示意图;
图9为本发明实施例提供的另一种4点基2快速傅里叶变换处理器的结
构示意图;
图10为本发明实施例提供的一种快速傅里叶变换处理器的工作方法中4
点基2FFT某一数据的执行流程图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合
本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描
述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施
例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前
提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明实施例提供的一种快速傅里叶变换处理器,包括:N个计算单元,
以及N+2个存储单元,所述N为自然数,其中:
对于N+2个存储单元中任一存储单元循环在N+2个时间段内按顺序执行
包括初始数据接收操作、N个不同的数据更新操作以及最终数据输出操作在
内的N+2个操作,在N+2个时间段内的任意一当前时间段中,所述N+2个存
储单元一一对应地执行所述N+2个操作中的一个操作,且在该当前时间段的
下一时间段中,所述N+2个存储单元中的每个存储单元执行该存储单元在所
述当前时间段内所执行操作的下一顺序操作;
其中,所述N个不同的数据更新操作中的任一数据更新操作包括:与该
数据操作所对应的存储单元将所存储的数据发送到相应的计算单元中进行计
算,获得计算结果并替换原存储数据,其中,所述N个计算单元一一对应所
述N个不同的数据更新操作中的计算。
当然,上述“N”也可以由logrN代替,以便于与现有技术对比。
其中,存储单元可以为随机存储单元RAM;计算单元可以为基r蝶算单
元,其中r为自然数。
其中,计算单元与存储单元之间可以通过多路选择器进行连接。
为方便理解,下面采用另外一种对本发明的快速傅里叶变换处理器的描
述方式:
一种快速傅里叶变换处理器,包括:N个计算单元,以及N+2个存储单
元,所述N为自然数,其中:
所述N个计算单元分别为第1计算单元,第2计算单元,......,和第N
计算单元,所述第n计算单元用于对第n级数据执行计算操作,其中,第n
级数据指初始数据从处理器外部输入经过所述N个计算单元n-1次计算后存
至存储单元的数据,其中,n<=N;
在N+2个时间段内的任意一当前时间段中,所述N+2个存储单元中的第
一存储单元接收处理器外部输入的初始数据,所述N+2个存储单元中的第
N+2存储单元向处理器外部输出已存储的第N级数据;所述N个计算单元按
照存储单元中数据级数一一对应地与所述N+2个存储单元中的其余N个存储
单元电性相通,其中,所述第n计算单元将与之相对应的存储单元中第n级
数据进行计算,获得第n+1级数据,并将所述第n+1级数据送回所述与之相
对应的存储单元替换所述第n级数据,所述当前时间段中与第n计算单元相
对应的存储单元,在所述当前时间段的下一时间段中,与第n+1计算单元电
性相通。
其中,所述电性相通即为将存储单元中数据输入计算单元中进行计算,
并使计算结果替换该存储单元中的数据。
需要说明的是,第1级数据即为初始数据,即外部向存储单元输入的数
据。
需要说明的是,第1、第2存储单元仅用于输入输出的功能区分,并不限
制存储单元在处理器当中的物理位置关系。
为方便理解下面举例说明:当计算单元为基2蝶算单元,且N=4时,如
图4所示,本发明实施例提供的一种快速傅里叶变换处理器包括:
2个基2蝶算单元:第一基2蝶算单元021和第二基2蝶算单元022;
四个存储单元:第一存储单元001、第二存储单元002、第三存储单元003
和第四存储单元004。
由于整个计算过程是循环执行的,因此随即选择一个周期a,从该周期开
始进行说明。
周期a:如图5所示,第一存储单元001存入初始数据1-1;第二存储单
元002中初始数据2-1输入第一基2蝶算单元021中进行计算处理,得出计算
结果为数据2-2并替换第二存储单元002中原有数据2-1,即周期a后第二存
储单元002中存储的为数据2-2;第三存储单元003中数据3-2输入第二基2
蝶算单元022中进行计算处理,得出计算结果3-3并替换第三存储单元003
中原有数据3-2;第四存储单元004中的数据4-3进行输出处理,数据4-3为
初始数据4-1的最终计算结果。
周期a+1:如图6所示,第四存储单元004中存入初始数据4-1;第一存
储单元001中初始数据1-1输入第一基2蝶算单元021中进行计算处理,得出
计算结果1-2并替换第一存储单元001中原有数据1-1;第二存储单元002中
数据2-2输入第二基2蝶算单元022中进行处理,得出计算结果2-3并替换第
二存储单元002中原有数据2-2;第三存储单元003中数据3-3进行输出处理,
数据3-3为初始数据3-1的最终计算结果;
周期a+2:如图7所示,第三存储单元003中存入初始数据3-1;第四存
储单元004中初始数据4-1输入第一基2蝶算单元021中进行计算处理,得出
计算结果4-2并替换原有数据4-1;第一存储单元001中数据1-2输入第二基
2蝶算单元022中进行计算,得出计算结果1-3并替换原有数据1-2;第二存
储单元002中数据2-3进行输出处理,数据2-3为初始数据2-1的最终计算结
果。
周期a+3:如图8所示,第二存储单元002中存入初始数据2-1;第三存
储单元003中初始数据3-1输入第一基2蝶算单元021中进行计算,得出计算
结果3-2并替换原有数据3-1;第四存储单元中数据4-2输入第二基2蝶算单
元022进行计算,得出结果4-3并替换原有数据4-2;第一存储单元001中数
据1-3进行输出处理,数据1-3为初始数据1-1的最终计算结果。
周期a+4与周期a的执行内容相同。
当计算单元的个数为logrN时,本发明的快速傅里叶处理器需要logrN+2
个存储单元。
从以上举例可以看出,本发明所需要的存储单元个数要比现有的级联处
理运算需要的存储单元个数少logrN个,可以使处理器更加小型化。同时,本
发明同样可以在每个周期得到一个最终计算结果,计算速度没有任何降低。
在实际应用中,计算单元与存储单元之间可以通过多路选择器进行连接。
如图9所示,对于上面举例的4点基2快速傅里叶变换,第一多路选择器031
可以控制各存储单元与第一基2蝶算单元021进行数据交互。对于上面的举
例,周期a,第一多路选择器031控制第二存储单元002与第一基2蝶算单元
进行数据交互。其他周期均可推导出,不再累述。
相应于上面的装置实施例,本发明还提供一种快速傅里叶变换处理器的
工作方法。
一种快速傅里叶变换处理器的工作方法,包括:
为处理器设置N个计算单元以及N+2个存储单元,所述N为自然数;
对于N+2个存储单元中任一存储单元循环在N+2个时间段内按顺序执行
包括初始数据接收操作、N个不同的数据更新操作以及最终数据输出操作在
内的N+2个操作,在N+2个时间段内的任意一当前时间段中,所述N+2个存
储单元一一对应地执行所述N+2个操作中的一个操作,且在该当前时间段的
下一时间段中,所述N+2个存储单元中的每个存储单元执行该存储单元在所
述当前时间段内所执行操作的下一顺序操作;
其中,所述N个不同的数据更新操作中的任一数据更新操作包括:与该
数据操作所对应的存储单元将所存储的数据发送到相应的计算单元中进行计
算,获得计算结果并替换原存储数据,其中,所述N个计算单元一一对应所
述N个不同的数据更新操作中的计算。
其中,存储单元可以为随机存储单元RAM。
其中,计算单元可以为基r蝶算单元,其中r为自然数。
其中,计算单元和存储单元之间可以通过多路选择器进行连接。
为方便理解,举例说明:当计算单元为基2蝶算单元,且N=4时,如图
4所示,本发明实施例提供的一种快速傅里叶变换处理器包括:
2个基2蝶算单元:第一基2蝶算单元021和第二基2蝶算单元022;
四个存储单元:第一存储单元001、第二存储单元002、第三存储单元003
和第四存储单元004。
由于整个计算过程是循环执行的,因此随即选择一个周期a,从该周期开
始进行说明。同时,本举例仅跟踪一个数据的整个执行过程,其他数据的执
行过程与之类似。如图10所示,包括:
周期a:S101、处理器中第一存储单元001获得存入的数据1-1;
周期a+1:S102、处理器中第一存储单元001中数据1-1输入处理器中第
一基2蝶算单元021中进行计算处理,得出计算结果1-2并替换第一存储单元
001中原有数据1-1;
周期a+2:S103、处理器中第一存储单元001中数据1-2输入处理器中第
二基2蝶算单元022中进行计算,得出计算结果1-3并替换原有数据1-2;
周期a+3:S104、处理器中第一存储单元001中数据1-3进行输出处理,
数据1-3为数据1-1的最终计算结果。
由于有四个数据进行同时进行着上述处理,因此每一周期均会得出一个
最终计算结果,运算速度并没有降低。本发明所需要的存储单元个数要比现
有的级联处理运算需要的存储单元个数少logrN个,因此可以使处理器更加小
型化。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同
相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同
之处。尤其,对于方法实施例而言,由于其基本相似于装置实施例,所以描
述得比较简单,相关之处参见装置实施例的部分说明即可。
需要说明的是,在本文中,诸如第1和第2等之类的关系术语仅仅用
来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者
暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普
通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润
饰,这些改进和润饰也应视为本发明的保护范围。