一种可分解数据的读写调度处理方法和装置制造方法及图纸

技术编号:30641604 阅读:18 留言:0更新日期:2021-11-04 00:39
本发明专利技术公开了通讯系统领域的一种可分解数据的读写调度处理方法和装置,旨在解决现有技术中快速傅立叶变换计算过程中数据吞吐率较低的问题。一种可分解数据的读写调度处理方法,包括:将输入的数据和buffer中存放的数据组成一组,并输入叠形运算单元进行叠形运算;将经过叠形运算单元运算输出的部分数据输送至下一级,并将剩余数据重新存放到buffer中与输入的新数据进行组合进行下一轮叠形运算。本发明专利技术提高了快速傅立叶变换计算过程中数据的吞吐率,且通用于多种fftSize,在相同的主频下处理速度更快,另外在主频受限的场景下实现并行计算,有效提高计算速度,有效支持NR系统的高数据吞吐率的需求,也有助于降低对主频的需求,从而有助于降低功耗。从而有助于降低功耗。从而有助于降低功耗。

【技术实现步骤摘要】
一种可分解数据的读写调度处理方法和装置


[0001]本专利技术涉及一种可分解数据的读写调度处理方法和装置,属于通讯系统


技术介绍

[0002]FFT是一种DFT的高效算法,称为快速傅立叶变换(fast Fourier transform),广泛应用于各种数字信号处理系统,例如分析信号频谱特性,5G无线通信系统中的transform precoding,OFDMmudulation,PRACH波形生成,以及接收端都会用到。它每次输入N个数,变换输出N个数,这里的N被称为FFT的点数,也记为fftSize。例如5G系统需要支持所有N=12*RBnum的FFT,其中0<RB<=273,在PRACH模块甚至可能用到高达N=48*4096的FFT。
[0003]5G系统需要支持很高的数据吞吐率,所以FFT模块的吞吐率是一个重要的设计指标。在平台主频受限的情况下,需要通过并行计算或者pipeline的方式来提高吞吐率,但现有技术中快速傅立叶变换计算过程中数据吞吐率较低,为此,我们提出一种可分解数据的读写调度处理方法和装置。

技术实现思路

[0004]本专利技术的目的在于克服现有技术中的不足,提供一种可分解数据的读写调度处理方法和装置,解决现有技术中快速傅立叶变换计算过程中数据吞吐率较低的技术问题。
[0005]为达到上述目的,本专利技术是采用下述技术方案实现的:
[0006]第一方面,本专利技术提供了一种可分解数据的读写调度处理方法,包括:
[0007]将输入的数据和buffer中存放的数据组成一组,并输入叠形运算单元进行叠形运算;
[0008]将经过叠形运算单元运算输出的部分数据输送至下一级,并将剩余数据重新存放到buffer中与输入的新数据进行组合进行下一轮叠形运算;
[0009]其中,buffer为暂存每一级数据的装置。
[0010]进一步的,若buffer中叠形运算的输出数据存放至指定数量,则叠形运算单元暂停运算;否则叠形运算单元持续进行运算操作。
[0011]进一步的,所述叠形运算单元包括radix2、radix4、radix8、radix3和radix5。
[0012]第二方面,本专利技术提供了一种可分解数据的快速傅立叶变换计算方法,包括:将数据输入buffer,采用如权利要求1

3中任一所述的可分解数据的读写调度处理方法对buffer中的数据进行处理,并对经过处理的数据进行快速傅立叶变换计算。
[0013]第三方面,本专利技术提供了一种可分解数据的读写调度处理装置,包括处理器及存储介质;
[0014]所述存储介质用于存储指令;
[0015]所述处理器用于根据所述指令进行操作以执行根据权利要求1~3中任一项所述方法的步骤。
[0016]第四方面,本专利技术提供了一种计算机可读存储介质,其上存储有计算机程序,其特征是,该程序被处理器执行时实现权利要求1~4中任一项所述方法的步骤。
[0017]与现有技术相比,本专利技术所达到的有益效果:
[0018]本专利技术通过提供一种可分解数据的读写调度处理方法,提高了快速傅立叶变换计算过程中数据的吞吐率,且通用于多种fftSize N,在相同的主频下处理速度更快,另外在主频受限的场景下实现并行计算,有效提高计算速度,有效支持NR系统的高数据吞吐率的需求,也有助于降低对主频的需求,从而有助于降低功耗。
附图说明
[0019]图1是本专利技术实施例一提供的数据读写调度示意图之一;
[0020]图2是本专利技术实施例一提供的数据读写调度示意图之二。
具体实施方式
[0021]Cooley

Turkey算法作为一种FFT算法,它通过把一个很大N值的FFT分解为几级较短的FFT的组合,例如对于N=N1N2,则通过Cooley

Turkey算法可以分解为:
[0022][0023]其中,0≤n1≤N1‑
1;0≤n2≤N2‑
1;n=N2n1+n2;k=N1k2+k1[0024]类似的,假如N=N1N2N3,则通过Cooley

Turkey算法可以分解为:
[0025][0026]其中是旋转因子,通常在硬件实现中都是离线预先产生并且预先存储。
[0027]本专利技术通过给出一种统一的pipeline调度算法,包括配套的各级buffer分配方法和可以处理各级radix(蝶形计算)模块delay的buffer读写调度方法,可以适用于radix2/4/8/3/5的组合,支持目前NR系统的各种FFT/FFT的pipeline实现。
[0028]下面结合附图对本专利技术作进一步描述。以下实施例仅用于更加清楚地说明本专利技术的技术方案,而不能以此来限制本专利技术的保护范围。
[0029]实施例一:
[0030]一种可分解数据的读写调度处理方法,包括:
[0031]将输入的数据和buffer中存放的数据组成一组,并输入叠形运算单元进行叠形运算,所述叠形运算单元包括多种基本的单元,例如radix2、radix4、radix8、radix3和radix5;经过指定延迟后的叠形运算单元输出一组数据,将经过叠形运算单元运算输出的部分数据输送至下一级,并将剩余数据重新存放到buffer中与输入的新数据进行组合进行下一轮叠形运算。需要说明的是,若buffer中叠形运算的输出数据存放至指定数量,则叠形运算单元暂停运算;否则叠形运算单元持续进行运算操作。系统按照上述步骤持续平稳运行。其中,buffer为暂存每一级数据的装置,这种方法也同样可以适用于其他基本蝶形运算
单元的组合。
[0032]例如,在Cooley

Turkey算法的各级,分别分配的buffer容量为(D2

1)*D3+d配套的具体读写调度方法请结合参阅图1:
[0033]ifcnt<(D2

1)D3,x0~x11,这(D2

1)D3个数据会进入buffer(先读出y之后再写入x),不启动radix;
[0034]elseifcnt>=(D2

1)D3,从原有的buffer抽D2

1个数据(间隔D3),与新到的数据一起做D2点radix;
[0035]cnt>=(D2

1)D3期间新来的D3个x数据不会进入buffer,每clk更新p=mod(p+1,D2D3),其中p是用于控制内部状态的一个变量;
[0036]过了d个clk,radix done,输出N个数y[0~N

1],其中y[0]直接传给下一级,y[1~N

1]重新存入buffer,此时cnt=14>=M,存放的起始地址idc0=cnt
...

【技术保护点】

【技术特征摘要】
1.一种可分解数据的读写调度处理方法,其特征是,包括:将输入的数据和buffer中存放的数据组成一组,并输入叠形运算单元进行叠形运算;将经过叠形运算单元运算输出的部分数据输送至下一级,并将剩余数据重新存放到buffer中与输入的新数据进行组合进行下一轮叠形运算;其中,buffer为暂存每一级数据的装置。2.根据权利要求1所述的可分解数据的读写调度处理方法,其特征是,若buffer中叠形运算的输出数据存放至指定数量,则叠形运算单元暂停运算;否则叠形运算单元持续进行运算操作。3.根据权利要求1所述的可分解数据的读写调度处理方法,其特征是,所述叠形运算单元包括radix2、radix4、ra...

【专利技术属性】
技术研发人员:黄勇富
申请(专利权)人:星思连接上海半导体有限公司
类型:发明
国别省市:

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

1