一种低存储器开销的混合基fft处理器及其方法

文档序号:6554844阅读:213来源:国知局
专利名称:一种低存储器开销的混合基fft处理器及其方法
技术领域
本发明涉及无线通讯、数字信号处理技术领域,特别是一种通用的操作数无冲突生成的低存储器开销的混合基FFT处理器及其方法。
背景技术
在OFDM(正交频分复用)载波调制解调、数字信号处理应用中,混合基FFT(Fast Fourier Transformation)具有重要的作用。直接采用基-2FFT算法,则需要的运算级数较多,为保证数据处理的吞吐率,需要对功能模块采用倍频,这不利于低功耗设计。而对于基-4等固定基FFT算法,只能处理16点、64点、256点等4n(n=1,2,3,......)点FFT,无法处理32点、128点、512点、2048点、8192点FFT,而这些点数的FFT目前在OFDM,数字信号处理中普遍应用,同时,为保证FFT处理的点数具有灵活性,采用混合基FFT具有重要意义。
操作数1965年,Cooley-Tukey两位学者提出了FFT算法,顺序输入FFT处理器的数据经抽取后,输入蝶算单元进行复数乘法、累加,本说明书将输入蝶算单元的数据称为操作数。
存储器开销指处理器内部使用的SRAM存储器的字节数。
存储器交织架构以及操作数无冲突生成输入FFT处理器的数据均存储在SRAM存储器中,一个SRAM存储器(一种全同步、全静态的随机访问存储器)可以由多个存储体构成,存储器对应页面地址,存储体对应块地址,每个存储体内的地址称为点地址(对于基-8FFT处理器,一个存储器划分为8个存储体),通过以上划分方法,得到存储器交织架构,增大了存储器的带宽,即在一个时钟周期可以并行读取(或存储)多个操作数,如果不进行存储器交织,一个时钟周期只能并行读取(或存储)一个操作数。

发明内容
这里提出了一种针对基-4/2混合基FFT的蝶算操作数地址无冲突生成算法,并将其映射成为硬件结构,即寄存器相应位聚集、倒序,寄存器通过模4加法器进行译码。
前一帧的输出序列和后一帧的输入序列的地址完全相同,可以输入、输出、FFT运算同时进行,节省存储器开销。
这里提出的操作数地址无冲突生成算法适合任意基的组合。
一种通用的操作数无冲突生成的低存储器开销的混合基FFT处理器。包括无冲突地址生成算法及相应硬件(模加器),低存储器开销的实现算法、相应硬件,即3个实例化的n位寄存器,通过相应的位聚集成整体进行倒序、译码,并将存储器划分为若干存储体(具体划分数目按照实际情况确定),实现操作数并行访问,输入输出共享存储器。完成并行操作数访问、输入输出同时进行的FFT运算,可以有效减小FFT处理器中存储器的开销。
一种操作数无冲突生成的低存储器开销的混合基FFT处理器,包括针对混合基FFT的奇数帧输入,这些时域点的块地址、点地址经相应的原始输入寄存器地址译码,蝶算单元所需的操作数分散在不同的存储体中,因此能够并行访问操作数,FFT原位运算后,相应地址存储频域点的数据,频域点输出顺序按照原始输入寄存器倒序后产生,对于紧接着的偶数帧时域点输入,这些时域点的块地址、点地址经特定倒序后的输入寄存器地址译码产生,具有相同顺序的时域点与上一帧FFT运算后的频域点的块地址、点地址完全相同,因此可以共享同一存储器,以上过程反复进行,FFT运算存储器和输入输出共享存储器按帧进行轮换。
所述的操作数无冲突生成的低存储器开销的混合基FFT处理器,偶数帧的时域点的输入寄存器的倒序与奇数帧的倒序方式互为镜向,即如果奇数帧的倒序方式中输入寄存器中位的聚集方式为2,2,1,则偶数帧的倒序方式中输入寄存器中位的聚集方式为1,2,2,对于别的混合基组合,聚集的位数相应调整,但仍然满足互为镜向的关系。


图1是操作数并行生成基-4/2混合基连续流FFT信号流图。
图2是通用的奇数帧、偶数帧输出频域点倒序二进制映射图。
图3是Original Input Order 1寄存器译码图。
图4是输入序列2的二进制倒序映射图。
图5是输入序列2的块地址和点地址译码示意图。
图6是混合基FFT处理器内部硬件结构及工作步骤图。
图7是低存储器开销的混合基FFT处理器的工作方法流程图。
具体实施例方式
这里以基-4/2混合基32点FFT数据流图说明具体实施方式
,这里的算法推导、硬件映射也适合其他的混合基高点数FFT算法。相应的硬件架构采用两块RAM,分别是I/O存储器、运算存储器,输出序列1和输入序列2共享同一I/O存储器,每个输入序列定义为一帧。不失一般性,输入序列1代表奇数帧,输入序列2代表偶数帧。I/O存储器和运算存储器按帧轮换,FFT运算连续进行。输出序列1和输出序列2的频域点顺序均由原始的Input Order寄存器生成,两者完全一样。Original Input Order1,Input Order1,Input Order 2,Reversed Input Order2均为位长为n位的累加计数寄存器,其中n为奇数,在具体电路映射中,Original Input Order1和Input Order1为同一个实例化的寄存器,Input Order2为一个实例化的寄存器,Reversed Input Order2为一个实例化的寄存器,即这里实例化了3个n位寄存器。
图1是操作数并行生成基-4/2混合基连续流FFT信号流,输入序列1,输入序列2代表时域的第1帧、第2帧数据输入,输出序列1,输出序列2代表频域的数据输出。以输入序列1的第6点为例,它对应的块地址、点地址分别为3,6,如图1中下划线所示,经过FFT运算后,输出序列1的第12点原位存储在块地址3、点地址6对应的存储单元。当输入序列2输入时,按照本说明书提出的方法,输入序列12的块地址、点地址恰好分别为3,6,因此,可以在读出输出序列1的第12点后,紧接着在下一时钟周期上升沿写入输入序列2的第12点,即输入输出可以共享同一存储器,这是常规存储器寻址设计方法无法获得的。
图2为通用的奇数帧、偶数帧输出频域点倒序二进制映射图,奇数帧对应输入序列1,偶数帧对应输入序列2,将序列称为帧,也是与图像处理、通信中的概念保持一致。以上奇数帧、偶数帧FFT运算完毕,在输出的时候,地址均按照图2与图3生成。
LSB1位倒序操作至MSB1位,而MSB2位聚集为一整体,倒序操作至LSB2位。上面的倒序也可以表示如下b[n-1]b[n-2]b[n-3]b[n-4]…b[2]b[1]b
b
b[2]b[1]…b[n-3]b[n-4]b[n-1]b[n-2](1)输入序列1的块地址和点地址由原始的Input Order寄存器译码产生,如图3所示。其地址产生方式也可以表示为Bank={b[n-1]b[n-2]}{b[n-3]b[n-4]}…{b[4]b[3]}{b[2]b[1]}{b
}Address=b[n-3]b[n-4]…b[4]b[3]b[2]b[1]b
(2)其中表示模-4加法器。
当输入序列2开始写入I/O存储器时,其二进制地址倒序如图4所示,与图2不同的是,LSB2位聚集为一个整体,倒序操作至MSB2位;MSB1位倒序操作至LSB1位。上面的倒序方式也可以表示为b[n-1]b[n-2]b[n-3]…b[3]b[2]b[1]b
b[1]b
b[3]b[2]…b[n-2]b[n-3]b[n-1](3)输入序列2的块地址、点地址由按照(3)倒序后的寄存器生成,如图5所示。地址生成方式也可表示如下Bank={b[1]b
}{b[3]b[2]}…{b[n-4]b[n-5]}{b[n-2]b[n-3]}{b[n-1]}Address=b[3]b[2]…b[n-4]b[n-5]b[n-2]b[n-3]b[n-1](4)对于输入序列1,若其中某点的二进制地址为b[n-1]b[n-2]b[n-3]…b[3]b[2]b[1]b
它的块地址、点地址由(2)产生,在原位FFT运算之后,根据(1),相同块低址、点地址存储的输出序列1中的频域点的二进制地址为
b
b[2]b[1]…b[n-3]b[n-4]b[n-1]b[n-2](5)输入序列2中,对于具有b
b[2]b[1]…b[n-3]b[n-4]b[n-1]b[n-2]输入寄存器取值的时域点,根据(3),它的倒序后的地址为b[n-1]b[n-2]b[n-3]b[n-4]…b[2]b[1]b
,它的块地址、点地址由(4)产生Bank={b[n-1]b[n-2]}{b[n-3]b[n-4]}…{b[4]b[3]}{b[2]b[1]}{b
}Address=b[n-3]b[n-4]…b[4]b[3]b[2]b[1]b
(6)可见(6)与(2)完全相同,因此,输出序列1中的b
b[2]b[1]…b[n-3]b[n-4]b[n-1]b[n-2]频域点,与输入序列2中的b
b[2]b[1]…b[n-3]b[n-4]b[n-1]b[n-2]时域点具有相同的块地址、点地址,因此,输入输出可以同时发生,并且共享同一存储器。I/O存储器和运算存储器按帧进行轮换,即可保持FFT连续输入、输出、计算。
现以一个具体例子进行说明,如图1中的宽体线和箭头所示,输入序列1的第7个点,二进制地址为00110,根据(2),相应的块地址、点地址是3,6。FFT原位运算后,根据(1),该地址存储输出序列1的第13个点。
对于输入序列2的第13个点,二进制地址为01100,根据(3)、(4),它的块地址、点地址也是3,6,因此输入序列2与输出序列1可以共享同一存储器。
在输入序列2中,蝶式计算单元并行计算所需要的4个输入数据存储在不同的存储体中,即具有不同的块地址,比如,输入序列2的第3,11,19,27点的块地址分别是2,0,3,1,如图1中虚线矩形框所示。当I/O共享存储器用作FFT运算存储器时,即可无冲突的访问4个存储体。
上述方法可以推广至任意基组合的混合基FFT算法,比如基-8/2,基-16/2,基-16/4等等,相应调整聚集成一个整体的位数。比如对于混合基-16/2,则相应4位聚集成一个整体对应基-16,单独的1位作为一个整体对应基-2,模加器的长度相应为4位。
图3是Original Input Order 1寄存器译码图。Original Input Order 1寄存器是奇数帧的顺序计数寄存器,按照图3译码生成每个输入数据对应的块地址、点地址。
图4是输入序列2的二进制倒序映射图。与图2显著不同的是,最低的两位聚集在一起倒序至最高两位。
图5是输入序列2的块地址和点地址译码示意图。输入序列2进行译码后,可以与输出序列1共享同一存储器,当输入序列2完成后,输入序列2开始FFT运算时,输入序列2又将按照图2与图3进行地址译码。
以上过程反复进行,同时运算RAM与I/O共享RAM按帧轮换,即可保证输入数据连续,输出数据连续。
图6是混合基FFT处理器内部硬件结构及工作步骤,其功能模块,数据通路与固定基FFT处理器类似,但是在操作数地址发生上,具有显著的不同。
低存储器开销的混合基FFT处理器由控制逻辑部件1、运算RAM存储器2、网络3、蝶算单元4、旋转因子复数成法单元5、旋转因子ROM6、I/O共享RAM存储器7组成,控制逻辑部件1控制运算RAM存储器2、蝶算单元4、旋转因子ROM6以及I/O共享RAM存储器7。运算RAM存储器2通过网络3连接于蝶算单元4和旋转因子复数成法单元5。旋转因子复数成法单元5连接于旋转因子ROM6。
控制逻辑部件1主要包括特殊功能寄存器堆,包括用于存储器轮换的计数器以及轮换标志位生成逻辑,用于并行读取操作数寻址的循环移位寄存器以及译码逻辑,用于输入、输出的地址寄存器以及译码逻辑,控制逻辑部件1采用VerilogHDL语言描述,并采用电子辅助设计软件综合生成网表(含逻辑门和连线)。
蝶算单元4进行操作数的复数乘法、累加运算,采用的基-8 FFT运算矩阵。矩阵运算的复数乘法完全采用移位、累加完成,也由VerilogHDL语言描述,并采用电子辅助设计软件综合生成网表(含逻辑门和连线)。
RAM存储器为芯片代工厂商提供的全静态、全同步的SRAM硬核,由Memory Compiler电子辅助设计工具生成,作为现成的硬核嵌入到FFT处理器芯片中。
图7是低存储器开销的混合基FFT处理器的工作方法流程,其步骤如下一种操作数无冲突生成的低存储器开销的混合基FFT处理器的工作方法,其步骤如下步骤1,FFT处理器初始化完成,进入工作状态,当第一帧时域(奇数帧)数据输入时,按照大端译码模式生成块地址和点地址,输入第一帧时域数据串行写入I/O共享存储器;步骤2,第一帧时域数据写入完成后,I/O存储器轮换成为运算存储器,FFT处理器从写满第一帧时域数据的运算存储器中并行读取操作数;步骤3,运算存储器读出的数据经过对准网络进入蝶算单元;步骤4,蝶算单元处理后的数据进入复数乘法单元;步骤5,经过复数乘法运算后的数据通过数据对准网络再原位写回运算存储器;步骤6,步骤2到步骤5的过程要反复若干次,直到FFT运算完成,每一次运算从运算存储器中抽取操作数的地址由控制逻辑部件(1)产生;步骤7,在FFT运算的同时,第二帧时域(偶数帧)数据输入I/O存储器;步骤8,第一帧时域数据FFT运算完成后,运算存储器轮换为I/O共享存储器,I/O存储器轮换为运算存储器,此时,开始第二帧时域数据的FFT运算,同时,第一帧频域数据开始输出,第三帧时域数据(奇数帧)数据开始写入,两者共享I/O存储器。
以上过程一直进行下去,运算与输入输出同时进行,从而获得了连续流处理的性能,并且存储器开销得到了减小。
权利要求
1,一种操作数无冲突生成的低存储器开销的混合基FFT处理器,包括针对混合基FFT的奇数帧输入,这些时域点的块地址、点地址经相应的原始输入寄存器地址译码,蝶算单元所需的操作数分散在不同的存储体中,因此能够并行访问操作数,FFT原位运算后,相应地址存储频域点的数据,频域点输出顺序按照原始输入寄存器倒序后产生,对于紧接着的偶数帧时域点输入,这些时域点的块地址、点地址经特定倒序后的输入寄存器地址译码产生,具有相同顺序的时域点与上一帧FFT运算后的频域点的块地址、点地址完全相同,因此可以共享同一存储器,以上过程反复进行,FFT运算存储器和输入输出共享存储器按帧进行轮换。
2,根据权利要求1所述的操作数无冲突生成的低存储器开销的混合基FFT处理器,其特征在于,偶数帧的时域点的输入寄存器的倒序与奇数帧的倒序方式互为镜向,即如果奇数帧的倒序方式中输入寄存器中位的聚集方式为2,2,1,则偶数帧的倒序方式中输入寄存器中位的聚集方式为1,2,2,对于别的混合基组合,聚集的位数相应调整,但仍然满足互为镜向的关系。
3,根据权利要求1所述的操作数无冲突生成的低存储器开销的混合基FFT处理器,其特征在于,低存储器开销的混合基FFT处理器由控制逻辑部件(1)、运算RAM存储器(2)、网络(3)、蝶算单元(4)、旋转因子复数成法单元(5)、旋转因子ROM(6)、I/O共享RAM存储器(7)组成,控制逻辑部件(1)控制运算RAM存储器(2)、蝶算单元(4)、旋转因子ROM(6)以及I/O共享RAM存储器(7),运算RAM存储器(2)通过网络(3)连接于蝶算单元(4)和旋转因子复数成法单元(5),旋转因子复数成法单元(5)连接于旋转因子ROM(6)。
4,一种操作数无冲突生成的低存储器开销的混合基FFT处理器的工作方法,其步骤如下步骤1,FFT处理器初始化完成,进入工作状态,当第一帧时域数据输入时,按照大端译码模式生成块地址和点地址,输入第一帧时域数据串行写入I/O共享存储器;步骤2,第一帧时域数据写入完成后,I/O存储器轮换成为运算存储器,FFT处理器从写满第一帧时域数据的运算存储器中并行读取操作数;步骤3,运算存储器读出的数据经过对准网络进入蝶算单元;步骤4,蝶算单元处理后的数据进入复数乘法单元;步骤5,经过复数乘法运算后的数据通过数据对准网络再原位写回运算存储器;步骤6,步骤2到步骤5的过程要反复若干次,直到FFT运算完成,每一次运算从运算存储器中抽取操作数的地址由控制逻辑部件(1)产生;步骤7,在FFT运算的同时,第二帧时域数据输入I/O存储器;步骤8,第一帧时域数据FFT运算完成后,运算存储器轮换为I/O共享存储器,I/O存储器轮换为运算存储器,此时,开始第二帧时域数据的FFT运算,同时,第一帧频域数据开始输出,第三帧时域数据数据开始写入,两者共享I/O存储器。以上过程一直进行下去,运算与输入输出同时进行,从而获得了连续流处理的性能,并且存储器开销得到了减小。
全文摘要
本发明涉及无线通讯技术领域,特别是一种通用的操作数无冲突生成的低存储器开销的混合基FFT处理器及其方法。由控制逻辑部件(1)、运算RAM存储器(2)、网络(3)、蝶算单元(4)、旋转因子复数成法单元(5)、旋转因子ROM(6)、I/O共享RAM存储器(7)组成,控制逻辑部件(1)控制运算RAM存储器(2)、蝶算单元(4)、旋转因子ROM(6)以及I/O共享RAM存储器(7),运算RAM存储器(2)通过网络(3)连接于蝶算单元(4)和旋转因子复数成法单元(5),旋转因子复数成法单元(5)连接于旋转因子ROM(6)。
文档编号G06F17/14GK101083643SQ200610012049
公开日2007年12月5日 申请日期2006年5月31日 优先权日2006年5月31日
发明者王江, 黑勇, 仇玉林 申请人:中国科学院微电子研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1