矢量处理器实现FFT的系统及其数据交换、地址生成方法技术方案

技术编号:15541839 阅读:77 留言:0更新日期:2017-06-05 11:03
一种通过矢量处理器实现FFT运算的方法及系统,通过利用矢量处理器中的标量乘累加运算单元,对现有矢量处理器中并行的4个乘累加单元进行交叉互联,同时配合根据FFT各级蝶形运算数据而设计的存储器地址指针的更新方法,从而在矢量处理器中实现进行FFT运算的功能。本发明专利技术,针对数字信号处理芯片,尤其是矢量处理器进行了新颖的DSP架构,重新设计了FFT蝶形运算指令。本发明专利技术通过不同的存储器地址指针更新模式,直接高效地选取蝶形运算所针对的数据,可以直接通过矢量处理器实现FFT运算。在保证运算准确性与效率的同时,节省了芯片面积,可以广泛应用于各类通信类芯片中的可编程矢量处理器的设计中。

Method and system for realizing FFT operation by vector processor

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蝶形运算的数据,以及矢量运算单元输出的由FFT蝶形运算产生的数据;所述数据交换网络用以对即将进行FFT蝶形运算的旋转因子以及蝶形运算的两个数据的实部与虚部按照矢量运算单元的要求进行交换,并将交换得到3个矢量数据输出至矢量运算单元的对应接口;所述矢量运算单元中设有4个并行的乘累加单元,用于完成FFT运算中的各级蝶形运算;所述地址产生单元用以产生每一级FFT蝶形运算中输入数据、输出数据以及旋转因子的地址;所述数据存储单元用以根据地址产生单元产生的地址,将数据存储器内的数据读取至矢量寄存器单元,或根据地址产生单元产生的地址,将矢量寄存器单元输出的数据写入数据存储器;所述数据存储器用以存储需要进行FFT蝶形运算的数据,以及FFT蝶形运算产生的数据。进一步的,本专利技术系统中,所述的矢量运算单元中包括4个并行的乘累加单元,每个乘累加单元由顺序串联的乘法器、取反器和加法器构成;第一乘累加单元中的乘法器输出端通过取反器后连接至第三乘累加单元中的加法器输入端,第二乘累加单元中的乘法器输出端通过取反器后连接至第四乘累加单元中的加法器输入端,第三乘累加单元中的乘法器输出端通过取反器后连接至第一乘累加单元中的加法器输入端,第四乘累加单元中的乘法器输出端连接第二乘累加单元中的加法器输入端。进一步的,本专利技术系统中,所述的数据交换网络用以对即将进行FFT蝶形运算的旋转因子{I(w),R(w)}、蝶形运算的第一个数据{I(x1),R(x1)}、蝶形运算的第二个数据{I(x2),R(x2)}的实部与虚部按照矢量运算单元的要求进行交换,得到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依次送至第一至第四乘累加单元的乘法器的第二数据接口。进一步的,本专利技术系统中,所述的矢量寄存器单元由8个一级矢量寄存器组成,每个一级矢量寄存器分别由2个二级寄存器组成,每个二级寄存器分别由2个三级寄存器组成。针对32位FFT运算,所述的三级寄存器为16bit,所述的二级寄存器为32bit,所述的一级矢量寄存器为64bit。其次,为实现上述目的,还提出一种矢量处理器实现FFT运算的数据交换方法,其特征在于,数据交换步骤如下:第1步,根据数据读取指令读入存储器地址指针所对应的旋转因子{I(w),R(w)}、蝶形运算的第一个数据{I(x1),R(x1)}和蝶形运算的第二个数据{I(x2),R(x2)};第2步,通过数据交换网络将读入的旋转因子{I(w),R(w)}、蝶形运算的第一个数据{I(x1),R(x1)}、蝶形运算的第二个数据{I(x2),R(x2)}按照加法矢量数据{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}四个元素组成;第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)}中的四个元素。同时,为实现上述目的,经过上述方法完成数据交换后的数据需要按照如下的矢量运算单元实现蝶形运算的方法完成蝶形运算,其具体步骤为:第一步,在矢量运算单元的四个乘累加单元中分别将第一乘法矢量数据中的第一至第四个元素和第二乘法矢量数据中的第一至第四个元素分别进行乘法运算,分别得到第一乘法器结果R(x2)*R(w),第二乘法器结果R(x2)*I(w),第三乘法器结果I(x2)*I(w)和第四乘法器结果I(x2)*R(w);第二步,将加法矢量数据中的第一至第四个元素按顺序分别输入4个加法器,与第一至第四乘法器结果进行加法运算,分别得到第一乘累加运算结果R(x1+x2×w)=R(x1)+R(x2)*R(w)-I(x2)*I(w);第二乘累加运算结果I(x1+x2×w)=I(x1)+R(x2)*I(w)+I(x2)*R(w);第三乘累加运算结果R(x1-x2×w)=R(x1)+I(x2)*I(w)-R(x2)*本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201611021245.html" title="矢量处理器实现FFT的系统及其数据交换、地址生成方法原文来自X技术">矢量处理器实现FFT的系统及其数据交换、地址生成方法</a>

【技术保护点】
一种矢量处理器实现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

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1