CN104794002A - 一种基于特定资源的多路并行划分方法及其硬件架构 - Google Patents
一种基于特定资源的多路并行划分方法及其硬件架构 Download PDFInfo
- Publication number
- CN104794002A CN104794002A CN201410836965.4A CN201410836965A CN104794002A CN 104794002 A CN104794002 A CN 104794002A CN 201410836965 A CN201410836965 A CN 201410836965A CN 104794002 A CN104794002 A CN 104794002A
- Authority
- CN
- China
- Prior art keywords
- result
- specific resources
- multidiameter delay
- multiply
- division methods
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000004422 calculation algorithm Methods 0.000 claims description 28
- 238000004364 calculation method Methods 0.000 claims description 9
- 230000021615 conjugation Effects 0.000 claims description 7
- 230000008676 import Effects 0.000 claims description 3
- 238000012545 processing Methods 0.000 abstract description 5
- 238000012544 monitoring process Methods 0.000 abstract 1
- 238000013461 design Methods 0.000 description 17
- 238000005311 autocorrelation function Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000000737 periodic effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Landscapes
- Complex Calculations (AREA)
Abstract
本发明涉及一种基于特定资源的多路并行划分方法,所述方法通过计算总的运算量,得到每一路实际应分配的运算量以及结果数量,使得并行化的运算IP之间任务负载保持一致,该方法中每一路获得的结果数量均由顶层配置参数,通过移位相加得到结果总数,所述结果总数决定了每一路地址序列的生成,当运算结果数目达到结果总数时运算结束。有益效果为:通过光控与结构简单的处理电路实现在夜晚对窗台上方区域的监控,起到提醒住户以及警示盗窃者的作用,该室内报警器通过简易的器件即可完成本地数据的采集、处理、转化成声信息的功能,而且可靠性较高,隐蔽性强不易被盗窃者发现以致绕过该报警器进入室内。
Description
技术领域
本发明涉及运算资源、存储资源有限的特定硬件***中实现自相关算法的并行划分技术,尤其涉及一种基于特定资源的多路并行划分方法及其架构。
背景技术
数字信号处理技术,作为重要的技术手段,不仅广泛应用于多媒体、数据通信、雷达成像、地质探测、航空航天等工程技术领域,近年来又成为人工智能、模式识别、神经网络等新兴学科的理论基础之一,涉及范围非常广泛。而随着半导体工艺技术的飞速发展、芯片性能的不断提升,为大批量数据的实时处理提供了可能。数字信号处理技术所使用的主要算法多是对数据进行滤波、卷积、相关和谱分析运算等。
自相关是描述随机信号x(t)在任意两个不同时刻t1,t2间的相关程度,连续信号自相关函数定义为:
数学上容易看出,RXX(τ)是偶函数,正余弦信号的自相关函数同样是一个正余弦函数。周期信号的自相关函数仍是同频率周期信号。当τ=0时,RXX(τ)具有最大值,即信号的均方值。说明此时相关程度最大。
对于自相关算法的数字信号处理,因信号是离散的,函数可定义为以下形式。即典型乘累加结构。
发明内容
本发明目的在于克服以上现有技术之不足,提供一种基于特定资源的多路并行划分方法及其架构,具体有以下技术方案实现:
所述基于特定资源的多路并行划分方法,所述方法通过计算总的运算量,得到每一路实际应分配的运算量以及结果数量,使得并行化的运算IP之间任务负载保持一致,其特征在于该方法中每一路获得的结果数量均由顶层配置参数,通过移位相加得到结果总数,所述结果总数决定了每一路地址序列的生成,当运算结果数目达到结果总数时运算结束。
所述的基于特定资源的多路并行划分方法的进一步设计在于,所述方法基于自相关算法,设定输入相量的点数为number,由输入向量的第一个点数与输入向量共轭向量的最后一个数相乘得到第一个结果,再由共轭向量向右滑窗一格,所述两个向量的对应项进行乘累加,得到第二个结果,重复上述步骤完成自相关算法,处理后的最终结果的点数为number*2-1。
所述的基于特定资源的多路并行划分方法的进一步设计在于,所述最终结果的序列是以中间数为对称中心,左右两边的数共轭对称。
所述的基于特定资源的多路并行划分方法的进一步设计在于,所述运算结果只计算出前一半结果,前一半结果运算结束后启动DMA搬运,在顺序搬运完前一半结果后,沿逆序方向将前一半结果取共轭依次搬出。
所述的基于特定资源的多路并行划分方法的进一步设计在于,所述输入向量的乘累加阶数从1递增至number,基于运算量的划分方式设定四路分配的结果数量依次是0.5*number、0.2071*number、0.1589*number、0.1334*number。
利用所述的基于特定资源的多路并行划分方法,提供一种基于特定资源的多路并行划分的硬件架构,包括可在自相关的算法顶层模块调用的运算资源、存储资源,其特征在于还包括:
核心模块乘累加器,用于接收地址生成器单元发送的源数据,并负责数据流的处理;
地址生成器单元,用于负责生成所需的地址序列,将源数据依次导入运算资源的乘累加器;
存储体交换模块,用于将不同存储块视为同一存储块时对每个存储块的寻址。
所述基于特定资源的多路并行划分的硬件架构的进一步设计在于,所述乘累加器支持四路运算,有两路源数据输入,共需要八个数据输入端。
所述基于特定资源的多路并行划分的硬件架构的进一步设计在于,所述每个乘累加器内部包括一个复数乘法器与三个用于实现流水处理的复数加法器,所述复数乘法器与三个复数加法器依次串接,所述加法器的两个数据输入端分别由相应的组合逻辑控制选通。
所述基于特定资源的多路并行划分的硬件架构的进一步设计在于,存储体交换模块由至少两个存储块连接组成。
本发明的优点如下:
本发明提供的基于特定资源的多路并行划分方法通过计算总的运算量,得到每一路实际应分配的运算量以及结果数量,从而使得并行化的运算IP之间任务负载保持一致,获取最大的性能提升。设计中采用四路并行,每一路获得的结果数量均由顶层配置参数(即向量点数)通过移位相加得到。该结果决定了每一路AGU产生的地址序列,同时作为运算结束的重要判断条件。发明结合硬件***的运算资源和存储资源,实现16~128k向量长度范围内的自相关算法硬件设计,详细论述了内存的使用情况,给出每个点数区间范围的硬件并行度、基本模块设计、***集成及量化的性能指标。
附图说明
图1是自相关算法滑窗图示。
图2是乘累加器示意图。
图3是自相关算法硬件设计模块互联图。
具体实施方式
下面结合附图对本发明方案进行详细说明。
本实施例提供的基于特定资源的多路并行划分方法,通过计算总的运算量,得到每一路实际应分配的运算量以及结果数量,使得并行化的运算IP之间任务负载保持一致,其特征在于该方法中每一路获得的结果数量均由顶层配置参数,通过移位相加得到结果总数,结果总数决定了每一路地址序列的生成,当运算结果数目达到结果总数时运算结束。
该方法基于自相关算法,设定输入相量的点数为number,由输入向量的第一个点数与输入向量共轭向量的最后一个数相乘得到第一个结果,再由共轭向量向右滑窗一格,两个向量的对应项进行乘累加,得到第二个结果,重复上述步骤完成自相关算法,处理后的最终结果的点数为number*2-1。
自相关算法的主要通过滑窗实现,以A向量1024点为例,算法滑窗过程如图1所示。首先由A向量的第一个数与A共轭向量的最后一个数相乘,得到第一个结果,即A(0)A(1023)*;然后共轭向量向右滑窗一格,两个向量的对应项进行乘累加,得到第二个结果,即A(0)A(1022)*+A(1)A(1023)*,同样可得到第三个结果为A(0)A(1021)*+A(1)A(1022)*+A(2)A(1023)*。依次类推,直到滑窗至最后一次运算,得到最后一个结果,即A(1023)A(0)*。
假设向量点数为number,那么自相关算法处理后的结果点数为number*2-1,从数学上不难看出,最终的结果序列是以中间数为对称中心,左右两边的数共轭对称。
从自相关算法的表达式以及滑窗图可以看出,算法本身只有基本的乘加运算。具体设计方法如下:
(1)由于运算资源可提供4组复数乘法器和16组复数加法器,理论上可以对自相关算法作四路并行设计。
(2)运算结果是共轭对称的,那么只需要计算出前一半的结果,运算结束后启动DMA搬运。在顺序搬运完前一半结果后,沿逆序方向将结果取共轭依次搬出。这样整体运算时间缩小一半,性能提升一倍。
(3)基于(2)的前提下,自相关算法实际运算得到的点数为number,源数据乘累加阶数从1递增至number。如果仅仅根据每路获得结果的数量平均划分,那么每一路实际的运算量将是失衡的,运算时间也会不匹配。因此需要采用基于运算量的划分方法,从数学上设计分配给每一路特定的结果数,使得其运算量大致相等,从而保证任务负载的平衡,使得性能最大化。
总的运算量为1+2+……+number,约为number2/2。得到前一半结果所需运算量为1+2+……+number/2,约为number2/8,恰好为总运算量的1/4,所以第一路恰好可以分配到前一半的结果。
得到前number*x个结果所需运算量为1+2+……+number*x,约为number2/2*x2,分别令x2等于1/4,2/4,3/4,得到的即为第一路,前两路,前三路共需要获得的结果量。x依次为0.5,0.7071,0.8660.四路分配的结果数量依次是0.5*number,0.2071*number,0.1589*number,0.1334*number。
数字电路里只有高低电平,对应0,1两个值。对于整数的乘法,总可以通过左移相加的方法实现。但对于小数的乘法,仅有特定的小数才可以通过右移相加实现。具体设计的verilog代码如下:
assign constant1=(number>>);
assign constant2=(number>>1)+(number>>3)+(number>>4)+(number>>5);
assign constant3=(number>>1)+(number>>2)+(number>>3);
assign result_num1=(number>>1);
assign result_num2=(number>>3)+(number>>4)+(number>>5);
assign result_num3=(number>>2)-(number>>4)-(number>>5);
assign result_num4=number-(number>>1)-(number>>2)-(number>>3);
表1 自相关算法并行任务划分与理论值的对比
利用的基于特定资源的多路并行划分方法,提供一种基于特定资源的多路并行划分的硬件架构,包括可在自相关的算法顶层模块调用的运算资源、存储资源,其特征在于还包括:
核心模块乘累加器,用于接收地址生成器单元发送的源数据,并负责数据流的处理;
地址生成器单元,用于负责生成所需的地址序列,将源数据依次导入运算资源的乘累加器;
存储体交换模块,用于将不同存储块视为同一存储块时对每个存储块的寻址。
对于自相关算法,从滑窗的过程来看,数据间的相关性决定了无法对源向量作并行分割。这就意味着即使四路并行,每一路依然需要完整的向量存储。乘累加器有两路源数据输入,共需要8路输入。图2所示为乘累加器示意图,每个乘累加器内部包含1个复数乘法器,三个复数加法器,因每个运算IP都有三级流水,故采用三个加法器的目的是为了实现流水处理。每个加法器的两个数据输入端的MUX选通分别由相应组合逻辑控制。
当点数较小时(假设不足8k),那么仅需8个bank存放源数据即可。当点数不高于16k时,需要每两个bank做一个memory_switch,共需16个bank提供八路数据流,同时结果数据存放到后16个bank中。内部调用四路乘累加器,各输入输出数据的地址由对应的operend_AGU及result_AGU控制。图3所示为自相关算法硬件设计模块互联图。
当向量点数高于16k不高于64k时,以区间最大值64k向量为例,完整存放该向量,需要恰好8个bank,两路数据流即占据16个bank,考虑到结果的存放,此时的算法无法支持并行处理,因此对于该区间的向量,只能一路乘累加器计算,无法并行。
当点数大于64k,不大于128k时,同样以区间最大值128k向量为例,此时的两路数据流需要占满所有的bank,这样结果就只能存放在规模较小的常数memory中。该点数区间同样不支持并行,仅依靠一组乘累加器运算。每路数据存放需16个Bank,共需要全部的32个bank来存放源操作数。所以只能将结果存放在规模较小的常数memory中。常数Memory总量8K,而结果量最大为256k-1,无法支持全部结果一次性存入。所以设计中,当AGU模块的地址计数器达到8k时,意味着获取最后一个数所需的地址序列已生成,代表在几十个的时钟周期后,常数Memory将存满。此时AGU会生成一中断信号发送到模块顶层,由顶层确定在14个clk之后(经实验仿真确定),将输入给乘累加器和result_AGU模块的enable信号拉低,意味着将所有模块中断掉,然后发出finish信号告知主控制器,将数据从Constant Memory搬运出去,完成后主控制器发送start信号到自相关算法顶层,内部逻辑会同时启动所有模块恢复执行。当全部的运算执行完毕后,finish_all拉高。
表2为三个特征向量点的***实际运行时间,满足项目性能指标要求。(***运行在1GHz主频)
表2 自相关算法性能指标
Claims (9)
1.一种基于特定资源的多路并行划分方法,所述方法通过计算总的运算量,得到每一路实际应分配的运算量以及结果数量,使得并行化的运算IP之间任务负载保持一致,其特征在于该方法中每一路获得的结果数量均由顶层配置参数,通过移位相加得到结果总数,所述结果总数决定了每一路地址序列的生成,当运算结果数目达到结果总数时运算结束。
2.根据权利要求1所述的基于特定资源的多路并行划分方法,其特征在于所述方法基于自相关算法,设定输入相量的点数为number,由输入向量的第一个点数与输入向量共轭向量的最后一个数相乘得到第一个结果,再由共轭向量向右滑窗一格,所述两个向量的对应项进行乘累加,得到第二个结果,重复上述步骤完成自相关算法,处理后的最终结果的点数为number*2-1。
3.根据权利要求2所述的基于特定资源的多路并行划分方法,其特征在于所述最终结果的序列是以中间数为对称中心,左右两边的数共轭对称。
4.根据权利要求3所述的基于特定资源的多路并行划分方法,其特征在于所述运算结果只计算出前一半结果,前一半结果运算结束后启动DMA搬运,在顺序搬运完前一半结果后,沿逆序方向将前一半结果取共轭依次搬出。
5.根据权利要求4所述的基于特定资源的多路并行划分方法,其特征在于所述输入向量的乘累加阶数从1递增至number,基于运算量的划分方式设定四路分配的结果数量依次是0.5*number、0.2071*number、0.1589*number、0.1334*number。
6.利用权利要求1-5任一项所述的基于特定资源的多路并行划分方法,提供一种基于特定资源的多路并行划分的硬件架构,其特征在于包括可在自相关的算法顶层模块调用的运算资源、存储资源,其特征在于还包括:
核心模块乘累加器,用于接收地址生成器单元发送的源数据,并负责数据流的处理;
地址生成器单元,用于负责生成所需的地址序列,将源数据依次导入运算资源的乘累加器;
存储体交换模块,用于将不同存储块视为同一存储块时对每个存储块的寻址。
7.根据权利要求6所述的基于特定资源的多路并行划分的硬件架构,其特征在于所述乘累加器支持四路运算,有两路源数据输入,共需要八个数据输入端。
8.根据权利要去7所述的基于特定资源的多路并行划分的硬件架构,其特征在于所述每个乘累加器内部包括一个复数乘法器与三个用于实现流水处理的复数加法器,所述复数乘法器与三个复数加法器依次串接,所述加法器的两个数据输入端分别由相应的组合逻辑控制选通。
9.根据权利要去6所述的基于特定资源的多路并行划分的硬件架构,其特征在于存储体交换模块由至少两个存储块连接组成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410836965.4A CN104794002B (zh) | 2014-12-29 | 2014-12-29 | 一种多路并行划分方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410836965.4A CN104794002B (zh) | 2014-12-29 | 2014-12-29 | 一种多路并行划分方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104794002A true CN104794002A (zh) | 2015-07-22 |
CN104794002B CN104794002B (zh) | 2019-03-22 |
Family
ID=53558813
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410836965.4A Active CN104794002B (zh) | 2014-12-29 | 2014-12-29 | 一种多路并行划分方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104794002B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108089839A (zh) * | 2017-10-11 | 2018-05-29 | 南开大学 | 一种基于fpga实现互相关运算的方法 |
CN108762719A (zh) * | 2018-05-21 | 2018-11-06 | 南京大学 | 一种并行广义内积重构控制器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101931449A (zh) * | 2010-08-27 | 2010-12-29 | 中国科学院上海微***与信息技术研究所 | 分布式数字波束形成网络及数字波束形成处理方法 |
CN102214086A (zh) * | 2011-06-20 | 2011-10-12 | 复旦大学 | 基于多核处理器的通用并行加速算法 |
CN102521047A (zh) * | 2011-11-15 | 2012-06-27 | 重庆邮电大学 | 实现多核处理器间中断负载均衡的方法 |
US20130159680A1 (en) * | 2011-12-19 | 2013-06-20 | Wei-Yu Chen | Systems, methods, and computer program products for parallelizing large number arithmetic |
CN103927290A (zh) * | 2014-04-18 | 2014-07-16 | 南京大学 | 一种任意阶下三角复矩阵求逆运算方法 |
-
2014
- 2014-12-29 CN CN201410836965.4A patent/CN104794002B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101931449A (zh) * | 2010-08-27 | 2010-12-29 | 中国科学院上海微***与信息技术研究所 | 分布式数字波束形成网络及数字波束形成处理方法 |
CN102214086A (zh) * | 2011-06-20 | 2011-10-12 | 复旦大学 | 基于多核处理器的通用并行加速算法 |
CN102521047A (zh) * | 2011-11-15 | 2012-06-27 | 重庆邮电大学 | 实现多核处理器间中断负载均衡的方法 |
US20130159680A1 (en) * | 2011-12-19 | 2013-06-20 | Wei-Yu Chen | Systems, methods, and computer program products for parallelizing large number arithmetic |
CN103927290A (zh) * | 2014-04-18 | 2014-07-16 | 南京大学 | 一种任意阶下三角复矩阵求逆运算方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108089839A (zh) * | 2017-10-11 | 2018-05-29 | 南开大学 | 一种基于fpga实现互相关运算的方法 |
CN108762719A (zh) * | 2018-05-21 | 2018-11-06 | 南京大学 | 一种并行广义内积重构控制器 |
CN108762719B (zh) * | 2018-05-21 | 2023-06-06 | 南京大学 | 一种并行广义内积重构控制器 |
Also Published As
Publication number | Publication date |
---|---|
CN104794002B (zh) | 2019-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Akçay et al. | Short-term wind speed forecasting by spectral analysis from long-term observations with missing values | |
CN103543984B (zh) | 用于特殊相关应用的修改型平衡吞吐量数据路径架构 | |
CN105931046A (zh) | 一种可疑交易节点集合侦测方法及装置 | |
CN101847137B (zh) | 一种实现基2fft计算的fft处理器 | |
CN103226543A (zh) | 一种流水线结构的fft处理器 | |
CN108710943A (zh) | 一种多层前馈神经网络并行加速器 | |
CN102129420A (zh) | 基于Cholesky分解解决最小二乘问题的FPGA实现装置 | |
CN103823988A (zh) | 一种超大尺度流域水量水质耦合模拟预测分析方法 | |
CN104777456B (zh) | 可配置的雷达数字信号处理器及其处理方法 | |
CN104794002A (zh) | 一种基于特定资源的多路并行划分方法及其硬件架构 | |
CN104680002A (zh) | 一种基于随机集理论的分布式融合方法 | |
Kan et al. | A heterogeneous computing accelerated SCE-UA global optimization method using OpenMP, OpenCL, CUDA, and OpenACC | |
CN102446342B (zh) | 可重构二值运算器、可重构二值图像处理***及其实现基本形态学算法的方法 | |
CN105955896B (zh) | 一种可重构dbf算法硬件加速器及控制方法 | |
Zhao et al. | Fully fixed-point integrated digital circuit design of discrete memristive systems | |
CN102129419B (zh) | 基于快速傅立叶变换的处理器 | |
CN108762719A (zh) | 一种并行广义内积重构控制器 | |
CN103699355B (zh) | 一种变阶流水串行乘累加器 | |
CN103176949A (zh) | 实现fft/ifft变换的电路及方法 | |
CN101694648A (zh) | 傅里叶变换处理方法和装置 | |
CN102929837B (zh) | 基于fpga的高速定点fft处理器及其处理方法 | |
CN103970610A (zh) | 一种供水管网中节点流量的监控方法 | |
CN104320106B (zh) | 基于fpga的高斯粒子滤波硬件实现方法 | |
Song et al. | Comparisons of typical discrete logistic map and Henon map | |
CN105892988A (zh) | 一种基于fpga的运算电路、示波器和测量仪器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |