首页> 中国专利> 一种可重构DBF算法硬件加速器及控制方法

一种可重构DBF算法硬件加速器及控制方法

摘要

本发明涉及可重构DBF算法硬件加速器及控制方法,所述加速器包括重构控制模块,接收上位机发出的DBF算法信息数据,并根据DBF算法信息决定是否发出重构控制信号;数据存储模块,用于完成对DBF算法信息数据的写入,存储和读出;DBF运算模块,从数据存储模块读取数据,完成DBF算法的运算并输出相应结果。有益效果为:解决了专用DBF处理器通用性差和通用处理器计算DBF速度慢的矛盾,可重构架构可以提升算法的灵活性,并且实现了源数据的全流水输出,提高了算法的运算效率和实时性。

著录项

  • 公开/公告号CN105955896A

    专利类型发明专利

  • 公开/公告日2016-09-21

    原文格式PDF

  • 申请/专利权人 南京大学;

    申请/专利号CN201610272042.X

  • 申请日2016-04-27

  • 分类号

  • 代理机构南京汇盛专利商标事务所(普通合伙);

  • 代理人陈扬

  • 地址 210023 江苏省南京市栖霞区仙林大道163号电子学院

  • 入库时间 2023-06-19 00:30:14

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-09-20

    授权

    授权

  • 2016-10-19

    实质审查的生效 IPC(主分类):G06F13/16 申请日:20160427

    实质审查的生效

  • 2016-09-21

    公开

    公开

说明书

技术领域

本发明涉及基于固定资源的DBF算法处理单元及其硬件实现,尤其涉及一种可重构的DBF算法的硬件架构。

背景技术

数字信号处理技术不仅广泛应用于多媒体、数据通信、雷达成像、地质探测、航空航天等工程技术领域,近年来又成为人工智能、模式识别、神经网络等新兴学科的理论基础之一,涉及范围非常广泛。而随着随着半导体工艺技术不断提高、DSP器件的飞速发展,为大批量数据的实时处理提供了可能。而对于实时性要求很高的雷达成像等诸多领域,采用普遍的解决方案——即用DSP进行信号运算,会大大受限于吞吐率,远远达不到快速处理的实时性要求。而单纯依靠提升处理部件的主频和存储部件的通信带宽,解决不了核心问题,设计架构才是瓶颈所在。

此外,由于专用集成电路的成本随着工艺尺寸的缩小越来越高,追求快速处理速度和高性能的同时,成本因素也被考虑的越来越多。所以,可重构架构的研究逐渐热门,该方法试图在高性能和通用性之间寻找一个平衡点,来满足均衡的需求。

发明内容

本发明目的在于基于可重构的思想,提供一种可重构的DBF算法处理单元及其硬件架构,具体有以下技术方案实现:

所述可重构DBF算法硬件加速器,与上位机通信连接,包括:

重构控制模块,接收上位机发出的DBF算法信息数据,并根据DBF算法信息决定是否发出重构控制信号;

数据存储模块,用于完成对DBF算法信息数据的写入,存储和读出;

DBF运算模块,从数据存储模块读取数据,完成DBF算法的运算并输出相应结果。

所述可重构DBF算法硬件加速器的进一步设计在于,所述数据存储模块包括:

片上RAM存储单元,用于存储写地址,并根据读地址将DBF运算模块需要的数据从存储器中读出;

写地址产生模块,用于根据DBF运算模块产生的中间结果产生写地址,将数据存入存储器;

读地址产生模块,用于产生读地址。

所述可重构DBF算法硬件加速器的进一步设计在于,包括重构控制模块,所述重构控制模块包括:

重构状态机,输出重构控制信号;

存储资源复选模块,用于重构数据存储模块中片上存储器RAM的排列;

运算资源复选模块,用于重构多路并行流水计算资源。

所述可重构DBF算法硬件加速器的进一步设计在于,所述多路并行流水计算资源为八路至十六路并行流水线。

所述可重构DBF算法硬件加速器的进一步设计在于,所述重构控制模块通过GMAC接口与上位机通信连接。

所述可重构DBF算法硬件加速器的进一步设计在于,所述DBF运算模块包括:

矩阵运算单元,包括矩阵点乘单元、矩阵求平均单元以及求绝对值单元,用于分别对应地实现输入数据与系数矩阵的点乘运算、求平均运算以及求绝对值运算,用于找出矩阵中最大值及其位置;

数据存取控制单元,用于实现中间结果和最终结果的存取控制;

数据比较单元,对矩阵运算单元的输出结果的进行比较;并从数据存储模块读出所述比较的结果,用于找出矩阵中次大值及次大值对应的位置。

基于上述的可重构DBF算法硬件加速器的可重构DBF算法硬件加速器的控制方法,包括如下步骤:

1)重构控制模块解析上位机发出的配置信息,完成对数据存储模块的配置和对DBF运算路数的配置;

2)DBF运算模块接收配置信息中的运算数据,与数据存储模块根据配置信息读取的数据进行运算;

3)DBF运算模块将运算的中间结果存入数据存储模块,在一帧数据运算完成后,根据数据比较单元的比较结果,得到当前帧数据对应的最大值及该最大值的位置,再在数据存储模块中读取该最大值对应存储位置的一组数据,将该组数据再次送入数据比较单元,比较出该组数据次大值及对应的位置,根据最大值的位置和次大值的位置进行运算,得到最终的输出结果。

本发明的优点

本发明提供的一种可重构DBF算法硬件加速器,基于GMAC与上位机通信,基于AXI协议进行内部模块通信。将设计出的GMAC接口挂接在重构控制模块上,通过重构控制模块的状态机将重构的运算参数和数据分发到片上的两组RAM中进行DBF运算前数据的存储,存储完成后,数据存储模块给出信号,告知运算数据可以输入。

运算数据输入过后,进入多路并行的DBF运算模块,然后通过适当的控制将需要的中间结果和最终输出结果写入存储器中,数据存储模块支持乒乓操作以使流水不会中断。完成整个运算过后发出结束信号,并且清空相关的寄存器和存储器,等待下一次的重构和运算。由于这个多路并行的流水架构使得外围控制电路可以在运算期间处理其他任务,在运算结束过后读取运算结果即可,大大增加了整个系统的处理效率。

附图说明

图1是DBF算法加速器与上位机连接整体架构图。

图2是重构控制模块内部架构示意图。

图3是数据存储模块乒乓操作示意图。

图4是DBF运算模块内部架构示意图。

图5是重构控制模块工作流程图。

图6是工作流程图。

具体实施方式

下面结合附图对本发明方案进行详细说明,本实施例以Xilinx VC707 FPGA开发板为实施平台。

如图1,本实施例的可重构DBF算法硬件加速器包括GMAC接口、重构控制模块、数据存储模块以及DBF运算模块。其中,GMAC接口用于实现DBF算法加速器中重构控制模块与上位机之间的数据传递。重构控制模块与GMAC接口、数据存储模块和DBF运算模块相连接,用于重构DBF算法的参数,并行路数和存储结构。数据存储模块,与DBF运算模块相连,用于完成对数据的写入、存储和读取。DBF运算模块,与数据存储模块相连,根据需要从数据存储模块读取数据,完成DBF算法的运算并输出相应结果。

如图2,本实施例提供的重构控制模块包括三个部分,分别为:重构状态机、存储资源复选模块和运算资源复选模块。整个重构流程在重构状态机的控制下完成,存储资源复选模块和运算资源的重构主要是通过MUX,即多路复用器完成的,根据输入参数的变化选通不同的存储资源和运算资源,并且可以达到资源复用的效果。重构完成后给出重构结束信号。重构的流程如图5所示。

如图3,本实施例提供的数据存储模块采用随机存储器(RAM)。该存储器包括写地址产生单元、读地址产生单元和片上RAM存储单元。FPGA芯片的硬件设计实现了RAM的双端口使用,使其可以同时进行读写。在写数据阶段,将符合RAM要求的地址和需要写入的数据写入选择的RAM中;在读数据阶段,将地址写入RAM,并接受RAM输出的数据,并将该数据输出到DBF运算模块。以下以8路并行计算,缓存深度为16为例说明。

写数据时,用计数器对输入的8路数据进行计数。第1个8路并行的矩阵计算结果的数据分别存在RAM0到RAM7这8个RAM的0地址;第2个8路数据存在RAM0到RAM7的1地址,以此类推,到第64个8路数据,同样存放在RAM0到RAM7的63地址,这样就完成了64*8的中间矩阵1的存放。

接下来存放中间矩阵2,即第65到第128这64个8路输入数据,顺次存放在RAM8到RAM15这8个RAM中的0到63地址。中间矩阵3、中间矩阵4,直到中间矩阵16顺次存回RAM0~RAM7中。

中间矩阵17时再存入RAM0~RAM7的0~63地址空间中,和前16个矩阵一样,中间矩阵18存入RAM8~RAM15的0~63地址,中间矩阵19~ 中间矩阵32存回RAM0~RAM7的64~960地址,以此类推。

上述做法的目的是将被操作的存储器与正在写数据的存储器分开,以避免同时对同一个存储器的同一地址空间既读又写,产生竞争。既做到数据读写的流水,又避免读写冲突。

写地址要实现按照上述存放方式每次给出8个输入数据的地址。每一个64*8的中间矩阵为一帧数据,则帧数相对应的存放RAM及地址如表1所示。

表1 帧数相对应的存放RAM及地址

读数据时将输入的最大值的index值(即为最大值对应的位置)变换成相应的RAM编号及RAM地址,读取该地址的数据。

如图4,本实施例提供的DBF运算模块由三部分组成:

第一部分:即矩阵运算单元,将输入数据构成的输入矩阵和从数据存储模块读出的数据构成的系数矩阵进行点乘,然后再按行求平均和求绝对值,形成中间矩阵。

第二部分:即数据比较单元,用于完成中间矩阵最大值及其index值的比较和根据该index值抽取的所有缓存矩阵中相同index值构成的向量中次大值及次大值index的比较结果。

第三部分:即数据存取控制单元,用于把中间矩阵按照一定的规则写入数据存储模块中,并且根据最大值的index值计算出读地址,根据该地址抽取出所需的向量。

本实例提供的DBF运算模块中的矩阵运算单元分为两个部分,分别是矩阵点乘模块,矩阵求平均和求绝对值模块。

本实例提供的DBF运算模块中的数据比较单元分为两个部分,分别是比较存储阵列最大值模块和比较次大值模块。

如图6,如上述的一种可重构DBF算法硬件加速器的可重构DBF算法硬件加速方法,包括如下步骤:

1)GMAC接口接收到上位机发送的配置信息和数据信息,重构控制模块解析上位机发出的配置信息,完成对数据存储模块的配置和对DBF运算路数的配置;

2)DBF运算模块接收配置信息中的运算数据,与数据存储模块根据配置信息读取的数据进行运算;

3)DBF运算模块将运算的中间结果存入数据存储模块,在一帧数据运算完成后,根据数据比较单元的比较结果,得到当前帧数据对应的最大值及该最大值的位置,再在数据存储模块中读取该最大值对应存储位置的一组数据,将该组数据再次送入数据比较单元,比较出这组数据次大值及对应的位置,根据最大值的位置和次大值的位置进行运算,得到最终的输出结果。

系统测试

首先用Modelsim完成各模块的功能仿真测试。

然后通过Xilinx Vivado 2015.3的时序分析功能分析时序再调整时序,使得整个系统的时序Slcak为正。

再由Xilinx Vivado 2015.3 完成系统的综合、实现,将生成的二进制文件下载到Xilinx VC707 FPGA开发板中,并通过插入ILA核检测响应信号完成板级验证。

最后将Xilinx VC707 FPGA开发板与上位机相连,上位机发送配置信息和数据,然后将运算结果通过GMAC回传给上位机,与上位机的软件运算结果进行对比验证,并计算出信噪比,最终完成系统的验证。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号