CN113890508A - 一种批处理fir算法的硬件实现方法和硬件*** - Google Patents
一种批处理fir算法的硬件实现方法和硬件*** Download PDFInfo
- Publication number
- CN113890508A CN113890508A CN202111139654.9A CN202111139654A CN113890508A CN 113890508 A CN113890508 A CN 113890508A CN 202111139654 A CN202111139654 A CN 202111139654A CN 113890508 A CN113890508 A CN 113890508A
- Authority
- CN
- China
- Prior art keywords
- module
- batch
- source data
- data
- fir
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03H—IMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
- H03H17/00—Networks using digital techniques
- H03H17/02—Frequency selective networks
- H03H17/06—Non-recursive filters
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03H—IMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
- H03H17/00—Networks using digital techniques
- H03H2017/0072—Theoretical filter design
- H03H2017/0081—Theoretical filter design of FIR filters
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开一种批处理FIR算法的硬件实现方式和硬件***,属于数字信号处理中FIR算法及其硬件实现技术领域。针对现有技术中存在的含有批处理的FIR加速器性能不够,数字信号处理的效率不高等问题,本发明***包括控制模块、源数据地址生成模块,系数地址生成模块、结果地址生成模块、存储单元、数据搬运模块和计算模块,计算模块执行FIR算法中的乘累加运算,本发明硬件***加入批处理功能,减少了配置信息和启动数据搬运时的时钟周期消耗,提高FIR加速器性能,优化数字信号处理硬件设计。
Description
技术领域
本发明涉及数字信号处理中FIR算法及其硬件实现技术领域,更具体地说,涉及一种批处理FIR算法的硬件实现方式和硬件***。
背景技术
数字信号处理技术在语音信号处理、雷达成像、航空航天等被广泛应用。它可以通过算法将信号中的特征参数提取出来,与已知的特征进行对比和匹配。数字信号处理技术在现代工程领域起到了非常重要的作用。
有限冲激响应(Finite Impulse Response,FIR)滤波器是其冲激响应为有线长度的滤波器,脉冲输入信号会在有限时间内变为零。批处理是现代硬件加速技术的一个重要概念。从并行计算到单指令流多数据流(Single Instruction Multiple Data,SIMD)。同时处理多批共性数据可以极大的节省硬件中控制和数据通信开销,提高运算的效率。
然而在现有的FIR加速器设计中,往往在设计中注重单次计算并行度和运算流水线,而忽略了多批次、小规模数据对片上存储利用度不高的问题。同时在多批数据处理场景中,处理器中频繁调用加速器配置指令,会耗费大量的周期在控制逻辑上,降低数字信号处理的效率。
中国专利申请用于高效FFT和FIR硬件加速器的计算模块,申请号CN200980139643.1,公开日2014年05月07日,公开了一种可运行在FFT模式和FIR模式的硬件加速器。硬件加速器可接收输入数据和系数数据并为所选择的模式执行计算。在FFT模式,计算基2FFT,产生对应于两个复数四个实数输出。在FIR模式,产生一个实数输出。硬件加速器可使用三个复用器从FFT模式向FIR模式转换。所有FIR组件可以在FFT模式中使用。可以增加寄存器来提供流水线操作支持。硬件加速器可以支持多个数值表示***,该方法重点在于对FIR算法进行加速,但对于含有批处理的应用场景,仍然不能实现很高的性能。
发明内容
1.要解决的技术问题
针对现有技术中存在的含有批处理的FIR加速器性能不够,数字信号处理的效率不高等问题,本发明提供一种批处理FIR算法的硬件实现方式和硬件***,综合数字信号处理场景下的需要、面积功耗和***运算速度,提出具有批处理功能的FIR算法硬件实现方法以及对应的硬件***,提高FIR加速器性能,优化数字信号处理硬件设计。
2.技术方案
本发明的目的通过以下技术方案实现。
一种批处理FIR算法的硬件实现方式,包括控制模块、源数据地址生成模块、系数地址生成模块、结果地址生成模块、计算模块、存储单元和数据搬运模块;控制模块分别与源数据地址生成模块、系数地址生成模块、结果地址生成模块、计算模块和数据搬运模块相连,源数据地址生成模块和系数地址生成模块均与计算模块连接,计算模块还连接结果地址生成模块,源数据地址生成模块、系数地址生成模块和结果地址生成模块与存储单元均连接,数据搬运模块与存储单元相连;所述计算模块包括m路乘累加器,m为大于零的整数。
更进一步的,所述存储单元包括源数据区、系数区和结果区,存储单元包括4*m+1个存储器;源数据区包括2*m个存储器,系数区包括1个存储器,结果区包括2*m个存储器。以m=16的规模为例,存储单元包括65个SRAM,其中SRAM0-31为源数据区,SRAM32为系数区,SRAM33-64为结果区。数据搬运模块用于在DDR与SRAM之前实现数据搬运。
更进一步的,所述源数据地址生成模块包括m个向量通道,所述系数地址生成模块包括1个系数通道,所述结果地址生成模块包括m个结果数据通道;所述向量通道和系数通道均连接计算模块的输入端,计算模块的输出端连接结果数据通道。以m=16为例,源数据地址生成模块包括16个向量通道,结果地址生成模块包括16个结果数据通道,16个向量通道与运算模块的16个第一输入接口连接,系数通道同时与运算模块的16个第二输入接口连接,运算模块的16个输出接口与16个结果数据通道连接。
更进一步的,所述乘累加器包括乘法器和加法器,乘法器的输出端连接第一加法器的输入端,第一加法器的输出端连接第二加法器的输入端,第二加法器的输出端连接第三加法器的输入端,第一、第二、第三加法器的输出端均与自身的输入端连接;乘法器、加法器的输入与输出之间都具有一拍的延时。
更进一步的,所述控制模块配置解析为m个通道各自的批处理条数。控制模块用于解析外部配置,对各计算模块和存储单元进行控制,控制模块对应m个通道各自的处理数据,并实现多批次的数据处理。
一种批处理FIR算法的硬件实现方法,包括以下步骤:
设定FIR算法的参数,所述参数包括单批的序列长度、滤波系数长度和批处理的批数,根据设定参数组织FIR加速器硬件;
根据需要处理的数据序列和处理批数存储源数据;
源数据存储完成后执行计算,至所有的结果数据运算完成,将结果数据存入结果区SRAM。
更进一步的,源数据在存储时不进行补零操作,补零操作在运算过程中进行。运算过程中进行补零节省源数据的存储空间,提高存储效率。
更进一步的,存储源数据时,源数据的向量[m*n+0]存储在存储单元的第一存储器中,源数据的向量[m*n+1]存储在存储单元的第二存储器中,依次类推,共有m个存储通道,轮流存储各批源数据,n为大于零的整数。源数据根据通道数进行存储,支持***的批处理计算。
更进一步的,计算模块在计算多批序列的滤波结果时,批处理的所有序列共享相同的滤波系数和长度。
更进一步的,存储单元使用左右乒乓的方式存储源数据和计算结果,存储单元使用深度乒乓的方式存储系数。此处存储的源数据即滤波向量,存储的系数即滤波系数。
3.有益效果
相比于现有技术,本发明的优点在于:
本发明的一种批处理FIR算法的硬件实现方式在传统FIR算法硬件结构的基础上,加入了批处理功能。在多批数据多路并行计算的基础上,在地址生成模块中完成补零,减少对源数据存储空间以及对存储器的访问,提高数据存储效率。
本发明一次启动计算多批数据,减少了配置信息和启动数据搬运时的时钟周期消耗,提高FIR算法硬件执行性能;在多批数据中共享滤波器的权重,在小点数批处理场景下的FIR计算也能具有很好的性能。
附图说明
图1是本发明的硬件***的结构示意图;
图2是本发明FIR算法的计算过程示意图;
图3是本发明的存储单元数据存储分布示意图;
图4是本发明的计算模块乘累加器的结构示意图;
图5是本发明的存储单元的乒乓执行示意图;
图6是本发明的源数据地址生成模块的补零波形仿真图。
具体实施方式
下面结合说明书附图和具体的实施例,对本发明作详细描述。
实施例1
FIR滤波器是一种重要的数字信号处理方法,为了更好的理解本实施例,先对FIR滤波器进行说明。
对于N点M阶的FIR滤波器,N点向量表示为:
X=[x(0) x(1) x(2) … x(N-2) x(N-1)],
M阶滤波***表示为:
H=[h(0) h(1) h(2) … h(M-2) h(M-1)],
N点M阶FIR滤波器的计算公式为:
上述公式在计算时,需要进行M+N-1次运算,得到M+N-1个结果,其中每次运算包括两个M点向量的乘累加计算。
如图2所示,常用的FIR计算方式为划窗法。如图2所示,当滤波系数窗口超过滤波向量的范围时,需要对滤波向量的前后各补N-1个零。在现有技术的滤波器设计中,源数据存储器不仅需要存储长度为M的滤波向量,也需要额外存储2*(N-1)个零。在进行批处理时,假设批数为B,则需要额外存储2*B*(N-1)个零,消耗大量的无用空间。同时也延长了数据搬运过程中向存储单元写入滤波向量的时间。
本实施例公开一种FIR算法的硬件***,如图1所示。所述***包括控制模块、源数据地址生成模块、系数地址生成模块、结果地址生成模块、计算模块、存储单元和数据搬运模块;控制模块分别与源数据地址生成模块、系数地址生成模块、结果地址生成模块、计算模块和数据搬运模块相连,源数据地址生成模块和系数地址生成模块均与计算模块连接,计算模块还连接结果地址生成模块,源数据地址生成模块、系数地址生成模块和结果地址生成模块与存储单元均连接,数据搬运模块与存储单元相连。
所述计算模块支持批处理m路并行数据,m为大于0的整数,本实施例以m=16进行具体描述。计算模块包括16个乘累加器,乘累加器的数据类型为单精度浮点型数据,所述乘累加器结构如图4所示,包括乘法器和加法器,乘法器的输出端连接第一加法器的输入端,第一加法器的输出端连接第二加法器的输入端,第二加法器的输出端连接第三加法器的输入端,第一、第二、第三加法器的输出端均与自身的输入端连接;乘法器、加法器的输入与输出之间都具有一拍的延时。
相比于一个乘法器和两个加法器的设计,本发明计算模块的乘累加器增加了一个加法器。一乘两加的乘累加器支持的累加长度大于8,而一乘三加构成的乘累加器,减少用于打拍延时的寄存器,支持1至7累加长度,较小的累加长度可以使整个FIR加速器支持更小的点数,更好的体现所述FIR加速器在小点数批处理场景下的性能优势。
所述存储单元包括源数据区、系数区和结果区,源数据区用于存储滤波向量,系数区用于存储滤波系数,结果区用于存储滤波结果。本实施例中存储单元包括65个SRAM,每个SRAM宽为64bit,深度为2k。
存储单元使用左右乒乓的方式存储源数据(滤波向量)和滤波结果,使用深度乒乓的方式存储系数(滤波系数)。左右乒乓即同一类型的源数据使用两片SRAM进行分区存储,一片执行第一条运算指令的计算过程,进行数据读取;同时,另一片执行下一条运算指令的数据搬运过程,进行数据写入。深度乒乓即同一类型的源数据使用一片SRAM的不同地址段进行分区存储,执行第一条运算指令的计算过程时,对前半个地址段(或后半)进行数据读取。同时执行下一条运算指令的数据搬运过程,对后半个地址段(或前半)进行数据写入。
如图5所示,存储单元的硬件SRAM0-31为源数据区,SRAM32为系数区,SRAM33-64为结果区。SRAM0-15、SRAM32的0-1023地址、SRAM33-48为乒区,SRAM16-31、SRAM32的1024-2047、SRAM49-64为乓区。在乒区执行运算时,如果外部配置了下一条指令,则数据搬运模块从DDR向乓区搬运下一条指令所需的源数据。
源数据地址生成模块包括16个向量通道,系数生成模块包括1个系数通道,源数据地址生成模块的16个向量通道与计算模块的16个第一输入接口相连;系数生成模块的系数通道同时与计算模块的16个第二输入接口相连;结果地址生成模块包括16个结果数据通道,16个结果数据通道与计算模块的16个输出接口相连。如图6所示EDA工具中的仿真波形图,源数据地址生成模块在生成地址索引并向计算模块供数时,在超出索引的地方会进行补零。由于所述FIR滤波器使用固定长度乘累加进行运算,所以前后需要补零。地址生成模块会比较生成的地址信号与当前数据的起始和结束地址。若地址信号超出范围,则拉高地址生成模块内的zero使能信号,经过与存储单元相同的延时后向计算模块输出数据零。
所述控制模块配置解析为16通道各自的批处理条数。
本实例所述的批处理FIR算法的硬件***可以用专用集成电路的形式实现,也可以通过现场可编程门阵列的形式实现,也就是说,本实施例所述硬件设计可以进行FPGA实现,也可以以ASIC芯片形式实现。
基于上述的一种批处理FIR算法的硬件***,本实施例公开一种批处理FIR算法的硬件实现方法,包括以下步骤:
步骤S1:设定批处理FIR算法的参数,组织FIR加速器硬件
所述批处理FIR算法的参数包括单批的序列的长度(fir_num),滤波系数长度(fir_order)和批处理批数(batch_num)。假设SRAM的深度为d,批处理FIR算法的参数具有如下的约束:
1、(fir_num+fir_order-1)*ceil(batch_num/16)<d;
2、0<fir_order<d/2;
3、fir_num>4。
本实施例设定单批的序列长度是16,批处理批数也是16,即滤波器工作时支持16路并行计算16批数据,执行过程是基于滑窗的乘累加运算。每一批数据在补零后的序列长度和系数长度都相等,可以使用乘累加器实现固定阶数的乘累加运算。
步骤S2:根据需要处理的数据序列和处理批数存储源数据
存储源数据时,向量[16n+0]存储在SRAM0中,向量[16n+1]存储在SRAM1中,依次类推,共有16个SRAM存储通道,轮流存储各批数据。源数据的补零不需要预先写入存储单元中,补零过程在运算过程中运行,在进行地址索引时,滤波器会判断当前索引与源数据范围,当索引超出存储单元中源数据存储的范围时,会向计算模块输出零元素,节约了源数据的存储空间。
该存储方法单次在源数据SRAM中存储所有批次的源数据,支持16路乘累加器同时并行处理数据。
步骤S3:源数据存储完成后,执行计算;直至所有的结果数据运算完毕,将结果数据存入结果区SRAM,运算完成。
本实施例的批处理FIR滤波器一次可以计算多批的源数据。多批源数据被平均划分成16组,在存储单元的16个存储器中轮流被存储。源数据从DDR通过数据搬运单元搬入存储单元时,源数据在存储单元的排列按图3进行分布。类似地,计算完成后,结果数据通过数据搬运单元从存储单元搬出到DDR时,结果数据在存储单元也按图3的方式进行分布。
计算多批序列的滤波结果时,批处理的所有序列共享相同的滤波系数和长度。
依上述方法依次类推,这种排列方法和补零方式适用与各种并行路数的FIR滤波器设计。
通过仿真实验对比具有相同并行路数的单批次FIR滤波器与批处理FIR滤波器对多条数据的运算周期数,结果如表1所示。
表1
设计 | 向量长度 | 系数长度 | 批数 | 周期数 |
单批次FIR滤波器 | 29 | 4 | 4096 | 122880 |
批处理FIR滤波器 | 29 | 4 | 4096 | 32805 |
表1公开了批处理FIR滤波器在128批次下的性能优势,由于省去了大量配置和启动时间,批处理FIR滤波器大幅降低了运算周期数,提高FIR加速器性能。本发明解决了传统FIR加速器对于小数据多批次情况中,FIR算法补零后数据存储效率不高的问题,以及数据搬运阶段频繁启动的问题,提高了FIR算法硬件执行的性能。
如上所述,尽管参照特定的优选实施例已经表示和表述了本发明,但其不得解释为对本发明自身的限制。在不脱离所附权利要求定义的本发明的精神和范围前提下,可对其在形式上和细节上做出各种变化。所以,如果本领域的普通技术人员受其启示,在不脱离本创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本专利的保护范围。此外,“包括”一词不排除其他元件或步骤,在元件前的“一个”一词不排除包括“多个”该元件。产品权利要求中陈述的多个元件也可以由一个元件通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (10)
1.一种批处理FIR算法的硬件***,其特征在于,包括控制模块、源数据地址生成模块、系数地址生成模块、结果地址生成模块、计算模块、存储单元和数据搬运模块;控制模块分别与源数据地址生成模块、系数地址生成模块、结果地址生成模块、计算模块和数据搬运模块相连,源数据地址生成模块和系数地址生成模块均与计算模块连接,计算模块还连接结果地址生成模块,源数据地址生成模块、系数地址生成模块和结果地址生成模块与存储单元均连接,数据搬运模块与存储单元相连;所述计算模块包括m路乘累加器,m为大于零的整数。
2.根据权利要求1所述的一种批处理FIR算法的硬件实现方式,其特征在于,所述存储单元包括源数据区、系数区和结果区,存储单元包括4*m+1个存储器;源数据区包括2*m个存储器,系数区包括1个存储器,结果区包括2*m个存储器。
3.根据权利要求2所述的一种批处理FIR算法的硬件***,其特征在于,所述源数据地址生成模块包括m个向量通道,所述系数地址生成模块包括1个系数通道,所述结果地址生成模块包括m个结果数据通道;所述向量通道和系数通道均连接计算模块的输入端,计算模块的输出端连接结果数据通道。
4.根据权利要求1所述的一种批处理FIR算法的硬件***,其特征在于,所述乘累加器包括乘法器和加法器,乘法器的输出端连接第一加法器的输入端,第一加法器的输出端连接第二加法器的输入端,第二加法器的输出端连接第三加法器的输入端,第一、第二、第三加法器的输出端均与自身的输入端连接;乘法器、加法器的输入与输出之间都具有一拍的延时。
5.根据权利要求1所述的一种批处理FIR算法的硬件***,其特征在于,所述控制模块配置解析为m个通道各自的批处理条数。
6.一种批处理FIR算法的硬件实现方法,其特征在于,包括以下步骤:
设定FIR算法的参数,所述参数包括单批的序列长度、滤波系数长度和批处理的批数,根据设定参数组织FIR加速器硬件;
根据需要处理的数据序列和处理批数存储源数据;
源数据存储完成后执行计算,至所有的结果数据运算完成,将结果数据存入结果区SRAM。
7.根据权利要求6所述的一种批处理FIR算法的硬件实现方法,其特征在于,源数据在存储时不进行补零操作,补零操作在运算过程中进行。
8.根据权利要求7所述的一种批处理FIR算法的硬件实现方法,其特征在于,存储源数据时,源数据的向量[m*n+0]存储在存储单元的第一存储器中,源数据的向量[m*n+1]存储在存储单元的第二存储器中,依次类推,共有m个存储通道,轮流存储各批源数据,n为大于零的整数。
9.根据权利要求6所述的一种批处理FIR算法的硬件实现方法,其特征在于,计算模块在计算多批序列的滤波结果时,批处理的所有序列共享相同的滤波系数和长度。
10.根据权利要求8所述的一种批处理FIR算法的硬件实现方法,其特征在于,存储单元使用左右乒乓的方式存储源数据和计算结果,存储单元使用深度乒乓的方式存储系数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111139654.9A CN113890508A (zh) | 2021-09-28 | 2021-09-28 | 一种批处理fir算法的硬件实现方法和硬件*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111139654.9A CN113890508A (zh) | 2021-09-28 | 2021-09-28 | 一种批处理fir算法的硬件实现方法和硬件*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113890508A true CN113890508A (zh) | 2022-01-04 |
Family
ID=79007213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111139654.9A Pending CN113890508A (zh) | 2021-09-28 | 2021-09-28 | 一种批处理fir算法的硬件实现方法和硬件*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113890508A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116961621A (zh) * | 2023-09-21 | 2023-10-27 | 灿芯半导体(苏州)有限公司 | 一种可动态调整计算速度的fir滤波器 |
-
2021
- 2021-09-28 CN CN202111139654.9A patent/CN113890508A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116961621A (zh) * | 2023-09-21 | 2023-10-27 | 灿芯半导体(苏州)有限公司 | 一种可动态调整计算速度的fir滤波器 |
CN116961621B (zh) * | 2023-09-21 | 2024-03-22 | 灿芯半导体(苏州)有限公司 | 一种可动态调整计算速度的fir滤波器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109992743B (zh) | 矩阵乘法器 | |
US20180107630A1 (en) | Processor and method for executing matrix multiplication operation on processor | |
US8595280B2 (en) | Apparatus and method for performing multiply-accumulate operations | |
CN109977347B (zh) | 一种支持多模式配置的可重构fft处理器 | |
US20090024685A1 (en) | High Speed and Efficient Matrix Multiplication Hardware Module | |
CN111915001B (zh) | 卷积计算引擎、人工智能芯片以及数据处理方法 | |
CN105701068B (zh) | 基于分时复用技术的cholesky矩阵求逆*** | |
KR20150132287A (ko) | 멀티-모드 래딕스-2x 버터플라이 벡터 프로세싱 회로들, 및 연관된 벡터 프로세서들을 제공하기 위한 프로그램 가능한 데이터 경로 구성들을 가지는 벡터 프로세싱 엔진들, 시스템들, 및 방법들 | |
CN116710912A (zh) | 一种矩阵乘法器及矩阵乘法器的控制方法 | |
WO2018027706A1 (zh) | Fft处理器及运算方法 | |
CN102495721A (zh) | 一种支持fft加速的simd向量处理器 | |
CN113890508A (zh) | 一种批处理fir算法的硬件实现方法和硬件*** | |
CN109240644B (zh) | 一种用于伊辛芯片的局部搜索方法及电路 | |
Liu et al. | Towards high-bandwidth-utilization spmv on fpgas via partial vector duplication | |
CN114003198A (zh) | 内积处理部件、任意精度计算设备、方法及可读存储介质 | |
Islam et al. | A new hardware-efficient VLSI-architecture of GoogLeNet CNN-model based hardware accelerator for edge computing applications | |
WO1992000563A1 (en) | A number theory mapping generator for addressing matrix structures | |
CN116382617A (zh) | 基于fpga的带并行排序功能的奇异值分解加速器 | |
US7847349B2 (en) | Single-cycle FFT butterfly calculator | |
Malashri et al. | Low power and memory efficient FFT architecture using modified CORDIC algorithm | |
CN104317554A (zh) | 用于simd处理器的寄存器文件数据读写装置和方法 | |
CN103677735B (zh) | 一种数据处理装置及数字信号处理器 | |
CN114116012B (zh) | 基于混洗操作的fft码位反序算法向量化实现方法及装置 | |
WO2020059156A1 (en) | Data processing system, method, and program | |
JP2003244190A (ja) | データフロー制御スイッチ用プロセッサ及びデータフロー制御スイッチ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |