CN115146222A - Fft处理系统、处理方法及dsp处理器 - Google Patents

Fft处理系统、处理方法及dsp处理器 Download PDF

Info

Publication number
CN115146222A
CN115146222A CN202210648118.XA CN202210648118A CN115146222A CN 115146222 A CN115146222 A CN 115146222A CN 202210648118 A CN202210648118 A CN 202210648118A CN 115146222 A CN115146222 A CN 115146222A
Authority
CN
China
Prior art keywords
fft
butterfly operation
processing system
result
unit
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.)
Pending
Application number
CN202210648118.XA
Other languages
English (en)
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.)
Institute of Automation of Chinese Academy of Science
Original Assignee
Institute of Automation of Chinese Academy of Science
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 Institute of Automation of Chinese Academy of Science filed Critical Institute of Automation of Chinese Academy of Science
Priority to CN202210648118.XA priority Critical patent/CN115146222A/zh
Publication of CN115146222A publication Critical patent/CN115146222A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • G06F17/142Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Discrete Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

本发明提供一种FFT处理系统、处理方法及DSP处理器,FFT处理系统基于软流水技术实现,通过流水线控制模块确定基于FFT点数的流水线控制指令,流水线控制指令包括时序的多个蝶形运算指令;通过软流水FFT计算模块接收输入数据以及旋转因子,根据多个蝶形运算指令对应的蝶形运算操作的可并行性,对输入数据以及旋转因子执行多个蝶形运算指令对应的微操作,得到FFT计算结果。该FFT处理系统不仅可以大大缩短FFT计算耗费的时间,提高FFT计算效率,作为蝶形运算指令并行执行的硬件结构,FFT处理系统的FFT处理功耗明显降低,使FFT处理的硬件开销明显降低。

Description

FFT处理系统、处理方法及DSP处理器
技术领域
本发明涉及信号处理技术领域,尤其涉及一种FFT处理系统、处理方法及DSP处理器。
背景技术
数字信号处理(Digital Signal Processing,DSP)是一种专门为实时、快速实现各种数字信号处理而设计的具有特殊结构的微处理器,能高速完成快速傅里叶变换(FastFourier Transformation,FFT)、有限冲击响应(Finite Impulse Response,FIR)、复数乘加、相关、三角函数以及矩阵运算等数字信号处理。
FFT运算是离散傅里叶变换((Discrete Fourier Transform,DFT)的一种快速实现方法。FFT算法可以用于频谱分析、快速卷积、快速相关、大整数乘法计算等,是无线通信、语音信号处理、图像处理等信号处理应用领域的核心方法。
FFT运算的计算效率将直接影响整个应用的执行效率。目前,FFT运算的硬件实现主要采用并行流水线结构来满足实际系统对吞吐量和处理能力的需求。典型的并行流水线结构包括多路延迟换向(Multipath Delay Commutator,MDC)前馈方案和多路延迟反馈(Multipath Delay Feedback,MDF)反馈方案。针对需进行FFT运算的多点序列,MDC前馈结构和MDF反馈结构均需要采用多个基于流水线结构的计算单元对多点序列进行支路内并行FFT运算,硬件资源开销较大,计算效率低下。
发明内容
本发明提供一种FFT处理系统、处理方法及DSP处理器,用以解决现有技术中存在的缺陷。
本发明提供一种FFT处理系统,基于软流水技术实现,包括:流水线控制模块以及软流水FFT计算模块,所述软流水FFT计算模块与所述流水线控制模块连接;
所述流水线控制模块,用于确定基于FFT点数的流水线控制指令,所述流水线控制指令包括时序的多个蝶形运算指令;
所述软流水FFT计算模块,用于接收输入数据以及旋转因子,根据所述多个蝶形运算指令对应的蝶形运算操作的可并行性,对所述输入数据以及所述旋转因子执行所述多个蝶形运算指令对应的微操作,得到FFT计算结果;
其中,所述输入数据包括预设变换长度的序列,所述预设变换长度与所述FFT点数相等;所述多个蝶形运算指令对应的微操作基于将所述多个蝶形运算指令对应的蝶形运算操作按周期进行拆分得到。
根据本发明提供的一种FFT处理系统,所述软流水FFT计算模块包括按时间抽取的第一级蝶形运算单元;
所述第一级蝶形运算单元用于接收所述输入数据,并根据所述可并行性,对所述输入数据以及所述旋转因子执行每个蝶形运算指令中四个周期对应的微操作,得到第一级蝶形运算结果,并基于所述第一级蝶形运算结果确定所述FFT计算结果。
根据本发明提供的一种FFT处理系统,所述软流水FFT计算模块还包括位逆序处理单元以及按时间抽取的第二级蝶形运算单元;所述第一级蝶形运算单元、所述位逆序处理单元以及所述第二级蝶形运算单元依次连接;
所述位逆序处理单元用于将所述第一级蝶形运算结果进行位逆序处理,得到位逆序处理结果;
所述第二级蝶形运算单元用于接收所述位逆序处理结果,并根据所述可并行性,对所述位逆序处理结果以及所述旋转因子执行每个蝶形运算指令中六个周期对应的微操作,得到第二级蝶形运算结果,并基于所述第二级蝶形运算结果确定所述FFT计算结果。
根据本发明提供的一种FFT处理系统,还包括选择器,所述选择器分别与所述第一级蝶形运算单元、所述第二级蝶形运算单元以及所述流水线控制模块连接;
所述流水线控制指令还包括基于所述预设变换长度确定的选择指令;
所述选择器用于基于所述选择指令选择所述第一级蝶形运算结果或所述第二级蝶形运算结果作为所述FFT计算结果。
根据本发明提供的一种FFT处理系统,所述第一级蝶形运算单元与所述第二级蝶形运算单元均基于基2复数FFT算法进行蝶形运算。
根据本发明提供的一种FFT处理系统,还包括旋转因子模块,所述旋转因子模块与所述软流水FFT计算模块连接;
所述旋转因子模块,用于存储所述旋转因子。
根据本发明提供的一种FFT处理系统,还包括输出缓冲模块,用于存储并输出所述FFT运算结果。
本发明还提供一种基于上述的FFT处理系统的处理方法,包括:
确定输入数据;
将所述输入数据输入至所述FFT处理系统,得到所述FFT处理系统输出的所述输入数据对应的FFT计算结果。
本发明还提供一种DSP处理器,包括上述的FFT处理系统。
根据本发明提供的一种DSP处理器,还包括:处理单元以及存储单元,所述处理单元与所述流水线控制模块连接,所述存储单元与所述软流水FFT计算模块连接;
所述存储单元用于存储所述输入数据。
本发明提供的FFT处理系统、处理方法及DSP处理器,FFT处理系统基于软流水技术实现,包括:流水线控制模块以及软流水FFT计算模块,软流水FFT计算模块与流水线控制模块连接;流水线控制模块可以确定基于FFT点数的流水线控制指令,流水线控制指令包括时序的多个蝶形运算指令;软流水FFT计算模块可以接收输入数据以及旋转因子,根据多个蝶形运算指令对应的蝶形运算操作的可并行性,对输入数据以及旋转因子执行多个蝶形运算指令对应的微操作,得到FFT计算结果。该FFT处理系统不仅可以大大缩短FFT计算耗费的时间,提高FFT计算效率,作为蝶形运算指令并行执行的硬件结构,FFT处理系统的FFT处理功耗明显降低,使FFT处理的硬件开销明显降低。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的FFT处理系统的结构示意图之一;
图2是本发明提供的FFT处理系统中软流水FFT计算模块的基2蝶形运算的流程示意图;
图3是本发明提供的未对每个蝶形运算指令对应的蝶形运算操作进行拆分时FFT循环体的流水图解;
图4是本发明提供的对每个蝶形运算指令对应的蝶形运算操作进行拆分后FFT循环体的流水图解;
图5是本发明提供的FFT处理系统中软流水FFT计算模块的第一级蝶形运算单元的运算流程示意图;
图6是本发明提供的FFT处理系统中软流水FFT计算模块的第二级蝶形运算单元的运算流程示意图;
图7是本发明提供的FFT处理系统的结构示意图之二;
图8是本发明提供的FFT处理系统的结构示意图之三;
图9是本发明提供的基于FFT处理系统的处理方法的流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为解决现有技术中FFT运算在硬件实现时,硬件资源开销较大,计算效率低下的问题,本发明实施例中提供了一种FFT处理系统。
图1为本发明实施例中提供的一种FFT处理系统的结构示意图,该FFT处理系统基于软流水技术实现,如图1所示,该FFT处理系统包括:流水线控制模块1以及软流水FFT计算模块2,所述软流水FFT计算模块2与所述流水线控制模块1连接;
所述流水线控制模块1,用于确定基于FFT点数的流水线控制指令,所述流水线控制指令包括时序的多个蝶形运算指令;
所述软流水FFT计算模块2,用于接收输入数据以及旋转因子,根据所述多个蝶形运算指令对应的蝶形运算操作的可并行性,对所述输入数据以及所述旋转因子执行所述多个蝶形运算指令对应的微操作,得到FFT计算结果,并将FFT计算结果作为输出数据;
其中,所述输入数据包括预设变换长度的序列,所述预设变换长度与所述FFT点数相等;所述多个蝶形运算指令对应的微操作基于将所述多个蝶形运算指令对应的蝶形运算操作按周期进行拆分得到。
具体地,本发明实施例中提供的FFT处理系统,通过软流水技术实现,软流水是编译过程中的优化调度技术,包括循环展开、重叠执行不同迭代以及并行调度指令,充分利用硬件资源。由于在FFT程序中存在一些具有潜在的可并行性的程序段,因此本发明实施例中通过对软流水技术进行优化,将相互没有依赖的计算任务分配到独立的运算单元上并行执行,将不同的循环迭代通过循环展开、重叠执行,从而能够缩短计算任务的执行时间。
在FFT处理系统中,包括流水线控制模块1以及软流水FFT计算模块2,软流水FFT计算模块2与流水线控制模块1连接。流水线控制模块1可以用于确定基于FFT点数的流水线控制指令,该流水线控制指令包括时序的多个蝶形运算指令。即流水线控制模块1可以根据FFT点数确定流水线控制指令,该流水线控制指令可以用于对软流水FFT计算模块2的计算过程进行控制。
可以理解的是,FFT点数是指软流水FFT计算模块2能够支持的FFT计算的点数,与软流水FFT计算模块的输入数据的序列长度相等,软流水FFT计算模块的输入数据可以是指需要进行FFT计算的数据,可以包括预设变换长度的序列,例如x(n),预设变换长度为N。因此,FFT点数与预设变换长度相等。
由于软流水FFT计算模块2需要按时间先后顺序进行多个循环的蝶形运算,因此该流水线控制指令可以包括时序的多个蝶形运算指令。多个蝶形运算指令可以分别表示为hfft0、hfft1、hfft2……等。蝶形运算指令的数量由FFT点数确定,此处不作具体限定。
每个蝶形运算指令包括多个周期,每个蝶形运算指令包括的周期数与预设变换长度有关。例如,若N为2的指数幂,则每个蝶形运算指令包括的周期数可以是4,若N为4的指数幂,则每个蝶形运算指令包括的周期数可以是10,此处不作具体限定。
软流水FFT计算模块2可以接收输入数据以及旋转因子,该输入数据可以来自于存储器,旋转因子是指在对输入数据进行FFT计算时所需要的权重,也可以来自于存储器。
可以理解的是,由于FFT计算过程中,不可避免需要对计算得到的中间结果进行缓存,因此,本发明实施例中的软流水FFT计算模块2具有访问各种寄存器或存储单元的功能。
输入数据x(n)的DFT为:
Figure BDA0003684802370000071
其中,
Figure BDA0003684802370000072
为x(n)的旋转因子。
按k的奇偶把X(k)分解成偶数组Xeven(k)和奇数组Xodd(k),分别为:
Figure BDA0003684802370000073
Figure BDA0003684802370000074
因此可将N点的DFT分为两个N/2点DFT:
Figure BDA0003684802370000075
Figure BDA0003684802370000081
将Xeven(k)记为复数P,P的实部为Pr,虚部为Pi;将Xodd(k)记为复数Q,Q的实部为Qr,虚部为Qi;将
Figure BDA0003684802370000082
记为W,W的实部为Wr,虚部为Wi;可以通过如图2所示的流程对P、Q进行基2蝶形运算,分别得到P′、Q′,P′的实部为Pr′,虚部为Pi′,Q′的实部为Qr′,虚部为Qi′。且有:
P′=P+QW
Q′=P-QW
Pr′=Pr+(QrWr-QiWi)
Qr′=Pr-(QrWr-QiWi)
Pi′=Pi+(QrWi+QiWr)
Qi′=Pi-(QrWi+QiWr)
由此可知,在进行每个蝶形运算指令对应的蝶形运算操作时,每个蝶形运算指令对应的蝶形运算操作中可以包括一次乘法和两次加法,除此之外还包括数据读入等微操作,且每个微操作可以占用蝶形运算指令的一个周期,或者多个微操作占用一个周期。
因此,本发明实施例中可以通过分析各蝶形运算指令对应的蝶形运算操作中潜在的可并行性,即判断一个蝶形运算指令对应的蝶形运算操作中有哪些微操作是可以与其他蝶形运算指令对应的蝶形运算操作中的微操作并行处理。
进而,根据分析得到的蝶形运算操作的可并行性,将每个蝶形运算指令对应的蝶形运算操作按周期进行拆分得到每个蝶形运算指令对应的蝶形运算操作中的多个微操作。此处,蝶形运算操作中的微操作的数量与对应的蝶形运算指令的周期数相同。
以输入数据是预设变换长度为4的指数幂的序列为例,则每个蝶形运算指令包含有10个周期,图3为未对每个蝶形运算指令对应的蝶形运算操作进行拆分时FFT循环体的流水图解。图3中仅示出了4个蝶形运算指令,分别为hfft0、hfft1、hfft2和hfft3,每个蝶形运算指令对应的蝶形运算操作在10个周期上完成,且各蝶形运算指令之间并无时间上的并行执行。
图4为对每个蝶形运算指令对应的蝶形运算操作进行拆分后FFT循环体的流水图解。图4中也仅示出了6个蝶形运算指令,分别为hfft0、hfft1、hfft2、hfft3、hfft4、hfft5和hfft6,每个蝶形运算指令对应的蝶形运算操作在10个周期上完成,且相邻两个蝶形运算指令从第三个周期开始进行并行执行。
由于考虑了蝶形运算操作的可并行性,使得对输入数据以及旋转因子执行蝶形运算操作时,通过选择性的并行执行各蝶形运算指令对应的微操作实现,进而得到FFT计算结果。由图3与图4进行对比可知,原来顺序执行3个蝶形运算指令需要30个周期,而考虑了蝶形运算操作的可并行性之后,则执行6个蝶形运算指令只需要22个周期即可,可以大大缩短FFT计算耗费的时间,提高了FFT计算效率。而且,本发明实施例中提供的FFT处理系统,作为蝶形运算指令并行执行的硬件结构,其FFT处理功耗明显降低,进而使FFT处理的硬件开销明显降低。
本发明实施例中提供的FFT处理系统,基于软流水技术实现,包括:流水线控制模块以及软流水FFT计算模块,软流水FFT计算模块与流水线控制模块连接;流水线控制模块可以确定基于FFT点数的流水线控制指令,流水线控制指令包括时序的多个蝶形运算指令;软流水FFT计算模块可以接收输入数据以及旋转因子,根据多个蝶形运算指令对应的蝶形运算操作的可并行性,对输入数据以及旋转因子执行多个蝶形运算指令对应的微操作,得到FFT计算结果。该FFT处理系统不仅可以大大缩短FFT计算耗费的时间,提高FFT计算效率,作为蝶形运算指令并行执行的硬件结构,FFT处理系统的FFT处理功耗明显降低,使FFT处理的硬件开销明显降低。
在上述实施例的基础上,本发明实施例中提供的FFT处理系统,所述软流水FFT计算模块包括按时间抽取的第一级蝶形运算单元;
所述第一级蝶形运算单元用于接收所述输入数据,并根据所述可并行性,对所述输入数据以及所述旋转因子执行每个蝶形运算指令中四个周期对应的微操作,得到第一级蝶形运算结果,并基于所述第一级蝶形运算结果确定所述FFT计算结果。
具体地,本发明实施例中,软流水FFT计算模块可以包括按时间抽取的第一级蝶形运算单元,该第一级蝶形运算单元可以接收输入数据,并根据可并行性,对输入数据以及旋转因子执行每个蝶形运算指令中四个周期对应的微操作,得到第一级蝶形运算结果。
由于第一级蝶形运算单元能够处理蝶形运算指令中四个周期的微操作,因此此时的FFT处理系统适用于输入数据是预设变换长度为2的指数幂的序列的情况。
第一级蝶形运算单元包括两个输入端口、两个输出端口和四周期计算单元,一个输入端口用于在第一周期输入x(n)的DFT分解得到的偶数组P的实部Pr和奇数组Q的实部Qr,另一个输入端口用于在第二周期输入x(n)的DFT分解得到的偶数组P的虚部Pi和奇数组Q的虚部Qi。两个输出端口分别用于按时序输出第一级蝶形运算结果的不同部分。
四周期计算单元用于对输入数据以及旋转因子执行各微操作。四周期计算单元可以包括乘法单元和加法单元。
第一级蝶形运算单元的运算流程如图5所示。
第一周期,将Pr、Pi分别从输入端口读入寄存器BF1,同时读取旋转因子Wr和Wi
第二周期,将Qr、Qi分别从输入端口读入BF2,同时将读取的旋转因子Wr、Qr、Qi送入乘法单元进行乘法操作,然后将乘法结果QrWr、QiWr存入BF2,并将BF1中的Pr和Pi存入BF2。
第三周期,将BF2中的QrWr、QiWr与Pr、Pi送入加法单元进行加减操作,并将加减结果Pr+QrWr、Pr-QrWr、Pi-QiWr、Pi+QiWr存入BF3中,将BF2中Qr、Qi与Wi送入乘法单元进行乘法操作,并将QrWi、QiWi存入BF3中。
第四周期,将BF3中的Pr+QrWr、Pr-QrWr、Pi-QiWr、Pi+QiWr与QrWi、QiWi送入加法单元进行加减操作,得到加减结果Pr+QrWr-QiWi、Pr-QrWr+QiWi、Pi-QiWr-QrWi、Pi+QiWr+QrWi,即Pr′、Qr′、Pi′、Qi′存入BF4中,至此,得到第一级蝶形计算结果。
在通过第一级蝶形运算单元得到第一级蝶形运算结果之后,可以通过第一级蝶形运算结果确定最终的FFT计算结果,例如可以直接将第一级蝶形运算结果作为FFT计算结果,即P′、Q′。
本发明实施例中,FFT处理系统的软流水FFT计算模块包括按时间抽取的第一级蝶形运算单元,可以实现对预设变换长度为2的指数幂的序列进行FFT处理,可以缩短FFT计算耗费的时间,提高FFT计算效率,降低FFT处理系统的FFT处理功耗以及FFT处理的硬件开销。
在上述实施例的基础上,本发明实施例中提供的FFT处理系统,所述软流水FFT计算模块还包括位逆序处理单元以及按时间抽取的第二级蝶形运算单元;所述第一级蝶形运算单元、所述位逆序处理单元以及所述第二级蝶形运算单元依次连接;
所述位逆序处理单元用于将所述第一级蝶形运算结果进行位逆序处理,得到位逆序处理结果;
所述第二级蝶形运算单元用于接收所述位逆序处理结果,并根据所述可并行性,对所述位逆序处理结果以及所述旋转因子执行每个蝶形运算指令中六个周期对应的微操作,得到第二级蝶形运算结果,并基于所述第二级蝶形运算结果确定所述FFT计算结果。
具体地,本发明实施例中,软流水FFT计算模块不止包含有第一级蝶形运算单元,还包括位逆序处理单元以及按时间抽取的第二级蝶形运算单元,第一级蝶形运算单元、位逆序处理单元以及第二级蝶形运算单元依次连接。第一级蝶形运算单元得到的第一级蝶形运算结果经位逆序处理单元进行位逆序处理后通过第二级蝶形运算单元进行六个周期对应的微操作。
也就是说,第一级蝶形运算单元、位逆序处理单元以及第二级蝶形运算单元相结合的软流水FFT计算模块,可以处理蝶形运算指令中10个周期的微操作,因此此时的FFT处理系统适用于输入数据是预设变换长度为4的指数幂的序列的情况。
第二级蝶形运算单元包括两个输入端口、两个输出端口和六周期计算单元,一个输入端口用于在第一周期输入一个第一级蝶形运算结果的实部Q0r和虚部Q0i,并在第三周期输入输入数据对应的序列中的一个数据P0的实部P0r和虚部P0i;另一个输入端口用于在第一周期输入第二个第一级蝶形运算结果的实部Q1r和虚部Q1i,并在第三周期输入输入数据对应的序列中的另一个数据P1的实部P1r和虚部P1i。两个输出端口分别用于按时序输出第二级蝶形运算结果的不同部分。
六周期计算单元用于对输入数据以及旋转因子执行各微操作。六周期计算单元可以包括乘法单元和加法单元。
第二级蝶形运算单元的运算流程如图6所示。
第一周期,将Q0r、Q0i、Q1r、Q1i分别从输入端口读入寄存器BF1,同时读取旋转因子W0r、W0i,并将Q0r、Q0i分别与W0r、W0i相乘,并将乘法结果Q0rW0r、Q0iW0i存入寄存器BF1。
第二周期,将BF1中的Q0rW0r、Q0iW0i送入加法单元做减法,得到Q0rW0r-Q0iW0i并存入BF2,将BF1中的Q0i、Q0r与W0r、W0i送入乘法单元进行乘法运算,并将乘法结果Q0iW0r和Q0rW0i存入寄存器BF2中,并将Q1r、Q1i存入寄存器BF2。
第三周期,将端口输入的P0r与BF2中的Q0rW0r-Q0iW0i送入加法单元进行加减操作,并加减结果P0r+Q0rW0r-Q0iW0i和P0r-(Q0rW0r-Q0iW0i)存入寄存器BF3,并将此时BF3中的数据分别作为第二级蝶形计算结果中的第一数据和第二数据进行输出。
将BF2中的Q0iW0r和Q0rW0i送入加法单元进行加法操作,并将加法结果Q0iW0r+Q0rW0i存入BF3,将与Q1r、Q1i存入寄存器BF3,将BF2中的与Q1r、Q1i分别与W1r、W1i相乘,并将乘法结果Q1rW1r和Q1iW1i存入BF3中,将端口输入的P0i存入寄存器BF3,将端口输入的P1r、P1i存入BF3。
第四周期,将BF3中存的Q0rW0i+Q0iW0r和BF3中的P0i送入加法单元进行加减操作,得到P0i+Q0rW0i+Q0iW0r和P0i-(Q0rW0i+Q0iW0r)存入BF4,并将此时BF4中的数据分别作为第二级蝶形计算结果中的第三数据和第四数据进行输出。
将BF3中的Q1i、Q1r与W1r、W1i送入乘法单元进行乘法操作,将乘法结果Q1iW1r和Q1rW1i存入BF4中,将BF3中的Q1rW1r和Q1iW1i送入加法单元进行减法操作,并将减法结果Q1rW1r-Q1iW1i存入BF4,将BF3中的P1r、P1i存入BF4。
第五周期,将BF4中的Q1rW1r-Q1iW1i和BF4中的P1r送入加法单元进行加减操作,并将加减结果P1r+Q1rW1r-Q1iW1i和P1r-(Q1rW1r-Q1iW1i)存入BF5,将此时BF5中的数据分别作为第二级蝶形计算结果中的第五数据和第六数据进行输出。
将BF4中的Q1rW1r和Q1rW1i送入加法单元进行加法操作,并将加法结果Q1rW1r+Q1rW1i存入BF5,将BF4中存的P1i存入BF5;
第六周期,将BF5中的Q1iW1r+Q1rW1i和BF4中的P1i送入加法单元进行加减操作,并将加减结果P1i+Q1rW1r+Q1rW1i和P1i-(Q1rW1r+Q1rW1i)存入BF6,将此时BF6中的数据分别作为第二级蝶形计算结果中的第七数据和第八数据进行输出。至此,得到了完整的第二级蝶形计算结果。
本发明实施例中,FFT处理系统的软流水FFT计算模块包括按时间抽取的第一级蝶形运算单元、位逆序处理单元以及按时间抽取的第二级蝶形运算单元,可以实现对预设变换长度为4的指数幂的序列进行FFT处理,可以缩短FFT计算耗费的时间,提高FFT计算效率,降低FFT处理系统的FFT处理功耗以及FFT处理的硬件开销。
在上述实施例的基础上,本发明实施例中提供的FFT处理系统,还包括选择器,所述选择器分别与所述第一级蝶形运算单元、所述第二级蝶形运算单元以及所述流水线控制模块连接;
所述流水线控制指令还包括基于所述预设变换长度确定的选择指令;
所述选择器用于基于所述选择指令选择所述第一级蝶形运算结果或所述第二级蝶形运算结果作为所述FFT计算结果。
具体地,本发明实施例中,如图7所示,在软流水FFT计算模块2包括按时间抽取的第一级蝶形运算单元21、位逆序处理单元22以及按时间抽取的第二级蝶形运算单元23的情况下,还可以包括选择器24,该选择器24可以分别与第一级蝶形运算单元21、第二级蝶形运算单元22以及流水线控制模块1连接。流水线控制指令中还包括基于预设变换长度确定的选择指令,该选择指令用于对选择器进行控制。通过该选择指令可以控制选择器选择第一级蝶形运算结果作为FFT计算结果输出,还是选择第二级蝶形运算结果作为FFT计算结果输出。
选择器在接收到选择指令后,可以根据选择指令选择第一级蝶形运算结果或第二级蝶形运算结果作为FFT计算结果进行输出。
本发明实施例中,FFT处理系统的软流水FFT计算模块包括按时间抽取的第一级蝶形运算单元、位逆序处理单元以及按时间抽取的第二级蝶形运算单元,结合选择器,通过流水线控制模块对选择器的控制,既可以实现对预设变换长度为2的指数幂的序列进行FFT处理,也可以实现对预设变换长度为4的指数幂的序列进行FFT处理,不仅可以缩短FFT计算耗费的时间,提高FFT计算效率,降低FFT处理系统的FFT处理功耗以及FFT处理的硬件开销,还可以扩大FFT处理系统的应用范围。
在上述实施例的基础上,本发明实施例中提供的FFT处理系统,第一级蝶形运算单元21与第二级蝶形运算单元22均可以通过基2复数FFT算法进行蝶形运算。
如图8所示,在上述实施例的基础上,本发明实施例中提供的FFT处理系统,还包括旋转因子模块3,所述旋转因子模块3与所述软流水FFT计算模块2连接;所述旋转因子模块3用于存储所述旋转因子。
具体地,本发明实施例中,FFT处理系统还可以包括旋转因子模块,该模块可以存储有对输入数据进行FFT计算时所需的各旋转因子。在计算过程中,需要旋转因子时,可以向旋转因子模块发送读请求,即可读取对应的旋转因子。
如图8所示,在上述实施例的基础上,本发明实施例中提供的FFT处理系统,还包括输出缓冲模块4,通过输出缓冲模块4实现FFT运算结果的存储及输出。
输出缓冲模块4可以与流水线控制模块1连接,流水线控制指令可以包括输出缓存指令,输出缓冲模块具体可以用于根据该输出缓存指令对FFT运算结果的存储及输出。
如图9所示,在上述实施例的基础上,本发明实施例中还提供了一种基于上述各实施例中提供的FFT处理系统的处理方法,包括:
S1,确定输入数据;
S2,将所述输入数据输入至所述FFT处理系统,得到所述FFT处理系统输出的所述输入数据对应的FFT计算结果。
具体地,本发明实施例中提供的处理方法,其执行主体为FFT处理装置,该装置可以是DSP处理器,也可以配置于DSP处理器内,此处不作具体限定。
首先,可以执行步骤S1,确定输入数据。该输入数据可以来自于存储器,此处不作具体限定。
然后执行步骤S2,将输入数据输入至FFT处理系统,FFT处理系统中的流水线控制模块确定基于FFT点数的流水线控制指令,软流水FFT计算模块则根据流水线控制指令中多个蝶形运算指令对应的蝶形运算操作的可并行性,对输入数据以及旋转因子执行多个蝶形运算指令对应的微操作,得到FFT计算结果。
本发明实施例中提供的处理方法,首先确定输入数据;然后将输入数据输入至FFT处理系统,得到FFT处理系统输出的输入数据对应的FFT计算结果。该处理方法不仅可以大大缩短FFT计算耗费的时间,提高FFT计算效率,还可以降低FFT处理的硬件功耗,使FFT处理的硬件开销大大降低。
由于现有技术中,多采用“通用核心+加速器”的方案进行FFT计算,这种方案会在处理器中额外引入一个高速总线主机端和从机端来实现加速器对片上存储的访问,增加了硬件资源,也会引起访存功耗的增大。为此,在上述实施例的基础上,本发明实施例中还提供了一种DSP处理器,包括上述各实施例中提供的FFT处理系统,使得该DSP处理器在进行FFT计算时的计算时长缩短,计算效率增加,且可以降低DSP处理器的硬件功耗。
在上述实施例的基础上,本发明实施例中提供的DSP处理器,还包括:处理单元以及存储单元,处理单元与流水线控制模块连接,处理模块可以用于对流水线控制模块进行控制,存储单元与软流水FFT计算模块连接,可以用于存储输入数据,并向软流水FFT计算模块提供FFT计算对象。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种FFT处理系统,其特征在于,基于软流水技术实现,包括:流水线控制模块以及软流水FFT计算模块,所述软流水FFT计算模块与所述流水线控制模块连接;
所述流水线控制模块,用于确定基于FFT点数的流水线控制指令,所述流水线控制指令包括时序的多个蝶形运算指令;
所述软流水FFT计算模块,用于接收输入数据以及旋转因子,根据所述多个蝶形运算指令对应的蝶形运算操作的可并行性,对所述输入数据以及所述旋转因子执行所述多个蝶形运算指令对应的微操作,得到FFT计算结果;
其中,所述输入数据包括预设变换长度的序列,所述预设变换长度与所述FFT点数相等;所述多个蝶形运算指令对应的微操作基于将所述多个蝶形运算指令对应的蝶形运算操作按周期进行拆分得到。
2.根据权利要求1所述的FFT处理系统,其特征在于,所述软流水FFT计算模块包括按时间抽取的第一级蝶形运算单元;
所述第一级蝶形运算单元用于接收所述输入数据,并根据所述可并行性,对所述输入数据以及所述旋转因子执行每个蝶形运算指令中四个周期对应的微操作,得到第一级蝶形运算结果,并基于所述第一级蝶形运算结果确定所述FFT计算结果。
3.根据权利要求2所述的FFT处理系统,其特征在于,所述软流水FFT计算模块还包括位逆序处理单元以及按时间抽取的第二级蝶形运算单元;所述第一级蝶形运算单元、所述位逆序处理单元以及所述第二级蝶形运算单元依次连接;
所述位逆序处理单元用于将所述第一级蝶形运算结果进行位逆序处理,得到位逆序处理结果;
所述第二级蝶形运算单元用于接收所述位逆序处理结果,并根据所述可并行性,对所述位逆序处理结果以及所述旋转因子执行每个蝶形运算指令中六个周期对应的微操作,得到第二级蝶形运算结果,并基于所述第二级蝶形运算结果确定所述FFT计算结果。
4.根据权利要求3所述的FFT处理系统,其特征在于,还包括选择器,所述选择器分别与所述第一级蝶形运算单元、所述第二级蝶形运算单元以及所述流水线控制模块连接;
所述流水线控制指令还包括基于所述预设变换长度确定的选择指令;
所述选择器用于基于所述选择指令选择所述第一级蝶形运算结果或所述第二级蝶形运算结果作为所述FFT计算结果。
5.根据权利要求3所述的FFT处理系统,其特征在于,所述第一级蝶形运算单元与所述第二级蝶形运算单元均基于基2复数FFT算法进行蝶形运算。
6.根据权利要求1-5中任一项所述的FFT处理系统,其特征在于,还包括旋转因子模块,所述旋转因子模块与所述软流水FFT计算模块连接;
所述旋转因子模块,用于存储所述旋转因子。
7.根据权利要求1-5中任一项所述的FFT处理系统,其特征在于,还包括输出缓冲模块,用于存储并输出所述FFT运算结果。
8.一种基于如权利要求1-7中任一项所述的FFT处理系统的处理方法,其特征在于,包括:
确定输入数据;
将所述输入数据输入至所述FFT处理系统,得到所述FFT处理系统输出的所述输入数据对应的FFT计算结果。
9.一种DSP处理器,其特征在于,包括如权利要求1-7中任一项所述的FFT处理系统。
10.根据权利要求9所述的DSP处理器,其特征在于,还包括:处理单元以及存储单元,所述处理单元与所述流水线控制模块连接,所述存储单元与所述软流水FFT计算模块连接;
所述存储单元用于存储所述输入数据。
CN202210648118.XA 2022-06-08 2022-06-08 Fft处理系统、处理方法及dsp处理器 Pending CN115146222A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210648118.XA CN115146222A (zh) 2022-06-08 2022-06-08 Fft处理系统、处理方法及dsp处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210648118.XA CN115146222A (zh) 2022-06-08 2022-06-08 Fft处理系统、处理方法及dsp处理器

Publications (1)

Publication Number Publication Date
CN115146222A true CN115146222A (zh) 2022-10-04

Family

ID=83407961

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210648118.XA Pending CN115146222A (zh) 2022-06-08 2022-06-08 Fft处理系统、处理方法及dsp处理器

Country Status (1)

Country Link
CN (1) CN115146222A (zh)

Similar Documents

Publication Publication Date Title
CN111291880B (zh) 计算装置以及计算方法
US9275014B2 (en) 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
US9977676B2 (en) Vector processing engines (VPEs) employing reordering circuitry in data flow paths between execution units and vector data memory to provide in-flight reordering of output vector data stored to vector data memory, and related vector processor systems and methods
US9684509B2 (en) Vector processing engines (VPEs) employing merging circuitry in data flow paths between execution units and vector data memory to provide in-flight merging of output vector data stored to vector data memory, and related vector processing instructions, systems, and methods
US9880845B2 (en) Vector processing engines (VPEs) employing format conversion circuitry in data flow paths between vector data memory and execution units to provide in-flight format-converting of input vector data to execution units for vector processing operations, and related vector processor systems and methods
US8904152B2 (en) Efficient complex multiplication and fast fourier transform (FFT) implementation on the ManArray architecture
US9792118B2 (en) Vector processing engines (VPEs) employing a tapped-delay line(s) for providing precision filter vector processing operations with reduced sample re-fetching and power consumption, and related vector processor systems and methods
KR101162649B1 (ko) 가변적 크기의 고속 직교 변환을 구현하기 위한 방법 및장치
US20150143076A1 (en) VECTOR PROCESSING ENGINES (VPEs) EMPLOYING DESPREADING CIRCUITRY IN DATA FLOW PATHS BETWEEN EXECUTION UNITS AND VECTOR DATA MEMORY TO PROVIDE IN-FLIGHT DESPREADING OF SPREAD-SPECTRUM SEQUENCES, AND RELATED VECTOR PROCESSING INSTRUCTIONS, SYSTEMS, AND METHODS
US20090313314A1 (en) Techniques for performing discrete fourier transforms on radix-2 platforms
US9262378B2 (en) Methods and devices for multi-granularity parallel FFT butterfly computation
CN112231626A (zh) 一种fft处理器
US20130148694A1 (en) Dual Fixed Geometry Fast Fourier Transform (FFT)
CN103493039B (zh) 数据处理方法、数据处理装置、接入设备和用户设备
WO2013175501A2 (en) Method and device (universal multifunction accelerator) for accelerating computations by parallel computations of middle stratum operations
JP2015503785A (ja) Fft/dftの逆順ソーティングシステム、方法およびその演算システム
CN115146222A (zh) Fft处理系统、处理方法及dsp处理器
CN115344526A (zh) 一种数据流架构的硬件加速方法及装置
CN111368250B (zh) 基于傅里叶变换/逆变换的数据处理系统、方法及设备
CN109558638B (zh) Fft处理器
Banerjee et al. A Novel Paradigm of CORDIC-Based FFT Architecture Framed on the Optimality of High-Radix Computation
Liu et al. Mod (2P-1) shuffle memory-access instructions for FFTs on vector SIMD DSPs
KR19990077845A (ko) 파이프라인된 고속 푸리에 변환 프로세서
CN110750249B (zh) 一种快速傅里叶变换代码的生成方法及装置
TWI393015B (zh) 管線化快速傅利葉轉換電路架構及其轉換方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination