本发明专利技术提供一种基于并行处理的FFT装置及其方法,其包括:指令存储单元、数据存储单元、指令读取和分发单元、矢量数据处理单元、标量数据处理单元、矢量寄存器组、标量寄存器组;通过充分利用数据信号的并行处理,添加有效指令,以较快的速度较少的指令来完成复数乘法操作,从而提高FFT装置的处理能力。
【技术实现步骤摘要】
本专利技术公开了一种应用DSP实现高速FFT处理的装置与方法,它涉及到数字信号的并行处理。
技术介绍
FFT(Fast Fourier ^Transformation),即为快速傅氏变换,是离散傅氏变换的快速算法。在数字信号处理的发展中,许多算法都可以化为离散傅里叶变化来实现,因此DFT 及其快速算法FFT是数字信号处理领域的核心组成部分,FFT算法多种多样,按数据抽取方式不同又可以分为基2、基4等。FFT算法可以使用通用的DSP实现也可以通过FPGA来实现。两者相对来讲,DSP 开发相对简单,技术成熟,但通用的DSP速率较慢。基于此情况,本专利技术在DSP的基础上添加支持FFT算法的指令,提高FFT装置的运算速度。基2 FFT的基本原理及算法结构FFT算法可以分为二类时域抽取法,频域抽取法。1.算法原理设序列点数N = 2S L为整数。若不满足,则补零。N为2的整数幂的FFT算法。 称基-2FFT算法将序列χ (η)按η的奇偶分成两组 权利要求1.一种基于并行处理的FFT装置,其特征在于包括 指令存储单元,用来存储将要执行的指令代码;数据存储单元,用来存储指令代码执行所需要的数据;指令读取和分发单元,该单元将指令代码从指令存储单元中读取并发送给所有的执行单元;矢量数据处理单元,该单元用来执行指令代码当中的矢量处理指令; 标量数据处理单元,该单元用来执行指令代码当中的标量处理指令; 矢量寄存器组,包含矢量寄存器VRO,VRl, ...,Vfoi,用来存放来自数据存储单元的数据,其运算单元则从矢量寄存器组中读写数据;标量寄存器组,包含标量寄存器R0,Rl,. . .,1 ,用来存放来自数据存储单元的数据,其运算单元则从标量寄存器组中读写数据。2.根据权利要求1所述的基于并行处理的FFT装置,其中,所述的矢量数据处理单元的矢量操作指令包括矢量加载寄存器的内容为地址,把此地址的数据送到矢量目的寄存器中; 矢量存储目的寄存器的内容为地址,把源目的寄存器的数据送到以目的寄存器的内容为地址的数据存储单元中;矢量乘法源寄存器Srcl,Src2的数据相乘,放入目的寄存器中; 矢量重排源寄存器Srcl,Src2的内容互换重排;矢量加法源寄存器Srcl,Src2的内容相加,相加的结果存入目的寄存器中。3.根据权利要求2所述的基于并行处理的FFT装置,其中,以矢量寄存器为256位为例,把矢量寄存器分为16个16位的,以16位数据为操作单位,所述的矢量数据处理单元的矢量操作指令包括矢量加载寄存器的内容为地址,把此地址的数据送到矢量目的寄存器中;把矢量寄存器分为16个16位的,以16位数据为操作单位;矢量存储目的寄存器的内容为地址,把源目的寄存器的数据送到以目的寄存器的内容为地址的数据存储单元中;把矢量寄存器分为16个16位的,以16位数据为操作单位; 矢量乘法源寄存器Srcl,Src2的数据相乘,放入目的寄存器中;把矢量寄存器分为16 个16位的,以16位数据为操作单位;矢量重排源寄存器Srcl,Src2的内容互换重排;把矢量寄存器分为16个16位的,以 16位数据为操作单位;矢量加法源寄存器Srcl,Src2的内容相加,相加的结果存入目的寄存器中;把矢量寄存器分为16个16位的,以16位数据为操作单位。4.一种基于并行处理的FFT方法,其特征在于包含以下步骤 步骤一、加载矢量Xl放入VRl中指令读取和分发单元从所述指令存储单元中读取矢量加载指令,然后分发给所述矢量数据处理单元,所述矢量数据处理单元根据所述矢量加载指令执行矢量加载操作;即所述矢量数据处理单元根据所述矢量加载指令将待加载数据队列从所述数据存储单元加载到所述矢量寄存器组源寄存器中,所述源寄存器的指定是由所述矢量加载存储指令决定的; 步骤二、加载系数矢量W放入VR2,具体的实施同步骤一;步骤三、做矢量复数乘法VR1*VR2,结果放入VR3指令读取和分发单元从所述指令存储单元中读取矢量乘法指令,然后分发给所述矢量数据处理单元;所述矢量数据处理单元根据所述矢量乘法指令将矢量寄存器组源寄存器的内容相乘,结果存入目的寄存器中,所述源寄存器的指定是由所述矢量加载指令中的目的寄存器决定的;步骤四、对VRl进行重排操作,结果存入VR4中指令读取和分发单元从所述指令存储单元中读取矢量重排指令,然后分发给所述矢量数据处理单元;所述矢量数据处理单元根据所述矢量重排指令将矢量寄存器组源寄存器的内容重排,结果存入目的寄存器中,所述源寄存器的指定是由所述矢量加载指令中的目的寄存器决定的;步骤五、完成矢量寄存器的乘法操作;VR2*VR4结果存放与VR5中,具体的实施同步骤---,步骤六、对VR5、VR3进行重排操作,结果依然存放在VR3、VR5中; 步骤七、完成矢量寄存器的加法操作;VR3+VR5,结果存放在VR6 指令读取和分发单元从所述指令存储单元中读取矢量加法指令,然后分发给所述矢量数据处理单元;所述矢量数据处理单元根据所述矢量加法指令将矢量寄存器组源寄存器的内容相加,结果存入目的寄存器中;步骤八、做矢量加减法VR1+VR6,VR1-VR6操作指令读取和分发单元从所述指令存储单元中读取矢量加法或减法指令,然后分发给所述矢量数据处理单元;所述矢量数据处理单元根据所述矢量加或减指令将矢量寄存器组源寄存器的内容相加减,结果存入目的寄存器中。5.根据权利要求4所述的基于并行处理的FFT方法,其中所述的步骤三和步骤四合并为一步为乘法重排操作。6.根据权利要求5所述的基于并行处理的FFT方法,其中所述的FFT方法包含以下步骤步骤一、加载矢量Xl放入VRl中指令读取和分发单元从所述指令存储单元中读取矢量加载指令,然后分发给所述矢量数据处理单元,所述矢量数据处理单元根据所述矢量加载指令执行矢量加载操作;即所述矢量数据处理单元根据所述矢量加载指令将待加载数据队列从所述数据存储单元加载到所述矢量寄存器组源寄存器中,所述源寄存器的指定是由所述矢量加载存储指令决定的; 步骤二、加载系数矢量W放入VR2,具体的实施同步骤一; 步骤三、做矢量复数乘法VR1*VR2,结果放入VR3指令读取和分发单元从所述指令存储单元中读取矢量乘法指令,然后分发给所述矢量数据处理单元;所述矢量数据处理单元根据所述矢量乘法指令将矢量寄存器组源寄存器的内容相乘,结果存入目的寄存器中,所述源寄存器的指定是由所述矢量加载指令中的目的寄存器决定的;步骤四、做矢量乘法重排操作,结果放入VR5中;步骤五、对VR5、VR3进行重排操作,结果依然存放在VR3、VR5中,重排的根据图5所示; 步骤六、完成矢量寄存器的加法操作;VR3+VR5,结果存放在VR6指令读取和分发单元从所述指令存储单元中读取矢量加法指令,然后分发给所述矢量数据处理单元;所述矢量数据处理单元根据所述矢量加法指令将矢量寄存器组源寄存器的内容相加,结果存入目的寄存器中;步骤七、做矢量加减法VR1+VR6,VR1-VR6操作指令读取和分发单元从所述指令存储单元中读取矢量加法或减法指令,然后分发给所述矢量数据处理单元;所述矢量数据处理单元根据所述矢量加或减指令将矢量寄存器组源寄存器的内容相加减,结果存入目的寄存器中。全文摘要本专利技术提供一种基于并行处理的FFT装置及其方法,其包本文档来自技高网...
【技术保护点】
1.一种基于并行处理的FFT装置,其特征在于包括:指令存储单元,用来存储将要执行的指令代码;数据存储单元,用来存储指令代码执行所需要的数据;指令读取和分发单元,该单元将指令代码从指令存储单元中读取并发送给所有的执行单元;矢量数据处理单元,该单元用来执行指令代码当中的矢量处理指令;标量数据处理单元,该单元用来执行指令代码当中的标量处理指令;矢量寄存器组,包含矢量寄存器VR0,VR1,...,VRn,用来存放来自数据存储单元的数据,其运算单元则从矢量寄存器组中读写数据;标量寄存器组,包含标量寄存器R0,R1,...,Rn,用来存放来自数据存储单元的数据,其运算单元则从标量寄存器组中读写数据。
【技术特征摘要】
【专利技术属性】
技术研发人员:孙瑞琛,
申请(专利权)人:孙瑞琛,
类型:发明
国别省市:11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。