基于矩阵转置操作的fft加速器装置的制造方法
【技术领域】
[0001] 本发明主要涉及到微处理器结构与芯片设计领域,特指一种基于矩阵转置操作的 FFT加速器,以实现大规模FFT计算。
【背景技术】
[0002] 快速傅立叶变换FFT(FastFourierTransformation)是离散傅里叶变 换DFT(DiscreteFourierTransformation)的一种快速实现方法,利用复指数常数
,共辄对称性和可约性的特性,将信号序列x(n)的排列次序按规律 重排,最终分解成一些短序列进行运算。FFT的计算复杂度由DFT算法的0(n2)降低到O(nlogn)。FFT的出现使得DFT在理论分析和现实生活中得到了更广泛的应用。在理论计 算和分析上,FFT算法应用于频谱分析、快速卷积、快速相关、大整数乘法计算等,同时FFT 是数字信号处理领域不可缺少的工具之一,它将一种信号从时域变换到频域,从而在频域 上能够容易分析出信号的相关特征。在信号处理领域,FFT应用到数字通信、语音信号处理、 图像处理、功率谱估计、雷达领域等。
[0003] 然而,在某些特殊场合,要求的信号处理速度极高,对FFT算法的性能、功耗和效 率都提出更高要求,使用通用的数字信号处理器(DSP)芯片或者CPU芯片很难满足上述需 求。因此,在一些DSP芯片上集成了专用于FFT算法的硬件单元,这种芯片将相应的FFT处 理算法使用定制专用逻辑实现,无需进行编程,例如TIC55X系列DSP芯片包含一个紧耦合 FFT加速器(称为HffAFFT),通过使用加速器指令实现FFT加速器与C55XDSP通讯,支持32 位定点格式8点到1024点的实数和复数FFT计算。由于该FFT加速器仅能支持的最大规 模为IK点,这限制了该FFT加速器应用范围。
[0004] 由于FFT计算过程中,需要对所有数据进行交叉访问,而且数据访问是以原位方 式进行(即每级FFT运算的初始数据和计算结果在数据存储器的位置相同,这样可以节省 存储资源)。因此,在FFT加速器中,内部存储器存储至少需要存储整行的数据,即内部存储 容量正比于FFT加速器直接支持的最大规模。对于支持IM点FFT加速器,FFT加速器内部 存储器容量最少需要8MB,这需要占用非常大的芯片面积。
[0005] 通常,FFT加速器中采取一种折中方式来实现大规模FFT算法--Cooley-Tukey 算法,将大规模一维数据视为一个二维数据矩阵,然后再对数据进行列方向FFT、行方向FFT及因子补充操作。这种方法将大规模FFT计算转换为两个批量小规模FFT计算,但是计 算过程中需要对数据矩阵进行列方向和行方向数据访问,而存储器(如DDR等)或数据通 路协议(AXI协议)的突发访问特点导致对数据矩阵的列方向访问的存储带宽利用率非常 低,从而列方向FFT的计算效率无法发挥。如采用DSP芯片内SRAM存储器的随机访问的优 势,实现无矩阵转置操作的FFT加速器,这是一种平衡数据矩阵行访问和列访问的访问速 度,从而整体上提升存储带宽利用率,然而,这种方式会降低数据矩阵行访问速度,同时,片 内SRAM的存储容量和速度也将对FFT性能产生较大影响。
【发明内容】
[0006] 本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一 种实现简单、效率高、适用面广的基于矩阵转置操作的FFT加速器装置。
[0007] 为解决上述技术问题,本发明采用以下技术方案:
[0008] -种基于矩阵转置操作的FFT加速器装置,其包括:
[0009] FFT加速器控制,用来控制逻辑完成批量1维FFT运算的控制,给总线控制器发送 读写控制参数,协调FFT-PE之间的计算与数据传递;
[0010] 总线控制器,用来根据FFT加速器控制模块的参数,产生读/写DDR存储器或片内 SMC存储器的控制信号;
[0011] FFT计算阵列,包括两个单存储器结构的FFT-PE,即FFT_PE1和FFT_PE2,用来实现 批量1维FFT算法的计算;
[0012] 数据通路和命令通路异步处理单元,用来负责将TeraNet数据主机端口协议转换 为内部DMA总线协议,将TeraNet命令从机端口协议转换为内部Pbus总线协议;同时,还完 成系统时钟频率域和FFT时钟频率域的异步对接。
[0013] 作为本发明的进一步改进:每个所述FFT-PE内部设置两组数据存储器,用来完成 初始数据读、计算结果写与FFT计算之间的"乒乓"操作。
[0014] 作为本发明的进一步改进:所述两个FFT-PE单元以循环方式接收来自存储器的 数据,进行FFT计算,并将计算结果写入到存储器。
[0015] 作为本发明的进一步改进:对于规模超过IK点的FFT,所述FFT计算阵列采用 Cooley-Tukey策略来实现;所述Cooley-Tukey策略采用分而治之的方式,初始数据和计算 结果放在存储容量较大的DDR存储器或片内存储器SMC中,使用二维FFT模拟实现规模大 规模一维FFT。
[0016] 作为本发明的进一步改进:所述Cooley-Tukey策略的流程包括:
[0017]列矩阵转置:对初始数据进行矩阵转置操作,结果存储到中间地址1指定的存储 空间中;
[0018] 列FFT计算:对中间地址1的数据进行列方向FFT,结果仍写回到中间地址1指定 的存储空间,补偿因子计算集成到列FFT计算过程,视为一级FFT蝶形计算;
[0019] 行矩阵转置:对中间地址1存储的列FFT计算结果进行矩阵转置,结果存储到中间 地址2指定的存储空间中;
[0020] 行FFT计算:对中间地址2的数据进行列方向FFT,结果仍写回到中间地址2指定 的存储空间;
[0021] 结果矩阵转置:对中间地址2存储的行FFT计算结果进行矩阵转置,将最终结果存 储到指定的存储空间中。
[0022] 作为本发明的进一步改进:在进行矩阵转置操作时采用分块矩阵转置策略,SP:
[0023] Sl:将原始NdN2矩阵分解若干基本块,通过一次按行读和按列写操作完成基本块 转置;
[0024] S2 :再以基本块为元素,对基本块矩阵进行转置,实现整个矩阵的转置;基本块矩 阵转置通过控制基本块转置的读、写地址完成;
[0025]S3:采用"乒乓"结构实现不同基本块的读操作时间和写操作时间重叠,AXI数据 通路的读通路与写通路完全分开。
[0026]与现有技术相比,本发明的优点在于:本发明的基于矩阵转置操作的FFT加速器 装置,通过复用FFT加速器内部的数据存储器来实现基本数据块矩阵的转置,然后通过读、 写地址的控制实现基本块矩阵转置。该方法具有实现简单、效率高、适用面广的优点,通过 复用FFT加速器资源,增加简单的DM控制逻辑就可以实现;以突发方式访问基本数据块矩 阵、基本块转置之间采用读和写重叠方式来提高存储带宽利用率;该方法不再受DSP片内 SRAM的存储容量和速度的限制,对于提供两个独立的基于突发访问的读通路和写通路的体 系结构就可以应用本发明设计的FFT加速器。为此,本发明能够解决基于Cooley-Tukey算 法的大规模FFT计算过程对数据矩阵行访问和列访问导致存储带宽利用率不高的问题。
【附图说明】
[0027] 图1是本发明的拓扑结构示意图。
[0028]图2是本发明在具体应用实例中进行小规模FFT交叉存储执行的示意图。
[0029]图3是本发明在具体应用实例中进行大规模FFT交叉存储执行的示意图。
[0030] 图4是本发明在具体应用实例中基本矩阵转置的数据组织方式的示意图。
[0031]图5是本发明在具体应用实例中进行块矩阵转置组织方式的示意图。
[0032]图6是本发明在具体应用实例中块矩阵转置时空示意图。
[0033]图7是本发明在具体应用实例中FFT加速器控制状态转换的示意图。
【具体实施方式】
[0034] 以下将结合说明书附图和具体实施例对本发明做进一步详细说明。
[0035] 如图1所示,本发明的基于矩阵转置操作的FFT加速器装置,包括:
[0036]FFT加速器控制,用来控制逻辑完成批量1维FFT运算的控制,给总线控制器发送 读写控制参数,协调FFT-PE之间的计算与数据传递;
[0037] 总线