[发明专利]向量处理器中基于SIMD的并行FFT/IFFT蝶形运算方法及装置有效
申请号: | 201410014700.6 | 申请日: | 2014-01-13 |
公开(公告)号: | CN103699516B | 公开(公告)日: | 2017-02-15 |
发明(设计)人: | 刘衡竹;陈艇;张剑锋;张波涛;刘冬培;周理;吴铁彬 | 申请(专利权)人: | 中国人民解放军国防科学技术大学 |
主分类号: | G06F17/14 | 分类号: | G06F17/14;G06F9/38 |
代理公司: | 湖南兆弘专利事务所(普通合伙)43008 | 代理人: | 周长清 |
地址: | 410073 湖南省长沙市砚瓦池正街47号中国*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 向量 处理器 基于 simd 并行 fft ifft 蝶形 运算 方法 装置 | ||
技术领域
本发明涉及数字信号处理以及向量处理器领域,尤其涉及一种向量处理器中基于SIMD的并行FFT/IFFT蝶形运算方法及装置。
背景技术
FFT(Fast Fourier Transformation,快速傅里叶变换),是离散傅里叶变换(Discrete Fourier Transformation,DFT)的快速实现算法。现代无线通信和数字信号处理等应用领域中需要进行大量的FFT和IFFT(inverse fast Fourier Transformation,快速反傅立叶变换)运算,比如在4G通信中的OFDM调制和解调、MIMO的信道估计以及信号处理中的频谱分析等。FFT可以将一个时域信号转换成对应的频域信号,与此相反,IFFT则可以把一个频域信号转换成相应的时域信号,因此FFT/IFFT通常用于数字信号的频谱分析、信号的调制与解调等应用中。普通离散傅立叶变换要求的计算量比较大,例如一个N点的复数列进行DFT运算分别需要进行N*N次复数乘法和N*N次复数加法,当N比较大时,处理器可能因为运算量过大而无法满足实时性要求。FFT/IFFT是DFT/IDFT的一种快速实现方式,能够大大降低了运算复杂度,其输入数据点数N必须是2的整数次幂。
如图1所示,一个基-2蝶形运算单元运算流程,包括两个输入和两个输出,其中一个输入与旋转因子相乘之后再与另外一个输入数据做加和减操作,即一个蝶形运算单元包括一个复数乘法、一个复数加法和一个复数减法操作。一个N=2n点基-2的FFT算法结构由n级基-2蝶形运算组成,级间的数据需要经过一定方式的混洗排序之后才能输入到下一级进行运算。每一级有N/2个基-2蝶形运算单元,而每个基-2蝶形运算单元需要一个的复数乘法和两个的复数加法运算,因此总的运算量大大地减少了。
FFT/IFFT算法是一种数据密集型算法,并且数据处理具有较大的并行性,一个N点基-2FFT算法的每一级都有N/2个可并行执行的基-2蝶形运算和N/2个可并行执行的复数乘法,因此面向FFT/IFFT应用的向量处理器通常采用SIMD(Single Instruction Multiple Data,单指令流多数据流)和VLIW(Very Long Instruction Word,超长指令字)体系结构,通过设置向量运算指令、向量寄存器文件、向量处理阵列以及向量数据加载单元来开发数据和指令的并行性,加快数据处理的速度。向量处理器主要包括一个标量单元和一个向量单元。标量单元主要完成取指、指令译码、指令派发、标量运算、程序流的控制以及向量单元的控制寄存器的配置工作。向量单元一般至少有一个向量存储器,一个向量数据加载单元和一个向量数据处理单元组成,其均工作在SIMD模式下。向量处理器执行向量操作时,其指令译码部件完成指令译码,并将执行何种指令操作、原操作数位置、以及目的操作数位置等译码结果发送到向量寄存器文件和向量数据处理部件。原操作数从向量寄存器文件读出并送往向量数据处理部件中进行运算,运算结果被写入由译码结果指定的目的向量寄存器文件当中,需要时,向量寄存器文件中的向量数据可以通过向量数据加载指令和向量数据加载单元访问片内向量储存器。单条向量指令可以同时触发向量单元对多个向量数据同时进行运算。
如图2所示,SIMD向量处理器结构,主要包括一个标量单元和一个向量单元,标量单元主要完成取指、指令译码、指令派发、标量运算、程序流的控制以及向量单元的控制寄存器的配置工作。向量单元一般由至少一个向量储存器、一个向量数据加载单元和至少一个向量数据处理单元构成,其中向量数据处理单元一般包含向量复数乘法单元和向量复数加法单元等,且均工作在SIMD模式下。向量处理器执行向量操作时,其指令译码部件完成指令译码,并将执行何种指令操作、原操作数位置、以及目的操作数位置等译码结果发送到向量寄存器文件和向量处理部件。原操作数从向量寄存器文件读出并送往向量处理部件中进行运算,运算结果被写入由译码结果指定的目的向量寄存器当中。需要时,向量寄存器文件中的向量数据可以通过向量数据加载指令和向量数据加载单元访问片内向量储存器。向量存储器(Vector memory,VM)一般分成多个存储体实现向量数据的读写,向量数据加载单元一般包含一个数据混洗网络,实现数据加载时的初始数据排列与对齐操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410014700.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:防堵塞水套炉炉头
- 下一篇:分体式射频同轴转接器