A method and system for realizing FFT operation by vector processor, by using scalar vector processor in multiply accumulate unit, cross interconnection of 4 parallel MAC unit existing vector processor, at the same time with the updating method of a memory address pointer meter according to the FFT of each butterfly operation data, so as to achieve the FFT operation function in vector processor. The invention carries out a novel DSP architecture for the digital signal processing chip, especially the vector processor, and redesigns the FFT butterfly operation instructions. Through the different memory address pointer updating mode, the invention directly and efficiently selects the data that the butterfly operation aims at, and can directly realize the FFT operation through the vector processor. While ensuring the accuracy and efficiency of the calculation, the chip area is saved, and can be widely applied to the design of programmable vector processors in various communication chips.
【技术实现步骤摘要】
一种矢量处理器实现FFT运算的方法及系统
本专利技术涉及FFT(FastFourierTransformation,快速傅氏变换)运算方法,尤其涉及一种通过矢量处理器实现FFT运算的方法。
技术介绍
FFT运算是通信系统中最基本的运算。在有些处理器或DSP系统中,FFT运算通过专用的硬件加速单元实现,虽然这样效率较高,但是由于增加了一个独立的硬件加速单元,所以在芯片面积上并不占优。由于矢量处理器具有多个标量运算单元,可以通过改进实现矢量运算,而FFT运算也具有矢量运算的特点,所以通过矢量处理器也能够进行FFT运算。那么通过矢量处理器如何高效的进行FFT运算就非常重要。目前,通过矢量处理器实现FFT运算的困难在于处理器或DSP架构,尤其是数字信号处理芯片中FFT蝶形运算指令的设计。本专利技术所公开的通过矢量处理器实现FFT的运算方法,针对矢量处理器的特点,自行定义了新的FFT蝶形运算指令(DIT),通过将矢量处理器中的各个标量乘累加运算单元进行新颖的互联,以实现FFT蝶形运算。同时,本专利技术还通过采用高效新颖的存储器地址指针的更新模式,能够快速的计算出FFT运算的输入和输出数据地址。通过各个标量乘累加单元运算结果以及地址指针之间的相互配合,实现了高效的FFT运算。本专利技术实现简单,可以广泛应用于各种通信类芯片中的可编程矢量处理器设计中。
技术实现思路
为了解决现有技术存在的不足,本专利技术的目的在于提供一种通过矢量处理器实现FFT运算的方法及系统。首先,为实现上述目的,提出一种矢量处理器实现FFT运算的系统,包括顺序串联的指令存储器、取址单元、译码单元和执行 ...
【技术保护点】
一种矢量处理器实现FFT运算的系统,包括顺序串联的指令存储器(106)、取址单元(107)、译码单元(108)和执行单元(109),其特征在于,所述执行单元(109)包括矢量寄存器单元(100)、数据交换网络(101)、矢量运算单元(102)、数据存储单元(104)、地址产生单元(103)和数据存储器(105),所述的矢量寄存器单元(100)、数据交换网络(101)和矢量运算单元(102)顺序串联形成环形结构,所述矢量寄存器单元(100)的输出端同时连接数据交换网络(101)的输入端与数据存储单元(104)的输入端,矢量寄存器单元(100)的第一输入端连接矢量运算单元(102)的输出端,矢量寄存器单元(100)的第二输入端连接数据存储单元(104)的第一输出端,数据存储单元(104)的第二输出端与数据存储器(105)的输入端双向交互连接,数据存储器(105)的另一输入端连接地址产生单元(103);所述顺序串联的指令存储器(106)、取址单元(107)和译码单元(108)用以产生指令译码控制信号,控制执行单元(109)。
【技术特征摘要】
1.一种矢量处理器实现FFT运算的系统,包括顺序串联的指令存储器(106)、取址单元(107)、译码单元(108)和执行单元(109),其特征在于,所述执行单元(109)包括矢量寄存器单元(100)、数据交换网络(101)、矢量运算单元(102)、数据存储单元(104)、地址产生单元(103)和数据存储器(105),所述的矢量寄存器单元(100)、数据交换网络(101)和矢量运算单元(102)顺序串联形成环形结构,所述矢量寄存器单元(100)的输出端同时连接数据交换网络(101)的输入端与数据存储单元(104)的输入端,矢量寄存器单元(100)的第一输入端连接矢量运算单元(102)的输出端,矢量寄存器单元(100)的第二输入端连接数据存储单元(104)的第一输出端,数据存储单元(104)的第二输出端与数据存储器(105)的输入端双向交互连接,数据存储器(105)的另一输入端连接地址产生单元(103);所述顺序串联的指令存储器(106)、取址单元(107)和译码单元(108)用以产生指令译码控制信号,控制执行单元(109)。2.根据权利要求1所述的矢量处理器实现FFT运算的系统,其特征在于,所述矢量运算单元(102)中包括4个并行的乘累加单元,每个乘累加单元由顺序串联的乘法器、取反器和加法器构成;第一乘累加单元中的乘法器输出端通过取反器后连接至第三乘累加单元中的加法器输入端,第二乘累加单元中的乘法器输出端通过取反器后连接至第四乘累加单元中的加法器输入端,第三乘累加单元中的乘法器输出端通过取反器后连接至第一乘累加单元中的加法器输入端,第四乘累加单元中的乘法器输出端连接第二乘累加单元中的加法器输入端。3.根据权利要求2所述的矢量处理器实现FFT运算的系统,其特征在于,所述的数据交换网络(101)用以对即将进行FFT蝶形运算的旋转因子{I(w),R(w)}、蝶形运算的第一个数据{I(x1),R(x1)}、蝶形运算的第二个数据{I(x2),R(x2)}的实部与虚部按照矢量运算单元(102)的要求进行交换,交换得到3个矢量数据:加法矢量数据{I(x1),R(x1),I(x1),R(x1)}、第一乘法矢量数据{I(x2),I(x2),R(x2),R(x2)}和第二乘法矢量数据{R(w),I(w),I(w),R(w)},所述三个矢量数据的结构为{元素3,元素2,元素1,元素0},交换网络(101)的输出端用以将加法矢量数据的元素0至元素3依次送至第一至第四乘累加单元的加法器数据接口,将第一乘法矢量数据的元素0至元素3依次送至第一至第四乘累加单元的乘法器的第一数据接口,将第二乘法矢量数据的元素0至元素3依次送至第一至第四乘累加单元的乘法器的第二数据接口。4.根据权利要求1所述的矢量处理器实现FFT运算的系统,其特征在于,所述的矢量寄存器单元(100)由8个一级矢量寄存器组成,每个一级矢量寄存器分别由2个二级寄存器组成,每个二级寄存器分别由2个三级寄存器组成。5.一种矢量处理器实现FFT运算的数据交换方法,其特征在于,该方法包括以下步骤:第1步,根据数据读取指令读入存储器地址指针所对应的旋转因子{I(w),R(w)}、蝶形运算的第一个数据{I(x1),R(x1)}和蝶形运算的第二个数据{I(x2),R(x2)};第2步,通过数据交换网络(101)将读入的旋转因子{I(w),R(w)}、蝶形运算的第一个数据{I(x1),R...
【专利技术属性】
技术研发人员:李炜,陶建平,王和国,
申请(专利权)人:江苏宏云技术有限公司,
类型:发明
国别省市:江苏,32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。