CN105955896B - 一种可重构dbf算法硬件加速器及控制方法 - Google Patents
一种可重构dbf算法硬件加速器及控制方法 Download PDFInfo
- Publication number
- CN105955896B CN105955896B CN201610272042.XA CN201610272042A CN105955896B CN 105955896 B CN105955896 B CN 105955896B CN 201610272042 A CN201610272042 A CN 201610272042A CN 105955896 B CN105955896 B CN 105955896B
- Authority
- CN
- China
- Prior art keywords
- data
- dbf
- module
- matrix
- memory module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
- Complex Calculations (AREA)
Abstract
本发明涉及可重构DBF算法硬件加速器及控制方法,所述加速器包括重构控制模块,接收上位机发出的DBF算法信息数据,并根据DBF算法信息决定是否发出重构控制信号;数据存储模块,用于完成对DBF算法信息数据的写入,存储和读出;DBF运算模块,从数据存储模块读取数据,完成DBF算法的运算并输出相应结果。有益效果为:解决了专用DBF处理器通用性差和通用处理器计算DBF速度慢的矛盾,可重构架构可以提升算法的灵活性,并且实现了源数据的全流水输出,提高了算法的运算效率和实时性。
Description
技术领域
本发明涉及基于固定资源的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回传给上位机,与上位机的软件运算结果进行对比验证,并计算出信噪比,最终完成系统的验证。
Claims (4)
1.一种可重构DBF算法硬件加速器,与上位机通信连接,其特征在于包括:
重构控制模块,接收上位机发出的DBF算法信息数据,并根据DBF算法信息决定是否发出重构控制信号;
数据存储模块,用于完成对DBF算法信息数据的写入,存储和读出;
DBF运算模块,从数据存储模块读取数据,完成DBF算法的运算并输出相应结果;
所述数据存储模块包括:
片上RAM存储单元,用于存储写地址,并根据读地址将DBF运算模块需要的数据从存储器中读出;
写地址产生模块,用于根据DBF运算模块产生的中间结果产生写地址,将数据存入存储器;
读地址产生模块,用于产生读地址;
所述重构控制模块通过GMAC接口与上位机通信连接;
所述DBF运算模块包括:
矩阵运算单元,包括矩阵点乘单元、矩阵求平均单元以及求绝对值单元,用于分别对应地实现输入数据与系数矩阵的点乘运算、求平均运算以及求绝对值运算;将输入数据构成的输入矩阵和从数据存储模块读出的数据构成的系数矩阵进行点乘,然后再按行求平均和求绝对值,形成中间矩阵;
数据存取控制单元,用于实现中间结果和最终结果的存取控制;将中间矩阵按照一定的规则写入数据存储模块中;
数据比较单元,对矩阵运算单元的输出结果进行比较,并从数据存储模块读出所述比较的结果,用于找出矩阵中最大值及其位置以及次大值及其位置;
DBF运算模块将运算的中间结果存入数据存储模块,在一帧数据运算完成后,根据数据比较单元的比较结果,得到当前帧数据对应的最大值及该最大值的位置index值,根据该index值抽取的所有缓存矩阵中相同index值对应的数值构成的一组数据,将该组数据再次送入比较单元,比较出该组数据次大值及对应的位置,根据最大值的位置和次大值的位置进行运算,得到最终的输出结果,其中每一个64乘以8的中间矩阵为一帧数据。
2.根据权利要求1所述的可重构DBF算法硬件加速器,其特征在于包括重构控制模块,所述重构控制模块包括:
重构状态机,输出重构控制信号;
存储资源复选模块,用于重构数据存储模块中片上存储器RAM的排列;
运算资源复选模块,用于重构多路并行流水计算资源。
3.根据权利要求2所述的可重构DBF算法硬件加速器,其特征在于所述多路并行流水计算资源为八路至十六路并行流水线。
4.基于如权利要求1-3任一项所述的可重构DBF算法硬件加速器的可重构DBF算法硬件加速器的控制方法,其特征在于包括如下步骤:
1)重构控制模块解析上位机发出的配置信息,完成对数据存储模块的配置和对DBF运算路数的配置;
2)DBF运算模块接收运算数据,与数据存储模块读出的数据进行运算;
3)DBF运算模块运算的中间结果存入数据存储模块,在一帧数据运算完成后,根据数据比较单元的比较结果,得到当前帧数据对应的最大值及该最大值的位置,再在数据存储模块中读取该最大值对应存储位置的一组数据,将该组数据再次送入数据比较单元,比较出该组数据次大值及对应的位置,根据最大值的位置和次大值的位置进行运算,得到最终的输出结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610272042.XA CN105955896B (zh) | 2016-04-27 | 2016-04-27 | 一种可重构dbf算法硬件加速器及控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610272042.XA CN105955896B (zh) | 2016-04-27 | 2016-04-27 | 一种可重构dbf算法硬件加速器及控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105955896A CN105955896A (zh) | 2016-09-21 |
CN105955896B true CN105955896B (zh) | 2019-09-20 |
Family
ID=56916046
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610272042.XA Active CN105955896B (zh) | 2016-04-27 | 2016-04-27 | 一种可重构dbf算法硬件加速器及控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105955896B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106558337A (zh) * | 2016-10-26 | 2017-04-05 | 国芯科技(北京)有限公司 | 一种sram存储电路及存储空间的重构方法 |
CN109871950A (zh) * | 2019-02-01 | 2019-06-11 | 京微齐力(北京)科技有限公司 | 单元具有旁路功能的人工智能模块的芯片电路和系统芯片 |
CN113625994B (zh) * | 2021-10-12 | 2022-01-04 | 华控清交信息科技(北京)有限公司 | 一种数据处理方法和处理核 |
CN114153763B (zh) * | 2021-11-09 | 2024-08-23 | 中国船舶重工集团公司第七一五研究所 | 一种高带宽低延时算法处理的fpga硬件实现方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1482659A2 (en) * | 2000-07-26 | 2004-12-01 | Ericsson Inc. | Mobile satellite communications system using multiple earth stations |
CN1752771A (zh) * | 2005-10-20 | 2006-03-29 | 武汉大学 | 单通道相控阵接收信号重构及空间信号处理方法 |
CN101640317A (zh) * | 2009-06-17 | 2010-02-03 | 华东师范大学 | 含mems开关的谐振频率可重构的天线及其制作 |
CN101931449A (zh) * | 2010-08-27 | 2010-12-29 | 中国科学院上海微系统与信息技术研究所 | 分布式数字波束形成网络及数字波束形成处理方法 |
CN101964448A (zh) * | 2010-08-27 | 2011-02-02 | 中国科学院上海微系统与信息技术研究所 | 一种可在轨重构的星载多波束相控阵天线 |
-
2016
- 2016-04-27 CN CN201610272042.XA patent/CN105955896B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1482659A2 (en) * | 2000-07-26 | 2004-12-01 | Ericsson Inc. | Mobile satellite communications system using multiple earth stations |
CN1752771A (zh) * | 2005-10-20 | 2006-03-29 | 武汉大学 | 单通道相控阵接收信号重构及空间信号处理方法 |
CN101640317A (zh) * | 2009-06-17 | 2010-02-03 | 华东师范大学 | 含mems开关的谐振频率可重构的天线及其制作 |
CN101931449A (zh) * | 2010-08-27 | 2010-12-29 | 中国科学院上海微系统与信息技术研究所 | 分布式数字波束形成网络及数字波束形成处理方法 |
CN101964448A (zh) * | 2010-08-27 | 2011-02-02 | 中国科学院上海微系统与信息技术研究所 | 一种可在轨重构的星载多波束相控阵天线 |
Also Published As
Publication number | Publication date |
---|---|
CN105955896A (zh) | 2016-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104915322B (zh) | 一种卷积神经网络硬件加速方法 | |
CN105955896B (zh) | 一种可重构dbf算法硬件加速器及控制方法 | |
Moore et al. | Bluehive-a field-programable custom computing machine for extreme-scale real-time neural network simulation | |
Kim et al. | FPGA-based CNN inference accelerator synthesized from multi-threaded C software | |
US6237021B1 (en) | Method and apparatus for the efficient processing of data-intensive applications | |
CN108563808A (zh) | 基于fpga的异构可重构图计算加速器系统的设计方法 | |
Liu et al. | Towards an efficient accelerator for DNN-based remote sensing image segmentation on FPGAs | |
Zhou et al. | Accelerating large-scale single-source shortest path on FPGA | |
CN110163357A (zh) | 一种计算装置及方法 | |
CN106776466A (zh) | 一种fpga异构加速计算装置及系统 | |
Wu et al. | Skeletongcn: a simple yet effective accelerator for gcn training | |
CN109446478A (zh) | 一种基于迭代和可重构方式的复协方差矩阵计算系统 | |
Galicia et al. | Neurovp: A system-level virtual platform for integration of neuromorphic accelerators | |
CN105955705B (zh) | 一种可重构的多通道检测算法加速器 | |
Cenci et al. | First Results of an “Artificial Retina” Processor Prototype | |
Jin et al. | Accelerating graph convolutional networks through a pim-accelerated approach | |
CN109710562A (zh) | 一种基于selectmap的可配置且高速的fpga配置电路及实现方法 | |
Gan et al. | Million-core-scalable simulation of the elastic migration algorithm on Sunway TaihuLight supercomputer | |
Qiu et al. | An FPGA‐Based Convolutional Neural Network Coprocessor | |
Berger et al. | An optimized reconfigurable system for computing the phylogenetic likelihood function on dna data | |
Hu et al. | Adaptive Multidimensional Parallel Fault Simulation Framework on Heterogeneous System | |
Peng et al. | An energy efficient approach for C4. 5 algorithm using OpenCL design flow | |
CN110347968A (zh) | 一种基于fpga的优化fft算法和装置 | |
CN113822003B (zh) | 一种基于fpga的静态时序分析延迟计算加速系统及方法 | |
Wang et al. | Design of a YOLO Model Accelerator Based on PYNQ Architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |