一种用于多流的数据缓存方法和装置的制作方法

文档序号:6444656阅读:192来源:国知局
专利名称:一种用于多流的数据缓存方法和装置的制作方法
技术领域
本发明涉及FFT/IFFT缓存,尤其涉及一种用于多流的数据缓存方法和装置。
背景技术
快速傅里叶变换(Fast Fourier Transform, FFT)和快速傅里叶逆变换(InverseFast Fourier Transform, IFFT)被广泛地使用在数字信号处理应用中,例如数字通信、雷达系统和图像处理等中。随着并行数据流数量的增加,以及所实现的系统的集成化程度越来越高,由FFT/IFFT相关的超大规模集成电路(Very Large Scale Integrated Circuit, VLSI)实现所占据的硅片面积再也无法被忽视。一个典型的例子是在多输入多输出-正交频分多路复用技术(Mult1-1nput Mult1-Output-Orthogonal Frequency Division Multiplexing,MIM0-0FDM)通信系统中的多流FFT/IFFT应用。为了实现FFT或IFFT的高吞吐量,出现了技术需求以满足更高的数据吞吐量,并且满足成本和面积高效的VLSI设计方法。基于流水线的FFT/IFFT是一种用于高吞吐量应用的优选方式,这是因为它具有最小化硅片面积和最大化处理效率的优点。但是,为了有效地使用这种流水线FFT/IFFT架构,需要持续的输入数据流,并且缓存器必须被用来在FFT/IFFT的输入数据和输出数据之间平衡不同的数据率和数据格式。该缓存器将占用大量的存储器,并且其大小与并行数据流的数量成比例。图1示出了通常使用的、基于乒乓缓存器的多流FFT系统。在基于FFT的多流系统中,同时的并行FFT符号被并-串转换器转换为一串行的、高吞吐量的FFT流,然后被以流水线的方式馈入一个流水线FFT处理器中,如图1所示。为了连续地处理当前流和下一个流,用于偶数流和奇数流的两个缓存器通常被用于以流水线的方式卸载当前的串行流,同时收集并且装载下一并行FFT符号。这种类型的缓存器对通常被称为乒乓缓存器或双缓存器。另一方面,在基于IFFT的多流系统中,也需要乒乓缓存器来卸载当前的并行IFFT符号,同时装载下一串行流。图2示出了通常使用的、基于乒乓缓存器的多流IFFT系统。

发明内容
这里,设计了一种紧凑的、多流FFT/IFFT系统中的FFT/IFFT缓存器,以替代传统的乒乓缓存器或双缓存器。一种新的缓存器寻址机制也被设计,以相比乒乓缓存器节省50%的存储器尺寸。根据本发明的第一方面,提供了一种用于多流的数据缓存方法,其中,读操作和写操作共用同一个缓存,该方法包括:对该缓存进行读操作以清空该缓存的部分地址的内容;将数据写入所述被清空的部分地址中。根据本发明的第二方面,提供了一种用于多流的数据缓存装置,其中,读操作和写操作共用同一个缓存,该装置包括:读装置,用于对该缓存进行读操作以清空该缓存的部分地址的内容;写装置,用于将数据写入所述被清空的部分地址中。
采用本发明的方案,只需要使用一个缓存,因而以相比乒乓缓存器节省50%的存储器尺寸。


通过参照附图阅读以下所作的对非限制性实施例的详细描述,本发明的其它特征、目的和优点将会变得更明显。图1示出了现有技术中基于乒乓缓存的多流FFT系统示意图;图2示出了现有技术中基于乒乓缓存的多流IFFT系统示意图;图3示出了根据本发明的一个具体实施例的多流FFT处理的流程示意图;图4示出了根据本发明的一个具体实施例的多流FFT系统示意图;图5示出了根据本发明的一个具体实施例的多流IFFT系统示意图。图6 (a)-图8 (b)示出了根据本发明的一个具体实施例的4流16点FFT的FFT缓存的不意图。
具体实施例方式通常,存在多个低数据率的FFT/IFFT符号,它们同时被传输用于该多流系统。设多个低速率FFT/IFFT符号的数量为M。不失一般性地,如果使用一个高吞吐量FFT/IFFT处理器,它的采样率需要大于一个并行FFT/IFFT符号的采样率的M倍,从而满足该系统的总采样率需求。这里,可能的开销被排除在外,例如,在一些基于FFT/IFFT的系统,类似基于OFDM调制或解调中,一些数据开销例如循环前缀(Cyclic Prefix, CP)或数据间隙(datagap)被引入到系统中,这些开销不计算在处理器的符号采样率的考虑因素范围内。流水线FFT/IFFT处理器需要连续地逐个符号工作,从而实现最大效率。对于流水线FFT/IFFT处理器,它这样工作:如图4所示,对于FFT系统,从缓存器中串行地卸载符号,并且同时到来的多符号被装入缓存器中。相应地,如图5所示,对于IFFT系统,流水线IFFT处理器工作并且串行地装载符号至缓存器中,并且同时多低速符号被从缓存器中卸载。本发明提出的方案在装载到来的数据时使用同一个缓存器,这是通过重用同时被卸载的可用存储器空间来实现的,也即装载数据(即对缓存进行写操作)与卸载数据(对缓存进行读操作)使用同一个缓存。图3示出了根据本发明的一个具体实施例的FFT缓存的流程图。其中,交替地并行地写入4个流的数据,并且串行地读出数据。以下将描述缓存器实体和相应的寻址控制方式。此外,图6(a)-图8(b)示出了作为缓存四个同时的16点符号FFT处理的例子的几何模型示意图。设并行流的数量被记作M = 2m,FFT符号的采样大小被记作N = 2n,并且每个采样的比特宽度(位宽)被记作B。总的缓存器存储器大小,也即缓存的深度BufferD印th,缓存的宽度BufferWidth和缓存的大小BufferSize分别被表示为:BufferDepth = M.N = 2m+nBufferffidth = B (bits)。BufferSize = 2m+n.B (bits)为了保证同时的写操作和读操作,具有独立的写端口和读端口的缓存器需要被使用在本发明中。
写端口的地址被使用二进制编码形式表示为:Addra = a[m+n_l], a[m+n_2],...,a [O],其中,Aj = aj [n-1],..., aj
被用于寻址 N 个采样,Ak = ak[m_l],..., ak
被用于寻址M个并行流。相应地,读端口的地址被表示为Addrb = b [m+n-1], b [m+n-2],...,b
。寻址方式如下所描述:所提出的流水线FFT/IFFT缓存器寻址控制:阶段1:初始化第一次缓存到来的数据时,使用下列项初始化流O读(read)地址和写(write)地址:write:Addra0 = Aj,Akread:Addrb0 = Addra0阶段2:迭代相比于流1-1中的Aj和Ak,对于流i的数据缓存,在写地址中的Aj和Ak被循环地移位m个比特。循环移位是左移还是右移由FFT或IFFT应用所决定。对于第i个流,该地址被表示为
「0033]
权利要求
1.一种用于多流的数据缓存方法,其中,读操作和写操作共用同一个缓存,该方法包括: 1.对该缓存进行读操作以清空该缓存的部分地址的内容; I1.将数据写入所述被清空的部分地址中。
2.根据权利要求1所述的方法,其中,所述步骤I还包括: -串行地对该缓存进行读操作以清空部分地址的内容; 所述步骤II还包括: -并行地将数据写入所述被清空的部分地址中。
3.根据权利要求1所述的方法,其中,所述方法还包括: 重复所述步骤I和II,直至所述缓存中的所有内容均被清空,或直至重新初始化所述缓存。
4.根据权利要求3所述的方法,其中,所述缓存用于快速傅立叶变换操作或者快速傅立叶逆变换操作,所述重新初始化包括: -当所述快速傅立叶变换操作或者快速傅立叶逆变换操作空闲时,重新初始化所述缓存。
5.根据权利要求1所述的`方法,其中,所述步骤I之前还包括: -判断需要对所述缓存进行读操作或者写操作; -当需要对所述缓存进行读操作时,进行所述步骤I ;或 -当需要对所述缓存进行写操作时,进行所述步骤II。
6.根据权利要求3所述的方法,其中,写入所述缓存的流的数量表示为M= 2m,写入所述缓存的快速傅立叶变换或者快速傅立叶逆变换的采样的数量表示为N = 2n,所述写地址表示为 Addra = a[m+n_l], a[m+n_2],..., a [O],其中,Aj = aj [n_l],..., aj
表示 N个采样,Ak = ak [m-1],..., ak
表示M个流,读出所述缓存的地址表示为Addrb = b[m+n_l],b [m+n-2],..., b [O],所述步骤I之前还包括: -对于流O,分别初始化所述写地址为Addraci = Aj, Ak,并初始化读地址为Addrbtl =Addra00
7.根据权利要求6所述的方法,其中,重复所述步骤I和所述步骤II还包括: -对于流i,对于写操作,对地址Addrap1循环移位m位,以获得写地址Addrai,以及对于读操作,获得读地址Addrbi = Addrain
8.根据权利要求7所述的方法,其中,所述循环移位m位的操作还包括: -当所述缓存进行快速傅立叶变换时,对地址Addrap1向左循环移位m位,以获得Addrai ; -当所述缓存进行快速傅立叶逆变换时,对地址Addrap1向右循环移位m位,以获得Addrai0
9.一种用于多流的数据缓存装置,其中,读操作和写操作共用同一个缓存,该装置包括: 读装置,用于对该缓存进行读操作以清空该缓存的部分地址的内容; 写装置,用于将数据写入所述被清空的部分地址中。
10.根据权利要求9所述的装置,其中,所述读装置还用于:-串行地对该缓存进行读操作以清空部分地址的内容; 所述写装置还用于: -并行地将数据写入所述被清空的部分地址中。
11.根据权利要求9所述的装置,还包括: 所述读装置和所述写装置重复执行各自的步骤,直至所述缓存中的所有内容均被清空,或直至重新初始化所述缓存。
12.根据权利要求11所述的装置,其中,所述缓存用于快速傅立叶变换操作或者快速傅立叶逆变换操作,还包括初始化装置,用于: -当所述快速傅立叶变换操作或者快速傅立叶逆变换操作空闲时,重新初始化所述缓存。
13.根据权利要求9所述的装置,其中,还包括控制装置: -判断需要对所述缓存进行读操作或者写操作; -当需要对所述缓存进行读操作时,控制所述读装置执行其操作;或 -当需要对所述缓存 进行写操作时,控制所述写装置进行其操作。
14.根据权利要求11所述的装置,其中,写入所述缓存的流的数量表示为M= 2m,写入所述缓存的快速傅立叶变换或者快速傅立叶逆变换的采样的数量表示为N = 2n,所述写地址表示为 Addra = a[m+n_l],a[m+n_2],..., a
,其中,Aj = aj [n_l],…,aj
表示N个采样,Ak = ak[m-l],..., ak
表示M个流,读出所述缓存的地址表示为Addrb =b[m+n-1], b[m+n-2],..., b
,所述初始化装置还用于: -对于流0,分别初始化所述写地址为Addraci = Aj, Ak,并初始化读地址为Addrbtl =Addra0 ; 所述读装置和所述写装置还有用于: 对于流i,所述写装置对地址Addrap1循环移位m位,以获得写地址Addrai,以及所述读装置获得读地址Addrbi = Addraic
15.根据权利要求14所述的装置,其中,所述循环移位m位的操作还包括: -当所述缓存进行快速傅立叶变换时,对地址Addrap1向左循环移位m位,以获得Addrai ; -当所述缓存进行快速傅立叶逆变换时,对地址Addrap1向右循环移位m位,以获得Addrai0
全文摘要
本发明提出一种用于多流的数据缓存方法和装置。在该方法中,读操作和写操作共用同一个缓存,该方法包括对该缓存进行读操作以清空该缓存的部分地址的内容;将数据写入所述被清空的部分地址中。采用本发明的方案,只需要使用一个缓存,因而以相比乒乓缓存器节省50%的存储器尺寸。
文档编号G06F12/08GK103186476SQ20111045714
公开日2013年7月3日 申请日期2011年12月30日 优先权日2011年12月30日
发明者王亮, 吕晓军, 王俊, 魏鑫 申请人:上海贝尔股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1