一种特定加速器的应用方法、系统和特定加速器

文档序号:36719433发布日期:2024-01-16 12:20阅读:20来源:国知局
一种特定加速器的应用方法、系统和特定加速器

本技术涉及信息,更具体的说,是涉及一种特定加速器的应用方法、系统和特定加速器。


背景技术:

1、快速傅里叶变换(fast fourier transform,fft)作为离散傅里叶变换(discretefourier transform,dft)的快速算法,其依靠计算量小的优势,成为了5g通信中最重要的算法之一,被广泛应用于各种通信技术中。此外,fft还广泛地应用于频谱分析、图像处理、机器学习等领域。随着带宽、传输流和天线数量的增加,fft运算在计算量和延时上所面临的挑战也越来越大,采用软件编程的方式来实现fft运算难以满足物联网通信场景下的高速、高性能和低开销的要求,针对上述场景所面临的问题,fft算法的硬件加速是一种可靠的解决方案。

2、如图1所示的是现有技术中64点基22sdf(single-path delay feedback,单路延时反馈结构)fft加速器硬件实现结构示意图,整个电路由3级sdf运算单元串联而成。其中每级sdf运算单元由蝶形运算单元(bf)101、延时单元d102、乘法单元103和旋转因子存储单元104组成。

3、其中,如图2所示的是sdf运算单元的结构示意图,其中,每个sdf单元包括两个蝶形运算单元bf201、两个延时单元d202、乘法单元m203和旋转因子存储单元t204。其中,两个蝶形运算单元201的区别在于第一级蝶形运算单元输出的数据要经过乘虚部操作才能传输给第二级的输入。延时单元(delay)202主要实现数据的延时,使数据输入满足基22蝶形运算输入格式的要求。乘法单元(multiply)203主要实现蝶形运算的输出数据与旋转因子(twiddle)204的乘法操作。计算流程为:首先数据按顺序输入,输入n/2个数据后第一级蝶形运算单元先将这n/2个数据通过延时单元进行缓存,再与之后输入的n/2个数据一起进行蝶形运算,并将结果传递给下一级蝶形运算单元。第二级蝶形运算单元同样将上一级传递的计算结果进行分组缓存和计算,并将计算结果传递给乘法单元。乘法单元将第二级蝶形运算单元的计算结果与旋转因子进行乘法计算,再将结果传递给下一级sdf运算单元。

4、但是,传统的采用基22sdf结构设计的fft加速器,由于其固有的级联结构,在处理不同点数的fft计算时需要不同的串联级数,灵活度较低,无法满足需要处理多种点数fft计算的场景的需求。


技术实现思路

1、有鉴于此,本技术提供了一种特定加速器的应用方法、系统和特定加速器,如下:

2、一种特定加速器的应用方法,应用于第一处理器,所述第一处理器包含特定加速器,所述方法包括:

3、获得指令信息,所述指令信息是满足精简指令集自定义编码规则的指令;

4、基于所述指令信息得到所需计算的采样点数以及待处理数据;

5、根据所述采样点数在预设特定加速器的延时反馈模块集合中选择至少两个延时反馈模块,以及在旋转因子存储模块中选择目标旋转因子存储单元,所述特定加速器是快速傅里叶变换加速器,所述延时反馈模块集合包括至少六个延时反馈模块,所述旋转因子存储模块中包括至少八个旋转因子存储单元,所述至少八个旋转因子存储单元中的任一个旋转因子存储单元能够与任意延时反馈模块连接;

6、使能所述至少两个延时反馈模块和所述目标旋转因子存储单元得到目标加速器电路;

7、将所述待处理数据输入所述目标加速器电路,得到计算结果。

8、可选的,上述的方法,所述根据所述采样点数在预设特定加速器的延时反馈模块集合中选择至少两个延时反馈模块,包括:

9、确定所述采样点数的计算所需延时反馈模块的串联级数;

10、基于所述延时反馈模块的串联级数在预设特定加速器的延时反馈模块集合选择至少两个目标延时反馈模块,所述目标延时反馈模块包括第一延时反馈模块和/或第二延时反馈模块,所述第一延时反馈模块至少包括两个蝶形运算单元,所述第二延时反馈模块至少包括一个蝶形运算单元。

11、可选的,上述的方法,所述指令信息中还包括源操作数,还包括:

12、基于所述指令信息中的源操作数,在外部存储器的源操作数对应地址读取待处理数据。

13、可选的,上述的方法,所述基于所述指令信息得到所需计算的采样点数,包括:

14、分析所述指令信息,得到所述指令信息第一字段记录的指令编码;

15、基于所述指令编码与采样点数的对应关系,得到所述指令信息对应的采样点数。

16、一种特定加速器,包括:

17、延时反馈模块集合和旋转因子存储模块;

18、其中,所述延时反馈模块集合包括至少六个延时反馈模块,所述至少六个延时反馈模块组合得到至少八种采样点数;

19、其中,所述旋转因子存储模块包括至少八个旋转因子存储单元,所述旋转因子存储模块与延时反馈模块集合连接;所述旋转因子存储模块为所述延时反馈模块提供采样点数相应的旋转因子存储单元。

20、可选的,上述的特定加速器,所述延时反馈模块集合包括:至少五个第一延时反馈模块和一个第二延时反馈模块;

21、其中,所述第一延时反馈模块至少包括两个蝶形运算单元、四个延时单元和乘法单元,第二延时反馈模块至少包括一个蝶形运算单元和一个延时单元,任意两个延时反馈模块中延时单元的延时不同。

22、可选的,上述的特定加速器,所述旋转因子模块包括至少八个旋转因子存储单元,每个旋转因子存储单元与对应的第一延时反馈模块相连。

23、可选的,上述的特定加速器,所述至少五个第一延时反馈模块和第二延时反馈模块依次设置;

24、其中,所述第二延时反馈模块的输出端、所述至少五个第一延时反馈模块中位于末位的目标第一延时反馈模块的输出端分别与所述特定加速器的数据输出端相连;

25、所述特定加速器的数据输入端分别与除了目标第一延时反馈模块的剩余至少四个第一延时反馈模块的输入端相连;

26、所述至少四个第一延时反馈模块、目标第一延时反馈模块与所述第二延时反馈模块依次相连,且所述至少四个第一延时反馈模块中任意两个相邻的第一延时反馈模块之间设置多路选择器,以使得所述至少四个中任一个第一延时反馈模块的输入端能够与前一个第一延时反馈的输出端或者特定加速器的数据输入端相连。

27、一种特定加速器的应用系统,包括:第一处理器和第二处理器;

28、其中,第二处理器接收指令信息,分析得到所述指令信息属于预设自定义信息类型,将所述指令信息发送给第一处理器,所述指令信息是满足精简指令集自定义编码规则的指令;

29、第一处理器读取所述指令信息确定采样点数,基于所述采样点数在预设特定加速器的延时反馈模块集合中选择至少两个延时反馈模块,以及在旋转因子存储模块中选择目标旋转因子存储单元,使能所述至少两个延时反馈模块和所述目标旋转因子存储单元得到目标加速器电路;向第二处理器请求待处理数据;将所述第二处理器反馈的待处理数据输入所述目标加速器电路,得到计算结果;将所述计算结果发送给第二处理器,所述特定加速器是快速傅里叶变换加速器。

30、可选的,上述的系统,所述第一处理器包括:通信模块、解码模块、特定加速器、第一存储器和第二存储器;

31、其中,通信模块接收第二处理器发送的指令信息,解码模块解析所述指令信息,得到所述指令信息第一字段记录的采样点数以及第二字段记录的第一源寄存器信息和第二源寄存器信息,基于所述指令编码能够确定采样点数;所述第一存储器基于第一源寄存器信息向第二处理器请求待处理数据,以使得所述第二处理器从外部存储的第一源寄存器信息对应的存储地址获得所述待处理数据,接收并存储所述待处理数据,将所述待处理数据输入所述特定加速器,所述特定加速器处理所述待处理数据得到计算结果,将所述计算结果写入第二存储器,所述第二存储器基于所述第二源寄存器信息将所述计算结果通过通信模块发送给第二处理器,以使得所述第二处理器基于所述第二源寄存器信息在外部存储中对应的存储地址存储所述计算结果。

32、综上,本技术提供的一种特定加速器的应用方法、系统和特定加速器,该第一处理器包括特定加速器,所述方法包括:获得指令信息,所述指令信息是满足精简指令集自定义编码规则的指令;基于所述指令信息得到所需计算的采样点数以及待处理数据;根据所述采样点数在预设特定加速器的延时反馈模块集合中选择至少两个延时反馈模块,以及在旋转因子存储模块中选择目标旋转因子存储单元,所述特定加速器是快速傅里叶变换加速器,所述延时反馈模块集合包括至少六个延时反馈模块,所述旋转因子存储模块中包括至少八个旋转因子存储单元,所述至少八个旋转因子存储单元中的任一个旋转因子存储单元能够与任意延时反馈模块连接;使能所述至少两个延时反馈模块和所述目标旋转因子存储单元得到目标加速器电路;将所述待处理数据输入所述目标加速器电路,得到计算结果。本实施例中,根据risc-v自定义指令架构,自定义与各种点数fft计算相关指令信息,根据自定义指令信息确定所需计算的采样点数以及待处理数据,根据该fft采样点数在预设fft加速器电路中确定多个sdf模块和相应的目标旋转因子存储单元,基于该确定的多个sdf模块和目标旋转因子存储单元组成的目标加速器电路对于待处理数据进行计算,能够采用自定义指令,可以实现对于指令的扩展,不再限制于有限的几条指令,而且,指令的扩展能够与特定加速器的结构扩展匹配,提高特定加速器的结构形式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1